ports/130174: New port: net/igmpproxy multicast proxy

gm at ipfw.ru gm at ipfw.ru
Tue Jan 6 21:10:04 UTC 2009


The following reply was made to PR ports/130174; it has been noted by GNATS.

From: gm at ipfw.ru
To: bug-followup at FreeBSD.org, melifaro at ipfw.ru
Cc:  
Subject: Re: ports/130174: New port: net/igmpproxy multicast proxy
Date: Tue, 6 Jan 2009 23:43:43 +0300

 ------------DD1D5D193AB3E2
 Content-Type: text/plain; charset=windows-1251
 Content-Transfer-Encoding: quoted-printable
 
 Fixed build in 6.X and portlint -t warning
 
 
 ------------DD1D5D193AB3E2
 Content-Type: text/plain;
  name="newport.txt"
 Content-transfer-encoding: base64
 Content-Disposition: attachment;
  filename="newport.txt"
 
 IyBUaGlzIGlzIGEgc2hlbGwgYXJjaGl2ZS4gIFNhdmUgaXQgaW4gYSBmaWxlLCByZW1vdmUg
 YW55dGhpbmcgYmVmb3JlCiMgdGhpcyBsaW5lLCBhbmQgdGhlbiB1bnBhY2sgaXQgYnkgZW50
 ZXJpbmcgInNoIGZpbGUiLiAgTm90ZSwgaXQgbWF5CiMgY3JlYXRlIGRpcmVjdG9yaWVzOyBm
 aWxlcyBhbmQgZGlyZWN0b3JpZXMgd2lsbCBiZSBvd25lZCBieSB5b3UgYW5kCiMgaGF2ZSBk
 ZWZhdWx0IHBlcm1pc3Npb25zLgojCiMgVGhpcyBhcmNoaXZlIGNvbnRhaW5zOgojCiMJaWdt
 cHByb3h5CiMJaWdtcHByb3h5L01ha2VmaWxlCiMJaWdtcHByb3h5L3BrZy1kZXNjcgojCWln
 bXBwcm94eS9kaXN0aW5mbwojCWlnbXBwcm94eS9maWxlcwojCWlnbXBwcm94eS9maWxlcy9w
 YXRjaC1mYnNkCiMJaWdtcHByb3h5L2ZpbGVzL2lnbXBwcm94eQojCmVjaG8gYyAtIGlnbXBw
 cm94eQpta2RpciAtcCBpZ21wcHJveHkgPiAvZGV2L251bGwgMj4mMQplY2hvIHggLSBpZ21w
 cHJveHkvTWFrZWZpbGUKc2VkICdzL15YLy8nID5pZ21wcHJveHkvTWFrZWZpbGUgPDwgJ0VO
 RC1vZi1pZ21wcHJveHkvTWFrZWZpbGUnClgjIE5ldyBwb3J0cyBjb2xsZWN0aW9uIG1ha2Vm
 aWxlIGZvcjogIGlnbXBwcm94eQpYIyBEYXRlIGNyZWF0ZWQ6ICAgICAgICA1IEphbnVhcnkg
 MjAwOQpYIyBXaG9tOiAgICAgICAgICAgICAgICBhc2FtaQpYIwpYIyAkRnJlZUJTRCQKWCMK
 WApYUE9SVE5BTUU9CWlnbXBwcm94eQpYUE9SVFZFUlNJT049CTAuMQpYI1BPUlRSRVZJU0lP
 Tj0JMgpYQ0FURUdPUklFUz0JbmV0ClhNQVNURVJfU0lURVM9CSR7TUFTVEVSX1NJVEVfU09V
 UkNFRk9SR0V9ClhNQVNURVJfU0lURV9TVUJESVI9CSR7UE9SVE5BTUV9ClhESVNUTkFNRT0J
 JHtQT1JUTkFNRX0tc3JjLSR7UE9SVFZFUlNJT059LWJldGEyClgKWE1BSU5UQUlORVI9CW1l
 bGlmYXJvQGlwZncucnUKWENPTU1FTlQ9CU11bHRpY2FzdCByb3V0ZXIgdXRpbGl6aW5nIElH
 TVAgZm9yd2FyZGluZwpYClhIT01FUEFHRT0JaHR0cDovL2lnbXBwcm94eS5zb3VyY2Vmb3Jn
 ZS5uZXQvClhXUktTUkM9CQkke1dSS0RJUn0vaWdtcHByb3h5L3NyYwpYClhNQU41PQkJaWdt
 cHByb3h5LmNvbmYuNQpYTUFOOD0JCWlnbXBwcm94eS44ClgKWFBMSVNUX0ZJTEVTPQlzYmlu
 L2lnbXBwcm94eSBcClgJCWV0Yy9pZ21wcHJveHkuY29uZi5zYW1wbGUgXApYCQlldGMvcmMu
 ZC9pZ21wcHJveHkKWApYZG8taW5zdGFsbDoKWAkke0lOU1RBTExfUFJPR1JBTX0gJHtXUktT
 UkN9L2lnbXBwcm94eSAke1BSRUZJWH0vc2JpbgpYCSR7SU5TVEFMTF9NQU59ICR7V1JLU1JD
 fS8uLi9kb2MvaWdtcHByb3h5LjggJHtQUkVGSVh9L21hbi9tYW44ClgJJHtJTlNUQUxMX01B
 Tn0gJHtXUktTUkN9Ly4uL2RvYy9pZ21wcHJveHkuY29uZi41ICR7UFJFRklYfS9tYW4vbWFu
 NQpYCSR7SU5TVEFMTF9EQVRBfSAke1dSS1NSQ30vaWdtcHByb3h5LmNvbmYgJHtQUkVGSVh9
 L2V0Yy9pZ21wcHJveHkuY29uZi5zYW1wbGUKWAkke0lOU1RBTExfU0NSSVBUfSAke0ZJTEVT
 RElSfS9pZ21wcHJveHkgJHtQUkVGSVh9L2V0Yy9yYy5kClgKWC5pbmNsdWRlIDxic2QucG9y
 dC5taz4KRU5ELW9mLWlnbXBwcm94eS9NYWtlZmlsZQplY2hvIHggLSBpZ21wcHJveHkvcGtn
 LWRlc2NyCnNlZCAncy9eWC8vJyA+aWdtcHByb3h5L3BrZy1kZXNjciA8PCAnRU5ELW9mLWln
 bXBwcm94eS9wa2ctZGVzY3InClhpZ21wcHJveHkgaXMgYSBzaW1wbGUgbXVsdGljYXN0IHJv
 dXRpbmcgZGFlbW9uIGJhc2VkIG9uIG1yb3V0ZWQuIEl0IHVzZXMgSUdNUApYZm9yd2FyZGlu
 ZyB0byBkeW5hbWljYWxseSByb3V0ZSBtdWx0aWNhc3QgdHJhZmZpYy4gClhSZXFpdXJlcyBt
 dWx0aWNhc3QgZm9yd2FyZGluZyBlbmFibGVkClgKWFdXVzogaHR0cDovL2lnbXBwcm94eS5z
 b3VyY2Vmb3JnZS5uZXQvCkVORC1vZi1pZ21wcHJveHkvcGtnLWRlc2NyCmVjaG8geCAtIGln
 bXBwcm94eS9kaXN0aW5mbwpzZWQgJ3MvXlgvLycgPmlnbXBwcm94eS9kaXN0aW5mbyA8PCAn
 RU5ELW9mLWlnbXBwcm94eS9kaXN0aW5mbycKWE1ENSAoaWdtcHByb3h5LXNyYy0wLjEtYmV0
 YTIudGFyLmd6KSA9IDJhNWE1OTQ4MGY0NGQ0YjE0MDc3YTZiNTMxOWU5OTQwClhTSEEyNTYg
 KGlnbXBwcm94eS1zcmMtMC4xLWJldGEyLnRhci5neikgPSA3ZjZlNTQ4NmU4NDgyNzE1MGM4
 Y2E0MDI5NjdjOTYzMzRiYmQ2MmI5Zjc4NTE5NWM0ZWU4NGRhMTIxOGFiYjQwClhTSVpFIChp
 Z21wcHJveHktc3JjLTAuMS1iZXRhMi50YXIuZ3opID0gMzUxMDMKRU5ELW9mLWlnbXBwcm94
 eS9kaXN0aW5mbwplY2hvIGMgLSBpZ21wcHJveHkvZmlsZXMKbWtkaXIgLXAgaWdtcHByb3h5
 L2ZpbGVzID4gL2Rldi9udWxsIDI+JjEKZWNobyB4IC0gaWdtcHByb3h5L2ZpbGVzL3BhdGNo
 LWZic2QKc2VkICdzL15YLy8nID5pZ21wcHJveHkvZmlsZXMvcGF0Y2gtZmJzZCA8PCAnRU5E
 LW9mLWlnbXBwcm94eS9maWxlcy9wYXRjaC1mYnNkJwpYZGlmZiAtdXJOIE1ha2VmaWxlIGln
 bXBwcm94eS5uZXcvc3JjL01ha2VmaWxlClgtLS0gTWFrZWZpbGUJMjAwNS0wOC0yMCAxNjoz
 NDoxOC4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHkubmV3L3NyYy9NYWtlZmlsZQky
 MDA5LTAxLTA1IDAyOjM1OjU2LjAwMDAwMDAwMCArMDMwMApYQEAgLTEsMTIgKzEsMTIgQEAK
 WCAKWCAjQklORElSPS4uL2JpbgpYIEJJTkRJUj0vdXNyL2xvY2FsL2JpbgpYLUVUQ0RJUj0v
 ZXRjClgtTUFORElSPS91c3Ivc2hhcmUvbWFuClgrRVRDRElSPS91c3IvbG9jYWwvZXRjClgr
 TUFORElSPS91c3IvbG9jYWwvbWFuClggClggClggIyBDRkxBR1M9LWcKWC1DRkxBR1M9LU8K
 WCtDRkxBR1MrPS1PMiAtV2FsbCAtV2V4dHJhIC1mbm8tYnVpbHRpbi1sb2cKWCAKWCBkZWZh
 dWx0IDogYnVpbGQuaCBpZ21wcHJveHkKWCAKWEBAIC0yMSw4ICsyMSwxMSBAQApYIAljcCAu
 Li9kb2MvaWdtcHByb3h5LmNvbmYuNSAke01BTkRJUn0vbWFuNQpYIAlpZiBbICEgLWUgJHtF
 VENESVJ9L2lnbXBwcm94eS5jb25mIF07IHRoZW4gY3AgaWdtcHByb3h5LmNvbmYgJHtFVENE
 SVJ9OyBmaQpYIApYLWlnbXBwcm94eSA6IGlnbXBwcm94eS5vIGNvbmZpZy5vIGNvbmZyZWFk
 Lm8gcmVxdWVzdC5vIHVkcHNvY2subyBtY2dyb3VwLm8gcnR0YWJsZS5vIFwKWC0JCQlpZ21w
 Lm8gaWZ2Yy5vIGNhbGxvdXQubyBrZXJuLm8gc3lzbG9nLm8gbGliLm8gbXJvdXRlLWFwaS5v
 ClgrU1JDID0gaWdtcHByb3h5LmMgY29uZmlnLmMgY29uZnJlYWQuYyByZXF1ZXN0LmMgbWNn
 cm91cC5jIHJ0dGFibGUuYyBcClgrCQkJaWdtcC5jIGlmdmMuYyBjYWxsb3V0LmMga2Vybi5j
 IHN5c2xvZy5jIGxpYi5jIG1yb3V0ZS1hcGkuYwpYK09CSlMgPSAke1NSQzouYz0ub30KWCtp
 Z21wcHJveHk6IGJ1aWxkLmggJHtPQkpTfQpYKwljYyAke0NGTEFHU30gJHtPQkpTfSAtbyBp
 Z21wcHJveHkKWCAKWCBidWlsZC5oCTogIApYIAllY2hvICcjZGVmaW5lIEJVSUxEICInIGBk
 YXRlICsleSVtJWRgICciJyA+YnVpbGQuaApYZGlmZiAtdXJOIGNvbmZpZy5jIGlnbXBwcm94
 eS5uZXcvc3JjL2NvbmZpZy5jClgtLS0gY29uZmlnLmMJMjAwNS0wNS0yNCAxOTo0OToyOS4w
 MDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHkubmV3L3NyYy9jb25maWcuYwkyMDA5LTAx
 LTA1IDAxOjU4OjI3LjAwMDAwMDAwMCArMDMwMApYQEAgLTE3Nyw3ICsxNzcsNyBAQApYICAg
 ICB9ClggClggICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgVklGcy4uLgpYLSAgICBmb3IgKCBJ
 eCA9IDA7IERwID0gZ2V0SWZCeUl4KCBJeCApOyBJeCsrICkgewpYKyAgICBmb3IgKCBJeCA9
 IDA7IChEcCA9IGdldElmQnlJeCggSXggKSk7IEl4KysgKSB7ClggICAgICAgICBpZiAoIERw
 LT5JbkFkci5zX2FkZHIgJiYgISAoRHAtPkZsYWdzICYgSUZGX0xPT1BCQUNLKSApIHsKWCAK
 WCAgICAgICAgICAgICAvLyBOb3cgdHJ5IHRvIGZpbmQgYSBtYXRjaGluZyBjb25maWcuLi4K
 WEBAIC0yNTUsNyArMjU1LDcgQEAKWCAgICAgd2hpbGUodG9rZW4gIT0gTlVMTCkgewpYICAg
 ICAgICAgaWYoc3RyY21wKCJhbHRuZXQiLCB0b2tlbik9PTApIHsKWCAgICAgICAgICAgICAv
 LyBBbHRuZXQuLi4KWC0gICAgICAgICAgICBzdHJ1Y3QgaW5fYWRkciAgbmV0d29ya0FkZHI7
 ClgrICAgICAgICAgICAgLy9zdHJ1Y3QgaW5fYWRkciAgbmV0d29ya0FkZHI7ClggClggICAg
 ICAgICAgICAgdG9rZW4gPSBuZXh0Q29uZmlnVG9rZW4oKTsKWCAgICAgICAgICAgICBJRl9E
 RUJVRyBsb2coTE9HX0RFQlVHLCAwLCAiQ29uZmlnOiBJRjogR290IGFsdG5ldCB0b2tlbiAl
 cy4iLHRva2VuKTsKWEBAIC0zNDcsNyArMzQ3LDcgQEAKWCAgICAgICAgIG1hc2sgPDw9ICgz
 MiAtIGJpdGNudCk7ClggICAgIH0KWCAKWC0gICAgaWYoYWRkciA9PSAtMSB8fCBhZGRyID09
 IDApIHsKWCsgICAgaWYoYWRkciA9PSAodWludDMyKSAtMSB8fCBhZGRyID09IDApIHsKWCAg
 ICAgICAgIGxvZyhMT0dfV0FSTklORywgMCwgIlVuYWJsZSB0byBwYXJzZSBhZGRyZXNzIHRv
 a2VuICclcycuIiwgYWRkcnN0cik7ClggICAgICAgICByZXR1cm4gTlVMTDsKWCAgICAgfQpY
 ZGlmZiAtdXJOIGRlZnMuaCBpZ21wcHJveHkubmV3L3NyYy9kZWZzLmgKWC0tLSBkZWZzLmgJ
 MjAwNS0wOC0yMCAxNjo0NDo0Ny4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHkubmV3
 L3NyYy9kZWZzLmgJMjAwOS0wMS0wNSAwMjoxMDoxMS4wMDAwMDAwMDAgKzAzMDAKWEBAIC00
 MCwxMCArNDAsMTggQEAKWCAjaW5jbHVkZSA8c3RkbGliLmg+ClggI2luY2x1ZGUgPHN5c2xv
 Zy5oPgpYICNpbmNsdWRlIDxzaWduYWwuaD4KWC0KWCAjaW5jbHVkZSA8c3lzL3NvY2tldC5o
 PgpYKwpYKyNpZmRlZiBfX0ZyZWVCU0RfXwpYKyNpbmNsdWRlIDxzdHJpbmcuaD4KWCsjaW5j
 bHVkZSA8dW5pc3RkLmg+ClgrI2luY2x1ZGUgPGZjbnRsLmg+ClgrI2luY2x1ZGUgPHN5cy9p
 b2N0bC5oPgpYKwpYKyNlbHNlClggI2luY2x1ZGUgPHN5cy91bi5oPgpYICNpbmNsdWRlIDxz
 eXMvdGltZS5oPgpYKyNlbmRpZgpYIApYICNpbmNsdWRlIDxuZXQvaWYuaD4KWCAKWEBAIC01
 MiwxNSArNjAsMjUgQEAKWCAgICAgI2luY2x1ZGUgPGxpbnV4L2luLmg+ClggICAgICNpbmNs
 dWRlIDxsaW51eC9tcm91dGUuaD4KWCAjZWxzZQpYKyNpZmRlZiBfX0ZyZWVCU0RfXwpYKyAg
 ICAjaW5jbHVkZSA8YWxpYXMuaD4KWCsgICAgI2luY2x1ZGUgPG5ldC9yb3V0ZS5oPgpYICAg
 ICAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgpYKyAgICAjaW5jbHVkZSA8bmV0aW5ldC9pcF9t
 cm91dGUuaD4KWCsjZW5kaWYKWCsgICAgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KWCsgICAg
 I2luY2x1ZGUgPG5ldGluZXQvaW5fc3lzdG0uaD4KWCAgICAgI2luY2x1ZGUgPG5ldGluZXQv
 aXAuaD4KWCAgICAgI2luY2x1ZGUgPG5ldGluZXQvaWdtcC5oPgpYICAgICAjaW5jbHVkZSA8
 YXJwYS9pbmV0Lmg+ClggI2VuZGlmClggClgtClggLy8gVGhlIGRlZmF1bHQgcGF0aCBmb3Ig
 dGhlIGNvbmZpZyBmaWxlLi4uClgrI2lmZGVmIF9fRnJlZUJTRF9fClgrI2RlZmluZSAgICAg
 SUdNUFBST1hZX0NPTkZJR19GSUxFUEFUSCAgICAgIi91c3IvbG9jYWwvZXRjL2lnbXBwcm94
 eS5jb25mIgpYKyNlbHNlClggI2RlZmluZSAgICAgSUdNUFBST1hZX0NPTkZJR19GSUxFUEFU
 SCAgICAgIi9ldGMvaWdtcHByb3h5LmNvbmYiClgrI2VuZGlmClggI2RlZmluZSAgICAgRU5B
 QkxFX0RFQlVHICAgIDEKWCAKWCAvKgpYQEAgLTcyLDkgKzkwLDMxIEBAClggClggI2RlZmlu
 ZSBNQVhfTUNfVklGUyAgICAzMiAgICAgLy8gISEhIGNoZWNrIHRoaXMgY29uc3QgaW4gdGhl
 IHNwZWNpZmljIGluY2x1ZGVzClggClgrI2lmbmRlZiBJR01QX01FTUJFUlNISVBfUVVFUlkK
 WCsjZGVmaW5lIElHTVBfTUVNQkVSU0hJUF9RVUVSWSBJR01QX0hPU1RfTUVNQkVSU0hJUF9R
 VUVSWQpYKyNlbmRpZgpYKyNpZm5kZWYgSUdNUF9WMV9NRU1CRVJTSElQX1JFUE9SVApYKyNk
 ZWZpbmUgSUdNUF9WMV9NRU1CRVJTSElQX1JFUE9SVCBJR01QX3YxX0hPU1RfTUVNQkVSU0hJ
 UF9SRVBPUlQKWCsjZW5kaWYKWCsjaWZuZGVmIElHTVBfVjJfTUVNQkVSU0hJUF9SRVBPUlQK
 WCsjZGVmaW5lIElHTVBfVjJfTUVNQkVSU0hJUF9SRVBPUlQgSUdNUF92Ml9IT1NUX01FTUJF
 UlNISVBfUkVQT1JUClgrI2VuZGlmClgrI2lmbmRlZiBJR01QX1YyX0xFQVZFX0dST1VQClgr
 I2RlZmluZSBJR01QX1YyX0xFQVZFX0dST1VQIElHTVBfSE9TVF9MRUFWRV9NRVNTQUdFClgr
 I2VuZGlmClgrClgrI2lmbmRlZiBJTkFERFJfQUxMUlRSU19HUk9VUApYKy8qIGFkZHJlc3Mg
 Zm9yIG11bHRpY2FzdCBtdHJhY2UgbXNnICovClgrI2RlZmluZSBJTkFERFJfQUxMUlRSU19H
 Uk9VUCAgICAodV9pbnQzMl90KTB4ZTAwMDAwMDIgICAvKiAyMjQuMC4wLjIgKi8KWCsjZW5k
 aWYKWCsKWCAvLyBVc2VmdWwgbWFjcm9zLi4gICAgICAgICAgClgrI2lmbmRlZiBNSU4KWCAj
 ZGVmaW5lIE1JTiggYSwgYiApICgoYSkgPCAoYikgPyAoYSkgOiAoYikpClgrI2VuZGlmClgr
 I2lmbmRlZiBNQVgKWCAjZGVmaW5lIE1BWCggYSwgYiApICgoYSkgPCAoYikgPyAoYikgOiAo
 YSkpClgrI2VuZGlmClggI2RlZmluZSBWQ01DKCBWYyApICAoc2l6ZW9mKCBWYyApIC8gc2l6
 ZW9mKCAoVmMpWyAwIF0gKSkKWCAjZGVmaW5lIFZDRVAoIFZjICkgICgmKFZjKVsgVkNNQygg
 VmMgKSBdKQpYIApYQEAgLTEyNiw3ICsxNjYsMTIgQEAKWCAKWCAjZGVmaW5lCSAgICBJRl9E
 RUJVRwlpZihMb2cyU3RkZXJyICYgTE9HX0RFQlVHKQpYIApYLXZvaWQgbG9nKCBpbnQgU2Vy
 dmVyaXR5LCBpbnQgRXJybm8sIGNvbnN0IGNoYXIgKkZtdFN0LCAuLi4gKTsKWCsjaWZkZWYg
 REVWRUxfTE9HR0lORwpYKyNkZWZpbmUgbG9nKFNldmVyaXR5LCBFcnJubywgRm10LCBhcmdz
 Li4uKQlfbG9nKChTZXZlcml0eSksIChFcnJubyksIF9fRlVOQ1RJT05fXywgX19MSU5FX18s
 IChGbXQpLCAjI2FyZ3MpClgrdm9pZCBfbG9nKCBpbnQgU2VydmVyaXR5LCBpbnQgRXJybm8s
 IGNvbnN0IGNoYXIgKmZ1bmMsIGludCBsaW5lLCBjb25zdCBjaGFyICpGbXRTdCwgLi4uKTsK
 WCsjZWxzZQpYK3ZvaWQgbG9nKCBpbnQgU2VydmVyaXR5LCBpbnQgRXJybm8sIGNvbnN0IGNo
 YXIgKkZtdFN0LCAuLi4pOwpYKyNlbmRpZgpYIApYIC8qIGlmdmMuYwpYICAqLwpYQEAgLTE5
 Niw2ICsyNDEsNyBAQApYIHN0cnVjdCBJZkRlc2MgKmdldElmQnlOYW1lKCBjb25zdCBjaGFy
 ICpJZk5hbWUgKTsKWCBzdHJ1Y3QgSWZEZXNjICpnZXRJZkJ5SXgoIHVuc2lnbmVkIEl4ICk7
 Clggc3RydWN0IElmRGVzYyAqZ2V0SWZCeUFkZHJlc3MoIHVpbnQzMiBJeCApOwpYK2ludCBp
 c0FkcmVzc1ZhbGlkRm9ySWYoIHN0cnVjdCBJZkRlc2MqIGludHJmYWNlLCB1aW50MzIgaXBh
 ZGRyICk7ClggClggLyogbXJvdXRlLWFwaS5jClggICovClhAQCAtMjM1LDcgKzI4MSw3IEBA
 ClggY2hhciAgICpmbXRJbkFkciggY2hhciAqU3QsIHN0cnVjdCBpbl9hZGRyIEluQWRyICk7
 ClggY2hhciAgICppbmV0Rm10KHVpbnQzMiBhZGRyLCBjaGFyICpzKTsKWCBjaGFyICAgKmlu
 ZXRGbXRzKHVpbnQzMiBhZGRyLCB1aW50MzIgbWFzaywgY2hhciAqcyk7ClgtaW50ICAgICBp
 bmV0Q2tzdW0odV9zaG9ydCAqYWRkciwgdV9pbnQgbGVuKTsKWCtpbnQgICAgIGluZXRDaGtz
 dW0odV9zaG9ydCAqYWRkciwgdV9pbnQgbGVuKTsKWCAKWCAvKiBrZXJuLmMKWCAgKi8KWEBA
 IC0yNjQsNyArMzEwLDcgQEAKWCB2b2lkIGluaXRSb3V0ZVRhYmxlKCk7Clggdm9pZCBjbGVh
 ckFsbFJvdXRlcygpOwpYIGludCBpbnNlcnRSb3V0ZSh1aW50MzIgZ3JvdXAsIGludCBpZngp
 OwpYLWludCBhY3RpdmF0ZVJvdXRlKHVpbnQzMiBncm91cCwgdWludDMyIG9yaWdpbkFkZHIp
 OwpYK2ludCBhY3RpdmF0ZVJvdXRlKHVpbnQzMiBncm91cCwgdWludDMyIG9yaWdpbkFkZHIs
 IGludCBkb3duSWYpOwpYIHZvaWQgYWdlQWN0aXZlUm91dGVzKCk7Clggdm9pZCBzZXRSb3V0
 ZUxhc3RNZW1iZXJNb2RlKHVpbnQzMiBncm91cCk7ClggaW50IGxhc3RNZW1iZXJHcm91cEFn
 ZSh1aW50MzIgZ3JvdXApOwpYZGlmZiAtdXJOIGlmdmMuYyBpZ21wcHJveHkubmV3L3NyYy9p
 ZnZjLmMKWC0tLSBpZnZjLmMJMjAwNS0wNS0yNCAxOTo0OToxOC4wMDAwMDAwMDAgKzA0MDAK
 WCsrKyBpZ21wcHJveHkubmV3L3NyYy9pZnZjLmMJMjAwOS0wMS0wNSAwMjoyNDowMi4wMDAw
 MDAwMDAgKzAzMDAKWEBAIC0zMiw3ICszMiwxMSBAQApYICovClggClggI2luY2x1ZGUgImRl
 ZnMuaCIKWCsjaWZkZWYgX19GcmVlQlNEX18KWCsjaW5jbHVkZSA8aWZhZGRycy5oPgpYKyNl
 bHNlClggI2luY2x1ZGUgPGxpbnV4L3NvY2tpb3MuaD4KWCsjZW5kaWYKWCAKWCBzdHJ1Y3Qg
 SWZEZXNjIElmRGVzY1ZjWyBNQVhfSUYgXSwgKklmRGVzY0VwID0gSWZEZXNjVmM7ClggClhA
 QCAtNDIsMTE5ICs0Niw5MSBAQApYICoqICAgICAgICAgIApYICovClggdm9pZCBidWlsZElm
 VmMoKSB7ClgtICAgIHN0cnVjdCBpZnJlcSBJZlZjWyBzaXplb2YoIElmRGVzY1ZjICkgLyBz
 aXplb2YoIElmRGVzY1ZjWyAwIF0gKSAgXTsKWC0gICAgc3RydWN0IGlmcmVxICpJZkVwOwpY
 KyAgICBzdHJ1Y3QgaWZhZGRycyAqaWZhcCwgKmlmYTsKWCsgICAgc3RydWN0IElmRGVzYyAq
 aWZwOwpYKyAgICBzdHJ1Y3QgU3VibmV0TGlzdCAqbmV0OwpYIApYLSAgICBpbnQgU29jazsK
 WC0KWC0gICAgaWYgKCAoU29jayA9IHNvY2tldCggQUZfSU5FVCwgU09DS19ER1JBTSwgMCAp
 KSA8IDAgKQpYLSAgICAgICAgbG9nKCBMT0dfRVJSLCBlcnJubywgIlJBVyBzb2NrZXQgb3Bl
 biIgKTsKWC0KWC0gICAgLyogZ2V0IElmIHZlY3RvcgpYLSAgICAgKi8KWC0gICAgewpYLSAg
 ICAgICAgc3RydWN0IGlmY29uZiBJb0N0bFJlcTsKWC0KWC0gICAgICAgIElvQ3RsUmVxLmlm
 Y19idWYgPSAodm9pZCAqKUlmVmM7ClgtICAgICAgICBJb0N0bFJlcS5pZmNfbGVuID0gc2l6
 ZW9mKCBJZlZjICk7ClgtClgtICAgICAgICBpZiAoIGlvY3RsKCBTb2NrLCBTSU9DR0lGQ09O
 RiwgJklvQ3RsUmVxICkgPCAwICkKWC0gICAgICAgICAgICBsb2coIExPR19FUlIsIGVycm5v
 LCAiaW9jdGwgU0lPQ0dJRkNPTkYiICk7ClgtClgtICAgICAgICBJZkVwID0gKHZvaWQgKiko
 KGNoYXIgKilJZlZjICsgSW9DdGxSZXEuaWZjX2xlbik7ClgtICAgIH0KWCsgICAgaWYgKGdl
 dGlmYWRkcnMoJmlmYXApIDwgMCkKWCsJbG9nKCBMT0dfRVJSLCBlcnJubywgImdldGlmYWRk
 cnMiICk7ClggClggICAgIC8qIGxvb3Agb3ZlciBpbnRlcmZhY2VzIGFuZCBjb3B5IGludGVy
 ZmFjZSBpbmZvIHRvIElmRGVzY1ZjClggICAgICAqLwpYICAgICB7ClgtICAgICAgICBzdHJ1
 Y3QgaWZyZXEgICpJZlB0OwpYLSAgICAgICAgc3RydWN0IElmRGVzYyAqSWZEcDsKWC0KWCAg
 ICAgICAgIC8vIFRlbXAga2VlcGVycyBvZiBpbnRlcmZhY2UgcGFyYW1zLi4uClggICAgICAg
 ICB1aW50MzIgYWRkciwgc3VibmV0LCBtYXNrOwpYIApYLSAgICAgICAgZm9yICggSWZQdCA9
 IElmVmM7IElmUHQgPCBJZkVwOyBJZlB0KysgKSB7ClgtICAgICAgICAgICAgc3RydWN0IGlm
 cmVxIElmUmVxOwpYKyAgICAgICAgZm9yIChpZmEgPSBpZmFwOyBpZmE7IGlmYSA9IGlmYS0+
 aWZhX25leHQpIHsKWCAgICAgICAgICAgICBjaGFyIEZtdEJ1WyAzMiBdOwpYIApYLSAgICAg
 ICAgICAgIHN0cm5jcHkoIElmRGVzY0VwLT5OYW1lLCBJZlB0LT5pZnJfbmFtZSwgc2l6ZW9m
 KCBJZkRlc2NFcC0+TmFtZSApICk7ClgtClgtICAgICAgICAgICAgLy8gQ3VycmVudGx5IGRv
 bid0IHNldCBhbnkgYWxsb3dlZCBuZXRzLi4uClgtICAgICAgICAgICAgLy9JZkRlc2NFcC0+
 YWxsb3dlZG5ldHMgPSBOVUxMOwpYLQpYLSAgICAgICAgICAgIC8vIFNldCB0aGUgaW5kZXgg
 dG8gLTEgYnkgZGVmYXVsdC4KWC0gICAgICAgICAgICBJZkRlc2NFcC0+aW5kZXggPSAtMTsK
 WCsJICAgIGlmIChJZkRlc2NFcCA+PSAmSWZEZXNjVmNbIE1BWF9JRiBdKSB7ClgrCQlsb2co
 TE9HX1dBUk5JTkcsIDAsICJUb28gbWFueSBpbnRlcmZhY2VzLCBza2lwcGluZyAlZCIsIGlm
 YS0+aWZhX25hbWUpOwpYKyAgICAgICAgICAgICAgICBjb250aW51ZTsKWCsJICAgIH0KWCAK
 WC0gICAgICAgICAgICAvKiBkb24ndCByZXRyaWV2ZSBtb3JlIGluZm8gZm9yIG5vbi1JUCBp
 bnRlcmZhY2VzClgrICAgICAgICAgICAgLyogaWdub3JlIG5vbi1JUCBpbnRlcmZhY2VzClgg
 ICAgICAgICAgICAgICovClgtICAgICAgICAgICAgaWYgKCBJZlB0LT5pZnJfYWRkci5zYV9m
 YW1pbHkgIT0gQUZfSU5FVCApIHsKWC0gICAgICAgICAgICAgICAgSWZEZXNjRXAtPkluQWRy
 LnNfYWRkciA9IDA7ICAvKiBtYXJrIGFzIG5vbi1JUCBpbnRlcmZhY2UgKi8KWC0gICAgICAg
 ICAgICAgICAgSWZEZXNjRXArKzsKWCsgICAgICAgICAgICBpZiAoIGlmYS0+aWZhX2FkZHIt
 PnNhX2ZhbWlseSAhPSBBRl9JTkVUICkKWCAgICAgICAgICAgICAgICAgY29udGludWU7Clgt
 ICAgICAgICAgICAgfQpYLQpYLSAgICAgICAgICAgIC8vIEdldCB0aGUgaW50ZXJmYWNlIGFk
 cmVzcy4uLgpYLSAgICAgICAgICAgIElmRGVzY0VwLT5JbkFkciA9ICgoc3RydWN0IHNvY2th
 ZGRyX2luICopJklmUHQtPmlmcl9hZGRyKS0+c2luX2FkZHI7ClgtICAgICAgICAgICAgYWRk
 ciA9IElmRGVzY0VwLT5JbkFkci5zX2FkZHI7ClgtClgtICAgICAgICAgICAgbWVtY3B5KCBJ
 ZlJlcS5pZnJfbmFtZSwgSWZEZXNjRXAtPk5hbWUsIHNpemVvZiggSWZSZXEuaWZyX25hbWUg
 KSApOwpYLQpYLSAgICAgICAgICAgIC8vIEdldCB0aGUgc3VibmV0IG1hc2suLi4KWC0gICAg
 ICAgICAgICBpZiAoaW9jdGwoU29jaywgU0lPQ0dJRk5FVE1BU0ssICZJZlJlcSApIDwgMCkK
 WC0gICAgICAgICAgICAgICAgbG9nKExPR19FUlIsIGVycm5vLCAiaW9jdGwgU0lPQ0dJRk5F
 VE1BU0sgZm9yICVzIiwgSWZSZXEuaWZyX25hbWUpOwpYLSAgICAgICAgICAgIG1hc2sgPSAo
 KHN0cnVjdCBzb2NrYWRkcl9pbiAqKSZJZlJlcS5pZnJfYWRkciktPnNpbl9hZGRyLnNfYWRk
 cjsKWC0gICAgICAgICAgICBzdWJuZXQgPSBhZGRyICYgbWFzazsKWCAKWC0gICAgICAgICAg
 ICAvLyBHZXQgdGhlIHBoeXNpY2FsIGluZGV4IG9mIHRoZSBJbnRlcmZhY2UKWC0gICAgICAg
 ICAgICBpZiAoaW9jdGwoU29jaywgU0lPQ0dJRklOREVYLCAmSWZSZXEgKSA8IDApClgtICAg
 ICAgICAgICAgICAgIGxvZyhMT0dfRVJSLCBlcnJubywgImlvY3RsIFNJT0NHSUZJTkRFWCBm
 b3IgJXMiLCBJZlJlcS5pZnJfbmFtZSk7ClgtICAgICAgICAgICAgClgtICAgICAgICAgICAg
 bG9nKExPR19ERUJVRywgMCwgIlBoeXNpY2FsIEluZGV4IHZhbHVlIG9mIElGICclcycgaXMg
 JWQiLApYLSAgICAgICAgICAgICAgICBJZkRlc2NFcC0+TmFtZSwgSWZSZXEuaWZyX2lmaW5k
 ZXgpOwpYKwkgICAgaWYgKChpZnAgPSBnZXRJZkJ5TmFtZShpZmEtPmlmYV9uYW1lKSkgPT0g
 TlVMTCkgewpYIApYKwkJc3RybGNweSggSWZEZXNjRXAtPk5hbWUsIGlmYS0+aWZhX25hbWUs
 IHNpemVvZiggSWZEZXNjRXAtPk5hbWUgKSApOwpYIApYLSAgICAgICAgICAgIC8qIGdldCBp
 ZiBmbGFncwpYLSAgICAgICAgICAgICoqClgtICAgICAgICAgICAgKiogdHlwaWNhbCBmbGFn
 czoKWC0gICAgICAgICAgICAqKiBsbyAgICAweDAwNDkgLT4gUnVubmluZywgTG9vcGJhY2ss
 IFVwClgtICAgICAgICAgICAgKiogZXRoeCAgMHgxMDQzIC0+IE11bHRpY2FzdCwgUnVubmlu
 ZywgQnJvYWRjYXN0LCBVcApYLSAgICAgICAgICAgICoqIGlwcHB4IDB4MDA5MSAtPiBOb0Fy
 cCwgUG9pbnRUb1BvaW50LCBVcCAKWC0gICAgICAgICAgICAqKiBncmV4ICAweDAwQzEgLT4g
 Tm9BcnAsIFJ1bm5pbmcsIFVwClgtICAgICAgICAgICAgKiogaXBpcHggMHgwMEMxIC0+IE5v
 QXJwLCBSdW5uaW5nLCBVcApYLSAgICAgICAgICAgICovClgtICAgICAgICAgICAgaWYgKCBp
 b2N0bCggU29jaywgU0lPQ0dJRkZMQUdTLCAmSWZSZXEgKSA8IDAgKQpYLSAgICAgICAgICAg
 ICAgICBsb2coIExPR19FUlIsIGVycm5vLCAiaW9jdGwgU0lPQ0dJRkZMQUdTIiApOwpYKwkJ
 bG9nKExPR19ERUJVRywgMCwgIkFkZGluZyBQaHlzaWNhbCBJbmRleCB2YWx1ZSBvZiBJRiAn
 JXMnIGlzICVkIiwKWCsJCSAgICBJZkRlc2NFcC0+TmFtZSwgaWZfbmFtZXRvaW5kZXgoSWZE
 ZXNjRXAtPk5hbWUpKTsKWCAKWC0gICAgICAgICAgICBJZkRlc2NFcC0+RmxhZ3MgPSBJZlJl
 cS5pZnJfZmxhZ3M7ClgrCQkvLyBTZXQgdGhlIGluZGV4IHRvIC0xIGJ5IGRlZmF1bHQuClgr
 CQlJZkRlc2NFcC0+aW5kZXggPSAtMTsKWCsKWCsJCS8vIEdldCB0aGUgaW50ZXJmYWNlIGFk
 cmVzcy4uLgpYKwkJSWZEZXNjRXAtPkluQWRyID0gKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilp
 ZmEtPmlmYV9hZGRyKS0+c2luX2FkZHI7ClgrClgrCQkvKiBnZXQgaWYgZmxhZ3MKWCsJCSoq
 ClgrCQkqKiB0eXBpY2FsIGZsYWdzOgpYKwkJKiogbG8gICAgMHgwMDQ5IC0+IFJ1bm5pbmcs
 IExvb3BiYWNrLCBVcApYKwkJKiogZXRoeCAgMHgxMDQzIC0+IE11bHRpY2FzdCwgUnVubmlu
 ZywgQnJvYWRjYXN0LCBVcApYKwkJKiogaXBwcHggMHgwMDkxIC0+IE5vQXJwLCBQb2ludFRv
 UG9pbnQsIFVwIApYKwkJKiogZ3JleCAgMHgwMEMxIC0+IE5vQXJwLCBSdW5uaW5nLCBVcApY
 KwkJKiogaXBpcHggMHgwMEMxIC0+IE5vQXJwLCBSdW5uaW5nLCBVcApYKwkJKi8KWCsKWCsJ
 CUlmRGVzY0VwLT5GbGFncyA9IGlmYS0+aWZhX2ZsYWdzOwpYKwpYKwkJLy8gU2V0IHRoZSBk
 ZWZhdWx0IHBhcmFtcyBmb3IgdGhlIElGLi4uClgrCQlJZkRlc2NFcC0+c3RhdGUgICAgICAg
 ICA9IElGX1NUQVRFX0RPV05TVFJFQU07ClgrCQlJZkRlc2NFcC0+cm9idXN0bmVzcyAgICA9
 IERFRkFVTFRfUk9CVVNUTkVTUzsKWCsJCUlmRGVzY0VwLT50aHJlc2hvbGQgICAgID0gREVG
 QVVMVF9USFJFU0hPTEQ7ICAgLyogdHRsIGxpbWl0ICovClgrCQlJZkRlc2NFcC0+cmF0ZWxp
 bWl0ICAgICA9IERFRkFVTFRfUkFURUxJTUlUOyAKWCsJCUlmRGVzY0VwLT5hbGxvd2VkbmV0
 cyAgID0gTlVMTDsKWCsJCWlmcCA9IElmRGVzY0VwKys7ClgrCSAgICB9ClggClggICAgICAg
 ICAgICAgLy8gSW5zZXJ0IHRoZSB2ZXJpZmllZCBzdWJuZXQgYXMgYW4gYWxsb3dlZCBuZXQu
 Li4KWC0gICAgICAgICAgICBJZkRlc2NFcC0+YWxsb3dlZG5ldHMgPSAoc3RydWN0IFN1Ym5l
 dExpc3QgKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBTdWJuZXRMaXN0KSk7ClgtICAgICAgICAg
 ICAgaWYoSWZEZXNjRXAtPmFsbG93ZWRuZXRzID09IE5VTEwpIGxvZyhMT0dfRVJSLCAwLCAi
 T3V0IG9mIG1lbW9yeSAhIik7ClgrICAgICAgICAgICAgYWRkciA9ICgoc3RydWN0IHNvY2th
 ZGRyX2luICopaWZhLT5pZmFfYWRkciktPnNpbl9hZGRyLnNfYWRkcjsKWCsgICAgICAgICAg
 ICBtYXNrID0gKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKilpZmEtPmlmYV9uZXRtYXNrKS0+c2lu
 X2FkZHIuc19hZGRyOwpYKyAgICAgICAgICAgIHN1Ym5ldCA9IGFkZHIgJiBtYXNrOwpYKwpY
 KyAgICAgICAgICAgIG5ldCA9IChzdHJ1Y3QgU3VibmV0TGlzdCAqKW1hbGxvYyhzaXplb2Yo
 c3RydWN0IFN1Ym5ldExpc3QpKTsKWCsgICAgICAgICAgICBpZihuZXQgPT0gTlVMTCkgbG9n
 KExPR19FUlIsIDAsICJPdXQgb2YgbWVtb3J5ICEiKTsKWCAgICAgICAgICAgICAKWCAgICAg
 ICAgICAgICAvLyBDcmVhdGUgdGhlIG5ldHdvcmsgYWRkcmVzcyBmb3IgdGhlIElGLi4KWC0g
 ICAgICAgICAgICBJZkRlc2NFcC0+YWxsb3dlZG5ldHMtPm5leHQgPSBOVUxMOwpYLSAgICAg
 ICAgICAgIElmRGVzY0VwLT5hbGxvd2VkbmV0cy0+c3VibmV0X21hc2sgPSBtYXNrOwpYLSAg
 ICAgICAgICAgIElmRGVzY0VwLT5hbGxvd2VkbmV0cy0+c3VibmV0X2FkZHIgPSBzdWJuZXQ7
 ClgtClgtICAgICAgICAgICAgLy8gU2V0IHRoZSBkZWZhdWx0IHBhcmFtcyBmb3IgdGhlIElG
 Li4uClgtICAgICAgICAgICAgSWZEZXNjRXAtPnN0YXRlICAgICAgICAgPSBJRl9TVEFURV9E
 T1dOU1RSRUFNOwpYLSAgICAgICAgICAgIElmRGVzY0VwLT5yb2J1c3RuZXNzICAgID0gREVG
 QVVMVF9ST0JVU1RORVNTOwpYLSAgICAgICAgICAgIElmRGVzY0VwLT50aHJlc2hvbGQgICAg
 ID0gREVGQVVMVF9USFJFU0hPTEQ7ICAgLyogdHRsIGxpbWl0ICovClgtICAgICAgICAgICAg
 SWZEZXNjRXAtPnJhdGVsaW1pdCAgICAgPSBERUZBVUxUX1JBVEVMSU1JVDsgClgrICAgICAg
 ICAgICAgbmV0LT5uZXh0ID0gaWZwLT5hbGxvd2VkbmV0czsKWCsgICAgICAgICAgICBuZXQt
 PnN1Ym5ldF9tYXNrID0gbWFzazsKWCsgICAgICAgICAgICBuZXQtPnN1Ym5ldF9hZGRyID0g
 c3VibmV0OwpYKyAgICAgICAgICAgIGlmcC0+YWxsb3dlZG5ldHMgPSBuZXQ7ClggICAgICAg
 ICAgICAgClgtClggICAgICAgICAgICAgLy8gRGVidWcgbG9nIHRoZSByZXN1bHQuLi4KWCAg
 ICAgICAgICAgICBJRl9ERUJVRyBsb2coIExPR19ERUJVRywgMCwgImJ1aWxkSWZWYzogSW50
 ZXJmYWNlICVzIEFkZHI6ICVzLCBGbGFnczogMHglMDR4LCBOZXR3b3JrOiAlcyIsClgtICAg
 ICAgICAgICAgICAgICBJZkRlc2NFcC0+TmFtZSwKWC0gICAgICAgICAgICAgICAgIGZtdElu
 QWRyKCBGbXRCdSwgSWZEZXNjRXAtPkluQWRyICksClgtICAgICAgICAgICAgICAgICBJZkRl
 c2NFcC0+RmxhZ3MsClgrICAgICAgICAgICAgICAgICBpZnAtPk5hbWUsClgrICAgICAgICAg
 ICAgICAgICBmbXRJbkFkciggRm10QnUsIGlmcC0+SW5BZHIgKSwKWCsgICAgICAgICAgICAg
 ICAgIGlmcC0+RmxhZ3MsClggICAgICAgICAgICAgICAgICBpbmV0Rm10cyhzdWJuZXQsbWFz
 aywgczEpKTsKWCAKWC0gICAgICAgICAgICBJZkRlc2NFcCsrOwpYICAgICAgICAgfSAKWC0g
 ICAgfQpYIApYLSAgICBjbG9zZSggU29jayApOwpYKyAgICB9ClgrICAgIGZyZWVpZmFkZHJz
 KGlmYXApOwpYIH0KWCAKWCAvKgpYZGlmZiAtdXJOIGlnbXAuYyBpZ21wcHJveHkubmV3L3Ny
 Yy9pZ21wLmMKWC0tLSBpZ21wLmMJMjAwNS0wNS0yNCAxOTo0OToxNi4wMDAwMDAwMDAgKzA0
 MDAKWCsrKyBpZ21wcHJveHkubmV3L3NyYy9pZ21wLmMJMjAwOS0wMS0wNSAwMjowODoxOS4w
 MDAwMDAwMDAgKzAzMDAKWEBAIC0xMDUsNyArMTA1LDcgQEAKWCAgICAgc3RydWN0IGlnbXAg
 KmlnbXA7ClggICAgIGludCBpcGRhdGFsZW4sIGlwaGRybGVuLCBpZ21wZGF0YWxlbjsKWCAK
 WC0gICAgaWYgKHJlY3ZsZW4gPCBzaXplb2Yoc3RydWN0IGlwKSkgewpYKyAgICBpZiAocmVj
 dmxlbiA8IChpbnQpIHNpemVvZihzdHJ1Y3QgaXApKSB7ClggICAgICAgICBsb2coTE9HX1dB
 Uk5JTkcsIDAsClggICAgICAgICAgICAgInJlY2VpdmVkIHBhY2tldCB0b28gc2hvcnQgKCV1
 IGJ5dGVzKSBmb3IgSVAgaGVhZGVyIiwgcmVjdmxlbik7ClggICAgICAgICByZXR1cm47ClhA
 QCAtMTI4LDYgKzEyOCw3IEBAClggICAgICAgICB9ClggICAgICAgICBlbHNlIHsKWCAgICAg
 ICAgICAgICBzdHJ1Y3QgSWZEZXNjICpjaGVja1ZJRjsKWCsJICAgIGludCBkb3duSWYgPSAt
 MTsKWCAgICAgICAgICAgICAKWCAgICAgICAgICAgICAvLyBDaGVjayBpZiB0aGUgc291cmNl
 IGFkZHJlc3MgbWF0Y2hlcyBhIHZhbGlkIGFkZHJlc3Mgb24gdXBzdHJlYW0gdmlmLgpYICAg
 ICAgICAgICAgIGNoZWNrVklGID0gZ2V0SWZCeUl4KCB1cFN0cmVhbVZpZiApOwpYQEAgLTE0
 MSwyMyArMTQyLDQ0IEBAClggICAgICAgICAgICAgICAgIHJldHVybjsKWCAgICAgICAgICAg
 ICB9ClggICAgICAgICAgICAgZWxzZSBpZighaXNBZHJlc3NWYWxpZEZvcklmKGNoZWNrVklG
 LCBzcmMpKSB7ClgtICAgICAgICAgICAgICAgIGxvZyhMT0dfV0FSTklORywgMCwgIlRoZSBz
 b3VyY2UgYWRkcmVzcyAlcyBmb3IgZ3JvdXAgJXMsIGlzIG5vdCBpbiBhbnkgdmFsaWQgbmV0
 IGZvciB1cHN0cmVhbSBWSUYuIiwKWC0gICAgICAgICAgICAgICAgICAgIGluZXRGbXQoc3Jj
 LCBzMSksIGluZXRGbXQoZHN0LCBzMikpOwpYLSAgICAgICAgICAgICAgICByZXR1cm47Clgr
 CQl1bnNpZ25lZCBJeDsKWCsJCXN0cnVjdCBJZkRlc2MgKkRwOwpYKwkJZm9yICggSXggPSAw
 OyAoRHAgPSBnZXRJZkJ5SXgoIEl4ICkpOyBJeCsrICkgewpYKwkJICAgIGlmICgoRHAtPnN0
 YXRlID09IElGX1NUQVRFX0RPV05TVFJFQU0pICYmaXNBZHJlc3NWYWxpZEZvcklmKERwLCBz
 cmMpKSB7ClgrCQkJZG93bklmID0gSXg7ClgrCQkJYnJlYWs7ClgrCQkgICAgfQpYKwkJfQpY
 KwkJClgrCQlpZiAoZG93bklmID09IC0xKSB7ClgrICAgICAgICAgICAgICAgICAgICBsb2co
 TE9HX1dBUk5JTkcsIDAsICJUaGUgc291cmNlIGFkZHJlc3MgJXMgZm9yIGdyb3VwICVzLCBp
 cyBub3QgaW4gYW55IHZhbGlkIG5ldCBmb3IgdXBzdHJlYW0gVklGLiIsClgrICAgICAgICAg
 ICAgICAgICAgICAgICAgaW5ldEZtdChzcmMsIHMxKSwgaW5ldEZtdChkc3QsIHMyKSk7Clgr
 ICAgICAgICAgICAgICAgICAgICByZXR1cm47ClgrCQl9IGVsc2UgewpYKwkJICAgIGxvZyhM
 T0dfTk9USUNFLCAwLCAiVGhlIHNvdXJjZSBhZGRyZXNzICVzIGZvciBncm91cCAlcywgaXMg
 dmFsaWQgRE9XTlNUUkVBTSBWSUYgIyVkLiIsClgrCQkgICAgICAgIGluZXRGbXQoc3JjLCBz
 MSksIGluZXRGbXQoZHN0LCBzMiksIGRvd25JZik7ClgrCQl9ClggICAgICAgICAgICAgfQpY
 ICAgICAgICAgICAgIApYICAgICAgICAgICAgIC8vIEFjdGl2YXRlIHRoZSByb3V0ZS4KWC0g
 ICAgICAgICAgICBJRl9ERUJVRyBsb2coTE9HX0RFQlVHLCAwLCAiUm91dGUgYWN0aXZhdGUg
 cmVxdWVzdCBmcm9tICVzIHRvICVzIiwKWC0gICAgICAgICAgICAgICAgICAgICAgICAgaW5l
 dEZtdChzcmMsczEpLCBpbmV0Rm10KGRzdCxzMikpOwpYLSAgICAgICAgICAgIGFjdGl2YXRl
 Um91dGUoZHN0LCBzcmMpOwpYKyAgICAgICAgICAgIElGX0RFQlVHIGxvZyhMT0dfREVCVUcs
 IDAsICJSb3V0ZSBhY3RpdmF0ZSByZXF1ZXN0IGZyb20gJXMgdG8gJXMsIGRvd25JZiAlZCIs
 ClgrICAgICAgICAgICAgICAgICAgICAgICAgIGluZXRGbXQoc3JjLHMxKSwgaW5ldEZtdChk
 c3QsczIpLCBkb3duSWYpOwpYKyAgICAgICAgICAgIGFjdGl2YXRlUm91dGUoZHN0LCBzcmMs
 IGRvd25JZik7ClggICAgICAgICAgICAgClggClggICAgICAgICB9ClggICAgICAgICByZXR1
 cm47ClggICAgIH0KWCAKWCsgICAgbG9nKExPR19ERUJVRywgMCwgIlBhY2tldCBmcm9tICVz
 OiBwcm90bzogJWQgaGRybGVuOiAlZCBpcGxlbjogJWQgb3IgJWQiLCAKWCsJCSAgICBpbmV0
 Rm10KHNyYywgczEpLCBpcC0+aXBfcCwgaXAtPmlwX2hsIDw8IDIsIGlwLT5pcF9sZW4sIG50
 b2hzKGlwLT5pcF9sZW4pKTsKWCsKWCAgICAgaXBoZHJsZW4gID0gaXAtPmlwX2hsIDw8IDI7
 ClgrI2lmZGVmIFJBV19JTlBVVF9JU19SQVcKWCAgICAgaXBkYXRhbGVuID0gbnRvaHMoaXAt
 PmlwX2xlbikgLSBpcGhkcmxlbjsKWCsjZWxzZQpYKyAgICBpcGRhdGFsZW4gPSBpcC0+aXBf
 bGVuOwpYKyNlbmRpZiAgICAKWCAKWCAgICAgaWYgKGlwaGRybGVuICsgaXBkYXRhbGVuICE9
 IHJlY3ZsZW4pIHsKWCAgICAgICAgIGxvZyhMT0dfV0FSTklORywgMCwKWEBAIC0xNzYsOSAr
 MTk4LDkgQEAKWCAgICAgICAgIHJldHVybjsKWCAgICAgfQpYIApYLSAgICBsb2coTE9HX05P
 VElDRSwgMCwgIlJFQ1YgJXMgZnJvbSAlLTE1cyB0byAlcyIsClgrICAgIGxvZyhMT0dfTk9U
 SUNFLCAwLCAiUkVDViAlcyBmcm9tICUtMTVzIHRvICVzIChpcF9obCAlZCwgZGF0YSAlZCki
 LApYICAgICAgICAgaWdtcFBhY2tldEtpbmQoaWdtcC0+aWdtcF90eXBlLCBpZ21wLT5pZ21w
 X2NvZGUpLApYLSAgICAgICAgaW5ldEZtdChzcmMsIHMxKSwgaW5ldEZtdChkc3QsIHMyKSAp
 OwpYKyAgICAgICAgaW5ldEZtdChzcmMsIHMxKSwgaW5ldEZtdChkc3QsIHMyKSwgaXBoZHJs
 ZW4sIGlwZGF0YWxlbik7ClggClggICAgIHN3aXRjaCAoaWdtcC0+aWdtcF90eXBlKSB7Clgg
 ICAgIGNhc2UgSUdNUF9WMV9NRU1CRVJTSElQX1JFUE9SVDoKWEBAIC0xOTAsMTMgKzIxMiwx
 MCBAQApYICAgICAgICAgYWNjZXB0TGVhdmVNZXNzYWdlKHNyYywgZ3JvdXApOwpYICAgICAg
 ICAgcmV0dXJuOwpYICAgICAKWC0gICAgICAgIC8qClggICAgIGNhc2UgSUdNUF9NRU1CRVJT
 SElQX1FVRVJZOgpYICAgICAgICAgLy9hY2NlcHRfbWVtYmVyc2hpcF9xdWVyeShzcmMsIGRz
 dCwgZ3JvdXAsIGlnbXAtPmlnbXBfY29kZSk7ClggICAgICAgICByZXR1cm47ClggClgtICAg
 ICovClgtClggICAgIGRlZmF1bHQ6ClggICAgICAgICBsb2coTE9HX0lORk8sIDAsClggICAg
 ICAgICAgICAgImlnbm9yaW5nIHVua25vd24gSUdNUCBtZXNzYWdlIHR5cGUgJXggZnJvbSAl
 cyB0byAlcyIsClhAQCAtMjIwLDggKzIzOSw5IEBAClggICAgIGlwLT5pcF9zcmMuc19hZGRy
 ICAgICAgID0gc3JjOwpYICAgICBpcC0+aXBfZHN0LnNfYWRkciAgICAgICA9IGRzdDsKWCAg
 ICAgaXAtPmlwX2xlbiAgICAgICAgICAgICAgPSBNSU5fSVBfSEVBREVSX0xFTiArIElHTVBf
 TUlOTEVOICsgZGF0YWxlbjsKWCsjaWZkZWYgUkFXX09VVFBVVF9JU19SQVcKWCAgICAgaXAt
 PmlwX2xlbiAgICAgICAgICAgICAgPSBodG9ucyhpcC0+aXBfbGVuKTsKWC0KWCsjZW5kaWYK
 WCAgICAgaWYgKElOX01VTFRJQ0FTVChudG9obChkc3QpKSkgewpYICAgICAgICAgaXAtPmlw
 X3R0bCA9IGN1cnR0bDsKWCAgICAgfSBlbHNlIHsKWGRpZmYgLXVyTiBpZ21wcHJveHkuYyBp
 Z21wcHJveHkubmV3L3NyYy9pZ21wcHJveHkuYwpYLS0tIGlnbXBwcm94eS5jCTIwMDUtMDgt
 MjAgMTY6NTY6MzIuMDAwMDAwMDAwICswNDAwClgrKysgaWdtcHByb3h5Lm5ldy9zcmMvaWdt
 cHByb3h5LmMJMjAwOS0wMS0wNSAwMjo0MDoxMS4wMDAwMDAwMDAgKzAzMDAKWEBAIC04MCw3
 ICs4MCw3IEBAClggKiAgIG9uIGNvbW1hbmRsaW5lLiBUaGUgbnVtYmVyIG9mIGNvbW1hbmRs
 aW5lIGFyZ3VtZW50cywgYW5kIGEKWCAqICAgcG9pbnRlciB0byB0aGUgYXJndW1lbnRzIGFy
 ZSByZWNpZXZlZCBvbiB0aGUgbGluZS4uLgpYICovICAgIApYLWludCBtYWluKCBpbnQgQXJn
 Q24sIGNvbnN0IGNoYXIgKkFyZ1ZjW10gKSB7ClgraW50IG1haW4oIGludCBBcmdDbiwgY2hh
 ciAqQXJnVmNbXSApIHsKWCAKWCAgICAgaW50IGRlYnVnTW9kZSA9IDA7ClggClhAQCAtMTU1
 LDE3ICsxNTUsOCBAQApYICAgICAgICAgaWYgKCAhIGRlYnVnTW9kZSApIHsKWCAgICAgClgg
 ICAgICAgICAgICAgSUZfREVCVUcgbG9nKCBMT0dfREVCVUcsIDAsICJTdGFydGluZyBkYWVt
 b24gbW9kZS4iKTsKWC0gICAgClgtICAgICAgICAgICAgLy8gT25seSBkYWVtb24gZ29lcyBw
 YXN0IHRoaXMgbGluZS4uLgpYLSAgICAgICAgICAgIGlmIChmb3JrKCkpIGV4aXQoMCk7Clgt
 ICAgIApYLSAgICAgICAgICAgIC8vIERldGFjaCBkZWFtb24gZnJvbSB0ZXJtaW5hbApYLSAg
 ICAgICAgICAgIGlmICggY2xvc2UoIDAgKSA8IDAgfHwgY2xvc2UoIDEgKSA8IDAgfHwgY2xv
 c2UoIDIgKSA8IDAgClgtICAgICAgICAgICAgICAgICB8fCBvcGVuKCAiL2Rldi9udWxsIiwg
 MCApICE9IDAgfHwgZHVwMiggMCwgMSApIDwgMCB8fCBkdXAyKCAwLCAyICkgPCAwClgtICAg
 ICAgICAgICAgICAgICB8fCBzZXRwZ3JwKCkgPCAwClgtICAgICAgICAgICAgICAgKSB7Clgr
 CSAgICBpZiAoZGFlbW9uKDEsIDApICE9IDApClggICAgICAgICAgICAgICAgIGxvZyggTE9H
 X0VSUiwgZXJybm8sICJmYWlsZWQgdG8gZGV0YWNoIGRlYW1vbiIgKTsKWC0gICAgICAgICAg
 ICB9ClggICAgICAgICB9ClggICAgICAgICAKWCAgICAgICAgIC8vIEdvIHRvIHRoZSBtYWlu
 IGxvb3AuClhAQCAtMjE4LDcgKzIwOSw3IEBAClggICAgICAgICBpbnQgICAgIHZpZmNvdW50
 ID0gMDsKWCAgICAgICAgIHVwU3RyZWFtVmlmID0gLTE7ClggClgtICAgICAgICBmb3IgKCBJ
 eCA9IDA7IERwID0gZ2V0SWZCeUl4KCBJeCApOyBJeCsrICkgewpYKyAgICAgICAgZm9yICgg
 SXggPSAwOyAoRHAgPSBnZXRJZkJ5SXgoIEl4ICkpOyBJeCsrICkgewpYIApYICAgICAgICAg
 ICAgIGlmICggRHAtPkluQWRyLnNfYWRkciAmJiAhIChEcC0+RmxhZ3MgJiBJRkZfTE9PUEJB
 Q0spICkgewpYICAgICAgICAgICAgICAgICBpZihEcC0+c3RhdGUgPT0gSUZfU1RBVEVfVVBT
 VFJFQU0pIHsKWEBAIC0yMzcsNyArMjI4LDcgQEAKWCAKWCAgICAgICAgIC8vIElmIHRoZXJl
 IGlzIG9ubHkgb25lIFZJRiwgb3Igbm8gZGVmaW5lZCB1cHN0cmVhbSBWSUYsIHdlIHNlbmQg
 YW4gZXJyb3IuClggICAgICAgICBpZih2aWZjb3VudCA8IDIgfHwgdXBTdHJlYW1WaWYgPCAw
 KSB7ClgtICAgICAgICAgICAgbG9nKExPR19FUlIsIDAsICJUaGVyZSBtdXN0IGJlIGF0IGxl
 YXN0IDIgVmlmJ3Mgd2hlcmUgb25lIGlzIHVwc3RyZWFtLiIpOwpYKyAgICAgICAgICAgIGxv
 ZyhMT0dfRVJSLCAwLCAiVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCAyIFZpZidzIHdoZXJlIG9u
 ZSBpcyB1cHN0cmVhbS4gKHZpZmNvdW50ICVkLCB1cFN0cmVhbVZpZiAlZCkiLCB2aWZjb3Vu
 dCwgdXBTdHJlYW1WaWYpOwpYICAgICAgICAgfQpYICAgICB9ICAKWCAgICAgClhAQCAtMjc1
 LDcgKzI2Niw3IEBAClggICAgIHJlZ2lzdGVyIGludCByZWN2bGVuOwpYICAgICBpbnQgICAg
 IE1heEZELCBSdCwgc2VjczsKWCAgICAgZmRfc2V0ICBSZWFkRkRTOwpYLSAgICBpbnQgICAg
 IGR1bW15ID0gMDsKWCsgICAgc29ja2xlbl90CWR1bW15ID0gMDsKWCAgICAgc3RydWN0ICB0
 aW1ldmFsICBjdXJ0aW1lLCBsYXN0dGltZSwgZGlmZnRpbWUsIHR2OyAKWCAgICAgLy8gVGhl
 IHRpbWVvdXQgaXMgYSBwb2ludGVyIGluIG9yZGVyIHRvIHNldCBpdCB0byBOVUxMIGlmIG5l
 c3NlY2FyeS4KWCAgICAgc3RydWN0ICB0aW1ldmFsICAqdGltZW91dCA9ICZ0djsKWGRpZmYg
 LXVyTiBpZ21wcHJveHkuY29uZiBpZ21wcHJveHkubmV3L3NyYy9pZ21wcHJveHkuY29uZgpY
 LS0tIGlnbXBwcm94eS5jb25mCTIwMDUtMDQtMjkgMjM6Mjc6NTAuMDAwMDAwMDAwICswNDAw
 ClgrKysgaWdtcHByb3h5Lm5ldy9zcmMvaWdtcHByb3h5LmNvbmYJMjAwOS0wMS0wNSAwMjox
 MTowOC4wMDAwMDAwMDAgKzAzMDAKWEBAIC0yNSwyMiArMjUsMjIgQEAKWCAKWCAKWCAjIy0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpY
 LSMjIENvbmZpZ3VyYXRpb24gZm9yIGV0aDAgKFVwc3RyZWFtIEludGVyZmFjZSkKWCsjIyBD
 b25maWd1cmF0aW9uIGZvciBlbTAgKFVwc3RyZWFtIEludGVyZmFjZSkKWCAjIy0tLS0tLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpYLXBoeWlu
 dCBldGgwIHVwc3RyZWFtICByYXRlbGltaXQgMCAgdGhyZXNob2xkIDEKWCtwaHlpbnQgZW0w
 IHVwc3RyZWFtICByYXRlbGltaXQgMCAgdGhyZXNob2xkIDEKWCAgICAgICAgIGFsdG5ldCAx
 MC4wLjAuMC84IApYICAgICAgICAgYWx0bmV0IDE5Mi4xNjguMC4wLzI0ClggClggClggIyMt
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
 WC0jIyBDb25maWd1cmF0aW9uIGZvciBldGgxIChEb3duc3RyZWFtIEludGVyZmFjZSkKWCsj
 IyBDb25maWd1cmF0aW9uIGZvciBlbTEgKERvd25zdHJlYW0gSW50ZXJmYWNlKQpYICMjLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClgt
 cGh5aW50IGV0aDEgZG93bnN0cmVhbSAgcmF0ZWxpbWl0IDAgIHRocmVzaG9sZCAxClgrcGh5
 aW50IGVtMSBkb3duc3RyZWFtICByYXRlbGltaXQgMCAgdGhyZXNob2xkIDEKWCAKWCAKWCAj
 Iy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
 LQpYLSMjIENvbmZpZ3VyYXRpb24gZm9yIGV0aDIgKERpc2FibGVkIEludGVyZmFjZSkKWCsj
 IyBDb25maWd1cmF0aW9uIGZvciB4bDAgKERpc2FibGVkIEludGVyZmFjZSkKWCAjIy0tLS0t
 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpYLXBo
 eWludCBldGgyIGRpc2FibGVkClgrcGh5aW50IHhsMCBkaXNhYmxlZApYIApYIApYZGlmZiAt
 dXJOIG1jZ3JvdXAuYyBpZ21wcHJveHkubmV3L3NyYy9tY2dyb3VwLmMKWC0tLSBtY2dyb3Vw
 LmMJMjAwNS0wOC0yMCAxNjo1NDozNy4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHku
 bmV3L3NyYy9tY2dyb3VwLmMJMjAwOS0wMS0wNSAwMTo1ODoyNy4wMDAwMDAwMDAgKzAzMDAK
 WEBAIC00OSw3ICs0OSw2IEBAClggICAgIEN0bFJlcS5pbXJfaW50ZXJmYWNlLnNfYWRkciA9
 IElmRHAtPkluQWRyLnNfYWRkcjsKWCAgICAgClggICAgIHsKWC0gICAgICAgIGNoYXIgRm10
 QnVbIDMyIF07ClggICAgICAgICBsb2coIExPR19OT1RJQ0UsIDAsICIlc01jR3JvdXA6ICVz
 IG9uICVzIiwgQ21kU3QsIApYICAgICAgICAgICAgIGluZXRGbXQoIG1jYXN0YWRkciwgczEg
 KSwgSWZEcCA/IElmRHAtPk5hbWUgOiAiPGFueT4iICk7ClggICAgIH0KWGRpZmYgLXVyTiBt
 cm91dGUtYXBpLmMgaWdtcHByb3h5Lm5ldy9zcmMvbXJvdXRlLWFwaS5jClgtLS0gbXJvdXRl
 LWFwaS5jCTIwMDUtMDUtMjQgMTk6NDg6MzMuMDAwMDAwMDAwICswNDAwClgrKysgaWdtcHBy
 b3h5Lm5ldy9zcmMvbXJvdXRlLWFwaS5jCTIwMDktMDEtMDUgMDE6NTg6MjcuMDAwMDAwMDAw
 ICswMzAwClhAQCAtMzcsNyArMzcsOSBAQApYICovClggClggClgrI2lmbmRlZiBfX0ZyZWVC
 U0RfXwpYICNkZWZpbmUgVVNFX0xJTlVYX0lOX0gKWCsjZW5kaWYKWCAjaW5jbHVkZSAiZGVm
 cy5oIgpYIApYIC8vIE1BWF9NQ19WSUZTIGZyb20gbWNsYWIuaCBtdXN0IGhhdmUgc2FtZSB2
 YWx1ZSBhcyBNQVhWSUZTIGZyb20gbXJvdXRlLmgKWEBAIC00Nyw3ICs0OSw3IEBAClggICAg
 ICAKWCAvLyBuZWVkIGFuIElHTVAgc29ja2V0IGFzIGludGVyZmFjZSBmb3IgdGhlIG1yb3V0
 ZWQgQVBJClggLy8gLSByZWNlaXZlcyB0aGUgSUdNUCBtZXNzYWdlcwpYLWludCAgICAgICAg
 IE1Sb3V0ZXJGRDsgICAgICAgIC8qIHNvY2tldCBmb3IgYWxsIG5ldHdvcmsgSS9PICAqLwpY
 K2ludCAgICAgICAgIE1Sb3V0ZXJGRCA9IC0xOyAgICAgICAgLyogc29ja2V0IGZvciBhbGwg
 bmV0d29yayBJL08gICovClggY2hhciAgICAgICAgKnJlY3ZfYnVmOyAgICAgICAgICAgLyog
 aW5wdXQgcGFja2V0IGJ1ZmZlciAgICAgICAgICovClggY2hhciAgICAgICAgKnNlbmRfYnVm
 OyAgICAgICAgICAgLyogb3V0cHV0IHBhY2tldCBidWZmZXIgICAgICAgICovClggClhAQCAt
 MTc3LDEzICsxNzksMTUgQEAKWCAgICAgICAgIGxvZyggTE9HX05PVElDRSwgMCwgIkFkZGlu
 ZyBNRkM6ICVzIC0+ICVzLCBJbnBWSWY6ICVkIiwgClggICAgICAgICAgICAgIGZtdEluQWRy
 KCBGbXRCdU8sIEN0bFJlcS5tZmNjX29yaWdpbiApLCAKWCAgICAgICAgICAgICAgZm10SW5B
 ZHIoIEZtdEJ1TSwgQ3RsUmVxLm1mY2NfbWNhc3RncnAgKSwKWC0gICAgICAgICAgICAgQ3Rs
 UmVxLm1mY2NfcGFyZW50ID09IEFMTF9WSUZTID8gLTEgOiBDdGxSZXEubWZjY19wYXJlbnQK
 WCsgICAgICAgICAgICAgQ3RsUmVxLm1mY2NfcGFyZW50ClggICAgICAgICAgICApOwpYICAg
 ICB9ClggClggICAgIGlmICggc2V0c29ja29wdCggTVJvdXRlckZELCBJUFBST1RPX0lQLCBN
 UlRfQUREX01GQywKWCAgICAgICAgICAgICAgICAgICAgICAodm9pZCAqKSZDdGxSZXEsIHNp
 emVvZiggQ3RsUmVxICkgKSApClggICAgICAgICBsb2coIExPR19XQVJOSU5HLCBlcnJubywg
 Ik1SVF9BRERfTUZDIiApOwpYKwpYKyAgICByZXR1cm4gMDsKWCB9ClggClggLyoKWEBAIC0y
 MTAsMTMgKzIxNCwxNSBAQApYICAgICAgICAgbG9nKCBMT0dfTk9USUNFLCAwLCAiUmVtb3Zp
 bmcgTUZDOiAlcyAtPiAlcywgSW5wVklmOiAlZCIsIApYICAgICAgICAgICAgICBmbXRJbkFk
 ciggRm10QnVPLCBDdGxSZXEubWZjY19vcmlnaW4gKSwgClggICAgICAgICAgICAgIGZtdElu
 QWRyKCBGbXRCdU0sIEN0bFJlcS5tZmNjX21jYXN0Z3JwICksClgtICAgICAgICAgICAgIEN0
 bFJlcS5tZmNjX3BhcmVudCA9PSBBTExfVklGUyA/IC0xIDogQ3RsUmVxLm1mY2NfcGFyZW50
 ClgrICAgICAgICAgICAgIEN0bFJlcS5tZmNjX3BhcmVudApYICAgICAgICAgICAgKTsKWCAg
 ICAgfQpYIApYICAgICBpZiAoIHNldHNvY2tvcHQoIE1Sb3V0ZXJGRCwgSVBQUk9UT19JUCwg
 TVJUX0RFTF9NRkMsClggICAgICAgICAgICAgICAgICAgICAgKHZvaWQgKikmQ3RsUmVxLCBz
 aXplb2YoIEN0bFJlcSApICkgKQpYICAgICAgICAgbG9nKCBMT0dfV0FSTklORywgZXJybm8s
 ICJNUlRfREVMX01GQyIgKTsKWCsKWCsgICAgcmV0dXJuIDA7ClggfQpYIApYIC8qClhkaWZm
 IC11ck4gcmVxdWVzdC5jIGlnbXBwcm94eS5uZXcvc3JjL3JlcXVlc3QuYwpYLS0tIHJlcXVl
 c3QuYwkyMDA1LTA1LTI0IDE5OjQ4OjI5LjAwMDAwMDAwMCArMDQwMApYKysrIGlnbXBwcm94
 eS5uZXcvc3JjL3JlcXVlc3QuYwkyMDA5LTAxLTA1IDAyOjI2OjU0LjAwMDAwMDAwMCArMDMw
 MApYQEAgLTg4LDEwICs4OCwxMSBAQApYIApYICAgICB9IGVsc2UgewpYICAgICAgICAgLy8g
 TG9nIHRoZSBzdGF0ZSBvZiB0aGUgaW50ZXJmYWNlIHRoZSByZXBvcnQgd2FzIHJlY2lldmVk
 IG9uLgpYLSAgICAgICAgbG9nKExPR19JTkZPLCAwLCAiTWViZXJzaGlwIHJlcG9ydCB3YXMg
 cmVjaWV2ZWQgb24gJXMuIElnbm9yaW5nLiIsClgrICAgICAgICBsb2coTE9HX0lORk8sIDAs
 ICJNZW1iZXJzaGlwIHJlcG9ydCB3YXMgcmVjZWl2ZWQgb24gJXMuIElnbm9yaW5nLiIsClgg
 ICAgICAgICAgICAgc291cmNlVmlmLT5zdGF0ZT09SUZfU1RBVEVfVVBTVFJFQU0/InRoZSB1
 cHN0cmVhbSBpbnRlcmZhY2UiOiJhIGRpc2FibGVkIGludGVyZmFjZSIpOwpYICAgICB9Clgg
 ClgrICAgIGxvZyhMT0dfREVCVUcsIDAsICJFbGltaW5hdGUgY29tcGlsZXIgd2FybmluZyBm
 b3IgZmllbGQgdHlwZSA9ICV1IiwgdHlwZSk7ClggfQpYIApYIC8qKgpYQEAgLTEzNiw3ICsx
 MzcsNyBAQApYIApYICAgICB9IGVsc2UgewpYICAgICAgICAgLy8ganVzdCBpZ25vcmUgdGhl
 IGxlYXZlIHJlcXVlc3QuLi4KWC0gICAgICAgIElGX0RFQlVHIGxvZyhMT0dfREVCVUcsIDAs
 ICJUaGUgZm91bmQgaWYgZm9yICVzIHdhcyBub3QgZG93bnN0cmVhbS4gSWdub3JpbmcgbGVh
 dmUgcmVxdWVzdC4iKTsKWCsgICAgICAgIElGX0RFQlVHIGxvZyhMT0dfREVCVUcsIDAsICJU
 aGUgZm91bmQgaWYgZm9yICVzIHdhcyBub3QgZG93bnN0cmVhbS4gSWdub3JpbmcgbGVhdmUg
 cmVxdWVzdC4iLCAgaW5ldEZtdChzcmMsIHMxKSk7ClggICAgIH0KWCB9ClggClhAQCAtMTg0
 LDcgKzE4NSw3IEBAClggICAgIGludCAgICAgICAgICAgICBJeDsKWCAKWCAgICAgLy8gTG9v
 cCB0aHJvdWdoIGFsbCBkb3duc3RyZWFtIHZpZnMuLi4KWC0gICAgZm9yICggSXggPSAwOyBE
 cCA9IGdldElmQnlJeCggSXggKTsgSXgrKyApIHsKWCsgICAgZm9yICggSXggPSAwOyAoRHAg
 PSBnZXRJZkJ5SXgoIEl4ICkpOyBJeCsrICkgewpYICAgICAgICAgaWYgKCBEcC0+SW5BZHIu
 c19hZGRyICYmICEgKERwLT5GbGFncyAmIElGRl9MT09QQkFDSykgKSB7ClggICAgICAgICAg
 ICAgaWYoRHAtPnN0YXRlID09IElGX1NUQVRFX0RPV05TVFJFQU0pIHsKWCAgICAgICAgICAg
 ICAgICAgLy8gU2VuZCB0aGUgbWVtYmVyc2hpcCBxdWVyeS4uLgpYZGlmZiAtdXJOIHJ0dGFi
 bGUuYyBpZ21wcHJveHkubmV3L3NyYy9ydHRhYmxlLmMKWC0tLSBydHRhYmxlLmMJMjAwNS0w
 OC0yMCAxNjo0NjoyMC4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJveHkubmV3L3NyYy9y
 dHRhYmxlLmMJMjAwOS0wMS0wNSAwMTo1ODoyNy4wMDAwMDAwMDAgKzAzMDAKWEBAIC0zOCwx
 NSArMzgsMjIgQEAKWCAqLwpYIApYICNpbmNsdWRlICJkZWZzLmgiClgrI2luY2x1ZGUgPHN5
 cy9xdWV1ZS5oPgpYICAgICAKWCAvKioKWCAqICAgUm91dGluZyB0YWJsZSBzdHJ1Y3R1cmUg
 ZGVmaW5pdGlvbi4gRG91YmxlIGxpbmtlZCBsaXN0Li4uClggKi8KWCtzdHJ1Y3QgT3JpZ2lu
 IHsKWCsgICAgVEFJTFFfRU5UUlkoT3JpZ2luKSBuZXh0OwpYKyAgICB1aW50MzIJCW9yaWdp
 bkFkZHI7ClgrICAgIGludAkJCWZsb29kOwpYKyAgICB1aW50MzIJCXBrdGNudDsKWCt9OwpY
 KwpYIHN0cnVjdCBSb3V0ZVRhYmxlIHsKWCAgICAgc3RydWN0IFJvdXRlVGFibGUgICAqbmV4
 dHJvdXRlOyAgICAgLy8gUG9pbnRlciB0byB0aGUgbmV4dCBncm91cCBpbiBsaW5lLgpYICAg
 ICBzdHJ1Y3QgUm91dGVUYWJsZSAgICpwcmV2cm91dGU7ICAgICAvLyBQb2ludGVyIHRvIHRo
 ZSBwcmV2aW91cyBncm91cCBpbiBsaW5lLgpYICAgICB1aW50MzIgICAgICAgICAgICAgIGdy
 b3VwOyAgICAgICAgICAvLyBUaGUgZ3JvdXAgdG8gcm91dGUKWC0gICAgdWludDMyICAgICAg
 ICAgICAgICBvcmlnaW5BZGRyOyAgICAgLy8gVGhlIG9yaWdpbiBhZHJlc3MgKG9ubHkgc2V0
 IG9uIGFjdGl2YXRlZCByb3V0ZXMpClggICAgIHVpbnQzMiAgICAgICAgICAgICAgdmlmQml0
 czsgICAgICAgIC8vIEJpdHMgcmVwcmVzZW50aW5nIHJlY2lldmluZyBWSUZzLgpYIApYICAg
 ICAvLyBLZWVwcyB0aGUgdXBzdHJlYW0gbWVtYmVyc2hpcCBzdGF0ZS4uLgpYQEAgLTU2LDYg
 KzYzLDcgQEAKWCAgICAgdWludDMyICAgICAgICAgICAgICBhZ2VWaWZCaXRzOyAgICAgLy8g
 Qml0cyByZXByZXNlbnRpbmcgYWdpbmcgVklGcy4KWCAgICAgaW50ICAgICAgICAgICAgICAg
 ICBhZ2VWYWx1ZTsgICAgICAgLy8gRG93bmNvdW50ZXIgZm9yIGRlYXRoLiAgICAgICAgICAK
 WCAgICAgaW50ICAgICAgICAgICAgICAgICBhZ2VBY3Rpdml0eTsgICAgLy8gUmVjb3JkcyBh
 bnkgYWNpdGl2aXR5IHRoYXQgbm90ZXMgdGhlcmUgYXJlIHN0aWxsIGxpc3RlbmVycy4KWCsg
 ICAgVEFJTFFfSEVBRChvcmlnaW5oZWFkLCBPcmlnaW4pIG9yaWdpbkxpc3Q7IC8vIFRoZSBv
 cmlnaW4gYWRyZXNzZXMgKG5vbi1lbXB0eSBvbiBhY3RpdmF0ZWQgcm91dGVzKQpYIH07Clgg
 ClggICAgICAgICAgICAgICAgICAKWEBAIC02NSwxOSArNzMsMTcgQEAKWCAvLyBQcm90b3R5
 cGVzClggdm9pZCBsb2dSb3V0ZVRhYmxlKGNoYXIgKmhlYWRlcik7ClggaW50ICBpbnRlcm5B
 Z2VSb3V0ZShzdHJ1Y3QgUm91dGVUYWJsZSogIGNyb3V0ZSk7ClgtClgtLy8gU29ja2V0IGZv
 ciBzZW5kaW5nIGpvaW4gb3IgbGVhdmUgcmVxdWVzdHMuClgtaW50IG1jR3JvdXBTb2NrID0g
 MDsKWCtpbnQgaW50ZXJuVXBkYXRlS2VybmVsUm91dGUoc3RydWN0IFJvdXRlVGFibGUgKnJv
 dXRlLCBpbnQgYWN0aXZhdGUsIHN0cnVjdCBPcmlnaW4gKm8pOwpYIApYIApYIC8qKgpYICog
 ICBGdW5jdGlvbiBmb3IgcmV0cmlldmluZyB0aGUgTXVsdGljYXN0IEdyb3VwIHNvY2tldC4K
 WCAqLwpYIGludCBnZXRNY0dyb3VwU29jaygpIHsKWC0gICAgaWYoICEgbWNHcm91cFNvY2sg
 KSB7ClgtICAgICAgICBtY0dyb3VwU29jayA9IG9wZW5VZHBTb2NrZXQoIElOQUREUl9BTlks
 IDAgKTs7ClgrICAgIGlmIChNUm91dGVyRkQgPCAwKSB7ClgrCSAgICBsb2coTE9HX0VSUiwg
 ZXJybm8sICJubyBNUm91dGVyRkQuIik7ClggICAgIH0KWC0gICAgcmV0dXJuIG1jR3JvdXBT
 b2NrOwpYKyAgICByZXR1cm4gTVJvdXRlckZEOwpYIH0KWCAgClggLyoqClhAQCAtOTEsNyAr
 OTcsNyBAQApYICAgICByb3V0aW5nX3RhYmxlID0gTlVMTDsKWCAKWCAgICAgLy8gSm9pbiB0
 aGUgYWxsIHJvdXRlcnMgZ3JvdXAgb24gZG93bnN0cmVhbSB2aWZzLi4uClgtICAgIGZvciAo
 IEl4ID0gMDsgRHAgPSBnZXRJZkJ5SXgoIEl4ICk7IEl4KysgKSB7ClgrICAgIGZvciAoIEl4
 ID0gMDsgKERwID0gZ2V0SWZCeUl4KCBJeCApKTsgSXgrKyApIHsKWCAgICAgICAgIC8vIElm
 IHRoaXMgaXMgYSBkb3duc3RyZWFtIHZpZiwgd2Ugc2hvdWxkIGpvaW4gdGhlIEFsbCByb3V0
 ZXJzIGdyb3VwLi4uClggICAgICAgICBpZiggRHAtPkluQWRyLnNfYWRkciAmJiAhIChEcC0+
 RmxhZ3MgJiBJRkZfTE9PUEJBQ0spICYmIERwLT5zdGF0ZSA9PSBJRl9TVEFURV9ET1dOU1RS
 RUFNKSB7ClggICAgICAgICAgICAgSUZfREVCVUcgbG9nKExPR19ERUJVRywgMCwgIkpvaW5p
 bmcgYWxsLXJvdXRlcnMgZ3JvdXAgJXMgb24gdmlmICVzIiwKWEBAIC0xNjAsNiArMTY2LDcg
 QEAKWCAqLwpYIHZvaWQgY2xlYXJBbGxSb3V0ZXMoKSB7ClggICAgIHN0cnVjdCBSb3V0ZVRh
 YmxlICAgKmNyb3V0ZSwgKnJlbWFpbnJvdXRlOwpYKyAgICBzdHJ1Y3QgT3JpZ2luICpvOwpY
 IApYICAgICAvLyBMb29wIHRocm91Z2ggYWxsIHJvdXRlcy4uLgpYICAgICBmb3IoY3JvdXRl
 ID0gcm91dGluZ190YWJsZTsgY3JvdXRlOyBjcm91dGUgPSByZW1haW5yb3V0ZSkgewpYQEAg
 LTE3MSw3ICsxNzgsNyBAQApYICAgICAgICAgICAgICAgICAgICAgIGluZXRGbXQoY3JvdXRl
 LT5ncm91cCwgczEpKTsKWCAKWCAgICAgICAgIC8vIFVuaW5zdGFsbCBjdXJyZW50IHJvdXRl
 ClgtICAgICAgICBpZighaW50ZXJuVXBkYXRlS2VybmVsUm91dGUoY3JvdXRlLCAwKSkgewpY
 KyAgICAgICAgaWYoIWludGVyblVwZGF0ZUtlcm5lbFJvdXRlKGNyb3V0ZSwgMCwgTlVMTCkp
 IHsKWCAgICAgICAgICAgICBsb2coTE9HX1dBUk5JTkcsIDAsICJUaGUgcmVtb3ZhbCBmcm9t
 IEtlcm5lbCBmYWlsZWQuIik7ClggICAgICAgICB9ClggClhAQCAtMTc5LDYgKzE4NiwxMCBA
 QApYICAgICAgICAgc2VuZEpvaW5MZWF2ZVVwc3RyZWFtKGNyb3V0ZSwgMCk7ClggClggICAg
 ICAgICAvLyBDbGVhciBtZW1vcnksIGFuZCBzZXQgcG9pbnRlciB0byBuZXh0IHJvdXRlLi4u
 ClgrICAgICAgICB3aGlsZSAoKG8gPSBUQUlMUV9GSVJTVCgmY3JvdXRlLT5vcmlnaW5MaXN0
 KSkpIHsKWCsgICAgICAgICAgICBUQUlMUV9SRU1PVkUoJmNyb3V0ZS0+b3JpZ2luTGlzdCwg
 bywgbmV4dCk7ClgrICAgICAgICAgICAgZnJlZShvKTsKWCsgICAgICAgIH0KWCAgICAgICAg
 IGZyZWUoY3JvdXRlKTsKWCAgICAgfQpYICAgICByb3V0aW5nX3RhYmxlID0gTlVMTDsKWEBA
 IC0yMTIsNyArMjIzLDYgQEAKWCAgICAgClggICAgIHN0cnVjdCBDb25maWcgKmNvbmYgPSBn
 ZXRDb21tb25Db25maWcoKTsKWCAgICAgc3RydWN0IFJvdXRlVGFibGUqICBjcm91dGU7Clgt
 ICAgIGludCByZXN1bHQgPSAxOwpYIApYICAgICAvLyBTYW5pdHljaGVjayB0aGUgZ3JvdXAg
 YWRyZXNzLi4uClggICAgIGlmKCAhIElOX01VTFRJQ0FTVCggbnRvaGwoZ3JvdXApICkpIHsK
 WEBAIC0yNDEsNyArMjUxLDggQEAKWCAgICAgICAgIG5ld3JvdXRlID0gKHN0cnVjdCBSb3V0
 ZVRhYmxlKiltYWxsb2Moc2l6ZW9mKHN0cnVjdCBSb3V0ZVRhYmxlKSk7ClggICAgICAgICAv
 LyBJbnNlcnQgdGhlIHJvdXRlIGRlc2MgYW5kIGNsZWFyIGFsbCBwb2ludGVycy4uLgpYICAg
 ICAgICAgbmV3cm91dGUtPmdyb3VwICAgICAgPSBncm91cDsKWC0gICAgICAgIG5ld3JvdXRl
 LT5vcmlnaW5BZGRyID0gMDsKWCsgICAgICAgIFRBSUxRX0lOSVQoJm5ld3JvdXRlLT5vcmln
 aW5MaXN0KTsKWCsKWCAgICAgICAgIG5ld3JvdXRlLT5uZXh0cm91dGUgID0gTlVMTDsKWCAg
 ICAgICAgIG5ld3JvdXRlLT5wcmV2cm91dGUgID0gTlVMTDsKWCAKWEBAIC0zMjUsMTAgKzMz
 NiwxMCBAQApYICAgICAgICAgICAgIGluZXRGbXQoY3JvdXRlLT5ncm91cCwgczEpLCBpZngp
 OwpYIApYICAgICAgICAgLy8gSWYgdGhlIHJvdXRlIGlzIGFjdGl2ZSwgaXQgbXVzdCBiZSBy
 ZWxvYWRlZCBpbnRvIHRoZSBLZXJuZWwuLgpYLSAgICAgICAgaWYoY3JvdXRlLT5vcmlnaW5B
 ZGRyICE9IDApIHsKWCsgICAgICAgIGlmKCFUQUlMUV9FTVBUWSgmY3JvdXRlLT5vcmlnaW5M
 aXN0KSkgewpYIApYICAgICAgICAgICAgIC8vIFVwZGF0ZSByb3V0ZSBpbiBrZXJuZWwuLi4K
 WC0gICAgICAgICAgICBpZighaW50ZXJuVXBkYXRlS2VybmVsUm91dGUoY3JvdXRlLCAxKSkg
 ewpYKyAgICAgICAgICAgIGlmKCFpbnRlcm5VcGRhdGVLZXJuZWxSb3V0ZShjcm91dGUsIDEs
 IE5VTEwpKSB7ClggICAgICAgICAgICAgICAgIGxvZyhMT0dfV0FSTklORywgMCwgIlRoZSBp
 bnNlcnRpb24gaW50byBLZXJuZWwgZmFpbGVkLiIpOwpYICAgICAgICAgICAgICAgICByZXR1
 cm4gMDsKWCAgICAgICAgICAgICB9ClhAQCAtMzUxLDcgKzM2Miw3IEBAClggKiAgIGFjdGl2
 YXRlZCwgaXQncyByZWluc3RhbGxlZCBpbiB0aGUga2VybmVsLiBJZgpYICogICB0aGUgcm91
 dGUgaXMgYWN0aXZhdGVkLCBubyBvcmlnaW5BZGRyIGlzIG5lZWRlZC4KWCAqLwpYLWludCBh
 Y3RpdmF0ZVJvdXRlKHVpbnQzMiBncm91cCwgdWludDMyIG9yaWdpbkFkZHIpIHsKWCtpbnQg
 YWN0aXZhdGVSb3V0ZSh1aW50MzIgZ3JvdXAsIHVpbnQzMiBvcmlnaW5BZGRyLCBpbnQgZG93
 bklmKSB7ClggICAgIHN0cnVjdCBSb3V0ZVRhYmxlKiAgY3JvdXRlOwpYICAgICBpbnQgcmVz
 dWx0ID0gMDsKWCAKWEBAIC0zNjksMjEgKzM4MCw0MiBAQApYICAgICB9ClggClggICAgIGlm
 KGNyb3V0ZSAhPSBOVUxMKSB7ClgrCXN0cnVjdCBPcmlnaW4gKm8gPSBOVUxMOwpYKwlpbnQg
 Zm91bmQgPSAwOwpYKwpYICAgICAgICAgLy8gSWYgdGhlIG9yaWdpbiBhZGRyZXNzIGlzIHNl
 dCwgdXBkYXRlIHRoZSByb3V0ZSBkYXRhLgpYLSAgICAgICAgaWYob3JpZ2luQWRkciA+IDAp
 IHsKWC0gICAgICAgICAgICBpZihjcm91dGUtPm9yaWdpbkFkZHIgPiAwICYmIGNyb3V0ZS0+
 b3JpZ2luQWRkciE9b3JpZ2luQWRkcikgewpYLSAgICAgICAgICAgICAgICBsb2coTE9HX1dB
 Uk5JTkcsIDAsICJUaGUgb3JpZ2luIGZvciByb3V0ZSAlcyBjaGFuZ2VkIGZyb20gJXMgdG8g
 JXMiLApYLSAgICAgICAgICAgICAgICAgICAgaW5ldEZtdChjcm91dGUtPmdyb3VwLCBzMSks
 ClgtICAgICAgICAgICAgICAgICAgICBpbmV0Rm10KGNyb3V0ZS0+b3JpZ2luQWRkciwgczIp
 LApYLSAgICAgICAgICAgICAgICAgICAgaW5ldEZtdChvcmlnaW5BZGRyLCBzMykpOwpYLSAg
 ICAgICAgICAgIH0KWC0gICAgICAgICAgICBjcm91dGUtPm9yaWdpbkFkZHIgPSBvcmlnaW5B
 ZGRyOwpYLSAgICAgICAgfQpYKwlpZihvcmlnaW5BZGRyID4gMCkgewpYIApYLSAgICAgICAg
 Ly8gT25seSB1cGRhdGUga2VybmVsIHRhYmxlIGlmIHRoZXJlIGFyZSBsaXN0ZW5lcnMgIQpY
 LSAgICAgICAgaWYoY3JvdXRlLT52aWZCaXRzID4gMCkgewpYLSAgICAgICAgICAgIHJlc3Vs
 dCA9IGludGVyblVwZGF0ZUtlcm5lbFJvdXRlKGNyb3V0ZSwgMSk7ClgtICAgICAgICB9Clgr
 CSAgICBUQUlMUV9GT1JFQUNIKG8sICZjcm91dGUtPm9yaWdpbkxpc3QsIG5leHQpIHsKWCsJ
 CWxvZyhMT0dfSU5GTywgMCwgIk9yaWdpbiBmb3Igcm91dGUgJXMgaGF2ZSAlcywgbmV3ICVz
 IiwKWCsJCSAgICBpbmV0Rm10KGNyb3V0ZS0+Z3JvdXAsIHMxKSwKWCsJCSAgICBpbmV0Rm10
 KG8tPm9yaWdpbkFkZHIsIHMyKSwKWCsJCSAgICBpbmV0Rm10KG9yaWdpbkFkZHIsIHMzKSk7
 ClgrCQlpZiAoby0+b3JpZ2luQWRkcj09b3JpZ2luQWRkcikgewpYKwkJICAgIGZvdW5kKys7
 ClgrCQkgICAgYnJlYWs7ClgrCQl9ClgrCSAgICB9ClgrCSAgICBpZiAoIWZvdW5kKSB7Clgr
 CQlsb2coTE9HX05PVElDRSwgMCwgIk5ldyBvcmlnaW4gZm9yIHJvdXRlICVzIGlzICVzLCBm
 bG9vZCAlZCIsClgrCQkgICAgaW5ldEZtdChjcm91dGUtPmdyb3VwLCBzMSksClgrCQkgICAg
 aW5ldEZtdChvcmlnaW5BZGRyLCBzMyksIGRvd25JZik7ClgrCQlvID0gbWFsbG9jKHNpemVv
 ZigqbykpOwpYKwkJby0+b3JpZ2luQWRkciA9IG9yaWdpbkFkZHI7ClgrCQlvLT5mbG9vZCA9
 IGRvd25JZjsKWCsJCW8tPnBrdGNudCA9IDA7ClgrCQlUQUlMUV9JTlNFUlRfVEFJTCgmY3Jv
 dXRlLT5vcmlnaW5MaXN0LCBvLCBuZXh0KTsKWCsJICAgIH0gZWxzZSB7ClgrCQlsb2coTE9H
 X0lORk8sIDAsICJIYXZlIG9yaWdpbiBmb3Igcm91dGUgJXMgYXQgJXMsIHBrdGNudCAlZCIs
 ClgrCQkgICAgaW5ldEZtdChjcm91dGUtPmdyb3VwLCBzMSksClgrCQkgICAgaW5ldEZtdChv
 LT5vcmlnaW5BZGRyLCBzMyksClgrCQkgICAgby0+cGt0Y250KTsKWCsJICAgIH0KWCsJfQpY
 KwpYKyAgICAgICAgLy8gT25seSB1cGRhdGUga2VybmVsIHRhYmxlIGlmIHRoZXJlIGFyZSBs
 aXN0ZW5lcnMsIGJ1dCBmbG9vZCB1cHN0cmVhbSEKWCsgICAgICAgIGlmKGNyb3V0ZS0+dmlm
 Qml0cyA+IDAgfHwgZG93bklmID49IDApClgrICAgICAgICAgICAgcmVzdWx0ID0gaW50ZXJu
 VXBkYXRlS2VybmVsUm91dGUoY3JvdXRlLCAxLCBvKTsKWCAgICAgfQpYICAgICBJRl9ERUJV
 RyBsb2dSb3V0ZVRhYmxlKCJBY3RpdmF0ZSBSb3V0ZSIpOwpYIApYQEAgLTQ0Myw3ICs0NzUs
 NiBAQApYICogICByb3V0ZSBpcyBub3QgZm91bmQsIG9yIG5vdCBpbiB0aGlzIHN0YXRlLCAw
 IGlzIHJldHVybmVkLgpYICovClggaW50IGxhc3RNZW1iZXJHcm91cEFnZSh1aW50MzIgZ3Jv
 dXApIHsKWC0gICAgc3RydWN0IENvbmZpZyAgICAgICAqY29uZiA9IGdldENvbW1vbkNvbmZp
 ZygpOwpYICAgICBzdHJ1Y3QgUm91dGVUYWJsZSAgICpjcm91dGU7ClggClggICAgIGNyb3V0
 ZSA9IGZpbmRSb3V0ZShncm91cCk7ClhAQCAtNDYzLDYgKzQ5NCw3IEBAClggKi8KWCBpbnQg
 cmVtb3ZlUm91dGUoc3RydWN0IFJvdXRlVGFibGUqICBjcm91dGUpIHsKWCAgICAgc3RydWN0
 IENvbmZpZyAgICAgICAqY29uZiA9IGdldENvbW1vbkNvbmZpZygpOwpYKyAgICBzdHJ1Y3Qg
 T3JpZ2luICpvOwpYICAgICBpbnQgcmVzdWx0ID0gMTsKWCAgICAgClggICAgIC8vIElmIGNy
 b3V0ZSBpcyBudWxsLCBubyByb3V0ZXMgd2FzIGZvdW5kLgpYQEAgLTQ3Nyw3ICs1MDksNyBA
 QApYICAgICAvL0JJVF9aRVJPKGNyb3V0ZS0+dmlmQml0cyk7ClggClggICAgIC8vIFVuaW5z
 dGFsbCBjdXJyZW50IHJvdXRlIGZyb20ga2VybmVsClgtICAgIGlmKCFpbnRlcm5VcGRhdGVL
 ZXJuZWxSb3V0ZShjcm91dGUsIDApKSB7ClgrICAgIGlmKCFpbnRlcm5VcGRhdGVLZXJuZWxS
 b3V0ZShjcm91dGUsIDAsIE5VTEwpKSB7ClggICAgICAgICBsb2coTE9HX1dBUk5JTkcsIDAs
 ICJUaGUgcmVtb3ZhbCBmcm9tIEtlcm5lbCBmYWlsZWQuIik7ClggICAgICAgICByZXN1bHQg
 PSAwOwpYICAgICB9ClhAQCAtNTAzLDcgKzUzNSwxMiBAQApYICAgICAgICAgICAgIGNyb3V0
 ZS0+bmV4dHJvdXRlLT5wcmV2cm91dGUgPSBjcm91dGUtPnByZXZyb3V0ZTsKWCAgICAgICAg
 IH0KWCAgICAgfQpYKwpYICAgICAvLyBGcmVlIHRoZSBtZW1vcnksIGFuZCBzZXQgdGhlIHJv
 dXRlIHRvIE5VTEwuLi4KWCsgICAgd2hpbGUgKChvID0gVEFJTFFfRklSU1QoJmNyb3V0ZS0+
 b3JpZ2luTGlzdCkpKSB7ClgrCVRBSUxRX1JFTU9WRSgmY3JvdXRlLT5vcmlnaW5MaXN0LCBv
 LCBuZXh0KTsKWCsJZnJlZShvKTsKWCsgICAgfQpYICAgICBmcmVlKGNyb3V0ZSk7ClggICAg
 IGNyb3V0ZSA9IE5VTEw7ClggClhAQCAtNTUxLDYgKzU4OCwzNiBAQApYICAgICAgICAgfQpY
 ICAgICB9ClggClgrICAgIHsKWCsJc3RydWN0IE9yaWdpbiAqbywgKm54dDsKWCsJc3RydWN0
 IHNpb2Nfc2dfcmVxIHNnX3JlcTsKWCsKWCsJc2dfcmVxLmdycC5zX2FkZHIgPSBjcm91dGUt
 Pmdyb3VwOwpYKwlmb3IgKG8gPSBUQUlMUV9GSVJTVCgmY3JvdXRlLT5vcmlnaW5MaXN0KTsg
 bzsgbyA9IG54dCkgewpYKwkgICAgbnh0ID0gVEFJTFFfTkVYVChvLCBuZXh0KTsKWCsJICAg
 IHNnX3JlcS5zcmMuc19hZGRyID0gby0+b3JpZ2luQWRkcjsKWCsJICAgIGlmIChpb2N0bChN
 Um91dGVyRkQsIFNJT0NHRVRTR0NOVCwgKGNoYXIgKikmc2dfcmVxKSA8IDApIHsKWCsJCWxv
 ZyhMT0dfV0FSTklORywgZXJybm8sICIlcyAoJXMgJXMpIiwKWCsJCSAgICAiYWdlX3RhYmxl
 X2VudHJ5OiBTSU9DR0VUU0dDTlQgZmFpbGluZyBmb3IiLApYKwkJICAgIGluZXRGbXQoby0+
 b3JpZ2luQWRkciwgczEpLApYKwkJICAgIGluZXRGbXQoY3JvdXRlLT5ncm91cCwgczIpKTsK
 WCsJCS8qIE1ha2Ugc3VyZSBpdCBnZXRzIGRlbGV0ZWQgYmVsb3cgKi8KWCsJCXNnX3JlcS5w
 a3RjbnQgPSBvLT5wa3RjbnQ7ClgrCSAgICB9ClgrCSAgICBsb2coTE9HX0RFQlVHLCAwLCAi
 QWdpbmcgT3JpZ2luICVzIERzdCAlcyBQa3RDbnQgJWQgLT4gJWQiLApYKwkJaW5ldEZtdChv
 LT5vcmlnaW5BZGRyLCBzMSksIGluZXRGbXQoY3JvdXRlLT5ncm91cCwgczIpLApYKwkJby0+
 cGt0Y250LCBzZ19yZXEucGt0Y250KTsKWCsJICAgIGlmIChzZ19yZXEucGt0Y250ID09IG8t
 PnBrdGNudCkgewpYKwkJLyogbm8gdHJhZmZpYywgcmVtb3ZlIGZyb20ga2VybmVsIGNhY2hl
 ICovClgrCQlpbnRlcm5VcGRhdGVLZXJuZWxSb3V0ZShjcm91dGUsIDAsIG8pOwpYKwkJVEFJ
 TFFfUkVNT1ZFKCZjcm91dGUtPm9yaWdpbkxpc3QsIG8sIG5leHQpOwpYKwkJZnJlZShvKTsK
 WCsJICAgIH0gZWxzZSB7ClgrCQlvLT5wa3RjbnQgPSBzZ19yZXEucGt0Y250OwpYKwkgICAg
 fQpYKwl9ClgrICAgIH0KWCsKWCAgICAgLy8gSWYgdGhlIGFnaW5nIGNvdW50ZXIgaGFzIHJl
 YWNoZWQgemVybywgaXRzIHRpbWUgZm9yIHVwZGF0aW5nLi4uClggICAgIGlmKGNyb3V0ZS0+
 YWdlVmFsdWUgPT0gMCkgewpYICAgICAgICAgLy8gQ2hlY2sgZm9yIGFjdGl2aXR5IGluIHRo
 ZSBhZ2luZyBwcm9jZXNzLApYQEAgLTU2MCw3ICs2MjcsNyBAQApYICAgICAgICAgICAgICAg
 ICAgICAgICAgICBpbmV0Rm10KGNyb3V0ZS0+Z3JvdXAsczEpKTsKWCAgICAgICAgICAgICAK
 WCAgICAgICAgICAgICAvLyBKdXN0IHVwZGF0ZSB0aGUgcm91dGluZyBzZXR0aW5ncyBpbiBr
 ZXJuZWwuLi4KWC0gICAgICAgICAgICBpbnRlcm5VcGRhdGVLZXJuZWxSb3V0ZShjcm91dGUs
 IDEpOwpYKyAgICAgICAgICAgIGludGVyblVwZGF0ZUtlcm5lbFJvdXRlKGNyb3V0ZSwgMSwg
 TlVMTCk7ClggICAgIApYICAgICAgICAgICAgIC8vIFdlIGFwcGVuZCB0aGUgYWN0aXZpdHkg
 Y291bnRlciB0byB0aGUgYWdlLCBhbmQgY29udGludWUuLi4KWCAgICAgICAgICAgICBjcm91
 dGUtPmFnZVZhbHVlID0gY3JvdXRlLT5hZ2VBY3Rpdml0eTsKWEBAIC01ODYsMzQgKzY1Myw1
 NyBAQApYIC8qKgpYICogICBVcGRhdGVzIHRoZSBLZXJuZWwgcm91dGluZyB0YWJsZS4gSWYg
 YWN0aXZhdGUgaXMgMSwgdGhlIHJvdXRlClggKiAgIGlzIChyZS0pYWN0aXZhdGVkLiBJZiBh
 Y3RpdmF0ZSBpcyBmYWxzZSwgdGhlIHJvdXRlIGlzIHJlbW92ZWQuClgrKiAgIGlmICdvcmln
 aW4nIGlzIGdpdmVuLCBvbmx5IHRoZSByb3V0ZSB3aXRoICdvcmlnaW4nIHdpbGwgYmUKWCsq
 ICAgdXBkYXRlZCwgb3RoZXJ3aXNlIGFsbCBNRkMgcm91dGVzIGZvciB0aGUgZ3JvdXAgd2ls
 bCB1cGRhdGVkLgpYICovClgtaW50IGludGVyblVwZGF0ZUtlcm5lbFJvdXRlKHN0cnVjdCBS
 b3V0ZVRhYmxlICpyb3V0ZSwgaW50IGFjdGl2YXRlKSB7ClgraW50IGludGVyblVwZGF0ZUtl
 cm5lbFJvdXRlKHN0cnVjdCBSb3V0ZVRhYmxlICpyb3V0ZSwgaW50IGFjdGl2YXRlLCBzdHJ1
 Y3QgT3JpZ2luICpvcmlnaW4pIHsKWCAgICAgc3RydWN0ICAgTVJvdXRlRGVzYyAgICAgbXJE
 ZXNjOwpYICAgICBzdHJ1Y3QgICBJZkRlc2MgICAgICAgICAqRHA7ClggICAgIHVuc2lnbmVk
 ICAgICAgICAgICAgICAgIEl4OwpYLSAgICAKWC0gICAgaWYocm91dGUtPm9yaWdpbkFkZHI+
 MCkgewpYKyAgICBzdHJ1Y3QgT3JpZ2luICpvOwpYKwpYKyAgICBpZiAoVEFJTFFfRU1QVFko
 JnJvdXRlLT5vcmlnaW5MaXN0KSkgewpYKyAgICAgICAgbG9nKExPR19OT1RJQ0UsIDAsICJS
 b3V0ZSBpcyBub3QgYWN0aXZlLiBObyBrZXJuZWwgdXBkYXRlcyBkb25lLiIpOwpYKyAgICAg
 ICAgcmV0dXJuIDE7ClgrICAgIH0KWCsgICAgVEFJTFFfRk9SRUFDSChvLCAmcm91dGUtPm9y
 aWdpbkxpc3QsIG5leHQpIHsKWCsJaWYgKG9yaWdpbiAmJiBvcmlnaW4gIT0gbykKWCsgCWNv
 bnRpbnVlOwpYIApYICAgICAgICAgLy8gQnVpbGQgcm91dGUgZGVzY3JpcHRvciBmcm9tIHRh
 YmxlIGVudHJ5Li4uClggICAgICAgICAvLyBTZXQgdGhlIHNvdXJjZSBhZGRyZXNzIGFuZCBn
 cm91cCBhZGRyZXNzLi4uClggICAgICAgICBtckRlc2MuTWNBZHIuc19hZGRyICAgICA9IHJv
 dXRlLT5ncm91cDsKWC0gICAgICAgIG1yRGVzYy5PcmlnaW5BZHIuc19hZGRyID0gcm91dGUt
 Pm9yaWdpbkFkZHI7ClgrICAgICAgICBtckRlc2MuT3JpZ2luQWRyLnNfYWRkciA9IG8tPm9y
 aWdpbkFkZHI7ClggICAgIApYICAgICAgICAgLy8gY2xlYXIgb3V0cHV0IGludGVyZmFjZXMg
 ClggICAgICAgICBtZW1zZXQoIG1yRGVzYy5UdGxWYywgMCwgc2l6ZW9mKCBtckRlc2MuVHRs
 VmMgKSApOwpYICAgICAKWC0gICAgICAgIElGX0RFQlVHIGxvZyhMT0dfREVCVUcsIDAsICJW
 aWYgYml0cyA6IDB4JTA4eCIsIHJvdXRlLT52aWZCaXRzKTsKWC0KWCsgICAgICAgIElGX0RF
 QlVHIGxvZyhMT0dfREVCVUcsIDAsICJPcmlnaW4gJXMgVmlmIGJpdHMgOiAweCUwOHgiLCBp
 bmV0Rm10KG8tPm9yaWdpbkFkZHIsIHMxKSwgcm91dGUtPnZpZkJpdHMpOwpYICAgICAgICAg
 Ly8gU2V0IHRoZSBUVEwncyBmb3IgdGhlIHJvdXRlIGRlc2NyaXB0b3IuLi4KWC0gICAgICAg
 IGZvciAoIEl4ID0gMDsgRHAgPSBnZXRJZkJ5SXgoIEl4ICk7IEl4KysgKSB7ClgtICAgICAg
 ICAgICAgaWYoRHAtPnN0YXRlID09IElGX1NUQVRFX1VQU1RSRUFNKSB7ClgtICAgICAgICAg
 ICAgICAgIC8vSUZfREVCVUcgbG9nKExPR19ERUJVRywgMCwgIklkZW50aWZpZWQgVklGICMl
 ZCBhcyB1cHN0cmVhbS4iLCBEcC0+aW5kZXgpOwpYLSAgICAgICAgICAgICAgICBtckRlc2Mu
 SW5WaWYgPSBEcC0+aW5kZXg7ClgtICAgICAgICAgICAgfQpYLSAgICAgICAgICAgIGVsc2Ug
 aWYoQklUX1RTVChyb3V0ZS0+dmlmQml0cywgRHAtPmluZGV4KSkgewpYLSAgICAgICAgICAg
 ICAgICBJRl9ERUJVRyBsb2coTE9HX0RFQlVHLCAwLCAiU2V0dGluZyBUVEwgZm9yIFZpZiAl
 ZCB0byAlZCIsIERwLT5pbmRleCwgRHAtPnRocmVzaG9sZCk7ClgtICAgICAgICAgICAgICAg
 IG1yRGVzYy5UdGxWY1sgRHAtPmluZGV4IF0gPSBEcC0+dGhyZXNob2xkOwpYLSAgICAgICAg
 ICAgIH0KWCsgICAgICAgIGZvciAoIEl4ID0gMDsgKERwID0gZ2V0SWZCeUl4KCBJeCApKTsg
 SXgrKyApIHsKWCsJICAgIGlmIChvLT5mbG9vZCA+PSAwKSB7ClgrCQlpZihJeCA9PSAodW5z
 aWduZWQpIG8tPmZsb29kKSB7ClgrCQkgICAgSUZfREVCVUcgbG9nKExPR19ERUJVRywgMCwg
 IklkZW50aWZpZWQgSW5wdXQgVklGICMlZCBhcyBET1dOU1RSRUFNLiIsIERwLT5pbmRleCk7
 ClgrCQkgICAgbXJEZXNjLkluVmlmID0gRHAtPmluZGV4OwpYKwkJfQpYKwkJZWxzZSBpZihE
 cC0+c3RhdGUgPT0gSUZfU1RBVEVfVVBTVFJFQU0pIHsKWCsJCSAgICBJRl9ERUJVRyBsb2co
 TE9HX0RFQlVHLCAwLCAiU2V0dGluZyBUVEwgZm9yIFVQU1RSRUFNIFZpZiAlZCB0byAlZCIs
 IERwLT5pbmRleCwgRHAtPnRocmVzaG9sZCk7ClgrCQkgICAgbXJEZXNjLlR0bFZjWyBEcC0+
 aW5kZXggXSA9IERwLT50aHJlc2hvbGQ7ClgrCQl9ClgrCQllbHNlIGlmKEJJVF9UU1Qocm91
 dGUtPnZpZkJpdHMsIERwLT5pbmRleCkpIHsKWCsJCSAgICBJRl9ERUJVRyBsb2coTE9HX0RF
 QlVHLCAwLCAiU2V0dGluZyBUVEwgZm9yIERPV05TVFJFQU0gVmlmICVkIHRvICVkIiwgRHAt
 PmluZGV4LCBEcC0+dGhyZXNob2xkKTsKWCsJCSAgICBtckRlc2MuVHRsVmNbIERwLT5pbmRl
 eCBdID0gRHAtPnRocmVzaG9sZDsKWCsJCX0KWCsJICAgIH0gZWxzZSB7ClgrCQlpZihEcC0+
 c3RhdGUgPT0gSUZfU1RBVEVfVVBTVFJFQU0pIHsKWCsJCSAgICBJRl9ERUJVRyBsb2coTE9H
 X0RFQlVHLCAwLCAiSWRlbnRpZmllZCBWSUYgIyVkIGFzIHVwc3RyZWFtLiIsIERwLT5pbmRl
 eCk7ClgrCQkgICAgbXJEZXNjLkluVmlmID0gRHAtPmluZGV4OwpYKwkJfQpYKwkJZWxzZSBp
 ZihCSVRfVFNUKHJvdXRlLT52aWZCaXRzLCBEcC0+aW5kZXgpKSB7ClgrCQkgICAgSUZfREVC
 VUcgbG9nKExPR19ERUJVRywgMCwgIlNldHRpbmcgVFRMIGZvciBWaWYgJWQgdG8gJWQiLCBE
 cC0+aW5kZXgsIERwLT50aHJlc2hvbGQpOwpYKwkJICAgIG1yRGVzYy5UdGxWY1sgRHAtPmlu
 ZGV4IF0gPSBEcC0+dGhyZXNob2xkOwpYKwkJfQpYKwkgICAgfQpYICAgICAgICAgfQpYICAg
 ICAKWCAgICAgICAgIC8vIERvIHRoZSBhY3R1YWwgS2VybmVsIHJvdXRlIHVwZGF0ZS4uLgpY
 QEAgLTYyNSw5ICs3MTUsNiBAQApYICAgICAgICAgICAgIC8vIERlbGV0ZSB0aGUgcm91dGUg
 ZnJvbSBLZXJuZWwuLi4KWCAgICAgICAgICAgICBkZWxNUm91dGUoICZtckRlc2MgKTsKWCAg
 ICAgICAgIH0KWC0KWC0gICAgfSBlbHNlIHsKWC0gICAgICAgIGxvZyhMT0dfTk9USUNFLCAw
 LCAiUm91dGUgaXMgbm90IGFjdGl2ZS4gTm8ga2VybmVsIHVwZGF0ZXMgZG9uZS4iKTsKWCAg
 ICAgfQpYIApYICAgICByZXR1cm4gMTsKWEBAIC02NDcsMTYgKzczNCwxNyBAQApYICAgICAg
 ICAgICAgIGxvZyhMT0dfREVCVUcsIDAsICJObyByb3V0ZXMgaW4gdGFibGUuLi4iKTsKWCAg
 ICAgICAgIH0gZWxzZSB7ClggICAgICAgICAgICAgZG8gewpYLSAgICAgICAgICAgICAgICAv
 KgpYLSAgICAgICAgICAgICAgICBsb2coTE9HX0RFQlVHLCAwLCAiIyVkOiBTcmM6ICVzLCBE
 c3Q6ICVzLCBBZ2U6JWQsIFN0OiAlcywgUHJldjogMHglMDh4LCBUOiAweCUwOHgsIE5leHQ6
 IDB4JTA4eCIsClgtICAgICAgICAgICAgICAgICAgICByY291bnQsIGluZXRGbXQoY3JvdXRl
 LT5vcmlnaW5BZGRyLCBzMSksIGluZXRGbXQoY3JvdXRlLT5ncm91cCwgczIpLApYLSAgICAg
 ICAgICAgICAgICAgICAgY3JvdXRlLT5hZ2VWYWx1ZSwoY3JvdXRlLT5vcmlnaW5BZGRyPjA/
 IkEiOiJJIiksClgtICAgICAgICAgICAgICAgICAgICBjcm91dGUtPnByZXZyb3V0ZSwgY3Jv
 dXRlLCBjcm91dGUtPm5leHRyb3V0ZSk7ClgtICAgICAgICAgICAgICAgICovClgtICAgICAg
 ICAgICAgICAgIGxvZyhMT0dfREVCVUcsIDAsICIjJWQ6IFNyYzogJXMsIERzdDogJXMsIEFn
 ZTolZCwgU3Q6ICVzLCBPdXRWaWZzOiAweCUwOHgiLApYLSAgICAgICAgICAgICAgICAgICAg
 cmNvdW50LCBpbmV0Rm10KGNyb3V0ZS0+b3JpZ2luQWRkciwgczEpLCBpbmV0Rm10KGNyb3V0
 ZS0+Z3JvdXAsIHMyKSwKWC0gICAgICAgICAgICAgICAgICAgIGNyb3V0ZS0+YWdlVmFsdWUs
 KGNyb3V0ZS0+b3JpZ2luQWRkcj4wPyJBIjoiSSIpLApYLSAgICAgICAgICAgICAgICAgICAg
 Y3JvdXRlLT52aWZCaXRzKTsKWCsJCWxvZyhMT0dfREVCVUcsIDAsICIjJWQ6IERzdDogJXMs
 IEFnZTolZCwgU3Q6ICVzLCBPdXRWaWZzOiAweCUwOHgiLApYKwkJICAgIHJjb3VudCwgaW5l
 dEZtdChjcm91dGUtPmdyb3VwLCBzMiksClgrCQkgICAgY3JvdXRlLT5hZ2VWYWx1ZSwoVEFJ
 TFFfRU1QVFkoJmNyb3V0ZS0+b3JpZ2luTGlzdCk/IkkiOiJBIiksClgrCQkgICAgY3JvdXRl
 LT52aWZCaXRzKTsKWCsJCXsKWCsJCSAgICBzdHJ1Y3QgT3JpZ2luICpvOwpYKwkJICAgIFRB
 SUxRX0ZPUkVBQ0gobywgJmNyb3V0ZS0+b3JpZ2luTGlzdCwgbmV4dCkgewpYKwkJCWxvZyhM
 T0dfREVCVUcsIDAsICIjJWQ6IE9yaWdpbjogJXMgZmxvb2RJZiAlZCBwa3RjbnQgJWQiLApY
 KwkJCSAgICByY291bnQsIGluZXRGbXQoby0+b3JpZ2luQWRkciwgczEpLCBvLT5mbG9vZCwg
 by0+cGt0Y250KTsKWCsJCSAgICB9ClgrCQl9ClggICAgICAgICAgICAgICAgICAgClggICAg
 ICAgICAgICAgICAgIGNyb3V0ZSA9IGNyb3V0ZS0+bmV4dHJvdXRlOyAKWCAgICAgICAgIApY
 ZGlmZiAtdXJOIHN5c2xvZy5jIGlnbXBwcm94eS5uZXcvc3JjL3N5c2xvZy5jClgtLS0gc3lz
 bG9nLmMJMjAwNS0wNS0yNCAxOTo0ODoxOS4wMDAwMDAwMDAgKzA0MDAKWCsrKyBpZ21wcHJv
 eHkubmV3L3NyYy9zeXNsb2cuYwkyMDA5LTAxLTA1IDAyOjA3OjUwLjAwMDAwMDAwMCArMDMw
 MApYQEAgLTUzLDEyICs1MywxNiBAQApYICoqIGlzIGxvZ2dlZCB0byAnc3RkZXJyJy4KWCAq
 KiAgICAgICAgICAKWCAqLwpYKyNpZmRlZiBERVZFTF9MT0dHSU5HClgrdm9pZCBfbG9nKCBp
 bnQgU2VydmVyaXR5LCBpbnQgRXJybm8sIGNvbnN0IGNoYXIgKmZ1bmMsIGludCBsaW5lLCBj
 b25zdCBjaGFyICpGbXRTdCwgLi4uICkKWCsjZWxzZQkKWCB2b2lkIGxvZyggaW50IFNlcnZl
 cml0eSwgaW50IEVycm5vLCBjb25zdCBjaGFyICpGbXRTdCwgLi4uICkKWCsjZW5kaWYKWCB7
 ClggICBjb25zdCBjaGFyIFNlcnZWY1tdWyA1IF0gPSB7ICJFTUVSIiwgIkFMRVIiLCAiQ1JJ
 VCIsICJFUlJPIiwgClggCQkJICAgICAgICJXYXJuIiwgIk5vdGUiLCAiSW5mbyIsICJEZWJ1
 IiB9OwpYIApYLSAgY29uc3QgY2hhciAqU2VydlB0ID0gU2VydmVyaXR5IDwgMCB8fCBTZXJ2
 ZXJpdHkgPj0gVkNNQyggU2VydlZjICkgPyAKWCsgIGNvbnN0IGNoYXIgKlNlcnZQdCA9IFNl
 cnZlcml0eSA8IDAgfHwgU2VydmVyaXR5ID49IChpbnQpIFZDTUMoIFNlcnZWYyApID8gClgg
 ICAgICAgICAgICAgICAgICAgICAgICAiIXVua25vd24gc2VydmVyaXR5ISIgOiBTZXJ2VmNb
 IFNlcnZlcml0eSBdOwpYICAKWCAgIGNvbnN0IGNoYXIgKkVyclN0ID0gKEVycm5vIDw9IDAp
 ID8gTlVMTCA6IChjb25zdCBjaGFyICopc3RyZXJyb3IoIEVycm5vICk7IApYQEAgLTY5LDYg
 KzczLDkgQEAKWCAKWCAgICAgdmFfc3RhcnQoIEFyZ1B0LCBGbXRTdCApOwpYICAgICBMbiAg
 PSBzbnByaW50ZiggTG9nTGFzdE1zZywgc2l6ZW9mKCBMb2dMYXN0TXNnICksICIlczogIiwg
 U2VydlB0ICk7ClgrI2lmZGVmIERFVkVMX0xPR0dJTkcKWCsgICAgTG4gKz0gc25wcmludGYo
 IExvZ0xhc3RNc2cgKyBMbiwgc2l6ZW9mKCBMb2dMYXN0TXNnICkgLSBMbiwgIiVzKCk6JWQ6
 ICIsIGZ1bmMsIGxpbmUpOwpYKyNlbmRpZiAgICAKWCAgICAgTG4gKz0gdnNucHJpbnRmKCBM
 b2dMYXN0TXNnICsgTG4sIHNpemVvZiggTG9nTGFzdE1zZyApIC0gTG4sIEZtdFN0LCBBcmdQ
 dCApOwpYICAgICBpZiggRXJyU3QgKQpYICAgICAgIHNucHJpbnRmKCBMb2dMYXN0TXNnICsg
 TG4sIHNpemVvZiggTG9nTGFzdE1zZyApIC0gTG4sICI7IEVycm5vKCVkKTogJXMiLCBFcnJu
 bywgRXJyU3QgKTsKRU5ELW9mLWlnbXBwcm94eS9maWxlcy9wYXRjaC1mYnNkCmVjaG8geCAt
 IGlnbXBwcm94eS9maWxlcy9pZ21wcHJveHkKc2VkICdzL15YLy8nID5pZ21wcHJveHkvZmls
 ZXMvaWdtcHByb3h5IDw8ICdFTkQtb2YtaWdtcHByb3h5L2ZpbGVzL2lnbXBwcm94eScKWCMh
 L2Jpbi9zaApYIwpYIyAkRnJlZUJTRDogc3JjL2V0Yy9yYy5kL2xwZCx2IDEuOC40LjEgMjAw
 OC8wMS8yOCAwNzo1ODozMSBkb3VnYiBFeHAgJApYIwpYClgjIFBST1ZJREU6IGlnbXBwcm94
 eQpYIyBSRVFVSVJFOiBORVRXT1JLSU5HClgKWC4gL2V0Yy9yYy5zdWJyClgKWG5hbWU9Imln
 bXBwcm94eSIKWHJjdmFyPWBzZXRfcmN2YXJgClhjb21tYW5kPSIvdXNyL2xvY2FsL3NiaW4v
 JHtuYW1lfSIKWHJlcXVpcmVkX2ZpbGVzPSIvdXNyL2xvY2FsL2V0Yy9pZ21wcHJveHkuY29u
 ZiIKWGlnbXBwcm94eV9lbmFibGU9JHtpZ21wcHJveHlfZW5hYmxlLSJOTyJ9ClgKWGxvYWRf
 cmNfY29uZmlnICRuYW1lClhydW5fcmNfY29tbWFuZCAiJDEiCkVORC1vZi1pZ21wcHJveHkv
 ZmlsZXMvaWdtcHByb3h5CmV4aXQKCg==
 ------------DD1D5D193AB3E2--
 



More information about the freebsd-ports-bugs mailing list