Name: series-workflowwbd6t Phase: Succeeded StartedAt: 2026-07-31 20:25:29 +0000 UTC FinishedAt: 2026-08-01 00:21:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[0] Phase: Succeeded StartedAt: 2026-07-31 20:25:29 +0000 UTC FinishedAt: 2026-07-31 20:28:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[0].run-triage Phase: Succeeded StartedAt: 2026-07-31 20:25:29 +0000 UTC FinishedAt: 2026-07-31 20:28:29 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2195424c3da2ef1829a63b807e3a900a90e57d85", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2195424c3da2ef1829a63b807e3a900a90e57d85", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "46a86a2a-b251-400c-9d85-1be32407c180" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "sctp_getsockopt_local_auth_chunks", "sctp_getsockopt" ], "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+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3MmIzM0OywKICAgICYjMzQ7c2N0cF9nZXRzb2Nrb3B0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBieSBjbGFtcGluZyBgbnVtX2NodW5rc2AgdG8gYFNDVFBfQVVUSF9NQVhfQ0hVTktTYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBTQ1RQIHNvY2tldCBvcHRpb25zIGhhbmRsaW5nIGFuZCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgZ2V0c29ja29wdGAgc3lzY2FsbC4gSXQgaXMgd29ydGggZnV6emluZyB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgcHJldmVudHMgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFhNjAyZTI4OTY2MzZmYmVlY2I1M2Y3OGZjM2Q4MGI2YmYyNDliMzlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzMSAyMDoyNjo1MiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jXG5pbmRleCBjN2I5ZTMyNWVjMWNkLi5iN2QyZGNiYjNjN2I3IDEwMDY0NFxuLS0tIGEvbmV0L3NjdHAvc29ja2V0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL3NvY2tldC5jXG5AQCAtNzEwOSw2ICYjNDM7NzEwOSwxMiBAQCBzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG4gXHRcdGdvdG8gbnVtO1xuIFxuIFx0bnVtX2NodW5rcyA9IG50b2hzKGNoLVx1MDAzZXBhcmFtX2hkci5sZW5ndGgpIC0gc2l6ZW9mKHN0cnVjdCBzY3RwX3BhcmFtaGRyKTtcbiYjNDM7XHQvKiBhc29jLVx1MDAzZWMuYXV0aF9jaHVua3NbXSBob2xkcyBhdCBtb3N0IFNDVFBfQVVUSF9NQVhfQ0hVTktTIGJ5dGVzIGJ1dCBpdHNcbiYjNDM7XHQgKiBsZW5ndGggaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3RhdGUgY29va2llIGFuZCBpcyBub3QgYm91bmRlZCBoZXJlO1xuJiM0MztcdCAqIGNsYW1wIHNvIGFuIG92ZXJzaXplZCBsZW5ndGggY2Fubm90IHJlYWQgcGFzdCB0aGUgYXJyYXkuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKG51bV9jaHVua3MgXHUwMDNlIFNDVFBfQVVUSF9NQVhfQ0hVTktTKVxuJiM0MztcdFx0bnVtX2NodW5rcyA9IFNDVFBfQVVUSF9NQVhfQ0hVTktTO1xuIFx0aWYgKGxlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBzY3RwX2F1dGhjaHVua3MpICYjNDM7IG51bV9jaHVua3MpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzJiMzNDssCiAgICAmIzM0O3NjdHBfZ2V0c29ja29wdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYnkgY2xhbXBpbmcgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgU0NUUCBzb2NrZXQgb3B0aW9ucyBoYW5kbGluZyBhbmQgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c2NhbGwuIEl0IGlzIHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IHByZXZlbnRzIG91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhYTYwMmUyODk2NjM2ZmJlZWNiNTNmNzhmYzNkODBiNmJmMjQ5YjM5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMzEgMjA6MjY6NTIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IGM3YjllMzI1ZWMxY2QuLmI3ZDJkY2JiM2M3YjcgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC03MTA5LDYgJiM0Mzs3MTA5LDEyIEBAIHN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwKIAkJZ290byBudW07CiAKIAludW1fY2h1bmtzID0gbnRvaHMoY2gtJmd0O3BhcmFtX2hkci5sZW5ndGgpIC0gc2l6ZW9mKHN0cnVjdCBzY3RwX3BhcmFtaGRyKTsKJiM0MzsJLyogYXNvYy0mZ3Q7Yy5hdXRoX2NodW5rc1tdIGhvbGRzIGF0IG1vc3QgU0NUUF9BVVRIX01BWF9DSFVOS1MgYnl0ZXMgYnV0IGl0cwomIzQzOwkgKiBsZW5ndGggaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3RhdGUgY29va2llIGFuZCBpcyBub3QgYm91bmRlZCBoZXJlOwomIzQzOwkgKiBjbGFtcCBzbyBhbiBvdmVyc2l6ZWQgbGVuZ3RoIGNhbm5vdCByZWFkIHBhc3QgdGhlIGFycmF5LgomIzQzOwkgKi8KJiM0MzsJaWYgKG51bV9jaHVua3MgJmd0OyBTQ1RQX0FVVEhfTUFYX0NIVU5LUykKJiM0MzsJCW51bV9jaHVua3MgPSBTQ1RQX0FVVEhfTUFYX0NIVU5LUzsKIAlpZiAobGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBzY3RwX2F1dGhjaHVua3MpICYjNDM7IG51bV9jaHVua3MpCiAJCXJldHVybiAtRUlOVkFMOwogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNDIKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYG5ldC9zY3RwL3NvY2tldC5jYCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9zY3RwL3NvY2tldC5jYCwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgLiBJdCBzZWVtcyB0aGV5JiMzOTt2ZSBhZGRlZCBhIGJvdW5kcyBjaGVjayB0byBgbnVtX2NodW5rc2AgYWdhaW5zdCBgU0NUUF9BVVRIX01BWF9DSFVOS1NgLiBFeGNlbGxlbnQsIHRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGZpeCwgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQgdnVsbmVyYWJpbGl0eS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7VGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIHNvbWUgZnV6emluZy4mIzM0OwoKTm93LCBsZXQmIzM5O3MgZGlnIGludG8gdGhlIGRldGFpbHMgb2YgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AuIEFzIGEgZ2V0c29ja29wdCBoYW5kbGVyIGZvciBTQ1RQLCBpdCBuZWVkcyBzY3J1dGlueS4gSSYjMzk7bGwgbWVudGFsbHkgYWRkIGl0IHRvIG15IGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2AgZm9yIHRoaXMgYXJlYS4gSG9sZCBvbiBhIHNlY29uZC4uLml0JiMzOTtzICpzdGF0aWMqPyBSaWdodCwgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gTGV0IG1lIHF1aWNrbHkgY2hlY2sgdGhlIGRlY2xhcmF0aW9uIGluIGBuZXQvc2N0cC9zb2NrZXQuY2AuIEFoLCB5ZXMsIGBzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIC4uLilgIGNvbmZpcm1zIGl0LgoKU2luY2UgaXQmIzM5O3Mgc3RhdGljLCBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgaXQmIzM5O3MgY2FsbGVkIHdpdGhpbiBgbmV0L3NjdHAvc29ja2V0LmNgIGl0c2VsZi4gS25vd2luZyB0aGUgY2FsbCBzaXRlcyBvZiBzdGF0aWMgZnVuY3Rpb25zIGlzIGVzc2VudGlhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgY29udGV4dCBhbmQgcG90ZW50aWFsIGF0dGFjayBzdXJmYWNlLiBMZXQmIzM5O3Mgc2VlIGhvdyBhbmQgd2hlcmUgaXQmIzM5O3MgYmVpbmcgdXNlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC9zb2NrZXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9zb2NrZXQuYz03MDMyPXN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDc2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTgxMzc9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjA6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAyNgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgZ29pbmcgb24gaGVyZS4KCioqQW5hbHl6aW5nIHRoZSBgc2N0cF9nZXRzb2Nrb3B0YCBGdW5jdGlvbiBDYWxsKioKClJpZ2h0LCBzbyBJJiMzOTttIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uIGNhbGwgb3JpZ2luYXRpbmcgZnJvbSBgc2N0cF9nZXRzb2Nrb3B0YC4gVGhhdCBtYWtlcyBzZW5zZTsgaXQmIzM5O3MgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGhhbmRsaW5nIGBnZXRzb2Nrb3B0YCBjYWxscyByZWxhdGVkIHRvIFNDVFAgc29ja2V0cy4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGZ1bmN0aW9uLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHF1aWNrIGNoZWNrLiBJcyB0aGlzIGEgc3RhdGljIGZ1bmN0aW9uPyBLbm93aW5nIGl0cyBzY29wZSwgYW5kIGlmIGl0JiMzOTtzIHZpc2libGUgb3V0c2lkZSB0aGUgZmlsZSBpdCYjMzk7cyBkZWNsYXJlZCBpbiwgY2FuIHNpZ25pZmljYW50bHkgaW1wYWN0IGhvdyBJIG5lZWQgdG8gYW5hbHl6ZSBpdHMgYmVoYXZpb3IgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBwYXJ0cyBvZiB0aGUgU0NUUCBpbXBsZW1lbnRhdGlvbi4gSSYjMzk7bGwgbmVlZCB0byBrbm93IHdoZXRoZXIgdGhlIGZ1bmN0aW9uIG5hbWUsIGBzY3RwX2dldHNvY2tvcHRgLCBpcyBkaXJlY3RseSB1c2VkIGluIG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlLiBUaGF0IGdpdmVzIG1lIGNsdWVzIGFib3V0IGhvdyB0aWdodGx5IGNvdXBsZWQgb3IgbW9kdWxhciB0aGlzIGZ1bmN0aW9uIGlzLiBLbm93aW5nIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIHN0YXRpYyBvciBub3Qgd2lsbCBjbGFyaWZ5IHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2N0cF9nZXRzb2Nrb3B0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmM9MTM4MT1zdHJ1Y3QgY29tcGF0X3NjdHBfZ2V0YWRkcnNfb2xkIHtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy0xMzg3LVxubmV0L3NjdHAvc29ja2V0LmM6MTM4ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9jb25uZWN0eDMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtMTM4OS1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz01NDc3PUVYUE9SVF9TWU1CT0xfR1BMKHNjdHBfdHJhbnNwb3J0X3RyYXZlcnNlX3Byb2Nlc3MpO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU0ODUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo1NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTU0ODctXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY1LSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NTU2NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY3LVx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTYyOC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjU2Mjk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGlzYWJsZV9mcmFnbWVudHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNTYzMC1cdFx0XHRcdFx0Y2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU2NTAtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo1NjUxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2V2ZW50cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy01NjUyLVx0XHRcdFx0ICBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTY4NS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjU2ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXV0b2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxubmV0L3NjdHAvc29ja2V0LmMtNTY4Ny17XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTcwMj1zdGF0aWMgaW50IHNjdHBfZG9fcGVlbG9mZihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfYXNzb2NfdCBpZCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NzQ1LVxubmV0L3NjdHAvc29ja2V0LmM6NTc0NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfcGVlbG9mZl9hcmdfdCAqcGVlbG9mZixcbm5ldC9zY3RwL3NvY2tldC5jLTU3NDctXHRcdFx0XHRcdCAgc3RydWN0IGZpbGUgKipuZXdmaWxlLCB1bnNpZ25lZCBmbGFncylcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NzgxLVxubmV0L3NjdHAvc29ja2V0LmM6NTc4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxubmV0L3NjdHAvc29ja2V0LmMtNTc4My17XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTc5My1cbm5ldC9zY3RwL3NvY2tldC5jOjU3OTQ6XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9jb21tb24oc2ssIFx1MDAyNnBlZWxvZmYsIFx1MDAyNm5ld2ZpbGUsIDApO1xubmV0L3NjdHAvc29ja2V0LmMtNTc5NS1cdGlmIChyZXR2YWwgXHUwMDNjIDApXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTgxNC1cbm5ldC9zY3RwL3NvY2tldC5jOjU4MTU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy01ODE2LVx0XHRcdFx0XHQgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU4MjctXG5uZXQvc2N0cC9zb2NrZXQuYzo1ODI4Olx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfY29tbW9uKHNrLCBcdTAwMjZwZWVsb2ZmLnBfYXJnLFxubmV0L3NjdHAvc29ja2V0LmMtNTgyOS1cdFx0XHRcdFx0XHRcdTAwMjZuZXdmaWxlLCBwZWVsb2ZmLmZsYWdzKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01OTgxLSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NTk4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTU5ODMtXHRcdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjEyNC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjYxMjU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVsYXllZF9hY2soc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjEyNi1cdFx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjE5OC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjYxOTk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbm5ldC9zY3RwL3NvY2tldC5jLTYyMDAte1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTYyMTEtXG5uZXQvc2N0cC9zb2NrZXQuYzo2MjEyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcnMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjIxMy1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz02MjYzPXN0YXRpYyBpbnQgc2N0cF9jb3B5X2xhZGRycyhzdHJ1Y3Qgc29jayAqc2ssIF9fdTE2IHBvcnQsIHZvaWQgKnRvLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTYzMDctXG5uZXQvc2N0cC9zb2NrZXQuYzo2MzA4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTYzMDktXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY0MTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2NDE2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NDE3LVx0XHRcdFx0XHRjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjQ1Ny0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY0NTg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWRhcHRhdGlvbl9sYXllcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NDU5LVx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjQ5Ni0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY0OTc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHN0cnVjdCBzb2NrICpzayxcbm5ldC9zY3RwL3NvY2tldC5jLTY0OTgtXHRcdFx0XHRcdGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjU0Mi0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY1NDM6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zbmRpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTY1NDQtXHRcdFx0XHRcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjU5My1cbm5ldC9zY3RwL3NvY2tldC5jOjY1OTQ6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbm9kZWxheShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NTk1LVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY2MjItICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2NjIzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjYyNC1cdFx0XHRcdGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjY3Ni0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY2Nzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNzb2NpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTY2NzgtXHRcdFx0XHQgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjc0NS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY3NDY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWFwcGVkdjQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjc0Ny1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjc2OC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY3Njk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfY29udGV4dChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NzcwLVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY4MjUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODI2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02ODI3LVx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjg3Mi0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY4NzM6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZnJhZ21lbnRfaW50ZXJsZWF2ZShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02ODc0LVx0XHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY4OTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODk2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BhcnRpYWxfZGVsaXZlcnlfcG9pbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjg5Ny1cdFx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjkxOS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY5MjA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWF4YnVyc3Qoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjkyMS1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY5NTktXG5uZXQvc2N0cC9zb2NrZXQuYzo2OTYwOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2htYWNfaWRlbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjk2MS1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjk5NS1cbm5ldC9zY3RwL3NvY2tldC5jOjY5OTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02OTk3LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MDMxLVxubmV0L3NjdHAvc29ja2V0LmM6NzAzMjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwMzMtXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDc2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcxMzctICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTM4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTM5LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MTY4LSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NzE2OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTcwLVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcxOTMtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTk0OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX2lkcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTk1LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MjQzLSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NzI0NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wYWRkcl90aHJlc2hvbGRzKHN0cnVjdCBzb2NrICpzayxcbm5ldC9zY3RwL3NvY2tldC5jLTcyNDUtXHRcdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgbGVuLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTczMDItICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzAzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTczMDQtXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MzYwLVxubmV0L3NjdHAvc29ja2V0LmM6NzM2MTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzdHJ1Y3Qgc29jayAqc2ssXHRpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzM2Mi1cdFx0XHRcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTczODAtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzgxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY3ZueHRpbmZvKHN0cnVjdCBzb2NrICpzayxcdGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MzgyLVx0XHRcdFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzQwMC1cbm5ldC9zY3RwL3NvY2tldC5jOjc0MDE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc0MDItXHRcdFx0XHRcdGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzQzOS1cbm5ldC9zY3RwL3NvY2tldC5jOjc0NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9wcmluZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzQ0MS1cdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTc0ODUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc0ODctXHRcdFx0XHRcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NTQ0LVxubmV0L3NjdHAvc29ja2V0LmM6NzU0NTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzU0Ni1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NjA4LVxubmV0L3NjdHAvc29ja2V0LmM6NzYwOTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWNvbmZpZ19zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzYxMC1cdFx0XHRcdFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NjQ3LVxubmV0L3NjdHAvc29ja2V0LmM6NzY0ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmFibGVfc3RycmVzZXQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzY0OS1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03Njg2LVxubmV0L3NjdHAvc29ja2V0LmM6NzY4NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXIoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzY4OC1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NzI1LVxubmV0L3NjdHAvc29ja2V0LmM6NzcyNjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXJfdmFsdWUoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzcyNy1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NzY3LVxubmV0L3NjdHAvc29ja2V0LmM6Nzc2ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9pbnRlcmxlYXZpbmdfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc3NjktXHRcdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTc4MDYtXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODA3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JldXNlX3BvcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzgwOC1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzgyNi1cbm5ldC9zY3RwL3NvY2tldC5jOjc4Mjc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtNzgyOC1cdFx0XHRcdCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzg2MS1cbm5ldC9zY3RwL3NvY2tldC5jOjc4NjI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03ODYzLVx0XHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAwLVxubmV0L3NjdHAvc29ja2V0LmM6NzkwMTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRoX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAyLVx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzkzOS1cbm5ldC9zY3RwL3NvY2tldC5jOjc5NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZWNuX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03OTQxLVx0XHRcdFx0XHQgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03OTc4LVxubmV0L3NjdHAvc29ja2V0LmM6Nzk3OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZl9leHBvc2Uoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzk4MC1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MDE3LVxubmV0L3NjdHAvc29ja2V0LmM6ODAxODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmNhcF9wb3J0KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTgwMTktXHRcdFx0XHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODA3Ni1cbm5ldC9zY3RwL3NvY2tldC5jOjgwNzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtODA3OC1cdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgxMzYtXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTM3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSxcbm5ldC9zY3RwL3NvY2tldC5jLTgxMzgtXHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgxNjctXHRjYXNlIFNDVFBfU1RBVFVTOlxubmV0L3NjdHAvc29ja2V0LmM6ODE2ODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgxNjktXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODE3MC1cdGNhc2UgU0NUUF9ESVNBQkxFX0ZSQUdNRU5UUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzE6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kaXNhYmxlX2ZyYWdtZW50cyhzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MTcyLVx0XHRcdFx0XHRcdFx0ICAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MTc0LVx0Y2FzZSBTQ1RQX0VWRU5UUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzU6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ldmVudHMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODE3Ni1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTc3LVx0Y2FzZSBTQ1RQX0FVVE9DTE9TRTpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzg6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvY2xvc2Uoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODE3OS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTgwLVx0Y2FzZSBTQ1RQX1NPQ0tPUFRfUEVFTE9GRjpcbm5ldC9zY3RwL3NvY2tldC5jOjgxODE6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgxODItXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODE4My1cdGNhc2UgU0NUUF9TT0NLT1BUX1BFRUxPRkZfRkxBR1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTg0Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTg1LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgxODYtXHRjYXNlIFNDVFBfUEVFUl9BRERSX1BBUkFNUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxODc6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgxODgtXHRcdFx0XHRcdFx0XHQgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODE5MC1cdGNhc2UgU0NUUF9ERUxBWUVEX1NBQ0s6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTkxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVsYXllZF9hY2soc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODE5Mi1cdFx0XHRcdFx0XHRcdCAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk0LVx0Y2FzZSBTQ1RQX0lOSVRNU0c6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk1Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTk2LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTctXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUlM6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRycyhzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk5LVx0XHRcdFx0XHRcdCAgICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMDEtXHRjYXNlIFNDVFBfR0VUX0xPQ0FMX0FERFJTOlxubmV0L3NjdHAvc29ja2V0LmM6ODIwMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDMtXHRcdFx0XHRcdFx0ICAgICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMDUtXHRjYXNlIFNDVFBfU09DS09QVF9DT05ORUNUWDM6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA2Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfY29ubmVjdHgzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDctXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODIwOC1cdGNhc2UgU0NUUF9ERUZBVUxUX1NFTkRfUEFSQU06XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA5Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHNrLCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy04MjEwLVx0XHRcdFx0XHRcdFx0ICAgIG9wdHZhbCwgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjEyLVx0Y2FzZSBTQ1RQX0RFRkFVTFRfU05ESU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMTM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NuZGluZm8oc2ssIGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTQtXHRcdFx0XHRcdFx0XHQgb3B0dmFsLCBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMTYtXHRjYXNlIFNDVFBfUFJJTUFSWV9BRERSOlxubmV0L3NjdHAvc29ja2V0LmM6ODIxNzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjE4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTktXHRjYXNlIFNDVFBfTk9ERUxBWTpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjA6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ub2RlbGF5KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjEtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODIyMi1cdGNhc2UgU0NUUF9SVE9JTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODIyMzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODIyNC1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjI1LVx0Y2FzZSBTQ1RQX0FTU09DSU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjY6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc3NvY2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODIyNy1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjI4LVx0Y2FzZSBTQ1RQX0lfV0FOVF9NQVBQRURfVjRfQUREUjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9tYXBwZWR2NChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjMwLVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzEtXHRjYXNlIFNDVFBfTUFYU0VHOlxubmV0L3NjdHAvc29ja2V0LmM6ODIzMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjMzLVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzQtXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUl9JTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODIzNTpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcl9pbmZvKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzYtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMzgtXHRjYXNlIFNDVFBfQURBUFRBVElPTl9MQVlFUjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMzk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hZGFwdGF0aW9uX2xheWVyKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDAtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNDItXHRjYXNlIFNDVFBfQ09OVEVYVDpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNDM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9jb250ZXh0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDQtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI0NS1cdGNhc2UgU0NUUF9GUkFHTUVOVF9JTlRFUkxFQVZFOlxubmV0L3NjdHAvc29ja2V0LmM6ODI0NjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ZyYWdtZW50X2ludGVybGVhdmUoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI0Ny1cdFx0XHRcdFx0XHRcdCAgICAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ5LVx0Y2FzZSBTQ1RQX1BBUlRJQUxfREVMSVZFUllfUE9JTlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjUwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFydGlhbF9kZWxpdmVyeV9wb2ludChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MjUxLVx0XHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNTMtXHRjYXNlIFNDVFBfTUFYX0JVUlNUOlxubmV0L3NjdHAvc29ja2V0LmM6ODI1NDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heGJ1cnN0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNTUtXHRcdGJyZWFrO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNjItXHRjYXNlIFNDVFBfSE1BQ19JREVOVDpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9obWFjX2lkZW50KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjQtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI2NS1cdGNhc2UgU0NUUF9BVVRIX0FDVElWRV9LRVk6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjY2Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjY3LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjgtXHRjYXNlIFNDVFBfUEVFUl9BVVRIX0NIVU5LUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzAtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODI3Ni1cdGNhc2UgU0NUUF9HRVRfQVNTT0NfTlVNQkVSOlxubmV0L3NjdHAvc29ja2V0LmM6ODI3NzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzktXHRjYXNlIFNDVFBfR0VUX0FTU09DX0lEX0xJU1Q6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjgwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNzb2NfaWRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyODEtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI4Mi1cdGNhc2UgU0NUUF9BVVRPX0FTQ09ORjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyODM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjg0LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyODUtXHRjYXNlIFNDVFBfUEVFUl9BRERSX1RITERTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI4NjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhZGRyX3RocmVzaG9sZHMoc2ssIG9wdHZhbCwgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtODI4Ny1cdFx0XHRcdFx0XHRcdCAgb3B0bGVuLCBmYWxzZSk7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODI4OS1cdGNhc2UgU0NUUF9QRUVSX0FERFJfVEhMRFNfVjI6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjkwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFkZHJfdGhyZXNob2xkcyhzaywgb3B0dmFsLCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy04MjkxLVx0XHRcdFx0XHRcdFx0ICBvcHRsZW4sIHRydWUpO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyOTMtXHRjYXNlIFNDVFBfR0VUX0FTU09DX1NUQVRTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI5NDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTUtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI5Ni1cdGNhc2UgU0NUUF9SRUNWUkNWSU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTc6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTktXHRjYXNlIFNDVFBfUkVDVk5YVElORk86XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzAwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmVjdm54dGluZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODMwMS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzAyLVx0Y2FzZSBTQ1RQX1BSX1NVUFBPUlRFRDpcbm5ldC9zY3RwL3NvY2tldC5jOjgzMDM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODMwNC1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzA1LVx0Y2FzZSBTQ1RQX0RFRkFVTFRfUFJJTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODMwNjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfcHJpbmZvKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDctXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMDktXHRjYXNlIFNDVFBfUFJfQVNTT0NfU1RBVFVTOlxubmV0L3NjdHAvc29ja2V0LmM6ODMxMDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTEtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMTMtXHRjYXNlIFNDVFBfUFJfU1RSRUFNX1NUQVRVUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgzMTQ6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODMxNS1cdFx0XHRcdFx0XHRcdCBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMTctXHRjYXNlIFNDVFBfUkVDT05GSUdfU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODMxODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY29uZmlnX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE5LVx0XHRcdFx0XHRcdFx0ICAgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyMS1cdGNhc2UgU0NUUF9FTkFCTEVfU1RSRUFNX1JFU0VUOlxubmV0L3NjdHAvc29ja2V0LmM6ODMyMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuYWJsZV9zdHJyZXNldChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzIzLVx0XHRcdFx0XHRcdFx0IG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyNS1cdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSOlxubmV0L3NjdHAvc29ja2V0LmM6ODMyNjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcihzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzI3LVx0XHRcdFx0XHRcdCAgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyOS1cdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSX1ZBTFVFOlxubmV0L3NjdHAvc29ja2V0LmM6ODMzMDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcl92YWx1ZShzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzMxLVx0XHRcdFx0XHRcdFx0IG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMzMy1cdGNhc2UgU0NUUF9JTlRFUkxFQVZJTkdfU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODMzNDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ludGVybGVhdmluZ19zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODMzNS1cdFx0XHRcdFx0XHRcdFx0b3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MzM3LVx0Y2FzZSBTQ1RQX1JFVVNFX1BPUlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzM4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmV1c2VfcG9ydChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzM5LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDAtXHRjYXNlIFNDVFBfRVZFTlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM0Mi1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzQzLVx0Y2FzZSBTQ1RQX0FTQ09ORl9TVVBQT1JURUQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ0Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQ1LVx0XHRcdFx0XHRcdFx0ICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzNDctXHRjYXNlIFNDVFBfQVVUSF9TVVBQT1JURUQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXV0aF9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODM0OS1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODM1MS1cdGNhc2UgU0NUUF9FQ05fU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODM1MjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Vjbl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM1My1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzU0LVx0Y2FzZSBTQ1RQX0VYUE9TRV9QT1RFTlRJQUxMWV9GQUlMRURfU1RBVEU6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzU1Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGZfZXhwb3NlKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTYtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODM1Ny1cdGNhc2UgU0NUUF9SRU1PVEVfVURQX0VOQ0FQU19QT1JUOlxubmV0L3NjdHAvc29ja2V0LmM6ODM1ODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuY2FwX3BvcnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM1OS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzYwLVx0Y2FzZSBTQ1RQX1BMUE1UVURfUFJPQkVfSU5URVJWQUw6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzYxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM2Mi1cdFx0YnJlYWs7XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9OTY2MD1zdHJ1Y3QgcHJvdG8gc2N0cF9wcm90ID0ge1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTk2NzAtXHQuc2V0c29ja29wdCAgPVx0c2N0cF9zZXRzb2Nrb3B0LFxubmV0L3NjdHAvc29ja2V0LmM6OTY3MTpcdC5nZXRzb2Nrb3B0ICA9XHRzY3RwX2dldHNvY2tvcHQsXG5uZXQvc2N0cC9zb2NrZXQuYy05NjcyLVx0LmJwZl9ieXBhc3NfZ2V0c29ja29wdFx0PSBzY3RwX2JwZl9ieXBhc3NfZ2V0c29ja29wdCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz05NzE1PXN0cnVjdCBwcm90byBzY3RwdjZfcHJvdCA9IHtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy05NzI1LVx0LnNldHNvY2tvcHRcdD0gc2N0cF9zZXRzb2Nrb3B0LFxubmV0L3NjdHAvc29ja2V0LmM6OTcyNjpcdC5nZXRzb2Nrb3B0XHQ9IHNjdHBfZ2V0c29ja29wdCxcbm5ldC9zY3RwL3NvY2tldC5jLTk3MjctXHQuYnBmX2J5cGFzc19nZXRzb2Nrb3B0XHQ9IHNjdHBfYnBmX2J5cGFzc19nZXRzb2Nrb3B0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNTQxCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYHNjdHBfZ2V0c29ja29wdGAgRnVuY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBzY3RwX2dldHNvY2tvcHRgLiBJdCYjMzk7cyBkZWZpbmVkIGFzIGEgYHN0YXRpY2AgZnVuY3Rpb24sIHdoaWNoIGluaXRpYWxseSBtYWtlcyBtZSB0aGluayBpdCBtaWdodCBub3QgYmUgYSBnbG9iYWxseSBhY2Nlc3NpYmxlIHN5bWJvbC4gQnV0IHRoZW4sIGl0JiMzOTtzIGJlaW5nIGFzc2lnbmVkIHRvIGBzY3RwX3Byb3QuZ2V0c29ja29wdGAgYW5kIGBzY3RwdjZfcHJvdC5nZXRzb2Nrb3B0YC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgYmVjYXVzZSB0aGF0IHN1Z2dlc3RzIGl0ICppcyogcGFydCBvZiB0aGUgcHJvdG9jb2wmIzM5O3MgaW50ZXJmYWNlLCBldmVuIGlmIG5vdCBkaXJlY3RseSBleHBvc2VkIGluIHRoZSBzeW1ib2wgdGFibGUuCgpTbywgc2luY2UgaXQmIzM5O3MgYHN0YXRpY2AsIGl0IHdvbiYjMzk7dCBiZSBpbiB0aGUgc3ltYm9sIHRhYmxlIGFzIGEgZ2xvYmFsIHN5bWJvbC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGlzIGV4cG9ydGVkIG9yIGlmIHRoZXJlJiMzOTtzIGEgd3JhcHBlci4gTm9wZS4gSXQmIzM5O3MgYXNzaWduZWQgdG8gYHN0cnVjdCBwcm90byBzY3RwX3Byb3RgLCByaWdodD8gQWxyaWdodC4KClRoZSBzdGFuZGFyZCBzeXNjYWxsIHBhdGggZm9yIGBnZXRzb2Nrb3B0YCB3aWxsIGV2ZW50dWFsbHkgY2FsbCBgc2stJmd0O3NrX3Byb3QtJmd0O2dldHNvY2tvcHRgLiBUaGF0IG1lYW5zIGBzY3RwX2dldHNvY2tvcHRgICppcyogcmVhY2hhYmxlIGluZGlyZWN0bHkuCgpUaGUgcXVlc3Rpb24gaXMsIHNob3VsZCBJIGFkZCBgc2N0cF9nZXRzb2Nrb3B0YCB0byBgRm9jdXNTeW1ib2xzYD8gTm9ybWFsbHksIEkgbWlnaHQgYmUgaGVzaXRhbnQgd2l0aCBhIHN0YXRpYyBmdW5jdGlvbiBiZWNhdXNlIG9mIHBvdGVudGlhbCBpbmxpbmluZywgYnV0IGluIHRoaXMgY2FzZSwgaXRzIGFkZHJlc3MgaXMgYWN0dWFsbHkgYmVpbmcgdGFrZW4sIGJlY2F1c2UgaXQmIzM5O3MgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLiBUaGVyZWZvcmUsIGlubGluaW5nIGlzIG91dCBvZiB0aGUgcXVlc3Rpb24uIEhvd2V2ZXIsIGBzY3RwX2dldHNvY2tvcHRgIGlzIGEgbGFyZ2UgZnVuY3Rpb24uLi4KCldhaXQgYSBzZWNvbmQsIGl0IGJlaW5nIHN0YXRpYyBkb2VzbiYjMzk7dCBtZWFuIGl0JiMzOTtzIGlubGluZWQgaGVyZSwgc2luY2UgaXRzIGFkZHJlc3MgaXMgdGFrZW4uIEFscmlnaHQuIEdvb2QgdG8ga25vdy4gQnV0IGlzIHRoZXJlIGFueSBvdGhlciBub24tc3RhdGljIGZ1bmN0aW9uPyBMZXQgbWUgY2hlY2sgYG5ldC9zY3RwL3NvY2tldC5jYCB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBleHBvcnRlZCBvciBnbG9iYWwgZnVuY3Rpb25zIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzY3RwX2dldHNvY2tvcHQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmM9MTM4MT1zdHJ1Y3QgY29tcGF0X3NjdHBfZ2V0YWRkcnNfb2xkIHtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy0xMzg3LVxubmV0L3NjdHAvc29ja2V0LmM6MTM4ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9jb25uZWN0eDMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtMTM4OS1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz01NDc3PUVYUE9SVF9TWU1CT0xfR1BMKHNjdHBfdHJhbnNwb3J0X3RyYXZlcnNlX3Byb2Nlc3MpO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU0ODUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo1NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTU0ODctXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY1LSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NTU2NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY3LVx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTYyOC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjU2Mjk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGlzYWJsZV9mcmFnbWVudHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNTYzMC1cdFx0XHRcdFx0Y2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU2NTAtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo1NjUxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2V2ZW50cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy01NjUyLVx0XHRcdFx0ICBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTY4NS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjU2ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXV0b2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxubmV0L3NjdHAvc29ja2V0LmMtNTY4Ny17XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTcwMj1zdGF0aWMgaW50IHNjdHBfZG9fcGVlbG9mZihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfYXNzb2NfdCBpZCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NzQ1LVxubmV0L3NjdHAvc29ja2V0LmM6NTc0NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfcGVlbG9mZl9hcmdfdCAqcGVlbG9mZixcbm5ldC9zY3RwL3NvY2tldC5jLTU3NDctXHRcdFx0XHRcdCAgc3RydWN0IGZpbGUgKipuZXdmaWxlLCB1bnNpZ25lZCBmbGFncylcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NzgxLVxubmV0L3NjdHAvc29ja2V0LmM6NTc4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxubmV0L3NjdHAvc29ja2V0LmMtNTc4My17XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTc5My1cbm5ldC9zY3RwL3NvY2tldC5jOjU3OTQ6XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9jb21tb24oc2ssIFx1MDAyNnBlZWxvZmYsIFx1MDAyNm5ld2ZpbGUsIDApO1xubmV0L3NjdHAvc29ja2V0LmMtNTc5NS1cdGlmIChyZXR2YWwgXHUwMDNjIDApXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTgxNC1cbm5ldC9zY3RwL3NvY2tldC5jOjU4MTU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy01ODE2LVx0XHRcdFx0XHQgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU4MjctXG5uZXQvc2N0cC9zb2NrZXQuYzo1ODI4Olx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfY29tbW9uKHNrLCBcdTAwMjZwZWVsb2ZmLnBfYXJnLFxubmV0L3NjdHAvc29ja2V0LmMtNTgyOS1cdFx0XHRcdFx0XHRcdTAwMjZuZXdmaWxlLCBwZWVsb2ZmLmZsYWdzKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01OTgxLSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NTk4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTU5ODMtXHRcdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjEyNC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjYxMjU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVsYXllZF9hY2soc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjEyNi1cdFx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjE5OC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjYxOTk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbm5ldC9zY3RwL3NvY2tldC5jLTYyMDAte1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTYyMTEtXG5uZXQvc2N0cC9zb2NrZXQuYzo2MjEyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcnMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjIxMy1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz02MjYzPXN0YXRpYyBpbnQgc2N0cF9jb3B5X2xhZGRycyhzdHJ1Y3Qgc29jayAqc2ssIF9fdTE2IHBvcnQsIHZvaWQgKnRvLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTYzMDctXG5uZXQvc2N0cC9zb2NrZXQuYzo2MzA4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTYzMDktXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY0MTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2NDE2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NDE3LVx0XHRcdFx0XHRjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjQ1Ny0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY0NTg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWRhcHRhdGlvbl9sYXllcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NDU5LVx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjQ5Ni0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY0OTc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHN0cnVjdCBzb2NrICpzayxcbm5ldC9zY3RwL3NvY2tldC5jLTY0OTgtXHRcdFx0XHRcdGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjU0Mi0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY1NDM6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zbmRpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTY1NDQtXHRcdFx0XHRcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjU5My1cbm5ldC9zY3RwL3NvY2tldC5jOjY1OTQ6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbm9kZWxheShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NTk1LVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY2MjItICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2NjIzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjYyNC1cdFx0XHRcdGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjY3Ni0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY2Nzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNzb2NpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTY2NzgtXHRcdFx0XHQgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjc0NS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY3NDY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWFwcGVkdjQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjc0Ny1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjc2OC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY3Njk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfY29udGV4dChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NzcwLVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY4MjUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODI2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02ODI3LVx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjg3Mi0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY4NzM6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZnJhZ21lbnRfaW50ZXJsZWF2ZShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02ODc0LVx0XHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY4OTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODk2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BhcnRpYWxfZGVsaXZlcnlfcG9pbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjg5Ny1cdFx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjkxOS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY5MjA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWF4YnVyc3Qoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjkyMS1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY5NTktXG5uZXQvc2N0cC9zb2NrZXQuYzo2OTYwOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2htYWNfaWRlbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjk2MS1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjk5NS1cbm5ldC9zY3RwL3NvY2tldC5jOjY5OTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02OTk3LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MDMxLVxubmV0L3NjdHAvc29ja2V0LmM6NzAzMjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwMzMtXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDc2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcxMzctICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTM4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTM5LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MTY4LSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NzE2OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTcwLVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcxOTMtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTk0OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX2lkcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTk1LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MjQzLSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NzI0NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wYWRkcl90aHJlc2hvbGRzKHN0cnVjdCBzb2NrICpzayxcbm5ldC9zY3RwL3NvY2tldC5jLTcyNDUtXHRcdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgbGVuLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTczMDItICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzAzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTczMDQtXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MzYwLVxubmV0L3NjdHAvc29ja2V0LmM6NzM2MTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzdHJ1Y3Qgc29jayAqc2ssXHRpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzM2Mi1cdFx0XHRcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTczODAtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzgxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY3ZueHRpbmZvKHN0cnVjdCBzb2NrICpzayxcdGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MzgyLVx0XHRcdFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzQwMC1cbm5ldC9zY3RwL3NvY2tldC5jOjc0MDE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc0MDItXHRcdFx0XHRcdGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzQzOS1cbm5ldC9zY3RwL3NvY2tldC5jOjc0NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9wcmluZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzQ0MS1cdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTc0ODUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc0ODctXHRcdFx0XHRcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NTQ0LVxubmV0L3NjdHAvc29ja2V0LmM6NzU0NTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzU0Ni1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NjA4LVxubmV0L3NjdHAvc29ja2V0LmM6NzYwOTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWNvbmZpZ19zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzYxMC1cdFx0XHRcdFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NjQ3LVxubmV0L3NjdHAvc29ja2V0LmM6NzY0ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmFibGVfc3RycmVzZXQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzY0OS1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03Njg2LVxubmV0L3NjdHAvc29ja2V0LmM6NzY4NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXIoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzY4OC1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NzI1LVxubmV0L3NjdHAvc29ja2V0LmM6NzcyNjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXJfdmFsdWUoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzcyNy1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NzY3LVxubmV0L3NjdHAvc29ja2V0LmM6Nzc2ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9pbnRlcmxlYXZpbmdfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc3NjktXHRcdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTc4MDYtXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODA3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JldXNlX3BvcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzgwOC1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzgyNi1cbm5ldC9zY3RwL3NvY2tldC5jOjc4Mjc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtNzgyOC1cdFx0XHRcdCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzg2MS1cbm5ldC9zY3RwL3NvY2tldC5jOjc4NjI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03ODYzLVx0XHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAwLVxubmV0L3NjdHAvc29ja2V0LmM6NzkwMTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRoX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAyLVx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzkzOS1cbm5ldC9zY3RwL3NvY2tldC5jOjc5NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZWNuX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03OTQxLVx0XHRcdFx0XHQgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03OTc4LVxubmV0L3NjdHAvc29ja2V0LmM6Nzk3OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZl9leHBvc2Uoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzk4MC1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MDE3LVxubmV0L3NjdHAvc29ja2V0LmM6ODAxODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmNhcF9wb3J0KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTgwMTktXHRcdFx0XHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODA3Ni1cbm5ldC9zY3RwL3NvY2tldC5jOjgwNzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtODA3OC1cdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgxMzYtXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTM3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSxcbm5ldC9zY3RwL3NvY2tldC5jLTgxMzgtXHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgxNjctXHRjYXNlIFNDVFBfU1RBVFVTOlxubmV0L3NjdHAvc29ja2V0LmM6ODE2ODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgxNjktXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODE3MC1cdGNhc2UgU0NUUF9ESVNBQkxFX0ZSQUdNRU5UUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzE6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kaXNhYmxlX2ZyYWdtZW50cyhzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MTcyLVx0XHRcdFx0XHRcdFx0ICAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MTc0LVx0Y2FzZSBTQ1RQX0VWRU5UUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzU6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ldmVudHMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODE3Ni1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTc3LVx0Y2FzZSBTQ1RQX0FVVE9DTE9TRTpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzg6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvY2xvc2Uoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODE3OS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTgwLVx0Y2FzZSBTQ1RQX1NPQ0tPUFRfUEVFTE9GRjpcbm5ldC9zY3RwL3NvY2tldC5jOjgxODE6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgxODItXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODE4My1cdGNhc2UgU0NUUF9TT0NLT1BUX1BFRUxPRkZfRkxBR1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTg0Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTg1LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgxODYtXHRjYXNlIFNDVFBfUEVFUl9BRERSX1BBUkFNUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxODc6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgxODgtXHRcdFx0XHRcdFx0XHQgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODE5MC1cdGNhc2UgU0NUUF9ERUxBWUVEX1NBQ0s6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTkxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVsYXllZF9hY2soc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODE5Mi1cdFx0XHRcdFx0XHRcdCAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk0LVx0Y2FzZSBTQ1RQX0lOSVRNU0c6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk1Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTk2LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTctXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUlM6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRycyhzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk5LVx0XHRcdFx0XHRcdCAgICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMDEtXHRjYXNlIFNDVFBfR0VUX0xPQ0FMX0FERFJTOlxubmV0L3NjdHAvc29ja2V0LmM6ODIwMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDMtXHRcdFx0XHRcdFx0ICAgICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMDUtXHRjYXNlIFNDVFBfU09DS09QVF9DT05ORUNUWDM6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA2Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfY29ubmVjdHgzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDctXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODIwOC1cdGNhc2UgU0NUUF9ERUZBVUxUX1NFTkRfUEFSQU06XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA5Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHNrLCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy04MjEwLVx0XHRcdFx0XHRcdFx0ICAgIG9wdHZhbCwgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjEyLVx0Y2FzZSBTQ1RQX0RFRkFVTFRfU05ESU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMTM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NuZGluZm8oc2ssIGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTQtXHRcdFx0XHRcdFx0XHQgb3B0dmFsLCBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMTYtXHRjYXNlIFNDVFBfUFJJTUFSWV9BRERSOlxubmV0L3NjdHAvc29ja2V0LmM6ODIxNzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjE4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTktXHRjYXNlIFNDVFBfTk9ERUxBWTpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjA6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ub2RlbGF5KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjEtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODIyMi1cdGNhc2UgU0NUUF9SVE9JTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODIyMzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODIyNC1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjI1LVx0Y2FzZSBTQ1RQX0FTU09DSU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjY6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc3NvY2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODIyNy1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjI4LVx0Y2FzZSBTQ1RQX0lfV0FOVF9NQVBQRURfVjRfQUREUjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9tYXBwZWR2NChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjMwLVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzEtXHRjYXNlIFNDVFBfTUFYU0VHOlxubmV0L3NjdHAvc29ja2V0LmM6ODIzMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjMzLVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzQtXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUl9JTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODIzNTpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcl9pbmZvKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzYtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMzgtXHRjYXNlIFNDVFBfQURBUFRBVElPTl9MQVlFUjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMzk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hZGFwdGF0aW9uX2xheWVyKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDAtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNDItXHRjYXNlIFNDVFBfQ09OVEVYVDpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNDM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9jb250ZXh0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDQtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI0NS1cdGNhc2UgU0NUUF9GUkFHTUVOVF9JTlRFUkxFQVZFOlxubmV0L3NjdHAvc29ja2V0LmM6ODI0NjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ZyYWdtZW50X2ludGVybGVhdmUoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI0Ny1cdFx0XHRcdFx0XHRcdCAgICAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ5LVx0Y2FzZSBTQ1RQX1BBUlRJQUxfREVMSVZFUllfUE9JTlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjUwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFydGlhbF9kZWxpdmVyeV9wb2ludChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MjUxLVx0XHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNTMtXHRjYXNlIFNDVFBfTUFYX0JVUlNUOlxubmV0L3NjdHAvc29ja2V0LmM6ODI1NDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heGJ1cnN0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNTUtXHRcdGJyZWFrO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNjItXHRjYXNlIFNDVFBfSE1BQ19JREVOVDpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9obWFjX2lkZW50KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjQtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI2NS1cdGNhc2UgU0NUUF9BVVRIX0FDVElWRV9LRVk6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjY2Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjY3LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjgtXHRjYXNlIFNDVFBfUEVFUl9BVVRIX0NIVU5LUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzAtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODI3Ni1cdGNhc2UgU0NUUF9HRVRfQVNTT0NfTlVNQkVSOlxubmV0L3NjdHAvc29ja2V0LmM6ODI3NzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzktXHRjYXNlIFNDVFBfR0VUX0FTU09DX0lEX0xJU1Q6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjgwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNzb2NfaWRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyODEtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI4Mi1cdGNhc2UgU0NUUF9BVVRPX0FTQ09ORjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyODM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjg0LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyODUtXHRjYXNlIFNDVFBfUEVFUl9BRERSX1RITERTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI4NjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhZGRyX3RocmVzaG9sZHMoc2ssIG9wdHZhbCwgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtODI4Ny1cdFx0XHRcdFx0XHRcdCAgb3B0bGVuLCBmYWxzZSk7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODI4OS1cdGNhc2UgU0NUUF9QRUVSX0FERFJfVEhMRFNfVjI6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjkwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFkZHJfdGhyZXNob2xkcyhzaywgb3B0dmFsLCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy04MjkxLVx0XHRcdFx0XHRcdFx0ICBvcHRsZW4sIHRydWUpO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyOTMtXHRjYXNlIFNDVFBfR0VUX0FTU09DX1NUQVRTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI5NDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTUtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI5Ni1cdGNhc2UgU0NUUF9SRUNWUkNWSU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTc6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTktXHRjYXNlIFNDVFBfUkVDVk5YVElORk86XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzAwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmVjdm54dGluZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODMwMS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzAyLVx0Y2FzZSBTQ1RQX1BSX1NVUFBPUlRFRDpcbm5ldC9zY3RwL3NvY2tldC5jOjgzMDM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODMwNC1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzA1LVx0Y2FzZSBTQ1RQX0RFRkFVTFRfUFJJTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODMwNjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfcHJpbmZvKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDctXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMDktXHRjYXNlIFNDVFBfUFJfQVNTT0NfU1RBVFVTOlxubmV0L3NjdHAvc29ja2V0LmM6ODMxMDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTEtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMTMtXHRjYXNlIFNDVFBfUFJfU1RSRUFNX1NUQVRVUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgzMTQ6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODMxNS1cdFx0XHRcdFx0XHRcdCBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMTctXHRjYXNlIFNDVFBfUkVDT05GSUdfU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODMxODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY29uZmlnX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE5LVx0XHRcdFx0XHRcdFx0ICAgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyMS1cdGNhc2UgU0NUUF9FTkFCTEVfU1RSRUFNX1JFU0VUOlxubmV0L3NjdHAvc29ja2V0LmM6ODMyMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuYWJsZV9zdHJyZXNldChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzIzLVx0XHRcdFx0XHRcdFx0IG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyNS1cdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSOlxubmV0L3NjdHAvc29ja2V0LmM6ODMyNjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcihzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzI3LVx0XHRcdFx0XHRcdCAgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyOS1cdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSX1ZBTFVFOlxubmV0L3NjdHAvc29ja2V0LmM6ODMzMDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcl92YWx1ZShzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzMxLVx0XHRcdFx0XHRcdFx0IG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMzMy1cdGNhc2UgU0NUUF9JTlRFUkxFQVZJTkdfU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODMzNDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ludGVybGVhdmluZ19zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODMzNS1cdFx0XHRcdFx0XHRcdFx0b3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MzM3LVx0Y2FzZSBTQ1RQX1JFVVNFX1BPUlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzM4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmV1c2VfcG9ydChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzM5LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDAtXHRjYXNlIFNDVFBfRVZFTlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM0Mi1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzQzLVx0Y2FzZSBTQ1RQX0FTQ09ORl9TVVBQT1JURUQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ0Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQ1LVx0XHRcdFx0XHRcdFx0ICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzNDctXHRjYXNlIFNDVFBfQVVUSF9TVVBQT1JURUQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXV0aF9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODM0OS1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODM1MS1cdGNhc2UgU0NUUF9FQ05fU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODM1MjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Vjbl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM1My1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzU0LVx0Y2FzZSBTQ1RQX0VYUE9TRV9QT1RFTlRJQUxMWV9GQUlMRURfU1RBVEU6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzU1Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGZfZXhwb3NlKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTYtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODM1Ny1cdGNhc2UgU0NUUF9SRU1PVEVfVURQX0VOQ0FQU19QT1JUOlxubmV0L3NjdHAvc29ja2V0LmM6ODM1ODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuY2FwX3BvcnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM1OS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzYwLVx0Y2FzZSBTQ1RQX1BMUE1UVURfUFJPQkVfSU5URVJWQUw6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzYxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM2Mi1cdFx0YnJlYWs7XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9OTY2MD1zdHJ1Y3QgcHJvdG8gc2N0cF9wcm90ID0ge1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTk2NzAtXHQuc2V0c29ja29wdCAgPVx0c2N0cF9zZXRzb2Nrb3B0LFxubmV0L3NjdHAvc29ja2V0LmM6OTY3MTpcdC5nZXRzb2Nrb3B0ICA9XHRzY3RwX2dldHNvY2tvcHQsXG5uZXQvc2N0cC9zb2NrZXQuYy05NjcyLVx0LmJwZl9ieXBhc3NfZ2V0c29ja29wdFx0PSBzY3RwX2JwZl9ieXBhc3NfZ2V0c29ja29wdCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz05NzE1PXN0cnVjdCBwcm90byBzY3RwdjZfcHJvdCA9IHtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy05NzI1LVx0LnNldHNvY2tvcHRcdD0gc2N0cF9zZXRzb2Nrb3B0LFxubmV0L3NjdHAvc29ja2V0LmM6OTcyNjpcdC5nZXRzb2Nrb3B0XHQ9IHNjdHBfZ2V0c29ja29wdCxcbm5ldC9zY3RwL3NvY2tldC5jLTk3MjctXHQuYnBmX2J5cGFzc19nZXRzb2Nrb3B0XHQ9IHNjdHBfYnBmX2J5cGFzc19nZXRzb2Nrb3B0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NDc5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV4YW1pbmluZyB0aGUgc2N0cF9nZXRzb2Nrb3B0IEZ1bmN0aW9uKioKCk9rYXksIGxldCYjMzk7cyBzZWUgd2hhdCB3ZSBjYW4gbGV2ZXJhZ2UgaGVyZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUgYXJlIGFsdGVybmF0aXZlIGZ1bmN0aW9ucyBpbiB0aGlzIGFyZWEgd2UgY2FuIHVzZSwgc28gZmlyc3QsIEkmIzM5O20gbm90aW5nIHRoYXQgYHNjdHBfZ2V0c29ja29wdGAgaXMgc3RhdGljLCBidXQgYXNzaWduZWQgdG8gYHNjdHBfcHJvdC5nZXRzb2Nrb3B0YC4gVGhhdCYjMzk7cyBhIGtleSBkZXRhaWwuIE5vdywgSSBoYXZlIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgbm9uLXN0YXRpYyBmdW5jdGlvbnMgdGhhdCBhY3R1YWxseSAqY2FsbCogYHNjdHBfZ2V0c29ja29wdGAuIE5vLCBpdCBpcyBjYWxsZWQgdGhyb3VnaCBhIGZ1bmN0aW9uIHBvaW50ZXIuIEludGVyZXN0aW5nLiBXaGF0IGFib3V0IGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgPyBUaGF0JiMzOTtzIGFsc28gc3RhdGljLgoKQXJlIHRoZXJlICphbnkqIGV4cG9ydGVkIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGJlIHN1aXRhYmxlPyBIb2xkIG9uLi4uIG1heWJlIGBzY3RwX2dldHNvY2tvcHRgIGlzIGFjdHVhbGx5IGZpbmUsIGV2ZW4gYmVpbmcgc3RhdGljLiBJdCYjMzk7cyBhIHNpemFibGUgZnVuY3Rpb24sIHNvIGlubGluaW5nIGlzIHByb2JhYmx5IG5vdCBoYXBwZW5pbmcuIEJ1dCB3YWl0Li4uIHNpbmNlIGBzY3RwX2dldHNvY2tvcHRgIGlzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciwgaXQmIzM5O3MgKmRlZmluaXRlbHkqIG5vdCBpbmxpbmVkLiBHb29kISBMZXQmIzM5O3MganVzdCBiZSB0aG9yb3VnaCBhbmQgdmVyaWZ5IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIG5vbi1zdGF0aWMgZnVuY3Rpb25zIG9mIGludGVyZXN0IGluIGBuZXQvc2N0cC9zb2NrZXQuY2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15pbnQgc2N0cF8uKlxcKCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwL3NvY2tldC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zY3RwL3NvY2tldC5jPTc1OD1zdGF0aWMgaW50IHNjdHBfc2VuZF9hc2NvbmZfZGVsX2lwKHN0cnVjdCBzb2NrXHRcdCpzayxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy05MDktLyogc2V0IGFkZHIgZXZlbnRzIHRvIGFzc29jcyBpbiB0aGUgZW5kcG9pbnQuICBlcCBhbmQgYWRkcl93cSBtdXN0IGJlIGxvY2tlZCAqL1xubmV0L3NjdHAvc29ja2V0LmM6OTEwOmludCBzY3RwX2FzY29uZl9tZ210KHN0cnVjdCBzY3RwX3NvY2sgKnNwLCBzdHJ1Y3Qgc2N0cF9zb2NrYWRkcl9lbnRyeSAqYWRkcncpXG5uZXQvc2N0cC9zb2NrZXQuYy05MTEte1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTQ4MTU9c3RhdGljIGludCBzY3RwX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNDgzMy1cbm5ldC9zY3RwL3NvY2tldC5jOjQ4MzQ6aW50IHNjdHBfaW5ldF9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkcl91bnNpemVkICp1YWRkcixcbm5ldC9zY3RwL3NvY2tldC5jLTQ4MzUtXHRcdCAgICAgIGludCBhZGRyX2xlbiwgaW50IGZsYWdzKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTUyMDg9c3RhdGljIHZvaWQgc2N0cF9zaHV0ZG93bihzdHJ1Y3Qgc29jayAqc2ssIGludCBob3cpXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTIyNi1cbm5ldC9zY3RwL3NvY2tldC5jOjUyMjc6aW50IHNjdHBfZ2V0X3NjdHBfaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxubmV0L3NjdHAvc29ja2V0LmMtNTIyOC1cdFx0ICAgICAgIHN0cnVjdCBzY3RwX2luZm8gKmluZm8pXG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTM1ND1zdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnNjdHBfdHJhbnNwb3J0X2dldF9pZHgoc3RydWN0IG5ldCAqbmV0LFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTUzNzEtXG5uZXQvc2N0cC9zb2NrZXQuYzo1MzcyOmludCBzY3RwX2Zvcl9lYWNoX2VuZHBvaW50KGludCAoKmNiKShzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqLCB2b2lkICopLFxubmV0L3NjdHAvc29ja2V0LmMtNTM3My1cdFx0XHQgICBzdHJ1Y3QgbmV0ICpuZXQsIGludCAqcG9zLCB2b2lkICpwKSB7XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTQwNz1FWFBPUlRfU1lNQk9MX0dQTChzY3RwX2Zvcl9lYWNoX2VuZHBvaW50KTtcbm5ldC9zY3RwL3NvY2tldC5jLTU0MDgtXG5uZXQvc2N0cC9zb2NrZXQuYzo1NDA5OmludCBzY3RwX3RyYW5zcG9ydF9sb29rdXBfcHJvY2VzcyhzY3RwX2NhbGxiYWNrX3QgY2IsIHN0cnVjdCBuZXQgKm5ldCxcbm5ldC9zY3RwL3NvY2tldC5jLTU0MTAtXHRcdFx0XHQgIGNvbnN0IHVuaW9uIHNjdHBfYWRkciAqbGFkZHIsXG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTQzNj1FWFBPUlRfU1lNQk9MX0dQTChzY3RwX3RyYW5zcG9ydF9sb29rdXBfcHJvY2Vzcyk7XG5uZXQvc2N0cC9zb2NrZXQuYy01NDM3LVxubmV0L3NjdHAvc29ja2V0LmM6NTQzODppbnQgc2N0cF90cmFuc3BvcnRfdHJhdmVyc2VfcHJvY2VzcyhzY3RwX2NhbGxiYWNrX3QgY2IsIHNjdHBfY2FsbGJhY2tfdCBjYl9kb25lLFxubmV0L3NjdHAvc29ja2V0LmMtNTQzOS1cdFx0XHRcdCAgICBzdHJ1Y3QgbmV0ICpuZXQsIGludCAqcG9zLCB2b2lkICpwKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTg2MDE9c3RhdGljIGludCBzY3RwX2xpc3Rlbl9zdGFydChzdHJ1Y3Qgc29jayAqc2ssIGludCBiYWNrbG9nKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTg2NTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo4NjU2OmludCBzY3RwX2luZXRfbGlzdGVuKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBiYWNrbG9nKVxubmV0L3NjdHAvc29ja2V0LmMtODY1Ny17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1ODUwCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBTQ1RQIEdldHNvY2tvcHQgSW1wbGVtZW50YXRpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgYGdldHNvY2tvcHRgIGlzIGhhbmRsZWQgZm9yIFNDVFAuIFRoZSBjb3JlIGVudHJ5IHBvaW50LCBgc2N0cF9nZXRzb2Nrb3B0YCwgaXMgZGVjbGFyZWQgc3RhdGljLCB3aGljaCBpbml0aWFsbHkgcmFpc2VkIGEgZmxhZy4gSG93ZXZlciwgaXQmIzM5O3MgdGhlIGZ1bmN0aW9uIHRoYXQmIzM5O3MgdWx0aW1hdGVseSBhc3NpZ25lZCB0byBgc2N0cF9wcm90LmdldHNvY2tvcHRgLiBMZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBjb25zaWRlciBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGBnZXRzb2Nrb3B0YCBmdW5jdGlvbnMgaW4gcGxheSBoZXJlLgoKUmlnaHQsIHNvIGV2ZW4gdGhvdWdoIGBzY3RwX2dldHNvY2tvcHRgIGFuZCBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBhcmUgc3RhdGljLCBTeXprYWxsZXIgKnNob3VsZCogYmUgYWJsZSB0byB0YXJnZXQgdGhlbSwgcHJvdmlkZWQgdGhleSBoYXZlbiYjMzk7dCBiZWVuIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyLiBXZSBrbm93IGBzY3RwX2dldHNvY2tvcHRgIGlzIGRlZmluaXRlbHkgKm5vdCogaW5saW5lZC4gVGhlIG90aGVyIGZ1bmN0aW9uLCBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCwgaXMgcG90ZW50aWFsbHkgcHJvYmxlbWF0aWMuIEl0JiMzOTtzIHBsYXVzaWJsZSB0aGF0IHRoZSBjb21waWxlciBjaG9zZSB0byBpbmxpbmUgaXQsIGJ1dCBpdCYjMzk7cyBhbHNvIGxhcmdlIGVub3VnaCB0aGF0IGl0IG1pZ2h0IGhhdmUgYmVlbiBsZWZ0IGFzIGEgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU28sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjb25maXJtIHdoZXRoZXIgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYWN0dWFsbHkgZ290IGlubGluZWQuIFRoYXQmIzM5O3MgdGhlIGtleSBxdWVzdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmM9NzAzMj1zdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc1LVxubmV0L3NjdHAvc29ja2V0LmM6NzA3NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc3LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz04MTM3PXN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjcyLVx0Y2FzZSBTQ1RQX0xPQ0FMX0FVVEhfQ0hVTktTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI3MzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzQtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjYxNQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcyBsYWlkIG91dCwgYXNzdW1pbmcgSSYjMzk7bSBhbHJlYWR5IGRlZXAgaW50byB0aGlzIGNvZGUgYW5kIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQ6CgoqKkFuYWx5emluZyB0aGUgRnVuY3Rpb24gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AqKgoKUmlnaHQsIGxldCYjMzk7cyB0YWtlIGEgcXVpY2sgbG9vayBhdCB0aGUgc2l6ZSBvZiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIG1lbW9yeSBmb290cHJpbnQgdGhpcyBmdW5jdGlvbiBoYXMsIGVzcGVjaWFsbHkgYXMgaXQgcmVsYXRlcyB0byB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5jZSBhbmQgcmVzb3VyY2UgdXNhZ2Ugb2YgdGhlIFNDVFAgaW1wbGVtZW50YXRpb24uIFVuZGVyc3RhbmRpbmcgaXRzIHNpemUgZGlyZWN0bHkgY29udHJpYnV0ZXMgdG8gbXkgYWJpbGl0eSB0byBvcHRpbWl6ZSB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgYW5kIGF2b2lkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3dzIG9yIGluZWZmaWNpZW50IG1lbW9yeSBhbGxvY2F0aW9uLiBJcyBpdCBhIHNtYWxsIGxvb2t1cCB0YWJsZT8gQSBjb21wbGV4IGRhdGEgc3RydWN0dXJlPyBJdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCB0aGUgc2NhbGUgb2YgaXQuIEl0IGlzIGFsc28gaW1wb3J0YW50IGluIGRlYnVnZ2luZywgYXMgdW5kZXJzdGFuZGluZyB0aGUgYW1vdW50IG9mIHJlc291cmNlcyBhIGZ1bmN0aW9uIHVzZXMgY2FuIHBvaW50IHRvd2FyZHMgdW5leHBlY3RlZCBib3R0bGVuZWNrcy4gSXQgaXMgdGltZSB0byBkZXRlcm1pbmUgaXRzIHNpemUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA3MDc2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzcwNzY6XHRzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG43MDc3Olx0XHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuNzA3ODpcdHtcbjcwNzk6XHRcdHN0cnVjdCBzY3RwX2VuZHBvaW50ICplcCA9IHNjdHBfc2soc2spLVx1MDAzZWVwO1xuNzA4MDpcdFx0c3RydWN0IHNjdHBfYXV0aGNodW5rcyBfX3VzZXIgKnAgPSAodm9pZCBfX3VzZXIgKilvcHR2YWw7XG43MDgxOlx0XHRzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzIHZhbDtcbjcwODI6XHRcdHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jO1xuNzA4MzpcdFx0c3RydWN0IHNjdHBfY2h1bmtzX3BhcmFtICpjaDtcbjcwODQ6XHRcdHUzMiAgICBudW1fY2h1bmtzID0gMDtcbjcwODU6XHRcdGNoYXIgX191c2VyICp0bztcbjcwODY6XHRcbjcwODc6XHRcdGlmIChsZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzKSlcbjcwODg6XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG43MDg5Olx0XG43MDkwOlx0XHRpZiAoY29weV9mcm9tX3VzZXIoXHUwMDI2dmFsLCBvcHR2YWwsIHNpemVvZih2YWwpKSlcbjcwOTE6XHRcdFx0cmV0dXJuIC1FRkFVTFQ7XG43MDkyOlx0XG43MDkzOlx0XHR0byA9IHAtXHUwMDNlZ2F1dGhfY2h1bmtzO1xuNzA5NDpcdFx0YXNvYyA9IHNjdHBfaWQyYXNzb2Moc2ssIHZhbC5nYXV0aF9hc3NvY19pZCk7XG43MDk1Olx0XHRpZiAoIWFzb2MgXHUwMDI2XHUwMDI2IHZhbC5nYXV0aF9hc3NvY19pZCAhPSBTQ1RQX0ZVVFVSRV9BU1NPQyBcdTAwMjZcdTAwMjZcbjcwOTY6XHRcdCAgICBzY3RwX3N0eWxlKHNrLCBVRFApKVxuNzA5NzpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjcwOTg6XHRcbjcwOTk6XHRcdGlmIChhc29jKSB7XG43MTAwOlx0XHRcdGlmICghYXNvYy1cdTAwM2VwZWVyLmF1dGhfY2FwYWJsZSlcbjcxMDE6XHRcdFx0XHRyZXR1cm4gLUVBQ0NFUztcbjcxMDI6XHRcdFx0Y2ggPSAoc3RydWN0IHNjdHBfY2h1bmtzX3BhcmFtICopYXNvYy1cdTAwM2VjLmF1dGhfY2h1bmtzO1xuNzEwMzpcdFx0fSBlbHNlIHtcbjcxMDQ6XHRcdFx0aWYgKCFlcC1cdTAwM2VhdXRoX2VuYWJsZSlcbjcxMDU6XHRcdFx0XHRyZXR1cm4gLUVBQ0NFUztcbjcxMDY6XHRcdFx0Y2ggPSBlcC1cdTAwM2VhdXRoX2NodW5rX2xpc3Q7XG43MTA3Olx0XHR9XG43MTA4Olx0XHRpZiAoIWNoKVxuNzEwOTpcdFx0XHRnb3RvIG51bTtcbjcxMTA6XHRcbjcxMTE6XHRcdG51bV9jaHVua3MgPSBudG9ocyhjaC1cdTAwM2VwYXJhbV9oZHIubGVuZ3RoKSAtIHNpemVvZihzdHJ1Y3Qgc2N0cF9wYXJhbWhkcik7XG43MTEyOlx0XHQvKiBhc29jLVx1MDAzZWMuYXV0aF9jaHVua3NbXSBob2xkcyBhdCBtb3N0IFNDVFBfQVVUSF9NQVhfQ0hVTktTIGJ5dGVzIGJ1dCBpdHNcbjcxMTM6XHRcdCAqIGxlbmd0aCBpcyByZXN0b3JlZCBmcm9tIHRoZSBzdGF0ZSBjb29raWUgYW5kIGlzIG5vdCBib3VuZGVkIGhlcmU7XG43MTE0Olx0XHQgKiBjbGFtcCBzbyBhbiBvdmVyc2l6ZWQgbGVuZ3RoIGNhbm5vdCByZWFkIHBhc3QgdGhlIGFycmF5LlxuNzExNTpcdFx0ICovXG43MTE2Olx0XHRpZiAobnVtX2NodW5rcyBcdTAwM2UgU0NUUF9BVVRIX01BWF9DSFVOS1MpXG43MTE3Olx0XHRcdG51bV9jaHVua3MgPSBTQ1RQX0FVVEhfTUFYX0NIVU5LUztcbjcxMTg6XHRcdGlmIChsZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzKSAmIzQzOyBudW1fY2h1bmtzKVxuNzExOTpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjcxMjA6XHRcbjcxMjE6XHRcdGlmIChjb3B5X3RvX3VzZXIodG8sIGNoLVx1MDAzZWNodW5rcywgbnVtX2NodW5rcykpXG43MTIyOlx0XHRcdHJldHVybiAtRUZBVUxUO1xuNzEyMzpcdG51bTpcbjcxMjQ6XHRcdGxlbiA9IHNpemVvZihzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzKSAmIzQzOyBudW1fY2h1bmtzO1xuNzEyNTpcdFx0aWYgKHB1dF91c2VyKGxlbiwgb3B0bGVuKSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3MjUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIEZ1bmN0aW9uIElubGluaW5nIGFuZCBTeW1ib2wgUmVzb2x1dGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBmdW5jdGlvbiwgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AsIGFuZCBpdCYjMzk7cyBhIGZhaXIgc2l6ZS4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0aGF0IGl0ICptaWdodCogZ2V0IGlubGluZWQgZGlyZWN0bHkgaW50byBgc2N0cF9nZXRzb2Nrb3B0YCwgd2hpY2gsIEkgcmVjYWxsLCBpcyBhIHJhdGhlciBzdWJzdGFudGlhbCBmdW5jdGlvbi4gQnV0IHRoZW4gSSByZW1lbWJlcmVkIHNvbWV0aGluZyBjcnVjaWFsIGFib3V0IGNvbXBpbGVyIGJlaGF2aW9yIHdpdGggbGFyZ2Ugc3dpdGNoIHN0YXRlbWVudHMsIHdoaWNoIGBzY3RwX2dldHNvY2tvcHRgIGlzLiBDb21waWxlcnMgYXJlIGdlbmVyYWxseSByZWx1Y3RhbnQgdG8gaW5saW5lIGZ1bmN0aW9ucyBjYWxsZWQgd2l0aGluIGdpYW50IHN3aXRjaCBzdGF0ZW1lbnRzLiBUaGV5JiMzOTtyZSB0cnlpbmcgdG8ga2VlcCB0aGUgc3RhY2sgZnJhbWUgc2l6ZSBtYW5hZ2VhYmxlIGFuZCBvcHRpbWl6ZWQuCgpUaGVyZWZvcmUsIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGlzIGFsbW9zdCBjZXJ0YWlubHkgZ29pbmcgdG8gcmVtYWluIGEgZGlzdGluY3Qgc3ltYm9sLCBub3QgZ2V0dGluZyBkaXJlY3RseSBtZXJnZWQuIFRvIGJlIHRob3JvdWdoIGFuZCBlbnN1cmUgdGhpcyBjb2RlIHBhdGggaXMgY292ZXJlZCBkdXJpbmcgYW5hbHlzaXMsIEkgc2hvdWxkIGFsc28gZXhwbGljaXRseSBpbmNsdWRlIGBzY3RwX2dldHNvY2tvcHRgIGluIGBGb2N1c1N5bWJvbHNgLgoKTm93LCBiZWZvcmUgSSBtb3ZlIG9uLCBsZXQgbWUgcXVpY2tseSBtYWtlIHN1cmUgSSYjMzk7bSB0YWtpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW50byBhY2NvdW50LiBJIG5lZWQgdG8gcmVtZW1iZXIgdG8gaW5jbHVkZSBgSVBfU0NUUGAgaW4gdGhlIGxpc3Qgb2YgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBJUF9TQ1RQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9LY29uZmlnLTUtXG5uZXQvc2N0cC9LY29uZmlnOjY6bWVudWNvbmZpZyBJUF9TQ1RQXG5uZXQvc2N0cC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtUaGUgU0NUUCBQcm90b2NvbFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODE4OQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQ29uZmlndXJhdGlvbiBhbmQgQ29kZSBDaGFuZ2VzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvbmZpZ3VyYXRpb24sIGFuZCBpdCBzZWVtcyBgSVBfU0NUUGAgaXMgdGhlIGtleSBwaWVjZSBoZXJlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcgZWxzZSByZWxhdGVkIHRvIHRoZSBTQ1RQIGNvbmZpZ3VyYXRpb24uIExldCBtZSBxdWlja2x5IHNjYW4gZm9yIG90aGVyIHJlbGV2YW50IG9wdGlvbnMsIGp1c3QgdG8gYmUgdGhvcm91Z2guIEl0IGxvb2tzIGxpa2UgdGhlIHBhdGNoIEkmIzM5O20gZXhhbWluaW5nIGRpcmVjdGx5IHRvdWNoZXMgYG5ldC9zY3RwL3NvY2tldC5jYCwgd2hpY2ggaXMgdGhlIGNvcmUgb2YgdGhlIFNDVFAgc29ja2V0IGltcGxlbWVudGF0aW9uLiBOb3csIGEgdGhvdWdodDogSXMgYFNDVFBfQVVUSGAgYSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcj8gVGhhdCB3b3VsZCBiZSB1c2VmdWwgaW5mb3JtYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNDVFBfQVVUSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODQxMwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDMwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipTQ1RQIEF1dGhlbnRpY2F0aW9uIENvbnVuZHJ1bSoqCgpBbHJpZ2h0LCBubyBgU0NUUF9BVVRIYCBjb25maWd1cmF0aW9uIG9wdGlvbiBwcmVzZW50LiBUaGF0JiMzOTtzIGEgYml0IG9kZCwgaXNuJiMzOTt0IGl0PyBNeSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIHRoYXQgaXQgd291bGQgYmUgZW5hYmxlZCBpbiBzb21lIHdheSwgYnV0IGNsZWFybHksIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBUaW1lIHRvIGNvbnN1bHQgdGhlIGBuZXQvc2N0cC9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHRoZSBkZWZpbml0aXZlIHNvdXJjZSBmb3Iga2VybmVsIG1vZHVsZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byBTQ1RQLiBJdCBzaG91bGQgaWxsdW1pbmF0ZSBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzLCBkZXBlbmRlbmNpZXMsIG9yIG1heWJlIGV2ZW4gcmV2ZWFsIHdoeSBgU0NUUF9BVVRIYCBpcyBhYnNlbnQgaW4gdGhlIGZpcnN0IHBsYWNlLiBUaGlzIGNvdWxkIGxlYWQgdG8gYSBzdHJhaWdodGZvcndhcmQgc29sdXRpb24sIG9yIGl0IG1pZ2h0IGZvcmNlIG1lIGRvd24gYSByYWJiaXQgaG9sZSBkZXBlbmRpbmcgb24gd2hhdCBpcyBmb3VuZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBLY29uZmlnIGhhcyB0byBzYXkhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdCNcbiAgIDM6XHQjIFNDVFAgY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRtZW51Y29uZmlnIElQX1NDVFBcbiAgIDc6XHRcdHRyaXN0YXRlIFwmIzM0O1RoZSBTQ1RQIFByb3RvY29sXCYjMzQ7XG4gICA4Olx0XHRkZXBlbmRzIG9uIElORVRcbiAgIDk6XHRcdHNlbGVjdCBDUllQVE9fTElCX1NIQTFcbiAgMTA6XHRcdHNlbGVjdCBDUllQVE9fTElCX1NIQTI1NlxuICAxMTpcdFx0c2VsZWN0IENSWVBUT19MSUJfVVRJTFNcbiAgMTI6XHRcdHNlbGVjdCBORVRfQ1JDMzJDXG4gIDEzOlx0XHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcbiAgMTQ6XHRcdGhlbHBcbiAgMTU6XHRcdCAgU3RyZWFtIENvbnRyb2wgVHJhbnNtaXNzaW9uIFByb3RvY29sXG4gIDE2Olx0XG4gIDE3Olx0XHQgIEZyb20gUkZDIDI5NjAgXHUwMDNjaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjk2MC50eHRcdTAwM2UuXG4gIDE4Olx0XG4gIDE5Olx0XHQgIFwmIzM0O1NDVFAgaXMgYSByZWxpYWJsZSB0cmFuc3BvcnQgcHJvdG9jb2wgb3BlcmF0aW5nIG9uIHRvcCBvZiBhXG4gIDIwOlx0XHQgIGNvbm5lY3Rpb25sZXNzIHBhY2tldCBuZXR3b3JrIHN1Y2ggYXMgSVAuICBJdCBvZmZlcnMgdGhlIGZvbGxvd2luZ1xuICAyMTpcdFx0ICBzZXJ2aWNlcyB0byBpdHMgdXNlcnM6XG4gIDIyOlx0XG4gIDIzOlx0XHQgIC0tIGFja25vd2xlZGdlZCBlcnJvci1mcmVlIG5vbi1kdXBsaWNhdGVkIHRyYW5zZmVyIG9mIHVzZXIgZGF0YSxcbiAgMjQ6XHRcdCAgLS0gZGF0YSBmcmFnbWVudGF0aW9uIHRvIGNvbmZvcm0gdG8gZGlzY292ZXJlZCBwYXRoIE1UVSBzaXplLFxuICAyNTpcdFx0ICAtLSBzZXF1ZW5jZWQgZGVsaXZlcnkgb2YgdXNlciBtZXNzYWdlcyB3aXRoaW4gbXVsdGlwbGUgc3RyZWFtcyxcbiAgMjY6XHRcdCAgd2l0aCBhbiBvcHRpb24gZm9yIG9yZGVyLW9mLWFycml2YWwgZGVsaXZlcnkgb2YgaW5kaXZpZHVhbCB1c2VyXG4gIDI3Olx0XHQgIG1lc3NhZ2VzLFxuICAyODpcdFx0ICAtLSBvcHRpb25hbCBidW5kbGluZyBvZiBtdWx0aXBsZSB1c2VyIG1lc3NhZ2VzIGludG8gYSBzaW5nbGUgU0NUUFxuICAyOTpcdFx0ICBwYWNrZXQsIGFuZFxuICAzMDpcdFx0ICAtLSBuZXR3b3JrLWxldmVsIGZhdWx0IHRvbGVyYW5jZSB0aHJvdWdoIHN1cHBvcnRpbmcgb2YgbXVsdGktXG4gIDMxOlx0XHQgIGhvbWluZyBhdCBlaXRoZXIgb3IgYm90aCBlbmRzIG9mIGFuIGFzc29jaWF0aW9uLlwmIzM0O1xuICAzMjpcdFxuICAzMzpcdFx0ICBUbyBjb21waWxlIHRoaXMgcHJvdG9jb2wgc3VwcG9ydCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG4gIDM0Olx0XHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzY3RwLiBEZWJ1ZyBtZXNzYWdlcyBhcmUgaGFuZGxlZCBieSB0aGVcbiAgMzU6XHRcdCAga2VybmVsJiMzOTtzIGR5bmFtaWMgZGVidWdnaW5nIGZyYW1ld29yay5cbiAgMzY6XHRcbiAgMzc6XHRcdCAgSWYgaW4gZG91YnQsIHNheSBOLlxuICAzODpcdFxuICAzOTpcdGlmIElQX1NDVFBcbiAgNDA6XHRcbiAgNDE6XHRjb25maWcgU0NUUF9EQkdfT0JKQ05UXG4gIDQyOlx0XHRib29sIFwmIzM0O1NDVFA6IERlYnVnIG9iamVjdCBjb3VudHNcJiMzNDtcbiAgNDM6XHRcdGRlcGVuZHMgb24gUFJPQ19GU1xuICA0NDpcdFx0aGVscFxuICA0NTpcdFx0ICBJZiB5b3Ugc2F5IFksIHRoaXMgd2lsbCBlbmFibGUgZGVidWdnaW5nIHN1cHBvcnQgZm9yIGNvdW50aW5nIHRoZVxuICA0NjpcdFx0ICB0eXBlIG9mIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGFsbG9jYXRlZC4gIFRoaXMgaXMgdXNlZnVsIGZvclxuICA0NzpcdFx0ICBpZGVudGlmeWluZyBtZW1vcnkgbGVha3MuIFRoaXMgZGVidWcgaW5mb3JtYXRpb24gY2FuIGJlIHZpZXdlZCBieVxuICA0ODpcdFx0ICAmIzM5O2NhdCAvcHJvYy9uZXQvc2N0cC9zY3RwX2RiZ19vYmpjbnQmIzM5O1xuICA0OTpcdFxuICA1MDpcdFx0ICBJZiB1bnN1cmUsIHNheSBOXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5MzQ1CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IFNDVFAgT3B0aW9uIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcsIGJhc2VkIG9uIHRoaXMsIGBJUF9TQ1RQYCBzZWVtcyBsaWtlIHRoZSBvbmx5IG5lY2Vzc2FyeSBvcHRpb24gd2UgbmVlZCB0byBjb25zaWRlci4gSSBzaG91bGQgZG91YmxlIGNoZWNrIGlmIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGlzIHN0YXRpYywgd2hpY2ggaXQgYXBwZWFycyB0byBiZS4gSG1tbSwgaXMgdGhlcmUgYW5vdGhlciBmdW5jdGlvbiB0aGF0IGNvdWxkIGJlIHV0aWxpemVkPyBPa2F5LCBgc2N0cF9nZXRzb2Nrb3B0YCBpcyBhbHNvIHN0YXRpYy4gV2FpdCwgYnV0IGBzY3RwX2dldHNvY2tvcHRgIGlzIGFzc2lnbmVkIHRvIGBzY3RwX3Byb3QuZ2V0c29ja29wdGAuIFdoYXQgYWJvdXQgYHNjdHBfc2V0c29ja29wdGA/IE9oLCB0aGF0JiMzOTtzIHN0YXRpYyBhcyB3ZWxsLgoKSXMgdGhlcmUgYSBmdW5jdGlvbiB0aGF0JiMzOTtzIGV4cG9ydGVkPyBObywgdGhlIHN0YW5kYXJkIGFwcHJvYWNoIGlzIGRlZmluaXRlbHkgdG8gaW50ZXJhY3Qgd2l0aCBTQ1RQIHNvY2tldCBvcHRpb25zIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c3RlbSBjYWxsLCB3aGljaCB0aGVuIGNhbGxzIGBzY3RwX2dldHNvY2tvcHRgLiBTaW5jZSBgc2N0cF9nZXRzb2Nrb3B0YCBpc24mIzM5O3QgaW5saW5lZCwgaXQmIzM5O2xsIHNob3cgdXAgaW4gdGhlIHN5bWJvbCB0YWJsZS4gV2FpdCBhIHNlY29uZCwgZXZlbiBzdGF0aWMgZnVuY3Rpb25zIGFyZSBsaXN0ZWQgaW4ga2FsbHN5bXMsIHRoZXkganVzdCBoYXZlIGxvY2FsIGJpbmRpbmchIFNvIFN5emthbGxlciBzaG91bGQgYmUgYWJsZSB0byBmdXp6IHRoZW0gaWYgdGhleSYjMzk7cmUgaW4ga2FsbHN5bXMgYW5kIG5vdCBpbmxpbmVkLiBHcmVhdCwgc28gYm90aCBgc2N0cF9nZXRzb2Nrb3B0YCBhbmQgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2Agc2hvdWxkIGJlIGZpbmUgdG8gd29yayB3aXRoLgoKTm93LCBsZXQmIzM5O3MganVzdCBxdWlja2x5IGNoZWNrIGlmIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGlzIGNhbGxlZCBhbnl3aGVyZSBlbHNlLCBqdXN0IHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9zb2NrZXQuYz03MDMyPXN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDc2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTgxMzc9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMjY0CgkJCQkJCQlvdXRwdXQ6IDE2MgoJCQkJCQkJdGhvdWdodHM6IDI1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBTQ1RQIFNvY2tldCBPcHRpb24gVnVsbmVyYWJpbGl0eSoqCgpPa2F5LCBzbyB0aGUgaW52ZXN0aWdhdGlvbiBjZW50ZXJzIGFyb3VuZCBgc2N0cF9nZXRzb2Nrb3B0YC4gTXkgaW5pdGlhbCBzY2FuIHNob3dzIHRoYXQgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgaXMgdGhlIG9ubHkgZnVuY3Rpb24gbW9kaWZpZWQuIFRoYXQgY29uZmlybXMgbXkgaW5pdGlhbCBodW5jaC4KClRoZSBjb3JlIG9mIHRoZSBpc3N1ZSBpcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgd2l0aGluIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgLiBUaGUgcGF0Y2ggY2xhbXBzIGBudW1fY2h1bmtzYCB0byBgU0NUUF9BVVRIX01BWF9DSFVOS1NgIHdoaWNoIGlzIGEgY3JpdGljYWwgZnVuY3Rpb25hbCBjaGFuZ2UuIFRoaXMgaXMgZGlyZWN0bHkgcmVsZXZhbnQgYmVjYXVzZSBgZ2V0c29ja29wdGAgaXMgYSB1c2Vyc3BhY2Ugc3lzY2FsbCBwYXRoIHRvIHRoaXMgY29kZS4gSXQmIzM5O3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBib3VuZHMgY2hlY2sgKmFjdHVhbGx5KiBwcmV2ZW50cyB0aGUgb3V0LW9mLWJvdW5kcyByZWFkIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IG5ldyByZWdyZXNzaW9ucy4KCkkmIzM5O3ZlIHZlcmlmaWVkIHRoZSBmdW5jdGlvbiBuYW1lIGFnYWluLCBgc2N0cF9nZXRzb2Nrb3B0YCwgbWFraW5nIHN1cmUgSSBkaWRuJiMzOTt0IG1pc2ludGVycHJldCBhbnl0aGluZyBhbG9uZyB0aGUgd2F5LiBTcGVjaWZpY2FsbHksIGBzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilgLgoKTm93LCBJJiMzOTttIHJlYWR5IHRvIG1vdmUgZm9yd2FyZCBhbmQgc2V0IHRoZSBhcHByb3ByaWF0ZSByZXN1bHRzIGZvciB0aGUgbmV4dCBzdGFnZSBvZiB0aGUgYW5hbHlzaXMuIFRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZSBhcmUgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYW5kLCBvZiBjb3Vyc2UsIHRoZSBlbnRyeSBwb2ludCB3aGljaCBpcyBgc2N0cF9nZXRzb2Nrb3B0YC4gVGhlIGNvbmZpZ3VyYXRpb24gbmVlZGVkIHdpbGwgYmUgYElQX1NDVFBgLCBhcyBpbmRpY2F0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzJiMzNDssCiAgICAmIzM0O3NjdHBfZ2V0c29ja29wdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYnkgY2xhbXBpbmcgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgU0NUUCBzb2NrZXQgb3B0aW9ucyBoYW5kbGluZyBhbmQgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c2NhbGwuIEl0IGlzIHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IHByZXZlbnRzIG91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3MmIzM0OywKICAgICYjMzQ7c2N0cF9nZXRzb2Nrb3B0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBieSBjbGFtcGluZyBgbnVtX2NodW5rc2AgdG8gYFNDVFBfQVVUSF9NQVhfQ0hVTktTYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBTQ1RQIHNvY2tldCBvcHRpb25zIGhhbmRsaW5nIGFuZCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgZ2V0c29ja29wdGAgc3lzY2FsbC4gSXQgaXMgd29ydGggZnV6emluZyB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgcHJldmVudHMgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI2OjUzLjg0MjU3NDc4NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0NTc3OTI3MjM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NcIixcbiAgICBcInNjdHBfZ2V0c29ja29wdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBieSBjbGFtcGluZyBgbnVtX2NodW5rc2AgdG8gYFNDVFBfQVVUSF9NQVhfQ0hVTktTYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBTQ1RQIHNvY2tldCBvcHRpb25zIGhhbmRsaW5nIGFuZCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgZ2V0c29ja29wdGAgc3lzY2FsbC4gSXQgaXMgd29ydGggZnV6emluZyB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgcHJldmVudHMgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNjo1My44NDI1ODIxODVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNzUzMjU4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFhNjAyZTI4OTY2MzZmYmVlY2I1M2Y3OGZjM2Q4MGI2YmYyNDliMzlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMzEgMjA6MjY6NTIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuY1xcbmluZGV4IGM3YjllMzI1ZWMxY2QuLmI3ZDJkY2JiM2M3YjcgMTAwNjQ0XFxuLS0tIGEvbmV0L3NjdHAvc29ja2V0LmNcXG4rKysgYi9uZXQvc2N0cC9zb2NrZXQuY1xcbkBAIC03MTA5LDYgKzcxMDksMTIgQEAgc3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbiBcXHRcXHRnb3RvIG51bTtcXG4gXFxuIFxcdG51bV9jaHVua3MgPSBudG9ocyhjaC1cXHUwMDNlcGFyYW1faGRyLmxlbmd0aCkgLSBzaXplb2Yoc3RydWN0IHNjdHBfcGFyYW1oZHIpO1xcbitcXHQvKiBhc29jLVxcdTAwM2VjLmF1dGhfY2h1bmtzW10gaG9sZHMgYXQgbW9zdCBTQ1RQX0FVVEhfTUFYX0NIVU5LUyBieXRlcyBidXQgaXRzXFxuK1xcdCAqIGxlbmd0aCBpcyByZXN0b3JlZCBmcm9tIHRoZSBzdGF0ZSBjb29raWUgYW5kIGlzIG5vdCBib3VuZGVkIGhlcmU7XFxuK1xcdCAqIGNsYW1wIHNvIGFuIG92ZXJzaXplZCBsZW5ndGggY2Fubm90IHJlYWQgcGFzdCB0aGUgYXJyYXkuXFxuK1xcdCAqL1xcbitcXHRpZiAobnVtX2NodW5rcyBcXHUwMDNlIFNDVFBfQVVUSF9NQVhfQ0hVTktTKVxcbitcXHRcXHRudW1fY2h1bmtzID0gU0NUUF9BVVRIX01BWF9DSFVOS1M7XFxuIFxcdGlmIChsZW4gXFx1MDAzYyBzaXplb2Yoc3RydWN0IHNjdHBfYXV0aGNodW5rcykgKyBudW1fY2h1bmtzKVxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI2OjU0LjM3MDg2MDkyM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjg0MDQ5NjI4OTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NcIixcbiAgICBcInNjdHBfZ2V0c29ja29wdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBieSBjbGFtcGluZyBgbnVtX2NodW5rc2AgdG8gYFNDVFBfQVVUSF9NQVhfQ0hVTktTYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBTQ1RQIHNvY2tldCBvcHRpb25zIGhhbmRsaW5nIGFuZCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgZ2V0c29ja29wdGAgc3lzY2FsbC4gSXQgaXMgd29ydGggZnV6emluZyB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgcHJldmVudHMgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhYTYwMmUyODk2NjM2ZmJlZWNiNTNmNzhmYzNkODBiNmJmMjQ5YjM5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMjA6MjY6NTIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jXG5pbmRleCBjN2I5ZTMyNWVjMWNkLi5iN2QyZGNiYjNjN2I3IDEwMDY0NFxuLS0tIGEvbmV0L3NjdHAvc29ja2V0LmNcbisrKyBiL25ldC9zY3RwL3NvY2tldC5jXG5AQCAtNzEwOSw2ICs3MTA5LDEyIEBAIHN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbiBcdFx0Z290byBudW07XG4gXG4gXHRudW1fY2h1bmtzID0gbnRvaHMoY2gtXHUwMDNlcGFyYW1faGRyLmxlbmd0aCkgLSBzaXplb2Yoc3RydWN0IHNjdHBfcGFyYW1oZHIpO1xuK1x0LyogYXNvYy1cdTAwM2VjLmF1dGhfY2h1bmtzW10gaG9sZHMgYXQgbW9zdCBTQ1RQX0FVVEhfTUFYX0NIVU5LUyBieXRlcyBidXQgaXRzXG4rXHQgKiBsZW5ndGggaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3RhdGUgY29va2llIGFuZCBpcyBub3QgYm91bmRlZCBoZXJlO1xuK1x0ICogY2xhbXAgc28gYW4gb3ZlcnNpemVkIGxlbmd0aCBjYW5ub3QgcmVhZCBwYXN0IHRoZSBhcnJheS5cbitcdCAqL1xuK1x0aWYgKG51bV9jaHVua3MgXHUwMDNlIFNDVFBfQVVUSF9NQVhfQ0hVTktTKVxuK1x0XHRudW1fY2h1bmtzID0gU0NUUF9BVVRIX01BWF9DSFVOS1M7XG4gXHRpZiAobGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IHNjdHBfYXV0aGNodW5rcykgKyBudW1fY2h1bmtzKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI2OjU0LjM3MDg2MjA3M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyOTQ5ODA3MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYG5ldC9zY3RwL3NvY2tldC5jYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvc2N0cC9zb2NrZXQuY2AsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYC4gSXQgc2VlbXMgdGhleSd2ZSBhZGRlZCBhIGJvdW5kcyBjaGVjayB0byBgbnVtX2NodW5rc2AgYWdhaW5zdCBgU0NUUF9BVVRIX01BWF9DSFVOS1NgLiBFeGNlbGxlbnQsIHRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGZpeCwgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQgdnVsbmVyYWJpbGl0eS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiVGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIHNvbWUgZnV6emluZy5cIlxuXG5Ob3csIGxldCdzIGRpZyBpbnRvIHRoZSBkZXRhaWxzIG9mIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgLiBBcyBhIGdldHNvY2tvcHQgaGFuZGxlciBmb3IgU0NUUCwgaXQgbmVlZHMgc2NydXRpbnkuIEknbGwgbWVudGFsbHkgYWRkIGl0IHRvIG15IGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2AgZm9yIHRoaXMgYXJlYS4gSG9sZCBvbiBhIHNlY29uZC4uLml0J3MgKnN0YXRpYyo/IFJpZ2h0LCBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgZGVjbGFyYXRpb24gaW4gYG5ldC9zY3RwL3NvY2tldC5jYC4gQWgsIHllcywgYHN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgLi4uKWAgY29uZmlybXMgaXQuXG5cblNpbmNlIGl0J3Mgc3RhdGljLCBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgaXQncyBjYWxsZWQgd2l0aGluIGBuZXQvc2N0cC9zb2NrZXQuY2AgaXRzZWxmLiBLbm93aW5nIHRoZSBjYWxsIHNpdGVzIG9mIHN0YXRpYyBmdW5jdGlvbnMgaXMgZXNzZW50aWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IGFuZCBwb3RlbnRpYWwgYXR0YWNrIHN1cmZhY2UuIExldCdzIHNlZSBob3cgYW5kIHdoZXJlIGl0J3MgYmVpbmcgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE0MiwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI2OjU4LjY2NTg0NjE0MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDkzMTI0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3NjdHAvc29ja2V0LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvc29ja2V0LmM9NzAzMj1zdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXFxubmV0L3NjdHAvc29ja2V0LmM6NzA3NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzA3Ny1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9ODEzNz1zdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjcyLVxcdGNhc2UgU0NUUF9MT0NBTF9BVVRIX0NIVU5LUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNjo1OC43NTA3ODI3MDZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjExMzYzODEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUgd2hhdCdzIGdvaW5nIG9uIGhlcmUuXG5cbioqQW5hbHl6aW5nIHRoZSBgc2N0cF9nZXRzb2Nrb3B0YCBGdW5jdGlvbiBDYWxsKipcblxuUmlnaHQsIHNvIEknbSBkZWFsaW5nIHdpdGggYSBmdW5jdGlvbiBjYWxsIG9yaWdpbmF0aW5nIGZyb20gYHNjdHBfZ2V0c29ja29wdGAuIFRoYXQgbWFrZXMgc2Vuc2U7IGl0J3MgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGhhbmRsaW5nIGBnZXRzb2Nrb3B0YCBjYWxscyByZWxhdGVkIHRvIFNDVFAgc29ja2V0cy4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGZ1bmN0aW9uLiBMZXQncyBzdGFydCB3aXRoIGEgcXVpY2sgY2hlY2suIElzIHRoaXMgYSBzdGF0aWMgZnVuY3Rpb24/IEtub3dpbmcgaXRzIHNjb3BlLCBhbmQgaWYgaXQncyB2aXNpYmxlIG91dHNpZGUgdGhlIGZpbGUgaXQncyBkZWNsYXJlZCBpbiwgY2FuIHNpZ25pZmljYW50bHkgaW1wYWN0IGhvdyBJIG5lZWQgdG8gYW5hbHl6ZSBpdHMgYmVoYXZpb3IgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBwYXJ0cyBvZiB0aGUgU0NUUCBpbXBsZW1lbnRhdGlvbi4gSSdsbCBuZWVkIHRvIGtub3cgd2hldGhlciB0aGUgZnVuY3Rpb24gbmFtZSwgYHNjdHBfZ2V0c29ja29wdGAsIGlzIGRpcmVjdGx5IHVzZWQgaW4gb3RoZXIgcGFydHMgb2YgdGhlIGNvZGUuIFRoYXQgZ2l2ZXMgbWUgY2x1ZXMgYWJvdXQgaG93IHRpZ2h0bHkgY291cGxlZCBvciBtb2R1bGFyIHRoaXMgZnVuY3Rpb24gaXMuIEtub3dpbmcgd2hldGhlciB0aGUgZnVuY3Rpb24gaXMgc3RhdGljIG9yIG5vdCB3aWxsIGNsYXJpZnkgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAyNiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjAzLjk2MjE1MDQwOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDg3MjMwNDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2N0cF9nZXRzb2Nrb3B0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jPTEzODE9c3RydWN0IGNvbXBhdF9zY3RwX2dldGFkZHJzX29sZCB7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy0xMzg3LVxcbm5ldC9zY3RwL3NvY2tldC5jOjEzODg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfY29ubmVjdHgzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy0xMzg5LVxcdFxcdFxcdFxcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTU0Nzc9RVhQT1JUX1NZTUJPTF9HUEwoc2N0cF90cmFuc3BvcnRfdHJhdmVyc2VfcHJvY2Vzcyk7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01NDg1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU0ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfc2N0cF9zdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU0ODctXFx0XFx0XFx0XFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU1NjY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRyX2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU1NjctXFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTYyOC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NjI5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Rpc2FibGVfZnJhZ21lbnRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy01NjMwLVxcdFxcdFxcdFxcdFxcdGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU2NTAtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NTY1MTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9ldmVudHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU2NTItXFx0XFx0XFx0XFx0ICBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01Njg1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU2ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXV0b2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbm5ldC9zY3RwL3NvY2tldC5jLTU2ODcte1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9NTcwMj1zdGF0aWMgaW50IHNjdHBfZG9fcGVlbG9mZihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfYXNzb2NfdCBpZCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU3NDUtXFxubmV0L3NjdHAvc29ja2V0LmM6NTc0NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfcGVlbG9mZl9hcmdfdCAqcGVlbG9mZixcXG5uZXQvc2N0cC9zb2NrZXQuYy01NzQ3LVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IGZpbGUgKipuZXdmaWxlLCB1bnNpZ25lZCBmbGFncylcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU3ODEtXFxubmV0L3NjdHAvc29ja2V0LmM6NTc4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbm5ldC9zY3RwL3NvY2tldC5jLTU3ODMte1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTc5My1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1Nzk0OlxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzaywgXFx1MDAyNnBlZWxvZmYsIFxcdTAwMjZuZXdmaWxlLCAwKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy01Nzk1LVxcdGlmIChyZXR2YWwgXFx1MDAzYyAwKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTgxNC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1ODE1OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfZmxhZ3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU4MTYtXFx0XFx0XFx0XFx0XFx0IGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU4MjctXFxubmV0L3NjdHAvc29ja2V0LmM6NTgyODpcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9jb21tb24oc2ssIFxcdTAwMjZwZWVsb2ZmLnBfYXJnLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU4MjktXFx0XFx0XFx0XFx0XFx0XFx0XFx1MDAyNm5ld2ZpbGUsIHBlZWxvZmYuZmxhZ3MpO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTk4MS0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo1OTgyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcl9wYXJhbXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU5ODMtXFx0XFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTYxMjQtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjEyNTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9kZWxheWVkX2FjayhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjEyNi1cXHRcXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTYxOTgtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjE5OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9pbml0bXNnKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbm5ldC9zY3RwL3NvY2tldC5jLTYyMDAte1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjIxMS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo2MjEyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcnMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTYyMTMtXFx0XFx0XFx0XFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9NjI2Mz1zdGF0aWMgaW50IHNjdHBfY29weV9sYWRkcnMoc3RydWN0IHNvY2sgKnNrLCBfX3UxNiBwb3J0LCB2b2lkICp0byxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTYzMDctXFxubmV0L3NjdHAvc29ja2V0LmM6NjMwODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hZGRycyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjMwOS1cXHRcXHRcXHRcXHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjQxNS0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NDE2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjQxNy1cXHRcXHRcXHRcXHRcXHRjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02NDU3LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY0NTg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWRhcHRhdGlvbl9sYXllcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjQ1OS1cXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY0OTYtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjQ5NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NlbmRfcGFyYW0oc3RydWN0IHNvY2sgKnNrLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY0OTgtXFx0XFx0XFx0XFx0XFx0aW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY1NDItICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjU0MzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NuZGluZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY1NDQtXFx0XFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY1OTMtXFxubmV0L3NjdHAvc29ja2V0LmM6NjU5NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9ub2RlbGF5KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NTk1LVxcdFxcdFxcdFxcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY2MjItICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjYyMzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9ydG9pbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NjI0LVxcdFxcdFxcdFxcdGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02Njc2LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY2Nzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNzb2NpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02Njc4LVxcdFxcdFxcdFxcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY3NDUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6Njc0NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9tYXBwZWR2NChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjc0Ny1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjc2OC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NzY5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2NvbnRleHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY3NzAtXFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjgyNS0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODI2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjgyNy1cXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY4NzItICovXFxubmV0L3NjdHAvc29ja2V0LmM6Njg3MzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9mcmFnbWVudF9pbnRlcmxlYXZlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02ODc0LVxcdFxcdFxcdFxcdFxcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02ODk1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY4OTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGFydGlhbF9kZWxpdmVyeV9wb2ludChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjg5Ny1cXHRcXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02OTE5LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY5MjA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWF4YnVyc3Qoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY5MjEtXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02OTU5LVxcbm5ldC9zY3RwL3NvY2tldC5jOjY5NjA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfaG1hY19pZGVudChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjk2MS1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjk5NS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo2OTk2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2FjdGl2ZV9rZXkoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY5OTctXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcwMzEtXFxubmV0L3NjdHAvc29ja2V0LmM6NzAzMjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MDMzLVxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjcwNzY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcxMzctICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzEzODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hc3NvY19udW1iZXIoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcxMzktXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcxNjgtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzE2OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzE3MC1cXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MTkzLSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjcxOTQ6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNzb2NfaWRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MTk1LVxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MjQzLSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjcyNDQ6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGFkZHJfdGhyZXNob2xkcyhzdHJ1Y3Qgc29jayAqc2ssXFxubmV0L3NjdHAvc29ja2V0LmMtNzI0NS1cXHRcXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IGxlbixcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTczMDItICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzMwMzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hc3NvY19zdGF0cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzMwNC1cXHRcXHRcXHRcXHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTczNjAtXFxubmV0L3NjdHAvc29ja2V0LmM6NzM2MTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzdHJ1Y3Qgc29jayAqc2ssXFx0aW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MzYyLVxcdFxcdFxcdFxcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzM4MC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzgxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY3ZueHRpbmZvKHN0cnVjdCBzb2NrICpzayxcXHRpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTczODItXFx0XFx0XFx0XFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NDAwLVxcbm5ldC9zY3RwL3NvY2tldC5jOjc0MDE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03NDAyLVxcdFxcdFxcdFxcdFxcdGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NDM5LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc0NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9wcmluZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc0NDEtXFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzQ4NS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03NDg3LVxcdFxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc1NDQtXFxubmV0L3NjdHAvc29ja2V0LmM6NzU0NTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc1NDYtXFx0XFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc2MDgtXFxubmV0L3NjdHAvc29ja2V0LmM6NzYwOTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWNvbmZpZ19zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc2MTAtXFx0XFx0XFx0XFx0XFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc2NDctXFxubmV0L3NjdHAvc29ja2V0LmM6NzY0ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmFibGVfc3RycmVzZXQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc2NDktXFx0XFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc2ODYtXFxubmV0L3NjdHAvc29ja2V0LmM6NzY4NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXIoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc2ODgtXFx0XFx0XFx0XFx0ICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzcyNS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NzI2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcl92YWx1ZShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzcyNy1cXHRcXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzc2Ny1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NzY4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2ludGVybGVhdmluZ19zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc3NjktXFx0XFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzgwNi1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODA3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JldXNlX3BvcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc4MDgtXFx0XFx0XFx0XFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc4MjYtXFxubmV0L3NjdHAvc29ja2V0LmM6NzgyNzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9ldmVudChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtNzgyOC1cXHRcXHRcXHRcXHQgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzg2MS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODYyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2FzY29uZl9zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc4NjMtXFx0XFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAwLVxcbm5ldC9zY3RwL3NvY2tldC5jOjc5MDE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXV0aF9zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc5MDItXFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzkzOS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3OTQwOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Vjbl9zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc5NDEtXFx0XFx0XFx0XFx0XFx0IGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03OTc4LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc5Nzk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGZfZXhwb3NlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03OTgwLVxcdFxcdFxcdFxcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgwMTctXFxubmV0L3NjdHAvc29ja2V0LmM6ODAxODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmNhcF9wb3J0KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy04MDE5LVxcdFxcdFxcdFxcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgwNzYtXFxubmV0L3NjdHAvc29ja2V0LmM6ODA3NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcm9iZV9pbnRlcnZhbChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtODA3OC1cXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MTM2LVxcbm5ldC9zY3RwL3NvY2tldC5jOjgxMzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgxMzgtXFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODE2Ny1cXHRjYXNlIFNDVFBfU1RBVFVTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxNjg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTY5LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzAtXFx0Y2FzZSBTQ1RQX0RJU0FCTEVfRlJBR01FTlRTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzE6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Rpc2FibGVfZnJhZ21lbnRzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTcyLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MTc0LVxcdGNhc2UgU0NUUF9FVkVOVFM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE3NTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZXZlbnRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTc2LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzctXFx0Y2FzZSBTQ1RQX0FVVE9DTE9TRTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTc4OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvY2xvc2Uoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzktXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4MC1cXHRjYXNlIFNDVFBfU09DS09QVF9QRUVMT0ZGOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxODE6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmYoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxODItXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4My1cXHRjYXNlIFNDVFBfU09DS09QVF9QRUVMT0ZGX0ZMQUdTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxODQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfZmxhZ3Moc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxODUtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4Ni1cXHRjYXNlIFNDVFBfUEVFUl9BRERSX1BBUkFNUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTg3OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTg4LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTAtXFx0Y2FzZSBTQ1RQX0RFTEFZRURfU0FDSzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTkxOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kZWxheWVkX2FjayhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODE5Mi1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk0LVxcdGNhc2UgU0NUUF9JTklUTVNHOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxOTU6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2luaXRtc2coc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTYtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE5Ny1cXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUlM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE5ODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRycyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODE5OS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDEtXFx0Y2FzZSBTQ1RQX0dFVF9MT0NBTF9BRERSUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjAyOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hZGRycyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODIwMy1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjA1LVxcdGNhc2UgU0NUUF9TT0NLT1BUX0NPTk5FQ1RYMzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA2OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9jb25uZWN0eDMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDctXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODIwOC1cXHRjYXNlIFNDVFBfREVGQVVMVF9TRU5EX1BBUkFNOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMDk6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfc2VuZF9wYXJhbShzaywgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTAtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIG9wdHZhbCwgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTItXFx0Y2FzZSBTQ1RQX0RFRkFVTFRfU05ESU5GTzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjEzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NuZGluZm8oc2ssIGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjE0LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBvcHR2YWwsIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjE2LVxcdGNhc2UgU0NUUF9QUklNQVJZX0FERFI6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIxNzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJpbWFyeV9hZGRyKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjE4LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTktXFx0Y2FzZSBTQ1RQX05PREVMQVk6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIyMDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbm9kZWxheShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIyMS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjIyLVxcdGNhc2UgU0NUUF9SVE9JTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjM6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjQtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODIyNS1cXHRjYXNlIFNDVFBfQVNTT0NJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jaW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIyNy1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjI4LVxcdGNhc2UgU0NUUF9JX1dBTlRfTUFQUEVEX1Y0X0FERFI6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIyOTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbWFwcGVkdjQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzAtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODIzMS1cXHRjYXNlIFNDVFBfTUFYU0VHOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMzI6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIzMy1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjM0LVxcdGNhc2UgU0NUUF9HRVRfUEVFUl9BRERSX0lORk86XFxubmV0L3NjdHAvc29ja2V0LmM6ODIzNTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRyX2luZm8oc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzYtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzgtXFx0Y2FzZSBTQ1RQX0FEQVBUQVRJT05fTEFZRVI6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIzOTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYWRhcHRhdGlvbl9sYXllcihzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI0MC1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI0Mi1cXHRjYXNlIFNDVFBfQ09OVEVYVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjQzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9jb250ZXh0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ0LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDUtXFx0Y2FzZSBTQ1RQX0ZSQUdNRU5UX0lOVEVSTEVBVkU6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI0NjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZnJhZ21lbnRfaW50ZXJsZWF2ZShzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI0Ny1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ5LVxcdGNhc2UgU0NUUF9QQVJUSUFMX0RFTElWRVJZX1BPSU5UOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNTA6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhcnRpYWxfZGVsaXZlcnlfcG9pbnQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNTEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNTMtXFx0Y2FzZSBTQ1RQX01BWF9CVVJTVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjU0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9tYXhidXJzdChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI1NS1cXHRcXHRicmVhaztcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjItXFx0Y2FzZSBTQ1RQX0hNQUNfSURFTlQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI2MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfaG1hY19pZGVudChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI2NC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjY1LVxcdGNhc2UgU0NUUF9BVVRIX0FDVElWRV9LRVk6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI2NjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI2Ny1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjY4LVxcdGNhc2UgU0NUUF9QRUVSX0FVVEhfQ0hVTktTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjk6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzAtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXFx0Y2FzZSBTQ1RQX0xPQ0FMX0FVVEhfQ0hVTktTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNzM6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc0LVxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc2LVxcdGNhc2UgU0NUUF9HRVRfQVNTT0NfTlVNQkVSOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNzc6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI3OC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc5LVxcdGNhc2UgU0NUUF9HRVRfQVNTT0NfSURfTElTVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjgwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc3NvY19pZHMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyODEtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODI4Mi1cXHRjYXNlIFNDVFBfQVVUT19BU0NPTkY6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI4MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXV0b19hc2NvbmYoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyODQtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODI4NS1cXHRjYXNlIFNDVFBfUEVFUl9BRERSX1RITERTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyODY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhZGRyX3RocmVzaG9sZHMoc2ssIG9wdHZhbCwgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyODctXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBvcHRsZW4sIGZhbHNlKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyODktXFx0Y2FzZSBTQ1RQX1BFRVJfQUREUl9USExEU19WMjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjkwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wYWRkcl90aHJlc2hvbGRzKHNrLCBvcHR2YWwsIGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjkxLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgb3B0bGVuLCB0cnVlKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTMtXFx0Y2FzZSBTQ1RQX0dFVF9BU1NPQ19TVEFUUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4Mjk0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc3NvY19zdGF0cyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI5NS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk2LVxcdGNhc2UgU0NUUF9SRUNWUkNWSU5GTzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4Mjk3OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI5OC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk5LVxcdGNhc2UgU0NUUF9SRUNWTlhUSU5GTzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzAwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9yZWN2bnh0aW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODMwMS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzAyLVxcdGNhc2UgU0NUUF9QUl9TVVBQT1JURUQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMwMzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzA0LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDUtXFx0Y2FzZSBTQ1RQX0RFRkFVTFRfUFJJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMDY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfcHJpbmZvKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzA3LVxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzA5LVxcdGNhc2UgU0NUUF9QUl9BU1NPQ19TVEFUVVM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMxMDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJfYXNzb2NzdGF0dXMoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTMtXFx0Y2FzZSBTQ1RQX1BSX1NUUkVBTV9TVEFUVVM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMxNDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJfc3RyZWFtc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE1LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMxNy1cXHRjYXNlIFNDVFBfUkVDT05GSUdfU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMTg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY29uZmlnX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODMxOS1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMjEtXFx0Y2FzZSBTQ1RQX0VOQUJMRV9TVFJFQU1fUkVTRVQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMyMjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZW5hYmxlX3N0cnJlc2V0KHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzIzLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMyNS1cXHRjYXNlIFNDVFBfU1RSRUFNX1NDSEVEVUxFUjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzI2OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXIoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMjctXFx0XFx0XFx0XFx0XFx0XFx0ICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMjktXFx0Y2FzZSBTQ1RQX1NUUkVBTV9TQ0hFRFVMRVJfVkFMVUU6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMzMDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfc2NoZWR1bGVyX3ZhbHVlKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzMxLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMzMy1cXHRjYXNlIFNDVFBfSU5URVJMRUFWSU5HX1NVUFBPUlRFRDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzM0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9pbnRlcmxlYXZpbmdfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzM1LVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzM3LVxcdGNhc2UgU0NUUF9SRVVTRV9QT1JUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMzg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JldXNlX3BvcnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzMzktXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM0MC1cXHRjYXNlIFNDVFBfRVZFTlQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODM0MTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDItXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM0My1cXHRjYXNlIFNDVFBfQVNDT05GX1NVUFBPUlRFRDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc2NvbmZfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQ1LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDctXFx0Y2FzZSBTQ1RQX0FVVEhfU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNDg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2F1dGhfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQ5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzUxLVxcdGNhc2UgU0NUUF9FQ05fU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNTI6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Vjbl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTMtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM1NC1cXHRjYXNlIFNDVFBfRVhQT1NFX1BPVEVOVElBTExZX0ZBSUxFRF9TVEFURTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzU1OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZl9leHBvc2Uoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTYtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM1Ny1cXHRjYXNlIFNDVFBfUkVNT1RFX1VEUF9FTkNBUFNfUE9SVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzU4OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9lbmNhcF9wb3J0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzU5LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNjAtXFx0Y2FzZSBTQ1RQX1BMUE1UVURfUFJPQkVfSU5URVJWQUw6XFxubmV0L3NjdHAvc29ja2V0LmM6ODM2MTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNjItXFx0XFx0YnJlYWs7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYz05NjYwPXN0cnVjdCBwcm90byBzY3RwX3Byb3QgPSB7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy05NjcwLVxcdC5zZXRzb2Nrb3B0ICA9XFx0c2N0cF9zZXRzb2Nrb3B0LFxcbm5ldC9zY3RwL3NvY2tldC5jOjk2NzE6XFx0LmdldHNvY2tvcHQgID1cXHRzY3RwX2dldHNvY2tvcHQsXFxubmV0L3NjdHAvc29ja2V0LmMtOTY3Mi1cXHQuYnBmX2J5cGFzc19nZXRzb2Nrb3B0XFx0PSBzY3RwX2JwZl9ieXBhc3NfZ2V0c29ja29wdCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTk3MTU9c3RydWN0IHByb3RvIHNjdHB2Nl9wcm90ID0ge1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtOTcyNS1cXHQuc2V0c29ja29wdFxcdD0gc2N0cF9zZXRzb2Nrb3B0LFxcbm5ldC9zY3RwL3NvY2tldC5jOjk3MjY6XFx0LmdldHNvY2tvcHRcXHQ9IHNjdHBfZ2V0c29ja29wdCxcXG5uZXQvc2N0cC9zb2NrZXQuYy05NzI3LVxcdC5icGZfYnlwYXNzX2dldHNvY2tvcHRcXHQ9IHNjdHBfYnBmX2J5cGFzc19nZXRzb2Nrb3B0LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzowNC4wNzA4ODA4MDNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjA0NjMyMzYxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBzY3RwX2dldHNvY2tvcHRgIEZ1bmN0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYHNjdHBfZ2V0c29ja29wdGAuIEl0J3MgZGVmaW5lZCBhcyBhIGBzdGF0aWNgIGZ1bmN0aW9uLCB3aGljaCBpbml0aWFsbHkgbWFrZXMgbWUgdGhpbmsgaXQgbWlnaHQgbm90IGJlIGEgZ2xvYmFsbHkgYWNjZXNzaWJsZSBzeW1ib2wuIEJ1dCB0aGVuLCBpdCdzIGJlaW5nIGFzc2lnbmVkIHRvIGBzY3RwX3Byb3QuZ2V0c29ja29wdGAgYW5kIGBzY3RwdjZfcHJvdC5nZXRzb2Nrb3B0YC4gVGhhdCdzIGludGVyZXN0aW5nLCBiZWNhdXNlIHRoYXQgc3VnZ2VzdHMgaXQgKmlzKiBwYXJ0IG9mIHRoZSBwcm90b2NvbCdzIGludGVyZmFjZSwgZXZlbiBpZiBub3QgZGlyZWN0bHkgZXhwb3NlZCBpbiB0aGUgc3ltYm9sIHRhYmxlLlxuXG5Tbywgc2luY2UgaXQncyBgc3RhdGljYCwgaXQgd29uJ3QgYmUgaW4gdGhlIHN5bWJvbCB0YWJsZSBhcyBhIGdsb2JhbCBzeW1ib2wuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyBleHBvcnRlZCBvciBpZiB0aGVyZSdzIGEgd3JhcHBlci4gTm9wZS4gSXQncyBhc3NpZ25lZCB0byBgc3RydWN0IHByb3RvIHNjdHBfcHJvdGAsIHJpZ2h0PyBBbHJpZ2h0LlxuXG5UaGUgc3RhbmRhcmQgc3lzY2FsbCBwYXRoIGZvciBgZ2V0c29ja29wdGAgd2lsbCBldmVudHVhbGx5IGNhbGwgYHNrLVx1MDAzZXNrX3Byb3QtXHUwMDNlZ2V0c29ja29wdGAuIFRoYXQgbWVhbnMgYHNjdHBfZ2V0c29ja29wdGAgKmlzKiByZWFjaGFibGUgaW5kaXJlY3RseS5cblxuVGhlIHF1ZXN0aW9uIGlzLCBzaG91bGQgSSBhZGQgYHNjdHBfZ2V0c29ja29wdGAgdG8gYEZvY3VzU3ltYm9sc2A/IE5vcm1hbGx5LCBJIG1pZ2h0IGJlIGhlc2l0YW50IHdpdGggYSBzdGF0aWMgZnVuY3Rpb24gYmVjYXVzZSBvZiBwb3RlbnRpYWwgaW5saW5pbmcsIGJ1dCBpbiB0aGlzIGNhc2UsIGl0cyBhZGRyZXNzIGlzIGFjdHVhbGx5IGJlaW5nIHRha2VuLCBiZWNhdXNlIGl0J3MgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLiBUaGVyZWZvcmUsIGlubGluaW5nIGlzIG91dCBvZiB0aGUgcXVlc3Rpb24uIEhvd2V2ZXIsIGBzY3RwX2dldHNvY2tvcHRgIGlzIGEgbGFyZ2UgZnVuY3Rpb24uLi5cblxuV2FpdCBhIHNlY29uZCwgaXQgYmVpbmcgc3RhdGljIGRvZXNuJ3QgbWVhbiBpdCdzIGlubGluZWQgaGVyZSwgc2luY2UgaXRzIGFkZHJlc3MgaXMgdGFrZW4uIEFscmlnaHQuIEdvb2QgdG8ga25vdy4gQnV0IGlzIHRoZXJlIGFueSBvdGhlciBub24tc3RhdGljIGZ1bmN0aW9uPyBMZXQgbWUgY2hlY2sgYG5ldC9zY3RwL3NvY2tldC5jYCB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBleHBvcnRlZCBvciBnbG9iYWwgZnVuY3Rpb25zIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM1NDEsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MTYuMTE3MjA3NDAxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3OTYxMTI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNjdHBfZ2V0c29ja29wdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvc29ja2V0LmM9MTM4MT1zdHJ1Y3QgY29tcGF0X3NjdHBfZ2V0YWRkcnNfb2xkIHtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTEzODctXFxubmV0L3NjdHAvc29ja2V0LmM6MTM4ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9jb25uZWN0eDMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTEzODktXFx0XFx0XFx0XFx0ICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9NTQ3Nz1FWFBPUlRfU1lNQk9MX0dQTChzY3RwX3RyYW5zcG9ydF90cmF2ZXJzZV9wcm9jZXNzKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU0ODUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NTQ4NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY3RwX3N0YXR1cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNTQ4Ny1cXHRcXHRcXHRcXHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU1NjUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NTU2NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNTU2Ny1cXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01NjI4LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU2Mjk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGlzYWJsZV9mcmFnbWVudHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU2MzAtXFx0XFx0XFx0XFx0XFx0Y2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTY1MC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NjUxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2V2ZW50cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtNTY1Mi1cXHRcXHRcXHRcXHQgIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU2ODUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NTY4NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRvY2xvc2Uoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxubmV0L3NjdHAvc29ja2V0LmMtNTY4Ny17XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYz01NzAyPXN0YXRpYyBpbnQgc2N0cF9kb19wZWVsb2ZmKHN0cnVjdCBzb2NrICpzaywgc2N0cF9hc3NvY190IGlkLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTc0NS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NzQ2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfY29tbW9uKHN0cnVjdCBzb2NrICpzaywgc2N0cF9wZWVsb2ZmX2FyZ190ICpwZWVsb2ZmLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU3NDctXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgZmlsZSAqKm5ld2ZpbGUsIHVuc2lnbmVkIGZsYWdzKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTc4MS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NzgyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmYoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxubmV0L3NjdHAvc29ja2V0LmMtNTc4My17XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01NzkzLVxcbm5ldC9zY3RwL3NvY2tldC5jOjU3OTQ6XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfY29tbW9uKHNrLCBcXHUwMDI2cGVlbG9mZiwgXFx1MDAyNm5ld2ZpbGUsIDApO1xcbm5ldC9zY3RwL3NvY2tldC5jLTU3OTUtXFx0aWYgKHJldHZhbCBcXHUwMDNjIDApXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01ODE0LVxcbm5ldC9zY3RwL3NvY2tldC5jOjU4MTU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNTgxNi1cXHRcXHRcXHRcXHRcXHQgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTgyNy1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1ODI4OlxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzaywgXFx1MDAyNnBlZWxvZmYucF9hcmcsXFxubmV0L3NjdHAvc29ja2V0LmMtNTgyOS1cXHRcXHRcXHRcXHRcXHRcXHRcXHUwMDI2bmV3ZmlsZSwgcGVlbG9mZi5mbGFncyk7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01OTgxLSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU5ODI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRyX3BhcmFtcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNTk4My1cXHRcXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjEyNC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2MTI1OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2RlbGF5ZWRfYWNrKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02MTI2LVxcdFxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjE5OC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2MTk5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2luaXRtc2coc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxubmV0L3NjdHAvc29ja2V0LmMtNjIwMC17XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02MjExLVxcbm5ldC9zY3RwL3NvY2tldC5jOjYyMTI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRycyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjIxMy1cXHRcXHRcXHRcXHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYz02MjYzPXN0YXRpYyBpbnQgc2N0cF9jb3B5X2xhZGRycyhzdHJ1Y3Qgc29jayAqc2ssIF9fdTE2IHBvcnQsIHZvaWQgKnRvLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjMwNy1cXG5uZXQvc2N0cC9zb2NrZXQuYzo2MzA4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02MzA5LVxcdFxcdFxcdFxcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02NDE1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY0MTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJpbWFyeV9hZGRyKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NDE3LVxcdFxcdFxcdFxcdFxcdGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY0NTctICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjQ1ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hZGFwdGF0aW9uX2xheWVyKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NDU5LVxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjQ5Ni0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NDk3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfc2VuZF9wYXJhbShzdHJ1Y3Qgc29jayAqc2ssXFxubmV0L3NjdHAvc29ja2V0LmMtNjQ5OC1cXHRcXHRcXHRcXHRcXHRpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjU0Mi0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NTQzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfc25kaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjU0NC1cXHRcXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjU5My1cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NTk0OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X25vZGVsYXkoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY1OTUtXFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjYyMi0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NjIzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY2MjQtXFx0XFx0XFx0XFx0Y2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY2NzYtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjY3NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hc3NvY2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY2NzgtXFx0XFx0XFx0XFx0ICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjc0NS0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NzQ2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X21hcHBlZHY0KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NzQ3LVxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02NzY4LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY3Njk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfY29udGV4dChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjc3MC1cXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02ODI1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY4MjY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWF4c2VnKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02ODI3LVxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjg3Mi0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODczOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2ZyYWdtZW50X2ludGVybGVhdmUoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY4NzQtXFx0XFx0XFx0XFx0XFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY4OTUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6Njg5NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wYXJ0aWFsX2RlbGl2ZXJ5X3BvaW50KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02ODk3LVxcdFxcdFxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY5MTktICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjkyMDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9tYXhidXJzdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjkyMS1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY5NTktXFxubmV0L3NjdHAvc29ja2V0LmM6Njk2MDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9obWFjX2lkZW50KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02OTYxLVxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02OTk1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjY5OTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjk5Ny1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzAzMS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDMyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcwMzMtXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXFxubmV0L3NjdHAvc29ja2V0LmM6NzA3NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzA3Ny1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzEzNy0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTM4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzEzOS1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzE2OC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTY5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2F1dG9fYXNjb25mKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MTcwLVxcdFxcdFxcdFxcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcxOTMtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzE5NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hc3NvY19pZHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcxOTUtXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcyNDMtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzI0NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wYWRkcl90aHJlc2hvbGRzKHN0cnVjdCBzb2NrICpzayxcXG5uZXQvc2N0cC9zb2NrZXQuYy03MjQ1LVxcdFxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgbGVuLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzMwMi0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzAzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MzA0LVxcdFxcdFxcdFxcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzM2MC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzYxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY3ZyY3ZpbmZvKHN0cnVjdCBzb2NrICpzayxcXHRpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTczNjItXFx0XFx0XFx0XFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MzgwLVxcbm5ldC9zY3RwL3NvY2tldC5jOjczODE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcmVjdm54dGluZm8oc3RydWN0IHNvY2sgKnNrLFxcdGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzM4Mi1cXHRcXHRcXHRcXHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc0MDAtXFxubmV0L3NjdHAvc29ja2V0LmM6NzQwMTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcl9zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc0MDItXFx0XFx0XFx0XFx0XFx0Y2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc0MzktXFxubmV0L3NjdHAvc29ja2V0LmM6NzQ0MDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3ByaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzQ0MS1cXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NDg1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc0ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJfYXNzb2NzdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc0ODctXFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzU0NC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NTQ1OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByX3N0cmVhbXN0YXR1cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzU0Ni1cXHRcXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzYwOC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NjA5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY29uZmlnX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzYxMC1cXHRcXHRcXHRcXHRcXHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzY0Ny1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NjQ4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2VuYWJsZV9zdHJyZXNldChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzY0OS1cXHRcXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzY4Ni1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3Njg3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzY4OC1cXHRcXHRcXHRcXHQgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NzI1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc3MjY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfc2NoZWR1bGVyX3ZhbHVlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03NzI3LVxcdFxcdFxcdFxcdFxcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NzY3LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc3Njg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfaW50ZXJsZWF2aW5nX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzc2OS1cXHRcXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03ODA2LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc4MDc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcmV1c2VfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzgwOC1cXHRcXHRcXHRcXHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzgyNi1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODI3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2V2ZW50KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy03ODI4LVxcdFxcdFxcdFxcdCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03ODYxLVxcbm5ldC9zY3RwL3NvY2tldC5jOjc4NjI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzg2My1cXHRcXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc5MDAtXFxubmV0L3NjdHAvc29ja2V0LmM6NzkwMTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRoX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzkwMi1cXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03OTM5LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc5NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZWNuX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzk0MS1cXHRcXHRcXHRcXHRcXHQgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc5NzgtXFxubmV0L3NjdHAvc29ja2V0LmM6Nzk3OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZl9leHBvc2Uoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc5ODAtXFx0XFx0XFx0XFx0ICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODAxNy1cXG5uZXQvc2N0cC9zb2NrZXQuYzo4MDE4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2VuY2FwX3BvcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgwMTktXFx0XFx0XFx0XFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODA3Ni1cXG5uZXQvc2N0cC9zb2NrZXQuYzo4MDc3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3Byb2JlX2ludGVydmFsKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy04MDc4LVxcdFxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgxMzYtXFxubmV0L3NjdHAvc29ja2V0LmM6ODEzNzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsXFxubmV0L3NjdHAvc29ja2V0LmMtODEzOC1cXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MTY3LVxcdGNhc2UgU0NUUF9TVEFUVVM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE2ODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfc2N0cF9zdGF0dXMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNjktXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE3MC1cXHRjYXNlIFNDVFBfRElTQUJMRV9GUkFHTUVOVFM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE3MTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGlzYWJsZV9mcmFnbWVudHMoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzItXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzQtXFx0Y2FzZSBTQ1RQX0VWRU5UUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTc1OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ldmVudHMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzYtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE3Ny1cXHRjYXNlIFNDVFBfQVVUT0NMT1NFOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2F1dG9jbG9zZShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODE3OS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTgwLVxcdGNhc2UgU0NUUF9TT0NLT1BUX1BFRUxPRkY6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE4MTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4Mi1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTgzLVxcdGNhc2UgU0NUUF9TT0NLT1BUX1BFRUxPRkZfRkxBR1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE4NDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4NS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTg2LVxcdGNhc2UgU0NUUF9QRUVSX0FERFJfUEFSQU1TOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxODc6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcl9wYXJhbXMoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgxODgtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODE5MC1cXHRjYXNlIFNDVFBfREVMQVlFRF9TQUNLOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxOTE6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlbGF5ZWRfYWNrKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTkyLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTQtXFx0Y2FzZSBTQ1RQX0lOSVRNU0c6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE5NTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODE5Ni1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk3LVxcdGNhc2UgU0NUUF9HRVRfUEVFUl9BRERSUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk4OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk5LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODIwMS1cXHRjYXNlIFNDVFBfR0VUX0xPQ0FMX0FERFJTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMDI6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjAzLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDUtXFx0Y2FzZSBTQ1RQX1NPQ0tPUFRfQ09OTkVDVFgzOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMDY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Nvbm5lY3R4MyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIwNy1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjA4LVxcdGNhc2UgU0NUUF9ERUZBVUxUX1NFTkRfUEFSQU06XFxubmV0L3NjdHAvc29ja2V0LmM6ODIwOTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHNrLCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtODIxMC1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgb3B0dmFsLCBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODIxMi1cXHRjYXNlIFNDVFBfREVGQVVMVF9TTkRJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMTM6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfc25kaW5mbyhzaywgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IG9wdHZhbCwgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTYtXFx0Y2FzZSBTQ1RQX1BSSU1BUllfQUREUjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjE3OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcmltYXJ5X2FkZHIoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTgtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODIxOS1cXHRjYXNlIFNDVFBfTk9ERUxBWTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjIwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ub2RlbGF5KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjIxLVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjItXFx0Y2FzZSBTQ1RQX1JUT0lORk86XFxubmV0L3NjdHAvc29ja2V0LmM6ODIyMzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcnRvaW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIyNC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjI1LVxcdGNhc2UgU0NUUF9BU1NPQ0lORk86XFxubmV0L3NjdHAvc29ja2V0LmM6ODIyNjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNzb2NpbmZvKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjI3LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjgtXFx0Y2FzZSBTQ1RQX0lfV0FOVF9NQVBQRURfVjRfQUREUjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjI5OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9tYXBwZWR2NChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIzMC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjMxLVxcdGNhc2UgU0NUUF9NQVhTRUc6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIzMjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbWF4c2VnKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjMzLVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzQtXFx0Y2FzZSBTQ1RQX0dFVF9QRUVSX0FERFJfSU5GTzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjM1OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfaW5mbyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODIzNi1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODIzOC1cXHRjYXNlIFNDVFBfQURBUFRBVElPTl9MQVlFUjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjM5OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hZGFwdGF0aW9uX2xheWVyKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQwLVxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQyLVxcdGNhc2UgU0NUUF9DT05URVhUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNDM6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2NvbnRleHQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDQtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODI0NS1cXHRjYXNlIFNDVFBfRlJBR01FTlRfSU5URVJMRUFWRTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjQ2OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9mcmFnbWVudF9pbnRlcmxlYXZlKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ3LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDktXFx0Y2FzZSBTQ1RQX1BBUlRJQUxfREVMSVZFUllfUE9JTlQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI1MDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFydGlhbF9kZWxpdmVyeV9wb2ludChzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI1MS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI1My1cXHRjYXNlIFNDVFBfTUFYX0JVUlNUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNTQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heGJ1cnN0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjU1LVxcdFxcdGJyZWFrO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI2Mi1cXHRjYXNlIFNDVFBfSE1BQ19JREVOVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjYzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9obWFjX2lkZW50KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjY0LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjUtXFx0Y2FzZSBTQ1RQX0FVVEhfQUNUSVZFX0tFWTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjY2OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hY3RpdmVfa2V5KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjY3LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjgtXFx0Y2FzZSBTQ1RQX1BFRVJfQVVUSF9DSFVOS1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI2OTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hdXRoX2NodW5rcyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI3MC1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI3Mi1cXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI3MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzYtXFx0Y2FzZSBTQ1RQX0dFVF9BU1NPQ19OVU1CRVI6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI3NzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNzb2NfbnVtYmVyKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc4LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzktXFx0Y2FzZSBTQ1RQX0dFVF9BU1NPQ19JRF9MSVNUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyODA6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX2lkcyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI4MS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjgyLVxcdGNhc2UgU0NUUF9BVVRPX0FTQ09ORjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjgzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI4NC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjg1LVxcdGNhc2UgU0NUUF9QRUVSX0FERFJfVEhMRFM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI4NjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFkZHJfdGhyZXNob2xkcyhzaywgb3B0dmFsLCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtODI4Ny1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgIG9wdGxlbiwgZmFsc2UpO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI4OS1cXHRjYXNlIFNDVFBfUEVFUl9BRERSX1RITERTX1YyOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTA6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhZGRyX3RocmVzaG9sZHMoc2ssIG9wdHZhbCwgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBvcHRsZW4sIHRydWUpO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI5My1cXHRjYXNlIFNDVFBfR0VUX0FTU09DX1NUQVRTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk1LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTYtXFx0Y2FzZSBTQ1RQX1JFQ1ZSQ1ZJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTc6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY3ZyY3ZpbmZvKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk4LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTktXFx0Y2FzZSBTQ1RQX1JFQ1ZOWFRJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMDA6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY3ZueHRpbmZvKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzAxLVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDItXFx0Y2FzZSBTQ1RQX1BSX1NVUFBPUlRFRDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzAzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDQtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODMwNS1cXHRjYXNlIFNDVFBfREVGQVVMVF9QUklORk86XFxubmV0L3NjdHAvc29ja2V0LmM6ODMwNjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9wcmluZm8oc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDctXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDktXFx0Y2FzZSBTQ1RQX1BSX0FTU09DX1NUQVRVUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzEwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9hc3NvY3N0YXR1cyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODMxMS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMxMy1cXHRjYXNlIFNDVFBfUFJfU1RSRUFNX1NUQVRVUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzE0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE3LVxcdGNhc2UgU0NUUF9SRUNPTkZJR19TVVBQT1JURUQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMxODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmVjb25maWdfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMyMS1cXHRjYXNlIFNDVFBfRU5BQkxFX1NUUkVBTV9SRVNFVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzIyOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9lbmFibGVfc3RycmVzZXQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMjMtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzI1LVxcdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMjY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcihzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODMyNy1cXHRcXHRcXHRcXHRcXHRcXHQgICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMyOS1cXHRjYXNlIFNDVFBfU1RSRUFNX1NDSEVEVUxFUl9WQUxVRTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzMwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXJfdmFsdWUoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMzEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzMzLVxcdGNhc2UgU0NUUF9JTlRFUkxFQVZJTkdfU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMzQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ludGVybGVhdmluZ19zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMzUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMzctXFx0Y2FzZSBTQ1RQX1JFVVNFX1BPUlQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMzODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmV1c2VfcG9ydChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODMzOS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQwLVxcdGNhc2UgU0NUUF9FVkVOVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQxOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ldmVudChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODM0Mi1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQzLVxcdGNhc2UgU0NUUF9BU0NPTkZfU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNDQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2FzY29uZl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODM0Ny1cXHRjYXNlIFNDVFBfQVVUSF9TVVBQT1JURUQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODM0ODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXV0aF9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDktXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTEtXFx0Y2FzZSBTQ1RQX0VDTl9TVVBQT1JURUQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODM1MjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZWNuX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODM1My1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzU0LVxcdGNhc2UgU0NUUF9FWFBPU0VfUE9URU5USUFMTFlfRkFJTEVEX1NUQVRFOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNTU6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BmX2V4cG9zZShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODM1Ni1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzU3LVxcdGNhc2UgU0NUUF9SRU1PVEVfVURQX0VOQ0FQU19QT1JUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNTg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuY2FwX3BvcnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTktXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM2MC1cXHRjYXNlIFNDVFBfUExQTVRVRF9QUk9CRV9JTlRFUlZBTDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzYxOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcm9iZV9pbnRlcnZhbChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODM2Mi1cXHRcXHRicmVhaztcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTk2NjA9c3RydWN0IHByb3RvIHNjdHBfcHJvdCA9IHtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTk2NzAtXFx0LnNldHNvY2tvcHQgID1cXHRzY3RwX3NldHNvY2tvcHQsXFxubmV0L3NjdHAvc29ja2V0LmM6OTY3MTpcXHQuZ2V0c29ja29wdCAgPVxcdHNjdHBfZ2V0c29ja29wdCxcXG5uZXQvc2N0cC9zb2NrZXQuYy05NjcyLVxcdC5icGZfYnlwYXNzX2dldHNvY2tvcHRcXHQ9IHNjdHBfYnBmX2J5cGFzc19nZXRzb2Nrb3B0LFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9OTcxNT1zdHJ1Y3QgcHJvdG8gc2N0cHY2X3Byb3QgPSB7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy05NzI1LVxcdC5zZXRzb2Nrb3B0XFx0PSBzY3RwX3NldHNvY2tvcHQsXFxubmV0L3NjdHAvc29ja2V0LmM6OTcyNjpcXHQuZ2V0c29ja29wdFxcdD0gc2N0cF9nZXRzb2Nrb3B0LFxcbm5ldC9zY3RwL3NvY2tldC5jLTk3MjctXFx0LmJwZl9ieXBhc3NfZ2V0c29ja29wdFxcdD0gc2N0cF9icGZfYnlwYXNzX2dldHNvY2tvcHQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjE2LjE4NTE3Mjg4NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0MTQ4MjIwMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkV4YW1pbmluZyB0aGUgc2N0cF9nZXRzb2Nrb3B0IEZ1bmN0aW9uKipcblxuT2theSwgbGV0J3Mgc2VlIHdoYXQgd2UgY2FuIGxldmVyYWdlIGhlcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlIGFyZSBhbHRlcm5hdGl2ZSBmdW5jdGlvbnMgaW4gdGhpcyBhcmVhIHdlIGNhbiB1c2UsIHNvIGZpcnN0LCBJJ20gbm90aW5nIHRoYXQgYHNjdHBfZ2V0c29ja29wdGAgaXMgc3RhdGljLCBidXQgYXNzaWduZWQgdG8gYHNjdHBfcHJvdC5nZXRzb2Nrb3B0YC4gVGhhdCdzIGEga2V5IGRldGFpbC4gTm93LCBJIGhhdmUgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBub24tc3RhdGljIGZ1bmN0aW9ucyB0aGF0IGFjdHVhbGx5ICpjYWxsKiBgc2N0cF9nZXRzb2Nrb3B0YC4gTm8sIGl0IGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlci4gSW50ZXJlc3RpbmcuIFdoYXQgYWJvdXQgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2A/IFRoYXQncyBhbHNvIHN0YXRpYy5cblxuQXJlIHRoZXJlICphbnkqIGV4cG9ydGVkIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGJlIHN1aXRhYmxlPyBIb2xkIG9uLi4uIG1heWJlIGBzY3RwX2dldHNvY2tvcHRgIGlzIGFjdHVhbGx5IGZpbmUsIGV2ZW4gYmVpbmcgc3RhdGljLiBJdCdzIGEgc2l6YWJsZSBmdW5jdGlvbiwgc28gaW5saW5pbmcgaXMgcHJvYmFibHkgbm90IGhhcHBlbmluZy4gQnV0IHdhaXQuLi4gc2luY2UgYHNjdHBfZ2V0c29ja29wdGAgaXMgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLCBpdCdzICpkZWZpbml0ZWx5KiBub3QgaW5saW5lZC4gR29vZCEgTGV0J3MganVzdCBiZSB0aG9yb3VnaCBhbmQgdmVyaWZ5IHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgbm9uLXN0YXRpYyBmdW5jdGlvbnMgb2YgaW50ZXJlc3QgaW4gYG5ldC9zY3RwL3NvY2tldC5jYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ0NzksIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MzAuMzMzMzk1OTI2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzY4NjA5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeaW50IHNjdHBfLipcXFxcKFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9zb2NrZXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2N0cC9zb2NrZXQuYz03NTg9c3RhdGljIGludCBzY3RwX3NlbmRfYXNjb25mX2RlbF9pcChzdHJ1Y3Qgc29ja1xcdFxcdCpzayxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTkwOS0vKiBzZXQgYWRkciBldmVudHMgdG8gYXNzb2NzIGluIHRoZSBlbmRwb2ludC4gIGVwIGFuZCBhZGRyX3dxIG11c3QgYmUgbG9ja2VkICovXFxubmV0L3NjdHAvc29ja2V0LmM6OTEwOmludCBzY3RwX2FzY29uZl9tZ210KHN0cnVjdCBzY3RwX3NvY2sgKnNwLCBzdHJ1Y3Qgc2N0cF9zb2NrYWRkcl9lbnRyeSAqYWRkcncpXFxubmV0L3NjdHAvc29ja2V0LmMtOTExLXtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTQ4MTU9c3RhdGljIGludCBzY3RwX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy00ODMzLVxcbm5ldC9zY3RwL3NvY2tldC5jOjQ4MzQ6aW50IHNjdHBfaW5ldF9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkcl91bnNpemVkICp1YWRkcixcXG5uZXQvc2N0cC9zb2NrZXQuYy00ODM1LVxcdFxcdCAgICAgIGludCBhZGRyX2xlbiwgaW50IGZsYWdzKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9NTIwOD1zdGF0aWMgdm9pZCBzY3RwX3NodXRkb3duKHN0cnVjdCBzb2NrICpzaywgaW50IGhvdylcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTUyMjYtXFxubmV0L3NjdHAvc29ja2V0LmM6NTIyNzppbnQgc2N0cF9nZXRfc2N0cF9pbmZvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsXFxubmV0L3NjdHAvc29ja2V0LmMtNTIyOC1cXHRcXHQgICAgICAgc3RydWN0IHNjdHBfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTUzNTQ9c3RydWN0IHNjdHBfdHJhbnNwb3J0ICpzY3RwX3RyYW5zcG9ydF9nZXRfaWR4KHN0cnVjdCBuZXQgKm5ldCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTUzNzEtXFxubmV0L3NjdHAvc29ja2V0LmM6NTM3MjppbnQgc2N0cF9mb3JfZWFjaF9lbmRwb2ludChpbnQgKCpjYikoc3RydWN0IHNjdHBfZW5kcG9pbnQgKiwgdm9pZCAqKSxcXG5uZXQvc2N0cC9zb2NrZXQuYy01MzczLVxcdFxcdFxcdCAgIHN0cnVjdCBuZXQgKm5ldCwgaW50ICpwb3MsIHZvaWQgKnApIHtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTU0MDc9RVhQT1JUX1NZTUJPTF9HUEwoc2N0cF9mb3JfZWFjaF9lbmRwb2ludCk7XFxubmV0L3NjdHAvc29ja2V0LmMtNTQwOC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NDA5OmludCBzY3RwX3RyYW5zcG9ydF9sb29rdXBfcHJvY2VzcyhzY3RwX2NhbGxiYWNrX3QgY2IsIHN0cnVjdCBuZXQgKm5ldCxcXG5uZXQvc2N0cC9zb2NrZXQuYy01NDEwLVxcdFxcdFxcdFxcdCAgY29uc3QgdW5pb24gc2N0cF9hZGRyICpsYWRkcixcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTU0MzY9RVhQT1JUX1NZTUJPTF9HUEwoc2N0cF90cmFuc3BvcnRfbG9va3VwX3Byb2Nlc3MpO1xcbm5ldC9zY3RwL3NvY2tldC5jLTU0MzctXFxubmV0L3NjdHAvc29ja2V0LmM6NTQzODppbnQgc2N0cF90cmFuc3BvcnRfdHJhdmVyc2VfcHJvY2VzcyhzY3RwX2NhbGxiYWNrX3QgY2IsIHNjdHBfY2FsbGJhY2tfdCBjYl9kb25lLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU0MzktXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBuZXQgKm5ldCwgaW50ICpwb3MsIHZvaWQgKnApXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYz04NjAxPXN0YXRpYyBpbnQgc2N0cF9saXN0ZW5fc3RhcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgYmFja2xvZylcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTg2NTUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6ODY1NjppbnQgc2N0cF9pbmV0X2xpc3RlbihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgYmFja2xvZylcXG5uZXQvc2N0cC9zb2NrZXQuYy04NjU3LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MzAuMzg3MDg4MjkzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NjI3Nzg0NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFNDVFAgR2V0c29ja29wdCBJbXBsZW1lbnRhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgYGdldHNvY2tvcHRgIGlzIGhhbmRsZWQgZm9yIFNDVFAuIFRoZSBjb3JlIGVudHJ5IHBvaW50LCBgc2N0cF9nZXRzb2Nrb3B0YCwgaXMgZGVjbGFyZWQgc3RhdGljLCB3aGljaCBpbml0aWFsbHkgcmFpc2VkIGEgZmxhZy4gSG93ZXZlciwgaXQncyB0aGUgZnVuY3Rpb24gdGhhdCdzIHVsdGltYXRlbHkgYXNzaWduZWQgdG8gYHNjdHBfcHJvdC5nZXRzb2Nrb3B0YC4gTGV0J3Mgc3RlcCBiYWNrIGFuZCBjb25zaWRlciBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGBnZXRzb2Nrb3B0YCBmdW5jdGlvbnMgaW4gcGxheSBoZXJlLlxuXG5SaWdodCwgc28gZXZlbiB0aG91Z2ggYHNjdHBfZ2V0c29ja29wdGAgYW5kIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGFyZSBzdGF0aWMsIFN5emthbGxlciAqc2hvdWxkKiBiZSBhYmxlIHRvIHRhcmdldCB0aGVtLCBwcm92aWRlZCB0aGV5IGhhdmVuJ3QgYmVlbiBpbmxpbmVkIGJ5IHRoZSBjb21waWxlci4gV2Uga25vdyBgc2N0cF9nZXRzb2Nrb3B0YCBpcyBkZWZpbml0ZWx5ICpub3QqIGlubGluZWQuIFRoZSBvdGhlciBmdW5jdGlvbiwgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AsIGlzIHBvdGVudGlhbGx5IHByb2JsZW1hdGljLiBJdCdzIHBsYXVzaWJsZSB0aGF0IHRoZSBjb21waWxlciBjaG9zZSB0byBpbmxpbmUgaXQsIGJ1dCBpdCdzIGFsc28gbGFyZ2UgZW5vdWdoIHRoYXQgaXQgbWlnaHQgaGF2ZSBiZWVuIGxlZnQgYXMgYSBzdGFuZGFsb25lIGZ1bmN0aW9uLiBTbywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGNvbmZpcm0gd2hldGhlciBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBhY3R1YWxseSBnb3QgaW5saW5lZC4gVGhhdCdzIHRoZSBrZXkgcXVlc3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1ODUwLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjM1LjI0OTg2OTk2N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODkzODIxMDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jPTcwMzI9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjcwNzY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTgxMzc9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI3Mi1cXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI3MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MzUuMzM5MjU3MjAyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NTQ0NjA5MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MgbGFpZCBvdXQsIGFzc3VtaW5nIEknbSBhbHJlYWR5IGRlZXAgaW50byB0aGlzIGNvZGUgYW5kIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQ6XG5cbioqQW5hbHl6aW5nIHRoZSBGdW5jdGlvbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCoqXG5cblJpZ2h0LCBsZXQncyB0YWtlIGEgcXVpY2sgbG9vayBhdCB0aGUgc2l6ZSBvZiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIG1lbW9yeSBmb290cHJpbnQgdGhpcyBmdW5jdGlvbiBoYXMsIGVzcGVjaWFsbHkgYXMgaXQgcmVsYXRlcyB0byB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5jZSBhbmQgcmVzb3VyY2UgdXNhZ2Ugb2YgdGhlIFNDVFAgaW1wbGVtZW50YXRpb24uIFVuZGVyc3RhbmRpbmcgaXRzIHNpemUgZGlyZWN0bHkgY29udHJpYnV0ZXMgdG8gbXkgYWJpbGl0eSB0byBvcHRpbWl6ZSB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgYW5kIGF2b2lkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3dzIG9yIGluZWZmaWNpZW50IG1lbW9yeSBhbGxvY2F0aW9uLiBJcyBpdCBhIHNtYWxsIGxvb2t1cCB0YWJsZT8gQSBjb21wbGV4IGRhdGEgc3RydWN0dXJlPyBJdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBzY2FsZSBvZiBpdC4gSXQgaXMgYWxzbyBpbXBvcnRhbnQgaW4gZGVidWdnaW5nLCBhcyB1bmRlcnN0YW5kaW5nIHRoZSBhbW91bnQgb2YgcmVzb3VyY2VzIGEgZnVuY3Rpb24gdXNlcyBjYW4gcG9pbnQgdG93YXJkcyB1bmV4cGVjdGVkIGJvdHRsZW5lY2tzLiBJdCBpcyB0aW1lIHRvIGRldGVybWluZSBpdHMgc2l6ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY2MTUsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzozOS44OTM3MjEwODVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI3NzI2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvc2N0cC9zb2NrZXQuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA3MDc2LFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCI3MDc2OlxcdHN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG43MDc3OlxcdFxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuNzA3ODpcXHR7XFxuNzA3OTpcXHRcXHRzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqZXAgPSBzY3RwX3NrKHNrKS1cXHUwMDNlZXA7XFxuNzA4MDpcXHRcXHRzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzIF9fdXNlciAqcCA9ICh2b2lkIF9fdXNlciAqKW9wdHZhbDtcXG43MDgxOlxcdFxcdHN0cnVjdCBzY3RwX2F1dGhjaHVua3MgdmFsO1xcbjcwODI6XFx0XFx0c3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2M7XFxuNzA4MzpcXHRcXHRzdHJ1Y3Qgc2N0cF9jaHVua3NfcGFyYW0gKmNoO1xcbjcwODQ6XFx0XFx0dTMyICAgIG51bV9jaHVua3MgPSAwO1xcbjcwODU6XFx0XFx0Y2hhciBfX3VzZXIgKnRvO1xcbjcwODY6XFx0XFxuNzA4NzpcXHRcXHRpZiAobGVuIFxcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBzY3RwX2F1dGhjaHVua3MpKVxcbjcwODg6XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuNzA4OTpcXHRcXG43MDkwOlxcdFxcdGlmIChjb3B5X2Zyb21fdXNlcihcXHUwMDI2dmFsLCBvcHR2YWwsIHNpemVvZih2YWwpKSlcXG43MDkxOlxcdFxcdFxcdHJldHVybiAtRUZBVUxUO1xcbjcwOTI6XFx0XFxuNzA5MzpcXHRcXHR0byA9IHAtXFx1MDAzZWdhdXRoX2NodW5rcztcXG43MDk0OlxcdFxcdGFzb2MgPSBzY3RwX2lkMmFzc29jKHNrLCB2YWwuZ2F1dGhfYXNzb2NfaWQpO1xcbjcwOTU6XFx0XFx0aWYgKCFhc29jIFxcdTAwMjZcXHUwMDI2IHZhbC5nYXV0aF9hc3NvY19pZCAhPSBTQ1RQX0ZVVFVSRV9BU1NPQyBcXHUwMDI2XFx1MDAyNlxcbjcwOTY6XFx0XFx0ICAgIHNjdHBfc3R5bGUoc2ssIFVEUCkpXFxuNzA5NzpcXHRcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG43MDk4OlxcdFxcbjcwOTk6XFx0XFx0aWYgKGFzb2MpIHtcXG43MTAwOlxcdFxcdFxcdGlmICghYXNvYy1cXHUwMDNlcGVlci5hdXRoX2NhcGFibGUpXFxuNzEwMTpcXHRcXHRcXHRcXHRyZXR1cm4gLUVBQ0NFUztcXG43MTAyOlxcdFxcdFxcdGNoID0gKHN0cnVjdCBzY3RwX2NodW5rc19wYXJhbSAqKWFzb2MtXFx1MDAzZWMuYXV0aF9jaHVua3M7XFxuNzEwMzpcXHRcXHR9IGVsc2Uge1xcbjcxMDQ6XFx0XFx0XFx0aWYgKCFlcC1cXHUwMDNlYXV0aF9lbmFibGUpXFxuNzEwNTpcXHRcXHRcXHRcXHRyZXR1cm4gLUVBQ0NFUztcXG43MTA2OlxcdFxcdFxcdGNoID0gZXAtXFx1MDAzZWF1dGhfY2h1bmtfbGlzdDtcXG43MTA3OlxcdFxcdH1cXG43MTA4OlxcdFxcdGlmICghY2gpXFxuNzEwOTpcXHRcXHRcXHRnb3RvIG51bTtcXG43MTEwOlxcdFxcbjcxMTE6XFx0XFx0bnVtX2NodW5rcyA9IG50b2hzKGNoLVxcdTAwM2VwYXJhbV9oZHIubGVuZ3RoKSAtIHNpemVvZihzdHJ1Y3Qgc2N0cF9wYXJhbWhkcik7XFxuNzExMjpcXHRcXHQvKiBhc29jLVxcdTAwM2VjLmF1dGhfY2h1bmtzW10gaG9sZHMgYXQgbW9zdCBTQ1RQX0FVVEhfTUFYX0NIVU5LUyBieXRlcyBidXQgaXRzXFxuNzExMzpcXHRcXHQgKiBsZW5ndGggaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3RhdGUgY29va2llIGFuZCBpcyBub3QgYm91bmRlZCBoZXJlO1xcbjcxMTQ6XFx0XFx0ICogY2xhbXAgc28gYW4gb3ZlcnNpemVkIGxlbmd0aCBjYW5ub3QgcmVhZCBwYXN0IHRoZSBhcnJheS5cXG43MTE1OlxcdFxcdCAqL1xcbjcxMTY6XFx0XFx0aWYgKG51bV9jaHVua3MgXFx1MDAzZSBTQ1RQX0FVVEhfTUFYX0NIVU5LUylcXG43MTE3OlxcdFxcdFxcdG51bV9jaHVua3MgPSBTQ1RQX0FVVEhfTUFYX0NIVU5LUztcXG43MTE4OlxcdFxcdGlmIChsZW4gXFx1MDAzYyBzaXplb2Yoc3RydWN0IHNjdHBfYXV0aGNodW5rcykgKyBudW1fY2h1bmtzKVxcbjcxMTk6XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuNzEyMDpcXHRcXG43MTIxOlxcdFxcdGlmIChjb3B5X3RvX3VzZXIodG8sIGNoLVxcdTAwM2VjaHVua3MsIG51bV9jaHVua3MpKVxcbjcxMjI6XFx0XFx0XFx0cmV0dXJuIC1FRkFVTFQ7XFxuNzEyMzpcXHRudW06XFxuNzEyNDpcXHRcXHRsZW4gPSBzaXplb2Yoc3RydWN0IHNjdHBfYXV0aGNodW5rcykgKyBudW1fY2h1bmtzO1xcbjcxMjU6XFx0XFx0aWYgKHB1dF91c2VyKGxlbiwgb3B0bGVuKSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MzkuODk3MDAyMTE1WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgwNzM5MDg5ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIEZ1bmN0aW9uIElubGluaW5nIGFuZCBTeW1ib2wgUmVzb2x1dGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZnVuY3Rpb24sIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgLCBhbmQgaXQncyBhIGZhaXIgc2l6ZS4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0aGF0IGl0ICptaWdodCogZ2V0IGlubGluZWQgZGlyZWN0bHkgaW50byBgc2N0cF9nZXRzb2Nrb3B0YCwgd2hpY2gsIEkgcmVjYWxsLCBpcyBhIHJhdGhlciBzdWJzdGFudGlhbCBmdW5jdGlvbi4gQnV0IHRoZW4gSSByZW1lbWJlcmVkIHNvbWV0aGluZyBjcnVjaWFsIGFib3V0IGNvbXBpbGVyIGJlaGF2aW9yIHdpdGggbGFyZ2Ugc3dpdGNoIHN0YXRlbWVudHMsIHdoaWNoIGBzY3RwX2dldHNvY2tvcHRgIGlzLiBDb21waWxlcnMgYXJlIGdlbmVyYWxseSByZWx1Y3RhbnQgdG8gaW5saW5lIGZ1bmN0aW9ucyBjYWxsZWQgd2l0aGluIGdpYW50IHN3aXRjaCBzdGF0ZW1lbnRzLiBUaGV5J3JlIHRyeWluZyB0byBrZWVwIHRoZSBzdGFjayBmcmFtZSBzaXplIG1hbmFnZWFibGUgYW5kIG9wdGltaXplZC5cblxuVGhlcmVmb3JlLCBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBpcyBhbG1vc3QgY2VydGFpbmx5IGdvaW5nIHRvIHJlbWFpbiBhIGRpc3RpbmN0IHN5bWJvbCwgbm90IGdldHRpbmcgZGlyZWN0bHkgbWVyZ2VkLiBUbyBiZSB0aG9yb3VnaCBhbmQgZW5zdXJlIHRoaXMgY29kZSBwYXRoIGlzIGNvdmVyZWQgZHVyaW5nIGFuYWx5c2lzLCBJIHNob3VsZCBhbHNvIGV4cGxpY2l0bHkgaW5jbHVkZSBgc2N0cF9nZXRzb2Nrb3B0YCBpbiBgRm9jdXNTeW1ib2xzYC5cblxuTm93LCBiZWZvcmUgSSBtb3ZlIG9uLCBsZXQgbWUgcXVpY2tseSBtYWtlIHN1cmUgSSdtIHRha2luZyB0aGUgY29uZmlndXJhdGlvbiBpbnRvIGFjY291bnQuIEkgbmVlZCB0byByZW1lbWJlciB0byBpbmNsdWRlIGBJUF9TQ1RQYCBpbiB0aGUgbGlzdCBvZiByZWxldmFudCBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc3MjUsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzo0Ny45NzA5MTM3MTRaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyMzE0ODA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUF9TQ1RQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvS2NvbmZpZy01LVxcbm5ldC9zY3RwL0tjb25maWc6NjptZW51Y29uZmlnIElQX1NDVFBcXG5uZXQvc2N0cC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBTQ1RQIFByb3RvY29sXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzo0OC4wNDMyMzUyNloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDM5NTA3MDUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQ29uZmlndXJhdGlvbiBhbmQgQ29kZSBDaGFuZ2VzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb25maWd1cmF0aW9uLCBhbmQgaXQgc2VlbXMgYElQX1NDVFBgIGlzIHRoZSBrZXkgcGllY2UgaGVyZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcgZWxzZSByZWxhdGVkIHRvIHRoZSBTQ1RQIGNvbmZpZ3VyYXRpb24uIExldCBtZSBxdWlja2x5IHNjYW4gZm9yIG90aGVyIHJlbGV2YW50IG9wdGlvbnMsIGp1c3QgdG8gYmUgdGhvcm91Z2guIEl0IGxvb2tzIGxpa2UgdGhlIHBhdGNoIEknbSBleGFtaW5pbmcgZGlyZWN0bHkgdG91Y2hlcyBgbmV0L3NjdHAvc29ja2V0LmNgLCB3aGljaCBpcyB0aGUgY29yZSBvZiB0aGUgU0NUUCBzb2NrZXQgaW1wbGVtZW50YXRpb24uIE5vdywgYSB0aG91Z2h0OiBJcyBgU0NUUF9BVVRIYCBhIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPyBUaGF0IHdvdWxkIGJlIHVzZWZ1bCBpbmZvcm1hdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgxODksIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzo1MS40ODI3NTExODFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg3MDg1MDU1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU0NUUF9BVVRIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjUxLjU2OTg0MzY4NloiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTQ4MjMyNDA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipTQ1RQIEF1dGhlbnRpY2F0aW9uIENvbnVuZHJ1bSoqXG5cbkFscmlnaHQsIG5vIGBTQ1RQX0FVVEhgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHByZXNlbnQuIFRoYXQncyBhIGJpdCBvZGQsIGlzbid0IGl0PyBNeSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIHRoYXQgaXQgd291bGQgYmUgZW5hYmxlZCBpbiBzb21lIHdheSwgYnV0IGNsZWFybHksIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBUaW1lIHRvIGNvbnN1bHQgdGhlIGBuZXQvc2N0cC9LY29uZmlnYCBmaWxlLiBUaGF0J3MgdGhlIGRlZmluaXRpdmUgc291cmNlIGZvciBrZXJuZWwgbW9kdWxlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIFNDVFAuIEl0IHNob3VsZCBpbGx1bWluYXRlIGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3MsIGRlcGVuZGVuY2llcywgb3IgbWF5YmUgZXZlbiByZXZlYWwgd2h5IGBTQ1RQX0FVVEhgIGlzIGFic2VudCBpbiB0aGUgZmlyc3QgcGxhY2UuIFRoaXMgY291bGQgbGVhZCB0byBhIHN0cmFpZ2h0Zm9yd2FyZCBzb2x1dGlvbiwgb3IgaXQgbWlnaHQgZm9yY2UgbWUgZG93biBhIHJhYmJpdCBob2xlIGRlcGVuZGluZyBvbiB3aGF0IGlzIGZvdW5kLiBMZXQncyBzZWUgd2hhdCB0aGUgS2NvbmZpZyBoYXMgdG8gc2F5IVxuXG5cbiIsIklucHV0VG9rZW5zIjoyODQxMywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjU3LjcxODA3OTM3MloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDE5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L3NjdHAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBTQ1RQIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0bWVudWNvbmZpZyBJUF9TQ1RQXFxuICAgNzpcXHRcXHR0cmlzdGF0ZSBcXFwiVGhlIFNDVFAgUHJvdG9jb2xcXFwiXFxuICAgODpcXHRcXHRkZXBlbmRzIG9uIElORVRcXG4gICA5OlxcdFxcdHNlbGVjdCBDUllQVE9fTElCX1NIQTFcXG4gIDEwOlxcdFxcdHNlbGVjdCBDUllQVE9fTElCX1NIQTI1NlxcbiAgMTE6XFx0XFx0c2VsZWN0IENSWVBUT19MSUJfVVRJTFNcXG4gIDEyOlxcdFxcdHNlbGVjdCBORVRfQ1JDMzJDXFxuICAxMzpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gIDE0OlxcdFxcdGhlbHBcXG4gIDE1OlxcdFxcdCAgU3RyZWFtIENvbnRyb2wgVHJhbnNtaXNzaW9uIFByb3RvY29sXFxuICAxNjpcXHRcXG4gIDE3OlxcdFxcdCAgRnJvbSBSRkMgMjk2MCBcXHUwMDNjaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjk2MC50eHRcXHUwMDNlLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRcXHQgIFxcXCJTQ1RQIGlzIGEgcmVsaWFibGUgdHJhbnNwb3J0IHByb3RvY29sIG9wZXJhdGluZyBvbiB0b3Agb2YgYVxcbiAgMjA6XFx0XFx0ICBjb25uZWN0aW9ubGVzcyBwYWNrZXQgbmV0d29yayBzdWNoIGFzIElQLiAgSXQgb2ZmZXJzIHRoZSBmb2xsb3dpbmdcXG4gIDIxOlxcdFxcdCAgc2VydmljZXMgdG8gaXRzIHVzZXJzOlxcbiAgMjI6XFx0XFxuICAyMzpcXHRcXHQgIC0tIGFja25vd2xlZGdlZCBlcnJvci1mcmVlIG5vbi1kdXBsaWNhdGVkIHRyYW5zZmVyIG9mIHVzZXIgZGF0YSxcXG4gIDI0OlxcdFxcdCAgLS0gZGF0YSBmcmFnbWVudGF0aW9uIHRvIGNvbmZvcm0gdG8gZGlzY292ZXJlZCBwYXRoIE1UVSBzaXplLFxcbiAgMjU6XFx0XFx0ICAtLSBzZXF1ZW5jZWQgZGVsaXZlcnkgb2YgdXNlciBtZXNzYWdlcyB3aXRoaW4gbXVsdGlwbGUgc3RyZWFtcyxcXG4gIDI2OlxcdFxcdCAgd2l0aCBhbiBvcHRpb24gZm9yIG9yZGVyLW9mLWFycml2YWwgZGVsaXZlcnkgb2YgaW5kaXZpZHVhbCB1c2VyXFxuICAyNzpcXHRcXHQgIG1lc3NhZ2VzLFxcbiAgMjg6XFx0XFx0ICAtLSBvcHRpb25hbCBidW5kbGluZyBvZiBtdWx0aXBsZSB1c2VyIG1lc3NhZ2VzIGludG8gYSBzaW5nbGUgU0NUUFxcbiAgMjk6XFx0XFx0ICBwYWNrZXQsIGFuZFxcbiAgMzA6XFx0XFx0ICAtLSBuZXR3b3JrLWxldmVsIGZhdWx0IHRvbGVyYW5jZSB0aHJvdWdoIHN1cHBvcnRpbmcgb2YgbXVsdGktXFxuICAzMTpcXHRcXHQgIGhvbWluZyBhdCBlaXRoZXIgb3IgYm90aCBlbmRzIG9mIGFuIGFzc29jaWF0aW9uLlxcXCJcXG4gIDMyOlxcdFxcbiAgMzM6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgcHJvdG9jb2wgc3VwcG9ydCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuICAzNDpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzY3RwLiBEZWJ1ZyBtZXNzYWdlcyBhcmUgaGFuZGxlZCBieSB0aGVcXG4gIDM1OlxcdFxcdCAga2VybmVsJ3MgZHluYW1pYyBkZWJ1Z2dpbmcgZnJhbWV3b3JrLlxcbiAgMzY6XFx0XFxuICAzNzpcXHRcXHQgIElmIGluIGRvdWJ0LCBzYXkgTi5cXG4gIDM4OlxcdFxcbiAgMzk6XFx0aWYgSVBfU0NUUFxcbiAgNDA6XFx0XFxuICA0MTpcXHRjb25maWcgU0NUUF9EQkdfT0JKQ05UXFxuICA0MjpcXHRcXHRib29sIFxcXCJTQ1RQOiBEZWJ1ZyBvYmplY3QgY291bnRzXFxcIlxcbiAgNDM6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTXFxuICA0NDpcXHRcXHRoZWxwXFxuICA0NTpcXHRcXHQgIElmIHlvdSBzYXkgWSwgdGhpcyB3aWxsIGVuYWJsZSBkZWJ1Z2dpbmcgc3VwcG9ydCBmb3IgY291bnRpbmcgdGhlXFxuICA0NjpcXHRcXHQgIHR5cGUgb2Ygb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWxsb2NhdGVkLiAgVGhpcyBpcyB1c2VmdWwgZm9yXFxuICA0NzpcXHRcXHQgIGlkZW50aWZ5aW5nIG1lbW9yeSBsZWFrcy4gVGhpcyBkZWJ1ZyBpbmZvcm1hdGlvbiBjYW4gYmUgdmlld2VkIGJ5XFxuICA0ODpcXHRcXHQgICdjYXQgL3Byb2MvbmV0L3NjdHAvc2N0cF9kYmdfb2JqY250J1xcbiAgNDk6XFx0XFxuICA1MDpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6NTcuNzE4MTgzNDkyWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzNjM3NDE0OTAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IFNDVFAgT3B0aW9uIEFuYWx5c2lzKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nLCBiYXNlZCBvbiB0aGlzLCBgSVBfU0NUUGAgc2VlbXMgbGlrZSB0aGUgb25seSBuZWNlc3Nhcnkgb3B0aW9uIHdlIG5lZWQgdG8gY29uc2lkZXIuIEkgc2hvdWxkIGRvdWJsZSBjaGVjayBpZiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBpcyBzdGF0aWMsIHdoaWNoIGl0IGFwcGVhcnMgdG8gYmUuIEhtbW0sIGlzIHRoZXJlIGFub3RoZXIgZnVuY3Rpb24gdGhhdCBjb3VsZCBiZSB1dGlsaXplZD8gT2theSwgYHNjdHBfZ2V0c29ja29wdGAgaXMgYWxzbyBzdGF0aWMuIFdhaXQsIGJ1dCBgc2N0cF9nZXRzb2Nrb3B0YCBpcyBhc3NpZ25lZCB0byBgc2N0cF9wcm90LmdldHNvY2tvcHRgLiBXaGF0IGFib3V0IGBzY3RwX3NldHNvY2tvcHRgPyBPaCwgdGhhdCdzIHN0YXRpYyBhcyB3ZWxsLlxuXG5JcyB0aGVyZSBhIGZ1bmN0aW9uIHRoYXQncyBleHBvcnRlZD8gTm8sIHRoZSBzdGFuZGFyZCBhcHByb2FjaCBpcyBkZWZpbml0ZWx5IHRvIGludGVyYWN0IHdpdGggU0NUUCBzb2NrZXQgb3B0aW9ucyB2aWEgdGhlIGBnZXRzb2Nrb3B0YCBzeXN0ZW0gY2FsbCwgd2hpY2ggdGhlbiBjYWxscyBgc2N0cF9nZXRzb2Nrb3B0YC4gU2luY2UgYHNjdHBfZ2V0c29ja29wdGAgaXNuJ3QgaW5saW5lZCwgaXQnbGwgc2hvdyB1cCBpbiB0aGUgc3ltYm9sIHRhYmxlLiBXYWl0IGEgc2Vjb25kLCBldmVuIHN0YXRpYyBmdW5jdGlvbnMgYXJlIGxpc3RlZCBpbiBrYWxsc3ltcywgdGhleSBqdXN0IGhhdmUgbG9jYWwgYmluZGluZyEgU28gU3l6a2FsbGVyIHNob3VsZCBiZSBhYmxlIHRvIGZ1enogdGhlbSBpZiB0aGV5J3JlIGluIGthbGxzeW1zIGFuZCBub3QgaW5saW5lZC4gR3JlYXQsIHNvIGJvdGggYHNjdHBfZ2V0c29ja29wdGAgYW5kIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIHNob3VsZCBiZSBmaW5lIHRvIHdvcmsgd2l0aC5cblxuTm93LCBsZXQncyBqdXN0IHF1aWNrbHkgY2hlY2sgaWYgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgaXMgY2FsbGVkIGFueXdoZXJlIGVsc2UsIGp1c3QgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkzNDUsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyODoxMS4zNTU2MDE2MDNaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDc2MzgwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3NjdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jPTcwMzI9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjcwNzY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTgxMzc9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI3Mi1cXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI3MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjg6MTEuNDcwMzY5NjU2WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4MDg3OTU5OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0NUUCBTb2NrZXQgT3B0aW9uIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBzbyB0aGUgaW52ZXN0aWdhdGlvbiBjZW50ZXJzIGFyb3VuZCBgc2N0cF9nZXRzb2Nrb3B0YC4gTXkgaW5pdGlhbCBzY2FuIHNob3dzIHRoYXQgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgaXMgdGhlIG9ubHkgZnVuY3Rpb24gbW9kaWZpZWQuIFRoYXQgY29uZmlybXMgbXkgaW5pdGlhbCBodW5jaC5cblxuVGhlIGNvcmUgb2YgdGhlIGlzc3VlIGlzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB3aXRoaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AuIFRoZSBwYXRjaCBjbGFtcHMgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2Agd2hpY2ggaXMgYSBjcml0aWNhbCBmdW5jdGlvbmFsIGNoYW5nZS4gVGhpcyBpcyBkaXJlY3RseSByZWxldmFudCBiZWNhdXNlIGBnZXRzb2Nrb3B0YCBpcyBhIHVzZXJzcGFjZSBzeXNjYWxsIHBhdGggdG8gdGhpcyBjb2RlLiBJdCdzIGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBXZSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgYm91bmRzIGNoZWNrICphY3R1YWxseSogcHJldmVudHMgdGhlIG91dC1vZi1ib3VuZHMgcmVhZCBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IG5ldyByZWdyZXNzaW9ucy5cblxuSSd2ZSB2ZXJpZmllZCB0aGUgZnVuY3Rpb24gbmFtZSBhZ2FpbiwgYHNjdHBfZ2V0c29ja29wdGAsIG1ha2luZyBzdXJlIEkgZGlkbid0IG1pc2ludGVycHJldCBhbnl0aGluZyBhbG9uZyB0aGUgd2F5LiBTcGVjaWZpY2FsbHksIGBzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilgLlxuXG5Ob3csIEknbSByZWFkeSB0byBtb3ZlIGZvcndhcmQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgcmVzdWx0cyBmb3IgdGhlIG5leHQgc3RhZ2Ugb2YgdGhlIGFuYWx5c2lzLiBUaGUgY3JpdGljYWwgZnVuY3Rpb25zIGhlcmUgYXJlIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGFuZCwgb2YgY291cnNlLCB0aGUgZW50cnkgcG9pbnQgd2hpY2ggaXMgYHNjdHBfZ2V0c29ja29wdGAuIFRoZSBjb25maWd1cmF0aW9uIG5lZWRlZCB3aWxsIGJlIGBJUF9TQ1RQYCwgYXMgaW5kaWNhdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDI2NCwiT3V0cHV0VG9rZW5zIjoxNjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjg6MTguMjc5MTczOTQyWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQxMzExMjcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzXCIsXG4gICAgXCJzY3RwX2dldHNvY2tvcHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYnkgY2xhbXBpbmcgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgU0NUUCBzb2NrZXQgb3B0aW9ucyBoYW5kbGluZyBhbmQgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c2NhbGwuIEl0IGlzIHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IHByZXZlbnRzIG91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzXCIsXG4gICAgXCJzY3RwX2dldHNvY2tvcHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYnkgY2xhbXBpbmcgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgU0NUUCBzb2NrZXQgb3B0aW9ucyBoYW5kbGluZyBhbmQgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c2NhbGwuIEl0IGlzIHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IHByZXZlbnRzIG91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowwbd6t[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-31 20:25:29 +0000 UTC FinishedAt: 2026-07-31 20:28:19 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2195424c3da2ef1829a63b807e3a900a90e57d85", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "2195424c3da2ef1829a63b807e3a900a90e57d85", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IP_SCTP" ], "series_id": "46a86a2a-b251-400c-9d85-1be32407c180" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "sctp_getsockopt_local_auth_chunks", "sctp_getsockopt" ], "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+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3MmIzM0OywKICAgICYjMzQ7c2N0cF9nZXRzb2Nrb3B0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBieSBjbGFtcGluZyBgbnVtX2NodW5rc2AgdG8gYFNDVFBfQVVUSF9NQVhfQ0hVTktTYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBTQ1RQIHNvY2tldCBvcHRpb25zIGhhbmRsaW5nIGFuZCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgZ2V0c29ja29wdGAgc3lzY2FsbC4gSXQgaXMgd29ydGggZnV6emluZyB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgcHJldmVudHMgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGFhNjAyZTI4OTY2MzZmYmVlY2I1M2Y3OGZjM2Q4MGI2YmYyNDliMzlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAzMSAyMDoyNjo1MiAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jXG5pbmRleCBjN2I5ZTMyNWVjMWNkLi5iN2QyZGNiYjNjN2I3IDEwMDY0NFxuLS0tIGEvbmV0L3NjdHAvc29ja2V0LmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL3NvY2tldC5jXG5AQCAtNzEwOSw2ICYjNDM7NzEwOSwxMiBAQCBzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG4gXHRcdGdvdG8gbnVtO1xuIFxuIFx0bnVtX2NodW5rcyA9IG50b2hzKGNoLVx1MDAzZXBhcmFtX2hkci5sZW5ndGgpIC0gc2l6ZW9mKHN0cnVjdCBzY3RwX3BhcmFtaGRyKTtcbiYjNDM7XHQvKiBhc29jLVx1MDAzZWMuYXV0aF9jaHVua3NbXSBob2xkcyBhdCBtb3N0IFNDVFBfQVVUSF9NQVhfQ0hVTktTIGJ5dGVzIGJ1dCBpdHNcbiYjNDM7XHQgKiBsZW5ndGggaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3RhdGUgY29va2llIGFuZCBpcyBub3QgYm91bmRlZCBoZXJlO1xuJiM0MztcdCAqIGNsYW1wIHNvIGFuIG92ZXJzaXplZCBsZW5ndGggY2Fubm90IHJlYWQgcGFzdCB0aGUgYXJyYXkuXG4mIzQzO1x0ICovXG4mIzQzO1x0aWYgKG51bV9jaHVua3MgXHUwMDNlIFNDVFBfQVVUSF9NQVhfQ0hVTktTKVxuJiM0MztcdFx0bnVtX2NodW5rcyA9IFNDVFBfQVVUSF9NQVhfQ0hVTktTO1xuIFx0aWYgKGxlbiBcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBzY3RwX2F1dGhjaHVua3MpICYjNDM7IG51bV9jaHVua3MpXG4gXHRcdHJldHVybiAtRUlOVkFMO1xuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjFtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzJiMzNDssCiAgICAmIzM0O3NjdHBfZ2V0c29ja29wdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYnkgY2xhbXBpbmcgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgU0NUUCBzb2NrZXQgb3B0aW9ucyBoYW5kbGluZyBhbmQgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c2NhbGwuIEl0IGlzIHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IHByZXZlbnRzIG91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBhYTYwMmUyODk2NjM2ZmJlZWNiNTNmNzhmYzNkODBiNmJmMjQ5YjM5CkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIEZyaSBKdWwgMzEgMjA6MjY6NTIgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jCmluZGV4IGM3YjllMzI1ZWMxY2QuLmI3ZDJkY2JiM2M3YjcgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCiYjNDM7JiM0MzsmIzQzOyBiL25ldC9zY3RwL3NvY2tldC5jCkBAIC03MTA5LDYgJiM0Mzs3MTA5LDEyIEBAIHN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwKIAkJZ290byBudW07CiAKIAludW1fY2h1bmtzID0gbnRvaHMoY2gtJmd0O3BhcmFtX2hkci5sZW5ndGgpIC0gc2l6ZW9mKHN0cnVjdCBzY3RwX3BhcmFtaGRyKTsKJiM0MzsJLyogYXNvYy0mZ3Q7Yy5hdXRoX2NodW5rc1tdIGhvbGRzIGF0IG1vc3QgU0NUUF9BVVRIX01BWF9DSFVOS1MgYnl0ZXMgYnV0IGl0cwomIzQzOwkgKiBsZW5ndGggaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3RhdGUgY29va2llIGFuZCBpcyBub3QgYm91bmRlZCBoZXJlOwomIzQzOwkgKiBjbGFtcCBzbyBhbiBvdmVyc2l6ZWQgbGVuZ3RoIGNhbm5vdCByZWFkIHBhc3QgdGhlIGFycmF5LgomIzQzOwkgKi8KJiM0MzsJaWYgKG51bV9jaHVua3MgJmd0OyBTQ1RQX0FVVEhfTUFYX0NIVU5LUykKJiM0MzsJCW51bV9jaHVua3MgPSBTQ1RQX0FVVEhfTUFYX0NIVU5LUzsKIAlpZiAobGVuICZsdDsgc2l6ZW9mKHN0cnVjdCBzY3RwX2F1dGhjaHVua3MpICYjNDM7IG51bV9jaHVua3MpCiAJCXJldHVybiAtRUlOVkFMOwogCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIxNDIKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyNTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYG5ldC9zY3RwL3NvY2tldC5jYCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBmb3IgYG5ldC9zY3RwL3NvY2tldC5jYCwgc3BlY2lmaWNhbGx5IGZvY3VzaW5nIG9uIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgLiBJdCBzZWVtcyB0aGV5JiMzOTt2ZSBhZGRlZCBhIGJvdW5kcyBjaGVjayB0byBgbnVtX2NodW5rc2AgYWdhaW5zdCBgU0NUUF9BVVRIX01BWF9DSFVOS1NgLiBFeGNlbGxlbnQsIHRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGZpeCwgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQgdnVsbmVyYWJpbGl0eS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsICYjMzQ7VGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIHNvbWUgZnV6emluZy4mIzM0OwoKTm93LCBsZXQmIzM5O3MgZGlnIGludG8gdGhlIGRldGFpbHMgb2YgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AuIEFzIGEgZ2V0c29ja29wdCBoYW5kbGVyIGZvciBTQ1RQLCBpdCBuZWVkcyBzY3J1dGlueS4gSSYjMzk7bGwgbWVudGFsbHkgYWRkIGl0IHRvIG15IGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2AgZm9yIHRoaXMgYXJlYS4gSG9sZCBvbiBhIHNlY29uZC4uLml0JiMzOTtzICpzdGF0aWMqPyBSaWdodCwgSSBuZWVkIHRvIGNvbmZpcm0gdGhhdC4gTGV0IG1lIHF1aWNrbHkgY2hlY2sgdGhlIGRlY2xhcmF0aW9uIGluIGBuZXQvc2N0cC9zb2NrZXQuY2AuIEFoLCB5ZXMsIGBzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIC4uLilgIGNvbmZpcm1zIGl0LgoKU2luY2UgaXQmIzM5O3Mgc3RhdGljLCBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgaXQmIzM5O3MgY2FsbGVkIHdpdGhpbiBgbmV0L3NjdHAvc29ja2V0LmNgIGl0c2VsZi4gS25vd2luZyB0aGUgY2FsbCBzaXRlcyBvZiBzdGF0aWMgZnVuY3Rpb25zIGlzIGVzc2VudGlhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgY29udGV4dCBhbmQgcG90ZW50aWFsIGF0dGFjayBzdXJmYWNlLiBMZXQmIzM5O3Mgc2VlIGhvdyBhbmQgd2hlcmUgaXQmIzM5O3MgYmVpbmcgdXNlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3MmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC9zb2NrZXQuYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9zb2NrZXQuYz03MDMyPXN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDc2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTgxMzc9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjA6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzAyNgoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDUyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBsZXQmIzM5O3Mgc2VlIHdoYXQmIzM5O3MgZ29pbmcgb24gaGVyZS4KCioqQW5hbHl6aW5nIHRoZSBgc2N0cF9nZXRzb2Nrb3B0YCBGdW5jdGlvbiBDYWxsKioKClJpZ2h0LCBzbyBJJiMzOTttIGRlYWxpbmcgd2l0aCBhIGZ1bmN0aW9uIGNhbGwgb3JpZ2luYXRpbmcgZnJvbSBgc2N0cF9nZXRzb2Nrb3B0YC4gVGhhdCBtYWtlcyBzZW5zZTsgaXQmIzM5O3MgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGhhbmRsaW5nIGBnZXRzb2Nrb3B0YCBjYWxscyByZWxhdGVkIHRvIFNDVFAgc29ja2V0cy4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGZ1bmN0aW9uLiBMZXQmIzM5O3Mgc3RhcnQgd2l0aCBhIHF1aWNrIGNoZWNrLiBJcyB0aGlzIGEgc3RhdGljIGZ1bmN0aW9uPyBLbm93aW5nIGl0cyBzY29wZSwgYW5kIGlmIGl0JiMzOTtzIHZpc2libGUgb3V0c2lkZSB0aGUgZmlsZSBpdCYjMzk7cyBkZWNsYXJlZCBpbiwgY2FuIHNpZ25pZmljYW50bHkgaW1wYWN0IGhvdyBJIG5lZWQgdG8gYW5hbHl6ZSBpdHMgYmVoYXZpb3IgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBwYXJ0cyBvZiB0aGUgU0NUUCBpbXBsZW1lbnRhdGlvbi4gSSYjMzk7bGwgbmVlZCB0byBrbm93IHdoZXRoZXIgdGhlIGZ1bmN0aW9uIG5hbWUsIGBzY3RwX2dldHNvY2tvcHRgLCBpcyBkaXJlY3RseSB1c2VkIGluIG90aGVyIHBhcnRzIG9mIHRoZSBjb2RlLiBUaGF0IGdpdmVzIG1lIGNsdWVzIGFib3V0IGhvdyB0aWdodGx5IGNvdXBsZWQgb3IgbW9kdWxhciB0aGlzIGZ1bmN0aW9uIGlzLiBLbm93aW5nIHdoZXRoZXIgdGhlIGZ1bmN0aW9uIGlzIHN0YXRpYyBvciBub3Qgd2lsbCBjbGFyaWZ5IHRoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2N0cF9nZXRzb2Nrb3B0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmM9MTM4MT1zdHJ1Y3QgY29tcGF0X3NjdHBfZ2V0YWRkcnNfb2xkIHtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy0xMzg3LVxubmV0L3NjdHAvc29ja2V0LmM6MTM4ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9jb25uZWN0eDMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtMTM4OS1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz01NDc3PUVYUE9SVF9TWU1CT0xfR1BMKHNjdHBfdHJhbnNwb3J0X3RyYXZlcnNlX3Byb2Nlc3MpO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU0ODUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo1NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTU0ODctXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY1LSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NTU2NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY3LVx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTYyOC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjU2Mjk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGlzYWJsZV9mcmFnbWVudHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNTYzMC1cdFx0XHRcdFx0Y2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU2NTAtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo1NjUxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2V2ZW50cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy01NjUyLVx0XHRcdFx0ICBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTY4NS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjU2ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXV0b2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxubmV0L3NjdHAvc29ja2V0LmMtNTY4Ny17XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTcwMj1zdGF0aWMgaW50IHNjdHBfZG9fcGVlbG9mZihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfYXNzb2NfdCBpZCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NzQ1LVxubmV0L3NjdHAvc29ja2V0LmM6NTc0NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfcGVlbG9mZl9hcmdfdCAqcGVlbG9mZixcbm5ldC9zY3RwL3NvY2tldC5jLTU3NDctXHRcdFx0XHRcdCAgc3RydWN0IGZpbGUgKipuZXdmaWxlLCB1bnNpZ25lZCBmbGFncylcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NzgxLVxubmV0L3NjdHAvc29ja2V0LmM6NTc4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxubmV0L3NjdHAvc29ja2V0LmMtNTc4My17XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTc5My1cbm5ldC9zY3RwL3NvY2tldC5jOjU3OTQ6XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9jb21tb24oc2ssIFx1MDAyNnBlZWxvZmYsIFx1MDAyNm5ld2ZpbGUsIDApO1xubmV0L3NjdHAvc29ja2V0LmMtNTc5NS1cdGlmIChyZXR2YWwgXHUwMDNjIDApXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTgxNC1cbm5ldC9zY3RwL3NvY2tldC5jOjU4MTU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy01ODE2LVx0XHRcdFx0XHQgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU4MjctXG5uZXQvc2N0cC9zb2NrZXQuYzo1ODI4Olx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfY29tbW9uKHNrLCBcdTAwMjZwZWVsb2ZmLnBfYXJnLFxubmV0L3NjdHAvc29ja2V0LmMtNTgyOS1cdFx0XHRcdFx0XHRcdTAwMjZuZXdmaWxlLCBwZWVsb2ZmLmZsYWdzKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01OTgxLSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NTk4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTU5ODMtXHRcdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjEyNC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjYxMjU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVsYXllZF9hY2soc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjEyNi1cdFx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjE5OC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjYxOTk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbm5ldC9zY3RwL3NvY2tldC5jLTYyMDAte1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTYyMTEtXG5uZXQvc2N0cC9zb2NrZXQuYzo2MjEyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcnMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjIxMy1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz02MjYzPXN0YXRpYyBpbnQgc2N0cF9jb3B5X2xhZGRycyhzdHJ1Y3Qgc29jayAqc2ssIF9fdTE2IHBvcnQsIHZvaWQgKnRvLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTYzMDctXG5uZXQvc2N0cC9zb2NrZXQuYzo2MzA4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTYzMDktXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY0MTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2NDE2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NDE3LVx0XHRcdFx0XHRjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjQ1Ny0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY0NTg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWRhcHRhdGlvbl9sYXllcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NDU5LVx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjQ5Ni0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY0OTc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHN0cnVjdCBzb2NrICpzayxcbm5ldC9zY3RwL3NvY2tldC5jLTY0OTgtXHRcdFx0XHRcdGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjU0Mi0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY1NDM6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zbmRpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTY1NDQtXHRcdFx0XHRcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjU5My1cbm5ldC9zY3RwL3NvY2tldC5jOjY1OTQ6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbm9kZWxheShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NTk1LVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY2MjItICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2NjIzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjYyNC1cdFx0XHRcdGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjY3Ni0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY2Nzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNzb2NpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTY2NzgtXHRcdFx0XHQgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjc0NS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY3NDY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWFwcGVkdjQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjc0Ny1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjc2OC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY3Njk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfY29udGV4dChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NzcwLVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY4MjUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODI2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02ODI3LVx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjg3Mi0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY4NzM6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZnJhZ21lbnRfaW50ZXJsZWF2ZShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02ODc0LVx0XHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY4OTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODk2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BhcnRpYWxfZGVsaXZlcnlfcG9pbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjg5Ny1cdFx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjkxOS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY5MjA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWF4YnVyc3Qoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjkyMS1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY5NTktXG5uZXQvc2N0cC9zb2NrZXQuYzo2OTYwOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2htYWNfaWRlbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjk2MS1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjk5NS1cbm5ldC9zY3RwL3NvY2tldC5jOjY5OTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02OTk3LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MDMxLVxubmV0L3NjdHAvc29ja2V0LmM6NzAzMjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwMzMtXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDc2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcxMzctICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTM4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTM5LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MTY4LSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NzE2OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTcwLVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcxOTMtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTk0OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX2lkcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTk1LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MjQzLSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NzI0NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wYWRkcl90aHJlc2hvbGRzKHN0cnVjdCBzb2NrICpzayxcbm5ldC9zY3RwL3NvY2tldC5jLTcyNDUtXHRcdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgbGVuLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTczMDItICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzAzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTczMDQtXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MzYwLVxubmV0L3NjdHAvc29ja2V0LmM6NzM2MTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzdHJ1Y3Qgc29jayAqc2ssXHRpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzM2Mi1cdFx0XHRcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTczODAtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzgxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY3ZueHRpbmZvKHN0cnVjdCBzb2NrICpzayxcdGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MzgyLVx0XHRcdFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzQwMC1cbm5ldC9zY3RwL3NvY2tldC5jOjc0MDE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc0MDItXHRcdFx0XHRcdGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzQzOS1cbm5ldC9zY3RwL3NvY2tldC5jOjc0NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9wcmluZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzQ0MS1cdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTc0ODUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc0ODctXHRcdFx0XHRcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NTQ0LVxubmV0L3NjdHAvc29ja2V0LmM6NzU0NTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzU0Ni1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NjA4LVxubmV0L3NjdHAvc29ja2V0LmM6NzYwOTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWNvbmZpZ19zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzYxMC1cdFx0XHRcdFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NjQ3LVxubmV0L3NjdHAvc29ja2V0LmM6NzY0ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmFibGVfc3RycmVzZXQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzY0OS1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03Njg2LVxubmV0L3NjdHAvc29ja2V0LmM6NzY4NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXIoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzY4OC1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NzI1LVxubmV0L3NjdHAvc29ja2V0LmM6NzcyNjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXJfdmFsdWUoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzcyNy1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NzY3LVxubmV0L3NjdHAvc29ja2V0LmM6Nzc2ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9pbnRlcmxlYXZpbmdfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc3NjktXHRcdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTc4MDYtXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODA3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JldXNlX3BvcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzgwOC1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzgyNi1cbm5ldC9zY3RwL3NvY2tldC5jOjc4Mjc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtNzgyOC1cdFx0XHRcdCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzg2MS1cbm5ldC9zY3RwL3NvY2tldC5jOjc4NjI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03ODYzLVx0XHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAwLVxubmV0L3NjdHAvc29ja2V0LmM6NzkwMTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRoX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAyLVx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzkzOS1cbm5ldC9zY3RwL3NvY2tldC5jOjc5NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZWNuX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03OTQxLVx0XHRcdFx0XHQgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03OTc4LVxubmV0L3NjdHAvc29ja2V0LmM6Nzk3OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZl9leHBvc2Uoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzk4MC1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MDE3LVxubmV0L3NjdHAvc29ja2V0LmM6ODAxODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmNhcF9wb3J0KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTgwMTktXHRcdFx0XHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODA3Ni1cbm5ldC9zY3RwL3NvY2tldC5jOjgwNzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtODA3OC1cdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgxMzYtXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTM3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSxcbm5ldC9zY3RwL3NvY2tldC5jLTgxMzgtXHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgxNjctXHRjYXNlIFNDVFBfU1RBVFVTOlxubmV0L3NjdHAvc29ja2V0LmM6ODE2ODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgxNjktXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODE3MC1cdGNhc2UgU0NUUF9ESVNBQkxFX0ZSQUdNRU5UUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzE6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kaXNhYmxlX2ZyYWdtZW50cyhzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MTcyLVx0XHRcdFx0XHRcdFx0ICAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MTc0LVx0Y2FzZSBTQ1RQX0VWRU5UUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzU6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ldmVudHMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODE3Ni1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTc3LVx0Y2FzZSBTQ1RQX0FVVE9DTE9TRTpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzg6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvY2xvc2Uoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODE3OS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTgwLVx0Y2FzZSBTQ1RQX1NPQ0tPUFRfUEVFTE9GRjpcbm5ldC9zY3RwL3NvY2tldC5jOjgxODE6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgxODItXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODE4My1cdGNhc2UgU0NUUF9TT0NLT1BUX1BFRUxPRkZfRkxBR1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTg0Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTg1LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgxODYtXHRjYXNlIFNDVFBfUEVFUl9BRERSX1BBUkFNUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxODc6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgxODgtXHRcdFx0XHRcdFx0XHQgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODE5MC1cdGNhc2UgU0NUUF9ERUxBWUVEX1NBQ0s6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTkxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVsYXllZF9hY2soc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODE5Mi1cdFx0XHRcdFx0XHRcdCAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk0LVx0Y2FzZSBTQ1RQX0lOSVRNU0c6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk1Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTk2LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTctXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUlM6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRycyhzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk5LVx0XHRcdFx0XHRcdCAgICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMDEtXHRjYXNlIFNDVFBfR0VUX0xPQ0FMX0FERFJTOlxubmV0L3NjdHAvc29ja2V0LmM6ODIwMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDMtXHRcdFx0XHRcdFx0ICAgICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMDUtXHRjYXNlIFNDVFBfU09DS09QVF9DT05ORUNUWDM6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA2Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfY29ubmVjdHgzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDctXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODIwOC1cdGNhc2UgU0NUUF9ERUZBVUxUX1NFTkRfUEFSQU06XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA5Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHNrLCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy04MjEwLVx0XHRcdFx0XHRcdFx0ICAgIG9wdHZhbCwgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjEyLVx0Y2FzZSBTQ1RQX0RFRkFVTFRfU05ESU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMTM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NuZGluZm8oc2ssIGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTQtXHRcdFx0XHRcdFx0XHQgb3B0dmFsLCBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMTYtXHRjYXNlIFNDVFBfUFJJTUFSWV9BRERSOlxubmV0L3NjdHAvc29ja2V0LmM6ODIxNzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjE4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTktXHRjYXNlIFNDVFBfTk9ERUxBWTpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjA6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ub2RlbGF5KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjEtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODIyMi1cdGNhc2UgU0NUUF9SVE9JTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODIyMzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODIyNC1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjI1LVx0Y2FzZSBTQ1RQX0FTU09DSU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjY6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc3NvY2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODIyNy1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjI4LVx0Y2FzZSBTQ1RQX0lfV0FOVF9NQVBQRURfVjRfQUREUjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9tYXBwZWR2NChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjMwLVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzEtXHRjYXNlIFNDVFBfTUFYU0VHOlxubmV0L3NjdHAvc29ja2V0LmM6ODIzMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjMzLVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzQtXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUl9JTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODIzNTpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcl9pbmZvKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzYtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMzgtXHRjYXNlIFNDVFBfQURBUFRBVElPTl9MQVlFUjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMzk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hZGFwdGF0aW9uX2xheWVyKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDAtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNDItXHRjYXNlIFNDVFBfQ09OVEVYVDpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNDM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9jb250ZXh0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDQtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI0NS1cdGNhc2UgU0NUUF9GUkFHTUVOVF9JTlRFUkxFQVZFOlxubmV0L3NjdHAvc29ja2V0LmM6ODI0NjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ZyYWdtZW50X2ludGVybGVhdmUoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI0Ny1cdFx0XHRcdFx0XHRcdCAgICAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ5LVx0Y2FzZSBTQ1RQX1BBUlRJQUxfREVMSVZFUllfUE9JTlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjUwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFydGlhbF9kZWxpdmVyeV9wb2ludChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MjUxLVx0XHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNTMtXHRjYXNlIFNDVFBfTUFYX0JVUlNUOlxubmV0L3NjdHAvc29ja2V0LmM6ODI1NDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heGJ1cnN0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNTUtXHRcdGJyZWFrO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNjItXHRjYXNlIFNDVFBfSE1BQ19JREVOVDpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9obWFjX2lkZW50KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjQtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI2NS1cdGNhc2UgU0NUUF9BVVRIX0FDVElWRV9LRVk6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjY2Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjY3LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjgtXHRjYXNlIFNDVFBfUEVFUl9BVVRIX0NIVU5LUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzAtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODI3Ni1cdGNhc2UgU0NUUF9HRVRfQVNTT0NfTlVNQkVSOlxubmV0L3NjdHAvc29ja2V0LmM6ODI3NzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzktXHRjYXNlIFNDVFBfR0VUX0FTU09DX0lEX0xJU1Q6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjgwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNzb2NfaWRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyODEtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI4Mi1cdGNhc2UgU0NUUF9BVVRPX0FTQ09ORjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyODM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjg0LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyODUtXHRjYXNlIFNDVFBfUEVFUl9BRERSX1RITERTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI4NjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhZGRyX3RocmVzaG9sZHMoc2ssIG9wdHZhbCwgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtODI4Ny1cdFx0XHRcdFx0XHRcdCAgb3B0bGVuLCBmYWxzZSk7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODI4OS1cdGNhc2UgU0NUUF9QRUVSX0FERFJfVEhMRFNfVjI6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjkwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFkZHJfdGhyZXNob2xkcyhzaywgb3B0dmFsLCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy04MjkxLVx0XHRcdFx0XHRcdFx0ICBvcHRsZW4sIHRydWUpO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyOTMtXHRjYXNlIFNDVFBfR0VUX0FTU09DX1NUQVRTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI5NDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTUtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI5Ni1cdGNhc2UgU0NUUF9SRUNWUkNWSU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTc6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTktXHRjYXNlIFNDVFBfUkVDVk5YVElORk86XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzAwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmVjdm54dGluZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODMwMS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzAyLVx0Y2FzZSBTQ1RQX1BSX1NVUFBPUlRFRDpcbm5ldC9zY3RwL3NvY2tldC5jOjgzMDM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODMwNC1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzA1LVx0Y2FzZSBTQ1RQX0RFRkFVTFRfUFJJTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODMwNjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfcHJpbmZvKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDctXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMDktXHRjYXNlIFNDVFBfUFJfQVNTT0NfU1RBVFVTOlxubmV0L3NjdHAvc29ja2V0LmM6ODMxMDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTEtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMTMtXHRjYXNlIFNDVFBfUFJfU1RSRUFNX1NUQVRVUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgzMTQ6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODMxNS1cdFx0XHRcdFx0XHRcdCBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMTctXHRjYXNlIFNDVFBfUkVDT05GSUdfU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODMxODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY29uZmlnX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE5LVx0XHRcdFx0XHRcdFx0ICAgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyMS1cdGNhc2UgU0NUUF9FTkFCTEVfU1RSRUFNX1JFU0VUOlxubmV0L3NjdHAvc29ja2V0LmM6ODMyMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuYWJsZV9zdHJyZXNldChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzIzLVx0XHRcdFx0XHRcdFx0IG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyNS1cdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSOlxubmV0L3NjdHAvc29ja2V0LmM6ODMyNjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcihzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzI3LVx0XHRcdFx0XHRcdCAgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyOS1cdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSX1ZBTFVFOlxubmV0L3NjdHAvc29ja2V0LmM6ODMzMDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcl92YWx1ZShzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzMxLVx0XHRcdFx0XHRcdFx0IG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMzMy1cdGNhc2UgU0NUUF9JTlRFUkxFQVZJTkdfU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODMzNDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ludGVybGVhdmluZ19zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODMzNS1cdFx0XHRcdFx0XHRcdFx0b3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MzM3LVx0Y2FzZSBTQ1RQX1JFVVNFX1BPUlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzM4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmV1c2VfcG9ydChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzM5LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDAtXHRjYXNlIFNDVFBfRVZFTlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM0Mi1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzQzLVx0Y2FzZSBTQ1RQX0FTQ09ORl9TVVBQT1JURUQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ0Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQ1LVx0XHRcdFx0XHRcdFx0ICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzNDctXHRjYXNlIFNDVFBfQVVUSF9TVVBQT1JURUQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXV0aF9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODM0OS1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODM1MS1cdGNhc2UgU0NUUF9FQ05fU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODM1MjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Vjbl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM1My1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzU0LVx0Y2FzZSBTQ1RQX0VYUE9TRV9QT1RFTlRJQUxMWV9GQUlMRURfU1RBVEU6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzU1Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGZfZXhwb3NlKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTYtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODM1Ny1cdGNhc2UgU0NUUF9SRU1PVEVfVURQX0VOQ0FQU19QT1JUOlxubmV0L3NjdHAvc29ja2V0LmM6ODM1ODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuY2FwX3BvcnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM1OS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzYwLVx0Y2FzZSBTQ1RQX1BMUE1UVURfUFJPQkVfSU5URVJWQUw6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzYxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM2Mi1cdFx0YnJlYWs7XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9OTY2MD1zdHJ1Y3QgcHJvdG8gc2N0cF9wcm90ID0ge1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTk2NzAtXHQuc2V0c29ja29wdCAgPVx0c2N0cF9zZXRzb2Nrb3B0LFxubmV0L3NjdHAvc29ja2V0LmM6OTY3MTpcdC5nZXRzb2Nrb3B0ICA9XHRzY3RwX2dldHNvY2tvcHQsXG5uZXQvc2N0cC9zb2NrZXQuYy05NjcyLVx0LmJwZl9ieXBhc3NfZ2V0c29ja29wdFx0PSBzY3RwX2JwZl9ieXBhc3NfZ2V0c29ja29wdCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz05NzE1PXN0cnVjdCBwcm90byBzY3RwdjZfcHJvdCA9IHtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy05NzI1LVx0LnNldHNvY2tvcHRcdD0gc2N0cF9zZXRzb2Nrb3B0LFxubmV0L3NjdHAvc29ja2V0LmM6OTcyNjpcdC5nZXRzb2Nrb3B0XHQ9IHNjdHBfZ2V0c29ja29wdCxcbm5ldC9zY3RwL3NvY2tldC5jLTk3MjctXHQuYnBmX2J5cGFzc19nZXRzb2Nrb3B0XHQ9IHNjdHBfYnBmX2J5cGFzc19nZXRzb2Nrb3B0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzNTQxCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogMjk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYHNjdHBfZ2V0c29ja29wdGAgRnVuY3Rpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGBzY3RwX2dldHNvY2tvcHRgLiBJdCYjMzk7cyBkZWZpbmVkIGFzIGEgYHN0YXRpY2AgZnVuY3Rpb24sIHdoaWNoIGluaXRpYWxseSBtYWtlcyBtZSB0aGluayBpdCBtaWdodCBub3QgYmUgYSBnbG9iYWxseSBhY2Nlc3NpYmxlIHN5bWJvbC4gQnV0IHRoZW4sIGl0JiMzOTtzIGJlaW5nIGFzc2lnbmVkIHRvIGBzY3RwX3Byb3QuZ2V0c29ja29wdGAgYW5kIGBzY3RwdjZfcHJvdC5nZXRzb2Nrb3B0YC4gVGhhdCYjMzk7cyBpbnRlcmVzdGluZywgYmVjYXVzZSB0aGF0IHN1Z2dlc3RzIGl0ICppcyogcGFydCBvZiB0aGUgcHJvdG9jb2wmIzM5O3MgaW50ZXJmYWNlLCBldmVuIGlmIG5vdCBkaXJlY3RseSBleHBvc2VkIGluIHRoZSBzeW1ib2wgdGFibGUuCgpTbywgc2luY2UgaXQmIzM5O3MgYHN0YXRpY2AsIGl0IHdvbiYjMzk7dCBiZSBpbiB0aGUgc3ltYm9sIHRhYmxlIGFzIGEgZ2xvYmFsIHN5bWJvbC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSB0aGlzIGlzIGV4cG9ydGVkIG9yIGlmIHRoZXJlJiMzOTtzIGEgd3JhcHBlci4gTm9wZS4gSXQmIzM5O3MgYXNzaWduZWQgdG8gYHN0cnVjdCBwcm90byBzY3RwX3Byb3RgLCByaWdodD8gQWxyaWdodC4KClRoZSBzdGFuZGFyZCBzeXNjYWxsIHBhdGggZm9yIGBnZXRzb2Nrb3B0YCB3aWxsIGV2ZW50dWFsbHkgY2FsbCBgc2stJmd0O3NrX3Byb3QtJmd0O2dldHNvY2tvcHRgLiBUaGF0IG1lYW5zIGBzY3RwX2dldHNvY2tvcHRgICppcyogcmVhY2hhYmxlIGluZGlyZWN0bHkuCgpUaGUgcXVlc3Rpb24gaXMsIHNob3VsZCBJIGFkZCBgc2N0cF9nZXRzb2Nrb3B0YCB0byBgRm9jdXNTeW1ib2xzYD8gTm9ybWFsbHksIEkgbWlnaHQgYmUgaGVzaXRhbnQgd2l0aCBhIHN0YXRpYyBmdW5jdGlvbiBiZWNhdXNlIG9mIHBvdGVudGlhbCBpbmxpbmluZywgYnV0IGluIHRoaXMgY2FzZSwgaXRzIGFkZHJlc3MgaXMgYWN0dWFsbHkgYmVpbmcgdGFrZW4sIGJlY2F1c2UgaXQmIzM5O3MgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLiBUaGVyZWZvcmUsIGlubGluaW5nIGlzIG91dCBvZiB0aGUgcXVlc3Rpb24uIEhvd2V2ZXIsIGBzY3RwX2dldHNvY2tvcHRgIGlzIGEgbGFyZ2UgZnVuY3Rpb24uLi4KCldhaXQgYSBzZWNvbmQsIGl0IGJlaW5nIHN0YXRpYyBkb2VzbiYjMzk7dCBtZWFuIGl0JiMzOTtzIGlubGluZWQgaGVyZSwgc2luY2UgaXRzIGFkZHJlc3MgaXMgdGFrZW4uIEFscmlnaHQuIEdvb2QgdG8ga25vdy4gQnV0IGlzIHRoZXJlIGFueSBvdGhlciBub24tc3RhdGljIGZ1bmN0aW9uPyBMZXQgbWUgY2hlY2sgYG5ldC9zY3RwL3NvY2tldC5jYCB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBleHBvcnRlZCBvciBnbG9iYWwgZnVuY3Rpb25zIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzY3RwX2dldHNvY2tvcHQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvc2N0cC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmM9MTM4MT1zdHJ1Y3QgY29tcGF0X3NjdHBfZ2V0YWRkcnNfb2xkIHtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy0xMzg3LVxubmV0L3NjdHAvc29ja2V0LmM6MTM4ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9jb25uZWN0eDMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtMTM4OS1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz01NDc3PUVYUE9SVF9TWU1CT0xfR1BMKHNjdHBfdHJhbnNwb3J0X3RyYXZlcnNlX3Byb2Nlc3MpO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU0ODUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo1NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTU0ODctXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY1LSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NTU2NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY3LVx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTYyOC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjU2Mjk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGlzYWJsZV9mcmFnbWVudHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNTYzMC1cdFx0XHRcdFx0Y2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU2NTAtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo1NjUxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2V2ZW50cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy01NjUyLVx0XHRcdFx0ICBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTY4NS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjU2ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXV0b2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxubmV0L3NjdHAvc29ja2V0LmMtNTY4Ny17XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTcwMj1zdGF0aWMgaW50IHNjdHBfZG9fcGVlbG9mZihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfYXNzb2NfdCBpZCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NzQ1LVxubmV0L3NjdHAvc29ja2V0LmM6NTc0NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfcGVlbG9mZl9hcmdfdCAqcGVlbG9mZixcbm5ldC9zY3RwL3NvY2tldC5jLTU3NDctXHRcdFx0XHRcdCAgc3RydWN0IGZpbGUgKipuZXdmaWxlLCB1bnNpZ25lZCBmbGFncylcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01NzgxLVxubmV0L3NjdHAvc29ja2V0LmM6NTc4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxubmV0L3NjdHAvc29ja2V0LmMtNTc4My17XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTc5My1cbm5ldC9zY3RwL3NvY2tldC5jOjU3OTQ6XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9jb21tb24oc2ssIFx1MDAyNnBlZWxvZmYsIFx1MDAyNm5ld2ZpbGUsIDApO1xubmV0L3NjdHAvc29ja2V0LmMtNTc5NS1cdGlmIChyZXR2YWwgXHUwMDNjIDApXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTgxNC1cbm5ldC9zY3RwL3NvY2tldC5jOjU4MTU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy01ODE2LVx0XHRcdFx0XHQgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTU4MjctXG5uZXQvc2N0cC9zb2NrZXQuYzo1ODI4Olx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfY29tbW9uKHNrLCBcdTAwMjZwZWVsb2ZmLnBfYXJnLFxubmV0L3NjdHAvc29ja2V0LmMtNTgyOS1cdFx0XHRcdFx0XHRcdTAwMjZuZXdmaWxlLCBwZWVsb2ZmLmZsYWdzKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy01OTgxLSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NTk4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTU5ODMtXHRcdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjEyNC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjYxMjU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVsYXllZF9hY2soc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjEyNi1cdFx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjE5OC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjYxOTk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbm5ldC9zY3RwL3NvY2tldC5jLTYyMDAte1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTYyMTEtXG5uZXQvc2N0cC9zb2NrZXQuYzo2MjEyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcnMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjIxMy1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz02MjYzPXN0YXRpYyBpbnQgc2N0cF9jb3B5X2xhZGRycyhzdHJ1Y3Qgc29jayAqc2ssIF9fdTE2IHBvcnQsIHZvaWQgKnRvLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTYzMDctXG5uZXQvc2N0cC9zb2NrZXQuYzo2MzA4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTYzMDktXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY0MTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2NDE2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NDE3LVx0XHRcdFx0XHRjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjQ1Ny0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY0NTg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWRhcHRhdGlvbl9sYXllcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NDU5LVx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjQ5Ni0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY0OTc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHN0cnVjdCBzb2NrICpzayxcbm5ldC9zY3RwL3NvY2tldC5jLTY0OTgtXHRcdFx0XHRcdGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjU0Mi0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY1NDM6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zbmRpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTY1NDQtXHRcdFx0XHRcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjU5My1cbm5ldC9zY3RwL3NvY2tldC5jOjY1OTQ6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbm9kZWxheShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NTk1LVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY2MjItICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2NjIzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjYyNC1cdFx0XHRcdGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjY3Ni0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY2Nzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNzb2NpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTY2NzgtXHRcdFx0XHQgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjc0NS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY3NDY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWFwcGVkdjQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjc0Ny1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjc2OC0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY3Njk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfY29udGV4dChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02NzcwLVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY4MjUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODI2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02ODI3LVx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjg3Mi0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY4NzM6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZnJhZ21lbnRfaW50ZXJsZWF2ZShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02ODc0LVx0XHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY4OTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODk2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BhcnRpYWxfZGVsaXZlcnlfcG9pbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjg5Ny1cdFx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjkxOS0gKi9cbm5ldC9zY3RwL3NvY2tldC5jOjY5MjA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWF4YnVyc3Qoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjkyMS1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTY5NTktXG5uZXQvc2N0cC9zb2NrZXQuYzo2OTYwOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2htYWNfaWRlbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNjk2MS1cdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNjk5NS1cbm5ldC9zY3RwL3NvY2tldC5jOjY5OTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy02OTk3LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MDMxLVxubmV0L3NjdHAvc29ja2V0LmM6NzAzMjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwMzMtXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDc2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcxMzctICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTM4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTM5LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MTY4LSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NzE2OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTcwLVx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcxOTMtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTk0OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX2lkcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MTk1LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MjQzLSAqL1xubmV0L3NjdHAvc29ja2V0LmM6NzI0NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wYWRkcl90aHJlc2hvbGRzKHN0cnVjdCBzb2NrICpzayxcbm5ldC9zY3RwL3NvY2tldC5jLTcyNDUtXHRcdFx0XHRcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgbGVuLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTczMDItICovXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzAzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTczMDQtXHRcdFx0XHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MzYwLVxubmV0L3NjdHAvc29ja2V0LmM6NzM2MTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzdHJ1Y3Qgc29jayAqc2ssXHRpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzM2Mi1cdFx0XHRcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTczODAtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzgxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY3ZueHRpbmZvKHN0cnVjdCBzb2NrICpzayxcdGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MzgyLVx0XHRcdFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzQwMC1cbm5ldC9zY3RwL3NvY2tldC5jOjc0MDE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc0MDItXHRcdFx0XHRcdGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzQzOS1cbm5ldC9zY3RwL3NvY2tldC5jOjc0NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9wcmluZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzQ0MS1cdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTc0ODUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc0ODctXHRcdFx0XHRcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NTQ0LVxubmV0L3NjdHAvc29ja2V0LmM6NzU0NTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzU0Ni1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NjA4LVxubmV0L3NjdHAvc29ja2V0LmM6NzYwOTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWNvbmZpZ19zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzYxMC1cdFx0XHRcdFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NjQ3LVxubmV0L3NjdHAvc29ja2V0LmM6NzY0ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmFibGVfc3RycmVzZXQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzY0OS1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03Njg2LVxubmV0L3NjdHAvc29ja2V0LmM6NzY4NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXIoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzY4OC1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NzI1LVxubmV0L3NjdHAvc29ja2V0LmM6NzcyNjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXJfdmFsdWUoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzcyNy1cdFx0XHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03NzY3LVxubmV0L3NjdHAvc29ja2V0LmM6Nzc2ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9pbnRlcmxlYXZpbmdfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTc3NjktXHRcdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTc4MDYtXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODA3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JldXNlX3BvcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzgwOC1cdFx0XHRcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzgyNi1cbm5ldC9zY3RwL3NvY2tldC5jOjc4Mjc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtNzgyOC1cdFx0XHRcdCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzg2MS1cbm5ldC9zY3RwL3NvY2tldC5jOjc4NjI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03ODYzLVx0XHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAwLVxubmV0L3NjdHAvc29ja2V0LmM6NzkwMTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRoX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAyLVx0XHRcdFx0XHQgIGNoYXIgX191c2VyICpvcHR2YWwsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNzkzOS1cbm5ldC9zY3RwL3NvY2tldC5jOjc5NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZWNuX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03OTQxLVx0XHRcdFx0XHQgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03OTc4LVxubmV0L3NjdHAvc29ja2V0LmM6Nzk3OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZl9leHBvc2Uoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtNzk4MC1cdFx0XHRcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MDE3LVxubmV0L3NjdHAvc29ja2V0LmM6ODAxODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmNhcF9wb3J0KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTgwMTktXHRcdFx0XHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODA3Ni1cbm5ldC9zY3RwL3NvY2tldC5jOjgwNzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtODA3OC1cdFx0XHRcdFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgxMzYtXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTM3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSxcbm5ldC9zY3RwL3NvY2tldC5jLTgxMzgtXHRcdFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgxNjctXHRjYXNlIFNDVFBfU1RBVFVTOlxubmV0L3NjdHAvc29ja2V0LmM6ODE2ODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgxNjktXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODE3MC1cdGNhc2UgU0NUUF9ESVNBQkxFX0ZSQUdNRU5UUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzE6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kaXNhYmxlX2ZyYWdtZW50cyhzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MTcyLVx0XHRcdFx0XHRcdFx0ICAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MTc0LVx0Y2FzZSBTQ1RQX0VWRU5UUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzU6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ldmVudHMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODE3Ni1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTc3LVx0Y2FzZSBTQ1RQX0FVVE9DTE9TRTpcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzg6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvY2xvc2Uoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODE3OS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTgwLVx0Y2FzZSBTQ1RQX1NPQ0tPUFRfUEVFTE9GRjpcbm5ldC9zY3RwL3NvY2tldC5jOjgxODE6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgxODItXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODE4My1cdGNhc2UgU0NUUF9TT0NLT1BUX1BFRUxPRkZfRkxBR1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTg0Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTg1LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgxODYtXHRjYXNlIFNDVFBfUEVFUl9BRERSX1BBUkFNUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgxODc6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgxODgtXHRcdFx0XHRcdFx0XHQgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODE5MC1cdGNhc2UgU0NUUF9ERUxBWUVEX1NBQ0s6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTkxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVsYXllZF9hY2soc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODE5Mi1cdFx0XHRcdFx0XHRcdCAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk0LVx0Y2FzZSBTQ1RQX0lOSVRNU0c6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk1Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MTk2LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTctXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUlM6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRycyhzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk5LVx0XHRcdFx0XHRcdCAgICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMDEtXHRjYXNlIFNDVFBfR0VUX0xPQ0FMX0FERFJTOlxubmV0L3NjdHAvc29ja2V0LmM6ODIwMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDMtXHRcdFx0XHRcdFx0ICAgICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMDUtXHRjYXNlIFNDVFBfU09DS09QVF9DT05ORUNUWDM6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA2Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfY29ubmVjdHgzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDctXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODIwOC1cdGNhc2UgU0NUUF9ERUZBVUxUX1NFTkRfUEFSQU06XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA5Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHNrLCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy04MjEwLVx0XHRcdFx0XHRcdFx0ICAgIG9wdHZhbCwgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjEyLVx0Y2FzZSBTQ1RQX0RFRkFVTFRfU05ESU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMTM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NuZGluZm8oc2ssIGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTQtXHRcdFx0XHRcdFx0XHQgb3B0dmFsLCBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMTYtXHRjYXNlIFNDVFBfUFJJTUFSWV9BRERSOlxubmV0L3NjdHAvc29ja2V0LmM6ODIxNzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjE4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTktXHRjYXNlIFNDVFBfTk9ERUxBWTpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjA6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ub2RlbGF5KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjEtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODIyMi1cdGNhc2UgU0NUUF9SVE9JTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODIyMzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODIyNC1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjI1LVx0Y2FzZSBTQ1RQX0FTU09DSU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjY6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc3NvY2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODIyNy1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjI4LVx0Y2FzZSBTQ1RQX0lfV0FOVF9NQVBQRURfVjRfQUREUjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9tYXBwZWR2NChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjMwLVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzEtXHRjYXNlIFNDVFBfTUFYU0VHOlxubmV0L3NjdHAvc29ja2V0LmM6ODIzMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjMzLVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzQtXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUl9JTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODIzNTpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcl9pbmZvKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzYtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyMzgtXHRjYXNlIFNDVFBfQURBUFRBVElPTl9MQVlFUjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyMzk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hZGFwdGF0aW9uX2xheWVyKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDAtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNDItXHRjYXNlIFNDVFBfQ09OVEVYVDpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNDM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9jb250ZXh0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDQtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI0NS1cdGNhc2UgU0NUUF9GUkFHTUVOVF9JTlRFUkxFQVZFOlxubmV0L3NjdHAvc29ja2V0LmM6ODI0NjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ZyYWdtZW50X2ludGVybGVhdmUoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI0Ny1cdFx0XHRcdFx0XHRcdCAgICAgb3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ5LVx0Y2FzZSBTQ1RQX1BBUlRJQUxfREVMSVZFUllfUE9JTlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjUwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFydGlhbF9kZWxpdmVyeV9wb2ludChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MjUxLVx0XHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNTMtXHRjYXNlIFNDVFBfTUFYX0JVUlNUOlxubmV0L3NjdHAvc29ja2V0LmM6ODI1NDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heGJ1cnN0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNTUtXHRcdGJyZWFrO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNjItXHRjYXNlIFNDVFBfSE1BQ19JREVOVDpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9obWFjX2lkZW50KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjQtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI2NS1cdGNhc2UgU0NUUF9BVVRIX0FDVElWRV9LRVk6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjY2Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MjY3LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjgtXHRjYXNlIFNDVFBfUEVFUl9BVVRIX0NIVU5LUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjk6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzAtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODI3Ni1cdGNhc2UgU0NUUF9HRVRfQVNTT0NfTlVNQkVSOlxubmV0L3NjdHAvc29ja2V0LmM6ODI3NzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzktXHRjYXNlIFNDVFBfR0VUX0FTU09DX0lEX0xJU1Q6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjgwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNzb2NfaWRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyODEtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI4Mi1cdGNhc2UgU0NUUF9BVVRPX0FTQ09ORjpcbm5ldC9zY3RwL3NvY2tldC5jOjgyODM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjg0LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyODUtXHRjYXNlIFNDVFBfUEVFUl9BRERSX1RITERTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI4NjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhZGRyX3RocmVzaG9sZHMoc2ssIG9wdHZhbCwgbGVuLFxubmV0L3NjdHAvc29ja2V0LmMtODI4Ny1cdFx0XHRcdFx0XHRcdCAgb3B0bGVuLCBmYWxzZSk7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODI4OS1cdGNhc2UgU0NUUF9QRUVSX0FERFJfVEhMRFNfVjI6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjkwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFkZHJfdGhyZXNob2xkcyhzaywgb3B0dmFsLCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy04MjkxLVx0XHRcdFx0XHRcdFx0ICBvcHRsZW4sIHRydWUpO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyOTMtXHRjYXNlIFNDVFBfR0VUX0FTU09DX1NUQVRTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI5NDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTUtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODI5Ni1cdGNhc2UgU0NUUF9SRUNWUkNWSU5GTzpcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTc6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk4LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTktXHRjYXNlIFNDVFBfUkVDVk5YVElORk86XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzAwOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmVjdm54dGluZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODMwMS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzAyLVx0Y2FzZSBTQ1RQX1BSX1NVUFBPUlRFRDpcbm5ldC9zY3RwL3NvY2tldC5jOjgzMDM6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODMwNC1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzA1LVx0Y2FzZSBTQ1RQX0RFRkFVTFRfUFJJTkZPOlxubmV0L3NjdHAvc29ja2V0LmM6ODMwNjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfcHJpbmZvKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDctXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMDktXHRjYXNlIFNDVFBfUFJfQVNTT0NfU1RBVFVTOlxubmV0L3NjdHAvc29ja2V0LmM6ODMxMDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTEtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMTMtXHRjYXNlIFNDVFBfUFJfU1RSRUFNX1NUQVRVUzpcbm5ldC9zY3RwL3NvY2tldC5jOjgzMTQ6XHRcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODMxNS1cdFx0XHRcdFx0XHRcdCBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzMTctXHRjYXNlIFNDVFBfUkVDT05GSUdfU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODMxODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY29uZmlnX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE5LVx0XHRcdFx0XHRcdFx0ICAgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyMS1cdGNhc2UgU0NUUF9FTkFCTEVfU1RSRUFNX1JFU0VUOlxubmV0L3NjdHAvc29ja2V0LmM6ODMyMjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuYWJsZV9zdHJyZXNldChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzIzLVx0XHRcdFx0XHRcdFx0IG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyNS1cdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSOlxubmV0L3NjdHAvc29ja2V0LmM6ODMyNjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcihzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzI3LVx0XHRcdFx0XHRcdCAgIG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMyOS1cdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSX1ZBTFVFOlxubmV0L3NjdHAvc29ja2V0LmM6ODMzMDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcl92YWx1ZShzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzMxLVx0XHRcdFx0XHRcdFx0IG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODMzMy1cdGNhc2UgU0NUUF9JTlRFUkxFQVZJTkdfU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODMzNDpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ludGVybGVhdmluZ19zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODMzNS1cdFx0XHRcdFx0XHRcdFx0b3B0bGVuKTtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MzM3LVx0Y2FzZSBTQ1RQX1JFVVNFX1BPUlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzM4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmV1c2VfcG9ydChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzM5LVx0XHRicmVhaztcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDAtXHRjYXNlIFNDVFBfRVZFTlQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM0Mi1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzQzLVx0Y2FzZSBTQ1RQX0FTQ09ORl9TVVBQT1JURUQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ0Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQ1LVx0XHRcdFx0XHRcdFx0ICBvcHRsZW4pO1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgzNDctXHRjYXNlIFNDVFBfQVVUSF9TVVBQT1JURUQ6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ4Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXV0aF9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODM0OS1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4tLVxubmV0L3NjdHAvc29ja2V0LmMtODM1MS1cdGNhc2UgU0NUUF9FQ05fU1VQUE9SVEVEOlxubmV0L3NjdHAvc29ja2V0LmM6ODM1MjpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Vjbl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM1My1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzU0LVx0Y2FzZSBTQ1RQX0VYUE9TRV9QT1RFTlRJQUxMWV9GQUlMRURfU1RBVEU6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzU1Olx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGZfZXhwb3NlKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTYtXHRcdGJyZWFrO1xubmV0L3NjdHAvc29ja2V0LmMtODM1Ny1cdGNhc2UgU0NUUF9SRU1PVEVfVURQX0VOQ0FQU19QT1JUOlxubmV0L3NjdHAvc29ja2V0LmM6ODM1ODpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuY2FwX3BvcnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM1OS1cdFx0YnJlYWs7XG5uZXQvc2N0cC9zb2NrZXQuYy04MzYwLVx0Y2FzZSBTQ1RQX1BMUE1UVURfUFJPQkVfSU5URVJWQUw6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MzYxOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xubmV0L3NjdHAvc29ja2V0LmMtODM2Mi1cdFx0YnJlYWs7XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9OTY2MD1zdHJ1Y3QgcHJvdG8gc2N0cF9wcm90ID0ge1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTk2NzAtXHQuc2V0c29ja29wdCAgPVx0c2N0cF9zZXRzb2Nrb3B0LFxubmV0L3NjdHAvc29ja2V0LmM6OTY3MTpcdC5nZXRzb2Nrb3B0ICA9XHRzY3RwX2dldHNvY2tvcHQsXG5uZXQvc2N0cC9zb2NrZXQuYy05NjcyLVx0LmJwZl9ieXBhc3NfZ2V0c29ja29wdFx0PSBzY3RwX2JwZl9ieXBhc3NfZ2V0c29ja29wdCxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz05NzE1PXN0cnVjdCBwcm90byBzY3RwdjZfcHJvdCA9IHtcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy05NzI1LVx0LnNldHNvY2tvcHRcdD0gc2N0cF9zZXRzb2Nrb3B0LFxubmV0L3NjdHAvc29ja2V0LmM6OTcyNjpcdC5nZXRzb2Nrb3B0XHQ9IHNjdHBfZ2V0c29ja29wdCxcbm5ldC9zY3RwL3NvY2tldC5jLTk3MjctXHQuYnBmX2J5cGFzc19nZXRzb2Nrb3B0XHQ9IHNjdHBfYnBmX2J5cGFzc19nZXRzb2Nrb3B0LFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0NDc5CgkJCQkJCQlvdXRwdXQ6IDM3CgkJCQkJCQl0aG91Z2h0czogMTk2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV4YW1pbmluZyB0aGUgc2N0cF9nZXRzb2Nrb3B0IEZ1bmN0aW9uKioKCk9rYXksIGxldCYjMzk7cyBzZWUgd2hhdCB3ZSBjYW4gbGV2ZXJhZ2UgaGVyZS4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaWYgdGhlcmUgYXJlIGFsdGVybmF0aXZlIGZ1bmN0aW9ucyBpbiB0aGlzIGFyZWEgd2UgY2FuIHVzZSwgc28gZmlyc3QsIEkmIzM5O20gbm90aW5nIHRoYXQgYHNjdHBfZ2V0c29ja29wdGAgaXMgc3RhdGljLCBidXQgYXNzaWduZWQgdG8gYHNjdHBfcHJvdC5nZXRzb2Nrb3B0YC4gVGhhdCYjMzk7cyBhIGtleSBkZXRhaWwuIE5vdywgSSBoYXZlIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgbm9uLXN0YXRpYyBmdW5jdGlvbnMgdGhhdCBhY3R1YWxseSAqY2FsbCogYHNjdHBfZ2V0c29ja29wdGAuIE5vLCBpdCBpcyBjYWxsZWQgdGhyb3VnaCBhIGZ1bmN0aW9uIHBvaW50ZXIuIEludGVyZXN0aW5nLiBXaGF0IGFib3V0IGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgPyBUaGF0JiMzOTtzIGFsc28gc3RhdGljLgoKQXJlIHRoZXJlICphbnkqIGV4cG9ydGVkIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGJlIHN1aXRhYmxlPyBIb2xkIG9uLi4uIG1heWJlIGBzY3RwX2dldHNvY2tvcHRgIGlzIGFjdHVhbGx5IGZpbmUsIGV2ZW4gYmVpbmcgc3RhdGljLiBJdCYjMzk7cyBhIHNpemFibGUgZnVuY3Rpb24sIHNvIGlubGluaW5nIGlzIHByb2JhYmx5IG5vdCBoYXBwZW5pbmcuIEJ1dCB3YWl0Li4uIHNpbmNlIGBzY3RwX2dldHNvY2tvcHRgIGlzIGFzc2lnbmVkIHRvIGEgZnVuY3Rpb24gcG9pbnRlciwgaXQmIzM5O3MgKmRlZmluaXRlbHkqIG5vdCBpbmxpbmVkLiBHb29kISBMZXQmIzM5O3MganVzdCBiZSB0aG9yb3VnaCBhbmQgdmVyaWZ5IHRoZXJlIGFyZW4mIzM5O3QgYW55IG90aGVyIG5vbi1zdGF0aWMgZnVuY3Rpb25zIG9mIGludGVyZXN0IGluIGBuZXQvc2N0cC9zb2NrZXQuY2AuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O15pbnQgc2N0cF8uKlxcKCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwL3NvY2tldC5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9zY3RwL3NvY2tldC5jPTc1OD1zdGF0aWMgaW50IHNjdHBfc2VuZF9hc2NvbmZfZGVsX2lwKHN0cnVjdCBzb2NrXHRcdCpzayxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy05MDktLyogc2V0IGFkZHIgZXZlbnRzIHRvIGFzc29jcyBpbiB0aGUgZW5kcG9pbnQuICBlcCBhbmQgYWRkcl93cSBtdXN0IGJlIGxvY2tlZCAqL1xubmV0L3NjdHAvc29ja2V0LmM6OTEwOmludCBzY3RwX2FzY29uZl9tZ210KHN0cnVjdCBzY3RwX3NvY2sgKnNwLCBzdHJ1Y3Qgc2N0cF9zb2NrYWRkcl9lbnRyeSAqYWRkcncpXG5uZXQvc2N0cC9zb2NrZXQuYy05MTEte1xuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTQ4MTU9c3RhdGljIGludCBzY3RwX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNDgzMy1cbm5ldC9zY3RwL3NvY2tldC5jOjQ4MzQ6aW50IHNjdHBfaW5ldF9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkcl91bnNpemVkICp1YWRkcixcbm5ldC9zY3RwL3NvY2tldC5jLTQ4MzUtXHRcdCAgICAgIGludCBhZGRyX2xlbiwgaW50IGZsYWdzKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTUyMDg9c3RhdGljIHZvaWQgc2N0cF9zaHV0ZG93bihzdHJ1Y3Qgc29jayAqc2ssIGludCBob3cpXG4tLVxubmV0L3NjdHAvc29ja2V0LmMtNTIyNi1cbm5ldC9zY3RwL3NvY2tldC5jOjUyMjc6aW50IHNjdHBfZ2V0X3NjdHBfaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jLFxubmV0L3NjdHAvc29ja2V0LmMtNTIyOC1cdFx0ICAgICAgIHN0cnVjdCBzY3RwX2luZm8gKmluZm8pXG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTM1ND1zdHJ1Y3Qgc2N0cF90cmFuc3BvcnQgKnNjdHBfdHJhbnNwb3J0X2dldF9pZHgoc3RydWN0IG5ldCAqbmV0LFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTUzNzEtXG5uZXQvc2N0cC9zb2NrZXQuYzo1MzcyOmludCBzY3RwX2Zvcl9lYWNoX2VuZHBvaW50KGludCAoKmNiKShzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqLCB2b2lkICopLFxubmV0L3NjdHAvc29ja2V0LmMtNTM3My1cdFx0XHQgICBzdHJ1Y3QgbmV0ICpuZXQsIGludCAqcG9zLCB2b2lkICpwKSB7XG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTQwNz1FWFBPUlRfU1lNQk9MX0dQTChzY3RwX2Zvcl9lYWNoX2VuZHBvaW50KTtcbm5ldC9zY3RwL3NvY2tldC5jLTU0MDgtXG5uZXQvc2N0cC9zb2NrZXQuYzo1NDA5OmludCBzY3RwX3RyYW5zcG9ydF9sb29rdXBfcHJvY2VzcyhzY3RwX2NhbGxiYWNrX3QgY2IsIHN0cnVjdCBuZXQgKm5ldCxcbm5ldC9zY3RwL3NvY2tldC5jLTU0MTAtXHRcdFx0XHQgIGNvbnN0IHVuaW9uIHNjdHBfYWRkciAqbGFkZHIsXG4tLVxubmV0L3NjdHAvc29ja2V0LmM9NTQzNj1FWFBPUlRfU1lNQk9MX0dQTChzY3RwX3RyYW5zcG9ydF9sb29rdXBfcHJvY2Vzcyk7XG5uZXQvc2N0cC9zb2NrZXQuYy01NDM3LVxubmV0L3NjdHAvc29ja2V0LmM6NTQzODppbnQgc2N0cF90cmFuc3BvcnRfdHJhdmVyc2VfcHJvY2VzcyhzY3RwX2NhbGxiYWNrX3QgY2IsIHNjdHBfY2FsbGJhY2tfdCBjYl9kb25lLFxubmV0L3NjdHAvc29ja2V0LmMtNTQzOS1cdFx0XHRcdCAgICBzdHJ1Y3QgbmV0ICpuZXQsIGludCAqcG9zLCB2b2lkICpwKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTg2MDE9c3RhdGljIGludCBzY3RwX2xpc3Rlbl9zdGFydChzdHJ1Y3Qgc29jayAqc2ssIGludCBiYWNrbG9nKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTg2NTUtICovXG5uZXQvc2N0cC9zb2NrZXQuYzo4NjU2OmludCBzY3RwX2luZXRfbGlzdGVuKHN0cnVjdCBzb2NrZXQgKnNvY2ssIGludCBiYWNrbG9nKVxubmV0L3NjdHAvc29ja2V0LmMtODY1Ny17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI1ODUwCgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMTgxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBTQ1RQIEdldHNvY2tvcHQgSW1wbGVtZW50YXRpb25zKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBob3cgYGdldHNvY2tvcHRgIGlzIGhhbmRsZWQgZm9yIFNDVFAuIFRoZSBjb3JlIGVudHJ5IHBvaW50LCBgc2N0cF9nZXRzb2Nrb3B0YCwgaXMgZGVjbGFyZWQgc3RhdGljLCB3aGljaCBpbml0aWFsbHkgcmFpc2VkIGEgZmxhZy4gSG93ZXZlciwgaXQmIzM5O3MgdGhlIGZ1bmN0aW9uIHRoYXQmIzM5O3MgdWx0aW1hdGVseSBhc3NpZ25lZCB0byBgc2N0cF9wcm90LmdldHNvY2tvcHRgLiBMZXQmIzM5O3Mgc3RlcCBiYWNrIGFuZCBjb25zaWRlciBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGBnZXRzb2Nrb3B0YCBmdW5jdGlvbnMgaW4gcGxheSBoZXJlLgoKUmlnaHQsIHNvIGV2ZW4gdGhvdWdoIGBzY3RwX2dldHNvY2tvcHRgIGFuZCBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBhcmUgc3RhdGljLCBTeXprYWxsZXIgKnNob3VsZCogYmUgYWJsZSB0byB0YXJnZXQgdGhlbSwgcHJvdmlkZWQgdGhleSBoYXZlbiYjMzk7dCBiZWVuIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyLiBXZSBrbm93IGBzY3RwX2dldHNvY2tvcHRgIGlzIGRlZmluaXRlbHkgKm5vdCogaW5saW5lZC4gVGhlIG90aGVyIGZ1bmN0aW9uLCBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCwgaXMgcG90ZW50aWFsbHkgcHJvYmxlbWF0aWMuIEl0JiMzOTtzIHBsYXVzaWJsZSB0aGF0IHRoZSBjb21waWxlciBjaG9zZSB0byBpbmxpbmUgaXQsIGJ1dCBpdCYjMzk7cyBhbHNvIGxhcmdlIGVub3VnaCB0aGF0IGl0IG1pZ2h0IGhhdmUgYmVlbiBsZWZ0IGFzIGEgc3RhbmRhbG9uZSBmdW5jdGlvbi4gU28sIHRoZSBuZXh0IGxvZ2ljYWwgc3RlcCBpcyB0byBjb25maXJtIHdoZXRoZXIgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYWN0dWFsbHkgZ290IGlubGluZWQuIFRoYXQmIzM5O3MgdGhlIGtleSBxdWVzdGlvbi4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjA6Mjc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmM9NzAzMj1zdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc1LVxubmV0L3NjdHAvc29ja2V0LmM6NzA3NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc3LVx0XHRcdFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYz04MTM3PXN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLCBpbnQgb3B0bmFtZSxcbi0tXG5uZXQvc2N0cC9zb2NrZXQuYy04MjcyLVx0Y2FzZSBTQ1RQX0xPQ0FMX0FVVEhfQ0hVTktTOlxubmV0L3NjdHAvc29ja2V0LmM6ODI3MzpcdFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHNrLCBsZW4sIG9wdHZhbCxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzQtXHRcdFx0XHRcdFx0XHRvcHRsZW4pO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNjYxNQoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDIyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcyBsYWlkIG91dCwgYXNzdW1pbmcgSSYjMzk7bSBhbHJlYWR5IGRlZXAgaW50byB0aGlzIGNvZGUgYW5kIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQ6CgoqKkFuYWx5emluZyB0aGUgRnVuY3Rpb24gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AqKgoKUmlnaHQsIGxldCYjMzk7cyB0YWtlIGEgcXVpY2sgbG9vayBhdCB0aGUgc2l6ZSBvZiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIG1lbW9yeSBmb290cHJpbnQgdGhpcyBmdW5jdGlvbiBoYXMsIGVzcGVjaWFsbHkgYXMgaXQgcmVsYXRlcyB0byB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5jZSBhbmQgcmVzb3VyY2UgdXNhZ2Ugb2YgdGhlIFNDVFAgaW1wbGVtZW50YXRpb24uIFVuZGVyc3RhbmRpbmcgaXRzIHNpemUgZGlyZWN0bHkgY29udHJpYnV0ZXMgdG8gbXkgYWJpbGl0eSB0byBvcHRpbWl6ZSB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgYW5kIGF2b2lkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3dzIG9yIGluZWZmaWNpZW50IG1lbW9yeSBhbGxvY2F0aW9uLiBJcyBpdCBhIHNtYWxsIGxvb2t1cCB0YWJsZT8gQSBjb21wbGV4IGRhdGEgc3RydWN0dXJlPyBJdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCB0aGUgc2NhbGUgb2YgaXQuIEl0IGlzIGFsc28gaW1wb3J0YW50IGluIGRlYnVnZ2luZywgYXMgdW5kZXJzdGFuZGluZyB0aGUgYW1vdW50IG9mIHJlc291cmNlcyBhIGZ1bmN0aW9uIHVzZXMgY2FuIHBvaW50IHRvd2FyZHMgdW5leHBlY3RlZCBib3R0bGVuZWNrcy4gSXQgaXMgdGltZSB0byBkZXRlcm1pbmUgaXRzIHNpemUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3NjdHAvc29ja2V0LmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiA3MDc2LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDUwCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzcwNzY6XHRzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXG43MDc3Olx0XHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuNzA3ODpcdHtcbjcwNzk6XHRcdHN0cnVjdCBzY3RwX2VuZHBvaW50ICplcCA9IHNjdHBfc2soc2spLVx1MDAzZWVwO1xuNzA4MDpcdFx0c3RydWN0IHNjdHBfYXV0aGNodW5rcyBfX3VzZXIgKnAgPSAodm9pZCBfX3VzZXIgKilvcHR2YWw7XG43MDgxOlx0XHRzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzIHZhbDtcbjcwODI6XHRcdHN0cnVjdCBzY3RwX2Fzc29jaWF0aW9uICphc29jO1xuNzA4MzpcdFx0c3RydWN0IHNjdHBfY2h1bmtzX3BhcmFtICpjaDtcbjcwODQ6XHRcdHUzMiAgICBudW1fY2h1bmtzID0gMDtcbjcwODU6XHRcdGNoYXIgX191c2VyICp0bztcbjcwODY6XHRcbjcwODc6XHRcdGlmIChsZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzKSlcbjcwODg6XHRcdFx0cmV0dXJuIC1FSU5WQUw7XG43MDg5Olx0XG43MDkwOlx0XHRpZiAoY29weV9mcm9tX3VzZXIoXHUwMDI2dmFsLCBvcHR2YWwsIHNpemVvZih2YWwpKSlcbjcwOTE6XHRcdFx0cmV0dXJuIC1FRkFVTFQ7XG43MDkyOlx0XG43MDkzOlx0XHR0byA9IHAtXHUwMDNlZ2F1dGhfY2h1bmtzO1xuNzA5NDpcdFx0YXNvYyA9IHNjdHBfaWQyYXNzb2Moc2ssIHZhbC5nYXV0aF9hc3NvY19pZCk7XG43MDk1Olx0XHRpZiAoIWFzb2MgXHUwMDI2XHUwMDI2IHZhbC5nYXV0aF9hc3NvY19pZCAhPSBTQ1RQX0ZVVFVSRV9BU1NPQyBcdTAwMjZcdTAwMjZcbjcwOTY6XHRcdCAgICBzY3RwX3N0eWxlKHNrLCBVRFApKVxuNzA5NzpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjcwOTg6XHRcbjcwOTk6XHRcdGlmIChhc29jKSB7XG43MTAwOlx0XHRcdGlmICghYXNvYy1cdTAwM2VwZWVyLmF1dGhfY2FwYWJsZSlcbjcxMDE6XHRcdFx0XHRyZXR1cm4gLUVBQ0NFUztcbjcxMDI6XHRcdFx0Y2ggPSAoc3RydWN0IHNjdHBfY2h1bmtzX3BhcmFtICopYXNvYy1cdTAwM2VjLmF1dGhfY2h1bmtzO1xuNzEwMzpcdFx0fSBlbHNlIHtcbjcxMDQ6XHRcdFx0aWYgKCFlcC1cdTAwM2VhdXRoX2VuYWJsZSlcbjcxMDU6XHRcdFx0XHRyZXR1cm4gLUVBQ0NFUztcbjcxMDY6XHRcdFx0Y2ggPSBlcC1cdTAwM2VhdXRoX2NodW5rX2xpc3Q7XG43MTA3Olx0XHR9XG43MTA4Olx0XHRpZiAoIWNoKVxuNzEwOTpcdFx0XHRnb3RvIG51bTtcbjcxMTA6XHRcbjcxMTE6XHRcdG51bV9jaHVua3MgPSBudG9ocyhjaC1cdTAwM2VwYXJhbV9oZHIubGVuZ3RoKSAtIHNpemVvZihzdHJ1Y3Qgc2N0cF9wYXJhbWhkcik7XG43MTEyOlx0XHQvKiBhc29jLVx1MDAzZWMuYXV0aF9jaHVua3NbXSBob2xkcyBhdCBtb3N0IFNDVFBfQVVUSF9NQVhfQ0hVTktTIGJ5dGVzIGJ1dCBpdHNcbjcxMTM6XHRcdCAqIGxlbmd0aCBpcyByZXN0b3JlZCBmcm9tIHRoZSBzdGF0ZSBjb29raWUgYW5kIGlzIG5vdCBib3VuZGVkIGhlcmU7XG43MTE0Olx0XHQgKiBjbGFtcCBzbyBhbiBvdmVyc2l6ZWQgbGVuZ3RoIGNhbm5vdCByZWFkIHBhc3QgdGhlIGFycmF5LlxuNzExNTpcdFx0ICovXG43MTE2Olx0XHRpZiAobnVtX2NodW5rcyBcdTAwM2UgU0NUUF9BVVRIX01BWF9DSFVOS1MpXG43MTE3Olx0XHRcdG51bV9jaHVua3MgPSBTQ1RQX0FVVEhfTUFYX0NIVU5LUztcbjcxMTg6XHRcdGlmIChsZW4gXHUwMDNjIHNpemVvZihzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzKSAmIzQzOyBudW1fY2h1bmtzKVxuNzExOTpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjcxMjA6XHRcbjcxMjE6XHRcdGlmIChjb3B5X3RvX3VzZXIodG8sIGNoLVx1MDAzZWNodW5rcywgbnVtX2NodW5rcykpXG43MTIyOlx0XHRcdHJldHVybiAtRUZBVUxUO1xuNzEyMzpcdG51bTpcbjcxMjQ6XHRcdGxlbiA9IHNpemVvZihzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzKSAmIzQzOyBudW1fY2h1bmtzO1xuNzEyNTpcdFx0aWYgKHB1dF91c2VyKGxlbiwgb3B0bGVuKSlcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjA6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc3MjUKCQkJCQkJCW91dHB1dDogMzQKCQkJCQkJCXRob3VnaHRzOiAxMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIEZ1bmN0aW9uIElubGluaW5nIGFuZCBTeW1ib2wgUmVzb2x1dGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBmdW5jdGlvbiwgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AsIGFuZCBpdCYjMzk7cyBhIGZhaXIgc2l6ZS4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0aGF0IGl0ICptaWdodCogZ2V0IGlubGluZWQgZGlyZWN0bHkgaW50byBgc2N0cF9nZXRzb2Nrb3B0YCwgd2hpY2gsIEkgcmVjYWxsLCBpcyBhIHJhdGhlciBzdWJzdGFudGlhbCBmdW5jdGlvbi4gQnV0IHRoZW4gSSByZW1lbWJlcmVkIHNvbWV0aGluZyBjcnVjaWFsIGFib3V0IGNvbXBpbGVyIGJlaGF2aW9yIHdpdGggbGFyZ2Ugc3dpdGNoIHN0YXRlbWVudHMsIHdoaWNoIGBzY3RwX2dldHNvY2tvcHRgIGlzLiBDb21waWxlcnMgYXJlIGdlbmVyYWxseSByZWx1Y3RhbnQgdG8gaW5saW5lIGZ1bmN0aW9ucyBjYWxsZWQgd2l0aGluIGdpYW50IHN3aXRjaCBzdGF0ZW1lbnRzLiBUaGV5JiMzOTtyZSB0cnlpbmcgdG8ga2VlcCB0aGUgc3RhY2sgZnJhbWUgc2l6ZSBtYW5hZ2VhYmxlIGFuZCBvcHRpbWl6ZWQuCgpUaGVyZWZvcmUsIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGlzIGFsbW9zdCBjZXJ0YWlubHkgZ29pbmcgdG8gcmVtYWluIGEgZGlzdGluY3Qgc3ltYm9sLCBub3QgZ2V0dGluZyBkaXJlY3RseSBtZXJnZWQuIFRvIGJlIHRob3JvdWdoIGFuZCBlbnN1cmUgdGhpcyBjb2RlIHBhdGggaXMgY292ZXJlZCBkdXJpbmcgYW5hbHlzaXMsIEkgc2hvdWxkIGFsc28gZXhwbGljaXRseSBpbmNsdWRlIGBzY3RwX2dldHNvY2tvcHRgIGluIGBGb2N1c1N5bWJvbHNgLgoKTm93LCBiZWZvcmUgSSBtb3ZlIG9uLCBsZXQgbWUgcXVpY2tseSBtYWtlIHN1cmUgSSYjMzk7bSB0YWtpbmcgdGhlIGNvbmZpZ3VyYXRpb24gaW50byBhY2NvdW50LiBJIG5lZWQgdG8gcmVtZW1iZXIgdG8gaW5jbHVkZSBgSVBfU0NUUGAgaW4gdGhlIGxpc3Qgb2YgcmVsZXZhbnQgY29uZmlndXJhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBJUF9TQ1RQJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9LY29uZmlnLTUtXG5uZXQvc2N0cC9LY29uZmlnOjY6bWVudWNvbmZpZyBJUF9TQ1RQXG5uZXQvc2N0cC9LY29uZmlnLTctXHR0cmlzdGF0ZSBcJiMzNDtUaGUgU0NUUCBQcm90b2NvbFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODE4OQoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDUxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgQ29uZmlndXJhdGlvbiBhbmQgQ29kZSBDaGFuZ2VzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvbmZpZ3VyYXRpb24sIGFuZCBpdCBzZWVtcyBgSVBfU0NUUGAgaXMgdGhlIGtleSBwaWVjZSBoZXJlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkmIzM5O20gbm90IG1pc3NpbmcgYW55dGhpbmcgZWxzZSByZWxhdGVkIHRvIHRoZSBTQ1RQIGNvbmZpZ3VyYXRpb24uIExldCBtZSBxdWlja2x5IHNjYW4gZm9yIG90aGVyIHJlbGV2YW50IG9wdGlvbnMsIGp1c3QgdG8gYmUgdGhvcm91Z2guIEl0IGxvb2tzIGxpa2UgdGhlIHBhdGNoIEkmIzM5O20gZXhhbWluaW5nIGRpcmVjdGx5IHRvdWNoZXMgYG5ldC9zY3RwL3NvY2tldC5jYCwgd2hpY2ggaXMgdGhlIGNvcmUgb2YgdGhlIFNDVFAgc29ja2V0IGltcGxlbWVudGF0aW9uLiBOb3csIGEgdGhvdWdodDogSXMgYFNDVFBfQVVUSGAgYSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcj8gVGhhdCB3b3VsZCBiZSB1c2VmdWwgaW5mb3JtYXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNDVFBfQVVUSCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMDoyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODQxMwoJCQkJCQkJb3V0cHV0OiAzNAoJCQkJCQkJdGhvdWdodHM6IDMwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBhbiBleHBlcnQmIzM5O3MgaW50ZXJuYWwgbW9ub2xvZ3VlOgoKKipTQ1RQIEF1dGhlbnRpY2F0aW9uIENvbnVuZHJ1bSoqCgpBbHJpZ2h0LCBubyBgU0NUUF9BVVRIYCBjb25maWd1cmF0aW9uIG9wdGlvbiBwcmVzZW50LiBUaGF0JiMzOTtzIGEgYml0IG9kZCwgaXNuJiMzOTt0IGl0PyBNeSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIHRoYXQgaXQgd291bGQgYmUgZW5hYmxlZCBpbiBzb21lIHdheSwgYnV0IGNsZWFybHksIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBUaW1lIHRvIGNvbnN1bHQgdGhlIGBuZXQvc2N0cC9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHRoZSBkZWZpbml0aXZlIHNvdXJjZSBmb3Iga2VybmVsIG1vZHVsZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgcmVsYXRlZCB0byBTQ1RQLiBJdCBzaG91bGQgaWxsdW1pbmF0ZSBhbnkgb3RoZXIgcmVsYXRlZCBjb25maWdzLCBkZXBlbmRlbmNpZXMsIG9yIG1heWJlIGV2ZW4gcmV2ZWFsIHdoeSBgU0NUUF9BVVRIYCBpcyBhYnNlbnQgaW4gdGhlIGZpcnN0IHBsYWNlLiBUaGlzIGNvdWxkIGxlYWQgdG8gYSBzdHJhaWdodGZvcndhcmQgc29sdXRpb24sIG9yIGl0IG1pZ2h0IGZvcmNlIG1lIGRvd24gYSByYWJiaXQgaG9sZSBkZXBlbmRpbmcgb24gd2hhdCBpcyBmb3VuZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBLY29uZmlnIGhhcyB0byBzYXkhCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L3NjdHAvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogNTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdCNcbiAgIDM6XHQjIFNDVFAgY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRtZW51Y29uZmlnIElQX1NDVFBcbiAgIDc6XHRcdHRyaXN0YXRlIFwmIzM0O1RoZSBTQ1RQIFByb3RvY29sXCYjMzQ7XG4gICA4Olx0XHRkZXBlbmRzIG9uIElORVRcbiAgIDk6XHRcdHNlbGVjdCBDUllQVE9fTElCX1NIQTFcbiAgMTA6XHRcdHNlbGVjdCBDUllQVE9fTElCX1NIQTI1NlxuICAxMTpcdFx0c2VsZWN0IENSWVBUT19MSUJfVVRJTFNcbiAgMTI6XHRcdHNlbGVjdCBORVRfQ1JDMzJDXG4gIDEzOlx0XHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcbiAgMTQ6XHRcdGhlbHBcbiAgMTU6XHRcdCAgU3RyZWFtIENvbnRyb2wgVHJhbnNtaXNzaW9uIFByb3RvY29sXG4gIDE2Olx0XG4gIDE3Olx0XHQgIEZyb20gUkZDIDI5NjAgXHUwMDNjaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjk2MC50eHRcdTAwM2UuXG4gIDE4Olx0XG4gIDE5Olx0XHQgIFwmIzM0O1NDVFAgaXMgYSByZWxpYWJsZSB0cmFuc3BvcnQgcHJvdG9jb2wgb3BlcmF0aW5nIG9uIHRvcCBvZiBhXG4gIDIwOlx0XHQgIGNvbm5lY3Rpb25sZXNzIHBhY2tldCBuZXR3b3JrIHN1Y2ggYXMgSVAuICBJdCBvZmZlcnMgdGhlIGZvbGxvd2luZ1xuICAyMTpcdFx0ICBzZXJ2aWNlcyB0byBpdHMgdXNlcnM6XG4gIDIyOlx0XG4gIDIzOlx0XHQgIC0tIGFja25vd2xlZGdlZCBlcnJvci1mcmVlIG5vbi1kdXBsaWNhdGVkIHRyYW5zZmVyIG9mIHVzZXIgZGF0YSxcbiAgMjQ6XHRcdCAgLS0gZGF0YSBmcmFnbWVudGF0aW9uIHRvIGNvbmZvcm0gdG8gZGlzY292ZXJlZCBwYXRoIE1UVSBzaXplLFxuICAyNTpcdFx0ICAtLSBzZXF1ZW5jZWQgZGVsaXZlcnkgb2YgdXNlciBtZXNzYWdlcyB3aXRoaW4gbXVsdGlwbGUgc3RyZWFtcyxcbiAgMjY6XHRcdCAgd2l0aCBhbiBvcHRpb24gZm9yIG9yZGVyLW9mLWFycml2YWwgZGVsaXZlcnkgb2YgaW5kaXZpZHVhbCB1c2VyXG4gIDI3Olx0XHQgIG1lc3NhZ2VzLFxuICAyODpcdFx0ICAtLSBvcHRpb25hbCBidW5kbGluZyBvZiBtdWx0aXBsZSB1c2VyIG1lc3NhZ2VzIGludG8gYSBzaW5nbGUgU0NUUFxuICAyOTpcdFx0ICBwYWNrZXQsIGFuZFxuICAzMDpcdFx0ICAtLSBuZXR3b3JrLWxldmVsIGZhdWx0IHRvbGVyYW5jZSB0aHJvdWdoIHN1cHBvcnRpbmcgb2YgbXVsdGktXG4gIDMxOlx0XHQgIGhvbWluZyBhdCBlaXRoZXIgb3IgYm90aCBlbmRzIG9mIGFuIGFzc29jaWF0aW9uLlwmIzM0O1xuICAzMjpcdFxuICAzMzpcdFx0ICBUbyBjb21waWxlIHRoaXMgcHJvdG9jb2wgc3VwcG9ydCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXG4gIDM0Olx0XHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzY3RwLiBEZWJ1ZyBtZXNzYWdlcyBhcmUgaGFuZGxlZCBieSB0aGVcbiAgMzU6XHRcdCAga2VybmVsJiMzOTtzIGR5bmFtaWMgZGVidWdnaW5nIGZyYW1ld29yay5cbiAgMzY6XHRcbiAgMzc6XHRcdCAgSWYgaW4gZG91YnQsIHNheSBOLlxuICAzODpcdFxuICAzOTpcdGlmIElQX1NDVFBcbiAgNDA6XHRcbiAgNDE6XHRjb25maWcgU0NUUF9EQkdfT0JKQ05UXG4gIDQyOlx0XHRib29sIFwmIzM0O1NDVFA6IERlYnVnIG9iamVjdCBjb3VudHNcJiMzNDtcbiAgNDM6XHRcdGRlcGVuZHMgb24gUFJPQ19GU1xuICA0NDpcdFx0aGVscFxuICA0NTpcdFx0ICBJZiB5b3Ugc2F5IFksIHRoaXMgd2lsbCBlbmFibGUgZGVidWdnaW5nIHN1cHBvcnQgZm9yIGNvdW50aW5nIHRoZVxuICA0NjpcdFx0ICB0eXBlIG9mIG9iamVjdHMgdGhhdCBhcmUgY3VycmVudGx5IGFsbG9jYXRlZC4gIFRoaXMgaXMgdXNlZnVsIGZvclxuICA0NzpcdFx0ICBpZGVudGlmeWluZyBtZW1vcnkgbGVha3MuIFRoaXMgZGVidWcgaW5mb3JtYXRpb24gY2FuIGJlIHZpZXdlZCBieVxuICA0ODpcdFx0ICAmIzM5O2NhdCAvcHJvYy9uZXQvc2N0cC9zY3RwX2RiZ19vYmpjbnQmIzM5O1xuICA0OTpcdFxuICA1MDpcdFx0ICBJZiB1bnN1cmUsIHNheSBOXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5MzQ1CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMjc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IFNDVFAgT3B0aW9uIEFuYWx5c2lzKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcsIGJhc2VkIG9uIHRoaXMsIGBJUF9TQ1RQYCBzZWVtcyBsaWtlIHRoZSBvbmx5IG5lY2Vzc2FyeSBvcHRpb24gd2UgbmVlZCB0byBjb25zaWRlci4gSSBzaG91bGQgZG91YmxlIGNoZWNrIGlmIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGlzIHN0YXRpYywgd2hpY2ggaXQgYXBwZWFycyB0byBiZS4gSG1tbSwgaXMgdGhlcmUgYW5vdGhlciBmdW5jdGlvbiB0aGF0IGNvdWxkIGJlIHV0aWxpemVkPyBPa2F5LCBgc2N0cF9nZXRzb2Nrb3B0YCBpcyBhbHNvIHN0YXRpYy4gV2FpdCwgYnV0IGBzY3RwX2dldHNvY2tvcHRgIGlzIGFzc2lnbmVkIHRvIGBzY3RwX3Byb3QuZ2V0c29ja29wdGAuIFdoYXQgYWJvdXQgYHNjdHBfc2V0c29ja29wdGA/IE9oLCB0aGF0JiMzOTtzIHN0YXRpYyBhcyB3ZWxsLgoKSXMgdGhlcmUgYSBmdW5jdGlvbiB0aGF0JiMzOTtzIGV4cG9ydGVkPyBObywgdGhlIHN0YW5kYXJkIGFwcHJvYWNoIGlzIGRlZmluaXRlbHkgdG8gaW50ZXJhY3Qgd2l0aCBTQ1RQIHNvY2tldCBvcHRpb25zIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c3RlbSBjYWxsLCB3aGljaCB0aGVuIGNhbGxzIGBzY3RwX2dldHNvY2tvcHRgLiBTaW5jZSBgc2N0cF9nZXRzb2Nrb3B0YCBpc24mIzM5O3QgaW5saW5lZCwgaXQmIzM5O2xsIHNob3cgdXAgaW4gdGhlIHN5bWJvbCB0YWJsZS4gV2FpdCBhIHNlY29uZCwgZXZlbiBzdGF0aWMgZnVuY3Rpb25zIGFyZSBsaXN0ZWQgaW4ga2FsbHN5bXMsIHRoZXkganVzdCBoYXZlIGxvY2FsIGJpbmRpbmchIFNvIFN5emthbGxlciBzaG91bGQgYmUgYWJsZSB0byBmdXp6IHRoZW0gaWYgdGhleSYjMzk7cmUgaW4ga2FsbHN5bXMgYW5kIG5vdCBpbmxpbmVkLiBHcmVhdCwgc28gYm90aCBgc2N0cF9nZXRzb2Nrb3B0YCBhbmQgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2Agc2hvdWxkIGJlIGZpbmUgdG8gd29yayB3aXRoLgoKTm93LCBsZXQmIzM5O3MganVzdCBxdWlja2x5IGNoZWNrIGlmIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGlzIGNhbGxlZCBhbnl3aGVyZSBlbHNlLCBqdXN0IHRvIGJlIHN1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC9zY3RwLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvc2N0cC9zb2NrZXQuYz03MDMyPXN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDc2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXHRcdFx0XHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxuLS1cbm5ldC9zY3RwL3NvY2tldC5jPTgxMzc9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxuLS1cbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlx0XHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cdFx0XHRcdFx0XHRcdG9wdGxlbik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMwMjY0CgkJCQkJCQlvdXRwdXQ6IDE2MgoJCQkJCQkJdGhvdWdodHM6IDI1OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBTQ1RQIFNvY2tldCBPcHRpb24gVnVsbmVyYWJpbGl0eSoqCgpPa2F5LCBzbyB0aGUgaW52ZXN0aWdhdGlvbiBjZW50ZXJzIGFyb3VuZCBgc2N0cF9nZXRzb2Nrb3B0YC4gTXkgaW5pdGlhbCBzY2FuIHNob3dzIHRoYXQgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgaXMgdGhlIG9ubHkgZnVuY3Rpb24gbW9kaWZpZWQuIFRoYXQgY29uZmlybXMgbXkgaW5pdGlhbCBodW5jaC4KClRoZSBjb3JlIG9mIHRoZSBpc3N1ZSBpcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgd2l0aGluIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgLiBUaGUgcGF0Y2ggY2xhbXBzIGBudW1fY2h1bmtzYCB0byBgU0NUUF9BVVRIX01BWF9DSFVOS1NgIHdoaWNoIGlzIGEgY3JpdGljYWwgZnVuY3Rpb25hbCBjaGFuZ2UuIFRoaXMgaXMgZGlyZWN0bHkgcmVsZXZhbnQgYmVjYXVzZSBgZ2V0c29ja29wdGAgaXMgYSB1c2Vyc3BhY2Ugc3lzY2FsbCBwYXRoIHRvIHRoaXMgY29kZS4gSXQmIzM5O3MgYSBwcmltZSB0YXJnZXQgZm9yIGZ1enppbmcuIFdlIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBib3VuZHMgY2hlY2sgKmFjdHVhbGx5KiBwcmV2ZW50cyB0aGUgb3V0LW9mLWJvdW5kcyByZWFkIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYW55IG5ldyByZWdyZXNzaW9ucy4KCkkmIzM5O3ZlIHZlcmlmaWVkIHRoZSBmdW5jdGlvbiBuYW1lIGFnYWluLCBgc2N0cF9nZXRzb2Nrb3B0YCwgbWFraW5nIHN1cmUgSSBkaWRuJiMzOTt0IG1pc2ludGVycHJldCBhbnl0aGluZyBhbG9uZyB0aGUgd2F5LiBTcGVjaWZpY2FsbHksIGBzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilgLgoKTm93LCBJJiMzOTttIHJlYWR5IHRvIG1vdmUgZm9yd2FyZCBhbmQgc2V0IHRoZSBhcHByb3ByaWF0ZSByZXN1bHRzIGZvciB0aGUgbmV4dCBzdGFnZSBvZiB0aGUgYW5hbHlzaXMuIFRoZSBjcml0aWNhbCBmdW5jdGlvbnMgaGVyZSBhcmUgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYW5kLCBvZiBjb3Vyc2UsIHRoZSBlbnRyeSBwb2ludCB3aGljaCBpcyBgc2N0cF9nZXRzb2Nrb3B0YC4gVGhlIGNvbmZpZ3VyYXRpb24gbmVlZGVkIHdpbGwgYmUgYElQX1NDVFBgLCBhcyBpbmRpY2F0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIwOjI4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUF9TQ1RQJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzJiMzNDssCiAgICAmIzM0O3NjdHBfZ2V0c29ja29wdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYnkgY2xhbXBpbmcgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgU0NUUCBzb2NrZXQgb3B0aW9ucyBoYW5kbGluZyBhbmQgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c2NhbGwuIEl0IGlzIHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IHByZXZlbnRzIG91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgcmVncmVzc2lvbnMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQX1NDVFAmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3MmIzM0OywKICAgICYjMzQ7c2N0cF9nZXRzb2Nrb3B0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBieSBjbGFtcGluZyBgbnVtX2NodW5rc2AgdG8gYFNDVFBfQVVUSF9NQVhfQ0hVTktTYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBTQ1RQIHNvY2tldCBvcHRpb25zIGhhbmRsaW5nIGFuZCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgZ2V0c29ja29wdGAgc3lzY2FsbC4gSXQgaXMgd29ydGggZnV6emluZyB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgcHJldmVudHMgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSByZWdyZXNzaW9ucy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI2OjUzLjg0MjU3NDc4NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg0NTc3OTI3MjM4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NcIixcbiAgICBcInNjdHBfZ2V0c29ja29wdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBieSBjbGFtcGluZyBgbnVtX2NodW5rc2AgdG8gYFNDVFBfQVVUSF9NQVhfQ0hVTktTYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBTQ1RQIHNvY2tldCBvcHRpb25zIGhhbmRsaW5nIGFuZCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgZ2V0c29ja29wdGAgc3lzY2FsbC4gSXQgaXMgd29ydGggZnV6emluZyB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgcHJldmVudHMgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNjo1My44NDI1ODIxODVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNzUzMjU4OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGFhNjAyZTI4OTY2MzZmYmVlY2I1M2Y3OGZjM2Q4MGI2YmYyNDliMzlcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIEZyaSBKdWwgMzEgMjA6MjY6NTIgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3NjdHAvc29ja2V0LmMgYi9uZXQvc2N0cC9zb2NrZXQuY1xcbmluZGV4IGM3YjllMzI1ZWMxY2QuLmI3ZDJkY2JiM2M3YjcgMTAwNjQ0XFxuLS0tIGEvbmV0L3NjdHAvc29ja2V0LmNcXG4rKysgYi9uZXQvc2N0cC9zb2NrZXQuY1xcbkBAIC03MTA5LDYgKzcxMDksMTIgQEAgc3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbiBcXHRcXHRnb3RvIG51bTtcXG4gXFxuIFxcdG51bV9jaHVua3MgPSBudG9ocyhjaC1cXHUwMDNlcGFyYW1faGRyLmxlbmd0aCkgLSBzaXplb2Yoc3RydWN0IHNjdHBfcGFyYW1oZHIpO1xcbitcXHQvKiBhc29jLVxcdTAwM2VjLmF1dGhfY2h1bmtzW10gaG9sZHMgYXQgbW9zdCBTQ1RQX0FVVEhfTUFYX0NIVU5LUyBieXRlcyBidXQgaXRzXFxuK1xcdCAqIGxlbmd0aCBpcyByZXN0b3JlZCBmcm9tIHRoZSBzdGF0ZSBjb29raWUgYW5kIGlzIG5vdCBib3VuZGVkIGhlcmU7XFxuK1xcdCAqIGNsYW1wIHNvIGFuIG92ZXJzaXplZCBsZW5ndGggY2Fubm90IHJlYWQgcGFzdCB0aGUgYXJyYXkuXFxuK1xcdCAqL1xcbitcXHRpZiAobnVtX2NodW5rcyBcXHUwMDNlIFNDVFBfQVVUSF9NQVhfQ0hVTktTKVxcbitcXHRcXHRudW1fY2h1bmtzID0gU0NUUF9BVVRIX01BWF9DSFVOS1M7XFxuIFxcdGlmIChsZW4gXFx1MDAzYyBzaXplb2Yoc3RydWN0IHNjdHBfYXV0aGNodW5rcykgKyBudW1fY2h1bmtzKVxcbiBcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG4gXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI2OjU0LjM3MDg2MDkyM1oiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjg0MDQ5NjI4OTIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQX1NDVFBcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NcIixcbiAgICBcInNjdHBfZ2V0c29ja29wdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCBpbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBieSBjbGFtcGluZyBgbnVtX2NodW5rc2AgdG8gYFNDVFBfQVVUSF9NQVhfQ0hVTktTYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBTQ1RQIHNvY2tldCBvcHRpb25zIGhhbmRsaW5nIGFuZCBpcyByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHRoZSBgZ2V0c29ja29wdGAgc3lzY2FsbC4gSXQgaXMgd29ydGggZnV6emluZyB0byBlbnN1cmUgdGhlIGJvdW5kcyBjaGVjayBjb3JyZWN0bHkgcHJldmVudHMgb3V0LW9mLWJvdW5kcyBhY2Nlc3MgYW5kIGRvZXNuJ3QgaW50cm9kdWNlIHJlZ3Jlc3Npb25zLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCBhYTYwMmUyODk2NjM2ZmJlZWNiNTNmNzhmYzNkODBiNmJmMjQ5YjM5XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMjA6MjY6NTIgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvc2N0cC9zb2NrZXQuYyBiL25ldC9zY3RwL3NvY2tldC5jXG5pbmRleCBjN2I5ZTMyNWVjMWNkLi5iN2QyZGNiYjNjN2I3IDEwMDY0NFxuLS0tIGEvbmV0L3NjdHAvc29ja2V0LmNcbisrKyBiL25ldC9zY3RwL3NvY2tldC5jXG5AQCAtNzEwOSw2ICs3MTA5LDEyIEBAIHN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcbiBcdFx0Z290byBudW07XG4gXG4gXHRudW1fY2h1bmtzID0gbnRvaHMoY2gtXHUwMDNlcGFyYW1faGRyLmxlbmd0aCkgLSBzaXplb2Yoc3RydWN0IHNjdHBfcGFyYW1oZHIpO1xuK1x0LyogYXNvYy1cdTAwM2VjLmF1dGhfY2h1bmtzW10gaG9sZHMgYXQgbW9zdCBTQ1RQX0FVVEhfTUFYX0NIVU5LUyBieXRlcyBidXQgaXRzXG4rXHQgKiBsZW5ndGggaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3RhdGUgY29va2llIGFuZCBpcyBub3QgYm91bmRlZCBoZXJlO1xuK1x0ICogY2xhbXAgc28gYW4gb3ZlcnNpemVkIGxlbmd0aCBjYW5ub3QgcmVhZCBwYXN0IHRoZSBhcnJheS5cbitcdCAqL1xuK1x0aWYgKG51bV9jaHVua3MgXHUwMDNlIFNDVFBfQVVUSF9NQVhfQ0hVTktTKVxuK1x0XHRudW1fY2h1bmtzID0gU0NUUF9BVVRIX01BWF9DSFVOS1M7XG4gXHRpZiAobGVuIFx1MDAzYyBzaXplb2Yoc3RydWN0IHNjdHBfYXV0aGNodW5rcykgKyBudW1fY2h1bmtzKVxuIFx0XHRyZXR1cm4gLUVJTlZBTDtcbiBcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI2OjU0LjM3MDg2MjA3M1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQyOTQ5ODA3MzksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUGF0Y2ggdG8gYG5ldC9zY3RwL3NvY2tldC5jYCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBuZXQvc2N0cC9zb2NrZXQuY2AsIHNwZWNpZmljYWxseSBmb2N1c2luZyBvbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYC4gSXQgc2VlbXMgdGhleSd2ZSBhZGRlZCBhIGJvdW5kcyBjaGVjayB0byBgbnVtX2NodW5rc2AgYWdhaW5zdCBgU0NUUF9BVVRIX01BWF9DSFVOS1NgLiBFeGNlbGxlbnQsIHRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGZpeCwgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQgdnVsbmVyYWJpbGl0eS4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiVGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIHNvbWUgZnV6emluZy5cIlxuXG5Ob3csIGxldCdzIGRpZyBpbnRvIHRoZSBkZXRhaWxzIG9mIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgLiBBcyBhIGdldHNvY2tvcHQgaGFuZGxlciBmb3IgU0NUUCwgaXQgbmVlZHMgc2NydXRpbnkuIEknbGwgbWVudGFsbHkgYWRkIGl0IHRvIG15IGxpc3Qgb2YgYEZvY3VzU3ltYm9sc2AgZm9yIHRoaXMgYXJlYS4gSG9sZCBvbiBhIHNlY29uZC4uLml0J3MgKnN0YXRpYyo/IFJpZ2h0LCBJIG5lZWQgdG8gY29uZmlybSB0aGF0LiBMZXQgbWUgcXVpY2tseSBjaGVjayB0aGUgZGVjbGFyYXRpb24gaW4gYG5ldC9zY3RwL3NvY2tldC5jYC4gQWgsIHllcywgYHN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgLi4uKWAgY29uZmlybXMgaXQuXG5cblNpbmNlIGl0J3Mgc3RhdGljLCBJIG5lZWQgdG8gY2hlY2sgd2hlcmUgaXQncyBjYWxsZWQgd2l0aGluIGBuZXQvc2N0cC9zb2NrZXQuY2AgaXRzZWxmLiBLbm93aW5nIHRoZSBjYWxsIHNpdGVzIG9mIHN0YXRpYyBmdW5jdGlvbnMgaXMgZXNzZW50aWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IGFuZCBwb3RlbnRpYWwgYXR0YWNrIHN1cmZhY2UuIExldCdzIHNlZSBob3cgYW5kIHdoZXJlIGl0J3MgYmVpbmcgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE0MiwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI1NiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI2OjU4LjY2NTg0NjE0MloiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDkzMTI0NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3NjdHAvc29ja2V0LmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvc29ja2V0LmM9NzAzMj1zdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXFxubmV0L3NjdHAvc29ja2V0LmM6NzA3NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzA3Ny1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9ODEzNz1zdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjcyLVxcdGNhc2UgU0NUUF9MT0NBTF9BVVRIX0NIVU5LUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjczOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI3NC1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNjo1OC43NTA3ODI3MDZaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MjExMzYzODEzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQncyBzZWUgd2hhdCdzIGdvaW5nIG9uIGhlcmUuXG5cbioqQW5hbHl6aW5nIHRoZSBgc2N0cF9nZXRzb2Nrb3B0YCBGdW5jdGlvbiBDYWxsKipcblxuUmlnaHQsIHNvIEknbSBkZWFsaW5nIHdpdGggYSBmdW5jdGlvbiBjYWxsIG9yaWdpbmF0aW5nIGZyb20gYHNjdHBfZ2V0c29ja29wdGAuIFRoYXQgbWFrZXMgc2Vuc2U7IGl0J3MgdGhlIGNlbnRyYWwgcG9pbnQgZm9yIGhhbmRsaW5nIGBnZXRzb2Nrb3B0YCBjYWxscyByZWxhdGVkIHRvIFNDVFAgc29ja2V0cy4gTm93LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGZ1bmN0aW9uLiBMZXQncyBzdGFydCB3aXRoIGEgcXVpY2sgY2hlY2suIElzIHRoaXMgYSBzdGF0aWMgZnVuY3Rpb24/IEtub3dpbmcgaXRzIHNjb3BlLCBhbmQgaWYgaXQncyB2aXNpYmxlIG91dHNpZGUgdGhlIGZpbGUgaXQncyBkZWNsYXJlZCBpbiwgY2FuIHNpZ25pZmljYW50bHkgaW1wYWN0IGhvdyBJIG5lZWQgdG8gYW5hbHl6ZSBpdHMgYmVoYXZpb3IgYW5kIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCBvdGhlciBwYXJ0cyBvZiB0aGUgU0NUUCBpbXBsZW1lbnRhdGlvbi4gSSdsbCBuZWVkIHRvIGtub3cgd2hldGhlciB0aGUgZnVuY3Rpb24gbmFtZSwgYHNjdHBfZ2V0c29ja29wdGAsIGlzIGRpcmVjdGx5IHVzZWQgaW4gb3RoZXIgcGFydHMgb2YgdGhlIGNvZGUuIFRoYXQgZ2l2ZXMgbWUgY2x1ZXMgYWJvdXQgaG93IHRpZ2h0bHkgY291cGxlZCBvciBtb2R1bGFyIHRoaXMgZnVuY3Rpb24gaXMuIEtub3dpbmcgd2hldGhlciB0aGUgZnVuY3Rpb24gaXMgc3RhdGljIG9yIG5vdCB3aWxsIGNsYXJpZnkgdGhhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzAyNiwiT3V0cHV0VG9rZW5zIjozNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjAzLjk2MjE1MDQwOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDg3MjMwNDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2N0cF9nZXRzb2Nrb3B0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jPTEzODE9c3RydWN0IGNvbXBhdF9zY3RwX2dldGFkZHJzX29sZCB7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy0xMzg3LVxcbm5ldC9zY3RwL3NvY2tldC5jOjEzODg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfY29ubmVjdHgzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy0xMzg5LVxcdFxcdFxcdFxcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTU0Nzc9RVhQT1JUX1NZTUJPTF9HUEwoc2N0cF90cmFuc3BvcnRfdHJhdmVyc2VfcHJvY2Vzcyk7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01NDg1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU0ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfc2N0cF9zdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU0ODctXFx0XFx0XFx0XFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01NTY1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU1NjY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRyX2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU1NjctXFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTYyOC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NjI5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Rpc2FibGVfZnJhZ21lbnRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy01NjMwLVxcdFxcdFxcdFxcdFxcdGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU2NTAtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NTY1MTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9ldmVudHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU2NTItXFx0XFx0XFx0XFx0ICBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01Njg1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU2ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXV0b2Nsb3NlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbm5ldC9zY3RwL3NvY2tldC5jLTU2ODcte1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9NTcwMj1zdGF0aWMgaW50IHNjdHBfZG9fcGVlbG9mZihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfYXNzb2NfdCBpZCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU3NDUtXFxubmV0L3NjdHAvc29ja2V0LmM6NTc0NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzdHJ1Y3Qgc29jayAqc2ssIHNjdHBfcGVlbG9mZl9hcmdfdCAqcGVlbG9mZixcXG5uZXQvc2N0cC9zb2NrZXQuYy01NzQ3LVxcdFxcdFxcdFxcdFxcdCAgc3RydWN0IGZpbGUgKipuZXdmaWxlLCB1bnNpZ25lZCBmbGFncylcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU3ODEtXFxubmV0L3NjdHAvc29ja2V0LmM6NTc4MjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbm5ldC9zY3RwL3NvY2tldC5jLTU3ODMte1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTc5My1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1Nzk0OlxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzaywgXFx1MDAyNnBlZWxvZmYsIFxcdTAwMjZuZXdmaWxlLCAwKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy01Nzk1LVxcdGlmIChyZXR2YWwgXFx1MDAzYyAwKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTgxNC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1ODE1OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfZmxhZ3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU4MTYtXFx0XFx0XFx0XFx0XFx0IGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU4MjctXFxubmV0L3NjdHAvc29ja2V0LmM6NTgyODpcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9jb21tb24oc2ssIFxcdTAwMjZwZWVsb2ZmLnBfYXJnLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU4MjktXFx0XFx0XFx0XFx0XFx0XFx0XFx1MDAyNm5ld2ZpbGUsIHBlZWxvZmYuZmxhZ3MpO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTk4MS0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo1OTgyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcl9wYXJhbXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU5ODMtXFx0XFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTYxMjQtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjEyNTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9kZWxheWVkX2FjayhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjEyNi1cXHRcXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTYxOTgtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjE5OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9pbml0bXNnKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbm5ldC9zY3RwL3NvY2tldC5jLTYyMDAte1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjIxMS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo2MjEyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcnMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTYyMTMtXFx0XFx0XFx0XFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9NjI2Mz1zdGF0aWMgaW50IHNjdHBfY29weV9sYWRkcnMoc3RydWN0IHNvY2sgKnNrLCBfX3UxNiBwb3J0LCB2b2lkICp0byxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTYzMDctXFxubmV0L3NjdHAvc29ja2V0LmM6NjMwODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hZGRycyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjMwOS1cXHRcXHRcXHRcXHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjQxNS0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NDE2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByaW1hcnlfYWRkcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjQxNy1cXHRcXHRcXHRcXHRcXHRjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02NDU3LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY0NTg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWRhcHRhdGlvbl9sYXllcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjQ1OS1cXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY0OTYtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjQ5NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NlbmRfcGFyYW0oc3RydWN0IHNvY2sgKnNrLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY0OTgtXFx0XFx0XFx0XFx0XFx0aW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY1NDItICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjU0MzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NuZGluZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY1NDQtXFx0XFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY1OTMtXFxubmV0L3NjdHAvc29ja2V0LmM6NjU5NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9ub2RlbGF5KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NTk1LVxcdFxcdFxcdFxcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY2MjItICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjYyMzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9ydG9pbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NjI0LVxcdFxcdFxcdFxcdGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02Njc2LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY2Nzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNzb2NpbmZvKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02Njc4LVxcdFxcdFxcdFxcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY3NDUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6Njc0NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9tYXBwZWR2NChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjc0Ny1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjc2OC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NzY5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2NvbnRleHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY3NzAtXFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjgyNS0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODI2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjgyNy1cXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY4NzItICovXFxubmV0L3NjdHAvc29ja2V0LmM6Njg3MzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9mcmFnbWVudF9pbnRlcmxlYXZlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02ODc0LVxcdFxcdFxcdFxcdFxcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02ODk1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY4OTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGFydGlhbF9kZWxpdmVyeV9wb2ludChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjg5Ny1cXHRcXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02OTE5LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY5MjA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWF4YnVyc3Qoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY5MjEtXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02OTU5LVxcbm5ldC9zY3RwL3NvY2tldC5jOjY5NjA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfaG1hY19pZGVudChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjk2MS1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjk5NS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo2OTk2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2FjdGl2ZV9rZXkoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY5OTctXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcwMzEtXFxubmV0L3NjdHAvc29ja2V0LmM6NzAzMjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MDMzLVxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjcwNzY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcxMzctICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzEzODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hc3NvY19udW1iZXIoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcxMzktXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcxNjgtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzE2OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzE3MC1cXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MTkzLSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjcxOTQ6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNzb2NfaWRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MTk1LVxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MjQzLSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjcyNDQ6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGFkZHJfdGhyZXNob2xkcyhzdHJ1Y3Qgc29jayAqc2ssXFxubmV0L3NjdHAvc29ja2V0LmMtNzI0NS1cXHRcXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IGxlbixcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTczMDItICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzMwMzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hc3NvY19zdGF0cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzMwNC1cXHRcXHRcXHRcXHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTczNjAtXFxubmV0L3NjdHAvc29ja2V0LmM6NzM2MTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzdHJ1Y3Qgc29jayAqc2ssXFx0aW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MzYyLVxcdFxcdFxcdFxcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzM4MC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzgxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY3ZueHRpbmZvKHN0cnVjdCBzb2NrICpzayxcXHRpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTczODItXFx0XFx0XFx0XFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NDAwLVxcbm5ldC9zY3RwL3NvY2tldC5jOjc0MDE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJfc3VwcG9ydGVkKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03NDAyLVxcdFxcdFxcdFxcdFxcdGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NDM5LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc0NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9wcmluZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc0NDEtXFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzQ4NS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NDg2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByX2Fzc29jc3RhdHVzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03NDg3LVxcdFxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc1NDQtXFxubmV0L3NjdHAvc29ja2V0LmM6NzU0NTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc1NDYtXFx0XFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc2MDgtXFxubmV0L3NjdHAvc29ja2V0LmM6NzYwOTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9yZWNvbmZpZ19zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc2MTAtXFx0XFx0XFx0XFx0XFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc2NDctXFxubmV0L3NjdHAvc29ja2V0LmM6NzY0ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmFibGVfc3RycmVzZXQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc2NDktXFx0XFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc2ODYtXFxubmV0L3NjdHAvc29ja2V0LmM6NzY4NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXIoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc2ODgtXFx0XFx0XFx0XFx0ICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzcyNS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NzI2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcl92YWx1ZShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzcyNy1cXHRcXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzc2Ny1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NzY4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2ludGVybGVhdmluZ19zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc3NjktXFx0XFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzgwNi1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODA3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JldXNlX3BvcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc4MDgtXFx0XFx0XFx0XFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc4MjYtXFxubmV0L3NjdHAvc29ja2V0LmM6NzgyNzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9ldmVudChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtNzgyOC1cXHRcXHRcXHRcXHQgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzg2MS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODYyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2FzY29uZl9zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc4NjMtXFx0XFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03OTAwLVxcbm5ldC9zY3RwL3NvY2tldC5jOjc5MDE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXV0aF9zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc5MDItXFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzkzOS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3OTQwOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Vjbl9zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc5NDEtXFx0XFx0XFx0XFx0XFx0IGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03OTc4LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc5Nzk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGZfZXhwb3NlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03OTgwLVxcdFxcdFxcdFxcdCAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgwMTctXFxubmV0L3NjdHAvc29ja2V0LmM6ODAxODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9lbmNhcF9wb3J0KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy04MDE5LVxcdFxcdFxcdFxcdCAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgwNzYtXFxubmV0L3NjdHAvc29ja2V0LmM6ODA3NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcm9iZV9pbnRlcnZhbChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtODA3OC1cXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MTM2LVxcbm5ldC9zY3RwL3NvY2tldC5jOjgxMzc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgxMzgtXFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODE2Ny1cXHRjYXNlIFNDVFBfU1RBVFVTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxNjg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjdHBfc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTY5LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzAtXFx0Y2FzZSBTQ1RQX0RJU0FCTEVfRlJBR01FTlRTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzE6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Rpc2FibGVfZnJhZ21lbnRzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTcyLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MTc0LVxcdGNhc2UgU0NUUF9FVkVOVFM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE3NTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZXZlbnRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTc2LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzctXFx0Y2FzZSBTQ1RQX0FVVE9DTE9TRTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTc4OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvY2xvc2Uoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzktXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4MC1cXHRjYXNlIFNDVFBfU09DS09QVF9QRUVMT0ZGOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxODE6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmYoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxODItXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4My1cXHRjYXNlIFNDVFBfU09DS09QVF9QRUVMT0ZGX0ZMQUdTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxODQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfZmxhZ3Moc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxODUtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4Ni1cXHRjYXNlIFNDVFBfUEVFUl9BRERSX1BBUkFNUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTg3OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfcGFyYW1zKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTg4LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTAtXFx0Y2FzZSBTQ1RQX0RFTEFZRURfU0FDSzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTkxOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kZWxheWVkX2FjayhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODE5Mi1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk0LVxcdGNhc2UgU0NUUF9JTklUTVNHOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxOTU6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2luaXRtc2coc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTYtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE5Ny1cXHRjYXNlIFNDVFBfR0VUX1BFRVJfQUREUlM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE5ODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRycyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODE5OS1cXHRcXHRcXHRcXHRcXHRcXHQgICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDEtXFx0Y2FzZSBTQ1RQX0dFVF9MT0NBTF9BRERSUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjAyOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hZGRycyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODIwMy1cXHRcXHRcXHRcXHRcXHRcXHQgICAgIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjA1LVxcdGNhc2UgU0NUUF9TT0NLT1BUX0NPTk5FQ1RYMzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjA2OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9jb25uZWN0eDMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDctXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODIwOC1cXHRjYXNlIFNDVFBfREVGQVVMVF9TRU5EX1BBUkFNOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMDk6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfc2VuZF9wYXJhbShzaywgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTAtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgIG9wdHZhbCwgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTItXFx0Y2FzZSBTQ1RQX0RFRkFVTFRfU05ESU5GTzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjEzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3NuZGluZm8oc2ssIGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjE0LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBvcHR2YWwsIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjE2LVxcdGNhc2UgU0NUUF9QUklNQVJZX0FERFI6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIxNzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJpbWFyeV9hZGRyKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjE4LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTktXFx0Y2FzZSBTQ1RQX05PREVMQVk6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIyMDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbm9kZWxheShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIyMS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjIyLVxcdGNhc2UgU0NUUF9SVE9JTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjM6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjQtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODIyNS1cXHRjYXNlIFNDVFBfQVNTT0NJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMjY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jaW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIyNy1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjI4LVxcdGNhc2UgU0NUUF9JX1dBTlRfTUFQUEVEX1Y0X0FERFI6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIyOTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbWFwcGVkdjQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzAtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODIzMS1cXHRjYXNlIFNDVFBfTUFYU0VHOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMzI6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heHNlZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIzMy1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjM0LVxcdGNhc2UgU0NUUF9HRVRfUEVFUl9BRERSX0lORk86XFxubmV0L3NjdHAvc29ja2V0LmM6ODIzNTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRyX2luZm8oc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzYtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzgtXFx0Y2FzZSBTQ1RQX0FEQVBUQVRJT05fTEFZRVI6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIzOTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYWRhcHRhdGlvbl9sYXllcihzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI0MC1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI0Mi1cXHRjYXNlIFNDVFBfQ09OVEVYVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjQzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9jb250ZXh0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ0LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDUtXFx0Y2FzZSBTQ1RQX0ZSQUdNRU5UX0lOVEVSTEVBVkU6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI0NjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZnJhZ21lbnRfaW50ZXJsZWF2ZShzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI0Ny1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgIG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ5LVxcdGNhc2UgU0NUUF9QQVJUSUFMX0RFTElWRVJZX1BPSU5UOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNTA6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhcnRpYWxfZGVsaXZlcnlfcG9pbnQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNTEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNTMtXFx0Y2FzZSBTQ1RQX01BWF9CVVJTVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjU0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9tYXhidXJzdChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI1NS1cXHRcXHRicmVhaztcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjItXFx0Y2FzZSBTQ1RQX0hNQUNfSURFTlQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI2MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfaG1hY19pZGVudChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI2NC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjY1LVxcdGNhc2UgU0NUUF9BVVRIX0FDVElWRV9LRVk6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI2NjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI2Ny1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjY4LVxcdGNhc2UgU0NUUF9QRUVSX0FVVEhfQ0hVTktTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNjk6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzAtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzItXFx0Y2FzZSBTQ1RQX0xPQ0FMX0FVVEhfQ0hVTktTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNzM6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc0LVxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc2LVxcdGNhc2UgU0NUUF9HRVRfQVNTT0NfTlVNQkVSOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNzc6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI3OC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc5LVxcdGNhc2UgU0NUUF9HRVRfQVNTT0NfSURfTElTVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjgwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc3NvY19pZHMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyODEtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODI4Mi1cXHRjYXNlIFNDVFBfQVVUT19BU0NPTkY6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI4MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXV0b19hc2NvbmYoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyODQtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODI4NS1cXHRjYXNlIFNDVFBfUEVFUl9BRERSX1RITERTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyODY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhZGRyX3RocmVzaG9sZHMoc2ssIG9wdHZhbCwgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyODctXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBvcHRsZW4sIGZhbHNlKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyODktXFx0Y2FzZSBTQ1RQX1BFRVJfQUREUl9USExEU19WMjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjkwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wYWRkcl90aHJlc2hvbGRzKHNrLCBvcHR2YWwsIGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjkxLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgb3B0bGVuLCB0cnVlKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTMtXFx0Y2FzZSBTQ1RQX0dFVF9BU1NPQ19TVEFUUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4Mjk0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc3NvY19zdGF0cyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI5NS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk2LVxcdGNhc2UgU0NUUF9SRUNWUkNWSU5GTzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4Mjk3OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9yZWN2cmN2aW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI5OC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk5LVxcdGNhc2UgU0NUUF9SRUNWTlhUSU5GTzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzAwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9yZWN2bnh0aW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODMwMS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzAyLVxcdGNhc2UgU0NUUF9QUl9TVVBQT1JURUQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMwMzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzA0LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDUtXFx0Y2FzZSBTQ1RQX0RFRkFVTFRfUFJJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMDY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfcHJpbmZvKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzA3LVxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzA5LVxcdGNhc2UgU0NUUF9QUl9BU1NPQ19TVEFUVVM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMxMDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJfYXNzb2NzdGF0dXMoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTMtXFx0Y2FzZSBTQ1RQX1BSX1NUUkVBTV9TVEFUVVM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMxNDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJfc3RyZWFtc3RhdHVzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE1LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMxNy1cXHRjYXNlIFNDVFBfUkVDT05GSUdfU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMTg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY29uZmlnX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODMxOS1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMjEtXFx0Y2FzZSBTQ1RQX0VOQUJMRV9TVFJFQU1fUkVTRVQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMyMjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZW5hYmxlX3N0cnJlc2V0KHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzIzLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMyNS1cXHRjYXNlIFNDVFBfU1RSRUFNX1NDSEVEVUxFUjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzI2OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXIoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMjctXFx0XFx0XFx0XFx0XFx0XFx0ICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMjktXFx0Y2FzZSBTQ1RQX1NUUkVBTV9TQ0hFRFVMRVJfVkFMVUU6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMzMDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfc2NoZWR1bGVyX3ZhbHVlKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzMxLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMzMy1cXHRjYXNlIFNDVFBfSU5URVJMRUFWSU5HX1NVUFBPUlRFRDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzM0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9pbnRlcmxlYXZpbmdfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzM1LVxcdFxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzM3LVxcdGNhc2UgU0NUUF9SRVVTRV9QT1JUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMzg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JldXNlX3BvcnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzMzktXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM0MC1cXHRjYXNlIFNDVFBfRVZFTlQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODM0MTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZXZlbnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDItXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM0My1cXHRjYXNlIFNDVFBfQVNDT05GX1NVUFBPUlRFRDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQ0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hc2NvbmZfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQ1LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDctXFx0Y2FzZSBTQ1RQX0FVVEhfU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNDg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2F1dGhfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQ5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzUxLVxcdGNhc2UgU0NUUF9FQ05fU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNTI6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Vjbl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTMtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM1NC1cXHRjYXNlIFNDVFBfRVhQT1NFX1BPVEVOVElBTExZX0ZBSUxFRF9TVEFURTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzU1OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZl9leHBvc2Uoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTYtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM1Ny1cXHRjYXNlIFNDVFBfUkVNT1RFX1VEUF9FTkNBUFNfUE9SVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzU4OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9lbmNhcF9wb3J0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzU5LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNjAtXFx0Y2FzZSBTQ1RQX1BMUE1UVURfUFJPQkVfSU5URVJWQUw6XFxubmV0L3NjdHAvc29ja2V0LmM6ODM2MTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcHJvYmVfaW50ZXJ2YWwoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNjItXFx0XFx0YnJlYWs7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYz05NjYwPXN0cnVjdCBwcm90byBzY3RwX3Byb3QgPSB7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy05NjcwLVxcdC5zZXRzb2Nrb3B0ICA9XFx0c2N0cF9zZXRzb2Nrb3B0LFxcbm5ldC9zY3RwL3NvY2tldC5jOjk2NzE6XFx0LmdldHNvY2tvcHQgID1cXHRzY3RwX2dldHNvY2tvcHQsXFxubmV0L3NjdHAvc29ja2V0LmMtOTY3Mi1cXHQuYnBmX2J5cGFzc19nZXRzb2Nrb3B0XFx0PSBzY3RwX2JwZl9ieXBhc3NfZ2V0c29ja29wdCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTk3MTU9c3RydWN0IHByb3RvIHNjdHB2Nl9wcm90ID0ge1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtOTcyNS1cXHQuc2V0c29ja29wdFxcdD0gc2N0cF9zZXRzb2Nrb3B0LFxcbm5ldC9zY3RwL3NvY2tldC5jOjk3MjY6XFx0LmdldHNvY2tvcHRcXHQ9IHNjdHBfZ2V0c29ja29wdCxcXG5uZXQvc2N0cC9zb2NrZXQuYy05NzI3LVxcdC5icGZfYnlwYXNzX2dldHNvY2tvcHRcXHQ9IHNjdHBfYnBmX2J5cGFzc19nZXRzb2Nrb3B0LFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzowNC4wNzA4ODA4MDNaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMjA0NjMyMzYxNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBzY3RwX2dldHNvY2tvcHRgIEZ1bmN0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYHNjdHBfZ2V0c29ja29wdGAuIEl0J3MgZGVmaW5lZCBhcyBhIGBzdGF0aWNgIGZ1bmN0aW9uLCB3aGljaCBpbml0aWFsbHkgbWFrZXMgbWUgdGhpbmsgaXQgbWlnaHQgbm90IGJlIGEgZ2xvYmFsbHkgYWNjZXNzaWJsZSBzeW1ib2wuIEJ1dCB0aGVuLCBpdCdzIGJlaW5nIGFzc2lnbmVkIHRvIGBzY3RwX3Byb3QuZ2V0c29ja29wdGAgYW5kIGBzY3RwdjZfcHJvdC5nZXRzb2Nrb3B0YC4gVGhhdCdzIGludGVyZXN0aW5nLCBiZWNhdXNlIHRoYXQgc3VnZ2VzdHMgaXQgKmlzKiBwYXJ0IG9mIHRoZSBwcm90b2NvbCdzIGludGVyZmFjZSwgZXZlbiBpZiBub3QgZGlyZWN0bHkgZXhwb3NlZCBpbiB0aGUgc3ltYm9sIHRhYmxlLlxuXG5Tbywgc2luY2UgaXQncyBgc3RhdGljYCwgaXQgd29uJ3QgYmUgaW4gdGhlIHN5bWJvbCB0YWJsZSBhcyBhIGdsb2JhbCBzeW1ib2wuIEkgbmVlZCB0byBtYWtlIHN1cmUgdGhpcyBpcyBleHBvcnRlZCBvciBpZiB0aGVyZSdzIGEgd3JhcHBlci4gTm9wZS4gSXQncyBhc3NpZ25lZCB0byBgc3RydWN0IHByb3RvIHNjdHBfcHJvdGAsIHJpZ2h0PyBBbHJpZ2h0LlxuXG5UaGUgc3RhbmRhcmQgc3lzY2FsbCBwYXRoIGZvciBgZ2V0c29ja29wdGAgd2lsbCBldmVudHVhbGx5IGNhbGwgYHNrLVx1MDAzZXNrX3Byb3QtXHUwMDNlZ2V0c29ja29wdGAuIFRoYXQgbWVhbnMgYHNjdHBfZ2V0c29ja29wdGAgKmlzKiByZWFjaGFibGUgaW5kaXJlY3RseS5cblxuVGhlIHF1ZXN0aW9uIGlzLCBzaG91bGQgSSBhZGQgYHNjdHBfZ2V0c29ja29wdGAgdG8gYEZvY3VzU3ltYm9sc2A/IE5vcm1hbGx5LCBJIG1pZ2h0IGJlIGhlc2l0YW50IHdpdGggYSBzdGF0aWMgZnVuY3Rpb24gYmVjYXVzZSBvZiBwb3RlbnRpYWwgaW5saW5pbmcsIGJ1dCBpbiB0aGlzIGNhc2UsIGl0cyBhZGRyZXNzIGlzIGFjdHVhbGx5IGJlaW5nIHRha2VuLCBiZWNhdXNlIGl0J3MgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLiBUaGVyZWZvcmUsIGlubGluaW5nIGlzIG91dCBvZiB0aGUgcXVlc3Rpb24uIEhvd2V2ZXIsIGBzY3RwX2dldHNvY2tvcHRgIGlzIGEgbGFyZ2UgZnVuY3Rpb24uLi5cblxuV2FpdCBhIHNlY29uZCwgaXQgYmVpbmcgc3RhdGljIGRvZXNuJ3QgbWVhbiBpdCdzIGlubGluZWQgaGVyZSwgc2luY2UgaXRzIGFkZHJlc3MgaXMgdGFrZW4uIEFscmlnaHQuIEdvb2QgdG8ga25vdy4gQnV0IGlzIHRoZXJlIGFueSBvdGhlciBub24tc3RhdGljIGZ1bmN0aW9uPyBMZXQgbWUgY2hlY2sgYG5ldC9zY3RwL3NvY2tldC5jYCB0byBzZWUgaWYgdGhlcmUgYXJlIGFueSBleHBvcnRlZCBvciBnbG9iYWwgZnVuY3Rpb25zIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTM1NDEsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MTYuMTE3MjA3NDAxWiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY3OTYxMTI3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNjdHBfZ2V0c29ja29wdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvc29ja2V0LmM9MTM4MT1zdHJ1Y3QgY29tcGF0X3NjdHBfZ2V0YWRkcnNfb2xkIHtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTEzODctXFxubmV0L3NjdHAvc29ja2V0LmM6MTM4ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9jb25uZWN0eDMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTEzODktXFx0XFx0XFx0XFx0ICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9NTQ3Nz1FWFBPUlRfU1lNQk9MX0dQTChzY3RwX3RyYW5zcG9ydF90cmF2ZXJzZV9wcm9jZXNzKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU0ODUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NTQ4NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9zY3RwX3N0YXR1cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNTQ4Ny1cXHRcXHRcXHRcXHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU1NjUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NTU2NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNTU2Ny1cXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01NjI4LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU2Mjk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZGlzYWJsZV9mcmFnbWVudHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU2MzAtXFx0XFx0XFx0XFx0XFx0Y2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTY1MC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NjUxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2V2ZW50cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sIGNoYXIgX191c2VyICpvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtNTY1Mi1cXHRcXHRcXHRcXHQgIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTU2ODUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NTY4NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRvY2xvc2Uoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxubmV0L3NjdHAvc29ja2V0LmMtNTY4Ny17XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYz01NzAyPXN0YXRpYyBpbnQgc2N0cF9kb19wZWVsb2ZmKHN0cnVjdCBzb2NrICpzaywgc2N0cF9hc3NvY190IGlkLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTc0NS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NzQ2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfY29tbW9uKHN0cnVjdCBzb2NrICpzaywgc2N0cF9wZWVsb2ZmX2FyZ190ICpwZWVsb2ZmLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU3NDctXFx0XFx0XFx0XFx0XFx0ICBzdHJ1Y3QgZmlsZSAqKm5ld2ZpbGUsIHVuc2lnbmVkIGZsYWdzKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTc4MS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NzgyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmYoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxubmV0L3NjdHAvc29ja2V0LmMtNTc4My17XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01NzkzLVxcbm5ldC9zY3RwL3NvY2tldC5jOjU3OTQ6XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZWxvZmZfY29tbW9uKHNrLCBcXHUwMDI2cGVlbG9mZiwgXFx1MDAyNm5ld2ZpbGUsIDApO1xcbm5ldC9zY3RwL3NvY2tldC5jLTU3OTUtXFx0aWYgKHJldHZhbCBcXHUwMDNjIDApXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01ODE0LVxcbm5ldC9zY3RwL3NvY2tldC5jOjU4MTU6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNTgxNi1cXHRcXHRcXHRcXHRcXHQgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNTgyNy1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1ODI4OlxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVsb2ZmX2NvbW1vbihzaywgXFx1MDAyNnBlZWxvZmYucF9hcmcsXFxubmV0L3NjdHAvc29ja2V0LmMtNTgyOS1cXHRcXHRcXHRcXHRcXHRcXHRcXHUwMDI2bmV3ZmlsZSwgcGVlbG9mZi5mbGFncyk7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy01OTgxLSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjU5ODI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRyX3BhcmFtcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNTk4My1cXHRcXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjEyNC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2MTI1OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2RlbGF5ZWRfYWNrKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02MTI2LVxcdFxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjE5OC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2MTk5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2luaXRtc2coc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxubmV0L3NjdHAvc29ja2V0LmMtNjIwMC17XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02MjExLVxcbm5ldC9zY3RwL3NvY2tldC5jOjYyMTI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hZGRycyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjIxMy1cXHRcXHRcXHRcXHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYz02MjYzPXN0YXRpYyBpbnQgc2N0cF9jb3B5X2xhZGRycyhzdHJ1Y3Qgc29jayAqc2ssIF9fdTE2IHBvcnQsIHZvaWQgKnRvLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjMwNy1cXG5uZXQvc2N0cC9zb2NrZXQuYzo2MzA4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02MzA5LVxcdFxcdFxcdFxcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02NDE1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY0MTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJpbWFyeV9hZGRyKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NDE3LVxcdFxcdFxcdFxcdFxcdGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY0NTctICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjQ1ODpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hZGFwdGF0aW9uX2xheWVyKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NDU5LVxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjQ5Ni0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NDk3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfc2VuZF9wYXJhbShzdHJ1Y3Qgc29jayAqc2ssXFxubmV0L3NjdHAvc29ja2V0LmMtNjQ5OC1cXHRcXHRcXHRcXHRcXHRpbnQgbGVuLCBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjU0Mi0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NTQzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfc25kaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjU0NC1cXHRcXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjU5My1cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NTk0OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X25vZGVsYXkoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY1OTUtXFx0XFx0XFx0XFx0ICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjYyMi0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NjIzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3J0b2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY2MjQtXFx0XFx0XFx0XFx0Y2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY2NzYtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjY3NzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hc3NvY2luZm8oc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY2NzgtXFx0XFx0XFx0XFx0ICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjc0NS0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2NzQ2OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X21hcHBlZHY0KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02NzQ3LVxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02NzY4LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY3Njk6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfY29udGV4dChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjc3MC1cXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02ODI1LSAqL1xcbm5ldC9zY3RwL3NvY2tldC5jOjY4MjY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbWF4c2VnKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02ODI3LVxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNjg3Mi0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo2ODczOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2ZyYWdtZW50X2ludGVybGVhdmUoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTY4NzQtXFx0XFx0XFx0XFx0XFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY4OTUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6Njg5NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wYXJ0aWFsX2RlbGl2ZXJ5X3BvaW50KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02ODk3LVxcdFxcdFxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY5MTktICovXFxubmV0L3NjdHAvc29ja2V0LmM6NjkyMDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9tYXhidXJzdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjkyMS1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTY5NTktXFxubmV0L3NjdHAvc29ja2V0LmM6Njk2MDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9obWFjX2lkZW50KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy02OTYxLVxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy02OTk1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjY5OTY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYWN0aXZlX2tleShzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNjk5Ny1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzAzMS1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MDMyOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcwMzMtXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzUtXFxubmV0L3NjdHAvc29ja2V0LmM6NzA3NjpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzA3Ny1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzEzNy0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTM4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX251bWJlcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzEzOS1cXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzE2OC0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MTY5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2F1dG9fYXNjb25mKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MTcwLVxcdFxcdFxcdFxcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcxOTMtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzE5NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hc3NvY19pZHMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcxOTUtXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTcyNDMtICovXFxubmV0L3NjdHAvc29ja2V0LmM6NzI0NDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wYWRkcl90aHJlc2hvbGRzKHN0cnVjdCBzb2NrICpzayxcXG5uZXQvc2N0cC9zb2NrZXQuYy03MjQ1LVxcdFxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgbGVuLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzMwMi0gKi9cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzAzOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03MzA0LVxcdFxcdFxcdFxcdCAgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzM2MC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3MzYxOnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY3ZyY3ZpbmZvKHN0cnVjdCBzb2NrICpzayxcXHRpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTczNjItXFx0XFx0XFx0XFx0ICAgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MzgwLVxcbm5ldC9zY3RwL3NvY2tldC5jOjczODE6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcmVjdm54dGluZm8oc3RydWN0IHNvY2sgKnNrLFxcdGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzM4Mi1cXHRcXHRcXHRcXHQgICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc0MDAtXFxubmV0L3NjdHAvc29ja2V0LmM6NzQwMTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wcl9zdXBwb3J0ZWQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc0MDItXFx0XFx0XFx0XFx0XFx0Y2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc0MzktXFxubmV0L3NjdHAvc29ja2V0LmM6NzQ0MDpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9kZWZhdWx0X3ByaW5mbyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzQ0MS1cXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NDg1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc0ODY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcHJfYXNzb2NzdGF0dXMoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc0ODctXFx0XFx0XFx0XFx0XFx0ICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzU0NC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NTQ1OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3ByX3N0cmVhbXN0YXR1cyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzU0Ni1cXHRcXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzYwOC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NjA5OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3JlY29uZmlnX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzYxMC1cXHRcXHRcXHRcXHRcXHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzY0Ny1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3NjQ4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2VuYWJsZV9zdHJyZXNldChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzY0OS1cXHRcXHRcXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzY4Ni1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3Njg3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcihzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzY4OC1cXHRcXHRcXHRcXHQgICAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NzI1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc3MjY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfc2NoZWR1bGVyX3ZhbHVlKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy03NzI3LVxcdFxcdFxcdFxcdFxcdCAgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03NzY3LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc3Njg6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfaW50ZXJsZWF2aW5nX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzc2OS1cXHRcXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03ODA2LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc4MDc6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcmV1c2VfcG9ydChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzgwOC1cXHRcXHRcXHRcXHQgICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtNzgyNi1cXG5uZXQvc2N0cC9zb2NrZXQuYzo3ODI3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2V2ZW50KHN0cnVjdCBzb2NrICpzaywgaW50IGxlbiwgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy03ODI4LVxcdFxcdFxcdFxcdCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03ODYxLVxcbm5ldC9zY3RwL3NvY2tldC5jOjc4NjI6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfYXNjb25mX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzg2My1cXHRcXHRcXHRcXHRcXHQgICAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc5MDAtXFxubmV0L3NjdHAvc29ja2V0LmM6NzkwMTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9hdXRoX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzkwMi1cXHRcXHRcXHRcXHRcXHQgIGNoYXIgX191c2VyICpvcHR2YWwsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03OTM5LVxcbm5ldC9zY3RwL3NvY2tldC5jOjc5NDA6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfZWNuX3N1cHBvcnRlZChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtNzk0MS1cXHRcXHRcXHRcXHRcXHQgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTc5NzgtXFxubmV0L3NjdHAvc29ja2V0LmM6Nzk3OTpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdF9wZl9leHBvc2Uoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTc5ODAtXFx0XFx0XFx0XFx0ICAgICBjaGFyIF9fdXNlciAqb3B0dmFsLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODAxNy1cXG5uZXQvc2N0cC9zb2NrZXQuYzo4MDE4OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2VuY2FwX3BvcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgwMTktXFx0XFx0XFx0XFx0ICAgICAgY2hhciBfX3VzZXIgKm9wdHZhbCwgaW50IF9fdXNlciAqb3B0bGVuKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODA3Ni1cXG5uZXQvc2N0cC9zb2NrZXQuYzo4MDc3OnN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X3Byb2JlX2ludGVydmFsKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG5uZXQvc2N0cC9zb2NrZXQuYy04MDc4LVxcdFxcdFxcdFxcdFxcdCAgY2hhciBfX3VzZXIgKm9wdHZhbCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgxMzYtXFxubmV0L3NjdHAvc29ja2V0LmM6ODEzNzpzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsXFxubmV0L3NjdHAvc29ja2V0LmMtODEzOC1cXHRcXHRcXHQgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MTY3LVxcdGNhc2UgU0NUUF9TVEFUVVM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE2ODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfc2N0cF9zdGF0dXMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNjktXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE3MC1cXHRjYXNlIFNDVFBfRElTQUJMRV9GUkFHTUVOVFM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE3MTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGlzYWJsZV9mcmFnbWVudHMoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzItXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzQtXFx0Y2FzZSBTQ1RQX0VWRU5UUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTc1OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ldmVudHMoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgxNzYtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODE3Ny1cXHRjYXNlIFNDVFBfQVVUT0NMT1NFOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxNzg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2F1dG9jbG9zZShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODE3OS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTgwLVxcdGNhc2UgU0NUUF9TT0NLT1BUX1BFRUxPRkY6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE4MTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4Mi1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTgzLVxcdGNhc2UgU0NUUF9TT0NLT1BUX1BFRUxPRkZfRkxBR1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE4NDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlbG9mZl9mbGFncyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODE4NS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTg2LVxcdGNhc2UgU0NUUF9QRUVSX0FERFJfUEFSQU1TOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxODc6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BlZXJfYWRkcl9wYXJhbXMoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgxODgtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODE5MC1cXHRjYXNlIFNDVFBfREVMQVlFRF9TQUNLOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgxOTE6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlbGF5ZWRfYWNrKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTkyLVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgxOTQtXFx0Y2FzZSBTQ1RQX0lOSVRNU0c6XFxubmV0L3NjdHAvc29ja2V0LmM6ODE5NTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfaW5pdG1zZyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODE5Ni1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk3LVxcdGNhc2UgU0NUUF9HRVRfUEVFUl9BRERSUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MTk4OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MTk5LVxcdFxcdFxcdFxcdFxcdFxcdCAgICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODIwMS1cXHRjYXNlIFNDVFBfR0VUX0xPQ0FMX0FERFJTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMDI6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2FkZHJzKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjAzLVxcdFxcdFxcdFxcdFxcdFxcdCAgICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMDUtXFx0Y2FzZSBTQ1RQX1NPQ0tPUFRfQ09OTkVDVFgzOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMDY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Nvbm5lY3R4MyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIwNy1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjA4LVxcdGNhc2UgU0NUUF9ERUZBVUxUX1NFTkRfUEFSQU06XFxubmV0L3NjdHAvc29ja2V0LmM6ODIwOTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9zZW5kX3BhcmFtKHNrLCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtODIxMC1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgICAgb3B0dmFsLCBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODIxMi1cXHRjYXNlIFNDVFBfREVGQVVMVF9TTkRJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyMTM6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2RlZmF1bHRfc25kaW5mbyhzaywgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IG9wdHZhbCwgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTYtXFx0Y2FzZSBTQ1RQX1BSSU1BUllfQUREUjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjE3OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcmltYXJ5X2FkZHIoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMTgtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODIxOS1cXHRjYXNlIFNDVFBfTk9ERUxBWTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjIwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ub2RlbGF5KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjIxLVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjItXFx0Y2FzZSBTQ1RQX1JUT0lORk86XFxubmV0L3NjdHAvc29ja2V0LmM6ODIyMzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcnRvaW5mbyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIyNC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjI1LVxcdGNhc2UgU0NUUF9BU1NPQ0lORk86XFxubmV0L3NjdHAvc29ja2V0LmM6ODIyNjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNzb2NpbmZvKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjI3LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMjgtXFx0Y2FzZSBTQ1RQX0lfV0FOVF9NQVBQRURfVjRfQUREUjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjI5OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9tYXBwZWR2NChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODIzMC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjMxLVxcdGNhc2UgU0NUUF9NQVhTRUc6XFxubmV0L3NjdHAvc29ja2V0LmM6ODIzMjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbWF4c2VnKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjMzLVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyMzQtXFx0Y2FzZSBTQ1RQX0dFVF9QRUVSX0FERFJfSU5GTzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjM1OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wZWVyX2FkZHJfaW5mbyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODIzNi1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODIzOC1cXHRjYXNlIFNDVFBfQURBUFRBVElPTl9MQVlFUjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjM5OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hZGFwdGF0aW9uX2xheWVyKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQwLVxcdFxcdFxcdFxcdFxcdFxcdFxcdG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQyLVxcdGNhc2UgU0NUUF9DT05URVhUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNDM6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2NvbnRleHQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDQtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODI0NS1cXHRjYXNlIFNDVFBfRlJBR01FTlRfSU5URVJMRUFWRTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjQ2OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9mcmFnbWVudF9pbnRlcmxlYXZlKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjQ3LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICAgb3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNDktXFx0Y2FzZSBTQ1RQX1BBUlRJQUxfREVMSVZFUllfUE9JTlQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI1MDpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFydGlhbF9kZWxpdmVyeV9wb2ludChzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI1MS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI1My1cXHRjYXNlIFNDVFBfTUFYX0JVUlNUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyNTQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X21heGJ1cnN0KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjU1LVxcdFxcdGJyZWFrO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI2Mi1cXHRjYXNlIFNDVFBfSE1BQ19JREVOVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjYzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9obWFjX2lkZW50KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjY0LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjUtXFx0Y2FzZSBTQ1RQX0FVVEhfQUNUSVZFX0tFWTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjY2OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hY3RpdmVfa2V5KHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjY3LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNjgtXFx0Y2FzZSBTQ1RQX1BFRVJfQVVUSF9DSFVOS1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI2OTpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGVlcl9hdXRoX2NodW5rcyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODI3MC1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI3Mi1cXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI3MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzYtXFx0Y2FzZSBTQ1RQX0dFVF9BU1NPQ19OVU1CRVI6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI3NzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXNzb2NfbnVtYmVyKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjc4LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzktXFx0Y2FzZSBTQ1RQX0dFVF9BU1NPQ19JRF9MSVNUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyODA6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX2lkcyhzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI4MS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MjgyLVxcdGNhc2UgU0NUUF9BVVRPX0FTQ09ORjpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MjgzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9hdXRvX2FzY29uZihzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODI4NC1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjg1LVxcdGNhc2UgU0NUUF9QRUVSX0FERFJfVEhMRFM6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI4NjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcGFkZHJfdGhyZXNob2xkcyhzaywgb3B0dmFsLCBsZW4sXFxubmV0L3NjdHAvc29ja2V0LmMtODI4Ny1cXHRcXHRcXHRcXHRcXHRcXHRcXHQgIG9wdGxlbiwgZmFsc2UpO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI4OS1cXHRjYXNlIFNDVFBfUEVFUl9BRERSX1RITERTX1YyOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTA6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BhZGRyX3RocmVzaG9sZHMoc2ssIG9wdHZhbCwgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBvcHRsZW4sIHRydWUpO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI5My1cXHRjYXNlIFNDVFBfR0VUX0FTU09DX1NUQVRTOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2Fzc29jX3N0YXRzKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk1LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTYtXFx0Y2FzZSBTQ1RQX1JFQ1ZSQ1ZJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgyOTc6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY3ZyY3ZpbmZvKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04Mjk4LVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgyOTktXFx0Y2FzZSBTQ1RQX1JFQ1ZOWFRJTkZPOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMDA6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3JlY3ZueHRpbmZvKHNrLCBsZW4sIG9wdHZhbCwgb3B0bGVuKTtcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzAxLVxcdFxcdGJyZWFrO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDItXFx0Y2FzZSBTQ1RQX1BSX1NVUFBPUlRFRDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzAzOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDQtXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODMwNS1cXHRjYXNlIFNDVFBfREVGQVVMVF9QUklORk86XFxubmV0L3NjdHAvc29ja2V0LmM6ODMwNjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZGVmYXVsdF9wcmluZm8oc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDctXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMDktXFx0Y2FzZSBTQ1RQX1BSX0FTU09DX1NUQVRVUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzEwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9hc3NvY3N0YXR1cyhzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODMxMS1cXHRcXHRcXHRcXHRcXHRcXHRcXHRvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMxMy1cXHRjYXNlIFNDVFBfUFJfU1RSRUFNX1NUQVRVUzpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzE0OlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcl9zdHJlYW1zdGF0dXMoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMTUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE3LVxcdGNhc2UgU0NUUF9SRUNPTkZJR19TVVBQT1JURUQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMxODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmVjb25maWdfc3VwcG9ydGVkKHNrLCBsZW4sIG9wdHZhbCxcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzE5LVxcdFxcdFxcdFxcdFxcdFxcdFxcdCAgICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMyMS1cXHRjYXNlIFNDVFBfRU5BQkxFX1NUUkVBTV9SRVNFVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzIyOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9lbmFibGVfc3RycmVzZXQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMjMtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzI1LVxcdGNhc2UgU0NUUF9TVFJFQU1fU0NIRURVTEVSOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMjY6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3NjaGVkdWxlcihzaywgbGVuLCBvcHR2YWwsXFxubmV0L3NjdHAvc29ja2V0LmMtODMyNy1cXHRcXHRcXHRcXHRcXHRcXHQgICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODMyOS1cXHRjYXNlIFNDVFBfU1RSRUFNX1NDSEVEVUxFUl9WQUxVRTpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzMwOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9zY2hlZHVsZXJfdmFsdWUoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMzEtXFx0XFx0XFx0XFx0XFx0XFx0XFx0IG9wdGxlbik7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy04MzMzLVxcdGNhc2UgU0NUUF9JTlRFUkxFQVZJTkdfU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzMzQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2ludGVybGVhdmluZ19zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMzUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzMzctXFx0Y2FzZSBTQ1RQX1JFVVNFX1BPUlQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODMzODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfcmV1c2VfcG9ydChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODMzOS1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQwLVxcdGNhc2UgU0NUUF9FVkVOVDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzQxOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9ldmVudChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODM0Mi1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzQzLVxcdGNhc2UgU0NUUF9BU0NPTkZfU1VQUE9SVEVEOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNDQ6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2FzY29uZl9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDUtXFx0XFx0XFx0XFx0XFx0XFx0XFx0ICBvcHRsZW4pO1xcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODM0Ny1cXHRjYXNlIFNDVFBfQVVUSF9TVVBQT1JURUQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODM0ODpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfYXV0aF9zdXBwb3J0ZWQoc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgzNDktXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTEtXFx0Y2FzZSBTQ1RQX0VDTl9TVVBQT1JURUQ6XFxubmV0L3NjdHAvc29ja2V0LmM6ODM1MjpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfZWNuX3N1cHBvcnRlZChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODM1My1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzU0LVxcdGNhc2UgU0NUUF9FWFBPU0VfUE9URU5USUFMTFlfRkFJTEVEX1NUQVRFOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNTU6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X3BmX2V4cG9zZShzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODM1Ni1cXHRcXHRicmVhaztcXG5uZXQvc2N0cC9zb2NrZXQuYy04MzU3LVxcdGNhc2UgU0NUUF9SRU1PVEVfVURQX0VOQ0FQU19QT1JUOlxcbm5ldC9zY3RwL3NvY2tldC5jOjgzNTg6XFx0XFx0cmV0dmFsID0gc2N0cF9nZXRzb2Nrb3B0X2VuY2FwX3BvcnQoc2ssIGxlbiwgb3B0dmFsLCBvcHRsZW4pO1xcbm5ldC9zY3RwL3NvY2tldC5jLTgzNTktXFx0XFx0YnJlYWs7XFxubmV0L3NjdHAvc29ja2V0LmMtODM2MC1cXHRjYXNlIFNDVFBfUExQTVRVRF9QUk9CRV9JTlRFUlZBTDpcXG5uZXQvc2N0cC9zb2NrZXQuYzo4MzYxOlxcdFxcdHJldHZhbCA9IHNjdHBfZ2V0c29ja29wdF9wcm9iZV9pbnRlcnZhbChzaywgbGVuLCBvcHR2YWwsIG9wdGxlbik7XFxubmV0L3NjdHAvc29ja2V0LmMtODM2Mi1cXHRcXHRicmVhaztcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTk2NjA9c3RydWN0IHByb3RvIHNjdHBfcHJvdCA9IHtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTk2NzAtXFx0LnNldHNvY2tvcHQgID1cXHRzY3RwX3NldHNvY2tvcHQsXFxubmV0L3NjdHAvc29ja2V0LmM6OTY3MTpcXHQuZ2V0c29ja29wdCAgPVxcdHNjdHBfZ2V0c29ja29wdCxcXG5uZXQvc2N0cC9zb2NrZXQuYy05NjcyLVxcdC5icGZfYnlwYXNzX2dldHNvY2tvcHRcXHQ9IHNjdHBfYnBmX2J5cGFzc19nZXRzb2Nrb3B0LFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9OTcxNT1zdHJ1Y3QgcHJvdG8gc2N0cHY2X3Byb3QgPSB7XFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy05NzI1LVxcdC5zZXRzb2Nrb3B0XFx0PSBzY3RwX3NldHNvY2tvcHQsXFxubmV0L3NjdHAvc29ja2V0LmM6OTcyNjpcXHQuZ2V0c29ja29wdFxcdD0gc2N0cF9nZXRzb2Nrb3B0LFxcbm5ldC9zY3RwL3NvY2tldC5jLTk3MjctXFx0LmJwZl9ieXBhc3NfZ2V0c29ja29wdFxcdD0gc2N0cF9icGZfYnlwYXNzX2dldHNvY2tvcHQsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjE2LjE4NTE3Mjg4NloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE0MTQ4MjIwMjIwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkV4YW1pbmluZyB0aGUgc2N0cF9nZXRzb2Nrb3B0IEZ1bmN0aW9uKipcblxuT2theSwgbGV0J3Mgc2VlIHdoYXQgd2UgY2FuIGxldmVyYWdlIGhlcmUuIEkgbmVlZCB0byBmaWd1cmUgb3V0IGlmIHRoZXJlIGFyZSBhbHRlcm5hdGl2ZSBmdW5jdGlvbnMgaW4gdGhpcyBhcmVhIHdlIGNhbiB1c2UsIHNvIGZpcnN0LCBJJ20gbm90aW5nIHRoYXQgYHNjdHBfZ2V0c29ja29wdGAgaXMgc3RhdGljLCBidXQgYXNzaWduZWQgdG8gYHNjdHBfcHJvdC5nZXRzb2Nrb3B0YC4gVGhhdCdzIGEga2V5IGRldGFpbC4gTm93LCBJIGhhdmUgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSBub24tc3RhdGljIGZ1bmN0aW9ucyB0aGF0IGFjdHVhbGx5ICpjYWxsKiBgc2N0cF9nZXRzb2Nrb3B0YC4gTm8sIGl0IGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlci4gSW50ZXJlc3RpbmcuIFdoYXQgYWJvdXQgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2A/IFRoYXQncyBhbHNvIHN0YXRpYy5cblxuQXJlIHRoZXJlICphbnkqIGV4cG9ydGVkIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGJlIHN1aXRhYmxlPyBIb2xkIG9uLi4uIG1heWJlIGBzY3RwX2dldHNvY2tvcHRgIGlzIGFjdHVhbGx5IGZpbmUsIGV2ZW4gYmVpbmcgc3RhdGljLiBJdCdzIGEgc2l6YWJsZSBmdW5jdGlvbiwgc28gaW5saW5pbmcgaXMgcHJvYmFibHkgbm90IGhhcHBlbmluZy4gQnV0IHdhaXQuLi4gc2luY2UgYHNjdHBfZ2V0c29ja29wdGAgaXMgYXNzaWduZWQgdG8gYSBmdW5jdGlvbiBwb2ludGVyLCBpdCdzICpkZWZpbml0ZWx5KiBub3QgaW5saW5lZC4gR29vZCEgTGV0J3MganVzdCBiZSB0aG9yb3VnaCBhbmQgdmVyaWZ5IHRoZXJlIGFyZW4ndCBhbnkgb3RoZXIgbm9uLXN0YXRpYyBmdW5jdGlvbnMgb2YgaW50ZXJlc3QgaW4gYG5ldC9zY3RwL3NvY2tldC5jYC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjQ0NzksIk91dHB1dFRva2VucyI6MzcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxOTYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MzAuMzMzMzk1OTI2WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzY4NjA5NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJeaW50IHNjdHBfLipcXFxcKFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvc2N0cC9zb2NrZXQuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvc2N0cC9zb2NrZXQuYz03NTg9c3RhdGljIGludCBzY3RwX3NlbmRfYXNjb25mX2RlbF9pcChzdHJ1Y3Qgc29ja1xcdFxcdCpzayxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTkwOS0vKiBzZXQgYWRkciBldmVudHMgdG8gYXNzb2NzIGluIHRoZSBlbmRwb2ludC4gIGVwIGFuZCBhZGRyX3dxIG11c3QgYmUgbG9ja2VkICovXFxubmV0L3NjdHAvc29ja2V0LmM6OTEwOmludCBzY3RwX2FzY29uZl9tZ210KHN0cnVjdCBzY3RwX3NvY2sgKnNwLCBzdHJ1Y3Qgc2N0cF9zb2NrYWRkcl9lbnRyeSAqYWRkcncpXFxubmV0L3NjdHAvc29ja2V0LmMtOTExLXtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTQ4MTU9c3RhdGljIGludCBzY3RwX2Nvbm5lY3Qoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29ja2FkZHIgKmFkZHIsXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy00ODMzLVxcbm5ldC9zY3RwL3NvY2tldC5jOjQ4MzQ6aW50IHNjdHBfaW5ldF9jb25uZWN0KHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVjdCBzb2NrYWRkcl91bnNpemVkICp1YWRkcixcXG5uZXQvc2N0cC9zb2NrZXQuYy00ODM1LVxcdFxcdCAgICAgIGludCBhZGRyX2xlbiwgaW50IGZsYWdzKVxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmM9NTIwOD1zdGF0aWMgdm9pZCBzY3RwX3NodXRkb3duKHN0cnVjdCBzb2NrICpzaywgaW50IGhvdylcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTUyMjYtXFxubmV0L3NjdHAvc29ja2V0LmM6NTIyNzppbnQgc2N0cF9nZXRfc2N0cF9pbmZvKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsXFxubmV0L3NjdHAvc29ja2V0LmMtNTIyOC1cXHRcXHQgICAgICAgc3RydWN0IHNjdHBfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTUzNTQ9c3RydWN0IHNjdHBfdHJhbnNwb3J0ICpzY3RwX3RyYW5zcG9ydF9nZXRfaWR4KHN0cnVjdCBuZXQgKm5ldCxcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTUzNzEtXFxubmV0L3NjdHAvc29ja2V0LmM6NTM3MjppbnQgc2N0cF9mb3JfZWFjaF9lbmRwb2ludChpbnQgKCpjYikoc3RydWN0IHNjdHBfZW5kcG9pbnQgKiwgdm9pZCAqKSxcXG5uZXQvc2N0cC9zb2NrZXQuYy01MzczLVxcdFxcdFxcdCAgIHN0cnVjdCBuZXQgKm5ldCwgaW50ICpwb3MsIHZvaWQgKnApIHtcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTU0MDc9RVhQT1JUX1NZTUJPTF9HUEwoc2N0cF9mb3JfZWFjaF9lbmRwb2ludCk7XFxubmV0L3NjdHAvc29ja2V0LmMtNTQwOC1cXG5uZXQvc2N0cC9zb2NrZXQuYzo1NDA5OmludCBzY3RwX3RyYW5zcG9ydF9sb29rdXBfcHJvY2VzcyhzY3RwX2NhbGxiYWNrX3QgY2IsIHN0cnVjdCBuZXQgKm5ldCxcXG5uZXQvc2N0cC9zb2NrZXQuYy01NDEwLVxcdFxcdFxcdFxcdCAgY29uc3QgdW5pb24gc2N0cF9hZGRyICpsYWRkcixcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTU0MzY9RVhQT1JUX1NZTUJPTF9HUEwoc2N0cF90cmFuc3BvcnRfbG9va3VwX3Byb2Nlc3MpO1xcbm5ldC9zY3RwL3NvY2tldC5jLTU0MzctXFxubmV0L3NjdHAvc29ja2V0LmM6NTQzODppbnQgc2N0cF90cmFuc3BvcnRfdHJhdmVyc2VfcHJvY2VzcyhzY3RwX2NhbGxiYWNrX3QgY2IsIHNjdHBfY2FsbGJhY2tfdCBjYl9kb25lLFxcbm5ldC9zY3RwL3NvY2tldC5jLTU0MzktXFx0XFx0XFx0XFx0ICAgIHN0cnVjdCBuZXQgKm5ldCwgaW50ICpwb3MsIHZvaWQgKnApXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYz04NjAxPXN0YXRpYyBpbnQgc2N0cF9saXN0ZW5fc3RhcnQoc3RydWN0IHNvY2sgKnNrLCBpbnQgYmFja2xvZylcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jLTg2NTUtICovXFxubmV0L3NjdHAvc29ja2V0LmM6ODY1NjppbnQgc2N0cF9pbmV0X2xpc3RlbihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBpbnQgYmFja2xvZylcXG5uZXQvc2N0cC9zb2NrZXQuYy04NjU3LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MzAuMzg3MDg4MjkzWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4NjI3Nzg0NDQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIFNDVFAgR2V0c29ja29wdCBJbXBsZW1lbnRhdGlvbnMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBob3cgYGdldHNvY2tvcHRgIGlzIGhhbmRsZWQgZm9yIFNDVFAuIFRoZSBjb3JlIGVudHJ5IHBvaW50LCBgc2N0cF9nZXRzb2Nrb3B0YCwgaXMgZGVjbGFyZWQgc3RhdGljLCB3aGljaCBpbml0aWFsbHkgcmFpc2VkIGEgZmxhZy4gSG93ZXZlciwgaXQncyB0aGUgZnVuY3Rpb24gdGhhdCdzIHVsdGltYXRlbHkgYXNzaWduZWQgdG8gYHNjdHBfcHJvdC5nZXRzb2Nrb3B0YC4gTGV0J3Mgc3RlcCBiYWNrIGFuZCBjb25zaWRlciBpZiB0aGVyZSBhcmUgYW55IG90aGVyIGBnZXRzb2Nrb3B0YCBmdW5jdGlvbnMgaW4gcGxheSBoZXJlLlxuXG5SaWdodCwgc28gZXZlbiB0aG91Z2ggYHNjdHBfZ2V0c29ja29wdGAgYW5kIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGFyZSBzdGF0aWMsIFN5emthbGxlciAqc2hvdWxkKiBiZSBhYmxlIHRvIHRhcmdldCB0aGVtLCBwcm92aWRlZCB0aGV5IGhhdmVuJ3QgYmVlbiBpbmxpbmVkIGJ5IHRoZSBjb21waWxlci4gV2Uga25vdyBgc2N0cF9nZXRzb2Nrb3B0YCBpcyBkZWZpbml0ZWx5ICpub3QqIGlubGluZWQuIFRoZSBvdGhlciBmdW5jdGlvbiwgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AsIGlzIHBvdGVudGlhbGx5IHByb2JsZW1hdGljLiBJdCdzIHBsYXVzaWJsZSB0aGF0IHRoZSBjb21waWxlciBjaG9zZSB0byBpbmxpbmUgaXQsIGJ1dCBpdCdzIGFsc28gbGFyZ2UgZW5vdWdoIHRoYXQgaXQgbWlnaHQgaGF2ZSBiZWVuIGxlZnQgYXMgYSBzdGFuZGFsb25lIGZ1bmN0aW9uLiBTbywgdGhlIG5leHQgbG9naWNhbCBzdGVwIGlzIHRvIGNvbmZpcm0gd2hldGhlciBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBhY3R1YWxseSBnb3QgaW5saW5lZC4gVGhhdCdzIHRoZSBrZXkgcXVlc3Rpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI1ODUwLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjM1LjI0OTg2OTk2N1oiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODkzODIxMDQsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jPTcwMzI9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjcwNzY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTgxMzc9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI3Mi1cXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI3MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MzUuMzM5MjU3MjAyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ1NTQ0NjA5MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MgbGFpZCBvdXQsIGFzc3VtaW5nIEknbSBhbHJlYWR5IGRlZXAgaW50byB0aGlzIGNvZGUgYW5kIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQ6XG5cbioqQW5hbHl6aW5nIHRoZSBGdW5jdGlvbiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCoqXG5cblJpZ2h0LCBsZXQncyB0YWtlIGEgcXVpY2sgbG9vayBhdCB0aGUgc2l6ZSBvZiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCBraW5kIG9mIG1lbW9yeSBmb290cHJpbnQgdGhpcyBmdW5jdGlvbiBoYXMsIGVzcGVjaWFsbHkgYXMgaXQgcmVsYXRlcyB0byB0aGUgb3ZlcmFsbCBwZXJmb3JtYW5jZSBhbmQgcmVzb3VyY2UgdXNhZ2Ugb2YgdGhlIFNDVFAgaW1wbGVtZW50YXRpb24uIFVuZGVyc3RhbmRpbmcgaXRzIHNpemUgZGlyZWN0bHkgY29udHJpYnV0ZXMgdG8gbXkgYWJpbGl0eSB0byBvcHRpbWl6ZSB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgYW5kIGF2b2lkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3dzIG9yIGluZWZmaWNpZW50IG1lbW9yeSBhbGxvY2F0aW9uLiBJcyBpdCBhIHNtYWxsIGxvb2t1cCB0YWJsZT8gQSBjb21wbGV4IGRhdGEgc3RydWN0dXJlPyBJdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kIHRoZSBzY2FsZSBvZiBpdC4gSXQgaXMgYWxzbyBpbXBvcnRhbnQgaW4gZGVidWdnaW5nLCBhcyB1bmRlcnN0YW5kaW5nIHRoZSBhbW91bnQgb2YgcmVzb3VyY2VzIGEgZnVuY3Rpb24gdXNlcyBjYW4gcG9pbnQgdG93YXJkcyB1bmV4cGVjdGVkIGJvdHRsZW5lY2tzLiBJdCBpcyB0aW1lIHRvIGRldGVybWluZSBpdHMgc2l6ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjY2MTUsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzozOS44OTM3MjEwODVaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzI3NzI2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvc2N0cC9zb2NrZXQuY1wiLFxuICBcIkZpcnN0TGluZVwiOiA3MDc2LFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCI3MDc2OlxcdHN0YXRpYyBpbnQgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzKHN0cnVjdCBzb2NrICpzaywgaW50IGxlbixcXG43MDc3OlxcdFxcdFxcdFxcdFxcdCAgICBjaGFyIF9fdXNlciAqb3B0dmFsLCBpbnQgX191c2VyICpvcHRsZW4pXFxuNzA3ODpcXHR7XFxuNzA3OTpcXHRcXHRzdHJ1Y3Qgc2N0cF9lbmRwb2ludCAqZXAgPSBzY3RwX3NrKHNrKS1cXHUwMDNlZXA7XFxuNzA4MDpcXHRcXHRzdHJ1Y3Qgc2N0cF9hdXRoY2h1bmtzIF9fdXNlciAqcCA9ICh2b2lkIF9fdXNlciAqKW9wdHZhbDtcXG43MDgxOlxcdFxcdHN0cnVjdCBzY3RwX2F1dGhjaHVua3MgdmFsO1xcbjcwODI6XFx0XFx0c3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2M7XFxuNzA4MzpcXHRcXHRzdHJ1Y3Qgc2N0cF9jaHVua3NfcGFyYW0gKmNoO1xcbjcwODQ6XFx0XFx0dTMyICAgIG51bV9jaHVua3MgPSAwO1xcbjcwODU6XFx0XFx0Y2hhciBfX3VzZXIgKnRvO1xcbjcwODY6XFx0XFxuNzA4NzpcXHRcXHRpZiAobGVuIFxcdTAwM2Mgc2l6ZW9mKHN0cnVjdCBzY3RwX2F1dGhjaHVua3MpKVxcbjcwODg6XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuNzA4OTpcXHRcXG43MDkwOlxcdFxcdGlmIChjb3B5X2Zyb21fdXNlcihcXHUwMDI2dmFsLCBvcHR2YWwsIHNpemVvZih2YWwpKSlcXG43MDkxOlxcdFxcdFxcdHJldHVybiAtRUZBVUxUO1xcbjcwOTI6XFx0XFxuNzA5MzpcXHRcXHR0byA9IHAtXFx1MDAzZWdhdXRoX2NodW5rcztcXG43MDk0OlxcdFxcdGFzb2MgPSBzY3RwX2lkMmFzc29jKHNrLCB2YWwuZ2F1dGhfYXNzb2NfaWQpO1xcbjcwOTU6XFx0XFx0aWYgKCFhc29jIFxcdTAwMjZcXHUwMDI2IHZhbC5nYXV0aF9hc3NvY19pZCAhPSBTQ1RQX0ZVVFVSRV9BU1NPQyBcXHUwMDI2XFx1MDAyNlxcbjcwOTY6XFx0XFx0ICAgIHNjdHBfc3R5bGUoc2ssIFVEUCkpXFxuNzA5NzpcXHRcXHRcXHRyZXR1cm4gLUVJTlZBTDtcXG43MDk4OlxcdFxcbjcwOTk6XFx0XFx0aWYgKGFzb2MpIHtcXG43MTAwOlxcdFxcdFxcdGlmICghYXNvYy1cXHUwMDNlcGVlci5hdXRoX2NhcGFibGUpXFxuNzEwMTpcXHRcXHRcXHRcXHRyZXR1cm4gLUVBQ0NFUztcXG43MTAyOlxcdFxcdFxcdGNoID0gKHN0cnVjdCBzY3RwX2NodW5rc19wYXJhbSAqKWFzb2MtXFx1MDAzZWMuYXV0aF9jaHVua3M7XFxuNzEwMzpcXHRcXHR9IGVsc2Uge1xcbjcxMDQ6XFx0XFx0XFx0aWYgKCFlcC1cXHUwMDNlYXV0aF9lbmFibGUpXFxuNzEwNTpcXHRcXHRcXHRcXHRyZXR1cm4gLUVBQ0NFUztcXG43MTA2OlxcdFxcdFxcdGNoID0gZXAtXFx1MDAzZWF1dGhfY2h1bmtfbGlzdDtcXG43MTA3OlxcdFxcdH1cXG43MTA4OlxcdFxcdGlmICghY2gpXFxuNzEwOTpcXHRcXHRcXHRnb3RvIG51bTtcXG43MTEwOlxcdFxcbjcxMTE6XFx0XFx0bnVtX2NodW5rcyA9IG50b2hzKGNoLVxcdTAwM2VwYXJhbV9oZHIubGVuZ3RoKSAtIHNpemVvZihzdHJ1Y3Qgc2N0cF9wYXJhbWhkcik7XFxuNzExMjpcXHRcXHQvKiBhc29jLVxcdTAwM2VjLmF1dGhfY2h1bmtzW10gaG9sZHMgYXQgbW9zdCBTQ1RQX0FVVEhfTUFYX0NIVU5LUyBieXRlcyBidXQgaXRzXFxuNzExMzpcXHRcXHQgKiBsZW5ndGggaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3RhdGUgY29va2llIGFuZCBpcyBub3QgYm91bmRlZCBoZXJlO1xcbjcxMTQ6XFx0XFx0ICogY2xhbXAgc28gYW4gb3ZlcnNpemVkIGxlbmd0aCBjYW5ub3QgcmVhZCBwYXN0IHRoZSBhcnJheS5cXG43MTE1OlxcdFxcdCAqL1xcbjcxMTY6XFx0XFx0aWYgKG51bV9jaHVua3MgXFx1MDAzZSBTQ1RQX0FVVEhfTUFYX0NIVU5LUylcXG43MTE3OlxcdFxcdFxcdG51bV9jaHVua3MgPSBTQ1RQX0FVVEhfTUFYX0NIVU5LUztcXG43MTE4OlxcdFxcdGlmIChsZW4gXFx1MDAzYyBzaXplb2Yoc3RydWN0IHNjdHBfYXV0aGNodW5rcykgKyBudW1fY2h1bmtzKVxcbjcxMTk6XFx0XFx0XFx0cmV0dXJuIC1FSU5WQUw7XFxuNzEyMDpcXHRcXG43MTIxOlxcdFxcdGlmIChjb3B5X3RvX3VzZXIodG8sIGNoLVxcdTAwM2VjaHVua3MsIG51bV9jaHVua3MpKVxcbjcxMjI6XFx0XFx0XFx0cmV0dXJuIC1FRkFVTFQ7XFxuNzEyMzpcXHRudW06XFxuNzEyNDpcXHRcXHRsZW4gPSBzaXplb2Yoc3RydWN0IHNjdHBfYXV0aGNodW5rcykgKyBudW1fY2h1bmtzO1xcbjcxMjU6XFx0XFx0aWYgKHB1dF91c2VyKGxlbiwgb3B0bGVuKSlcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6MzkuODk3MDAyMTE1WiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjgwNzM5MDg5ODksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIEZ1bmN0aW9uIElubGluaW5nIGFuZCBTeW1ib2wgUmVzb2x1dGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZnVuY3Rpb24sIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgLCBhbmQgaXQncyBhIGZhaXIgc2l6ZS4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcyB0aGF0IGl0ICptaWdodCogZ2V0IGlubGluZWQgZGlyZWN0bHkgaW50byBgc2N0cF9nZXRzb2Nrb3B0YCwgd2hpY2gsIEkgcmVjYWxsLCBpcyBhIHJhdGhlciBzdWJzdGFudGlhbCBmdW5jdGlvbi4gQnV0IHRoZW4gSSByZW1lbWJlcmVkIHNvbWV0aGluZyBjcnVjaWFsIGFib3V0IGNvbXBpbGVyIGJlaGF2aW9yIHdpdGggbGFyZ2Ugc3dpdGNoIHN0YXRlbWVudHMsIHdoaWNoIGBzY3RwX2dldHNvY2tvcHRgIGlzLiBDb21waWxlcnMgYXJlIGdlbmVyYWxseSByZWx1Y3RhbnQgdG8gaW5saW5lIGZ1bmN0aW9ucyBjYWxsZWQgd2l0aGluIGdpYW50IHN3aXRjaCBzdGF0ZW1lbnRzLiBUaGV5J3JlIHRyeWluZyB0byBrZWVwIHRoZSBzdGFjayBmcmFtZSBzaXplIG1hbmFnZWFibGUgYW5kIG9wdGltaXplZC5cblxuVGhlcmVmb3JlLCBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBpcyBhbG1vc3QgY2VydGFpbmx5IGdvaW5nIHRvIHJlbWFpbiBhIGRpc3RpbmN0IHN5bWJvbCwgbm90IGdldHRpbmcgZGlyZWN0bHkgbWVyZ2VkLiBUbyBiZSB0aG9yb3VnaCBhbmQgZW5zdXJlIHRoaXMgY29kZSBwYXRoIGlzIGNvdmVyZWQgZHVyaW5nIGFuYWx5c2lzLCBJIHNob3VsZCBhbHNvIGV4cGxpY2l0bHkgaW5jbHVkZSBgc2N0cF9nZXRzb2Nrb3B0YCBpbiBgRm9jdXNTeW1ib2xzYC5cblxuTm93LCBiZWZvcmUgSSBtb3ZlIG9uLCBsZXQgbWUgcXVpY2tseSBtYWtlIHN1cmUgSSdtIHRha2luZyB0aGUgY29uZmlndXJhdGlvbiBpbnRvIGFjY291bnQuIEkgbmVlZCB0byByZW1lbWJlciB0byBpbmNsdWRlIGBJUF9TQ1RQYCBpbiB0aGUgbGlzdCBvZiByZWxldmFudCBjb25maWd1cmF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc3MjUsIk91dHB1dFRva2VucyI6MzQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzo0Ny45NzA5MTM3MTRaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcyMzE0ODA2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBJUF9TQ1RQXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3NjdHAvS2NvbmZpZy01LVxcbm5ldC9zY3RwL0tjb25maWc6NjptZW51Y29uZmlnIElQX1NDVFBcXG5uZXQvc2N0cC9LY29uZmlnLTctXFx0dHJpc3RhdGUgXFxcIlRoZSBTQ1RQIFByb3RvY29sXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzo0OC4wNDMyMzUyNloiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNDM5NTA3MDUxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgQ29uZmlndXJhdGlvbiBhbmQgQ29kZSBDaGFuZ2VzKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb25maWd1cmF0aW9uLCBhbmQgaXQgc2VlbXMgYElQX1NDVFBgIGlzIHRoZSBrZXkgcGllY2UgaGVyZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJJ20gbm90IG1pc3NpbmcgYW55dGhpbmcgZWxzZSByZWxhdGVkIHRvIHRoZSBTQ1RQIGNvbmZpZ3VyYXRpb24uIExldCBtZSBxdWlja2x5IHNjYW4gZm9yIG90aGVyIHJlbGV2YW50IG9wdGlvbnMsIGp1c3QgdG8gYmUgdGhvcm91Z2guIEl0IGxvb2tzIGxpa2UgdGhlIHBhdGNoIEknbSBleGFtaW5pbmcgZGlyZWN0bHkgdG91Y2hlcyBgbmV0L3NjdHAvc29ja2V0LmNgLCB3aGljaCBpcyB0aGUgY29yZSBvZiB0aGUgU0NUUCBzb2NrZXQgaW1wbGVtZW50YXRpb24uIE5vdywgYSB0aG91Z2h0OiBJcyBgU0NUUF9BVVRIYCBhIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPyBUaGF0IHdvdWxkIGJlIHVzZWZ1bCBpbmZvcm1hdGlvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgxODksIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyNzo1MS40ODI3NTExODFaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg3MDg1MDU1LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU0NUUF9BVVRIXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9zY3RwL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjUxLjU2OTg0MzY4NloiLCJTZXEiOjE5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTQ4MjMyNDA2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipTQ1RQIEF1dGhlbnRpY2F0aW9uIENvbnVuZHJ1bSoqXG5cbkFscmlnaHQsIG5vIGBTQ1RQX0FVVEhgIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHByZXNlbnQuIFRoYXQncyBhIGJpdCBvZGQsIGlzbid0IGl0PyBNeSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIHRoYXQgaXQgd291bGQgYmUgZW5hYmxlZCBpbiBzb21lIHdheSwgYnV0IGNsZWFybHksIEkgbmVlZCB0byBkaWcgZGVlcGVyLiBUaW1lIHRvIGNvbnN1bHQgdGhlIGBuZXQvc2N0cC9LY29uZmlnYCBmaWxlLiBUaGF0J3MgdGhlIGRlZmluaXRpdmUgc291cmNlIGZvciBrZXJuZWwgbW9kdWxlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyByZWxhdGVkIHRvIFNDVFAuIEl0IHNob3VsZCBpbGx1bWluYXRlIGFueSBvdGhlciByZWxhdGVkIGNvbmZpZ3MsIGRlcGVuZGVuY2llcywgb3IgbWF5YmUgZXZlbiByZXZlYWwgd2h5IGBTQ1RQX0FVVEhgIGlzIGFic2VudCBpbiB0aGUgZmlyc3QgcGxhY2UuIFRoaXMgY291bGQgbGVhZCB0byBhIHN0cmFpZ2h0Zm9yd2FyZCBzb2x1dGlvbiwgb3IgaXQgbWlnaHQgZm9yY2UgbWUgZG93biBhIHJhYmJpdCBob2xlIGRlcGVuZGluZyBvbiB3aGF0IGlzIGZvdW5kLiBMZXQncyBzZWUgd2hhdCB0aGUgS2NvbmZpZyBoYXMgdG8gc2F5IVxuXG5cbiIsIklucHV0VG9rZW5zIjoyODQxMywiT3V0cHV0VG9rZW5zIjozNCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIwOjI3OjU3LjcxODA3OTM3MloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMDE5ODAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L3NjdHAvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiA1MFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbiAgIDI6XFx0I1xcbiAgIDM6XFx0IyBTQ1RQIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0bWVudWNvbmZpZyBJUF9TQ1RQXFxuICAgNzpcXHRcXHR0cmlzdGF0ZSBcXFwiVGhlIFNDVFAgUHJvdG9jb2xcXFwiXFxuICAgODpcXHRcXHRkZXBlbmRzIG9uIElORVRcXG4gICA5OlxcdFxcdHNlbGVjdCBDUllQVE9fTElCX1NIQTFcXG4gIDEwOlxcdFxcdHNlbGVjdCBDUllQVE9fTElCX1NIQTI1NlxcbiAgMTE6XFx0XFx0c2VsZWN0IENSWVBUT19MSUJfVVRJTFNcXG4gIDEyOlxcdFxcdHNlbGVjdCBORVRfQ1JDMzJDXFxuICAxMzpcXHRcXHRzZWxlY3QgTkVUX1VEUF9UVU5ORUxcXG4gIDE0OlxcdFxcdGhlbHBcXG4gIDE1OlxcdFxcdCAgU3RyZWFtIENvbnRyb2wgVHJhbnNtaXNzaW9uIFByb3RvY29sXFxuICAxNjpcXHRcXG4gIDE3OlxcdFxcdCAgRnJvbSBSRkMgMjk2MCBcXHUwMDNjaHR0cDovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMjk2MC50eHRcXHUwMDNlLlxcbiAgMTg6XFx0XFxuICAxOTpcXHRcXHQgIFxcXCJTQ1RQIGlzIGEgcmVsaWFibGUgdHJhbnNwb3J0IHByb3RvY29sIG9wZXJhdGluZyBvbiB0b3Agb2YgYVxcbiAgMjA6XFx0XFx0ICBjb25uZWN0aW9ubGVzcyBwYWNrZXQgbmV0d29yayBzdWNoIGFzIElQLiAgSXQgb2ZmZXJzIHRoZSBmb2xsb3dpbmdcXG4gIDIxOlxcdFxcdCAgc2VydmljZXMgdG8gaXRzIHVzZXJzOlxcbiAgMjI6XFx0XFxuICAyMzpcXHRcXHQgIC0tIGFja25vd2xlZGdlZCBlcnJvci1mcmVlIG5vbi1kdXBsaWNhdGVkIHRyYW5zZmVyIG9mIHVzZXIgZGF0YSxcXG4gIDI0OlxcdFxcdCAgLS0gZGF0YSBmcmFnbWVudGF0aW9uIHRvIGNvbmZvcm0gdG8gZGlzY292ZXJlZCBwYXRoIE1UVSBzaXplLFxcbiAgMjU6XFx0XFx0ICAtLSBzZXF1ZW5jZWQgZGVsaXZlcnkgb2YgdXNlciBtZXNzYWdlcyB3aXRoaW4gbXVsdGlwbGUgc3RyZWFtcyxcXG4gIDI2OlxcdFxcdCAgd2l0aCBhbiBvcHRpb24gZm9yIG9yZGVyLW9mLWFycml2YWwgZGVsaXZlcnkgb2YgaW5kaXZpZHVhbCB1c2VyXFxuICAyNzpcXHRcXHQgIG1lc3NhZ2VzLFxcbiAgMjg6XFx0XFx0ICAtLSBvcHRpb25hbCBidW5kbGluZyBvZiBtdWx0aXBsZSB1c2VyIG1lc3NhZ2VzIGludG8gYSBzaW5nbGUgU0NUUFxcbiAgMjk6XFx0XFx0ICBwYWNrZXQsIGFuZFxcbiAgMzA6XFx0XFx0ICAtLSBuZXR3b3JrLWxldmVsIGZhdWx0IHRvbGVyYW5jZSB0aHJvdWdoIHN1cHBvcnRpbmcgb2YgbXVsdGktXFxuICAzMTpcXHRcXHQgIGhvbWluZyBhdCBlaXRoZXIgb3IgYm90aCBlbmRzIG9mIGFuIGFzc29jaWF0aW9uLlxcXCJcXG4gIDMyOlxcdFxcbiAgMzM6XFx0XFx0ICBUbyBjb21waWxlIHRoaXMgcHJvdG9jb2wgc3VwcG9ydCBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlXFxuICAzNDpcXHRcXHQgIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCBzY3RwLiBEZWJ1ZyBtZXNzYWdlcyBhcmUgaGFuZGxlZCBieSB0aGVcXG4gIDM1OlxcdFxcdCAga2VybmVsJ3MgZHluYW1pYyBkZWJ1Z2dpbmcgZnJhbWV3b3JrLlxcbiAgMzY6XFx0XFxuICAzNzpcXHRcXHQgIElmIGluIGRvdWJ0LCBzYXkgTi5cXG4gIDM4OlxcdFxcbiAgMzk6XFx0aWYgSVBfU0NUUFxcbiAgNDA6XFx0XFxuICA0MTpcXHRjb25maWcgU0NUUF9EQkdfT0JKQ05UXFxuICA0MjpcXHRcXHRib29sIFxcXCJTQ1RQOiBEZWJ1ZyBvYmplY3QgY291bnRzXFxcIlxcbiAgNDM6XFx0XFx0ZGVwZW5kcyBvbiBQUk9DX0ZTXFxuICA0NDpcXHRcXHRoZWxwXFxuICA0NTpcXHRcXHQgIElmIHlvdSBzYXkgWSwgdGhpcyB3aWxsIGVuYWJsZSBkZWJ1Z2dpbmcgc3VwcG9ydCBmb3IgY291bnRpbmcgdGhlXFxuICA0NjpcXHRcXHQgIHR5cGUgb2Ygb2JqZWN0cyB0aGF0IGFyZSBjdXJyZW50bHkgYWxsb2NhdGVkLiAgVGhpcyBpcyB1c2VmdWwgZm9yXFxuICA0NzpcXHRcXHQgIGlkZW50aWZ5aW5nIG1lbW9yeSBsZWFrcy4gVGhpcyBkZWJ1ZyBpbmZvcm1hdGlvbiBjYW4gYmUgdmlld2VkIGJ5XFxuICA0ODpcXHRcXHQgICdjYXQgL3Byb2MvbmV0L3NjdHAvc2N0cF9kYmdfb2JqY250J1xcbiAgNDk6XFx0XFxuICA1MDpcXHRcXHQgIElmIHVuc3VyZSwgc2F5IE5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjc6NTcuNzE4MTgzNDkyWiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzNjM3NDE0OTAxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IFNDVFAgT3B0aW9uIEFuYWx5c2lzKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nLCBiYXNlZCBvbiB0aGlzLCBgSVBfU0NUUGAgc2VlbXMgbGlrZSB0aGUgb25seSBuZWNlc3Nhcnkgb3B0aW9uIHdlIG5lZWQgdG8gY29uc2lkZXIuIEkgc2hvdWxkIGRvdWJsZSBjaGVjayBpZiBgc2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzYCBpcyBzdGF0aWMsIHdoaWNoIGl0IGFwcGVhcnMgdG8gYmUuIEhtbW0sIGlzIHRoZXJlIGFub3RoZXIgZnVuY3Rpb24gdGhhdCBjb3VsZCBiZSB1dGlsaXplZD8gT2theSwgYHNjdHBfZ2V0c29ja29wdGAgaXMgYWxzbyBzdGF0aWMuIFdhaXQsIGJ1dCBgc2N0cF9nZXRzb2Nrb3B0YCBpcyBhc3NpZ25lZCB0byBgc2N0cF9wcm90LmdldHNvY2tvcHRgLiBXaGF0IGFib3V0IGBzY3RwX3NldHNvY2tvcHRgPyBPaCwgdGhhdCdzIHN0YXRpYyBhcyB3ZWxsLlxuXG5JcyB0aGVyZSBhIGZ1bmN0aW9uIHRoYXQncyBleHBvcnRlZD8gTm8sIHRoZSBzdGFuZGFyZCBhcHByb2FjaCBpcyBkZWZpbml0ZWx5IHRvIGludGVyYWN0IHdpdGggU0NUUCBzb2NrZXQgb3B0aW9ucyB2aWEgdGhlIGBnZXRzb2Nrb3B0YCBzeXN0ZW0gY2FsbCwgd2hpY2ggdGhlbiBjYWxscyBgc2N0cF9nZXRzb2Nrb3B0YC4gU2luY2UgYHNjdHBfZ2V0c29ja29wdGAgaXNuJ3QgaW5saW5lZCwgaXQnbGwgc2hvdyB1cCBpbiB0aGUgc3ltYm9sIHRhYmxlLiBXYWl0IGEgc2Vjb25kLCBldmVuIHN0YXRpYyBmdW5jdGlvbnMgYXJlIGxpc3RlZCBpbiBrYWxsc3ltcywgdGhleSBqdXN0IGhhdmUgbG9jYWwgYmluZGluZyEgU28gU3l6a2FsbGVyIHNob3VsZCBiZSBhYmxlIHRvIGZ1enogdGhlbSBpZiB0aGV5J3JlIGluIGthbGxzeW1zIGFuZCBub3QgaW5saW5lZC4gR3JlYXQsIHNvIGJvdGggYHNjdHBfZ2V0c29ja29wdGAgYW5kIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIHNob3VsZCBiZSBmaW5lIHRvIHdvcmsgd2l0aC5cblxuTm93LCBsZXQncyBqdXN0IHF1aWNrbHkgY2hlY2sgaWYgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgaXMgY2FsbGVkIGFueXdoZXJlIGVsc2UsIGp1c3QgdG8gYmUgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkzNDUsIk91dHB1dFRva2VucyI6MzksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzcsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMDoyODoxMS4zNTU2MDE2MDNaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNDc2MzgwMywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3NjdHAvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9zY3RwL3NvY2tldC5jPTcwMzI9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfcGVlcl9hdXRoX2NodW5rcyhzdHJ1Y3Qgc29jayAqc2ssIGludCBsZW4sXFxuLS1cXG5uZXQvc2N0cC9zb2NrZXQuYy03MDc1LVxcbm5ldC9zY3RwL3NvY2tldC5jOjcwNzY6c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc3RydWN0IHNvY2sgKnNrLCBpbnQgbGVuLFxcbm5ldC9zY3RwL3NvY2tldC5jLTcwNzctXFx0XFx0XFx0XFx0ICAgIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilcXG4tLVxcbm5ldC9zY3RwL3NvY2tldC5jPTgxMzc9c3RhdGljIGludCBzY3RwX2dldHNvY2tvcHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLFxcbi0tXFxubmV0L3NjdHAvc29ja2V0LmMtODI3Mi1cXHRjYXNlIFNDVFBfTE9DQUxfQVVUSF9DSFVOS1M6XFxubmV0L3NjdHAvc29ja2V0LmM6ODI3MzpcXHRcXHRyZXR2YWwgPSBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3Moc2ssIGxlbiwgb3B0dmFsLFxcbm5ldC9zY3RwL3NvY2tldC5jLTgyNzQtXFx0XFx0XFx0XFx0XFx0XFx0XFx0b3B0bGVuKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjg6MTEuNDcwMzY5NjU2WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY4MDg3OTU5OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiB0aGUgU0NUUCBTb2NrZXQgT3B0aW9uIFZ1bG5lcmFiaWxpdHkqKlxuXG5Pa2F5LCBzbyB0aGUgaW52ZXN0aWdhdGlvbiBjZW50ZXJzIGFyb3VuZCBgc2N0cF9nZXRzb2Nrb3B0YC4gTXkgaW5pdGlhbCBzY2FuIHNob3dzIHRoYXQgYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgaXMgdGhlIG9ubHkgZnVuY3Rpb24gbW9kaWZpZWQuIFRoYXQgY29uZmlybXMgbXkgaW5pdGlhbCBodW5jaC5cblxuVGhlIGNvcmUgb2YgdGhlIGlzc3VlIGlzIGFuIG91dC1vZi1ib3VuZHMgcmVhZCB3aXRoaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AuIFRoZSBwYXRjaCBjbGFtcHMgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2Agd2hpY2ggaXMgYSBjcml0aWNhbCBmdW5jdGlvbmFsIGNoYW5nZS4gVGhpcyBpcyBkaXJlY3RseSByZWxldmFudCBiZWNhdXNlIGBnZXRzb2Nrb3B0YCBpcyBhIHVzZXJzcGFjZSBzeXNjYWxsIHBhdGggdG8gdGhpcyBjb2RlLiBJdCdzIGEgcHJpbWUgdGFyZ2V0IGZvciBmdXp6aW5nLiBXZSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgYm91bmRzIGNoZWNrICphY3R1YWxseSogcHJldmVudHMgdGhlIG91dC1vZi1ib3VuZHMgcmVhZCBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IG5ldyByZWdyZXNzaW9ucy5cblxuSSd2ZSB2ZXJpZmllZCB0aGUgZnVuY3Rpb24gbmFtZSBhZ2FpbiwgYHNjdHBfZ2V0c29ja29wdGAsIG1ha2luZyBzdXJlIEkgZGlkbid0IG1pc2ludGVycHJldCBhbnl0aGluZyBhbG9uZyB0aGUgd2F5LiBTcGVjaWZpY2FsbHksIGBzdGF0aWMgaW50IHNjdHBfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAqc2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGNoYXIgX191c2VyICpvcHR2YWwsIGludCBfX3VzZXIgKm9wdGxlbilgLlxuXG5Ob3csIEknbSByZWFkeSB0byBtb3ZlIGZvcndhcmQgYW5kIHNldCB0aGUgYXBwcm9wcmlhdGUgcmVzdWx0cyBmb3IgdGhlIG5leHQgc3RhZ2Ugb2YgdGhlIGFuYWx5c2lzLiBUaGUgY3JpdGljYWwgZnVuY3Rpb25zIGhlcmUgYXJlIGBzY3RwX2dldHNvY2tvcHRfbG9jYWxfYXV0aF9jaHVua3NgIGFuZCwgb2YgY291cnNlLCB0aGUgZW50cnkgcG9pbnQgd2hpY2ggaXMgYHNjdHBfZ2V0c29ja29wdGAuIFRoZSBjb25maWd1cmF0aW9uIG5lZWRlZCB3aWxsIGJlIGBJUF9TQ1RQYCwgYXMgaW5kaWNhdGVkLlxuXG5cbiIsIklucHV0VG9rZW5zIjozMDI2NCwiT3V0cHV0VG9rZW5zIjoxNjIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjA6Mjg6MTguMjc5MTczOTQyWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQxMzExMjcxLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzXCIsXG4gICAgXCJzY3RwX2dldHNvY2tvcHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYnkgY2xhbXBpbmcgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgU0NUUCBzb2NrZXQgb3B0aW9ucyBoYW5kbGluZyBhbmQgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c2NhbGwuIEl0IGlzIHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IHByZXZlbnRzIG91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJUF9TQ1RQXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2N0cF9nZXRzb2Nrb3B0X2xvY2FsX2F1dGhfY2h1bmtzXCIsXG4gICAgXCJzY3RwX2dldHNvY2tvcHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBvdXQtb2YtYm91bmRzIHJlYWQgaW4gYHNjdHBfZ2V0c29ja29wdF9sb2NhbF9hdXRoX2NodW5rc2AgYnkgY2xhbXBpbmcgYG51bV9jaHVua3NgIHRvIGBTQ1RQX0FVVEhfTUFYX0NIVU5LU2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgU0NUUCBzb2NrZXQgb3B0aW9ucyBoYW5kbGluZyBhbmQgaXMgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSB0aGUgYGdldHNvY2tvcHRgIHN5c2NhbGwuIEl0IGlzIHdvcnRoIGZ1enppbmcgdG8gZW5zdXJlIHRoZSBib3VuZHMgY2hlY2sgY29ycmVjdGx5IHByZXZlbnRzIG91dC1vZi1ib3VuZHMgYWNjZXNzIGFuZCBkb2Vzbid0IGludHJvZHVjZSByZWdyZXNzaW9ucy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowwbd6t[1] Phase: Succeeded StartedAt: 2026-07-31 20:28:29 +0000 UTC FinishedAt: 2026-07-31 20:28:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-31 20:28:29 +0000 UTC FinishedAt: 2026-07-31 20:28:29 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2] Phase: Succeeded StartedAt: 2026-07-31 20:28:29 +0000 UTC FinishedAt: 2026-08-01 00:21:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-31 20:28:29 +0000 UTC FinishedAt: 2026-08-01 00:21:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-31 20:28:29 +0000 UTC FinishedAt: 2026-07-31 20:28:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-31 20:28:29 +0000 UTC FinishedAt: 2026-07-31 20:28:35 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowwbd6t/series-workflowwbd6t-convert-artifact-4190770776/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-31 20:28:39 +0000 UTC FinishedAt: 2026-07-31 20:45:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-31 20:28:39 +0000 UTC FinishedAt: 2026-07-31 20:45:11 +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:*cb6b5faf-342a-4eea-841b-dc6135d545bf,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-workflowwbd6t/series-workflowwbd6t-convert-artifact-4190770776/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": "39b848f5-8f62-48a5-8aee-c6f75e589f95", "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-workflowwbd6t/series-workflowwbd6t-build-action-3115757198/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-31 20:28:39 +0000 UTC FinishedAt: 2026-07-31 20:45:01 +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:*cb6b5faf-342a-4eea-841b-dc6135d545bf,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-workflowwbd6t/series-workflowwbd6t-convert-artifact-4190770776/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": "39b848f5-8f62-48a5-8aee-c6f75e589f95", "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-workflowwbd6t/series-workflowwbd6t-build-action-3115757198/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-31 20:45:11 +0000 UTC FinishedAt: 2026-07-31 20:45:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-31 20:45:11 +0000 UTC FinishedAt: 2026-07-31 20:45:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-31 20:45:11 +0000 UTC FinishedAt: 2026-07-31 20:45:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-31 20:45:11 +0000 UTC FinishedAt: 2026-07-31 20:45:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.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-workflowwbd6t/series-workflowwbd6t-convert-artifact-1735043007/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-31 20:45:21 +0000 UTC FinishedAt: 2026-07-31 20:47:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-31 20:45:21 +0000 UTC FinishedAt: 2026-07-31 20:47:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*39b848f5-8f62-48a5-8aee-c6f75e589f95,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-workflowwbd6t/series-workflowwbd6t-build-action-3115757198/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-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-31 20:47:39 +0000 UTC FinishedAt: 2026-07-31 20:47:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-31 20:47:39 +0000 UTC FinishedAt: 2026-07-31 20:47:39 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-31 20:47:39 +0000 UTC FinishedAt: 2026-07-31 21:15:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-31 20:47:39 +0000 UTC FinishedAt: 2026-07-31 21:15:35 +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:*cb6b5faf-342a-4eea-841b-dc6135d545bf,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-workflowwbd6t/series-workflowwbd6t-convert-artifact-1735043007/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": "3c3b573d-2db2-4289-bd64-3d9a860d1fe3", "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-workflowwbd6t/series-workflowwbd6t-build-action-2590026707/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-31 20:47:39 +0000 UTC FinishedAt: 2026-07-31 21:15:14 +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:*cb6b5faf-342a-4eea-841b-dc6135d545bf,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-workflowwbd6t/series-workflowwbd6t-convert-artifact-1735043007/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": "3c3b573d-2db2-4289-bd64-3d9a860d1fe3", "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-workflowwbd6t/series-workflowwbd6t-build-action-2590026707/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-31 21:15:35 +0000 UTC FinishedAt: 2026-07-31 21:15:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-31 21:15:35 +0000 UTC FinishedAt: 2026-07-31 21:15:35 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-31 21:15:35 +0000 UTC FinishedAt: 2026-07-31 21:17:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-31 21:15:35 +0000 UTC FinishedAt: 2026-07-31 21:17:26 +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:*3c3b573d-2db2-4289-bd64-3d9a860d1fe3,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-workflowwbd6t/series-workflowwbd6t-build-action-2590026707/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-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-31 21:17:38 +0000 UTC FinishedAt: 2026-08-01 00:21:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-31 21:17:38 +0000 UTC FinishedAt: 2026-08-01 00:21:01 +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":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"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:*39b848f5-8f62-48a5-8aee-c6f75e589f95,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*3c3b573d-2db2-4289-bd64-3d9a860d1fe3,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-workflowwbd6t/series-workflowwbd6t-build-action-3115757198/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-workflowwbd6t/series-workflowwbd6t-build-action-2590026707/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-31 21:17:38 +0000 UTC FinishedAt: 2026-07-31 21:18:31 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-31 21:17:38 +0000 UTC FinishedAt: 2026-07-31 21:18:03 +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":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"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-workflowwbd6t/series-workflowwbd6t-convert-artifact-3870724952/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-31 21:17:38 +0000 UTC FinishedAt: 2026-07-31 21:17:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-31 21:17:38 +0000 UTC FinishedAt: 2026-07-31 21:17:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-31 21:17:38 +0000 UTC FinishedAt: 2026-07-31 21:17:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-31 21:18:31 +0000 UTC FinishedAt: 2026-08-01 00:21:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowwbd6t[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["sctp_getsockopt_local_auth_chunks","sctp_getsockopt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"2195424c3da2ef1829a63b807e3a900a90e57d85","config_name":"upstream-apparmor-kasan.config","enable_configs":["IP_SCTP"],"series_id":"46a86a2a-b251-400c-9d85-1be32407c180","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-31 21:18:31 +0000 UTC FinishedAt: 2026-08-01 00:20:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*39b848f5-8f62-48a5-8aee-c6f75e589f95,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*3c3b573d-2db2-4289-bd64-3d9a860d1fe3,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-workflowwbd6t/series-workflowwbd6t-build-action-3115757198/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-workflowwbd6t/series-workflowwbd6t-build-action-2590026707/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-workflowwbd6t/series-workflowwbd6t-convert-artifact-3870724952/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,}