<?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>28428</bug_id>
          
          <creation_ts>2009-08-18 07:36:35 -0700</creation_ts>
          <short_desc>Change namespace &quot;ARM&quot; to &quot;ARMRegisters&quot;</short_desc>
          <delta_ts>2009-08-19 18:39:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>barraclough</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung</cc>
    
    <cc>staikos</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>141082</commentid>
    <comment_count>0</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-18 07:36:35 -0700</bug_when>
    <thetext>namespace name &quot;ARM&quot; conflicts with macro &quot;ARM&quot; defined by VS.

&quot;ARM&quot; is not a good name for the namespace.

Candidates:

ARMJIT
ARMJit
ARMArchitecture
ARMitecture
ARMRegisters

ARMRegisters may be the best because this namespace is used only for listing registers so far.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141088</commentid>
    <comment_count>1</comment_count>
      <attachid>35042</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-18 08:28:15 -0700</bug_when>
    <thetext>Created attachment 35042
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141477</commentid>
    <comment_count>2</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2009-08-19 08:20:36 -0700</bug_when>
    <thetext>Only if X86 and the other ARM (ARMv7) namespaces are renamed as well. Otherwise the generic ARM port will break the porting rules and others will not like this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141478</commentid>
    <comment_count>3</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-19 08:28:45 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Only if X86 and the other ARM (ARMv7) namespaces are renamed as well. Otherwise
&gt; the generic ARM port will break the porting rules and others will not like this
&gt; change.

Hm.. Do you think it&apos;s good to change all these namespace names?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141481</commentid>
    <comment_count>4</comment_count>
    <who name="Zoltan Herczeg">zherczeg</who>
    <bug_when>2009-08-19 08:48:23 -0700</bug_when>
    <thetext>&gt; Hm.. Do you think it&apos;s good to change all these namespace names?

Changing it only for one port just breaks the rules. (I am actually not a fond of these rules. Several of our optimizations are rejected because of them.)

Please do it for all ports if you really want this patch to go through. Perhaps it would be good to ask Gavin first, which name he prefers. You could save a lot of trouble for yourself :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141488</commentid>
    <comment_count>5</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-19 09:06:13 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Hm.. Do you think it&apos;s good to change all these namespace names?
&gt; 
&gt; Changing it only for one port just breaks the rules. (I am actually not a fond
&gt; of these rules. Several of our optimizations are rejected because of them.)
&gt; 
&gt; Please do it for all ports if you really want this patch to go through. Perhaps
&gt; it would be good to ask Gavin first, which name he prefers. You could save a
&gt; lot of trouble for yourself :)

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141611</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2009-08-19 15:14:36 -0700</bug_when>
    <thetext>As commented in IRC, Zoltan is right, where there is no good reason for the JIT to diverge we like to avoid doing so, so renaming X86 to X86Registers would make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141613</commentid>
    <comment_count>7</comment_count>
      <attachid>35149</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-19 15:28:29 -0700</bug_when>
    <thetext>Created attachment 35149
change X86 and ARM in ARMv7, too

1. change namespace X86 to X86Registers

2. change namespace ARM in ARMv7 files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141637</commentid>
    <comment_count>8</comment_count>
      <attachid>35149</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-19 16:51:42 -0700</bug_when>
    <thetext>Comment on attachment 35149
change X86 and ARM in ARMv7, too

Rejecting patch 35149 from commit-queue.  This patch will require manual commit.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;rebase&apos;]&quot;  exit_code: 1  cwd: None</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141640</commentid>
    <comment_count>9</comment_count>
      <attachid>35149</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-19 16:52:28 -0700</bug_when>
    <thetext>Comment on attachment 35149
change X86 and ARM in ARMv7, too

commit-queue bug, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141641</commentid>
    <comment_count>10</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2009-08-19 16:53:19 -0700</bug_when>
    <thetext>np, I can land this in a couple of hours if nobody else has before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141643</commentid>
    <comment_count>11</comment_count>
      <attachid>35149</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-19 17:02:31 -0700</bug_when>
    <thetext>Comment on attachment 35149
change X86 and ARM in ARMv7, too

Clearing flags on attachment: 35149

Committed r47530: &lt;http://trac.webkit.org/changeset/47530&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141644</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-19 17:02:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35042</attachid>
            <date>2009-08-18 08:28:15 -0700</date>
            <delta_ts>2009-08-19 15:28:29 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>28428.patch</filename>
            <type>text/plain</type>
            <size>59462</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBkM2QwOWZjLi5lMmU4NmZmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTQg
QEAKKzIwMDktMDgtMTggIFlvbmcgTGkgIDx5b25nLmxpQHRvcmNobW9iaWxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgbmFtZXNw
YWNlICJBUk0iIHRvICJBUk1SZWdpc3RlcnMiIHRvIGF2b2lkCisgICAgICAgIHBvdGVudGlhbCBj
b25mbGljdCB3aXRoIG1hY3JvICJBUk0iCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yODQyOAorCisgICAgICAgICogYXNzZW1ibGVyL0FSTUFzc2VtYmxl
ci5jcHA6CisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6ZGF0YVRyYW5zZmVyMzIpOgorICAg
ICAgICAoSlNDOjpBUk1Bc3NlbWJsZXI6OmJhc2VJbmRleFRyYW5zZmVyMzIpOgorICAgICAgICAo
SlNDOjpBUk1Bc3NlbWJsZXI6OmRvdWJsZVRyYW5zZmVyKToKKyAgICAgICAgKiBhc3NlbWJsZXIv
QVJNQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTVJlZ2lzdGVyczo6KToKKyAgICAgICAg
KEpTQzo6QVJNQXNzZW1ibGVyOjptb3Zfcik6CisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6
bW92c19yKToKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVyOjptdm5fcik6CisgICAgICAgIChK
U0M6OkFSTUFzc2VtYmxlcjo6bXZuc19yKToKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVyOjps
ZHJfaW1tKToKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVyOjpsZHJfdW5faW1tKToKKyAgICAg
ICAgKEpTQzo6QVJNQXNzZW1ibGVyOjpwdXNoX3IpOgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJs
ZXI6OnBvcF9yKToKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVyOjpwb2tlX3IpOgorICAgICAg
ICAoSlNDOjpBUk1Bc3NlbWJsZXI6OnBlZWtfcik6CisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxl
cjo6YmtwdCk6CisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6bHNsKToKKyAgICAgICAgKEpT
Qzo6QVJNQXNzZW1ibGVyOjpsc3IpOgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJsZXI6OmFzcik6
CisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6bHNsX3IpOgorICAgICAgICAoSlNDOjpBUk1B
c3NlbWJsZXI6Omxzcl9yKToKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVyOjphc3Jfcik6Cisg
ICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6YWxpZ24pOgorICAgICAgICAoSlNDOjpBUk1Bc3Nl
bWJsZXI6OmptcCk6CisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6Uk0pOgorICAgICAgICAo
SlNDOjpBUk1Bc3NlbWJsZXI6OlJTKToKKyAgICAgICAgKEpTQzo6QVJNQXNzZW1ibGVyOjpSRCk6
CisgICAgICAgIChKU0M6OkFSTUFzc2VtYmxlcjo6Uk4pOgorICAgICAgICAqIGFzc2VtYmxlci9B
Uk12N0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6QmFkUmVnKToK
KyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmFkZCk6CisgICAgICAgIChKU0M6OkFSTXY3
QXNzZW1ibGVyOjphZGRfUyk6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpibHgpOgor
ICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6Y21uKToKKyAgICAgICAgKEpTQzo6QVJNdjdB
c3NlbWJsZXI6OmNtcCk6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpsZHIpOgorICAg
ICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6bGRyaCk6CisgICAgICAgIChKU0M6OkFSTXY3QXNz
ZW1ibGVyOjpzdHIpOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6c3ViKToKKyAgICAg
ICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OnN1Yl9TKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJBUk0uaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmFkZDMy
KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmFuZDMyKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk06Om11bDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJs
ZXJBUk06Om9yMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTo6c3ViMzIpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTo6eG9yMzIpOgorICAgICAgICAoSlNDOjpN
YWNyb0Fzc2VtYmxlckFSTTo6bG9hZDMyV2l0aEFkZHJlc3NPZmZzZXRQYXRjaCk6CisgICAgICAg
IChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpsb2FkMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fz
c2VtYmxlckFSTTo6c3RvcmUzMldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2gpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTTo6c3RvcmUzMik6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1i
bGVyQVJNOjpwdXNoKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OnN3YXApOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTo6YnJhbmNoMzIpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlckFSTTo6YnJhbmNoMTYpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2Vt
YmxlckFSTTo6YnJhbmNoVGVzdDMyKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06
Omp1bXApOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTo6bXVsbDMyKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmJyYW5jaE11bDMyKToKKyAgICAgICAgKEpTQzo6
TWFjcm9Bc3NlbWJsZXJBUk06OmNhbGwpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTo6cmV0KToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OnNldDMyKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OnNldFRlc3QzMik6CisgICAgICAgIChKU0M6Ok1h
Y3JvQXNzZW1ibGVyQVJNOjpsb2FkMzIpOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFS
TTo6YnJhbmNoUHRyV2l0aFBhdGNoKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06
OnN0b3JlUHRyV2l0aFBhdGNoKToKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk06OmFk
ZERvdWJsZSk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyQVJNOjpzdWJEb3VibGUpOgor
ICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxlckFSTTo6bXVsRG91YmxlKToKKyAgICAgICAgKEpT
Qzo6TWFjcm9Bc3NlbWJsZXJBUk06OnByZXBhcmVDYWxsKToKKyAgICAgICAgKEpTQzo6TWFjcm9B
c3NlbWJsZXJBUk06OmNhbGwzMik6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
QVJNdjcuaDoKKyAgICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6cG9wKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJBUk12Nzo6cHVzaCk6CisgICAgICAgICogaml0L0pJVC5o
OgorICAgICAgICAqIGppdC9KSVRJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChKU0M6OkpJVDo6
cmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKToKKyAgICAgICAgKiBqaXQvSklUT3Bjb2Rlcy5jcHA6
CisgICAgICAgICogeWFyci9SZWdleEpJVC5jcHA6CisgICAgICAgIChKU0M6OllhcnI6OlJlZ2V4
R2VuZXJhdG9yOjpnZW5lcmF0ZUVudGVyKToKKyAgICAgICAgKEpTQzo6WWFycjo6UmVnZXhHZW5l
cmF0b3I6OmdlbmVyYXRlUmV0dXJuKToKKwogMjAwOS0wOC0xOCAgWGFuIExvcGV6ICA8eGxvcGV6
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCB0aGUgR1RLKyBidWlsZC4KZGlmZiAt
LWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwIGIvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAKaW5kZXggYzhiMDdmYy4uNzdkN2E1
MyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAK
KysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAKQEAgLTI5MSwx
MCArMjkxLDEwIEBAIHZvaWQgQVJNQXNzZW1ibGVyOjpkYXRhVHJhbnNmZXIzMihib29sIGlzTG9h
ZCwgUmVnaXN0ZXJJRCBzcmNEc3QsIFJlZ2lzdGVySUQgYmFzCiAgICAgICAgIGlmIChvZmZzZXQg
PD0gMHhmZmYpCiAgICAgICAgICAgICBkdHJfdShpc0xvYWQsIHNyY0RzdCwgYmFzZSwgb2Zmc2V0
KTsKICAgICAgICAgZWxzZSBpZiAob2Zmc2V0IDw9IDB4ZmZmZmYpIHsKLSAgICAgICAgICAgIGFk
ZF9yKEFSTTo6UzAsIGJhc2UsIE9QMl9JTU0gfCAob2Zmc2V0ID4+IDEyKSB8ICgxMCA8PCA4KSk7
Ci0gICAgICAgICAgICBkdHJfdShpc0xvYWQsIHNyY0RzdCwgQVJNOjpTMCwgb2Zmc2V0ICYgMHhm
ZmYpOworICAgICAgICAgICAgYWRkX3IoQVJNUmVnaXN0ZXJzOjpTMCwgYmFzZSwgT1AyX0lNTSB8
IChvZmZzZXQgPj4gMTIpIHwgKDEwIDw8IDgpKTsKKyAgICAgICAgICAgIGR0cl91KGlzTG9hZCwg
c3JjRHN0LCBBUk1SZWdpc3RlcnM6OlMwLCBvZmZzZXQgJiAweGZmZik7CiAgICAgICAgIH0gZWxz
ZSB7Ci0gICAgICAgICAgICBBUk1Xb3JkIHJlZyA9IGdldEltbShvZmZzZXQsIEFSTTo6UzApOwor
ICAgICAgICAgICAgQVJNV29yZCByZWcgPSBnZXRJbW0ob2Zmc2V0LCBBUk1SZWdpc3RlcnM6OlMw
KTsKICAgICAgICAgICAgIGR0cl91cihpc0xvYWQsIHNyY0RzdCwgYmFzZSwgcmVnKTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7CkBAIC0zMDIsMTAgKzMwMiwxMCBAQCB2b2lkIEFSTUFzc2VtYmxl
cjo6ZGF0YVRyYW5zZmVyMzIoYm9vbCBpc0xvYWQsIFJlZ2lzdGVySUQgc3JjRHN0LCBSZWdpc3Rl
cklEIGJhcwogICAgICAgICBpZiAob2Zmc2V0IDw9IDB4ZmZmKQogICAgICAgICAgICAgZHRyX2Qo
aXNMb2FkLCBzcmNEc3QsIGJhc2UsIG9mZnNldCk7CiAgICAgICAgIGVsc2UgaWYgKG9mZnNldCA8
PSAweGZmZmZmKSB7Ci0gICAgICAgICAgICBzdWJfcihBUk06OlMwLCBiYXNlLCBPUDJfSU1NIHwg
KG9mZnNldCA+PiAxMikgfCAoMTAgPDwgOCkpOwotICAgICAgICAgICAgZHRyX2QoaXNMb2FkLCBz
cmNEc3QsIEFSTTo6UzAsIG9mZnNldCAmIDB4ZmZmKTsKKyAgICAgICAgICAgIHN1Yl9yKEFSTVJl
Z2lzdGVyczo6UzAsIGJhc2UsIE9QMl9JTU0gfCAob2Zmc2V0ID4+IDEyKSB8ICgxMCA8PCA4KSk7
CisgICAgICAgICAgICBkdHJfZChpc0xvYWQsIHNyY0RzdCwgQVJNUmVnaXN0ZXJzOjpTMCwgb2Zm
c2V0ICYgMHhmZmYpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQVJNV29yZCByZWcg
PSBnZXRJbW0ob2Zmc2V0LCBBUk06OlMwKTsKKyAgICAgICAgICAgIEFSTVdvcmQgcmVnID0gZ2V0
SW1tKG9mZnNldCwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAgICAgICAgICBkdHJfZHIoaXNMb2Fk
LCBzcmNEc3QsIGJhc2UsIHJlZyk7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMTksMTkgKzMxOSwx
OSBAQCB2b2lkIEFSTUFzc2VtYmxlcjo6YmFzZUluZGV4VHJhbnNmZXIzMihib29sIGlzTG9hZCwg
UmVnaXN0ZXJJRCBzcmNEc3QsIFJlZ2lzdGVySQogICAgIG9wMiA9IGxzbChpbmRleCwgc2NhbGUp
OwogCiAgICAgaWYgKG9mZnNldCA+PSAwICYmIG9mZnNldCA8PSAweGZmZikgewotICAgICAgICBh
ZGRfcihBUk06OlMwLCBiYXNlLCBvcDIpOwotICAgICAgICBkdHJfdShpc0xvYWQsIHNyY0RzdCwg
QVJNOjpTMCwgb2Zmc2V0KTsKKyAgICAgICAgYWRkX3IoQVJNUmVnaXN0ZXJzOjpTMCwgYmFzZSwg
b3AyKTsKKyAgICAgICAgZHRyX3UoaXNMb2FkLCBzcmNEc3QsIEFSTVJlZ2lzdGVyczo6UzAsIG9m
ZnNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKG9mZnNldCA8PSAwICYmIG9m
ZnNldCA+PSAtMHhmZmYpIHsKLSAgICAgICAgYWRkX3IoQVJNOjpTMCwgYmFzZSwgb3AyKTsKLSAg
ICAgICAgZHRyX2QoaXNMb2FkLCBzcmNEc3QsIEFSTTo6UzAsIC1vZmZzZXQpOworICAgICAgICBh
ZGRfcihBUk1SZWdpc3RlcnM6OlMwLCBiYXNlLCBvcDIpOworICAgICAgICBkdHJfZChpc0xvYWQs
IHNyY0RzdCwgQVJNUmVnaXN0ZXJzOjpTMCwgLW9mZnNldCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBsZHJfdW5faW1tKEFSTTo6UzAsIG9mZnNldCk7Ci0gICAgYWRkX3IoQVJNOjpT
MCwgQVJNOjpTMCwgb3AyKTsKLSAgICBkdHJfdXIoaXNMb2FkLCBzcmNEc3QsIGJhc2UsIEFSTTo6
UzApOworICAgIGxkcl91bl9pbW0oQVJNUmVnaXN0ZXJzOjpTMCwgb2Zmc2V0KTsKKyAgICBhZGRf
cihBUk1SZWdpc3RlcnM6OlMwLCBBUk1SZWdpc3RlcnM6OlMwLCBvcDIpOworICAgIGR0cl91cihp
c0xvYWQsIHNyY0RzdCwgYmFzZSwgQVJNUmVnaXN0ZXJzOjpTMCk7CiB9CiAKIHZvaWQgQVJNQXNz
ZW1ibGVyOjpkb3VibGVUcmFuc2Zlcihib29sIGlzTG9hZCwgRlBSZWdpc3RlcklEIHNyY0RzdCwg
UmVnaXN0ZXJJRCBiYXNlLCBpbnQzMl90IG9mZnNldCkKQEAgLTM0Miw4ICszNDIsOCBAQCB2b2lk
IEFSTUFzc2VtYmxlcjo6ZG91YmxlVHJhbnNmZXIoYm9vbCBpc0xvYWQsIEZQUmVnaXN0ZXJJRCBz
cmNEc3QsIFJlZ2lzdGVySUQgYgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIGlmIChvZmZzZXQgPD0gMHgzZmZmZiAmJiBvZmZzZXQgPj0gMCkgewotICAgICAgICAgICAg
YWRkX3IoQVJNOjpTMCwgYmFzZSwgT1AyX0lNTSB8IChvZmZzZXQgPj4gMTApIHwgKDExIDw8IDgp
KTsKLSAgICAgICAgICAgIGZkdHJfdShpc0xvYWQsIHNyY0RzdCwgQVJNOjpTMCwgKG9mZnNldCA+
PiAyKSAmIDB4ZmYpOworICAgICAgICAgICAgYWRkX3IoQVJNUmVnaXN0ZXJzOjpTMCwgYmFzZSwg
T1AyX0lNTSB8IChvZmZzZXQgPj4gMTApIHwgKDExIDw8IDgpKTsKKyAgICAgICAgICAgIGZkdHJf
dShpc0xvYWQsIHNyY0RzdCwgQVJNUmVnaXN0ZXJzOjpTMCwgKG9mZnNldCA+PiAyKSAmIDB4ZmYp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIG9mZnNldCA9IC1vZmZz
ZXQ7CkBAIC0zNTMsMTYgKzM1MywxNiBAQCB2b2lkIEFSTUFzc2VtYmxlcjo6ZG91YmxlVHJhbnNm
ZXIoYm9vbCBpc0xvYWQsIEZQUmVnaXN0ZXJJRCBzcmNEc3QsIFJlZ2lzdGVySUQgYgogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChvZmZzZXQgPD0gMHgzZmZmZiAm
JiBvZmZzZXQgPj0gMCkgewotICAgICAgICAgICAgc3ViX3IoQVJNOjpTMCwgYmFzZSwgT1AyX0lN
TSB8IChvZmZzZXQgPj4gMTApIHwgKDExIDw8IDgpKTsKLSAgICAgICAgICAgIGZkdHJfZChpc0xv
YWQsIHNyY0RzdCwgQVJNOjpTMCwgKG9mZnNldCA+PiAyKSAmIDB4ZmYpOworICAgICAgICAgICAg
c3ViX3IoQVJNUmVnaXN0ZXJzOjpTMCwgYmFzZSwgT1AyX0lNTSB8IChvZmZzZXQgPj4gMTApIHwg
KDExIDw8IDgpKTsKKyAgICAgICAgICAgIGZkdHJfZChpc0xvYWQsIHNyY0RzdCwgQVJNUmVnaXN0
ZXJzOjpTMCwgKG9mZnNldCA+PiAyKSAmIDB4ZmYpOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIG9mZnNldCA9IC1vZmZzZXQ7CiAgICAgfQogCi0gICAgbGRyX3VuX2lt
bShBUk06OlMwLCBvZmZzZXQpOwotICAgIGFkZF9yKEFSTTo6UzAsIEFSTTo6UzAsIGJhc2UpOwot
ICAgIGZkdHJfdShpc0xvYWQsIHNyY0RzdCwgQVJNOjpTMCwgMCk7CisgICAgbGRyX3VuX2ltbShB
Uk1SZWdpc3RlcnM6OlMwLCBvZmZzZXQpOworICAgIGFkZF9yKEFSTVJlZ2lzdGVyczo6UzAsIEFS
TVJlZ2lzdGVyczo6UzAsIGJhc2UpOworICAgIGZkdHJfdShpc0xvYWQsIHNyY0RzdCwgQVJNUmVn
aXN0ZXJzOjpTMCwgMCk7CiB9CiAKIHZvaWQqIEFSTUFzc2VtYmxlcjo6ZXhlY3V0YWJsZUNvcHko
RXhlY3V0YWJsZVBvb2wqIGFsbG9jYXRvcikKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9BUk1Bc3NlbWJsZXIuaCBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3Nl
bWJsZXIuaAppbmRleCAwMjA2NzcwLi4wYjA0YmI0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0FSTUFzc2VtYmxlci5oCkBAIC0zNSw0NyArMzUsNDcgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0
aW9ucy5oPgogbmFtZXNwYWNlIEpTQyB7CiAKLXR5cGVkZWYgdWludDMyX3QgQVJNV29yZDsKLQot
bmFtZXNwYWNlIEFSTSB7Ci0gICAgdHlwZWRlZiBlbnVtIHsKLSAgICAgICAgcjAgPSAwLAotICAg
ICAgICByMSwKLSAgICAgICAgcjIsCi0gICAgICAgIHIzLAotICAgICAgICBTMCA9IHIzLAotICAg
ICAgICByNCwKLSAgICAgICAgcjUsCi0gICAgICAgIHI2LAotICAgICAgICByNywKLSAgICAgICAg
cjgsCi0gICAgICAgIFMxID0gcjgsCi0gICAgICAgIHI5LAotICAgICAgICByMTAsCi0gICAgICAg
IHIxMSwKLSAgICAgICAgcjEyLAotICAgICAgICByMTMsCi0gICAgICAgIHNwID0gcjEzLAotICAg
ICAgICByMTQsCi0gICAgICAgIGxyID0gcjE0LAotICAgICAgICByMTUsCi0gICAgICAgIHBjID0g
cjE1Ci0gICAgfSBSZWdpc3RlcklEOwotCi0gICAgdHlwZWRlZiBlbnVtIHsKLSAgICAgICAgZDAs
Ci0gICAgICAgIGQxLAotICAgICAgICBkMiwKLSAgICAgICAgZDMsCi0gICAgICAgIFNEMCA9IGQz
Ci0gICAgfSBGUFJlZ2lzdGVySUQ7Ci0KLX0gLy8gbmFtZXNwYWNlIEFSTQorICAgIHR5cGVkZWYg
dWludDMyX3QgQVJNV29yZDsKKworICAgIG5hbWVzcGFjZSBBUk1SZWdpc3RlcnMgeworICAgICAg
ICB0eXBlZGVmIGVudW0geworICAgICAgICAgICAgcjAgPSAwLAorICAgICAgICAgICAgcjEsCisg
ICAgICAgICAgICByMiwKKyAgICAgICAgICAgIHIzLAorICAgICAgICAgICAgUzAgPSByMywKKyAg
ICAgICAgICAgIHI0LAorICAgICAgICAgICAgcjUsCisgICAgICAgICAgICByNiwKKyAgICAgICAg
ICAgIHI3LAorICAgICAgICAgICAgcjgsCisgICAgICAgICAgICBTMSA9IHI4LAorICAgICAgICAg
ICAgcjksCisgICAgICAgICAgICByMTAsCisgICAgICAgICAgICByMTEsCisgICAgICAgICAgICBy
MTIsCisgICAgICAgICAgICByMTMsCisgICAgICAgICAgICBzcCA9IHIxMywKKyAgICAgICAgICAg
IHIxNCwKKyAgICAgICAgICAgIGxyID0gcjE0LAorICAgICAgICAgICAgcjE1LAorICAgICAgICAg
ICAgcGMgPSByMTUKKyAgICAgICAgfSBSZWdpc3RlcklEOworCisgICAgICAgIHR5cGVkZWYgZW51
bSB7CisgICAgICAgICAgICBkMCwKKyAgICAgICAgICAgIGQxLAorICAgICAgICAgICAgZDIsCisg
ICAgICAgICAgICBkMywKKyAgICAgICAgICAgIFNEMCA9IGQzCisgICAgICAgIH0gRlBSZWdpc3Rl
cklEOworCisgICAgfSAvLyBuYW1lc3BhY2UgQVJNUmVnaXN0ZXJzCiAKICAgICBjbGFzcyBBUk1B
c3NlbWJsZXIgewogICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBBUk06OlJlZ2lzdGVySUQg
UmVnaXN0ZXJJRDsKLSAgICAgICAgdHlwZWRlZiBBUk06OkZQUmVnaXN0ZXJJRCBGUFJlZ2lzdGVy
SUQ7CisgICAgICAgIHR5cGVkZWYgQVJNUmVnaXN0ZXJzOjpSZWdpc3RlcklEIFJlZ2lzdGVySUQ7
CisgICAgICAgIHR5cGVkZWYgQVJNUmVnaXN0ZXJzOjpGUFJlZ2lzdGVySUQgRlBSZWdpc3RlcklE
OwogICAgICAgICB0eXBlZGVmIEFzc2VtYmxlckJ1ZmZlcldpdGhDb25zdGFudFBvb2w8MjA0OCwg
NCwgNCwgQVJNQXNzZW1ibGVyPiBBUk1CdWZmZXI7CiAgICAgICAgIHR5cGVkZWYgU2VnbWVudGVk
VmVjdG9yPGludCwgNjQ+IEp1bXBzOwogCkBAIC0zMzAsMTIgKzMzMCwxMiBAQCBuYW1lc3BhY2Ug
QVJNIHsKIAogICAgICAgICB2b2lkIG1vdl9yKGludCByZCwgQVJNV29yZCBvcDIsIENvbmRpdGlv
biBjYyA9IEFMKQogICAgICAgICB7Ci0gICAgICAgICAgICBlbWl0SW5zdChzdGF0aWNfY2FzdDxB
Uk1Xb3JkPihjYykgfCBNT1YsIHJkLCBBUk06OnIwLCBvcDIpOworICAgICAgICAgICAgZW1pdElu
c3Qoc3RhdGljX2Nhc3Q8QVJNV29yZD4oY2MpIHwgTU9WLCByZCwgQVJNUmVnaXN0ZXJzOjpyMCwg
b3AyKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgbW92c19yKGludCByZCwgQVJNV29yZCBv
cDIsIENvbmRpdGlvbiBjYyA9IEFMKQogICAgICAgICB7Ci0gICAgICAgICAgICBlbWl0SW5zdChz
dGF0aWNfY2FzdDxBUk1Xb3JkPihjYykgfCBNT1YgfCBTRVRfQ0MsIHJkLCBBUk06OnIwLCBvcDIp
OworICAgICAgICAgICAgZW1pdEluc3Qoc3RhdGljX2Nhc3Q8QVJNV29yZD4oY2MpIHwgTU9WIHwg
U0VUX0NDLCByZCwgQVJNUmVnaXN0ZXJzOjpyMCwgb3AyKTsKICAgICAgICAgfQogCiAgICAgICAg
IHZvaWQgYmljX3IoaW50IHJkLCBpbnQgcm4sIEFSTVdvcmQgb3AyLCBDb25kaXRpb24gY2MgPSBB
TCkKQEAgLTM1MCwxMiArMzUwLDEyIEBAIG5hbWVzcGFjZSBBUk0gewogCiAgICAgICAgIHZvaWQg
bXZuX3IoaW50IHJkLCBBUk1Xb3JkIG9wMiwgQ29uZGl0aW9uIGNjID0gQUwpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGVtaXRJbnN0KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNjKSB8IE1WTiwgcmQs
IEFSTTo6cjAsIG9wMik7CisgICAgICAgICAgICBlbWl0SW5zdChzdGF0aWNfY2FzdDxBUk1Xb3Jk
PihjYykgfCBNVk4sIHJkLCBBUk1SZWdpc3RlcnM6OnIwLCBvcDIpOwogICAgICAgICB9CiAKICAg
ICAgICAgdm9pZCBtdm5zX3IoaW50IHJkLCBBUk1Xb3JkIG9wMiwgQ29uZGl0aW9uIGNjID0gQUwp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGVtaXRJbnN0KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNj
KSB8IE1WTiB8IFNFVF9DQywgcmQsIEFSTTo6cjAsIG9wMik7CisgICAgICAgICAgICBlbWl0SW5z
dChzdGF0aWNfY2FzdDxBUk1Xb3JkPihjYykgfCBNVk4gfCBTRVRfQ0MsIHJkLCBBUk1SZWdpc3Rl
cnM6OnIwLCBvcDIpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBtdWxfcihpbnQgcmQsIGlu
dCBybiwgaW50IHJtLCBDb25kaXRpb24gY2MgPSBBTCkKQEAgLTM5NSwxMiArMzk1LDEyIEBAIG5h
bWVzcGFjZSBBUk0gewogCiAgICAgICAgIHZvaWQgbGRyX2ltbShpbnQgcmQsIEFSTVdvcmQgaW1t
LCBDb25kaXRpb24gY2MgPSBBTCkKICAgICAgICAgewotICAgICAgICAgICAgbV9idWZmZXIucHV0
SW50V2l0aENvbnN0YW50SW50KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNjKSB8IERUUiB8IERUX0xP
QUQgfCBEVF9VUCB8IFJOKEFSTTo6cGMpIHwgUkQocmQpLCBpbW0sIHRydWUpOworICAgICAgICAg
ICAgbV9idWZmZXIucHV0SW50V2l0aENvbnN0YW50SW50KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNj
KSB8IERUUiB8IERUX0xPQUQgfCBEVF9VUCB8IFJOKEFSTVJlZ2lzdGVyczo6cGMpIHwgUkQocmQp
LCBpbW0sIHRydWUpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBsZHJfdW5faW1tKGludCBy
ZCwgQVJNV29yZCBpbW0sIENvbmRpdGlvbiBjYyA9IEFMKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBtX2J1ZmZlci5wdXRJbnRXaXRoQ29uc3RhbnRJbnQoc3RhdGljX2Nhc3Q8QVJNV29yZD4oY2Mp
IHwgRFRSIHwgRFRfTE9BRCB8IERUX1VQIHwgUk4oQVJNOjpwYykgfCBSRChyZCksIGltbSk7Cisg
ICAgICAgICAgICBtX2J1ZmZlci5wdXRJbnRXaXRoQ29uc3RhbnRJbnQoc3RhdGljX2Nhc3Q8QVJN
V29yZD4oY2MpIHwgRFRSIHwgRFRfTE9BRCB8IERUX1VQIHwgUk4oQVJNUmVnaXN0ZXJzOjpwYykg
fCBSRChyZCksIGltbSk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGR0cl91KGJvb2wgaXNM
b2FkLCBpbnQgcmQsIGludCByYiwgQVJNV29yZCBvcDIsIENvbmRpdGlvbiBjYyA9IEFMKQpAQCAt
NDU4LDIzICs0NTgsMjMgQEAgbmFtZXNwYWNlIEFSTSB7CiAgICAgICAgIHZvaWQgcHVzaF9yKGlu
dCByZWcsIENvbmRpdGlvbiBjYyA9IEFMKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQo
QVJNV29yZChyZWcpIDw9IDB4Zik7Ci0gICAgICAgICAgICBtX2J1ZmZlci5wdXRJbnQoY2MgfCBE
VFIgfCBEVF9XQiB8IFJOKEFSTTo6c3ApIHwgUkQocmVnKSB8IDB4NCk7CisgICAgICAgICAgICBt
X2J1ZmZlci5wdXRJbnQoY2MgfCBEVFIgfCBEVF9XQiB8IFJOKEFSTVJlZ2lzdGVyczo6c3ApIHwg
UkQocmVnKSB8IDB4NCk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHBvcF9yKGludCByZWcs
IENvbmRpdGlvbiBjYyA9IEFMKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoQVJNV29y
ZChyZWcpIDw9IDB4Zik7Ci0gICAgICAgICAgICBtX2J1ZmZlci5wdXRJbnQoY2MgfCAoRFRSIF4g
RFRfUFJFKSB8IERUX0xPQUQgfCBEVF9VUCB8IFJOKEFSTTo6c3ApIHwgUkQocmVnKSB8IDB4NCk7
CisgICAgICAgICAgICBtX2J1ZmZlci5wdXRJbnQoY2MgfCAoRFRSIF4gRFRfUFJFKSB8IERUX0xP
QUQgfCBEVF9VUCB8IFJOKEFSTVJlZ2lzdGVyczo6c3ApIHwgUkQocmVnKSB8IDB4NCk7CiAgICAg
ICAgIH0KIAogICAgICAgICBpbmxpbmUgdm9pZCBwb2tlX3IoaW50IHJlZywgQ29uZGl0aW9uIGNj
ID0gQUwpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGR0cl9kKGZhbHNlLCBBUk06OnNwLCAwLCBy
ZWcsIGNjKTsKKyAgICAgICAgICAgIGR0cl9kKGZhbHNlLCBBUk1SZWdpc3RlcnM6OnNwLCAwLCBy
ZWcsIGNjKTsKICAgICAgICAgfQogCiAgICAgICAgIGlubGluZSB2b2lkIHBlZWtfcihpbnQgcmVn
LCBDb25kaXRpb24gY2MgPSBBTCkKICAgICAgICAgewotICAgICAgICAgICAgZHRyX3UodHJ1ZSwg
cmVnLCBBUk06OnNwLCAwLCBjYyk7CisgICAgICAgICAgICBkdHJfdSh0cnVlLCByZWcsIEFSTVJl
Z2lzdGVyczo6c3AsIDAsIGNjKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZm1zcl9yKGlu
dCBkZCwgaW50IHJuLCBDb25kaXRpb24gY2MgPSBBTCkKQEAgLTUwNSw0OSArNTA1LDQ5IEBAIG5h
bWVzcGFjZSBBUk0gewogICAgICAgICAgICAgbV9idWZmZXIucHV0SW50KEJLUFQgfCAoKHZhbHVl
ICYgMHhmZjApIDw8IDQpIHwgKHZhbHVlICYgMHhmKSk7CiAjZWxzZQogICAgICAgICAgICAgLy8g
Q2Fubm90IGFjY2VzcyB0byBaZXJvIG1lbW9yeSBhZGRyZXNzCi0gICAgICAgICAgICBkdHJfZHIo
dHJ1ZSwgQVJNOjpTMCwgQVJNOjpTMCwgQVJNOjpTMCk7CisgICAgICAgICAgICBkdHJfZHIodHJ1
ZSwgQVJNUmVnaXN0ZXJzOjpTMCwgQVJNUmVnaXN0ZXJzOjpTMCwgQVJNUmVnaXN0ZXJzOjpTMCk7
CiAjZW5kaWYKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBBUk1Xb3JkIGxzbChpbnQgcmVn
LCBBUk1Xb3JkIHZhbHVlKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFS
TTo6cGMpOworICAgICAgICAgICAgQVNTRVJUKHJlZyA8PSBBUk1SZWdpc3RlcnM6OnBjKTsKICAg
ICAgICAgICAgIEFTU0VSVCh2YWx1ZSA8PSAweDFmKTsKICAgICAgICAgICAgIHJldHVybiByZWcg
fCAodmFsdWUgPDwgNykgfCAweDAwOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIEFSTVdv
cmQgbHNyKGludCByZWcsIEFSTVdvcmQgdmFsdWUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFT
U0VSVChyZWcgPD0gQVJNOjpwYyk7CisgICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFSTVJlZ2lz
dGVyczo6cGMpOwogICAgICAgICAgICAgQVNTRVJUKHZhbHVlIDw9IDB4MWYpOwogICAgICAgICAg
ICAgcmV0dXJuIHJlZyB8ICh2YWx1ZSA8PCA3KSB8IDB4MjA7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgQVJNV29yZCBhc3IoaW50IHJlZywgQVJNV29yZCB2YWx1ZSkKICAgICAgICAgewot
ICAgICAgICAgICAgQVNTRVJUKHJlZyA8PSBBUk06OnBjKTsKKyAgICAgICAgICAgIEFTU0VSVChy
ZWcgPD0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgICAgICBBU1NFUlQodmFsdWUgPD0gMHgx
Zik7CiAgICAgICAgICAgICByZXR1cm4gcmVnIHwgKHZhbHVlIDw8IDcpIHwgMHg0MDsKICAgICAg
ICAgfQogCiAgICAgICAgIHN0YXRpYyBBUk1Xb3JkIGxzbF9yKGludCByZWcsIGludCBzaGlmdFJl
ZykKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKHJlZyA8PSBBUk06OnBjKTsKLSAgICAg
ICAgICAgIEFTU0VSVChzaGlmdFJlZyA8PSBBUk06OnBjKTsKKyAgICAgICAgICAgIEFTU0VSVChy
ZWcgPD0gQVJNUmVnaXN0ZXJzOjpwYyk7CisgICAgICAgICAgICBBU1NFUlQoc2hpZnRSZWcgPD0g
QVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgICAgICByZXR1cm4gcmVnIHwgKHNoaWZ0UmVnIDw8
IDgpIHwgMHgxMDsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBBUk1Xb3JkIGxzcl9yKGlu
dCByZWcsIGludCBzaGlmdFJlZykKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKHJlZyA8
PSBBUk06OnBjKTsKLSAgICAgICAgICAgIEFTU0VSVChzaGlmdFJlZyA8PSBBUk06OnBjKTsKKyAg
ICAgICAgICAgIEFTU0VSVChyZWcgPD0gQVJNUmVnaXN0ZXJzOjpwYyk7CisgICAgICAgICAgICBB
U1NFUlQoc2hpZnRSZWcgPD0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgICAgICByZXR1cm4g
cmVnIHwgKHNoaWZ0UmVnIDw8IDgpIHwgMHgzMDsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRp
YyBBUk1Xb3JkIGFzcl9yKGludCByZWcsIGludCBzaGlmdFJlZykKICAgICAgICAgewotICAgICAg
ICAgICAgQVNTRVJUKHJlZyA8PSBBUk06OnBjKTsKLSAgICAgICAgICAgIEFTU0VSVChzaGlmdFJl
ZyA8PSBBUk06OnBjKTsKKyAgICAgICAgICAgIEFTU0VSVChyZWcgPD0gQVJNUmVnaXN0ZXJzOjpw
Yyk7CisgICAgICAgICAgICBBU1NFUlQoc2hpZnRSZWcgPD0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAg
ICAgICAgICAgICByZXR1cm4gcmVnIHwgKHNoaWZ0UmVnIDw8IDgpIHwgMHg1MDsKICAgICAgICAg
fQogCkBAIC01NzYsNyArNTc2LDcgQEAgbmFtZXNwYWNlIEFSTSB7CiAgICAgICAgIEptcERzdCBh
bGlnbihpbnQgYWxpZ25tZW50KQogICAgICAgICB7CiAgICAgICAgICAgICB3aGlsZSAoIW1fYnVm
ZmVyLmlzQWxpZ25lZChhbGlnbm1lbnQpKQotICAgICAgICAgICAgICAgIG1vdl9yKEFSTTo6cjAs
IEFSTTo6cjApOworICAgICAgICAgICAgICAgIG1vdl9yKEFSTVJlZ2lzdGVyczo6cjAsIEFSTVJl
Z2lzdGVyczo6cjApOwogCiAgICAgICAgICAgICByZXR1cm4gbGFiZWwoKTsKICAgICAgICAgfQpA
QCAtNTg1LDcgKzU4NSw3IEBAIG5hbWVzcGFjZSBBUk0gewogICAgICAgICB7CiAgICAgICAgICAg
ICBlbnN1cmVTcGFjZShzaXplb2YoQVJNV29yZCksIHNpemVvZihBUk1Xb3JkKSk7CiAgICAgICAg
ICAgICBpbnQgcyA9IG1fYnVmZmVyLnVuY2hlY2tlZFNpemUoKTsKLSAgICAgICAgICAgIGxkcl91
bl9pbW0oQVJNOjpwYywgMHhmZmZmZmZmZiwgY2MpOworICAgICAgICAgICAgbGRyX3VuX2ltbShB
Uk1SZWdpc3RlcnM6OnBjLCAweGZmZmZmZmZmLCBjYyk7CiAgICAgICAgICAgICBtX2p1bXBzLmFw
cGVuZChzIHwgKHVzZUNvbnN0YW50UG9vbCAmIDB4MSkpOwogICAgICAgICAgICAgcmV0dXJuIEpt
cFNyYyhzKTsKICAgICAgICAgfQpAQCAtNzI5LDI1ICs3MjksMjUgQEAgbmFtZXNwYWNlIEFSTSB7
CiAgICAgcHJpdmF0ZToKICAgICAgICAgQVJNV29yZCBSTShpbnQgcmVnKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFSTTo6cGMpOworICAgICAgICAgICAgQVNTRVJUKHJl
ZyA8PSBBUk1SZWdpc3RlcnM6OnBjKTsKICAgICAgICAgICAgIHJldHVybiByZWc7CiAgICAgICAg
IH0KIAogICAgICAgICBBUk1Xb3JkIFJTKGludCByZWcpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IEFTU0VSVChyZWcgPD0gQVJNOjpwYyk7CisgICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFSTVJl
Z2lzdGVyczo6cGMpOwogICAgICAgICAgICAgcmV0dXJuIHJlZyA8PCA4OwogICAgICAgICB9CiAK
ICAgICAgICAgQVJNV29yZCBSRChpbnQgcmVnKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NF
UlQocmVnIDw9IEFSTTo6cGMpOworICAgICAgICAgICAgQVNTRVJUKHJlZyA8PSBBUk1SZWdpc3Rl
cnM6OnBjKTsKICAgICAgICAgICAgIHJldHVybiByZWcgPDwgMTI7CiAgICAgICAgIH0KIAogICAg
ICAgICBBUk1Xb3JkIFJOKGludCByZWcpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChy
ZWcgPD0gQVJNOjpwYyk7CisgICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFSTVJlZ2lzdGVyczo6
cGMpOwogICAgICAgICAgICAgcmV0dXJuIHJlZyA8PCAxNjsKICAgICAgICAgfQogCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCmluZGV4IDdjZjg4NzMuLjYyZTY4ZDYg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisr
KyBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC00MDcsOCAr
NDA3LDggQEAgcmVnaXN0ZXIgd3JpdGViYWNrCiAKIGNsYXNzIEFSTXY3QXNzZW1ibGVyIHsKIHB1
YmxpYzoKLSAgICB0eXBlZGVmIEFSTTo6UmVnaXN0ZXJJRCBSZWdpc3RlcklEOwotICAgIHR5cGVk
ZWYgQVJNOjpGUFJlZ2lzdGVySUQgRlBSZWdpc3RlcklEOworICAgIHR5cGVkZWYgQVJNUmVnaXN0
ZXJzOjpSZWdpc3RlcklEIFJlZ2lzdGVySUQ7CisgICAgdHlwZWRlZiBBUk1SZWdpc3RlcnM6OkZQ
UmVnaXN0ZXJJRCBGUFJlZ2lzdGVySUQ7CiAKICAgICAvLyAoSFMsIExPLCBISSwgTFMpIC0+IChB
RSwgQiwgQSwgQkUpCiAgICAgLy8gKFZTLCBWQykgLT4gKE8sIE5PKQpAQCAtNDgwLDcgKzQ4MCw3
IEBAIHByaXZhdGU6CiAgICAgLy8gQVJNdjcsIEFwcHgtQS42LjMKICAgICBib29sIEJhZFJlZyhS
ZWdpc3RlcklEIHJlZykKICAgICB7Ci0gICAgICAgIHJldHVybiAocmVnID09IEFSTTo6c3ApIHx8
IChyZWcgPT0gQVJNOjpwYyk7CisgICAgICAgIHJldHVybiAocmVnID09IEFSTVJlZ2lzdGVyczo6
c3ApIHx8IChyZWcgPT0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgfQogCiAgICAgYm9vbCBpc1Np
bmdsZVJlZ2lzdGVyKEZQUmVnaXN0ZXJJRCByZWcpCkBAIC02OTIsMTYgKzY5MiwxNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGQoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgQVJNVGh1bWJJ
bW1lZGlhdGUgaW1tKQogICAgIHsKICAgICAgICAgLy8gUmQgY2FuIG9ubHkgYmUgU1AgaWYgUm4g
aXMgYWxzbyBTUC4KLSAgICAgICAgQVNTRVJUKChyZCAhPSBBUk06OnNwKSB8fCAocm4gPT0gQVJN
OjpzcCkpOwotICAgICAgICBBU1NFUlQocmQgIT0gQVJNOjpwYyk7Ci0gICAgICAgIEFTU0VSVChy
biAhPSBBUk06OnBjKTsKKyAgICAgICAgQVNTRVJUKChyZCAhPSBBUk1SZWdpc3RlcnM6OnNwKSB8
fCAocm4gPT0gQVJNUmVnaXN0ZXJzOjpzcCkpOworICAgICAgICBBU1NFUlQocmQgIT0gQVJNUmVn
aXN0ZXJzOjpwYyk7CisgICAgICAgIEFTU0VSVChybiAhPSBBUk1SZWdpc3RlcnM6OnBjKTsKICAg
ICAgICAgQVNTRVJUKGltbS5pc1ZhbGlkKCkpOwogCi0gICAgICAgIGlmIChybiA9PSBBUk06OnNw
KSB7CisgICAgICAgIGlmIChybiA9PSBBUk1SZWdpc3RlcnM6OnNwKSB7CiAgICAgICAgICAgICBp
ZiAoIShyZCAmIDgpICYmIGltbS5pc1VJbnQxMCgpKSB7CiAgICAgICAgICAgICAgICAgbV9mb3Jt
YXR0ZXIub25lV29yZE9wNVJlZzNJbW04KE9QX0FERF9TUF9pbW1fVDEsIHJkLCBpbW0uZ2V0VUlu
dDEwKCkgPj4gMik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfSBlbHNl
IGlmICgocmQgPT0gQVJNOjpzcCkgJiYgaW1tLmlzVUludDkoKSkgeworICAgICAgICAgICAgfSBl
bHNlIGlmICgocmQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgJiYgaW1tLmlzVUludDkoKSkgewogICAg
ICAgICAgICAgICAgIG1fZm9ybWF0dGVyLm9uZVdvcmRPcDlJbW03KE9QX0FERF9TUF9pbW1fVDIs
IGltbS5nZXRVSW50OSgpID4+IDIpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIH0KQEAgLTcyNSw5ICs3MjUsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZChSZWdpc3Rl
cklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCBTaGlmdFR5cGVBbmRBbW91bnQg
c2hpZnQpCiAgICAgewotICAgICAgICBBU1NFUlQoKHJkICE9IEFSTTo6c3ApIHx8IChybiA9PSBB
Uk06OnNwKSk7Ci0gICAgICAgIEFTU0VSVChyZCAhPSBBUk06OnBjKTsKLSAgICAgICAgQVNTRVJU
KHJuICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQoKHJkICE9IEFSTVJlZ2lzdGVyczo6c3Ap
IHx8IChybiA9PSBBUk1SZWdpc3RlcnM6OnNwKSk7CisgICAgICAgIEFTU0VSVChyZCAhPSBBUk1S
ZWdpc3RlcnM6OnBjKTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOwog
ICAgICAgICBBU1NFUlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3Jk
T3AxMlJlZzRGb3VyRm91cnMoT1BfQUREX3JlZ19UMywgcm4sIEZvdXJGb3VycyhzaGlmdC5oaTQo
KSwgcmQsIHNoaWZ0LmxvNCgpLCBybSkpOwogICAgIH0KQEAgLTc0OSw5ICs3NDksOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBhZGRfUyhSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBBUk1UaHVt
YkltbWVkaWF0ZSBpbW0pCiAgICAgewogICAgICAgICAvLyBSZCBjYW4gb25seSBiZSBTUCBpZiBS
biBpcyBhbHNvIFNQLgotICAgICAgICBBU1NFUlQoKHJkICE9IEFSTTo6c3ApIHx8IChybiA9PSBB
Uk06OnNwKSk7Ci0gICAgICAgIEFTU0VSVChyZCAhPSBBUk06OnBjKTsKLSAgICAgICAgQVNTRVJU
KHJuICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQoKHJkICE9IEFSTVJlZ2lzdGVyczo6c3Ap
IHx8IChybiA9PSBBUk1SZWdpc3RlcnM6OnNwKSk7CisgICAgICAgIEFTU0VSVChyZCAhPSBBUk1S
ZWdpc3RlcnM6OnBjKTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOwog
ICAgICAgICBBU1NFUlQoaW1tLmlzRW5jb2RlZEltbSgpKTsKIAogICAgICAgICBpZiAoISgocmQg
fCBybikgJiA4KSkgewpAQCAtNzcwLDkgKzc3MCw5IEBAIHB1YmxpYzoKICAgICAvLyBOb3QgYWxs
b3dlZCBpbiBhbiBJVCAoaWYgdGhlbikgYmxvY2s/CiAgICAgdm9pZCBhZGRfUyhSZWdpc3RlcklE
IHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCBTaGlmdFR5cGVBbmRBbW91bnQgc2hp
ZnQpCiAgICAgewotICAgICAgICBBU1NFUlQoKHJkICE9IEFSTTo6c3ApIHx8IChybiA9PSBBUk06
OnNwKSk7Ci0gICAgICAgIEFTU0VSVChyZCAhPSBBUk06OnBjKTsKLSAgICAgICAgQVNTRVJUKHJu
ICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQoKHJkICE9IEFSTVJlZ2lzdGVyczo6c3ApIHx8
IChybiA9PSBBUk1SZWdpc3RlcnM6OnNwKSk7CisgICAgICAgIEFTU0VSVChyZCAhPSBBUk1SZWdp
c3RlcnM6OnBjKTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOwogICAg
ICAgICBBU1NFUlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3Ax
MlJlZzRGb3VyRm91cnMoT1BfQUREX1NfcmVnX1QzLCBybiwgRm91ckZvdXJzKHNoaWZ0LmhpNCgp
LCByZCwgc2hpZnQubG80KCksIHJtKSk7CiAgICAgfQpAQCAtODM4LDcgKzgzOCw3IEBAIHB1Ymxp
YzoKICAgICAvLyBPbmx5IGFsbG93ZWQgaW4gSVQgKGlmIHRoZW4pIGJsb2NrIGlmIGxhc3QgaW5z
dHJ1Y3Rpb24uCiAgICAgSm1wU3JjIGJseChSZWdpc3RlcklEIHJtKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKHJtICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQocm0gIT0gQVJNUmVnaXN0ZXJz
OjpwYyk7CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZVdvcmRPcDhSZWdSZWcxNDMoT1BfQkxYLCBy
bSwgKFJlZ2lzdGVySUQpOCk7CiAgICAgICAgIHJldHVybiBKbXBTcmMobV9mb3JtYXR0ZXIuc2l6
ZSgpKTsKICAgICB9CkBAIC04NTcsNyArODU3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbW4o
UmVnaXN0ZXJJRCBybiwgQVJNVGh1bWJJbW1lZGlhdGUgaW1tKQogICAgIHsKLSAgICAgICAgQVNT
RVJUKHJuICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpw
Yyk7CiAgICAgICAgIEFTU0VSVChpbW0uaXNFbmNvZGVkSW1tKCkpOwogCiAgICAgICAgIG1fZm9y
bWF0dGVyLnR3b1dvcmRPcDVpNkltbTRSZWc0RW5jb2RlZEltbShPUF9DTU5faW1tLCBybiwgKFJl
Z2lzdGVySUQpMHhmLCBpbW0pOwpAQCAtODY1LDcgKzg2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgY21wKFJlZ2lzdGVySUQgcm4sIEFSTVRodW1iSW1tZWRpYXRlIGltbSkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChybiAhPSBBUk06OnBjKTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lz
dGVyczo6cGMpOwogICAgICAgICBBU1NFUlQoaW1tLmlzRW5jb2RlZEltbSgpKTsKIAogICAgICAg
ICBpZiAoIShybiAmIDgpICYmIGltbS5pc1VJbnQ4KCkpCkBAIC04NzYsNyArODc2LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBjbXAoUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSwgU2hpZnRU
eXBlQW5kQW1vdW50IHNoaWZ0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKHJuICE9IEFSTTo6cGMp
OworICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgIEFTU0VS
VCghQmFkUmVnKHJtKSk7CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDEyUmVnNEZvdXJG
b3VycyhPUF9DTVBfcmVnX1QyLCBybiwgRm91ckZvdXJzKHNoaWZ0LmhpNCgpLCAweGYsIHNoaWZ0
LmxvNCgpLCBybSkpOwogICAgIH0KQEAgLTkzOCwxNSArOTM4LDE1IEBAIHB1YmxpYzoKICAgICAg
ICAgbV9mb3JtYXR0ZXIub25lV29yZE9wOEltbTgoT1BfSVQsIGlmVGhlbkVsc2UoY29uZCwgaW5z
dDJpZiwgaW5zdDNpZiwgaW5zdDRpZikpOwogICAgIH0KIAotICAgIC8vIHJ0ID09IEFSTTo6cGMg
b25seSBhbGxvd2VkIGlmIGxhc3QgaW5zdHJ1Y3Rpb24gaW4gSVQgKGlmIHRoZW4pIGJsb2NrLgor
ICAgIC8vIHJ0ID09IEFSTVJlZ2lzdGVyczo6cGMgb25seSBhbGxvd2VkIGlmIGxhc3QgaW5zdHJ1
Y3Rpb24gaW4gSVQgKGlmIHRoZW4pIGJsb2NrLgogICAgIHZvaWQgbGRyKFJlZ2lzdGVySUQgcnQs
IFJlZ2lzdGVySUQgcm4sIEFSTVRodW1iSW1tZWRpYXRlIGltbSkKICAgICB7Ci0gICAgICAgIEFT
U0VSVChybiAhPSBBUk06OnBjKTsgLy8gTERSIChsaXRlcmFsKQorICAgICAgICBBU1NFUlQocm4g
IT0gQVJNUmVnaXN0ZXJzOjpwYyk7IC8vIExEUiAobGl0ZXJhbCkKICAgICAgICAgQVNTRVJUKGlt
bS5pc1VJbnQxMigpKTsKIAogICAgICAgICBpZiAoISgocnQgfCBybikgJiA4KSAmJiBpbW0uaXNV
SW50NygpKQogICAgICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wNUltbTVSZWczUmVnMyhP
UF9MRFJfaW1tX1QxLCBpbW0uZ2V0VUludDcoKSA+PiAyLCBybiwgcnQpOwotICAgICAgICBlbHNl
IGlmICgocm4gPT0gQVJNOjpzcCkgJiYgIShydCAmIDgpICYmIGltbS5pc1VJbnQxMCgpKQorICAg
ICAgICBlbHNlIGlmICgocm4gPT0gQVJNUmVnaXN0ZXJzOjpzcCkgJiYgIShydCAmIDgpICYmIGlt
bS5pc1VJbnQxMCgpKQogICAgICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wNVJlZzNJbW04
KE9QX0xEUl9pbW1fVDIsIHJ0LCBpbW0uZ2V0VUludDEwKCkgPj4gMik7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDEyUmVnNFJlZzRJbW0xMihPUF9MRFJf
aW1tX1QzLCBybiwgcnQsIGltbS5nZXRVSW50MTIoKSk7CkBAIC05NjUsOCArOTY1LDggQEAgcHVi
bGljOgogICAgIC8vIGlmICh3YmFjaykgUkVHW3JuXSA9IF90bXAKICAgICB2b2lkIGxkcihSZWdp
c3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBpbnQgb2Zmc2V0LCBib29sIGluZGV4LCBib29sIHdi
YWNrKQogICAgIHsKLSAgICAgICAgQVNTRVJUKHJ0ICE9IEFSTTo6cGMpOwotICAgICAgICBBU1NF
UlQocm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVChydCAhPSBBUk1SZWdpc3RlcnM6OnBj
KTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOwogICAgICAgICBBU1NF
UlQoaW5kZXggfHwgd2JhY2spOwogICAgICAgICBBU1NFUlQoIXdiYWNrIHwgKHJ0ICE9IHJuKSk7
CiAgICAgCkBAIC05ODUsMTAgKzk4NSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIG1fZm9ybWF0dGVy
LnR3b1dvcmRPcDEyUmVnNFJlZzRJbW0xMihPUF9MRFJfaW1tX1Q0LCBybiwgcnQsIG9mZnNldCk7
CiAgICAgfQogCi0gICAgLy8gcnQgPT0gQVJNOjpwYyBvbmx5IGFsbG93ZWQgaWYgbGFzdCBpbnN0
cnVjdGlvbiBpbiBJVCAoaWYgdGhlbikgYmxvY2suCisgICAgLy8gcnQgPT0gQVJNUmVnaXN0ZXJz
OjpwYyBvbmx5IGFsbG93ZWQgaWYgbGFzdCBpbnN0cnVjdGlvbiBpbiBJVCAoaWYgdGhlbikgYmxv
Y2suCiAgICAgdm9pZCBsZHIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJ
RCBybSwgdW5zaWduZWQgc2hpZnQ9MCkKICAgICB7Ci0gICAgICAgIEFTU0VSVChybiAhPSBBUk06
OnBjKTsgLy8gTERSIChsaXRlcmFsKQorICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJz
OjpwYyk7IC8vIExEUiAobGl0ZXJhbCkKICAgICAgICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAg
ICAgICAgQVNTRVJUKHNoaWZ0IDw9IDMpOwogCkBAIC05OTgsMTAgKzk5OCwxMCBAQCBwdWJsaWM6
CiAgICAgICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJlZzRGb3VyRm91cnMoT1BfTERS
X3JlZ19UMiwgcm4sIEZvdXJGb3VycyhydCwgMCwgc2hpZnQsIHJtKSk7CiAgICAgfQogCi0gICAg
Ly8gcnQgPT0gQVJNOjpwYyBvbmx5IGFsbG93ZWQgaWYgbGFzdCBpbnN0cnVjdGlvbiBpbiBJVCAo
aWYgdGhlbikgYmxvY2suCisgICAgLy8gcnQgPT0gQVJNUmVnaXN0ZXJzOjpwYyBvbmx5IGFsbG93
ZWQgaWYgbGFzdCBpbnN0cnVjdGlvbiBpbiBJVCAoaWYgdGhlbikgYmxvY2suCiAgICAgdm9pZCBs
ZHJoKFJlZ2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIEFSTVRodW1iSW1tZWRpYXRlIGltbSkK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChybiAhPSBBUk06OnBjKTsgLy8gTERSIChsaXRlcmFsKQor
ICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpwYyk7IC8vIExEUiAobGl0ZXJhbCkK
ICAgICAgICAgQVNTRVJUKGltbS5pc1VJbnQxMigpKTsKIAogICAgICAgICBpZiAoISgocnQgfCBy
bikgJiA4KSAmJiBpbW0uaXNVSW50NigpKQpAQCAtMTAyMyw4ICsxMDIzLDggQEAgcHVibGljOgog
ICAgIC8vIGlmICh3YmFjaykgUkVHW3JuXSA9IF90bXAKICAgICB2b2lkIGxkcmgoUmVnaXN0ZXJJ
RCBydCwgUmVnaXN0ZXJJRCBybiwgaW50IG9mZnNldCwgYm9vbCBpbmRleCwgYm9vbCB3YmFjaykK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChydCAhPSBBUk06OnBjKTsKLSAgICAgICAgQVNTRVJUKHJu
ICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQocnQgIT0gQVJNUmVnaXN0ZXJzOjpwYyk7Cisg
ICAgICAgIEFTU0VSVChybiAhPSBBUk1SZWdpc3RlcnM6OnBjKTsKICAgICAgICAgQVNTRVJUKGlu
ZGV4IHx8IHdiYWNrKTsKICAgICAgICAgQVNTRVJUKCF3YmFjayB8IChydCAhPSBybikpOwogICAg
IApAQCAtMTA0Niw3ICsxMDQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgbGRyaChSZWdpc3RlcklE
IHJ0LCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCB1bnNpZ25lZCBzaGlmdD0wKQogICAg
IHsKICAgICAgICAgQVNTRVJUKCFCYWRSZWcocnQpKTsgICAvLyBNZW1vcnkgaGludAotICAgICAg
ICBBU1NFUlQocm4gIT0gQVJNOjpwYyk7IC8vIExEUkggKGxpdGVyYWwpCisgICAgICAgIEFTU0VS
VChybiAhPSBBUk1SZWdpc3RlcnM6OnBjKTsgLy8gTERSSCAobGl0ZXJhbCkKICAgICAgICAgQVNT
RVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgQVNTRVJUKHNoaWZ0IDw9IDMpOwogCkBAIC0xMTk3
LDE2ICsxMTk3LDE2IEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJS
ZWc0Rm91ckZvdXJzKE9QX1NNVUxMX1QxLCBybiwgRm91ckZvdXJzKHJkTG8sIHJkSGksIDAsIHJt
KSk7CiAgICAgfQogCi0gICAgLy8gcnQgPT0gQVJNOjpwYyBvbmx5IGFsbG93ZWQgaWYgbGFzdCBp
bnN0cnVjdGlvbiBpbiBJVCAoaWYgdGhlbikgYmxvY2suCisgICAgLy8gcnQgPT0gQVJNUmVnaXN0
ZXJzOjpwYyBvbmx5IGFsbG93ZWQgaWYgbGFzdCBpbnN0cnVjdGlvbiBpbiBJVCAoaWYgdGhlbikg
YmxvY2suCiAgICAgdm9pZCBzdHIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgQVJNVGh1
bWJJbW1lZGlhdGUgaW1tKQogICAgIHsKLSAgICAgICAgQVNTRVJUKHJ0ICE9IEFSTTo6cGMpOwot
ICAgICAgICBBU1NFUlQocm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVChydCAhPSBBUk1S
ZWdpc3RlcnM6OnBjKTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOwog
ICAgICAgICBBU1NFUlQoaW1tLmlzVUludDEyKCkpOwogCiAgICAgICAgIGlmICghKChydCB8IHJu
KSAmIDgpICYmIGltbS5pc1VJbnQ3KCkpCiAgICAgICAgICAgICBtX2Zvcm1hdHRlci5vbmVXb3Jk
T3A1SW1tNVJlZzNSZWczKE9QX1NUUl9pbW1fVDEsIGltbS5nZXRVSW50NygpID4+IDIsIHJuLCBy
dCk7Ci0gICAgICAgIGVsc2UgaWYgKChybiA9PSBBUk06OnNwKSAmJiAhKHJ0ICYgOCkgJiYgaW1t
LmlzVUludDEwKCkpCisgICAgICAgIGVsc2UgaWYgKChybiA9PSBBUk1SZWdpc3RlcnM6OnNwKSAm
JiAhKHJ0ICYgOCkgJiYgaW1tLmlzVUludDEwKCkpCiAgICAgICAgICAgICBtX2Zvcm1hdHRlci5v
bmVXb3JkT3A1UmVnM0ltbTgoT1BfU1RSX2ltbV9UMiwgcnQsIGltbS5nZXRVSW50MTAoKSA+PiAy
KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0
UmVnNEltbTEyKE9QX1NUUl9pbW1fVDMsIHJuLCBydCwgaW1tLmdldFVJbnQxMigpKTsKQEAgLTEy
MjUsOCArMTIyNSw4IEBAIHB1YmxpYzoKICAgICAvLyBpZiAod2JhY2spIFJFR1tybl0gPSBfdG1w
CiAgICAgdm9pZCBzdHIoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgaW50IG9mZnNldCwg
Ym9vbCBpbmRleCwgYm9vbCB3YmFjaykKICAgICB7Ci0gICAgICAgIEFTU0VSVChydCAhPSBBUk06
OnBjKTsKLSAgICAgICAgQVNTRVJUKHJuICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQocnQg
IT0gQVJNUmVnaXN0ZXJzOjpwYyk7CisgICAgICAgIEFTU0VSVChybiAhPSBBUk1SZWdpc3RlcnM6
OnBjKTsKICAgICAgICAgQVNTRVJUKGluZGV4IHx8IHdiYWNrKTsKICAgICAgICAgQVNTRVJUKCF3
YmFjayB8IChydCAhPSBybikpOwogICAgIApAQCAtMTI0NSwxMCArMTI0NSwxMCBAQCBwdWJsaWM6
CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDEyUmVnNFJlZzRJbW0xMihPUF9TVFJfaW1t
X1Q0LCBybiwgcnQsIG9mZnNldCk7CiAgICAgfQogCi0gICAgLy8gcnQgPT0gQVJNOjpwYyBvbmx5
IGFsbG93ZWQgaWYgbGFzdCBpbnN0cnVjdGlvbiBpbiBJVCAoaWYgdGhlbikgYmxvY2suCisgICAg
Ly8gcnQgPT0gQVJNUmVnaXN0ZXJzOjpwYyBvbmx5IGFsbG93ZWQgaWYgbGFzdCBpbnN0cnVjdGlv
biBpbiBJVCAoaWYgdGhlbikgYmxvY2suCiAgICAgdm9pZCBzdHIoUmVnaXN0ZXJJRCBydCwgUmVn
aXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSwgdW5zaWduZWQgc2hpZnQ9MCkKICAgICB7Ci0gICAg
ICAgIEFTU0VSVChybiAhPSBBUk06OnBjKTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lz
dGVyczo6cGMpOwogICAgICAgICBBU1NFUlQoIUJhZFJlZyhybSkpOwogICAgICAgICBBU1NFUlQo
c2hpZnQgPD0gMyk7CiAKQEAgLTEyNjEsMTIgKzEyNjEsMTIgQEAgcHVibGljOgogICAgIHZvaWQg
c3ViKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIEFSTVRodW1iSW1tZWRpYXRlIGltbSkK
ICAgICB7CiAgICAgICAgIC8vIFJkIGNhbiBvbmx5IGJlIFNQIGlmIFJuIGlzIGFsc28gU1AuCi0g
ICAgICAgIEFTU0VSVCgocmQgIT0gQVJNOjpzcCkgfHwgKHJuID09IEFSTTo6c3ApKTsKLSAgICAg
ICAgQVNTRVJUKHJkICE9IEFSTTo6cGMpOwotICAgICAgICBBU1NFUlQocm4gIT0gQVJNOjpwYyk7
CisgICAgICAgIEFTU0VSVCgocmQgIT0gQVJNUmVnaXN0ZXJzOjpzcCkgfHwgKHJuID09IEFSTVJl
Z2lzdGVyczo6c3ApKTsKKyAgICAgICAgQVNTRVJUKHJkICE9IEFSTVJlZ2lzdGVyczo6cGMpOwor
ICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgIEFTU0VSVChp
bW0uaXNWYWxpZCgpKTsKIAotICAgICAgICBpZiAoKHJuID09IEFSTTo6c3ApICYmIChyZCA9PSBB
Uk06OnNwKSAmJiBpbW0uaXNVSW50OSgpKSB7CisgICAgICAgIGlmICgocm4gPT0gQVJNUmVnaXN0
ZXJzOjpzcCkgJiYgKHJkID09IEFSTVJlZ2lzdGVyczo6c3ApICYmIGltbS5pc1VJbnQ5KCkpIHsK
ICAgICAgICAgICAgIG1fZm9ybWF0dGVyLm9uZVdvcmRPcDlJbW03KE9QX1NVQl9TUF9pbW1fVDEs
IGltbS5nZXRVSW50OSgpID4+IDIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9IGVs
c2UgaWYgKCEoKHJkIHwgcm4pICYgOCkpIHsKQEAgLTEyODksOSArMTI4OSw5IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc3ViKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQg
cm0sIFNoaWZ0VHlwZUFuZEFtb3VudCBzaGlmdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVCgocmQg
IT0gQVJNOjpzcCkgfHwgKHJuID09IEFSTTo6c3ApKTsKLSAgICAgICAgQVNTRVJUKHJkICE9IEFS
TTo6cGMpOwotICAgICAgICBBU1NFUlQocm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVCgo
cmQgIT0gQVJNUmVnaXN0ZXJzOjpzcCkgfHwgKHJuID09IEFSTVJlZ2lzdGVyczo6c3ApKTsKKyAg
ICAgICAgQVNTRVJUKHJkICE9IEFSTVJlZ2lzdGVyczo6cGMpOworICAgICAgICBBU1NFUlQocm4g
IT0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgIEFTU0VSVCghQmFkUmVnKHJtKSk7CiAgICAg
ICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDEyUmVnNEZvdXJGb3VycyhPUF9TVUJfcmVnX1QyLCBy
biwgRm91ckZvdXJzKHNoaWZ0LmhpNCgpLCByZCwgc2hpZnQubG80KCksIHJtKSk7CiAgICAgfQpA
QCAtMTMwOSwxMiArMTMwOSwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdWJfUyhSZWdpc3RlcklE
IHJkLCBSZWdpc3RlcklEIHJuLCBBUk1UaHVtYkltbWVkaWF0ZSBpbW0pCiAgICAgewogICAgICAg
ICAvLyBSZCBjYW4gb25seSBiZSBTUCBpZiBSbiBpcyBhbHNvIFNQLgotICAgICAgICBBU1NFUlQo
KHJkICE9IEFSTTo6c3ApIHx8IChybiA9PSBBUk06OnNwKSk7Ci0gICAgICAgIEFTU0VSVChyZCAh
PSBBUk06OnBjKTsKLSAgICAgICAgQVNTRVJUKHJuICE9IEFSTTo6cGMpOworICAgICAgICBBU1NF
UlQoKHJkICE9IEFSTVJlZ2lzdGVyczo6c3ApIHx8IChybiA9PSBBUk1SZWdpc3RlcnM6OnNwKSk7
CisgICAgICAgIEFTU0VSVChyZCAhPSBBUk1SZWdpc3RlcnM6OnBjKTsKKyAgICAgICAgQVNTRVJU
KHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOwogICAgICAgICBBU1NFUlQoaW1tLmlzVmFsaWQoKSk7
CiAKLSAgICAgICAgaWYgKChybiA9PSBBUk06OnNwKSAmJiAocmQgPT0gQVJNOjpzcCkgJiYgaW1t
LmlzVUludDkoKSkgeworICAgICAgICBpZiAoKHJuID09IEFSTVJlZ2lzdGVyczo6c3ApICYmIChy
ZCA9PSBBUk1SZWdpc3RlcnM6OnNwKSAmJiBpbW0uaXNVSW50OSgpKSB7CiAgICAgICAgICAgICBt
X2Zvcm1hdHRlci5vbmVXb3JkT3A5SW1tNyhPUF9TVUJfU1BfaW1tX1QxLCBpbW0uZ2V0VUludDko
KSA+PiAyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfSBlbHNlIGlmICghKChyZCB8
IHJuKSAmIDgpKSB7CkBAIC0xMzMzLDkgKzEzMzMsOSBAQCBwdWJsaWM6CiAgICAgLy8gTm90IGFs
bG93ZWQgaW4gYW4gSVQgKGlmIHRoZW4pIGJsb2NrPwogICAgIHZvaWQgc3ViX1MoUmVnaXN0ZXJJ
RCByZCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJRCBybSwgU2hpZnRUeXBlQW5kQW1vdW50IHNo
aWZ0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKChyZCAhPSBBUk06OnNwKSB8fCAocm4gPT0gQVJN
OjpzcCkpOwotICAgICAgICBBU1NFUlQocmQgIT0gQVJNOjpwYyk7Ci0gICAgICAgIEFTU0VSVChy
biAhPSBBUk06OnBjKTsKKyAgICAgICAgQVNTRVJUKChyZCAhPSBBUk1SZWdpc3RlcnM6OnNwKSB8
fCAocm4gPT0gQVJNUmVnaXN0ZXJzOjpzcCkpOworICAgICAgICBBU1NFUlQocmQgIT0gQVJNUmVn
aXN0ZXJzOjpwYyk7CisgICAgICAgIEFTU0VSVChybiAhPSBBUk1SZWdpc3RlcnM6OnBjKTsKICAg
ICAgICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9w
MTJSZWc0Rm91ckZvdXJzKE9QX1NVQl9TX3JlZ19UMiwgcm4sIEZvdXJGb3VycyhzaGlmdC5oaTQo
KSwgcmQsIHNoaWZ0LmxvNCgpLCBybSkpOwogICAgIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5oIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKaW5kZXggMTljYmZjYi4uMWE0MjkwZCAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKKysrIGIvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmgKQEAgLTY0LDcgKzY0LDcg
QEAgcHVibGljOgogICAgICAgICBEb3VibGVMZXNzVGhhbk9yRXF1YWwgPSBBUk1Bc3NlbWJsZXI6
OkxFLAogICAgIH07CiAKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJS
ZWdpc3RlciA9IEFSTTo6c3A7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgc3RhY2tQb2lu
dGVyUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnNwOwogCiAgICAgc3RhdGljIGNvbnN0IFNjYWxl
IFNjYWxlUHRyID0gVGltZXNGb3VyOwogCkBAIC03NSwyMCArNzUsMjAgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBhZGQzMihJbW0zMiBpbW0sIEFkZHJlc3MgYWRkcmVzcykKICAgICB7Ci0gICAgICAg
IGxvYWQzMihhZGRyZXNzLCBBUk06OlMxKTsKLSAgICAgICAgYWRkMzIoaW1tLCBBUk06OlMxKTsK
LSAgICAgICAgc3RvcmUzMihBUk06OlMxLCBhZGRyZXNzKTsKKyAgICAgICAgbG9hZDMyKGFkZHJl
c3MsIEFSTVJlZ2lzdGVyczo6UzEpOworICAgICAgICBhZGQzMihpbW0sIEFSTVJlZ2lzdGVyczo6
UzEpOworICAgICAgICBzdG9yZTMyKEFSTVJlZ2lzdGVyczo6UzEsIGFkZHJlc3MpOwogICAgIH0K
IAogICAgIHZvaWQgYWRkMzIoSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAg
ICAgICBtX2Fzc2VtYmxlci5hZGRzX3IoZGVzdCwgZGVzdCwgbV9hc3NlbWJsZXIuZ2V0SW1tKGlt
bS5tX3ZhbHVlLCBBUk06OlMwKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmFkZHNfcihkZXN0LCBk
ZXN0LCBtX2Fzc2VtYmxlci5nZXRJbW0oaW1tLm1fdmFsdWUsIEFSTVJlZ2lzdGVyczo6UzApKTsK
ICAgICB9CiAKICAgICB2b2lkIGFkZDMyKEFkZHJlc3Mgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAg
ICAgewotICAgICAgICBsb2FkMzIoc3JjLCBBUk06OlMxKTsKLSAgICAgICAgYWRkMzIoQVJNOjpT
MSwgZGVzdCk7CisgICAgICAgIGxvYWQzMihzcmMsIEFSTVJlZ2lzdGVyczo6UzEpOworICAgICAg
ICBhZGQzMihBUk1SZWdpc3RlcnM6OlMxLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIGFuZDMy
KFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCkBAIC05OCw3ICs5OCw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgYW5kMzIoSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewot
ICAgICAgICBBUk1Xb3JkIHcgPSBtX2Fzc2VtYmxlci5nZXRJbW0oaW1tLm1fdmFsdWUsIEFSTTo6
UzAsIHRydWUpOworICAgICAgICBBUk1Xb3JkIHcgPSBtX2Fzc2VtYmxlci5nZXRJbW0oaW1tLm1f
dmFsdWUsIEFSTVJlZ2lzdGVyczo6UzAsIHRydWUpOwogICAgICAgICBpZiAodyAmIEFSTUFzc2Vt
Ymxlcjo6T1AyX0lOVl9JTU0pCiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5iaWNzX3IoZGVzdCwg
ZGVzdCwgdyAmIH5BUk1Bc3NlbWJsZXI6Ok9QMl9JTlZfSU1NKTsKICAgICAgICAgZWxzZQpAQCAt
MTE4LDE2ICsxMTgsMTYgQEAgcHVibGljOgogICAgIHZvaWQgbXVsMzIoUmVnaXN0ZXJJRCBzcmMs
IFJlZ2lzdGVySUQgZGVzdCkKICAgICB7CiAgICAgICAgIGlmIChzcmMgPT0gZGVzdCkgewotICAg
ICAgICAgICAgbW92ZShzcmMsIEFSTTo6UzApOwotICAgICAgICAgICAgc3JjID0gQVJNOjpTMDsK
KyAgICAgICAgICAgIG1vdmUoc3JjLCBBUk1SZWdpc3RlcnM6OlMwKTsKKyAgICAgICAgICAgIHNy
YyA9IEFSTVJlZ2lzdGVyczo6UzA7CiAgICAgICAgIH0KICAgICAgICAgbV9hc3NlbWJsZXIubXVs
c19yKGRlc3QsIGRlc3QsIHNyYyk7CiAgICAgfQogCiAgICAgdm9pZCBtdWwzMihJbW0zMiBpbW0s
IFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtb3ZlKGlt
bSwgQVJNOjpTMCk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm11bHNfcihkZXN0LCBzcmMsIEFSTTo6
UzApOworICAgICAgICBtb3ZlKGltbSwgQVJNUmVnaXN0ZXJzOjpTMCk7CisgICAgICAgIG1fYXNz
ZW1ibGVyLm11bHNfcihkZXN0LCBzcmMsIEFSTVJlZ2lzdGVyczo6UzApOwogICAgIH0KIAogICAg
IHZvaWQgbm90MzIoUmVnaXN0ZXJJRCBkZXN0KQpAQCAtMTQyLDcgKzE0Miw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgb3IzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAg
ICAgIG1fYXNzZW1ibGVyLm9ycnNfcihkZXN0LCBkZXN0LCBtX2Fzc2VtYmxlci5nZXRJbW0oaW1t
Lm1fdmFsdWUsIEFSTTo6UzApKTsKKyAgICAgICAgbV9hc3NlbWJsZXIub3Jyc19yKGRlc3QsIGRl
c3QsIG1fYXNzZW1ibGVyLmdldEltbShpbW0ubV92YWx1ZSwgQVJNUmVnaXN0ZXJzOjpTMCkpOwog
ICAgIH0KIAogICAgIHZvaWQgcnNoaWZ0MzIoUmVnaXN0ZXJJRCBzaGlmdF9hbW91bnQsIFJlZ2lz
dGVySUQgZGVzdCkKQEAgLTE2MiwyMCArMTYyLDIwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3Vi
MzIoSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxl
ci5zdWJzX3IoZGVzdCwgZGVzdCwgbV9hc3NlbWJsZXIuZ2V0SW1tKGltbS5tX3ZhbHVlLCBBUk06
OlMwKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLnN1YnNfcihkZXN0LCBkZXN0LCBtX2Fzc2VtYmxl
ci5nZXRJbW0oaW1tLm1fdmFsdWUsIEFSTVJlZ2lzdGVyczo6UzApKTsKICAgICB9CiAKICAgICB2
b2lkIHN1YjMyKEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgbG9h
ZDMyKGFkZHJlc3MsIEFSTTo6UzEpOwotICAgICAgICBzdWIzMihpbW0sIEFSTTo6UzEpOwotICAg
ICAgICBzdG9yZTMyKEFSTTo6UzEsIGFkZHJlc3MpOworICAgICAgICBsb2FkMzIoYWRkcmVzcywg
QVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIHN1YjMyKGltbSwgQVJNUmVnaXN0ZXJzOjpTMSk7
CisgICAgICAgIHN0b3JlMzIoQVJNUmVnaXN0ZXJzOjpTMSwgYWRkcmVzcyk7CiAgICAgfQogCiAg
ICAgdm9pZCBzdWIzMihBZGRyZXNzIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAg
ICAgbG9hZDMyKHNyYywgQVJNOjpTMSk7Ci0gICAgICAgIHN1YjMyKEFSTTo6UzEsIGRlc3QpOwor
ICAgICAgICBsb2FkMzIoc3JjLCBBUk1SZWdpc3RlcnM6OlMxKTsKKyAgICAgICAgc3ViMzIoQVJN
UmVnaXN0ZXJzOjpTMSwgZGVzdCk7CiAgICAgfQogCiAgICAgdm9pZCB4b3IzMihSZWdpc3RlcklE
IHNyYywgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtMTg1LDcgKzE4NSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgeG9yMzIoSW1tMzIgaW1tLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBt
X2Fzc2VtYmxlci5lb3JzX3IoZGVzdCwgZGVzdCwgbV9hc3NlbWJsZXIuZ2V0SW1tKGltbS5tX3Zh
bHVlLCBBUk06OlMwKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmVvcnNfcihkZXN0LCBkZXN0LCBt
X2Fzc2VtYmxlci5nZXRJbW0oaW1tLm1fdmFsdWUsIEFSTVJlZ2lzdGVyczo6UzApKTsKICAgICB9
CiAKICAgICB2b2lkIGxvYWQzMihJbXBsaWNpdEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBk
ZXN0KQpAQCAtMjAxLDggKzIwMSw4IEBAIHB1YmxpYzoKICAgICBEYXRhTGFiZWwzMiBsb2FkMzJX
aXRoQWRkcmVzc09mZnNldFBhdGNoKEFkZHJlc3MgYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQog
ICAgIHsKICAgICAgICAgRGF0YUxhYmVsMzIgZGF0YUxhYmVsKHRoaXMpOwotICAgICAgICBtX2Fz
c2VtYmxlci5sZHJfdW5faW1tKEFSTTo6UzAsIDApOwotICAgICAgICBtX2Fzc2VtYmxlci5kdHJf
dXIodHJ1ZSwgZGVzdCwgYWRkcmVzcy5iYXNlLCBBUk06OlMwKTsKKyAgICAgICAgbV9hc3NlbWJs
ZXIubGRyX3VuX2ltbShBUk1SZWdpc3RlcnM6OlMwLCAwKTsKKyAgICAgICAgbV9hc3NlbWJsZXIu
ZHRyX3VyKHRydWUsIGRlc3QsIGFkZHJlc3MuYmFzZSwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAg
ICAgIHJldHVybiBkYXRhTGFiZWw7CiAgICAgfQogCkBAIC0yMTUsMTggKzIxNSwxOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGxvYWQxNihCYXNlSW5kZXggYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0
KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRkX3IoQVJNOjpTMCwgYWRkcmVzcy5iYXNl
LCBtX2Fzc2VtYmxlci5sc2woYWRkcmVzcy5pbmRleCwgYWRkcmVzcy5zY2FsZSkpOworICAgICAg
ICBtX2Fzc2VtYmxlci5hZGRfcihBUk1SZWdpc3RlcnM6OlMwLCBhZGRyZXNzLmJhc2UsIG1fYXNz
ZW1ibGVyLmxzbChhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKSk7CiAgICAgICAgIGlmIChh
ZGRyZXNzLm9mZnNldD49MCkKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkcmhfdShkZXN0LCBB
Uk06OlMwLCBBUk1Bc3NlbWJsZXI6OmdldE9wMkJ5dGUoYWRkcmVzcy5vZmZzZXQpKTsKKyAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLmxkcmhfdShkZXN0LCBBUk1SZWdpc3RlcnM6OlMwLCBBUk1Bc3Nl
bWJsZXI6OmdldE9wMkJ5dGUoYWRkcmVzcy5vZmZzZXQpKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgbV9hc3NlbWJsZXIubGRyaF9kKGRlc3QsIEFSTTo6UzAsIEFSTUFzc2VtYmxlcjo6Z2V0
T3AyQnl0ZSgtYWRkcmVzcy5vZmZzZXQpKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkcmhf
ZChkZXN0LCBBUk1SZWdpc3RlcnM6OlMwLCBBUk1Bc3NlbWJsZXI6OmdldE9wMkJ5dGUoLWFkZHJl
c3Mub2Zmc2V0KSk7CiAgICAgfQogCiAgICAgRGF0YUxhYmVsMzIgc3RvcmUzMldpdGhBZGRyZXNz
T2Zmc2V0UGF0Y2goUmVnaXN0ZXJJRCBzcmMsIEFkZHJlc3MgYWRkcmVzcykKICAgICB7CiAgICAg
ICAgIERhdGFMYWJlbDMyIGRhdGFMYWJlbCh0aGlzKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubGRy
X3VuX2ltbShBUk06OlMwLCAwKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuZHRyX3VyKGZhbHNlLCBz
cmMsIGFkZHJlc3MuYmFzZSwgQVJNOjpTMCk7CisgICAgICAgIG1fYXNzZW1ibGVyLmxkcl91bl9p
bW0oQVJNUmVnaXN0ZXJzOjpTMCwgMCk7CisgICAgICAgIG1fYXNzZW1ibGVyLmR0cl91cihmYWxz
ZSwgc3JjLCBhZGRyZXNzLmJhc2UsIEFSTVJlZ2lzdGVyczo6UzApOwogICAgICAgICByZXR1cm4g
ZGF0YUxhYmVsOwogICAgIH0KIApAQCAtMjQzLDI2ICsyNDMsMjYgQEAgcHVibGljOgogICAgIHZv
aWQgc3RvcmUzMihJbW0zMiBpbW0sIEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgaWYgKGltbS5tX2lzUG9pbnRlcikKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkcl91
bl9pbW0oQVJNOjpTMSwgaW1tLm1fdmFsdWUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGRy
X3VuX2ltbShBUk1SZWdpc3RlcnM6OlMxLCBpbW0ubV92YWx1ZSk7CiAgICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIG1vdmUoaW1tLCBBUk06OlMxKTsKLSAgICAgICAgc3RvcmUzMihBUk06OlMxLCBh
ZGRyZXNzKTsKKyAgICAgICAgICAgIG1vdmUoaW1tLCBBUk1SZWdpc3RlcnM6OlMxKTsKKyAgICAg
ICAgc3RvcmUzMihBUk1SZWdpc3RlcnM6OlMxLCBhZGRyZXNzKTsKICAgICB9CiAKICAgICB2b2lk
IHN0b3JlMzIoUmVnaXN0ZXJJRCBzcmMsIHZvaWQqIGFkZHJlc3MpCiAgICAgewotICAgICAgICBt
X2Fzc2VtYmxlci5sZHJfdW5faW1tKEFSTTo6UzAsIHJlaW50ZXJwcmV0X2Nhc3Q8QVJNV29yZD4o
YWRkcmVzcykpOwotICAgICAgICBtX2Fzc2VtYmxlci5kdHJfdShmYWxzZSwgc3JjLCBBUk06OlMw
LCAwKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubGRyX3VuX2ltbShBUk1SZWdpc3RlcnM6OlMwLCBy
ZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFkZHJlc3MpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIu
ZHRyX3UoZmFsc2UsIHNyYywgQVJNUmVnaXN0ZXJzOjpTMCwgMCk7CiAgICAgfQogCiAgICAgdm9p
ZCBzdG9yZTMyKEltbTMyIGltbSwgdm9pZCogYWRkcmVzcykKICAgICB7Ci0gICAgICAgIG1fYXNz
ZW1ibGVyLmxkcl91bl9pbW0oQVJNOjpTMCwgcmVpbnRlcnByZXRfY2FzdDxBUk1Xb3JkPihhZGRy
ZXNzKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmxkcl91bl9pbW0oQVJNUmVnaXN0ZXJzOjpTMCwg
cmVpbnRlcnByZXRfY2FzdDxBUk1Xb3JkPihhZGRyZXNzKSk7CiAgICAgICAgIGlmIChpbW0ubV9p
c1BvaW50ZXIpCi0gICAgICAgICAgICBtX2Fzc2VtYmxlci5sZHJfdW5faW1tKEFSTTo6UzEsIGlt
bS5tX3ZhbHVlKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkcl91bl9pbW0oQVJNUmVnaXN0
ZXJzOjpTMSwgaW1tLm1fdmFsdWUpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5tb3ZlSW1tKGltbS5tX3ZhbHVlLCBBUk06OlMxKTsKLSAgICAgICAgbV9hc3NlbWJsZXIu
ZHRyX3UoZmFsc2UsIEFSTTo6UzEsIEFSTTo6UzAsIDApOworICAgICAgICAgICAgbV9hc3NlbWJs
ZXIubW92ZUltbShpbW0ubV92YWx1ZSwgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIG1fYXNz
ZW1ibGVyLmR0cl91KGZhbHNlLCBBUk1SZWdpc3RlcnM6OlMxLCBBUk1SZWdpc3RlcnM6OlMwLCAw
KTsKICAgICB9CiAKICAgICB2b2lkIHBvcChSZWdpc3RlcklEIGRlc3QpCkBAIC0yNzcsMTQgKzI3
NywxNCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHB1c2goQWRkcmVzcyBhZGRyZXNzKQogICAgIHsK
LSAgICAgICAgbG9hZDMyKGFkZHJlc3MsIEFSTTo6UzEpOwotICAgICAgICBwdXNoKEFSTTo6UzEp
OworICAgICAgICBsb2FkMzIoYWRkcmVzcywgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIHB1
c2goQVJNUmVnaXN0ZXJzOjpTMSk7CiAgICAgfQogCiAgICAgdm9pZCBwdXNoKEltbTMyIGltbSkK
ICAgICB7Ci0gICAgICAgIG1vdmUoaW1tLCBBUk06OlMwKTsKLSAgICAgICAgcHVzaChBUk06OlMw
KTsKKyAgICAgICAgbW92ZShpbW0sIEFSTVJlZ2lzdGVyczo6UzApOworICAgICAgICBwdXNoKEFS
TVJlZ2lzdGVyczo6UzApOwogICAgIH0KIAogICAgIHZvaWQgbW92ZShJbW0zMiBpbW0sIFJlZ2lz
dGVySUQgZGVzdCkKQEAgLTMwNyw5ICszMDcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN3YXAo
UmVnaXN0ZXJJRCByZWcxLCBSZWdpc3RlcklEIHJlZzIpCiAgICAgewotICAgICAgICBtX2Fzc2Vt
Ymxlci5tb3ZfcihBUk06OlMwLCByZWcxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubW92X3IoQVJN
UmVnaXN0ZXJzOjpTMCwgcmVnMSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZzEsIHJl
ZzIpOwotICAgICAgICBtX2Fzc2VtYmxlci5tb3ZfcihyZWcyLCBBUk06OlMwKTsKKyAgICAgICAg
bV9hc3NlbWJsZXIubW92X3IocmVnMiwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAgfQogCiAgICAg
dm9pZCBzaWduRXh0ZW5kMzJUb1B0cihSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQpA
QCAtMzMzLDM1ICszMzMsMzUgQEAgcHVibGljOgogICAgIEp1bXAgYnJhbmNoMzIoQ29uZGl0aW9u
IGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgSW1tMzIgcmlnaHQsIGludCB1c2VDb25zdGFudFBvb2wg
PSAwKQogICAgIHsKICAgICAgICAgaWYgKHJpZ2h0Lm1faXNQb2ludGVyKSB7Ci0gICAgICAgICAg
ICBtX2Fzc2VtYmxlci5sZHJfdW5faW1tKEFSTTo6UzAsIHJpZ2h0Lm1fdmFsdWUpOwotICAgICAg
ICAgICAgbV9hc3NlbWJsZXIuY21wX3IobGVmdCwgQVJNOjpTMCk7CisgICAgICAgICAgICBtX2Fz
c2VtYmxlci5sZHJfdW5faW1tKEFSTVJlZ2lzdGVyczo6UzAsIHJpZ2h0Lm1fdmFsdWUpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIuY21wX3IobGVmdCwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wX3IobGVmdCwgbV9hc3NlbWJs
ZXIuZ2V0SW1tKHJpZ2h0Lm1fdmFsdWUsIEFSTTo6UzApKTsKKyAgICAgICAgICAgIG1fYXNzZW1i
bGVyLmNtcF9yKGxlZnQsIG1fYXNzZW1ibGVyLmdldEltbShyaWdodC5tX3ZhbHVlLCBBUk1SZWdp
c3RlcnM6OlMwKSk7CiAgICAgICAgIHJldHVybiBKdW1wKG1fYXNzZW1ibGVyLmptcChBUk1Db25k
aXRpb24oY29uZCksIHVzZUNvbnN0YW50UG9vbCkpOwogICAgIH0KIAogICAgIEp1bXAgYnJhbmNo
MzIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgQWRkcmVzcyByaWdodCkKICAgICB7
Ci0gICAgICAgIGxvYWQzMihyaWdodCwgQVJNOjpTMSk7Ci0gICAgICAgIHJldHVybiBicmFuY2gz
Mihjb25kLCBsZWZ0LCBBUk06OlMxKTsKKyAgICAgICAgbG9hZDMyKHJpZ2h0LCBBUk1SZWdpc3Rl
cnM6OlMxKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQsIGxlZnQsIEFSTVJlZ2lzdGVy
czo6UzEpOwogICAgIH0KIAogICAgIEp1bXAgYnJhbmNoMzIoQ29uZGl0aW9uIGNvbmQsIEFkZHJl
c3MgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCkKICAgICB7Ci0gICAgICAgIGxvYWQzMihsZWZ0LCBB
Uk06OlMxKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQsIEFSTTo6UzEsIHJpZ2h0KTsK
KyAgICAgICAgbG9hZDMyKGxlZnQsIEFSTVJlZ2lzdGVyczo6UzEpOworICAgICAgICByZXR1cm4g
YnJhbmNoMzIoY29uZCwgQVJNUmVnaXN0ZXJzOjpTMSwgcmlnaHQpOwogICAgIH0KIAogICAgIEp1
bXAgYnJhbmNoMzIoQ29uZGl0aW9uIGNvbmQsIEFkZHJlc3MgbGVmdCwgSW1tMzIgcmlnaHQpCiAg
ICAgewotICAgICAgICBsb2FkMzIobGVmdCwgQVJNOjpTMSk7Ci0gICAgICAgIHJldHVybiBicmFu
Y2gzMihjb25kLCBBUk06OlMxLCByaWdodCk7CisgICAgICAgIGxvYWQzMihsZWZ0LCBBUk1SZWdp
c3RlcnM6OlMxKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQsIEFSTVJlZ2lzdGVyczo6
UzEsIHJpZ2h0KTsKICAgICB9CiAKICAgICBKdW1wIGJyYW5jaDMyKENvbmRpdGlvbiBjb25kLCBC
YXNlSW5kZXggbGVmdCwgSW1tMzIgcmlnaHQpCiAgICAgewotICAgICAgICBsb2FkMzIobGVmdCwg
QVJNOjpTMSk7Ci0gICAgICAgIHJldHVybiBicmFuY2gzMihjb25kLCBBUk06OlMxLCByaWdodCk7
CisgICAgICAgIGxvYWQzMihsZWZ0LCBBUk1SZWdpc3RlcnM6OlMxKTsKKyAgICAgICAgcmV0dXJu
IGJyYW5jaDMyKGNvbmQsIEFSTVJlZ2lzdGVyczo6UzEsIHJpZ2h0KTsKICAgICB9CiAKICAgICBK
dW1wIGJyYW5jaDE2KENvbmRpdGlvbiBjb25kLCBCYXNlSW5kZXggbGVmdCwgUmVnaXN0ZXJJRCBy
aWdodCkKQEAgLTM3NSw5ICszNzUsOSBAQCBwdWJsaWM6CiAKICAgICBKdW1wIGJyYW5jaDE2KENv
bmRpdGlvbiBjb25kLCBCYXNlSW5kZXggbGVmdCwgSW1tMzIgcmlnaHQpCiAgICAgewotICAgICAg
ICBsb2FkMTYobGVmdCwgQVJNOjpTMCk7Ci0gICAgICAgIG1vdmUocmlnaHQsIEFSTTo6UzEpOwot
ICAgICAgICBtX2Fzc2VtYmxlci5jbXBfcihBUk06OlMwLCBBUk06OlMxKTsKKyAgICAgICAgbG9h
ZDE2KGxlZnQsIEFSTVJlZ2lzdGVyczo6UzApOworICAgICAgICBtb3ZlKHJpZ2h0LCBBUk1SZWdp
c3RlcnM6OlMxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuY21wX3IoQVJNUmVnaXN0ZXJzOjpTMCwg
QVJNUmVnaXN0ZXJzOjpTMSk7CiAgICAgICAgIHJldHVybiBtX2Fzc2VtYmxlci5qbXAoQVJNQ29u
ZGl0aW9uKGNvbmQpKTsKICAgICB9CiAKQEAgLTM5MSw5ICszOTEsOSBAQCBwdWJsaWM6CiAgICAg
SnVtcCBicmFuY2hUZXN0MzIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgcmVnLCBJbW0zMiBt
YXNrID0gSW1tMzIoLTEpKQogICAgIHsKICAgICAgICAgQVNTRVJUKChjb25kID09IFplcm8pIHx8
IChjb25kID09IE5vblplcm8pKTsKLSAgICAgICAgQVJNV29yZCB3ID0gbV9hc3NlbWJsZXIuZ2V0
SW1tKG1hc2subV92YWx1ZSwgQVJNOjpTMCwgdHJ1ZSk7CisgICAgICAgIEFSTVdvcmQgdyA9IG1f
YXNzZW1ibGVyLmdldEltbShtYXNrLm1fdmFsdWUsIEFSTVJlZ2lzdGVyczo6UzAsIHRydWUpOwog
ICAgICAgICBpZiAodyAmIEFSTUFzc2VtYmxlcjo6T1AyX0lOVl9JTU0pCi0gICAgICAgICAgICBt
X2Fzc2VtYmxlci5iaWNzX3IoQVJNOjpTMCwgcmVnLCB3ICYgfkFSTUFzc2VtYmxlcjo6T1AyX0lO
Vl9JTU0pOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuYmljc19yKEFSTVJlZ2lzdGVyczo6UzAs
IHJlZywgdyAmIH5BUk1Bc3NlbWJsZXI6Ok9QMl9JTlZfSU1NKTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgbV9hc3NlbWJsZXIudHN0X3IocmVnLCB3KTsKICAgICAgICAgcmV0dXJuIEp1bXAo
bV9hc3NlbWJsZXIuam1wKEFSTUNvbmRpdGlvbihjb25kKSkpOwpAQCAtNDAxLDE0ICs0MDEsMTQg
QEAgcHVibGljOgogCiAgICAgSnVtcCBicmFuY2hUZXN0MzIoQ29uZGl0aW9uIGNvbmQsIEFkZHJl
c3MgYWRkcmVzcywgSW1tMzIgbWFzayA9IEltbTMyKC0xKSkKICAgICB7Ci0gICAgICAgIGxvYWQz
MihhZGRyZXNzLCBBUk06OlMxKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3QzMihjb25kLCBB
Uk06OlMxLCBtYXNrKTsKKyAgICAgICAgbG9hZDMyKGFkZHJlc3MsIEFSTVJlZ2lzdGVyczo6UzEp
OworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDMyKGNvbmQsIEFSTVJlZ2lzdGVyczo6UzEsIG1h
c2spOwogICAgIH0KIAogICAgIEp1bXAgYnJhbmNoVGVzdDMyKENvbmRpdGlvbiBjb25kLCBCYXNl
SW5kZXggYWRkcmVzcywgSW1tMzIgbWFzayA9IEltbTMyKC0xKSkKICAgICB7Ci0gICAgICAgIGxv
YWQzMihhZGRyZXNzLCBBUk06OlMxKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3QzMihjb25k
LCBBUk06OlMxLCBtYXNrKTsKKyAgICAgICAgbG9hZDMyKGFkZHJlc3MsIEFSTVJlZ2lzdGVyczo6
UzEpOworICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDMyKGNvbmQsIEFSTVJlZ2lzdGVyczo6UzEs
IG1hc2spOwogICAgIH0KIAogICAgIEp1bXAganVtcCgpCkBAIC00MTgsMTIgKzQxOCwxMiBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGp1bXAoUmVnaXN0ZXJJRCB0YXJnZXQpCiAgICAgewotICAgICAg
ICBtb3ZlKHRhcmdldCwgQVJNOjpwYyk7CisgICAgICAgIG1vdmUodGFyZ2V0LCBBUk1SZWdpc3Rl
cnM6OnBjKTsKICAgICB9CiAKICAgICB2b2lkIGp1bXAoQWRkcmVzcyBhZGRyZXNzKQogICAgIHsK
LSAgICAgICAgbG9hZDMyKGFkZHJlc3MsIEFSTTo6cGMpOworICAgICAgICBsb2FkMzIoYWRkcmVz
cywgQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgfQogCiAgICAgSnVtcCBicmFuY2hBZGQzMihDb25k
aXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTQ0MywxMSAr
NDQzLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIG11bGwzMihSZWdpc3RlcklEIHNyYzEsIFJlZ2lz
dGVySUQgc3JjMiwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKHNyYzEgPT0g
ZGVzdCkgewotICAgICAgICAgICAgbW92ZShzcmMxLCBBUk06OlMwKTsKLSAgICAgICAgICAgIHNy
YzEgPSBBUk06OlMwOworICAgICAgICAgICAgbW92ZShzcmMxLCBBUk1SZWdpc3RlcnM6OlMwKTsK
KyAgICAgICAgICAgIHNyYzEgPSBBUk1SZWdpc3RlcnM6OlMwOwogICAgICAgICB9Ci0gICAgICAg
IG1fYXNzZW1ibGVyLm11bGxfcihBUk06OlMxLCBkZXN0LCBzcmMyLCBzcmMxKTsKLSAgICAgICAg
bV9hc3NlbWJsZXIuY21wX3IoQVJNOjpTMSwgbV9hc3NlbWJsZXIuYXNyKGRlc3QsIDMxKSk7Cisg
ICAgICAgIG1fYXNzZW1ibGVyLm11bGxfcihBUk1SZWdpc3RlcnM6OlMxLCBkZXN0LCBzcmMyLCBz
cmMxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuY21wX3IoQVJNUmVnaXN0ZXJzOjpTMSwgbV9hc3Nl
bWJsZXIuYXNyKGRlc3QsIDMxKSk7CiAgICAgfQogCiAgICAgSnVtcCBicmFuY2hNdWwzMihDb25k
aXRpb24gY29uZCwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTQ2Niw4ICs0
NjYsOCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoKGNvbmQgPT0gT3ZlcmZsb3cp
IHx8IChjb25kID09IFNpZ25lZCkgfHwgKGNvbmQgPT0gWmVybykgfHwgKGNvbmQgPT0gTm9uWmVy
bykpOwogICAgICAgICBpZiAoY29uZCA9PSBPdmVyZmxvdykgewotICAgICAgICAgICAgbW92ZShp
bW0sIEFSTTo6UzApOwotICAgICAgICAgICAgbXVsbDMyKEFSTTo6UzAsIHNyYywgZGVzdCk7Cisg
ICAgICAgICAgICBtb3ZlKGltbSwgQVJNUmVnaXN0ZXJzOjpTMCk7CisgICAgICAgICAgICBtdWxs
MzIoQVJNUmVnaXN0ZXJzOjpTMCwgc3JjLCBkZXN0KTsKICAgICAgICAgICAgIGNvbmQgPSBOb25a
ZXJvOwogICAgICAgICB9CiAgICAgICAgIGVsc2UKQEAgLTUwMyw3ICs1MDMsNyBAQCBwdWJsaWM6
CiAgICAgQ2FsbCBjYWxsKFJlZ2lzdGVySUQgdGFyZ2V0KQogICAgIHsKICAgICAgICAgcHJlcGFy
ZUNhbGwoKTsKLSAgICAgICAgbW92ZShBUk06OnBjLCB0YXJnZXQpOworICAgICAgICBtb3ZlKEFS
TVJlZ2lzdGVyczo6cGMsIHRhcmdldCk7CiAgICAgICAgIEptcFNyYyBqbXBTcmM7CiAgICAgICAg
IHJldHVybiBDYWxsKGptcFNyYywgQ2FsbDo6Tm9uZSk7CiAgICAgfQpAQCAtNTE1LDcgKzUxNSw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmV0KCkKICAgICB7Ci0gICAgICAgIHBvcChBUk06OnBj
KTsKKyAgICAgICAgcG9wKEFSTVJlZ2lzdGVyczo6cGMpOwogICAgIH0KIAogICAgIHZvaWQgc2V0
MzIoQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgUmVnaXN0ZXJJRCByaWdodCwgUmVn
aXN0ZXJJRCBkZXN0KQpAQCAtNTI3LDYxICs1MjcsNjEgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXQzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBJbW0zMiByaWdodCwgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIuY21wX3IobGVmdCwgbV9hc3Nl
bWJsZXIuZ2V0SW1tKHJpZ2h0Lm1fdmFsdWUsIEFSTTo6UzApKTsKKyAgICAgICAgbV9hc3NlbWJs
ZXIuY21wX3IobGVmdCwgbV9hc3NlbWJsZXIuZ2V0SW1tKHJpZ2h0Lm1fdmFsdWUsIEFSTVJlZ2lz
dGVyczo6UzApKTsKICAgICAgICAgbV9hc3NlbWJsZXIubW92X3IoZGVzdCwgQVJNQXNzZW1ibGVy
OjpnZXRPcDIoMCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZfcihkZXN0LCBBUk1Bc3NlbWJs
ZXI6OmdldE9wMigxKSwgQVJNQ29uZGl0aW9uKGNvbmQpKTsKICAgICB9CiAKICAgICB2b2lkIHNl
dFRlc3QzMihDb25kaXRpb24gY29uZCwgQWRkcmVzcyBhZGRyZXNzLCBJbW0zMiBtYXNrLCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBsb2FkMzIoYWRkcmVzcywgQVJNOjpTMSk7Cisg
ICAgICAgIGxvYWQzMihhZGRyZXNzLCBBUk1SZWdpc3RlcnM6OlMxKTsKICAgICAgICAgaWYgKG1h
c2subV92YWx1ZSA9PSAtMSkKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmNtcF9yKDAsIEFSTTo6
UzEpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wX3IoMCwgQVJNUmVnaXN0ZXJzOjpTMSk7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRzdF9yKEFSTTo6UzEsIG1f
YXNzZW1ibGVyLmdldEltbShtYXNrLm1fdmFsdWUsIEFSTTo6UzApKTsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLnRzdF9yKEFSTVJlZ2lzdGVyczo6UzEsIG1fYXNzZW1ibGVyLmdldEltbShtYXNr
Lm1fdmFsdWUsIEFSTVJlZ2lzdGVyczo6UzApKTsKICAgICAgICAgbV9hc3NlbWJsZXIubW92X3Io
ZGVzdCwgQVJNQXNzZW1ibGVyOjpnZXRPcDIoMCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5tb3Zf
cihkZXN0LCBBUk1Bc3NlbWJsZXI6OmdldE9wMigxKSwgQVJNQ29uZGl0aW9uKGNvbmQpKTsKICAg
ICB9CiAKICAgICB2b2lkIGFkZDMyKEltbTMyIGltbSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVy
SUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmFkZF9yKGRlc3QsIHNyYywgbV9h
c3NlbWJsZXIuZ2V0SW1tKGltbS5tX3ZhbHVlLCBBUk06OlMwKSk7CisgICAgICAgIG1fYXNzZW1i
bGVyLmFkZF9yKGRlc3QsIHNyYywgbV9hc3NlbWJsZXIuZ2V0SW1tKGltbS5tX3ZhbHVlLCBBUk1S
ZWdpc3RlcnM6OlMwKSk7CiAgICAgfQogCiAgICAgdm9pZCBhZGQzMihJbW0zMiBpbW0sIEFic29s
dXRlQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIubGRyX3VuX2lt
bShBUk06OlMxLCByZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFkZHJlc3MubV9wdHIpKTsKLSAg
ICAgICAgbV9hc3NlbWJsZXIuZHRyX3UodHJ1ZSwgQVJNOjpTMSwgQVJNOjpTMSwgMCk7Ci0gICAg
ICAgIGFkZDMyKGltbSwgQVJNOjpTMSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmxkcl91bl9pbW0o
QVJNOjpTMCwgcmVpbnRlcnByZXRfY2FzdDxBUk1Xb3JkPihhZGRyZXNzLm1fcHRyKSk7Ci0gICAg
ICAgIG1fYXNzZW1ibGVyLmR0cl91KGZhbHNlLCBBUk06OlMxLCBBUk06OlMwLCAwKTsKKyAgICAg
ICAgbV9hc3NlbWJsZXIubGRyX3VuX2ltbShBUk1SZWdpc3RlcnM6OlMxLCByZWludGVycHJldF9j
YXN0PEFSTVdvcmQ+KGFkZHJlc3MubV9wdHIpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuZHRyX3Uo
dHJ1ZSwgQVJNUmVnaXN0ZXJzOjpTMSwgQVJNUmVnaXN0ZXJzOjpTMSwgMCk7CisgICAgICAgIGFk
ZDMyKGltbSwgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmxkcl91bl9p
bW0oQVJNUmVnaXN0ZXJzOjpTMCwgcmVpbnRlcnByZXRfY2FzdDxBUk1Xb3JkPihhZGRyZXNzLm1f
cHRyKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmR0cl91KGZhbHNlLCBBUk1SZWdpc3RlcnM6OlMx
LCBBUk1SZWdpc3RlcnM6OlMwLCAwKTsKICAgICB9CiAKICAgICB2b2lkIHN1YjMyKEltbTMyIGlt
bSwgQWJzb2x1dGVBZGRyZXNzIGFkZHJlc3MpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5s
ZHJfdW5faW1tKEFSTTo6UzEsIHJlaW50ZXJwcmV0X2Nhc3Q8QVJNV29yZD4oYWRkcmVzcy5tX3B0
cikpOwotICAgICAgICBtX2Fzc2VtYmxlci5kdHJfdSh0cnVlLCBBUk06OlMxLCBBUk06OlMxLCAw
KTsKLSAgICAgICAgc3ViMzIoaW1tLCBBUk06OlMxKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubGRy
X3VuX2ltbShBUk06OlMwLCByZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFkZHJlc3MubV9wdHIp
KTsKLSAgICAgICAgbV9hc3NlbWJsZXIuZHRyX3UoZmFsc2UsIEFSTTo6UzEsIEFSTTo6UzAsIDAp
OworICAgICAgICBtX2Fzc2VtYmxlci5sZHJfdW5faW1tKEFSTVJlZ2lzdGVyczo6UzEsIHJlaW50
ZXJwcmV0X2Nhc3Q8QVJNV29yZD4oYWRkcmVzcy5tX3B0cikpOworICAgICAgICBtX2Fzc2VtYmxl
ci5kdHJfdSh0cnVlLCBBUk1SZWdpc3RlcnM6OlMxLCBBUk1SZWdpc3RlcnM6OlMxLCAwKTsKKyAg
ICAgICAgc3ViMzIoaW1tLCBBUk1SZWdpc3RlcnM6OlMxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIu
bGRyX3VuX2ltbShBUk1SZWdpc3RlcnM6OlMwLCByZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFk
ZHJlc3MubV9wdHIpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuZHRyX3UoZmFsc2UsIEFSTVJlZ2lz
dGVyczo6UzEsIEFSTVJlZ2lzdGVyczo6UzAsIDApOwogICAgIH0KIAogICAgIHZvaWQgbG9hZDMy
KHZvaWQqIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1i
bGVyLmxkcl91bl9pbW0oQVJNOjpTMCwgcmVpbnRlcnByZXRfY2FzdDxBUk1Xb3JkPihhZGRyZXNz
KSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmR0cl91KHRydWUsIGRlc3QsIEFSTTo6UzAsIDApOwor
ICAgICAgICBtX2Fzc2VtYmxlci5sZHJfdW5faW1tKEFSTVJlZ2lzdGVyczo6UzAsIHJlaW50ZXJw
cmV0X2Nhc3Q8QVJNV29yZD4oYWRkcmVzcykpOworICAgICAgICBtX2Fzc2VtYmxlci5kdHJfdSh0
cnVlLCBkZXN0LCBBUk1SZWdpc3RlcnM6OlMwLCAwKTsKICAgICB9CiAKICAgICBKdW1wIGJyYW5j
aDMyKENvbmRpdGlvbiBjb25kLCBBYnNvbHV0ZUFkZHJlc3MgbGVmdCwgUmVnaXN0ZXJJRCByaWdo
dCkKICAgICB7Ci0gICAgICAgIGxvYWQzMihsZWZ0Lm1fcHRyLCBBUk06OlMxKTsKLSAgICAgICAg
cmV0dXJuIGJyYW5jaDMyKGNvbmQsIEFSTTo6UzEsIHJpZ2h0KTsKKyAgICAgICAgbG9hZDMyKGxl
ZnQubV9wdHIsIEFSTVJlZ2lzdGVyczo6UzEpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29u
ZCwgQVJNUmVnaXN0ZXJzOjpTMSwgcmlnaHQpOwogICAgIH0KIAogICAgIEp1bXAgYnJhbmNoMzIo
Q29uZGl0aW9uIGNvbmQsIEFic29sdXRlQWRkcmVzcyBsZWZ0LCBJbW0zMiByaWdodCkKICAgICB7
Ci0gICAgICAgIGxvYWQzMihsZWZ0Lm1fcHRyLCBBUk06OlMxKTsKLSAgICAgICAgcmV0dXJuIGJy
YW5jaDMyKGNvbmQsIEFSTTo6UzEsIHJpZ2h0KTsKKyAgICAgICAgbG9hZDMyKGxlZnQubV9wdHIs
IEFSTVJlZ2lzdGVyczo6UzEpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgQVJNUmVn
aXN0ZXJzOjpTMSwgcmlnaHQpOwogICAgIH0KIAogICAgIENhbGwgY2FsbCgpCkBAIC02MDksMjMg
KzYwOSwyMyBAQCBwdWJsaWM6CiAKICAgICBKdW1wIGJyYW5jaFB0cldpdGhQYXRjaChDb25kaXRp
b24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBEYXRhTGFiZWxQdHImIGRhdGFMYWJlbCwgSW1tUHRy
IGluaXRpYWxSaWdodFZhbHVlID0gSW1tUHRyKDApKQogICAgIHsKLSAgICAgICAgZGF0YUxhYmVs
ID0gbW92ZVdpdGhQYXRjaChpbml0aWFsUmlnaHRWYWx1ZSwgQVJNOjpTMSk7Ci0gICAgICAgIEp1
bXAganVtcCA9IGJyYW5jaDMyKGNvbmQsIGxlZnQsIEFSTTo6UzEsIHRydWUpOworICAgICAgICBk
YXRhTGFiZWwgPSBtb3ZlV2l0aFBhdGNoKGluaXRpYWxSaWdodFZhbHVlLCBBUk1SZWdpc3RlcnM6
OlMxKTsKKyAgICAgICAgSnVtcCBqdW1wID0gYnJhbmNoMzIoY29uZCwgbGVmdCwgQVJNUmVnaXN0
ZXJzOjpTMSwgdHJ1ZSk7CiAgICAgICAgIHJldHVybiBqdW1wOwogICAgIH0KIAogICAgIEp1bXAg
YnJhbmNoUHRyV2l0aFBhdGNoKENvbmRpdGlvbiBjb25kLCBBZGRyZXNzIGxlZnQsIERhdGFMYWJl
bFB0ciYgZGF0YUxhYmVsLCBJbW1QdHIgaW5pdGlhbFJpZ2h0VmFsdWUgPSBJbW1QdHIoMCkpCiAg
ICAgewotICAgICAgICBsb2FkMzIobGVmdCwgQVJNOjpTMSk7Ci0gICAgICAgIGRhdGFMYWJlbCA9
IG1vdmVXaXRoUGF0Y2goaW5pdGlhbFJpZ2h0VmFsdWUsIEFSTTo6UzApOwotICAgICAgICBKdW1w
IGp1bXAgPSBicmFuY2gzMihjb25kLCBBUk06OlMwLCBBUk06OlMxLCB0cnVlKTsKKyAgICAgICAg
bG9hZDMyKGxlZnQsIEFSTVJlZ2lzdGVyczo6UzEpOworICAgICAgICBkYXRhTGFiZWwgPSBtb3Zl
V2l0aFBhdGNoKGluaXRpYWxSaWdodFZhbHVlLCBBUk1SZWdpc3RlcnM6OlMwKTsKKyAgICAgICAg
SnVtcCBqdW1wID0gYnJhbmNoMzIoY29uZCwgQVJNUmVnaXN0ZXJzOjpTMCwgQVJNUmVnaXN0ZXJz
OjpTMSwgdHJ1ZSk7CiAgICAgICAgIHJldHVybiBqdW1wOwogICAgIH0KIAogICAgIERhdGFMYWJl
bFB0ciBzdG9yZVB0cldpdGhQYXRjaChJbW1QdHIgaW5pdGlhbFZhbHVlLCBJbXBsaWNpdEFkZHJl
c3MgYWRkcmVzcykKICAgICB7Ci0gICAgICAgIERhdGFMYWJlbFB0ciBkYXRhTGFiZWwgPSBtb3Zl
V2l0aFBhdGNoKGluaXRpYWxWYWx1ZSwgQVJNOjpTMSk7Ci0gICAgICAgIHN0b3JlMzIoQVJNOjpT
MSwgYWRkcmVzcyk7CisgICAgICAgIERhdGFMYWJlbFB0ciBkYXRhTGFiZWwgPSBtb3ZlV2l0aFBh
dGNoKGluaXRpYWxWYWx1ZSwgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIHN0b3JlMzIoQVJN
UmVnaXN0ZXJzOjpTMSwgYWRkcmVzcyk7CiAgICAgICAgIHJldHVybiBkYXRhTGFiZWw7CiAgICAg
fQogCkBAIC02NjMsOCArNjYzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGREb3VibGUoQWRk
cmVzcyBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbG9hZERvdWJsZShz
cmMsIEFSTTo6U0QwKTsKLSAgICAgICAgYWRkRG91YmxlKEFSTTo6U0QwLCBkZXN0KTsKKyAgICAg
ICAgbG9hZERvdWJsZShzcmMsIEFSTVJlZ2lzdGVyczo6U0QwKTsKKyAgICAgICAgYWRkRG91Ymxl
KEFSTVJlZ2lzdGVyczo6U0QwLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIHN1YkRvdWJsZShG
UFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKQEAgLTY3NCw4ICs2NzQsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHN1YkRvdWJsZShBZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewotICAgICAgICBsb2FkRG91YmxlKHNyYywgQVJNOjpTRDApOwotICAgICAgICBz
dWJEb3VibGUoQVJNOjpTRDAsIGRlc3QpOworICAgICAgICBsb2FkRG91YmxlKHNyYywgQVJNUmVn
aXN0ZXJzOjpTRDApOworICAgICAgICBzdWJEb3VibGUoQVJNUmVnaXN0ZXJzOjpTRDAsIGRlc3Qp
OwogICAgIH0KIAogICAgIHZvaWQgbXVsRG91YmxlKEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0
ZXJJRCBkZXN0KQpAQCAtNjg1LDggKzY4NSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbXVsRG91
YmxlKEFkZHJlc3Mgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIGxvYWRE
b3VibGUoc3JjLCBBUk06OlNEMCk7Ci0gICAgICAgIG11bERvdWJsZShBUk06OlNEMCwgZGVzdCk7
CisgICAgICAgIGxvYWREb3VibGUoc3JjLCBBUk1SZWdpc3RlcnM6OlNEMCk7CisgICAgICAgIG11
bERvdWJsZShBUk1SZWdpc3RlcnM6OlNEMCwgZGVzdCk7CiAgICAgfQogCiAgICAgdm9pZCBjb252
ZXJ0SW50MzJUb0RvdWJsZShSZWdpc3RlcklEIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCkBAIC03
MzUsNDEgKzczNSw0MSBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGVuc3VyZVNwYWNlKDMgKiBzaXpl
b2YoQVJNV29yZCksIHNpemVvZihBUk1Xb3JkKSk7CiAKICAgICAgICAgLy8gUzAgbWlnaHQgYmUg
dXNlZCBmb3IgcGFyYW1ldGVyIHBhc3NpbmcKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRkX3IoQVJN
OjpTMSwgQVJNOjpwYywgQVJNQXNzZW1ibGVyOjpPUDJfSU1NIHwgMHg0KTsKLSAgICAgICAgbV9h
c3NlbWJsZXIucHVzaF9yKEFSTTo6UzEpOworICAgICAgICBtX2Fzc2VtYmxlci5hZGRfcihBUk1S
ZWdpc3RlcnM6OlMxLCBBUk1SZWdpc3RlcnM6OnBjLCBBUk1Bc3NlbWJsZXI6Ok9QMl9JTU0gfCAw
eDQpOworICAgICAgICBtX2Fzc2VtYmxlci5wdXNoX3IoQVJNUmVnaXN0ZXJzOjpTMSk7CiAgICAg
fQogCiAgICAgdm9pZCBjYWxsMzIoUmVnaXN0ZXJJRCBiYXNlLCBpbnQzMl90IG9mZnNldCkKICAg
ICB7Ci0gICAgICAgIGlmIChiYXNlID09IEFSTTo6c3ApCisgICAgICAgIGlmIChiYXNlID09IEFS
TVJlZ2lzdGVyczo6c3ApCiAgICAgICAgICAgICBvZmZzZXQgKz0gNDsKIAogICAgICAgICBpZiAo
b2Zmc2V0ID49IDApIHsKICAgICAgICAgICAgIGlmIChvZmZzZXQgPD0gMHhmZmYpIHsKICAgICAg
ICAgICAgICAgICBwcmVwYXJlQ2FsbCgpOwotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmR0
cl91KHRydWUsIEFSTTo6cGMsIGJhc2UsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuZHRyX3UodHJ1ZSwgQVJNUmVnaXN0ZXJzOjpwYywgYmFzZSwgb2Zmc2V0KTsKICAgICAg
ICAgICAgIH0gZWxzZSBpZiAob2Zmc2V0IDw9IDB4ZmZmZmYpIHsKLSAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5hZGRfcihBUk06OlMwLCBiYXNlLCBBUk1Bc3NlbWJsZXI6Ok9QMl9JTU0gfCAo
b2Zmc2V0ID4+IDEyKSB8ICgxMCA8PCA4KSk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
YWRkX3IoQVJNUmVnaXN0ZXJzOjpTMCwgYmFzZSwgQVJNQXNzZW1ibGVyOjpPUDJfSU1NIHwgKG9m
ZnNldCA+PiAxMikgfCAoMTAgPDwgOCkpOwogICAgICAgICAgICAgICAgIHByZXBhcmVDYWxsKCk7
Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuZHRyX3UodHJ1ZSwgQVJNOjpwYywgQVJNOjpT
MCwgb2Zmc2V0ICYgMHhmZmYpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmR0cl91KHRy
dWUsIEFSTVJlZ2lzdGVyczo6cGMsIEFSTVJlZ2lzdGVyczo6UzAsIG9mZnNldCAmIDB4ZmZmKTsK
ICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVJNV29yZCByZWcgPSBtX2Fz
c2VtYmxlci5nZXRJbW0ob2Zmc2V0LCBBUk06OlMwKTsKKyAgICAgICAgICAgICAgICBBUk1Xb3Jk
IHJlZyA9IG1fYXNzZW1ibGVyLmdldEltbShvZmZzZXQsIEFSTVJlZ2lzdGVyczo6UzApOwogICAg
ICAgICAgICAgICAgIHByZXBhcmVDYWxsKCk7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
ZHRyX3VyKHRydWUsIEFSTTo6cGMsIGJhc2UsIHJlZyk7CisgICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuZHRyX3VyKHRydWUsIEFSTVJlZ2lzdGVyczo6cGMsIGJhc2UsIHJlZyk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0gZWxzZSAgewogICAgICAgICAgICAgb2Zmc2V0ID0gLW9mZnNldDsK
ICAgICAgICAgICAgIGlmIChvZmZzZXQgPD0gMHhmZmYpIHsKICAgICAgICAgICAgICAgICBwcmVw
YXJlQ2FsbCgpOwotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmR0cl9kKHRydWUsIEFSTTo6
cGMsIGJhc2UsIG9mZnNldCk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuZHRyX2QodHJ1
ZSwgQVJNUmVnaXN0ZXJzOjpwYywgYmFzZSwgb2Zmc2V0KTsKICAgICAgICAgICAgIH0gZWxzZSBp
ZiAob2Zmc2V0IDw9IDB4ZmZmZmYpIHsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWJf
cihBUk06OlMwLCBiYXNlLCBBUk1Bc3NlbWJsZXI6Ok9QMl9JTU0gfCAob2Zmc2V0ID4+IDEyKSB8
ICgxMCA8PCA4KSk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc3ViX3IoQVJNUmVnaXN0
ZXJzOjpTMCwgYmFzZSwgQVJNQXNzZW1ibGVyOjpPUDJfSU1NIHwgKG9mZnNldCA+PiAxMikgfCAo
MTAgPDwgOCkpOwogICAgICAgICAgICAgICAgIHByZXBhcmVDYWxsKCk7Ci0gICAgICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuZHRyX2QodHJ1ZSwgQVJNOjpwYywgQVJNOjpTMCwgb2Zmc2V0ICYgMHhm
ZmYpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmR0cl9kKHRydWUsIEFSTVJlZ2lzdGVy
czo6cGMsIEFSTVJlZ2lzdGVyczo6UzAsIG9mZnNldCAmIDB4ZmZmKTsKICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgQVJNV29yZCByZWcgPSBtX2Fzc2VtYmxlci5nZXRJbW0o
b2Zmc2V0LCBBUk06OlMwKTsKKyAgICAgICAgICAgICAgICBBUk1Xb3JkIHJlZyA9IG1fYXNzZW1i
bGVyLmdldEltbShvZmZzZXQsIEFSTVJlZ2lzdGVyczo6UzApOwogICAgICAgICAgICAgICAgIHBy
ZXBhcmVDYWxsKCk7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuZHRyX2RyKHRydWUsIEFS
TTo6cGMsIGJhc2UsIHJlZyk7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuZHRyX2RyKHRy
dWUsIEFSTVJlZ2lzdGVyczo6cGMsIGJhc2UsIHJlZyk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk12Ny5oIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJN
djcuaAppbmRleCBmN2E4NDAyLi42ZmZkOWM3IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oCisrKyBiL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKQEAgLTM5LDkgKzM5LDkgQEAgY2xhc3MgTWFjcm9B
c3NlbWJsZXJBUk12NyA6IHB1YmxpYyBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyPEFSTXY3QXNzZW1i
bGVyPiB7CiAgICAgLy8gRklYTUU6IHN3aXRjaCBkYXRhVGVtcFJlZ2lzdGVyICYgYWRkcmVzc1Rl
bXBSZWdpc3Rlciwgb3IgcG9zc2libHkgdXNlIHI3PwogICAgIC8vICAgICAgICAtIGRUUiBpcyBs
aWtlbHkgdXNlZCBtb3JlIHRoYW4gYVRSLCBhbmQgd2UnbGwgZ2V0IGJldHRlciBpbnN0cnVjdGlv
bgogICAgIC8vICAgICAgICBlbmNvZGluZyBpZiBpdCdzIGluIHRoZSBsb3cgOCByZWdpc3RlcnMu
Ci0gICAgc3RhdGljIGNvbnN0IEFSTTo6UmVnaXN0ZXJJRCBkYXRhVGVtcFJlZ2lzdGVyID0gQVJN
OjppcDsKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBhZGRyZXNzVGVtcFJlZ2lzdGVyID0g
QVJNOjpyMzsKLSAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwVGVtcFJlZ2lzdGVyID0g
QVJNOjpkNzsKKyAgICBzdGF0aWMgY29uc3QgQVJNUmVnaXN0ZXJzOjpSZWdpc3RlcklEIGRhdGFU
ZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmlwOworICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIGFkZHJlc3NUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIzOworICAgIHN0YXRpYyBj
b25zdCBGUFJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OmQ3OwogCiAg
ICAgc3RydWN0IEFybUFkZHJlc3MgewogICAgICAgICBlbnVtIEFkZHJlc3NUeXBlIHsKQEAgLTEw
Miw4ICsxMDIsOCBAQCBwdWJsaWM6CiAgICAgICAgIERvdWJsZUxlc3NUaGFuT3JFcXVhbCA9IEFS
TXY3QXNzZW1ibGVyOjpDb25kaXRpb25MUywKICAgICB9OwogCi0gICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBBUk06OnNwOwotICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIGxpbmtSZWdpc3RlciA9IEFSTTo6bHI7CisgICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnNwOworICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIGxpbmtSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6bHI7CiAK
ICAgICAvLyBJbnRlZ2VyIGFyaXRobWV0aWMgb3BlcmF0aW9uczoKICAgICAvLwpAQCAtNTQ2LDEz
ICs1NDYsMTMgQEAgcHVibGljOgogICAgIHZvaWQgcG9wKFJlZ2lzdGVySUQgZGVzdCkKICAgICB7
CiAgICAgICAgIC8vIHN0b3JlIHBvc3RpbmRleGVkIHdpdGggd3JpdGViYWNrCi0gICAgICAgIG1f
YXNzZW1ibGVyLmxkcihkZXN0LCBBUk06OnNwLCBzaXplb2Yodm9pZCopLCBmYWxzZSwgdHJ1ZSk7
CisgICAgICAgIG1fYXNzZW1ibGVyLmxkcihkZXN0LCBBUk1SZWdpc3RlcnM6OnNwLCBzaXplb2Yo
dm9pZCopLCBmYWxzZSwgdHJ1ZSk7CiAgICAgfQogCiAgICAgdm9pZCBwdXNoKFJlZ2lzdGVySUQg
c3JjKQogICAgIHsKICAgICAgICAgLy8gc3RvcmUgcHJlaW5kZXhlZCB3aXRoIHdyaXRlYmFjawot
ICAgICAgICBtX2Fzc2VtYmxlci5zdHIoc3JjLCBBUk06OnNwLCAtc2l6ZW9mKHZvaWQqKSwgdHJ1
ZSwgdHJ1ZSk7CisgICAgICAgIG1fYXNzZW1ibGVyLnN0cihzcmMsIEFSTVJlZ2lzdGVyczo6c3As
IC1zaXplb2Yodm9pZCopLCB0cnVlLCB0cnVlKTsKICAgICB9CiAKICAgICB2b2lkIHB1c2goQWRk
cmVzcyBhZGRyZXNzKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvSmF2
YVNjcmlwdENvcmUvaml0L0pJVC5oCmluZGV4IDVjNjYwN2MuLjAwOWU2NjYgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgK
QEAgLTIyNyw0NiArMjI3LDQ2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBzdGF0aWMgY29u
c3QgRlBSZWdpc3RlcklEIGZwUmVnVDEgPSBYODY6OnhtbTE7CiAgICAgICAgIHN0YXRpYyBjb25z
dCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IFg4Njo6eG1tMjsKICNlbGlmIFBMQVRGT1JNX0FSTV9B
UkNIKDcpCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblZhbHVlUmVnaXN0
ZXIgPSBBUk06OnIwOwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1
bHRSZWdpc3RlciA9IEFSTTo6cjA7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGZp
cnN0QXJndW1lbnRSZWdpc3RlciA9IEFSTTo6cjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdp
c3RlcklEIHJldHVyblZhbHVlUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOworICAgICAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IEFSTVJlZ2lzdGVy
czo6cjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGZpcnN0QXJndW1lbnRSZWdp
c3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgcmVnVDAgPSBBUk06OnIwOwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdU
MSA9IEFSTTo6cjE7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QyID0gQVJN
OjpyMjsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDMgPSBBUk06OnI0Owor
ICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMCA9IEFSTVJlZ2lzdGVyczo6cjA7
CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpy
MTsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDIgPSBBUk1SZWdpc3RlcnM6
OnIyOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMyA9IEFSTVJlZ2lzdGVy
czo6cjQ7CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0
ZXIgPSBBUk06OnI1OwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCB0aW1lb3V0Q2hl
Y2tSZWdpc3RlciA9IEFSTTo6cjY7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGNh
bGxGcmFtZVJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNTsKKyAgICAgICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgdGltZW91dENoZWNrUmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnI2OwogCi0g
ICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMCA9IEFSTTo6ZDA7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMSA9IEFSTTo6ZDE7Ci0gICAgICAg
IHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IEFSTTo6ZDI7CisgICAgICAgIHN0
YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMCA9IEFSTVJlZ2lzdGVyczo6ZDA7CisgICAg
ICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMSA9IEFSTVJlZ2lzdGVyczo6ZDE7
CisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IEFSTVJlZ2lzdGVy
czo6ZDI7CiAjZWxpZiBQTEFURk9STShBUk0pCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIHJldHVyblZhbHVlUmVnaXN0ZXIgPSBBUk06OnIwOwotICAgICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IEFSTTo6cjA7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIGZpcnN0QXJndW1lbnRSZWdpc3RlciA9IEFSTTo6cjA7CisgICAg
ICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblZhbHVlUmVnaXN0ZXIgPSBBUk1SZWdp
c3RlcnM6OnIwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRS
ZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIGZpcnN0QXJndW1lbnRSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7CiAKLSAgICAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdGltZW91dENoZWNrUmVnaXN0ZXIgPSBBUk06OnI1Owot
ICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlciA9IEFSTTo6
cjQ7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGN0aVJldHVyblJlZ2lzdGVyID0g
QVJNOjpyNjsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdGltZW91dENoZWNrUmVn
aXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnI1OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCBjYWxsRnJhbWVSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjQ7CisgICAgICAgIHN0YXRpYyBj
b25zdCBSZWdpc3RlcklEIGN0aVJldHVyblJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNjsKIAot
ICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMCA9IEFSTTo6cjA7Ci0gICAgICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QxID0gQVJNOjpyMTsKLSAgICAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgcmVnVDIgPSBBUk06OnIyOworICAgICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCByZWdUMCA9IEFSTVJlZ2lzdGVyczo6cjA7CisgICAgICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIHJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpyMTsKKyAgICAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgcmVnVDIgPSBBUk1SZWdpc3RlcnM6OnIyOwogICAgICAgICAvLyBDYWxs
ZWUgcHJlc2VydmVkCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QzID0gQVJN
OjpyNzsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDMgPSBBUk1SZWdpc3Rl
cnM6OnI3OwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1MwID0gQVJNOjpT
MDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnUzAgPSBBUk1SZWdpc3RlcnM6
OlMwOwogICAgICAgICAvLyBDYWxsZWUgcHJlc2VydmVkCi0gICAgICAgIHN0YXRpYyBjb25zdCBS
ZWdpc3RlcklEIHJlZ1MxID0gQVJNOjpTMTsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgcmVnUzEgPSBBUk1SZWdpc3RlcnM6OlMxOwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdp
c3RlcklEIHJlZ1N0YWNrUHRyID0gQVJNOjpzcDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgcmVnTGluayA9IEFSTTo6bHI7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IHJlZ1N0YWNrUHRyID0gQVJNUmVnaXN0ZXJzOjpzcDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgcmVnTGluayA9IEFSTVJlZ2lzdGVyczo6bHI7CiAKLSAgICAgICAgc3RhdGljIGNv
bnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QwID0gQVJNOjpkMDsKLSAgICAgICAgc3RhdGljIGNvbnN0
IEZQUmVnaXN0ZXJJRCBmcFJlZ1QxID0gQVJNOjpkMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IEZQ
UmVnaXN0ZXJJRCBmcFJlZ1QyID0gQVJNOjpkMjsKKyAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVn
aXN0ZXJJRCBmcFJlZ1QwID0gQVJNUmVnaXN0ZXJzOjpkMDsKKyAgICAgICAgc3RhdGljIGNvbnN0
IEZQUmVnaXN0ZXJJRCBmcFJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpkMTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpkMjsKICNlbHNlCiAg
ICAgI2Vycm9yICJKSVQgbm90IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLiIKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaCBiL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKaW5kZXggY2EzNDUwMi4uMjRjZGRlZCAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5oCkBAIC0xODMsNyArMTgzLDcgQEAg
QUxXQVlTX0lOTElORSB2b2lkIEpJVDo6cmVzdG9yZUFyZ3VtZW50UmVmZXJlbmNlKCkKICAgICBt
b3ZlKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIpOwogICAgIHBv
a2UoY2FsbEZyYW1lUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRPRihzdHJ1Y3QgSklUU3RhY2tGcmFt
ZSwgY2FsbEZyYW1lKSAvIHNpemVvZiAodm9pZCopKTsKICNpZiBQTEFURk9STShBUk0pICYmICFQ
TEFURk9STV9BUk1fQVJDSCg3KQotICAgIG1vdmUoY3RpUmV0dXJuUmVnaXN0ZXIsIEFSTTo6bHIp
OworICAgIG1vdmUoY3RpUmV0dXJuUmVnaXN0ZXIsIEFSTVJlZ2lzdGVyczo6bHIpOwogI2VuZGlm
CiB9CiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpyZXN0b3JlQXJndW1lbnRSZWZlcmVuY2VGb3JU
cmFtcG9saW5lKCkKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNw
cCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA1YTliZTI4Li5lMWMz
Yjg1IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rlcy5jcHAKKysrIGIv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xNzM2LDkgKzE3MzYsOSBAQCB2
b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1
dGFibGVQb29sPiogZXhlY3V0YWJsZQogICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1Qw
KTsKIAogICAgIC8vIFNldHVwIGFyZzQ6IFRoaXMgaXMgYSBwbGFpbiBoYWNrCi0gICAgbW92ZShz
dGFja1BvaW50ZXJSZWdpc3RlciwgQVJNOjpTMCk7CisgICAgbW92ZShzdGFja1BvaW50ZXJSZWdp
c3RlciwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAKLSAgICBtb3ZlKGN0aVJldHVyblJlZ2lzdGVyLCBB
Uk06OmxyKTsKKyAgICBtb3ZlKGN0aVJldHVyblJlZ2lzdGVyLCBBUk1SZWdpc3RlcnM6OmxyKTsK
ICAgICBjYWxsKEFkZHJlc3MocmVnVDEsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX2Rh
dGEpKSk7CiAKICAgICBhZGRQdHIoSW1tMzIoc2l6ZW9mKEFyZ0xpc3QpKSwgc3RhY2tQb2ludGVy
UmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEpJVC5jcHAg
Yi9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4SklULmNwcAppbmRleCA2NjNhNTI0Li45MzBmYjY2
IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS95YXJyL1JlZ2V4SklULmNwcAorKysgYi9KYXZh
U2NyaXB0Q29yZS95YXJyL1JlZ2V4SklULmNwcApAQCAtNDUsMTUgKzQ1LDE1IEBAIGNsYXNzIFJl
Z2V4R2VuZXJhdG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgZnJpZW5kIHZvaWQg
aml0Q29tcGlsZVJlZ2V4KEpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSwgUmVnZXhDb2RlQmxvY2sm
IGppdE9iamVjdCwgY29uc3QgVVN0cmluZyYgcGF0dGVybiwgdW5zaWduZWQmIG51bVN1YnBhdHRl
cm5zLCBjb25zdCBjaGFyKiYgZXJyb3IsIGJvb2wgaWdub3JlQ2FzZSwgYm9vbCBtdWx0aWxpbmUp
OwogCiAjaWYgUExBVEZPUk0oQVJNKQotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGlucHV0
ID0gQVJNOjpyMDsKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbmRleCA9IEFSTTo6cjE7
Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgbGVuZ3RoID0gQVJNOjpyMjsKLSAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBvdXRwdXQgPSBBUk06OnI0OworICAgIHN0YXRpYyBjb25zdCBS
ZWdpc3RlcklEIGlucHV0ID0gQVJNUmVnaXN0ZXJzOjpyMDsKKyAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCBpbmRleCA9IEFSTVJlZ2lzdGVyczo6cjE7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgbGVuZ3RoID0gQVJNUmVnaXN0ZXJzOjpyMjsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCBvdXRwdXQgPSBBUk1SZWdpc3RlcnM6OnI0OwogCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgcmVnVDAgPSBBUk06OnI1OwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1Qx
ID0gQVJNOjpyNjsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMCA9IEFSTVJlZ2lz
dGVyczo6cjU7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDEgPSBBUk1SZWdpc3Rl
cnM6OnI2OwogCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuUmVnaXN0ZXIgPSBB
Uk06OnIwOworICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyID0gQVJN
UmVnaXN0ZXJzOjpyMDsKICNlbGlmIFBMQVRGT1JNKFg4NikKICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCBpbnB1dCA9IFg4Njo6ZWF4OwogICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGlu
ZGV4ID0gWDg2OjplZHg7CkBAIC0xMzEwLDEyICsxMzEwLDEyIEBAIGNsYXNzIFJlZ2V4R2VuZXJh
dG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgI2VuZGlmCiAjZWxpZiBQTEFURk9S
TShBUk0pCiAjaWYgIVBMQVRGT1JNX0FSTV9BUkNIKDcpCi0gICAgICAgIHB1c2goQVJNOjpscik7
CisgICAgICAgIHB1c2goQVJNUmVnaXN0ZXJzOjpscik7CiAjZW5kaWYKLSAgICAgICAgcHVzaChB
Uk06OnI0KTsKLSAgICAgICAgcHVzaChBUk06OnI1KTsKLSAgICAgICAgcHVzaChBUk06OnI2KTsK
LSAgICAgICAgbW92ZShBUk06OnIzLCBvdXRwdXQpOworICAgICAgICBwdXNoKEFSTVJlZ2lzdGVy
czo6cjQpOworICAgICAgICBwdXNoKEFSTVJlZ2lzdGVyczo6cjUpOworICAgICAgICBwdXNoKEFS
TVJlZ2lzdGVyczo6cjYpOworICAgICAgICBtb3ZlKEFSTVJlZ2lzdGVyczo6cjMsIG91dHB1dCk7
CiAjZW5kaWYKICAgICB9CiAKQEAgLTEzMzAsOSArMTMzMCw5IEBAIGNsYXNzIFJlZ2V4R2VuZXJh
dG9yIDogcHJpdmF0ZSBNYWNyb0Fzc2VtYmxlciB7CiAgICAgICAgIHBvcChYODY6OmVieCk7CiAg
ICAgICAgIHBvcChYODY6OmVicCk7CiAjZWxpZiBQTEFURk9STShBUk0pCi0gICAgICAgIHBvcChB
Uk06OnI2KTsKLSAgICAgICAgcG9wKEFSTTo6cjUpOwotICAgICAgICBwb3AoQVJNOjpyNCk7Cisg
ICAgICAgIHBvcChBUk1SZWdpc3RlcnM6OnI2KTsKKyAgICAgICAgcG9wKEFSTVJlZ2lzdGVyczo6
cjUpOworICAgICAgICBwb3AoQVJNUmVnaXN0ZXJzOjpyNCk7CiAjZW5kaWYKICAgICAgICAgcmV0
KCk7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>35149</attachid>
            <date>2009-08-19 15:28:29 -0700</date>
            <delta_ts>2009-08-19 17:02:30 -0700</delta_ts>
            <desc>change X86 and ARM in ARMv7, too</desc>
            <filename>28428.patch</filename>
            <type>text/plain</type>
            <size>88615</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA5MzAyZDc1Li4xYTFkNTlmIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMDktMDgtMTkgIFlvbmcgTGkgIDx5b25nLmxpQHRvcmNobW9iaWxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgbmFtZXNw
YWNlIEFSTSB0byBBUk1SZWdpc3RlcnMKKyAgICAgICAgWDg2IHRvIFg4NlJlZ2lzdGVycyB0byBh
dm9pZCBjb25mbGljdCB3aXRoIG1hY3JvcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mjg0MjgKKworICAgICAgICAqIGFzc2VtYmxlci9BUk1Bc3NlbWJs
ZXIuY3BwOgorICAgICAgICAqIGFzc2VtYmxlci9BUk1Bc3NlbWJsZXIuaDoKKyAgICAgICAgKiBh
c3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJBUk0uaDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5oOgor
ICAgICAgICAqIGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAq
IGFzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oOgorICAgICAgICAqIGFzc2VtYmxlci9Y
ODZBc3NlbWJsZXIuaDoKKyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVEFy
aXRobWV0aWMuY3BwOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVNZXRob2RzLmg6CisgICAgICAg
ICogaml0L0pJVE9wY29kZXMuY3BwOgorICAgICAgICAqIHdyZWMvV1JFQ0dlbmVyYXRvci5jcHA6
CisgICAgICAgICogd3JlYy9XUkVDR2VuZXJhdG9yLmg6CisgICAgICAgICogeWFyci9SZWdleEpJ
VC5jcHA6CisKIDIwMDktMDgtMTggIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuY3BwIGIvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAKaW5kZXggYzhiMDdmYy4uNzdkN2E1MyAxMDA2NDQKLS0t
IGEvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAKKysrIGIvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAKQEAgLTI5MSwxMCArMjkxLDEwIEBA
IHZvaWQgQVJNQXNzZW1ibGVyOjpkYXRhVHJhbnNmZXIzMihib29sIGlzTG9hZCwgUmVnaXN0ZXJJ
RCBzcmNEc3QsIFJlZ2lzdGVySUQgYmFzCiAgICAgICAgIGlmIChvZmZzZXQgPD0gMHhmZmYpCiAg
ICAgICAgICAgICBkdHJfdShpc0xvYWQsIHNyY0RzdCwgYmFzZSwgb2Zmc2V0KTsKICAgICAgICAg
ZWxzZSBpZiAob2Zmc2V0IDw9IDB4ZmZmZmYpIHsKLSAgICAgICAgICAgIGFkZF9yKEFSTTo6UzAs
IGJhc2UsIE9QMl9JTU0gfCAob2Zmc2V0ID4+IDEyKSB8ICgxMCA8PCA4KSk7Ci0gICAgICAgICAg
ICBkdHJfdShpc0xvYWQsIHNyY0RzdCwgQVJNOjpTMCwgb2Zmc2V0ICYgMHhmZmYpOworICAgICAg
ICAgICAgYWRkX3IoQVJNUmVnaXN0ZXJzOjpTMCwgYmFzZSwgT1AyX0lNTSB8IChvZmZzZXQgPj4g
MTIpIHwgKDEwIDw8IDgpKTsKKyAgICAgICAgICAgIGR0cl91KGlzTG9hZCwgc3JjRHN0LCBBUk1S
ZWdpc3RlcnM6OlMwLCBvZmZzZXQgJiAweGZmZik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBBUk1Xb3JkIHJlZyA9IGdldEltbShvZmZzZXQsIEFSTTo6UzApOworICAgICAgICAgICAg
QVJNV29yZCByZWcgPSBnZXRJbW0ob2Zmc2V0LCBBUk1SZWdpc3RlcnM6OlMwKTsKICAgICAgICAg
ICAgIGR0cl91cihpc0xvYWQsIHNyY0RzdCwgYmFzZSwgcmVnKTsKICAgICAgICAgfQogICAgIH0g
ZWxzZSB7CkBAIC0zMDIsMTAgKzMwMiwxMCBAQCB2b2lkIEFSTUFzc2VtYmxlcjo6ZGF0YVRyYW5z
ZmVyMzIoYm9vbCBpc0xvYWQsIFJlZ2lzdGVySUQgc3JjRHN0LCBSZWdpc3RlcklEIGJhcwogICAg
ICAgICBpZiAob2Zmc2V0IDw9IDB4ZmZmKQogICAgICAgICAgICAgZHRyX2QoaXNMb2FkLCBzcmNE
c3QsIGJhc2UsIG9mZnNldCk7CiAgICAgICAgIGVsc2UgaWYgKG9mZnNldCA8PSAweGZmZmZmKSB7
Ci0gICAgICAgICAgICBzdWJfcihBUk06OlMwLCBiYXNlLCBPUDJfSU1NIHwgKG9mZnNldCA+PiAx
MikgfCAoMTAgPDwgOCkpOwotICAgICAgICAgICAgZHRyX2QoaXNMb2FkLCBzcmNEc3QsIEFSTTo6
UzAsIG9mZnNldCAmIDB4ZmZmKTsKKyAgICAgICAgICAgIHN1Yl9yKEFSTVJlZ2lzdGVyczo6UzAs
IGJhc2UsIE9QMl9JTU0gfCAob2Zmc2V0ID4+IDEyKSB8ICgxMCA8PCA4KSk7CisgICAgICAgICAg
ICBkdHJfZChpc0xvYWQsIHNyY0RzdCwgQVJNUmVnaXN0ZXJzOjpTMCwgb2Zmc2V0ICYgMHhmZmYp
OwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgQVJNV29yZCByZWcgPSBnZXRJbW0ob2Zm
c2V0LCBBUk06OlMwKTsKKyAgICAgICAgICAgIEFSTVdvcmQgcmVnID0gZ2V0SW1tKG9mZnNldCwg
QVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAgICAgICAgICBkdHJfZHIoaXNMb2FkLCBzcmNEc3QsIGJh
c2UsIHJlZyk7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMTksMTkgKzMxOSwxOSBAQCB2b2lkIEFS
TUFzc2VtYmxlcjo6YmFzZUluZGV4VHJhbnNmZXIzMihib29sIGlzTG9hZCwgUmVnaXN0ZXJJRCBz
cmNEc3QsIFJlZ2lzdGVySQogICAgIG9wMiA9IGxzbChpbmRleCwgc2NhbGUpOwogCiAgICAgaWYg
KG9mZnNldCA+PSAwICYmIG9mZnNldCA8PSAweGZmZikgewotICAgICAgICBhZGRfcihBUk06OlMw
LCBiYXNlLCBvcDIpOwotICAgICAgICBkdHJfdShpc0xvYWQsIHNyY0RzdCwgQVJNOjpTMCwgb2Zm
c2V0KTsKKyAgICAgICAgYWRkX3IoQVJNUmVnaXN0ZXJzOjpTMCwgYmFzZSwgb3AyKTsKKyAgICAg
ICAgZHRyX3UoaXNMb2FkLCBzcmNEc3QsIEFSTVJlZ2lzdGVyczo6UzAsIG9mZnNldCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKG9mZnNldCA8PSAwICYmIG9mZnNldCA+PSAtMHhm
ZmYpIHsKLSAgICAgICAgYWRkX3IoQVJNOjpTMCwgYmFzZSwgb3AyKTsKLSAgICAgICAgZHRyX2Qo
aXNMb2FkLCBzcmNEc3QsIEFSTTo6UzAsIC1vZmZzZXQpOworICAgICAgICBhZGRfcihBUk1SZWdp
c3RlcnM6OlMwLCBiYXNlLCBvcDIpOworICAgICAgICBkdHJfZChpc0xvYWQsIHNyY0RzdCwgQVJN
UmVnaXN0ZXJzOjpTMCwgLW9mZnNldCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBs
ZHJfdW5faW1tKEFSTTo6UzAsIG9mZnNldCk7Ci0gICAgYWRkX3IoQVJNOjpTMCwgQVJNOjpTMCwg
b3AyKTsKLSAgICBkdHJfdXIoaXNMb2FkLCBzcmNEc3QsIGJhc2UsIEFSTTo6UzApOworICAgIGxk
cl91bl9pbW0oQVJNUmVnaXN0ZXJzOjpTMCwgb2Zmc2V0KTsKKyAgICBhZGRfcihBUk1SZWdpc3Rl
cnM6OlMwLCBBUk1SZWdpc3RlcnM6OlMwLCBvcDIpOworICAgIGR0cl91cihpc0xvYWQsIHNyY0Rz
dCwgYmFzZSwgQVJNUmVnaXN0ZXJzOjpTMCk7CiB9CiAKIHZvaWQgQVJNQXNzZW1ibGVyOjpkb3Vi
bGVUcmFuc2Zlcihib29sIGlzTG9hZCwgRlBSZWdpc3RlcklEIHNyY0RzdCwgUmVnaXN0ZXJJRCBi
YXNlLCBpbnQzMl90IG9mZnNldCkKQEAgLTM0Miw4ICszNDIsOCBAQCB2b2lkIEFSTUFzc2VtYmxl
cjo6ZG91YmxlVHJhbnNmZXIoYm9vbCBpc0xvYWQsIEZQUmVnaXN0ZXJJRCBzcmNEc3QsIFJlZ2lz
dGVySUQgYgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChvZmZz
ZXQgPD0gMHgzZmZmZiAmJiBvZmZzZXQgPj0gMCkgewotICAgICAgICAgICAgYWRkX3IoQVJNOjpT
MCwgYmFzZSwgT1AyX0lNTSB8IChvZmZzZXQgPj4gMTApIHwgKDExIDw8IDgpKTsKLSAgICAgICAg
ICAgIGZkdHJfdShpc0xvYWQsIHNyY0RzdCwgQVJNOjpTMCwgKG9mZnNldCA+PiAyKSAmIDB4ZmYp
OworICAgICAgICAgICAgYWRkX3IoQVJNUmVnaXN0ZXJzOjpTMCwgYmFzZSwgT1AyX0lNTSB8IChv
ZmZzZXQgPj4gMTApIHwgKDExIDw8IDgpKTsKKyAgICAgICAgICAgIGZkdHJfdShpc0xvYWQsIHNy
Y0RzdCwgQVJNUmVnaXN0ZXJzOjpTMCwgKG9mZnNldCA+PiAyKSAmIDB4ZmYpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIG9mZnNldCA9IC1vZmZzZXQ7CkBAIC0zNTMs
MTYgKzM1MywxNiBAQCB2b2lkIEFSTUFzc2VtYmxlcjo6ZG91YmxlVHJhbnNmZXIoYm9vbCBpc0xv
YWQsIEZQUmVnaXN0ZXJJRCBzcmNEc3QsIFJlZ2lzdGVySUQgYgogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIGlmIChvZmZzZXQgPD0gMHgzZmZmZiAmJiBvZmZzZXQgPj0g
MCkgewotICAgICAgICAgICAgc3ViX3IoQVJNOjpTMCwgYmFzZSwgT1AyX0lNTSB8IChvZmZzZXQg
Pj4gMTApIHwgKDExIDw8IDgpKTsKLSAgICAgICAgICAgIGZkdHJfZChpc0xvYWQsIHNyY0RzdCwg
QVJNOjpTMCwgKG9mZnNldCA+PiAyKSAmIDB4ZmYpOworICAgICAgICAgICAgc3ViX3IoQVJNUmVn
aXN0ZXJzOjpTMCwgYmFzZSwgT1AyX0lNTSB8IChvZmZzZXQgPj4gMTApIHwgKDExIDw8IDgpKTsK
KyAgICAgICAgICAgIGZkdHJfZChpc0xvYWQsIHNyY0RzdCwgQVJNUmVnaXN0ZXJzOjpTMCwgKG9m
ZnNldCA+PiAyKSAmIDB4ZmYpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
ICAgIG9mZnNldCA9IC1vZmZzZXQ7CiAgICAgfQogCi0gICAgbGRyX3VuX2ltbShBUk06OlMwLCBv
ZmZzZXQpOwotICAgIGFkZF9yKEFSTTo6UzAsIEFSTTo6UzAsIGJhc2UpOwotICAgIGZkdHJfdShp
c0xvYWQsIHNyY0RzdCwgQVJNOjpTMCwgMCk7CisgICAgbGRyX3VuX2ltbShBUk1SZWdpc3RlcnM6
OlMwLCBvZmZzZXQpOworICAgIGFkZF9yKEFSTVJlZ2lzdGVyczo6UzAsIEFSTVJlZ2lzdGVyczo6
UzAsIGJhc2UpOworICAgIGZkdHJfdShpc0xvYWQsIHNyY0RzdCwgQVJNUmVnaXN0ZXJzOjpTMCwg
MCk7CiB9CiAKIHZvaWQqIEFSTUFzc2VtYmxlcjo6ZXhlY3V0YWJsZUNvcHkoRXhlY3V0YWJsZVBv
b2wqIGFsbG9jYXRvcikKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1B
c3NlbWJsZXIuaCBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk1Bc3NlbWJsZXIuaAppbmRl
eCAwMjA2NzcwLi4wYjA0YmI0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
QVJNQXNzZW1ibGVyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxl
ci5oCkBAIC0zNSw0NyArMzUsNDcgQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogbmFt
ZXNwYWNlIEpTQyB7CiAKLXR5cGVkZWYgdWludDMyX3QgQVJNV29yZDsKLQotbmFtZXNwYWNlIEFS
TSB7Ci0gICAgdHlwZWRlZiBlbnVtIHsKLSAgICAgICAgcjAgPSAwLAotICAgICAgICByMSwKLSAg
ICAgICAgcjIsCi0gICAgICAgIHIzLAotICAgICAgICBTMCA9IHIzLAotICAgICAgICByNCwKLSAg
ICAgICAgcjUsCi0gICAgICAgIHI2LAotICAgICAgICByNywKLSAgICAgICAgcjgsCi0gICAgICAg
IFMxID0gcjgsCi0gICAgICAgIHI5LAotICAgICAgICByMTAsCi0gICAgICAgIHIxMSwKLSAgICAg
ICAgcjEyLAotICAgICAgICByMTMsCi0gICAgICAgIHNwID0gcjEzLAotICAgICAgICByMTQsCi0g
ICAgICAgIGxyID0gcjE0LAotICAgICAgICByMTUsCi0gICAgICAgIHBjID0gcjE1Ci0gICAgfSBS
ZWdpc3RlcklEOwotCi0gICAgdHlwZWRlZiBlbnVtIHsKLSAgICAgICAgZDAsCi0gICAgICAgIGQx
LAotICAgICAgICBkMiwKLSAgICAgICAgZDMsCi0gICAgICAgIFNEMCA9IGQzCi0gICAgfSBGUFJl
Z2lzdGVySUQ7Ci0KLX0gLy8gbmFtZXNwYWNlIEFSTQorICAgIHR5cGVkZWYgdWludDMyX3QgQVJN
V29yZDsKKworICAgIG5hbWVzcGFjZSBBUk1SZWdpc3RlcnMgeworICAgICAgICB0eXBlZGVmIGVu
dW0geworICAgICAgICAgICAgcjAgPSAwLAorICAgICAgICAgICAgcjEsCisgICAgICAgICAgICBy
MiwKKyAgICAgICAgICAgIHIzLAorICAgICAgICAgICAgUzAgPSByMywKKyAgICAgICAgICAgIHI0
LAorICAgICAgICAgICAgcjUsCisgICAgICAgICAgICByNiwKKyAgICAgICAgICAgIHI3LAorICAg
ICAgICAgICAgcjgsCisgICAgICAgICAgICBTMSA9IHI4LAorICAgICAgICAgICAgcjksCisgICAg
ICAgICAgICByMTAsCisgICAgICAgICAgICByMTEsCisgICAgICAgICAgICByMTIsCisgICAgICAg
ICAgICByMTMsCisgICAgICAgICAgICBzcCA9IHIxMywKKyAgICAgICAgICAgIHIxNCwKKyAgICAg
ICAgICAgIGxyID0gcjE0LAorICAgICAgICAgICAgcjE1LAorICAgICAgICAgICAgcGMgPSByMTUK
KyAgICAgICAgfSBSZWdpc3RlcklEOworCisgICAgICAgIHR5cGVkZWYgZW51bSB7CisgICAgICAg
ICAgICBkMCwKKyAgICAgICAgICAgIGQxLAorICAgICAgICAgICAgZDIsCisgICAgICAgICAgICBk
MywKKyAgICAgICAgICAgIFNEMCA9IGQzCisgICAgICAgIH0gRlBSZWdpc3RlcklEOworCisgICAg
fSAvLyBuYW1lc3BhY2UgQVJNUmVnaXN0ZXJzCiAKICAgICBjbGFzcyBBUk1Bc3NlbWJsZXIgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgdHlwZWRlZiBBUk06OlJlZ2lzdGVySUQgUmVnaXN0ZXJJRDsK
LSAgICAgICAgdHlwZWRlZiBBUk06OkZQUmVnaXN0ZXJJRCBGUFJlZ2lzdGVySUQ7CisgICAgICAg
IHR5cGVkZWYgQVJNUmVnaXN0ZXJzOjpSZWdpc3RlcklEIFJlZ2lzdGVySUQ7CisgICAgICAgIHR5
cGVkZWYgQVJNUmVnaXN0ZXJzOjpGUFJlZ2lzdGVySUQgRlBSZWdpc3RlcklEOwogICAgICAgICB0
eXBlZGVmIEFzc2VtYmxlckJ1ZmZlcldpdGhDb25zdGFudFBvb2w8MjA0OCwgNCwgNCwgQVJNQXNz
ZW1ibGVyPiBBUk1CdWZmZXI7CiAgICAgICAgIHR5cGVkZWYgU2VnbWVudGVkVmVjdG9yPGludCwg
NjQ+IEp1bXBzOwogCkBAIC0zMzAsMTIgKzMzMCwxMiBAQCBuYW1lc3BhY2UgQVJNIHsKIAogICAg
ICAgICB2b2lkIG1vdl9yKGludCByZCwgQVJNV29yZCBvcDIsIENvbmRpdGlvbiBjYyA9IEFMKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBlbWl0SW5zdChzdGF0aWNfY2FzdDxBUk1Xb3JkPihjYykg
fCBNT1YsIHJkLCBBUk06OnIwLCBvcDIpOworICAgICAgICAgICAgZW1pdEluc3Qoc3RhdGljX2Nh
c3Q8QVJNV29yZD4oY2MpIHwgTU9WLCByZCwgQVJNUmVnaXN0ZXJzOjpyMCwgb3AyKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHZvaWQgbW92c19yKGludCByZCwgQVJNV29yZCBvcDIsIENvbmRpdGlv
biBjYyA9IEFMKQogICAgICAgICB7Ci0gICAgICAgICAgICBlbWl0SW5zdChzdGF0aWNfY2FzdDxB
Uk1Xb3JkPihjYykgfCBNT1YgfCBTRVRfQ0MsIHJkLCBBUk06OnIwLCBvcDIpOworICAgICAgICAg
ICAgZW1pdEluc3Qoc3RhdGljX2Nhc3Q8QVJNV29yZD4oY2MpIHwgTU9WIHwgU0VUX0NDLCByZCwg
QVJNUmVnaXN0ZXJzOjpyMCwgb3AyKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgYmljX3Io
aW50IHJkLCBpbnQgcm4sIEFSTVdvcmQgb3AyLCBDb25kaXRpb24gY2MgPSBBTCkKQEAgLTM1MCwx
MiArMzUwLDEyIEBAIG5hbWVzcGFjZSBBUk0gewogCiAgICAgICAgIHZvaWQgbXZuX3IoaW50IHJk
LCBBUk1Xb3JkIG9wMiwgQ29uZGl0aW9uIGNjID0gQUwpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGVtaXRJbnN0KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNjKSB8IE1WTiwgcmQsIEFSTTo6cjAsIG9w
Mik7CisgICAgICAgICAgICBlbWl0SW5zdChzdGF0aWNfY2FzdDxBUk1Xb3JkPihjYykgfCBNVk4s
IHJkLCBBUk1SZWdpc3RlcnM6OnIwLCBvcDIpOwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBt
dm5zX3IoaW50IHJkLCBBUk1Xb3JkIG9wMiwgQ29uZGl0aW9uIGNjID0gQUwpCiAgICAgICAgIHsK
LSAgICAgICAgICAgIGVtaXRJbnN0KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNjKSB8IE1WTiB8IFNF
VF9DQywgcmQsIEFSTTo6cjAsIG9wMik7CisgICAgICAgICAgICBlbWl0SW5zdChzdGF0aWNfY2Fz
dDxBUk1Xb3JkPihjYykgfCBNVk4gfCBTRVRfQ0MsIHJkLCBBUk1SZWdpc3RlcnM6OnIwLCBvcDIp
OwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBtdWxfcihpbnQgcmQsIGludCBybiwgaW50IHJt
LCBDb25kaXRpb24gY2MgPSBBTCkKQEAgLTM5NSwxMiArMzk1LDEyIEBAIG5hbWVzcGFjZSBBUk0g
ewogCiAgICAgICAgIHZvaWQgbGRyX2ltbShpbnQgcmQsIEFSTVdvcmQgaW1tLCBDb25kaXRpb24g
Y2MgPSBBTCkKICAgICAgICAgewotICAgICAgICAgICAgbV9idWZmZXIucHV0SW50V2l0aENvbnN0
YW50SW50KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNjKSB8IERUUiB8IERUX0xPQUQgfCBEVF9VUCB8
IFJOKEFSTTo6cGMpIHwgUkQocmQpLCBpbW0sIHRydWUpOworICAgICAgICAgICAgbV9idWZmZXIu
cHV0SW50V2l0aENvbnN0YW50SW50KHN0YXRpY19jYXN0PEFSTVdvcmQ+KGNjKSB8IERUUiB8IERU
X0xPQUQgfCBEVF9VUCB8IFJOKEFSTVJlZ2lzdGVyczo6cGMpIHwgUkQocmQpLCBpbW0sIHRydWUp
OwogICAgICAgICB9CiAKICAgICAgICAgdm9pZCBsZHJfdW5faW1tKGludCByZCwgQVJNV29yZCBp
bW0sIENvbmRpdGlvbiBjYyA9IEFMKQogICAgICAgICB7Ci0gICAgICAgICAgICBtX2J1ZmZlci5w
dXRJbnRXaXRoQ29uc3RhbnRJbnQoc3RhdGljX2Nhc3Q8QVJNV29yZD4oY2MpIHwgRFRSIHwgRFRf
TE9BRCB8IERUX1VQIHwgUk4oQVJNOjpwYykgfCBSRChyZCksIGltbSk7CisgICAgICAgICAgICBt
X2J1ZmZlci5wdXRJbnRXaXRoQ29uc3RhbnRJbnQoc3RhdGljX2Nhc3Q8QVJNV29yZD4oY2MpIHwg
RFRSIHwgRFRfTE9BRCB8IERUX1VQIHwgUk4oQVJNUmVnaXN0ZXJzOjpwYykgfCBSRChyZCksIGlt
bSk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGR0cl91KGJvb2wgaXNMb2FkLCBpbnQgcmQs
IGludCByYiwgQVJNV29yZCBvcDIsIENvbmRpdGlvbiBjYyA9IEFMKQpAQCAtNDU4LDIzICs0NTgs
MjMgQEAgbmFtZXNwYWNlIEFSTSB7CiAgICAgICAgIHZvaWQgcHVzaF9yKGludCByZWcsIENvbmRp
dGlvbiBjYyA9IEFMKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoQVJNV29yZChyZWcp
IDw9IDB4Zik7Ci0gICAgICAgICAgICBtX2J1ZmZlci5wdXRJbnQoY2MgfCBEVFIgfCBEVF9XQiB8
IFJOKEFSTTo6c3ApIHwgUkQocmVnKSB8IDB4NCk7CisgICAgICAgICAgICBtX2J1ZmZlci5wdXRJ
bnQoY2MgfCBEVFIgfCBEVF9XQiB8IFJOKEFSTVJlZ2lzdGVyczo6c3ApIHwgUkQocmVnKSB8IDB4
NCk7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIHBvcF9yKGludCByZWcsIENvbmRpdGlvbiBj
YyA9IEFMKQogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoQVJNV29yZChyZWcpIDw9IDB4
Zik7Ci0gICAgICAgICAgICBtX2J1ZmZlci5wdXRJbnQoY2MgfCAoRFRSIF4gRFRfUFJFKSB8IERU
X0xPQUQgfCBEVF9VUCB8IFJOKEFSTTo6c3ApIHwgUkQocmVnKSB8IDB4NCk7CisgICAgICAgICAg
ICBtX2J1ZmZlci5wdXRJbnQoY2MgfCAoRFRSIF4gRFRfUFJFKSB8IERUX0xPQUQgfCBEVF9VUCB8
IFJOKEFSTVJlZ2lzdGVyczo6c3ApIHwgUkQocmVnKSB8IDB4NCk7CiAgICAgICAgIH0KIAogICAg
ICAgICBpbmxpbmUgdm9pZCBwb2tlX3IoaW50IHJlZywgQ29uZGl0aW9uIGNjID0gQUwpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGR0cl9kKGZhbHNlLCBBUk06OnNwLCAwLCByZWcsIGNjKTsKKyAg
ICAgICAgICAgIGR0cl9kKGZhbHNlLCBBUk1SZWdpc3RlcnM6OnNwLCAwLCByZWcsIGNjKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGlubGluZSB2b2lkIHBlZWtfcihpbnQgcmVnLCBDb25kaXRpb24g
Y2MgPSBBTCkKICAgICAgICAgewotICAgICAgICAgICAgZHRyX3UodHJ1ZSwgcmVnLCBBUk06OnNw
LCAwLCBjYyk7CisgICAgICAgICAgICBkdHJfdSh0cnVlLCByZWcsIEFSTVJlZ2lzdGVyczo6c3As
IDAsIGNjKTsKICAgICAgICAgfQogCiAgICAgICAgIHZvaWQgZm1zcl9yKGludCBkZCwgaW50IHJu
LCBDb25kaXRpb24gY2MgPSBBTCkKQEAgLTUwNSw0OSArNTA1LDQ5IEBAIG5hbWVzcGFjZSBBUk0g
ewogICAgICAgICAgICAgbV9idWZmZXIucHV0SW50KEJLUFQgfCAoKHZhbHVlICYgMHhmZjApIDw8
IDQpIHwgKHZhbHVlICYgMHhmKSk7CiAjZWxzZQogICAgICAgICAgICAgLy8gQ2Fubm90IGFjY2Vz
cyB0byBaZXJvIG1lbW9yeSBhZGRyZXNzCi0gICAgICAgICAgICBkdHJfZHIodHJ1ZSwgQVJNOjpT
MCwgQVJNOjpTMCwgQVJNOjpTMCk7CisgICAgICAgICAgICBkdHJfZHIodHJ1ZSwgQVJNUmVnaXN0
ZXJzOjpTMCwgQVJNUmVnaXN0ZXJzOjpTMCwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAjZW5kaWYKICAg
ICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBBUk1Xb3JkIGxzbChpbnQgcmVnLCBBUk1Xb3JkIHZh
bHVlKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFSTTo6cGMpOworICAg
ICAgICAgICAgQVNTRVJUKHJlZyA8PSBBUk1SZWdpc3RlcnM6OnBjKTsKICAgICAgICAgICAgIEFT
U0VSVCh2YWx1ZSA8PSAweDFmKTsKICAgICAgICAgICAgIHJldHVybiByZWcgfCAodmFsdWUgPDwg
NykgfCAweDAwOwogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIEFSTVdvcmQgbHNyKGludCBy
ZWcsIEFSTVdvcmQgdmFsdWUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChyZWcgPD0g
QVJNOjpwYyk7CisgICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFSTVJlZ2lzdGVyczo6cGMpOwog
ICAgICAgICAgICAgQVNTRVJUKHZhbHVlIDw9IDB4MWYpOwogICAgICAgICAgICAgcmV0dXJuIHJl
ZyB8ICh2YWx1ZSA8PCA3KSB8IDB4MjA7CiAgICAgICAgIH0KIAogICAgICAgICBzdGF0aWMgQVJN
V29yZCBhc3IoaW50IHJlZywgQVJNV29yZCB2YWx1ZSkKICAgICAgICAgewotICAgICAgICAgICAg
QVNTRVJUKHJlZyA8PSBBUk06OnBjKTsKKyAgICAgICAgICAgIEFTU0VSVChyZWcgPD0gQVJNUmVn
aXN0ZXJzOjpwYyk7CiAgICAgICAgICAgICBBU1NFUlQodmFsdWUgPD0gMHgxZik7CiAgICAgICAg
ICAgICByZXR1cm4gcmVnIHwgKHZhbHVlIDw8IDcpIHwgMHg0MDsKICAgICAgICAgfQogCiAgICAg
ICAgIHN0YXRpYyBBUk1Xb3JkIGxzbF9yKGludCByZWcsIGludCBzaGlmdFJlZykKICAgICAgICAg
ewotICAgICAgICAgICAgQVNTRVJUKHJlZyA8PSBBUk06OnBjKTsKLSAgICAgICAgICAgIEFTU0VS
VChzaGlmdFJlZyA8PSBBUk06OnBjKTsKKyAgICAgICAgICAgIEFTU0VSVChyZWcgPD0gQVJNUmVn
aXN0ZXJzOjpwYyk7CisgICAgICAgICAgICBBU1NFUlQoc2hpZnRSZWcgPD0gQVJNUmVnaXN0ZXJz
OjpwYyk7CiAgICAgICAgICAgICByZXR1cm4gcmVnIHwgKHNoaWZ0UmVnIDw8IDgpIHwgMHgxMDsK
ICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBBUk1Xb3JkIGxzcl9yKGludCByZWcsIGludCBz
aGlmdFJlZykKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKHJlZyA8PSBBUk06OnBjKTsK
LSAgICAgICAgICAgIEFTU0VSVChzaGlmdFJlZyA8PSBBUk06OnBjKTsKKyAgICAgICAgICAgIEFT
U0VSVChyZWcgPD0gQVJNUmVnaXN0ZXJzOjpwYyk7CisgICAgICAgICAgICBBU1NFUlQoc2hpZnRS
ZWcgPD0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgICAgICByZXR1cm4gcmVnIHwgKHNoaWZ0
UmVnIDw8IDgpIHwgMHgzMDsKICAgICAgICAgfQogCiAgICAgICAgIHN0YXRpYyBBUk1Xb3JkIGFz
cl9yKGludCByZWcsIGludCBzaGlmdFJlZykKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJU
KHJlZyA8PSBBUk06OnBjKTsKLSAgICAgICAgICAgIEFTU0VSVChzaGlmdFJlZyA8PSBBUk06OnBj
KTsKKyAgICAgICAgICAgIEFTU0VSVChyZWcgPD0gQVJNUmVnaXN0ZXJzOjpwYyk7CisgICAgICAg
ICAgICBBU1NFUlQoc2hpZnRSZWcgPD0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgICAgICBy
ZXR1cm4gcmVnIHwgKHNoaWZ0UmVnIDw8IDgpIHwgMHg1MDsKICAgICAgICAgfQogCkBAIC01NzYs
NyArNTc2LDcgQEAgbmFtZXNwYWNlIEFSTSB7CiAgICAgICAgIEptcERzdCBhbGlnbihpbnQgYWxp
Z25tZW50KQogICAgICAgICB7CiAgICAgICAgICAgICB3aGlsZSAoIW1fYnVmZmVyLmlzQWxpZ25l
ZChhbGlnbm1lbnQpKQotICAgICAgICAgICAgICAgIG1vdl9yKEFSTTo6cjAsIEFSTTo6cjApOwor
ICAgICAgICAgICAgICAgIG1vdl9yKEFSTVJlZ2lzdGVyczo6cjAsIEFSTVJlZ2lzdGVyczo6cjAp
OwogCiAgICAgICAgICAgICByZXR1cm4gbGFiZWwoKTsKICAgICAgICAgfQpAQCAtNTg1LDcgKzU4
NSw3IEBAIG5hbWVzcGFjZSBBUk0gewogICAgICAgICB7CiAgICAgICAgICAgICBlbnN1cmVTcGFj
ZShzaXplb2YoQVJNV29yZCksIHNpemVvZihBUk1Xb3JkKSk7CiAgICAgICAgICAgICBpbnQgcyA9
IG1fYnVmZmVyLnVuY2hlY2tlZFNpemUoKTsKLSAgICAgICAgICAgIGxkcl91bl9pbW0oQVJNOjpw
YywgMHhmZmZmZmZmZiwgY2MpOworICAgICAgICAgICAgbGRyX3VuX2ltbShBUk1SZWdpc3RlcnM6
OnBjLCAweGZmZmZmZmZmLCBjYyk7CiAgICAgICAgICAgICBtX2p1bXBzLmFwcGVuZChzIHwgKHVz
ZUNvbnN0YW50UG9vbCAmIDB4MSkpOwogICAgICAgICAgICAgcmV0dXJuIEptcFNyYyhzKTsKICAg
ICAgICAgfQpAQCAtNzI5LDI1ICs3MjksMjUgQEAgbmFtZXNwYWNlIEFSTSB7CiAgICAgcHJpdmF0
ZToKICAgICAgICAgQVJNV29yZCBSTShpbnQgcmVnKQogICAgICAgICB7Ci0gICAgICAgICAgICBB
U1NFUlQocmVnIDw9IEFSTTo6cGMpOworICAgICAgICAgICAgQVNTRVJUKHJlZyA8PSBBUk1SZWdp
c3RlcnM6OnBjKTsKICAgICAgICAgICAgIHJldHVybiByZWc7CiAgICAgICAgIH0KIAogICAgICAg
ICBBUk1Xb3JkIFJTKGludCByZWcpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChyZWcg
PD0gQVJNOjpwYyk7CisgICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFSTVJlZ2lzdGVyczo6cGMp
OwogICAgICAgICAgICAgcmV0dXJuIHJlZyA8PCA4OwogICAgICAgICB9CiAKICAgICAgICAgQVJN
V29yZCBSRChpbnQgcmVnKQogICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFS
TTo6cGMpOworICAgICAgICAgICAgQVNTRVJUKHJlZyA8PSBBUk1SZWdpc3RlcnM6OnBjKTsKICAg
ICAgICAgICAgIHJldHVybiByZWcgPDwgMTI7CiAgICAgICAgIH0KIAogICAgICAgICBBUk1Xb3Jk
IFJOKGludCByZWcpCiAgICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChyZWcgPD0gQVJNOjpw
Yyk7CisgICAgICAgICAgICBBU1NFUlQocmVnIDw9IEFSTVJlZ2lzdGVyczo6cGMpOwogICAgICAg
ICAgICAgcmV0dXJuIHJlZyA8PCAxNjsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaCBiL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9BUk12N0Fzc2VtYmxlci5oCmluZGV4IDdjZjg4NzMuLjc1Zjg4OGIgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL0phdmFTY3Jp
cHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCkBAIC0zNyw3ICszNyw3IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1uYW1lc3BhY2UgQVJNIHsKK25hbWVzcGFjZSBBUk1SZWdpc3RlcnMg
ewogICAgIHR5cGVkZWYgZW51bSB7CiAgICAgICAgIHIwLAogICAgICAgICByMSwKQEAgLTQwNyw4
ICs0MDcsOCBAQCByZWdpc3RlciB3cml0ZWJhY2sKIAogY2xhc3MgQVJNdjdBc3NlbWJsZXIgewog
cHVibGljOgotICAgIHR5cGVkZWYgQVJNOjpSZWdpc3RlcklEIFJlZ2lzdGVySUQ7Ci0gICAgdHlw
ZWRlZiBBUk06OkZQUmVnaXN0ZXJJRCBGUFJlZ2lzdGVySUQ7CisgICAgdHlwZWRlZiBBUk1SZWdp
c3RlcnM6OlJlZ2lzdGVySUQgUmVnaXN0ZXJJRDsKKyAgICB0eXBlZGVmIEFSTVJlZ2lzdGVyczo6
RlBSZWdpc3RlcklEIEZQUmVnaXN0ZXJJRDsKIAogICAgIC8vIChIUywgTE8sIEhJLCBMUykgLT4g
KEFFLCBCLCBBLCBCRSkKICAgICAvLyAoVlMsIFZDKSAtPiAoTywgTk8pCkBAIC00ODAsNyArNDgw
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBBUk12NywgQXBweC1BLjYuMwogICAgIGJvb2wgQmFkUmVn
KFJlZ2lzdGVySUQgcmVnKQogICAgIHsKLSAgICAgICAgcmV0dXJuIChyZWcgPT0gQVJNOjpzcCkg
fHwgKHJlZyA9PSBBUk06OnBjKTsKKyAgICAgICAgcmV0dXJuIChyZWcgPT0gQVJNUmVnaXN0ZXJz
OjpzcCkgfHwgKHJlZyA9PSBBUk1SZWdpc3RlcnM6OnBjKTsKICAgICB9CiAKICAgICBib29sIGlz
U2luZ2xlUmVnaXN0ZXIoRlBSZWdpc3RlcklEIHJlZykKQEAgLTY5MiwxNiArNjkyLDE2IEBAIHB1
YmxpYzoKICAgICB2b2lkIGFkZChSZWdpc3RlcklEIHJkLCBSZWdpc3RlcklEIHJuLCBBUk1UaHVt
YkltbWVkaWF0ZSBpbW0pCiAgICAgewogICAgICAgICAvLyBSZCBjYW4gb25seSBiZSBTUCBpZiBS
biBpcyBhbHNvIFNQLgotICAgICAgICBBU1NFUlQoKHJkICE9IEFSTTo6c3ApIHx8IChybiA9PSBB
Uk06OnNwKSk7Ci0gICAgICAgIEFTU0VSVChyZCAhPSBBUk06OnBjKTsKLSAgICAgICAgQVNTRVJU
KHJuICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQoKHJkICE9IEFSTVJlZ2lzdGVyczo6c3Ap
IHx8IChybiA9PSBBUk1SZWdpc3RlcnM6OnNwKSk7CisgICAgICAgIEFTU0VSVChyZCAhPSBBUk1S
ZWdpc3RlcnM6OnBjKTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOwog
ICAgICAgICBBU1NFUlQoaW1tLmlzVmFsaWQoKSk7CiAKLSAgICAgICAgaWYgKHJuID09IEFSTTo6
c3ApIHsKKyAgICAgICAgaWYgKHJuID09IEFSTVJlZ2lzdGVyczo6c3ApIHsKICAgICAgICAgICAg
IGlmICghKHJkICYgOCkgJiYgaW1tLmlzVUludDEwKCkpIHsKICAgICAgICAgICAgICAgICBtX2Zv
cm1hdHRlci5vbmVXb3JkT3A1UmVnM0ltbTgoT1BfQUREX1NQX2ltbV9UMSwgcmQsIGltbS5nZXRV
SW50MTAoKSA+PiAyKTsKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9IGVs
c2UgaWYgKChyZCA9PSBBUk06OnNwKSAmJiBpbW0uaXNVSW50OSgpKSB7CisgICAgICAgICAgICB9
IGVsc2UgaWYgKChyZCA9PSBBUk1SZWdpc3RlcnM6OnNwKSAmJiBpbW0uaXNVSW50OSgpKSB7CiAg
ICAgICAgICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wOUltbTcoT1BfQUREX1NQX2ltbV9U
MiwgaW1tLmdldFVJbnQ5KCkgPj4gMik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQpAQCAtNzI1LDkgKzcyNSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWRkKFJlZ2lz
dGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNoaWZ0VHlwZUFuZEFtb3Vu
dCBzaGlmdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVCgocmQgIT0gQVJNOjpzcCkgfHwgKHJuID09
IEFSTTo6c3ApKTsKLSAgICAgICAgQVNTRVJUKHJkICE9IEFSTTo6cGMpOwotICAgICAgICBBU1NF
UlQocm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVCgocmQgIT0gQVJNUmVnaXN0ZXJzOjpz
cCkgfHwgKHJuID09IEFSTVJlZ2lzdGVyczo6c3ApKTsKKyAgICAgICAgQVNTRVJUKHJkICE9IEFS
TVJlZ2lzdGVyczo6cGMpOworICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpwYyk7
CiAgICAgICAgIEFTU0VSVCghQmFkUmVnKHJtKSk7CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dv
cmRPcDEyUmVnNEZvdXJGb3VycyhPUF9BRERfcmVnX1QzLCBybiwgRm91ckZvdXJzKHNoaWZ0Lmhp
NCgpLCByZCwgc2hpZnQubG80KCksIHJtKSk7CiAgICAgfQpAQCAtNzQ5LDkgKzc0OSw5IEBAIHB1
YmxpYzoKICAgICB2b2lkIGFkZF9TKFJlZ2lzdGVySUQgcmQsIFJlZ2lzdGVySUQgcm4sIEFSTVRo
dW1iSW1tZWRpYXRlIGltbSkKICAgICB7CiAgICAgICAgIC8vIFJkIGNhbiBvbmx5IGJlIFNQIGlm
IFJuIGlzIGFsc28gU1AuCi0gICAgICAgIEFTU0VSVCgocmQgIT0gQVJNOjpzcCkgfHwgKHJuID09
IEFSTTo6c3ApKTsKLSAgICAgICAgQVNTRVJUKHJkICE9IEFSTTo6cGMpOwotICAgICAgICBBU1NF
UlQocm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVCgocmQgIT0gQVJNUmVnaXN0ZXJzOjpz
cCkgfHwgKHJuID09IEFSTVJlZ2lzdGVyczo6c3ApKTsKKyAgICAgICAgQVNTRVJUKHJkICE9IEFS
TVJlZ2lzdGVyczo6cGMpOworICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpwYyk7
CiAgICAgICAgIEFTU0VSVChpbW0uaXNFbmNvZGVkSW1tKCkpOwogCiAgICAgICAgIGlmICghKChy
ZCB8IHJuKSAmIDgpKSB7CkBAIC03NzAsOSArNzcwLDkgQEAgcHVibGljOgogICAgIC8vIE5vdCBh
bGxvd2VkIGluIGFuIElUIChpZiB0aGVuKSBibG9jaz8KICAgICB2b2lkIGFkZF9TKFJlZ2lzdGVy
SUQgcmQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIFNoaWZ0VHlwZUFuZEFtb3VudCBz
aGlmdCkKICAgICB7Ci0gICAgICAgIEFTU0VSVCgocmQgIT0gQVJNOjpzcCkgfHwgKHJuID09IEFS
TTo6c3ApKTsKLSAgICAgICAgQVNTRVJUKHJkICE9IEFSTTo6cGMpOwotICAgICAgICBBU1NFUlQo
cm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVCgocmQgIT0gQVJNUmVnaXN0ZXJzOjpzcCkg
fHwgKHJuID09IEFSTVJlZ2lzdGVyczo6c3ApKTsKKyAgICAgICAgQVNTRVJUKHJkICE9IEFSTVJl
Z2lzdGVyczo6cGMpOworICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAg
ICAgICAgIEFTU0VSVCghQmFkUmVnKHJtKSk7CiAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRP
cDEyUmVnNEZvdXJGb3VycyhPUF9BRERfU19yZWdfVDMsIHJuLCBGb3VyRm91cnMoc2hpZnQuaGk0
KCksIHJkLCBzaGlmdC5sbzQoKSwgcm0pKTsKICAgICB9CkBAIC04MzgsNyArODM4LDcgQEAgcHVi
bGljOgogICAgIC8vIE9ubHkgYWxsb3dlZCBpbiBJVCAoaWYgdGhlbikgYmxvY2sgaWYgbGFzdCBp
bnN0cnVjdGlvbi4KICAgICBKbXBTcmMgYmx4KFJlZ2lzdGVySUQgcm0pCiAgICAgewotICAgICAg
ICBBU1NFUlQocm0gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVChybSAhPSBBUk1SZWdpc3Rl
cnM6OnBjKTsKICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wOFJlZ1JlZzE0MyhPUF9CTFgs
IHJtLCAoUmVnaXN0ZXJJRCk4KTsKICAgICAgICAgcmV0dXJuIEptcFNyYyhtX2Zvcm1hdHRlci5z
aXplKCkpOwogICAgIH0KQEAgLTg1Nyw3ICs4NTcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNt
bihSZWdpc3RlcklEIHJuLCBBUk1UaHVtYkltbWVkaWF0ZSBpbW0pCiAgICAgewotICAgICAgICBB
U1NFUlQocm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVChybiAhPSBBUk1SZWdpc3RlcnM6
OnBjKTsKICAgICAgICAgQVNTRVJUKGltbS5pc0VuY29kZWRJbW0oKSk7CiAKICAgICAgICAgbV9m
b3JtYXR0ZXIudHdvV29yZE9wNWk2SW1tNFJlZzRFbmNvZGVkSW1tKE9QX0NNTl9pbW0sIHJuLCAo
UmVnaXN0ZXJJRCkweGYsIGltbSk7CkBAIC04NjUsNyArODY1LDcgQEAgcHVibGljOgogCiAgICAg
dm9pZCBjbXAoUmVnaXN0ZXJJRCBybiwgQVJNVGh1bWJJbW1lZGlhdGUgaW1tKQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKHJuICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVn
aXN0ZXJzOjpwYyk7CiAgICAgICAgIEFTU0VSVChpbW0uaXNFbmNvZGVkSW1tKCkpOwogCiAgICAg
ICAgIGlmICghKHJuICYgOCkgJiYgaW1tLmlzVUludDgoKSkKQEAgLTg3Niw3ICs4NzYsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGNtcChSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCBTaGlm
dFR5cGVBbmRBbW91bnQgc2hpZnQpCiAgICAgewotICAgICAgICBBU1NFUlQocm4gIT0gQVJNOjpw
Yyk7CisgICAgICAgIEFTU0VSVChybiAhPSBBUk1SZWdpc3RlcnM6OnBjKTsKICAgICAgICAgQVNT
RVJUKCFCYWRSZWcocm0pKTsKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91
ckZvdXJzKE9QX0NNUF9yZWdfVDIsIHJuLCBGb3VyRm91cnMoc2hpZnQuaGk0KCksIDB4Ziwgc2hp
ZnQubG80KCksIHJtKSk7CiAgICAgfQpAQCAtOTM4LDE1ICs5MzgsMTUgQEAgcHVibGljOgogICAg
ICAgICBtX2Zvcm1hdHRlci5vbmVXb3JkT3A4SW1tOChPUF9JVCwgaWZUaGVuRWxzZShjb25kLCBp
bnN0MmlmLCBpbnN0M2lmLCBpbnN0NGlmKSk7CiAgICAgfQogCi0gICAgLy8gcnQgPT0gQVJNOjpw
YyBvbmx5IGFsbG93ZWQgaWYgbGFzdCBpbnN0cnVjdGlvbiBpbiBJVCAoaWYgdGhlbikgYmxvY2su
CisgICAgLy8gcnQgPT0gQVJNUmVnaXN0ZXJzOjpwYyBvbmx5IGFsbG93ZWQgaWYgbGFzdCBpbnN0
cnVjdGlvbiBpbiBJVCAoaWYgdGhlbikgYmxvY2suCiAgICAgdm9pZCBsZHIoUmVnaXN0ZXJJRCBy
dCwgUmVnaXN0ZXJJRCBybiwgQVJNVGh1bWJJbW1lZGlhdGUgaW1tKQogICAgIHsKLSAgICAgICAg
QVNTRVJUKHJuICE9IEFSTTo6cGMpOyAvLyBMRFIgKGxpdGVyYWwpCisgICAgICAgIEFTU0VSVChy
biAhPSBBUk1SZWdpc3RlcnM6OnBjKTsgLy8gTERSIChsaXRlcmFsKQogICAgICAgICBBU1NFUlQo
aW1tLmlzVUludDEyKCkpOwogCiAgICAgICAgIGlmICghKChydCB8IHJuKSAmIDgpICYmIGltbS5p
c1VJbnQ3KCkpCiAgICAgICAgICAgICBtX2Zvcm1hdHRlci5vbmVXb3JkT3A1SW1tNVJlZzNSZWcz
KE9QX0xEUl9pbW1fVDEsIGltbS5nZXRVSW50NygpID4+IDIsIHJuLCBydCk7Ci0gICAgICAgIGVs
c2UgaWYgKChybiA9PSBBUk06OnNwKSAmJiAhKHJ0ICYgOCkgJiYgaW1tLmlzVUludDEwKCkpCisg
ICAgICAgIGVsc2UgaWYgKChybiA9PSBBUk1SZWdpc3RlcnM6OnNwKSAmJiAhKHJ0ICYgOCkgJiYg
aW1tLmlzVUludDEwKCkpCiAgICAgICAgICAgICBtX2Zvcm1hdHRlci5vbmVXb3JkT3A1UmVnM0lt
bTgoT1BfTERSX2ltbV9UMiwgcnQsIGltbS5nZXRVSW50MTAoKSA+PiAyKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0UmVnNEltbTEyKE9QX0xE
Ul9pbW1fVDMsIHJuLCBydCwgaW1tLmdldFVJbnQxMigpKTsKQEAgLTk2NSw4ICs5NjUsOCBAQCBw
dWJsaWM6CiAgICAgLy8gaWYgKHdiYWNrKSBSRUdbcm5dID0gX3RtcAogICAgIHZvaWQgbGRyKFJl
Z2lzdGVySUQgcnQsIFJlZ2lzdGVySUQgcm4sIGludCBvZmZzZXQsIGJvb2wgaW5kZXgsIGJvb2wg
d2JhY2spCiAgICAgewotICAgICAgICBBU1NFUlQocnQgIT0gQVJNOjpwYyk7Ci0gICAgICAgIEFT
U0VSVChybiAhPSBBUk06OnBjKTsKKyAgICAgICAgQVNTRVJUKHJ0ICE9IEFSTVJlZ2lzdGVyczo6
cGMpOworICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgIEFT
U0VSVChpbmRleCB8fCB3YmFjayk7CiAgICAgICAgIEFTU0VSVCghd2JhY2sgfCAocnQgIT0gcm4p
KTsKICAgICAKQEAgLTk4NSwxMCArOTg1LDEwIEBAIHB1YmxpYzoKICAgICAgICAgbV9mb3JtYXR0
ZXIudHdvV29yZE9wMTJSZWc0UmVnNEltbTEyKE9QX0xEUl9pbW1fVDQsIHJuLCBydCwgb2Zmc2V0
KTsKICAgICB9CiAKLSAgICAvLyBydCA9PSBBUk06OnBjIG9ubHkgYWxsb3dlZCBpZiBsYXN0IGlu
c3RydWN0aW9uIGluIElUIChpZiB0aGVuKSBibG9jay4KKyAgICAvLyBydCA9PSBBUk1SZWdpc3Rl
cnM6OnBjIG9ubHkgYWxsb3dlZCBpZiBsYXN0IGluc3RydWN0aW9uIGluIElUIChpZiB0aGVuKSBi
bG9jay4KICAgICB2b2lkIGxkcihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBSZWdpc3Rl
cklEIHJtLCB1bnNpZ25lZCBzaGlmdD0wKQogICAgIHsKLSAgICAgICAgQVNTRVJUKHJuICE9IEFS
TTo6cGMpOyAvLyBMRFIgKGxpdGVyYWwpCisgICAgICAgIEFTU0VSVChybiAhPSBBUk1SZWdpc3Rl
cnM6OnBjKTsgLy8gTERSIChsaXRlcmFsKQogICAgICAgICBBU1NFUlQoIUJhZFJlZyhybSkpOwog
ICAgICAgICBBU1NFUlQoc2hpZnQgPD0gMyk7CiAKQEAgLTk5OCwxMCArOTk4LDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIG1fZm9ybWF0dGVyLnR3b1dvcmRPcDEyUmVnNEZvdXJGb3VycyhPUF9M
RFJfcmVnX1QyLCBybiwgRm91ckZvdXJzKHJ0LCAwLCBzaGlmdCwgcm0pKTsKICAgICB9CiAKLSAg
ICAvLyBydCA9PSBBUk06OnBjIG9ubHkgYWxsb3dlZCBpZiBsYXN0IGluc3RydWN0aW9uIGluIElU
IChpZiB0aGVuKSBibG9jay4KKyAgICAvLyBydCA9PSBBUk1SZWdpc3RlcnM6OnBjIG9ubHkgYWxs
b3dlZCBpZiBsYXN0IGluc3RydWN0aW9uIGluIElUIChpZiB0aGVuKSBibG9jay4KICAgICB2b2lk
IGxkcmgoUmVnaXN0ZXJJRCBydCwgUmVnaXN0ZXJJRCBybiwgQVJNVGh1bWJJbW1lZGlhdGUgaW1t
KQogICAgIHsKLSAgICAgICAgQVNTRVJUKHJuICE9IEFSTTo6cGMpOyAvLyBMRFIgKGxpdGVyYWwp
CisgICAgICAgIEFTU0VSVChybiAhPSBBUk1SZWdpc3RlcnM6OnBjKTsgLy8gTERSIChsaXRlcmFs
KQogICAgICAgICBBU1NFUlQoaW1tLmlzVUludDEyKCkpOwogCiAgICAgICAgIGlmICghKChydCB8
IHJuKSAmIDgpICYmIGltbS5pc1VJbnQ2KCkpCkBAIC0xMDIzLDggKzEwMjMsOCBAQCBwdWJsaWM6
CiAgICAgLy8gaWYgKHdiYWNrKSBSRUdbcm5dID0gX3RtcAogICAgIHZvaWQgbGRyaChSZWdpc3Rl
cklEIHJ0LCBSZWdpc3RlcklEIHJuLCBpbnQgb2Zmc2V0LCBib29sIGluZGV4LCBib29sIHdiYWNr
KQogICAgIHsKLSAgICAgICAgQVNTRVJUKHJ0ICE9IEFSTTo6cGMpOwotICAgICAgICBBU1NFUlQo
cm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVChydCAhPSBBUk1SZWdpc3RlcnM6OnBjKTsK
KyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOwogICAgICAgICBBU1NFUlQo
aW5kZXggfHwgd2JhY2spOwogICAgICAgICBBU1NFUlQoIXdiYWNrIHwgKHJ0ICE9IHJuKSk7CiAg
ICAgCkBAIC0xMDQ2LDcgKzEwNDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsZHJoKFJlZ2lzdGVy
SUQgcnQsIFJlZ2lzdGVySUQgcm4sIFJlZ2lzdGVySUQgcm0sIHVuc2lnbmVkIHNoaWZ0PTApCiAg
ICAgewogICAgICAgICBBU1NFUlQoIUJhZFJlZyhydCkpOyAgIC8vIE1lbW9yeSBoaW50Ci0gICAg
ICAgIEFTU0VSVChybiAhPSBBUk06OnBjKTsgLy8gTERSSCAobGl0ZXJhbCkKKyAgICAgICAgQVNT
RVJUKHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOyAvLyBMRFJIIChsaXRlcmFsKQogICAgICAgICBB
U1NFUlQoIUJhZFJlZyhybSkpOwogICAgICAgICBBU1NFUlQoc2hpZnQgPD0gMyk7CiAKQEAgLTEx
OTcsMTYgKzExOTcsMTYgQEAgcHVibGljOgogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3Ax
MlJlZzRGb3VyRm91cnMoT1BfU01VTExfVDEsIHJuLCBGb3VyRm91cnMocmRMbywgcmRIaSwgMCwg
cm0pKTsKICAgICB9CiAKLSAgICAvLyBydCA9PSBBUk06OnBjIG9ubHkgYWxsb3dlZCBpZiBsYXN0
IGluc3RydWN0aW9uIGluIElUIChpZiB0aGVuKSBibG9jay4KKyAgICAvLyBydCA9PSBBUk1SZWdp
c3RlcnM6OnBjIG9ubHkgYWxsb3dlZCBpZiBsYXN0IGluc3RydWN0aW9uIGluIElUIChpZiB0aGVu
KSBibG9jay4KICAgICB2b2lkIHN0cihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBBUk1U
aHVtYkltbWVkaWF0ZSBpbW0pCiAgICAgewotICAgICAgICBBU1NFUlQocnQgIT0gQVJNOjpwYyk7
Ci0gICAgICAgIEFTU0VSVChybiAhPSBBUk06OnBjKTsKKyAgICAgICAgQVNTRVJUKHJ0ICE9IEFS
TVJlZ2lzdGVyczo6cGMpOworICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpwYyk7
CiAgICAgICAgIEFTU0VSVChpbW0uaXNVSW50MTIoKSk7CiAKICAgICAgICAgaWYgKCEoKHJ0IHwg
cm4pICYgOCkgJiYgaW1tLmlzVUludDcoKSkKICAgICAgICAgICAgIG1fZm9ybWF0dGVyLm9uZVdv
cmRPcDVJbW01UmVnM1JlZzMoT1BfU1RSX2ltbV9UMSwgaW1tLmdldFVJbnQ3KCkgPj4gMiwgcm4s
IHJ0KTsKLSAgICAgICAgZWxzZSBpZiAoKHJuID09IEFSTTo6c3ApICYmICEocnQgJiA4KSAmJiBp
bW0uaXNVSW50MTAoKSkKKyAgICAgICAgZWxzZSBpZiAoKHJuID09IEFSTVJlZ2lzdGVyczo6c3Ap
ICYmICEocnQgJiA4KSAmJiBpbW0uaXNVSW50MTAoKSkKICAgICAgICAgICAgIG1fZm9ybWF0dGVy
Lm9uZVdvcmRPcDVSZWczSW1tOChPUF9TVFJfaW1tX1QyLCBydCwgaW1tLmdldFVJbnQxMCgpID4+
IDIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3JkT3AxMlJl
ZzRSZWc0SW1tMTIoT1BfU1RSX2ltbV9UMywgcm4sIHJ0LCBpbW0uZ2V0VUludDEyKCkpOwpAQCAt
MTIyNSw4ICsxMjI1LDggQEAgcHVibGljOgogICAgIC8vIGlmICh3YmFjaykgUkVHW3JuXSA9IF90
bXAKICAgICB2b2lkIHN0cihSZWdpc3RlcklEIHJ0LCBSZWdpc3RlcklEIHJuLCBpbnQgb2Zmc2V0
LCBib29sIGluZGV4LCBib29sIHdiYWNrKQogICAgIHsKLSAgICAgICAgQVNTRVJUKHJ0ICE9IEFS
TTo6cGMpOwotICAgICAgICBBU1NFUlQocm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFTU0VSVChy
dCAhPSBBUk1SZWdpc3RlcnM6OnBjKTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lzdGVy
czo6cGMpOwogICAgICAgICBBU1NFUlQoaW5kZXggfHwgd2JhY2spOwogICAgICAgICBBU1NFUlQo
IXdiYWNrIHwgKHJ0ICE9IHJuKSk7CiAgICAgCkBAIC0xMjQ1LDEwICsxMjQ1LDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0UmVnNEltbTEyKE9QX1NUUl9p
bW1fVDQsIHJuLCBydCwgb2Zmc2V0KTsKICAgICB9CiAKLSAgICAvLyBydCA9PSBBUk06OnBjIG9u
bHkgYWxsb3dlZCBpZiBsYXN0IGluc3RydWN0aW9uIGluIElUIChpZiB0aGVuKSBibG9jay4KKyAg
ICAvLyBydCA9PSBBUk1SZWdpc3RlcnM6OnBjIG9ubHkgYWxsb3dlZCBpZiBsYXN0IGluc3RydWN0
aW9uIGluIElUIChpZiB0aGVuKSBibG9jay4KICAgICB2b2lkIHN0cihSZWdpc3RlcklEIHJ0LCBS
ZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCB1bnNpZ25lZCBzaGlmdD0wKQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKHJuICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQocm4gIT0gQVJNUmVn
aXN0ZXJzOjpwYyk7CiAgICAgICAgIEFTU0VSVCghQmFkUmVnKHJtKSk7CiAgICAgICAgIEFTU0VS
VChzaGlmdCA8PSAzKTsKIApAQCAtMTI2MSwxMiArMTI2MSwxMiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdWIoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgQVJNVGh1bWJJbW1lZGlhdGUgaW1t
KQogICAgIHsKICAgICAgICAgLy8gUmQgY2FuIG9ubHkgYmUgU1AgaWYgUm4gaXMgYWxzbyBTUC4K
LSAgICAgICAgQVNTRVJUKChyZCAhPSBBUk06OnNwKSB8fCAocm4gPT0gQVJNOjpzcCkpOwotICAg
ICAgICBBU1NFUlQocmQgIT0gQVJNOjpwYyk7Ci0gICAgICAgIEFTU0VSVChybiAhPSBBUk06OnBj
KTsKKyAgICAgICAgQVNTRVJUKChyZCAhPSBBUk1SZWdpc3RlcnM6OnNwKSB8fCAocm4gPT0gQVJN
UmVnaXN0ZXJzOjpzcCkpOworICAgICAgICBBU1NFUlQocmQgIT0gQVJNUmVnaXN0ZXJzOjpwYyk7
CisgICAgICAgIEFTU0VSVChybiAhPSBBUk1SZWdpc3RlcnM6OnBjKTsKICAgICAgICAgQVNTRVJU
KGltbS5pc1ZhbGlkKCkpOwogCi0gICAgICAgIGlmICgocm4gPT0gQVJNOjpzcCkgJiYgKHJkID09
IEFSTTo6c3ApICYmIGltbS5pc1VJbnQ5KCkpIHsKKyAgICAgICAgaWYgKChybiA9PSBBUk1SZWdp
c3RlcnM6OnNwKSAmJiAocmQgPT0gQVJNUmVnaXN0ZXJzOjpzcCkgJiYgaW1tLmlzVUludDkoKSkg
ewogICAgICAgICAgICAgbV9mb3JtYXR0ZXIub25lV29yZE9wOUltbTcoT1BfU1VCX1NQX2ltbV9U
MSwgaW1tLmdldFVJbnQ5KCkgPj4gMik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0g
ZWxzZSBpZiAoISgocmQgfCBybikgJiA4KSkgewpAQCAtMTI4OSw5ICsxMjg5LDkgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBzdWIoUmVnaXN0ZXJJRCByZCwgUmVnaXN0ZXJJRCBybiwgUmVnaXN0ZXJJ
RCBybSwgU2hpZnRUeXBlQW5kQW1vdW50IHNoaWZ0KQogICAgIHsKLSAgICAgICAgQVNTRVJUKChy
ZCAhPSBBUk06OnNwKSB8fCAocm4gPT0gQVJNOjpzcCkpOwotICAgICAgICBBU1NFUlQocmQgIT0g
QVJNOjpwYyk7Ci0gICAgICAgIEFTU0VSVChybiAhPSBBUk06OnBjKTsKKyAgICAgICAgQVNTRVJU
KChyZCAhPSBBUk1SZWdpc3RlcnM6OnNwKSB8fCAocm4gPT0gQVJNUmVnaXN0ZXJzOjpzcCkpOwor
ICAgICAgICBBU1NFUlQocmQgIT0gQVJNUmVnaXN0ZXJzOjpwYyk7CisgICAgICAgIEFTU0VSVChy
biAhPSBBUk1SZWdpc3RlcnM6OnBjKTsKICAgICAgICAgQVNTRVJUKCFCYWRSZWcocm0pKTsKICAg
ICAgICAgbV9mb3JtYXR0ZXIudHdvV29yZE9wMTJSZWc0Rm91ckZvdXJzKE9QX1NVQl9yZWdfVDIs
IHJuLCBGb3VyRm91cnMoc2hpZnQuaGk0KCksIHJkLCBzaGlmdC5sbzQoKSwgcm0pKTsKICAgICB9
CkBAIC0xMzA5LDEyICsxMzA5LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHN1Yl9TKFJlZ2lzdGVy
SUQgcmQsIFJlZ2lzdGVySUQgcm4sIEFSTVRodW1iSW1tZWRpYXRlIGltbSkKICAgICB7CiAgICAg
ICAgIC8vIFJkIGNhbiBvbmx5IGJlIFNQIGlmIFJuIGlzIGFsc28gU1AuCi0gICAgICAgIEFTU0VS
VCgocmQgIT0gQVJNOjpzcCkgfHwgKHJuID09IEFSTTo6c3ApKTsKLSAgICAgICAgQVNTRVJUKHJk
ICE9IEFSTTo6cGMpOwotICAgICAgICBBU1NFUlQocm4gIT0gQVJNOjpwYyk7CisgICAgICAgIEFT
U0VSVCgocmQgIT0gQVJNUmVnaXN0ZXJzOjpzcCkgfHwgKHJuID09IEFSTVJlZ2lzdGVyczo6c3Ap
KTsKKyAgICAgICAgQVNTRVJUKHJkICE9IEFSTVJlZ2lzdGVyczo6cGMpOworICAgICAgICBBU1NF
UlQocm4gIT0gQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgICAgIEFTU0VSVChpbW0uaXNWYWxpZCgp
KTsKIAotICAgICAgICBpZiAoKHJuID09IEFSTTo6c3ApICYmIChyZCA9PSBBUk06OnNwKSAmJiBp
bW0uaXNVSW50OSgpKSB7CisgICAgICAgIGlmICgocm4gPT0gQVJNUmVnaXN0ZXJzOjpzcCkgJiYg
KHJkID09IEFSTVJlZ2lzdGVyczo6c3ApICYmIGltbS5pc1VJbnQ5KCkpIHsKICAgICAgICAgICAg
IG1fZm9ybWF0dGVyLm9uZVdvcmRPcDlJbW03KE9QX1NVQl9TUF9pbW1fVDEsIGltbS5nZXRVSW50
OSgpID4+IDIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9IGVsc2UgaWYgKCEoKHJk
IHwgcm4pICYgOCkpIHsKQEAgLTEzMzMsOSArMTMzMyw5IEBAIHB1YmxpYzoKICAgICAvLyBOb3Qg
YWxsb3dlZCBpbiBhbiBJVCAoaWYgdGhlbikgYmxvY2s/CiAgICAgdm9pZCBzdWJfUyhSZWdpc3Rl
cklEIHJkLCBSZWdpc3RlcklEIHJuLCBSZWdpc3RlcklEIHJtLCBTaGlmdFR5cGVBbmRBbW91bnQg
c2hpZnQpCiAgICAgewotICAgICAgICBBU1NFUlQoKHJkICE9IEFSTTo6c3ApIHx8IChybiA9PSBB
Uk06OnNwKSk7Ci0gICAgICAgIEFTU0VSVChyZCAhPSBBUk06OnBjKTsKLSAgICAgICAgQVNTRVJU
KHJuICE9IEFSTTo6cGMpOworICAgICAgICBBU1NFUlQoKHJkICE9IEFSTVJlZ2lzdGVyczo6c3Ap
IHx8IChybiA9PSBBUk1SZWdpc3RlcnM6OnNwKSk7CisgICAgICAgIEFTU0VSVChyZCAhPSBBUk1S
ZWdpc3RlcnM6OnBjKTsKKyAgICAgICAgQVNTRVJUKHJuICE9IEFSTVJlZ2lzdGVyczo6cGMpOwog
ICAgICAgICBBU1NFUlQoIUJhZFJlZyhybSkpOwogICAgICAgICBtX2Zvcm1hdHRlci50d29Xb3Jk
T3AxMlJlZzRGb3VyRm91cnMoT1BfU1VCX1NfcmVnX1QyLCBybiwgRm91ckZvdXJzKHNoaWZ0Lmhp
NCgpLCByZCwgc2hpZnQubG80KCksIHJtKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmggYi9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAppbmRleCAxOWNiZmNiLi4xYTQyOTBkIDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk0uaApAQCAtNjQsNyArNjQs
NyBAQCBwdWJsaWM6CiAgICAgICAgIERvdWJsZUxlc3NUaGFuT3JFcXVhbCA9IEFSTUFzc2VtYmxl
cjo6TEUsCiAgICAgfTsKIAotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHN0YWNrUG9pbnRl
clJlZ2lzdGVyID0gQVJNOjpzcDsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBzdGFja1Bv
aW50ZXJSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6c3A7CiAKICAgICBzdGF0aWMgY29uc3QgU2Nh
bGUgU2NhbGVQdHIgPSBUaW1lc0ZvdXI7CiAKQEAgLTc1LDIwICs3NSwyMCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGFkZDMyKEltbTMyIGltbSwgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKLSAgICAg
ICAgbG9hZDMyKGFkZHJlc3MsIEFSTTo6UzEpOwotICAgICAgICBhZGQzMihpbW0sIEFSTTo6UzEp
OwotICAgICAgICBzdG9yZTMyKEFSTTo6UzEsIGFkZHJlc3MpOworICAgICAgICBsb2FkMzIoYWRk
cmVzcywgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIGFkZDMyKGltbSwgQVJNUmVnaXN0ZXJz
OjpTMSk7CisgICAgICAgIHN0b3JlMzIoQVJNUmVnaXN0ZXJzOjpTMSwgYWRkcmVzcyk7CiAgICAg
fQogCiAgICAgdm9pZCBhZGQzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0g
ICAgICAgIG1fYXNzZW1ibGVyLmFkZHNfcihkZXN0LCBkZXN0LCBtX2Fzc2VtYmxlci5nZXRJbW0o
aW1tLm1fdmFsdWUsIEFSTTo6UzApKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuYWRkc19yKGRlc3Qs
IGRlc3QsIG1fYXNzZW1ibGVyLmdldEltbShpbW0ubV92YWx1ZSwgQVJNUmVnaXN0ZXJzOjpTMCkp
OwogICAgIH0KIAogICAgIHZvaWQgYWRkMzIoQWRkcmVzcyBzcmMsIFJlZ2lzdGVySUQgZGVzdCkK
ICAgICB7Ci0gICAgICAgIGxvYWQzMihzcmMsIEFSTTo6UzEpOwotICAgICAgICBhZGQzMihBUk06
OlMxLCBkZXN0KTsKKyAgICAgICAgbG9hZDMyKHNyYywgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAg
ICAgIGFkZDMyKEFSTVJlZ2lzdGVyczo6UzEsIGRlc3QpOwogICAgIH0KIAogICAgIHZvaWQgYW5k
MzIoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTk4LDcgKzk4LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBhbmQzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7
Ci0gICAgICAgIEFSTVdvcmQgdyA9IG1fYXNzZW1ibGVyLmdldEltbShpbW0ubV92YWx1ZSwgQVJN
OjpTMCwgdHJ1ZSk7CisgICAgICAgIEFSTVdvcmQgdyA9IG1fYXNzZW1ibGVyLmdldEltbShpbW0u
bV92YWx1ZSwgQVJNUmVnaXN0ZXJzOjpTMCwgdHJ1ZSk7CiAgICAgICAgIGlmICh3ICYgQVJNQXNz
ZW1ibGVyOjpPUDJfSU5WX0lNTSkKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLmJpY3NfcihkZXN0
LCBkZXN0LCB3ICYgfkFSTUFzc2VtYmxlcjo6T1AyX0lOVl9JTU0pOwogICAgICAgICBlbHNlCkBA
IC0xMTgsMTYgKzExOCwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBtdWwzMihSZWdpc3RlcklEIHNy
YywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKICAgICAgICAgaWYgKHNyYyA9PSBkZXN0KSB7Ci0g
ICAgICAgICAgICBtb3ZlKHNyYywgQVJNOjpTMCk7Ci0gICAgICAgICAgICBzcmMgPSBBUk06OlMw
OworICAgICAgICAgICAgbW92ZShzcmMsIEFSTVJlZ2lzdGVyczo6UzApOworICAgICAgICAgICAg
c3JjID0gQVJNUmVnaXN0ZXJzOjpTMDsKICAgICAgICAgfQogICAgICAgICBtX2Fzc2VtYmxlci5t
dWxzX3IoZGVzdCwgZGVzdCwgc3JjKTsKICAgICB9CiAKICAgICB2b2lkIG11bDMyKEltbTMyIGlt
bSwgUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUo
aW1tLCBBUk06OlMwKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubXVsc19yKGRlc3QsIHNyYywgQVJN
OjpTMCk7CisgICAgICAgIG1vdmUoaW1tLCBBUk1SZWdpc3RlcnM6OlMwKTsKKyAgICAgICAgbV9h
c3NlbWJsZXIubXVsc19yKGRlc3QsIHNyYywgQVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAgfQogCiAg
ICAgdm9pZCBub3QzMihSZWdpc3RlcklEIGRlc3QpCkBAIC0xNDIsNyArMTQyLDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBvcjMyKEltbTMyIGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAg
ICAgICAgbV9hc3NlbWJsZXIub3Jyc19yKGRlc3QsIGRlc3QsIG1fYXNzZW1ibGVyLmdldEltbShp
bW0ubV92YWx1ZSwgQVJNOjpTMCkpOworICAgICAgICBtX2Fzc2VtYmxlci5vcnJzX3IoZGVzdCwg
ZGVzdCwgbV9hc3NlbWJsZXIuZ2V0SW1tKGltbS5tX3ZhbHVlLCBBUk1SZWdpc3RlcnM6OlMwKSk7
CiAgICAgfQogCiAgICAgdm9pZCByc2hpZnQzMihSZWdpc3RlcklEIHNoaWZ0X2Ftb3VudCwgUmVn
aXN0ZXJJRCBkZXN0KQpAQCAtMTYyLDIwICsxNjIsMjAgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
dWIzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1fYXNzZW1i
bGVyLnN1YnNfcihkZXN0LCBkZXN0LCBtX2Fzc2VtYmxlci5nZXRJbW0oaW1tLm1fdmFsdWUsIEFS
TTo6UzApKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3Vic19yKGRlc3QsIGRlc3QsIG1fYXNzZW1i
bGVyLmdldEltbShpbW0ubV92YWx1ZSwgQVJNUmVnaXN0ZXJzOjpTMCkpOwogICAgIH0KIAogICAg
IHZvaWQgc3ViMzIoSW1tMzIgaW1tLCBBZGRyZXNzIGFkZHJlc3MpCiAgICAgewotICAgICAgICBs
b2FkMzIoYWRkcmVzcywgQVJNOjpTMSk7Ci0gICAgICAgIHN1YjMyKGltbSwgQVJNOjpTMSk7Ci0g
ICAgICAgIHN0b3JlMzIoQVJNOjpTMSwgYWRkcmVzcyk7CisgICAgICAgIGxvYWQzMihhZGRyZXNz
LCBBUk1SZWdpc3RlcnM6OlMxKTsKKyAgICAgICAgc3ViMzIoaW1tLCBBUk1SZWdpc3RlcnM6OlMx
KTsKKyAgICAgICAgc3RvcmUzMihBUk1SZWdpc3RlcnM6OlMxLCBhZGRyZXNzKTsKICAgICB9CiAK
ICAgICB2b2lkIHN1YjMyKEFkZHJlc3Mgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAg
ICAgICBsb2FkMzIoc3JjLCBBUk06OlMxKTsKLSAgICAgICAgc3ViMzIoQVJNOjpTMSwgZGVzdCk7
CisgICAgICAgIGxvYWQzMihzcmMsIEFSTVJlZ2lzdGVyczo6UzEpOworICAgICAgICBzdWIzMihB
Uk1SZWdpc3RlcnM6OlMxLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIHhvcjMyKFJlZ2lzdGVy
SUQgc3JjLCBSZWdpc3RlcklEIGRlc3QpCkBAIC0xODUsNyArMTg1LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCB4b3IzMihJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAg
IG1fYXNzZW1ibGVyLmVvcnNfcihkZXN0LCBkZXN0LCBtX2Fzc2VtYmxlci5nZXRJbW0oaW1tLm1f
dmFsdWUsIEFSTTo6UzApKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuZW9yc19yKGRlc3QsIGRlc3Qs
IG1fYXNzZW1ibGVyLmdldEltbShpbW0ubV92YWx1ZSwgQVJNUmVnaXN0ZXJzOjpTMCkpOwogICAg
IH0KIAogICAgIHZvaWQgbG9hZDMyKEltcGxpY2l0QWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklE
IGRlc3QpCkBAIC0yMDEsOCArMjAxLDggQEAgcHVibGljOgogICAgIERhdGFMYWJlbDMyIGxvYWQz
MldpdGhBZGRyZXNzT2Zmc2V0UGF0Y2goQWRkcmVzcyBhZGRyZXNzLCBSZWdpc3RlcklEIGRlc3Qp
CiAgICAgewogICAgICAgICBEYXRhTGFiZWwzMiBkYXRhTGFiZWwodGhpcyk7Ci0gICAgICAgIG1f
YXNzZW1ibGVyLmxkcl91bl9pbW0oQVJNOjpTMCwgMCk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmR0
cl91cih0cnVlLCBkZXN0LCBhZGRyZXNzLmJhc2UsIEFSTTo6UzApOworICAgICAgICBtX2Fzc2Vt
Ymxlci5sZHJfdW5faW1tKEFSTVJlZ2lzdGVyczo6UzAsIDApOworICAgICAgICBtX2Fzc2VtYmxl
ci5kdHJfdXIodHJ1ZSwgZGVzdCwgYWRkcmVzcy5iYXNlLCBBUk1SZWdpc3RlcnM6OlMwKTsKICAg
ICAgICAgcmV0dXJuIGRhdGFMYWJlbDsKICAgICB9CiAKQEAgLTIxNSwxOCArMjE1LDE4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgbG9hZDE2KEJhc2VJbmRleCBhZGRyZXNzLCBSZWdpc3RlcklEIGRl
c3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5hZGRfcihBUk06OlMwLCBhZGRyZXNzLmJh
c2UsIG1fYXNzZW1ibGVyLmxzbChhZGRyZXNzLmluZGV4LCBhZGRyZXNzLnNjYWxlKSk7CisgICAg
ICAgIG1fYXNzZW1ibGVyLmFkZF9yKEFSTVJlZ2lzdGVyczo6UzAsIGFkZHJlc3MuYmFzZSwgbV9h
c3NlbWJsZXIubHNsKGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpKTsKICAgICAgICAgaWYg
KGFkZHJlc3Mub2Zmc2V0Pj0wKQotICAgICAgICAgICAgbV9hc3NlbWJsZXIubGRyaF91KGRlc3Qs
IEFSTTo6UzAsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyQnl0ZShhZGRyZXNzLm9mZnNldCkpOworICAg
ICAgICAgICAgbV9hc3NlbWJsZXIubGRyaF91KGRlc3QsIEFSTVJlZ2lzdGVyczo6UzAsIEFSTUFz
c2VtYmxlcjo6Z2V0T3AyQnl0ZShhZGRyZXNzLm9mZnNldCkpOwogICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBtX2Fzc2VtYmxlci5sZHJoX2QoZGVzdCwgQVJNOjpTMCwgQVJNQXNzZW1ibGVyOjpn
ZXRPcDJCeXRlKC1hZGRyZXNzLm9mZnNldCkpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGRy
aF9kKGRlc3QsIEFSTVJlZ2lzdGVyczo6UzAsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyQnl0ZSgtYWRk
cmVzcy5vZmZzZXQpKTsKICAgICB9CiAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTMyV2l0aEFkZHJl
c3NPZmZzZXRQYXRjaChSZWdpc3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQogICAgIHsKICAg
ICAgICAgRGF0YUxhYmVsMzIgZGF0YUxhYmVsKHRoaXMpOwotICAgICAgICBtX2Fzc2VtYmxlci5s
ZHJfdW5faW1tKEFSTTo6UzAsIDApOwotICAgICAgICBtX2Fzc2VtYmxlci5kdHJfdXIoZmFsc2Us
IHNyYywgYWRkcmVzcy5iYXNlLCBBUk06OlMwKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubGRyX3Vu
X2ltbShBUk1SZWdpc3RlcnM6OlMwLCAwKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuZHRyX3VyKGZh
bHNlLCBzcmMsIGFkZHJlc3MuYmFzZSwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAgICAgIHJldHVy
biBkYXRhTGFiZWw7CiAgICAgfQogCkBAIC0yNDMsMjYgKzI0MywyNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzdG9yZTMyKEltbTMyIGltbSwgSW1wbGljaXRBZGRyZXNzIGFkZHJlc3MpCiAgICAgewog
ICAgICAgICBpZiAoaW1tLm1faXNQb2ludGVyKQotICAgICAgICAgICAgbV9hc3NlbWJsZXIubGRy
X3VuX2ltbShBUk06OlMxLCBpbW0ubV92YWx1ZSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5s
ZHJfdW5faW1tKEFSTVJlZ2lzdGVyczo6UzEsIGltbS5tX3ZhbHVlKTsKICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgbW92ZShpbW0sIEFSTTo6UzEpOwotICAgICAgICBzdG9yZTMyKEFSTTo6UzEs
IGFkZHJlc3MpOworICAgICAgICAgICAgbW92ZShpbW0sIEFSTVJlZ2lzdGVyczo6UzEpOworICAg
ICAgICBzdG9yZTMyKEFSTVJlZ2lzdGVyczo6UzEsIGFkZHJlc3MpOwogICAgIH0KIAogICAgIHZv
aWQgc3RvcmUzMihSZWdpc3RlcklEIHNyYywgdm9pZCogYWRkcmVzcykKICAgICB7Ci0gICAgICAg
IG1fYXNzZW1ibGVyLmxkcl91bl9pbW0oQVJNOjpTMCwgcmVpbnRlcnByZXRfY2FzdDxBUk1Xb3Jk
PihhZGRyZXNzKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmR0cl91KGZhbHNlLCBzcmMsIEFSTTo6
UzAsIDApOworICAgICAgICBtX2Fzc2VtYmxlci5sZHJfdW5faW1tKEFSTVJlZ2lzdGVyczo6UzAs
IHJlaW50ZXJwcmV0X2Nhc3Q8QVJNV29yZD4oYWRkcmVzcykpOworICAgICAgICBtX2Fzc2VtYmxl
ci5kdHJfdShmYWxzZSwgc3JjLCBBUk1SZWdpc3RlcnM6OlMwLCAwKTsKICAgICB9CiAKICAgICB2
b2lkIHN0b3JlMzIoSW1tMzIgaW1tLCB2b2lkKiBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgbV9h
c3NlbWJsZXIubGRyX3VuX2ltbShBUk06OlMwLCByZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFk
ZHJlc3MpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubGRyX3VuX2ltbShBUk1SZWdpc3RlcnM6OlMw
LCByZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFkZHJlc3MpKTsKICAgICAgICAgaWYgKGltbS5t
X2lzUG9pbnRlcikKLSAgICAgICAgICAgIG1fYXNzZW1ibGVyLmxkcl91bl9pbW0oQVJNOjpTMSwg
aW1tLm1fdmFsdWUpOworICAgICAgICAgICAgbV9hc3NlbWJsZXIubGRyX3VuX2ltbShBUk1SZWdp
c3RlcnM6OlMxLCBpbW0ubV92YWx1ZSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fYXNz
ZW1ibGVyLm1vdmVJbW0oaW1tLm1fdmFsdWUsIEFSTTo6UzEpOwotICAgICAgICBtX2Fzc2VtYmxl
ci5kdHJfdShmYWxzZSwgQVJNOjpTMSwgQVJNOjpTMCwgMCk7CisgICAgICAgICAgICBtX2Fzc2Vt
Ymxlci5tb3ZlSW1tKGltbS5tX3ZhbHVlLCBBUk1SZWdpc3RlcnM6OlMxKTsKKyAgICAgICAgbV9h
c3NlbWJsZXIuZHRyX3UoZmFsc2UsIEFSTVJlZ2lzdGVyczo6UzEsIEFSTVJlZ2lzdGVyczo6UzAs
IDApOwogICAgIH0KIAogICAgIHZvaWQgcG9wKFJlZ2lzdGVySUQgZGVzdCkKQEAgLTI3NywxNCAr
Mjc3LDE0IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHVzaChBZGRyZXNzIGFkZHJlc3MpCiAgICAg
ewotICAgICAgICBsb2FkMzIoYWRkcmVzcywgQVJNOjpTMSk7Ci0gICAgICAgIHB1c2goQVJNOjpT
MSk7CisgICAgICAgIGxvYWQzMihhZGRyZXNzLCBBUk1SZWdpc3RlcnM6OlMxKTsKKyAgICAgICAg
cHVzaChBUk1SZWdpc3RlcnM6OlMxKTsKICAgICB9CiAKICAgICB2b2lkIHB1c2goSW1tMzIgaW1t
KQogICAgIHsKLSAgICAgICAgbW92ZShpbW0sIEFSTTo6UzApOwotICAgICAgICBwdXNoKEFSTTo6
UzApOworICAgICAgICBtb3ZlKGltbSwgQVJNUmVnaXN0ZXJzOjpTMCk7CisgICAgICAgIHB1c2go
QVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAgfQogCiAgICAgdm9pZCBtb3ZlKEltbTMyIGltbSwgUmVn
aXN0ZXJJRCBkZXN0KQpAQCAtMzA3LDkgKzMwNyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3dh
cChSZWdpc3RlcklEIHJlZzEsIFJlZ2lzdGVySUQgcmVnMikKICAgICB7Ci0gICAgICAgIG1fYXNz
ZW1ibGVyLm1vdl9yKEFSTTo6UzAsIHJlZzEpOworICAgICAgICBtX2Fzc2VtYmxlci5tb3ZfcihB
Uk1SZWdpc3RlcnM6OlMwLCByZWcxKTsKICAgICAgICAgbV9hc3NlbWJsZXIubW92X3IocmVnMSwg
cmVnMik7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm1vdl9yKHJlZzIsIEFSTTo6UzApOworICAgICAg
ICBtX2Fzc2VtYmxlci5tb3ZfcihyZWcyLCBBUk1SZWdpc3RlcnM6OlMwKTsKICAgICB9CiAKICAg
ICB2b2lkIHNpZ25FeHRlbmQzMlRvUHRyKFJlZ2lzdGVySUQgc3JjLCBSZWdpc3RlcklEIGRlc3Qp
CkBAIC0zMzMsMzUgKzMzMywzNSBAQCBwdWJsaWM6CiAgICAgSnVtcCBicmFuY2gzMihDb25kaXRp
b24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBJbW0zMiByaWdodCwgaW50IHVzZUNvbnN0YW50UG9v
bCA9IDApCiAgICAgewogICAgICAgICBpZiAocmlnaHQubV9pc1BvaW50ZXIpIHsKLSAgICAgICAg
ICAgIG1fYXNzZW1ibGVyLmxkcl91bl9pbW0oQVJNOjpTMCwgcmlnaHQubV92YWx1ZSk7Ci0gICAg
ICAgICAgICBtX2Fzc2VtYmxlci5jbXBfcihsZWZ0LCBBUk06OlMwKTsKKyAgICAgICAgICAgIG1f
YXNzZW1ibGVyLmxkcl91bl9pbW0oQVJNUmVnaXN0ZXJzOjpTMCwgcmlnaHQubV92YWx1ZSk7Cisg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXBfcihsZWZ0LCBBUk1SZWdpc3RlcnM6OlMwKTsKICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXBfcihsZWZ0LCBtX2Fzc2Vt
Ymxlci5nZXRJbW0ocmlnaHQubV92YWx1ZSwgQVJNOjpTMCkpOworICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuY21wX3IobGVmdCwgbV9hc3NlbWJsZXIuZ2V0SW1tKHJpZ2h0Lm1fdmFsdWUsIEFSTVJl
Z2lzdGVyczo6UzApKTsKICAgICAgICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIuam1wKEFSTUNv
bmRpdGlvbihjb25kKSwgdXNlQ29uc3RhbnRQb29sKSk7CiAgICAgfQogCiAgICAgSnVtcCBicmFu
Y2gzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBBZGRyZXNzIHJpZ2h0KQogICAg
IHsKLSAgICAgICAgbG9hZDMyKHJpZ2h0LCBBUk06OlMxKTsKLSAgICAgICAgcmV0dXJuIGJyYW5j
aDMyKGNvbmQsIGxlZnQsIEFSTTo6UzEpOworICAgICAgICBsb2FkMzIocmlnaHQsIEFSTVJlZ2lz
dGVyczo6UzEpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgbGVmdCwgQVJNUmVnaXN0
ZXJzOjpTMSk7CiAgICAgfQogCiAgICAgSnVtcCBicmFuY2gzMihDb25kaXRpb24gY29uZCwgQWRk
cmVzcyBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0KQogICAgIHsKLSAgICAgICAgbG9hZDMyKGxlZnQs
IEFSTTo6UzEpOwotICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgQVJNOjpTMSwgcmlnaHQp
OworICAgICAgICBsb2FkMzIobGVmdCwgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIHJldHVy
biBicmFuY2gzMihjb25kLCBBUk1SZWdpc3RlcnM6OlMxLCByaWdodCk7CiAgICAgfQogCiAgICAg
SnVtcCBicmFuY2gzMihDb25kaXRpb24gY29uZCwgQWRkcmVzcyBsZWZ0LCBJbW0zMiByaWdodCkK
ICAgICB7Ci0gICAgICAgIGxvYWQzMihsZWZ0LCBBUk06OlMxKTsKLSAgICAgICAgcmV0dXJuIGJy
YW5jaDMyKGNvbmQsIEFSTTo6UzEsIHJpZ2h0KTsKKyAgICAgICAgbG9hZDMyKGxlZnQsIEFSTVJl
Z2lzdGVyczo6UzEpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29uZCwgQVJNUmVnaXN0ZXJz
OjpTMSwgcmlnaHQpOwogICAgIH0KIAogICAgIEp1bXAgYnJhbmNoMzIoQ29uZGl0aW9uIGNvbmQs
IEJhc2VJbmRleCBsZWZ0LCBJbW0zMiByaWdodCkKICAgICB7Ci0gICAgICAgIGxvYWQzMihsZWZ0
LCBBUk06OlMxKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDMyKGNvbmQsIEFSTTo6UzEsIHJpZ2h0
KTsKKyAgICAgICAgbG9hZDMyKGxlZnQsIEFSTVJlZ2lzdGVyczo6UzEpOworICAgICAgICByZXR1
cm4gYnJhbmNoMzIoY29uZCwgQVJNUmVnaXN0ZXJzOjpTMSwgcmlnaHQpOwogICAgIH0KIAogICAg
IEp1bXAgYnJhbmNoMTYoQ29uZGl0aW9uIGNvbmQsIEJhc2VJbmRleCBsZWZ0LCBSZWdpc3RlcklE
IHJpZ2h0KQpAQCAtMzc1LDkgKzM3NSw5IEBAIHB1YmxpYzoKIAogICAgIEp1bXAgYnJhbmNoMTYo
Q29uZGl0aW9uIGNvbmQsIEJhc2VJbmRleCBsZWZ0LCBJbW0zMiByaWdodCkKICAgICB7Ci0gICAg
ICAgIGxvYWQxNihsZWZ0LCBBUk06OlMwKTsKLSAgICAgICAgbW92ZShyaWdodCwgQVJNOjpTMSk7
Ci0gICAgICAgIG1fYXNzZW1ibGVyLmNtcF9yKEFSTTo6UzAsIEFSTTo6UzEpOworICAgICAgICBs
b2FkMTYobGVmdCwgQVJNUmVnaXN0ZXJzOjpTMCk7CisgICAgICAgIG1vdmUocmlnaHQsIEFSTVJl
Z2lzdGVyczo6UzEpOworICAgICAgICBtX2Fzc2VtYmxlci5jbXBfcihBUk1SZWdpc3RlcnM6OlMw
LCBBUk1SZWdpc3RlcnM6OlMxKTsKICAgICAgICAgcmV0dXJuIG1fYXNzZW1ibGVyLmptcChBUk1D
b25kaXRpb24oY29uZCkpOwogICAgIH0KIApAQCAtMzkxLDkgKzM5MSw5IEBAIHB1YmxpYzoKICAg
ICBKdW1wIGJyYW5jaFRlc3QzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCByZWcsIEltbTMy
IG1hc2sgPSBJbW0zMigtMSkpCiAgICAgewogICAgICAgICBBU1NFUlQoKGNvbmQgPT0gWmVybykg
fHwgKGNvbmQgPT0gTm9uWmVybykpOwotICAgICAgICBBUk1Xb3JkIHcgPSBtX2Fzc2VtYmxlci5n
ZXRJbW0obWFzay5tX3ZhbHVlLCBBUk06OlMwLCB0cnVlKTsKKyAgICAgICAgQVJNV29yZCB3ID0g
bV9hc3NlbWJsZXIuZ2V0SW1tKG1hc2subV92YWx1ZSwgQVJNUmVnaXN0ZXJzOjpTMCwgdHJ1ZSk7
CiAgICAgICAgIGlmICh3ICYgQVJNQXNzZW1ibGVyOjpPUDJfSU5WX0lNTSkKLSAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmJpY3NfcihBUk06OlMwLCByZWcsIHcgJiB+QVJNQXNzZW1ibGVyOjpPUDJf
SU5WX0lNTSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5iaWNzX3IoQVJNUmVnaXN0ZXJzOjpT
MCwgcmVnLCB3ICYgfkFSTUFzc2VtYmxlcjo6T1AyX0lOVl9JTU0pOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci50c3RfcihyZWcsIHcpOwogICAgICAgICByZXR1cm4gSnVt
cChtX2Fzc2VtYmxlci5qbXAoQVJNQ29uZGl0aW9uKGNvbmQpKSk7CkBAIC00MDEsMTQgKzQwMSwx
NCBAQCBwdWJsaWM6CiAKICAgICBKdW1wIGJyYW5jaFRlc3QzMihDb25kaXRpb24gY29uZCwgQWRk
cmVzcyBhZGRyZXNzLCBJbW0zMiBtYXNrID0gSW1tMzIoLTEpKQogICAgIHsKLSAgICAgICAgbG9h
ZDMyKGFkZHJlc3MsIEFSTTo6UzEpOwotICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDMyKGNvbmQs
IEFSTTo6UzEsIG1hc2spOworICAgICAgICBsb2FkMzIoYWRkcmVzcywgQVJNUmVnaXN0ZXJzOjpT
MSk7CisgICAgICAgIHJldHVybiBicmFuY2hUZXN0MzIoY29uZCwgQVJNUmVnaXN0ZXJzOjpTMSwg
bWFzayk7CiAgICAgfQogCiAgICAgSnVtcCBicmFuY2hUZXN0MzIoQ29uZGl0aW9uIGNvbmQsIEJh
c2VJbmRleCBhZGRyZXNzLCBJbW0zMiBtYXNrID0gSW1tMzIoLTEpKQogICAgIHsKLSAgICAgICAg
bG9hZDMyKGFkZHJlc3MsIEFSTTo6UzEpOwotICAgICAgICByZXR1cm4gYnJhbmNoVGVzdDMyKGNv
bmQsIEFSTTo6UzEsIG1hc2spOworICAgICAgICBsb2FkMzIoYWRkcmVzcywgQVJNUmVnaXN0ZXJz
OjpTMSk7CisgICAgICAgIHJldHVybiBicmFuY2hUZXN0MzIoY29uZCwgQVJNUmVnaXN0ZXJzOjpT
MSwgbWFzayk7CiAgICAgfQogCiAgICAgSnVtcCBqdW1wKCkKQEAgLTQxOCwxMiArNDE4LDEyIEBA
IHB1YmxpYzoKIAogICAgIHZvaWQganVtcChSZWdpc3RlcklEIHRhcmdldCkKICAgICB7Ci0gICAg
ICAgIG1vdmUodGFyZ2V0LCBBUk06OnBjKTsKKyAgICAgICAgbW92ZSh0YXJnZXQsIEFSTVJlZ2lz
dGVyczo6cGMpOwogICAgIH0KIAogICAgIHZvaWQganVtcChBZGRyZXNzIGFkZHJlc3MpCiAgICAg
ewotICAgICAgICBsb2FkMzIoYWRkcmVzcywgQVJNOjpwYyk7CisgICAgICAgIGxvYWQzMihhZGRy
ZXNzLCBBUk1SZWdpc3RlcnM6OnBjKTsKICAgICB9CiAKICAgICBKdW1wIGJyYW5jaEFkZDMyKENv
bmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtNDQzLDEx
ICs0NDMsMTEgQEAgcHVibGljOgogICAgIHZvaWQgbXVsbDMyKFJlZ2lzdGVySUQgc3JjMSwgUmVn
aXN0ZXJJRCBzcmMyLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewogICAgICAgICBpZiAoc3JjMSA9
PSBkZXN0KSB7Ci0gICAgICAgICAgICBtb3ZlKHNyYzEsIEFSTTo6UzApOwotICAgICAgICAgICAg
c3JjMSA9IEFSTTo6UzA7CisgICAgICAgICAgICBtb3ZlKHNyYzEsIEFSTVJlZ2lzdGVyczo6UzAp
OworICAgICAgICAgICAgc3JjMSA9IEFSTVJlZ2lzdGVyczo6UzA7CiAgICAgICAgIH0KLSAgICAg
ICAgbV9hc3NlbWJsZXIubXVsbF9yKEFSTTo6UzEsIGRlc3QsIHNyYzIsIHNyYzEpOwotICAgICAg
ICBtX2Fzc2VtYmxlci5jbXBfcihBUk06OlMxLCBtX2Fzc2VtYmxlci5hc3IoZGVzdCwgMzEpKTsK
KyAgICAgICAgbV9hc3NlbWJsZXIubXVsbF9yKEFSTVJlZ2lzdGVyczo6UzEsIGRlc3QsIHNyYzIs
IHNyYzEpOworICAgICAgICBtX2Fzc2VtYmxlci5jbXBfcihBUk1SZWdpc3RlcnM6OlMxLCBtX2Fz
c2VtYmxlci5hc3IoZGVzdCwgMzEpKTsKICAgICB9CiAKICAgICBKdW1wIGJyYW5jaE11bDMyKENv
bmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtNDY2LDgg
KzQ2Niw4IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVCgoY29uZCA9PSBPdmVyZmxv
dykgfHwgKGNvbmQgPT0gU2lnbmVkKSB8fCAoY29uZCA9PSBaZXJvKSB8fCAoY29uZCA9PSBOb25a
ZXJvKSk7CiAgICAgICAgIGlmIChjb25kID09IE92ZXJmbG93KSB7Ci0gICAgICAgICAgICBtb3Zl
KGltbSwgQVJNOjpTMCk7Ci0gICAgICAgICAgICBtdWxsMzIoQVJNOjpTMCwgc3JjLCBkZXN0KTsK
KyAgICAgICAgICAgIG1vdmUoaW1tLCBBUk1SZWdpc3RlcnM6OlMwKTsKKyAgICAgICAgICAgIG11
bGwzMihBUk1SZWdpc3RlcnM6OlMwLCBzcmMsIGRlc3QpOwogICAgICAgICAgICAgY29uZCA9IE5v
blplcm87CiAgICAgICAgIH0KICAgICAgICAgZWxzZQpAQCAtNTAzLDcgKzUwMyw3IEBAIHB1Ymxp
YzoKICAgICBDYWxsIGNhbGwoUmVnaXN0ZXJJRCB0YXJnZXQpCiAgICAgewogICAgICAgICBwcmVw
YXJlQ2FsbCgpOwotICAgICAgICBtb3ZlKEFSTTo6cGMsIHRhcmdldCk7CisgICAgICAgIG1vdmUo
QVJNUmVnaXN0ZXJzOjpwYywgdGFyZ2V0KTsKICAgICAgICAgSm1wU3JjIGptcFNyYzsKICAgICAg
ICAgcmV0dXJuIENhbGwoam1wU3JjLCBDYWxsOjpOb25lKTsKICAgICB9CkBAIC01MTUsNyArNTE1
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXQoKQogICAgIHsKLSAgICAgICAgcG9wKEFSTTo6
cGMpOworICAgICAgICBwb3AoQVJNUmVnaXN0ZXJzOjpwYyk7CiAgICAgfQogCiAgICAgdm9pZCBz
ZXQzMihDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCBsZWZ0LCBSZWdpc3RlcklEIHJpZ2h0LCBS
ZWdpc3RlcklEIGRlc3QpCkBAIC01MjcsNjEgKzUyNyw2MSBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldDMyKENvbmRpdGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIEltbTMyIHJpZ2h0LCBSZWdp
c3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5jbXBfcihsZWZ0LCBtX2Fz
c2VtYmxlci5nZXRJbW0ocmlnaHQubV92YWx1ZSwgQVJNOjpTMCkpOworICAgICAgICBtX2Fzc2Vt
Ymxlci5jbXBfcihsZWZ0LCBtX2Fzc2VtYmxlci5nZXRJbW0ocmlnaHQubV92YWx1ZSwgQVJNUmVn
aXN0ZXJzOjpTMCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5tb3ZfcihkZXN0LCBBUk1Bc3NlbWJs
ZXI6OmdldE9wMigwKSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdl9yKGRlc3QsIEFSTUFzc2Vt
Ymxlcjo6Z2V0T3AyKDEpLCBBUk1Db25kaXRpb24oY29uZCkpOwogICAgIH0KIAogICAgIHZvaWQg
c2V0VGVzdDMyKENvbmRpdGlvbiBjb25kLCBBZGRyZXNzIGFkZHJlc3MsIEltbTMyIG1hc2ssIFJl
Z2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIGxvYWQzMihhZGRyZXNzLCBBUk06OlMxKTsK
KyAgICAgICAgbG9hZDMyKGFkZHJlc3MsIEFSTVJlZ2lzdGVyczo6UzEpOwogICAgICAgICBpZiAo
bWFzay5tX3ZhbHVlID09IC0xKQotICAgICAgICAgICAgbV9hc3NlbWJsZXIuY21wX3IoMCwgQVJN
OjpTMSk7CisgICAgICAgICAgICBtX2Fzc2VtYmxlci5jbXBfcigwLCBBUk1SZWdpc3RlcnM6OlMx
KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9hc3NlbWJsZXIudHN0X3IoQVJNOjpTMSwg
bV9hc3NlbWJsZXIuZ2V0SW1tKG1hc2subV92YWx1ZSwgQVJNOjpTMCkpOworICAgICAgICAgICAg
bV9hc3NlbWJsZXIudHN0X3IoQVJNUmVnaXN0ZXJzOjpTMSwgbV9hc3NlbWJsZXIuZ2V0SW1tKG1h
c2subV92YWx1ZSwgQVJNUmVnaXN0ZXJzOjpTMCkpOwogICAgICAgICBtX2Fzc2VtYmxlci5tb3Zf
cihkZXN0LCBBUk1Bc3NlbWJsZXI6OmdldE9wMigwKSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1v
dl9yKGRlc3QsIEFSTUFzc2VtYmxlcjo6Z2V0T3AyKDEpLCBBUk1Db25kaXRpb24oY29uZCkpOwog
ICAgIH0KIAogICAgIHZvaWQgYWRkMzIoSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyYywgUmVnaXN0
ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbV9hc3NlbWJsZXIuYWRkX3IoZGVzdCwgc3JjLCBt
X2Fzc2VtYmxlci5nZXRJbW0oaW1tLm1fdmFsdWUsIEFSTTo6UzApKTsKKyAgICAgICAgbV9hc3Nl
bWJsZXIuYWRkX3IoZGVzdCwgc3JjLCBtX2Fzc2VtYmxlci5nZXRJbW0oaW1tLm1fdmFsdWUsIEFS
TVJlZ2lzdGVyczo6UzApKTsKICAgICB9CiAKICAgICB2b2lkIGFkZDMyKEltbTMyIGltbSwgQWJz
b2x1dGVBZGRyZXNzIGFkZHJlc3MpCiAgICAgewotICAgICAgICBtX2Fzc2VtYmxlci5sZHJfdW5f
aW1tKEFSTTo6UzEsIHJlaW50ZXJwcmV0X2Nhc3Q8QVJNV29yZD4oYWRkcmVzcy5tX3B0cikpOwot
ICAgICAgICBtX2Fzc2VtYmxlci5kdHJfdSh0cnVlLCBBUk06OlMxLCBBUk06OlMxLCAwKTsKLSAg
ICAgICAgYWRkMzIoaW1tLCBBUk06OlMxKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubGRyX3VuX2lt
bShBUk06OlMwLCByZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFkZHJlc3MubV9wdHIpKTsKLSAg
ICAgICAgbV9hc3NlbWJsZXIuZHRyX3UoZmFsc2UsIEFSTTo6UzEsIEFSTTo6UzAsIDApOworICAg
ICAgICBtX2Fzc2VtYmxlci5sZHJfdW5faW1tKEFSTVJlZ2lzdGVyczo6UzEsIHJlaW50ZXJwcmV0
X2Nhc3Q8QVJNV29yZD4oYWRkcmVzcy5tX3B0cikpOworICAgICAgICBtX2Fzc2VtYmxlci5kdHJf
dSh0cnVlLCBBUk1SZWdpc3RlcnM6OlMxLCBBUk1SZWdpc3RlcnM6OlMxLCAwKTsKKyAgICAgICAg
YWRkMzIoaW1tLCBBUk1SZWdpc3RlcnM6OlMxKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubGRyX3Vu
X2ltbShBUk1SZWdpc3RlcnM6OlMwLCByZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFkZHJlc3Mu
bV9wdHIpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuZHRyX3UoZmFsc2UsIEFSTVJlZ2lzdGVyczo6
UzEsIEFSTVJlZ2lzdGVyczo6UzAsIDApOwogICAgIH0KIAogICAgIHZvaWQgc3ViMzIoSW1tMzIg
aW1tLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcykKICAgICB7Ci0gICAgICAgIG1fYXNzZW1ibGVy
Lmxkcl91bl9pbW0oQVJNOjpTMSwgcmVpbnRlcnByZXRfY2FzdDxBUk1Xb3JkPihhZGRyZXNzLm1f
cHRyKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLmR0cl91KHRydWUsIEFSTTo6UzEsIEFSTTo6UzEs
IDApOwotICAgICAgICBzdWIzMihpbW0sIEFSTTo6UzEpOwotICAgICAgICBtX2Fzc2VtYmxlci5s
ZHJfdW5faW1tKEFSTTo6UzAsIHJlaW50ZXJwcmV0X2Nhc3Q8QVJNV29yZD4oYWRkcmVzcy5tX3B0
cikpOwotICAgICAgICBtX2Fzc2VtYmxlci5kdHJfdShmYWxzZSwgQVJNOjpTMSwgQVJNOjpTMCwg
MCk7CisgICAgICAgIG1fYXNzZW1ibGVyLmxkcl91bl9pbW0oQVJNUmVnaXN0ZXJzOjpTMSwgcmVp
bnRlcnByZXRfY2FzdDxBUk1Xb3JkPihhZGRyZXNzLm1fcHRyKSk7CisgICAgICAgIG1fYXNzZW1i
bGVyLmR0cl91KHRydWUsIEFSTVJlZ2lzdGVyczo6UzEsIEFSTVJlZ2lzdGVyczo6UzEsIDApOwor
ICAgICAgICBzdWIzMihpbW0sIEFSTVJlZ2lzdGVyczo6UzEpOworICAgICAgICBtX2Fzc2VtYmxl
ci5sZHJfdW5faW1tKEFSTVJlZ2lzdGVyczo6UzAsIHJlaW50ZXJwcmV0X2Nhc3Q8QVJNV29yZD4o
YWRkcmVzcy5tX3B0cikpOworICAgICAgICBtX2Fzc2VtYmxlci5kdHJfdShmYWxzZSwgQVJNUmVn
aXN0ZXJzOjpTMSwgQVJNUmVnaXN0ZXJzOjpTMCwgMCk7CiAgICAgfQogCiAgICAgdm9pZCBsb2Fk
MzIodm9pZCogYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbV9hc3Nl
bWJsZXIubGRyX3VuX2ltbShBUk06OlMwLCByZWludGVycHJldF9jYXN0PEFSTVdvcmQ+KGFkZHJl
c3MpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuZHRyX3UodHJ1ZSwgZGVzdCwgQVJNOjpTMCwgMCk7
CisgICAgICAgIG1fYXNzZW1ibGVyLmxkcl91bl9pbW0oQVJNUmVnaXN0ZXJzOjpTMCwgcmVpbnRl
cnByZXRfY2FzdDxBUk1Xb3JkPihhZGRyZXNzKSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmR0cl91
KHRydWUsIGRlc3QsIEFSTVJlZ2lzdGVyczo6UzAsIDApOwogICAgIH0KIAogICAgIEp1bXAgYnJh
bmNoMzIoQ29uZGl0aW9uIGNvbmQsIEFic29sdXRlQWRkcmVzcyBsZWZ0LCBSZWdpc3RlcklEIHJp
Z2h0KQogICAgIHsKLSAgICAgICAgbG9hZDMyKGxlZnQubV9wdHIsIEFSTTo6UzEpOwotICAgICAg
ICByZXR1cm4gYnJhbmNoMzIoY29uZCwgQVJNOjpTMSwgcmlnaHQpOworICAgICAgICBsb2FkMzIo
bGVmdC5tX3B0ciwgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihj
b25kLCBBUk1SZWdpc3RlcnM6OlMxLCByaWdodCk7CiAgICAgfQogCiAgICAgSnVtcCBicmFuY2gz
MihDb25kaXRpb24gY29uZCwgQWJzb2x1dGVBZGRyZXNzIGxlZnQsIEltbTMyIHJpZ2h0KQogICAg
IHsKLSAgICAgICAgbG9hZDMyKGxlZnQubV9wdHIsIEFSTTo6UzEpOwotICAgICAgICByZXR1cm4g
YnJhbmNoMzIoY29uZCwgQVJNOjpTMSwgcmlnaHQpOworICAgICAgICBsb2FkMzIobGVmdC5tX3B0
ciwgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIHJldHVybiBicmFuY2gzMihjb25kLCBBUk1S
ZWdpc3RlcnM6OlMxLCByaWdodCk7CiAgICAgfQogCiAgICAgQ2FsbCBjYWxsKCkKQEAgLTYwOSwy
MyArNjA5LDIzIEBAIHB1YmxpYzoKIAogICAgIEp1bXAgYnJhbmNoUHRyV2l0aFBhdGNoKENvbmRp
dGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIERhdGFMYWJlbFB0ciYgZGF0YUxhYmVsLCBJbW1Q
dHIgaW5pdGlhbFJpZ2h0VmFsdWUgPSBJbW1QdHIoMCkpCiAgICAgewotICAgICAgICBkYXRhTGFi
ZWwgPSBtb3ZlV2l0aFBhdGNoKGluaXRpYWxSaWdodFZhbHVlLCBBUk06OlMxKTsKLSAgICAgICAg
SnVtcCBqdW1wID0gYnJhbmNoMzIoY29uZCwgbGVmdCwgQVJNOjpTMSwgdHJ1ZSk7CisgICAgICAg
IGRhdGFMYWJlbCA9IG1vdmVXaXRoUGF0Y2goaW5pdGlhbFJpZ2h0VmFsdWUsIEFSTVJlZ2lzdGVy
czo6UzEpOworICAgICAgICBKdW1wIGp1bXAgPSBicmFuY2gzMihjb25kLCBsZWZ0LCBBUk1SZWdp
c3RlcnM6OlMxLCB0cnVlKTsKICAgICAgICAgcmV0dXJuIGp1bXA7CiAgICAgfQogCiAgICAgSnVt
cCBicmFuY2hQdHJXaXRoUGF0Y2goQ29uZGl0aW9uIGNvbmQsIEFkZHJlc3MgbGVmdCwgRGF0YUxh
YmVsUHRyJiBkYXRhTGFiZWwsIEltbVB0ciBpbml0aWFsUmlnaHRWYWx1ZSA9IEltbVB0cigwKSkK
ICAgICB7Ci0gICAgICAgIGxvYWQzMihsZWZ0LCBBUk06OlMxKTsKLSAgICAgICAgZGF0YUxhYmVs
ID0gbW92ZVdpdGhQYXRjaChpbml0aWFsUmlnaHRWYWx1ZSwgQVJNOjpTMCk7Ci0gICAgICAgIEp1
bXAganVtcCA9IGJyYW5jaDMyKGNvbmQsIEFSTTo6UzAsIEFSTTo6UzEsIHRydWUpOworICAgICAg
ICBsb2FkMzIobGVmdCwgQVJNUmVnaXN0ZXJzOjpTMSk7CisgICAgICAgIGRhdGFMYWJlbCA9IG1v
dmVXaXRoUGF0Y2goaW5pdGlhbFJpZ2h0VmFsdWUsIEFSTVJlZ2lzdGVyczo6UzApOworICAgICAg
ICBKdW1wIGp1bXAgPSBicmFuY2gzMihjb25kLCBBUk1SZWdpc3RlcnM6OlMwLCBBUk1SZWdpc3Rl
cnM6OlMxLCB0cnVlKTsKICAgICAgICAgcmV0dXJuIGp1bXA7CiAgICAgfQogCiAgICAgRGF0YUxh
YmVsUHRyIHN0b3JlUHRyV2l0aFBhdGNoKEltbVB0ciBpbml0aWFsVmFsdWUsIEltcGxpY2l0QWRk
cmVzcyBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgRGF0YUxhYmVsUHRyIGRhdGFMYWJlbCA9IG1v
dmVXaXRoUGF0Y2goaW5pdGlhbFZhbHVlLCBBUk06OlMxKTsKLSAgICAgICAgc3RvcmUzMihBUk06
OlMxLCBhZGRyZXNzKTsKKyAgICAgICAgRGF0YUxhYmVsUHRyIGRhdGFMYWJlbCA9IG1vdmVXaXRo
UGF0Y2goaW5pdGlhbFZhbHVlLCBBUk1SZWdpc3RlcnM6OlMxKTsKKyAgICAgICAgc3RvcmUzMihB
Uk1SZWdpc3RlcnM6OlMxLCBhZGRyZXNzKTsKICAgICAgICAgcmV0dXJuIGRhdGFMYWJlbDsKICAg
ICB9CiAKQEAgLTY2Myw4ICs2NjMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZERvdWJsZShB
ZGRyZXNzIHNyYywgRlBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBsb2FkRG91Ymxl
KHNyYywgQVJNOjpTRDApOwotICAgICAgICBhZGREb3VibGUoQVJNOjpTRDAsIGRlc3QpOworICAg
ICAgICBsb2FkRG91YmxlKHNyYywgQVJNUmVnaXN0ZXJzOjpTRDApOworICAgICAgICBhZGREb3Vi
bGUoQVJNUmVnaXN0ZXJzOjpTRDAsIGRlc3QpOwogICAgIH0KIAogICAgIHZvaWQgc3ViRG91Ymxl
KEZQUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQpAQCAtNjc0LDggKzY3NCw4IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgc3ViRG91YmxlKEFkZHJlc3Mgc3JjLCBGUFJlZ2lzdGVySUQg
ZGVzdCkKICAgICB7Ci0gICAgICAgIGxvYWREb3VibGUoc3JjLCBBUk06OlNEMCk7Ci0gICAgICAg
IHN1YkRvdWJsZShBUk06OlNEMCwgZGVzdCk7CisgICAgICAgIGxvYWREb3VibGUoc3JjLCBBUk1S
ZWdpc3RlcnM6OlNEMCk7CisgICAgICAgIHN1YkRvdWJsZShBUk1SZWdpc3RlcnM6OlNEMCwgZGVz
dCk7CiAgICAgfQogCiAgICAgdm9pZCBtdWxEb3VibGUoRlBSZWdpc3RlcklEIHNyYywgRlBSZWdp
c3RlcklEIGRlc3QpCkBAIC02ODUsOCArNjg1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBtdWxE
b3VibGUoQWRkcmVzcyBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgbG9h
ZERvdWJsZShzcmMsIEFSTTo6U0QwKTsKLSAgICAgICAgbXVsRG91YmxlKEFSTTo6U0QwLCBkZXN0
KTsKKyAgICAgICAgbG9hZERvdWJsZShzcmMsIEFSTVJlZ2lzdGVyczo6U0QwKTsKKyAgICAgICAg
bXVsRG91YmxlKEFSTVJlZ2lzdGVyczo6U0QwLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIGNv
bnZlcnRJbnQzMlRvRG91YmxlKFJlZ2lzdGVySUQgc3JjLCBGUFJlZ2lzdGVySUQgZGVzdCkKQEAg
LTczNSw0MSArNzM1LDQxIEBAIHByb3RlY3RlZDoKICAgICAgICAgZW5zdXJlU3BhY2UoMyAqIHNp
emVvZihBUk1Xb3JkKSwgc2l6ZW9mKEFSTVdvcmQpKTsKIAogICAgICAgICAvLyBTMCBtaWdodCBi
ZSB1c2VkIGZvciBwYXJhbWV0ZXIgcGFzc2luZwotICAgICAgICBtX2Fzc2VtYmxlci5hZGRfcihB
Uk06OlMxLCBBUk06OnBjLCBBUk1Bc3NlbWJsZXI6Ok9QMl9JTU0gfCAweDQpOwotICAgICAgICBt
X2Fzc2VtYmxlci5wdXNoX3IoQVJNOjpTMSk7CisgICAgICAgIG1fYXNzZW1ibGVyLmFkZF9yKEFS
TVJlZ2lzdGVyczo6UzEsIEFSTVJlZ2lzdGVyczo6cGMsIEFSTUFzc2VtYmxlcjo6T1AyX0lNTSB8
IDB4NCk7CisgICAgICAgIG1fYXNzZW1ibGVyLnB1c2hfcihBUk1SZWdpc3RlcnM6OlMxKTsKICAg
ICB9CiAKICAgICB2b2lkIGNhbGwzMihSZWdpc3RlcklEIGJhc2UsIGludDMyX3Qgb2Zmc2V0KQog
ICAgIHsKLSAgICAgICAgaWYgKGJhc2UgPT0gQVJNOjpzcCkKKyAgICAgICAgaWYgKGJhc2UgPT0g
QVJNUmVnaXN0ZXJzOjpzcCkKICAgICAgICAgICAgIG9mZnNldCArPSA0OwogCiAgICAgICAgIGlm
IChvZmZzZXQgPj0gMCkgewogICAgICAgICAgICAgaWYgKG9mZnNldCA8PSAweGZmZikgewogICAg
ICAgICAgICAgICAgIHByZXBhcmVDYWxsKCk7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIu
ZHRyX3UodHJ1ZSwgQVJNOjpwYywgYmFzZSwgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5kdHJfdSh0cnVlLCBBUk1SZWdpc3RlcnM6OnBjLCBiYXNlLCBvZmZzZXQpOwogICAg
ICAgICAgICAgfSBlbHNlIGlmIChvZmZzZXQgPD0gMHhmZmZmZikgewotICAgICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLmFkZF9yKEFSTTo6UzAsIGJhc2UsIEFSTUFzc2VtYmxlcjo6T1AyX0lNTSB8
IChvZmZzZXQgPj4gMTIpIHwgKDEwIDw8IDgpKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5hZGRfcihBUk1SZWdpc3RlcnM6OlMwLCBiYXNlLCBBUk1Bc3NlbWJsZXI6Ok9QMl9JTU0gfCAo
b2Zmc2V0ID4+IDEyKSB8ICgxMCA8PCA4KSk7CiAgICAgICAgICAgICAgICAgcHJlcGFyZUNhbGwo
KTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5kdHJfdSh0cnVlLCBBUk06OnBjLCBBUk06
OlMwLCBvZmZzZXQgJiAweGZmZik7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuZHRyX3Uo
dHJ1ZSwgQVJNUmVnaXN0ZXJzOjpwYywgQVJNUmVnaXN0ZXJzOjpTMCwgb2Zmc2V0ICYgMHhmZmYp
OwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBUk1Xb3JkIHJlZyA9IG1f
YXNzZW1ibGVyLmdldEltbShvZmZzZXQsIEFSTTo6UzApOworICAgICAgICAgICAgICAgIEFSTVdv
cmQgcmVnID0gbV9hc3NlbWJsZXIuZ2V0SW1tKG9mZnNldCwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAg
ICAgICAgICAgICAgICAgcHJlcGFyZUNhbGwoKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxl
ci5kdHJfdXIodHJ1ZSwgQVJNOjpwYywgYmFzZSwgcmVnKTsKKyAgICAgICAgICAgICAgICBtX2Fz
c2VtYmxlci5kdHJfdXIodHJ1ZSwgQVJNUmVnaXN0ZXJzOjpwYywgYmFzZSwgcmVnKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSBlbHNlICB7CiAgICAgICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0
OwogICAgICAgICAgICAgaWYgKG9mZnNldCA8PSAweGZmZikgewogICAgICAgICAgICAgICAgIHBy
ZXBhcmVDYWxsKCk7Ci0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuZHRyX2QodHJ1ZSwgQVJN
OjpwYywgYmFzZSwgb2Zmc2V0KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5kdHJfZCh0
cnVlLCBBUk1SZWdpc3RlcnM6OnBjLCBiYXNlLCBvZmZzZXQpOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChvZmZzZXQgPD0gMHhmZmZmZikgewotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnN1
Yl9yKEFSTTo6UzAsIGJhc2UsIEFSTUFzc2VtYmxlcjo6T1AyX0lNTSB8IChvZmZzZXQgPj4gMTIp
IHwgKDEwIDw8IDgpKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zdWJfcihBUk1SZWdp
c3RlcnM6OlMwLCBiYXNlLCBBUk1Bc3NlbWJsZXI6Ok9QMl9JTU0gfCAob2Zmc2V0ID4+IDEyKSB8
ICgxMCA8PCA4KSk7CiAgICAgICAgICAgICAgICAgcHJlcGFyZUNhbGwoKTsKLSAgICAgICAgICAg
ICAgICBtX2Fzc2VtYmxlci5kdHJfZCh0cnVlLCBBUk06OnBjLCBBUk06OlMwLCBvZmZzZXQgJiAw
eGZmZik7CisgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuZHRyX2QodHJ1ZSwgQVJNUmVnaXN0
ZXJzOjpwYywgQVJNUmVnaXN0ZXJzOjpTMCwgb2Zmc2V0ICYgMHhmZmYpOwogICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICBBUk1Xb3JkIHJlZyA9IG1fYXNzZW1ibGVyLmdldElt
bShvZmZzZXQsIEFSTTo6UzApOworICAgICAgICAgICAgICAgIEFSTVdvcmQgcmVnID0gbV9hc3Nl
bWJsZXIuZ2V0SW1tKG9mZnNldCwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAgICAgICAgICAgICAgICAg
cHJlcGFyZUNhbGwoKTsKLSAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5kdHJfZHIodHJ1ZSwg
QVJNOjpwYywgYmFzZSwgcmVnKTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5kdHJfZHIo
dHJ1ZSwgQVJNUmVnaXN0ZXJzOjpwYywgYmFzZSwgcmVnKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlckFSTXY3LmggYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJB
Uk12Ny5oCmluZGV4IGY3YTg0MDIuLjZmZmQ5YzcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTXY3LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuaApAQCAtMzksOSArMzksOSBAQCBjbGFzcyBNYWNy
b0Fzc2VtYmxlckFSTXY3IDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QVJNdjdBc3Nl
bWJsZXI+IHsKICAgICAvLyBGSVhNRTogc3dpdGNoIGRhdGFUZW1wUmVnaXN0ZXIgJiBhZGRyZXNz
VGVtcFJlZ2lzdGVyLCBvciBwb3NzaWJseSB1c2Ugcjc/CiAgICAgLy8gICAgICAgIC0gZFRSIGlz
IGxpa2VseSB1c2VkIG1vcmUgdGhhbiBhVFIsIGFuZCB3ZSdsbCBnZXQgYmV0dGVyIGluc3RydWN0
aW9uCiAgICAgLy8gICAgICAgIGVuY29kaW5nIGlmIGl0J3MgaW4gdGhlIGxvdyA4IHJlZ2lzdGVy
cy4KLSAgICBzdGF0aWMgY29uc3QgQVJNOjpSZWdpc3RlcklEIGRhdGFUZW1wUmVnaXN0ZXIgPSBB
Uk06OmlwOwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGFkZHJlc3NUZW1wUmVnaXN0ZXIg
PSBBUk06OnIzOwotICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBUZW1wUmVnaXN0ZXIg
PSBBUk06OmQ3OworICAgIHN0YXRpYyBjb25zdCBBUk1SZWdpc3RlcnM6OlJlZ2lzdGVySUQgZGF0
YVRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6aXA7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgYWRkcmVzc1RlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjM7CisgICAgc3RhdGlj
IGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFRlbXBSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6ZDc7CiAK
ICAgICBzdHJ1Y3QgQXJtQWRkcmVzcyB7CiAgICAgICAgIGVudW0gQWRkcmVzc1R5cGUgewpAQCAt
MTAyLDggKzEwMiw4IEBAIHB1YmxpYzoKICAgICAgICAgRG91YmxlTGVzc1RoYW5PckVxdWFsID0g
QVJNdjdBc3NlbWJsZXI6OkNvbmRpdGlvbkxTLAogICAgIH07CiAKLSAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3RlciA9IEFSTTo6c3A7Ci0gICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgbGlua1JlZ2lzdGVyID0gQVJNOjpscjsKKyAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6c3A7CisgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgbGlua1JlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpscjsK
IAogICAgIC8vIEludGVnZXIgYXJpdGhtZXRpYyBvcGVyYXRpb25zOgogICAgIC8vCkBAIC01NDYs
MTMgKzU0NiwxMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwb3AoUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKICAgICAgICAgLy8gc3RvcmUgcG9zdGluZGV4ZWQgd2l0aCB3cml0ZWJhY2sKLSAgICAgICAg
bV9hc3NlbWJsZXIubGRyKGRlc3QsIEFSTTo6c3AsIHNpemVvZih2b2lkKiksIGZhbHNlLCB0cnVl
KTsKKyAgICAgICAgbV9hc3NlbWJsZXIubGRyKGRlc3QsIEFSTVJlZ2lzdGVyczo6c3AsIHNpemVv
Zih2b2lkKiksIGZhbHNlLCB0cnVlKTsKICAgICB9CiAKICAgICB2b2lkIHB1c2goUmVnaXN0ZXJJ
RCBzcmMpCiAgICAgewogICAgICAgICAvLyBzdG9yZSBwcmVpbmRleGVkIHdpdGggd3JpdGViYWNr
Ci0gICAgICAgIG1fYXNzZW1ibGVyLnN0cihzcmMsIEFSTTo6c3AsIC1zaXplb2Yodm9pZCopLCB0
cnVlLCB0cnVlKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuc3RyKHNyYywgQVJNUmVnaXN0ZXJzOjpz
cCwgLXNpemVvZih2b2lkKiksIHRydWUsIHRydWUpOwogICAgIH0KIAogICAgIHZvaWQgcHVzaChB
ZGRyZXNzIGFkZHJlc3MpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZDb21tb24uaCBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IGM5ZTM1NjkuLjZkZjI2ODcgMTAwNjQ0Ci0tLSBhL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCkBAIC02NCw3
ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAgRG91YmxlTGVzc1RoYW5PckVxdWFsID0gWDg2QXNz
ZW1ibGVyOjpDb25kaXRpb25CRSwKICAgICB9OwogCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgc3RhY2tQb2ludGVyUmVnaXN0ZXIgPSBYODY6OmVzcDsKKyAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCBzdGFja1BvaW50ZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZXNwOwogCiAgICAg
Ly8gSW50ZWdlciBhcml0aG1ldGljIG9wZXJhdGlvbnM6CiAgICAgLy8KQEAgLTEzMiwyMCArMTMy
LDIwIEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIC8vIE9uIHg4NiB3ZSBjYW4gb25seSBzaGlm
dCBieSBlY3g7IGlmIGFza2VkIHRvIHNoaWZ0IGJ5IGFub3RoZXIgcmVnaXN0ZXIgd2UnbGwKICAg
ICAgICAgLy8gbmVlZCByZWppZyB0aGUgc2hpZnQgYW1vdW50IGludG8gZWN4IGZpcnN0LCBhbmQg
cmVzdG9yZSB0aGUgcmVnaXN0ZXJzIGFmdGVyd2FyZHMuCi0gICAgICAgIGlmIChzaGlmdF9hbW91
bnQgIT0gWDg2OjplY3gpIHsKLSAgICAgICAgICAgIHN3YXAoc2hpZnRfYW1vdW50LCBYODY6OmVj
eCk7CisgICAgICAgIGlmIChzaGlmdF9hbW91bnQgIT0gWDg2UmVnaXN0ZXJzOjplY3gpIHsKKyAg
ICAgICAgICAgIHN3YXAoc2hpZnRfYW1vdW50LCBYODZSZWdpc3RlcnM6OmVjeCk7CiAKICAgICAg
ICAgICAgIC8vIEUuZy4gdHJhbnNmb3JtICJzaGxsICVlYXgsICVlYXgiIC0+ICJ4Y2hnbCAlZWF4
LCAlZWN4OyBzaGxsICVlY3gsICVlY3g7IHhjaGdsICVlYXgsICVlY3giCiAgICAgICAgICAgICBp
ZiAoZGVzdCA9PSBzaGlmdF9hbW91bnQpCi0gICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2hs
bF9DTHIoWDg2OjplY3gpOworICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNobGxfQ0xyKFg4
NlJlZ2lzdGVyczo6ZWN4KTsKICAgICAgICAgICAgIC8vIEUuZy4gdHJhbnNmb3JtICJzaGxsICVl
YXgsICVlY3giIC0+ICJ4Y2hnbCAlZWF4LCAlZWN4OyBzaGxsICVlY3gsICVlYXg7IHhjaGdsICVl
YXgsICVlY3giCi0gICAgICAgICAgICBlbHNlIGlmIChkZXN0ID09IFg4Njo6ZWN4KQorICAgICAg
ICAgICAgZWxzZSBpZiAoZGVzdCA9PSBYODZSZWdpc3RlcnM6OmVjeCkKICAgICAgICAgICAgICAg
ICBtX2Fzc2VtYmxlci5zaGxsX0NMcihzaGlmdF9hbW91bnQpOwogICAgICAgICAgICAgLy8gRS5n
LiB0cmFuc2Zvcm0gInNobGwgJWVheCwgJWVieCIgLT4gInhjaGdsICVlYXgsICVlY3g7IHNobGwg
JWVjeCwgJWVieDsgeGNoZ2wgJWVheCwgJWVjeCIKICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICBtX2Fzc2VtYmxlci5zaGxsX0NMcihkZXN0KTsKICAgICAgICAgCi0gICAgICAgICAg
ICBzd2FwKHNoaWZ0X2Ftb3VudCwgWDg2OjplY3gpOworICAgICAgICAgICAgc3dhcChzaGlmdF9h
bW91bnQsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5zaGxsX0NMcihkZXN0KTsKICAgICB9CkBAIC0yMTQsMjAgKzIxNCwyMCBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICAvLyBPbiB4ODYgd2UgY2FuIG9ubHkgc2hpZnQgYnkgZWN4
OyBpZiBhc2tlZCB0byBzaGlmdCBieSBhbm90aGVyIHJlZ2lzdGVyIHdlJ2xsCiAgICAgICAgIC8v
IG5lZWQgcmVqaWcgdGhlIHNoaWZ0IGFtb3VudCBpbnRvIGVjeCBmaXJzdCwgYW5kIHJlc3RvcmUg
dGhlIHJlZ2lzdGVycyBhZnRlcndhcmRzLgotICAgICAgICBpZiAoc2hpZnRfYW1vdW50ICE9IFg4
Njo6ZWN4KSB7Ci0gICAgICAgICAgICBzd2FwKHNoaWZ0X2Ftb3VudCwgWDg2OjplY3gpOworICAg
ICAgICBpZiAoc2hpZnRfYW1vdW50ICE9IFg4NlJlZ2lzdGVyczo6ZWN4KSB7CisgICAgICAgICAg
ICBzd2FwKHNoaWZ0X2Ftb3VudCwgWDg2UmVnaXN0ZXJzOjplY3gpOwogCiAgICAgICAgICAgICAv
LyBFLmcuIHRyYW5zZm9ybSAic2hsbCAlZWF4LCAlZWF4IiAtPiAieGNoZ2wgJWVheCwgJWVjeDsg
c2hsbCAlZWN4LCAlZWN4OyB4Y2hnbCAlZWF4LCAlZWN4IgogICAgICAgICAgICAgaWYgKGRlc3Qg
PT0gc2hpZnRfYW1vdW50KQotICAgICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnNhcmxfQ0xyKFg4
Njo6ZWN4KTsKKyAgICAgICAgICAgICAgICBtX2Fzc2VtYmxlci5zYXJsX0NMcihYODZSZWdpc3Rl
cnM6OmVjeCk7CiAgICAgICAgICAgICAvLyBFLmcuIHRyYW5zZm9ybSAic2hsbCAlZWF4LCAlZWN4
IiAtPiAieGNoZ2wgJWVheCwgJWVjeDsgc2hsbCAlZWN4LCAlZWF4OyB4Y2hnbCAlZWF4LCAlZWN4
IgotICAgICAgICAgICAgZWxzZSBpZiAoZGVzdCA9PSBYODY6OmVjeCkKKyAgICAgICAgICAgIGVs
c2UgaWYgKGRlc3QgPT0gWDg2UmVnaXN0ZXJzOjplY3gpCiAgICAgICAgICAgICAgICAgbV9hc3Nl
bWJsZXIuc2FybF9DTHIoc2hpZnRfYW1vdW50KTsKICAgICAgICAgICAgIC8vIEUuZy4gdHJhbnNm
b3JtICJzaGxsICVlYXgsICVlYngiIC0+ICJ4Y2hnbCAlZWF4LCAlZWN4OyBzaGxsICVlY3gsICVl
Yng7IHhjaGdsICVlYXgsICVlY3giCiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
bV9hc3NlbWJsZXIuc2FybF9DTHIoZGVzdCk7CiAgICAgICAgIAotICAgICAgICAgICAgc3dhcChz
aGlmdF9hbW91bnQsIFg4Njo6ZWN4KTsKKyAgICAgICAgICAgIHN3YXAoc2hpZnRfYW1vdW50LCBY
ODZSZWdpc3RlcnM6OmVjeCk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9hc3NlbWJs
ZXIuc2FybF9DTHIoZGVzdCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZfNjQuaAppbmRleCBlM2QyOTZjLi42ZWFjNTNmIDEwMDY0NAotLS0g
YS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtMzgsNyAr
MzgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xhc3MgTWFjcm9Bc3NlbWJsZXJYODZfNjQgOiBw
dWJsaWMgTWFjcm9Bc3NlbWJsZXJYODZDb21tb24gewogcHJvdGVjdGVkOgotICAgIHN0YXRpYyBj
b25zdCBYODY6OlJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gWDg2OjpyMTE7CisgICAgc3Rh
dGljIGNvbnN0IFg4NlJlZ2lzdGVyczo6UmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXIgPSBYODZS
ZWdpc3RlcnM6OnIxMTsKIAogcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBTY2FsZSBTY2FsZVB0
ciA9IFRpbWVzRWlnaHQ7CkBAIC03OSwxMiArNzksMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBs
b2FkMzIodm9pZCogYWRkcmVzcywgUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAgICAgaWYg
KGRlc3QgPT0gWDg2OjplYXgpCisgICAgICAgIGlmIChkZXN0ID09IFg4NlJlZ2lzdGVyczo6ZWF4
KQogICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92bF9tRUFYKGFkZHJlc3MpOwogICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgIG1vdmUoWDg2OjplYXgsIGRlc3QpOworICAgICAgICAgICAgbW92
ZShYODZSZWdpc3RlcnM6OmVheCwgZGVzdCk7CiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3Zs
X21FQVgoYWRkcmVzcyk7Ci0gICAgICAgICAgICBzd2FwKFg4Njo6ZWF4LCBkZXN0KTsKKyAgICAg
ICAgICAgIHN3YXAoWDg2UmVnaXN0ZXJzOjplYXgsIGRlc3QpOwogICAgICAgICB9CiAgICAgfQog
CkBAIC0xMDIsMTAgKzEwMiwxMCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0b3JlMzIoSW1tMzIg
aW1tLCB2b2lkKiBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgbW92ZShYODY6OmVheCwgc2NyYXRj
aFJlZ2lzdGVyKTsKLSAgICAgICAgbW92ZShpbW0sIFg4Njo6ZWF4KTsKKyAgICAgICAgbW92ZShY
ODZSZWdpc3RlcnM6OmVheCwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgbW92ZShpbW0sIFg4
NlJlZ2lzdGVyczo6ZWF4KTsKICAgICAgICAgbV9hc3NlbWJsZXIubW92bF9FQVhtKGFkZHJlc3Mp
OwotICAgICAgICBtb3ZlKHNjcmF0Y2hSZWdpc3RlciwgWDg2OjplYXgpOworICAgICAgICBtb3Zl
KHNjcmF0Y2hSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplYXgpOwogICAgIH0KIAogICAgIENhbGwg
Y2FsbCgpCkBAIC0xOTYsMjAgKzE5NiwyMCBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICAvLyBP
biB4ODYgd2UgY2FuIG9ubHkgc2hpZnQgYnkgZWN4OyBpZiBhc2tlZCB0byBzaGlmdCBieSBhbm90
aGVyIHJlZ2lzdGVyIHdlJ2xsCiAgICAgICAgIC8vIG5lZWQgcmVqaWcgdGhlIHNoaWZ0IGFtb3Vu
dCBpbnRvIGVjeCBmaXJzdCwgYW5kIHJlc3RvcmUgdGhlIHJlZ2lzdGVycyBhZnRlcndhcmRzLgot
ICAgICAgICBpZiAoc2hpZnRfYW1vdW50ICE9IFg4Njo6ZWN4KSB7Ci0gICAgICAgICAgICBzd2Fw
KHNoaWZ0X2Ftb3VudCwgWDg2OjplY3gpOworICAgICAgICBpZiAoc2hpZnRfYW1vdW50ICE9IFg4
NlJlZ2lzdGVyczo6ZWN4KSB7CisgICAgICAgICAgICBzd2FwKHNoaWZ0X2Ftb3VudCwgWDg2UmVn
aXN0ZXJzOjplY3gpOwogCiAgICAgICAgICAgICAvLyBFLmcuIHRyYW5zZm9ybSAic2hsbCAlZWF4
LCAlZWF4IiAtPiAieGNoZ2wgJWVheCwgJWVjeDsgc2hsbCAlZWN4LCAlZWN4OyB4Y2hnbCAlZWF4
LCAlZWN4IgogICAgICAgICAgICAgaWYgKGRlc3QgPT0gc2hpZnRfYW1vdW50KQotICAgICAgICAg
ICAgICAgIG1fYXNzZW1ibGVyLnNhcnFfQ0xyKFg4Njo6ZWN4KTsKKyAgICAgICAgICAgICAgICBt
X2Fzc2VtYmxlci5zYXJxX0NMcihYODZSZWdpc3RlcnM6OmVjeCk7CiAgICAgICAgICAgICAvLyBF
LmcuIHRyYW5zZm9ybSAic2hsbCAlZWF4LCAlZWN4IiAtPiAieGNoZ2wgJWVheCwgJWVjeDsgc2hs
bCAlZWN4LCAlZWF4OyB4Y2hnbCAlZWF4LCAlZWN4IgotICAgICAgICAgICAgZWxzZSBpZiAoZGVz
dCA9PSBYODY6OmVjeCkKKyAgICAgICAgICAgIGVsc2UgaWYgKGRlc3QgPT0gWDg2UmVnaXN0ZXJz
OjplY3gpCiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2FycV9DTHIoc2hpZnRfYW1vdW50
KTsKICAgICAgICAgICAgIC8vIEUuZy4gdHJhbnNmb3JtICJzaGxsICVlYXgsICVlYngiIC0+ICJ4
Y2hnbCAlZWF4LCAlZWN4OyBzaGxsICVlY3gsICVlYng7IHhjaGdsICVlYXgsICVlY3giCiAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2FycV9DTHIoZGVzdCk7
CiAgICAgICAgIAotICAgICAgICAgICAgc3dhcChzaGlmdF9hbW91bnQsIFg4Njo6ZWN4KTsKKyAg
ICAgICAgICAgIHN3YXAoc2hpZnRfYW1vdW50LCBYODZSZWdpc3RlcnM6OmVjeCk7CiAgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgbV9hc3NlbWJsZXIuc2FycV9DTHIoZGVzdCk7CiAgICAgfQpA
QCAtMjU4LDEyICsyNTgsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBsb2FkUHRyKHZvaWQqIGFk
ZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIGlmIChkZXN0ID09IFg4Njo6
ZWF4KQorICAgICAgICBpZiAoZGVzdCA9PSBYODZSZWdpc3RlcnM6OmVheCkKICAgICAgICAgICAg
IG1fYXNzZW1ibGVyLm1vdnFfbUVBWChhZGRyZXNzKTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICBtb3ZlKFg4Njo6ZWF4LCBkZXN0KTsKKyAgICAgICAgICAgIG1vdmUoWDg2UmVnaXN0ZXJz
OjplYXgsIGRlc3QpOwogICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9tRUFYKGFkZHJlc3Mp
OwotICAgICAgICAgICAgc3dhcChYODY6OmVheCwgZGVzdCk7CisgICAgICAgICAgICBzd2FwKFg4
NlJlZ2lzdGVyczo6ZWF4LCBkZXN0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMjg1LDEyICsy
ODUsMTIgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc3RvcmVQdHIoUmVnaXN0ZXJJRCBzcmMs
IHZvaWQqIGFkZHJlc3MpCiAgICAgewotICAgICAgICBpZiAoc3JjID09IFg4Njo6ZWF4KQorICAg
ICAgICBpZiAoc3JjID09IFg4NlJlZ2lzdGVyczo6ZWF4KQogICAgICAgICAgICAgbV9hc3NlbWJs
ZXIubW92cV9FQVhtKGFkZHJlc3MpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHN3YXAo
WDg2OjplYXgsIHNyYyk7CisgICAgICAgICAgICBzd2FwKFg4NlJlZ2lzdGVyczo6ZWF4LCBzcmMp
OwogICAgICAgICAgICAgbV9hc3NlbWJsZXIubW92cV9FQVhtKGFkZHJlc3MpOwotICAgICAgICAg
ICAgc3dhcChYODY6OmVheCwgc3JjKTsKKyAgICAgICAgICAgIHN3YXAoWDg2UmVnaXN0ZXJzOjpl
YXgsIHNyYyk7CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZB
c3NlbWJsZXIuaAppbmRleCBiNWI4ODA4Li5iZjBhMTg2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL1g4NkFzc2VtYmxlci5oCkBAIC00Myw3ICs0Myw3IEBAIGlubGluZSBib29sIENBTl9TSUdO
X0VYVEVORF8zMl82NChpbnRwdHJfdCB2YWx1ZSkgeyByZXR1cm4gdmFsdWUgPT0gKGludHB0cl90
KShpCiBpbmxpbmUgYm9vbCBDQU5fU0lHTl9FWFRFTkRfVTMyXzY0KGludHB0cl90IHZhbHVlKSB7
IHJldHVybiB2YWx1ZSA9PSAoaW50cHRyX3QpKHVpbnQzMl90KXZhbHVlOyB9CiAjZW5kaWYKIAot
bmFtZXNwYWNlIFg4NiB7CituYW1lc3BhY2UgWDg2UmVnaXN0ZXJzIHsKICAgICB0eXBlZGVmIGVu
dW0gewogICAgICAgICBlYXgsCiAgICAgICAgIGVjeCwKQEAgLTgwLDggKzgwLDggQEAgbmFtZXNw
YWNlIFg4NiB7CiAKIGNsYXNzIFg4NkFzc2VtYmxlciB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBY
ODY6OlJlZ2lzdGVySUQgUmVnaXN0ZXJJRDsKLSAgICB0eXBlZGVmIFg4Njo6WE1NUmVnaXN0ZXJJ
RCBYTU1SZWdpc3RlcklEOworICAgIHR5cGVkZWYgWDg2UmVnaXN0ZXJzOjpSZWdpc3RlcklEIFJl
Z2lzdGVySUQ7CisgICAgdHlwZWRlZiBYODZSZWdpc3RlcnM6OlhNTVJlZ2lzdGVySUQgWE1NUmVn
aXN0ZXJJRDsKICAgICB0eXBlZGVmIFhNTVJlZ2lzdGVySUQgRlBSZWdpc3RlcklEOwogCiAgICAg
dHlwZWRlZiBlbnVtIHsKQEAgLTExMTgsNyArMTExOCw3IEBAIHB1YmxpYzoKICNlbHNlCiAgICAg
dm9pZCBtb3ZsX3JtKFJlZ2lzdGVySUQgc3JjLCB2b2lkKiBhZGRyKQogICAgIHsKLSAgICAgICAg
aWYgKHNyYyA9PSBYODY6OmVheCkKKyAgICAgICAgaWYgKHNyYyA9PSBYODZSZWdpc3RlcnM6OmVh
eCkKICAgICAgICAgICAgIG1vdmxfRUFYbShhZGRyKTsKICAgICAgICAgZWxzZSAKICAgICAgICAg
ICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9NT1ZfRXZHdiwgc3JjLCBhZGRyKTsKQEAgLTEx
MjYsNyArMTEyNiw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIG1vdmxfbXIodm9pZCogYWRk
ciwgUmVnaXN0ZXJJRCBkc3QpCiAgICAgewotICAgICAgICBpZiAoZHN0ID09IFg4Njo6ZWF4KQor
ICAgICAgICBpZiAoZHN0ID09IFg4NlJlZ2lzdGVyczo6ZWF4KQogICAgICAgICAgICAgbW92bF9t
RUFYKGFkZHIpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2Zvcm1hdHRlci5vbmVCeXRl
T3AoT1BfTU9WX0d2RXYsIGRzdCwgYWRkcik7CkBAIC0xODkyLDIzICsxODkyLDIzIEBAIHByaXZh
dGU6CiAKICAgICAgICAgLy8gSW50ZXJuYWxzOyBNb2RSbSBhbmQgUkVYIGZvcm1hdHRlcnMuCiAK
LSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgbm9CYXNlID0gWDg2OjplYnA7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGhhc1NpYiA9IFg4Njo6ZXNwOwotICAgICAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBub0luZGV4ID0gWDg2Ojplc3A7CisgICAgICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIG5vQmFzZSA9IFg4NlJlZ2lzdGVyczo6ZWJwOworICAgICAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBoYXNTaWIgPSBYODZSZWdpc3RlcnM6OmVzcDsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgbm9JbmRleCA9IFg4NlJlZ2lzdGVyczo6ZXNwOwog
I2lmIFBMQVRGT1JNKFg4Nl82NCkKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgbm9C
YXNlMiA9IFg4Njo6cjEzOwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBoYXNTaWIy
ID0gWDg2OjpyMTI7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIG5vQmFzZTIgPSBY
ODZSZWdpc3RlcnM6OnIxMzsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaGFzU2li
MiA9IFg4NlJlZ2lzdGVyczo6cjEyOwogCiAgICAgICAgIC8vIFJlZ2lzdGVycyByOCAmIGFib3Zl
IHJlcXVpcmUgYSBSRVggcHJlZml4ZS4KICAgICAgICAgaW5saW5lIGJvb2wgcmVnUmVxdWlyZXNS
ZXgoaW50IHJlZykKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIChyZWcgPj0gWDg2Ojpy
OCk7CisgICAgICAgICAgICByZXR1cm4gKHJlZyA+PSBYODZSZWdpc3RlcnM6OnI4KTsKICAgICAg
ICAgfQogCiAgICAgICAgIC8vIEJ5dGUgb3BlcmFuZCByZWdpc3RlciBzcGwgJiBhYm92ZSByZXF1
aXJlIGEgUkVYIHByZWZpeCAodG8gcHJldmVudCB0aGUgJ0gnIHJlZ2lzdGVycyBiZSBhY2Nlc3Nl
ZCkuCiAgICAgICAgIGlubGluZSBib29sIGJ5dGVSZWdSZXF1aXJlc1JleChpbnQgcmVnKQogICAg
ICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gKHJlZyA+PSBYODY6OmVzcCk7CisgICAgICAgICAg
ICByZXR1cm4gKHJlZyA+PSBYODZSZWdpc3RlcnM6OmVzcCk7CiAgICAgICAgIH0KIAogICAgICAg
ICAvLyBGb3JtYXQgYSBSRVggcHJlZml4IGJ5dGUuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmgKaW5kZXggNWM2NjA3Yy4uODUx
NWQyNCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaApAQCAtMTkxLDgyICsxOTEsODIgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIC8vIE1hY3JvQXNzZW1ibGVyIHdpbGwgbmVlZCB0byBwbGFudCByZWdpc3RlciBzd2Fw
cyBpZiBpdCBpcyBub3QgLQogICAgICAgICAvLyBob3dldmVyIHRoZSBjb2RlIHdpbGwgc3RpbGwg
ZnVuY3Rpb24gY29ycmVjdGx5LgogI2lmIFBMQVRGT1JNKFg4Nl82NCkKLSAgICAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuVmFsdWVSZWdpc3RlciA9IFg4Njo6ZWF4OwotICAgICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IFg4Njo6ZWF4
OwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIg
PSBYODY6OmVkaTsKLQotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCB0aW1lb3V0Q2hl
Y2tSZWdpc3RlciA9IFg4Njo6cjEyOwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBj
YWxsRnJhbWVSZWdpc3RlciA9IFg4Njo6cjEzOwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgPSBYODY6OnIxNDsKLSAgICAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgdGFnTWFza1JlZ2lzdGVyID0gWDg2OjpyMTU7Ci0KLSAgICAgICAgc3Rh
dGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDAgPSBYODY6OmVheDsKLSAgICAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgcmVnVDEgPSBYODY6OmVkeDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgcmVnVDIgPSBYODY6OmVjeDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgcmVnVDMgPSBYODY6OmVieDsKLQotICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklE
IGZwUmVnVDAgPSBYODY6OnhtbTA7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQg
ZnBSZWdUMSA9IFg4Njo6eG1tMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBm
cFJlZ1QyID0gWDg2Ojp4bW0yOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1
cm5WYWx1ZVJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7CisgICAgICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIGNhY2hlZFJlc3VsdFJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7Cisg
ICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGZpcnN0QXJndW1lbnRSZWdpc3RlciA9IFg4
NlJlZ2lzdGVyczo6ZWRpOworCisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHRpbWVv
dXRDaGVja1JlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTI7CisgICAgICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIGNhbGxGcmFtZVJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTM7CisgICAg
ICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHRhZ1R5cGVOdW1iZXJSZWdpc3RlciA9IFg4NlJl
Z2lzdGVyczo6cjE0OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCB0YWdNYXNrUmVn
aXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxNTsKKworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCByZWdUMCA9IFg4NlJlZ2lzdGVyczo6ZWF4OworICAgICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OworICAgICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCByZWdUMiA9IFg4NlJlZ2lzdGVyczo6ZWN4OworICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCByZWdUMyA9IFg4NlJlZ2lzdGVyczo6ZWJ4OworCisgICAgICAgIHN0YXRp
YyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMCA9IFg4NlJlZ2lzdGVyczo6eG1tMDsKKyAgICAg
ICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QxID0gWDg2UmVnaXN0ZXJzOjp4bW0x
OworICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDIgPSBYODZSZWdpc3Rl
cnM6OnhtbTI7CiAjZWxpZiBQTEFURk9STShYODYpCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdp
c3RlcklEIHJldHVyblZhbHVlUmVnaXN0ZXIgPSBYODY6OmVheDsKLSAgICAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgY2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSBYODY6OmVheDsKKyAgICAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuVmFsdWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVy
czo6ZWF4OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdp
c3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogICAgICAgICAvLyBPbiB4ODYgd2UgYWx3YXlzIHVz
ZSBmYXN0Y2FsbCBjb252ZW50aW9ucyA9IGJ1dCBvbgogICAgICAgICAvLyBPUyBYIGlmIG1pZ2h0
IG1ha2UgbW9yZSBzZW5zZSB0byBqdXN0IHVzZSByZWdwYXJtLgotICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIgPSBYODY6OmVjeDsKKyAgICAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZmlyc3RBcmd1bWVudFJlZ2lzdGVyID0gWDg2UmVnaXN0
ZXJzOjplY3g7CiAKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdGltZW91dENoZWNr
UmVnaXN0ZXIgPSBYODY6OmVzaTsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2Fs
bEZyYW1lUmVnaXN0ZXIgPSBYODY6OmVkaTsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgdGltZW91dENoZWNrUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVzaTsKKyAgICAgICAgc3Rh
dGljIGNvbnN0IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVk
aTsKIAotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMCA9IFg4Njo6ZWF4Owot
ICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMSA9IFg4Njo6ZWR4OwotICAgICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMiA9IFg4Njo6ZWN4OwotICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMyA9IFg4Njo6ZWJ4OworICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCByZWdUMCA9IFg4NlJlZ2lzdGVyczo6ZWF4OworICAgICAgICBzdGF0aWMg
Y29uc3QgUmVnaXN0ZXJJRCByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OworICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMiA9IFg4NlJlZ2lzdGVyczo6ZWN4OworICAgICAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMyA9IFg4NlJlZ2lzdGVyczo6ZWJ4OwogCi0gICAg
ICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMCA9IFg4Njo6eG1tMDsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QxID0gWDg2Ojp4bW0xOwotICAgICAg
ICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDIgPSBYODY6OnhtbTI7CisgICAgICAg
IHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMCA9IFg4NlJlZ2lzdGVyczo6eG1tMDsK
KyAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QxID0gWDg2UmVnaXN0ZXJz
Ojp4bW0xOworICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDIgPSBYODZS
ZWdpc3RlcnM6OnhtbTI7CiAjZWxpZiBQTEFURk9STV9BUk1fQVJDSCg3KQotICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5WYWx1ZVJlZ2lzdGVyID0gQVJNOjpyMDsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSBBUk06OnIw
OwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIg
PSBBUk06OnIwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5WYWx1ZVJl
Z2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgY2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOworICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6
OnIwOwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0gQVJNOjpyMDsK
LSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDEgPSBBUk06OnIxOwotICAgICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMiA9IEFSTTo6cjI7Ci0gICAgICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJlZ1QzID0gQVJNOjpyNDsKKyAgICAgICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgcmVnVDAgPSBBUk1SZWdpc3RlcnM6OnIwOworICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCByZWdUMSA9IEFSTVJlZ2lzdGVyczo6cjE7CisgICAgICAgIHN0YXRpYyBj
b25zdCBSZWdpc3RlcklEIHJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpyMjsKKyAgICAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgcmVnVDMgPSBBUk1SZWdpc3RlcnM6OnI0OwogCi0gICAgICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNOjpyNTsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdGltZW91dENoZWNrUmVnaXN0ZXIgPSBBUk06OnI2
OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlciA9IEFS
TVJlZ2lzdGVyczo6cjU7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHRpbWVvdXRD
aGVja1JlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNjsKIAotICAgICAgICBzdGF0aWMgY29uc3Qg
RlBSZWdpc3RlcklEIGZwUmVnVDAgPSBBUk06OmQwOwotICAgICAgICBzdGF0aWMgY29uc3QgRlBS
ZWdpc3RlcklEIGZwUmVnVDEgPSBBUk06OmQxOwotICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdp
c3RlcklEIGZwUmVnVDIgPSBBUk06OmQyOworICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3Rl
cklEIGZwUmVnVDAgPSBBUk1SZWdpc3RlcnM6OmQwOworICAgICAgICBzdGF0aWMgY29uc3QgRlBS
ZWdpc3RlcklEIGZwUmVnVDEgPSBBUk1SZWdpc3RlcnM6OmQxOworICAgICAgICBzdGF0aWMgY29u
c3QgRlBSZWdpc3RlcklEIGZwUmVnVDIgPSBBUk1SZWdpc3RlcnM6OmQyOwogI2VsaWYgUExBVEZP
Uk0oQVJNKQotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5WYWx1ZVJlZ2lz
dGVyID0gQVJNOjpyMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FjaGVkUmVz
dWx0UmVnaXN0ZXIgPSBBUk06OnIwOwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBm
aXJzdEFyZ3VtZW50UmVnaXN0ZXIgPSBBUk06OnIwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCByZXR1cm5WYWx1ZVJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyMDsKKyAgICAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSBBUk1SZWdpc3Rl
cnM6OnIwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVn
aXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIHRpbWVvdXRDaGVja1JlZ2lzdGVyID0gQVJNOjpyNTsKLSAgICAgICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk06OnI0OwotICAgICAgICBzdGF0aWMg
Y29uc3QgUmVnaXN0ZXJJRCBjdGlSZXR1cm5SZWdpc3RlciA9IEFSTTo6cjY7CisgICAgICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIHRpbWVvdXRDaGVja1JlZ2lzdGVyID0gQVJNUmVnaXN0ZXJz
OjpyNTsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0ZXIg
PSBBUk1SZWdpc3RlcnM6OnI0OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjdGlS
ZXR1cm5SZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjY7CiAKLSAgICAgICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgcmVnVDAgPSBBUk06OnIwOwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCByZWdUMSA9IEFSTTo6cjE7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJl
Z1QyID0gQVJNOjpyMjsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDAgPSBB
Uk1SZWdpc3RlcnM6OnIwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMSA9
IEFSTVJlZ2lzdGVyczo6cjE7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1Qy
ID0gQVJNUmVnaXN0ZXJzOjpyMjsKICAgICAgICAgLy8gQ2FsbGVlIHByZXNlcnZlZAotICAgICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMyA9IEFSTTo6cjc7CisgICAgICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJlZ1QzID0gQVJNUmVnaXN0ZXJzOjpyNzsKIAotICAgICAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdTMCA9IEFSTTo6UzA7CisgICAgICAgIHN0YXRpYyBj
b25zdCBSZWdpc3RlcklEIHJlZ1MwID0gQVJNUmVnaXN0ZXJzOjpTMDsKICAgICAgICAgLy8gQ2Fs
bGVlIHByZXNlcnZlZAotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdTMSA9IEFS
TTo6UzE7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1MxID0gQVJNUmVnaXN0
ZXJzOjpTMTsKIAotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdTdGFja1B0ciA9
IEFSTTo6c3A7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ0xpbmsgPSBBUk06
OmxyOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdTdGFja1B0ciA9IEFSTVJl
Z2lzdGVyczo6c3A7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ0xpbmsgPSBB
Uk1SZWdpc3RlcnM6OmxyOwogCi0gICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBS
ZWdUMCA9IEFSTTo6ZDA7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdU
MSA9IEFSTTo6ZDE7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9
IEFSTTo6ZDI7CisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMCA9IEFS
TVJlZ2lzdGVyczo6ZDA7CisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdU
MSA9IEFSTVJlZ2lzdGVyczo6ZDE7CisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQg
ZnBSZWdUMiA9IEFSTVJlZ2lzdGVyczo6ZDI7CiAjZWxzZQogICAgICNlcnJvciAiSklUIG5vdCBz
dXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybS4iCiAjZW5kaWYKZGlmZiAtLWdpdCBhL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRBcml0aG1ldGljLmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRBcml0
aG1ldGljLmNwcAppbmRleCBlYTM0M2Q4Li4zYmUxM2NiIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUQXJpdGhtZXRpYy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVEFy
aXRobWV0aWMuY3BwCkBAIC0xMDUzLDMzICsxMDUzLDMzIEBAIHZvaWQgSklUOjplbWl0X29wX21v
ZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIHVuc2lnbmVkIG9wMiA9IGN1
cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmQ7CiAKICAgICBpZiAoaXNPcGVyYW5kQ29uc3Rh
bnRJbW1lZGlhdGVJbnQob3AyKSAmJiBnZXRDb25zdGFudE9wZXJhbmQob3AyKS5hc0ludDMyKCkg
IT0gMCkgewotICAgICAgICBlbWl0TG9hZChvcDEsIFg4Njo6ZWR4LCBYODY6OmVheCk7Ci0gICAg
ICAgIG1vdmUoSW1tMzIoZ2V0Q29uc3RhbnRPcGVyYW5kKG9wMikuYXNJbnQzMigpKSwgWDg2Ojpl
Y3gpOwotICAgICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgWDg2OjplZHgsIElt
bTMyKEpTVmFsdWU6OkludDMyVGFnKSkpOworICAgICAgICBlbWl0TG9hZChvcDEsIFg4NlJlZ2lz
dGVyczo6ZWR4LCBYODZSZWdpc3RlcnM6OmVheCk7CisgICAgICAgIG1vdmUoSW1tMzIoZ2V0Q29u
c3RhbnRPcGVyYW5kKG9wMikuYXNJbnQzMigpKSwgWDg2UmVnaXN0ZXJzOjplY3gpOworICAgICAg
ICBhZGRTbG93Q2FzZShicmFuY2gzMihOb3RFcXVhbCwgWDg2UmVnaXN0ZXJzOjplZHgsIEltbTMy
KEpTVmFsdWU6OkludDMyVGFnKSkpOwogICAgICAgICBpZiAoZ2V0Q29uc3RhbnRPcGVyYW5kKG9w
MikuYXNJbnQzMigpID09IC0xKQotICAgICAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoRXF1
YWwsIFg4Njo6ZWF4LCBJbW0zMigweDgwMDAwMDAwKSkpOyAvLyAtMjE0NzQ4MzY0OCAvIC0xID0+
IEVYQ19BUklUSE1FVElDCisgICAgICAgICAgICBhZGRTbG93Q2FzZShicmFuY2gzMihFcXVhbCwg
WDg2UmVnaXN0ZXJzOjplYXgsIEltbTMyKDB4ODAwMDAwMDApKSk7IC8vIC0yMTQ3NDgzNjQ4IC8g
LTEgPT4gRVhDX0FSSVRITUVUSUMKICAgICB9IGVsc2UgewotICAgICAgICBlbWl0TG9hZDIob3Ax
LCBYODY6OmVkeCwgWDg2OjplYXgsIG9wMiwgWDg2OjplYngsIFg4Njo6ZWN4KTsKLSAgICAgICAg
YWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIFg4Njo6ZWR4LCBJbW0zMihKU1ZhbHVlOjpJ
bnQzMlRhZykpKTsKLSAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIFg4Njo6
ZWJ4LCBJbW0zMihKU1ZhbHVlOjpJbnQzMlRhZykpKTsKKyAgICAgICAgZW1pdExvYWQyKG9wMSwg
WDg2UmVnaXN0ZXJzOjplZHgsIFg4NlJlZ2lzdGVyczo6ZWF4LCBvcDIsIFg4NlJlZ2lzdGVyczo6
ZWJ4LCBYODZSZWdpc3RlcnM6OmVjeCk7CisgICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5v
dEVxdWFsLCBYODZSZWdpc3RlcnM6OmVkeCwgSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKSk7Cisg
ICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKE5vdEVxdWFsLCBYODZSZWdpc3RlcnM6OmVieCwg
SW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKSk7CiAKLSAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNo
MzIoRXF1YWwsIFg4Njo6ZWF4LCBJbW0zMigweDgwMDAwMDAwKSkpOyAvLyAtMjE0NzQ4MzY0OCAv
IC0xID0+IEVYQ19BUklUSE1FVElDCi0gICAgICAgIGFkZFNsb3dDYXNlKGJyYW5jaDMyKEVxdWFs
LCBYODY6OmVjeCwgSW1tMzIoMCkpKTsgLy8gZGl2aWRlIGJ5IDAKKyAgICAgICAgYWRkU2xvd0Nh
c2UoYnJhbmNoMzIoRXF1YWwsIFg4NlJlZ2lzdGVyczo6ZWF4LCBJbW0zMigweDgwMDAwMDAwKSkp
OyAvLyAtMjE0NzQ4MzY0OCAvIC0xID0+IEVYQ19BUklUSE1FVElDCisgICAgICAgIGFkZFNsb3dD
YXNlKGJyYW5jaDMyKEVxdWFsLCBYODZSZWdpc3RlcnM6OmVjeCwgSW1tMzIoMCkpKTsgLy8gZGl2
aWRlIGJ5IDAKICAgICB9CiAKLSAgICBtb3ZlKFg4Njo6ZWF4LCBYODY6OmVieCk7IC8vIFNhdmUg
ZGl2aWRlbmQgcGF5bG9hZCwgaW4gY2FzZSBvZiAwLgorICAgIG1vdmUoWDg2UmVnaXN0ZXJzOjpl
YXgsIFg4NlJlZ2lzdGVyczo6ZWJ4KTsgLy8gU2F2ZSBkaXZpZGVuZCBwYXlsb2FkLCBpbiBjYXNl
IG9mIDAuCiAgICAgbV9hc3NlbWJsZXIuY2RxKCk7Ci0gICAgbV9hc3NlbWJsZXIuaWRpdmxfcihY
ODY6OmVjeCk7CisgICAgbV9hc3NlbWJsZXIuaWRpdmxfcihYODZSZWdpc3RlcnM6OmVjeCk7CiAg
ICAgCiAgICAgLy8gSWYgdGhlIHJlbWFpbmRlciBpcyB6ZXJvIGFuZCB0aGUgZGl2aWRlbmQgaXMg
bmVnYXRpdmUsIHRoZSByZXN1bHQgaXMgLTAuCi0gICAgSnVtcCBzdG9yZVJlc3VsdDEgPSBicmFu
Y2hUZXN0MzIoTm9uWmVybywgWDg2OjplZHgpOwotICAgIEp1bXAgc3RvcmVSZXN1bHQyID0gYnJh
bmNoVGVzdDMyKFplcm8sIFg4Njo6ZWJ4LCBJbW0zMigweDgwMDAwMDAwKSk7IC8vIG5vdCBuZWdh
dGl2ZQorICAgIEp1bXAgc3RvcmVSZXN1bHQxID0gYnJhbmNoVGVzdDMyKE5vblplcm8sIFg4NlJl
Z2lzdGVyczo6ZWR4KTsKKyAgICBKdW1wIHN0b3JlUmVzdWx0MiA9IGJyYW5jaFRlc3QzMihaZXJv
LCBYODZSZWdpc3RlcnM6OmVieCwgSW1tMzIoMHg4MDAwMDAwMCkpOyAvLyBub3QgbmVnYXRpdmUK
ICAgICBlbWl0U3RvcmUoZHN0LCBqc051bWJlcihtX2dsb2JhbERhdGEsIC0wLjApKTsKICAgICBK
dW1wIGVuZCA9IGp1bXAoKTsKIAogICAgIHN0b3JlUmVzdWx0MS5saW5rKHRoaXMpOwogICAgIHN0
b3JlUmVzdWx0Mi5saW5rKHRoaXMpOwotICAgIGVtaXRTdG9yZUludDMyKGRzdCwgWDg2OjplZHgs
IChvcDEgPT0gZHN0IHx8IG9wMiA9PSBkc3QpKTsKKyAgICBlbWl0U3RvcmVJbnQzMihkc3QsIFg4
NlJlZ2lzdGVyczo6ZWR4LCAob3AxID09IGRzdCB8fCBvcDIgPT0gZHN0KSk7CiAgICAgZW5kLmxp
bmsodGhpcyk7CiB9CiAKQEAgLTE4NDcsMjEgKzE4NDcsMjEgQEAgdm9pZCBKSVQ6OmVtaXRfb3Bf
bW9kKEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgdW5zaWduZWQgb3AxID0g
Y3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKICAgICB1bnNpZ25lZCBvcDIgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kOwogCi0gICAgZW1pdEdldFZpcnR1YWxSZWdpc3Rl
cnMob3AxLCBYODY6OmVheCwgb3AyLCBYODY6OmVjeCk7Ci0gICAgZW1pdEp1bXBTbG93Q2FzZUlm
Tm90SW1tZWRpYXRlSW50ZWdlcihYODY6OmVheCk7Ci0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90
SW1tZWRpYXRlSW50ZWdlcihYODY6OmVjeCk7CisgICAgZW1pdEdldFZpcnR1YWxSZWdpc3RlcnMo
b3AxLCBYODZSZWdpc3RlcnM6OmVheCwgb3AyLCBYODZSZWdpc3RlcnM6OmVjeCk7CisgICAgZW1p
dEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihYODZSZWdpc3RlcnM6OmVheCk7Cisg
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SW1tZWRpYXRlSW50ZWdlcihYODZSZWdpc3RlcnM6OmVj
eCk7CiAjaWYgVVNFKEpTVkFMVUU2NCkKLSAgICBhZGRTbG93Q2FzZShicmFuY2hQdHIoRXF1YWws
IFg4Njo6ZWN4LCBJbW1QdHIoSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKG1fZ2xvYmFsRGF0YSwg
MCkpKSkpOworICAgIGFkZFNsb3dDYXNlKGJyYW5jaFB0cihFcXVhbCwgWDg2UmVnaXN0ZXJzOjpl
Y3gsIEltbVB0cihKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIobV9nbG9iYWxEYXRhLCAwKSkpKSk7
CiAgICAgbV9hc3NlbWJsZXIuY2RxKCk7Ci0gICAgbV9hc3NlbWJsZXIuaWRpdmxfcihYODY6OmVj
eCk7CisgICAgbV9hc3NlbWJsZXIuaWRpdmxfcihYODZSZWdpc3RlcnM6OmVjeCk7CiAjZWxzZQot
ICAgIGVtaXRGYXN0QXJpdGhEZVRhZ0ltbWVkaWF0ZShYODY6OmVheCk7Ci0gICAgYWRkU2xvd0Nh
c2UoZW1pdEZhc3RBcml0aERlVGFnSW1tZWRpYXRlSnVtcElmWmVybyhYODY6OmVjeCkpOworICAg
IGVtaXRGYXN0QXJpdGhEZVRhZ0ltbWVkaWF0ZShYODZSZWdpc3RlcnM6OmVheCk7CisgICAgYWRk
U2xvd0Nhc2UoZW1pdEZhc3RBcml0aERlVGFnSW1tZWRpYXRlSnVtcElmWmVybyhYODZSZWdpc3Rl
cnM6OmVjeCkpOwogICAgIG1fYXNzZW1ibGVyLmNkcSgpOwotICAgIG1fYXNzZW1ibGVyLmlkaXZs
X3IoWDg2OjplY3gpOwotICAgIHNpZ25FeHRlbmQzMlRvUHRyKFg4Njo6ZWR4LCBYODY6OmVkeCk7
CisgICAgbV9hc3NlbWJsZXIuaWRpdmxfcihYODZSZWdpc3RlcnM6OmVjeCk7CisgICAgc2lnbkV4
dGVuZDMyVG9QdHIoWDg2UmVnaXN0ZXJzOjplZHgsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKICNlbmRp
ZgotICAgIGVtaXRGYXN0QXJpdGhSZVRhZ0ltbWVkaWF0ZShYODY6OmVkeCwgWDg2OjplYXgpOwor
ICAgIGVtaXRGYXN0QXJpdGhSZVRhZ0ltbWVkaWF0ZShYODZSZWdpc3RlcnM6OmVkeCwgWDg2UmVn
aXN0ZXJzOjplYXgpOwogICAgIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIocmVzdWx0KTsKIH0KIApA
QCAtMTg3NywxNCArMTg3NywxNCBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfbW9kKEluc3RydWN0
aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5PgogICAgIEp1bXAg
bm90SW1tMSA9IGdldFNsb3dDYXNlKGl0ZXIpOwogICAgIEp1bXAgbm90SW1tMiA9IGdldFNsb3dD
YXNlKGl0ZXIpOwogICAgIGxpbmtTbG93Q2FzZShpdGVyKTsKLSAgICBlbWl0RmFzdEFyaXRoUmVU
YWdJbW1lZGlhdGUoWDg2OjplYXgsIFg4Njo6ZWF4KTsKLSAgICBlbWl0RmFzdEFyaXRoUmVUYWdJ
bW1lZGlhdGUoWDg2OjplY3gsIFg4Njo6ZWN4KTsKKyAgICBlbWl0RmFzdEFyaXRoUmVUYWdJbW1l
ZGlhdGUoWDg2UmVnaXN0ZXJzOjplYXgsIFg4NlJlZ2lzdGVyczo6ZWF4KTsKKyAgICBlbWl0RmFz
dEFyaXRoUmVUYWdJbW1lZGlhdGUoWDg2UmVnaXN0ZXJzOjplY3gsIFg4NlJlZ2lzdGVyczo6ZWN4
KTsKICAgICBub3RJbW0xLmxpbmsodGhpcyk7CiAgICAgbm90SW1tMi5saW5rKHRoaXMpOwogI2Vu
ZGlmCiAgICAgSklUU3R1YkNhbGwgc3R1YkNhbGwodGhpcywgY3RpX29wX21vZCk7Ci0gICAgc3R1
YkNhbGwuYWRkQXJndW1lbnQoWDg2OjplYXgpOwotICAgIHN0dWJDYWxsLmFkZEFyZ3VtZW50KFg4
Njo6ZWN4KTsKKyAgICBzdHViQ2FsbC5hZGRBcmd1bWVudChYODZSZWdpc3RlcnM6OmVheCk7Cisg
ICAgc3R1YkNhbGwuYWRkQXJndW1lbnQoWDg2UmVnaXN0ZXJzOjplY3gpOwogICAgIHN0dWJDYWxs
LmNhbGwocmVzdWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZU1ldGhvZHMuaCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKaW5k
ZXggY2EzNDUwMi4uMjUwNGM0YiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvaml0L0pJVElu
bGluZU1ldGhvZHMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lTWV0aG9kcy5o
CkBAIC0xODMsNyArMTgzLDcgQEAgQUxXQVlTX0lOTElORSB2b2lkIEpJVDo6cmVzdG9yZUFyZ3Vt
ZW50UmVmZXJlbmNlKCkKICAgICBtb3ZlKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBmaXJzdEFyZ3Vt
ZW50UmVnaXN0ZXIpOwogICAgIHBva2UoY2FsbEZyYW1lUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRP
RihzdHJ1Y3QgSklUU3RhY2tGcmFtZSwgY2FsbEZyYW1lKSAvIHNpemVvZiAodm9pZCopKTsKICNp
ZiBQTEFURk9STShBUk0pICYmICFQTEFURk9STV9BUk1fQVJDSCg3KQotICAgIG1vdmUoY3RpUmV0
dXJuUmVnaXN0ZXIsIEFSTTo6bHIpOworICAgIG1vdmUoY3RpUmV0dXJuUmVnaXN0ZXIsIEFSTVJl
Z2lzdGVyczo6bHIpOwogI2VuZGlmCiB9CiBBTFdBWVNfSU5MSU5FIHZvaWQgSklUOjpyZXN0b3Jl
QXJndW1lbnRSZWZlcmVuY2VGb3JUcmFtcG9saW5lKCkKQEAgLTI3NSw4ICsyNzUsOCBAQCBBTFdB
WVNfSU5MSU5FIHZvaWQgSklUOjplbWl0Q291bnQoQWJzdHJhY3RTYW1wbGluZ0NvdW50ZXImIGNv
dW50ZXIsIHVpbnQzMl90IGNvdQogI2lmIFBMQVRGT1JNKFg4Nl82NCkKIEFMV0FZU19JTkxJTkUg
dm9pZCBKSVQ6OnNhbXBsZUluc3RydWN0aW9uKEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbiwgYm9v
bCBpbkhvc3RGdW5jdGlvbikKIHsKLSAgICBtb3ZlKEltbVB0cihtX2ludGVycHJldGVyLT5zYW1w
bGVyKCktPnNhbXBsZVNsb3QoKSksIFg4Njo6ZWN4KTsKLSAgICBzdG9yZVB0cihJbW1QdHIobV9p
bnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUoaW5zdHJ1Y3Rpb24sIGluSG9zdEZ1
bmN0aW9uKSksIFg4Njo6ZWN4KTsKKyAgICBtb3ZlKEltbVB0cihtX2ludGVycHJldGVyLT5zYW1w
bGVyKCktPnNhbXBsZVNsb3QoKSksIFg4NlJlZ2lzdGVyczo6ZWN4KTsKKyAgICBzdG9yZVB0cihJ
bW1QdHIobV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5lbmNvZGVTYW1wbGUoaW5zdHJ1Y3Rpb24s
IGluSG9zdEZ1bmN0aW9uKSksIFg4NlJlZ2lzdGVyczo6ZWN4KTsKIH0KICNlbHNlCiBBTFdBWVNf
SU5MSU5FIHZvaWQgSklUOjpzYW1wbGVJbnN0cnVjdGlvbihJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rp
b24sIGJvb2wgaW5Ib3N0RnVuY3Rpb24pCkBAIC0yOTAsOCArMjkwLDggQEAgQUxXQVlTX0lOTElO
RSB2b2lkIEpJVDo6c2FtcGxlSW5zdHJ1Y3Rpb24oSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCBi
b29sIGluSG9zdEYKICNpZiBQTEFURk9STShYODZfNjQpCiBBTFdBWVNfSU5MSU5FIHZvaWQgSklU
OjpzYW1wbGVDb2RlQmxvY2soQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7Ci0gICAgbW92ZShJbW1Q
dHIobV9pbnRlcnByZXRlci0+c2FtcGxlcigpLT5jb2RlQmxvY2tTbG90KCkpLCBYODY6OmVjeCk7
Ci0gICAgc3RvcmVQdHIoSW1tUHRyKGNvZGVCbG9jayksIFg4Njo6ZWN4KTsKKyAgICBtb3ZlKElt
bVB0cihtX2ludGVycHJldGVyLT5zYW1wbGVyKCktPmNvZGVCbG9ja1Nsb3QoKSksIFg4NlJlZ2lz
dGVyczo6ZWN4KTsKKyAgICBzdG9yZVB0cihJbW1QdHIoY29kZUJsb2NrKSwgWDg2UmVnaXN0ZXJz
OjplY3gpOwogfQogI2Vsc2UKIEFMV0FZU19JTkxJTkUgdm9pZCBKSVQ6OnNhbXBsZUNvZGVCbG9j
ayhDb2RlQmxvY2sqIGNvZGVCbG9jaykKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGNvZGVzLmNwcCBiL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAppbmRleCA1
YTliZTI4Li4yMTI0M2NlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2Rl
cy5jcHAKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0yMzcsMjMg
KzIzNywyMyBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJhbXBvbGluZXMo
UmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJsZQogCiAjaWYgQ09NUElMRVIoTVNWQykg
fHwgUExBVEZPUk0oTElOVVgpCiAgICAgLy8gQXJnTGlzdCBpcyBwYXNzZWQgYnkgcmVmZXJlbmNl
IHNvIGlzIHN0YWNrUG9pbnRlclJlZ2lzdGVyICsgNCAqIHNpemVvZihSZWdpc3RlcikKLSAgICBh
ZGRQdHIoSW1tMzIoT0JKRUNUX09GRlNFVE9GKE5hdGl2ZUNhbGxGcmFtZVN0cnVjdHVyZSwgcmVz
dWx0KSksIHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBYODY6OmVjeCk7CisgICAgYWRkUHRyKEltbTMy
KE9CSkVDVF9PRkZTRVRPRihOYXRpdmVDYWxsRnJhbWVTdHJ1Y3R1cmUsIHJlc3VsdCkpLCBzdGFj
a1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjplY3gpOwogCiAgICAgLy8gUGxhbnQgY2Fs
bGVlCi0gICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0ZXJGaWxlOjpDYWxs
ZWUsIFg4Njo6ZWF4KTsKLSAgICBzdG9yZVB0cihYODY6OmVheCwgQWRkcmVzcyhzdGFja1BvaW50
ZXJSZWdpc3RlciwgT0JKRUNUX09GRlNFVE9GKE5hdGl2ZUNhbGxGcmFtZVN0cnVjdHVyZSwgY2Fs
bGVlKSkpOworICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6
Q2FsbGVlLCBYODZSZWdpc3RlcnM6OmVheCk7CisgICAgc3RvcmVQdHIoWDg2UmVnaXN0ZXJzOjpl
YXgsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRPRihOYXRpdmVD
YWxsRnJhbWVTdHJ1Y3R1cmUsIGNhbGxlZSkpKTsKIAogICAgIC8vIFBsYW50IGNhbGxmcmFtZQot
ICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIFg4Njo6ZWR4KTsKKyAgICBtb3ZlKGNhbGxGcmFt
ZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVkeCk7CiAKLSAgICBjYWxsKEFkZHJlc3MoWDg2Ojpl
YXgsIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBtX2RhdGEpKSk7CisgICAgY2FsbChBZGRy
ZXNzKFg4NlJlZ2lzdGVyczo6ZWF4LCBPQkpFQ1RfT0ZGU0VUT0YoSlNGdW5jdGlvbiwgbV9kYXRh
KSkpOwogCiAgICAgLy8gSlNWYWx1ZSBpcyBhIG5vbi1QT0QgdHlwZSwgc28gZWF4IHBvaW50cyB0
byBpdAotICAgIGVtaXRMb2FkKDAsIHJlZ1QxLCByZWdUMCwgWDg2OjplYXgpOworICAgIGVtaXRM
b2FkKDAsIHJlZ1QxLCByZWdUMCwgWDg2UmVnaXN0ZXJzOjplYXgpOwogI2Vsc2UKLSAgICBlbWl0
R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlZSwgWDg2OjplZHgp
OyAvLyBjYWxsZWUKLSAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBYODY6OmVjeCk7IC8vIGNh
bGxGcmFtZQotICAgIGNhbGwoQWRkcmVzcyhYODY6OmVkeCwgT0JKRUNUX09GRlNFVE9GKEpTRnVu
Y3Rpb24sIG1fZGF0YSkpKTsKKyAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdp
c3RlckZpbGU6OkNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplZHgpOyAvLyBjYWxsZWUKKyAgICBtb3Zl
KGNhbGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVjeCk7IC8vIGNhbGxGcmFtZQorICAg
IGNhbGwoQWRkcmVzcyhYODZSZWdpc3RlcnM6OmVkeCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rp
b24sIG1fZGF0YSkpKTsKICNlbmRpZgogCiAgICAgLy8gV2UndmUgcHV0IGEgZmV3IHRlbXBvcmFy
aWVzIG9uIHRoZSBzdGFjayBpbiBhZGRpdGlvbiB0byB0aGUgYWN0dWFsIGFyZ3VtZW50cwpAQCAt
MTU3NSwzOSArMTU3NSwzOSBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5lVHJh
bXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJsZQogICAgIAogCiAjaWYg
UExBVEZPUk0oWDg2XzY0KQotICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyMzIoUmVnaXN0
ZXJGaWxlOjpBcmd1bWVudENvdW50LCBYODY6OmVjeCk7CisgICAgZW1pdEdldEZyb21DYWxsRnJh
bWVIZWFkZXIzMihSZWdpc3RlckZpbGU6OkFyZ3VtZW50Q291bnQsIFg4NlJlZ2lzdGVyczo6ZWN4
KTsKIAogICAgIC8vIEFsbG9jYXRlIHN0YWNrIHNwYWNlIGZvciBvdXIgYXJnbGlzdAogICAgIHN1
YlB0cihJbW0zMihzaXplb2YoQXJnTGlzdCkpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAg
Q09NUElMRV9BU1NFUlQoKHNpemVvZihBcmdMaXN0KSAmIDB4ZikgPT0gMCwgQXJnTGlzdF9zaG91
bGRfYnlfMTZieXRlX2FsaWduZWQpOwogICAgIAogICAgIC8vIFNldCB1cCBhcmd1bWVudHMKLSAg
ICBzdWJQdHIoSW1tMzIoMSksIFg4Njo6ZWN4KTsgLy8gRG9uJ3QgaW5jbHVkZSAndGhpcycgaW4g
YXJnY291bnQKKyAgICBzdWJQdHIoSW1tMzIoMSksIFg4NlJlZ2lzdGVyczo6ZWN4KTsgLy8gRG9u
J3QgaW5jbHVkZSAndGhpcycgaW4gYXJnY291bnQKIAogICAgIC8vIFB1c2ggYXJnY291bnQKLSAg
ICBzdG9yZVB0cihYODY6OmVjeCwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgT0JKRUNU
X09GRlNFVE9GKEFyZ0xpc3QsIG1fYXJnQ291bnQpKSk7CisgICAgc3RvcmVQdHIoWDg2UmVnaXN0
ZXJzOjplY3gsIEFkZHJlc3Moc3RhY2tQb2ludGVyUmVnaXN0ZXIsIE9CSkVDVF9PRkZTRVRPRihB
cmdMaXN0LCBtX2FyZ0NvdW50KSkpOwogCiAgICAgLy8gQ2FsY3VsYXRlIHRoZSBzdGFydCBvZiB0
aGUgY2FsbGZyYW1lIGhlYWRlciwgYW5kIHN0b3JlIGluIGVkeAotICAgIGFkZFB0cihJbW0zMigt
UmVnaXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplICogKGludDMyX3Qpc2l6ZW9mKFJlZ2lz
dGVyKSksIGNhbGxGcmFtZVJlZ2lzdGVyLCBYODY6OmVkeCk7CisgICAgYWRkUHRyKEltbTMyKC1S
ZWdpc3RlckZpbGU6OkNhbGxGcmFtZUhlYWRlclNpemUgKiAoaW50MzJfdClzaXplb2YoUmVnaXN0
ZXIpKSwgY2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKICAgICAKICAgICAv
LyBDYWxjdWxhdGUgc3RhcnQgb2YgYXJndW1lbnRzIGFzIGNhbGxmcmFtZSBoZWFkZXIgLSBzaXpl
b2YoUmVnaXN0ZXIpICogYXJnY291bnQgKGVjeCkKLSAgICBtdWwzMihJbW0zMihzaXplb2YoUmVn
aXN0ZXIpKSwgWDg2OjplY3gsIFg4Njo6ZWN4KTsKLSAgICBzdWJQdHIoWDg2OjplY3gsIFg4Njo6
ZWR4KTsKKyAgICBtdWwzMihJbW0zMihzaXplb2YoUmVnaXN0ZXIpKSwgWDg2UmVnaXN0ZXJzOjpl
Y3gsIFg4NlJlZ2lzdGVyczo6ZWN4KTsKKyAgICBzdWJQdHIoWDg2UmVnaXN0ZXJzOjplY3gsIFg4
NlJlZ2lzdGVyczo6ZWR4KTsKIAogICAgIC8vIHB1c2ggcG9pbnRlciB0byBhcmd1bWVudHMKLSAg
ICBzdG9yZVB0cihYODY6OmVkeCwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgT0JKRUNU
X09GRlNFVE9GKEFyZ0xpc3QsIG1fYXJncykpKTsKKyAgICBzdG9yZVB0cihYODZSZWdpc3RlcnM6
OmVkeCwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgT0JKRUNUX09GRlNFVE9GKEFyZ0xp
c3QsIG1fYXJncykpKTsKICAgICAKICAgICAvLyBBcmdMaXN0IGlzIHBhc3NlZCBieSByZWZlcmVu
Y2Ugc28gaXMgc3RhY2tQb2ludGVyUmVnaXN0ZXIKLSAgICBtb3ZlKHN0YWNrUG9pbnRlclJlZ2lz
dGVyLCBYODY6OmVjeCk7CisgICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0
ZXJzOjplY3gpOwogICAgIAogICAgIC8vIGVkeCBjdXJyZW50bHkgcG9pbnRzIHRvIHRoZSBmaXJz
dCBhcmd1bWVudCwgZWR4LXNpemVvZihSZWdpc3RlcikgcG9pbnRzIHRvICd0aGlzJwotICAgIGxv
YWRQdHIoQWRkcmVzcyhYODY6OmVkeCwgLShpbnQzMl90KXNpemVvZihSZWdpc3RlcikpLCBYODY6
OmVkeCk7CisgICAgbG9hZFB0cihBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWR4LCAtKGludDMyX3Qp
c2l6ZW9mKFJlZ2lzdGVyKSksIFg4NlJlZ2lzdGVyczo6ZWR4KTsKICAgICAKLSAgICBlbWl0R2V0
RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdpc3RlckZpbGU6OkNhbGxlZSwgWDg2Ojplc2kpOwor
ICAgIGVtaXRHZXRGcm9tQ2FsbEZyYW1lSGVhZGVyUHRyKFJlZ2lzdGVyRmlsZTo6Q2FsbGVlLCBY
ODZSZWdpc3RlcnM6OmVzaSk7CiAKLSAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBYODY6OmVk
aSk7IAorICAgIG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWRpKTsgCiAK
LSAgICBjYWxsKEFkZHJlc3MoWDg2Ojplc2ksIE9CSkVDVF9PRkZTRVRPRihKU0Z1bmN0aW9uLCBt
X2RhdGEpKSk7CisgICAgY2FsbChBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNpLCBPQkpFQ1RfT0ZG
U0VUT0YoSlNGdW5jdGlvbiwgbV9kYXRhKSkpOwogICAgIAogICAgIGFkZFB0cihJbW0zMihzaXpl
b2YoQXJnTGlzdCkpLCBzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAjZWxpZiBQTEFURk9STShYODYp
CkBAIC0xNjc2LDI2ICsxNjc2LDI2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZUNUSU1hY2hp
bmVUcmFtcG9saW5lcyhSZWZQdHI8RXhlY3V0YWJsZVBvb2w+KiBleGVjdXRhYmxlCiAKICNpZiBD
T01QSUxFUihNU1ZDKSB8fCBQTEFURk9STShMSU5VWCkKICAgICAvLyBBcmdMaXN0IGlzIHBhc3Nl
ZCBieSByZWZlcmVuY2Ugc28gaXMgc3RhY2tQb2ludGVyUmVnaXN0ZXIgKyA0ICogc2l6ZW9mKFJl
Z2lzdGVyKQotICAgIGFkZFB0cihJbW0zMihPQkpFQ1RfT0ZGU0VUT0YoTmF0aXZlQ2FsbEZyYW1l
U3RydWN0dXJlLCByZXN1bHQpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIsIFg4Njo6ZWN4KTsKKyAg
ICBhZGRQdHIoSW1tMzIoT0JKRUNUX09GRlNFVE9GKE5hdGl2ZUNhbGxGcmFtZVN0cnVjdHVyZSwg
cmVzdWx0KSksIHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVjeCk7CiAKICAg
ICAvLyBQbGFudCBjYWxsZWUKLSAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRlclB0cihSZWdp
c3RlckZpbGU6OkNhbGxlZSwgWDg2OjplYXgpOwotICAgIHN0b3JlUHRyKFg4Njo6ZWF4LCBBZGRy
ZXNzKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBPQkpFQ1RfT0ZGU0VUT0YoTmF0aXZlQ2FsbEZyYW1l
U3RydWN0dXJlLCBjYWxsZWUpKSk7CisgICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIo
UmVnaXN0ZXJGaWxlOjpDYWxsZWUsIFg4NlJlZ2lzdGVyczo6ZWF4KTsKKyAgICBzdG9yZVB0cihY
ODZSZWdpc3RlcnM6OmVheCwgQWRkcmVzcyhzdGFja1BvaW50ZXJSZWdpc3RlciwgT0JKRUNUX09G
RlNFVE9GKE5hdGl2ZUNhbGxGcmFtZVN0cnVjdHVyZSwgY2FsbGVlKSkpOwogCiAgICAgLy8gUGxh
bnQgY2FsbGZyYW1lCi0gICAgbW92ZShjYWxsRnJhbWVSZWdpc3RlciwgWDg2OjplZHgpOworICAg
IG1vdmUoY2FsbEZyYW1lUmVnaXN0ZXIsIFg4NlJlZ2lzdGVyczo6ZWR4KTsKIAotICAgIGNhbGwo
QWRkcmVzcyhYODY6OmVheCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1fZGF0YSkpKTsK
KyAgICBjYWxsKEFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYXgsIE9CSkVDVF9PRkZTRVRPRihKU0Z1
bmN0aW9uLCBtX2RhdGEpKSk7CiAKICAgICAvLyBKU1ZhbHVlIGlzIGEgbm9uLVBPRCB0eXBlCi0g
ICAgbG9hZFB0cihBZGRyZXNzKFg4Njo6ZWF4KSwgWDg2OjplYXgpOworICAgIGxvYWRQdHIoQWRk
cmVzcyhYODZSZWdpc3RlcnM6OmVheCksIFg4NlJlZ2lzdGVyczo6ZWF4KTsKICNlbHNlCiAgICAg
Ly8gUGxhbnQgY2FsbGVlCi0gICAgZW1pdEdldEZyb21DYWxsRnJhbWVIZWFkZXJQdHIoUmVnaXN0
ZXJGaWxlOjpDYWxsZWUsIFg4Njo6ZWR4KTsKKyAgICBlbWl0R2V0RnJvbUNhbGxGcmFtZUhlYWRl
clB0cihSZWdpc3RlckZpbGU6OkNhbGxlZSwgWDg2UmVnaXN0ZXJzOjplZHgpOwogCiAgICAgLy8g
UGxhbnQgY2FsbGZyYW1lCi0gICAgbW92ZShjYWxsRnJhbWVSZWdpc3RlciwgWDg2OjplY3gpOwot
ICAgIGNhbGwoQWRkcmVzcyhYODY6OmVkeCwgT0JKRUNUX09GRlNFVE9GKEpTRnVuY3Rpb24sIG1f
ZGF0YSkpKTsKKyAgICBtb3ZlKGNhbGxGcmFtZVJlZ2lzdGVyLCBYODZSZWdpc3RlcnM6OmVjeCk7
CisgICAgY2FsbChBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWR4LCBPQkpFQ1RfT0ZGU0VUT0YoSlNG
dW5jdGlvbiwgbV9kYXRhKSkpOwogI2VuZGlmCiAKICAgICAvLyBXZSd2ZSBwdXQgYSBmZXcgdGVt
cG9yYXJpZXMgb24gdGhlIHN0YWNrIGluIGFkZGl0aW9uIHRvIHRoZSBhY3R1YWwgYXJndW1lbnRz
CkBAIC0xNzM2LDkgKzE3MzYsOSBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVDVElNYWNoaW5l
VHJhbXBvbGluZXMoUmVmUHRyPEV4ZWN1dGFibGVQb29sPiogZXhlY3V0YWJsZQogICAgIG1vdmUo
Y2FsbEZyYW1lUmVnaXN0ZXIsIHJlZ1QwKTsKIAogICAgIC8vIFNldHVwIGFyZzQ6IFRoaXMgaXMg
YSBwbGFpbiBoYWNrCi0gICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3RlciwgQVJNOjpTMCk7Cisg
ICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3RlciwgQVJNUmVnaXN0ZXJzOjpTMCk7CiAKLSAgICBt
b3ZlKGN0aVJldHVyblJlZ2lzdGVyLCBBUk06OmxyKTsKKyAgICBtb3ZlKGN0aVJldHVyblJlZ2lz
dGVyLCBBUk1SZWdpc3RlcnM6OmxyKTsKICAgICBjYWxsKEFkZHJlc3MocmVnVDEsIE9CSkVDVF9P
RkZTRVRPRihKU0Z1bmN0aW9uLCBtX2RhdGEpKSk7CiAKICAgICBhZGRQdHIoSW1tMzIoc2l6ZW9m
KEFyZ0xpc3QpKSwgc3RhY2tQb2ludGVyUmVnaXN0ZXIpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvd3JlYy9XUkVDR2VuZXJhdG9yLmNwcCBiL0phdmFTY3JpcHRDb3JlL3dyZWMvV1JFQ0dl
bmVyYXRvci5jcHAKaW5kZXggZTJlOGFiYS4uZTYyYWRkMyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvd3JlYy9XUkVDR2VuZXJhdG9yLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS93cmVjL1dS
RUNHZW5lcmF0b3IuY3BwCkBAIC00Miw4ICs0Miw4IEBAIHZvaWQgR2VuZXJhdG9yOjpnZW5lcmF0
ZUVudGVyKCkKIHsKICNpZiBQTEFURk9STShYODYpCiAgICAgLy8gT24geDg2IGVkaSAmIGVzaSBh
cmUgY2FsbGVlIHByZXNlcnZlZCByZWdpc3RlcnMuCi0gICAgcHVzaChYODY6OmVkaSk7Ci0gICAg
cHVzaChYODY6OmVzaSk7CisgICAgcHVzaChYODZSZWdpc3RlcnM6OmVkaSk7CisgICAgcHVzaChY
ODZSZWdpc3RlcnM6OmVzaSk7CiAgICAgCiAjaWYgQ09NUElMRVIoTVNWQykKICAgICAvLyBNb3Zl
IHRoZSBhcmd1bWVudHMgaW50byByZWdpc3RlcnMuCkBAIC03Miw4ICs3Miw4IEBAIHZvaWQgR2Vu
ZXJhdG9yOjpnZW5lcmF0ZVJldHVyblN1Y2Nlc3MoKQogICAgIAogICAgIC8vIFJlc3RvcmUgY2Fs
bGVlIHNhdmUgcmVnaXN0ZXJzLgogI2lmIFBMQVRGT1JNKFg4NikKLSAgICBwb3AoWDg2Ojplc2kp
OwotICAgIHBvcChYODY6OmVkaSk7CisgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZXNpKTsKKyAgICBw
b3AoWDg2UmVnaXN0ZXJzOjplZGkpOwogI2VuZGlmCiAgICAgcmV0KCk7CiB9CkBAIC0xMTEsOCAr
MTExLDggQEAgdm9pZCBHZW5lcmF0b3I6OmdlbmVyYXRlUmV0dXJuRmFpbHVyZSgpCiAgICAgbW92
ZShJbW0zMigtMSksIHJldHVyblJlZ2lzdGVyKTsKIAogI2lmIFBMQVRGT1JNKFg4NikKLSAgICBw
b3AoWDg2Ojplc2kpOwotICAgIHBvcChYODY6OmVkaSk7CisgICAgcG9wKFg4NlJlZ2lzdGVyczo6
ZXNpKTsKKyAgICBwb3AoWDg2UmVnaXN0ZXJzOjplZGkpOwogI2VuZGlmCiAgICAgcmV0KCk7CiB9
CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93cmVjL1dSRUNHZW5lcmF0b3IuaCBiL0phdmFT
Y3JpcHRDb3JlL3dyZWMvV1JFQ0dlbmVyYXRvci5oCmluZGV4IDg1NjJjYWMuLjI5NGMzZDAgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3dyZWMvV1JFQ0dlbmVyYXRvci5oCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3dyZWMvV1JFQ0dlbmVyYXRvci5oCkBAIC02MywyNiArNjMsMjYgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIH0KIAogI2lmIFBMQVRGT1JNKFg4NikKLSAgICAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgaW5wdXQgPSBYODY6OmVheDsKLSAgICAgICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgaW5kZXggPSBYODY6OmVkeDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgbGVuZ3RoID0gWDg2OjplY3g7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IG91dHB1dCA9IFg4Njo6ZWRpOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbnB1
dCA9IFg4NlJlZ2lzdGVyczo6ZWF4OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBp
bmRleCA9IFg4NlJlZ2lzdGVyczo6ZWR4OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCBsZW5ndGggPSBYODZSZWdpc3RlcnM6OmVjeDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lz
dGVySUQgb3V0cHV0ID0gWDg2UmVnaXN0ZXJzOjplZGk7CiAKLSAgICAgICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgY2hhcmFjdGVyID0gWDg2Ojplc2k7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBS
ZWdpc3RlcklEIHJlcGVhdENvdW50ID0gWDg2OjplYng7IC8vIEhvdyBtYW55IHRpbWVzIHRoZSBj
dXJyZW50IGF0b20gcmVwZWF0cyBpbiB0aGUgY3VycmVudCBtYXRjaC4KKyAgICAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgY2hhcmFjdGVyID0gWDg2UmVnaXN0ZXJzOjplc2k7CisgICAgICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlcGVhdENvdW50ID0gWDg2UmVnaXN0ZXJzOjplYng7
IC8vIEhvdyBtYW55IHRpbWVzIHRoZSBjdXJyZW50IGF0b20gcmVwZWF0cyBpbiB0aGUgY3VycmVu
dCBtYXRjaC4KIAotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3Rl
ciA9IFg4Njo6ZWF4OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdp
c3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwogI2VuZGlmCiAjaWYgUExBVEZPUk0oWDg2XzY0KQot
ICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbnB1dCA9IFg4Njo6ZWRpOwotICAgICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbmRleCA9IFg4Njo6ZXNpOwotICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBsZW5ndGggPSBYODY6OmVkeDsKLSAgICAgICAgc3RhdGljIGNv
bnN0IFJlZ2lzdGVySUQgb3V0cHV0ID0gWDg2OjplY3g7CisgICAgICAgIHN0YXRpYyBjb25zdCBS
ZWdpc3RlcklEIGlucHV0ID0gWDg2UmVnaXN0ZXJzOjplZGk7CisgICAgICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIGluZGV4ID0gWDg2UmVnaXN0ZXJzOjplc2k7CisgICAgICAgIHN0YXRpYyBj
b25zdCBSZWdpc3RlcklEIGxlbmd0aCA9IFg4NlJlZ2lzdGVyczo6ZWR4OworICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBvdXRwdXQgPSBYODZSZWdpc3RlcnM6OmVjeDsKIAotICAgICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjaGFyYWN0ZXIgPSBYODY6OmVheDsKLSAgICAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVwZWF0Q291bnQgPSBYODY6OmVieDsgLy8gSG93IG1h
bnkgdGltZXMgdGhlIGN1cnJlbnQgYXRvbSByZXBlYXRzIGluIHRoZSBjdXJyZW50IG1hdGNoLgor
ICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjaGFyYWN0ZXIgPSBYODZSZWdpc3RlcnM6
OmVheDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVwZWF0Q291bnQgPSBYODZS
ZWdpc3RlcnM6OmVieDsgLy8gSG93IG1hbnkgdGltZXMgdGhlIGN1cnJlbnQgYXRvbSByZXBlYXRz
IGluIHRoZSBjdXJyZW50IG1hdGNoLgogCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IHJldHVyblJlZ2lzdGVyID0gWDg2OjplYXg7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIHJldHVyblJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7CiAjZW5kaWYKIAogICAgICAg
ICB2b2lkIGdlbmVyYXRlRW50ZXIoKTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3lhcnIv
UmVnZXhKSVQuY3BwIGIvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEpJVC5jcHAKaW5kZXggNjYz
YTUyNC4uMTZiMWVjYyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEpJVC5j
cHAKKysrIGIvSmF2YVNjcmlwdENvcmUveWFyci9SZWdleEpJVC5jcHAKQEAgLTQ1LDM1ICs0NSwz
NSBAQCBjbGFzcyBSZWdleEdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIgewogICAg
IGZyaWVuZCB2b2lkIGppdENvbXBpbGVSZWdleChKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEsIFJl
Z2V4Q29kZUJsb2NrJiBqaXRPYmplY3QsIGNvbnN0IFVTdHJpbmcmIHBhdHRlcm4sIHVuc2lnbmVk
JiBudW1TdWJwYXR0ZXJucywgY29uc3QgY2hhciomIGVycm9yLCBib29sIGlnbm9yZUNhc2UsIGJv
b2wgbXVsdGlsaW5lKTsKIAogI2lmIFBMQVRGT1JNKEFSTSkKLSAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCBpbnB1dCA9IEFSTTo6cjA7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5k
ZXggPSBBUk06OnIxOwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGxlbmd0aCA9IEFSTTo6
cjI7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgb3V0cHV0ID0gQVJNOjpyNDsKKyAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbnB1dCA9IEFSTVJlZ2lzdGVyczo6cjA7CisgICAgc3Rh
dGljIGNvbnN0IFJlZ2lzdGVySUQgaW5kZXggPSBBUk1SZWdpc3RlcnM6OnIxOworICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIGxlbmd0aCA9IEFSTVJlZ2lzdGVyczo6cjI7CisgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgb3V0cHV0ID0gQVJNUmVnaXN0ZXJzOjpyNDsKIAotICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0gQVJNOjpyNTsKLSAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCByZWdUMSA9IEFSTTo6cjY7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVn
VDAgPSBBUk1SZWdpc3RlcnM6OnI1OworICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1Qx
ID0gQVJNUmVnaXN0ZXJzOjpyNjsKIAotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVy
blJlZ2lzdGVyID0gQVJNOjpyMDsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5S
ZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7CiAjZWxpZiBQTEFURk9STShYODYpCi0gICAgc3Rh
dGljIGNvbnN0IFJlZ2lzdGVySUQgaW5wdXQgPSBYODY6OmVheDsKLSAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCBpbmRleCA9IFg4Njo6ZWR4OwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IGxlbmd0aCA9IFg4Njo6ZWN4OwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIG91dHB1dCA9
IFg4Njo6ZWRpOworICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGlucHV0ID0gWDg2UmVnaXN0
ZXJzOjplYXg7CisgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5kZXggPSBYODZSZWdpc3Rl
cnM6OmVkeDsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBsZW5ndGggPSBYODZSZWdpc3Rl
cnM6OmVjeDsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBvdXRwdXQgPSBYODZSZWdpc3Rl
cnM6OmVkaTsKIAotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0gWDg2OjplYng7
Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDEgPSBYODY6OmVzaTsKKyAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMCA9IFg4NlJlZ2lzdGVyczo6ZWJ4OworICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJlZ1QxID0gWDg2UmVnaXN0ZXJzOjplc2k7CiAKLSAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5SZWdpc3RlciA9IFg4Njo6ZWF4OworICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7CiAj
ZWxpZiBQTEFURk9STShYODZfNjQpCi0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgaW5wdXQg
PSBYODY6OmVkaTsKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBpbmRleCA9IFg4Njo6ZXNp
OwotICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGxlbmd0aCA9IFg4Njo6ZWR4OwotICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIG91dHB1dCA9IFg4Njo6ZWN4OworICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIGlucHV0ID0gWDg2UmVnaXN0ZXJzOjplZGk7CisgICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgaW5kZXggPSBYODZSZWdpc3RlcnM6OmVzaTsKKyAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCBsZW5ndGggPSBYODZSZWdpc3RlcnM6OmVkeDsKKyAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCBvdXRwdXQgPSBYODZSZWdpc3RlcnM6OmVjeDsKIAotICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIHJlZ1QwID0gWDg2OjplYXg7Ci0gICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgcmVnVDEgPSBYODY6OmVieDsKKyAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMCA9
IFg4NlJlZ2lzdGVyczo6ZWF4OworICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QxID0g
WDg2UmVnaXN0ZXJzOjplYng7CiAKLSAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5S
ZWdpc3RlciA9IFg4Njo6ZWF4OworICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJldHVyblJl
Z2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplYXg7CiAjZW5kaWYKIAogICAgIHZvaWQgb3B0aW1pemVB
bHRlcm5hdGl2ZShQYXR0ZXJuQWx0ZXJuYXRpdmUqIGFsdGVybmF0aXZlKQpAQCAtMTI4OSw1MCAr
MTI4OSw1MCBAQCBjbGFzcyBSZWdleEdlbmVyYXRvciA6IHByaXZhdGUgTWFjcm9Bc3NlbWJsZXIg
ewogICAgIHZvaWQgZ2VuZXJhdGVFbnRlcigpCiAgICAgewogI2lmIFBMQVRGT1JNKFg4Nl82NCkK
LSAgICAgICAgcHVzaChYODY6OmVicCk7Ci0gICAgICAgIG1vdmUoc3RhY2tQb2ludGVyUmVnaXN0
ZXIsIFg4Njo6ZWJwKTsKLSAgICAgICAgcHVzaChYODY6OmVieCk7CisgICAgICAgIHB1c2goWDg2
UmVnaXN0ZXJzOjplYnApOworICAgICAgICBtb3ZlKHN0YWNrUG9pbnRlclJlZ2lzdGVyLCBYODZS
ZWdpc3RlcnM6OmVicCk7CisgICAgICAgIHB1c2goWDg2UmVnaXN0ZXJzOjplYngpOwogI2VsaWYg
UExBVEZPUk0oWDg2KQotICAgICAgICBwdXNoKFg4Njo6ZWJwKTsKLSAgICAgICAgbW92ZShzdGFj
a1BvaW50ZXJSZWdpc3RlciwgWDg2OjplYnApOworICAgICAgICBwdXNoKFg4NlJlZ2lzdGVyczo6
ZWJwKTsKKyAgICAgICAgbW92ZShzdGFja1BvaW50ZXJSZWdpc3RlciwgWDg2UmVnaXN0ZXJzOjpl
YnApOwogICAgICAgICAvLyBUT0RPOiBkbyB3ZSBuZWVkIHNwaWxsIHJlZ2lzdGVycyB0byBmaWxs
IHRoZSBvdXRwdXQgcG9pbnRlciBpZiB0aGVyZSBhcmUgbm8gc3ViIGNhcHR1cmVzPwotICAgICAg
ICBwdXNoKFg4Njo6ZWJ4KTsKLSAgICAgICAgcHVzaChYODY6OmVkaSk7Ci0gICAgICAgIHB1c2go
WDg2Ojplc2kpOworICAgICAgICBwdXNoKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKKyAgICAgICAgcHVz
aChYODZSZWdpc3RlcnM6OmVkaSk7CisgICAgICAgIHB1c2goWDg2UmVnaXN0ZXJzOjplc2kpOwog
ICAgICAgICAvLyBsb2FkIG91dHB1dCBpbnRvIGVkaSAoMiA9IHNhdmVkIGVicCArIHJldHVybiBh
ZGRyZXNzKS4KICAgICAjaWYgQ09NUElMRVIoTVNWQykKLSAgICAgICAgbG9hZFB0cihBZGRyZXNz
KFg4Njo6ZWJwLCAyICogc2l6ZW9mKHZvaWQqKSksIGlucHV0KTsKLSAgICAgICAgbG9hZFB0cihB
ZGRyZXNzKFg4Njo6ZWJwLCAzICogc2l6ZW9mKHZvaWQqKSksIGluZGV4KTsKLSAgICAgICAgbG9h
ZFB0cihBZGRyZXNzKFg4Njo6ZWJwLCA0ICogc2l6ZW9mKHZvaWQqKSksIGxlbmd0aCk7Ci0gICAg
ICAgIGxvYWRQdHIoQWRkcmVzcyhYODY6OmVicCwgNSAqIHNpemVvZih2b2lkKikpLCBvdXRwdXQp
OworICAgICAgICBsb2FkUHRyKEFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplYnAsIDIgKiBzaXplb2Yo
dm9pZCopKSwgaW5wdXQpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3MoWDg2UmVnaXN0ZXJzOjpl
YnAsIDMgKiBzaXplb2Yodm9pZCopKSwgaW5kZXgpOworICAgICAgICBsb2FkUHRyKEFkZHJlc3Mo
WDg2UmVnaXN0ZXJzOjplYnAsIDQgKiBzaXplb2Yodm9pZCopKSwgbGVuZ3RoKTsKKyAgICAgICAg
bG9hZFB0cihBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZWJwLCA1ICogc2l6ZW9mKHZvaWQqKSksIG91
dHB1dCk7CiAgICAgI2Vsc2UKLSAgICAgICAgbG9hZFB0cihBZGRyZXNzKFg4Njo6ZWJwLCAyICog
c2l6ZW9mKHZvaWQqKSksIG91dHB1dCk7CisgICAgICAgIGxvYWRQdHIoQWRkcmVzcyhYODZSZWdp
c3RlcnM6OmVicCwgMiAqIHNpemVvZih2b2lkKikpLCBvdXRwdXQpOwogICAgICNlbmRpZgogI2Vs
aWYgUExBVEZPUk0oQVJNKQogI2lmICFQTEFURk9STV9BUk1fQVJDSCg3KQotICAgICAgICBwdXNo
KEFSTTo6bHIpOworICAgICAgICBwdXNoKEFSTVJlZ2lzdGVyczo6bHIpOwogI2VuZGlmCi0gICAg
ICAgIHB1c2goQVJNOjpyNCk7Ci0gICAgICAgIHB1c2goQVJNOjpyNSk7Ci0gICAgICAgIHB1c2go
QVJNOjpyNik7Ci0gICAgICAgIG1vdmUoQVJNOjpyMywgb3V0cHV0KTsKKyAgICAgICAgcHVzaChB
Uk1SZWdpc3RlcnM6OnI0KTsKKyAgICAgICAgcHVzaChBUk1SZWdpc3RlcnM6OnI1KTsKKyAgICAg
ICAgcHVzaChBUk1SZWdpc3RlcnM6OnI2KTsKKyAgICAgICAgbW92ZShBUk1SZWdpc3RlcnM6OnIz
LCBvdXRwdXQpOwogI2VuZGlmCiAgICAgfQogCiAgICAgdm9pZCBnZW5lcmF0ZVJldHVybigpCiAg
ICAgewogI2lmIFBMQVRGT1JNKFg4Nl82NCkKLSAgICAgICAgcG9wKFg4Njo6ZWJ4KTsKLSAgICAg
ICAgcG9wKFg4Njo6ZWJwKTsKKyAgICAgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZWJ4KTsKKyAgICAg
ICAgcG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKICNlbGlmIFBMQVRGT1JNKFg4NikKLSAgICAgICAg
cG9wKFg4Njo6ZXNpKTsKLSAgICAgICAgcG9wKFg4Njo6ZWRpKTsKLSAgICAgICAgcG9wKFg4Njo6
ZWJ4KTsKLSAgICAgICAgcG9wKFg4Njo6ZWJwKTsKKyAgICAgICAgcG9wKFg4NlJlZ2lzdGVyczo6
ZXNpKTsKKyAgICAgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZWRpKTsKKyAgICAgICAgcG9wKFg4NlJl
Z2lzdGVyczo6ZWJ4KTsKKyAgICAgICAgcG9wKFg4NlJlZ2lzdGVyczo6ZWJwKTsKICNlbGlmIFBM
QVRGT1JNKEFSTSkKLSAgICAgICAgcG9wKEFSTTo6cjYpOwotICAgICAgICBwb3AoQVJNOjpyNSk7
Ci0gICAgICAgIHBvcChBUk06OnI0KTsKKyAgICAgICAgcG9wKEFSTVJlZ2lzdGVyczo6cjYpOwor
ICAgICAgICBwb3AoQVJNUmVnaXN0ZXJzOjpyNSk7CisgICAgICAgIHBvcChBUk1SZWdpc3RlcnM6
OnI0KTsKICNlbmRpZgogICAgICAgICByZXQoKTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>