<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://bugs.gentoo.org/bugzilla.dtd">

<bugzilla version="2.22.7"
          urlbase="http://bugs.gentoo.org/"
          maintainer="bugzilla@gentoo.org"
>

    <bug>
          <bug_id>69590</bug_id>
          
          <creation_ts>2004-10-31 02:54 0000</creation_ts>
          <short_desc>reiser4 support for grub</short_desc>
          <delta_ts>2005-11-15 08:28:38 0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>Gentoo Linux</product>
          <component>Ebuilds</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          
          <priority>P2</priority>
          <bug_severity>enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mail@earthworm.de</reporter>
          <assigned_to>base-system@gentoo.org</assigned_to>
          <cc>artem.egorkine@magnitec.fi</cc>
    
    <cc>m.debruijne@matrict.nl</cc>
    
    <cc>MrChristenson@gmail.com</cc>
    
    <cc>radek@podgorny.cz</cc>
    
    <cc>t1m@klingt.org</cc>
    
    <cc>vapier@gentoo.org</cc>

      

      
          <long_desc isprivate="0">
            <who>mail@earthworm.de</who>
            <bug_when>2004-10-31 02:54:17 0000</bug_when>
            <thetext>The namesys webpage provides a patch for grub make it aware of reiser4:

ftp://ftp.namesys.com/pub/reiser4progs/grub/

This version of grub works for me. I would like to see it in portage tree.

Reproducible: Always
Steps to Reproduce:
1. emerge grub
2. install grub on reiser4 partitions
Actual Results:  
grub can&apos;t be installed as it can work with reiser4.

Expected Results:  
It should be possible to install grub on reiser4 partitions.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>robmoss@gentoo.org</who>
            <bug_when>2004-11-09 13:53:50 0000</bug_when>
            <thetext>Sorry, I&apos;m not going to add reiser4 support to grub any time soon. It bloats the stage1_5 stuff too far on many systems, regardless of target file system, rendering them unbootable.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2005-04-07 06:13:46 0000</bug_when>
            <thetext>*** Bug 88252 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>artem.egorkine@magnitec.fi</who>
            <bug_when>2005-04-07 06:22:15 0000</bug_when>
            <thetext>Why not make it conditional on USE=&quot;reiser4&quot;, for example?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2005-04-09 18:17:06 0000</bug_when>
            <thetext>*** Bug 88523 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vivo@gentoo.org</who>
            <bug_when>2005-10-26 04:44:48 0000</bug_when>
            <thetext>110_all_grub-reiser4.patch I&apos;m going to attach at this bug work on x86.
It&apos;s tested and running here (sys-boot/grub-0.96-r3).

It apply to sys-boot/grub-0.96-r3 and grub-0.97 (vanilla) .

since it&apos;s already a certain time reiser4 is in mm kernels, and it will reach
vanilla ones some time in the future may be a good idea to add it.

vapier, added you after cat-ting the ChangeLog ;-)</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vivo@gentoo.org</who>
            <bug_when>2005-10-26 04:46:42 0000</bug_when>
            <thetext>Created an attachment (id=71494)
110_all_grub-reiser4.patch

patch, tested on x86 system , it can boot reiser4 and reiserfs filesystems
(others untested).</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2005-11-07 18:53:36 0000</bug_when>
            <thetext>in portage</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>vapier@gentoo.org</who>
            <bug_when>2005-11-10 07:49:59 0000</bug_when>
            <thetext>*** Bug 112050 has been marked as a duplicate of this bug. ***</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>MrChristenson@gmail.com</who>
            <bug_when>2005-11-10 10:03:40 0000</bug_when>
            <thetext>Created an attachment (id=72586)
Ebuild with optional reiser4 patch

I added the USE word &quot;reiser4&quot; and made it possible to install grub-0.97-r2
with the patch.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>MrChristenson@gmail.com</who>
            <bug_when>2005-11-14 23:17:18 0000</bug_when>
            <thetext>Why isn&apos;t there an option to reopen this bug. It should be reopened since the
fix is removed.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <who>MrChristenson@gmail.com</who>
            <bug_when>2005-11-15 08:28:38 0000</bug_when>
            <thetext>Now there is a option to reopen this bug, but apparently I&apos;m not authorized to 
do so. Could I be authorized, please!</thetext>
          </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71494</attachid>
            <date>2005-10-26 04:46 0000</date>
            <desc>110_all_grub-reiser4.patch</desc>
            <filename>110_all_grub-reiser4.patch</filename>
            <type>text/plain</type>
            <data encoding="base64">ZGlmZiAtTmF1ciBncnViLTAuOTYub3JpZy9JTlNUQUxMIGdydWItMC45Ni5yZWlzZXI0L0lOU1RB
TEwKLS0tIGdydWItMC45Ni5vcmlnL0lOU1RBTEwJMjAwNC0wNi0xMyAxOTo0NzoyOS4wMDAwMDAw
MDAgKzAyMDAKKysrIGdydWItMC45Ni5yZWlzZXI0L0lOU1RBTEwJMjAwNS0xMC0yNSAxNTo1Mzoz
MC4wMDAwMDAwMDAgKzAyMDAKQEAgLTIwNyw2ICsyMDcsOSBAQAogYC0tZGlzYWJsZS1yZWlzZXJm
cycKICAgICAgT21pdCB0aGUgUmVpc2VyRlMgc3VwcG9ydCBpbiBTdGFnZSAyLgogCitgLS1kaXNh
YmxlLXJlaXNlcjQnCisgICAgIE9taXQgdGhlIFJlaXNlcjQgc3VwcG9ydCBpbiBTdGFnZSAyLgor
CiBgLS1kaXNhYmxlLXZzdGFmcycKICAgICAgT21pdCB0aGUgVlNUYSBmaWxlc3lzdGVtIHN1cHBv
cnQgaW4gU3RhZ2UgMi4KIApkaWZmIC1OYXVyIGdydWItMC45Ni5vcmlnL2NvbmZpZy5oLmluIGdy
dWItMC45Ni5yZWlzZXI0L2NvbmZpZy5oLmluCi0tLSBncnViLTAuOTYub3JpZy9jb25maWcuaC5p
bgkyMDA1LTAxLTMwIDAyOjA4OjM3LjAwMDAwMDAwMCArMDEwMAorKysgZ3J1Yi0wLjk2LnJlaXNl
cjQvY29uZmlnLmguaW4JMjAwNS0xMC0yNSAxNTo1MzozMC4wMDAwMDAwMDAgKzAyMDAKQEAgLTI3
LDkgKzI3LDE2IEBACiAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGludHR5cGVzLmg+
IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfSU5UVFlQRVNfSAogCisvKiBEZWZpbmUgdG8g
MSBpZiB5b3UgaGF2ZSB0aGUgYGFhbC1taW5pbWFsJyBsaWJyYXJ5ICgtbGFhbC1taW5pbWFsKS4g
Ki8KKyN1bmRlZiBIQVZFX0xJQkFBTF9NSU5JTUFMCisKIC8qIERlZmluZSBpZiB5b3UgaGF2ZSBh
IGN1cnNlcyBsaWJyYXJ5ICovCiAjdW5kZWYgSEFWRV9MSUJDVVJTRVMKIAorLyogRGVmaW5lIHRv
IDEgaWYgeW91IGhhdmUgdGhlIGByZWlzZXI0LW1pbmltYWwnIGxpYnJhcnkgKC1scmVpc2VyNC1t
aW5pbWFsKS4KKyAgICovCisjdW5kZWYgSEFWRV9MSUJSRUlTRVI0X01JTklNQUwKKwogLyogRGVm
aW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtZW1vcnkuaD4gaGVhZGVyIGZpbGUuICovCiAjdW5k
ZWYgSEFWRV9NRU1PUllfSAogCmRpZmYgLU5hdXIgZ3J1Yi0wLjk2Lm9yaWcvY29uZmlndXJlLmFj
IGdydWItMC45Ni5yZWlzZXI0L2NvbmZpZ3VyZS5hYwotLS0gZ3J1Yi0wLjk2Lm9yaWcvY29uZmln
dXJlLmFjCTIwMDUtMTAtMjUgMTY6MDU6NTYuNDExMDc0MjkxICswMjAwCisrKyBncnViLTAuOTYu
cmVpc2VyNC9jb25maWd1cmUuYWMJMjAwNS0xMC0yNSAxNTo1MzozMC4wMDAwMDAwMDAgKzAyMDAK
QEAgLTI2Myw2ICsyNjMsNzcgQEAKICAgRlNZU19DRkxBR1M9IiRGU1lTX0NGTEFHUyAtREZTWVNf
UkVJU0VSRlM9MSIKIGZpCiAKK2RubCBDaGVja2luZyBmb3IgcmVpc2VyNAorUkVJU0VSNF9MSUJT
PSIiCitSRUlTRVI0X0NGTEFHUz0iIgorCitPTERfTElCUz0kTElCUworT0xEX0NGTEFHUz0kQ0ZM
QUdTCitMSUJTPSIiCitDRkxBR1M9IiIKKworQUNfQVJHX0VOQUJMRShyZWlzZXI0LAorICBbICAt
LWRpc2FibGUtcmVpc2VyNCAgICAgICBkaXNhYmxlIFJlaXNlcjQgc3VwcG9ydCBpbiBTdGFnZSAy
XSkKKworaWYgdGVzdCB4IiRlbmFibGVfcmVpc2VyNCIgIT0geG5vOyB0aGVuCisgIEFDX0NIRUNL
X0xJQihhYWwtbWluaW1hbCwgYWFsX21lbV9pbml0LCAsIAorICAgIEFDX01TR19XQVJOKAorUmVp
c2VyNCBzdXBwb3J0IGlzIGRpc2FibGVkIGR1ZSB0byBpbmFiaWxpdHkgZmluZCBsaWJhYWwtbWlu
aW1hbCB3aXRoIAorbWVtb3J5IG1hbmFnZXIgc3VwcG9ydCB0dXJuZWQgb24uKQorICAgIGVuYWJs
ZV9yZWlzZXI0PW5vCisgICkKK2ZpCisgIAoraWYgdGVzdCB4IiRlbmFibGVfcmVpc2VyNCIgIT0g
eG5vOyB0aGVuCisgIEFDX0NIRUNLX0hFQURFUihhYWwvbGliYWFsLmgsICwKKyAgQUNfTVNHX1dB
Uk4oCitMaWJhYWwgaGVhZGVyIGZpbGVzIGFyZSBub3QgZm91bmQuIFJlaXNlcjQgc3VwcG9ydCBp
cyBkaXNhYmxlZAorICApCisgIGVuYWJsZV9yZWlzZXI0PW5vKQorZmkKKyAgCitpZiB0ZXN0IHgi
JGVuYWJsZV9yZWlzZXI0IiAhPSB4bm87IHRoZW4KKyAgQUNfQ0hFQ0tfTElCKHJlaXNlcjQtbWlu
aW1hbCwgcmVpc2VyNF9mc19vcGVuLCAsIAorICBBQ19NU0dfV0FSTigKK1JlaXNlcjQgc3VwcG9y
dCBpcyBkaXNhYmxlZCBkdWUgdG8gaW5hYmlsaXR5IGZpbmQgdmFsaWQgbGlicmVpc2VyNC1taW5p
bWFsLikKKyAgICBlbmFibGVfcmVpc2VyND1ubywgCisgICAgLWxhYWwtbWluaW1hbAorICApCitm
aQorCitpZiB0ZXN0IHgiJGVuYWJsZV9yZWlzZXI0IiAhPSB4bm87IHRoZW4KKyAgQUNfQ0hFQ0tf
SEVBREVSKHJlaXNlcjQvbGlicmVpc2VyNC5oLCAsCisgIEFDX01TR19XQVJOKAorUmVpc2VyNCBo
ZWFkZXIgZmlsZXMgYXJlIG5vdCBmb3VuZC4gUmVpc2VyNCBzdXBwb3J0IGlzIGRpc2FibGVkLgor
ICApCisgIGVuYWJsZV9yZWlzZXI0PW5vKQorZmkKKworaWYgdGVzdCB4IiRlbmFibGVfcmVpc2Vy
NCIgIT0geG5vOyB0aGVuCisgIFJFSVNFUjRfQ0ZMQUdTPSIkUkVJU0VSNF9DRkxBR1MgLURGU1lT
X1JFSVNFUjQ9MSIKKyAgUkVJU0VSNF9MSUJTPSRMSUJTCitmaQorCitpZiB0ZXN0IHgiJGVuYWJs
ZV9yZWlzZXI0IiAhPSB4bm87IHRoZW4KKyAgQUNfQ0hFQ0tfTElCKHJlaXNlcjQtbWluaW1hbCwg
X19zeW00MF9wbHVnX2luaXQsIAorICAgIFJFSVNFUjRfQ0ZMQUdTPSIkUkVJU0VSNF9DRkxBR1Mg
LURFTkFCTEVfU1lNTElOS1M9MSIsCitBQ19NU0dfV0FSTihSZWlzZXI0IHN5bWxpbmtzIHN1cHBv
cnQgaXMgZGlzYWJsZWQuKSwgCisgICAgLWxhYWwtbWluaW1hbAorICApCitmaQorCitMSUJTPSRP
TERfTElCUworQ0ZMQUdTPSRPTERfQ0ZMQUdTCisKK2lmIHRlc3QgeCIkZW5hYmxlX3JlaXNlcjQi
ICE9IHhubzsgdGhlbgorICBlbmFibGVfcmVpc2VyNF9zdXBwb3J0PXllcworICBGU1lTX0NGTEFH
Uz0iJEZTWVNfQ0ZMQUdTICRSRUlTRVI0X0NGTEFHUyIKK2ZpCisKK0FDX1NVQlNUKFJFSVNFUjRf
TElCUykKK0FDX1NVQlNUKFJFSVNFUjRfQ0ZMQUdTKQorQU1fQ09ORElUSU9OQUwoRU5BQkxFX1JF
SVNFUjRfU1VQUE9SVCwgdGVzdCB4IiRlbmFibGVfcmVpc2VyNCIgIT0geG5vKQorCiBBQ19BUkdf
RU5BQkxFKHZzdGFmcywKICAgWyAgLS1kaXNhYmxlLXZzdGFmcyAgICAgICAgZGlzYWJsZSBWU1Rh
IEZTIHN1cHBvcnQgaW4gU3RhZ2UgMl0pCiAKZGlmZiAtTmF1ciBncnViLTAuOTYub3JpZy9kb2Nz
L2dydWIudGV4aSBncnViLTAuOTYucmVpc2VyNC9kb2NzL2dydWIudGV4aQotLS0gZ3J1Yi0wLjk2
Lm9yaWcvZG9jcy9ncnViLnRleGkJMjAwNC0wOS0yMCAyMzo0NzozOC4wMDAwMDAwMDAgKzAyMDAK
KysrIGdydWItMC45Ni5yZWlzZXI0L2RvY3MvZ3J1Yi50ZXhpCTIwMDUtMTAtMjUgMTU6NTM6MzAu
MDAwMDAwMDAwICswMjAwCkBAIC0yODMsNyArMjgzLDcgQEAKIFN1cHBvcnQgbXVsdGlwbGUgZmls
ZXN5c3RlbSB0eXBlcyB0cmFuc3BhcmVudGx5LCBwbHVzIGEgdXNlZnVsIGV4cGxpY2l0CiBibG9j
a2xpc3Qgbm90YXRpb24uIFRoZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZpbGVzeXN0ZW0gdHlwZXMg
YXJlCiBAZGZue0JTRCBGRlN9LCBAZGZue0RPUyBGQVQxNiBhbmQgRkFUMzJ9LCBAZGZue01pbml4
IGZzfSwgQGRmbntMaW51eAotZXh0MmZzfSwgQGRmbntSZWlzZXJGU30sIEBkZm57SkZTfSwgQGRm
bntYRlN9LCBhbmQgQGRmbntWU1RhCitleHQyZnN9LCBAZGZue1JlaXNlckZTfSwgQGRmbntSZWlz
ZXJGU30sIEBkZm57SkZTfSwgQGRmbntYRlN9LCBhbmQgQGRmbntWU1RhCiBmc30uIEB4cmVme0Zp
bGVzeXN0ZW19LCBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAogQGl0ZW0gU3VwcG9ydCBhdXRvbWF0
aWMgZGVjb21wcmVzc2lvbgpAQCAtMTc3Niw2ICsxNzc2LDcgQEAKIEBpdGVteCBqZnNfc3RhZ2Ux
XzUKIEBpdGVteCBtaW5peF9zdGFnZTFfNQogQGl0ZW14IHJlaXNlcmZzX3N0YWdlMV81CitAaXRl
bXggcmVpc2VyNF9zdGFnZTFfNQogQGl0ZW14IHZzdGFmc19zdGFnZTFfNQogQGl0ZW14IHhmc19z
dGFnZTFfNQogCmRpZmYgLU5hdXIgZ3J1Yi0wLjk2Lm9yaWcvZ3J1Yi9NYWtlZmlsZS5hbSBncnVi
LTAuOTYucmVpc2VyNC9ncnViL01ha2VmaWxlLmFtCi0tLSBncnViLTAuOTYub3JpZy9ncnViL01h
a2VmaWxlLmFtCTIwMDUtMTAtMjUgMTY6MDU6NTYuOTY2OTg4ODc3ICswMjAwCisrKyBncnViLTAu
OTYucmVpc2VyNC9ncnViL01ha2VmaWxlLmFtCTIwMDUtMTAtMjUgMTU6NTM6MzAuMDAwMDAwMDAw
ICswMjAwCkBAIC0xNiw0ICsxNiw0IEBACiBBTV9DRkxBR1MgPSAkKEdSVUJfQ0ZMQUdTKQogCiBn
cnViX1NPVVJDRVMgPSBtYWluLmMgYXNtc3R1Yi5jCi1ncnViX0xEQUREID0gLi4vc3RhZ2UyL2xp
YmdydWIuYSAgLi4vbGliL2xpYmNvbW1vbi5hICQoR1JVQl9MSUJTKQorZ3J1Yl9MREFERCA9IC4u
L3N0YWdlMi9saWJncnViLmEgIC4uL2xpYi9saWJjb21tb24uYSAkKEdSVUJfTElCUykgJChSRUlT
RVI0X0xJQlMpCmRpZmYgLU5hdXIgZ3J1Yi0wLjk2Lm9yaWcvZ3J1Yi9NYWtlZmlsZS5hbS5vcmln
IGdydWItMC45Ni5yZWlzZXI0L2dydWIvTWFrZWZpbGUuYW0ub3JpZwotLS0gZ3J1Yi0wLjk2Lm9y
aWcvZ3J1Yi9NYWtlZmlsZS5hbS5vcmlnCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw
MTAwCisrKyBncnViLTAuOTYucmVpc2VyNC9ncnViL01ha2VmaWxlLmFtLm9yaWcJMjAwNS0xMC0y
NSAxNTo0NzowMS4wMDAwMDAwMDAgKzAyMDAKQEAgLTAsMCArMSwxOSBAQAorc2Jpbl9QUk9HUkFN
UyA9IGdydWIKKworaWYgU0VSSUFMX1NQRUVEX1NJTVVMQVRJT04KK1NFUklBTF9GTEFHUyA9IC1E
U1VQUE9SVF9TRVJJQUw9MSAtRFNJTVVMQVRFX1NMT1dORVNTX09GX1NFUklBTD0xCitlbHNlCitT
RVJJQUxfRkxBR1MgPSAtRFNVUFBPUlRfU0VSSUFMPTEgCitlbmRpZgorCitBTV9DUFBGTEFHUyA9
IC1ER1JVQl9VVElMPTEgLURGU1lTX0VYVDJGUz0xIC1ERlNZU19GQVQ9MSAtREZTWVNfRkZTPTEg
XAorCS1ERlNZU19JU085NjYwPTEgLURGU1lTX0pGUz0xIC1ERlNZU19NSU5JWD0xIC1ERlNZU19S
RUlTRVJGUz0xIFwKKwktREZTWVNfVUZTMj0xIC1ERlNZU19WU1RBRlM9MSAtREZTWVNfWEZTPTEg
XAorCS1EVVNFX01ENV9QQVNTV09SRFM9MSAtRFNVUFBPUlRfSEVSQ1VMRVM9MSBcCisJJChTRVJJ
QUxfRkxBR1MpIC1JJCh0b3Bfc3JjZGlyKS9zdGFnZTIgXAorCS1JJCh0b3Bfc3JjZGlyKS9zdGFn
ZTEgLUkkKHRvcF9zcmNkaXIpL2xpYgorCitBTV9DRkxBR1MgPSAkKEdSVUJfQ0ZMQUdTKQorCitn
cnViX1NPVVJDRVMgPSBtYWluLmMgYXNtc3R1Yi5jCitncnViX0xEQUREID0gLi4vc3RhZ2UyL2xp
YmdydWIuYSAgLi4vbGliL2xpYmNvbW1vbi5hICQoR1JVQl9MSUJTKQpkaWZmIC1OYXVyIGdydWIt
MC45Ni5vcmlnL3N0YWdlMi9NYWtlZmlsZS5hbSBncnViLTAuOTYucmVpc2VyNC9zdGFnZTIvTWFr
ZWZpbGUuYW0KLS0tIGdydWItMC45Ni5vcmlnL3N0YWdlMi9NYWtlZmlsZS5hbQkyMDA1LTEwLTI1
IDE2OjA1OjU2Ljk2Njk4ODg3NyArMDIwMAorKysgZ3J1Yi0wLjk2LnJlaXNlcjQvc3RhZ2UyL01h
a2VmaWxlLmFtCTIwMDUtMTAtMjUgMTY6MDA6NDUuMDAwMDAwMDAwICswMjAwCkBAIC0xMywxNyAr
MTMsMjUgQEAKICMgRm9yIDxzdGFnZTEuaD4uCiBJTkNMVURFUyA9IC1JJCh0b3Bfc3JjZGlyKS9z
dGFnZTEKIAoraWYgRU5BQkxFX1JFSVNFUjRfU1VQUE9SVAorUkVJU0VSNF9TVEFHRTFfNSA9IHJl
aXNlcjRfc3RhZ2UxXzUKK1JFSVNFUjRfU1RBR0UxXzVfRVhFQyA9IHJlaXNlcjRfc3RhZ2UxXzUu
ZXhlYworZWxzZQorUkVJU0VSNF9TVEFHRTFfNSA9CitSRUlTRVI0X1NUQUdFMV81X0VYRUMgPQor
ZW5kaWYKKwogIyBUaGUgbGlicmFyeSBmb3IgL3NiaW4vZ3J1Yi4KIG5vaW5zdF9MSUJSQVJJRVMg
PSBsaWJncnViLmEKIGxpYmdydWJfYV9TT1VSQ0VTID0gYm9vdC5jIGJ1aWx0aW5zLmMgY2hhcl9p
by5jIGNtZGxpbmUuYyBjb21tb24uYyBcCiAJZGlza19pby5jIGZzeXNfZXh0MmZzLmMgZnN5c19m
YXQuYyBmc3lzX2Zmcy5jIGZzeXNfaXNvOTY2MC5jIFwKLQlmc3lzX2pmcy5jIGZzeXNfbWluaXgu
YyBmc3lzX3JlaXNlcmZzLmMgZnN5c191ZnMyLmMgXAorCWZzeXNfamZzLmMgZnN5c19taW5peC5j
IGZzeXNfcmVpc2VyZnMuYyBmc3lzX3JlaXNlcjQuYyBmc3lzX3VmczIuYyBcCiAJZnN5c192c3Rh
ZnMuYyBmc3lzX3hmcy5jIGd1bnppcC5jIG1kNS5jIHNlcmlhbC5jIHN0YWdlMi5jIFwKIAl0ZXJt
aW5mby5jIHRwYXJtLmMgZ3JhcGhpY3MuYwogbGliZ3J1Yl9hX0NGTEFHUyA9ICQoR1JVQl9DRkxB
R1MpIC1JJCh0b3Bfc3JjZGlyKS9saWIgXAogCS1ER1JVQl9VVElMPTEgLURGU1lTX0VYVDJGUz0x
IC1ERlNZU19GQVQ9MSAtREZTWVNfRkZTPTEgXAogCS1ERlNZU19JU085NjYwPTEgLURGU1lTX0pG
Uz0xIC1ERlNZU19NSU5JWD0xIC1ERlNZU19SRUlTRVJGUz0xIFwKLQktREZTWVNfVUZTMj0xIC1E
RlNZU19WU1RBRlM9MSAtREZTWVNfWEZTPTEgXAorCSQoUkVJU0VSNF9DRkxBR1MpIC1ERlNZU19V
RlMyPTEgLURGU1lTX1ZTVEFGUz0xIC1ERlNZU19YRlM9MSBcCiAJLURVU0VfTUQ1X1BBU1NXT1JE
Uz0xIC1EU1VQUE9SVF9TRVJJQUw9MSAtRFNVUFBPUlRfSEVSQ1VMRVM9MQogCiAjIFN0YWdlIDIg
YW5kIFN0YWdlIDEuNSdzLgpAQCAtMzQsMjQgKzQyLDI2IEBACiBpZiBESVNLTEVTU19TVVBQT1JU
CiBwa2dsaWJfREFUQSA9IHN0YWdlMiBzdGFnZTJfZWx0b3JpdG8gZTJmc19zdGFnZTFfNSBmYXRf
c3RhZ2UxXzUgXAogCWZmc19zdGFnZTFfNSBpc285NjYwX3N0YWdlMV81IGpmc19zdGFnZTFfNSBt
aW5peF9zdGFnZTFfNSBcCi0JcmVpc2VyZnNfc3RhZ2UxXzUgdWZzMl9zdGFnZTFfNSB2c3RhZnNf
c3RhZ2UxXzUgeGZzX3N0YWdlMV81IFwKLQluYmdydWIgcHhlZ3J1YgorCXJlaXNlcmZzX3N0YWdl
MV81ICQoUkVJU0VSNF9TVEFHRTFfNSkgdWZzMl9zdGFnZTFfNSBcCisJdnN0YWZzX3N0YWdlMV81
IHhmc19zdGFnZTFfNSBuYmdydWIgcHhlZ3J1Ygogbm9pbnN0X0RBVEEgPSBwcmVfc3RhZ2UyIHN0
YXJ0IHN0YXJ0X2VsdG9yaXRvIG5ibG9hZGVyIHB4ZWxvYWRlciBkaXNrbGVzcwogbm9pbnN0X1BS
T0dSQU1TID0gcHJlX3N0YWdlMi5leGVjIHN0YXJ0LmV4ZWMgc3RhcnRfZWx0b3JpdG8uZXhlYyBc
CiAJZTJmc19zdGFnZTFfNS5leGVjIGZhdF9zdGFnZTFfNS5leGVjIGZmc19zdGFnZTFfNS5leGVj
IFwKIAlpc285NjYwX3N0YWdlMV81LmV4ZWMgamZzX3N0YWdlMV81LmV4ZWMgbWluaXhfc3RhZ2Ux
XzUuZXhlYyBcCi0JcmVpc2VyZnNfc3RhZ2UxXzUuZXhlYyB1ZnMyX3N0YWdlMV81LmV4ZWMgdnN0
YWZzX3N0YWdlMV81LmV4ZWMgXAotCXhmc19zdGFnZTFfNS5leGVjIG5ibG9hZGVyLmV4ZWMgcHhl
bG9hZGVyLmV4ZWMgZGlza2xlc3MuZXhlYworCXJlaXNlcmZzX3N0YWdlMV81LmV4ZWMgJChSRUlT
RVI0X1NUQUdFMV81X0VYRUMpIHVmczJfc3RhZ2UxXzUuZXhlYyBcCisJdnN0YWZzX3N0YWdlMV81
LmV4ZWMgeGZzX3N0YWdlMV81LmV4ZWMgbmJsb2FkZXIuZXhlYyBweGVsb2FkZXIuZXhlYyBcCisJ
ZGlza2xlc3MuZXhlYwogZWxzZQogcGtnbGliX0RBVEEgPSBzdGFnZTIgc3RhZ2UyX2VsdG9yaXRv
IGUyZnNfc3RhZ2UxXzUgZmF0X3N0YWdlMV81IFwKIAlmZnNfc3RhZ2UxXzUgaXNvOTY2MF9zdGFn
ZTFfNSBqZnNfc3RhZ2UxXzUgbWluaXhfc3RhZ2UxXzUgXAotCXJlaXNlcmZzX3N0YWdlMV81IHVm
czJfc3RhZ2UxXzUgdnN0YWZzX3N0YWdlMV81IHhmc19zdGFnZTFfNQorCXJlaXNlcmZzX3N0YWdl
MV81ICQoUkVJU0VSNF9TVEFHRTFfNSkgdWZzMl9zdGFnZTFfNSBcCisJdnN0YWZzX3N0YWdlMV81
IHhmc19zdGFnZTFfNQogbm9pbnN0X0RBVEEgPSBwcmVfc3RhZ2UyIHN0YXJ0IHN0YXJ0X2VsdG9y
aXRvCiBub2luc3RfUFJPR1JBTVMgPSBwcmVfc3RhZ2UyLmV4ZWMgc3RhcnQuZXhlYyBzdGFydF9l
bHRvcml0by5leGVjIFwKIAllMmZzX3N0YWdlMV81LmV4ZWMgZmF0X3N0YWdlMV81LmV4ZWMgZmZz
X3N0YWdlMV81LmV4ZWMgXAogCWlzbzk2NjBfc3RhZ2UxXzUuZXhlYyBqZnNfc3RhZ2UxXzUuZXhl
YyBtaW5peF9zdGFnZTFfNS5leGVjIFwKLQlyZWlzZXJmc19zdGFnZTFfNS5leGVjIHVmczJfc3Rh
Z2UxXzUuZXhlYyB2c3RhZnNfc3RhZ2UxXzUuZXhlYyBcCi0JeGZzX3N0YWdlMV81LmV4ZWMKKwly
ZWlzZXJmc19zdGFnZTFfNS5leGVjICQoUkVJU0VSNF9TVEFHRTFfNV9FWEVDKSB1ZnMyX3N0YWdl
MV81LmV4ZWMgXAorCXZzdGFmc19zdGFnZTFfNS5leGVjIHhmc19zdGFnZTFfNS5leGVjCiBlbmRp
ZgogTU9TVExZQ0xFQU5GSUxFUyA9ICQobm9pbnN0X1BST0dSQU1TKQogCkBAIC04NSw3ICs5NSw3
IEBACiBHUkFQSElDU19GTEFHUyA9CiBlbmRpZgogCi1TVEFHRTJfQ09NUElMRSA9ICQoU1RBR0Uy
X0NGTEFHUykgLWZuby1idWlsdGluIC1ub3N0ZGluYyBcCitTVEFHRTJfQ09NUElMRSA9ICQoU1RB
R0UyX0NGTEFHUykgLWZuby1idWlsdGluIFwKIAkkKE5FVEJPT1RfRkxBR1MpICQoU0VSSUFMX0ZM
QUdTKSAkKEhFUkNVTEVTX0ZMQUdTKSAkKEdSQVBISUNTX0ZMQUdTKQogCiBTVEFHRTFfNV9MSU5L
ID0gLW5vc3RkbGliIC1XbCwtTiAtV2wsLVR0ZXh0IC1XbCwyMDAwCkBAIC05NSwxNSArMTA1LDE3
IEBACiBwcmVfc3RhZ2UyX2V4ZWNfU09VUkNFUyA9IGFzbS5TIGJpb3MuYyBib290LmMgYnVpbHRp
bnMuYyBjaGFyX2lvLmMgXAogCWNtZGxpbmUuYyBjb21tb24uYyBjb25zb2xlLmMgZGlza19pby5j
IGZzeXNfZXh0MmZzLmMgXAogCWZzeXNfZmF0LmMgZnN5c19mZnMuYyBmc3lzX2lzbzk2NjAuYyBm
c3lzX2pmcy5jIGZzeXNfbWluaXguYyBcCi0JZnN5c19yZWlzZXJmcy5jIGZzeXNfdWZzMi5jIGZz
eXNfdnN0YWZzLmMgZnN5c194ZnMuYyBndW56aXAuYyBcCi0JaGVyY3VsZXMuYyBtZDUuYyBzZXJp
YWwuYyBzbXAtaW1wcy5jIHN0YWdlMi5jIHRlcm1pbmZvLmMgdHBhcm0uYyBcCi0JZ3JhcGhpY3Mu
YworCWZzeXNfcmVpc2VyZnMuYyBmc3lzX3JlaXNlcjQuYyBmc3lzX3VmczIuYyBmc3lzX3ZzdGFm
cy5jIFwKKwlmc3lzX3hmcy5jIGd1bnppcC5jIGhlcmN1bGVzLmMgbWQ1LmMgc2VyaWFsLmMgc21w
LWltcHMuYyBcCisJc3RhZ2UyLmMgdGVybWluZm8uYyB0cGFybS5jIGdyYXBoaWNzLmMKIHByZV9z
dGFnZTJfZXhlY19DRkxBR1MgPSAkKFNUQUdFMl9DT01QSUxFKSAkKEZTWVNfQ0ZMQUdTKQogcHJl
X3N0YWdlMl9leGVjX0NDQVNGTEFHUyA9ICQoU1RBR0UyX0NPTVBJTEUpICQoRlNZU19DRkxBR1Mp
CiBwcmVfc3RhZ2UyX2V4ZWNfTERGTEFHUyA9ICQoUFJFX1NUQUdFMl9MSU5LKQogCiBpZiBORVRC
T09UX1NVUFBPUlQKLXByZV9zdGFnZTJfZXhlY19MREFERCA9IC4uL25ldGJvb3QvbGliZHJpdmVy
cy5hCitwcmVfc3RhZ2UyX2V4ZWNfTERBREQgPSAuLi9uZXRib290L2xpYmRyaXZlcnMuYSAkKFJF
SVNFUjRfTElCUykKK2Vsc2UKK3ByZV9zdGFnZTJfZXhlY19MREFERCA9ICQoUkVJU0VSNF9MSUJT
KQogZW5kaWYKIAogaWYgRElTS0xFU1NfU1VQUE9SVApAQCAtMTk3LDYgKzIwOSwxNiBAQAogCS1E
Tk9fQkxPQ0tfRklMRVM9MQogcmVpc2VyZnNfc3RhZ2UxXzVfZXhlY19MREZMQUdTID0gJChTVEFH
RTFfNV9MSU5LKQogCisjIEZvciByZWlzZXI0X3N0YWdlMV81IHRhcmdldC4KK3JlaXNlcjRfc3Rh
Z2UxXzVfZXhlY19TT1VSQ0VTID0gc3RhcnQuUyBhc20uUyBjb21tb24uYyBjaGFyX2lvLmMgXAor
CWRpc2tfaW8uYyBzdGFnZTFfNS5jIGZzeXNfcmVpc2VyNC5jIGJpb3MuYworcmVpc2VyNF9zdGFn
ZTFfNV9leGVjX0NGTEFHUyA9ICQoU1RBR0UxXzVfQ09NUElMRSkgJChSRUlTRVI0X0NGTEFHUykg
XAorCS1ETk9fQkxPQ0tfRklMRVM9MQorcmVpc2VyNF9zdGFnZTFfNV9leGVjX0NDQVNGTEFHUyA9
ICQoU1RBR0UxXzVfQ09NUElMRSkgJChSRUlTRVI0X0NGTEFHUykgXAorCS1ETk9fQkxPQ0tfRklM
RVM9MQorcmVpc2VyNF9zdGFnZTFfNV9leGVjX0xERkxBR1MgPSAkKFNUQUdFMV81X0xJTkspCity
ZWlzZXI0X3N0YWdlMV81X2V4ZWNfTERBREQgPSAkKFJFSVNFUjRfTElCUykKKwogIyBGb3IgdnN0
YWZzX3N0YWdlMV81IHRhcmdldC4KIHZzdGFmc19zdGFnZTFfNV9leGVjX1NPVVJDRVMgPSBzdGFy
dC5TIGFzbS5TIGNvbW1vbi5jIGNoYXJfaW8uYyBcCiAJZGlza19pby5jIHN0YWdlMV81LmMgZnN5
c192c3RhZnMuYyBiaW9zLmMKZGlmZiAtTmF1ciBncnViLTAuOTYub3JpZy9zdGFnZTIvTWFrZWZp
bGUuYW0ub3JpZyBncnViLTAuOTYucmVpc2VyNC9zdGFnZTIvTWFrZWZpbGUuYW0ub3JpZwotLS0g
Z3J1Yi0wLjk2Lm9yaWcvc3RhZ2UyL01ha2VmaWxlLmFtLm9yaWcJMTk3MC0wMS0wMSAwMTowMDow
MC4wMDAwMDAwMDAgKzAxMDAKKysrIGdydWItMC45Ni5yZWlzZXI0L3N0YWdlMi9NYWtlZmlsZS5h
bS5vcmlnCTIwMDUtMTAtMjUgMTU6NDc6MDEuMDAwMDAwMDAwICswMjAwCkBAIC0wLDAgKzEsMjc5
IEBACisjIEZvciB0ZXN0IHRhcmdldC4KK1RFU1RTID0gc2l6ZV90ZXN0Citub2luc3RfU0NSSVBU
UyA9ICQoVEVTVFMpCisKKyMgRm9yIGRpc3QgdGFyZ2V0Lgorbm9pbnN0X0hFQURFUlMgPSBhcGlj
LmggZGVmcy5oIGRpci5oIGRpc2tfaW5vZGUuaCBkaXNrX2lub2RlX2Zmcy5oIFwKKyAgICAgICAg
ZmF0LmggZmlsZXN5cy5oIGZyZWVic2QuaCBmcy5oIGhlcmN1bGVzLmggaTM4Ni1lbGYuaCBcCisJ
aW1nYWN0X2FvdXQuaCBpc285NjYwLmggamZzLmggbWJfaGVhZGVyLmggbWJfaW5mby5oIG1kNS5o
IFwKKwluYmkuaCBwY19zbGljZS5oIHNlcmlhbC5oIHNoYXJlZC5oIHNtcC1pbXBzLmggdGVybS5o
IFwKKwl0ZXJtaW5mby5oIHRwYXJtLmggbmJpLmggdWZzMi5oIHZzdGFmcy5oIHhmcy5oIGdyYXBo
aWNzLmgKK0VYVFJBX0RJU1QgPSBzZXRqbXAuUyBhcG0uUyAkKG5vaW5zdF9TQ1JJUFRTKQorCisj
IEZvciA8c3RhZ2UxLmg+LgorSU5DTFVERVMgPSAtSSQodG9wX3NyY2Rpcikvc3RhZ2UxCisKKyMg
VGhlIGxpYnJhcnkgZm9yIC9zYmluL2dydWIuCitub2luc3RfTElCUkFSSUVTID0gbGliZ3J1Yi5h
CitsaWJncnViX2FfU09VUkNFUyA9IGJvb3QuYyBidWlsdGlucy5jIGNoYXJfaW8uYyBjbWRsaW5l
LmMgY29tbW9uLmMgXAorCWRpc2tfaW8uYyBmc3lzX2V4dDJmcy5jIGZzeXNfZmF0LmMgZnN5c19m
ZnMuYyBmc3lzX2lzbzk2NjAuYyBcCisJZnN5c19qZnMuYyBmc3lzX21pbml4LmMgZnN5c19yZWlz
ZXJmcy5jIGZzeXNfdWZzMi5jIFwKKwlmc3lzX3ZzdGFmcy5jIGZzeXNfeGZzLmMgZ3VuemlwLmMg
bWQ1LmMgc2VyaWFsLmMgc3RhZ2UyLmMgXAorCXRlcm1pbmZvLmMgdHBhcm0uYyBncmFwaGljcy5j
CitsaWJncnViX2FfQ0ZMQUdTID0gJChHUlVCX0NGTEFHUykgLUkkKHRvcF9zcmNkaXIpL2xpYiBc
CisJLURHUlVCX1VUSUw9MSAtREZTWVNfRVhUMkZTPTEgLURGU1lTX0ZBVD0xIC1ERlNZU19GRlM9
MSBcCisJLURGU1lTX0lTTzk2NjA9MSAtREZTWVNfSkZTPTEgLURGU1lTX01JTklYPTEgLURGU1lT
X1JFSVNFUkZTPTEgXAorCS1ERlNZU19VRlMyPTEgLURGU1lTX1ZTVEFGUz0xIC1ERlNZU19YRlM9
MSBcCisJLURVU0VfTUQ1X1BBU1NXT1JEUz0xIC1EU1VQUE9SVF9TRVJJQUw9MSAtRFNVUFBPUlRf
SEVSQ1VMRVM9MQorCisjIFN0YWdlIDIgYW5kIFN0YWdlIDEuNSdzLgorcGtnbGliZGlyID0gJChs
aWJkaXIpLyQoUEFDS0FHRSkvJChob3N0X2NwdSktJChob3N0X3ZlbmRvcikKKworRVhUUkFfUFJP
R1JBTVMgPSBuYmxvYWRlci5leGVjIHB4ZWxvYWRlci5leGVjIGRpc2tsZXNzLmV4ZWMKKworaWYg
RElTS0xFU1NfU1VQUE9SVAorcGtnbGliX0RBVEEgPSBzdGFnZTIgc3RhZ2UyX2VsdG9yaXRvIGUy
ZnNfc3RhZ2UxXzUgZmF0X3N0YWdlMV81IFwKKwlmZnNfc3RhZ2UxXzUgaXNvOTY2MF9zdGFnZTFf
NSBqZnNfc3RhZ2UxXzUgbWluaXhfc3RhZ2UxXzUgXAorCXJlaXNlcmZzX3N0YWdlMV81IHVmczJf
c3RhZ2UxXzUgdnN0YWZzX3N0YWdlMV81IHhmc19zdGFnZTFfNSBcCisJbmJncnViIHB4ZWdydWIK
K25vaW5zdF9EQVRBID0gcHJlX3N0YWdlMiBzdGFydCBzdGFydF9lbHRvcml0byBuYmxvYWRlciBw
eGVsb2FkZXIgZGlza2xlc3MKK25vaW5zdF9QUk9HUkFNUyA9IHByZV9zdGFnZTIuZXhlYyBzdGFy
dC5leGVjIHN0YXJ0X2VsdG9yaXRvLmV4ZWMgXAorCWUyZnNfc3RhZ2UxXzUuZXhlYyBmYXRfc3Rh
Z2UxXzUuZXhlYyBmZnNfc3RhZ2UxXzUuZXhlYyBcCisJaXNvOTY2MF9zdGFnZTFfNS5leGVjIGpm
c19zdGFnZTFfNS5leGVjIG1pbml4X3N0YWdlMV81LmV4ZWMgXAorCXJlaXNlcmZzX3N0YWdlMV81
LmV4ZWMgdWZzMl9zdGFnZTFfNS5leGVjIHZzdGFmc19zdGFnZTFfNS5leGVjIFwKKwl4ZnNfc3Rh
Z2UxXzUuZXhlYyBuYmxvYWRlci5leGVjIHB4ZWxvYWRlci5leGVjIGRpc2tsZXNzLmV4ZWMKK2Vs
c2UKK3BrZ2xpYl9EQVRBID0gc3RhZ2UyIHN0YWdlMl9lbHRvcml0byBlMmZzX3N0YWdlMV81IGZh
dF9zdGFnZTFfNSBcCisJZmZzX3N0YWdlMV81IGlzbzk2NjBfc3RhZ2UxXzUgamZzX3N0YWdlMV81
IG1pbml4X3N0YWdlMV81IFwKKwlyZWlzZXJmc19zdGFnZTFfNSB1ZnMyX3N0YWdlMV81IHZzdGFm
c19zdGFnZTFfNSB4ZnNfc3RhZ2UxXzUKK25vaW5zdF9EQVRBID0gcHJlX3N0YWdlMiBzdGFydCBz
dGFydF9lbHRvcml0bworbm9pbnN0X1BST0dSQU1TID0gcHJlX3N0YWdlMi5leGVjIHN0YXJ0LmV4
ZWMgc3RhcnRfZWx0b3JpdG8uZXhlYyBcCisJZTJmc19zdGFnZTFfNS5leGVjIGZhdF9zdGFnZTFf
NS5leGVjIGZmc19zdGFnZTFfNS5leGVjIFwKKwlpc285NjYwX3N0YWdlMV81LmV4ZWMgamZzX3N0
YWdlMV81LmV4ZWMgbWluaXhfc3RhZ2UxXzUuZXhlYyBcCisJcmVpc2VyZnNfc3RhZ2UxXzUuZXhl
YyB1ZnMyX3N0YWdlMV81LmV4ZWMgdnN0YWZzX3N0YWdlMV81LmV4ZWMgXAorCXhmc19zdGFnZTFf
NS5leGVjCitlbmRpZgorTU9TVExZQ0xFQU5GSUxFUyA9ICQobm9pbnN0X1BST0dSQU1TKQorCitQ
UkVfU1RBR0UyX0xJTksgPSAtbm9zdGRsaWIgLVdsLC1OIC1XbCwtVHRleHQgLVdsLDgyMDAKK1NU
QVJUX0xJTksgPSAtbm9zdGRsaWIgLVdsLC1OIC1XbCwtVHRleHQgLVdsLDgwMDAKK05CTE9BREVS
X0xJTksgPSAtbm9zdGRsaWIgLVdsLC1OIC1XbCwtVHRleHQgLVdsLDAKK1BYRUxPQURFUl9MSU5L
ID0gLW5vc3RkbGliIC1XbCwtTiAtV2wsLVR0ZXh0IC1XbCw3QzAwCitTVEFSVF9FTFRPUklUT19M
SU5LID0gLW5vc3RkbGliIC1XbCwtTiAtV2wsLVR0ZXh0IC1XbCw3QzAwCisKK2lmIE5FVEJPT1Rf
U1VQUE9SVAorTkVUQk9PVF9GTEFHUyA9IC1JJCh0b3Bfc3JjZGlyKS9uZXRib290IC1EU1VQUE9S
VF9ORVRCT09UPTEKK2Vsc2UKK05FVEJPT1RfRkxBR1MgPQorZW5kaWYKKworaWYgU0VSSUFMX1NV
UFBPUlQKK1NFUklBTF9GTEFHUyA9IC1EU1VQUE9SVF9TRVJJQUw9MQorZWxzZQorU0VSSUFMX0ZM
QUdTID0KK2VuZGlmCisKK2lmIEhFUkNVTEVTX1NVUFBPUlQKK0hFUkNVTEVTX0ZMQUdTID0gLURT
VVBQT1JUX0hFUkNVTEVTPTEKK2Vsc2UKK0hFUkNVTEVTX0ZMQUdTID0KK2VuZGlmCisKK2lmIEdS
QVBISUNTX1NVUFBPUlQKK0dSQVBISUNTX0ZMQUdTID0gLURTVVBQT1JUX0dSQVBISUNTPTEKK2Vs
c2UKK0dSQVBISUNTX0ZMQUdTID0KK2VuZGlmCisKK1NUQUdFMl9DT01QSUxFID0gJChTVEFHRTJf
Q0ZMQUdTKSAtZm5vLWJ1aWx0aW4gLW5vc3RkaW5jIFwKKwkkKE5FVEJPT1RfRkxBR1MpICQoU0VS
SUFMX0ZMQUdTKSAkKEhFUkNVTEVTX0ZMQUdTKSAkKEdSQVBISUNTX0ZMQUdTKQorCitTVEFHRTFf
NV9MSU5LID0gLW5vc3RkbGliIC1XbCwtTiAtV2wsLVR0ZXh0IC1XbCwyMDAwCitTVEFHRTFfNV9D
T01QSUxFID0gJChTVEFHRTJfQ09NUElMRSkgLUROT19ERUNPTVBSRVNTSU9OPTEgLURTVEFHRTFf
NT0xCisKKyMgRm9yIHN0YWdlMiB0YXJnZXQuCitwcmVfc3RhZ2UyX2V4ZWNfU09VUkNFUyA9IGFz
bS5TIGJpb3MuYyBib290LmMgYnVpbHRpbnMuYyBjaGFyX2lvLmMgXAorCWNtZGxpbmUuYyBjb21t
b24uYyBjb25zb2xlLmMgZGlza19pby5jIGZzeXNfZXh0MmZzLmMgXAorCWZzeXNfZmF0LmMgZnN5
c19mZnMuYyBmc3lzX2lzbzk2NjAuYyBmc3lzX2pmcy5jIGZzeXNfbWluaXguYyBcCisJZnN5c19y
ZWlzZXJmcy5jIGZzeXNfdWZzMi5jIGZzeXNfdnN0YWZzLmMgZnN5c194ZnMuYyBndW56aXAuYyBc
CisJaGVyY3VsZXMuYyBtZDUuYyBzZXJpYWwuYyBzbXAtaW1wcy5jIHN0YWdlMi5jIHRlcm1pbmZv
LmMgdHBhcm0uYyBcCisJZ3JhcGhpY3MuYworcHJlX3N0YWdlMl9leGVjX0NGTEFHUyA9ICQoU1RB
R0UyX0NPTVBJTEUpICQoRlNZU19DRkxBR1MpCitwcmVfc3RhZ2UyX2V4ZWNfQ0NBU0ZMQUdTID0g
JChTVEFHRTJfQ09NUElMRSkgJChGU1lTX0NGTEFHUykKK3ByZV9zdGFnZTJfZXhlY19MREZMQUdT
ID0gJChQUkVfU1RBR0UyX0xJTkspCisKK2lmIE5FVEJPT1RfU1VQUE9SVAorcHJlX3N0YWdlMl9l
eGVjX0xEQUREID0gLi4vbmV0Ym9vdC9saWJkcml2ZXJzLmEKK2VuZGlmCisKK2lmIERJU0tMRVNT
X1NVUFBPUlQKK0JVSUxUX1NPVVJDRVMgPSBzdGFnZTJfc2l6ZS5oIGRpc2tsZXNzX3NpemUuaAor
ZWxzZQorQlVJTFRfU09VUkNFUyA9IHN0YWdlMl9zaXplLmgKK2VuZGlmCisKK0NMRUFORklMRVMg
PSAkKHBrZ2xpYl9EQVRBKSAkKG5vaW5zdF9EQVRBKSAkKEJVSUxUX1NPVVJDRVMpCisKK3N0YWdl
Ml9zaXplLmg6IHByZV9zdGFnZTIKKwktcm0gLWYgc3RhZ2UyX3NpemUuaAorCXNldCBkdW1teSBg
bHMgLWwgcHJlX3N0YWdlMmA7IFwKKwllY2hvICIjZGVmaW5lIFNUQUdFMl9TSVpFICQkNiIgPiBz
dGFnZTJfc2l6ZS5oCisKK3N0YXJ0X2V4ZWNfU09VUkNFUyA9IHN0YXJ0LlMKK3N0YXJ0X2V4ZWNf
Q0NBU0ZMQUdTID0gJChTVEFHRTJfQ09NUElMRSkKK3N0YXJ0X2V4ZWNfTERGTEFHUyA9ICQoU1RB
UlRfTElOSykKKworIyBYWFg6IGF1dG9tYWtlIGRvZXNuJ3QgcHJvdmlkZSBhIHdheSB0byBzcGVj
aWZ5IGRlcGVuZGVuY2llcyBmb3Igb2JqZWN0CisjIGZpbGVzIGV4cGxpY2l0bHksIHNvIHdlIG11
c3Qgd3JpdGUgdGhpcyBieSBhIGdlbmVyYWwgTWFrZWZpbGUgc2NoZW1lLgorIyBJZiBhdXRvbWFr
ZSBjaGFuZ2UgdGhlIG5hbWluZyBzY2hlbWUgZm9yIHBlci1leGVjdXRhYmxlIG9iamVjdHMsIHRo
aXMKKyMgd2lsbCBiZSBicm9rZW4uCitzdGFydF9leGVjLXN0YXJ0LiQoT0JKRVhUKTogc3RhZ2Uy
X3NpemUuaAorCitzdGFnZTI6IHByZV9zdGFnZTIgc3RhcnQKKwktcm0gLWYgc3RhZ2UyCisJY2F0
IHN0YXJ0IHByZV9zdGFnZTIgPiBzdGFnZTIKKworc3RhcnRfZWx0b3JpdG9fZXhlY19TT1VSQ0VT
ID0gc3RhcnRfZWx0b3JpdG8uUworc3RhcnRfZWx0b3JpdG9fZXhlY19DQ0FTRkxBR1MgPSAkKFNU
QUdFMl9DT01QSUxFKQorc3RhcnRfZWx0b3JpdG9fZXhlY19MREZMQUdTID0gJChTVEFSVF9FTFRP
UklUT19MSU5LKQorCitzdGFydF9lbHRvcml0b19leGVjLXN0YXJ0LiQoT0JKRVhUKTogc3RhZ2Uy
X3NpemUuaAorCitzdGFnZTJfZWx0b3JpdG86IHByZV9zdGFnZTIgc3RhcnRfZWx0b3JpdG8KKwkt
cm0gLWYgc3RhZ2UyX2VsdG9yaXRvCisJY2F0IHN0YXJ0X2VsdG9yaXRvIHByZV9zdGFnZTIgPiBz
dGFnZTJfZWx0b3JpdG8KKworIyBGb3IgZTJmc19zdGFnZTFfNSB0YXJnZXQuCitlMmZzX3N0YWdl
MV81X2V4ZWNfU09VUkNFUyA9IHN0YXJ0LlMgYXNtLlMgY29tbW9uLmMgY2hhcl9pby5jIGRpc2tf
aW8uYyBcCisJc3RhZ2UxXzUuYyBmc3lzX2V4dDJmcy5jIGJpb3MuYworZTJmc19zdGFnZTFfNV9l
eGVjX0NGTEFHUyA9ICQoU1RBR0UxXzVfQ09NUElMRSkgLURGU1lTX0VYVDJGUz0xIFwKKwktRE5P
X0JMT0NLX0ZJTEVTPTEKK2UyZnNfc3RhZ2UxXzVfZXhlY19DQ0FTRkxBR1MgPSAkKFNUQUdFMV81
X0NPTVBJTEUpIC1ERlNZU19FWFQyRlM9MSBcCisJLUROT19CTE9DS19GSUxFUz0xCitlMmZzX3N0
YWdlMV81X2V4ZWNfTERGTEFHUyA9ICQoU1RBR0UxXzVfTElOSykKKworIyBGb3IgZmF0X3N0YWdl
MV81IHRhcmdldC4KK2ZhdF9zdGFnZTFfNV9leGVjX1NPVVJDRVMgPSBzdGFydC5TIGFzbS5TIGNv
bW1vbi5jIGNoYXJfaW8uYyBkaXNrX2lvLmMgXAorCXN0YWdlMV81LmMgZnN5c19mYXQuYyBiaW9z
LmMKK2ZhdF9zdGFnZTFfNV9leGVjX0NGTEFHUyA9ICQoU1RBR0UxXzVfQ09NUElMRSkgLURGU1lT
X0ZBVD0xIFwKKwktRE5PX0JMT0NLX0ZJTEVTPTEKK2ZhdF9zdGFnZTFfNV9leGVjX0NDQVNGTEFH
UyA9ICQoU1RBR0UxXzVfQ09NUElMRSkgLURGU1lTX0ZBVD0xIFwKKwktRE5PX0JMT0NLX0ZJTEVT
PTEKK2ZhdF9zdGFnZTFfNV9leGVjX0xERkxBR1MgPSAkKFNUQUdFMV81X0xJTkspCisKKyMgRm9y
IGZmc19zdGFnZTFfNSB0YXJnZXQuCitmZnNfc3RhZ2UxXzVfZXhlY19TT1VSQ0VTID0gc3RhcnQu
UyBhc20uUyBjb21tb24uYyBjaGFyX2lvLmMgZGlza19pby5jIFwKKwlzdGFnZTFfNS5jIGZzeXNf
ZmZzLmMgYmlvcy5jCitmZnNfc3RhZ2UxXzVfZXhlY19DRkxBR1MgPSAkKFNUQUdFMV81X0NPTVBJ
TEUpIC1ERlNZU19GRlM9MSBcCisJLUROT19CTE9DS19GSUxFUz0xCitmZnNfc3RhZ2UxXzVfZXhl
Y19DQ0FTRkxBR1MgPSAkKFNUQUdFMV81X0NPTVBJTEUpIC1ERlNZU19GRlM9MSBcCisJLUROT19C
TE9DS19GSUxFUz0xCitmZnNfc3RhZ2UxXzVfZXhlY19MREZMQUdTID0gJChTVEFHRTFfNV9MSU5L
KQorCisjIEZvciB1ZnMyX3N0YWdlMV81IHRhcmdldC4KK3VmczJfc3RhZ2UxXzVfZXhlY19TT1VS
Q0VTID0gc3RhcnQuUyBhc20uUyBjb21tb24uYyBjaGFyX2lvLmMgZGlza19pby5jIFwKKwlzdGFn
ZTFfNS5jIGZzeXNfdWZzMi5jIGJpb3MuYwordWZzMl9zdGFnZTFfNV9leGVjX0NGTEFHUyA9ICQo
U1RBR0UxXzVfQ09NUElMRSkgLURGU1lTX1VGUzI9MSBcCisJLUROT19CTE9DS19GSUxFUz0xCit1
ZnMyX3N0YWdlMV81X2V4ZWNfQ0NBU0ZMQUdTID0gJChTVEFHRTFfNV9DT01QSUxFKSAtREZTWVNf
VUZTMj0xIFwKKwktRE5PX0JMT0NLX0ZJTEVTPTEKK3VmczJfc3RhZ2UxXzVfZXhlY19MREZMQUdT
ID0gJChTVEFHRTFfNV9MSU5LKQorCisjIEZvciBtaW5peF9zdGFnZTFfNSB0YXJnZXQuCittaW5p
eF9zdGFnZTFfNV9leGVjX1NPVVJDRVMgPSBzdGFydC5TIGFzbS5TIGNvbW1vbi5jIGNoYXJfaW8u
YyBkaXNrX2lvLmMgXAorCXN0YWdlMV81LmMgZnN5c19taW5peC5jIGJpb3MuYworbWluaXhfc3Rh
Z2UxXzVfZXhlY19DRkxBR1MgPSAkKFNUQUdFMV81X0NPTVBJTEUpIC1ERlNZU19NSU5JWD0xIFwK
KwktRE5PX0JMT0NLX0ZJTEVTPTEKK21pbml4X3N0YWdlMV81X2V4ZWNfQ0NBU0ZMQUdTID0gJChT
VEFHRTFfNV9DT01QSUxFKSAtREZTWVNfTUlOSVg9MSBcCisJLUROT19CTE9DS19GSUxFUz0xCitt
aW5peF9zdGFnZTFfNV9leGVjX0xERkxBR1MgPSAkKFNUQUdFMV81X0xJTkspCisKKyMgRm9yIHJl
aXNlcmZzX3N0YWdlMV81IHRhcmdldC4KK3JlaXNlcmZzX3N0YWdlMV81X2V4ZWNfU09VUkNFUyA9
IHN0YXJ0LlMgYXNtLlMgY29tbW9uLmMgY2hhcl9pby5jIFwKKwlkaXNrX2lvLmMgc3RhZ2UxXzUu
YyBmc3lzX3JlaXNlcmZzLmMgYmlvcy5jCityZWlzZXJmc19zdGFnZTFfNV9leGVjX0NGTEFHUyA9
ICQoU1RBR0UxXzVfQ09NUElMRSkgLURGU1lTX1JFSVNFUkZTPTEgXAorCS1ETk9fQkxPQ0tfRklM
RVM9MQorcmVpc2VyZnNfc3RhZ2UxXzVfZXhlY19DQ0FTRkxBR1MgPSAkKFNUQUdFMV81X0NPTVBJ
TEUpIC1ERlNZU19SRUlTRVJGUz0xIFwKKwktRE5PX0JMT0NLX0ZJTEVTPTEKK3JlaXNlcmZzX3N0
YWdlMV81X2V4ZWNfTERGTEFHUyA9ICQoU1RBR0UxXzVfTElOSykKKworIyBGb3IgdnN0YWZzX3N0
YWdlMV81IHRhcmdldC4KK3ZzdGFmc19zdGFnZTFfNV9leGVjX1NPVVJDRVMgPSBzdGFydC5TIGFz
bS5TIGNvbW1vbi5jIGNoYXJfaW8uYyBcCisJZGlza19pby5jIHN0YWdlMV81LmMgZnN5c192c3Rh
ZnMuYyBiaW9zLmMKK3ZzdGFmc19zdGFnZTFfNV9leGVjX0NGTEFHUyA9ICQoU1RBR0UxXzVfQ09N
UElMRSkgLURGU1lTX1ZTVEFGUz0xIFwKKwktRE5PX0JMT0NLX0ZJTEVTPTEKK3ZzdGFmc19zdGFn
ZTFfNV9leGVjX0NDQVNGTEFHUyA9ICQoU1RBR0UxXzVfQ09NUElMRSkgLURGU1lTX1ZTVEFGUz0x
IFwKKwktRE5PX0JMT0NLX0ZJTEVTPTEKK3ZzdGFmc19zdGFnZTFfNV9leGVjX0xERkxBR1MgPSAk
KFNUQUdFMV81X0xJTkspCisKKyMgRm9yIGpmc19zdGFnZTFfNSB0YXJnZXQuCitqZnNfc3RhZ2Ux
XzVfZXhlY19TT1VSQ0VTID0gc3RhcnQuUyBhc20uUyBjb21tb24uYyBjaGFyX2lvLmMgXAorCWRp
c2tfaW8uYyBzdGFnZTFfNS5jIGZzeXNfamZzLmMgYmlvcy5jCitqZnNfc3RhZ2UxXzVfZXhlY19D
RkxBR1MgPSAkKFNUQUdFMV81X0NPTVBJTEUpIC1ERlNZU19KRlM9MSBcCisJLUROT19CTE9DS19G
SUxFUz0xCitqZnNfc3RhZ2UxXzVfZXhlY19DQ0FTRkxBR1MgPSAkKFNUQUdFMV81X0NPTVBJTEUp
IC1ERlNZU19KRlM9MSBcCisJLUROT19CTE9DS19GSUxFUz0xCitqZnNfc3RhZ2UxXzVfZXhlY19M
REZMQUdTID0gJChTVEFHRTFfNV9MSU5LKQorCisjIEZvciB4ZnNfc3RhZ2UxXzUgdGFyZ2V0Lgor
eGZzX3N0YWdlMV81X2V4ZWNfU09VUkNFUyA9IHN0YXJ0LlMgYXNtLlMgY29tbW9uLmMgY2hhcl9p
by5jIFwKKwlkaXNrX2lvLmMgc3RhZ2UxXzUuYyBmc3lzX3hmcy5jIGJpb3MuYworeGZzX3N0YWdl
MV81X2V4ZWNfQ0ZMQUdTID0gJChTVEFHRTFfNV9DT01QSUxFKSAtREZTWVNfWEZTPTEgXAorCS1E
Tk9fQkxPQ0tfRklMRVM9MQoreGZzX3N0YWdlMV81X2V4ZWNfQ0NBU0ZMQUdTID0gJChTVEFHRTFf
NV9DT01QSUxFKSAtREZTWVNfWEZTPTEgXAorCS1ETk9fQkxPQ0tfRklMRVM9MQoreGZzX3N0YWdl
MV81X2V4ZWNfTERGTEFHUyA9ICQoU1RBR0UxXzVfTElOSykKKworIyBGb3IgaXNvOTY2MF9zdGFn
ZTFfNSB0YXJnZXQuCitpc285NjYwX3N0YWdlMV81X2V4ZWNfU09VUkNFUyA9IHN0YXJ0X2VsdG9y
aXRvLlMgYXNtLlMgY29tbW9uLmMgY2hhcl9pby5jIFwKKwlkaXNrX2lvLmMgc3RhZ2UxXzUuYyBm
c3lzX2lzbzk2NjAuYyBiaW9zLmMKK2lzbzk2NjBfc3RhZ2UxXzVfZXhlY19DRkxBR1MgPSAkKFNU
QUdFMV81X0NPTVBJTEUpIC1ERlNZU19JU085NjYwPTEgXAorCS1ETk9fQkxPQ0tfRklMRVM9MQor
aXNvOTY2MF9zdGFnZTFfNV9leGVjX0NDQVNGTEFHUyA9ICQoU1RBR0UxXzVfQ09NUElMRSkgLURG
U1lTX0lTTzk2NjA9MSBcCisJLUROT19CTE9DS19GSUxFUz0xCitpc285NjYwX3N0YWdlMV81X2V4
ZWNfTERGTEFHUyA9ICQoU1RBR0UxXzVfTElOSykKKworIyBGb3IgZGlza2xlc3MgdGFyZ2V0Lgor
ZGlza2xlc3NfZXhlY19TT1VSQ0VTID0gJChwcmVfc3RhZ2UyX2V4ZWNfU09VUkNFUykKK2Rpc2ts
ZXNzX2V4ZWNfQ0ZMQUdTID0gJChTVEFHRTJfQ09NUElMRSkgJChGU1lTX0NGTEFHUykgXAorCS1E
U1VQUE9SVF9ESVNLTEVTUz0xCitkaXNrbGVzc19leGVjX0NDQVNGTEFHUyA9ICQoU1RBR0UyX0NP
TVBJTEUpICQoRlNZU19DRkxBR1MpIFwKKwktRFNVUFBPUlRfRElTS0xFU1M9MQorZGlza2xlc3Nf
ZXhlY19MREZMQUdTID0gJChQUkVfU1RBR0UyX0xJTkspCitkaXNrbGVzc19leGVjX0xEQUREID0g
Li4vbmV0Ym9vdC9saWJkcml2ZXJzLmEKKworZGlza2xlc3Nfc2l6ZS5oOiBkaXNrbGVzcworCS1y
bSAtZiAkQAorCXNldCBkdW1teSBgbHMgLWwgJF5gOyBcCisJZWNobyAiI2RlZmluZSBESVNLTEVT
U19TSVpFICQkNiIgPiAkQAorCisjIEZvciBuYmxvYWRlciB0YXJnZXQuCituYmxvYWRlcl9leGVj
X1NPVVJDRVMgPSBuYmxvYWRlci5TCituYmxvYWRlcl9leGVjX0NDQVNGTEFHUyA9ICQoU1RBR0Uy
X0NPTVBJTEUpCituYmxvYWRlcl9leGVjX0xERkxBR1MgPSAkKE5CTE9BREVSX0xJTkspCisKKyMg
WFhYOiBTZWUgdGhlIGNvbW1lbnQgZm9yIHN0YXJ0X2V4ZWMtc3RhcnQuby4KK25ibG9hZGVyX2V4
ZWMtbmJsb2FkZXIuJChPQkpFWFQpOiBkaXNrbGVzc19zaXplLmgKKworIyBGb3IgbmJncnViIHRh
cmdldC4KK25iZ3J1YjogbmJsb2FkZXIgZGlza2xlc3MKKwktcm0gLWYgJEAKKwljYXQgJF4gPiAk
QAorCisjIEZvciBweGVsb2FkZXIgdGFyZ2V0LgorcHhlbG9hZGVyX2V4ZWNfU09VUkNFUyA9IHB4
ZWxvYWRlci5TCitweGVsb2FkZXJfZXhlY19DQ0FTRkxBR1MgPSAkKFNUQUdFMl9DT01QSUxFKQor
cHhlbG9hZGVyX2V4ZWNfTERGTEFHUyA9ICQoUFhFTE9BREVSX0xJTkspCisKKyMgWFhYOiBTZWUg
dGhlIGNvbW1lbnQgZm9yIHN0YXJ0X2V4ZWMtc3RhcnQuby4KK3B4ZWxvYWRlcl9leGVjLXB4ZWxv
YWRlci4kKE9CSkVYVCk6IGRpc2tsZXNzX3NpemUuaAorCisjIEZvciBweGVncnViIHRhcmdldC4K
K3B4ZWdydWI6IHB4ZWxvYWRlciBkaXNrbGVzcworCS1ybSAtZiAkQAorCWNhdCAkXiA+ICRACisK
KyMgR2VuZXJhbCBydWxlIGZvciBtYWtpbmcgYSByYXcgYmluYXJ5LgorU1VGRklYRVMgPSAuZXhl
YworLmV4ZWM6CisJJChPQkpDT1BZKSAtTyBiaW5hcnkgJDwgJEAKZGlmZiAtTmF1ciBncnViLTAu
OTYub3JpZy9zdGFnZTIvYnVpbHRpbnMuYyBncnViLTAuOTYucmVpc2VyNC9zdGFnZTIvYnVpbHRp
bnMuYwotLS0gZ3J1Yi0wLjk2Lm9yaWcvc3RhZ2UyL2J1aWx0aW5zLmMJMjAwNS0xMC0yNSAxNjow
NTo1Ny42MDI4OTExNzMgKzAyMDAKKysrIGdydWItMC45Ni5yZWlzZXI0L3N0YWdlMi9idWlsdGlu
cy5jCTIwMDUtMTAtMjUgMTU6NTM6MzAuMDAwMDAwMDAwICswMjAwCkBAIC00MDY3LDYgKzQwNjcs
NyBAQAogICAgIHsiamZzIiwgICAgICAiL2pmc19zdGFnZTFfNSJ9LAogICAgIHsibWluaXgiLCAg
ICAiL21pbml4X3N0YWdlMV81In0sCiAgICAgeyJyZWlzZXJmcyIsICIvcmVpc2VyZnNfc3RhZ2Ux
XzUifSwKKyAgICB7InJlaXNlcjQiLCAgIi9yZWlzZXI0X3N0YWdlMV81In0sCiAgICAgeyJ2c3Rh
ZnMiLCAgICIvdnN0YWZzX3N0YWdlMV81In0sCiAgICAgeyJ4ZnMiLCAgICAgICIveGZzX3N0YWdl
MV81In0KICAgfTsKZGlmZiAtTmF1ciBncnViLTAuOTYub3JpZy9zdGFnZTIvYnVpbHRpbnMuYy5v
cmlnIGdydWItMC45Ni5yZWlzZXI0L3N0YWdlMi9idWlsdGlucy5jLm9yaWcKLS0tIGdydWItMC45
Ni5vcmlnL3N0YWdlMi9idWlsdGlucy5jLm9yaWcJMjAwNS0xMC0yNSAxNjowNTo1Ni40MTkwNzMw
NjIgKzAyMDAKKysrIGdydWItMC45Ni5yZWlzZXI0L3N0YWdlMi9idWlsdGlucy5jLm9yaWcJMjAw
NS0xMC0yNSAxNTo0NzowMi4wMDAwMDAwMDAgKzAyMDAKQEAgLTU5LDcgKzU5LDggQEAKIC8qIFRo
ZSBkZWZhdWx0IGVudHJ5LiAgKi8KIGludCBkZWZhdWx0X2VudHJ5ID0gMDsKIC8qIFRoZSBmYWxs
YmFjayBlbnRyeS4gICovCi1pbnQgZmFsbGJhY2tfZW50cnkgPSAtMTsKK2ludCBmYWxsYmFja19l
bnRyeW5vOworaW50IGZhbGxiYWNrX2VudHJpZXNbTUFYX0ZBTExCQUNLX0VOVFJJRVNdOwogLyog
VGhlIG51bWJlciBvZiBjdXJyZW50IGVudHJ5LiAgKi8KIGludCBjdXJyZW50X2VudHJ5bm87CiAv
KiBUaGUgYWRkcmVzcyBmb3IgTXVsdGlib290IGNvbW1hbmQtbGluZSBidWZmZXIuICAqLwpAQCAt
OTcsNyArOTgsOCBAQAogewogICBkZWZhdWx0X2VudHJ5ID0gMDsKICAgcGFzc3dvcmQgPSAwOwot
ICBmYWxsYmFja19lbnRyeSA9IC0xOworICBmYWxsYmFja19lbnRyeW5vID0gLTE7CisgIGZhbGxi
YWNrX2VudHJpZXNbMF0gPSAtMTsKICAgZ3J1Yl90aW1lb3V0ID0gLTE7CiB9CiAKQEAgLTEyOSw2
MSArMTMxLDk4IEBACiB9CiAKIAwKKy8qIGJsb2NrbGlzdF9yZWFkX2hlbHBlciBuZWUgZGlza19y
ZWFkX2Jsb2NrbGlzdF9mdW5jIHdhcyBhIG5lc3RlZAorICogZnVuY3Rpb24sIHRvIHdoaWNoIHBv
aW50ZXJzIHdlcmUgdGFrZW4gYW5kIGV4cG9zZWQgZ2xvYmFsbHkuICBFdmVuCisgKiBpbiB0aGUg
R05VLUMgbmVzdGVkIGZ1bmN0aW9ucyBleHRlbnNpb24sIHRoZXkgaGF2ZSBsb2NhbCBsaW5rYWdl
LAorICogYW5kIGFyZW4ndCBndWFyYW50ZWVkIHRvIGJlIGFjY2Vzc2FibGUgKmF0IGFsbCogb3V0
c2lkZSBvZiB0aGVpciAKKyAqIGNvbnRhaW5pbmcgc2NvcGUuCisgKgorICogQWJvdmUgYW5kIGJl
eW9uZCBhbGwgb2YgdGhhdCwgdGhlIHZhcmlhYmxlcyB3aXRoaW4gYmxvY2tsaXN0X2Z1bmNfY29u
dGV4dAorICogYXJlIG9yaWdpbmFsbHkgbG9jYWwgdmFyaWFibGVzLCB3aXRoIGxvY2FsIChub3Qg
ZXZlbiBzdGF0aWMpIGxpbmthZ2UsCisgKiBmcm9tIHdpdGhpbiBibG9ja2xpc3RfZnVuYy4gIFRo
ZXNlIHdlcmUgZWFjaCByZWZlcmVuY2VkIGJ5CisgKiBkaXNrX3JlYWRfYmxvY2tsaXN0X2Z1bmMs
IHdoaWNoIGlzIG9ubHkgY2FsbGVkIGZyb20gb3RoZXIgZnVuY3Rpb25zCisgKiB0aHJvdWdoIGEg
Z2xvYmFsbHkgc2NvcGVkIHBvaW50ZXIuCisgKiAKKyAqIFRoZSBkb2N1bWVudGF0aW9uIGluIEdD
QyBhY3R1YWxseSB1c2VzIHRoZSB3b3JkcyAiYWxsIGhlbGwgd2lsbCBicmVhaworICogbG9vc2Ui
IHRvIGRlc2NyaWJlIHRoaXMgc2NlbmFyaW8uCisgKgorICogQWxzbywgInN0YXJ0X3NlY3RvciIg
d2FzIGFsc28gdXNlZCB1bmluaXRpYWxpemVkLCBidXQgZ2NjIGRvZXNuJ3Qgd2FybgorICogYWJv
dXQgaXQgKHBvc3NpYmx5IGJlY2F1c2Ugb2YgdGhlIHNjb3BpbmcgbWFkbmVzcz8pCisgKi8KKyAg
IAorc3RhdGljIHN0cnVjdCB7CisgICAgICAgaW50IHN0YXJ0X3NlY3RvcjsKKyAgICAgICBpbnQg
bnVtX3NlY3RvcnM7CisgICAgICAgaW50IG51bV9lbnRyaWVzOworICAgICAgIGludCBsYXN0X2xl
bmd0aDsKK30gYmxvY2tsaXN0X2Z1bmNfY29udGV4dCA9IHsKKyAgICAgICAuc3RhcnRfc2VjdG9y
ID0gMCwKKyAgICAgICAubnVtX3NlY3RvcnMgPSAwLAorICAgICAgIC5udW1fZW50cmllcyA9IDAs
CisgICAgICAgLmxhc3RfbGVuZ3RoID0gMAorfTsKKworLyogQ29sbGVjdCBjb250aWd1b3VzIGJs
b2NrcyBpbnRvIG9uZSBlbnRyeSBhcyBtYW55IGFzIHBvc3NpYmxlLAorICAgYW5kIHByaW50IHRo
ZSBibG9ja2xpc3Qgbm90YXRpb24gb24gdGhlIHNjcmVlbi4gICovCitzdGF0aWMgdm9pZAorYmxv
Y2tsaXN0X3JlYWRfaGVscGVyIChpbnQgc2VjdG9yLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQor
eworICBpbnQgKnN0YXJ0X3NlY3RvciA9ICZibG9ja2xpc3RfZnVuY19jb250ZXh0LnN0YXJ0X3Nl
Y3RvcjsKKyAgaW50ICpudW1fc2VjdG9ycyA9ICZibG9ja2xpc3RfZnVuY19jb250ZXh0Lm51bV9z
ZWN0b3JzOworICBpbnQgKm51bV9lbnRyaWVzID0gJmJsb2NrbGlzdF9mdW5jX2NvbnRleHQubnVt
X2VudHJpZXM7CisgIGludCAqbGFzdF9sZW5ndGggPSAmYmxvY2tsaXN0X2Z1bmNfY29udGV4dC5s
YXN0X2xlbmd0aDsKKworICBpZiAoKm51bV9zZWN0b3JzID4gMCkKKyAgeworICAgIGlmICgqc3Rh
cnRfc2VjdG9yICsgKm51bV9zZWN0b3JzID09IHNlY3RvcgorICAgICAgJiYgb2Zmc2V0ID09IDAg
JiYgKmxhc3RfbGVuZ3RoID09IFNFQ1RPUl9TSVpFKQorICAgIHsKKyAgICAgICpudW1fc2VjdG9y
cysrOworICAgICAgKmxhc3RfbGVuZ3RoID0gbGVuZ3RoOworICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBlbHNlCisgICAgeworICAgICAgaWYgKCpsYXN0X2xlbmd0aCA9PSBTRUNUT1JfU0laRSkK
KyAgICAgICAgZ3J1Yl9wcmludGYgKCIlcyVkKyVkIiwgKm51bV9lbnRyaWVzID8gIiwiIDogIiIs
CisgICAgICAgICAgKnN0YXJ0X3NlY3RvciAtIHBhcnRfc3RhcnQsICpudW1fc2VjdG9ycyk7Cisg
ICAgICBlbHNlIGlmICgqbnVtX3NlY3RvcnMgPiAxKQorICAgICAgICBncnViX3ByaW50ZiAoIiVz
JWQrJWQsJWRbMC0lZF0iLCAqbnVtX2VudHJpZXMgPyAiLCIgOiAiIiwKKyAgICAgICAgICAqc3Rh
cnRfc2VjdG9yIC0gcGFydF9zdGFydCwgKm51bV9zZWN0b3JzLTEsCisgICAgICAgICAgKnN0YXJ0
X3NlY3RvciArICpudW1fc2VjdG9ycy0xIC0gcGFydF9zdGFydCwgCisgICAgICAgICAgKmxhc3Rf
bGVuZ3RoKTsKKyAgICAgIGVsc2UKKyAgICAgICAgZ3J1Yl9wcmludGYgKCIlcyVkWzAtJWRdIiwg
Km51bV9lbnRyaWVzID8gIiwiIDogIiIsCisgICAgICAgICAgKnN0YXJ0X3NlY3RvciAtIHBhcnRf
c3RhcnQsICpsYXN0X2xlbmd0aCk7CisgICAgICAqbnVtX2VudHJpZXMrKzsKKyAgICAgICpudW1f
c2VjdG9ycyA9IDA7CisgICAgfQorICB9CisKKyAgaWYgKG9mZnNldCA+IDApCisgIHsKKyAgICBn
cnViX3ByaW50ZigiJXMlZFslZC0lZF0iLCAqbnVtX2VudHJpZXMgPyAiLCIgOiAiIiwKKyAgICAg
ICAgICBzZWN0b3ItcGFydF9zdGFydCwgb2Zmc2V0LCBvZmZzZXQrbGVuZ3RoKTsKKyAgICAqbnVt
X2VudHJpZXMrKzsKKyAgfQorICBlbHNlCisgIHsKKyAgICAqc3RhcnRfc2VjdG9yID0gc2VjdG9y
OworICAgICpudW1fc2VjdG9ycyA9IDE7CisgICAgKmxhc3RfbGVuZ3RoID0gbGVuZ3RoOworICB9
Cit9CisKIC8qIGJsb2NrbGlzdCAqLwogc3RhdGljIGludAogYmxvY2tsaXN0X2Z1bmMgKGNoYXIg
KmFyZywgaW50IGZsYWdzKQogewogICBjaGFyICpkdW1teSA9IChjaGFyICopIFJBV19BRERSICgw
eDEwMDAwMCk7Ci0gIGludCBzdGFydF9zZWN0b3I7Ci0gIGludCBudW1fc2VjdG9ycyA9IDA7Ci0g
IGludCBudW1fZW50cmllcyA9IDA7Ci0gIGludCBsYXN0X2xlbmd0aCA9IDA7Ci0KLSAgLyogQ29s
bGVjdCBjb250aWd1b3VzIGJsb2NrcyBpbnRvIG9uZSBlbnRyeSBhcyBtYW55IGFzIHBvc3NpYmxl
LAotICAgICBhbmQgcHJpbnQgdGhlIGJsb2NrbGlzdCBub3RhdGlvbiBvbiB0aGUgc2NyZWVuLiAg
Ki8KLSAgc3RhdGljIHZvaWQgZGlza19yZWFkX2Jsb2NrbGlzdF9mdW5jIChpbnQgc2VjdG9yLCBp
bnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQotICAgIHsKLSAgICAgIGlmIChudW1fc2VjdG9ycyA+IDAp
Ci0JewotCSAgaWYgKHN0YXJ0X3NlY3RvciArIG51bV9zZWN0b3JzID09IHNlY3RvcgotCSAgICAg
ICYmIG9mZnNldCA9PSAwICYmIGxhc3RfbGVuZ3RoID09IFNFQ1RPUl9TSVpFKQotCSAgICB7Ci0J
ICAgICAgbnVtX3NlY3RvcnMrKzsKLQkgICAgICBsYXN0X2xlbmd0aCA9IGxlbmd0aDsKLQkgICAg
ICByZXR1cm47Ci0JICAgIH0KLQkgIGVsc2UKLQkgICAgewotCSAgICAgIGlmIChsYXN0X2xlbmd0
aCA9PSBTRUNUT1JfU0laRSkKLQkJZ3J1Yl9wcmludGYgKCIlcyVkKyVkIiwgbnVtX2VudHJpZXMg
PyAiLCIgOiAiIiwKLQkJCSAgICAgc3RhcnRfc2VjdG9yIC0gcGFydF9zdGFydCwgbnVtX3NlY3Rv
cnMpOwotCSAgICAgIGVsc2UgaWYgKG51bV9zZWN0b3JzID4gMSkKLQkJZ3J1Yl9wcmludGYgKCIl
cyVkKyVkLCVkWzAtJWRdIiwgbnVtX2VudHJpZXMgPyAiLCIgOiAiIiwKLQkJCSAgICAgc3RhcnRf
c2VjdG9yIC0gcGFydF9zdGFydCwgbnVtX3NlY3RvcnMtMSwKLQkJCSAgICAgc3RhcnRfc2VjdG9y
ICsgbnVtX3NlY3RvcnMtMSAtIHBhcnRfc3RhcnQsIAotCQkJICAgICBsYXN0X2xlbmd0aCk7Ci0J
ICAgICAgZWxzZQotCQlncnViX3ByaW50ZiAoIiVzJWRbMC0lZF0iLCBudW1fZW50cmllcyA/ICIs
IiA6ICIiLAotCQkJICAgICBzdGFydF9zZWN0b3IgLSBwYXJ0X3N0YXJ0LCBsYXN0X2xlbmd0aCk7
Ci0JICAgICAgbnVtX2VudHJpZXMrKzsKLQkgICAgICBudW1fc2VjdG9ycyA9IDA7Ci0JICAgIH0K
LQl9Ci0KLSAgICAgIGlmIChvZmZzZXQgPiAwKQotCXsKLQkgIGdydWJfcHJpbnRmKCIlcyVkWyVk
LSVkXSIsIG51bV9lbnRyaWVzID8gIiwiIDogIiIsCi0JCSAgICAgIHNlY3Rvci1wYXJ0X3N0YXJ0
LCBvZmZzZXQsIG9mZnNldCtsZW5ndGgpOwotCSAgbnVtX2VudHJpZXMrKzsKLQl9Ci0gICAgICBl
bHNlCi0JewotCSAgc3RhcnRfc2VjdG9yID0gc2VjdG9yOwotCSAgbnVtX3NlY3RvcnMgPSAxOwot
CSAgbGFzdF9sZW5ndGggPSBsZW5ndGg7Ci0JfQotICAgIH0KIAorICBpbnQgKnN0YXJ0X3NlY3Rv
ciA9ICZibG9ja2xpc3RfZnVuY19jb250ZXh0LnN0YXJ0X3NlY3RvcjsKKyAgaW50ICpudW1fc2Vj
dG9ycyA9ICZibG9ja2xpc3RfZnVuY19jb250ZXh0Lm51bV9zZWN0b3JzOworICBpbnQgKm51bV9l
bnRyaWVzID0gJmJsb2NrbGlzdF9mdW5jX2NvbnRleHQubnVtX2VudHJpZXM7CisgIAogICAvKiBP
cGVuIHRoZSBmaWxlLiAgKi8KICAgaWYgKCEgZ3J1Yl9vcGVuIChhcmcpKQogICAgIHJldHVybiAx
OwpAQCAtMjAyLDE1ICsyNDEsMTUgQEAKICAgZ3J1Yl9wcmludGYgKCIpIik7CiAKICAgLyogUmVh
ZCBpbiB0aGUgd2hvbGUgZmlsZSB0byBEVU1NWS4gICovCi0gIGRpc2tfcmVhZF9ob29rID0gZGlz
a19yZWFkX2Jsb2NrbGlzdF9mdW5jOworICBkaXNrX3JlYWRfaG9vayA9IGJsb2NrbGlzdF9yZWFk
X2hlbHBlcjsKICAgaWYgKCEgZ3J1Yl9yZWFkIChkdW1teSwgLTEpKQogICAgIGdvdG8gZmFpbDsK
IAogICAvKiBUaGUgbGFzdCBlbnRyeSBtYXkgbm90IGJlIHByaW50ZWQgeWV0LiAgRG9uJ3QgY2hl
Y2sgaWYgaXQgaXMgYQogICAgKiBmdWxsIHNlY3Rvciwgc2luY2UgaXQgZG9lc24ndCBtYXR0ZXIg
aWYgd2UgcmVhZCB0b28gbXVjaC4gKi8KLSAgaWYgKG51bV9zZWN0b3JzID4gMCkKLSAgICBncnVi
X3ByaW50ZiAoIiVzJWQrJWQiLCBudW1fZW50cmllcyA/ICIsIiA6ICIiLAotCQkgc3RhcnRfc2Vj
dG9yIC0gcGFydF9zdGFydCwgbnVtX3NlY3RvcnMpOworICBpZiAoKm51bV9zZWN0b3JzID4gMCkK
KwlncnViX3ByaW50ZiAoIiVzJWQrJWQiLCAqbnVtX2VudHJpZXMgPyAiLCIgOiAiIiwKKyAgICAg
ICAgICAgICAgICAqc3RhcnRfc2VjdG9yIC0gcGFydF9zdGFydCwgKm51bV9zZWN0b3JzKTsKIAog
ICBncnViX3ByaW50ZiAoIlxuIik7CiAgIApAQCAtNTg3LDggKzYyNiwxMCBAQAogICAgICJ3aGl0
ZSIKICAgfTsKIAorICBhdXRvIGludCBjb2xvcl9udW1iZXIgKGNoYXIgKnN0cik7CisgIAogICAv
KiBDb252ZXJ0IHRoZSBjb2xvciBuYW1lIFNUUiBpbnRvIHRoZSBtYWdpY2FsIG51bWJlci4gICov
Ci0gIHN0YXRpYyBpbnQgY29sb3JfbnVtYmVyIChjaGFyICpzdHIpCisgIGF1dG8gaW50IGNvbG9y
X251bWJlciAoY2hhciAqc3RyKQogICAgIHsKICAgICAgIGNoYXIgKnB0cjsKICAgICAgIGludCBp
OwpAQCAtODQ2LDYgKzg4NywxMzggQEAKIH07CiAjZW5kaWYgLyogU1VQUE9SVF9ORVRCT09UICov
CiAKK3N0YXRpYyBpbnQgdGVybWluYWxfZnVuYyAoY2hhciAqYXJnLCBpbnQgZmxhZ3MpOworCisj
aWZkZWYgU1VQUE9SVF9HUkFQSElDUworDAorc3RhdGljIGludCBzcGxhc2hpbWFnZV9mdW5jKGNo
YXIgKmFyZywgaW50IGZsYWdzKSB7CisgICAgY2hhciBzcGxhc2hpbWFnZVs2NF07CisgICAgaW50
IGk7CisgICAgCisgICAgLyogZmlsZW5hbWUgY2FuIG9ubHkgYmUgNjQgY2hhcmFjdGVycyBkdWUg
dG8gb3VyIGJ1ZmZlciBzaXplICovCisgICAgaWYgKHN0cmxlbihhcmcpID4gNjMpCisJcmV0dXJu
IDE7CisgICAgaWYgKGZsYWdzID09IEJVSUxUSU5fQ01ETElORSkgeworCWlmICghZ3J1Yl9vcGVu
KGFyZykpCisJICAgIHJldHVybiAxOworCWdydWJfY2xvc2UoKTsKKyAgICB9CisKKyAgICBzdHJj
cHkoc3BsYXNoaW1hZ2UsIGFyZyk7CisKKyAgICAvKiBnZXQgcmlkIG9mIFRFUk1fTkVFRF9JTklU
IGZyb20gdGhlIGdyYXBoaWNzIHRlcm1pbmFsLiAqLworICAgIGZvciAoaSA9IDA7IHRlcm1fdGFi
bGVbaV0ubmFtZTsgaSsrKSB7CisJaWYgKGdydWJfc3RyY21wICh0ZXJtX3RhYmxlW2ldLm5hbWUs
ICJncmFwaGljcyIpID09IDApIHsKKwkgICAgdGVybV90YWJsZVtpXS5mbGFncyAmPSB+VEVSTV9O
RUVEX0lOSVQ7CisJICAgIGJyZWFrOworCX0KKyAgICB9CisgICAgCisgICAgZ3JhcGhpY3Nfc2V0
X3NwbGFzaChzcGxhc2hpbWFnZSk7CisKKyAgICBpZiAoZmxhZ3MgPT0gQlVJTFRJTl9DTURMSU5F
ICYmIGdyYXBoaWNzX2luaXRlZCkgeworCWdyYXBoaWNzX2VuZCgpOworCWdyYXBoaWNzX2luaXQo
KTsKKwlncmFwaGljc19jbHMoKTsKKyAgICB9CisKKyAgICAvKiBGSVhNRTogc2hvdWxkIHdlIGJl
IGV4cGxpY2l0bHkgc3dpdGNoaW5nIHRoZSB0ZXJtaW5hbCBhcyBhIAorICAgICAqIHNpZGUgZWZm
ZWN0IGhlcmU/ICovCisgICAgdGVybWluYWxfZnVuYygiZ3JhcGhpY3MiLCBmbGFncyk7CisKKyAg
ICByZXR1cm4gMDsKK30KKworc3RhdGljIHN0cnVjdCBidWlsdGluIGJ1aWx0aW5fc3BsYXNoaW1h
Z2UgPQoreworICAic3BsYXNoaW1hZ2UiLAorICBzcGxhc2hpbWFnZV9mdW5jLAorICBCVUlMVElO
X0NNRExJTkUgfCBCVUlMVElOX01FTlUgfCBCVUlMVElOX0hFTFBfTElTVCwKKyAgInNwbGFzaGlt
YWdlIEZJTEUiLAorICAiTG9hZCBGSUxFIGFzIHRoZSBiYWNrZ3JvdW5kIGltYWdlIHdoZW4gaW4g
Z3JhcGhpY3MgbW9kZS4iCit9OworCisMCisvKiBmb3JlZ3JvdW5kICovCitzdGF0aWMgaW50Citm
b3JlZ3JvdW5kX2Z1bmMoY2hhciAqYXJnLCBpbnQgZmxhZ3MpCit7CisgICAgaWYgKGdydWJfc3Ry
bGVuKGFyZykgPT0gNikgeworCWludCByID0gKChoZXgoYXJnWzBdKSA8PCA0KSB8IGhleChhcmdb
MV0pKSA+PiAyOworCWludCBnID0gKChoZXgoYXJnWzJdKSA8PCA0KSB8IGhleChhcmdbM10pKSA+
PiAyOworCWludCBiID0gKChoZXgoYXJnWzRdKSA8PCA0KSB8IGhleChhcmdbNV0pKSA+PiAyOwor
CisJZm9yZWdyb3VuZCA9IChyIDw8IDE2KSB8IChnIDw8IDgpIHwgYjsKKwlpZiAoZ3JhcGhpY3Nf
aW5pdGVkKQorCSAgICBncmFwaGljc19zZXRfcGFsZXR0ZSgxNSwgciwgZywgYik7CisKKwlyZXR1
cm4gKDApOworICAgIH0KKworICAgIHJldHVybiAoMSk7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgYnVp
bHRpbiBidWlsdGluX2ZvcmVncm91bmQgPQoreworICAiZm9yZWdyb3VuZCIsCisgIGZvcmVncm91
bmRfZnVuYywKKyAgQlVJTFRJTl9DTURMSU5FIHwgQlVJTFRJTl9NRU5VIHwgQlVJTFRJTl9IRUxQ
X0xJU1QsCisgICJmb3JlZ3JvdW5kIFJSR0dCQiIsCisgICJTZXRzIHRoZSBmb3JlZ3JvdW5kIGNv
bG9yIHdoZW4gaW4gZ3JhcGhpY3MgbW9kZS4iCisgICJSUiBpcyByZWQsIEdHIGlzIGdyZWVuLCBh
bmQgQkIgYmx1ZS4gTnVtYmVycyBtdXN0IGJlIGluIGhleGFkZWNpbWFsLiIKK307CisKKwwKKy8q
IGJhY2tncm91bmQgKi8KK3N0YXRpYyBpbnQKK2JhY2tncm91bmRfZnVuYyhjaGFyICphcmcsIGlu
dCBmbGFncykKK3sKKyAgICBpZiAoZ3J1Yl9zdHJsZW4oYXJnKSA9PSA2KSB7CisJaW50IHIgPSAo
KGhleChhcmdbMF0pIDw8IDQpIHwgaGV4KGFyZ1sxXSkpID4+IDI7CisJaW50IGcgPSAoKGhleChh
cmdbMl0pIDw8IDQpIHwgaGV4KGFyZ1szXSkpID4+IDI7CisJaW50IGIgPSAoKGhleChhcmdbNF0p
IDw8IDQpIHwgaGV4KGFyZ1s1XSkpID4+IDI7CisKKwliYWNrZ3JvdW5kID0gKHIgPDwgMTYpIHwg
KGcgPDwgOCkgfCBiOworCWlmIChncmFwaGljc19pbml0ZWQpCisJICAgIGdyYXBoaWNzX3NldF9w
YWxldHRlKDAsIHIsIGcsIGIpOworCXJldHVybiAoMCk7CisgICAgfQorCisgICAgcmV0dXJuICgx
KTsKK30KKworc3RhdGljIHN0cnVjdCBidWlsdGluIGJ1aWx0aW5fYmFja2dyb3VuZCA9Cit7Cisg
ICJiYWNrZ3JvdW5kIiwKKyAgYmFja2dyb3VuZF9mdW5jLAorICBCVUlMVElOX0NNRExJTkUgfCBC
VUlMVElOX01FTlUgfCBCVUlMVElOX0hFTFBfTElTVCwKKyAgImJhY2tncm91bmQgUlJHR0JCIiwK
KyAgIlNldHMgdGhlIGJhY2tncm91bmQgY29sb3Igd2hlbiBpbiBncmFwaGljcyBtb2RlLiIKKyAg
IlJSIGlzIHJlZCwgR0cgaXMgZ3JlZW4sIGFuZCBCQiBibHVlLiBOdW1iZXJzIG11c3QgYmUgaW4g
aGV4YWRlY2ltYWwuIgorfTsKKworI2VuZGlmIC8qIFNVUFBPUlRfR1JBUEhJQ1MgKi8KKworDAor
LyogY2xlYXIgKi8KK3N0YXRpYyBpbnQgCitjbGVhcl9mdW5jKCkgCit7CisgIGlmIChjdXJyZW50
X3Rlcm0tPmNscykKKyAgICBjdXJyZW50X3Rlcm0tPmNscygpOworCisgIHJldHVybiAwOworfQor
CitzdGF0aWMgc3RydWN0IGJ1aWx0aW4gYnVpbHRpbl9jbGVhciA9Cit7CisgICJjbGVhciIsCisg
IGNsZWFyX2Z1bmMsCisgIEJVSUxUSU5fQ01ETElORSB8IEJVSUxUSU5fSEVMUF9MSVNULAorICAi
Y2xlYXIiLAorICAiQ2xlYXIgdGhlIHNjcmVlbiIKK307CisKIAwKIC8qIGRpc3BsYXlhcG0gKi8K
IHN0YXRpYyBpbnQKQEAgLTExNDMsOSArMTMxNiwzNSBAQAogc3RhdGljIGludAogZmFsbGJhY2tf
ZnVuYyAoY2hhciAqYXJnLCBpbnQgZmxhZ3MpCiB7Ci0gIGlmICghIHNhZmVfcGFyc2VfbWF4aW50
ICgmYXJnLCAmZmFsbGJhY2tfZW50cnkpKQotICAgIHJldHVybiAxOworICBpbnQgaSA9IDA7CisK
KyAgd2hpbGUgKCphcmcpCisgICAgeworICAgICAgaW50IGVudHJ5OworICAgICAgaW50IGo7Cisg
ICAgICAKKyAgICAgIGlmICghIHNhZmVfcGFyc2VfbWF4aW50ICgmYXJnLCAmZW50cnkpKQorCXJl
dHVybiAxOworCisgICAgICAvKiBSZW1vdmUgZHVwbGljYXRpb25zIHRvIHByZXZlbnQgaW5maW5p
dGUgbG9vcGluZy4gICovCisgICAgICBmb3IgKGogPSAwOyBqIDwgaTsgaisrKQorCWlmIChlbnRy
eSA9PSBmYWxsYmFja19lbnRyaWVzW2pdKQorCSAgYnJlYWs7CisgICAgICBpZiAoaiAhPSBpKQor
CWNvbnRpbnVlOworICAgICAgCisgICAgICBmYWxsYmFja19lbnRyaWVzW2krK10gPSBlbnRyeTsK
KyAgICAgIGlmIChpID09IE1BWF9GQUxMQkFDS19FTlRSSUVTKQorCWJyZWFrOworICAgICAgCisg
ICAgICBhcmcgPSBza2lwX3RvICgwLCBhcmcpOworICAgIH0KIAorICBpZiAoaSA8IE1BWF9GQUxM
QkFDS19FTlRSSUVTKQorICAgIGZhbGxiYWNrX2VudHJpZXNbaV0gPSAtMTsKKworICBmYWxsYmFj
a19lbnRyeW5vID0gKGkgPT0gMCkgPyAtMSA6IDA7CisgIAogICByZXR1cm4gMDsKIH0KIApAQCAt
MTE1NSw3ICsxMzU0LDcgQEAKICAgZmFsbGJhY2tfZnVuYywKICAgQlVJTFRJTl9NRU5VLAogI2lm
IDAKLSAgImZhbGxiYWNrIE5VTSIsCisgICJmYWxsYmFjayBOVU0uLi4iLAogICAiR28gaW50byB1
bmF0dGVuZGVkIGJvb3QgbW9kZTogaWYgdGhlIGRlZmF1bHQgYm9vdCBlbnRyeSBoYXMgYW55Igog
ICAiIGVycm9ycywgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciB0aGUgdXNlciB0byBkbyBhbnl0aGlu
ZywgaXQiCiAgICIgaW1tZWRpYXRlbHkgc3RhcnRzIG92ZXIgdXNpbmcgdGhlIE5VTSBlbnRyeSAo
c2FtZSBudW1iZXJpbmcgYXMgdGhlIgpAQCAtMTcwOCw2ICsxOTA3LDc3IEBACiAKIAwKIC8qIGlu
c3RhbGwgKi8KK3N0YXRpYyBzdHJ1Y3QgeworICAgICAgIGludCBzYXZlZF9zZWN0b3I7CisgICAg
ICAgaW50IGluc3RhbGxhZGRyOworICAgICAgIGludCBpbnN0YWxsbGlzdDsKKyAgICAgICBjaGFy
ICpzdGFnZTJfZmlyc3RfYnVmZmVyOworfSBpbnN0YWxsX2Z1bmNfY29udGV4dCA9IHsKKyAgICAg
ICAuc2F2ZWRfc2VjdG9yID0gMCwKKyAgICAgICAuaW5zdGFsbGFkZHIgPSAwLAorICAgICAgIC5p
bnN0YWxsbGlzdCA9IDAsCisgICAgICAgLnN0YWdlMl9maXJzdF9idWZmZXIgPSBOVUxMLAorfTsK
KworLyogU2F2ZSB0aGUgZmlyc3Qgc2VjdG9yIG9mIFN0YWdlMiBpbiBTVEFHRTJfU0VDVC4gICov
CisvKiBGb3JtZXJseSBkaXNrX3JlYWRfc2F2ZXNlY3RfZnVuYyB3aXRoIGxvY2FsIHNjb3BlIGlu
c2lkZSBpbnN0YWxsX2Z1bmMgKi8KK3N0YXRpYyB2b2lkCitpbnN0YWxsX3NhdmVzZWN0X2hlbHBl
cihpbnQgc2VjdG9yLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQoreworICBpZiAoZGVidWcpCisg
ICAgcHJpbnRmICgiWyVkXSIsIHNlY3Rvcik7CisKKyAgLyogUmVpc2VyRlMgaGFzIGZpbGVzIHdo
aWNoIHNvbWV0aW1lcyBjb250YWluIGRhdGEgbm90IGFsaWduZWQKKyAgICAgb24gc2VjdG9yIGJv
dW5kYXJpZXMuICBSZXR1cm5pbmcgYW4gZXJyb3IgaXMgYmV0dGVyIHRoYW4KKyAgICAgc2lsZW50
bHkgZmFpbGluZy4gKi8KKyAgaWYgKG9mZnNldCAhPSAwIHx8IGxlbmd0aCAhPSBTRUNUT1JfU0la
RSkKKyAgICBlcnJudW0gPSBFUlJfVU5BTElHTkVEOworCisgIGluc3RhbGxfZnVuY19jb250ZXh0
LnNhdmVkX3NlY3RvciA9IHNlY3RvcjsKK30KKworLyogV3JpdGUgU0VDVE9SIHRvIElOU1RBTExM
SVNULCBhbmQgdXBkYXRlIElOU1RBTExBRERSIGFuZCAgSU5TVEFMTFNFQ1QuICAqLworLyogRm9y
bWVybHkgZGlza19yZWFkX2Jsb2NrbGlzdF9mdW5jIHdpdGggbG9jYWwgc2NvcGUgaW5zaWRlIGlu
c3RhbGxfZnVuYyAqLworc3RhdGljIHZvaWQKK2luc3RhbGxfYmxvY2tsaXN0X2hlbHBlciAoaW50
IHNlY3RvciwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKK3sKKyAgaW50ICppbnN0YWxsYWRkciA9
ICZpbnN0YWxsX2Z1bmNfY29udGV4dC5pbnN0YWxsYWRkcjsKKyAgaW50ICppbnN0YWxsbGlzdCA9
ICZpbnN0YWxsX2Z1bmNfY29udGV4dC5pbnN0YWxsbGlzdDsKKyAgY2hhciAqKnN0YWdlMl9maXJz
dF9idWZmZXIgPSAmaW5zdGFsbF9mdW5jX2NvbnRleHQuc3RhZ2UyX2ZpcnN0X2J1ZmZlcjsKKyAg
LyogV2FzIHRoZSBsYXN0IHNlY3RvciBmdWxsPyAqLworICBzdGF0aWMgaW50IGxhc3RfbGVuZ3Ro
ID0gU0VDVE9SX1NJWkU7CisKKyAgaWYgKGRlYnVnKQorICAgIHByaW50ZigiWyVkXSIsIHNlY3Rv
cik7CisKKyAgaWYgKG9mZnNldCAhPSAwIHx8IGxhc3RfbGVuZ3RoICE9IFNFQ1RPUl9TSVpFKQor
ICAgIHsKKyAgICAgIC8qIFdlIGZvdW5kIGEgbm9uLXNlY3Rvci1hbGlnbmVkIGRhdGEgYmxvY2su
ICovCisgICAgICBlcnJudW0gPSBFUlJfVU5BTElHTkVEOworICAgICAgcmV0dXJuOworICAgIH0K
KworICBsYXN0X2xlbmd0aCA9IGxlbmd0aDsKKworICBpZiAoKigodW5zaWduZWQgbG9uZyAqKSAo
Kmluc3RhbGxsaXN0IC0gNCkpCisgICAgICArICooKHVuc2lnbmVkIHNob3J0ICopICppbnN0YWxs
bGlzdCkgIT0gc2VjdG9yCisgICAgICB8fCAqaW5zdGFsbGxpc3QgPT0gKGludCkgKnN0YWdlMl9m
aXJzdF9idWZmZXIgKyBTRUNUT1JfU0laRSArIDQpCisgICAgeworICAgICAgKmluc3RhbGxsaXN0
IC09IDg7CisKKyAgICAgIGlmICgqKCh1bnNpZ25lZCBsb25nICopICgqaW5zdGFsbGxpc3QgLSA4
KSkpCisgICAgICAgIGVycm51bSA9IEVSUl9XT05UX0ZJVDsKKyAgICAgIGVsc2UKKyAgICAgICAg
eworICAgICAgICAgICooKHVuc2lnbmVkIHNob3J0ICopICgqaW5zdGFsbGxpc3QgKyAyKSkgPSAo
Kmluc3RhbGxhZGRyID4+IDQpOworICAgICAgICAgICooKHVuc2lnbmVkIGxvbmcgKikgKCppbnN0
YWxsbGlzdCAtIDQpKSA9IHNlY3RvcjsKKyAgICAgICAgfQorICAgIH0KKworICAqKCh1bnNpZ25l
ZCBzaG9ydCAqKSAqaW5zdGFsbGxpc3QpICs9IDE7CisgICppbnN0YWxsYWRkciArPSA1MTI7Cit9
CisKIHN0YXRpYyBpbnQKIGluc3RhbGxfZnVuYyAoY2hhciAqYXJnLCBpbnQgZmxhZ3MpCiB7CkBA
IC0xNzE1LDIwICsxOTg1LDI1IEBACiAgIGNoYXIgKnN0YWdlMV9idWZmZXIgPSAoY2hhciAqKSBS
QVdfQUREUiAoMHgxMDAwMDApOwogICBjaGFyICpzdGFnZTJfYnVmZmVyID0gc3RhZ2UxX2J1ZmZl
ciArIFNFQ1RPUl9TSVpFOwogICBjaGFyICpvbGRfc2VjdCA9IHN0YWdlMl9idWZmZXIgKyBTRUNU
T1JfU0laRTsKLSAgY2hhciAqc3RhZ2UyX2ZpcnN0X2J1ZmZlciA9IG9sZF9zZWN0ICsgU0VDVE9S
X1NJWkU7Ci0gIGNoYXIgKnN0YWdlMl9zZWNvbmRfYnVmZmVyID0gc3RhZ2UyX2ZpcnN0X2J1ZmZl
ciArIFNFQ1RPUl9TSVpFOworICAvKiBzdGFnZTJfZmlyc3RfYnVmZmVyIHVzZWQgdG8gYmUgZGVm
aW5lZCBhczoKKyAgICogY2hhciAqc3RhZ2UyX2ZpcnN0X2J1ZmZlciA9IG9sZF9zZWN0ICsgU0VD
VE9SX1NJWkU7ICAqLworICBjaGFyICoqc3RhZ2UyX2ZpcnN0X2J1ZmZlciA9ICZpbnN0YWxsX2Z1
bmNfY29udGV4dC5zdGFnZTJfZmlyc3RfYnVmZmVyOworICAvKiBhbmQgc3RhZ2UyX3NlY29uZF9i
dWZmZXIgd2FzOgorICAgKiBjaGFyICpzdGFnZTJfc2Vjb25kX2J1ZmZlciA9IHN0YWdlMl9maXJz
dF9idWZmZXIgKyBTRUNUT1JfU0laRTsgKi8KKyAgY2hhciAqc3RhZ2UyX3NlY29uZF9idWZmZXIg
PSBvbGRfc2VjdCArIFNFQ1RPUl9TSVpFICsgU0VDVE9SX1NJWkU7CiAgIC8qIFhYWDogUHJvYmFi
bHkgU0VDVE9SX1NJWkUgaXMgcmVhc29uYWJsZS4gICovCiAgIGNoYXIgKmNvbmZpZ19maWxlbmFt
ZSA9IHN0YWdlMl9zZWNvbmRfYnVmZmVyICsgU0VDVE9SX1NJWkU7CiAgIGNoYXIgKmR1bW15ID0g
Y29uZmlnX2ZpbGVuYW1lICsgU0VDVE9SX1NJWkU7Ci0gIGludCBuZXdfZHJpdmUgPSAweEZGOwor
ICBpbnQgbmV3X2RyaXZlID0gR1JVQl9JTlZBTElEX0RSSVZFOwogICBpbnQgZGVzdF9kcml2ZSwg
ZGVzdF9wYXJ0aXRpb24sIGRlc3Rfc2VjdG9yOwogICBpbnQgc3JjX2RyaXZlLCBzcmNfcGFydGl0
aW9uLCBzcmNfcGFydF9zdGFydDsKICAgaW50IGk7CiAgIHN0cnVjdCBnZW9tZXRyeSBkZXN0X2dl
b20sIHNyY19nZW9tOwotICBpbnQgc2F2ZWRfc2VjdG9yOworICBpbnQgKnNhdmVkX3NlY3RvciA9
ICZpbnN0YWxsX2Z1bmNfY29udGV4dC5zYXZlZF9zZWN0b3I7CiAgIGludCBzdGFnZTJfZmlyc3Rf
c2VjdG9yLCBzdGFnZTJfc2Vjb25kX3NlY3RvcjsKICAgY2hhciAqcHRyOwotICBpbnQgaW5zdGFs
bGFkZHIsIGluc3RhbGxsaXN0OworICBpbnQgKmluc3RhbGxhZGRyID0gJmluc3RhbGxfZnVuY19j
b250ZXh0Lmluc3RhbGxhZGRyOworICBpbnQgKmluc3RhbGxsaXN0ID0gJmluc3RhbGxfZnVuY19j
b250ZXh0Lmluc3RhbGxsaXN0OwogICAvKiBQb2ludCB0byB0aGUgbG9jYXRpb24gb2YgdGhlIG5h
bWUgb2YgYSBjb25maWd1cmF0aW9uIGZpbGUgaW4gU3RhZ2UgMi4gICovCiAgIGNoYXIgKmNvbmZp
Z19maWxlX2xvY2F0aW9uOwogICAvKiBJZiBGSUxFIGlzIGEgU3RhZ2UgMS41PyAgKi8KQEAgLTE3
MzcsNjQgKzIwMTIsMTMgQEAKICAgaW50IGlzX29wZW4gPSAwOwogICAvKiBJZiBMQkEgaXMgZm9y
Y2VkPyAgKi8KICAgaW50IGlzX2ZvcmNlX2xiYSA9IDA7Ci0gIC8qIFdhcyB0aGUgbGFzdCBzZWN0
b3IgZnVsbD8gKi8KLSAgaW50IGxhc3RfbGVuZ3RoID0gU0VDVE9SX1NJWkU7Ci0gIAogI2lmZGVm
IEdSVUJfVVRJTAogICAvKiBJZiB0aGUgU3RhZ2UgMiBpcyBpbiBhIHBhcnRpdGlvbiBtb3VudGVk
IGJ5IGFuIE9TLCB0aGlzIHdpbGwgc3RvcmUKICAgICAgdGhlIGZpbGVuYW1lIHVuZGVyIHRoZSBP
Uy4gICovCiAgIGNoYXIgKnN0YWdlMl9vc19maWxlID0gMDsKICNlbmRpZiAvKiBHUlVCX1VUSUwg
Ki8KLSAgCi0gIC8qIFNhdmUgdGhlIGZpcnN0IHNlY3RvciBvZiBTdGFnZTIgaW4gU1RBR0UyX1NF
Q1QuICAqLwotICBzdGF0aWMgdm9pZCBkaXNrX3JlYWRfc2F2ZXNlY3RfZnVuYyAoaW50IHNlY3Rv
ciwgaW50IG9mZnNldCwgaW50IGxlbmd0aCkKLSAgICB7Ci0gICAgICBpZiAoZGVidWcpCi0JcHJp
bnRmICgiWyVkXSIsIHNlY3Rvcik7Ci0KLSAgICAgIC8qIFJlaXNlckZTIGhhcyBmaWxlcyB3aGlj
aCBzb21ldGltZXMgY29udGFpbiBkYXRhIG5vdCBhbGlnbmVkCi0gICAgICAgICBvbiBzZWN0b3Ig
Ym91bmRhcmllcy4gIFJldHVybmluZyBhbiBlcnJvciBpcyBiZXR0ZXIgdGhhbgotICAgICAgICAg
c2lsZW50bHkgZmFpbGluZy4gKi8KLSAgICAgIGlmIChvZmZzZXQgIT0gMCB8fCBsZW5ndGggIT0g
U0VDVE9SX1NJWkUpCi0JZXJybnVtID0gRVJSX1VOQUxJR05FRDsKIAotICAgICAgc2F2ZWRfc2Vj
dG9yID0gc2VjdG9yOwotICAgIH0KLQotICAvKiBXcml0ZSBTRUNUT1IgdG8gSU5TVEFMTExJU1Qs
IGFuZCB1cGRhdGUgSU5TVEFMTEFERFIgYW5kCi0gICAgIElOU1RBTExTRUNULiAgKi8KLSAgc3Rh
dGljIHZvaWQgZGlza19yZWFkX2Jsb2NrbGlzdF9mdW5jIChpbnQgc2VjdG9yLCBpbnQgb2Zmc2V0
LCBpbnQgbGVuZ3RoKQotICAgIHsKLSAgICAgIGlmIChkZWJ1ZykKLQlwcmludGYoIlslZF0iLCBz
ZWN0b3IpOwotCi0gICAgICBpZiAob2Zmc2V0ICE9IDAgfHwgbGFzdF9sZW5ndGggIT0gU0VDVE9S
X1NJWkUpCi0JewotCSAgLyogV2UgZm91bmQgYSBub24tc2VjdG9yLWFsaWduZWQgZGF0YSBibG9j
ay4gKi8KLQkgIGVycm51bSA9IEVSUl9VTkFMSUdORUQ7Ci0JICByZXR1cm47Ci0JfQotCi0gICAg
ICBsYXN0X2xlbmd0aCA9IGxlbmd0aDsKLQotICAgICAgaWYgKCooKHVuc2lnbmVkIGxvbmcgKikg
KGluc3RhbGxsaXN0IC0gNCkpCi0JICArICooKHVuc2lnbmVkIHNob3J0ICopIGluc3RhbGxsaXN0
KSAhPSBzZWN0b3IKLQkgIHx8IGluc3RhbGxsaXN0ID09IChpbnQpIHN0YWdlMl9maXJzdF9idWZm
ZXIgKyBTRUNUT1JfU0laRSArIDQpCi0JewotCSAgaW5zdGFsbGxpc3QgLT0gODsKLQotCSAgaWYg
KCooKHVuc2lnbmVkIGxvbmcgKikgKGluc3RhbGxsaXN0IC0gOCkpKQotCSAgICBlcnJudW0gPSBF
UlJfV09OVF9GSVQ7Ci0JICBlbHNlCi0JICAgIHsKLQkgICAgICAqKCh1bnNpZ25lZCBzaG9ydCAq
KSAoaW5zdGFsbGxpc3QgKyAyKSkgPSAoaW5zdGFsbGFkZHIgPj4gNCk7Ci0JICAgICAgKigodW5z
aWduZWQgbG9uZyAqKSAoaW5zdGFsbGxpc3QgLSA0KSkgPSBzZWN0b3I7Ci0JICAgIH0KLQl9Ci0K
LSAgICAgICooKHVuc2lnbmVkIHNob3J0ICopIGluc3RhbGxsaXN0KSArPSAxOwotICAgICAgaW5z
dGFsbGFkZHIgKz0gNTEyOwotICAgIH0KKyAgKnN0YWdlMl9maXJzdF9idWZmZXIgPSBvbGRfc2Vj
dCArIFNFQ1RPUl9TSVpFOwogCiAgIC8qIEZpcnN0LCBjaGVjayB0aGUgR05VLXN0eWxlIGxvbmcg
b3B0aW9uLiAgKi8KICAgd2hpbGUgKDEpCkBAIC0xODI3LDEwICsyMDUxLDEwIEBACiAgIGFkZHIg
PSBza2lwX3RvICgwLCBmaWxlKTsKIAogICAvKiBHZXQgdGhlIGluc3RhbGxhdGlvbiBhZGRyZXNz
LiAgKi8KLSAgaWYgKCEgc2FmZV9wYXJzZV9tYXhpbnQgKCZhZGRyLCAmaW5zdGFsbGFkZHIpKQor
ICBpZiAoISBzYWZlX3BhcnNlX21heGludCAoJmFkZHIsIGluc3RhbGxhZGRyKSkKICAgICB7CiAg
ICAgICAvKiBBRERSIGlzIG5vdCBzcGVjaWZpZWQuICAqLwotICAgICAgaW5zdGFsbGFkZHIgPSAw
OworICAgICAgKmluc3RhbGxhZGRyID0gMDsKICAgICAgIHB0ciA9IGFkZHI7CiAgICAgICBlcnJu
dW0gPSAwOwogICAgIH0KQEAgLTE5MjQsMTcgKzIxNDgsMTcgQEAKICAgICA9IChkZXN0X2RyaXZl
ICYgQklPU19GTEFHX0ZJWEVEX0RJU0spOwogICAKICAgLyogUmVhZCB0aGUgZmlyc3Qgc2VjdG9y
IG9mIFN0YWdlIDIuICAqLwotICBkaXNrX3JlYWRfaG9vayA9IGRpc2tfcmVhZF9zYXZlc2VjdF9m
dW5jOwotICBpZiAoZ3J1Yl9yZWFkIChzdGFnZTJfZmlyc3RfYnVmZmVyLCBTRUNUT1JfU0laRSkg
IT0gU0VDVE9SX1NJWkUpCisgIGRpc2tfcmVhZF9ob29rID0gaW5zdGFsbF9zYXZlc2VjdF9oZWxw
ZXI7CisgIGlmIChncnViX3JlYWQgKCpzdGFnZTJfZmlyc3RfYnVmZmVyLCBTRUNUT1JfU0laRSkg
IT0gU0VDVE9SX1NJWkUpCiAgICAgZ290byBmYWlsOwogCi0gIHN0YWdlMl9maXJzdF9zZWN0b3Ig
PSBzYXZlZF9zZWN0b3I7CisgIHN0YWdlMl9maXJzdF9zZWN0b3IgPSAqc2F2ZWRfc2VjdG9yOwog
ICAKICAgLyogUmVhZCB0aGUgc2Vjb25kIHNlY3RvciBvZiBTdGFnZSAyLiAgKi8KICAgaWYgKGdy
dWJfcmVhZCAoc3RhZ2UyX3NlY29uZF9idWZmZXIsIFNFQ1RPUl9TSVpFKSAhPSBTRUNUT1JfU0la
RSkKICAgICBnb3RvIGZhaWw7CiAKLSAgc3RhZ2UyX3NlY29uZF9zZWN0b3IgPSBzYXZlZF9zZWN0
b3I7CisgIHN0YWdlMl9zZWNvbmRfc2VjdG9yID0gKnNhdmVkX3NlY3RvcjsKICAgCiAgIC8qIENo
ZWNrIGZvciB0aGUgdmVyc2lvbiBvZiBTdGFnZSAyLiAgKi8KICAgaWYgKCooKHNob3J0ICopIChz
dGFnZTJfc2Vjb25kX2J1ZmZlciArIFNUQUdFMl9WRVJfTUFKX09GRlMpKQpAQCAtMTk1MCwyNyAr
MjE3NCwyNyBAQAogCiAgIC8qIElmIElOU1RBTExBRERSIGlzIG5vdCBzcGVjaWZpZWQgZXhwbGlj
aXRseSBpbiB0aGUgY29tbWFuZC1saW5lLAogICAgICBkZXRlcm1pbmUgaXQgYnkgdGhlIFN0YWdl
IDIgaWQuICAqLwotICBpZiAoISBpbnN0YWxsYWRkcikKKyAgaWYgKCEgKmluc3RhbGxhZGRyKQog
ICAgIHsKICAgICAgIGlmICghIGlzX3N0YWdlMV81KQogCS8qIFN0YWdlIDIuICAqLwotCWluc3Rh
bGxhZGRyID0gMHg4MDAwOworCSppbnN0YWxsYWRkciA9IDB4ODAwMDsKICAgICAgIGVsc2UKIAkv
KiBTdGFnZSAxLjUuICAqLwotCWluc3RhbGxhZGRyID0gMHgyMDAwOworCSppbnN0YWxsYWRkciA9
IDB4MjAwMDsKICAgICB9CiAKICAgKigodW5zaWduZWQgbG9uZyAqKSAoc3RhZ2UxX2J1ZmZlciAr
IFNUQUdFMV9TVEFHRTJfU0VDVE9SKSkKICAgICA9IHN0YWdlMl9maXJzdF9zZWN0b3I7CiAgICoo
KHVuc2lnbmVkIHNob3J0ICopIChzdGFnZTFfYnVmZmVyICsgU1RBR0UxX1NUQUdFMl9BRERSRVNT
KSkKLSAgICA9IGluc3RhbGxhZGRyOworICAgID0gKmluc3RhbGxhZGRyOwogICAqKCh1bnNpZ25l
ZCBzaG9ydCAqKSAoc3RhZ2UxX2J1ZmZlciArIFNUQUdFMV9TVEFHRTJfU0VHTUVOVCkpCi0gICAg
PSBpbnN0YWxsYWRkciA+PiA0OworICAgID0gKmluc3RhbGxhZGRyID4+IDQ7CiAKLSAgaSA9IChp
bnQpIHN0YWdlMl9maXJzdF9idWZmZXIgKyBTRUNUT1JfU0laRSAtIDQ7CisgIGkgPSAoaW50KSAq
c3RhZ2UyX2ZpcnN0X2J1ZmZlciArIFNFQ1RPUl9TSVpFIC0gNDsKICAgd2hpbGUgKCooKHVuc2ln
bmVkIGxvbmcgKikgaSkpCiAgICAgewotICAgICAgaWYgKGkgPCAoaW50KSBzdGFnZTJfZmlyc3Rf
YnVmZmVyCisgICAgICBpZiAoaSA8IChpbnQpICpzdGFnZTJfZmlyc3RfYnVmZmVyCiAJICB8fCAo
KigoaW50ICopIChpIC0gNCkpICYgMHg4MDAwMDAwMCkKIAkgIHx8ICooKHVuc2lnbmVkIHNob3J0
ICopIGkpID49IDB4QTAwCiAJICB8fCAqKChzaG9ydCAqKSAoaSArIDIpKSA9PSAwKQpAQCAtMTk4
NCwxMyArMjIwOCwxMyBAQAogICAgICAgaSAtPSA4OwogICAgIH0KIAotICBpbnN0YWxsbGlzdCA9
IChpbnQpIHN0YWdlMl9maXJzdF9idWZmZXIgKyBTRUNUT1JfU0laRSArIDQ7Ci0gIGluc3RhbGxh
ZGRyICs9IFNFQ1RPUl9TSVpFOworICAqaW5zdGFsbGxpc3QgPSAoaW50KSAqc3RhZ2UyX2ZpcnN0
X2J1ZmZlciArIFNFQ1RPUl9TSVpFICsgNDsKKyAgKmluc3RhbGxhZGRyICs9IFNFQ1RPUl9TSVpF
OwogICAKICAgLyogUmVhZCB0aGUgd2hvbGUgb2YgU3RhZ2UyIGV4Y2VwdCBmb3IgdGhlIGZpcnN0
IHNlY3Rvci4gICovCiAgIGdydWJfc2VlayAoU0VDVE9SX1NJWkUpOwogCi0gIGRpc2tfcmVhZF9o
b29rID0gZGlza19yZWFkX2Jsb2NrbGlzdF9mdW5jOworICBkaXNrX3JlYWRfaG9vayA9IGluc3Rh
bGxfYmxvY2tsaXN0X2hlbHBlcjsKICAgaWYgKCEgZ3J1Yl9yZWFkIChkdW1teSwgLTEpKQogICAg
IGdvdG8gZmFpbDsKICAgCkBAIC0yMDUxLDcgKzIyNzUsNyBAQAogCSAgICAgIC8qIElmIHRoZSBk
cml2ZSB3aGVyZSB0aGUgU3RhZ2UgMiByZXNpZGVzIGlzIHRoZSBzYW1lIGFzCiAJCSB0aGUgb25l
IHdoZXJlIHRoZSBTdGFnZSAxLjUgcmVzaWRlcywgZG8gbm90IGVtYmVkIHRoZQogCQkgZHJpdmUg
bnVtYmVyLiAgKi8KLQkgICAgICBjdXJyZW50X2RyaXZlID0gMHhGRjsKKwkgICAgICBjdXJyZW50
X2RyaXZlID0gR1JVQl9JTlZBTElEX0RSSVZFOwogCSAgICB9CiAKIAkgIGRldmljZSA9IChjdXJy
ZW50X2RyaXZlIDw8IDI0KSB8IGN1cnJlbnRfcGFydGl0aW9uOwpAQCAtMjA3Myw3ICsyMjk3LDcg
QEAKIAkgIC8qIFNraXAgdGhlIGZpcnN0IHNlY3Rvci4gICovCiAJICBncnViX3NlZWsgKFNFQ1RP
Ul9TSVpFKTsKIAkgIAotCSAgZGlza19yZWFkX2hvb2sgPSBkaXNrX3JlYWRfc2F2ZXNlY3RfZnVu
YzsKKwkgIGRpc2tfcmVhZF9ob29rID0gaW5zdGFsbF9zYXZlc2VjdF9oZWxwZXI7CiAJICBpZiAo
Z3J1Yl9yZWFkIChzdGFnZTJfYnVmZmVyLCBTRUNUT1JfU0laRSkgIT0gU0VDVE9SX1NJWkUpCiAJ
ICAgIGdvdG8gZmFpbDsKIAkgIApAQCAtMjE0Myw3ICsyMzY3LDcgQEAKIAkgIGVsc2UKICNlbmRp
ZiAvKiBHUlVCX1VUSUwgKi8KIAkgICAgewotCSAgICAgIGlmICghIGRldndyaXRlIChzYXZlZF9z
ZWN0b3IgLSBwYXJ0X3N0YXJ0LCAxLCBzdGFnZTJfYnVmZmVyKSkKKwkgICAgICBpZiAoISBkZXZ3
cml0ZSAoKnNhdmVkX3NlY3RvciAtIHBhcnRfc3RhcnQsIDEsIHN0YWdlMl9idWZmZXIpKQogCQln
b3RvIGZhaWw7CiAJICAgIH0KIAl9CkBAIC0yMTY1LDcgKzIzODksNyBAQAogCSAgZ290byBmYWls
OwogCX0KIAotICAgICAgaWYgKGZ3cml0ZSAoc3RhZ2UyX2ZpcnN0X2J1ZmZlciwgMSwgU0VDVE9S
X1NJWkUsIGZwKSAhPSBTRUNUT1JfU0laRSkKKyAgICAgIGlmIChmd3JpdGUgKCpzdGFnZTJfZmly
c3RfYnVmZmVyLCAxLCBTRUNUT1JfU0laRSwgZnApICE9IFNFQ1RPUl9TSVpFKQogCXsKIAkgIGZj
bG9zZSAoZnApOwogCSAgZXJybnVtID0gRVJSX1dSSVRFOwpAQCAtMjE5Miw3ICsyNDE2LDcgQEAK
IAlnb3RvIGZhaWw7CiAKICAgICAgIGlmICghIGRldndyaXRlIChzdGFnZTJfZmlyc3Rfc2VjdG9y
IC0gc3JjX3BhcnRfc3RhcnQsIDEsCi0JCSAgICAgIHN0YWdlMl9maXJzdF9idWZmZXIpKQorCQkg
ICAgICAqc3RhZ2UyX2ZpcnN0X2J1ZmZlcikpCiAJZ290byBmYWlsOwogCiAgICAgICBpZiAoISBk
ZXZ3cml0ZSAoc3RhZ2UyX3NlY29uZF9zZWN0b3IgLSBzcmNfcGFydF9zdGFydCwgMSwKQEAgLTMx
ODUsOCArMzQwOSwyOSBAQAogc2F2ZWRlZmF1bHRfZnVuYyAoY2hhciAqYXJnLCBpbnQgZmxhZ3Mp
CiB7CiAjaWYgIWRlZmluZWQoU1VQUE9SVF9ESVNLTEVTUykgJiYgIWRlZmluZWQoR1JVQl9VVElM
KQotICBjaGFyIGJ1ZmZlcls1MTJdOwotICBpbnQgKmVudHJ5bm9fcHRyOworICB1bnNpZ25lZCBs
b25nIHRtcF9kcml2ZSA9IHNhdmVkX2RyaXZlOworICB1bnNpZ25lZCBsb25nIHRtcF9wYXJ0aXRp
b24gPSBzYXZlZF9wYXJ0aXRpb247CisgIGNoYXIgKmRlZmF1bHRfZmlsZSA9IChjaGFyICopIERF
RkFVTFRfRklMRV9CVUY7CisgIGNoYXIgYnVmWzEwXTsKKyAgY2hhciBzZWN0W1NFQ1RPUl9TSVpF
XTsKKyAgaW50IGVudHJ5bm87CisgIGludCBzZWN0b3JfY291bnQgPSAwOworICBpbnQgc2F2ZWRf
c2VjdG9yc1syXTsKKyAgaW50IHNhdmVkX29mZnNldHNbMl07CisgIGludCBzYXZlZF9sZW5ndGhz
WzJdOworCisgIC8qIFNhdmUgc2VjdG9yIGluZm9ybWF0aW9uIGFib3V0IGF0IG1vc3QgdHdvIHNl
Y3RvcnMuICAqLworICBhdXRvIHZvaWQgZGlza19yZWFkX3NhdmVzZWN0X2Z1bmMgKGludCBzZWN0
b3IsIGludCBvZmZzZXQsIGludCBsZW5ndGgpOworICB2b2lkIGRpc2tfcmVhZF9zYXZlc2VjdF9m
dW5jIChpbnQgc2VjdG9yLCBpbnQgb2Zmc2V0LCBpbnQgbGVuZ3RoKQorICAgIHsKKyAgICAgIGlm
IChzZWN0b3JfY291bnQgPCAyKQorCXsKKwkgIHNhdmVkX3NlY3RvcnNbc2VjdG9yX2NvdW50XSA9
IHNlY3RvcjsKKwkgIHNhdmVkX29mZnNldHNbc2VjdG9yX2NvdW50XSA9IG9mZnNldDsKKwkgIHNh
dmVkX2xlbmd0aHNbc2VjdG9yX2NvdW50XSA9IGxlbmd0aDsKKwl9CisgICAgICBzZWN0b3JfY291
bnQrKzsKKyAgICB9CiAgIAogICAvKiBUaGlzIGNvbW1hbmQgaXMgb25seSB1c2VmdWwgd2hlbiB5
b3UgYm9vdCBhbiBlbnRyeSBmcm9tIHRoZSBtZW51CiAgICAgIGludGVyZmFjZS4gICovCkBAIC0z
MTk1LDQ2ICszNDQwLDExMCBAQAogICAgICAgZXJybnVtID0gRVJSX1VOUkVDT0dOSVpFRDsKICAg
ICAgIHJldHVybiAxOwogICAgIH0KLSAgCi0gIC8qIEdldCB0aGUgZ2VvbWV0cnkgb2YgdGhlIGJv
b3QgZHJpdmUgKGkuZS4gdGhlIGRpc2sgd2hpY2ggY29udGFpbnMKLSAgICAgdGhpcyBzdGFnZTIp
LiAgKi8KLSAgaWYgKGdldF9kaXNraW5mbyAoYm9vdF9kcml2ZSwgJmJ1Zl9nZW9tKSkKLSAgICB7
Ci0gICAgICBlcnJudW0gPSBFUlJfTk9fRElTSzsKLSAgICAgIHJldHVybiAxOwotICAgIH0KIAot
ICAvKiBMb2FkIHRoZSBzZWNvbmQgc2VjdG9yIG9mIHRoaXMgc3RhZ2UyLiAgKi8KLSAgaWYgKCEg
cmF3cmVhZCAoYm9vdF9kcml2ZSwgaW5zdGFsbF9zZWNvbmRfc2VjdG9yLCAwLCBTRUNUT1JfU0la
RSwgYnVmZmVyKSkKKyAgLyogRGV0ZXJtaW5lIGEgc2F2ZWQgZW50cnkgbnVtYmVyLiAgKi8KKyAg
aWYgKCphcmcpCiAgICAgewotICAgICAgcmV0dXJuIDE7Ci0gICAgfQorICAgICAgaWYgKGdydWJf
bWVtY21wIChhcmcsICJmYWxsYmFjayIsIHNpemVvZiAoImZhbGxiYWNrIikgLSAxKSA9PSAwKQor
CXsKKwkgIGludCBpOworCSAgaW50IGluZGV4ID0gMDsKKwkgIAorCSAgZm9yIChpID0gMDsgaSA8
IE1BWF9GQUxMQkFDS19FTlRSSUVTOyBpKyspCisJICAgIHsKKwkgICAgICBpZiAoZmFsbGJhY2tf
ZW50cmllc1tpXSA8IDApCisJCWJyZWFrOworCSAgICAgIGlmIChmYWxsYmFja19lbnRyaWVzW2ld
ID09IGN1cnJlbnRfZW50cnlubykKKwkJeworCQkgIGluZGV4ID0gaSArIDE7CisJCSAgYnJlYWs7
CisJCX0KKwkgICAgfQorCSAgCisJICBpZiAoaW5kZXggPj0gTUFYX0ZBTExCQUNLX0VOVFJJRVMg
fHwgZmFsbGJhY2tfZW50cmllc1tpbmRleF0gPCAwKQorCSAgICB7CisJICAgICAgLyogVGhpcyBp
cyB0aGUgbGFzdC4gICovCisJICAgICAgZXJybnVtID0gRVJSX0JBRF9BUkdVTUVOVDsKKwkgICAg
ICByZXR1cm4gMTsKKwkgICAgfQogCi0gIC8qIFNhbml0eSBjaGVjay4gICovCi0gIGlmIChidWZm
ZXJbU1RBR0UyX1NUQUdFMl9JRF0gIT0gU1RBR0UyX0lEX1NUQUdFMgotICAgICAgfHwgKigoc2hv
cnQgKikgKGJ1ZmZlciArIFNUQUdFMl9WRVJfTUFKX09GRlMpKSAhPSBDT01QQVRfVkVSU0lPTikK
LSAgICB7Ci0gICAgICBlcnJudW0gPSBFUlJfQkFEX1ZFUlNJT047Ci0gICAgICByZXR1cm4gMTsK
KwkgIGVudHJ5bm8gPSBmYWxsYmFja19lbnRyaWVzW2luZGV4XTsKKwl9CisgICAgICBlbHNlIGlm
ICghIHNhZmVfcGFyc2VfbWF4aW50ICgmYXJnLCAmZW50cnlubykpCisJcmV0dXJuIDE7CiAgICAg
fQotICAKLSAgZW50cnlub19wdHIgPSAoaW50ICopIChidWZmZXIgKyBTVEFHRTJfU0FWRURfRU5U
UllOTyk7CisgIGVsc2UKKyAgICBlbnRyeW5vID0gY3VycmVudF9lbnRyeW5vOwogCi0gIC8qIENo
ZWNrIGlmIHRoZSBzYXZlZCBlbnRyeSBudW1iZXIgZGlmZmVycyBmcm9tIGN1cnJlbnQgZW50cnkg
bnVtYmVyLiAgKi8KLSAgaWYgKCplbnRyeW5vX3B0ciAhPSBjdXJyZW50X2VudHJ5bm8pCi0gICAg
ewotICAgICAgLyogT3ZlcndyaXRlIHRoZSBzYXZlZCBlbnRyeSBudW1iZXIuICAqLwotICAgICAg
KmVudHJ5bm9fcHRyID0gY3VycmVudF9lbnRyeW5vOworICAvKiBPcGVuIHRoZSBkZWZhdWx0IGZp
bGUuICAqLworICBzYXZlZF9kcml2ZSA9IGJvb3RfZHJpdmU7CisgIHNhdmVkX3BhcnRpdGlvbiA9
IGluc3RhbGxfcGFydGl0aW9uOworICBpZiAoZ3J1Yl9vcGVuIChkZWZhdWx0X2ZpbGUpKQorICAg
IHsKKyAgICAgIGludCBsZW47CisgICAgICAKKyAgICAgIGRpc2tfcmVhZF9ob29rID0gZGlza19y
ZWFkX3NhdmVzZWN0X2Z1bmM7CisgICAgICBsZW4gPSBncnViX3JlYWQgKGJ1Ziwgc2l6ZW9mIChi
dWYpKTsKKyAgICAgIGRpc2tfcmVhZF9ob29rID0gMDsKKyAgICAgIGdydWJfY2xvc2UgKCk7CiAg
ICAgICAKLSAgICAgIC8qIFNhdmUgdGhlIGltYWdlIGluIHRoZSBkaXNrLiAgKi8KLSAgICAgIGlm
ICghIHJhd3dyaXRlIChib290X2RyaXZlLCBpbnN0YWxsX3NlY29uZF9zZWN0b3IsIGJ1ZmZlcikp
Ci0JcmV0dXJuIDE7CisgICAgICBpZiAobGVuICE9IHNpemVvZiAoYnVmKSkKKwl7CisJICAvKiBU
aGlzIGlzIHRvbyBzbWFsbC4gRG8gbm90IG1vZGlmeSB0aGUgZmlsZSBtYW51YWxseSwgcGxlYXNl
ISAgKi8KKwkgIGVycm51bSA9IEVSUl9SRUFEOworCSAgZ290byBmYWlsOworCX0KKworICAgICAg
aWYgKHNlY3Rvcl9jb3VudCA+IDIpCisJeworCSAgLyogSXMgdGhpcyBwb3NzaWJsZT8hIFRvbyBm
cmFnbWVudGVkISAgKi8KKwkgIGVycm51bSA9IEVSUl9GU1lTX0NPUlJVUFQ7CisJICBnb3RvIGZh
aWw7CisJfQogICAgICAgCisgICAgICAvKiBTZXQgdXAgYSBzdHJpbmcgdG8gYmUgd3JpdHRlbi4g
ICovCisgICAgICBncnViX21lbXNldCAoYnVmLCAnXG4nLCBzaXplb2YgKGJ1ZikpOworICAgICAg
Z3J1Yl9zcHJpbnRmIChidWYsICIlZCIsIGVudHJ5bm8pOworICAgICAgCisgICAgICBpZiAoc2F2
ZWRfbGVuZ3Roc1swXSA8IHNpemVvZiAoYnVmKSkKKwl7CisJICAvKiBUaGUgZmlsZSBpcyBhbmNo
b3JlZCB0byBhbm90aGVyIGZpbGUgYW5kIHRoZSBmaXJzdCBmZXcgYnl0ZXMKKwkgICAgIGFyZSBz
cGFubmVkIGluIHR3byBzZWN0b3JzLiBVZ2doLi4uICAqLworCSAgaWYgKCEgcmF3cmVhZCAoY3Vy
cmVudF9kcml2ZSwgc2F2ZWRfc2VjdG9yc1swXSwgMCwgU0VDVE9SX1NJWkUsCisJCQkgc2VjdCkp
CisJICAgIGdvdG8gZmFpbDsKKwkgIGdydWJfbWVtbW92ZSAoc2VjdCArIHNhdmVkX29mZnNldHNb
MF0sIGJ1Ziwgc2F2ZWRfbGVuZ3Roc1swXSk7CisJICBpZiAoISByYXd3cml0ZSAoY3VycmVudF9k
cml2ZSwgc2F2ZWRfc2VjdG9yc1swXSwgc2VjdCkpCisJICAgIGdvdG8gZmFpbDsKKworCSAgaWYg
KCEgcmF3cmVhZCAoY3VycmVudF9kcml2ZSwgc2F2ZWRfc2VjdG9yc1sxXSwgMCwgU0VDVE9SX1NJ
WkUsCisJCQkgc2VjdCkpCisJICAgIGdvdG8gZmFpbDsKKwkgIGdydWJfbWVtbW92ZSAoc2VjdCAr
IHNhdmVkX29mZnNldHNbMV0sCisJCQlidWYgKyBzYXZlZF9sZW5ndGhzWzBdLAorCQkJc2l6ZW9m
IChidWYpIC0gc2F2ZWRfbGVuZ3Roc1swXSk7CisJICBpZiAoISByYXd3cml0ZSAoY3VycmVudF9k
cml2ZSwgc2F2ZWRfc2VjdG9yc1sxXSwgc2VjdCkpCisJICAgIGdvdG8gZmFpbDsKKwl9CisgICAg
ICBlbHNlCisJeworCSAgLyogVGhpcyBpcyBhIHNpbXBsZSBjYXNlLiBJdCBmaXRzIGludG8gYSBz
aW5nbGUgc2VjdG9yLiAgKi8KKwkgIGlmICghIHJhd3JlYWQgKGN1cnJlbnRfZHJpdmUsIHNhdmVk
X3NlY3RvcnNbMF0sIDAsIFNFQ1RPUl9TSVpFLAorCQkJIHNlY3QpKQorCSAgICBnb3RvIGZhaWw7
CisJICBncnViX21lbW1vdmUgKHNlY3QgKyBzYXZlZF9vZmZzZXRzWzBdLCBidWYsIHNpemVvZiAo
YnVmKSk7CisJICBpZiAoISByYXd3cml0ZSAoY3VycmVudF9kcml2ZSwgc2F2ZWRfc2VjdG9yc1sw
XSwgc2VjdCkpCisJICAgIGdvdG8gZmFpbDsKKwl9CisKICAgICAgIC8qIENsZWFyIHRoZSBjYWNo
ZS4gICovCiAgICAgICBidWZfdHJhY2sgPSAtMTsKICAgICB9CiAKLSAgcmV0dXJuIDA7CisgZmFp
bDoKKyAgc2F2ZWRfZHJpdmUgPSB0bXBfZHJpdmU7CisgIHNhdmVkX3BhcnRpdGlvbiA9IHRtcF9w
YXJ0aXRpb247CisgIHJldHVybiBlcnJudW07CiAjZWxzZSAvKiAhIFNVUFBPUlRfRElTS0xFU1Mg
JiYgISBHUlVCX1VUSUwgKi8KICAgZXJybnVtID0gRVJSX1VOUkVDT0dOSVpFRDsKICAgcmV0dXJu
IDE7CkBAIC0zMjQ2LDggKzM1NTUsMTAgQEAKICAgInNhdmVkZWZhdWx0IiwKICAgc2F2ZWRlZmF1
bHRfZnVuYywKICAgQlVJTFRJTl9DTURMSU5FLAotICAic2F2ZWRlZmF1bHQiLAotICAiU2F2ZSB0
aGUgY3VycmVudCBlbnRyeSBhcyB0aGUgZGVmYXVsdCBib290IGVudHJ5LiIKKyAgInNhdmVkZWZh
dWx0IFtOVU0gfCBgZmFsbGJhY2snXSIsCisgICJTYXZlIHRoZSBjdXJyZW50IGVudHJ5IGFzIHRo
ZSBkZWZhdWx0IGJvb3QgZW50cnkgaWYgbm8gYXJndW1lbnQgaXMiCisgICIgc3BlY2lmaWVkLiBJ
ZiBhIG51bWJlciBpcyBzcGVjaWZpZWQsIHRoaXMgbnVtYmVyIGlzIHNhdmVkLiBJZiIKKyAgIiBg
ZmFsbGJhY2snIGlzIHVzZWQsIG5leHQgZmFsbGJhY2sgZW50cnkgaXMgc2F2ZWQuIgogfTsKIAog
DApAQCAtMzQ5NSw3ICszODA2LDEwIEBACiAgIGludCB0b19jb2RlLCBmcm9tX2NvZGU7CiAgIGlu
dCBtYXBfaW5faW50ZXJydXB0ID0gMDsKICAgCi0gIHN0YXRpYyBpbnQgZmluZF9rZXlfY29kZSAo
Y2hhciAqa2V5KQorICBhdXRvIGludCBmaW5kX2tleV9jb2RlIChjaGFyICprZXkpOworICBhdXRv
IGludCBmaW5kX2FzY2lpX2NvZGUgKGNoYXIgKmtleSk7CisgIAorICBhdXRvIGludCBmaW5kX2tl
eV9jb2RlIChjaGFyICprZXkpCiAgICAgewogICAgICAgaW50IGk7CiAKQEAgLTM1MTIsNyArMzgy
Niw3IEBACiAgICAgICByZXR1cm4gMDsKICAgICB9CiAgIAotICBzdGF0aWMgaW50IGZpbmRfYXNj
aWlfY29kZSAoY2hhciAqa2V5KQorICBhdXRvIGludCBmaW5kX2FzY2lpX2NvZGUgKGNoYXIgKmtl
eSkKICAgICB7CiAgICAgICBpbnQgaTsKICAgICAgIApAQCAtMzc0Nyw3ICs0MDYxLDkgQEAKICAg
ewogICAgIHsiZXh0MmZzIiwgICAiL2UyZnNfc3RhZ2UxXzUifSwKICAgICB7ImZhdCIsICAgICAg
Ii9mYXRfc3RhZ2UxXzUifSwKKyAgICB7InVmczIiLCAgICAgIi91ZnMyX3N0YWdlMV81In0sCiAg
ICAgeyJmZnMiLCAgICAgICIvZmZzX3N0YWdlMV81In0sCisgICAgeyJpc285NjYwIiwgICIvaXNv
OTY2MF9zdGFnZTFfNSJ9LAogICAgIHsiamZzIiwgICAgICAiL2pmc19zdGFnZTFfNSJ9LAogICAg
IHsibWluaXgiLCAgICAiL21pbml4X3N0YWdlMV81In0sCiAgICAgeyJyZWlzZXJmcyIsICIvcmVp
c2VyZnNfc3RhZ2UxXzUifSwKQEAgLTM5NTYsNyArNDI3Miw3IEBACiB9OwogCiAMCi0jaWYgZGVm
aW5lZChTVVBQT1JUX1NFUklBTCkgfHwgZGVmaW5lZChTVVBQT1JUX0hFUkNVTEVTKQorI2lmIGRl
ZmluZWQoU1VQUE9SVF9TRVJJQUwpIHx8IGRlZmluZWQoU1VQUE9SVF9IRVJDVUxFUykgfHwgZGVm
aW5lZChTVVBQT1JUX0dSQVBISUNTKQogLyogdGVybWluYWwgKi8KIHN0YXRpYyBpbnQKIHRlcm1p
bmFsX2Z1bmMgKGNoYXIgKmFyZywgaW50IGZsYWdzKQpAQCAtNDExNSwxNyArNDQzMSwyMSBAQAog
IGVuZDoKICAgY3VycmVudF90ZXJtID0gdGVybV90YWJsZSArIGRlZmF1bHRfdGVybTsKICAgY3Vy
cmVudF90ZXJtLT5mbGFncyA9IHRlcm1fZmxhZ3M7Ci0gIAorCiAgIGlmIChsaW5lcykKICAgICBt
YXhfbGluZXMgPSBsaW5lczsKICAgZWxzZQotICAgIC8qIDI0IHdvdWxkIGJlIGEgZ29vZCBkZWZh
dWx0IHZhbHVlLiAgKi8KLSAgICBtYXhfbGluZXMgPSAyNDsKLSAgCisgICAgbWF4X2xpbmVzID0g
Y3VycmVudF90ZXJtLT5tYXhfbGluZXM7CisKICAgLyogSWYgdGhlIGludGVyZmFjZSBpcyBjdXJy
ZW50bHkgdGhlIGNvbW1hbmQtbGluZSwKICAgICAgcmVzdGFydCBpdCB0byByZXBhaW50IHRoZSBz
Y3JlZW4uICAqLwotICBpZiAoY3VycmVudF90ZXJtICE9IHByZXZfdGVybSAmJiAoZmxhZ3MgJiBC
VUlMVElOX0NNRExJTkUpKQorICBpZiAoKGN1cnJlbnRfdGVybSAhPSBwcmV2X3Rlcm0pICYmIChm
bGFncyAmIEJVSUxUSU5fQ01ETElORSkpeworICAgIGlmIChwcmV2X3Rlcm0tPnNodXRkb3duKQor
ICAgICAgcHJldl90ZXJtLT5zaHV0ZG93bigpOworICAgIGlmIChjdXJyZW50X3Rlcm0tPnN0YXJ0
dXApCisgICAgICBjdXJyZW50X3Rlcm0tPnN0YXJ0dXAoKTsKICAgICBncnViX2xvbmdqbXAgKHJl
c3RhcnRfY21kbGluZV9lbnYsIDApOworICB9CiAgIAogICByZXR1cm4gMDsKIH0KQEAgLTQxMzUs
NyArNDQ1NSw3IEBACiAgICJ0ZXJtaW5hbCIsCiAgIHRlcm1pbmFsX2Z1bmMsCiAgIEJVSUxUSU5f
TUVOVSB8IEJVSUxUSU5fQ01ETElORSB8IEJVSUxUSU5fSEVMUF9MSVNULAotICAidGVybWluYWwg
Wy0tZHVtYl0gWy0tbm8tZWNob10gWy0tbm8tZWRpdF0gWy0tdGltZW91dD1TRUNTXSBbLS1saW5l
cz1MSU5FU10gWy0tc2lsZW50XSBbY29uc29sZV0gW3NlcmlhbF0gW2hlcmN1bGVzXSIsCisgICJ0
ZXJtaW5hbCBbLS1kdW1iXSBbLS1uby1lY2hvXSBbLS1uby1lZGl0XSBbLS10aW1lb3V0PVNFQ1Nd
IFstLWxpbmVzPUxJTkVTXSBbLS1zaWxlbnRdIFtjb25zb2xlXSBbc2VyaWFsXSBbaGVyY3VsZXNd
IFtncmFwaGljc10iLAogICAiU2VsZWN0IGEgdGVybWluYWwuIFdoZW4gbXVsdGlwbGUgdGVybWlu
YWxzIGFyZSBzcGVjaWZpZWQsIHdhaXQgdW50aWwiCiAgICIgeW91IHB1c2ggYW55IGtleSB0byBj
b250aW51ZS4gSWYgYm90aCBjb25zb2xlIGFuZCBzZXJpYWwgYXJlIHNwZWNpZmllZCwiCiAgICIg
dGhlIHRlcm1pbmFsIHRvIHdoaWNoIHlvdSBpbnB1dCBhIGtleSBmaXJzdCB3aWxsIGJlIHNlbGVj
dGVkLiBJZiBubyIKQEAgLTQxNDcsNyArNDQ2Nyw3IEBACiAgICIgc2Vjb25kcy4gVGhlIG9wdGlv
biAtLWxpbmVzIHNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgbGluZXMuIgogICAiIFRo
ZSBvcHRpb24gLS1zaWxlbnQgaXMgdXNlZCB0byBzdXBwcmVzcyBtZXNzYWdlcy4iCiB9OwotI2Vu
ZGlmIC8qIFNVUFBPUlRfU0VSSUFMIHx8IFNVUFBPUlRfSEVSQ1VMRVMgKi8KKyNlbmRpZiAvKiBT
VVBQT1JUX1NFUklBTCB8fCBTVVBQT1JUX0hFUkNVTEVTIHx8IFNVUFBPUlRfR1JBUEhJQ1MgKi8K
IAogDAogI2lmZGVmIFNVUFBPUlRfU0VSSUFMCkBAIC00NjY2LDYgKzQ5ODYsOSBAQAogLyogVGhl
IHRhYmxlIG9mIGJ1aWx0aW4gY29tbWFuZHMuIFNvcnRlZCBpbiBkaWN0aW9uYXJ5IG9yZGVyLiAg
Ki8KIHN0cnVjdCBidWlsdGluICpidWlsdGluX3RhYmxlW10gPQogeworI2lmZGVmIFNVUFBPUlRf
R1JBUEhJQ1MKKyAgJmJ1aWx0aW5fYmFja2dyb3VuZCwKKyNlbmRpZgogICAmYnVpbHRpbl9ibG9j
a2xpc3QsCiAgICZidWlsdGluX2Jvb3QsCiAjaWZkZWYgU1VQUE9SVF9ORVRCT09UCkBAIC00Njcz
LDYgKzQ5OTYsNyBAQAogI2VuZGlmIC8qIFNVUFBPUlRfTkVUQk9PVCAqLwogICAmYnVpbHRpbl9j
YXQsCiAgICZidWlsdGluX2NoYWlubG9hZGVyLAorICAmYnVpbHRpbl9jbGVhciwKICAgJmJ1aWx0
aW5fY21wLAogICAmYnVpbHRpbl9jb2xvciwKICAgJmJ1aWx0aW5fY29uZmlnZmlsZSwKQEAgLTQ2
OTIsNiArNTAxNiw5IEBACiAgICZidWlsdGluX2VtYmVkLAogICAmYnVpbHRpbl9mYWxsYmFjaywK
ICAgJmJ1aWx0aW5fZmluZCwKKyNpZmRlZiBTVVBQT1JUX0dSQVBISUNTCisgICZidWlsdGluX2Zv
cmVncm91bmQsCisjZW5kaWYKICAgJmJ1aWx0aW5fZnN0ZXN0LAogICAmYnVpbHRpbl9nZW9tZXRy
eSwKICAgJmJ1aWx0aW5faGFsdCwKQEAgLTQ3MzUsOSArNTA2MiwxMiBAQAogI2VuZGlmIC8qIFNV
UFBPUlRfU0VSSUFMICovCiAgICZidWlsdGluX3NldGtleSwKICAgJmJ1aWx0aW5fc2V0dXAsCi0j
aWYgZGVmaW5lZChTVVBQT1JUX1NFUklBTCkgfHwgZGVmaW5lZChTVVBQT1JUX0hFUkNVTEVTKQor
I2lmZGVmIFNVUFBPUlRfR1JBUEhJQ1MKKyAgJmJ1aWx0aW5fc3BsYXNoaW1hZ2UsCisjZW5kaWYg
LyogU1VQUE9SVF9HUkFQSElDUyAqLworI2lmIGRlZmluZWQoU1VQUE9SVF9TRVJJQUwpIHx8IGRl
ZmluZWQoU1VQUE9SVF9IRVJDVUxFUykgfHwgZGVmaW5lZChTVVBQT1JUX0dSQVBISUNTKQogICAm
YnVpbHRpbl90ZXJtaW5hbCwKLSNlbmRpZiAvKiBTVVBQT1JUX1NFUklBTCB8fCBTVVBQT1JUX0hF
UkNVTEVTICovCisjZW5kaWYgLyogU1VQUE9SVF9TRVJJQUwgfHwgU1VQUE9SVF9IRVJDVUxFUyB8
fCBTVVBQT1JUX0dSQVBISUNTICovCiAjaWZkZWYgU1VQUE9SVF9TRVJJQUwKICAgJmJ1aWx0aW5f
dGVybWluZm8sCiAjZW5kaWYgLyogU1VQUE9SVF9TRVJJQUwgKi8KZGlmZiAtTmF1ciBncnViLTAu
OTYub3JpZy9zdGFnZTIvZGlza19pby5jIGdydWItMC45Ni5yZWlzZXI0L3N0YWdlMi9kaXNrX2lv
LmMKLS0tIGdydWItMC45Ni5vcmlnL3N0YWdlMi9kaXNrX2lvLmMJMjAwNC0wNS0yMyAxODozNToy
NC4wMDAwMDAwMDAgKzAyMDAKKysrIGdydWItMC45Ni5yZWlzZXI0L3N0YWdlMi9kaXNrX2lvLmMJ
MjAwNS0xMC0yNSAxNTo1MzozMC4wMDAwMDAwMDAgKzAyMDAKQEAgLTYzLDYgKzYzLDkgQEAKICMg
aWZkZWYgRlNZU19SRUlTRVJGUwogICB7InJlaXNlcmZzIiwgcmVpc2VyZnNfbW91bnQsIHJlaXNl
cmZzX3JlYWQsIHJlaXNlcmZzX2RpciwgMCwgcmVpc2VyZnNfZW1iZWR9LAogIyBlbmRpZgorIyBp
ZmRlZiBGU1lTX1JFSVNFUjQKKyAgeyJyZWlzZXI0IiwgcmVpc2VyNF9tb3VudCwgcmVpc2VyNF9y
ZWFkLCByZWlzZXI0X2RpciwgMCwgcmVpc2VyNF9lbWJlZH0sCisjIGVuZGlmCiAjIGlmZGVmIEZT
WVNfVlNUQUZTCiAgIHsidnN0YWZzIiwgdnN0YWZzX21vdW50LCB2c3RhZnNfcmVhZCwgdnN0YWZz
X2RpciwgMCwgMH0sCiAjIGVuZGlmCmRpZmYgLU5hdXIgZ3J1Yi0wLjk2Lm9yaWcvc3RhZ2UyL2Zp
bGVzeXMuaCBncnViLTAuOTYucmVpc2VyNC9zdGFnZTIvZmlsZXN5cy5oCi0tLSBncnViLTAuOTYu
b3JpZy9zdGFnZTIvZmlsZXN5cy5oCTIwMDQtMDUtMTQgMjE6MzY6NDMuMDAwMDAwMDAwICswMjAw
CisrKyBncnViLTAuOTYucmVpc2VyNC9zdGFnZTIvZmlsZXN5cy5oCTIwMDUtMTAtMjUgMTU6NTM6
MzAuMDAwMDAwMDAwICswMjAwCkBAIC03Nyw2ICs3NywxNiBAQAogI2RlZmluZSBGU1lTX1JFSVNF
UkZTX05VTSAwCiAjZW5kaWYKIAorI2lmZGVmIEZTWVNfUkVJU0VSNAorI2RlZmluZSBGU1lTX1JF
SVNFUjRfTlVNIDEKK2ludCByZWlzZXI0X21vdW50ICh2b2lkKTsKK2ludCByZWlzZXI0X3JlYWQg
KGNoYXIgKmJ1ZiwgaW50IGxlbik7CitpbnQgcmVpc2VyNF9kaXIgKGNoYXIgKmRpcm5hbWUpOwor
aW50IHJlaXNlcjRfZW1iZWQgKGludCAqc3RhcnRfc2VjdG9yLCBpbnQgbmVlZGVkX3NlY3RvcnMp
OworI2Vsc2UKKyNkZWZpbmUgRlNZU19SRUlTRVI0X05VTSAwCisjZW5kaWYKKwogI2lmZGVmIEZT
WVNfVlNUQUZTCiAjZGVmaW5lIEZTWVNfVlNUQUZTX05VTSAxCiBpbnQgdnN0YWZzX21vdW50ICh2
b2lkKTsKQEAgLTEyNyw4ICsxMzcsOCBAQAogI2lmbmRlZiBOVU1fRlNZUwogI2RlZmluZSBOVU1f
RlNZUwlcCiAgIChGU1lTX0ZGU19OVU0gKyBGU1lTX0ZBVF9OVU0gKyBGU1lTX0VYVDJGU19OVU0g
KyBGU1lTX01JTklYX05VTQlcCi0gICArIEZTWVNfUkVJU0VSRlNfTlVNICsgRlNZU19WU1RBRlNf
TlVNICsgRlNZU19KRlNfTlVNICsgRlNZU19YRlNfTlVNCVwKLSAgICsgRlNZU19URlRQX05VTSAr
IEZTWVNfSVNPOTY2MF9OVU0gKyBGU1lTX1VGUzJfTlVNKQorICAgKyBGU1lTX1JFSVNFUkZTX05V
TSArIEZTWVNfUkVJU0VSNF9OVU0gKyBGU1lTX1ZTVEFGU19OVU0gKyBGU1lTX0pGU19OVU0gXAor
ICAgKyBGU1lTX1hGU19OVU0gKyBGU1lTX1RGVFBfTlVNICsgRlNZU19JU085NjYwX05VTSArIEZT
WVNfVUZTMl9OVU0pCiAjZW5kaWYKIAogLyogZGVmaW5lcyBmb3IgdGhlIGJsb2NrIGZpbGVzeXN0
ZW0gaW5mbyBhcmVhICovCmRpZmYgLU5hdXIgZ3J1Yi0wLjk2Lm9yaWcvc3RhZ2UyL2ZzeXNfcmVp
c2VyNC5jIGdydWItMC45Ni5yZWlzZXI0L3N0YWdlMi9mc3lzX3JlaXNlcjQuYwotLS0gZ3J1Yi0w
Ljk2Lm9yaWcvc3RhZ2UyL2ZzeXNfcmVpc2VyNC5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAw
MDAwICswMTAwCisrKyBncnViLTAuOTYucmVpc2VyNC9zdGFnZTIvZnN5c19yZWlzZXI0LmMJMjAw
NS0xMC0yNSAxNTo1MzozMC4wMDAwMDAwMDAgKzAyMDAKQEAgLTAsMCArMSwyNjAgQEAKKy8qIAor
ICogIGZzeXNfcmVpc2VyNC5jIC0tIHJlaXNlcjQgZmlsZXN5c3RlbSBzdXBwb3J0LgorICogIENv
cHlyaWdodCAoQykgMjAwMCwgMjAwMSAgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgor
ICogIAorICogIEdSVUIgIC0tICBHUmFuZCBVbmlmaWVkIEJvb3Rsb2FkZXIKKyAqCisgKiAgVGhp
cyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
ciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp
b247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0
ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDY3NSBNYXNzIEF2
ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLgorKi8KKworI2lmZGVmIEZTWVNfUkVJU0VSNAor
I2luY2x1ZGUgInNoYXJlZC5oIgorI2luY2x1ZGUgImZpbGVzeXMuaCIKKworI2RlZmluZSBFTkFC
TEVfTUlOSU1BTAorI2luY2x1ZGUgPHJlaXNlcjQvbGlicmVpc2VyNC5oPgorCitzdGF0aWMgcmVp
c2VyNF9mc190ICpmcyA9IE5VTEw7CitzdGF0aWMgYWFsX2RldmljZV90ICpkZXYgPSBOVUxMOwor
c3RhdGljIHJlaXNlcjRfb2JqZWN0X3QgKm9iamVjdCA9IE5VTEw7CisKKy8qIFJlYWQgY2FsbGJh
Y2sgb2YgZ3J1YiBzcGVjaWZpYyBkZXZpY2UuIEl0IHVzZXMgZGV2cmVhZCgpIGZvciByZWFkaW5n
IHBhc3NlZAorICAgQGNvdW50IG9mIGRldmljZSBibG9ja3Mgc3RhcnRpbmcgZnJvbSBAYmxrIHRv
IHBhc3NlZCBAYnVmZi4gKi8KK3N0YXRpYyBlcnJub190IGdydWJfZGV2X3JlYWQoYWFsX2Rldmlj
ZV90ICpkZXZpY2UsCisJCQkgICAgIHZvaWQgKmJ1ZmYsIGJsa190IGJsaywKKwkJCSAgICAgY291
bnRfdCBjb3VudCkKK3sKKwl1bnNpZ25lZCBpbnQgc2l6ZTsKKwl1bnNpZ25lZCBpbnQgZmFjdG9y
OworCXVuc2lnbmVkIGludCBzZWN0b3I7CisKKwkvKiBDYWxjdWxhdGluZyBhY3R1YWwgc2VjdG9y
IGFuZCBzaXplIGluIGJ5dGVzIHRvIGJlIHJlYWQgZnJvbQorCSAgIGRldmljZS4gKi8KKwlmYWN0
b3IgPSBkZXZpY2UtPmJsa3NpemUgLyBTRUNUT1JfU0laRTsKKwlzZWN0b3IgPSAodW5zaWduZWQg
aW50KWJsayA8PCBhYWxfbG9nMihmYWN0b3IpOworCXNpemUgPSAodW5zaWduZWQgaW50KWNvdW50
ICogKFNFQ1RPUl9TSVpFICogZmFjdG9yKTsKKwkKKwkvKiBSZWFkaW5nIGZyb20gdGhlIGN1cnJl
bnQgZGV2aWNlICovCisgICAgICAgIGlmICghZGV2cmVhZChzZWN0b3IsIDAsIHNpemUsIGJ1ZmYp
KQorICAgIAkgICAgICAgIHJldHVybiAtRUlPOworCQkKKwlyZXR1cm4gMDsKK30KKworLyogTGVu
Z3RoIGNhbGxiYWNrIG9mIGdydWIgZGV2aWNlICovCitzdGF0aWMgY291bnRfdCBncnViX2Rldl9s
ZW4oYWFsX2RldmljZV90ICpkZXZpY2UpIHsKKwl1bnNpZ25lZCBpbnQgZmFjdG9yOworCisJLyog
R2V0dGluZyBwYXJ0aXRpb24gbGVuZ3RoIGluIGRldmljZSBibG9ja3MgKi8KKwlmYWN0b3IgPSBk
ZXZpY2UtPmJsa3NpemUgLyBTRUNUT1JfU0laRTsKKwlyZXR1cm4gKHBhcnRfbGVuZ3RoID4+IGFh
bF9sb2cyKGZhY3RvcikpOworfQorCisvKgorICBJbml0aWFsaXppbmcgZ3J1YiBkZXZpY2UgYWJz
dHJhY3Rpb24gaW5zdGFuY2UuIEl0IHdpbGwgdXNlIGRldnJlYWQgYW5kIGZyaWVuZHMKKyAgZm9y
IHByb3ZpZGluZyBuZWVkZWQgZnVuY3Rpb25hbGl0eS4KKyovCitzdHJ1Y3QgYWFsX2RldmljZV9v
cHMgZ3J1Yl9kZXZfb3BzID0geworCS5yZWFkICAgPSBncnViX2Rldl9yZWFkLAorCS5sZW4gICAg
PSBncnViX2Rldl9sZW4KK307CisKKy8qIEluaXRpYWxpemVzIHJlaXNlcjQgKi8KK3N0YXRpYyBp
bnQgcmVpc2VyNF9pbml0KHZvaWQpIHsKKwlleHRlcm4gYWFsX2hhc2hfdGFibGVfdCAqcGx1Z2lu
czsKKwkKKwlwbHVnaW5zID0gTlVMTDsKKworCS8qIEluaXRpYWxpemluZyBtZW1vcnkgbWFuYWdl
ciAqLworCWFhbF9tZW1faW5pdCgodm9pZCAqKUZTWVNfQlVGLCBGU1lTX0JVRkxFTik7CisKKwkv
KiBJbml0aWFsaXppbmcgZGV2aWNlIGFic3RyYWN0aW9uIG9uIGN1cnJlbnQgZGV2aWNlIEdSVUIg
dXNlcy4gKi8KKwlpZiAoIShkZXYgPSBhYWxfZGV2aWNlX29wZW4oJmdydWJfZGV2X29wcywgTlVM
TCwKKwkJCQkgICAgU0VDVE9SX1NJWkUsIDApKSkKKwl7CisJCXJldHVybiAwOworCX0KKworCS8q
IEluaXRpYWxpemluZyBsaWJyZWlzZXI0IChwbHVnaW5zLCBldGMpICovCisJcmV0dXJuICFsaWJy
ZWlzZXI0X2luaXQoKTsKK30KKworI2RlZmluZSBNRU1PUllfV0FURVJNQVJLIDgxOTIKKworLyog
TWVtb3J5IHByZXNzdXJlIGRldGVjdCBmdW5jdGlvbi4gKi8KK3N0YXRpYyBpbnQgbXByZXNzdXJl
X2RldGVjdChyZWlzZXI0X3RyZWVfdCAqdHJlZSkgeworCXJldHVybiAoYWFsX21lbV9mcmVlKCkg
PD0gTUVNT1JZX1dBVEVSTUFSSyk7Cit9CisKKy8qIFJlaXNlcjQgbW91bnQoKSByb3V0aW5lICov
CitpbnQgcmVpc2VyNF9tb3VudCh2b2lkKSB7CisJCisJLyogSW5pdGlhbGl6ZSBhbGwgcmVpc2Vy
NCByZWxhdGVkIHN0dWZmIGZpcnN0ICovCisJaWYgKCFyZWlzZXI0X2luaXQoKSkKKwkJcmV0dXJu
IDA7CisJCisJLyogT3BlbiBmaWxlc3lzdGVtIG9uIEBkZXYuICovCisJaWYgKCEoZnMgPSByZWlz
ZXI0X2ZzX29wZW4oZGV2KSkpCisJCXJldHVybiAwOworCisJZnMtPnRyZWUtPm1wY19mdW5jID0g
bXByZXNzdXJlX2RldGVjdDsKKwkKKwlvYmplY3QgPSBOVUxMOworCXJldHVybiAxOworfQorCisv
KiBSZWlzZXI0IHJlYWQoKSBoYW5kbGVyICovCitpbnQgcmVpc2VyNF9yZWFkKGNoYXIgKmJ1Ziwg
aW50IGxlbikgeworCWludDY0X3QgcmVhZDsKKworCWlmIChvYmplY3QgPT0gTlVMTCkKKwkJcmV0
dXJuIDA7CisKKwkvKiBTZWV0IGF0IGN1cnJlbnQgcG9zaXRpb24gZGVub3RlZCBieSBAZmlsZXBv
cyAqLworCWlmIChvYmpwbHVnKG9iamVjdCktPm8ub2JqZWN0X29wcy0+c2VlaykgeworCQlwbHVn
X2NhbGwob2JqcGx1ZyhvYmplY3QpLT5vLm9iamVjdF9vcHMsCisJCQkgIHNlZWssIG9iamVjdC0+
ZW50LCBmaWxlcG9zKTsKKwl9CisJCisJLyogUmVhZGluZyBjdXJyZW50IGZpbGUgZGF0YSBzdGFy
dGluZyBmcm9tIEBmaWxlcG9zICovCisJZGlza19yZWFkX2Z1bmMgPSBkaXNrX3JlYWRfaG9vazsK
KwlyZWFkID0gb2JqcGx1ZyhvYmplY3QpLT5vLm9iamVjdF9vcHMtPnJlYWQgPworCQlwbHVnX2Nh
bGwob2JqcGx1ZyhvYmplY3QpLT5vLm9iamVjdF9vcHMsIHJlYWQsIAorCQkJICBvYmplY3QtPmVu
dCwgYnVmLCBsZW4pIDogLUVJTlZBTDsKKwlkaXNrX3JlYWRfZnVuYyA9IE5VTEw7CisKKwlpZiAo
cmVhZCA8IDApIHsKKwkJZXJybnVtID0gRVJSX0ZTWVNfQ09SUlVQVDsKKwkJcmV0dXJuIDA7CisJ
fQorCisgICAgCWZpbGVwb3MgKz0gcmVhZDsKKwlyZXR1cm4gcmVhZDsKK30KKworLyogUmVpc2Vy
NCBmaWxlIG9wZW4oKSByb3V0aW5lICovCitpbnQgcmVpc2VyNF9kaXIoY2hhciAqZGlybmFtZSkg
eworCWNoYXIgKmNoOworCQorCWlmIChmcyA9PSBOVUxMKQorCQlyZXR1cm4gMDsKKworCWlmIChv
YmplY3QgIT0gTlVMTCkgeworCQlwbHVnX2NhbGwob2JqcGx1ZyhvYmplY3QpLT5vLm9iamVjdF9v
cHMsIAorCQkJICBjbG9zZSwgb2JqZWN0LT5lbnQpOworCQlhYWxfZnJlZShvYmplY3QpOworCQlv
YmplY3QgPSBOVUxMOworCX0KKworCS8qIEN1dHRpbmcgb3V0IHN0cmluZyBhZnRlciBmaXJzdCBz
cGFjZSBjaGFyYWN0ZXIgKi8KKyAgICAJaWYgKChjaCA9IGFhbF9zdHJjaHIoZGlybmFtZSwgJyAn
KSkpCisJCSpjaCA9ICdcMCc7CisJCQorCS8qIFRoaXMgZnVuY3Rpb24gaXMgYWxzbyBjYWxsZWQg
Zm9yIGdldHRpbmcgZGlyZWN0b3J5IGxpc3QgZm9yCisJICAgbWFpbnRhaW5pbmcgdGhlIGJhc2gt
bGlrZSBjb21wbGV0aW9uLiAqLworI2lmbmRlZiBTVEFHRTFfNQorCWlmIChwcmludF9wb3NzaWJp
bGl0aWVzKSB7CisJCWNoYXIgZW50cnlbMjU2XTsKKwkJZW50cnlfaGludF90IGVudHJ5X2hpbnQ7
CisJCQorCQkvKiBHZXR0aW5nIGxhc3QgcGFydCBvZiBuYW1lIChqc3V0IGFmdGVyIGxhc3QgJy8n
KSAqLworCQlpZiAoKihkaXJuYW1lICsgYWFsX3N0cmxlbihkaXJuYW1lKSAtIDEpICE9ICcvJykg
eworCQkKKwkJCWlmICghKGNoID0gYWFsX3N0cnJjaHIoZGlybmFtZSwgJy8nKSkpIHsKKwkJCQll
cnJudW0gPSBFUlJfQkFEX0ZJTEVUWVBFOworCQkJCXJldHVybiAwOworCQkJfQorCisJCQlhYWxf
c3RybmNweShlbnRyeSwgY2ggKyAxLCBzaXplb2YoZW50cnkpKTsKKwkJCSooY2ggKyAxKSA9ICdc
MCc7CisJCX0gZWxzZSB7CisJCQlhYWxfbWVtc2V0KGVudHJ5LCAwLCBzaXplb2YoZW50cnkpKTsK
KwkJfQorCisJCS8qIE9wZW4gb2JlamN0IGJ5IEBkaXJuYW1lICovCisJCWlmICghKG9iamVjdCA9
IHJlaXNlcjRfc2VtYW50aWNfb3Blbihmcy0+dHJlZSwgZGlybmFtZSwgCisJCQkJCQkgICAgIE5V
TEwsIDEpKSkgCisJCXsKKwkJCWVycm51bSA9IEVSUl9GSUxFX05PVF9GT1VORDsKKwkJCXJldHVy
biAwOworCQl9CisKKwkJLyogQ2hlY2tpbmcgaWYgaXQgaXMgYSBkaXJlY3Rvcnkgb2JqZWN0ICov
CisJCWlmIChvYmplY3QtPmVudC0+b3BzZXQucGx1Z1tPUFNFVF9PQkpdLT5pZC5ncm91cCAhPSBE
SVJfT0JKRUNUKQorCQl7CisJCQkvKiBJZiBub3QsIGN1dHRpbmcgb3V0IGxhc3QgJy8nIGNoYXJh
Y3RlciAqLworICAgIAkJCWlmICgoY2ggPSBhYWxfc3RycmNocihkaXJuYW1lLCAnLycpKSkKKwkJ
CQkqY2ggPSAnXDAnOworCisJCQkvKiBDbG9zZSBjdXJyZW50IG9iamVjdCAqLworCQkJcGx1Z19j
YWxsKG9ianBsdWcob2JqZWN0KS0+by5vYmplY3Rfb3BzLCAKKwkJCQkgIGNsb3NlLCBvYmplY3Qt
PmVudCk7CisJCQlhYWxfZnJlZShvYmplY3QpOworCQkJcmV0dXJuIDA7CisJCX0KKwkJCisJCS8q
IFJlYWRpbmcgdGhlIG9wZW5lZCBkaXJlY3RvcnkgdG8gYnVpbGQgdGhlIGNvbXBsZXRpb24gbGlz
dC4gKi8KKwkJaWYgKG9ianBsdWcob2JqZWN0KS0+by5vYmplY3Rfb3BzLT5yZWFkZGlyKSB7CisJ
CQl3aGlsZSAocGx1Z19jYWxsKG9ianBsdWcob2JqZWN0KS0+by5vYmplY3Rfb3BzLCByZWFkZGly
LAorCQkJCQkgb2JqZWN0LT5lbnQsICZlbnRyeV9oaW50KSA+IDApIAorCQkJeworCQkJCWlmIChz
dWJzdHJpbmcoZW50cnksIGVudHJ5X2hpbnQubmFtZSkgPD0gMCkgeworCQkJCQlpZiAocHJpbnRf
cG9zc2liaWxpdGllcyA+IDApCisJCQkJCQlwcmludF9wb3NzaWJpbGl0aWVzID0gCisJCQkJCQkJ
LXByaW50X3Bvc3NpYmlsaXRpZXM7CisJCQkJCisJCQkJCXByaW50X2FfY29tcGxldGlvbihlbnRy
eV9oaW50Lm5hbWUpOworCQkJCX0KKwkJCX0KKwkJfQorCX0gZWxzZSB7CisjZW5kaWYKKwkJLyog
VGhpcyBpcyB0aGUgY2FzZSB3aGVuIHJlc2llcjRfZGlyKCkgaXMgY2FsbGVkIGZvciBvcGVuIHRo
ZQorCQkgICBmaWxlIEBkaXJuYW1lLCBub3QgZm9yIGJ1aWxkaW5nIGNvbXBsZXRpb24gbGlzdC4g
Ki8KKwkJaWYgKCEob2JqZWN0ID0gcmVpc2VyNF9zZW1hbnRpY19vcGVuKGZzLT50cmVlLCBkaXJu
YW1lLAorCQkJCQkJICAgICBOVUxMLCAxKSkpIAorCQl7CisJCQllcnJudW0gPSBFUlJfRklMRV9O
T1RfRk9VTkQ7CisJCQlyZXR1cm4gMDsKKwkJfQorCQkKKwkJaWYgKG9iamVjdC0+ZW50LT5vcHNl
dC5wbHVnW09QU0VUX09CSl0tPmlkLmdyb3VwICE9IFJFR19PQkpFQ1QpCisJCXsKKwkJCWVycm51
bSA9IEVSUl9CQURfRklMRVRZUEU7CisJCQlyZXR1cm4gMDsKKwkJfQorCQkKKwkJLyogSW5pdGlh
bGl6aW5nIEdSVUIgZ2xvYmFsIHZhcmlhYmxlcyBAZmlsZXBvcyBhbmQgQGZpbGVtYXguICovCisJ
CWZpbGVwb3MgPSAwOworCQlmaWxlbWF4ID0gcmVpc2VyNF9vYmplY3Rfc2l6ZShvYmplY3QpOwor
CQorCQlyZXR1cm4gMTsKKyNpZm5kZWYgU1RBR0UxXzUKKwl9CisKKwlyZXR1cm4gMTsKKyNlbmRp
ZgorCisJZXJybnVtID0gRVJSX0ZJTEVfTk9UX0ZPVU5EOworCXJldHVybiAwOworfQorCisvKiBS
ZXR1cm5zIGhvdyBtYW55IHNlY3RvcnMgbWF5IGJlIHVzZWQgZm9yIGVtYmVkaW5nIHJlaXNlcjRf
c3RhZ2UxXzUgaW4gdGVoCisgICBjYXNlIG9mIGluc3RhbGxpbmcgR1JVQiB0byBwYXJ0aXRpb24g
aW5zdGVhZCBvZiBNQlIuICovCitpbnQgcmVpc2VyNF9lbWJlZCAoaW50ICpzdGFydF9zZWN0b3Is
IGludCBuZWVkZWRfc2VjdG9ycykgeworCSpzdGFydF9zZWN0b3IgPSAxOworCXJldHVybiBuZWVk
ZWRfc2VjdG9ycyA8PSAoKFJFSVNFUjRfTUFTVEVSX09GRlNFVCA+PiBTRUNUT1JfQklUUykgLSAx
KTsKK30KKyNlbmRpZiAvKiBGU1lTX1JFSVNFUjQgKi8KZGlmZiAtTmF1ciBncnViLTAuOTYub3Jp
Zy9zdGFnZTIvc2hhcmVkLmggZ3J1Yi0wLjk2LnJlaXNlcjQvc3RhZ2UyL3NoYXJlZC5oCi0tLSBn
cnViLTAuOTYub3JpZy9zdGFnZTIvc2hhcmVkLmgJMjAwNS0xMC0yNSAxNjowNTo1Ny4xMTg5NjU1
MjYgKzAyMDAKKysrIGdydWItMC45Ni5yZWlzZXI0L3N0YWdlMi9zaGFyZWQuaAkyMDA1LTEwLTI1
IDE1OjUzOjMwLjAwMDAwMDAwMCArMDIwMApAQCAtMjA3LDExICsyMDcsMTIgQEAKICNkZWZpbmUg
U1RBR0UyX0lEX0ZBVF9TVEFHRTFfNQkJMwogI2RlZmluZSBTVEFHRTJfSURfTUlOSVhfU1RBR0Ux
XzUJNAogI2RlZmluZSBTVEFHRTJfSURfUkVJU0VSRlNfU1RBR0UxXzUJNQotI2RlZmluZSBTVEFH
RTJfSURfVlNUQUZTX1NUQUdFMV81CTYKLSNkZWZpbmUgU1RBR0UyX0lEX0pGU19TVEFHRTFfNQkJ
NwotI2RlZmluZSBTVEFHRTJfSURfWEZTX1NUQUdFMV81CQk4Ci0jZGVmaW5lIFNUQUdFMl9JRF9J
U085NjYwX1NUQUdFMV81CTkKLSNkZWZpbmUgU1RBR0UyX0lEX1VGUzJfU1RBR0UxXzUJCTEwCisj
ZGVmaW5lIFNUQUdFMl9JRF9SRUlTRVI0X1NUQUdFMV81CTYKKyNkZWZpbmUgU1RBR0UyX0lEX1ZT
VEFGU19TVEFHRTFfNQk3CisjZGVmaW5lIFNUQUdFMl9JRF9KRlNfU1RBR0UxXzUJCTgKKyNkZWZp
bmUgU1RBR0UyX0lEX1hGU19TVEFHRTFfNQkJOQorI2RlZmluZSBTVEFHRTJfSURfSVNPOTY2MF9T
VEFHRTFfNQkxMAorI2RlZmluZSBTVEFHRTJfSURfVUZTMl9TVEFHRTFfNQkJMTEKIAogI2lmbmRl
ZiBTVEFHRTFfNQogIyBkZWZpbmUgU1RBR0UyX0lECVNUQUdFMl9JRF9TVEFHRTIKQEAgLTIyNiw2
ICsyMjcsOCBAQAogIyAgZGVmaW5lIFNUQUdFMl9JRAlTVEFHRTJfSURfTUlOSVhfU1RBR0UxXzUK
ICMgZWxpZiBkZWZpbmVkKEZTWVNfUkVJU0VSRlMpCiAjICBkZWZpbmUgU1RBR0UyX0lECVNUQUdF
Ml9JRF9SRUlTRVJGU19TVEFHRTFfNQorIyBlbGlmIGRlZmluZWQoRlNZU19SRUlTRVI0KQorIyAg
ZGVmaW5lIFNUQUdFMl9JRAlTVEFHRTJfSURfUkVJU0VSNF9TVEFHRTFfNQogIyBlbGlmIGRlZmlu
ZWQoRlNZU19WU1RBRlMpCiAjICBkZWZpbmUgU1RBR0UyX0lECVNUQUdFMl9JRF9WU1RBRlNfU1RB
R0UxXzUKICMgZWxpZiBkZWZpbmVkKEZTWVNfSkZTKQo=
</data>        

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>72586</attachid>
            <date>2005-11-10 10:03 0000</date>
            <desc>Ebuild with optional reiser4 patch</desc>
            <filename>grub-0.97-r2.ebuild</filename>
            <type>text/ebuild</type>
            <data encoding="base64">IyBDb3B5cmlnaHQgMTk5OS0yMDA1IEdlbnRvbyBGb3VuZGF0aW9uCiMgRGlzdHJpYnV0ZWQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2MgojICRIZWFk
ZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L3N5cy1ib290L2dydWIvZ3J1Yi0wLjk3LXIyLmVi
dWlsZCx2IDEuMSAyMDA1LzExLzEwIDAyOjM3OjEyIHZhcGllciBFeHAgJAoKaW5oZXJpdCBtb3Vu
dC1ib290IGV1dGlscyBmbGFnLW8tbWF0aWMgdG9vbGNoYWluLWZ1bmNzCgpQQVRDSFZFUj0xLjEK
REVTQ1JJUFRJT049IkdOVSBHUlVCIGJvb3QgbG9hZGVyIgpIT01FUEFHRT0iaHR0cDovL3d3dy5n
bnUub3JnL3NvZnR3YXJlL2dydWIvIgpTUkNfVVJJPSJtaXJyb3I6Ly9nZW50b28vJHtQfS50YXIu
Z3oKCWZ0cDovL2FscGhhLmdudS5vcmcvZ251LyR7UE59LyR7UH0udGFyLmd6CgltaXJyb3I6Ly9n
ZW50b28vc3BsYXNoLnhwbS5negoJbWlycm9yOi8vZ2VudG9vLyR7UH0tcGF0Y2hlcy0ke1BBVENI
VkVSfS50YXIuYnoyIgoKTElDRU5TRT0iR1BMLTIiClNMT1Q9IjAiCktFWVdPUkRTPSJ+YW1kNjQg
fng4NiIKSVVTRT0ic3RhdGljIG5ldGJvb3QgY3VzdG9tLWNmbGFncyByZWlzZXI0IgoKUkRFUEVO
RD0iPj1zeXMtbGlicy9uY3Vyc2VzLTUuMi1yNSIKREVQRU5EPSIke1JERVBFTkR9Cgk+PXN5cy1k
ZXZlbC9hdXRvbWFrZS0xLjcKCT49c3lzLWRldmVsL2F1dG9jb25mLTIuNSIKUFJPVklERT0idmly
dHVhbC9ib290bG9hZGVyIgoKcGtnX3NldHVwKCkgewoJaWYgdXNlIGFtZDY0IDsgdGhlbgoJCWlm
ICEgaGFzX20zMiA7IHRoZW4KCQkJZWVycm9yICJZb3VyIGNvbXBpbGVyIHNlZW1zIHRvIGJlIHVu
YWJsZSB0byBjb21waWxlIDMyYml0IGNvZGUuIgoJCQllZXJyb3IgIklmIHlvdSBhcmUgb24gYW1k
NjQsIG1ha2Ugc3VyZSB5b3UgY29tcGlsZSBnY2Mgd2l0aDoiCgkJCWVjaG8KCQkJZWVycm9yICIg
ICAgVVNFPW11bHRpbGliIEZFQVRVUkVTPS1zYW5kYm94IgoJCQlkaWUgIkNhbm5vdCBwcm9kdWNl
IDMyYml0IG9iamVjdHMhIgoJCWZpCgoJCUFCSV9BTExPVz0ieDg2IgoJCUFCST0ieDg2IgoJZmkK
fQoKc3JjX3VucGFjaygpIHsKCXVucGFjayAke0F9CgljZCAiJHtTfSIKCgkjIHBhdGNoIGJyZWFr
cyBib290aW5nIGZvciBzb21lIHBlb3BsZSAjMTExODg1CglpZiAhKHVzZSByZWlzZXI0KTsgdGhl
bgoJCXJtICIke1dPUktESVJ9Ii9wYXRjaC80MDBfKgoJZmkKCgkjIHBhdGNoIGZvciByZWlzZXI0
IHN1cHBvcnQgZnJvbSBmdHA6Ly9mdHAubmFtZXN5cy5jb20vcHViL3JlaXNlcjRwcm9ncy9ncnVi
CgkjaWYgdXNlIHJlaXNlcjQgO3RoZW4KCSMJZXBhdGNoICR7RklMRVNESVJ9LyR7UH0tcmVpc2Vy
NC0yMDA1MDgwOC5kaWZmCgkjZmkKCglpZiBbWyAtbiAke1BBVENIVkVSfSBdXSA7IHRoZW4KCQlF
UEFUQ0hfU1VGRklYPSJwYXRjaCIKCQllcGF0Y2ggIiR7V09SS0RJUn0iL3BhdGNoCgoJCSMgYSBi
dW5jaCBvZiBwYXRjaGVzIGFwcGx5IHRvIHJhdyBhdXRvdG9vbCBmaWxlcwoJCWF1dG9jb25mIHx8
IGRpZSAiYXV0b2NvbmYgZmFpbGVkIgoJCWFjbG9jYWwgfHwgZGllICJhY2xvY2FsIGZhaWxlZCIK
CQlhdXRvbWFrZSB8fCBkaWUgImF1dG9tYWtlIGZhaWxlZCIKCWZpCn0KCnNyY19jb21waWxlKCkg
ewoJdW5zZXQgQkxPQ0tfU0laRSAjNzM0OTkKCgkjIyMgaTY4Ni1zcGVjaWZpYyBjb2RlIGluIHRo
ZSBib290IGxvYWRlciBpcyBhIGJhZCBpZGVhOyBkaXNhYmxpbmcgdG8gZW5zdXJlCgkjIyMgYXQg
bGVhc3Qgc29tZSBjb21wYXRpYmlsaXR5IGlmIHRoZSBoYXJkIGRyaXZlIGlzIG1vdmVkIHRvIGFu
IG9sZGVyIG9yCgkjIyMgaW5jb21wYXRpYmxlIHN5c3RlbS4KCgkjIGdydWItMC45NSBhZGRlZCAt
Zm5vLXN0YWNrLXByb3RlY3RvciBkZXRlY3Rpb24sIHRvIGRpc2FibGUgc3NwIGZvciBzdGFnZTIs
CgkjIGJ1dCB0aGUgb2JqY29weSdzIChmYXVsdHkpIHRlc3QgZmFpbHMgaWYgLWZzdGFjay1wcm90
ZWN0b3IgaXMgZGVmYXVsdC4KCSMgY3JlYXRlIGEgY2FjaGUgdGVsbGluZyBjb25maWd1cmUgdGhh
dCBvYmpjb3B5IGlzIG9rLCBhbmQgYWRkIC1DIHRvIGVjb25mCgkjIHRvIG1ha2UgdXNlIG9mIHRo
ZSBjYWNoZS4KCSMKCSMgQ0ZMQUdTIGhhcyB0byBiZSB1bmRlZmluZWQgcnVubmluZyBlY29uZiwg
ZWxzZSAtZm5vLXN0YWNrLXByb3RlY3RvciBkZXRlY3Rpb24gZmFpbHMuCgkjIFNUQUdFMl9DRkxB
R1MgaXMgbm90IGFsbG93ZWQgdG8gYmUgdXNlZCBvbiBlbWFrZSBjb21tYW5kLWxpbmUsIGl0IG92
ZXJ3cml0ZXMKCSMgLWZuby1zdGFjay1wcm90ZWN0b3IgZGV0ZWN0ZWQgYnkgY29uZmlndXJlLCBy
ZW1vdmVkIGZyb20gbmV0Ym9vdCdzIGVtYWtlLgoJdXNlIGN1c3RvbS1jZmxhZ3MgfHwgdW5zZXQg
Q0ZMQUdTCgoJZXhwb3J0IGdydWJfY3ZfcHJvZ19vYmpjb3B5X2Fic29sdXRlPXllcyAjNzk3MzQK
CXVzZSBzdGF0aWMgJiYgYXBwZW5kLWxkZmxhZ3MgLXN0YXRpYwoKCSMgYnVpbGQgdGhlIG5ldC1i
b290YWJsZSBncnViIGZpcnN0LCBidXQgb25seSBpZiAibmV0Ym9vdCIgaXMgc2V0CglpZiB1c2Ug
bmV0Ym9vdCA7IHRoZW4KCQllY29uZiBcCgkJLS1saWJkaXI9L2xpYiBcCgkJLS1kYXRhZGlyPS91
c3IvbGliL2dydWIgXAoJCS0tZXhlYy1wcmVmaXg9LyBcCgkJLS1kaXNhYmxlLWF1dG8tbGludXgt
bWVtLW9wdCBcCgkJLS1lbmFibGUtZGlza2xlc3MgXAoJCS0tZW5hYmxlLXszY3s1ezAzLDA3LDA5
LDI5LDk1fSw5MHh9LGNzODl4MCxkYXZpY29tLGRlcGNhLGVlcHJveywxMDB9fSBcCgkJLS1lbmFi
bGUte2VwaWMxMDAsZXhvczIwNSxuaTUyMTAsbGFuY2UsbmUyMTAwLG5pezUwLDY1fTEwLG5hdHNl
bWl9IFwKCQktLWVuYWJsZS17bmUsbnM4MzkwLHdkLG90dWxpcCxydGw4MTM5LHNpczkwMCxzay1n
MTYsc21jOTAwMCx0aWFyYX0gXAoJCS0tZW5hYmxlLXt0dWxpcCx2aWEtcmhpbmUsdzg5Yzg0MH0g
fHwgZGllICJuZXRib290IGVjb25mIGZhaWxlZCIKCgkJZW1ha2Ugdzg5Yzg0MF9vX0NGTEFHUz0i
LU8iIHx8IGRpZSAibWFraW5nIG5ldGJvb3Qgc3R1ZmYiCgoJCW12IC1mIHN0YWdlMi97bmJncnVi
LHB4ZWdydWJ9ICIke1N9Ii8KCQltdiAtZiBzdGFnZTIvc3RhZ2UyIHN0YWdlMi9zdGFnZTIubmV0
Ym9vdAoKCQltYWtlIGNsZWFuIHx8IGRpZSAibWFrZSBjbGVhbiBmYWlsZWQiCglmaQoKCSMgTm93
IGJ1aWxkIHRoZSByZWd1bGFyIGdydWIKCSMgTm90ZSB0aGF0IEZGUyBhbmQgVUZTMiBzdXBwb3J0
IGFyZSBicm9rZW4gZm9yIG5vdyAtIHN0YWdlMV81IGZpbGVzIHRvbyBiaWcKCWVjb25mIFwKCQkt
LWxpYmRpcj0vbGliIFwKCQktLWRhdGFkaXI9L3Vzci9saWIvZ3J1YiBcCgkJLS1leGVjLXByZWZp
eD0vIFwKCQktLWRpc2FibGUtYXV0by1saW51eC1tZW0tb3B0IHx8IGRpZSAiZWNvbmYgZmFpbGVk
IgoJZW1ha2UgfHwgZGllICJtYWtpbmcgcmVndWxhciBzdHVmZiIKfQoKc3JjX3Rlc3QoKSB7Cgkj
IG5vbi1kZWZhdWx0IGJsb2NrIHNpemUgYWxzbyBnaXZlIGZhbHNlIHBhc3MvZmFpbHMuCgl1bnNl
dCBCTE9DS19TSVpFCgltYWtlIGNoZWNrIHx8IGRpZSAibWFrZSBjaGVjayBmYWlsZWQiCn0KCnNy
Y19pbnN0YWxsKCkgewoJbWFrZSBERVNURElSPSIke0R9IiBpbnN0YWxsIHx8IGRpZQoJaWYgdXNl
IG5ldGJvb3QgOyB0aGVuCgkJZXhlaW50byAvdXNyL2xpYi9ncnViLyR7Q0hPU1R9CgkJZG9leGUg
bmJncnViIHB4ZWdydWIgc3RhZ2UyL3N0YWdlMi5uZXRib290IHx8IGRpZSAibmV0Ym9vdCBpbnN0
YWxsIgoJZmkKCglpbnNpbnRvIC9ib290L2dydWIKCWRvaW5zICIke0RJU1RESVJ9Ii9zcGxhc2gu
eHBtLmd6CgluZXdpbnMgZG9jcy9tZW51LmxzdCBncnViLmNvbmYuc2FtcGxlCgoJZG9kb2MgQVVU
SE9SUyBCVUdTIENoYW5nZUxvZyBORVdTIFJFQURNRSBUSEFOS1MgVE9ETwoJbmV3ZG9jIGRvY3Mv
bWVudS5sc3QgZ3J1Yi5jb25mLnNhbXBsZQp9Cgpwa2dfcG9zdGluc3QoKSB7CglbWyAke1JPT1R9
ICE9ICIvIiBdXSAmJiByZXR1cm4gMAoKCSMgY2hhbmdlIG1lbnUubHN0IHRvIGdydWIuY29uZgoJ
aWYgW1sgISAtZSAvYm9vdC9ncnViL2dydWIuY29uZiAmJiAtZSAvYm9vdC9ncnViL21lbnUubHN0
IF1dIDsgdGhlbgoJCW12IC1mIC9ib290L2dydWIvbWVudS5sc3QgL2Jvb3QvZ3J1Yi9ncnViLmNv
bmYKCQlld2FybgoJCWV3YXJuICIqKiogSU1QT1JUQU5UIE5PVEU6IG1lbnUubHN0IGhhcyBiZWVu
IHJlbmFtZWQgdG8gZ3J1Yi5jb25mIgoJCWV3YXJuCglmaQoJZWluZm8gIkxpbmtpbmcgZnJvbSBu
ZXcgZ3J1Yi5jb25mIG5hbWUgdG8gbWVudS5sc3QiCglbWyAhIC1lIC9ib290L2dydWIvbWVudS5s
c3QgXV0gJiYgbG4gLXNuZiBncnViLmNvbmYgL2Jvb3QvZ3J1Yi9tZW51LmxzdAoKCVtbIC1lIC9i
b290L2dydWIvc3RhZ2UyIF1dICYmIG12IC9ib290L2dydWIvc3RhZ2Uyeywub2xkfQoKCWVpbmZv
ICJDb3B5aW5nIGZpbGVzIGZyb20gL2xpYi9ncnViIGFuZCAvdXNyL2xpYi9ncnViIHRvIC9ib290
IgoJZm9yIHggaW4gL2xpYi9ncnViLyovKiAvdXNyL2xpYi9ncnViLyovKiA7IGRvCgkJW1sgLWYg
JHt4fSBdXSAmJiBjcCAtcCAke3h9IC9ib290L2dydWIKCWRvbmUKCglbWyAtZSAvYm9vdC9ncnVi
L2dydWIuY29uZiBdXSBcCgkJJiYgL3NiaW4vZ3J1YiBcCgkJCS0tYmF0Y2ggXAoJCQktLWRldmlj
ZS1tYXA9L2Jvb3QvZ3J1Yi9kZXZpY2UubWFwIFwKCQkJPCAvYm9vdC9ncnViL2dydWIuY29uZiA+
IC9kZXYvbnVsbCAyPiYxCn0K
</data>        

          </attachment>
    </bug>

</bugzilla>