<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>109724</bug_id>
          
          <creation_ts>2013-02-13 11:52:05 -0800</creation_ts>
          <short_desc>Remove unnecessary indirection to non-local variable access operations</short_desc>
          <delta_ts>2013-02-13 23:20:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>jbriance</cc>
    
    <cc>roger_fong</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>832132</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-02-13 11:52:05 -0800</bug_when>
    <thetext>Remove unnecessary indirection to non-local variable access operations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832154</commentid>
    <comment_count>1</comment_count>
      <attachid>188139</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-02-13 12:03:15 -0800</bug_when>
    <thetext>Created attachment 188139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832167</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-02-13 12:09:46 -0800</bug_when>
    <thetext>Committed r142769: &lt;http://trac.webkit.org/changeset/142769&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832212</commentid>
    <comment_count>3</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-02-13 12:41:24 -0800</bug_when>
    <thetext>Hello, this broke the Windows build:
http://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/44150/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832225</commentid>
    <comment_count>4</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-02-13 12:52:27 -0800</bug_when>
    <thetext>This breaks our SH4 build slave too:
http://build.webkit.org/builders/Qt%20Linux%20SH4%20Release/builds/20014

I took a look very quickly and I wonder if some parts of this patch should be conditionnal to DFG_JIT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832386</commentid>
    <comment_count>5</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-02-13 14:59:27 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Hello, this broke the Windows build:
&gt; http://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/44150/steps/compile-webkit/logs/stdio

Still broken but for a different reason:

http://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/44173/steps/compile-webkit/logs/stdio

profile was placed in the DFG_JIT enable so it&apos;s no longer declared. I could move that line into the ifdef but I&apos;d rather not risk touching this stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832524</commentid>
    <comment_count>6</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-02-13 16:48:25 -0800</bug_when>
    <thetext>Can I roll this out? Or is someone working on a fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832537</commentid>
    <comment_count>7</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-02-13 16:58:37 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Can I roll this out? Or is someone working on a fix?

I landed a fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832548</commentid>
    <comment_count>8</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-02-13 17:03:21 -0800</bug_when>
    <thetext>Ah yup, Windows is broken on something else now.
Thanks for the fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>832754</commentid>
    <comment_count>9</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-02-13 23:20:39 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; Can I roll this out? Or is someone working on a fix?
&gt; 
&gt; I landed a fix

Thanks for the fix!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188139</attachid>
            <date>2013-02-13 12:03:15 -0800</date>
            <delta_ts>2013-02-13 12:07:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109724-20130213115943.patch</filename>
            <type>text/plain</type>
            <size>45224</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyNjg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
YmEyNWFmMzY4MzkxYzQzNjVkOWQ0MTMzZjhmYmM5MDNkNjMxY2EyLi4zY2UxZTM0MzBmNTQ5NWJi
NjhlMDNkYTdjZDAzODBkZGQ5NTZlMWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MyBAQAorMjAxMy0wMi0xMyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbW92ZSB1bm5lY2Vzc2FyeSBpbmRpcmVjdGlvbiB0byBub24tbG9jYWwgdmFy
aWFibGUgYWNjZXNzIG9wZXJhdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTcyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIExpbmtlZCBieXRlY29kZSBub3cgc3RvcmVzIGEgZGlyZWN0IHBvaW50
ZXIgdG8gdGhlIHJlc29sdmUgb3BlcmF0aW9uCisgICAgICAgIHZlY3RvcnMsIHNvIHRoZSBpbnRl
cnByZXRlciBubyBsb25nZXIgbmVlZHMgYSBidW5jaCBvZiBpbmRpcmVjdGlvbiB0bworICAgICAg
ICB0byBwZXJmb3JtIG5vbi1sb2NhbCBsb29rdXAuCisKKyAgICAgICAgKiBieXRlY29kZS9Db2Rl
QmxvY2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OkNvZGVCbG9jayk6CisgICAgICAg
ICogYnl0ZWNvZGUvQ29kZUJsb2NrLmg6CisgICAgICAgIChDb2RlQmxvY2spOgorICAgICAgICAq
IGJ5dGVjb2RlL0luc3RydWN0aW9uLmg6CisgICAgICAgICogZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcDoKKyAgICAgICAgKEJ5dGVDb2RlUGFyc2VyKToKKyAgICAgICAgKElubGluZVN0YWNrRW50
cnkpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZVJlc29sdmVPcGVy
YXRpb25zKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayk6
CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6Oklu
bGluZVN0YWNrRW50cnkpOgorICAgICAgICAqIGRmZy9ERkdDYXBhYmlsaXRpZXMuaDoKKyAgICAg
ICAgKEpTQzo6REZHOjpjYW5JbmxpbmVPcGNvZGUpOgorICAgICAgICAqIGRmZy9ERkdHcmFwaC5o
OgorICAgICAgICAoUmVzb2x2ZUdsb2JhbERhdGEpOgorICAgICAgICAoUmVzb2x2ZU9wZXJhdGlv
bkRhdGEpOgorICAgICAgICAoUHV0VG9CYXNlT3BlcmF0aW9uRGF0YSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJf
NjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzLmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3B1dF90b19iYXNlKToKKyAgICAgICAgKEpTQzo6
SklUOjplbWl0X29wX3Jlc29sdmUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRTbG93X29wX3Jl
c29sdmUpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcmVzb2x2ZV9iYXNlKToKKyAgICAg
ICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9yZXNvbHZlX2Jhc2UpOgorICAgICAgICAoSlNDOjpK
SVQ6OmVtaXRfb3BfcmVzb2x2ZV93aXRoX2Jhc2UpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRT
bG93X29wX3Jlc29sdmVfd2l0aF9iYXNlKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3Jl
c29sdmVfd2l0aF90aGlzKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9yZXNvbHZl
X3dpdGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNsb3dfb3BfcHV0X3RvX2Jhc2Up
OgorICAgICAgICAqIGppdC9KSVRPcGNvZGVzMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6
OmVtaXRfb3BfcHV0X3RvX2Jhc2UpOgorICAgICAgICAqIGxsaW50L0xMSW50U2xvd1BhdGhzLmNw
cDoKKyAgICAgICAgKEpTQzo6TExJbnQ6OkxMSU5UX1NMT1dfUEFUSF9ERUNMKToKKyAgICAgICAg
KiBsbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKwogMjAxMy0wMi0xMiAgRmlsaXAgUGl6
bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBDRkEgZG9lc24ndCBmaWx0ZXIg
cHJlY2lzZWx5IGVub3VnaCBmb3IgQ29tcGFyZVN0cmljdEVxCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IGU1MWRmMjEyZDFhZGNhMzBhOWRhNjI5
MTYxMWIyNjY3ODNjNjI4NmMuLmIzNjBiYWZmNDhhM2Y5MzQwYWQ2ODM2ZTA1OGU4OGRjZGRiY2Rj
YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCkBA
IC0xODE5LDEwICsxODE5LDExIEBAIENvZGVCbG9jazo6Q29kZUJsb2NrKFNjcmlwdEV4ZWN1dGFi
bGUqIG93bmVyRXhlY3V0YWJsZSwgVW5saW5rZWRDb2RlQmxvY2sqIHVubGluCiAgICAgICAgIG1f
b2JqZWN0QWxsb2NhdGlvblByb2ZpbGVzLmdyb3coc2l6ZSk7CiAgICAgaWYgKHNpemVfdCBzaXpl
ID0gdW5saW5rZWRDb2RlQmxvY2stPm51bWJlck9mUmVzb2x2ZU9wZXJhdGlvbnMoKSkKICAgICAg
ICAgbV9yZXNvbHZlT3BlcmF0aW9ucy5ncm93KHNpemUpOwotICAgIHNpemVfdCBwdXRUb0Jhc2VD
b3VudCA9IHVubGlua2VkQ29kZUJsb2NrLT5udW1iZXJPZlB1dFRvQmFzZU9wZXJhdGlvbnMoKTsK
LSAgICBtX3B1dFRvQmFzZU9wZXJhdGlvbnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwdXRUb0Jh
c2VDb3VudCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwdXRUb0Jhc2VDb3VudDsgKytp
KQotICAgICAgICBtX3B1dFRvQmFzZU9wZXJhdGlvbnMudW5jaGVja2VkQXBwZW5kKFB1dFRvQmFz
ZU9wZXJhdGlvbihpc1N0cmljdE1vZGUoKSkpOworICAgIGlmIChzaXplX3QgcHV0VG9CYXNlQ291
bnQgPSB1bmxpbmtlZENvZGVCbG9jay0+bnVtYmVyT2ZQdXRUb0Jhc2VPcGVyYXRpb25zKCkpIHsK
KyAgICAgICAgbV9wdXRUb0Jhc2VPcGVyYXRpb25zLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocHV0
VG9CYXNlQ291bnQpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHB1dFRvQmFzZUNv
dW50OyArK2kpCisgICAgICAgICAgICBtX3B1dFRvQmFzZU9wZXJhdGlvbnMudW5jaGVja2VkQXBw
ZW5kKFB1dFRvQmFzZU9wZXJhdGlvbihpc1N0cmljdE1vZGUoKSkpOworICAgIH0KIAogICAgIC8v
IENvcHkgYW5kIHRyYW5zbGF0ZSB0aGUgVW5saW5rZWRJbnN0cnVjdGlvbnMKICAgICBzaXplX3Qg
aW5zdHJ1Y3Rpb25Db3VudCA9IHVubGlua2VkQ29kZUJsb2NrLT5pbnN0cnVjdGlvbnMoKS5zaXpl
KCk7CkBAIC0xODQ3LDEwICsxODQ4LDYgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soU2NyaXB0RXhl
Y3V0YWJsZSogb3duZXJFeGVjdXRhYmxlLCBVbmxpbmtlZENvZGVCbG9jayogdW5saW4KICAgICAg
ICAgICAgIC8vIGZhbGx0aHJvdWdoCiAgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9jb252ZXJ0
X3RoaXM6Ci0gICAgICAgIGNhc2Ugb3BfcmVzb2x2ZToKLSAgICAgICAgY2FzZSBvcF9yZXNvbHZl
X2Jhc2U6Ci0gICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRoX2Jhc2U6Ci0gICAgICAgIGNhc2Ug
b3BfcmVzb2x2ZV93aXRoX3RoaXM6CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkOgogICAgICAg
ICBjYXNlIG9wX2NhbGxfcHV0X3Jlc3VsdDoKICAgICAgICAgY2FzZSBvcF9nZXRfY2FsbGVlOiB7
CkBAIC0xODc1LDcgKzE4NzIsNDcgQEAgQ29kZUJsb2NrOjpDb2RlQmxvY2soU2NyaXB0RXhlY3V0
YWJsZSogb3duZXJFeGVjdXRhYmxlLCBVbmxpbmtlZENvZGVCbG9jayogdW5saW4KICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CiAjZW5kaWYKLQorICAgICAgICBjYXNlIG9wX3Jlc29sdmVf
YmFzZV90b19nbG9iYWw6CisgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV9iYXNlX3RvX2dsb2JhbF9k
eW5hbWljOgorICAgICAgICBjYXNlIG9wX3Jlc29sdmVfYmFzZV90b19zY29wZToKKyAgICAgICAg
Y2FzZSBvcF9yZXNvbHZlX2Jhc2VfdG9fc2NvcGVfd2l0aF90b3Bfc2NvcGVfY2hlY2s6IHsKKyAg
ICAgICAgICAgIGluc3RydWN0aW9uc1tpICsgNF0udS5yZXNvbHZlT3BlcmF0aW9ucyA9ICZtX3Jl
c29sdmVPcGVyYXRpb25zW3BjW2kgKyA0XS51Lm9wZXJhbmRdOworICAgICAgICAgICAgaW5zdHJ1
Y3Rpb25zW2kgKyA1XS51LnB1dFRvQmFzZU9wZXJhdGlvbiA9ICZtX3B1dFRvQmFzZU9wZXJhdGlv
bnNbcGNbaSArIDVdLnUub3BlcmFuZF07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgICBjYXNlIG9wX3Jlc29sdmVfZ2xvYmFsX3Byb3BlcnR5OgorICAgICAgICBjYXNlIG9w
X3Jlc29sdmVfZ2xvYmFsX3ZhcjoKKyAgICAgICAgY2FzZSBvcF9yZXNvbHZlX3Njb3BlZF92YXI6
CisgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV9zY29wZWRfdmFyX29uX3RvcF9zY29wZToKKyAgICAg
ICAgY2FzZSBvcF9yZXNvbHZlX3Njb3BlZF92YXJfd2l0aF90b3Bfc2NvcGVfY2hlY2s6IHsKKyAg
ICAgICAgICAgIGluc3RydWN0aW9uc1tpICsgM10udS5yZXNvbHZlT3BlcmF0aW9ucyA9ICZtX3Jl
c29sdmVPcGVyYXRpb25zW3BjW2kgKyAzXS51Lm9wZXJhbmRdOworICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBvcF9wdXRfdG9fYmFzZToKKyAgICAgICAgY2FzZSBv
cF9wdXRfdG9fYmFzZV92YXJpYWJsZTogeworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zW2kgKyA0
XS51LnB1dFRvQmFzZU9wZXJhdGlvbiA9ICZtX3B1dFRvQmFzZU9wZXJhdGlvbnNbcGNbaSArIDRd
LnUub3BlcmFuZF07CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNl
IG9wX3Jlc29sdmU6IHsKKyAgICAgICAgICAgIFZhbHVlUHJvZmlsZSogcHJvZmlsZSA9ICZtX3Zh
bHVlUHJvZmlsZXNbcGNbaSArIG9wTGVuZ3RoIC0gMV0udS5vcGVyYW5kXTsKKyAgICAgICAgICAg
IEFTU0VSVChwcm9maWxlLT5tX2J5dGVjb2RlT2Zmc2V0ID09IC0xKTsKKyAgICAgICAgICAgIHBy
b2ZpbGUtPm1fYnl0ZWNvZGVPZmZzZXQgPSBpOworICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zW2kg
KyAzXS51LnJlc29sdmVPcGVyYXRpb25zID0gJm1fcmVzb2x2ZU9wZXJhdGlvbnNbcGNbaSArIDNd
LnUub3BlcmFuZF07CisgICAgICAgICAgICBpbnN0cnVjdGlvbnNbaSArIG9wTGVuZ3RoIC0gMV0g
PSBwcm9maWxlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBv
cF9yZXNvbHZlX2Jhc2U6CisgICAgICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRoX2Jhc2U6CisgICAg
ICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRoX3RoaXM6IHsKKyAgICAgICAgICAgIFZhbHVlUHJvZmls
ZSogcHJvZmlsZSA9ICZtX3ZhbHVlUHJvZmlsZXNbcGNbaSArIG9wTGVuZ3RoIC0gMV0udS5vcGVy
YW5kXTsKKyAgICAgICAgICAgIEFTU0VSVChwcm9maWxlLT5tX2J5dGVjb2RlT2Zmc2V0ID09IC0x
KTsKKyAgICAgICAgICAgIHByb2ZpbGUtPm1fYnl0ZWNvZGVPZmZzZXQgPSBpOworICAgICAgICAg
ICAgaW5zdHJ1Y3Rpb25zW2kgKyA0XS51LnJlc29sdmVPcGVyYXRpb25zID0gJm1fcmVzb2x2ZU9w
ZXJhdGlvbnNbcGNbaSArIDRdLnUub3BlcmFuZF07CisgICAgICAgICAgICBpZiAocGNbaV0udS5v
cGNvZGUgIT0gb3BfcmVzb2x2ZV93aXRoX3RoaXMpCisgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rp
b25zW2kgKyA1XS51LnB1dFRvQmFzZU9wZXJhdGlvbiA9ICZtX3B1dFRvQmFzZU9wZXJhdGlvbnNb
cGNbaSArIDVdLnUub3BlcmFuZF07CisgICAgICAgICAgICBpbnN0cnVjdGlvbnNbaSArIG9wTGVu
Z3RoIC0gMV0gPSBwcm9maWxlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAg
ICAgY2FzZSBvcF9uZXdfb2JqZWN0OiB7CiAgICAgICAgICAgICBpbnQgb2JqZWN0QWxsb2NhdGlv
blByb2ZpbGVJbmRleCA9IHBjW2kgKyBvcExlbmd0aCAtIDFdLnUub3BlcmFuZDsKICAgICAgICAg
ICAgIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlKiBvYmplY3RBbGxvY2F0aW9uUHJvZmlsZSA9ICZt
X29iamVjdEFsbG9jYXRpb25Qcm9maWxlc1tvYmplY3RBbGxvY2F0aW9uUHJvZmlsZUluZGV4XTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAppbmRleCBiZWU0OTJl
NzAyOWM3NDZmMGZlOGYwMjkxYTEzYjZjOTI2M2FkZGFjLi5hYmVmM2VmNWEwZWViMDU4ODg5N2U5
NTVjODJkNmM4MTFiZjI4MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQ29kZUJsb2NrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9jay5oCkBAIC0yMTEsMzAgKzIxMSw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBp
bnQgbGluZU51bWJlckZvckJ5dGVjb2RlT2Zmc2V0KHVuc2lnbmVkIGJ5dGVjb2RlT2Zmc2V0KTsK
ICAgICAgICAgdm9pZCBleHByZXNzaW9uUmFuZ2VGb3JCeXRlY29kZU9mZnNldCh1bnNpZ25lZCBi
eXRlY29kZU9mZnNldCwgaW50JiBkaXZvdCwgaW50JiBzdGFydE9mZnNldCwgaW50JiBlbmRPZmZz
ZXQpOwogCi0gICAgICAgIHVpbnQzMl90IGFkZFJlc29sdmUoKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBtX3Jlc29sdmVPcGVyYXRpb25zLmdyb3cobV9yZXNvbHZlT3BlcmF0aW9ucy5zaXplKCkg
KyAxKTsKLSAgICAgICAgICAgIHJldHVybiBtX3Jlc29sdmVPcGVyYXRpb25zLnNpemUoKSAtIDE7
Ci0gICAgICAgIH0KLSAgICAgICAgdWludDMyX3QgYWRkUHV0VG9CYXNlKCkKLSAgICAgICAgewot
ICAgICAgICAgICAgbV9wdXRUb0Jhc2VPcGVyYXRpb25zLmFwcGVuZChQdXRUb0Jhc2VPcGVyYXRp
b24oaXNTdHJpY3RNb2RlKCkpKTsKLSAgICAgICAgICAgIHJldHVybiBtX3B1dFRvQmFzZU9wZXJh
dGlvbnMuc2l6ZSgpIC0gMTsKLSAgICAgICAgfQotCi0gICAgICAgIFJlc29sdmVPcGVyYXRpb25z
KiByZXNvbHZlT3BlcmF0aW9ucyh1aW50MzJfdCBpKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gJm1fcmVzb2x2ZU9wZXJhdGlvbnNbaV07Ci0gICAgICAgIH0KLQotICAgICAgICBQdXRU
b0Jhc2VPcGVyYXRpb24qIHB1dFRvQmFzZU9wZXJhdGlvbih1aW50MzJfdCBpKQotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gJm1fcHV0VG9CYXNlT3BlcmF0aW9uc1tpXTsKLSAgICAgICAg
fQotCi0gICAgICAgIHNpemVfdCBudW1iZXJPZlJlc29sdmVPcGVyYXRpb25zKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZXNvbHZlT3BlcmF0aW9ucy5zaXplKCk7IH0KLSAgICAgICAgc2l6ZV90IG51bWJl
ck9mUHV0VG9CYXNlT3BlcmF0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fcHV0VG9CYXNlT3BlcmF0
aW9ucy5zaXplKCk7IH0KLQogI2lmIEVOQUJMRShKSVQpCiAKICAgICAgICAgU3RydWN0dXJlU3R1
YkluZm8mIGdldFN0dWJJbmZvKFJldHVybkFkZHJlc3NQdHIgcmV0dXJuQWRkcmVzcykKQEAgLTg4
MiwyMiArODU4LDggQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEFMV0FZU19JTkxJTkUgYm9v
bCBpc0NvbnN0YW50UmVnaXN0ZXJJbmRleChpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIGluZGV4
ID49IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4OyB9CiAgICAgICAgIEFMV0FZU19JTkxJTkUg
SlNWYWx1ZSBnZXRDb25zdGFudChpbnQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fY29uc3RhbnRS
ZWdpc3RlcnNbaW5kZXggLSBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleF0uZ2V0KCk7IH0KIAot
ICAgICAgICB1bnNpZ25lZCBhZGRGdW5jdGlvbkRlY2woRnVuY3Rpb25FeGVjdXRhYmxlKiBuKQot
ICAgICAgICB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBzaXplID0gbV9mdW5jdGlvbkRlY2xzLnNp
emUoKTsKLSAgICAgICAgICAgIG1fZnVuY3Rpb25EZWNscy5hcHBlbmQoV3JpdGVCYXJyaWVyPEZ1
bmN0aW9uRXhlY3V0YWJsZT4oKSk7Ci0gICAgICAgICAgICBtX2Z1bmN0aW9uRGVjbHMubGFzdCgp
LnNldChtX2dsb2JhbE9iamVjdC0+Z2xvYmFsRGF0YSgpLCBtX293bmVyRXhlY3V0YWJsZS5nZXQo
KSwgbik7Ci0gICAgICAgICAgICByZXR1cm4gc2l6ZTsKLSAgICAgICAgfQogICAgICAgICBGdW5j
dGlvbkV4ZWN1dGFibGUqIGZ1bmN0aW9uRGVjbChpbnQgaW5kZXgpIHsgcmV0dXJuIG1fZnVuY3Rp
b25EZWNsc1tpbmRleF0uZ2V0KCk7IH0KICAgICAgICAgaW50IG51bWJlck9mRnVuY3Rpb25EZWNs
cygpIHsgcmV0dXJuIG1fZnVuY3Rpb25EZWNscy5zaXplKCk7IH0KLSAgICAgICAgdW5zaWduZWQg
YWRkRnVuY3Rpb25FeHByKEZ1bmN0aW9uRXhlY3V0YWJsZSogbikKLSAgICAgICAgewotICAgICAg
ICAgICAgdW5zaWduZWQgc2l6ZSA9IG1fZnVuY3Rpb25FeHBycy5zaXplKCk7Ci0gICAgICAgICAg
ICBtX2Z1bmN0aW9uRXhwcnMuYXBwZW5kKFdyaXRlQmFycmllcjxGdW5jdGlvbkV4ZWN1dGFibGU+
KCkpOwotICAgICAgICAgICAgbV9mdW5jdGlvbkV4cHJzLmxhc3QoKS5zZXQobV9nbG9iYWxPYmpl
Y3QtPmdsb2JhbERhdGEoKSwgbV9vd25lckV4ZWN1dGFibGUuZ2V0KCksIG4pOwotICAgICAgICAg
ICAgcmV0dXJuIHNpemU7Ci0gICAgICAgIH0KICAgICAgICAgRnVuY3Rpb25FeGVjdXRhYmxlKiBm
dW5jdGlvbkV4cHIoaW50IGluZGV4KSB7IHJldHVybiBtX2Z1bmN0aW9uRXhwcnNbaW5kZXhdLmdl
dCgpOyB9CiAKICAgICAgICAgUmVnRXhwKiByZWdleHAoaW50IGluZGV4KSBjb25zdCB7IHJldHVy
biBtX3VubGlua2VkQ29kZS0+cmVnZXhwKGluZGV4KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0luc3RydWN0aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvSW5zdHJ1Y3Rpb24uaAppbmRleCBkMTA4ZjE0YjI5NjA5OTdkMDkzYWVhNjM1
MWFiYjA2MWI2MGY0ZjYxLi4zNDYyOTJlZDU2OWYyMmFkMzEyNWMzMjYwNjY1NDQzOGFkNThiZjM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5zdHJ1Y3Rpb24u
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5zdHJ1Y3Rpb24uaApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyLmgiCiAjaW5jbHVkZSAiT3Bj
b2RlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlTbG90LmgiCisjaW5jbHVkZSAiUmVzb2x2ZU9wZXJh
dGlvbi5oIgogI2luY2x1ZGUgIlNwZWNpYWxQb2ludGVyLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJl
LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlQ2hhaW4uaCIKQEAgLTIyMCw2ICsyMjEsOCBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgICAgIE9iamVjdEFsbG9jYXRpb25Qcm9maWxlKiBvYmplY3RB
bGxvY2F0aW9uUHJvZmlsZTsKICAgICAgICAgICAgIHZvaWQqIHBvaW50ZXI7CiAgICAgICAgICAg
ICBib29sKiBwcmVkaWNhdGVQb2ludGVyOworICAgICAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbnMq
IHJlc29sdmVPcGVyYXRpb25zOworICAgICAgICAgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRU
b0Jhc2VPcGVyYXRpb247CiAgICAgICAgIH0gdTsKICAgICAgICAgCiAgICAgcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXgg
Yjg4N2I2NjVjNDgwMWQ0ODhiNDVhZGY4ZDQzN2IyNmM1NTg1MDI5My4uYmIxMDliMWY0MWFmNTk3
MWYzYzdmMjE4OGYwNjdhMGUwZDZkZDRjZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCBwcml2YXRlOgog
ICAgIE5vZGUqIGdldFNjb3BlKGJvb2wgc2tpcFRvcCwgdW5zaWduZWQgc2tpcENvdW50KTsKICAg
ICAKICAgICAvLyBDb252ZXJ0IGEgc2V0IG9mIFJlc29sdmVPcGVyYXRpb25zIGludG8gZ3JhcGgg
bm9kZXMKLSAgICBib29sIHBhcnNlUmVzb2x2ZU9wZXJhdGlvbnMoU3BlY3VsYXRlZFR5cGUsIHVu
c2lnbmVkIGlkZW50aWZpZXJOdW1iZXIsIHVuc2lnbmVkIG9wZXJhdGlvbnMsIHVuc2lnbmVkIHB1
dFRvQmFzZU9wZXJhdGlvbiwgTm9kZSoqIGJhc2UsIE5vZGUqKiB2YWx1ZSk7CisgICAgYm9vbCBw
YXJzZVJlc29sdmVPcGVyYXRpb25zKFNwZWN1bGF0ZWRUeXBlLCB1bnNpZ25lZCBpZGVudGlmaWVy
TnVtYmVyLCBSZXNvbHZlT3BlcmF0aW9ucyosIFB1dFRvQmFzZU9wZXJhdGlvbiosIE5vZGUqKiBi
YXNlLCBOb2RlKiogdmFsdWUpOwogCiAgICAgLy8gUHJlcGFyZSB0byBwYXJzZSBhIGJsb2NrLgog
ICAgIHZvaWQgcHJlcGFyZVRvUGFyc2VCbG9jaygpOwpAQCAtMTA2Myw4ICsxMDYzLDYgQEAgcHJp
dmF0ZToKICAgICAgICAgVmVjdG9yPHVuc2lnbmVkPiBtX2lkZW50aWZpZXJSZW1hcDsKICAgICAg
ICAgVmVjdG9yPHVuc2lnbmVkPiBtX2NvbnN0YW50UmVtYXA7CiAgICAgICAgIFZlY3Rvcjx1bnNp
Z25lZD4gbV9jb25zdGFudEJ1ZmZlclJlbWFwOwotICAgICAgICBWZWN0b3I8dW5zaWduZWQ+IG1f
cmVzb2x2ZU9wZXJhdGlvblJlbWFwOwotICAgICAgICBWZWN0b3I8dW5zaWduZWQ+IG1fcHV0VG9C
YXNlT3BlcmF0aW9uUmVtYXA7CiAgICAgICAgIAogICAgICAgICAvLyBCbG9ja3MgaW50cm9kdWNl
ZCBieSB0aGlzIGNvZGUgYmxvY2ssIHdoaWNoIG5lZWQgc3VjY2Vzc29yIGxpbmtpbmcuCiAgICAg
ICAgIC8vIE1heSBpbmNsdWRlIHVwIHRvIG9uZSBiYXNpYyBibG9jayB0aGF0IGluY2x1ZGVzIHRo
ZSBjb250aW51YXRpb24gYWZ0ZXIKQEAgLTE3NjIsOSArMTc2MCw4IEBAIE5vZGUqIEJ5dGVDb2Rl
UGFyc2VyOjpnZXRTY29wZShib29sIHNraXBUb3AsIHVuc2lnbmVkIHNraXBDb3VudCkKICAgICBy
ZXR1cm4gbG9jYWxCYXNlOwogfQogCi1ib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZVJlc29sdmVP
cGVyYXRpb25zKFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24sIHVuc2lnbmVkIGlkZW50aWZpZXIs
IHVuc2lnbmVkIG9wZXJhdGlvbnMsIHVuc2lnbmVkIHB1dFRvQmFzZU9wZXJhdGlvbiwgTm9kZSoq
IGJhc2UsIE5vZGUqKiB2YWx1ZSkKK2Jvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlUmVzb2x2ZU9w
ZXJhdGlvbnMoU3BlY3VsYXRlZFR5cGUgcHJlZGljdGlvbiwgdW5zaWduZWQgaWRlbnRpZmllciwg
UmVzb2x2ZU9wZXJhdGlvbnMqIHJlc29sdmVPcGVyYXRpb25zLCBQdXRUb0Jhc2VPcGVyYXRpb24q
IHB1dFRvQmFzZU9wZXJhdGlvbiwgTm9kZSoqIGJhc2UsIE5vZGUqKiB2YWx1ZSkKIHsKLSAgICBS
ZXNvbHZlT3BlcmF0aW9ucyogcmVzb2x2ZU9wZXJhdGlvbnMgPSBtX2NvZGVCbG9jay0+cmVzb2x2
ZU9wZXJhdGlvbnMob3BlcmF0aW9ucyk7CiAgICAgaWYgKHJlc29sdmVPcGVyYXRpb25zLT5pc0Vt
cHR5KCkpIHsKICAgICAgICAgYWRkVG9HcmFwaChGb3JjZU9TUkV4aXQpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CkBAIC0xODY1LDggKzE4NjIsOCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJz
ZVJlc29sdmVPcGVyYXRpb25zKFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24sIHVuc2lnbmVkCiAg
ICAgICAgIG1fZ3JhcGgubV9yZXNvbHZlR2xvYmFsRGF0YS5hcHBlbmQoUmVzb2x2ZUdsb2JhbERh
dGEoKSk7CiAgICAgICAgIFJlc29sdmVHbG9iYWxEYXRhJiBkYXRhID0gbV9ncmFwaC5tX3Jlc29s
dmVHbG9iYWxEYXRhLmxhc3QoKTsKICAgICAgICAgZGF0YS5pZGVudGlmaWVyTnVtYmVyID0gaWRl
bnRpZmllcjsKLSAgICAgICAgZGF0YS5yZXNvbHZlT3BlcmF0aW9uc0luZGV4ID0gb3BlcmF0aW9u
czsKLSAgICAgICAgZGF0YS5wdXRUb0Jhc2VPcGVyYXRpb25JbmRleCA9IHB1dFRvQmFzZU9wZXJh
dGlvbjsKKyAgICAgICAgZGF0YS5yZXNvbHZlT3BlcmF0aW9ucyA9IHJlc29sdmVPcGVyYXRpb25z
OworICAgICAgICBkYXRhLnB1dFRvQmFzZU9wZXJhdGlvbiA9IHB1dFRvQmFzZU9wZXJhdGlvbjsK
ICAgICAgICAgZGF0YS5yZXNvbHZlUHJvcGVydHlJbmRleCA9IHJlc29sdmVWYWx1ZU9wZXJhdGlv
biAtIHJlc29sdmVPcGVyYXRpb25zLT5kYXRhKCk7CiAgICAgICAgICp2YWx1ZSA9IHJlc29sdmU7
CiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMzA4Miw3ICszMDc5LDcgQEAgYm9vbCBCeXRlQ29k
ZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIFNwZWN1bGF0
ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0aW9uKCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZp
ZXJSZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKLSAgICAgICAgICAgIHVu
c2lnbmVkIG9wZXJhdGlvbnMgPSBtX2lubGluZVN0YWNrVG9wLT5tX3Jlc29sdmVPcGVyYXRpb25S
ZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kXTsKKyAgICAgICAgICAgIFJlc29s
dmVPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzNdLnUucmVzb2x2
ZU9wZXJhdGlvbnM7CiAgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IDA7CiAgICAgICAgICAgICBp
ZiAocGFyc2VSZXNvbHZlT3BlcmF0aW9ucyhwcmVkaWN0aW9uLCBpZGVudGlmaWVyLCBvcGVyYXRp
b25zLCAwLCAwLCAmdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAgc2V0KGN1cnJlbnRJbnN0cnVj
dGlvblsxXS51Lm9wZXJhbmQsIHZhbHVlKTsKQEAgLTMwOTMsNyArMzA5MCw3IEBAIGJvb2wgQnl0
ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICBtX2dy
YXBoLm1fcmVzb2x2ZU9wZXJhdGlvbnNEYXRhLmFwcGVuZChSZXNvbHZlT3BlcmF0aW9uRGF0YSgp
KTsKICAgICAgICAgICAgIFJlc29sdmVPcGVyYXRpb25EYXRhJiBkYXRhID0gbV9ncmFwaC5tX3Jl
c29sdmVPcGVyYXRpb25zRGF0YS5sYXN0KCk7CiAgICAgICAgICAgICBkYXRhLmlkZW50aWZpZXJO
dW1iZXIgPSBpZGVudGlmaWVyOwotICAgICAgICAgICAgZGF0YS5yZXNvbHZlT3BlcmF0aW9uc0lu
ZGV4ID0gb3BlcmF0aW9uczsKKyAgICAgICAgICAgIGRhdGEucmVzb2x2ZU9wZXJhdGlvbnMgPSBv
cGVyYXRpb25zOwogCiAgICAgICAgICAgICBzZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3Bl
cmFuZCwgcmVzb2x2ZSk7CiAKQEAgLTMxMDUsOCArMzEwMiw3IEBAIGJvb2wgQnl0ZUNvZGVQYXJz
ZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAgICAgICAgICAgICB1bnNpZ25lZCBiYXNl
ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZDsKICAgICAgICAgICAgIHVuc2lnbmVk
IGlkZW50aWZpZXIgPSBtX2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZpZXJSZW1hcFtjdXJyZW50
SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kXTsKICAgICAgICAgICAgIHVuc2lnbmVkIHZhbHVlID0g
Y3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZDsKLSAgICAgICAgICAgIHVuc2lnbmVkIG9w
ZXJhdGlvbiA9IG1faW5saW5lU3RhY2tUb3AtPm1fcHV0VG9CYXNlT3BlcmF0aW9uUmVtYXBbY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZF07Ci0gICAgICAgICAgICBQdXRUb0Jhc2VPcGVy
YXRpb24qIHB1dFRvQmFzZSA9IG1fY29kZUJsb2NrLT5wdXRUb0Jhc2VPcGVyYXRpb24ob3BlcmF0
aW9uKTsKKyAgICAgICAgICAgIFB1dFRvQmFzZU9wZXJhdGlvbiogcHV0VG9CYXNlID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUucHV0VG9CYXNlT3BlcmF0aW9uOwogCiAgICAgICAgICAgICBpZiAo
cHV0VG9CYXNlLT5tX2lzRHluYW1pYykgewogICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoUHV0
QnlJZCwgT3BJbmZvKGlkZW50aWZpZXIpLCBnZXQoYmFzZSksIGdldCh2YWx1ZSkpOwpAQCAtMzE4
MCw4ICszMTc2LDggQEAgYm9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBs
aW1pdCkKICAgICAgICAgICAgIFNwZWN1bGF0ZWRUeXBlIHByZWRpY3Rpb24gPSBnZXRQcmVkaWN0
aW9uKCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXIgPSBt
X2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZpZXJSZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bMl0u
dS5vcGVyYW5kXTsKLSAgICAgICAgICAgIHVuc2lnbmVkIG9wZXJhdGlvbnMgPSBtX2lubGluZVN0
YWNrVG9wLT5tX3Jlc29sdmVPcGVyYXRpb25SZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5v
cGVyYW5kXTsKLSAgICAgICAgICAgIHVuc2lnbmVkIHB1dFRvQmFzZU9wZXJhdGlvbiA9IG1faW5s
aW5lU3RhY2tUb3AtPm1fcHV0VG9CYXNlT3BlcmF0aW9uUmVtYXBbY3VycmVudEluc3RydWN0aW9u
WzVdLnUub3BlcmFuZF07CisgICAgICAgICAgICBSZXNvbHZlT3BlcmF0aW9ucyogb3BlcmF0aW9u
cyA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LnJlc29sdmVPcGVyYXRpb25zOworICAgICAgICAg
ICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRUb0Jhc2VPcGVyYXRpb24gPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bNV0udS5wdXRUb0Jhc2VPcGVyYXRpb247CiAKICAgICAgICAgICAgIE5vZGUqIGJhc2Ug
PSAwOwogICAgICAgICAgICAgaWYgKHBhcnNlUmVzb2x2ZU9wZXJhdGlvbnMocHJlZGljdGlvbiwg
aWRlbnRpZmllciwgb3BlcmF0aW9ucywgMCwgJmJhc2UsIDApKSB7CkBAIC0zMTkzLDggKzMxODks
OCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAg
ICAgICAgICAgbV9ncmFwaC5tX3Jlc29sdmVPcGVyYXRpb25zRGF0YS5hcHBlbmQoUmVzb2x2ZU9w
ZXJhdGlvbkRhdGEoKSk7CiAgICAgICAgICAgICBSZXNvbHZlT3BlcmF0aW9uRGF0YSYgZGF0YSA9
IG1fZ3JhcGgubV9yZXNvbHZlT3BlcmF0aW9uc0RhdGEubGFzdCgpOwogICAgICAgICAgICAgZGF0
YS5pZGVudGlmaWVyTnVtYmVyID0gaWRlbnRpZmllcjsKLSAgICAgICAgICAgIGRhdGEucmVzb2x2
ZU9wZXJhdGlvbnNJbmRleCA9IG9wZXJhdGlvbnM7Ci0gICAgICAgICAgICBkYXRhLnB1dFRvQmFz
ZU9wZXJhdGlvbkluZGV4ID0gcHV0VG9CYXNlT3BlcmF0aW9uOworICAgICAgICAgICAgZGF0YS5y
ZXNvbHZlT3BlcmF0aW9ucyA9IG9wZXJhdGlvbnM7CisgICAgICAgICAgICBkYXRhLnB1dFRvQmFz
ZU9wZXJhdGlvbiA9IHB1dFRvQmFzZU9wZXJhdGlvbjsKICAgICAgICAgCiAgICAgICAgICAgICBz
ZXQoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCwgcmVzb2x2ZSk7CiAKQEAgLTMyMDUs
OCArMzIwMSw4IEBAIGJvb2wgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGlt
aXQpCiAgICAgICAgICAgICB1bnNpZ25lZCBiYXNlRHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFd
LnUub3BlcmFuZDsKICAgICAgICAgICAgIHVuc2lnbmVkIHZhbHVlRHN0ID0gY3VycmVudEluc3Ry
dWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICAgICAgICAgIHVuc2lnbmVkIGlkZW50aWZpZXIgPSBt
X2lubGluZVN0YWNrVG9wLT5tX2lkZW50aWZpZXJSZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kXTsKLSAgICAgICAgICAgIHVuc2lnbmVkIG9wZXJhdGlvbnMgPSBtX2lubGluZVN0
YWNrVG9wLT5tX3Jlc29sdmVPcGVyYXRpb25SZW1hcFtjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5v
cGVyYW5kXTsKLSAgICAgICAgICAgIHVuc2lnbmVkIHB1dFRvQmFzZU9wZXJhdGlvbiA9IG1faW5s
aW5lU3RhY2tUb3AtPm1fcHV0VG9CYXNlT3BlcmF0aW9uUmVtYXBbY3VycmVudEluc3RydWN0aW9u
WzVdLnUub3BlcmFuZF07CisgICAgICAgICAgICBSZXNvbHZlT3BlcmF0aW9ucyogb3BlcmF0aW9u
cyA9IGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LnJlc29sdmVPcGVyYXRpb25zOworICAgICAgICAg
ICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRUb0Jhc2VPcGVyYXRpb24gPSBjdXJyZW50SW5zdHJ1
Y3Rpb25bNV0udS5wdXRUb0Jhc2VPcGVyYXRpb247CiAKICAgICAgICAgICAgIE5vZGUqIGJhc2Ug
PSAwOwogICAgICAgICAgICAgTm9kZSogdmFsdWUgPSAwOwpAQCAtMzIyNCw3ICszMjIwLDcgQEAg
Ym9vbCBCeXRlQ29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAg
ICAgIHVuc2lnbmVkIGJhc2VEc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwog
ICAgICAgICAgICAgdW5zaWduZWQgdmFsdWVEc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5v
cGVyYW5kOwogICAgICAgICAgICAgdW5zaWduZWQgaWRlbnRpZmllciA9IG1faW5saW5lU3RhY2tU
b3AtPm1faWRlbnRpZmllclJlbWFwW2N1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmRdOwot
ICAgICAgICAgICAgdW5zaWduZWQgb3BlcmF0aW9ucyA9IG1faW5saW5lU3RhY2tUb3AtPm1fcmVz
b2x2ZU9wZXJhdGlvblJlbWFwW2N1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmRdOworICAg
ICAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIG9wZXJhdGlvbnMgPSBjdXJyZW50SW5zdHJ1Y3Rp
b25bNF0udS5yZXNvbHZlT3BlcmF0aW9uczsKIAogICAgICAgICAgICAgTm9kZSogYmFzZSA9IDA7
CiAgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IDA7CkBAIC0zNDg5LDggKzM0ODUsNiBAQCBCeXRl
Q29kZVBhcnNlcjo6SW5saW5lU3RhY2tFbnRyeTo6SW5saW5lU3RhY2tFbnRyeSgKICAgICAgICAg
bV9pZGVudGlmaWVyUmVtYXAucmVzaXplKGNvZGVCbG9jay0+bnVtYmVyT2ZJZGVudGlmaWVycygp
KTsKICAgICAgICAgbV9jb25zdGFudFJlbWFwLnJlc2l6ZShjb2RlQmxvY2stPm51bWJlck9mQ29u
c3RhbnRSZWdpc3RlcnMoKSk7CiAgICAgICAgIG1fY29uc3RhbnRCdWZmZXJSZW1hcC5yZXNpemUo
Y29kZUJsb2NrLT5udW1iZXJPZkNvbnN0YW50QnVmZmVycygpKTsKLSAgICAgICAgbV9yZXNvbHZl
T3BlcmF0aW9uUmVtYXAucmVzaXplKGNvZGVCbG9jay0+bnVtYmVyT2ZSZXNvbHZlT3BlcmF0aW9u
cygpKTsKLSAgICAgICAgbV9wdXRUb0Jhc2VPcGVyYXRpb25SZW1hcC5yZXNpemUoY29kZUJsb2Nr
LT5udW1iZXJPZlB1dFRvQmFzZU9wZXJhdGlvbnMoKSk7CiAKICAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjb2RlQmxvY2stPm51bWJlck9mSWRlbnRpZmllcnMoKTsgKytpKSB7CiAgICAg
ICAgICAgICBTdHJpbmdJbXBsKiByZXAgPSBjb2RlQmxvY2stPmlkZW50aWZpZXIoaSkuaW1wbCgp
OwpAQCAtMzUxNywxMSArMzUxMSw2IEBAIEJ5dGVDb2RlUGFyc2VyOjpJbmxpbmVTdGFja0VudHJ5
OjpJbmxpbmVTdGFja0VudHJ5KAogICAgICAgICAgICAgfQogICAgICAgICAgICAgbV9jb25zdGFu
dFJlbWFwW2ldID0gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgfQotICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGNvZGVCbG9jay0+bnVtYmVyT2ZSZXNvbHZlT3BlcmF0aW9u
cygpOyBpKyspIHsKLSAgICAgICAgICAgIHVpbnQzMl90IG5ld1Jlc29sdmUgPSBieXRlQ29kZVBh
cnNlci0+bV9jb2RlQmxvY2stPmFkZFJlc29sdmUoKTsKLSAgICAgICAgICAgIG1fcmVzb2x2ZU9w
ZXJhdGlvblJlbWFwW2ldID0gbmV3UmVzb2x2ZTsKLSAgICAgICAgICAgIGJ5dGVDb2RlUGFyc2Vy
LT5tX2NvZGVCbG9jay0+cmVzb2x2ZU9wZXJhdGlvbnMobmV3UmVzb2x2ZSktPmFwcGVuZCgqY29k
ZUJsb2NrLT5yZXNvbHZlT3BlcmF0aW9ucyhpKSk7Ci0gICAgICAgIH0KICAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGNvZGVCbG9jay0+bnVtYmVyT2ZDb25zdGFudEJ1ZmZlcnMoKTsg
KytpKSB7CiAgICAgICAgICAgICAvLyBJZiB3ZSBpbmxpbmUgdGhlIHNhbWUgY29kZSBibG9jayBt
dWx0aXBsZSB0aW1lcywgd2UgZG9uJ3Qgd2FudCB0byBuZWVkbGVzc2x5CiAgICAgICAgICAgICAv
LyBkdXBsaWNhdGUgaXRzIGNvbnN0YW50IGJ1ZmZlcnMuCkBAIC0zNTM2LDEyICszNTI1LDYgQEAg
Qnl0ZUNvZGVQYXJzZXI6OklubGluZVN0YWNrRW50cnk6OklubGluZVN0YWNrRW50cnkoCiAgICAg
ICAgICAgICBtX2NvbnN0YW50QnVmZmVyUmVtYXBbaV0gPSBuZXdJbmRleDsKICAgICAgICAgICAg
IGJ5dGVDb2RlUGFyc2VyLT5tX2NvbnN0YW50QnVmZmVyQ2FjaGUuYWRkKENvbnN0YW50QnVmZmVy
S2V5KGNvZGVCbG9jaywgaSksIG5ld0luZGV4KTsKICAgICAgICAgfQotICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGNvZGVCbG9jay0+bnVtYmVyT2ZQdXRUb0Jhc2VPcGVyYXRpb25zKCk7
IGkrKykgewotICAgICAgICAgICAgdWludDMyX3QgcHV0VG9CYXNlUmVzb2x2ZSA9IGJ5dGVDb2Rl
UGFyc2VyLT5tX2NvZGVCbG9jay0+YWRkUHV0VG9CYXNlKCk7Ci0gICAgICAgICAgICBtX3B1dFRv
QmFzZU9wZXJhdGlvblJlbWFwW2ldID0gcHV0VG9CYXNlUmVzb2x2ZTsKLSAgICAgICAgICAgICpi
eXRlQ29kZVBhcnNlci0+bV9jb2RlQmxvY2stPnB1dFRvQmFzZU9wZXJhdGlvbihwdXRUb0Jhc2VS
ZXNvbHZlKSA9ICpjb2RlQmxvY2stPnB1dFRvQmFzZU9wZXJhdGlvbihpKTsKLSAgICAgICAgfQot
ICAgICAgICAKICAgICAgICAgbV9jYWxsc2l0ZUJsb2NrSGVhZE5lZWRzTGlua2luZyA9IHRydWU7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gTWFjaGluZSBjb2RlIGJsb2NrIGNhc2UuCkBAIC0z
NTU2LDIwICszNTM5LDEyIEBAIEJ5dGVDb2RlUGFyc2VyOjpJbmxpbmVTdGFja0VudHJ5OjpJbmxp
bmVTdGFja0VudHJ5KAogICAgICAgICBtX2lkZW50aWZpZXJSZW1hcC5yZXNpemUoY29kZUJsb2Nr
LT5udW1iZXJPZklkZW50aWZpZXJzKCkpOwogICAgICAgICBtX2NvbnN0YW50UmVtYXAucmVzaXpl
KGNvZGVCbG9jay0+bnVtYmVyT2ZDb25zdGFudFJlZ2lzdGVycygpKTsKICAgICAgICAgbV9jb25z
dGFudEJ1ZmZlclJlbWFwLnJlc2l6ZShjb2RlQmxvY2stPm51bWJlck9mQ29uc3RhbnRCdWZmZXJz
KCkpOwotICAgICAgICBtX3Jlc29sdmVPcGVyYXRpb25SZW1hcC5yZXNpemUoY29kZUJsb2NrLT5u
dW1iZXJPZlJlc29sdmVPcGVyYXRpb25zKCkpOwotICAgICAgICBtX3B1dFRvQmFzZU9wZXJhdGlv
blJlbWFwLnJlc2l6ZShjb2RlQmxvY2stPm51bWJlck9mUHV0VG9CYXNlT3BlcmF0aW9ucygpKTsK
LQogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvZGVCbG9jay0+bnVtYmVyT2ZJZGVu
dGlmaWVycygpOyArK2kpCiAgICAgICAgICAgICBtX2lkZW50aWZpZXJSZW1hcFtpXSA9IGk7CiAg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY29kZUJsb2NrLT5udW1iZXJPZkNvbnN0YW50
UmVnaXN0ZXJzKCk7ICsraSkKICAgICAgICAgICAgIG1fY29uc3RhbnRSZW1hcFtpXSA9IGkgKyBG
aXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleDsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBjb2RlQmxvY2stPm51bWJlck9mQ29uc3RhbnRCdWZmZXJzKCk7ICsraSkKICAgICAgICAgICAg
IG1fY29uc3RhbnRCdWZmZXJSZW1hcFtpXSA9IGk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY29kZUJsb2NrLT5udW1iZXJPZlJlc29sdmVPcGVyYXRpb25zKCk7ICsraSkKLSAgICAg
ICAgICAgIG1fcmVzb2x2ZU9wZXJhdGlvblJlbWFwW2ldID0gaTsKLSAgICAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBjb2RlQmxvY2stPm51bWJlck9mUHV0VG9CYXNlT3BlcmF0aW9ucygpOyAr
K2kpCi0gICAgICAgICAgICBtX3B1dFRvQmFzZU9wZXJhdGlvblJlbWFwW2ldID0gaTsKLQogICAg
ICAgICBtX2NhbGxzaXRlQmxvY2tIZWFkTmVlZHNMaW5raW5nID0gZmFsc2U7CiAgICAgfQogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmgKaW5kZXggMGEz
OWQ2NmRmMzRlYTRiOWJmZDdlNGE3YWZkZjJiOWI0ZGM4ZjFhYS4uZWE2MzI4OWUzNWQzODdhMWFk
NjdhZDVmODAxMWYzOWNkMWUwNjFlNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDYXBhYmlsaXRpZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NhcGFiaWxpdGllcy5oCkBAIC0yMzUsNyArMjM1LDcgQEAgaW5saW5lIGJvb2wgY2FuSW5saW5l
T3Bjb2RlKE9wY29kZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1Y3Rp
b24KICAgICBjYXNlIG9wX3Jlc29sdmVfc2NvcGVkX3ZhcjoKICAgICBjYXNlIG9wX3Jlc29sdmVf
c2NvcGVkX3Zhcl9vbl90b3Bfc2NvcGU6CiAgICAgY2FzZSBvcF9yZXNvbHZlX3Njb3BlZF92YXJf
d2l0aF90b3Bfc2NvcGVfY2hlY2s6Ci0gICAgICAgIHJldHVybiBjYW5JbmxpbmVSZXNvbHZlT3Bl
cmF0aW9ucyhvcGNvZGVJRCwgY29kZUJsb2NrLT5yZXNvbHZlT3BlcmF0aW9ucyhwY1szXS51Lm9w
ZXJhbmQpKTsKKyAgICAgICAgcmV0dXJuIGNhbklubGluZVJlc29sdmVPcGVyYXRpb25zKG9wY29k
ZUlELCBwY1szXS51LnJlc29sdmVPcGVyYXRpb25zKTsKIAogICAgIGNhc2Ugb3BfcmVzb2x2ZV9i
YXNlX3RvX2dsb2JhbDoKICAgICBjYXNlIG9wX3Jlc29sdmVfYmFzZV90b19nbG9iYWxfZHluYW1p
YzoKQEAgLTI0NCw3ICsyNDQsNyBAQCBpbmxpbmUgYm9vbCBjYW5JbmxpbmVPcGNvZGUoT3Bjb2Rl
SUQgb3Bjb2RlSUQsIENvZGVCbG9jayogY29kZUJsb2NrLCBJbnN0cnVjdGlvbgogICAgIGNhc2Ug
b3BfcmVzb2x2ZV9iYXNlOgogICAgIGNhc2Ugb3BfcmVzb2x2ZV93aXRoX2Jhc2U6CiAgICAgY2Fz
ZSBvcF9yZXNvbHZlX3dpdGhfdGhpczoKLSAgICAgICAgcmV0dXJuIGNhbklubGluZVJlc29sdmVP
cGVyYXRpb25zKG9wY29kZUlELCBjb2RlQmxvY2stPnJlc29sdmVPcGVyYXRpb25zKHBjWzRdLnUu
b3BlcmFuZCkpOworICAgICAgICByZXR1cm4gY2FuSW5saW5lUmVzb2x2ZU9wZXJhdGlvbnMob3Bj
b2RlSUQsIHBjWzRdLnUucmVzb2x2ZU9wZXJhdGlvbnMpOwogICAgICAgICAKICAgICAvLyBJbmxp
bmluZyBkb2Vzbid0IGNvcnJlY3RseSByZW1hcCByZWd1bGFyIGV4cHJlc3Npb24gb3BlcmFuZHMu
CiAgICAgY2FzZSBvcF9uZXdfcmVnZXhwOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHcmFwaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdHcmFwaC5o
CmluZGV4IDlkYTMzNGQ3OTcyOGI5YzdjZTQ0OGYxOTIxNzJlYWFkZGRhYjY3MzMuLjFjZjY5NWU5
YzViYjlmMmE2YjE4MjkyNjNlNWM4OTQ4OTk1NzM1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHR3JhcGguaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0dyYXBoLmgKQEAgLTYwLDE5ICs2MCwxOSBAQCBzdHJ1Y3QgU3RvcmFnZUFjY2Vzc0RhdGEg
ewogCiBzdHJ1Y3QgUmVzb2x2ZUdsb2JhbERhdGEgewogICAgIHVuc2lnbmVkIGlkZW50aWZpZXJO
dW1iZXI7Ci0gICAgdW5zaWduZWQgcmVzb2x2ZU9wZXJhdGlvbnNJbmRleDsKLSAgICB1bnNpZ25l
ZCBwdXRUb0Jhc2VPcGVyYXRpb25JbmRleDsKKyAgICBSZXNvbHZlT3BlcmF0aW9ucyogcmVzb2x2
ZU9wZXJhdGlvbnM7CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRUb0Jhc2VPcGVyYXRpb247
CiAgICAgdW5zaWduZWQgcmVzb2x2ZVByb3BlcnR5SW5kZXg7CiB9OwogCiBzdHJ1Y3QgUmVzb2x2
ZU9wZXJhdGlvbkRhdGEgewogICAgIHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXI7Ci0gICAgdW5z
aWduZWQgcmVzb2x2ZU9wZXJhdGlvbnNJbmRleDsKLSAgICB1bnNpZ25lZCBwdXRUb0Jhc2VPcGVy
YXRpb25JbmRleDsKKyAgICBSZXNvbHZlT3BlcmF0aW9ucyogcmVzb2x2ZU9wZXJhdGlvbnM7Cisg
ICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRUb0Jhc2VPcGVyYXRpb247CiB9OwogCiBzdHJ1Y3Qg
UHV0VG9CYXNlT3BlcmF0aW9uRGF0YSB7Ci0gICAgdW5zaWduZWQgcHV0VG9CYXNlT3BlcmF0aW9u
SW5kZXg7CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBwdXRUb0Jhc2VPcGVyYXRpb247CiB9Owog
CiBlbnVtIEFkZFNwZWN1bGF0aW9uTW9kZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggOGNjNzNkNmZjNGRlYjdkNjMyMDU0NTA1YzA4ODk1
OTkxNTY3YjhhYS4uNGJhMzJlN2ZhOGNhNzhhNGY2NDNlZWVlMjFmOGZlNGQ1NDA2MWVlZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNTY5
LDE2ICs1NjksNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAmbV9qaXQuY29kZUJsb2NrKCkt
PmlkZW50aWZpZXIoaW5kZXgpOwogICAgIH0KIAotICAgIFJlc29sdmVPcGVyYXRpb25zKiByZXNv
bHZlT3BlcmF0aW9ucyh1bnNpZ25lZCBpbmRleCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX2pp
dC5jb2RlQmxvY2soKS0+cmVzb2x2ZU9wZXJhdGlvbnMoaW5kZXgpOwotICAgIH0KLQotICAgIFB1
dFRvQmFzZU9wZXJhdGlvbiogcHV0VG9CYXNlT3BlcmF0aW9uKHVuc2lnbmVkIGluZGV4KQotICAg
IHsKLSAgICAgICAgcmV0dXJuIG1faml0LmNvZGVCbG9jaygpLT5wdXRUb0Jhc2VPcGVyYXRpb24o
aW5kZXgpOwotICAgIH0KLQogICAgIC8vIFNwaWxsIGFsbCBWaXJ0dWFsUmVnaXN0ZXJzIGJhY2sg
dG8gdGhlIEpTU3RhY2suCiAgICAgdm9pZCBmbHVzaFJlZ2lzdGVycygpCiAgICAgewpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
aW5kZXggYWNkZjliMGFjN2FlMTM0ZmU0NTFkM2QyNTkyZWUxMGM5OGIzNTlmMy4uMTQwNmI5YTk4
MWI1ODMyNDEwMTc4OWZhZmMxOGQ4YTIxZmI0YzIyMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC00NzEyLDcgKzQ3
MTIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAg
IEdQUlJlc3VsdCByZXN1bHRQYXlsb2FkKHRoaXMpOwogICAgICAgICBHUFJSZXN1bHQyIHJlc3Vs
dFRhZyh0aGlzKTsKICAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbkRhdGEmIGRhdGEgPSBtX2ppdC5n
cmFwaCgpLm1fcmVzb2x2ZU9wZXJhdGlvbnNEYXRhW25vZGUtPnJlc29sdmVPcGVyYXRpb25zRGF0
YUluZGV4KCldOwotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlc29sdmUsIHJlc3Vs
dFRhZy5ncHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIoKSwgaWRlbnRpZmllcihkYXRhLmlkZW50aWZp
ZXJOdW1iZXIpLCByZXNvbHZlT3BlcmF0aW9ucyhkYXRhLnJlc29sdmVPcGVyYXRpb25zSW5kZXgp
KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZXNvbHZlLCByZXN1bHRUYWcuZ3By
KCksIHJlc3VsdFBheWxvYWQuZ3ByKCksIGlkZW50aWZpZXIoZGF0YS5pZGVudGlmaWVyTnVtYmVy
KSwgZGF0YS5yZXNvbHZlT3BlcmF0aW9ucyk7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0
VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBub2RlKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpAQCAtNDcyMiw3ICs0NzIyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICBHUFJSZXN1bHQgcmVzdWx0UGF5bG9hZCh0aGlzKTsKICAgICAg
ICAgR1BSUmVzdWx0MiByZXN1bHRUYWcodGhpcyk7CiAgICAgICAgIFJlc29sdmVPcGVyYXRpb25E
YXRhJiBkYXRhID0gbV9qaXQuZ3JhcGgoKS5tX3Jlc29sdmVPcGVyYXRpb25zRGF0YVtub2RlLT5y
ZXNvbHZlT3BlcmF0aW9uc0RhdGFJbmRleCgpXTsKLSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25SZXNvbHZlQmFzZSwgcmVzdWx0VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBp
ZGVudGlmaWVyKGRhdGEuaWRlbnRpZmllck51bWJlciksIHJlc29sdmVPcGVyYXRpb25zKGRhdGEu
cmVzb2x2ZU9wZXJhdGlvbnNJbmRleCksIHB1dFRvQmFzZU9wZXJhdGlvbihkYXRhLnB1dFRvQmFz
ZU9wZXJhdGlvbkluZGV4KSk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVzb2x2
ZUJhc2UsIHJlc3VsdFRhZy5ncHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIoKSwgaWRlbnRpZmllcihk
YXRhLmlkZW50aWZpZXJOdW1iZXIpLCBkYXRhLnJlc29sdmVPcGVyYXRpb25zLCBkYXRhLnB1dFRv
QmFzZU9wZXJhdGlvbik7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0VGFnLmdwcigpLCBy
ZXN1bHRQYXlsb2FkLmdwcigpLCBub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNDcz
Miw3ICs0NzMyLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQog
ICAgICAgICBHUFJSZXN1bHQgcmVzdWx0UGF5bG9hZCh0aGlzKTsKICAgICAgICAgR1BSUmVzdWx0
MiByZXN1bHRUYWcodGhpcyk7CiAgICAgICAgIFJlc29sdmVPcGVyYXRpb25EYXRhJiBkYXRhID0g
bV9qaXQuZ3JhcGgoKS5tX3Jlc29sdmVPcGVyYXRpb25zRGF0YVtub2RlLT5yZXNvbHZlT3BlcmF0
aW9uc0RhdGFJbmRleCgpXTsKLSAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25SZXNvbHZl
QmFzZVN0cmljdFB1dCwgcmVzdWx0VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBpZGVu
dGlmaWVyKGRhdGEuaWRlbnRpZmllck51bWJlciksIHJlc29sdmVPcGVyYXRpb25zKGRhdGEucmVz
b2x2ZU9wZXJhdGlvbnNJbmRleCksIHB1dFRvQmFzZU9wZXJhdGlvbihkYXRhLnB1dFRvQmFzZU9w
ZXJhdGlvbkluZGV4KSk7CisgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVzb2x2ZUJh
c2VTdHJpY3RQdXQsIHJlc3VsdFRhZy5ncHIoKSwgcmVzdWx0UGF5bG9hZC5ncHIoKSwgaWRlbnRp
ZmllcihkYXRhLmlkZW50aWZpZXJOdW1iZXIpLCBkYXRhLnJlc29sdmVPcGVyYXRpb25zLCBkYXRh
LnB1dFRvQmFzZU9wZXJhdGlvbik7CiAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0VGFnLmdw
cigpLCByZXN1bHRQYXlsb2FkLmdwcigpLCBub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpA
QCAtNDc0OSw3ICs0NzQ5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICBHUFJSZWcgcmVzdWx0UGF5bG9hZEdQUiA9IHJlc3VsdFBheWxvYWQuZ3By
KCk7CiAKICAgICAgICAgUmVzb2x2ZUdsb2JhbERhdGEmIGRhdGEgPSBtX2ppdC5ncmFwaCgpLm1f
cmVzb2x2ZUdsb2JhbERhdGFbbm9kZS0+cmVzb2x2ZUdsb2JhbERhdGFJbmRleCgpXTsKLSAgICAg
ICAgUmVzb2x2ZU9wZXJhdGlvbiogcmVzb2x2ZU9wZXJhdGlvbkFkZHJlc3MgPSAmKG1faml0LmNv
ZGVCbG9jaygpLT5yZXNvbHZlT3BlcmF0aW9ucyhkYXRhLnJlc29sdmVPcGVyYXRpb25zSW5kZXgp
LT5kYXRhKClbZGF0YS5yZXNvbHZlUHJvcGVydHlJbmRleF0pOworICAgICAgICBSZXNvbHZlT3Bl
cmF0aW9uKiByZXNvbHZlT3BlcmF0aW9uQWRkcmVzcyA9ICYoZGF0YS5yZXNvbHZlT3BlcmF0aW9u
cy0+ZGF0YSgpW2RhdGEucmVzb2x2ZVByb3BlcnR5SW5kZXhdKTsKIAogICAgICAgICAvLyBDaGVj
ayBTdHJ1Y3R1cmUgb2YgZ2xvYmFsIG9iamVjdAogICAgICAgICBtX2ppdC5tb3ZlKEpJVENvbXBp
bGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbE9iamVjdEZvcihub2RlLT5jb2RlT3JpZ2lu
KSksIGdsb2JhbE9iamVjdEdQUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCAzNzU0ZWI2ODAxYTdkZDVjZDkzOWEwMzhjMWEw
NDI1MGZjYWZhMDZhLi5lZGVhZTlhZDg1NjdjYTk0YWI2Mjc1YzQwNDJjZTE5ZGZhOWMwM2RkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5j
cHAKQEAgLTQ2MjIsNyArNDYyMiw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgR1BSUmVzdWx0IHJl
c3VsdCh0aGlzKTsKICAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbkRhdGEmIGRhdGEgPSBtX2ppdC5n
cmFwaCgpLm1fcmVzb2x2ZU9wZXJhdGlvbnNEYXRhW25vZGUtPnJlc29sdmVPcGVyYXRpb25zRGF0
YUluZGV4KCldOwotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlc29sdmUsIHJlc3Vs
dC5ncHIoKSwgaWRlbnRpZmllcihkYXRhLmlkZW50aWZpZXJOdW1iZXIpLCByZXNvbHZlT3BlcmF0
aW9ucyhkYXRhLnJlc29sdmVPcGVyYXRpb25zSW5kZXgpKTsKKyAgICAgICAgY2FsbE9wZXJhdGlv
bihvcGVyYXRpb25SZXNvbHZlLCByZXN1bHQuZ3ByKCksIGlkZW50aWZpZXIoZGF0YS5pZGVudGlm
aWVyTnVtYmVyKSwgZGF0YS5yZXNvbHZlT3BlcmF0aW9ucyk7CiAgICAgICAgIGpzVmFsdWVSZXN1
bHQocmVzdWx0LmdwcigpLCBub2RlKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNDYzMSw3
ICs0NjMxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICBmbHVzaFJlZ2lzdGVycygpOwogICAgICAgICBHUFJSZXN1bHQgcmVzdWx0KHRoaXMpOwog
ICAgICAgICBSZXNvbHZlT3BlcmF0aW9uRGF0YSYgZGF0YSA9IG1faml0LmdyYXBoKCkubV9yZXNv
bHZlT3BlcmF0aW9uc0RhdGFbbm9kZS0+cmVzb2x2ZU9wZXJhdGlvbnNEYXRhSW5kZXgoKV07Ci0g
ICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uUmVzb2x2ZUJhc2UsIHJlc3VsdC5ncHIoKSwg
aWRlbnRpZmllcihkYXRhLmlkZW50aWZpZXJOdW1iZXIpLCByZXNvbHZlT3BlcmF0aW9ucyhkYXRh
LnJlc29sdmVPcGVyYXRpb25zSW5kZXgpLCBwdXRUb0Jhc2VPcGVyYXRpb24oZGF0YS5wdXRUb0Jh
c2VPcGVyYXRpb25JbmRleCkpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlc29s
dmVCYXNlLCByZXN1bHQuZ3ByKCksIGlkZW50aWZpZXIoZGF0YS5pZGVudGlmaWVyTnVtYmVyKSwg
ZGF0YS5yZXNvbHZlT3BlcmF0aW9ucywgZGF0YS5wdXRUb0Jhc2VPcGVyYXRpb24pOwogICAgICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdC5ncHIoKSwgbm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IH0KQEAgLTQ2NDAsNyArNDY0MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9k
ZSogbm9kZSkKICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKICAgICAgICAgR1BSUmVzdWx0IHJl
c3VsdCh0aGlzKTsKICAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbkRhdGEmIGRhdGEgPSBtX2ppdC5n
cmFwaCgpLm1fcmVzb2x2ZU9wZXJhdGlvbnNEYXRhW25vZGUtPnJlc29sdmVPcGVyYXRpb25zRGF0
YUluZGV4KCldOwotICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblJlc29sdmVCYXNlU3Ry
aWN0UHV0LCByZXN1bHQuZ3ByKCksIGlkZW50aWZpZXIoZGF0YS5pZGVudGlmaWVyTnVtYmVyKSwg
cmVzb2x2ZU9wZXJhdGlvbnMoZGF0YS5yZXNvbHZlT3BlcmF0aW9uc0luZGV4KSwgcHV0VG9CYXNl
T3BlcmF0aW9uKGRhdGEucHV0VG9CYXNlT3BlcmF0aW9uSW5kZXgpKTsKKyAgICAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25SZXNvbHZlQmFzZVN0cmljdFB1dCwgcmVzdWx0LmdwcigpLCBpZGVu
dGlmaWVyKGRhdGEuaWRlbnRpZmllck51bWJlciksIGRhdGEucmVzb2x2ZU9wZXJhdGlvbnMsIGRh
dGEucHV0VG9CYXNlT3BlcmF0aW9uKTsKICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3By
KCksIG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC00NjU1LDcgKzQ2NTUsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIEdQUlJlZyBy
ZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAKICAgICAgICAgUmVzb2x2ZUdsb2JhbERhdGEmIGRh
dGEgPSBtX2ppdC5ncmFwaCgpLm1fcmVzb2x2ZUdsb2JhbERhdGFbbm9kZS0+cmVzb2x2ZUdsb2Jh
bERhdGFJbmRleCgpXTsKLSAgICAgICAgUmVzb2x2ZU9wZXJhdGlvbiogcmVzb2x2ZU9wZXJhdGlv
bkFkZHJlc3MgPSAmKG1faml0LmNvZGVCbG9jaygpLT5yZXNvbHZlT3BlcmF0aW9ucyhkYXRhLnJl
c29sdmVPcGVyYXRpb25zSW5kZXgpLT5kYXRhKClbZGF0YS5yZXNvbHZlUHJvcGVydHlJbmRleF0p
OworICAgICAgICBSZXNvbHZlT3BlcmF0aW9uKiByZXNvbHZlT3BlcmF0aW9uQWRkcmVzcyA9ICYo
ZGF0YS5yZXNvbHZlT3BlcmF0aW9ucy0+ZGF0YSgpW2RhdGEucmVzb2x2ZVByb3BlcnR5SW5kZXhd
KTsKIAogICAgICAgICAvLyBDaGVjayBTdHJ1Y3R1cmUgb2YgZ2xvYmFsIG9iamVjdAogICAgICAg
ICBtX2ppdC5tb3ZlKEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tUHRyKG1faml0Lmdsb2JhbE9iamVj
dEZvcihub2RlLT5jb2RlT3JpZ2luKSksIGdsb2JhbE9iamVjdEdQUik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA0YWM4MDM3MmIyYzkyZGU2YTJhNDZhOWUz
NWI5MjMxNDNlOTc2NTViLi4yNTljNmYyYWQ1ZWU2MDE2Y2EzOTZmOWZjNGM5NWUwOTU5YjczMTQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKQEAgLTEyMzAsNyAr
MTIzMCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3B1dF90b19iYXNlKEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgaW50IGlkID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3Bl
cmFuZDsKICAgICBpbnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwog
Ci0gICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBvcGVyYXRpb24gPSBtX2NvZGVCbG9jay0+cHV0VG9C
YXNlT3BlcmF0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOworICAgIFB1dFRv
QmFzZU9wZXJhdGlvbiogb3BlcmF0aW9uID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUucHV0VG9C
YXNlT3BlcmF0aW9uOwogICAgIHN3aXRjaCAob3BlcmF0aW9uLT5tX2tpbmQpIHsKICAgICBjYXNl
IFB1dFRvQmFzZU9wZXJhdGlvbjo6R2xvYmFsVmFyaWFibGVQdXRDaGVja2VkOgogICAgICAgICBh
ZGRTbG93Q2FzZShicmFuY2hUZXN0OChOb25aZXJvLCBBYnNvbHV0ZUFkZHJlc3Mob3BlcmF0aW9u
LT5tX3ByZWRpY2F0ZVBvaW50ZXIpKSk7CkBAIC0xNTIyLDQyICsxNTIyLDQyIEBAIHZvaWQgSklU
OjplbWl0U2xvd19saW5rX3Jlc29sdmVfb3BlcmF0aW9ucyhSZXNvbHZlT3BlcmF0aW9ucyogcmVz
b2x2ZU9wZXJhdGlvbnMsCiAKIHZvaWQgSklUOjplbWl0X29wX3Jlc29sdmUoSW5zdHJ1Y3Rpb24q
IGN1cnJlbnRJbnN0cnVjdGlvbikKIHsKLSAgICBSZXNvbHZlT3BlcmF0aW9ucyogb3BlcmF0aW9u
cyA9IG1fY29kZUJsb2NrLT5yZXNvbHZlT3BlcmF0aW9ucyhjdXJyZW50SW5zdHJ1Y3Rpb25bM10u
dS5vcGVyYW5kKTsKKyAgICBSZXNvbHZlT3BlcmF0aW9ucyogb3BlcmF0aW9ucyA9IGN1cnJlbnRJ
bnN0cnVjdGlvblszXS51LnJlc29sdmVPcGVyYXRpb25zOwogICAgIGludCBkc3QgPSBjdXJyZW50
SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGVtaXRfcmVzb2x2ZV9vcGVyYXRpb25zKG9w
ZXJhdGlvbnMsIDAsICZkc3QpOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfcmVzb2x2ZShJ
bnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0
ZXJhdG9yJiBpdGVyKQogewotICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gbV9j
b2RlQmxvY2stPnJlc29sdmVPcGVyYXRpb25zKGN1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJh
bmQpOworICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gY3VycmVudEluc3RydWN0
aW9uWzNdLnUucmVzb2x2ZU9wZXJhdGlvbnM7CiAgICAgZW1pdFNsb3dfbGlua19yZXNvbHZlX29w
ZXJhdGlvbnMob3BlcmF0aW9ucywgaXRlcik7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhp
cywgY3RpX29wX3Jlc29sdmUpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1Q
dHIoJm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJh
bmQpKSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9j
ay0+cmVzb2x2ZU9wZXJhdGlvbnMoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpKTsK
KyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKGN1cnJlbnRJbnN0cnVjdGlv
blszXS51LnJlc29sdmVPcGVyYXRpb25zKSk7CiAgICAgc3R1YkNhbGwuY2FsbFdpdGhWYWx1ZVBy
b2ZpbGluZyhjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKTsKIH0KIAogdm9pZCBKSVQ6
OmVtaXRfb3BfcmVzb2x2ZV9iYXNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7
Ci0gICAgUmVzb2x2ZU9wZXJhdGlvbnMqIG9wZXJhdGlvbnMgPSBtX2NvZGVCbG9jay0+cmVzb2x2
ZU9wZXJhdGlvbnMoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCk7CisgICAgUmVzb2x2
ZU9wZXJhdGlvbnMqIG9wZXJhdGlvbnMgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5yZXNvbHZl
T3BlcmF0aW9uczsKICAgICBpbnQgZHN0ID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKICAgICBlbWl0X3Jlc29sdmVfb3BlcmF0aW9ucyhvcGVyYXRpb25zLCAmZHN0LCAwKTsKIH0K
IAogdm9pZCBKSVQ6OmVtaXRTbG93X29wX3Jlc29sdmVfYmFzZShJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewot
ICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gbV9jb2RlQmxvY2stPnJlc29sdmVP
cGVyYXRpb25zKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOworICAgIFJlc29sdmVP
cGVyYXRpb25zKiBvcGVyYXRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUucmVzb2x2ZU9w
ZXJhdGlvbnM7CiAgICAgZW1pdFNsb3dfbGlua19yZXNvbHZlX29wZXJhdGlvbnMob3BlcmF0aW9u
cywgaXRlcik7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZCA/IGN0aV9vcF9yZXNvbHZlX2Jhc2Vfc3RyaWN0X3B1dCA6IGN0aV9v
cF9yZXNvbHZlX2Jhc2UpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1QdHIo
Jm1fY29kZUJsb2NrLT5pZGVudGlmaWVyKGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQp
KSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+
cmVzb2x2ZU9wZXJhdGlvbnMoY3VycmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkpKTsKLSAg
ICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrLT5wdXRUb0Jh
c2VPcGVyYXRpb24oY3VycmVudEluc3RydWN0aW9uWzVdLnUub3BlcmFuZCkpKTsKKyAgICBzdHVi
Q2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LnJl
c29sdmVPcGVyYXRpb25zKSk7CisgICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbVB0
cihjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5wdXRUb0Jhc2VPcGVyYXRpb24pKTsKICAgICBzdHVi
Q2FsbC5jYWxsV2l0aFZhbHVlUHJvZmlsaW5nKGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dpdGhfYmFzZShJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRp
b25zID0gbV9jb2RlQmxvY2stPnJlc29sdmVPcGVyYXRpb25zKGN1cnJlbnRJbnN0cnVjdGlvbls0
XS51Lm9wZXJhbmQpOworICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gY3VycmVu
dEluc3RydWN0aW9uWzRdLnUucmVzb2x2ZU9wZXJhdGlvbnM7CiAgICAgaW50IGJhc2UgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgZW1pdF9yZXNvbHZlX29wZXJhdGlvbnMob3BlcmF0
aW9ucywgJmJhc2UsICZ2YWx1ZSk7CkBAIC0xNTY1LDE5ICsxNTY1LDE5IEBAIHZvaWQgSklUOjpl
bWl0X29wX3Jlc29sdmVfd2l0aF9iYXNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24p
CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9yZXNvbHZlX3dpdGhfYmFzZShJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQogewotICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gbV9jb2RlQmxvY2stPnJl
c29sdmVPcGVyYXRpb25zKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOworICAgIFJl
c29sdmVPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUucmVz
b2x2ZU9wZXJhdGlvbnM7CiAgICAgZW1pdFNsb3dfbGlua19yZXNvbHZlX29wZXJhdGlvbnMob3Bl
cmF0aW9ucywgaXRlcik7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX3Jl
c29sdmVfd2l0aF9iYXNlKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRy
KCZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5k
KSkpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW0zMihjdXJyZW50SW5zdHJ1
Y3Rpb25bMV0udS5vcGVyYW5kKSk7Ci0gICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZElt
bVB0cihtX2NvZGVCbG9jay0+cmVzb2x2ZU9wZXJhdGlvbnMoY3VycmVudEluc3RydWN0aW9uWzRd
LnUub3BlcmFuZCkpKTsKLSAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKG1f
Y29kZUJsb2NrLT5wdXRUb0Jhc2VPcGVyYXRpb24oY3VycmVudEluc3RydWN0aW9uWzVdLnUub3Bl
cmFuZCkpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKGN1cnJlbnRJ
bnN0cnVjdGlvbls0XS51LnJlc29sdmVPcGVyYXRpb25zKSk7CisgICAgc3R1YkNhbGwuYWRkQXJn
dW1lbnQoVHJ1c3RlZEltbVB0cihjdXJyZW50SW5zdHJ1Y3Rpb25bNV0udS5wdXRUb0Jhc2VPcGVy
YXRpb24pKTsKICAgICBzdHViQ2FsbC5jYWxsV2l0aFZhbHVlUHJvZmlsaW5nKGN1cnJlbnRJbnN0
cnVjdGlvblsyXS51Lm9wZXJhbmQpOwogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9yZXNvbHZlX3dp
dGhfdGhpcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogewotICAgIFJlc29sdmVP
cGVyYXRpb25zKiBvcGVyYXRpb25zID0gbV9jb2RlQmxvY2stPnJlc29sdmVPcGVyYXRpb25zKGN1
cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOworICAgIFJlc29sdmVPcGVyYXRpb25zKiBv
cGVyYXRpb25zID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUucmVzb2x2ZU9wZXJhdGlvbnM7CiAg
ICAgaW50IGJhc2UgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwogICAgIGludCB2
YWx1ZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsyXS51Lm9wZXJhbmQ7CiAgICAgZW1pdF9yZXNvbHZl
X29wZXJhdGlvbnMob3BlcmF0aW9ucywgJmJhc2UsICZ2YWx1ZSk7CkBAIC0xNTg1LDEyICsxNTg1
LDEyIEBAIHZvaWQgSklUOjplbWl0X29wX3Jlc29sdmVfd2l0aF90aGlzKEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9yZXNvbHZlX3dpdGhf
dGhpcyhJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRy
eT46Oml0ZXJhdG9yJiBpdGVyKQogewotICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRpb25z
ID0gbV9jb2RlQmxvY2stPnJlc29sdmVPcGVyYXRpb25zKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51
Lm9wZXJhbmQpOworICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gY3VycmVudElu
c3RydWN0aW9uWzRdLnUucmVzb2x2ZU9wZXJhdGlvbnM7CiAgICAgZW1pdFNsb3dfbGlua19yZXNv
bHZlX29wZXJhdGlvbnMob3BlcmF0aW9ucywgaXRlcik7CiAgICAgSklUU3R1YkNhbGwgc3R1YkNh
bGwodGhpcywgY3RpX29wX3Jlc29sdmVfd2l0aF90aGlzKTsKICAgICBzdHViQ2FsbC5hZGRBcmd1
bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1
Y3Rpb25bM10udS5vcGVyYW5kKSkpOwogICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJ
bW0zMihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSk7Ci0gICAgc3R1YkNhbGwuYWRk
QXJndW1lbnQoVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+cmVzb2x2ZU9wZXJhdGlvbnMoY3Vy
cmVudEluc3RydWN0aW9uWzRdLnUub3BlcmFuZCkpKTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVu
dChUcnVzdGVkSW1tUHRyKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51LnJlc29sdmVPcGVyYXRpb25z
KSk7CiAgICAgc3R1YkNhbGwuY2FsbFdpdGhWYWx1ZVByb2ZpbGluZyhjdXJyZW50SW5zdHJ1Y3Rp
b25bMl0udS5vcGVyYW5kKTsKIH0KIApAQCAtMTU5OSw5ICsxNTk5LDggQEAgdm9pZCBKSVQ6OmVt
aXRTbG93X29wX3B1dF90b19iYXNlKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZl
Y3RvcjxTbG93Q2EKICAgICBpbnQgYmFzZSA9IGN1cnJlbnRJbnN0cnVjdGlvblsxXS51Lm9wZXJh
bmQ7CiAgICAgaW50IGlkID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICBp
bnQgdmFsdWUgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwotICAgIGludCBvcGVy
YXRpb24gPSBjdXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5vcGVyYW5kOwogCi0gICAgUHV0VG9CYXNl
T3BlcmF0aW9uKiBwdXRUb0Jhc2VPcGVyYXRpb24gPSBtX2NvZGVCbG9jay0+cHV0VG9CYXNlT3Bl
cmF0aW9uKGN1cnJlbnRJbnN0cnVjdGlvbls0XS51Lm9wZXJhbmQpOworICAgIFB1dFRvQmFzZU9w
ZXJhdGlvbiogcHV0VG9CYXNlT3BlcmF0aW9uID0gY3VycmVudEluc3RydWN0aW9uWzRdLnUucHV0
VG9CYXNlT3BlcmF0aW9uOwogICAgIHN3aXRjaCAocHV0VG9CYXNlT3BlcmF0aW9uLT5tX2tpbmQp
IHsKICAgICBjYXNlIFB1dFRvQmFzZU9wZXJhdGlvbjo6VmFyaWFibGVQdXQ6CiAgICAgICAgIHJl
dHVybjsKQEAgLTE2MjksNyArMTYyOCw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9wdXRfdG9f
YmFzZShJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0NhCiAgICAg
c3R1YkNhbGwuYWRkQXJndW1lbnQoVHJ1c3RlZEltbTMyKGJhc2UpKTsKICAgICBzdHViQ2FsbC5h
ZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKCZtX2NvZGVCbG9jay0+aWRlbnRpZmllcihpZCkpKTsK
ICAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tMzIodmFsdWUpKTsKLSAgICBzdHVi
Q2FsbC5hZGRBcmd1bWVudChUcnVzdGVkSW1tUHRyKG1fY29kZUJsb2NrLT5wdXRUb0Jhc2VPcGVy
YXRpb24ob3BlcmF0aW9uKSkpOworICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFRydXN0ZWRJbW1Q
dHIocHV0VG9CYXNlT3BlcmF0aW9uKSk7CiAgICAgc3R1YkNhbGwuY2FsbCgpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggMzg5YjRj
Yjc1MDdlNzliOTc2MzdlMzQ1NTViZDE0MmUwNmM5MjFkZi4uODQxMWViOTIxNjRmN2I2NzQ1NmNl
M2JhZjk1NzMzNDQwNDIwNjMxOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
T3Bjb2RlczMyXzY0LmNwcApAQCAtMTMyNSw3ICsxMzI1LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
cHV0X3RvX2Jhc2UoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBpbnQgaWQg
PSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwogICAgIGludCB2YWx1ZSA9IGN1cnJl
bnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAKLSAgICBQdXRUb0Jhc2VPcGVyYXRpb24qIG9w
ZXJhdGlvbiA9IG1fY29kZUJsb2NrLT5wdXRUb0Jhc2VPcGVyYXRpb24oY3VycmVudEluc3RydWN0
aW9uWzRdLnUub3BlcmFuZCk7CisgICAgUHV0VG9CYXNlT3BlcmF0aW9uKiBvcGVyYXRpb24gPSBj
dXJyZW50SW5zdHJ1Y3Rpb25bNF0udS5wdXRUb0Jhc2VPcGVyYXRpb247CiAKIAogICAgIHN3aXRj
aCAob3BlcmF0aW9uLT5tX2tpbmQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQv
TExJbnRTbG93UGF0aHMuY3BwCmluZGV4IDk3YTMwMjc0ZDE3NTI1MzczMjkzY2VlNWFmMDBhMDg3
NmRhMWZmY2YuLmM2MzBjYmM5ODk1MmY0NTMxMzc2NmRkNDZhNDUwNjA0MGZmYWI1ZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludFNsb3dQYXRocy5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xMSW50U2xvd1BhdGhzLmNwcApAQCAtNzg3
LDEwICs3ODcsOSBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcmVzb2x2ZSkKIHsK
ICAgICBMTElOVF9CRUdJTigpOwogICAgIElkZW50aWZpZXIgaWRlbnQgPSBleGVjLT5jb2RlQmxv
Y2soKS0+aWRlbnRpZmllcihwY1syXS51Lm9wZXJhbmQpOwotICAgIFJlc29sdmVPcGVyYXRpb25z
KiBvcGVyYXRpb25zID0gZXhlYy0+Y29kZUJsb2NrKCktPnJlc29sdmVPcGVyYXRpb25zKHBjWzNd
LnUub3BlcmFuZCk7CisgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIG9wZXJhdGlvbnMgPSBwY1szXS51
LnJlc29sdmVPcGVyYXRpb25zOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNTY29wZTo6cmVzb2x2
ZShleGVjLCBpZGVudCwgb3BlcmF0aW9ucyk7CiAgICAgQVNTRVJUKG9wZXJhdGlvbnMtPnNpemUo
KSk7Ci0gICAgQVNTRVJUKG9wZXJhdGlvbnMgPT0gZXhlYy0+Y29kZUJsb2NrKCktPnJlc29sdmVP
cGVyYXRpb25zKHBjWzNdLnUub3BlcmFuZCkpOwogICAgIHN3aXRjaCAob3BlcmF0aW9ucy0+ZGF0
YSgpWzBdLm1fb3BlcmF0aW9uKSB7CiAgICAgY2FzZSBSZXNvbHZlT3BlcmF0aW9uOjpHZXRBbmRS
ZXR1cm5HbG9iYWxQcm9wZXJ0eToKICAgICAgICAgcGNbMF0udS5vcGNvZGUgPSBMTEludDo6Z2V0
T3Bjb2RlKGxsaW50X29wX3Jlc29sdmVfZ2xvYmFsX3Byb3BlcnR5KTsKQEAgLTgyMCw3ICs4MTks
NyBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfcmVzb2x2ZSkKIExMSU5UX1NMT1df
UEFUSF9ERUNMKHNsb3dfcGF0aF9wdXRfdG9fYmFzZSkKIHsKICAgICBMTElOVF9CRUdJTigpOwot
ICAgIFB1dFRvQmFzZU9wZXJhdGlvbiogb3BlcmF0aW9uID0gZXhlYy0+Y29kZUJsb2NrKCktPnB1
dFRvQmFzZU9wZXJhdGlvbihwY1s0XS51Lm9wZXJhbmQpOworICAgIFB1dFRvQmFzZU9wZXJhdGlv
biogb3BlcmF0aW9uID0gcGNbNF0udS5wdXRUb0Jhc2VPcGVyYXRpb247CiAgICAgSlNTY29wZTo6
cmVzb2x2ZVB1dChleGVjLCBMTElOVF9PUF9DKDEpLmpzVmFsdWUoKSwgZXhlYy0+Y29kZUJsb2Nr
KCktPmlkZW50aWZpZXIocGNbMl0udS5vcGVyYW5kKSwgTExJTlRfT1BfQygzKS5qc1ZhbHVlKCks
IG9wZXJhdGlvbik7CiAgICAgc3dpdGNoIChvcGVyYXRpb24tPm1fa2luZCkgewogICAgIGNhc2Ug
UHV0VG9CYXNlT3BlcmF0aW9uOjpWYXJpYWJsZVB1dDoKQEAgLTgzNywxNCArODM2LDE0IEBAIExM
SU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9yZXNvbHZlX2Jhc2UpCiB7CiAgICAgTExJTlRf
QkVHSU4oKTsKICAgICBJZGVudGlmaWVyJiBpZGVudCA9IGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVu
dGlmaWVyKHBjWzJdLnUub3BlcmFuZCk7Ci0gICAgUmVzb2x2ZU9wZXJhdGlvbnMqIG9wZXJhdGlv
bnMgPSBleGVjLT5jb2RlQmxvY2soKS0+cmVzb2x2ZU9wZXJhdGlvbnMocGNbNF0udS5vcGVyYW5k
KTsKKyAgICBSZXNvbHZlT3BlcmF0aW9ucyogb3BlcmF0aW9ucyA9IHBjWzRdLnUucmVzb2x2ZU9w
ZXJhdGlvbnM7CiAgICAgSlNWYWx1ZSByZXN1bHQ7CiAgICAgaWYgKHBjWzNdLnUub3BlcmFuZCkg
ewotICAgICAgICByZXN1bHQgPSBKU1Njb3BlOjpyZXNvbHZlQmFzZShleGVjLCBpZGVudCwgdHJ1
ZSwgb3BlcmF0aW9ucywgZXhlYy0+Y29kZUJsb2NrKCktPnB1dFRvQmFzZU9wZXJhdGlvbihwY1s1
XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgcmVzdWx0ID0gSlNTY29wZTo6cmVzb2x2ZUJhc2UoZXhl
YywgaWRlbnQsIHRydWUsIG9wZXJhdGlvbnMsIHBjWzVdLnUucHV0VG9CYXNlT3BlcmF0aW9uKTsK
ICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICBMTElOVF9USFJPVyhnbG9iYWxEYXRh
LmV4Y2VwdGlvbik7CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc3VsdCA9IEpTU2NvcGU6OnJlc29s
dmVCYXNlKGV4ZWMsIGlkZW50LCBmYWxzZSwgb3BlcmF0aW9ucywgZXhlYy0+Y29kZUJsb2NrKCkt
PnB1dFRvQmFzZU9wZXJhdGlvbihwY1s1XS51Lm9wZXJhbmQpKTsKKyAgICAgICAgcmVzdWx0ID0g
SlNTY29wZTo6cmVzb2x2ZUJhc2UoZXhlYywgaWRlbnQsIGZhbHNlLCBvcGVyYXRpb25zLCBwY1s1
XS51LnB1dFRvQmFzZU9wZXJhdGlvbik7CiAgICAgQVNTRVJUKG9wZXJhdGlvbnMtPnNpemUoKSk7
CiAgICAgc3dpdGNoIChvcGVyYXRpb25zLT5kYXRhKClbMF0ubV9vcGVyYXRpb24pIHsKICAgICBj
YXNlIFJlc29sdmVPcGVyYXRpb246OlJldHVybkdsb2JhbE9iamVjdEFzQmFzZToKQEAgLTg4MCw4
ICs4NzksOCBAQCBMTElOVF9TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfZW5zdXJlX3Byb3BlcnR5
X2V4aXN0cykKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9yZXNvbHZlX3dpdGhfYmFz
ZSkKIHsKICAgICBMTElOVF9CRUdJTigpOwotICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRp
b25zID0gZXhlYy0+Y29kZUJsb2NrKCktPnJlc29sdmVPcGVyYXRpb25zKHBjWzRdLnUub3BlcmFu
ZCk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBKU1Njb3BlOjpyZXNvbHZlV2l0aEJhc2UoZXhlYywg
ZXhlYy0+Y29kZUJsb2NrKCktPmlkZW50aWZpZXIocGNbM10udS5vcGVyYW5kKSwgJkxMSU5UX09Q
KDEpLCBvcGVyYXRpb25zLCBleGVjLT5jb2RlQmxvY2soKS0+cHV0VG9CYXNlT3BlcmF0aW9uKHBj
WzVdLnUub3BlcmFuZCkpOworICAgIFJlc29sdmVPcGVyYXRpb25zKiBvcGVyYXRpb25zID0gcGNb
NF0udS5yZXNvbHZlT3BlcmF0aW9uczsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IEpTU2NvcGU6OnJl
c29sdmVXaXRoQmFzZShleGVjLCBleGVjLT5jb2RlQmxvY2soKS0+aWRlbnRpZmllcihwY1szXS51
Lm9wZXJhbmQpLCAmTExJTlRfT1AoMSksIG9wZXJhdGlvbnMsIHBjWzVdLnUucHV0VG9CYXNlT3Bl
cmF0aW9uKTsKICAgICBMTElOVF9DSEVDS19FWENFUFRJT04oKTsKICAgICBMTElOVF9PUCgyKSA9
IHJlc3VsdDsKICAgICBMTElOVF9QUk9GSUxFX1ZBTFVFKG9wX3Jlc29sdmVfd2l0aF9iYXNlLCBy
ZXN1bHQpOwpAQCAtODkxLDcgKzg5MCw3IEBAIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0
aF9yZXNvbHZlX3dpdGhfYmFzZSkKIExMSU5UX1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9yZXNv
bHZlX3dpdGhfdGhpcykKIHsKICAgICBMTElOVF9CRUdJTigpOwotICAgIFJlc29sdmVPcGVyYXRp
b25zKiBvcGVyYXRpb25zID0gZXhlYy0+Y29kZUJsb2NrKCktPnJlc29sdmVPcGVyYXRpb25zKHBj
WzRdLnUub3BlcmFuZCk7CisgICAgUmVzb2x2ZU9wZXJhdGlvbnMqIG9wZXJhdGlvbnMgPSBwY1s0
XS51LnJlc29sdmVPcGVyYXRpb25zOwogICAgIEpTVmFsdWUgcmVzdWx0ID0gSlNTY29wZTo6cmVz
b2x2ZVdpdGhUaGlzKGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHBjWzNdLnUu
b3BlcmFuZCksICZMTElOVF9PUCgxKSwgb3BlcmF0aW9ucyk7CiAgICAgTExJTlRfQ0hFQ0tfRVhD
RVBUSU9OKCk7CiAgICAgTExJTlRfT1AoMikgPSByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20gYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KaW5kZXggNjRkMjI5NmE2
NTUwYmVjMGQ0ZTgxOTY3OWY2NTM2ODcyNWZhODkzYy4uZWQwYzQ5ZDE1ZTQ2NWMxZGZjMjdjNGIy
MjUwY2ViMmYyOTljYWZkMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGlu
dC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQpAQCAtNTI1LDExICs1MjUsOCBAQCBfbGxpbnRfb3Bf
aW46CiAgICAgZGlzcGF0Y2goNCkKIAogbWFjcm8gZ2V0UHV0VG9CYXNlT3BlcmF0aW9uRmllbGQo
c2NyYXRjaCwgc2NyYXRjaDEsIGZpZWxkT2Zmc2V0LCBmaWVsZEdldHRlcikKLSAgICBsb2FkaXNG
cm9tSW5zdHJ1Y3Rpb24oNCwgc2NyYXRjaCkKLSAgICBtdWxwIHNpemVvZiBQdXRUb0Jhc2VPcGVy
YXRpb24sIHNjcmF0Y2gsIHNjcmF0Y2gKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgc2NyYXRj
aDEKLSAgICBsb2FkcCBWZWN0b3JCdWZmZXJPZmZzZXQgKyBDb2RlQmxvY2s6Om1fcHV0VG9CYXNl
T3BlcmF0aW9uc1tzY3JhdGNoMV0sIHNjcmF0Y2gxCi0gICAgZmllbGRHZXR0ZXIoZmllbGRPZmZz
ZXRbc2NyYXRjaDEsIHNjcmF0Y2gsIDFdKQorICAgIGxvYWRwRnJvbUluc3RydWN0aW9uKDQsIHNj
cmF0Y2gpCisgICAgZmllbGRHZXR0ZXIoZmllbGRPZmZzZXRbc2NyYXRjaF0pCiBlbmQKIAogbWFj
cm8gbW92ZUpTVmFsdWVGcm9tUmVnaXN0ZXJXaXRob3V0UHJvZmlsaW5nKHZhbHVlLCBkZXN0QnVm
ZmVyLCBkZXN0T2Zmc2V0UmVnKQpAQCAtNTc3LDEyICs1NzQsOSBAQCBfbGxpbnRfb3BfcHV0X3Rv
X2Jhc2U6CiAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X3RvX2Jhc2UpCiAg
ICAgZGlzcGF0Y2goNSkKIAotbWFjcm8gZ2V0UmVzb2x2ZU9wZXJhdGlvbihyZXNvbHZlT3BlcmF0
aW9uSW5kZXgsIGRlc3QsIHNjcmF0Y2gpCi0gICAgbG9hZGlzRnJvbUluc3RydWN0aW9uKHJlc29s
dmVPcGVyYXRpb25JbmRleCwgZGVzdCkKLSAgICBtdWxwIHNpemVvZiBSZXNvbHZlT3BlcmF0aW9u
cywgZGVzdCwgZGVzdAotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBzY3JhdGNoCi0gICAgbG9h
ZHAgVmVjdG9yQnVmZmVyT2Zmc2V0ICsgQ29kZUJsb2NrOjptX3Jlc29sdmVPcGVyYXRpb25zW3Nj
cmF0Y2hdLCBzY3JhdGNoCi0gICAgbG9hZHAgVmVjdG9yQnVmZmVyT2Zmc2V0W3NjcmF0Y2gsIGRl
c3QsIDFdLCBkZXN0CittYWNybyBnZXRSZXNvbHZlT3BlcmF0aW9uKHJlc29sdmVPcGVyYXRpb25J
bmRleCwgZGVzdCkKKyAgICBsb2FkcEZyb21JbnN0cnVjdGlvbihyZXNvbHZlT3BlcmF0aW9uSW5k
ZXgsIGRlc3QpCisgICAgbG9hZHAgVmVjdG9yQnVmZmVyT2Zmc2V0W2Rlc3RdLCBkZXN0CiBlbmQK
IAogbWFjcm8gZ2V0U2NvcGUobG9hZEluaXRpYWxTY29wZSwgc2NvcGVDb3VudCwgZGVzdCwgc2Ny
YXRjaCkKQEAgLTY0NSw3ICs2MzksNyBAQCBlbmQKIAogX2xsaW50X29wX3Jlc29sdmVfZ2xvYmFs
X3Byb3BlcnR5OgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBnZXRSZXNvbHZlT3BlcmF0aW9u
KDMsIHQwLCB0MSkKKyAgICBnZXRSZXNvbHZlT3BlcmF0aW9uKDMsIHQwKQogICAgIGxvYWRwIENv
ZGVCbG9ja1tjZnJdLCB0MQogICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDFd
LCB0MQogICAgIGxvYWRwIFJlc29sdmVPcGVyYXRpb246Om1fc3RydWN0dXJlW3QwXSwgdDIKQEAg
LTY2NCw3ICs2NTgsNyBAQCBfbGxpbnRfb3BfcmVzb2x2ZV9nbG9iYWxfcHJvcGVydHk6CiAKIF9s
bGludF9vcF9yZXNvbHZlX2dsb2JhbF92YXI6CiAgICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGdl
dFJlc29sdmVPcGVyYXRpb24oMywgdDAsIHQxKQorICAgIGdldFJlc29sdmVPcGVyYXRpb24oMywg
dDApCiAgICAgbG9hZHAgUmVzb2x2ZU9wZXJhdGlvbjo6bV9yZWdpc3RlckFkZHJlc3NbdDBdLCB0
MAogICAgIGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MSkKICAgICBtb3ZlSlNWYWx1ZUZyb21T
bG90KHQwLCBjZnIsIHQxLCA0LCB0MykKQEAgLTY4NiwxMyArNjgwLDEzIEBAIGVuZAogCiBfbGxp
bnRfb3BfcmVzb2x2ZV9zY29wZWRfdmFyOgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBnZXRS
ZXNvbHZlT3BlcmF0aW9uKDMsIHQwLCB0MSkKKyAgICBnZXRSZXNvbHZlT3BlcmF0aW9uKDMsIHQw
KQogICAgIHJlc29sdmVTY29wZWRWYXJCb2R5KHQwKQogICAgIGRpc3BhdGNoKDUpCiAgICAgCiBf
bGxpbnRfb3BfcmVzb2x2ZV9zY29wZWRfdmFyX29uX3RvcF9zY29wZToKICAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAgZ2V0UmVzb2x2ZU9wZXJhdGlvbigzLCB0MCwgdDEpCisgICAgZ2V0UmVzb2x2
ZU9wZXJhdGlvbigzLCB0MCkKIAogICAgICMgTG9hZCBkZXN0aW5hdGlvbiBpbmRleAogICAgIGxv
YWRpc0Zyb21JbnN0cnVjdGlvbigxLCB0MykKQEAgLTcwOSw3ICs3MDMsNyBAQCBfbGxpbnRfb3Bf
cmVzb2x2ZV9zY29wZWRfdmFyX29uX3RvcF9zY29wZToKIAogX2xsaW50X29wX3Jlc29sdmVfc2Nv
cGVkX3Zhcl93aXRoX3RvcF9zY29wZV9jaGVjazoKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAg
Z2V0UmVzb2x2ZU9wZXJhdGlvbigzLCB0MCwgdDEpCisgICAgZ2V0UmVzb2x2ZU9wZXJhdGlvbigz
LCB0MCkKICAgICAjIEZpcnN0IFJlc29sdmVPcGVyYXRpb24gdGVsbHMgdXMgd2hhdCByZWdpc3Rl
ciB0byBjaGVjawogICAgIGxvYWRpcyBSZXNvbHZlT3BlcmF0aW9uOjptX2FjdGl2YXRpb25SZWdp
c3Rlclt0MF0sIHQxCiAKQEAgLTczNiw3ICs3MzAsNyBAQCBfbGxpbnRfb3BfcmVzb2x2ZV9zY29w
ZWRfdmFyX3dpdGhfdG9wX3Njb3BlX2NoZWNrOgogX2xsaW50X29wX3Jlc29sdmU6CiAubGxpbnRf
b3BfcmVzb2x2ZV9sb2NhbDoKICAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgZ2V0UmVzb2x2ZU9w
ZXJhdGlvbigzLCB0MCwgdDEpCisgICAgZ2V0UmVzb2x2ZU9wZXJhdGlvbigzLCB0MCkKICAgICBi
dHB6IHQwLCAubm9JbnN0cnVjdGlvbnMKICAgICBsb2FkaXMgUmVzb2x2ZU9wZXJhdGlvbjo6bV9v
cGVyYXRpb25bdDBdLCB0MQogICAgIGJpbmVxIHQxLCBSZXNvbHZlT3BlcmF0aW9uU2tpcFNjb3Bl
cywgLm5vdFNraXBTY29wZXMKQEAgLTc3Miw3ICs3NjYsNyBAQCBfbGxpbnRfb3BfcmVzb2x2ZV9i
YXNlX3RvX2dsb2JhbF9keW5hbWljOgogCiBfbGxpbnRfb3BfcmVzb2x2ZV9iYXNlX3RvX3Njb3Bl
OgogICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBnZXRSZXNvbHZlT3BlcmF0aW9uKDQsIHQwLCB0
MSkKKyAgICBnZXRSZXNvbHZlT3BlcmF0aW9uKDQsIHQwKQogICAgICMgRmlyc3QgUmVzb2x2ZU9w
ZXJhdGlvbiBpcyB0byBza2lwIHNjb3BlIGNoYWluIG5vZGVzCiAgICAgZ2V0U2NvcGUobWFjcm8o
ZGVzdCkKICAgICAgICAgICAgICAgICAgbG9hZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRb
Y2ZyXSwgZGVzdApAQCAtNzg5LDcgKzc4Myw3IEBAIF9sbGludF9vcF9yZXNvbHZlX2Jhc2VfdG9f
c2NvcGU6CiAKIF9sbGludF9vcF9yZXNvbHZlX2Jhc2VfdG9fc2NvcGVfd2l0aF90b3Bfc2NvcGVf
Y2hlY2s6CiAgICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGdldFJlc29sdmVPcGVyYXRpb24oNCwg
dDAsIHQxKQorICAgIGdldFJlc29sdmVPcGVyYXRpb24oNCwgdDApCiAgICAgIyBGaXJzdCBSZXNv
bHZlT3BlcmF0aW9uIHRlbGxzIHVzIHdoYXQgcmVnaXN0ZXIgdG8gY2hlY2sKICAgICBsb2FkaXMg
UmVzb2x2ZU9wZXJhdGlvbjo6bV9hY3RpdmF0aW9uUmVnaXN0ZXJbdDBdLCB0MQogCkBAIC04Mjcs
NyArODIxLDcgQEAgX2xsaW50X29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHM6CiAKIG1hY3JvIGlu
dGVycHJldFJlc29sdmVXaXRoQmFzZShvcGNvZGVMZW5ndGgsIHNsb3dQYXRoKQogICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBnZXRSZXNvbHZlT3BlcmF0aW9uKDQsIHQwLCB0MSkKKyAgICBnZXRS
ZXNvbHZlT3BlcmF0aW9uKDQsIHQwKQogICAgIGJ0cHogdDAsIC5zbG93UGF0aAogCiAgICAgbG9h
ZHAgU2NvcGVDaGFpbltjZnJdLCB0Mwo=
</data>
<flag name="review"
          id="208170"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>