From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 2856B3B5 for ; Mon, 27 Mar 2017 23:16:18 +0200 (CEST) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP; 27 Mar 2017 14:16:17 -0700 Message-Id: Date: 27 Mar 2017 14:16:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,233,1486454400"; d="scan'208";a="1127768144" Received: from unknown (HELO localhost.localdomain) ([10.240.176.250]) by fmsmga001.fm.intel.com with ESMTP; 27 Mar 2017 14:16:14 -0700 Content-Type: multipart/alternative; boundary="===============0917624861079823477==" MIME-Version: 1.0 From: sys_stv@intel.com To: test-report@dpdk.org CC: beilei.xing@intel.com Subject: [dpdk-test-report] |FAILURE| pw22422 [PATCH v5 2/5] app/testpmd: add command for loading a profile X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Mar 2017 21:16:21 -0000 --===============0917624861079823477== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogSW50ZWwtY29tcGlsYXRpb24KVGVzdC1TdGF0dXM6IEZBSUxVUkUKCmh0dHA6 Ly9kcGRrLm9yZy9wYXRjaC8yMjQyMgoKX0NvbXBpbGF0aW9uIGlzc3Vlc18KClN1Ym1pdHRlcjog QmVpbGVpIFhpbmcgPGJlaWxlaS54aW5nQGludGVsLmNvbT4KRGF0ZTogTW9uLCAyNyBNYXIgMjAx NyAxNDoxNzo1MiArMDgwMApEUERLIGdpdCBiYXNlbGluZTogUmVwbzpkcGRrLCBCcmFuY2g6bWFz dGVyLCBDb21taXRJRDo1YjI5NzZjNzE4ZTA3MTdmNWUxYjM5YjUwYWM3MWZiMmNlODBlNDdjCgpQ YXRjaDIyNDIxLTIyNDIyIC0tPiBjb21waWxlIGVycm9yCkJ1aWxkIFN1bW1hcnk6IDE4IEJ1aWxk cyBEb25lLCAwIFN1Y2Nlc3NmdWwsIDE4IEZhaWx1cmVzCgpUZXN0IGVudmlyb25tZW50IGFuZCBj b25maWd1cmF0aW9uIGFzIGJlbG93OgpPUzogUkhFTDcuMl82NAogICAgS2VybmVsIFZlcnNpb246 My4xMC4wLTUxNC4xMC4yLmVsNy54ODZfNjQKICAgIENQVSBpbmZvOkludGVsKFIpIFhlb24oUikg Q1BVIEU1LTI2OTkgdjQgQCAyLjIwR0h6CiAgICBHQ0MgVmVyc2lvbjpnY2MgKEdDQykgNC44LjUg MjAxNTA2MjMgKFJlZCBIYXQgNC44LjUtNCkKICAgIENsYW5nIFZlcnNpb246My40LjIKICAgIGk2 ODYtbmF0aXZlLWxpbnV4YXBwLWdjYwogICAgeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2MKICAg IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjLXNoYXJlZApPUzogRnJlZUJTRDEwLjNfNjQKICAg IEtlcm5lbCBWZXJzaW9uOjEwLjMtUkVMRUFTRQogICAgQ1BVIGluZm86IEludGVsKFIpIFhlb24o UikgQ1BVIEU1LTI2OTkgdjQgQCAyLjIwR0h6ICgyMTk0Ljk3LU1IeiBLOC1jbGFzcyBDUFUpCiAg ICBHQ0MgVmVyc2lvbjpnY2MgKEZyZWVCU0QgUG9ydHMgQ29sbGVjdGlvbikgNC44LjUKICAgIENs YW5nIFZlcnNpb246My40LjEKICAgIHg4Nl82NC1uYXRpdmUtYnNkYXBwLWNsYW5nCiAgICB4ODZf NjQtbmF0aXZlLWJzZGFwcC1nY2MKT1M6IEZDMjRfNjQKICAgIEtlcm5lbCBWZXJzaW9uOjQuOS4x My0xMDAuZmMyNC54ODZfNjQKICAgIENQVSBpbmZvOkludGVsKFIpIFhlb24oUikgQ1BVIEU1LTI2 OTkgdjMgQCAyLjMwR0h6CiAgICBHQ0MgVmVyc2lvbjpnY2MgKEdDQykgNi4yLjEgMjAxNjA5MTYg KFJlZCBIYXQgNi4yLjEtMikKICAgIENsYW5nIFZlcnNpb246My44LjAKICAgIHg4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjLWRlYnVnCiAgICBpNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MKICAgIHg4 Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjCiAgICB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1z aGFyZWQKICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcKT1M6IFVCMTYwNF82NAogICAg S2VybmVsIFZlcnNpb246NC40LjAtNjQtZ2VuZXJpYwogICAgQ1BVIGluZm86SW50ZWwoUikgWGVv bihSKSBDUFUgRTUtMjY5OSB2MyBAIDIuMzBHSHoKICAgIEdDQyBWZXJzaW9uOmdjYyAoVWJ1bnR1 IDUuNC4wLTZ1YnVudHUxfjE2LjA0LjQpIDUuNC4wIDIwMTYwNjA5CiAgICBDbGFuZyBWZXJzaW9u OjMuOC4wCiAgICBpNjg2LW5hdGl2ZS1saW51eGFwcC1nY2MKICAgIHg4Nl82NC1uYXRpdmUtbGlu dXhhcHAtZ2NjCiAgICB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1zaGFyZWQKICAgIHg4Nl82 NC1uYXRpdmUtbGludXhhcHAtY2xhbmcKT1M6IENlbnRPUzdfNjQKICAgIEtlcm5lbCBWZXJzaW9u OjMuMTAuMC01MTQuMTAuMi5lbDcueDg2XzY0CiAgICBDUFUgaW5mbzpJbnRlbChSKSBYZW9uKFIp IENQVSBFNS0yNjk5IHYzIEAgMi4zMEdIegogICAgR0NDIFZlcnNpb246Z2NjIChHQ0MpIDQuOC41 IDIwMTUwNjIzIChSZWQgSGF0IDQuOC41LTQpCiAgICBDbGFuZyBWZXJzaW9uOjMuNC4yCiAgICBp Njg2LW5hdGl2ZS1saW51eGFwcC1nY2MKICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcK ICAgIHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjLXNoYXJlZAogICAgeDg2XzY0LW5hdGl2ZS1s aW51eGFwcC1nY2MKCkZhaWxlZCBCdWlsZCAjMToKT1M6IFJIRUw3LjJfNjQKVGFyZ2V0OiBpNjg2 LW5hdGl2ZS1saW51eGFwcC1nY2MKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIxOToxMTogZXJyb3I6IOKAmHN0cnVjdCBpNDBl X3BwcF92ZXJzaW9u4oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0K ICAgICAgICAgICBib29sIGFkZCkKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMTk6MTE6IGVycm9yOiBp dHMgc2NvcGUgaXMgb25seSB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24sIHdoaWNoIGlz IHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50IFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDi gJhpNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19zZWPigJk6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjU6NTogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnRibF9zaXpl ID0gMTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMjY6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPmRhdGFfZW5kID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjY6MjU6IGVycm9yOiBpbnZh bGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+ZGF0YV9lbmQgPSBzaXpl b2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI3OjEwOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDi gJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5m b+KAmQogICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIyODo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjI4OjIyOiBlcnJvcjog4oCYU0VDVElPTl9UWVBFX0lORk/igJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgc2VjLT5zZWN0aW9uLnR5cGUgPSBTRUNUSU9OX1RZUEVf SU5GTzsKICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODoyMjogbm90ZTogZWFjaCB1 bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0 aW9uIGl0IGFwcGVhcnMgaW4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBzaXplb2Yoc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjMxOiBl cnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPnNlY3Rp b24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMwOjU6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5zZWN0aW9uLnNpemUg PSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6Mjk6 IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgc2VjLT5zZWN0aW9uLnNpemUg PSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMzI6MTQ6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgICAgICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCk7CiAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjMzOjc6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlCiAgcGluZm8tPnRyYWNrX2lkID0gdHJhY2tfaWQ7CiAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMzQ6MTQ6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIzNDoyODogZXJyb3I6IOKAmEk0MEVfUFBQX05BTUVfU0laReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBtZW1jcHkocGluZm8tPm5h bWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzU6MTU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVj dCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNTo0MjogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogIG1lbWNweSgmcGluZm8tPnZlcnNpb24s IHZlcnNpb24sIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6ODogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgcGluZm8tPm9wID0gSTQwRV9Q UFBfQUREX1RSQUNLSUQ7CiAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM3OjE1OiBlcnJvcjog4oCYSTQwRV9Q UFBfQUREX1RSQUNLSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMzk6ODogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjM5OjE1OiBlcnJvcjog4oCYSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUTigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JF TU9WRV9UUkFDS0lEOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVf YWRkX3JtX3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1MjoxMDogZXJyb3I6IGRlcmVmZXJlbmNp bmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQp KS0+dHJhY2tfaWQ7CiAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTQ6MjogZXJyb3I6IGltcGxpY2l0IGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfd3JpdGVfcHBw4oCZIFstV2Vycm9yPWlt cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVfcHBw KGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTQ6MjogZXJyb3I6 IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV93cml0ZV9wcHDigJkgWy1X ZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTQ6NDk6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAo aHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2NoZWNr X3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI4NzoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRp b24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9aW1wbGlj aXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcs ICh2b2lkICopYnVmZiwKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyODc6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVj bGFyYXRpb24gb2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9bmVzdGVkLWV4 dGVybnNdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyOTc6MTY6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNp emVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9u X2hlYWRlcuKAmQogICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hl YWRlcikpOwogICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzAyOjE1OiBlcnJvcjogaW52YWxpZCBh cHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBp NDBlX3BwcF92ZXJzaW9u4oCZCiAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u KSkgJiYKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA0Ojg6IGVycm9yOiDigJhJNDBFX1BQUF9O QU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAg ICAgSTQwRV9QUFBfTkFNRV9TSVpFKSkgewogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCY cnRlX3BtZF9pNDBlX3Byb2Nlc3NfcHBwX3BhY2thZ2XigJk6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMzk6MjE6IGVycm9y OiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg 4oCYc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXLigJkKICBpZiAoc2l6ZSA8IChzaXplb2Yoc3Ry dWN0IGk0MGVfcGFja2FnZV9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzQwOjE0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnTigJkKICAgICAgIHNp emVvZihzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50KSArCiAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMzUzOjEzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIGlmIChwa2dfaGRyLT5zZWdtZW50X2NvdW50IDwgMikgewogICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMzU5OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBl X2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRl Y2xhcmF0aW9uXQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNr YWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTk6MjogZXJyb3I6IG5lc3Rl ZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKA mSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1OTo1MDogZXJyb3I6IOKAmFNFR01F TlRfVFlQRV9NRVRBREFUQeKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdN RU5UX1RZUEVfTUVUQURBVEEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMzY1OjYzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZQogIHRyYWNrX2lkID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9z ZWdtZW50ICopbWV0YWRhdGFfc2VnX2hkciktPnRyYWNrX2lkOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjg6 NDk6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfSTQwReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICBwcm9maWxlX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9p bl9wYWNrYWdlKFNFR01FTlRfVFlQRV9JNDBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc2OjE4OiBlcnJvcjogaW52YWxpZCBhcHBs aWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBl X3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzc6 MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgICAgICAgICAgc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyksCiAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4 Nzo1NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAg ICAgICAoKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudCAqKXByb2ZpbGVfc2VnX2hkciktPm5h bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMzg4OjU3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogICAgICAgICYoKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudCAqKXByb2Zp bGVfc2VnX2hkciktPnZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM5ODozOiBlcnJvcjogaW1wbGljaXQgZGVj bGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPWlt cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogICBzdGF0dXMgPSBpNDBlX3dyaXRlX3Byb2Zp bGUoaHcsCiAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM5ODozOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlv biBvZiDigJhpNDBlX3dyaXRlX3Byb2ZpbGXigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCmNj MTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCgoKRmFpbGVkIEJ1aWxkICMy OgpPUzogUkhFTDcuMl82NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMTk6MTE6IGVycm9yOiDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmSBkZWNsYXJlZCBp bnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAgICAgICAgICAgYm9vbCBhZGQpCiAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjE5OjExOiBlcnJvcjogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZp bml0aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2Fu dCBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2lu Zm9fc2Vj4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI1OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgc2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI2OjU6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5k YXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjI2OjI1OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXpl b2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXLigJkKICBzZWMtPmRhdGFfZW5kID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2Vj dGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNzoxMDog ZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUg dHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBl X3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6NTogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24udHlwZSA9IFNF Q1RJT05fVFlQRV9JTkZPOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODoyMjogZXJyb3I6IOKAmFNFQ1RJT05f VFlQRV9JTkZP4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNl Yy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMjg6MjI6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJl cG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy Mjk6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBz ZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXIpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOTozMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24g b2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIzMDo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIHNlYy0+c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mbyk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMwOjI5OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlv biBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mb+KAmQogIHNlYy0+c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mbyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMyOjE0OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgICAgICAg IHNlYy0+c2VjdGlvbi5vZmZzZXQpOwogICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzo3OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHBpbmZvLT50cmFj a19pZCA9IHRyYWNrX2lkOwogICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM0OjE0OiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIG1lbWNweShwaW5mby0+bmFtZSwgbmFt ZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzQ6Mjg6IGVy cm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJ WkUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1OjE1OiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIG1lbWNweSgmcGluZm8t PnZlcnNpb24sIHZlcnNpb24sIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMzU6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9m IOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNp b27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0 MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjM3Ojg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIzNzoxNTogZXJyb3I6IOKAmEk0MEVfUFBQX0FERF9UUkFDS0lE4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9B RERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM5Ojg6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQ X1JFTU9WRV9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzOToxNTogZXJyb3I6IOKAmEk0MEVf UFBQX1JFTU9WRV9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2FkZF9ybV9wcm9maWxlX2luZm/igJk6Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyNTI6MTA6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlCiAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KSktPnRyYWNrX2lkOwogICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMjU0OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhp NDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlv bl0KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0 YV9lbmQsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjU0OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9u IG9mIOKAmGk0MGVfYXFfd3JpdGVfcHBw4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjU0OjQ5OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVfcHBwKGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRh X2VuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9jaGVja19wcm9maWxlX2luZm/igJk6Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy ODc6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFf Z2V0X3BwcF9saXN04oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQog IHJldCA9IGk0MGVfYXFfZ2V0X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx Mjg3OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfZ2V0 X3BwcF9saXN04oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjk3OjE2OiBlcnJv cjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBl IOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTMwMjoxNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZ IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAgICAg IHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTMwNDo4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgICAgIEk0MEVfUFBQX05BTUVfU0laRSkpIHsK ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmHJ0ZV9wbWRfaTQwZV9wcm9jZXNzX3BwcF9w YWNrYWdl4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMzM5OjIxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDi gJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVh ZGVy4oCZCiAgaWYgKHNpemUgPCAoc2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVyKSAr CiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MDoxNDogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9tZXRhZGF0YV9zZWdtZW504oCZCiAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFf c2VnbWVudCkgKwogICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1MzoxMzogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBpZiAocGtnX2hkci0+c2VnbWVudF9j b3VudCA8IDIpIHsKICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1OToyOiBlcnJvcjogaW1wbGljaXQg ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKA mSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBtZXRhZGF0YV9zZWdf aGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEs CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMzU5OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKA mGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNd Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEzNTk6NTA6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfTUVUQURBVEHigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0 MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2NTo2 MzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB0cmFj a19pZCA9ICgoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCAqKW1ldGFkYXRhX3NlZ19oZHIp LT50cmFja19pZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzY4OjQ5OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBF X0k0MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmls ZV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQw RSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTM3NjoxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZ CiAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsK ICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc3OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3By b2ZpbGVfaW5mb+KAmQogICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8p LAogICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzODc6NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4ODo1NzogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgICAmKChzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT52ZXJzaW9uLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEzOTg6MzogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0 MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlv bl0KICAgc3RhdHVzID0gaTQwZV93cml0ZV9wcm9maWxlKGh3LAogICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTg6Mzog ZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl 4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVh dGVkIGFzIGVycm9ycwoKCkZhaWxlZCBCdWlsZCAjMzoKT1M6IFJIRUw3LjJfNjQKVGFyZ2V0OiB4 ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1zaGFyZWQKCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMTk6MTE6IGVycm9yOiDi gJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxp c3QgWy1XZXJyb3JdCiAgICAgICAgICAgYm9vbCBhZGQpCiAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjE5 OjExOiBlcnJvcjogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0 aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCBbLVdlcnJvcl0KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzog SW4gZnVuY3Rpb24g4oCYaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2Vj4oCZOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjI1OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAg c2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI2OjU6IGVycm9yOiBkZXJlZmVyZW5j aW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI2OjI1 OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0 ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPmRh dGFfZW5kID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNzoxMDogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wcm9maWxlX2luZm/igJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMjg6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwog ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIyODoyMjogZXJyb3I6IOKAmFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNlYy0+c2VjdGlvbi50eXBlID0g U0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6MjI6 IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBm b3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6NTogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24ub2Zmc2V0 ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIyOTozMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZ CiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDo1 OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+ c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMjMwOjI5OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkg dG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogIHNlYy0+ c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMyOjE0OiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgICAgICAgIHNlYy0+c2VjdGlvbi5vZmZz ZXQpOwogICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzo3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHBpbmZvLT50cmFja19pZCA9IHRyYWNrX2lkOwog ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjM0OjE0OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogIG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQwRV9QUFBfTkFNRV9T SVpFKTsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzQ6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9O QU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVt Y3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1OjE1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogIG1lbWNweSgmcGluZm8tPnZlcnNpb24sIHZlcnNpb24s IHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMzU6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBp bmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICBtZW1jcHkoJnBp bmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM3Ojg6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZv LT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNTogZXJy b3I6IOKAmEk0MEVfUFBQX0FERF9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjM5Ojg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwog ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIzOToxNTogZXJyb3I6IOKAmEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lE 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3Ag PSBJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5j dGlvbiDigJhpNDBlX2FkZF9ybV9wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTI6MTA6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAgICBzZWMtPnNl Y3Rpb24ub2Zmc2V0KSktPnRyYWNrX2lkOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU0OjI6IGVycm9y OiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX3dyaXRlX3BwcOKA mSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBzdGF0dXMgPSBpNDBl X2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjU0OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfd3Jp dGVfcHBw4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU0OjQ5OiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHN0YXR1cyA9IGk0MGVf YXFfd3JpdGVfcHBwKGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g 4oCYaTQwZV9jaGVja19wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyODc6MjogZXJyb3I6IGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFst V2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJldCA9IGk0MGVfYXFfZ2V0 X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjg3OjI6IGVycm9yOiBuZXN0 ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFstV2Vy cm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjk3OjE2OiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwMjoxNTogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1Y3QgaTQw ZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNDo4OiBlcnJvcjog 4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgICAgIEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IElu IGZ1bmN0aW9uIOKAmHJ0ZV9wbWRfaTQwZV9wcm9jZXNzX3BwcF9wYWNrYWdl4oCZOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzM5OjIxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVy4oCZCiAgaWYgKHNpemUg PCAoc2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVyKSArCiAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTM0MDoxNDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6 ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50 4oCZCiAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkgKwogICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTM1MzoxMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICBpZiAocGtnX2hkci0+c2VnbWVudF9jb3VudCA8IDIpIHsKICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTM1OToyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVu Y3Rpb24g4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1pbXBsaWNp dC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3Nl Z21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzU5OjI6 IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfZmluZF9zZWdtZW50 X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTk6NTA6IGVy cm9yOiDigJhTRUdNRU5UX1RZUEVfTUVUQURBVEHigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2lu X3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2NTo2MzogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICB0cmFja19pZCA9ICgoc3RydWN0IGk0 MGVfbWV0YWRhdGFfc2VnbWVudCAqKW1ldGFkYXRhX3NlZ19oZHIpLT50cmFja19pZDsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMzY4OjQ5OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0MEXigJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0gaTQwZV9m aW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3NjoxODogZXJyb3I6 IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDi gJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgICAgc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMzc3OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bi gJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogICAg ICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEzODc6NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxl X3NlZ19oZHIpLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4ODo1NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgICAmKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3Nl Z21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT52ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTg6MzogZXJyb3I6 IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKA mSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgc3RhdHVzID0gaTQw ZV93cml0ZV9wcm9maWxlKGh3LAogICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTg6MzogZXJyb3I6IG5lc3RlZCBleHRl cm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3Rl ZC1leHRlcm5zXQpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwoKCkZh aWxlZCBCdWlsZCAjNDoKT1M6IEZyZWVCU0QxMC4zXzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1i c2RhcHAtY2xhbmcKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTIxNzo1MTogZXJyb3I6IGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3Qg aTQwZV9wcHBfdmVyc2lvbicgd2lsbCBub3QgYmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZnVu Y3Rpb24gWy1XZXJyb3IsLVd2aXNpYmlsaXR5XQppNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19z ZWMoY2hhciAqbmFtZSwgc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24gKnZlcnNpb24sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI1OjU6 IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnRibF9zaXplID0gMTsKICAgICAgICB+fn5e Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEyMjE6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjY6NTogZXJy b3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3Nl Y3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5OiBub3Rl OiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5V TEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNjoxODogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2YgJ3NpemVvZicgdG8gYW4gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5OiBu b3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9 IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNzozOiBlcnJvcjogaW52YWxpZCBhcHBs aWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3By b2ZpbGVfaW5mbycKICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2lu Zm8pOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIyMjo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI4OjU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2Yg dHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnNl Y3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5 OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNl YyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODoyMjogZXJyb3I6IHVzZSBvZiB1 bmRlY2xhcmVkIGlkZW50aWZpZXIgJ1NFQ1RJT05fVFlQRV9JTkZPJwogICAgICAgIHNlYy0+c2Vj dGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMjk6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi5v ZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAg ICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjIxOjk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5 OjI0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBs ZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2Vj LT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjE6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJh dGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzA6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi5z aXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgfn5+XgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjIxOjk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hl YWRlciAqc2VjID0gTlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMwOjIyOiBlcnJvcjog aW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0 cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVv ZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg XiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjo5OiBub3RlOiBmb3J3 YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3Ry dWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMy OjE0OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjE6OTogbm90ZTogZm9yd2FyZCBkZWNs YXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMzM6NzogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBl ICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgcGluZm8tPnRyYWNrX2lkID0gdHJh Y2tfaWQ7CiAgICAgICAgfn5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjI6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJh dGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIHN0cnVjdCBpNDBlX3By b2ZpbGVfaW5mbyAqcGluZm87CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNDoxNDogZXJyb3I6 IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8n CiAgICAgICAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwog ICAgICAgICAgICAgICB+fn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0 aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJv ZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1OjE1OiBlcnJvcjog aW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycK ICAgICAgICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0 MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjk6IG5v dGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAg ICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMzc6ODogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3Qg aTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgICAgICAgICBwaW5mby0+b3AgPSBJNDBFX1BQUF9B RERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjk6IG5vdGU6IGZv cndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBz dHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy Mzc6MTU6IGVycm9yOiB1c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdJNDBFX1BQUF9BRERf VFJBQ0tJRCcKICAgICAgICAgICAgICAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lE OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM5Ojg6IGVycm9yOiBpbmNv bXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAg ICAgICAgICAgICAgcGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAg ICAgICAgICB+fn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9m ICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9p bmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM5OjE1OiBlcnJvcjogdXNlIG9m IHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQnCiAgICAgICAg ICAgICAgICBwaW5mby0+b3AgPSBJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KZmF0YWwgZXJyb3I6IHRvbyBtYW55IGVycm9ycyBlbWl0dGVkLCBz dG9wcGluZyBub3cgWy1mZXJyb3ItbGltaXQ9XQoyMCBlcnJvcnMgZ2VuZXJhdGVkLgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEz ODogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGVfZXRoZGV2Lm8nIGZhaWxlZAovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQg J2k0MGUnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRp ci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVpbGQubWs6ODE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdk cml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGty b290Lm1rOjEyODogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJn ZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21r L3J0ZS5zZGtyb290Lm1rOjEwMzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoK CkZhaWxlZCBCdWlsZCAjNToKT1M6IEZyZWVCU0QxMC4zXzY0ClRhcmdldDogeDg2XzY0LW5hdGl2 ZS1ic2RhcHAtZ2NjCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMTk6MTE6IGVycm9yOiAnc3RydWN0IGk0MGVfcHBwX3ZlcnNp b24nIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICAgICBi b29sIGFkZCkKICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMTk6MTE6IGVycm9yOiBpdHMgc2NvcGUgaXMg b25seSB0aGlzIGRlZmluaXRpb24gb3IgZGVjbGFyYXRpb24sIHdoaWNoIGlzIHByb2JhYmx5IG5v dCB3aGF0IHlvdSB3YW50IFstV2Vycm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiAnaTQwZV9nZW5lcmF0 ZV9wcm9maWxlX2luZm9fc2VjJzoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+dGJsX3NpemUgPSAxOwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIyNjo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hl YWRlcikgKwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNjoyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24g b2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyJwogIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9z ZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI3OjEw OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBpbmNvbXBsZXRlIHR5 cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mbyk7CiAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcg cG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05f VFlQRV9JTkZPOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODoyMjogZXJyb3I6ICdTRUNUSU9OX1RZUEVfSU5G TycgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgc2VjLT5zZWN0aW9u LnR5cGUgPSBTRUNUSU9OX1RZUEVfSU5GTzsKICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIyODoyMjogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25s eSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOTo1OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+c2VjdGlv bi5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjI5OjMxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9m JyB0byBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIn CiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDo1 OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+ c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMjMwOjI5OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBp bmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICBzZWMtPnNlY3Rpb24u c2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMjoxNDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KTsKICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMzM6NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIzNDoxNDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUKICBtZW1jcHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjM0OjI4OiBlcnJvcjogJ0k0MEVfUFBQX05BTUVfU0laRScg dW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5u YW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjM1OjE1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIG1lbWNweSgmcGluZm8tPnZlcnNpb24sIHZlcnNpb24sIHNpemVvZihzdHJ1 Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzU6NDI6IGVy cm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAn c3RydWN0IGk0MGVfcHBwX3ZlcnNpb24nCiAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lv biwgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzo4OiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERf VFJBQ0tJRDsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6MTU6IGVycm9yOiAnSTQwRV9QUFBfQUREX1RS QUNLSUQnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+ b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM5Ojg6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZv LT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzOToxNTog ZXJyb3I6ICdJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRCcgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwog ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uICdpNDBlX2FkZF9ybV9wcm9maWxlX2lu Zm8nOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjUyOjEwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsKICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTI1NDoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rp b24gJ2k0MGVfYXFfd3JpdGVfcHBwJyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJh dGlvbl0KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ ZGF0YV9lbmQsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjU0OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0 aW9uIG9mICdpNDBlX2FxX3dyaXRlX3BwcCcgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyNTQ6NDk6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFf ZW5kLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOiBJbiBmdW5jdGlvbiAnaTQwZV9jaGVja19wcm9maWxlX2luZm8nOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjg3OjI6 IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiAnaTQwZV9hcV9nZXRfcHBw X2xpc3QnIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJldCA9IGk0 MGVfYXFfZ2V0X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjg3OjI6IGVy cm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mICdpNDBlX2FxX2dldF9wcHBfbGlzdCcg Wy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyOTc6MTY6IGVycm9yOiBpbnZhbGlkIGFw cGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVf c2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwMjoxNTogZXJyb3I6 IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBlICdzdHJ1 Y3QgaTQwZV9wcHBfdmVyc2lvbicKICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNp b24pKSAmJgogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMDQ6ODogZXJyb3I6ICdJNDBFX1BQUF9O QU1FX1NJWkUnIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgICAg IEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uICdydGVf cG1kX2k0MGVfcHJvY2Vzc19wcHBfcGFja2FnZSc6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMzk6MjE6IGVycm9yOiBpbnZh bGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGk0 MGVfcGFja2FnZV9oZWFkZXInCiAgaWYgKHNpemUgPCAoc2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2th Z2VfaGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MDoxNDogZXJyb3I6 IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBlICdzdHJ1 Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50JwogICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX21ldGFk YXRhX3NlZ21lbnQpICsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTM6MTM6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgaWYgKHBrZ19oZHItPnNlZ21l bnRfY291bnQgPCAyKSB7CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTk6MjogZXJyb3I6IGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uICdpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl JyBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBtZXRhZGF0YV9zZWdf aGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEs CiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMzU5OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mICdp NDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlJyBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTM1OTo1MDogZXJyb3I6ICdTRUdNRU5UX1RZUEVfTUVUQURBVEEnIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRf c2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjU6NjM6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdHJhY2tfaWQgPSAo KHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQgKiltZXRhZGF0YV9zZWdfaGRyKS0+dHJhY2tf aWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM2ODo0OTogZXJyb3I6ICdTRUdNRU5UX1RZUEVfSTQwRScgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0g aTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3NjoxODog ZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gaW5jb21wbGV0ZSB0eXBl ICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgICAgIHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTM3NzoxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8g aW5jb21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgICAgc2l6 ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyksCiAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTM4Nzo1NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICAgICAgICAoKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudCAqKXByb2ZpbGVfc2VnX2hkcikt Pm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMzg4OjU3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogICAgICAgICYoKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudCAqKXBy b2ZpbGVfc2VnX2hkciktPnZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM5ODozOiBlcnJvcjogaW1wbGljaXQg ZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gJ2k0MGVfd3JpdGVfcHJvZmlsZScgWy1XZXJyb3I9aW1w bGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmls ZShodywKICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMzk4OjM6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9u IG9mICdpNDBlX3dyaXRlX3Byb2ZpbGUnIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQpjYzE6IGFs bCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZvciB0 YXJnZXQgJ2k0MGVfZXRoZGV2Lm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGUnIGZhaWxlZAov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBl IGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9ydGUuc2RrYnVpbGQubWs6ODE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyODogcmVj aXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxs JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1r OjEwMzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAj NjoKT1M6IEZDMjRfNjQKVGFyZ2V0OiB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYy1kZWJ1ZwoK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIxNzo1MTogZXJyb3I6IOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZIGRlY2xh cmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2Yg dGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uIFstV2Vycm9yXQogaTQwZV9nZW5lcmF0ZV9w cm9maWxlX2luZm9fc2VjKGNoYXIgKm5hbWUsIHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uICp2ZXJz aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfZ2VuZXJhdGVfcHJvZmls ZV9pbmZvX3NlY+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy 4oCZCiAgc2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNjoyNTogZXJyb3I6IGlu dmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNp emVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNzoxMDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRp b24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm/igJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAg ICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIyODoyMjogZXJyb3I6IOKAmFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNlYy0+c2VjdGlvbi50eXBl ID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjI4OjIyOiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyBy ZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjI5OjMxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBz ZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6 Mjk6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgc2VjLT5zZWN0aW9uLnNp emUgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzo3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBw aW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzQ6Mjg6IGVycm9y OiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy MzU6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICBtZW1jcHkoJnBpbmZv LT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6 MTU6IGVycm9yOiDigJhJNDBFX1BQUF9BRERfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7 CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzk6MTU6IGVycm9y OiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4g dGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAg ICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKA mGk0MGVfYWRkX3JtX3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1MjoxMDogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19p ZDsKICAgICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTQ6MTE6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1m dW5jdGlvbi1kZWNsYXJhdGlvbl0KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZv aWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTI1NDoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2Fx X3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBzdGF0dXMgPSBpNDBlX2Fx X3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgXn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 IEluIGZ1bmN0aW9uIOKAmGk0MGVfY2hlY2tfcHJvZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjg3Ojg6 IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX2dldF9w cHBfbGlzdOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICByZXQg PSBpNDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZvaWQgKilidWZmLAogICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyODc6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRp b24gb2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNd CiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcsICh2b2lkICopYnVmZiwKICBefn4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTI5NzoxNjogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZ CiAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSk7CiAg ICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwMjoxNTogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w cHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpICYm CiAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA0Ojg6IGVycm9yOiDigJhJNDBFX1BQUF9O QU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAg ICAgSTQwRV9QUFBfTkFNRV9TSVpFKSkgewogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OiBJbiBmdW5jdGlvbiDigJhydGVfcG1kX2k0MGVfcHJvY2Vzc19wcHBfcGFja2FnZeKAmToKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTMzOToyMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChz aXplIDwgKHNpemVvZihzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcikgKwogICAgICAgICAgICAg ICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MDoxNDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24g b2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0 YV9zZWdtZW504oCZCiAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkg KwogICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzUzOjEzOiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRl cuKAmQogIGlmIChwa2dfaGRyLT5zZWdtZW50X2NvdW50IDwgMikgewogICAgICAgICAgICAgXn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTM1OToyMTogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKA mGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rp b24tZGVjbGFyYXRpb25dCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2lu X3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTk6MjogZXJyb3I6IG5lc3RlZCBleHRl cm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdl cnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21l bnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgXn5+fn5+fn5+fn5+fn5+fgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMzU5OjUwOiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX01FVEFEQVRB4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBl X2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTM2NTo2MzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudOKAmQogIHRyYWNrX2lk ID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50ICopbWV0YWRhdGFfc2VnX2hkciktPnRy YWNrX2lkOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzY4OjQ5OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0 MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9z ZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEzNzY6MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKA mHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0 aW9uX2hlYWRlcuKAmQogICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc3OjE4OiBlcnJv cjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBl IOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogICAgICAgICAgIHNpemVvZihzdHJ1Y3Qg aTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4Nzo1 NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWdtZW504oCZCiAgICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1lLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTg6MTI6IGVycm9y OiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX3dyaXRlX3Byb2ZpbGXi gJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0 MGVfd3JpdGVfcHJvZmlsZShodywKICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEzOTg6MzogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV93cml0 ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQogICBzdGF0dXMgPSBpNDBlX3dy aXRlX3Byb2ZpbGUoaHcsCiAgIF5+fn5+fgpjYzE6IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVk IGFzIGVycm9ycwovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvaW50ZXJuYWwvcnRl LmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGVfZXRoZGV2Lm8nIGZh aWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTog cmVjaXBlIGZvciB0YXJnZXQgJ2k0MGUnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ25ldCcgZmFpbGVk Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RrYnVpbGQubWs6ODE6IHJl Y2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyODogcmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFp bGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4 NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEwMzogcmVjaXBlIGZvciB0YXJnZXQg J2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAjNzoKT1M6IEZDMjRfNjQKVGFyZ2V0OiBp Njg2LW5hdGl2ZS1saW51eGFwcC1nY2MKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIxNzo1MTogZXJyb3I6IOKAmHN0cnVjdCBp NDBlX3BwcF92ZXJzaW9u4oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxsIG5v dCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uIFst V2Vycm9yXQogaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2VjKGNoYXIgKm5hbWUsIHN0cnVj dCBpNDBlX3BwcF92ZXJzaW9uICp2ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9u IOKAmGk0MGVfZ2VuZXJhdGVfcHJvZmlsZV9pbmZvX3NlY+KAmToKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo1OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAgXn4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIyNjoyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZ IHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy 4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNzoxMDog ZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUg dHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBl X3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODoyMjogZXJyb3I6IOKA mFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjIyOiBub3RlOiBlYWNoIHVu ZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rp b24gaXQgYXBwZWFycyBpbgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjMxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlv biBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6Mjk6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9m IOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9p bmZv4oCZCiAgc2VjLT5zZWN0aW9uLnNpemUgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9p bmZvKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzo3OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3Qg aTQwZV9wcm9maWxlX2luZm/igJkKICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAg IF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzQ6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBu YW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzU6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9u IG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3Zl cnNpb27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0 IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9BRERfVFJBQ0tJ ROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9w ID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzk6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQw RV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfYWRkX3JtX3Byb2ZpbGVfaW5mb+KAmToKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTI1MjoxMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgc2VjLT5z ZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsKICAgICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTQ6MTE6IGVy cm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX3dyaXRlX3Bw cOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBzdGF0dXMgPSBp NDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NDoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBk ZWNsYXJhdGlvbiBvZiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0 ZXJuc10KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ ZGF0YV9lbmQsCiAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfY2hlY2tfcHJvZmls ZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjg3Ojg6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiDigJhpNDBlX2FxX2dldF9wcHBfbGlzdOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5j dGlvbi1kZWNsYXJhdGlvbl0KICByZXQgPSBpNDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZvaWQg KilidWZmLAogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyODc6MjogZXJyb3I6 IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkg Wy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcs ICh2b2lkICopYnVmZiwKICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI5NzoxNjogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w cm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVyKSk7CiAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwMjox NTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxl dGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1 Y3QgaTQwZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA0 Ojg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNl IGluIHRoaXMgZnVuY3Rpb24pCiAgICAgICAgSTQwRV9QUFBfTkFNRV9TSVpFKSkgewogICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhydGVfcG1kX2k0MGVfcHJv Y2Vzc19wcHBfcGFja2FnZeKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMzOToyMTogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w YWNrYWdlX2hlYWRlcuKAmQogIGlmIChzaXplIDwgKHNpemVvZihzdHJ1Y3QgaTQwZV9wYWNrYWdl X2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MDoxNDogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW504oCZCiAgICAgICBzaXplb2Yoc3RydWN0 IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkgKwogICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzUz OjEzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhz dHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChwa2dfaGRyLT5zZWdtZW50X2NvdW50 IDwgMikgewogICAgICAgICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1OToyMTogZXJyb3I6IGltcGxpY2l0IGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkg Wy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgbWV0YWRhdGFfc2VnX2hk ciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAog ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz NTk6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9maW5kX3Nl Z21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBtZXRhZGF0YV9z ZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURB VEEsCiAgXn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzU5OjUwOiBlcnJvcjog4oCYU0VHTUVOVF9U WVBFX01FVEFEQVRB4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog IG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRf VFlQRV9NRVRBREFUQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2NTo2MzogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfbWV0YWRh dGFfc2VnbWVudOKAmQogIHRyYWNrX2lkID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50 ICopbWV0YWRhdGFfc2VnX2hkciktPnRyYWNrX2lkOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzY4OjQ5OiBl cnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRo aXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFj a2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzY6MTg6IGVycm9yOiBp bnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCY c3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgICAgIHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgIF5+ fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMzc3OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXpl b2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQog ICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAg ICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM4Nzo1NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW504oCZCiAgICAg ICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEzOTg6MTI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biDigJhpNDBlX3dyaXRlX3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVj bGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTg6MzogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVj bGFyYXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3RlZC1leHRl cm5zXQogICBzdGF0dXMgPSBpNDBlX3dyaXRlX3Byb2ZpbGUoaHcsCiAgIF5+fn5+fgpjYzE6IGFs bCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZvciB0 YXJnZXQgJ2k0MGVfZXRoZGV2Lm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGUnIGZhaWxlZAov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBl IGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9ydGUuc2RrYnVpbGQubWs6ODE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyODogcmVj aXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0YWxs JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1r OjEwMzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWlsZCAj ODoKT1M6IEZDMjRfNjQKVGFyZ2V0OiB4ODZfNjQtbmF0aXZlLWxpbnV4YXBwLWdjYwovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjE3OjUxOiBlcnJvcjog4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkgZGVjbGFyZWQgaW5z aWRlIHBhcmFtZXRlciBsaXN0IHdpbGwgbm90IGJlIHZpc2libGUgb3V0c2lkZSBvZiB0aGlzIGRl ZmluaXRpb24gb3IgZGVjbGFyYXRpb24gWy1XZXJyb3JdCiBpNDBlX2dlbmVyYXRlX3Byb2ZpbGVf aW5mb19zZWMoY2hhciAqbmFtZSwgc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24gKnZlcnNpb24sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9f c2Vj4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjI1OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBz ZWMtPnRibF9zaXplID0gMTsKICAgICBefgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI2OjI1OiBlcnJvcjogaW52YWxpZCBh cHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBp NDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPmRhdGFfZW5kID0gc2l6ZW9mKHN0 cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI3OjEwOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDi gJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5m b+KAmQogICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgIF5+fn5+ fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMjI4OjIyOiBlcnJvcjog4oCYU0VDVElPTl9UWVBFX0lORk/igJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgc2VjLT5zZWN0aW9uLnR5cGUgPSBTRUNU SU9OX1RZUEVfSU5GTzsKICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMjg6MjI6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVk IG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6MzE6 IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+c2Vj dGlvbi5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDoyOTogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNp emVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjMzOjc6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogIHBpbmZvLT50 cmFja19pZCA9IHRyYWNrX2lkOwogICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNDoyODogZXJyb3I6IOKAmEk0 MEVfUFBQX05BTUVfU0laReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKICBtZW1jcHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNTo0Mjog ZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUg dHlwZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogIG1lbWNweSgmcGluZm8tPnZlcnNp b24sIHZlcnNpb24sIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNTogZXJy b3I6IOKAmEk0MEVfUFBQX0FERF9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzOToxNTogZXJyb3I6IOKAmEk0 MEVfUFBQX1JFTU9WRV9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9h ZGRfcm1fcHJvZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjUyOjEwOiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVy4oCZCiAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KSktPnRyYWNrX2lkOwogICAg ICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTI1NDoxMTogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1 bmN0aW9uIOKAmGk0MGVfYXFfd3JpdGVfcHBw4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9u LWRlY2xhcmF0aW9uXQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVfcHBwKGh3LCAodm9pZCAqKXNl Yywgc2VjLT5kYXRhX2VuZCwKICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU0 OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfd3JpdGVf cHBw4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVf cHBwKGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICBefn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVu Y3Rpb24g4oCYaTQwZV9jaGVja19wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyODc6ODogZXJyb3I6 IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN0 4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJldCA9IGk0MGVf YXFfZ2V0X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTI4NzoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDi gJhpNDBlX2FxX2dldF9wcHBfbGlzdOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICByZXQg PSBpNDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZvaWQgKilidWZmLAogIF5+fgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjk3 OjE2OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21w bGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAg ICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAg ICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMzAyOjE1OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBv ZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJz aW9u4oCZCiAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSkgJiYKICAgICAg ICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMDQ6ODogZXJyb3I6IOKAmEk0MEVfUFBQX05BTUVfU0la ReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICAgICBJNDBF X1BQUF9OQU1FX1NJWkUpKSB7CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1 bmN0aW9uIOKAmHJ0ZV9wbWRfaTQwZV9wcm9jZXNzX3BwcF9wYWNrYWdl4oCZOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzM5 OjIxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21w bGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVy4oCZCiAgaWYgKHNpemUgPCAo c2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAg IF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMzQwOjE0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhz aXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21l bnTigJkKICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50KSArCiAgICAg ICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTM6MTM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50 ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVy4oCZCiAg aWYgKHBrZ19oZHItPnNlZ21lbnRfY291bnQgPCAyKSB7CiAgICAgICAgICAgICBefgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzU5OjIxOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9m aW5kX3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNs YXJhdGlvbl0KICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2Fn ZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1OToyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNs YXJhdGlvbiBvZiDigJhpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZIFstV2Vycm9yPW5l c3RlZC1leHRlcm5zXQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9w YWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICBefn5+fn5+fn5+fn5+fn5+Ci9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz NTk6NTA6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfTUVUQURBVEHigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9z ZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMzY1OjYzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUg dHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW504oCZCiAgdHJhY2tfaWQgPSAoKHN0 cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQgKiltZXRhZGF0YV9zZWdfaGRyKS0+dHJhY2tfaWQ7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEzNjg6NDk6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfSTQwReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBwcm9maWxlX3NlZ19oZHIg PSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9JNDBFLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+ fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTM3NjoxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m 4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVy4oCZCiAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFk ZXIpICsKICAgICAgICAgICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzc6MTg6IGVycm9yOiBpbnZh bGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3Ry dWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3By b2ZpbGVfaW5mbyksCiAgICAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzg3OjU2OiBlcnJv cjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wcm9maWxlX3NlZ21lbnTigJkKICAgICAgICAoKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVu dCAqKXByb2ZpbGVfc2VnX2hkciktPm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM5ODoxMjogZXJyb3I6IGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdl cnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgc3RhdHVzID0gaTQwZV93cml0 ZV9wcm9maWxlKGh3LAogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM5ODoz OiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX3dyaXRlX3Byb2Zp bGXigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAgIHN0YXR1cyA9IGk0MGVfd3JpdGVfcHJv ZmlsZShodywKICAgXn5+fn5+CmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJy b3JzCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRlcm5hbC9ydGUuY29tcGls ZS1wcmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnaTQwZV9ldGhkZXYubycgZmFpbGVkCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYxOiByZWNpcGUg Zm9yIHRhcmdldCAnaTQwZScgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9t ay9ydGUuc3ViZGlyLm1rOjYxOiByZWNpcGUgZm9yIHRhcmdldCAnbmV0JyBmYWlsZWQKL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5tazo4MTogcmVjaXBlIGZv ciB0YXJnZXQgJ2RyaXZlcnMnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v bWsvcnRlLnNka3Jvb3QubWs6MTI4OiByZWNpcGUgZm9yIHRhcmdldCAnYWxsJyBmYWlsZWQKL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0YWxsLm1rOjg1OiByZWNp cGUgZm9yIHRhcmdldCAncHJlX2luc3RhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vbWsvcnRlLnNka3Jvb3QubWs6MTAzOiByZWNpcGUgZm9yIHRhcmdldCAnaW5zdGFs bCcgZmFpbGVkCgoKRmFpbGVkIEJ1aWxkICM5OgpPUzogRkMyNF82NApUYXJnZXQ6IHg4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjLXNoYXJlZAoKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIxNzo1MTogZXJyb3I6IOKAmHN0cnVj dCBpNDBlX3BwcF92ZXJzaW9u4oCZIGRlY2xhcmVkIGluc2lkZSBwYXJhbWV0ZXIgbGlzdCB3aWxs IG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9u IFstV2Vycm9yXQogaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2VjKGNoYXIgKm5hbWUsIHN0 cnVjdCBpNDBlX3BwcF92ZXJzaW9uICp2ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0 aW9uIOKAmGk0MGVfZ2VuZXJhdGVfcHJvZmlsZV9pbmZvX3NlY+KAmToKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo1OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT50Ymxfc2l6ZSA9IDE7CiAgICAg Xn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIyNjoyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m 4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVy4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNzox MDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxl dGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICAgc2l6ZW9mKHN0cnVjdCBp NDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODoyMjogZXJyb3I6 IOKAmFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjIyOiBub3RlOiBlYWNo IHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVu Y3Rpb24gaXQgYXBwZWFycyBpbgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjMxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0 cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6Mjk6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9u IG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmls ZV9pbmZv4oCZCiAgc2VjLT5zZWN0aW9uLnNpemUgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmls ZV9pbmZvKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzo3 OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAg ICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMzQ6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1l LCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzU6NDI6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0 aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBw X3ZlcnNpb27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3Ry dWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9BRERfVFJB Q0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8t Pm9wID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMzk6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKA mSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0g STQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfYWRkX3JtX3Byb2ZpbGVfaW5mb+KAmToK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTI1MjoxMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgc2Vj LT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsKICAgICAgICAgIF5+Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTQ6MTE6 IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX3dyaXRl X3BwcOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBzdGF0dXMg PSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NDoyOiBlcnJvcjogbmVzdGVkIGV4dGVy biBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQt ZXh0ZXJuc10KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNl Yy0+ZGF0YV9lbmQsCiAgXn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfY2hlY2tfcHJv ZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjg3Ojg6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBv ZiBmdW5jdGlvbiDigJhpNDBlX2FxX2dldF9wcHBfbGlzdOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1m dW5jdGlvbi1kZWNsYXJhdGlvbl0KICByZXQgPSBpNDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZv aWQgKilidWZmLAogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyODc6MjogZXJy b3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3Ti gJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3Qo aHcsICh2b2lkICopYnVmZiwKICBefn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI5NzoxNjogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9w cm9maWxlX3NlY3Rpb25faGVhZGVyKSk7CiAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMw MjoxNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29t cGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihz dHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzA0Ojg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3Qg dXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgICAgICAgSTQwRV9QUFBfTkFNRV9TSVpFKSkgewogICAg ICAgIF5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhydGVfcG1kX2k0MGVf cHJvY2Vzc19wcHBfcGFja2FnZeKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMzOToyMTogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChzaXplIDwgKHNpemVvZihzdHJ1Y3QgaTQwZV9wYWNr YWdlX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MDoxNDog ZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUg dHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW504oCZCiAgICAgICBzaXplb2Yoc3Ry dWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkgKwogICAgICAgICAgICAgIF5+fn5+fgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzUzOjEzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDi gJhzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChwa2dfaGRyLT5zZWdtZW50X2Nv dW50IDwgMikgewogICAgICAgICAgICAgXn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1OToyMTogZXJyb3I6IGltcGxpY2l0 IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2Xi gJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgbWV0YWRhdGFfc2Vn X2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRB LAogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEzNTk6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9maW5k X3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBtZXRhZGF0 YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVU QURBVEEsCiAgXn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzU5OjUwOiBlcnJvcjog4oCYU0VHTUVO VF9UWVBFX01FVEFEQVRB4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9u KQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01F TlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2NTo2MzogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfbWV0 YWRhdGFfc2VnbWVudOKAmQogIHRyYWNrX2lkID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdt ZW50ICopbWV0YWRhdGFfc2VnX2hkciktPnRyYWNrX2lkOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzY4OjQ5 OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5f cGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzY6MTg6IGVycm9y OiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg 4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgICAgIHNpemVv ZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAg IF5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMzc3OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhz aXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KA mQogICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAg ICAgICAgICBefn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4Nzo1NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW504oCZCiAg ICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5u YW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEzOTg6MTI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5j dGlvbiDigJhpNDBlX3dyaXRlX3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24t ZGVjbGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTg6MzogZXJyb3I6IG5lc3RlZCBleHRlcm4g ZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3RlZC1l eHRlcm5zXQogICBzdGF0dXMgPSBpNDBlX3dyaXRlX3Byb2ZpbGUoaHcsCiAgIF5+fn5+fgpjYzE6 IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvaW50ZXJuYWwvcnRlLmNvbXBpbGUtcHJlLm1rOjEzODogcmVjaXBlIGZv ciB0YXJnZXQgJ2k0MGVfZXRoZGV2Lm8nIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVjaXBlIGZvciB0YXJnZXQgJ2k0MGUnIGZhaWxl ZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnN1YmRpci5tazo2MTogcmVj aXBlIGZvciB0YXJnZXQgJ25ldCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9tay9ydGUuc2RrYnVpbGQubWs6ODE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdkcml2ZXJzJyBmYWls ZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290Lm1rOjEyODog cmVjaXBlIGZvciB0YXJnZXQgJ2FsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9tay9ydGUuc2RraW5zdGFsbC5tazo4NTogcmVjaXBlIGZvciB0YXJnZXQgJ3ByZV9pbnN0 YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtyb290 Lm1rOjEwMzogcmVjaXBlIGZvciB0YXJnZXQgJ2luc3RhbGwnIGZhaWxlZAoKCkZhaWxlZCBCdWls ZCAjMTA6Ck9TOiBGQzI0XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1jbGFuZwov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMjE3OjUxOiBlcnJvcjogZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3BwcF92ZXJz aW9uJyB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBmdW5jdGlvbiBbLVdlcnJv ciwtV3Zpc2liaWxpdHldCmk0MGVfZ2VuZXJhdGVfcHJvZmlsZV9pbmZvX3NlYyhjaGFyICpuYW1l LCBzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbiAqdmVyc2lvbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjU6NTogZXJyb3I6IGluY29t cGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyJwogICAgICAgIHNlYy0+dGJsX3NpemUgPSAxOwogICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5 OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNl YyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNjo1OiBlcnJvcjogaW5jb21wbGV0 ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIn CiAgICAgICAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKSArCiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIxOjk6IG5vdGU6IGZvcndhcmQgZGVj bGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAg c3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjI2OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6 ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXInCiAgICAgICAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIxOjk6IG5vdGU6IGZvcndhcmQg ZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAg ICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI3OjM6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdz aXplb2YnIHRvIGFuIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwog ICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAg ICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjk6IG5v dGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAg ICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMjg6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi50eXBlID0g U0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIxOjk6IG5vdGU6IGZvcndh cmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAg ICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjIyOiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRl bnRpZmllciAnU0VDVElPTl9UWVBFX0lORk8nCiAgICAgICAgc2VjLT5zZWN0aW9uLnR5cGUgPSBT RUNUSU9OX1RZUEVfSU5GTzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIy OTo1OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVv ZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICAgICB+fn5eCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjE6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6MjQ6IGVycm9yOiBp bnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGFuIGluY29tcGxldGUgdHlwZSAnc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnNlY3Rpb24ub2Zm c2V0ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIyMTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIz MDo1OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2VjLT5zZWN0aW9uLnNpemUgPSBzaXplb2Yo c3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICB+fn5eCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjE6OTogbm90 ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hl YWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBO VUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6MjI6IGVycm9yOiBpbnZhbGlkIGFwcGxp Y2F0aW9uIG9mICdzaXplb2YnIHRvIGFuIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGk0MGVfcHJv ZmlsZV9pbmZvJwogICAgICAgIHNlYy0+c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBl X3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRp b24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzI6MTQ6IGVycm9yOiBp bmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9u X2hlYWRlcicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vj LT5zZWN0aW9uLm9mZnNldCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIzMzo3OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBl X3Byb2ZpbGVfaW5mbycKICAgICAgICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAg ICB+fn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIyMjo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpw aW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM0OjE0OiBlcnJvcjogaW5jb21wbGV0ZSBk ZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBtZW1j cHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAgICAgICAgICAgICAg IH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjIyOjk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVj dCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBp bmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzQ6Mjg6IGVycm9yOiB1c2Ugb2YgdW5kZWNs YXJlZCBpZGVudGlmaWVyICdJNDBFX1BQUF9OQU1FX1NJWkUnCiAgICAgICAgbWVtY3B5KHBpbmZv LT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjM1OjE1OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9u IG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBtZW1jcHkoJnBpbmZv LT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAg ICAgICAgICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRp b24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzU6MzU6IGVycm9yOiBp bnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGFuIGluY29tcGxldGUgdHlwZSAnc3Ry dWN0IGk0MGVfcHBwX3ZlcnNpb24nCiAgICAgICAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVy c2lvbiwgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMjE3OjUxOiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9w cHBfdmVyc2lvbicKaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2VjKGNoYXIgKm5hbWUsIHN0 cnVjdCBpNDBlX3BwcF92ZXJzaW9uICp2ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzo4OiBlcnJvcjogaW5jb21wbGV0 ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICAg ICAgICAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgICAgICAgICAg fn5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMjI6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0 IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyAqcGlu Zm87CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNTogZXJyb3I6IHVzZSBvZiB1bmRlY2xh cmVkIGlkZW50aWZpZXIgJ0k0MEVfUFBQX0FERF9UUkFDS0lEJwogICAgICAgICAgICAgICAgcGlu Zm8tPm9wID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCmZhdGFsIGVycm9yOiB0b28gbWFueSBlcnJvcnMgZW1pdHRlZCwgc3RvcHBpbmcgbm93IFst ZmVycm9yLWxpbWl0PV0KMjAgZXJyb3JzIGdlbmVyYXRlZC4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6IHJlY2lwZSBmb3Ig dGFyZ2V0ICdpNDBlX2V0aGRldi5vJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpNDBlJyBmYWlsZWQK L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJlY2lw ZSBmb3IgdGFyZ2V0ICduZXQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v bWsvcnRlLnNka2J1aWxkLm1rOjgxOiByZWNpcGUgZm9yIHRhcmdldCAnZHJpdmVycycgZmFpbGVk Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5tazoxMjg6IHJl Y2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0ICdwcmVfaW5zdGFs bCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9vdC5t azoxMDM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpGYWlsZWQgQnVpbGQg IzExOgpPUzogVUIxNjA0XzY0ClRhcmdldDogaTY4Ni1uYXRpdmUtbGludXhhcHAtZ2NjCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMTk6MTE6IGVycm9yOiDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmSBkZWNsYXJlZCBp bnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAgICAgICAgICAgYm9vbCBhZGQpCiAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjE5OjExOiBlcnJvcjogaXRzIHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZp bml0aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBwcm9iYWJseSBub3Qgd2hhdCB5b3Ugd2Fu dCBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2lu Zm9fc2Vj4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI1OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkK ICBzZWMtPnRibF9zaXplID0gMTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjY6MjU6IGVycm9yOiBpbnZhbGlk IGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yo c3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjI3OjEwOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhz aXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KA mQogICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIyODoyMjogZXJyb3I6IOKAmFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVuZGVjbGFyZWQgKGZpcnN0 IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBF X0lORk87CiAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6MjI6IG5vdGU6IGVhY2gg dW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5j dGlvbiBpdCBhcHBlYXJzIGluCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6MzE6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0 aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBzaXplb2Yoc3Ry dWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMzA6Mjk6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKA mHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv 4oCZCiAgc2VjLT5zZWN0aW9uLnNpemUgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzM6NzogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJv ZmlsZV9pbmZv4oCZCiAgcGluZm8tPnRyYWNrX2lkID0gdHJhY2tfaWQ7CiAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMzQ6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBF X1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1 OjQyOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21w bGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZCiAgbWVtY3B5KCZwaW5mby0+ dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNTogZXJy b3I6IOKAmEk0MEVfUFBQX0FERF9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0 aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjM5OjE1OiBlcnJvcjog4oCYSTQwRV9QUFBfUkVNT1ZFX1RSQUNL SUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgIHBpbmZvLT5v cCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1 bmN0aW9uIOKAmGk0MGVfYWRkX3JtX3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1MjoxMDogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0 MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCkp LT50cmFja19pZDsKICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NDoxMTogZXJyb3I6IGltcGxpY2l0IGRl Y2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfd3JpdGVfcHBw4oCZIFstV2Vycm9yPWlt cGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVfcHBw KGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTQ6 MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV93cml0ZV9w cHDigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9w cHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAogIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g 4oCYaTQwZV9jaGVja19wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyODc6ODogZXJyb3I6IGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFst V2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJldCA9IGk0MGVfYXFfZ2V0 X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjg3OjI6IGVycm9y OiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZ IFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQogIHJldCA9IGk0MGVfYXFfZ2V0X3BwcF9saXN0KGh3 LCAodm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjk3OjE2OiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwMjoxNTogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1Y3QgaTQw ZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNDo4OiBlcnJvcjog 4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1 bmN0aW9uKQogICAgICAgIEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IElu IGZ1bmN0aW9uIOKAmHJ0ZV9wbWRfaTQwZV9wcm9jZXNzX3BwcF9wYWNrYWdl4oCZOgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzM5OjIxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVy4oCZCiAgaWYgKHNpemUg PCAoc2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVyKSArCiAgICAgICAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTM0MDoxNDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6 ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50 4oCZCiAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkgKwogICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTM1MzoxMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXLigJkKICBpZiAocGtn X2hkci0+c2VnbWVudF9jb3VudCA8IDIpIHsKICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1OToyMTog ZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfZmluZF9zZWdt ZW50X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25d CiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVO VF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTk6MjogZXJy b3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5f cGFja2FnZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBtZXRhZGF0YV9zZWdfaGRyID0g aTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMzU5OjUwOiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX01FVEFEQVRB4oCZIHVuZGVjbGFy ZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBl X2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjU6NjM6 IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVj dCBpNDBlX21ldGFkYXRhX3NlZ21lbnTigJkKICB0cmFja19pZCA9ICgoc3RydWN0IGk0MGVfbWV0 YWRhdGFfc2VnbWVudCAqKW1ldGFkYXRhX3NlZ19oZHIpLT50cmFja19pZDsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMzY4OjQ5OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0MEXigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0gaTQwZV9maW5kX3Nl Z21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3NjoxODogZXJyb3I6IGludmFs aWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgICAgc2l6ZW9mKHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMzc3OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8g aW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogICAgICAgICAg IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEzODc6NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudOKAmQogICAgICAgICgoc3RydWN0IGk0 MGVfcHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+bmFtZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTg6 MTI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX3dyaXRl X3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgIHN0 YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzk4OjM6 IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfd3JpdGVfcHJvZmls ZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICAgc3RhdHVzID0gaTQwZV93cml0ZV9wcm9m aWxlKGh3LAogICBeCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRlcm5hbC9ydGUuY29tcGlsZS1wcmUu bWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnaTQwZV9ldGhkZXYubycgZmFpbGVkCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYxOiByZWNpcGUgZm9yIHRh cmdldCAnaTQwZScgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUu c3ViZGlyLm1rOjYxOiByZWNpcGUgZm9yIHRhcmdldCAnbmV0JyBmYWlsZWQKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5tazo4MTogcmVjaXBlIGZvciB0YXJn ZXQgJ2RyaXZlcnMnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRl LnNka3Jvb3QubWs6MTI4OiByZWNpcGUgZm9yIHRhcmdldCAnYWxsJyBmYWlsZWQKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0YWxsLm1rOjg1OiByZWNpcGUgZm9y IHRhcmdldCAncHJlX2luc3RhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vbWsvcnRlLnNka3Jvb3QubWs6MTAzOiByZWNpcGUgZm9yIHRhcmdldCAnaW5zdGFsbCcgZmFp bGVkCgoKRmFpbGVkIEJ1aWxkICMxMjoKT1M6IFVCMTYwNF82NApUYXJnZXQ6IHg4Nl82NC1uYXRp dmUtbGludXhhcHAtZ2NjCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMTk6MTE6IGVycm9yOiDigJhzdHJ1Y3QgaTQwZV9wcHBf dmVyc2lvbuKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAgICAg ICAgICAgYm9vbCBhZGQpCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjE5OjExOiBlcnJvcjogaXRzIHNj b3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBwcm9i YWJseSBub3Qgd2hhdCB5b3Ugd2FudCBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQw ZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2Vj4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI1OjU6IGVycm9yOiBkZXJl ZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPnRibF9zaXplID0gMTsKICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy MjY6MjU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNl Yy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikg KwogICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI3OjEwOiBlcnJvcjogaW52YWxp ZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVj dCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv KTsKICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODoyMjogZXJyb3I6IOKAmFNFQ1RJT05fVFlQRV9JTkZP 4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNlYy0+c2VjdGlv bi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjg6MjI6IG5vdGU6IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9u bHkgb25jZSBmb3IgZWFjaCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6MzE6IGVy cm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5 cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+c2VjdGlv bi5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6Mjk6IGVycm9yOiBpbnZh bGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3Ry dWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgc2VjLT5zZWN0aW9uLnNpemUgPSBzaXplb2Yoc3Ry dWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMzM6NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgcGluZm8tPnRyYWNrX2lkID0gdHJh Y2tfaWQ7CiAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzQ6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJ WkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBp bmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjM1OjQyOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDi gJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u 4oCZCiAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVjdCBpNDBl X3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIzNzoxNTogZXJyb3I6IOKAmEk0MEVfUFBQX0FERF9UUkFDS0lE4oCZIHVuZGVj bGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQ UF9BRERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM5OjE1OiBlcnJvcjog4oCY STQwRV9QUFBfUkVNT1ZFX1RSQUNLSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMg ZnVuY3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwogICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfYWRkX3JtX3Byb2ZpbGVfaW5mb+KA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTI1MjoxMDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAg c2VjLT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsKICAgICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NDox MTogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfd3Jp dGVfcHBw4oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHN0YXR1 cyA9IGk0MGVfYXFfd3JpdGVfcHBwKGh3LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyNTQ6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24g b2Yg4oCYaTQwZV9hcV93cml0ZV9wcHDigJkgWy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCiAgc3Rh dHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAog IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9jaGVja19wcm9maWxlX2luZm/igJk6Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyODc6ODogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVf YXFfZ2V0X3BwcF9saXN04oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9u XQogIHJldCA9IGk0MGVfYXFfZ2V0X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMjg3OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0 MGVfYXFfZ2V0X3BwcF9saXN04oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQogIHJldCA9IGk0 MGVfYXFfZ2V0X3BwcF9saXN0KGh3LCAodm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjk3OjE2OiBl cnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgc2l6 ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpKTsKICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTMwMjoxNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m 4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbuKAmQogICAg ICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikpICYmCiAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTMwNDo4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgICAgIEk0MEVfUFBQX05BTUVfU0laRSkp IHsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmHJ0ZV9wbWRfaTQwZV9wcm9jZXNzX3Bw cF9wYWNrYWdl4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMzM5OjIxOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBv ZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BhY2thZ2Vf aGVhZGVy4oCZCiAgaWYgKHNpemUgPCAoc2l6ZW9mKHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVy KSArCiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0MDoxNDogZXJyb3I6IGludmFsaWQg YXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3Qg aTQwZV9tZXRhZGF0YV9zZWdtZW504oCZCiAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfbWV0YWRh dGFfc2VnbWVudCkgKwogICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1MzoxMzogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcGFja2Fn ZV9oZWFkZXLigJkKICBpZiAocGtnX2hkci0+c2VnbWVudF9jb3VudCA8IDIpIHsKICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTM1OToyMTogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0 aW9uIOKAmGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9aW1wbGljaXQt ZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdt ZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEzNTk6MjogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCY aTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10K ICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5U X1RZUEVfTUVUQURBVEEsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzU5OjUwOiBlcnJvcjog4oCYU0VHTUVOVF9UWVBF X01FVEFEQVRB4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1l dGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQ RV9NRVRBREFUQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEzNjU6NjM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5j b21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnTigJkKICB0cmFja19p ZCA9ICgoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCAqKW1ldGFkYXRhX3NlZ19oZHIpLT50 cmFja19pZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzY4OjQ5OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0 MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9z ZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTM3NjoxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGlu Y29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAg ICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc3OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlv biBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mb+KAmQogICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAog ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzODc6NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VnbWVudOKA mQogICAgICAgICgoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRy KS0+bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEzOTg6MTI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiDigJhpNDBlX3dyaXRlX3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rp b24tZGVjbGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMzk4OjM6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9m IOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICAgc3Rh dHVzID0gaTQwZV93cml0ZV9wcm9maWxlKGh3LAogICBeCmNjMTogYWxsIHdhcm5pbmdzIGJlaW5n IHRyZWF0ZWQgYXMgZXJyb3JzCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9pbnRl cm5hbC9ydGUuY29tcGlsZS1wcmUubWs6MTM4OiByZWNpcGUgZm9yIHRhcmdldCAnaTQwZV9ldGhk ZXYubycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGly Lm1rOjYxOiByZWNpcGUgZm9yIHRhcmdldCAnaTQwZScgZmFpbGVkCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9tay9ydGUuc3ViZGlyLm1rOjYxOiByZWNpcGUgZm9yIHRhcmdldCAnbmV0 JyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtidWlsZC5t azo4MTogcmVjaXBlIGZvciB0YXJnZXQgJ2RyaXZlcnMnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vbWsvcnRlLnNka3Jvb3QubWs6MTI4OiByZWNpcGUgZm9yIHRhcmdldCAn YWxsJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zZGtpbnN0 YWxsLm1rOjg1OiByZWNpcGUgZm9yIHRhcmdldCAncHJlX2luc3RhbGwnIGZhaWxlZAovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vbWsvcnRlLnNka3Jvb3QubWs6MTAzOiByZWNpcGUgZm9y IHRhcmdldCAnaW5zdGFsbCcgZmFpbGVkCgoKRmFpbGVkIEJ1aWxkICMxMzoKT1M6IFVCMTYwNF82 NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtZ2NjLXNoYXJlZAoKL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIxOTox MTogZXJyb3I6IOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZIGRlY2xhcmVkIGluc2lkZSBw YXJhbWV0ZXIgbGlzdCBbLVdlcnJvcl0KICAgICAgICAgICBib29sIGFkZCkKICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEyMTk6MTE6IGVycm9yOiBpdHMgc2NvcGUgaXMgb25seSB0aGlzIGRlZmluaXRpb24g b3IgZGVjbGFyYXRpb24sIHdoaWNoIGlzIHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50IFstV2Vy cm9yXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19zZWPi gJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMjU6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+ dGJsX3NpemUgPSAxOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNjoyNTogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w cm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEyMjc6MTA6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKA mSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgIHNp emVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjIy OiBlcnJvcjog4oCYU0VDVElPTl9UWVBFX0lORk/igJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgc2VjLT5zZWN0aW9uLnR5cGUgPSBTRUNUSU9OX1RZUEVfSU5GTzsK ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyODoyMjogbm90ZTogZWFjaCB1bmRlY2xh cmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0 IGFwcGVhcnMgaW4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTIyOTozMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg 4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3Nl Y3Rpb25faGVhZGVy4oCZCiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQw ZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIzMDoyOTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m 4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBz ZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMzo3OiBlcnJvcjogZGVyZWZlcmVu Y2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2lu Zm/igJkKICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAgIF4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNDoy ODogZXJyb3I6IOKAmEk0MEVfUFBQX05BTUVfU0laReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICBtZW1jcHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05B TUVfU0laRSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzU6NDI6IGVy cm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5 cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9u LCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM3OjE1OiBlcnJvcjog4oCY STQwRV9QUFBfQUREX1RSQUNLSUTigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVu Y3Rpb24pCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgICAgICAg ICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6MTEyMzk6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQw RV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g 4oCYaTQwZV9hZGRfcm1fcHJvZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjUyOjEwOiBlcnJvcjogZGVy ZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KSktPnRyYWNr X2lkOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU0OjExOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRp b24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV93cml0ZV9wcHDigJkgWy1XZXJyb3I9aW1wbGljaXQt ZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2 b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NDoyOiBlcnJv cjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBb LVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywg KHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBl X2NoZWNrX3Byb2ZpbGVfaW5mb+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI4Nzo4OiBlcnJvcjogaW1wbGljaXQgZGVj bGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJyb3I9 aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xp c3QoaHcsICh2b2lkICopYnVmZiwKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyODc6MjogZXJyb3I6IG5lc3Rl ZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV9hcV9nZXRfcHBwX2xpc3TigJkgWy1XZXJy b3I9bmVzdGVkLWV4dGVybnNdCiAgcmV0ID0gaTQwZV9hcV9nZXRfcHBwX2xpc3QoaHcsICh2b2lk ICopYnVmZiwKICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyOTc6MTY6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9m IOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9z ZWN0aW9uX2hlYWRlcuKAmQogICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0 aW9uX2hlYWRlcikpOwogICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzAyOjE1OiBlcnJvcjogaW52 YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0 cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZCiAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92 ZXJzaW9uKSkgJiYKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzA0Ojg6IGVycm9yOiDigJhJNDBF X1BQUF9OQU1FX1NJWkXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgICAgICAgSTQwRV9QUFBfTkFNRV9TSVpFKSkgewogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rp b24g4oCYcnRlX3BtZF9pNDBlX3Byb2Nlc3NfcHBwX3BhY2thZ2XigJk6Ci9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMzk6MjE6 IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRl IHR5cGUg4oCYc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXLigJkKICBpZiAoc2l6ZSA8IChzaXpl b2Yoc3RydWN0IGk0MGVfcGFja2FnZV9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMzQwOjE0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkg dG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnTigJkKICAg ICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW50KSArCiAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMzUzOjEzOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChwa2dfaGRyLT5z ZWdtZW50X2NvdW50IDwgMikgewogICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzU5OjIxOiBlcnJvcjog aW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9maW5kX3NlZ21lbnRfaW5f cGFja2FnZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBtZXRh ZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2FnZShTRUdNRU5UX1RZUEVf TUVUQURBVEEsCiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1OToyOiBlcnJvcjogbmVz dGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl 4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2Zp bmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz NTk6NTA6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfTUVUQURBVEHigJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9z ZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2NTo2MzogZXJyb3I6 IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVf bWV0YWRhdGFfc2VnbWVudOKAmQogIHRyYWNrX2lkID0gKChzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9z ZWdtZW50ICopbWV0YWRhdGFfc2VnX2hkciktPnRyYWNrX2lkOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjg6 NDk6IGVycm9yOiDigJhTRUdNRU5UX1RZUEVfSTQwReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICBwcm9maWxlX3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9p bl9wYWNrYWdlKFNFR01FTlRfVFlQRV9JNDBFLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc2OjE4OiBlcnJvcjogaW52YWxpZCBhcHBs aWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBl X3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzc6 MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgICAgICAgICAgc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyksCiAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM4 Nzo1NjogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUg4oCY c3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW504oCZCiAgICAgICAgKChzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1lLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM5ODoxMjogZXJy b3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfd3JpdGVfcHJvZmls ZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgc3RhdHVzID0g aTQwZV93cml0ZV9wcm9maWxlKGh3LAogICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTg6MzogZXJyb3I6 IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24gb2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFst V2Vycm9yPW5lc3RlZC1leHRlcm5zXQogICBzdGF0dXMgPSBpNDBlX3dyaXRlX3Byb2ZpbGUoaHcs CiAgIF4KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6 IHJlY2lwZSBmb3IgdGFyZ2V0ICdpNDBlX2V0aGRldi5vJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdp NDBlJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIu bWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICduZXQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvcnRlLnNka2J1aWxkLm1rOjgxOiByZWNpcGUgZm9yIHRhcmdldCAnZHJp dmVycycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9v dC5tazoxMjg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0 ICdwcmVfaW5zdGFsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9y dGUuc2Rrcm9vdC5tazoxMDM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpG YWlsZWQgQnVpbGQgIzE0OgpPUzogVUIxNjA0XzY0ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51 eGFwcC1jbGFuZwovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjE3OjUxOiBlcnJvcjogZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBp NDBlX3BwcF92ZXJzaW9uJyB3aWxsIG5vdCBiZSB2aXNpYmxlIG91dHNpZGUgb2YgdGhpcyBmdW5j dGlvbiBbLVdlcnJvciwtV3Zpc2liaWxpdHldCmk0MGVfZ2VuZXJhdGVfcHJvZmlsZV9pbmZvX3Nl YyhjaGFyICpuYW1lLCBzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbiAqdmVyc2lvbiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29y a09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjU6NTog ZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+dGJsX3NpemUgPSAxOwogICAgICAgIH5+fl4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIyMTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9w cm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlv bl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNjo1OiBlcnJv cjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2Vj dGlvbl9oZWFkZXInCiAgICAgICAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9w cm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIxOjk6IG5vdGU6 IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFk ZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVM TDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI2OjE4OiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgIF4g ICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIxOjk6IG5v dGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0g TlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI3OjM6IGVycm9yOiBpbnZhbGlkIGFwcGxp Y2F0aW9uIG9mICdzaXplb2YnIHRvIGFuIGluY29tcGxldGUgdHlwZSAnc3RydWN0IGk0MGVfcHJv ZmlsZV9pbmZvJwogICAgICAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5m byk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjIyOjk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBpbmZvOwogICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEyMjg6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0 eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+c2Vj dGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lORk87CiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIxOjk6 IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlv bl9oZWFkZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2Vj ID0gTlVMTDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjIyOiBlcnJvcjogdXNlIG9mIHVu ZGVjbGFyZWQgaWRlbnRpZmllciAnU0VDVElPTl9UWVBFX0lORk8nCiAgICAgICAgc2VjLT5zZWN0 aW9uLnR5cGUgPSBTRUNUSU9OX1RZUEVfSU5GTzsKICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIyOTo1OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0 cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2VjLT5zZWN0aW9uLm9m ZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICAg ICB+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMjE6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxl X3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6 MjQ6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGFuIGluY29tcGxl dGUgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMt PnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFk ZXIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0 aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIzMDo1OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0 cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2VjLT5zZWN0aW9uLnNp emUgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKTsKICAgICAgICB+fn5eCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjE6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6MjI6IGVycm9yOiBp bnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGFuIGluY29tcGxldGUgdHlwZSAnc3Ry dWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIHNlYy0+c2VjdGlvbi5zaXplID0gc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjk6IG5vdGU6IGZvcndh cmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzI6 MTQ6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5OiBub3RlOiBmb3J3YXJkIGRlY2xh cmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0 cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIzMzo3OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUg J3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBwaW5mby0+dHJhY2tfaWQgPSB0cmFj a19pZDsKICAgICAgICB+fn5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0 aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJv ZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM0OjE0OiBlcnJvcjog aW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycK ICAgICAgICBtZW1jcHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAg ICAgICAgICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRp b24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9m aWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzQ6Mjg6IGVycm9yOiB1 c2Ugb2YgdW5kZWNsYXJlZCBpZGVudGlmaWVyICdJNDBFX1BQUF9OQU1FX1NJWkUnCiAgICAgICAg bWVtY3B5KHBpbmZvLT5uYW1lLCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1OjE1OiBlcnJvcjogaW5jb21wbGV0 ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBt ZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3Zl cnNpb24pKTsKICAgICAgICAgICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjk6IG5vdGU6IGZvcndh cmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzU6 MzU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mICdzaXplb2YnIHRvIGFuIGluY29tcGxl dGUgdHlwZSAnc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24nCiAgICAgICAgbWVtY3B5KCZwaW5mby0+ dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjE3OjUxOiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdz dHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbicKaTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2VjKGNo YXIgKm5hbWUsIHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uICp2ZXJzaW9uLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzo4OiBlcnJv cjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5m bycKICAgICAgICAgICAgICAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAg ICAgICAgICAgICAgfn5+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjI6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlv biBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2Zp bGVfaW5mbyAqcGluZm87CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNTogZXJyb3I6IHVz ZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ0k0MEVfUFBQX0FERF9UUkFDS0lEJwogICAgICAg ICAgICAgICAgcGluZm8tPm9wID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCmZhdGFsIGVycm9yOiB0b28gbWFueSBlcnJvcnMgZW1pdHRlZCwgc3Rv cHBpbmcgbm93IFstZmVycm9yLWxpbWl0PV0KMjAgZXJyb3JzIGdlbmVyYXRlZC4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL2ludGVybmFsL3J0ZS5jb21waWxlLXByZS5tazoxMzg6 IHJlY2lwZSBmb3IgdGFyZ2V0ICdpNDBlX2V0aGRldi5vJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIubWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICdp NDBlJyBmYWlsZWQKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL21rL3J0ZS5zdWJkaXIu bWs6NjE6IHJlY2lwZSBmb3IgdGFyZ2V0ICduZXQnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vbWsvcnRlLnNka2J1aWxkLm1rOjgxOiByZWNpcGUgZm9yIHRhcmdldCAnZHJp dmVycycgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9ydGUuc2Rrcm9v dC5tazoxMjg6IHJlY2lwZSBmb3IgdGFyZ2V0ICdhbGwnIGZhaWxlZAovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vbWsvcnRlLnNka2luc3RhbGwubWs6ODU6IHJlY2lwZSBmb3IgdGFyZ2V0 ICdwcmVfaW5zdGFsbCcgZmFpbGVkCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9tay9y dGUuc2Rrcm9vdC5tazoxMDM6IHJlY2lwZSBmb3IgdGFyZ2V0ICdpbnN0YWxsJyBmYWlsZWQKCgpG YWlsZWQgQnVpbGQgIzE1OgpPUzogQ2VudE9TN182NApUYXJnZXQ6IGk2ODYtbmF0aXZlLWxpbnV4 YXBwLWdjYwovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjE5OjExOiBlcnJvcjog4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27i gJkgZGVjbGFyZWQgaW5zaWRlIHBhcmFtZXRlciBsaXN0IFstV2Vycm9yXQogICAgICAgICAgIGJv b2wgYWRkKQogICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIxOToxMTogZXJyb3I6IGl0cyBzY29wZSBpcyBv bmx5IHRoaXMgZGVmaW5pdGlvbiBvciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMgcHJvYmFibHkgbm90 IHdoYXQgeW91IHdhbnQgWy1XZXJyb3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfZ2VuZXJh dGVfcHJvZmlsZV9pbmZvX3NlY+KAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNTo1OiBlcnJvcjogZGVyZWZlcmVuY2lu ZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+dGJsX3NpemUgPSAxOwogICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIyNjo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUg dHlwZQogIHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9u X2hlYWRlcikgKwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNjoyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRp b24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQw ZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMjc6MTA6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0 byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgIHNpemVv ZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjU6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5zZWN0 aW9uLnR5cGUgPSBTRUNUSU9OX1RZUEVfSU5GTzsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6MjI6IGVycm9y OiDigJhTRUNUSU9OX1RZUEVfSU5GT+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbikKICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjIyOiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRl bnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFy cyBpbgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjI5OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21w bGV0ZSB0eXBlCiAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6MzE6IGVycm9yOiBpbnZhbGlk IGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBz aXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDoyOTogZXJyb3I6IGludmFs aWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1 Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIzMjoxNDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICAgICAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KTsKICAgICAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMzM6NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICBwaW5mby0+dHJhY2tfaWQgPSB0cmFja19pZDsKICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNDoxNDogZXJy b3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBtZW1jcHkocGlu Zm8tPm5hbWUsIG5hbWUsIEk0MEVfUFBQX05BTUVfU0laRSk7CiAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjM0OjI4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQw RV9QUFBfTkFNRV9TSVpFKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIz NToxNTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBt ZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3Zl cnNpb24pKTsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM1OjQyOiBlcnJvcjogaW52YWxpZCBh cHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBp NDBlX3BwcF92ZXJzaW9u4oCZCiAgbWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lvbiwgc2l6 ZW9mKHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzo4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2lu dGVyIHRvIGluY29tcGxldGUgdHlwZQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJ RDsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9BRERfVFJBQ0tJ ROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9w ID0gSTQwRV9QUFBfQUREX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzOTo4OiBl cnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBwaW5mby0+ b3AgPSBJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzk6MTU6IGVy cm9yOiDigJhJNDBFX1BQUF9SRU1PVkVfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7 CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9hZGRfcm1fcHJvZmls ZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjUyOjEwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRv IGluY29tcGxldGUgdHlwZQogICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsK ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTI1NDoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2Yg ZnVuY3Rpb24g4oCYaTQwZV9hcV93cml0ZV9wcHDigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rp b24tZGVjbGFyYXRpb25dCiAgc3RhdHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICop c2VjLCBzZWMtPmRhdGFfZW5kLAogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NDoyOiBlcnJvcjogbmVzdGVkIGV4dGVy biBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQt ZXh0ZXJuc10KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTI1NDo0OTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBp bmNvbXBsZXRlIHR5cGUKICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilz ZWMsIHNlYy0+ZGF0YV9lbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfY2hlY2tfcHJvZmlsZV9pbmZv 4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjg3OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlv biDigJhpNDBlX2FxX2dldF9wcHBfbGlzdOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1k ZWNsYXJhdGlvbl0KICByZXQgPSBpNDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZvaWQgKilidWZm LAogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTI4NzoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDi gJhpNDBlX2FxX2dldF9wcHBfbGlzdOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTI5NzoxNjogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGlu Y29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAg ICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSk7CiAgICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEzMDI6MTU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9m IOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNp b27igJkKICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKSAmJgogICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEzMDQ6ODogZXJyb3I6IOKAmEk0MEVfUFBQX05BTUVfU0laReKAmSB1 bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgICAgICBJNDBFX1BQUF9O QU1FX1NJWkUpKSB7CiAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhydGVfcG1kX2k0MGVf cHJvY2Vzc19wcHBfcGFja2FnZeKAmToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMzOToyMTogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wYWNrYWdlX2hlYWRlcuKAmQogIGlmIChzaXplIDwgKHNpemVvZihzdHJ1Y3QgaTQwZV9wYWNr YWdlX2hlYWRlcikgKwogICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDA6MTQ6IGVycm9y OiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg 4oCYc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudOKAmQogICAgICAgc2l6ZW9mKHN0cnVjdCBp NDBlX21ldGFkYXRhX3NlZ21lbnQpICsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTM6MTM6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgaWYgKHBrZ19o ZHItPnNlZ21lbnRfY291bnQgPCAyKSB7CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09y Zy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTk6MjogZXJy b3I6IGltcGxpY2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfZmluZF9zZWdtZW50 X2luX3BhY2thZ2XigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAg bWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9U WVBFX01FVEFEQVRBLAogIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM1OToyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNs YXJhdGlvbiBvZiDigJhpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZIFstV2Vycm9yPW5l c3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMzU5OjUwOiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX01FVEFE QVRB4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRh X3NlZ19oZHIgPSBpNDBlX2ZpbmRfc2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRB REFUQSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRo ZGV2LmM6MTEzNjU6NjM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0 ZSB0eXBlCiAgdHJhY2tfaWQgPSAoKHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQgKiltZXRh ZGF0YV9zZWdfaGRyKS0+dHJhY2tfaWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM2ODo0OTogZXJyb3I6IOKA mFNFR01FTlRfVFlQRV9JNDBF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIHByb2ZpbGVfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VH TUVOVF9UWVBFX0k0MEUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEzNzY6MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKA mHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0 aW9uX2hlYWRlcuKAmQogICAgICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rp b25faGVhZGVyKSArCiAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3NzoxODogZXJyb3I6IGlu dmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhz dHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/igJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9pbmZvKSwKICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzg3OjU2OiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAgICAgICgoc3RydWN0 IGk0MGVfcHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+bmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz ODg6NTc6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAg ICAgICAgJigoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+ dmVyc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMzk4OjM6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBm dW5jdGlvbiDigJhpNDBlX3dyaXRlX3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rp b24tZGVjbGFyYXRpb25dCiAgIHN0YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgXgov aG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRl di5jOjExMzk4OjM6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVf d3JpdGVfcHJvZmlsZeKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KY2MxOiBhbGwgd2Fybmlu Z3MgYmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKCgpGYWlsZWQgQnVpbGQgIzE2OgpPUzogQ2VudE9T N182NApUYXJnZXQ6IHg4Nl82NC1uYXRpdmUtbGludXhhcHAtY2xhbmcKL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIxNzo1MTog ZXJyb3I6IGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbicgd2lsbCBub3Qg YmUgdmlzaWJsZSBvdXRzaWRlIG9mIHRoaXMgZnVuY3Rpb24gWy1XZXJyb3IsLVd2aXNpYmlsaXR5 XQppNDBlX2dlbmVyYXRlX3Byb2ZpbGVfaW5mb19zZWMoY2hhciAqbmFtZSwgc3RydWN0IGk0MGVf cHBwX3ZlcnNpb24gKnZlcnNpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI1OjU6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRp b24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBz ZWMtPnRibF9zaXplID0gMTsKICAgICAgICB+fn5eCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjE6OTogbm90ZTogZm9yd2Fy ZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcicKICAg ICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyICpzZWMgPSBOVUxMOwogICAg ICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9p NDBlL2k0MGVfZXRoZGV2LmM6MTEyMjY6NTogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBv ZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHNlYy0+ ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwog ICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIyNjoxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2YgJ3NpemVvZicgdG8gYW4gaW5j b21wbGV0ZSB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAg IHNlYy0+ZGF0YV9lbmQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRl cikgKwogICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0 L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9m ICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBpNDBl X3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIyNzozOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBp bmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICAgICAgICAg IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pOwogICAgICAgICAgICAgICAgXiAgICAg fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjo5OiBub3RlOiBmb3J3YXJkIGRl Y2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0 MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjU6IGVy cm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAnc3RydWN0IGk0MGVfcHJvZmlsZV9z ZWN0aW9uX2hlYWRlcicKICAgICAgICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9J TkZPOwogICAgICAgIH5+fl4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMTo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9u IG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyJwogICAgICAgIHN0cnVjdCBp NDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIgKnNlYyA9IE5VTEw7CiAgICAgICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIyODoyMjogZXJyb3I6IHVzZSBvZiB1bmRlY2xhcmVkIGlkZW50aWZpZXIgJ1NFQ1RJ T05fVFlQRV9JTkZPJwogICAgICAgIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lO Rk87CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6NTogZXJyb3I6IGlu Y29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcv Y29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIxOjk6IG5vdGU6 IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFk ZXInCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVM TDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjI0OiBlcnJvcjogaW52YWxpZCBhcHBsaWNh dGlvbiBvZiAnc2l6ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2Zp bGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAgc2VjLT5zZWN0aW9uLm9mZnNldCA9IHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Ci9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjE6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmls ZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzA6NTogZXJyb3I6IGlu Y29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyJwogICAgICAgIHNlYy0+c2VjdGlvbi5zaXplID0gc2l6ZW9mKHN0cnVjdCBpNDBlX3By b2ZpbGVfaW5mbyk7CiAgICAgICAgfn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24v ZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjIxOjk6IG5vdGU6IGZvcndhcmQgZGVj bGFyYXRpb24gb2YgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAgICAg c3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlciAqc2VjID0gTlVMTDsKICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjMwOjIyOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiAnc2l6 ZW9mJyB0byBhbiBpbmNvbXBsZXRlIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAg ICAgICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8p OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIyMjo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3Qg aTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5m bzsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMyOjE0OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZp bml0aW9uIG9mIHR5cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXInCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYy0+c2VjdGlvbi5vZmZz ZXQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB+fn5eCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMjE6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcicKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25f aGVhZGVyICpzZWMgPSBOVUxMOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzM6NzogZXJyb3I6 IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8n CiAgICAgICAgcGluZm8tPnRyYWNrX2lkID0gdHJhY2tfaWQ7CiAgICAgICAgfn5+fn5eCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjI6OTogbm90ZTogZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiAnc3RydWN0IGk0MGVfcHJvZmls ZV9pbmZvJwogICAgICAgIHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyAqcGluZm87CiAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIzNDoxNDogZXJyb3I6IGluY29tcGxldGUgZGVmaW5pdGlvbiBvZiB0 eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAgbWVtY3B5KHBpbmZvLT5uYW1l LCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICB+fn5+fl4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIyMjo5OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxl X2luZm8nCiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjM1OjE1OiBlcnJvcjogaW5jb21wbGV0ZSBkZWZpbml0aW9uIG9mIHR5 cGUgJ3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBtZW1jcHkoJnBpbmZvLT52ZXJz aW9uLCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAg ICAgICAgIH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMjIyOjk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2Yg J3N0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2lu Zm8gKnBpbmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6ODogZXJyb3I6IGluY29tcGxl dGUgZGVmaW5pdGlvbiBvZiB0eXBlICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8nCiAgICAgICAg ICAgICAgICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAgICAgICAgICAg IH5+fn5+XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjIyOjk6IG5vdGU6IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgJ3N0cnVj dCBpNDBlX3Byb2ZpbGVfaW5mbycKICAgICAgICBzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8gKnBp bmZvOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzc6MTU6IGVycm9yOiB1c2Ugb2YgdW5kZWNs YXJlZCBpZGVudGlmaWVyICdJNDBFX1BQUF9BRERfVFJBQ0tJRCcKICAgICAgICAgICAgICAgIHBp bmZvLT5vcCA9IEk0MEVfUFBQX0FERF9UUkFDS0lEOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjM5Ojg6IGVycm9yOiBpbmNvbXBsZXRlIGRlZmluaXRpb24gb2YgdHlwZSAn c3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvJwogICAgICAgICAgICAgICAgcGluZm8tPm9wID0gSTQw RV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgICAgICAgICB+fn5+fl4KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyMjo5 OiBub3RlOiBmb3J3YXJkIGRlY2xhcmF0aW9uIG9mICdzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8n CiAgICAgICAgc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvICpwaW5mbzsKICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMjM5OjE1OiBlcnJvcjogdXNlIG9mIHVuZGVjbGFyZWQgaWRlbnRpZmllciAnSTQw RV9QUFBfUkVNT1ZFX1RSQUNLSUQnCiAgICAgICAgICAgICAgICBwaW5mby0+b3AgPSBJNDBFX1BQ UF9SRU1PVkVfVFJBQ0tJRDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KZmF0YWwgZXJy b3I6IHRvbyBtYW55IGVycm9ycyBlbWl0dGVkLCBzdG9wcGluZyBub3cgWy1mZXJyb3ItbGltaXQ9 XQoyMCBlcnJvcnMgZ2VuZXJhdGVkLgoKCkZhaWxlZCBCdWlsZCAjMTc6Ck9TOiBDZW50T1M3XzY0 ClRhcmdldDogeDg2XzY0LW5hdGl2ZS1saW51eGFwcC1nY2Mtc2hhcmVkCgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjE5OjEx OiBlcnJvcjog4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkgZGVjbGFyZWQgaW5zaWRlIHBh cmFtZXRlciBsaXN0IFstV2Vycm9yXQogICAgICAgICAgIGJvb2wgYWRkKQogICAgICAgICAgIF4K L2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhk ZXYuYzoxMTIxOToxMTogZXJyb3I6IGl0cyBzY29wZSBpcyBvbmx5IHRoaXMgZGVmaW5pdGlvbiBv ciBkZWNsYXJhdGlvbiwgd2hpY2ggaXMgcHJvYmFibHkgbm90IHdoYXQgeW91IHdhbnQgWy1XZXJy b3JdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVf ZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmGk0MGVfZ2VuZXJhdGVfcHJvZmlsZV9pbmZvX3NlY+KA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTIyNTo1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIHNlYy0+dGJsX3NpemUgPSAxOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyNjo1OiBlcnJvcjog ZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+ZGF0YV9lbmQg PSBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcikgKwogICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIyNjoyNTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRv IGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZ CiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVh ZGVyKSArCiAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjc6MTA6IGVycm9yOiBp bnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCY c3RydWN0IGk0MGVfcHJvZmlsZV9pbmZv4oCZCiAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxl X2luZm8pOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI4OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5zZWN0aW9uLnR5cGUgPSBTRUNUSU9OX1RZ UEVfSU5GTzsKICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6MjI6IGVycm9yOiDigJhTRUNUSU9OX1RZUEVfSU5G T+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICBzZWMtPnNlY3Rp b24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgICAgICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjI4OjIyOiBub3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBv bmx5IG9uY2UgZm9yIGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI5OjU6IGVy cm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5zZWN0 aW9uLm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsK ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMjk6MzE6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNp emVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9u X2hlYWRlcuKAmQogIHNlYy0+c2VjdGlvbi5vZmZzZXQgPSBzaXplb2Yoc3RydWN0IGk0MGVfcHJv ZmlsZV9zZWN0aW9uX2hlYWRlcik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9o b21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2 LmM6MTEyMzA6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5 cGUKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8p OwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIzMDoyOTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCY c2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/i gJkKICBzZWMtPnNlY3Rpb24uc2l6ZSA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8p OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBp bGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMjoxNDogZXJyb3I6IGRl cmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICAgICAgICAgICBzZWMtPnNl Y3Rpb24ub2Zmc2V0KTsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxh dGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzM6NzogZXJyb3I6IGRlcmVm ZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBwaW5mby0+dHJhY2tfaWQgPSB0 cmFja19pZDsKICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMv bmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNDoxNDogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9p bnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBtZW1jcHkocGluZm8tPm5hbWUsIG5hbWUsIEk0MEVf UFBQX05BTUVfU0laRSk7CiAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM0OjI4OiBlcnJvcjog4oCY STQwRV9QUFBfTkFNRV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0 aW9uKQogIG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9u L2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNToxNTogZXJyb3I6IGRlcmVmZXJl bmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9u LCB2ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAg ICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjM1OjQyOiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXpl b2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3BwcF92ZXJzaW9u4oCZCiAg bWVtY3B5KCZwaW5mby0+dmVyc2lvbiwgdmVyc2lvbiwgc2l6ZW9mKHN0cnVjdCBpNDBlX3BwcF92 ZXJzaW9uKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTIzNzo4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlw ZQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEy Mzc6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9BRERfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJz dCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAgcGluZm8tPm9wID0gSTQwRV9QUFBfQUREX1RSQUNL SUQ7CiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzOTo4OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9SRU1PVkVf VFJBQ0tJRDsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzk6MTU6IGVycm9yOiDigJhJNDBFX1BQUF9SRU1P VkVfVFJBQ0tJROKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbikKICAg cGluZm8tPm9wID0gSTQwRV9QUFBfUkVNT1ZFX1RSQUNLSUQ7CiAgICAgICAgICAgICAgIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzogSW4gZnVuY3Rpb24g4oCYaTQwZV9hZGRfcm1fcHJvZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjUy OjEwOiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogICAg ICAgc2VjLT5zZWN0aW9uLm9mZnNldCkpLT50cmFja19pZDsKICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1 NDoyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9hcV93 cml0ZV9wcHDigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgc3Rh dHVzID0gaTQwZV9hcV93cml0ZV9wcHAoaHcsICh2b2lkICopc2VjLCBzZWMtPmRhdGFfZW5kLAog IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTI1NDoyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhp NDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hvbWUvcGF0Y2hX b3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI1NDo0 OTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUKICBzdGF0 dXMgPSBpNDBlX2FxX3dyaXRlX3BwcChodywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IElu IGZ1bmN0aW9uIOKAmGk0MGVfY2hlY2tfcHJvZmlsZV9pbmZv4oCZOgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjg3OjI6IGVy cm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX2dldF9wcHBf bGlzdOKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICByZXQgPSBp NDBlX2FxX2dldF9wcHBfbGlzdChodywgKHZvaWQgKilidWZmLAogIF4KL2hvbWUvcGF0Y2hXb3Jr T3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI4NzoyOiBl cnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2FxX2dldF9wcHBfbGlz dOKAmSBbLVdlcnJvcj1uZXN0ZWQtZXh0ZXJuc10KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTI5NzoxNjogZXJyb3I6IGludmFs aWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1 Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgIHNpemVvZihzdHJ1Y3Qg aTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSk7CiAgICAgICAgICAgICAgICBeCi9ob21lL3Bh dGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEz MDI6MTU6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNv bXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICAgICAgICBzaXplb2Yo c3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKSAmJgogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzMDQ6 ODogZXJyb3I6IOKAmEk0MEVfUFBQX05BTUVfU0laReKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2Ug aW4gdGhpcyBmdW5jdGlvbikKICAgICAgICBJNDBFX1BQUF9OQU1FX1NJWkUpKSB7CiAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOiBJbiBmdW5jdGlvbiDigJhydGVfcG1kX2k0MGVfcHJvY2Vzc19wcHBfcGFja2FnZeKA mToKL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTMzOToyMTogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m 4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcuKAmQog IGlmIChzaXplIDwgKHNpemVvZihzdHJ1Y3QgaTQwZV9wYWNrYWdlX2hlYWRlcikgKwogICAgICAg ICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNDA6MTQ6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9u IG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfbWV0YWRh dGFfc2VnbWVudOKAmQogICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQp ICsKICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTM6MTM6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBv aW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgaWYgKHBrZ19oZHItPnNlZ21lbnRfY291bnQgPCAy KSB7CiAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTk6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0 aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkgWy1XZXJy b3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0 MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX01FVEFEQVRBLAogIF4KL2hv bWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYu YzoxMTM1OToyOiBlcnJvcjogbmVzdGVkIGV4dGVybiBkZWNsYXJhdGlvbiBvZiDigJhpNDBlX2Zp bmRfc2VnbWVudF9pbl9wYWNrYWdl4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MzU5OjUwOiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX01FVEFEQVRB4oCZIHVuZGVjbGFyZWQgKGZp cnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIG1ldGFkYXRhX3NlZ19oZHIgPSBpNDBlX2ZpbmRf c2VnbWVudF9pbl9wYWNrYWdlKFNFR01FTlRfVFlQRV9NRVRBREFUQSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNjU6NjM6IGVycm9y OiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgdHJhY2tfaWQgPSAo KHN0cnVjdCBpNDBlX21ldGFkYXRhX3NlZ21lbnQgKiltZXRhZGF0YV9zZWdfaGRyKS0+dHJhY2tf aWQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM2ODo0OTogZXJyb3I6IOKAmFNFR01FTlRfVFlQRV9JNDBF4oCZ IHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHByb2ZpbGVfc2VnX2hk ciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVOVF9UWVBFX0k0MEUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNzY6 MTg6IGVycm9yOiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBs ZXRlIHR5cGUg4oCYc3RydWN0IGk0MGVfcHJvZmlsZV9zZWN0aW9uX2hlYWRlcuKAmQogICAgICAg ICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM3NzoxODogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg 4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2lu Zm/igJkKICAgICAgICAgICBzaXplb2Yoc3RydWN0IGk0MGVfcHJvZmlsZV9pbmZvKSwKICAgICAg ICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQv aTQwZS9pNDBlX2V0aGRldi5jOjExMzg3OjU2OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVy IHRvIGluY29tcGxldGUgdHlwZQogICAgICAgICgoc3RydWN0IGk0MGVfcHJvZmlsZV9zZWdtZW50 ICopcHJvZmlsZV9zZWdfaGRyKS0+bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzODg6NTc6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAgICAgJigoc3RydWN0IGk0MGVf cHJvZmlsZV9zZWdtZW50ICopcHJvZmlsZV9zZWdfaGRyKS0+dmVyc2lvbiwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRj aFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzk4 OjM6IGVycm9yOiBpbXBsaWNpdCBkZWNsYXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX3dyaXRl X3Byb2ZpbGXigJkgWy1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tZGVjbGFyYXRpb25dCiAgIHN0 YXR1cyA9IGk0MGVfd3JpdGVfcHJvZmlsZShodywKICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzk4OjM6IGVycm9yOiBu ZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdl cnJvcj1uZXN0ZWQtZXh0ZXJuc10KY2MxOiBhbGwgd2FybmluZ3MgYmVpbmcgdHJlYXRlZCBhcyBl cnJvcnMKCgpGYWlsZWQgQnVpbGQgIzE4OgpPUzogQ2VudE9TN182NApUYXJnZXQ6IHg4Nl82NC1u YXRpdmUtbGludXhhcHAtZ2NjCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJz L25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMTk6MTE6IGVycm9yOiDigJhzdHJ1Y3QgaTQwZV9w cHBfdmVyc2lvbuKAmSBkZWNsYXJlZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QgWy1XZXJyb3JdCiAg ICAgICAgICAgYm9vbCBhZGQpCiAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGls YXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjE5OjExOiBlcnJvcjogaXRz IHNjb3BlIGlzIG9ubHkgdGhpcyBkZWZpbml0aW9uIG9yIGRlY2xhcmF0aW9uLCB3aGljaCBpcyBw cm9iYWJseSBub3Qgd2hhdCB5b3Ugd2FudCBbLVdlcnJvcl0KL2hvbWUvcGF0Y2hXb3JrT3JnL2Nv bXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCY aTQwZV9nZW5lcmF0ZV9wcm9maWxlX2luZm9fc2Vj4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI1OjU6IGVycm9yOiBk ZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgc2VjLT50Ymxfc2l6ZSA9 IDE7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQw ZS9pNDBlX2V0aGRldi5jOjExMjI2OjU6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8g aW5jb21wbGV0ZSB0eXBlCiAgc2VjLT5kYXRhX2VuZCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9m aWxlX3NlY3Rpb25faGVhZGVyKSArCiAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjI2OjI1OiBlcnJvcjogaW52YWxp ZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXLigJkKICBzZWMtPmRhdGFfZW5kID0gc2l6ZW9m KHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAg ICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUv aTQwZV9ldGhkZXYuYzoxMTIyNzoxMDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCY c2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX2luZm/i gJkKICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICBeCi9ob21l L3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6 MTEyMjg6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICBzZWMtPnNlY3Rpb24udHlwZSA9IFNFQ1RJT05fVFlQRV9JTkZPOwogICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIy ODoyMjogZXJyb3I6IOKAmFNFQ1RJT05fVFlQRV9JTkZP4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVz ZSBpbiB0aGlzIGZ1bmN0aW9uKQogIHNlYy0+c2VjdGlvbi50eXBlID0gU0VDVElPTl9UWVBFX0lO Rk87CiAgICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlv bi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjg6MjI6IG5vdGU6IGVhY2ggdW5k ZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFjaCBmdW5jdGlv biBpdCBhcHBlYXJzIGluCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMjk6NTogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRl ciB0byBpbmNvbXBsZXRlIHR5cGUKICBzZWMtPnNlY3Rpb24ub2Zmc2V0ID0gc2l6ZW9mKHN0cnVj dCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFkZXIpOwogICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3Jn L2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIyOTozMTogZXJy b3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlw ZSDigJhzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgc2VjLT5zZWN0aW9u Lm9mZnNldCA9IHNpemVvZihzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlY3Rpb25faGVhZGVyKTsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0 aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzMDo1OiBlcnJvcjogZGVyZWZl cmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHNlYy0+c2VjdGlvbi5zaXplID0g c2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgXgovaG9tZS9wYXRjaFdvcmtP cmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjMwOjI5OiBl cnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0 eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogIHNlYy0+c2VjdGlvbi5zaXplID0g c2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mbyk7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9p NDBlX2V0aGRldi5jOjExMjMyOjE0OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGlu Y29tcGxldGUgdHlwZQogICAgICAgICAgIHNlYy0+c2VjdGlvbi5vZmZzZXQpOwogICAgICAgICAg ICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQw ZV9ldGhkZXYuYzoxMTIzMzo3OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29t cGxldGUgdHlwZQogIHBpbmZvLT50cmFja19pZCA9IHRyYWNrX2lkOwogICAgICAgXgovaG9tZS9w YXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjEx MjM0OjE0OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxldGUgdHlwZQog IG1lbWNweShwaW5mby0+bmFtZSwgbmFtZSwgSTQwRV9QUFBfTkFNRV9TSVpFKTsKICAgICAgICAg ICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0 MGVfZXRoZGV2LmM6MTEyMzQ6Mjg6IGVycm9yOiDigJhJNDBFX1BQUF9OQU1FX1NJWkXigJkgdW5k ZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiAgbWVtY3B5KHBpbmZvLT5uYW1l LCBuYW1lLCBJNDBFX1BQUF9OQU1FX1NJWkUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg XgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0 aGRldi5jOjExMjM1OjE1OiBlcnJvcjogZGVyZWZlcmVuY2luZyBwb2ludGVyIHRvIGluY29tcGxl dGUgdHlwZQogIG1lbWNweSgmcGluZm8tPnZlcnNpb24sIHZlcnNpb24sIHNpemVvZihzdHJ1Y3Qg aTQwZV9wcHBfdmVyc2lvbikpOwogICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9j b21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyMzU6NDI6IGVycm9y OiBpbnZhbGlkIGFwcGxpY2F0aW9uIG9mIOKAmHNpemVvZuKAmSB0byBpbmNvbXBsZXRlIHR5cGUg 4oCYc3RydWN0IGk0MGVfcHBwX3ZlcnNpb27igJkKICBtZW1jcHkoJnBpbmZvLT52ZXJzaW9uLCB2 ZXJzaW9uLCBzaXplb2Yoc3RydWN0IGk0MGVfcHBwX3ZlcnNpb24pKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjM3Ojg6IGVycm9yOiBkZXJlZmVy ZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQ X0FERF9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTIzNzoxNTogZXJyb3I6IOKAmEk0MEVfUFBQ X0FERF9UUkFDS0lE4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog ICBwaW5mby0+b3AgPSBJNDBFX1BQUF9BRERfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9t ZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5j OjExMjM5Ojg6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBl CiAgIHBpbmZvLT5vcCA9IEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lEOwogICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTIzOToxNTogZXJyb3I6IOKAmEk0MEVfUFBQX1JFTU9WRV9UUkFDS0lE4oCZIHVuZGVjbGFyZWQg KGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICBwaW5mby0+b3AgPSBJNDBFX1BQUF9SRU1P VkVfVFJBQ0tJRDsKICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOiBJbiBmdW5jdGlvbiDigJhpNDBlX2Fk ZF9ybV9wcm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyNTI6MTA6IGVycm9yOiBkZXJlZmVyZW5jaW5n IHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAgICBzZWMtPnNlY3Rpb24ub2Zmc2V0KSkt PnRyYWNrX2lkOwogICAgICAgICAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJp dmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU0OjI6IGVycm9yOiBpbXBsaWNpdCBkZWNs YXJhdGlvbiBvZiBmdW5jdGlvbiDigJhpNDBlX2FxX3dyaXRlX3BwcOKAmSBbLVdlcnJvcj1pbXBs aWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICBzdGF0dXMgPSBpNDBlX2FxX3dyaXRlX3BwcCho dywgKHZvaWQgKilzZWMsIHNlYy0+ZGF0YV9lbmQsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU0OjI6IGVycm9yOiBu ZXN0ZWQgZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfYXFfd3JpdGVfcHBw4oCZIFstV2Vy cm9yPW5lc3RlZC1leHRlcm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVy cy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjU0OjQ5OiBlcnJvcjogZGVyZWZlcmVuY2luZyBw b2ludGVyIHRvIGluY29tcGxldGUgdHlwZQogIHN0YXR1cyA9IGk0MGVfYXFfd3JpdGVfcHBwKGh3 LCAodm9pZCAqKXNlYywgc2VjLT5kYXRhX2VuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzogSW4gZnVuY3Rpb24g4oCYaTQwZV9jaGVja19w cm9maWxlX2luZm/igJk6Ci9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25l dC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEyODc6MjogZXJyb3I6IGltcGxpY2l0IGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFstV2Vycm9yPWltcGxpY2l0 LWZ1bmN0aW9uLWRlY2xhcmF0aW9uXQogIHJldCA9IGk0MGVfYXFfZ2V0X3BwcF9saXN0KGh3LCAo dm9pZCAqKWJ1ZmYsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9u ZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMjg3OjI6IGVycm9yOiBuZXN0ZWQgZXh0ZXJuIGRlY2xh cmF0aW9uIG9mIOKAmGk0MGVfYXFfZ2V0X3BwcF9saXN04oCZIFstV2Vycm9yPW5lc3RlZC1leHRl cm5zXQovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBl X2V0aGRldi5jOjExMjk3OjE2OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXpl b2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9o ZWFkZXLigJkKICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3Byb2ZpbGVfc2VjdGlvbl9oZWFk ZXIpKTsKICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2Ry aXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwMjoxNTogZXJyb3I6IGludmFsaWQgYXBw bGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQw ZV9wcHBfdmVyc2lvbuKAmQogICAgICAgIHNpemVvZihzdHJ1Y3QgaTQwZV9wcHBfdmVyc2lvbikp ICYmCiAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTMwNDo4OiBlcnJvcjog4oCYSTQwRV9QUFBfTkFN RV9TSVpF4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQogICAgICAg IEk0MEVfUFBQX05BTUVfU0laRSkpIHsKICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21w aWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6IEluIGZ1bmN0aW9uIOKAmHJ0 ZV9wbWRfaTQwZV9wcm9jZXNzX3BwcF9wYWNrYWdl4oCZOgovaG9tZS9wYXRjaFdvcmtPcmcvY29t cGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzM5OjIxOiBlcnJvcjog aW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0ZSB0eXBlIOKA mHN0cnVjdCBpNDBlX3BhY2thZ2VfaGVhZGVy4oCZCiAgaWYgKHNpemUgPCAoc2l6ZW9mKHN0cnVj dCBpNDBlX3BhY2thZ2VfaGVhZGVyKSArCiAgICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0 Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM0 MDoxNDogZXJyb3I6IGludmFsaWQgYXBwbGljYXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29t cGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9tZXRhZGF0YV9zZWdtZW504oCZCiAgICAgICBzaXpl b2Yoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2VnbWVudCkgKwogICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTM1MzoxMzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBsZXRlIHR5cGUK ICBpZiAocGtnX2hkci0+c2VnbWVudF9jb3VudCA8IDIpIHsKICAgICAgICAgICAgIF4KL2hvbWUv cGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzox MTM1OToyOiBlcnJvcjogaW1wbGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYaTQwZV9m aW5kX3NlZ21lbnRfaW5fcGFja2FnZeKAmSBbLVdlcnJvcj1pbXBsaWNpdC1mdW5jdGlvbi1kZWNs YXJhdGlvbl0KICBtZXRhZGF0YV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5fcGFja2Fn ZShTRUdNRU5UX1RZUEVfTUVUQURBVEEsCiAgXgovaG9tZS9wYXRjaFdvcmtPcmcvY29tcGlsYXRp b24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzU5OjI6IGVycm9yOiBuZXN0ZWQg ZXh0ZXJuIGRlY2xhcmF0aW9uIG9mIOKAmGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2XigJkg Wy1XZXJyb3I9bmVzdGVkLWV4dGVybnNdCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9k cml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzNTk6NTA6IGVycm9yOiDigJhTRUdNRU5U X1RZUEVfTUVUQURBVEHigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24p CiAgbWV0YWRhdGFfc2VnX2hkciA9IGk0MGVfZmluZF9zZWdtZW50X2luX3BhY2thZ2UoU0VHTUVO VF9UWVBFX01FVEFEQVRBLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0 MGUvaTQwZV9ldGhkZXYuYzoxMTM2NTo2MzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0 byBpbmNvbXBsZXRlIHR5cGUKICB0cmFja19pZCA9ICgoc3RydWN0IGk0MGVfbWV0YWRhdGFfc2Vn bWVudCAqKW1ldGFkYXRhX3NlZ19oZHIpLT50cmFja19pZDsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzY4OjQ5 OiBlcnJvcjog4oCYU0VHTUVOVF9UWVBFX0k0MEXigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiAgcHJvZmlsZV9zZWdfaGRyID0gaTQwZV9maW5kX3NlZ21lbnRfaW5f cGFja2FnZShTRUdNRU5UX1RZUEVfSTQwRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZl cnMvbmV0L2k0MGUvaTQwZV9ldGhkZXYuYzoxMTM3NjoxODogZXJyb3I6IGludmFsaWQgYXBwbGlj YXRpb24gb2Yg4oCYc2l6ZW9m4oCZIHRvIGluY29tcGxldGUgdHlwZSDigJhzdHJ1Y3QgaTQwZV9w cm9maWxlX3NlY3Rpb25faGVhZGVy4oCZCiAgICAgICAgICAgc2l6ZW9mKHN0cnVjdCBpNDBlX3By b2ZpbGVfc2VjdGlvbl9oZWFkZXIpICsKICAgICAgICAgICAgICAgICAgXgovaG9tZS9wYXRjaFdv cmtPcmcvY29tcGlsYXRpb24vZHJpdmVycy9uZXQvaTQwZS9pNDBlX2V0aGRldi5jOjExMzc3OjE4 OiBlcnJvcjogaW52YWxpZCBhcHBsaWNhdGlvbiBvZiDigJhzaXplb2bigJkgdG8gaW5jb21wbGV0 ZSB0eXBlIOKAmHN0cnVjdCBpNDBlX3Byb2ZpbGVfaW5mb+KAmQogICAgICAgICAgIHNpemVvZihz dHJ1Y3QgaTQwZV9wcm9maWxlX2luZm8pLAogICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNo V29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzODc6 NTY6IGVycm9yOiBkZXJlZmVyZW5jaW5nIHBvaW50ZXIgdG8gaW5jb21wbGV0ZSB0eXBlCiAgICAg ICAgKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxlX3NlZ19oZHIpLT5uYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KL2hvbWUvcGF0Y2hXb3JrT3JnL2NvbXBpbGF0aW9uL2RyaXZlcnMvbmV0L2k0MGUvaTQwZV9l dGhkZXYuYzoxMTM4ODo1NzogZXJyb3I6IGRlcmVmZXJlbmNpbmcgcG9pbnRlciB0byBpbmNvbXBs ZXRlIHR5cGUKICAgICAgICAmKChzdHJ1Y3QgaTQwZV9wcm9maWxlX3NlZ21lbnQgKilwcm9maWxl X3NlZ19oZHIpLT52ZXJzaW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2 ZXJzL25ldC9pNDBlL2k0MGVfZXRoZGV2LmM6MTEzOTg6MzogZXJyb3I6IGltcGxpY2l0IGRlY2xh cmF0aW9uIG9mIGZ1bmN0aW9uIOKAmGk0MGVfd3JpdGVfcHJvZmlsZeKAmSBbLVdlcnJvcj1pbXBs aWNpdC1mdW5jdGlvbi1kZWNsYXJhdGlvbl0KICAgc3RhdHVzID0gaTQwZV93cml0ZV9wcm9maWxl KGh3LAogICBeCi9ob21lL3BhdGNoV29ya09yZy9jb21waWxhdGlvbi9kcml2ZXJzL25ldC9pNDBl L2k0MGVfZXRoZGV2LmM6MTEzOTg6MzogZXJyb3I6IG5lc3RlZCBleHRlcm4gZGVjbGFyYXRpb24g b2Yg4oCYaTQwZV93cml0ZV9wcm9maWxl4oCZIFstV2Vycm9yPW5lc3RlZC1leHRlcm5zXQpjYzE6 IGFsbCB3YXJuaW5ncyBiZWluZyB0cmVhdGVkIGFzIGVycm9ycwoKCkRQREsgU1RWIHRlYW0K --===============0917624861079823477==--