<?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>8123</bug_id>
          
          <creation_ts>2006-04-01 13:18:36 -0800</creation_ts>
          <short_desc>focus outline on new text field doesn&apos;t look like the old one</short_desc>
          <delta_ts>2006-04-03 15:16:31 -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>Forms</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>8093</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>adele</cc>
    
    <cc>hyatt</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>38196</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-01 13:18:36 -0800</bug_when>
    <thetext>We need to change the new text field so the outline is exactly like the old one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38197</commentid>
    <comment_count>1</comment_count>
      <attachid>7445</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-01 13:30:19 -0800</bug_when>
    <thetext>Created attachment 7445
patch with detailed change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38253</commentid>
    <comment_count>2</comment_count>
      <attachid>7455</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-01 22:13:04 -0800</bug_when>
    <thetext>Created attachment 7455
patch with detailed change log -- also deals with blue/graphite appearance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38282</commentid>
    <comment_count>3</comment_count>
      <attachid>7455</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2006-04-02 12:12:50 -0700</bug_when>
    <thetext>Comment on attachment 7455
patch with detailed change log -- also deals with blue/graphite appearance

r=me, assuming you talk to Hyatt about the strict mode issue at some point :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38298</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-04-02 16:13:25 -0700</bug_when>
    <thetext>Has this landed?

Something recently caused the pixel tests to regress wrt focus rings:
http://build.webkit.org/results/post-commit-pixel-powerpc-mac-os-x/128/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38308</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-02 17:54:10 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Has this landed?

No, but I&apos;m landing it right now, along with new pixel test results.

&gt; Something recently caused the pixel tests to regress wrt focus rings:
&gt; http://build.webkit.org/results/post-commit-pixel-powerpc-mac-os-x/128/

That was the WebKitSystemInterface change, which was a precursor to this one. I knew it would change the appearance of focus rings; sorry, I forgot to mention that to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38334</commentid>
    <comment_count>6</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-04-02 23:13:51 -0700</bug_when>
    <thetext>outline-offset is an actual CSS property.  By changing it to accept negative values, we now violate the spec.  We need to log this as an issue in our bug database so that we can lobby to get the spec changed.  If not, we will have to change outline-offset to -khtml-outline-offset before shipping.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38366</commentid>
    <comment_count>7</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-04-02 23:50:47 -0700</bug_when>
    <thetext>In Radar as &lt;rdar://problem/4497131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38367</commentid>
    <comment_count>8</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-04-03 00:07:27 -0700</bug_when>
    <thetext>Actually nvm.  It looks like the restriction does not exist any more in the current spec.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38428</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-03 15:16:31 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of 8093 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7445</attachid>
            <date>2006-04-01 13:30:19 -0800</date>
            <delta_ts>2006-04-01 22:13:04 -0800</delta_ts>
            <desc>patch with detailed change log</desc>
            <filename>FocusRingPatch.txt</filename>
            <type>text/plain</type>
            <size>10673</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IHBsYXRmb3JtL1N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vU3RyaW5n
LmNwcAkocmV2aXNpb24gMTM2MjgpCisrKyBwbGF0Zm9ybS9TdHJpbmcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02NSw2ICs2NSwxNyBAQAogICAgICAgICBtX2ltcGwgPSBuZXcgU3RyaW5nSW1wbChz
dHIsIGwpOwogfQogCitTdHJpbmc6OlN0cmluZyhjb25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGxl
bmd0aCkKK3sKKyAgICBpZiAoIXN0cikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGxlbmd0
aCA9PSAwKQorICAgICAgICBtX2ltcGwgPSBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIGVsc2UK
KyAgICAgICAgbV9pbXBsID0gbmV3IFN0cmluZ0ltcGwoc3RyLCBsZW5ndGgpOworfQorCiBTdHJp
bmcmIFN0cmluZzo6b3BlcmF0b3IrPShjb25zdCBTdHJpbmcgJnN0cikKIHsKICAgICBpZiAoc3Ry
Lm1faW1wbCkgewpJbmRleDogcGxhdGZvcm0vUGxhdGZvcm1TdHJpbmcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmluZy5oCShyZXZpc2lvbiAxMzYyOCkKKysrIHBsYXRmb3Jt
L1BsYXRmb3JtU3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAKICAgICBT
dHJpbmcoY29uc3QgS0pTOjpJZGVudGlmaWVyJik7CiAgICAgU3RyaW5nKGNvbnN0IEtKUzo6VVN0
cmluZyYpOwogICAgIFN0cmluZyhjb25zdCBjaGFyKik7CisgICAgU3RyaW5nKGNvbnN0IGNoYXIq
LCB1bnNpZ25lZCBsZW5ndGgpOwogICAgIFN0cmluZyhTdHJpbmdJbXBsKiBpKSA6IG1faW1wbChp
KSB7IH0KIAogICAgIG9wZXJhdG9yIEtKUzo6SWRlbnRpZmllcigpIGNvbnN0OwpJbmRleDogcmVu
ZGVyaW5nL3JlbmRlcl9zdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9yZW5kZXJfc3R5
bGUuaAkocmV2aXNpb24gMTM2MjgpCisrKyByZW5kZXJpbmcvcmVuZGVyX3N0eWxlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTExNTYsOCArMTE1NiwxMiBAQAogICAgIGNvbnN0IENvbG9yJiAgIGJvcmRl
ckJvdHRvbUNvbG9yKCkgY29uc3QgeyAgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIuYm90dG9tLmNv
bG9yOyB9CiAgICAgYm9vbCBib3JkZXJCb3R0b21Jc1RyYW5zcGFyZW50KCkgY29uc3QgeyByZXR1
cm4gc3Vycm91bmQtPmJvcmRlci5ib3R0b20uaXNUcmFuc3BhcmVudCgpOyB9CiAgICAgCi0gICAg
dW5zaWduZWQgc2hvcnQgb3V0bGluZVNpemUoKSBjb25zdCB7IHJldHVybiBvdXRsaW5lV2lkdGgo
KSArIG91dGxpbmVPZmZzZXQoKTsgfQotICAgIHVuc2lnbmVkIHNob3J0IG91dGxpbmVXaWR0aCgp
IGNvbnN0IHsgaWYgKGJhY2tncm91bmQtPm1fb3V0bGluZS5zdHlsZSgpID09IEJOT05FIHx8IGJh
Y2tncm91bmQtPm1fb3V0bGluZS5zdHlsZSgpID09IEJISURERU4pIHJldHVybiAwOyByZXR1cm4g
YmFja2dyb3VuZC0+bV9vdXRsaW5lLndpZHRoOyB9CisgICAgdW5zaWduZWQgc2hvcnQgb3V0bGlu
ZVNpemUoKSBjb25zdCB7IHJldHVybiBtYXgoMCwgb3V0bGluZVdpZHRoKCkgKyBvdXRsaW5lT2Zm
c2V0KCkpOyB9CisgICAgdW5zaWduZWQgc2hvcnQgb3V0bGluZVdpZHRoKCkgY29uc3QgeworICAg
ICAgICBpZiAoYmFja2dyb3VuZC0+bV9vdXRsaW5lLnN0eWxlKCkgPT0gQk5PTkUgfHwgYmFja2dy
b3VuZC0+bV9vdXRsaW5lLnN0eWxlKCkgPT0gQkhJRERFTikKKyAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gYmFja2dyb3VuZC0+bV9vdXRsaW5lLndpZHRoOworICAgIH0KICAg
ICBFQm9yZGVyU3R5bGUgICBvdXRsaW5lU3R5bGUoKSBjb25zdCB7ICByZXR1cm4gYmFja2dyb3Vu
ZC0+bV9vdXRsaW5lLnN0eWxlKCk7IH0KICAgICBib29sIG91dGxpbmVTdHlsZUlzQXV0bygpIGNv
bnN0IHsgcmV0dXJuIGJhY2tncm91bmQtPm1fb3V0bGluZS5fYXV0bzsgfQogICAgIGNvbnN0IENv
bG9yICYgIG91dGxpbmVDb2xvcigpIGNvbnN0IHsgIHJldHVybiBiYWNrZ3JvdW5kLT5tX291dGxp
bmUuY29sb3I7IH0KQEAgLTEyODMsNyArMTI4Nyw5IEBACiAgICAgQmluZGluZ1VSSSogYmluZGlu
Z1VSSXMoKSBjb25zdCB7IHJldHVybiBjc3MzTm9uSW5oZXJpdGVkRGF0YS0+YmluZGluZ1VSSTsg
fQogI2VuZGlmCiAgICAgaW50IG91dGxpbmVPZmZzZXQoKSBjb25zdCB7IAotICAgICAgICBpZiAo
YmFja2dyb3VuZC0+bV9vdXRsaW5lLnN0eWxlKCkgPT0gQk5PTkUgfHwgYmFja2dyb3VuZC0+bV9v
dXRsaW5lLnN0eWxlKCkgPT0gQkhJRERFTikgcmV0dXJuIDA7IHJldHVybiBiYWNrZ3JvdW5kLT5t
X291dGxpbmUuX29mZnNldDsKKyAgICAgICAgaWYgKGJhY2tncm91bmQtPm1fb3V0bGluZS5zdHls
ZSgpID09IEJOT05FIHx8IGJhY2tncm91bmQtPm1fb3V0bGluZS5zdHlsZSgpID09IEJISURERU4p
CisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGJhY2tncm91bmQtPm1fb3V0
bGluZS5fb2Zmc2V0OwogICAgIH0KICAgICBTaGFkb3dEYXRhKiB0ZXh0U2hhZG93KCkgY29uc3Qg
eyByZXR1cm4gY3NzM0luaGVyaXRlZERhdGEtPnRleHRTaGFkb3c7IH0KICAgICBmbG9hdCBvcGFj
aXR5KCkgY29uc3QgeyByZXR1cm4gY3NzM05vbkluaGVyaXRlZERhdGEtPm9wYWNpdHk7IH0KQEAg
LTE1MDEsNyArMTUwNyw3IEBACiAgICAgfQogICAgIHZvaWQgYWRkQmluZGluZ1VSSShTdHJpbmdJ
bXBsKiB1cmkpOwogI2VuZGlmCi0gICAgdm9pZCBzZXRPdXRsaW5lT2Zmc2V0KHVuc2lnbmVkIHNo
b3J0IHYpIHsgU0VUX1ZBUihiYWNrZ3JvdW5kLCBtX291dGxpbmUuX29mZnNldCwgdikgfQorICAg
IHZvaWQgc2V0T3V0bGluZU9mZnNldChpbnQgdikgeyBTRVRfVkFSKGJhY2tncm91bmQsIG1fb3V0
bGluZS5fb2Zmc2V0LCB2KSB9CiAgICAgdm9pZCBzZXRUZXh0U2hhZG93KFNoYWRvd0RhdGEqIHZh
bCwgYm9vbCBhZGQ9ZmFsc2UpOwogICAgIHZvaWQgc2V0T3BhY2l0eShmbG9hdCBmKSB7IFNFVF9W
QVIoY3NzM05vbkluaGVyaXRlZERhdGEsIG9wYWNpdHksIGYpOyB9CiAgICAgdm9pZCBzZXRBcHBl
YXJhbmNlKEVBcHBlYXJhbmNlIGEpIHsgU0VUX1ZBUihjc3MzTm9uSW5oZXJpdGVkRGF0YSwgbV9h
cHBlYXJhbmNlLCBhKTsgfQpJbmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxv
ZwkocmV2aXNpb24gMTM2MjgpCisrKyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwzNSBAQAorMjAwNi0wNC0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBmaXggaHR0cDov
L2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD04MTIzCisgICAgICAgICAg
Zm9jdXMgcmluZyBvbiBuZXcgdGV4dCBmaWVsZCBkb2Vzbid0IGxvb2sgbGlrZSB0aGUgb2xkIG9u
ZQorCisgICAgICAgIFRoZXNlIGNoYW5nZXMsIGFsb25nIHdpdGggYSBjaGFuZ2UgdG8gV2ViS2l0
U3lzdGVtSW50ZXJmYWNlIHRvIHVzZQorICAgICAgICB0aGUgY29ycmVjdCBhbHBoYSB2YWx1ZSwg
bWFrZSB0aGUgZm9jdXMgcmluZ3MgbG9vayBwZXJmZWN0LgorCisgICAgICAgICogY3NzL2Nzc3N0
eWxlc2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VVQVNoZWV0KTogUGFyc2Ug
YW4gYXJyYXkgb2YgY2hhcnMgaW5zdGVhZCBvZiBVVEYtMTYuCisgICAgICAgIEN1dHMgdGhlIHNp
emUgb2YgdGhlIHN0eWxlIHNoZWV0IGluIGhhbGYuCisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KTogQWxsb3cgbmVnYXRpdmUgdmFsdWUgZm9yCisgICAg
ICAgIG91dGxpbmUtb2Zmc2V0LgorICAgICAgICAqIHJlbmRlcmluZy9yZW5kZXJfc3R5bGUuaDog
KFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRPdXRsaW5lT2Zmc2V0KToKKyAgICAgICAgQ2hhbmdl
ZCB0byBhbGxvdyBuZWdhdGl2ZSB2YWx1ZXMuCisKKyAgICAgICAgKiBjc3MvaHRtbDQuY3NzOiBS
ZW1vdmVkIGEgbG90IG9mIGV4Y2VzcyBzcGFjZXMuIENoYW5nZWQgY29sb3Igb2YgZm9jdXMKKyAg
ICAgICAgZnJvbSAjMWY1Y2NmIHRvICM3REFERDkuIEkgdGhpbmsgdGhlIGZvcm1lciBjb2xvciBt
dXN0IGhhdmUgYmVlbiBhbHJlYWR5CisgICAgICAgIGFscGhhLWNvbXBvc2l0ZWQgd2l0aCB3aGl0
ZSBvciBzb21ldGhpbmcuIENoYW5nZWQgd2lkdGggb2YgZm9jdXMgdG8gNXB4LgorICAgICAgICBB
ZGRlZCBhbiBvdXRsaW5lLW9mZnNldCBmb3IgPGlucHV0IHR5cGU9dGV4dD4gb2YgLTJweC4KKwor
ICAgICAgICAtIHNvbWUgY2xlYW51cCB0byBob3cgd2UgcGFyc2UgdXNlciBhZ2VudCBzdHlsZSBz
aGVldHMKKworICAgICAgICAqIGNzcy9tYWtlLWNzcy1maWxlLWFycmF5cy5wbDogQ2hhbmdlZCB0
byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIG9uIHRoZQorICAgICAgICBpbnB1dCBmaWxlcyBhbmQg
dG8gZ2VuZXJhdGUgYW4gYXJyYXkgb2YgY2hhciBpbnN0ZWFkIG9mIHVuc2lnbmVkIHNob3J0Lgor
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TdHJpbmcuaDogQWRkZWQgYSBjb25zdHJ1Y3Rv
ciB0aGF0IHRha2VzIGEgY2hhciogYW5kCisgICAgICAgIGEgbGVuZ3RoLgorICAgICAgICAqIHBs
YXRmb3JtL1N0cmluZy5jcHA6IChXZWJDb3JlOjpTdHJpbmc6OlN0cmluZyk6IERpdHRvLgorCiAy
MDA2LTAzLTMxICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWRlbGUuCkluZGV4OiBjc3MvaHRtbDQuY3NzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNz
cy9odG1sNC5jc3MJKHJldmlzaW9uIDEzNjI4KQorKysgY3NzL2h0bWw0LmNzcwkod29ya2luZyBj
b3B5KQpAQCAtMjUsMTMgKzI1LDEzIEBACiAKIGh0bWwgewogICAgIGRpc3BsYXk6IGJsb2NrCi19
IAorfQogCiAvKiBjaGlsZHJlbiBvZiB0aGUgPGhlYWQ+IGVsZW1lbnQgYWxsIGhhdmUgZGlzcGxh
eTpub25lICovCi1oZWFkIHsgCitoZWFkIHsKICAgICBkaXNwbGF5OiBub25lCiB9Ci0gICAgIAor
CiBtZXRhIHsKICAgICBkaXNwbGF5OiBub25lCiB9CkBAIC04MCw3ICs4MCw3IEBACiBhZGRyZXNz
IHsKICAgICBkaXNwbGF5OiBibG9jawogfQotICAgICAgCisKIGJsb2NrcXVvdGUgewogICAgIGRp
c3BsYXk6IGJsb2NrOwogICAgIG1hcmdpbjogMV9fcWVtIDQwcHggMWVtIDQwcHgKQEAgLTEwNCw3
ICsxMDQsNyBAQAogICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIC8qIHNwZWNpYWwgY2VudGVyaW5n
IHRvIGJlIGFibGUgdG8gZW11bGF0ZSB0aGUgaHRtbDQvbmV0c2NhcGUgYmVoYXZpb3VyICovCiAg
ICAgdGV4dC1hbGlnbjogLWtodG1sLWNlbnRlcgotfSAgCit9CiAKIGhyIHsKICAgICBkaXNwbGF5
OiBibG9jazsKQEAgLTExOCwyOCArMTE4LDI4IEBACiB9CiAKIC8qIGhlYWRpbmcgZWxlbWVudHMg
Ki8KLSAgICAgIAorCiBoMSB7CiAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgZm9udC1zaXplOiAy
ZW07CiAgICAgbWFyZ2luOiAuNjdfX3FlbSAwIC42N2VtIDA7CiAgICAgZm9udC13ZWlnaHQ6IGJv
bGQKIH0KLSAgICAgIAorCiBoMiB7CiAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgZm9udC1zaXpl
OiAxLjVlbTsKICAgICBtYXJnaW46IC44M19fcWVtIDAgLjgzZW0gMDsKICAgICBmb250LXdlaWdo
dDogYm9sZAogfQotICAgICAgCisKIGgzIHsKICAgICBkaXNwbGF5OiBibG9jazsKICAgICBmb250
LXNpemU6IDEuMTdlbTsKICAgICBtYXJnaW46IDFfX3FlbSAwIDFlbSAwOwogICAgIGZvbnQtd2Vp
Z2h0OiBib2xkCiB9Ci0gICAgICAKKwogaDQgewogICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIG1h
cmdpbjogMS4zM19fcWVtIDAgMS4zM2VtIDA7CkBAIC0xODAsMTMgKzE4MCwxMyBAQAogICAgIHZl
cnRpY2FsLWFsaWduOiBtaWRkbGU7CiAgICAgYm9yZGVyLWNvbG9yOiBpbmhlcml0CiB9Ci0gICAg
ICAKKwogdGJvZHkgewogICAgIGRpc3BsYXk6IHRhYmxlLXJvdy1ncm91cDsKLSAgICB2ZXJ0aWNh
bC1hbGlnbjogbWlkZGxlOyAKKyAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgIGJvcmRl
ci1jb2xvcjogaW5oZXJpdAogfQotICAgICAgCisKIHRmb290IHsKICAgICBkaXNwbGF5OiB0YWJs
ZS1mb290ZXItZ3JvdXA7CiAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKQEAgLTI1Nyw3ICsy
NTcsNyBAQAogZGwgewogICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIG1hcmdpbjogMV9fcWVtIDAg
MWVtIDAKLX0gCit9CiAKIGR0IHsKICAgICBkaXNwbGF5OiBibG9jawpAQCAtMzIxLDcgKzMyMSw3
IEBACiAgICAgLWtodG1sLXJ0bC1vcmRlcmluZzogbG9naWNhbDsKIH0KIAotaW5wdXRbdHlwZT0i
cGFzc3dvcmQiXSwgaW5wdXRbdHlwZT0ic2VhcmNoIl0sIGlucHV0W3R5cGU9ImhpZGRlbiJdLCBp
bnB1dFt0eXBlPSJpbWFnZSJdLCBpbnB1dFt0eXBlPSJmaWxlIl17CitpbnB1dFt0eXBlPSJwYXNz
d29yZCJdLCBpbnB1dFt0eXBlPSJzZWFyY2giXSwgaW5wdXRbdHlwZT0iaGlkZGVuIl0sIGlucHV0
W3R5cGU9ImltYWdlIl0sIGlucHV0W3R5cGU9ImZpbGUiXSB7CiAgICAgLWtodG1sLWFwcGVhcmFu
Y2U6IGluaXRpYWw7CiAgICAgcGFkZGluZzogaW5pdGlhbDsKICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBpbml0aWFsOwpAQCAtMzgwLDI0ICszODAsMjQgQEAKICAgICAta2h0bWwtYXBwZWFyYW5jZTog
cmFkaW8KIH0KIAotLyogaW5saW5lIGVsZW1lbnRzICovICAgICAgCi0gICAgICAKKy8qIGlubGlu
ZSBlbGVtZW50cyAqLworCiB1LCBpbnMgewogICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5l
CiB9Ci0gICAgICAKKwogc3Ryb25nLCBiIHsKICAgICBmb250LXdlaWdodDogYm9sZGVyCiB9Ci0g
ICAgICAKKwogaSwgY2l0ZSwgZW0sIHZhciwgYWRkcmVzcyB7CiAgICAgZm9udC1zdHlsZTogaXRh
bGljCiB9Ci0gICAgICAKKwogdHQsIGNvZGUsIGtiZCwgc2FtcCB7CiAgICAgZm9udC1mYW1pbHk6
IG1vbm9zcGFjZQogfQotICAgICAgCisKIHByZSwgeG1wLCBwbGFpbnRleHQsIGxpc3Rpbmcgewog
ICAgIGRpc3BsYXk6IGJsb2NrOwogICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CkBAIC00MDgs
NyArNDA4LDcgQEAKIGJpZyB7CiAgICAgZm9udC1zaXplOiBsYXJnZXIKIH0KLSAgICAgIAorCiBz
bWFsbCB7CiAgICAgZm9udC1zaXplOiBzbWFsbGVyCiB9CkBAIC00MzcsMTQgKzQzNywzMSBAQAog
CiAvKiBzdGF0ZXMgKi8KIAotOmZvY3VzIHsgCi0gICAgb3V0bGluZTogYXV0byAzcHggIzFmNWNj
ZgorOmZvY3VzIHsKKyAgICBvdXRsaW5lOiBhdXRvIDVweCAjN0RBREQ5CiB9CiAKLWh0bWw6Zm9j
dXMsIGJvZHk6Zm9jdXMgeyAKK2h0bWw6Zm9jdXMsIGJvZHk6Zm9jdXMgewogICAgIG91dGxpbmU6
IG5vbmUKIH0KIAoraW5wdXQ6Zm9jdXMgeworICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4Cit9CisK
K2lucHV0W3R5cGU9ImJ1dHRvbiJdOmZvY3VzLAoraW5wdXRbdHlwZT0iY2hlY2tib3giXTpmb2N1
cywKK2lucHV0W3R5cGU9ImZpbGUiXTpmb2N1cywKK2lucHV0W3R5cGU9ImhpZGRlbiJdOmZvY3Vz
LAoraW5wdXRbdHlwZT0iaW1hZ2UiXTpmb2N1cywKK2lucHV0W3R5cGU9InBhc3N3b3JkIl06Zm9j
dXMsCitpbnB1dFt0eXBlPSJyYWRpbyJdOmZvY3VzLAoraW5wdXRbdHlwZT0icmVzZXQiXTpmb2N1
cywKK2lucHV0W3R5cGU9InNlYXJjaCJdOmZvY3VzLAoraW5wdXRbdHlwZT0ic3VibWl0Il06Zm9j
dXMgeworICAgIG91dGxpbmUtb2Zmc2V0OiAwCit9CisKIGE6LWtodG1sLWFueS1saW5rIHsKICAg
ICBjb2xvcjogLWtodG1sLWxpbms7CiAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CkBA
IC00NjUsNCArNDgyLDQgQEAKICAgICBkaXNwbGF5OiBibG9jawogfQogCi0vKiBub3NjcmlwdCBp
cyBoYW5kbGVkIGludGVybmFsbHksIGFzIGl0IGRlcGVuZHMgb24gdGhlIGh0bWwgc2V0dGluZ3Mg
Ki8KKy8qIG5vc2NyaXB0IGlzIGhhbmRsZWQgaW50ZXJuYWxseSwgYXMgaXQgZGVwZW5kcyBvbiBz
ZXR0aW5ncyAqLwpJbmRleDogY3NzL21ha2UtY3NzLWZpbGUtYXJyYXlzLnBsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGNzcy9tYWtlLWNzcy1maWxlLWFycmF5cy5wbAkocmV2aXNpb24gMTM2MjgpCisrKyBjc3Mv
bWFrZS1jc3MtZmlsZS1hcnJheXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAK
ICAgICBteSAkbmFtZSA9ICQxOwogCiAgICAgIyBTbHVycCBpbiB0aGUgQ1NTIGZpbGUuCi0gICAg
b3BlbiBJTiwgJGluIG9yIGRpZTsKKyAgICBvcGVuIElOLCAiLXwiLCAiL3Vzci9iaW4vY3BwIiwg
Ii1QIiwgJGluLCAiLSIgb3IgZGllOwogICAgIG15ICR0ZXh0OyB7IGxvY2FsICQvOyAkdGV4dCA9
IDxJTj47IH0KICAgICBjbG9zZSBJTjsKIApAQCAtNTYsOCArNTYsOCBAQAogCiAgICAgIyBXcml0
ZSBvdXQgYSBDIGFycmF5IG9mIHRoZSBjaGFyYWN0ZXJzLgogICAgIG15ICRsZW5ndGggPSBsZW5n
dGggJHRleHQ7Ci0gICAgcHJpbnQgSEVBREVSICJleHRlcm4gY29uc3QgdW5zaWduZWQgc2hvcnQg
JHtuYW1lfVVzZXJBZ2VudFN0eWxlU2hlZXRbJHtsZW5ndGh9XTtcbiI7Ci0gICAgcHJpbnQgT1VU
ICJleHRlcm4gY29uc3QgdW5zaWduZWQgc2hvcnQgJHtuYW1lfVVzZXJBZ2VudFN0eWxlU2hlZXRb
JHtsZW5ndGh9XSA9IHtcbiI7CisgICAgcHJpbnQgSEVBREVSICJleHRlcm4gY29uc3QgY2hhciAk
e25hbWV9VXNlckFnZW50U3R5bGVTaGVldFske2xlbmd0aH1dO1xuIjsKKyAgICBwcmludCBPVVQg
ImV4dGVybiBjb25zdCBjaGFyICR7bmFtZX1Vc2VyQWdlbnRTdHlsZVNoZWV0WyR7bGVuZ3RofV0g
PSB7XG4iOwogICAgIG15ICRpID0gMDsKICAgICB3aGlsZSAoJGkgPCAkbGVuZ3RoKSB7CiAgICAg
ICAgIHByaW50IE9VVCAiICAgICI7CkluZGV4OiBjc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwCShyZXZpc2lvbiAxMzYyOCkKKysr
IGNzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc2LDE4ICsyNzYs
MTggQEAKICAgICBkZWxldGUgbV91c2VyU2hlZXQ7CiB9CiAKLXN0YXRpYyBDU1NTdHlsZVNoZWV0
KiBwYXJzZVVBU2hlZXQoY29uc3QgdW5zaWduZWQgc2hvcnQqIGNoYXJhY3RlcnMsIGludCBzaXpl
KQorc3RhdGljIENTU1N0eWxlU2hlZXQqIHBhcnNlVUFTaGVldChjb25zdCBjaGFyKiBjaGFyYWN0
ZXJzLCB1bnNpZ25lZCBzaXplKQogewogICAgIENTU1N0eWxlU2hlZXQqIGNvbnN0IHBhcmVudCA9
IDA7CiAgICAgQ1NTU3R5bGVTaGVldCogc2hlZXQgPSBuZXcgQ1NTU3R5bGVTaGVldChwYXJlbnQp
OwogICAgIHNoZWV0LT5yZWYoKTsgLy8gbGVhayB0aGUgc2hlZXQgb24gcHVycG9zZSBzaW5jZSBp
dCB3aWxsIGJlIHN0b3JlZCBpbiBhIGdsb2JhbCB2YXJpYWJsZQotICAgIHNoZWV0LT5wYXJzZVN0
cmluZyhTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBRQ2hhcio+KGNoYXJhY3RlcnMpLCBz
aXplKSk7CisgICAgc2hlZXQtPnBhcnNlU3RyaW5nKFN0cmluZyhjaGFyYWN0ZXJzLCBzaXplKSk7
CiAgICAgcmV0dXJuIHNoZWV0OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBDU1NTdHlsZVNo
ZWV0KiBwYXJzZVVBU2hlZXQoY29uc3QgVCYgYXJyYXkpCiB7Ci0gICAgcmV0dXJuIHBhcnNlVUFT
aGVldChhcnJheSwgc2l6ZW9mKGFycmF5KSAvIHNpemVvZih1bnNpZ25lZCBzaG9ydCkpOworICAg
IHJldHVybiBwYXJzZVVBU2hlZXQoYXJyYXksIHNpemVvZihhcnJheSkpOwogfQogCiB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmxvYWREZWZhdWx0U3R5bGUoKQpAQCAtMzUwNCwxNSArMzUwNCwxMCBA
QAogICAgICAgICB9CiAgICAgfQogCi0gICAgY2FzZSBDU1NfUFJPUF9PVVRMSU5FX09GRlNFVDog
eworICAgIGNhc2UgQ1NTX1BST1BfT1VUTElORV9PRkZTRVQ6CiAgICAgICAgIEhBTkRMRV9JTkhF
UklUX0FORF9JTklUSUFMKG91dGxpbmVPZmZzZXQsIE91dGxpbmVPZmZzZXQpCi0KLSAgICAgICAg
aW50IG9mZnNldCA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlSW50TGVuZ3RoKHN0eWxlKTsKLSAg
ICAgICAgaWYgKG9mZnNldCA8IDApIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIHN0eWxlLT5z
ZXRPdXRsaW5lT2Zmc2V0KG9mZnNldCk7CisgICAgICAgIHN0eWxlLT5zZXRPdXRsaW5lT2Zmc2V0
KHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlSW50TGVuZ3RoKHN0eWxlKSk7CiAgICAgICAgIGJyZWFr
OwotICAgIH0KIAogICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9TSEFET1c6IHsKICAgICAgICAgaWYg
KGlzSW5oZXJpdCkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7455</attachid>
            <date>2006-04-01 22:13:04 -0800</date>
            <delta_ts>2006-04-02 12:12:50 -0700</delta_ts>
            <desc>patch with detailed change log -- also deals with blue/graphite appearance</desc>
            <filename>FocusRingPatch.txt</filename>
            <type>text/plain</type>
            <size>66723</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IHBsYXRmb3JtL1N0cmluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGxhdGZvcm0vU3RyaW5n
LmNwcAkocmV2aXNpb24gMTM2MzEpCisrKyBwbGF0Zm9ybS9TdHJpbmcuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02NSw2ICs2NSwxNyBAQAogICAgICAgICBtX2ltcGwgPSBuZXcgU3RyaW5nSW1wbChz
dHIsIGwpOwogfQogCitTdHJpbmc6OlN0cmluZyhjb25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGxl
bmd0aCkKK3sKKyAgICBpZiAoIXN0cikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGxlbmd0
aCA9PSAwKQorICAgICAgICBtX2ltcGwgPSBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIGVsc2UK
KyAgICAgICAgbV9pbXBsID0gbmV3IFN0cmluZ0ltcGwoc3RyLCBsZW5ndGgpOworfQorCiBTdHJp
bmcmIFN0cmluZzo6b3BlcmF0b3IrPShjb25zdCBTdHJpbmcgJnN0cikKIHsKICAgICBpZiAoc3Ry
Lm1faW1wbCkgewpJbmRleDogcGxhdGZvcm0vbWFjL1dlYkNvcmVUZXh0UmVuZGVyZXJGYWN0b3J5
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL21hYy9XZWJDb3JlVGV4dFJlbmRlcmVyRmFjdG9y
eS5tbQkocmV2aXNpb24gMTM2MzEpCisrKyBwbGF0Zm9ybS9tYWMvV2ViQ29yZVRleHRSZW5kZXJl
ckZhY3RvcnkubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA0IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiwxMSAr
MjYsMTEgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiV2ViQ29yZVRleHRSZW5kZXJl
ckZhY3RvcnkuaCIKIAotI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgotI2ltcG9ydCAi
RnJhbWVNYWMuaCIKICNpbXBvcnQgIktXUUxpc3RCb3guaCIKKyNpbXBvcnQgIlBhZ2UuaCIKICNp
bXBvcnQgIldlYkNvcmVGcmFtZUJyaWRnZS5oIgogI2ltcG9ydCAiV2ViQ29yZVRleHRSZW5kZXJl
ci5oIgorI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIApAQCAtMTE1LDkgKzExNSw3IEBACiAtICh2b2lkKWNsZWFyQ2FjaGVzCiB7CiAg
ICAgUUxpc3RCb3g6OmNsZWFyQ2FjaGVkVGV4dFJlbmRlcmVycygpOwotICAgIGZvciAoRGVwcmVj
YXRlZFB0ckxpc3RJdGVyYXRvcjxGcmFtZT4gaXQoRnJhbWU6Omluc3RhbmNlcygpKTsgaXQuY3Vy
cmVudCgpOyArK2l0KSB7Ci0gICAgICAgIFtNYWMoaXQuY3VycmVudCgpKS0+YnJpZGdlKCkgc2V0
TmVlZHNSZWFwcGx5U3R5bGVzXTsKLSAgICB9CisgICAgUGFnZTo6c2V0TmVlZHNSZWFwcGx5U3R5
bGVzKCk7CiB9CiAKIEBlbmQKSW5kZXg6IHBsYXRmb3JtL21hYy9Db2xvck1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBwbGF0Zm9ybS9tYWMvQ29sb3JNYWMubW0JKHJldmlzaW9uIDEzNjMxKQorKysgcGxh
dGZvcm0vbWFjL0NvbG9yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwMy02IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yMyw0OCArMjMsNTYgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAK
LSNpbmNsdWRlICJjb25maWcuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiQ29sb3Iu
aCIKIAorI2ltcG9ydCA8a3htbGNvcmUvQXNzZXJ0aW9ucy5oPgorCitAaW50ZXJmYWNlIFdlYkNv
cmVDb250cm9sVGludE9ic2VydmVyIDogTlNPYmplY3QKKysgKHZvaWQpY29udHJvbFRpbnREaWRD
aGFuZ2U7CitAZW5kCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gTlNDb2xvciBjYWxscyBk
b24ndCB0aHJvdywgc28gbm8gbmVlZCB0byBibG9jayBDb2NvYSBleGNlcHRpb25zIGluIHRoaXMg
ZmlsZQogCi1OU0NvbG9yICpuc0NvbG9yKGNvbnN0IENvbG9yICZjb2xvcikKK3N0YXRpYyBib29s
IHRpbnRJc0tub3duOworc3RhdGljIGJvb2wgdGludElzS25vd25Ub0JlR3JhcGhpdGU7CitzdGF0
aWMgdm9pZCAoKnRpbnRDaGFuZ2VGdW5jdGlvbikoKTsKKworTlNDb2xvciogbnNDb2xvcihjb25z
dCBDb2xvciYgY29sb3IpCiB7CiAgICAgdW5zaWduZWQgYyA9IGNvbG9yLnJnYigpOwogICAgIHN3
aXRjaCAoYykgewogICAgICAgICBjYXNlIDA6IHsKICAgICAgICAgICAgIC8vIE5lZWQgdGhpcyB0
byBhdm9pZCByZXR1cm5pbmcgbmlsIGJlY2F1c2UgY2FjaGVkUkdCQVZhbHVlcyB3aWxsIGRlZmF1
bHQgdG8gMC4KLSAgICAgICAgICAgIHN0YXRpYyBOU0NvbG9yICpjbGVhckNvbG9yID0gW1tOU0Nv
bG9yIGNsZWFyQ29sb3JdIHJldGFpbl07CisgICAgICAgICAgICBzdGF0aWMgTlNDb2xvciogY2xl
YXJDb2xvciA9IFtbTlNDb2xvciBjbGVhckNvbG9yXSByZXRhaW5dOwogICAgICAgICAgICAgcmV0
dXJuIGNsZWFyQ29sb3I7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDb2xvcjo6YmxhY2s6IHsK
LSAgICAgICAgICAgIHN0YXRpYyBOU0NvbG9yICpibGFja0NvbG9yID0gW1tOU0NvbG9yIGJsYWNr
Q29sb3JdIHJldGFpbl07CisgICAgICAgICAgICBzdGF0aWMgTlNDb2xvciogYmxhY2tDb2xvciA9
IFtbTlNDb2xvciBibGFja0NvbG9yXSByZXRhaW5dOwogICAgICAgICAgICAgcmV0dXJuIGJsYWNr
Q29sb3I7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDb2xvcjo6d2hpdGU6IHsKLSAgICAgICAg
ICAgIHN0YXRpYyBOU0NvbG9yICp3aGl0ZUNvbG9yID0gW1tOU0NvbG9yIHdoaXRlQ29sb3JdIHJl
dGFpbl07CisgICAgICAgICAgICBzdGF0aWMgTlNDb2xvciogd2hpdGVDb2xvciA9IFtbTlNDb2xv
ciB3aGl0ZUNvbG9yXSByZXRhaW5dOwogICAgICAgICAgICAgcmV0dXJuIHdoaXRlQ29sb3I7CiAg
ICAgICAgIH0KICAgICAgICAgZGVmYXVsdDogewogICAgICAgICAgICAgY29uc3QgaW50IGNhY2hl
U2l6ZSA9IDMyOwogICAgICAgICAgICAgc3RhdGljIHVuc2lnbmVkIGNhY2hlZFJHQkFWYWx1ZXNb
Y2FjaGVTaXplXTsKLSAgICAgICAgICAgIHN0YXRpYyBOU0NvbG9yICpjYWNoZWRDb2xvcnNbY2Fj
aGVTaXplXTsKKyAgICAgICAgICAgIHN0YXRpYyBOU0NvbG9yKiBjYWNoZWRDb2xvcnNbY2FjaGVT
aXplXTsKIAotICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0gY2FjaGVTaXplOyArK2kp
IHsKLSAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUkdCQVZhbHVlc1tpXSA9PSBjKSB7CisgICAg
ICAgICAgICBmb3IgKGludCBpID0gMDsgaSAhPSBjYWNoZVNpemU7ICsraSkKKyAgICAgICAgICAg
ICAgICBpZiAoY2FjaGVkUkdCQVZhbHVlc1tpXSA9PSBjKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gY2FjaGVkQ29sb3JzW2ldOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
IAogI2lmIENPTE9STUFUQ0hfRVZFUllUSElORwotICAgICAgICAgICAgTlNDb2xvciAqcmVzdWx0
ID0gW05TQ29sb3IgY29sb3JXaXRoQ2FsaWJyYXRlZFJlZDpjb2xvci5yZWQoKSAvIDI1NS4wCisg
ICAgICAgICAgICBOU0NvbG9yKiByZXN1bHQgPSBbTlNDb2xvciBjb2xvcldpdGhDYWxpYnJhdGVk
UmVkOmNvbG9yLnJlZCgpIC8gMjU1LjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3JlZW46Y29sb3IuZ3JlZW4oKSAvIDI1NS4wCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBibHVl
OmNvbG9yLmJsdWUoKSAvIDI1NS4wCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFscGhhOmNvbG9yLmFscGhhKCkgLzI1NS4wXTsKICNlbHNl
Ci0gICAgICAgICAgICBOU0NvbG9yICpyZXN1bHQgPSBbTlNDb2xvciBjb2xvcldpdGhEZXZpY2VS
ZWQ6Y29sb3IucmVkKCkgLyAyNTUuMAorICAgICAgICAgICAgTlNDb2xvciogcmVzdWx0ID0gW05T
Q29sb3IgY29sb3JXaXRoRGV2aWNlUmVkOmNvbG9yLnJlZCgpIC8gMjU1LjAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncmVlbjpjb2xvci5ncmVl
bigpIC8gMjU1LjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYmx1ZTpjb2xvci5ibHVlKCkgLyAyNTUuMAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFscGhhOmNvbG9yLmFscGhhKCkgLzI1NS4w
XTsKQEAgLTc0LDM4ICs4Miw3MCBAQAogICAgICAgICAgICAgY2FjaGVkUkdCQVZhbHVlc1tjdXJz
b3JdID0gYzsKICAgICAgICAgICAgIFtjYWNoZWRDb2xvcnNbY3Vyc29yXSBhdXRvcmVsZWFzZV07
CiAgICAgICAgICAgICBjYWNoZWRDb2xvcnNbY3Vyc29yXSA9IFtyZXN1bHQgcmV0YWluXTsKLSAg
ICAgICAgICAgIGlmICgrK2N1cnNvciA9PSBjYWNoZVNpemUpIHsKKyAgICAgICAgICAgIGlmICgr
K2N1cnNvciA9PSBjYWNoZVNpemUpCiAgICAgICAgICAgICAgICAgY3Vyc29yID0gMDsKLSAgICAg
ICAgICAgIH0KLQogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIH0K
IH0KIAotc3RhdGljIENHQ29sb3JSZWYgQ0dDb2xvckZyb21OU0NvbG9yKE5TQ29sb3IgKmNvbG9y
KQorc3RhdGljIENHQ29sb3JSZWYgQ0dDb2xvckZyb21OU0NvbG9yKE5TQ29sb3IqIGNvbG9yKQog
ewotICAgIC8vIHRoaXMgbmVlZHMgdG8gYWx3YXlzIHVzZSBkZXZpY2UgY29sb3JzcGFjZSBzbyBp
dCBjYW4gZGUtY2FsaWJyYXRlIHRoZSBjb2xvciBmb3IKLSAgICAvLyBDR0NvbG9yIHRvIHBvc3Np
Ymx5IHJlY2FsaWJyYXRlIGl0CisgICAgLy8gVGhpcyBuZWVkcyB0byBhbHdheXMgdXNlIGRldmlj
ZSBjb2xvcnNwYWNlIHNvIGl0IGNhbiBkZS1jYWxpYnJhdGUgdGhlIGNvbG9yIGZvcgorICAgIC8v
IENHQ29sb3IgdG8gcG9zc2libHkgcmVjYWxpYnJhdGUgaXQuCiAgICAgTlNDb2xvciogZGV2aWNl
Q29sb3IgPSBbY29sb3IgY29sb3JVc2luZ0NvbG9yU3BhY2VOYW1lOk5TRGV2aWNlUkdCQ29sb3JT
cGFjZV07CiAgICAgZmxvYXQgcmVkID0gW2RldmljZUNvbG9yIHJlZENvbXBvbmVudF07CiAgICAg
ZmxvYXQgZ3JlZW4gPSBbZGV2aWNlQ29sb3IgZ3JlZW5Db21wb25lbnRdOwogICAgIGZsb2F0IGJs
dWUgPSBbZGV2aWNlQ29sb3IgYmx1ZUNvbXBvbmVudF07CiAgICAgZmxvYXQgYWxwaGEgPSBbZGV2
aWNlQ29sb3IgYWxwaGFDb21wb25lbnRdOwotICAgIGNvbnN0IGZsb2F0IGNvbXBvbmVudHNbXSA9
IHsgcmVkLCBncmVlbiwgYmx1ZSwgYWxwaGEgfTsKLSAgICAKKyAgICBjb25zdCBmbG9hdCBjb21w
b25lbnRzWzRdID0geyByZWQsIGdyZWVuLCBibHVlLCBhbHBoYSB9OwogICAgIENHQ29sb3JTcGFj
ZVJlZiBjb2xvclNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCk7CiAgICAgQ0dD
b2xvclJlZiBjZ0NvbG9yID0gQ0dDb2xvckNyZWF0ZShjb2xvclNwYWNlLCBjb21wb25lbnRzKTsK
ICAgICBDR0NvbG9yU3BhY2VSZWxlYXNlKGNvbG9yU3BhY2UpOwogICAgIHJldHVybiBjZ0NvbG9y
OwogfQogCi1DR0NvbG9yUmVmIGNnQ29sb3IoY29uc3QgQ29sb3IgJmMpCitDR0NvbG9yUmVmIGNn
Q29sb3IoY29uc3QgQ29sb3ImIGMpCiB7CiAgICAgLy8gV2UgY291bGQgZGlyZWN0bHkgY3JlYXRl
IGEgQ0dDb2xvciBoZXJlLCBidXQgdGhhdCB3b3VsZAotICAgIC8vIHNraXAgYW55IHJnYiBjYWNo
aW5nIHRoZSBuc0NvbG9yIG1ldGhvZCBkb2VzLiAgQSBkaXJlY3QgCi0gICAgLy8gY3JlYXRpb24g
c2hvdWxkIGJlIGludmVzdGlnYXRlZCBmb3IgYSBwb3NzaWJsZSBwZXJmb3JtYW5jZSB3aW4uCisg
ICAgLy8gc2tpcCBhbnkgUkdCIGNhY2hpbmcgdGhlIG5zQ29sb3IgbWV0aG9kIGRvZXMuIEEgZGly
ZWN0IAorICAgIC8vIGNyZWF0aW9uIGNvdWxkIGJlIGludmVzdGlnYXRlZCBmb3IgYSBwb3NzaWJs
ZSBwZXJmb3JtYW5jZSB3aW4uCiAgICAgcmV0dXJuIENHQ29sb3JGcm9tTlNDb2xvcihuc0NvbG9y
KGMpKTsKIH0KIAotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3N0YXRpYyB2b2lkIG9i
c2VydmVUaW50KCkKK3sKKyAgICBBU1NFUlQoIXRpbnRJc0tub3duKTsKKyAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOltXZWJDb3JlQ29udHJvbFRp
bnRPYnNlcnZlciBjbGFzc10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGVjdG9yOkBzZWxlY3Rvcihjb250cm9sVGludERpZENoYW5nZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TQ29udHJvbFRp
bnREaWRDaGFuZ2VOb3RpZmljYXRpb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb2JqZWN0Ok5TQXBwXTsKKyAgICBbV2ViQ29yZUNvbnRyb2xUaW50T2Jz
ZXJ2ZXIgY29udHJvbFRpbnREaWRDaGFuZ2VdOworICAgIHRpbnRJc0tub3duID0gdHJ1ZTsKK30K
Kwordm9pZCBzZXRGb2N1c1JpbmdDb2xvckNoYW5nZUZ1bmN0aW9uKHZvaWQgKCpmdW5jdGlvbiko
KSkKK3sKKyAgICBBU1NFUlQoIXRpbnRDaGFuZ2VGdW5jdGlvbik7CisgICAgdGludENoYW5nZUZ1
bmN0aW9uID0gZnVuY3Rpb247CisgICAgaWYgKCF0aW50SXNLbm93bikKKyAgICAgICAgb2JzZXJ2
ZVRpbnQoKTsKK30KKworQ29sb3IgZm9jdXNSaW5nQ29sb3IoKQoreworICAgIGlmICghdGludElz
S25vd24pCisgICAgICAgIG9ic2VydmVUaW50KCk7CisgICAgcmV0dXJuIHRpbnRJc0tub3duVG9C
ZUdyYXBoaXRlID8gMHhGRjlDQUJCRCA6IDB4RkY3REFERDk7Cit9CisKK30KKworQGltcGxlbWVu
dGF0aW9uIFdlYkNvcmVDb250cm9sVGludE9ic2VydmVyCisKKysgKHZvaWQpY29udHJvbFRpbnRE
aWRDaGFuZ2UKK3sKKyAgICBXZWJDb3JlOjp0aW50SXNLbm93blRvQmVHcmFwaGl0ZSA9IFtOU0Nv
bG9yIGN1cnJlbnRDb250cm9sVGludF0gPT0gTlNHcmFwaGl0ZUNvbnRyb2xUaW50OworfQorCitA
ZW5kCkluZGV4OiBwbGF0Zm9ybS9Db2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBsYXRmb3JtL0NvbG9y
LmgJKHJldmlzaW9uIDEzNjMxKQorKysgcGxhdGZvcm0vQ29sb3IuaAkod29ya2luZyBjb3B5KQpA
QCAtMjYsOSArMjYsOCBAQAogI2lmbmRlZiBDT0xPUl9IXwogI2RlZmluZSBDT0xPUl9IXwogCi1j
bGFzcyBEZXByZWNhdGVkU3RyaW5nOwotCiAjaWYgX19BUFBMRV9fCisKICNpZmRlZiBfX09CSkNf
XwogQGNsYXNzIE5TQ29sb3I7CiAjZWxzZQpAQCAtMzYsNiArMzUsNyBAQAogI2VuZGlmCiAKIHR5
cGVkZWYgc3RydWN0IENHQ29sb3IgKkNHQ29sb3JSZWY7CisKICNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC01MywxMSArNTMsMTEgQEAKICAgICBDb2xvcihSR0JBMzIgY29sKSA6IGNv
bG9yKGNvbCksIHZhbGlkKHRydWUpIHsgfQogICAgIENvbG9yKGludCByLCBpbnQgZywgaW50IGIp
IDogY29sb3IobWFrZVJHQihyLCBnLCBiKSksIHZhbGlkKHRydWUpIHsgfQogICAgIENvbG9yKGlu
dCByLCBpbnQgZywgaW50IGIsIGludCBhKSA6IGNvbG9yKG1ha2VSR0JBKHIsIGcsIGIsIGEpKSwg
dmFsaWQodHJ1ZSkgeyB9Ci0gICAgZXhwbGljaXQgQ29sb3IoY29uc3QgRGVwcmVjYXRlZFN0cmlu
ZyYpOwotICAgIGV4cGxpY2l0IENvbG9yKGNvbnN0IGNoYXIgKik7CisgICAgZXhwbGljaXQgQ29s
b3IoY29uc3QgU3RyaW5nJik7CisgICAgZXhwbGljaXQgQ29sb3IoY29uc3QgY2hhciopOwogICAg
IAogICAgIFN0cmluZyBuYW1lKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXROYW1lZENvbG9yKGNvbnN0
IERlcHJlY2F0ZWRTdHJpbmcmKTsKKyAgICB2b2lkIHNldE5hbWVkQ29sb3IoY29uc3QgU3RyaW5n
Jik7CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiB2YWxpZDsgfQogCkBAIC02
NSwyMCArNjUsMTcgQEAKICAgICBpbnQgZ3JlZW4oKSBjb25zdCB7IHJldHVybiAoY29sb3IgPj4g
OCkgJiAweEZGOyB9CiAgICAgaW50IGJsdWUoKSBjb25zdCB7IHJldHVybiBjb2xvciAmIDB4RkY7
IH0KICAgICBpbnQgYWxwaGEoKSBjb25zdCB7IHJldHVybiAoY29sb3IgPj4gMjQpICYgMHhGRjsg
fQotICAgIFJHQkEzMiByZ2IoKSBjb25zdCB7IHJldHVybiBjb2xvciAmIDB4RkZGRkZGRkY7IH0g
Ly8gUHJlc2VydmUgdGhlIGFscGhhLgorICAgIFJHQkEzMiByZ2IoKSBjb25zdCB7IHJldHVybiBj
b2xvcjsgfSAvLyBQcmVzZXJ2ZSB0aGUgYWxwaGEuCiAgICAgdm9pZCBzZXRSZ2IoaW50IHIsIGlu
dCBnLCBpbnQgYikgeyBjb2xvciA9IG1ha2VSR0IociwgZywgYik7IHZhbGlkID0gdHJ1ZTsgfQot
ICAgIHZvaWQgc2V0UmdiKGludCByZ2IpIHsgY29sb3IgPSByZ2I7IHZhbGlkID0gdHJ1ZTsgLyog
QWxwaGEgbWF5IGJlIHNldC4gUHJlc2VydmUgaXQuICovIH0KLSAgICB2b2lkIGdldFJnYmFGKGZs
b2F0ICosIGZsb2F0ICosIGZsb2F0ICosIGZsb2F0ICopIGNvbnN0OworICAgIHZvaWQgc2V0Umdi
KFJHQkEzMiByZ2IpIHsgY29sb3IgPSByZ2I7IHZhbGlkID0gdHJ1ZTsgfQorICAgIHZvaWQgZ2V0
UmdiYUYoZmxvYXQqLCBmbG9hdCosIGZsb2F0KiwgZmxvYXQqKSBjb25zdDsKIAotICAgIHZvaWQg
aHN2KGludCAqLCBpbnQgKiwgaW50ICopIGNvbnN0OworICAgIHZvaWQgaHN2KGludCosIGludCos
IGludCopIGNvbnN0OwogICAgIHZvaWQgc2V0SHN2KGludCBoLCBpbnQgcywgaW50IHYpOwogCiAg
ICAgQ29sb3IgbGlnaHQoaW50IGYgPSAxNTApIGNvbnN0OwogICAgIENvbG9yIGRhcmsoaW50IGYg
PSAyMDApIGNvbnN0OwogCi0gICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDb2xvciAm
YSwgY29uc3QgQ29sb3IgJmIpOwotICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIT0oY29uc3QgQ29s
b3IgJmEsIGNvbnN0IENvbG9yICZiKTsKLQogICAgIHN0YXRpYyBjb25zdCBSR0JBMzIgYmxhY2sg
PSAweEZGMDAwMDAwOwogICAgIHN0YXRpYyBjb25zdCBSR0JBMzIgd2hpdGUgPSAweEZGRkZGRkZG
OwogICAgIHN0YXRpYyBjb25zdCBSR0JBMzIgZGFya0dyYXkgPSAweEZGODA4MDgwOwpAQCAtOTMs
MjMgKzkwLDIyIEBACiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgQ29sb3IgJmEsIGNv
bnN0IENvbG9yICZiKQogewotICAgIHJldHVybiBhLmNvbG9yID09IGIuY29sb3IgJiYgYS52YWxp
ZCA9PSBiLnZhbGlkOworICAgIHJldHVybiBhLnJnYigpID09IGIucmdiKCkgJiYgYS5pc1ZhbGlk
KCkgPT0gYi5pc1ZhbGlkKCk7CiB9CiAKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgQ29s
b3IgJmEsIGNvbnN0IENvbG9yICZiKQogewotICAgIHJldHVybiBhLmNvbG9yICE9IGIuY29sb3Ig
fHwgYS52YWxpZCAhPSBiLnZhbGlkOworICAgIHJldHVybiAhKGEgPT0gYik7CiB9CiAKK0NvbG9y
IGZvY3VzUmluZ0NvbG9yKCk7Cit2b2lkIHNldEZvY3VzUmluZ0NvbG9yQ2hhbmdlRnVuY3Rpb24o
dm9pZCAoKikoKSk7CisKICNpZiBfX0FQUExFX18KLU5TQ29sb3IgKm5zQ29sb3IoY29uc3QgQ29s
b3IgJik7Ci1DR0NvbG9yUmVmIGNnQ29sb3IoY29uc3QgQ29sb3IgJik7CitOU0NvbG9yKiBuc0Nv
bG9yKGNvbnN0IENvbG9yJik7CitDR0NvbG9yUmVmIGNnQ29sb3IoY29uc3QgQ29sb3ImKTsKICNl
bmRpZgogCiB9CiAKLS8vIEZJWE1FOiBSZW1vdmUgdXNpbmdzIHdoZW4gdGhlIHJlc3Qgb2YgS1dR
IGhhcyBiZWVuIGNvbnZlcnRlZC4KLXVzaW5nIFdlYkNvcmU6OlJHQkEzMjsKLXVzaW5nIFdlYkNv
cmU6OkNvbG9yOwotCiAjZW5kaWYKSW5kZXg6IHBsYXRmb3JtL1BsYXRmb3JtU3RyaW5nLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gcGxhdGZvcm0vUGxhdGZvcm1TdHJpbmcuaAkocmV2aXNpb24gMTM2MzEpCisr
KyBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3
IEBACiAgICAgU3RyaW5nKGNvbnN0IEtKUzo6SWRlbnRpZmllciYpOwogICAgIFN0cmluZyhjb25z
dCBLSlM6OlVTdHJpbmcmKTsKICAgICBTdHJpbmcoY29uc3QgY2hhciopOworICAgIFN0cmluZyhj
b25zdCBjaGFyKiwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBTdHJpbmcoU3RyaW5nSW1wbCogaSkg
OiBtX2ltcGwoaSkgeyB9CiAKICAgICBvcGVyYXRvciBLSlM6OklkZW50aWZpZXIoKSBjb25zdDsK
SW5kZXg6IHBsYXRmb3JtL0NvbG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwbGF0Zm9ybS9Db2xvci5j
cHAJKHJldmlzaW9uIDEzNjMxKQorKysgcGxhdGZvcm0vQ29sb3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMCw1MyArMzAsNDMgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1
ZGUgPGt4bWxjb3JlL0Fzc2VydGlvbnMuaD4KIAotLy8gVHVybiBvZmYgaW5saW5pbmcgdG8gYXZv
aWQgd2FybmluZyB3aXRoIG5ld2VyIGdjYy4KLSN1bmRlZiBfX2lubGluZQotI2RlZmluZSBfX2lu
bGluZQogI2luY2x1ZGUgIkNvbG9yRGF0YS5jIgotI3VuZGVmIF9faW5saW5lCiAKK3VzaW5nIG5h
bWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUkdCQTMyIG1ha2VSR0IoaW50
IHIsIGludCBnLCBpbnQgYikKIHsKLSAgICBpZiAociA8IDApIHIgPSAwOyBlbHNlIGlmIChyID4g
MjU1KSByID0gMjU1OwotICAgIGlmIChnIDwgMCkgZyA9IDA7IGVsc2UgaWYgKGcgPiAyNTUpIGcg
PSAyNTU7Ci0gICAgaWYgKGIgPCAwKSBiID0gMDsgZWxzZSBpZiAoYiA+IDI1NSkgYiA9IDI1NTsK
LSAgICByZXR1cm4gKHIgPDwgMTYgfCBnIDw8IDggfCBiKSB8IDB4RkYwMDAwMDA7CisgICAgcmV0
dXJuIDB4RkYwMDAwMDAgfCBtYXgoMCwgbWluKHIsIDI1NSkpIDw8IDE2IHwgbWF4KDAsIG1pbihn
LCAyNTUpKSA8PCA4IHwgbWF4KDAsIG1pbihiLCAyNTUpKTsKIH0KIAogUkdCQTMyIG1ha2VSR0JB
KGludCByLCBpbnQgZywgaW50IGIsIGludCBhKQogewotICAgIGlmIChyIDwgMCkgciA9IDA7IGVs
c2UgaWYgKHIgPiAyNTUpIHIgPSAyNTU7Ci0gICAgaWYgKGcgPCAwKSBnID0gMDsgZWxzZSBpZiAo
ZyA+IDI1NSkgZyA9IDI1NTsKLSAgICBpZiAoYiA8IDApIGIgPSAwOyBlbHNlIGlmIChiID4gMjU1
KSBiID0gMjU1OwotICAgIGlmIChhIDwgMCkgYSA9IDA7IGVsc2UgaWYgKGEgPiAyNTUpIGEgPSAy
NTU7Ci0gICAgcmV0dXJuIChhIDw8IDI0IHwgciA8PCAxNiB8IGcgPDwgOCB8IGIpOworICAgIHJl
dHVybiBtYXgoMCwgbWluKGEsIDI1NSkpIDw8IDI0IHwgbWF4KDAsIG1pbihyLCAyNTUpKSA8PCAx
NiB8IG1heCgwLCBtaW4oZywgMjU1KSkgPDwgOCB8IG1heCgwLCBtaW4oYiwgMjU1KSk7CiB9CiAK
LS8vIGNvcGllZCBmcm9tIGNzcy9jc3NwYXJzZXIuaAotc3RhdGljIGlubGluZSBib29sIHBhcnNl
SGV4Q29sb3IoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmbmFtZSwgUkdCQTMyICZyZ2IpCisvLyBv
cmlnaW5hbGx5IG1vdmVkIGhlcmUgZnJvbSB0aGUgQ1NTIHBhcnNlcgorc3RhdGljIGlubGluZSBi
b29sIHBhcnNlSGV4Q29sb3IoY29uc3QgU3RyaW5nJiBuYW1lLCBSR0JBMzIgJnJnYikKIHsKICAg
ICBpbnQgbGVuID0gbmFtZS5sZW5ndGgoKTsKLSAgICAKLSAgICBpZiAoICFsZW4gKQorICAgIGlm
ICghbGVuKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgYm9vbCBvazsKLSAgICAKLSAgICBp
ZiAoIGxlbiA9PSAzIHx8IGxlbiA9PSA2ICkgewotICAgICAgICBpbnQgdmFsID0gbmFtZS50b0lu
dCgmb2ssIDE2KTsKLSAgICAgICAgaWYgKCBvayApIHsKKworICAgIGlmIChsZW4gPT0gMyB8fCBs
ZW4gPT0gNikgeworICAgICAgICBib29sIG9rOworICAgICAgICBpbnQgdmFsID0gbmFtZS5kZXBy
ZWNhdGVkU3RyaW5nKCkudG9JbnQoJm9rLCAxNik7CisgICAgICAgIGlmIChvaykgewogICAgICAg
ICAgICAgaWYgKGxlbiA9PSA2KSB7Ci0gICAgICAgICAgICAgICAgcmdiID0gICgweGZmIDw8IDI0
KSB8IHZhbDsKKyAgICAgICAgICAgICAgICByZ2IgPSAoMHhmZiA8PCAyNCkgfCB2YWw7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNl
IGlmICggbGVuID09IDMgKSB7CisgICAgICAgICAgICBpZiAobGVuID09IDMpIHsKICAgICAgICAg
ICAgICAgICAvLyAjYWJjIGNvbnZlcnRzIHRvICNhYWJiY2MgYWNjb3JkaW5nIHRvIHRoZSBzcGVj
cwotICAgICAgICAgICAgICAgIHJnYiA9ICgweGZmIDw8IDI0KSB8Ci0gICAgICAgICAgICAgICAg
KHZhbCYweGYwMCk8PDEyIHwgKHZhbCYweGYwMCk8PDggfAotICAgICAgICAgICAgICAgICh2YWwm
MHhmMCk8PDggfCAodmFsJjB4ZjApPDw0IHwKLSAgICAgICAgICAgICAgICAodmFsJjB4Zik8PDQg
fCAodmFsJjB4Zik7CisgICAgICAgICAgICAgICAgcmdiID0gKDB4ZmYgPDwgMjQpCisgICAgICAg
ICAgICAgICAgICAgIHwgKHZhbCAmIDB4ZjAwKSA8PCAxMiB8ICh2YWwgJiAweGYwMCkgPDwgOAor
ICAgICAgICAgICAgICAgICAgICB8ICh2YWwgJiAweGYwKSA8PCA4IHwgKHZhbCAmIDB4ZjApIDw8
IDQKKyAgICAgICAgICAgICAgICAgICAgfCAodmFsICYgMHhmKSA8PCA0IHwgKHZhbCAmIDB4Zik7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
QEAgLTg0LDIzICs3NCwyMCBAQAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotQ29sb3I6OkNvbG9y
KGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcgJm5hbWUpIHsKLSAgICBpZihuYW1lLnN0YXJ0c1dpdGgo
IiMiKSkgewotICAgICAgICB2YWxpZCA9IHBhcnNlSGV4Q29sb3IobmFtZS5taWQoMSksIGNvbG9y
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBjb25zdCBOYW1lZENvbG9yICpmb3VuZENvbG9yID0g
ZmluZENvbG9yKG5hbWUuYXNjaWkoKSwgbmFtZS5sZW5ndGgoKSk7Ci0gICAgICAgIGNvbG9yID0g
Zm91bmRDb2xvciA/IGZvdW5kQ29sb3ItPlJHQlZhbHVlIDogMDsKLSAgICAgICAgY29sb3IgfD0g
MHhGRjAwMDAwMDsKLSAgICAgICAgdmFsaWQgPSBmb3VuZENvbG9yOwotICAgIH0KK0NvbG9yOjpD
b2xvcihjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgiIyIp
KQorICAgICAgICB2YWxpZCA9IHBhcnNlSGV4Q29sb3IobmFtZS5zdWJzdHJpbmcoMSksIGNvbG9y
KTsKKyAgICBlbHNlCisgICAgICAgIHNldE5hbWVkQ29sb3IobmFtZSk7CiB9CiAKLUNvbG9yOjpD
b2xvcihjb25zdCBjaGFyICpuYW1lKQorQ29sb3I6OkNvbG9yKGNvbnN0IGNoYXIqIG5hbWUpCiB7
Ci0gICAgaWYobmFtZVswXSA9PSAnIycpIHsKLSAgICAgICAgdmFsaWQgPSBwYXJzZUhleENvbG9y
KERlcHJlY2F0ZWRTdHJpbmcobmFtZSkubWlkKDEpLCBjb2xvcik7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgY29uc3QgTmFtZWRDb2xvciAqZm91bmRDb2xvciA9IGZpbmRDb2xvcihuYW1lLCBzdHJs
ZW4obmFtZSkpOworICAgIGlmIChuYW1lWzBdID09ICcjJykKKyAgICAgICAgdmFsaWQgPSBwYXJz
ZUhleENvbG9yKCZuYW1lWzFdLCBjb2xvcik7CisgICAgZWxzZSB7CisgICAgICAgIGNvbnN0IE5h
bWVkQ29sb3IqIGZvdW5kQ29sb3IgPSBmaW5kQ29sb3IobmFtZSwgc3RybGVuKG5hbWUpKTsKICAg
ICAgICAgY29sb3IgPSBmb3VuZENvbG9yID8gZm91bmRDb2xvci0+UkdCVmFsdWUgOiAwOwogICAg
ICAgICBjb2xvciB8PSAweEZGMDAwMDAwOwogICAgICAgICB2YWxpZCA9IGZvdW5kQ29sb3I7CkBA
IC0xMTcsOSArMTA0LDEwIEBACiAgICAgcmV0dXJuIG5hbWU7CiB9CiAKLXZvaWQgQ29sb3I6OnNl
dE5hbWVkQ29sb3IoY29uc3QgRGVwcmVjYXRlZFN0cmluZyAmbmFtZSkKK3ZvaWQgQ29sb3I6OnNl
dE5hbWVkQ29sb3IoY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIGNvbnN0IE5hbWVkQ29sb3Ig
KmZvdW5kQ29sb3IgPSBuYW1lLmlzQWxsQVNDSUkoKSA/IGZpbmRDb2xvcihuYW1lLmxhdGluMSgp
LCBuYW1lLmxlbmd0aCgpKSA6IDA7CisgICAgRGVwcmVjYXRlZFN0cmluZyBkbmFtZSA9IG5hbWUu
ZGVwcmVjYXRlZFN0cmluZygpOworICAgIGNvbnN0IE5hbWVkQ29sb3IqIGZvdW5kQ29sb3IgPSBk
bmFtZS5pc0FsbEFTQ0lJKCkgPyBmaW5kQ29sb3IoZG5hbWUubGF0aW4xKCksIGRuYW1lLmxlbmd0
aCgpKSA6IDA7CiAgICAgY29sb3IgPSBmb3VuZENvbG9yID8gZm91bmRDb2xvci0+UkdCVmFsdWUg
OiAwOwogICAgIGNvbG9yIHw9IDB4RkYwMDAwMDA7CiAgICAgdmFsaWQgPSBmb3VuZENvbG9yOwpJ
bmRleDogcmVuZGVyaW5nL3JlbmRlcl9zdHlsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHJlbmRlcmluZy9y
ZW5kZXJfc3R5bGUuaAkocmV2aXNpb24gMTM2MzEpCisrKyByZW5kZXJpbmcvcmVuZGVyX3N0eWxl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCit1c2luZyBzdGQ6Om1heDsKKwogY2xhc3MgQ1NTU3R5bGVTZWxlY3RvcjsKIGNsYXNzIENh
Y2hlZEltYWdlOwogY2xhc3MgQ2FjaGVkT2JqZWN0OwpAQCAtMTE1Niw4ICsxMTU4LDEyIEBACiAg
ICAgY29uc3QgQ29sb3ImICAgYm9yZGVyQm90dG9tQ29sb3IoKSBjb25zdCB7ICByZXR1cm4gc3Vy
cm91bmQtPmJvcmRlci5ib3R0b20uY29sb3I7IH0KICAgICBib29sIGJvcmRlckJvdHRvbUlzVHJh
bnNwYXJlbnQoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVyLmJvdHRvbS5pc1RyYW5z
cGFyZW50KCk7IH0KICAgICAKLSAgICB1bnNpZ25lZCBzaG9ydCBvdXRsaW5lU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG91dGxpbmVXaWR0aCgpICsgb3V0bGluZU9mZnNldCgpOyB9Ci0gICAgdW5zaWdu
ZWQgc2hvcnQgb3V0bGluZVdpZHRoKCkgY29uc3QgeyBpZiAoYmFja2dyb3VuZC0+bV9vdXRsaW5l
LnN0eWxlKCkgPT0gQk5PTkUgfHwgYmFja2dyb3VuZC0+bV9vdXRsaW5lLnN0eWxlKCkgPT0gQkhJ
RERFTikgcmV0dXJuIDA7IHJldHVybiBiYWNrZ3JvdW5kLT5tX291dGxpbmUud2lkdGg7IH0KKyAg
ICB1bnNpZ25lZCBzaG9ydCBvdXRsaW5lU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1heCgwLCBvdXRs
aW5lV2lkdGgoKSArIG91dGxpbmVPZmZzZXQoKSk7IH0KKyAgICB1bnNpZ25lZCBzaG9ydCBvdXRs
aW5lV2lkdGgoKSBjb25zdCB7CisgICAgICAgIGlmIChiYWNrZ3JvdW5kLT5tX291dGxpbmUuc3R5
bGUoKSA9PSBCTk9ORSB8fCBiYWNrZ3JvdW5kLT5tX291dGxpbmUuc3R5bGUoKSA9PSBCSElEREVO
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBiYWNrZ3JvdW5kLT5tX291
dGxpbmUud2lkdGg7CisgICAgfQogICAgIEVCb3JkZXJTdHlsZSAgIG91dGxpbmVTdHlsZSgpIGNv
bnN0IHsgIHJldHVybiBiYWNrZ3JvdW5kLT5tX291dGxpbmUuc3R5bGUoKTsgfQogICAgIGJvb2wg
b3V0bGluZVN0eWxlSXNBdXRvKCkgY29uc3QgeyByZXR1cm4gYmFja2dyb3VuZC0+bV9vdXRsaW5l
Ll9hdXRvOyB9CiAgICAgY29uc3QgQ29sb3IgJiAgb3V0bGluZUNvbG9yKCkgY29uc3QgeyAgcmV0
dXJuIGJhY2tncm91bmQtPm1fb3V0bGluZS5jb2xvcjsgfQpAQCAtMTI4Myw3ICsxMjg5LDkgQEAK
ICAgICBCaW5kaW5nVVJJKiBiaW5kaW5nVVJJcygpIGNvbnN0IHsgcmV0dXJuIGNzczNOb25Jbmhl
cml0ZWREYXRhLT5iaW5kaW5nVVJJOyB9CiAjZW5kaWYKICAgICBpbnQgb3V0bGluZU9mZnNldCgp
IGNvbnN0IHsgCi0gICAgICAgIGlmIChiYWNrZ3JvdW5kLT5tX291dGxpbmUuc3R5bGUoKSA9PSBC
Tk9ORSB8fCBiYWNrZ3JvdW5kLT5tX291dGxpbmUuc3R5bGUoKSA9PSBCSElEREVOKSByZXR1cm4g
MDsgcmV0dXJuIGJhY2tncm91bmQtPm1fb3V0bGluZS5fb2Zmc2V0OworICAgICAgICBpZiAoYmFj
a2dyb3VuZC0+bV9vdXRsaW5lLnN0eWxlKCkgPT0gQk5PTkUgfHwgYmFja2dyb3VuZC0+bV9vdXRs
aW5lLnN0eWxlKCkgPT0gQkhJRERFTikKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gYmFja2dyb3VuZC0+bV9vdXRsaW5lLl9vZmZzZXQ7CiAgICAgfQogICAgIFNoYWRvd0Rh
dGEqIHRleHRTaGFkb3coKSBjb25zdCB7IHJldHVybiBjc3MzSW5oZXJpdGVkRGF0YS0+dGV4dFNo
YWRvdzsgfQogICAgIGZsb2F0IG9wYWNpdHkoKSBjb25zdCB7IHJldHVybiBjc3MzTm9uSW5oZXJp
dGVkRGF0YS0+b3BhY2l0eTsgfQpAQCAtMTUwMSw3ICsxNTA5LDcgQEAKICAgICB9CiAgICAgdm9p
ZCBhZGRCaW5kaW5nVVJJKFN0cmluZ0ltcGwqIHVyaSk7CiAjZW5kaWYKLSAgICB2b2lkIHNldE91
dGxpbmVPZmZzZXQodW5zaWduZWQgc2hvcnQgdikgeyBTRVRfVkFSKGJhY2tncm91bmQsIG1fb3V0
bGluZS5fb2Zmc2V0LCB2KSB9CisgICAgdm9pZCBzZXRPdXRsaW5lT2Zmc2V0KGludCB2KSB7IFNF
VF9WQVIoYmFja2dyb3VuZCwgbV9vdXRsaW5lLl9vZmZzZXQsIHYpIH0KICAgICB2b2lkIHNldFRl
eHRTaGFkb3coU2hhZG93RGF0YSogdmFsLCBib29sIGFkZD1mYWxzZSk7CiAgICAgdm9pZCBzZXRP
cGFjaXR5KGZsb2F0IGYpIHsgU0VUX1ZBUihjc3MzTm9uSW5oZXJpdGVkRGF0YSwgb3BhY2l0eSwg
Zik7IH0KICAgICB2b2lkIHNldEFwcGVhcmFuY2UoRUFwcGVhcmFuY2UgYSkgeyBTRVRfVkFSKGNz
czNOb25Jbmhlcml0ZWREYXRhLCBtX2FwcGVhcmFuY2UsIGEpOyB9CkluZGV4OiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMzYzNCkKKysrIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjg5LDYgKzI4OSwxOSBAQAogCQk5M0I3
ODBDQTA5QjNCN0ZFMDA2OTAxNjIgLyogV2lkZ2V0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0I3ODBDOTA5QjNCN0ZFMDA2OTAxNjIgLyog
V2lkZ2V0Q2xpZW50LmggKi87IH07CiAJCTkzQzg0MUY4MDlDRTg1NUMwMERGRjVFNSAvKiBET01J
bXBsZW1lbnRhdGlvbkZyb250LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5M0M4NDFGNzA5Q0U4NTVDMDBERkY1RTUgLyogRE9NSW1wbGVtZW50YXRpb25G
cm9udC5oICovOyB9OwogCQk5M0M4NDFGRjA5Q0U4NTgzMDBERkY1RTUgLyogRE9NSW1wbGVtZW50
YXRpb25Gcm9udC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5M0M4NDFGRTA5Q0U4NTgzMDBERkY1RTUgLyogRE9NSW1wbGVtZW50YXRpb25Gcm9udC5j
cHAgKi87IH07CisJCTkzQ0E0Q0E0MDlERjkzRkEwMERGODY3NyAvKiBDU1NTdHlsZURlY2xhcmF0
aW9uLmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNDQTRDOTcwOURGOTNGQTAwREY4Njc3IC8qIENTU1N0eWxlRGVjbGFyYXRpb24uaWRsICovOyB9
OworCQk5M0NBNENBNTA5REY5M0ZBMDBERjg2NzcgLyogQ1NTU3R5bGVTaGVldC5pZGwgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQ0E0Qzk4MDlERjkz
RkEwMERGODY3NyAvKiBDU1NTdHlsZVNoZWV0LmlkbCAqLzsgfTsKKwkJOTNDQTRDQTYwOURGOTNG
QTAwREY4Njc3IC8qIGh0bWw0LmNzcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNDQTRDOTkwOURGOTNGQTAwREY4Njc3IC8qIGh0bWw0LmNzcyAqLzsg
fTsKKwkJOTNDQTRDQTcwOURGOTNGQTAwREY4Njc3IC8qIG1ha2UtY3NzLWZpbGUtYXJyYXlzLnBs
IGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0NBNEM5
QTA5REY5M0ZBMDBERjg2NzcgLyogbWFrZS1jc3MtZmlsZS1hcnJheXMucGwgKi87IH07CisJCTkz
Q0E0Q0E4MDlERjkzRkEwMERGODY3NyAvKiBtYWtlcHJvcCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDQTRDOUIwOURGOTNGQTAwREY4Njc3IC8qIG1h
a2Vwcm9wICovOyB9OworCQk5M0NBNENBOTA5REY5M0ZBMDBERjg2NzcgLyogbWFrZXRva2VuaXpl
ciBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDQTRD
OUMwOURGOTNGQTAwREY4Njc3IC8qIG1ha2V0b2tlbml6ZXIgKi87IH07CisJCTkzQ0E0Q0FBMDlE
RjkzRkEwMERGODY3NyAvKiBtYWtldmFsdWVzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0NBNEM5RDA5REY5M0ZBMDBERjg2NzcgLyogbWFrZXZhbHVl
cyAqLzsgfTsKKwkJOTNDQTRDQUIwOURGOTNGQTAwREY4Njc3IC8qIE1lZGlhTGlzdC5pZGwgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQ0E0QzlFMDlE
RjkzRkEwMERGODY3NyAvKiBNZWRpYUxpc3QuaWRsICovOyB9OworCQk5M0NBNENBQzA5REY5M0ZB
MDBERjg2NzcgLyogcXVpcmtzLmNzcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNDQTRDOUYwOURGOTNGQTAwREY4Njc3IC8qIHF1aXJrcy5jc3MgKi87
IH07CisJCTkzQ0E0Q0FEMDlERjkzRkEwMERGODY3NyAvKiBTdHlsZVNoZWV0LmlkbCBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDQTRDQTAwOURGOTNG
QTAwREY4Njc3IC8qIFN0eWxlU2hlZXQuaWRsICovOyB9OworCQk5M0NBNENBRTA5REY5M0ZBMDBE
Rjg2NzcgLyogU3R5bGVTaGVldExpc3QuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0NBNENBMTA5REY5M0ZBMDBERjg2NzcgLyogU3R5bGVTaGVl
dExpc3QuaWRsICovOyB9OworCQk5M0NBNENBRjA5REY5M0ZBMDBERjg2NzcgLyogc3ZnLmNzcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDQTRDQTIw
OURGOTNGQTAwREY4Njc3IC8qIHN2Zy5jc3MgKi87IH07CisJCTkzQ0E0Q0IwMDlERjkzRkEwMERG
ODY3NyAvKiB0b2tlbml6ZXIuZmxleCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNDQTRDQTMwOURGOTNGQTAwREY4Njc3IC8qIHRva2VuaXplci5mbGV4
ICovOyB9OwogCQk5M0NENEZERTA5OTVGOUVBMDA3RUNDOTcgLyogQXRvbWljU3RyaW5nLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQ0Q0RkQ3MDk5
NUY5RUEwMDdFQ0M5NyAvKiBBdG9taWNTdHJpbmcuY3BwICovOyB9OwogCQk5M0NENEZERjA5OTVG
OUVBMDA3RUNDOTcgLyogQXRvbWljU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5M0NENEZEODA5OTVGOUVBMDA3RUNDOTcgLyogQXRvbWljU3Ry
aW5nLmggKi87IH07CiAJCTkzQ0Q0RkUwMDk5NUY5RUEwMDdFQ0M5NyAvKiBBdG9taWNTdHJpbmdJ
bXBsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0NE
NEZEOTA5OTVGOUVBMDA3RUNDOTcgLyogQXRvbWljU3RyaW5nSW1wbC5oICovOyB9OwpAQCAtMTI1
NywxNCArMTI3MCwxMiBAQAogCQk2NTY1ODBFRDA5RDEyQjIwMDAwRTYxRDcgLyogQ1NTUHJvcGVy
dHlOYW1lcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gQ1NTUHJvcGVydHlO
YW1lcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODBFRTA5RDEyQjIwMDAw
RTYxRDcgLyogQ1NTUHJvcGVydHlOYW1lcy5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
Q1NTUHJvcGVydHlOYW1lcy5ncGVyZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2
NTgwRUYwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNjU2NTgwRjAwOUQxMkIyMDAwMEU2MUQ3IC8qIENTU1Byb3BlcnR5TmFt
ZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1Byb3BlcnR5TmFtZXMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MEYxMDlEMTJCMjAwMDBFNjFENyAvKiBDU1NQ
cm9wZXJ0eU5hbWVzLnN0cmlwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NQcm9wZXJ0eU5h
bWVzLnN0cmlwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODExQzA5RDEyREIy
MDAwRTYxRDcgLyogRG9jVHlwZVN0cmluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IERvY1R5cGVTdHJpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNjU2NTgxNDQwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU0dyYW1tYXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0dyYW1tYXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODE0NjA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVL
ZXl3b3Jkcy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gQ1NTVmFsdWVLZXl3
b3Jkcy5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODE0NzA5RDEzMDQzMDAw
RTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
Q1NTVmFsdWVLZXl3b3Jkcy5ncGVyZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU2
NTgxNDgwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVlS2V5d29yZHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJNjU2NTgxNDkwOUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29y
ZHMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU1ZhbHVlS2V5d29yZHMuaW47IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NjU4MTRBMDlEMTMwNDMwMDBFNjFENyAvKiBDU1NW
YWx1ZUtleXdvcmRzLnN0cmlwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NWYWx1ZUtleXdv
cmRzLnN0cmlwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTY1ODE0QjA5RDEzMDQz
MDAwRTYxRDcgLyogSFRNTEVudGl0eU5hbWVzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7
IHBhdGggPSBIVE1MRW50aXR5TmFtZXMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NjU2NTgxNEMwOUQxMzA0MzAwMEU2MUQ3IC8qIHRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gdG9rZW5pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE1MzcsNiArMTU0OCwxOSBAQAogCQk5M0I3ODBDOTA5QjNCN0ZFMDA2OTAx
NjIgLyogV2lkZ2V0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
aWRnZXRDbGllbnQuaDsgcGF0aCA9IHBsYXRmb3JtL1dpZGdldENsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0M4NDFGNzA5Q0U4NTVDMDBERkY1RTUgLyogRE9NSW1wbGVt
ZW50YXRpb25Gcm9udC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBET01JbXBs
ZW1lbnRhdGlvbkZyb250Lmg7IHBhdGggPSBiaW5kaW5ncy9vYmpjL0RPTUltcGxlbWVudGF0aW9u
RnJvbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNDODQxRkUwOUNFODU4MzAw
REZGNUU1IC8qIERPTUltcGxlbWVudGF0aW9uRnJvbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gRE9NSW1wbGVtZW50YXRpb25Gcm9udC5jcHA7IHBhdGggPSBiaW5k
aW5ncy9vYmpjL0RPTUltcGxlbWVudGF0aW9uRnJvbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0NBNEM5NzA5REY5M0ZBMDBERjg2NzcgLyogQ1NTU3R5bGVEZWNsYXJhdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQ0E0Qzk4MDlERjkzRkEwMERGODY3NyAvKiBD
U1NTdHlsZVNoZWV0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NTdHlsZVNoZWV0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDQTRDOTkwOURGOTNGQTAwREY4Njc3
IC8qIGh0bWw0LmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBodG1sNC5jc3M7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQ0E0QzlBMDlERjkzRkEwMERGODY3NyAvKiBtYWtlLWNz
cy1maWxlLWFycmF5cy5wbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnBlcmw7IHBhdGggPSAibWFr
ZS1jc3MtZmlsZS1hcnJheXMucGwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0NB
NEM5QjA5REY5M0ZBMDBERjg2NzcgLyogbWFrZXByb3AgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
bWFrZXByb3A7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQ0E0QzlDMDlERjkzRkEw
MERGODY3NyAvKiBtYWtldG9rZW5pemVyICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IG1ha2V0b2tl
bml6ZXI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQ0E0QzlEMDlERjkzRkEwMERG
ODY3NyAvKiBtYWtldmFsdWVzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IG1ha2V2YWx1ZXM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQ0E0QzlFMDlERjkzRkEwMERGODY3NyAvKiBN
ZWRpYUxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhTGlzdC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQ0E0QzlGMDlERjkzRkEwMERGODY3NyAvKiBxdWly
a3MuY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IHF1aXJrcy5jc3M7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTkzQ0E0Q0EwMDlERjkzRkEwMERGODY3NyAvKiBTdHlsZVNoZWV0Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHlsZVNoZWV0LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNDQTRDQTEwOURGOTNGQTAwREY4Njc3IC8qIFN0eWxlU2hlZXRMaXN0
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHlsZVNoZWV0TGlzdC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzQ0E0Q0EyMDlERjkzRkEwMERGODY3NyAvKiBzdmcuY3Nz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IHN2Zy5jc3M7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzQ0E0Q0EzMDlERjkzRkEwMERGODY3NyAvKiB0b2tlbml6ZXIuZmxleCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSB0b2tlbml6ZXIuZmxleDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNDQ0Y3RDQwMzNCRDQzQzAwODYzNUNFIC8qIEtXUUZpbGVCdXR0b24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS1dRRmlsZUJ1dHRv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJOTNDQ0Y3RDUwMzNCRDQzQzAwODYzNUNFIC8qIEtXUUZpbGVCdXR0b24ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBLV1FG
aWxlQnV0dG9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJOTNDRDRGRDcwOTk1RjlFQTAwN0VDQzk3IC8qIEF0b21pY1N0cmluZy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBBdG9taWNTdHJpbmcuY3Bw
OyBwYXRoID0gcGxhdGZvcm0vQXRvbWljU3RyaW5nLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI2MDUsMTIgKzI2MjksMTAgQEAKIAkJCQk2NTY1ODBFRDA5RDEyQjIwMDAwRTYx
RDcgLyogQ1NTUHJvcGVydHlOYW1lcy5jICovLAogCQkJCTY1NjU4MEVFMDlEMTJCMjAwMDBFNjFE
NyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmdwZXJmICovLAogCQkJCTY1NjU4MEVGMDlEMTJCMjAwMDBF
NjFENyAvKiBDU1NQcm9wZXJ0eU5hbWVzLmggKi8sCi0JCQkJNjU2NTgwRjAwOUQxMkIyMDAwMEU2
MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuaW4gKi8sCiAJCQkJNjU2NTgwRjEwOUQxMkIyMDAwMEU2
MUQ3IC8qIENTU1Byb3BlcnR5TmFtZXMuc3RyaXAgKi8sCiAJCQkJNjU2NTgxNDYwOUQxMzA0MzAw
MEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuYyAqLywKIAkJCQk2NTY1ODE0NzA5RDEzMDQzMDAw
RTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5ncGVyZiAqLywKIAkJCQk2NTY1ODE0ODA5RDEzMDQz
MDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oICovLAotCQkJCTY1NjU4MTQ5MDlEMTMwNDMw
MDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmluICovLAogCQkJCTY1NjU4MTRBMDlEMTMwNDMw
MDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLnN0cmlwICovLAogCQkJCTY1NjU4MTFDMDlEMTJE
QjIwMDBFNjFENyAvKiBEb2NUeXBlU3RyaW5ncy5jcHAgKi8sCiAJCQkJNjU2NTgxNEIwOUQxMzA0
MzAwMEU2MUQ3IC8qIEhUTUxFbnRpdHlOYW1lcy5jICovLApAQCAtMzE3Miw3ICszMTk0LDcgQEAK
IAkJCXBhdGggPSBzdmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQlBODg0
MjdGQzA5MzA4MUFEMDBCNkQ0NjEgLyogS0RPTSBTdXBwb3J0ICovID0geworCQlBOEMwRjZEQzA4
OTcwMUYxMDBCQTUxMTQgLyogV2ViQ29yZStTVkcgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAogCQkJCUE4ODQyODNEMDkzMDhDMUMwMEI2RDQ2MSAvKiBET01MaXN0
LmggKi8sCkBAIC0zMTgyLDE0ICszMjA0LDYgQEAKIAkJCQlBODg0MjgzODA5MzA4QzFDMDBCNkQ0
NjEgLyogU1ZHTmFtZXNXcmFwcGVyLmNwcCAqLywKIAkJCQlBOEMzMkQ5NjA5M0Q4RUE0MDAwQjlD
QUMgLyogWExpbmtOYW1lc1dyYXBwZXIuY3BwICovLAogCQkJKTsKLQkJCW5hbWUgPSAiS0RPTSBT
dXBwb3J0IjsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0JCUE4QzBGNkRDMDg5
NzAxRjEwMEJBNTExNCAvKiBXZWJDb3JlK1NWRyAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwot
CQkJY2hpbGRyZW4gPSAoCi0JCQkJQTg4NDI3RkMwOTMwODFBRDAwQjZENDYxIC8qIEtET00gU3Vw
cG9ydCAqLywKLQkJCSk7CiAJCQlwYXRoID0gIldlYkNvcmUrU1ZHIjsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CiAJCX07CkBAIC0zOTA0LDI0ICszOTE4LDM3IEBACiAJCQljaGlsZHJlbiA9
ICgKIAkJCQlCQ0VBNDc3QTA5N0NBQUM4MDA5NEM5RTQgLyogY3NzX2Jhc2UuY3BwICovLAogCQkJ
CUJDRUE0NzdCMDk3Q0FBQzgwMDk0QzlFNCAvKiBjc3NfYmFzZS5oICovLAotCQkJCUJDRUE0NzdD
MDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwICovLAot
CQkJCUJDRUE0NzdEMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uaCAqLywKLQkJCQlCQ0VBNDc3RTA5N0NBQUM4MDA5NEM5RTQgLyogQ1NTR3JhbW1hci55ICov
LAogCQkJCUJDRUE0NzdGMDk3Q0FBQzgwMDk0QzlFNCAvKiBjc3NfcnVsZWltcGwuY3BwICovLAog
CQkJCUJDRUE0NzgwMDk3Q0FBQzgwMDk0QzlFNCAvKiBjc3NfcnVsZWltcGwuaCAqLywKIAkJCQlC
Q0VBNDc4MTA5N0NBQUM4MDA5NEM5RTQgLyogY3NzX3N0eWxlc2hlZXRpbXBsLmNwcCAqLywKIAkJ
CQlCQ0VBNDc4MjA5N0NBQUM4MDA5NEM5RTQgLyogY3NzX3N0eWxlc2hlZXRpbXBsLmggKi8sCiAJ
CQkJQkNFQTQ3ODMwOTdDQUFDODAwOTRDOUU0IC8qIGNzc192YWx1ZWltcGwuY3BwICovLAogCQkJ
CUJDRUE0Nzg0MDk3Q0FBQzgwMDk0QzlFNCAvKiBjc3NfdmFsdWVpbXBsLmggKi8sCisJCQkJQkNF
QTQ3N0MwOTdDQUFDODAwOTRDOUU0IC8qIENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Ki8sCisJCQkJQkNFQTQ3N0QwOTdDQUFDODAwOTRDOUU0IC8qIENTU0NvbXB1dGVkU3R5bGVEZWNs
YXJhdGlvbi5oICovLAorCQkJCUJDRUE0NzdFMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NHcmFtbWFy
LnkgKi8sCiAJCQkJQkNFQTQ3ODUwOTdDQUFDODAwOTRDOUU0IC8qIGNzc2hlbHBlci5jcHAgKi8s
CiAJCQkJQkNFQTQ3ODYwOTdDQUFDODAwOTRDOUU0IC8qIGNzc2hlbHBlci5oICovLAogCQkJCUJD
RUE0Nzg3MDk3Q0FBQzgwMDk0QzlFNCAvKiBjc3NwYXJzZXIuY3BwICovLAogCQkJCUJDRUE0Nzg4
MDk3Q0FBQzgwMDk0QzlFNCAvKiBjc3NwYXJzZXIuaCAqLywKIAkJCQlCQ0VBNDc4OTA5N0NBQUM4
MDA5NEM5RTQgLyogQ1NTUHJvcGVydHlOYW1lcy5pbiAqLywKKwkJCQk5M0NBNEM5NzA5REY5M0ZB
MDBERjg2NzcgLyogQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwgKi8sCiAJCQkJQkNFQTQ3OEEwOTdD
QUFDODAwOTRDOUU0IC8qIGNzc3N0eWxlc2VsZWN0b3IuY3BwICovLAogCQkJCUJDRUE0NzhCMDk3
Q0FBQzgwMDk0QzlFNCAvKiBjc3NzdHlsZXNlbGVjdG9yLmggKi8sCisJCQkJOTNDQTRDOTgwOURG
OTNGQTAwREY4Njc3IC8qIENTU1N0eWxlU2hlZXQuaWRsICovLAogCQkJCUJDRUE0NzhDMDk3Q0FB
QzgwMDk0QzlFNCAvKiBDU1NWYWx1ZUtleXdvcmRzLmluICovLAorCQkJCTkzQ0E0Qzk5MDlERjkz
RkEwMERGODY3NyAvKiBodG1sNC5jc3MgKi8sCiAJCQkJOTM1QzQ3NjAwOUFDNENEMTAwQTZBQUI0
IC8qIExlbmd0aC5oICovLAorCQkJCTkzQ0E0QzlBMDlERjkzRkEwMERGODY3NyAvKiBtYWtlLWNz
cy1maWxlLWFycmF5cy5wbCAqLywKKwkJCQk5M0NBNEM5QjA5REY5M0ZBMDBERjg2NzcgLyogbWFr
ZXByb3AgKi8sCisJCQkJOTNDQTRDOUMwOURGOTNGQTAwREY4Njc3IC8qIG1ha2V0b2tlbml6ZXIg
Ki8sCisJCQkJOTNDQTRDOUQwOURGOTNGQTAwREY4Njc3IC8qIG1ha2V2YWx1ZXMgKi8sCisJCQkJ
OTNDQTRDOUUwOURGOTNGQTAwREY4Njc3IC8qIE1lZGlhTGlzdC5pZGwgKi8sCisJCQkJOTNDQTRD
OUYwOURGOTNGQTAwREY4Njc3IC8qIHF1aXJrcy5jc3MgKi8sCisJCQkJOTNDQTRDQTAwOURGOTNG
QTAwREY4Njc3IC8qIFN0eWxlU2hlZXQuaWRsICovLAorCQkJCTkzQ0E0Q0ExMDlERjkzRkEwMERG
ODY3NyAvKiBTdHlsZVNoZWV0TGlzdC5pZGwgKi8sCisJCQkJOTNDQTRDQTIwOURGOTNGQTAwREY4
Njc3IC8qIHN2Zy5jc3MgKi8sCisJCQkJOTNDQTRDQTMwOURGOTNGQTAwREY4Njc3IC8qIHRva2Vu
aXplci5mbGV4ICovLAogCQkJKTsKIAkJCXBhdGggPSBjc3M7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtNDk1Niw2ICs0OTgzLDE5IEBACiAJCQkJOTMwQ0FCOTAwOUM0OUYxQjAwMjI5
QzA0IC8qIENhbnZhc1BhdHRlcm4uaWRsIGluIFJlc291cmNlcyAqLywKIAkJCQk5MzBDQUI5NzA5
QzQ5RkFBMDAyMjlDMDQgLyogQ29kZUdlbmVyYXRvckpTLnBtIGluIFJlc291cmNlcyAqLywKIAkJ
CQk5MzZERDAzQjA5Q0VBQzI3MDA1NkFFOEMgLyogUmFuZ2UuaWRsIGluIFJlc291cmNlcyAqLywK
KwkJCQk5M0NBNENBNDA5REY5M0ZBMDBERjg2NzcgLyogQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwg
aW4gUmVzb3VyY2VzICovLAorCQkJCTkzQ0E0Q0E1MDlERjkzRkEwMERGODY3NyAvKiBDU1NTdHls
ZVNoZWV0LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJOTNDQTRDQTYwOURGOTNGQTAwREY4Njc3
IC8qIGh0bWw0LmNzcyBpbiBSZXNvdXJjZXMgKi8sCisJCQkJOTNDQTRDQTcwOURGOTNGQTAwREY4
Njc3IC8qIG1ha2UtY3NzLWZpbGUtYXJyYXlzLnBsIGluIFJlc291cmNlcyAqLywKKwkJCQk5M0NB
NENBODA5REY5M0ZBMDBERjg2NzcgLyogbWFrZXByb3AgaW4gUmVzb3VyY2VzICovLAorCQkJCTkz
Q0E0Q0E5MDlERjkzRkEwMERGODY3NyAvKiBtYWtldG9rZW5pemVyIGluIFJlc291cmNlcyAqLywK
KwkJCQk5M0NBNENBQTA5REY5M0ZBMDBERjg2NzcgLyogbWFrZXZhbHVlcyBpbiBSZXNvdXJjZXMg
Ki8sCisJCQkJOTNDQTRDQUIwOURGOTNGQTAwREY4Njc3IC8qIE1lZGlhTGlzdC5pZGwgaW4gUmVz
b3VyY2VzICovLAorCQkJCTkzQ0E0Q0FDMDlERjkzRkEwMERGODY3NyAvKiBxdWlya3MuY3NzIGlu
IFJlc291cmNlcyAqLywKKwkJCQk5M0NBNENBRDA5REY5M0ZBMDBERjg2NzcgLyogU3R5bGVTaGVl
dC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCTkzQ0E0Q0FFMDlERjkzRkEwMERGODY3NyAvKiBT
dHlsZVNoZWV0TGlzdC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCTkzQ0E0Q0FGMDlERjkzRkEw
MERGODY3NyAvKiBzdmcuY3NzIGluIFJlc291cmNlcyAqLywKKwkJCQk5M0NBNENCMDA5REY5M0ZB
MDBERjg2NzcgLyogdG9rZW5pemVyLmZsZXggaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNpb24gMTM2MzQpCisrKyBDaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSwxMDcgQEAKIDIwMDYtMDQtMDEgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIC0gZml4IGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODEyMworICAgICAgICAgIGZvY3VzIHJpbmcgb24gbmV3IHRleHQgZmllbGQg
ZG9lc24ndCBsb29rIGxpa2UgdGhlIG9sZCBvbmUKKworICAgICAgICAtIGZpeCBodHRwOi8vYnVn
emlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTc2ODUKKyAgICAgICAgICBGb2N1
cyByaW5nIGNvbG9yIHNob3VsZCBjaGFuZ2UgdG8gbWF0Y2ggZ3JhcGhpdGUgd2hlbiBzeXN0ZW0g
dGhlbWUgaXMgZ3JhcGhpdGUKKworICAgICAgICAtIHNvbWUgY2xlYW51cCB0byBob3cgd2UgcGFy
c2UgdXNlciBhZ2VudCBzdHlsZSBzaGVldHMKKworICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdv
cmRzLmluOiBBZGRlZCAtd2Via2l0LWZvY3VzLXJpbmctY29sb3IuCisKKyAgICAgICAgKiBjc3Mv
Y3Nzc3R5bGVzZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZVVBU2hlZXQpOiBQ
YXJzZSBhbiBhcnJheSBvZiBjaGFycyBpbnN0ZWFkIG9mIFVURi0xNi4KKyAgICAgICAgQ3V0cyB0
aGUgc2l6ZSBvZiB0aGUgc3R5bGUgc2hlZXQgaW4gaGFsZi4KKyAgICAgICAgKFdlYkNvcmU6OkNT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOiBBbGxvdyBuZWdhdGl2ZSB2YWx1ZSBmb3IK
KyAgICAgICAgb3V0bGluZS1vZmZzZXQuIENoYW5nZWQgc2hhZG93IHBhcnNpbmcgdG8gdXNlIGdl
dENvbG9yRnJvbVByaW1pdGl2ZVZhbHVlCisgICAgICAgIGluc3RlYWQgb2YgcmVwZWF0aW5nIHRo
ZSBzYW1lIGxvZ2ljLgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Z2V0Q29s
b3JGcm9tUHJpbWl0aXZlVmFsdWUpOiBBZGRlZCBhIGNhc2UKKyAgICAgICAgZm9yIHRoZSBmb2N1
cyByaW5nIGNvbG9yLgorICAgICAgICAqIHJlbmRlcmluZy9yZW5kZXJfc3R5bGUuaDogKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjpzZXRPdXRsaW5lT2Zmc2V0KToKKyAgICAgICAgQ2hhbmdlZCB0byBh
bGxvdyBuZWdhdGl2ZSB2YWx1ZXMuCisKKyAgICAgICAgKiBjc3MvaHRtbDQuY3NzOiBSZW1vdmVk
IGEgbG90IG9mIGV4Y2VzcyBzcGFjZXMuIENoYW5nZWQgY29sb3Igb2YgZm9jdXMKKyAgICAgICAg
dG8gLXdlYmtpdC1mb2N1cy1yaW5nLWNvbG9yLiBDaGFuZ2VkIHdpZHRoIG9mIGZvY3VzIHRvIDVw
eC4KKyAgICAgICAgQWRkZWQgYW4gb3V0bGluZS1vZmZzZXQgZm9yIDxpbnB1dCB0eXBlPXRleHQ+
IG9mIC0ycHguCisKKyAgICAgICAgKiBjc3MvY3NzcGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6IEFkZGVkIGZvY3VzIHJpbmcgY29sb3IgYXMgYW4g
b3V0bGluZSBjb2xvciBhbGwKKyAgICAgICAgdGhlIHRpbWUsIGFuZCBhcyBhbnkgb3RoZXIgY29s
b3Igd2hlbiBub3QgaW4gc3RyaWN0IG1vZGUuIEknbSBjb25mdXNlZCBhYm91dCB3aGF0J3MKKyAg
ICAgICAgYmVzdCBmb3IgdGhpcyB3aG9sZSBzdHJpY3QgbW9kZSBwb2xpY3ksIGFuZCBJIG1heSBu
ZWVkIGFkdmljZSBvbiBIeWF0dCB0byBwZXJmZWN0CisgICAgICAgIHRoaXMgb25lIGxhdGVyLgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNvbG9yRnJvbVZhbHVlKTogUmVtb3Zl
ZCBjb2RlIHRvIHBpbiByLCBnLCBhbmQgYiBiZWNhdXNlCisgICAgICAgIHRoZSBmdW5jdGlvbnMg
aW4gcGxhdGZvcm0gYWxyZWFkeSB0YWtlIGNhcmUgb2YgdGhhdC4gS2VwdCB0aGUgcGlubmluZyBv
ZiBhLCB0aG91Z2gKKyAgICAgICAgYmVjYXVzZSB0aGF0J3MgZG9uZSBpbiBmbG9hdGluZyBwb2lu
dCBiZWZvcmUgY29udmVydGluZyB0byBhbiBpbnRlZ2VyLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZVNoYWRvdyk6IEFsbG93IGZvY3VzIHJpbmcgY29sb3Igd2hlbiBub3QgaW4g
c3RyaWN0IG1vZGUuCisKKyAgICAgICAgKiBicmlkZ2UvbWFjL0ZyYW1lTWFjLmg6IEVsaW1pbmF0
ZWQgdGhlIHZpcnR1YWwgZGV0YWNoRnJvbVZpZXcgZnVuY3Rpb24uCisgICAgICAgICogYnJpZGdl
L21hYy9GcmFtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTWFjOjpGcmFtZU1hYyk6
IEVsaW1pbmF0ZWQgY29kZSB0byBtYWludGFpbiB0aGUgZnJhbWUgaW5zdGFuY2VzIGxpc3QuCisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZU1hYzo6fkZyYW1lTWFjKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpGcmFtZTo6c2V0TmVlZHNSZWFwcGx5U3R5bGVzKTogQWRkZWQuCisKKyAgICAgICAg
KiBicmlkZ2UvbWFjL1dlYkNvcmVTZXR0aW5ncy5tbTogKC1bV2ViQ29yZVNldHRpbmdzIF91cGRh
dGVBbGxWaWV3c10pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9XZWJDb3JlVGV4dFJlbmRlcmVy
RmFjdG9yeS5tbToKKyAgICAgICAgKC1bV2ViQ29yZVRleHRSZW5kZXJlckZhY3RvcnkgY2xlYXJD
YWNoZXNdKToKKyAgICAgICAgQ2hhbmdlZCB0byBjYWxsIHRoZSBuZXcgUGFnZTo6c2V0TmVlZHNS
ZWFwcGx5U3R5bGVzRm9yU2V0dGluZ3NDaGFuZ2UgaW5zdGVhZCBvZiB1c2luZyB0aGUKKyAgICAg
ICAgb2Jzb2xldGUgRnJhbWU6Omluc3RhbmNlcy4KKworICAgICAgICAqIHBhZ2UvRnJhbWUuaDog
UmVtb3ZlZCBpbnN0YW5jZXMsIG11dGFibGVJbnN0YW5jZXMsIGFuZCBkZXRhY2hGcm9tVmlldy4K
KyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL0ZyYW1l
VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6On5GcmFtZVRyZWUpOiBDYWxs
IHNldFZpZXcoMCkgaW5zdGVhZCBvZiBkZXRhY2hGcm9tVmlldygpLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVUcmVlOjpyZW1vdmVDaGlsZCk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9QYWdl
Lmg6CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omlu
aXQpOiBBZGRlZCBhIHNldCBvZiBwYWdlcyBpbnN0ZWFkIG9mIGEgcGFnZSBjb3VudC4gQWxzbwor
ICAgICAgICByZWdpc3RlciBhIGZ1bmN0aW9uIGZvciB3aGVuIHRoZSBmb2N1cyByaW5nIGNvbG9y
IGNoYW5nZXMgdGhlIGZpcnN0IHRpbWUgdGhpcworICAgICAgICBpcyBjYWxsZWQuCisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjp+UGFnZSk6IENhbGwgc2V0VmlldygwKSBpbnN0ZWFkIG9mIGRldGFj
aEZyb21WaWV3LiBBbHNvIHVwZGF0ZQorICAgICAgICB0byBtYW5hZ2VyIHRoZSBzZXQgb2YgcGFn
ZXMuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzZXROZWVkc1JlYXBwbHlTdHlsZXMpOiBDYWxs
IHNldE5lZWRzUmVhcHBseVN0eWxlcyBvbiBhbGwgZnJhbWVzLgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6c2V0TmVlZHNSZWFwcGx5U3R5bGVzRm9yU2V0dGluZ3NDaGFuZ2UpOiBDYWxsIHNldE5l
ZWRzUmVhcHBseVN0eWxlcworICAgICAgICBvbiBhbGwgZnJhbWVzIHdpdGggdGhlIHBhc3NlZC1p
biBzZXR0aW5ncy4KKworICAgICAgICAqIGNzcy9tYWtlLWNzcy1maWxlLWFycmF5cy5wbDogQ2hh
bmdlZCB0byBydW4gdGhlIEMgcHJlcHJvY2Vzc29yIG9uIHRoZQorICAgICAgICBpbnB1dCBmaWxl
cyBhbmQgdG8gZ2VuZXJhdGUgYW4gYXJyYXkgb2YgY2hhciBpbnN0ZWFkIG9mIHVuc2lnbmVkIHNo
b3J0LgorCisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1TdHJpbmcuaDogQWRkZWQgYSBjb25z
dHJ1Y3RvciB0aGF0IHRha2VzIGEgY2hhciogYW5kCisgICAgICAgIGEgbGVuZ3RoLgorICAgICAg
ICAqIHBsYXRmb3JtL1N0cmluZy5jcHA6IChXZWJDb3JlOjpTdHJpbmc6OlN0cmluZyk6IERpdHRv
LgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBKdXN0IHNv
bWUgdHdlYWtzOyBhZGRpbmcgaW4gYSBmZXcgZmlsZXMgbGlrZQorICAgICAgICB0aGUgdXNlciBh
Z2VudCBzdHlsZSBzaGVldHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvci5oOiBSZW1vdmVk
IGFsbCB1c2Ugb2YgRGVwcmVjYXRlZFN0cmluZy4gQ2xlYW5lZCB1cCBhIGJpdC4KKyAgICAgICAg
QWRkZWQgZm9jdXNSaW5nQ29sb3IgYW5kIHNldEZvY3VzUmluZ0NvbG9yQ2hhbmdlRnVuY3Rpb24u
CisgICAgICAgICogcGxhdGZvcm0vQ29sb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFrZVJH
Qik6IFJld3JvdGUgdXNpbmcgbWF4IGFuZCBtaW4uCisgICAgICAgIChXZWJDb3JlOjptYWtlUkdC
QSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VIZXhDb2xvcik6IENsZWFuZWQgdXAg
YSBiaXQ7IGNoYW5nZWQgcGFydHdheSB0byBTdHJpbmcgaW5zdGVhZCBvZgorICAgICAgICBEZXBy
ZWNhdGVkU3RyaW5nLgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OkNvbG9yKTogQ2hhbmdlZCB0
byB1c2UgU3RyaW5nIGFuZCB0byBjYWxsIHNldE5hbWVkQ29sb3IgdG8gc2F2ZSBjb2RlLgorICAg
ICAgICAoV2ViQ29yZTo6Q29sb3I6OnNldE5hbWVkQ29sb3IpOiBDaGFuZ2VkIHRvIHVzZSBTdHJp
bmcgaW4gdGhlIGludGVyZmFjZS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9Db2xvck1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Om9ic2VydmVUaGVtZSk6IEFkZGVkLiBGdW5jdGlvbiB1c2Vk
IHRvIHN0YXJ0IHVwIHRoZSBvYnNlcnZlci4KKyAgICAgICAgKFdlYkNvcmU6OnNldEZvY3VzUmlu
Z0NvbG9yQ2hhbmdlRnVuY3Rpb24pOiBBZGRlZC4gVXNlZCB0byBnZXQgYSBjYWxsIGJhY2sgc28g
d2UgY2FuCisgICAgICAgIHVwZGF0ZSBhbGwgdGhlIHZpZXdzIHdoZW4gdGhlIGNvbG9yIGNoYW5n
ZXMgKGluY2x1ZGluZyByZWNvbXB1dGluZyBzdHlsZSB0byBnZXQgdGhlCisgICAgICAgIGNvbG9y
IGNoYW5nZSBpbikuCisgICAgICAgIChXZWJDb3JlOjpzZXRGb2N1c1JpbmdDb2xvckNoYW5nZUZ1
bmN0aW9uKTogQWRkZWQuIFJldHVybnMgb25lIG9mIHRoZSB0d28gZm9jdXMKKyAgICAgICAgcmlu
ZyBjb2xvcnMuIEJvdGggb2YgdGhlc2UgbWF0Y2ggd2hhdCBBcHBLaXQgdXNlcyAtLSBuZWl0aGVy
IG1hdGNoZXMgd2hhdCB3ZSB1c2VkCisgICAgICAgIHRvIGhhdmUgaW4gdGhlIGh0bWw0LmNzcyBm
aWxlLgorICAgICAgICAoK1tXZWJDb3JlQ29udHJvbFRpbnRPYnNlcnZlciBjb250cm9sVGludERp
ZENoYW5nZV0pOiBBZGRlZC4gVXNlZCB0byB1cGRhdGUgd2hlbgorICAgICAgICB0aGUgYXBwZWFy
YW5jZSBpcyBjaGFuZ2VkIGZyb20gYmx1ZSB0byBncmFwaGl0ZSBhbmQgYmFjay4gV2Uga2VlcCBh
IGdsb2JhbCBzbyB3ZQorICAgICAgICBkb24ndCBoYXZlIHRvIGNhbGwgb3ZlciB0byBBcHBLaXQg
ZXZlcnkgdGltZTsgdGhhdCdzIHByb2JhYmx5IG92ZXJraWxsIGJ1dCB3ZSBuZWVkCisgICAgICAg
IHRoZSBvYnNldmVyIGZvciB0aGUgY29sb3IgY2hhbmdlIGZ1bmN0aW9uIGFueXdheS4KKworMjAw
Ni0wNC0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKICAgICAgICAgUmV2aWV3
ZWQgYnkgRXJpYy4KIAogICAgICAgICAtIHJlbW92ZWQgYSBidW5jaCBvZiB1bm5lZWRlZCBGb3J3
YXJkaW5nSGVhZGVycyBhbmQgV2ViQ29yZStTVkcgaGVhZGVycwpJbmRleDogY3NzL2h0bWw0LmNz
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBjc3MvaHRtbDQuY3NzCShyZXZpc2lvbiAxMzYzMSkKKysrIGNzcy9o
dG1sNC5jc3MJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEzICsyNSwxMyBAQAogCiBodG1sIHsKICAg
ICBkaXNwbGF5OiBibG9jawotfSAKK30KIAogLyogY2hpbGRyZW4gb2YgdGhlIDxoZWFkPiBlbGVt
ZW50IGFsbCBoYXZlIGRpc3BsYXk6bm9uZSAqLwotaGVhZCB7IAoraGVhZCB7CiAgICAgZGlzcGxh
eTogbm9uZQogfQotICAgICAKKwogbWV0YSB7CiAgICAgZGlzcGxheTogbm9uZQogfQpAQCAtODAs
NyArODAsNyBAQAogYWRkcmVzcyB7CiAgICAgZGlzcGxheTogYmxvY2sKIH0KLSAgICAgIAorCiBi
bG9ja3F1b3RlIHsKICAgICBkaXNwbGF5OiBibG9jazsKICAgICBtYXJnaW46IDFfX3FlbSA0MHB4
IDFlbSA0MHB4CkBAIC0xMDQsNyArMTA0LDcgQEAKICAgICBkaXNwbGF5OiBibG9jazsKICAgICAv
KiBzcGVjaWFsIGNlbnRlcmluZyB0byBiZSBhYmxlIHRvIGVtdWxhdGUgdGhlIGh0bWw0L25ldHNj
YXBlIGJlaGF2aW91ciAqLwogICAgIHRleHQtYWxpZ246IC1raHRtbC1jZW50ZXIKLX0gIAorfQog
CiBociB7CiAgICAgZGlzcGxheTogYmxvY2s7CkBAIC0xMTgsMjggKzExOCwyOCBAQAogfQogCiAv
KiBoZWFkaW5nIGVsZW1lbnRzICovCi0gICAgICAKKwogaDEgewogICAgIGRpc3BsYXk6IGJsb2Nr
OwogICAgIGZvbnQtc2l6ZTogMmVtOwogICAgIG1hcmdpbjogLjY3X19xZW0gMCAuNjdlbSAwOwog
ICAgIGZvbnQtd2VpZ2h0OiBib2xkCiB9Ci0gICAgICAKKwogaDIgewogICAgIGRpc3BsYXk6IGJs
b2NrOwogICAgIGZvbnQtc2l6ZTogMS41ZW07CiAgICAgbWFyZ2luOiAuODNfX3FlbSAwIC44M2Vt
IDA7CiAgICAgZm9udC13ZWlnaHQ6IGJvbGQKIH0KLSAgICAgIAorCiBoMyB7CiAgICAgZGlzcGxh
eTogYmxvY2s7CiAgICAgZm9udC1zaXplOiAxLjE3ZW07CiAgICAgbWFyZ2luOiAxX19xZW0gMCAx
ZW0gMDsKICAgICBmb250LXdlaWdodDogYm9sZAogfQotICAgICAgCisKIGg0IHsKICAgICBkaXNw
bGF5OiBibG9jazsKICAgICBtYXJnaW46IDEuMzNfX3FlbSAwIDEuMzNlbSAwOwpAQCAtMTgwLDEz
ICsxODAsMTMgQEAKICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOwogICAgIGJvcmRlci1jb2xv
cjogaW5oZXJpdAogfQotICAgICAgCisKIHRib2R5IHsKICAgICBkaXNwbGF5OiB0YWJsZS1yb3ct
Z3JvdXA7Ci0gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgCisgICAgdmVydGljYWwtYWxpZ246
IG1pZGRsZTsKICAgICBib3JkZXItY29sb3I6IGluaGVyaXQKIH0KLSAgICAgIAorCiB0Zm9vdCB7
CiAgICAgZGlzcGxheTogdGFibGUtZm9vdGVyLWdyb3VwOwogICAgIHZlcnRpY2FsLWFsaWduOiBt
aWRkbGU7CkBAIC0yNTcsNyArMjU3LDcgQEAKIGRsIHsKICAgICBkaXNwbGF5OiBibG9jazsKICAg
ICBtYXJnaW46IDFfX3FlbSAwIDFlbSAwCi19IAorfQogCiBkdCB7CiAgICAgZGlzcGxheTogYmxv
Y2sKQEAgLTMyMSw3ICszMjEsNyBAQAogICAgIC1raHRtbC1ydGwtb3JkZXJpbmc6IGxvZ2ljYWw7
CiB9CiAKLWlucHV0W3R5cGU9InBhc3N3b3JkIl0sIGlucHV0W3R5cGU9InNlYXJjaCJdLCBpbnB1
dFt0eXBlPSJoaWRkZW4iXSwgaW5wdXRbdHlwZT0iaW1hZ2UiXSwgaW5wdXRbdHlwZT0iZmlsZSJd
eworaW5wdXRbdHlwZT0icGFzc3dvcmQiXSwgaW5wdXRbdHlwZT0ic2VhcmNoIl0sIGlucHV0W3R5
cGU9ImhpZGRlbiJdLCBpbnB1dFt0eXBlPSJpbWFnZSJdLCBpbnB1dFt0eXBlPSJmaWxlIl0gewog
ICAgIC1raHRtbC1hcHBlYXJhbmNlOiBpbml0aWFsOwogICAgIHBhZGRpbmc6IGluaXRpYWw7CiAg
ICAgYmFja2dyb3VuZC1jb2xvcjogaW5pdGlhbDsKQEAgLTM4MCwyNCArMzgwLDI0IEBACiAgICAg
LWtodG1sLWFwcGVhcmFuY2U6IHJhZGlvCiB9CiAKLS8qIGlubGluZSBlbGVtZW50cyAqLyAgICAg
IAotICAgICAgCisvKiBpbmxpbmUgZWxlbWVudHMgKi8KKwogdSwgaW5zIHsKICAgICB0ZXh0LWRl
Y29yYXRpb246IHVuZGVybGluZQogfQotICAgICAgCisKIHN0cm9uZywgYiB7CiAgICAgZm9udC13
ZWlnaHQ6IGJvbGRlcgogfQotICAgICAgCisKIGksIGNpdGUsIGVtLCB2YXIsIGFkZHJlc3Mgewog
ICAgIGZvbnQtc3R5bGU6IGl0YWxpYwogfQotICAgICAgCisKIHR0LCBjb2RlLCBrYmQsIHNhbXAg
ewogICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UKIH0KLSAgICAgIAorCiBwcmUsIHhtcCwgcGxh
aW50ZXh0LCBsaXN0aW5nIHsKICAgICBkaXNwbGF5OiBibG9jazsKICAgICBmb250LWZhbWlseTog
bW9ub3NwYWNlOwpAQCAtNDA4LDcgKzQwOCw3IEBACiBiaWcgewogICAgIGZvbnQtc2l6ZTogbGFy
Z2VyCiB9Ci0gICAgICAKKwogc21hbGwgewogICAgIGZvbnQtc2l6ZTogc21hbGxlcgogfQpAQCAt
NDM4LDEzICs0MzgsMzQgQEAKIC8qIHN0YXRlcyAqLwogCiA6Zm9jdXMgeyAKLSAgICBvdXRsaW5l
OiBhdXRvIDNweCAjMWY1Y2NmCisgICAgb3V0bGluZTogYXV0byA1cHggLXdlYmtpdC1mb2N1cy1y
aW5nLWNvbG9yCiB9CiAKIGh0bWw6Zm9jdXMsIGJvZHk6Zm9jdXMgeyAKICAgICBvdXRsaW5lOiBu
b25lCiB9CiAKK2h0bWw6Zm9jdXMsIGJvZHk6Zm9jdXMgeworICAgIG91dGxpbmU6IG5vbmUKK30K
KyAgCitpbnB1dDpmb2N1cyB7CisgICAgb3V0bGluZS1vZmZzZXQ6IC0ycHgKK30KKworaW5wdXRb
dHlwZT0iYnV0dG9uIl06Zm9jdXMsCitpbnB1dFt0eXBlPSJjaGVja2JveCJdOmZvY3VzLAoraW5w
dXRbdHlwZT0iZmlsZSJdOmZvY3VzLAoraW5wdXRbdHlwZT0iaGlkZGVuIl06Zm9jdXMsCitpbnB1
dFt0eXBlPSJpbWFnZSJdOmZvY3VzLAoraW5wdXRbdHlwZT0icGFzc3dvcmQiXTpmb2N1cywKK2lu
cHV0W3R5cGU9InJhZGlvIl06Zm9jdXMsCitpbnB1dFt0eXBlPSJyZXNldCJdOmZvY3VzLAoraW5w
dXRbdHlwZT0ic2VhcmNoIl06Zm9jdXMsCitpbnB1dFt0eXBlPSJzdWJtaXQiXTpmb2N1cyB7Cisg
ICAgb3V0bGluZS1vZmZzZXQ6IDAKK30KKwogYTota2h0bWwtYW55LWxpbmsgewogICAgIGNvbG9y
OiAta2h0bWwtbGluazsKICAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKQEAgLTQ2NSw0
ICs0ODYsNCBAQAogICAgIGRpc3BsYXk6IGJsb2NrCiB9CiAKLS8qIG5vc2NyaXB0IGlzIGhhbmRs
ZWQgaW50ZXJuYWxseSwgYXMgaXQgZGVwZW5kcyBvbiB0aGUgaHRtbCBzZXR0aW5ncyAqLworLyog
bm9zY3JpcHQgaXMgaGFuZGxlZCBpbnRlcm5hbGx5LCBhcyBpdCBkZXBlbmRzIG9uIHNldHRpbmdz
ICovCkluZGV4OiBjc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgkocmV2aXNpb24gMTM2MzEpCisrKyBjc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgkod29ya2luZyBjb3B5KQpAQCAtMTUwLDYgKzE1MCw3IEBACiB3aW5kb3cKIHdpbmRvd2Zy
YW1lCiB3aW5kb3d0ZXh0Cistd2Via2l0LWZvY3VzLXJpbmctY29sb3IKICMKICMgY29sb3JzIGlu
IG5vbiBzdHJpY3QgbW9kZQogZ3JleQpJbmRleDogY3NzL2Nzc3BhcnNlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gY3NzL2Nzc3BhcnNlci5jcHAJKHJldmlzaW9uIDEzNjMxKQorKysgY3NzL2Nzc3BhcnNl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDggQEAKIAogZXh0ZXJuIGludCBjc3N5
eXBhcnNlKHZvaWQqIHBhcnNlcik7CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogVmFsdWVMaXN0Ojp+VmFsdWVMaXN0KCkKQEAgLTU2OSw4ICs1NzEsOSBA
QAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIC8qIG5vYnJlYWsgKi8KICAgICBjYXNlIENT
U19QUk9QX09VVExJTkVfQ09MT1I6ICAgICAgICAvLyA8Y29sb3I+IHwgaW52ZXJ0IHwgaW5oZXJp
dAotICAgICAgICAvLyBvdXRsaW5lIGhhcyAiaW52ZXJ0IiBhcyBhZGRpdGlvbmFsIGtleXdvcmQu
Ci0gICAgICAgIGlmIChwcm9wSWQgPT0gQ1NTX1BST1BfT1VUTElORV9DT0xPUiAmJiBpZCA9PSBD
U1NfVkFMX0lOVkVSVCkgeworICAgICAgICAvLyBPdXRsaW5lIGNvbG9yIGhhcyAiaW52ZXJ0IiBh
cyBhZGRpdGlvbmFsIGtleXdvcmQuCisgICAgICAgIC8vIEFsc28sIHdlIHdhbnQgdG8gYWxsb3cg
dGhlIHNwZWNpYWwgZm9jdXMgY29sb3IgZXZlbiBpbiBzdHJpY3QgcGFyc2luZyBtb2RlLgorICAg
ICAgICBpZiAocHJvcElkID09IENTU19QUk9QX09VVExJTkVfQ09MT1IgJiYgKGlkID09IENTU19W
QUxfSU5WRVJUIHx8IGlkID09IENTU19WQUxfX1dFQktJVF9GT0NVU19SSU5HX0NPTE9SKSkgewog
ICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CkBAIC01ODgsNyArNTkxLDcgQEAKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHRydWU7IC8vIEFsd2F5cyBhbGxvdyB0aGlzLCBldmVuIHdoZW4gc3RyaWN0IHBhcnNpbmcg
aXMgb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSB3ZSB1
c2UgdGhpcyBpbiBvdXIgVUEgc2hlZXRzLgogICAgICAgICBlbHNlIGlmIChpZCA+PSBDU1NfVkFM
X0FRVUEgJiYgaWQgPD0gQ1NTX1ZBTF9XSU5ET1dURVhUIHx8IGlkID09IENTU19WQUxfTUVOVSB8
fAotICAgICAgICAgICAgIChpZCA+PSBDU1NfVkFMX0dSRVkgJiYgaWQgPCBDU1NfVkFMX19LSFRN
TF9URVhUICYmICFzdHJpY3QpKSB7CisgICAgICAgICAgICAgKGlkID49IENTU19WQUxfX1dFQktJ
VF9GT0NVU19SSU5HX0NPTE9SICYmIGlkIDwgQ1NTX1ZBTF9fS0hUTUxfVEVYVCAmJiAhc3RyaWN0
KSkgewogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgfSBlbHNl
IHsKICAgICAgICAgICAgIHBhcnNlZFZhbHVlID0gcGFyc2VDb2xvcigpOwpAQCAtMjA2Miw2ICsy
MDY1LDkgQEAKIAogYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ29sb3IoY29uc3QgRGVwcmVjYXRlZFN0
cmluZyAmbmFtZSwgUkdCQTMyJiByZ2IpCiB7CisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBtb3Zl
IHRoaXMgc3R1ZmYgYWJvdXQgaGV4IGRpZ2l0cyB3aXRob3V0IGEgIiMiIHByZWZpeAorICAgIC8v
IGludG8gdGhlIENvbG9yIGNsYXNzIGFsb25nIHdpdGggdGhlICIjIi1wcmVmaXggdmVyc2lvbj8K
KwogICAgIGludCBsZW4gPSBuYW1lLmxlbmd0aCgpOwogCiAgICAgaWYgKCFsZW4pCkBAIC0yMTQx
LDkgKzIxNDcsNiBAQAogICAgICAgICBpZiAoIXZhbGlkVW5pdCh2LCBGSW50ZWdlcnxGUGVyY2Vu
dCwgdHJ1ZSkpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICAgaW50IGIgPSAoaW50KSAo
di0+ZlZhbHVlICogKHYtPnVuaXQgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19QRVJDRU5UQUdF
ID8gMjU2Li8xMDAuIDogMS4pKTsKLSAgICAgICAgciA9IGtNYXgoMCwga01pbigyNTUsIHIpKTsK
LSAgICAgICAgZyA9IGtNYXgoMCwga01pbigyNTUsIGcpKTsKLSAgICAgICAgYiA9IGtNYXgoMCwg
a01pbigyNTUsIGIpKTsKICAgICAgICAgYyA9IG1ha2VSR0IociwgZywgYik7CiAgICAgfQogICAg
IGVsc2UgaWYgKHZhbHVlLT51bml0ID09IFZhbHVlOjpGdW5jdGlvbiAmJgpAQCAtMjE3NSwxMCAr
MjE3OCw3IEBACiAgICAgICAgIHYgPSBhcmdzLT5uZXh0KCk7CiAgICAgICAgIGlmICghdmFsaWRV
bml0KHYsIEZOdW1iZXIsIHRydWUpKQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHIg
PSBrTWF4KDAsIGtNaW4oMjU1LCByKSk7Ci0gICAgICAgIGcgPSBrTWF4KDAsIGtNaW4oMjU1LCBn
KSk7Ci0gICAgICAgIGIgPSBrTWF4KDAsIGtNaW4oMjU1LCBiKSk7Ci0gICAgICAgIGludCBhID0g
KGludCkoa01heCgwLjAsIGtNaW4oMS4wLCB2LT5mVmFsdWUpKSAqIDI1NSk7CisgICAgICAgIGlu
dCBhID0gKGludCkobWF4KDAuMCwgbWluKDEuMCwgdi0+ZlZhbHVlKSkgKiAyNTUpOwogICAgICAg
ICBjID0gbWFrZVJHQkEociwgZywgYiwgYSk7CiAgICAgfQogICAgIGVsc2UKQEAgLTIyOTMsNyAr
MjI5Myw3IEBACiAgICAgICAgICAgICAvLyBUaGUgb25seSBvdGhlciB0eXBlIG9mIHZhbHVlIHRo
YXQncyBvayBpcyBhIGNvbG9yIHZhbHVlLgogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUq
IHBhcnNlZENvbG9yID0gMDsKICAgICAgICAgICAgIGJvb2wgaXNDb2xvciA9ICh2YWwtPmlkID49
IENTU19WQUxfQVFVQSAmJiB2YWwtPmlkIDw9IENTU19WQUxfV0lORE9XVEVYVCB8fCB2YWwtPmlk
ID09IENTU19WQUxfTUVOVSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWwtPmlk
ID49IENTU19WQUxfR1JFWSAmJiB2YWwtPmlkIDw9IENTU19WQUxfX0tIVE1MX1RFWFQgJiYgIXN0
cmljdCkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWwtPmlkID49IENTU19WQUxf
X1dFQktJVF9GT0NVU19SSU5HX0NPTE9SICYmIHZhbC0+aWQgPD0gQ1NTX1ZBTF9fS0hUTUxfVEVY
VCAmJiAhc3RyaWN0KSk7CiAgICAgICAgICAgICBpZiAoaXNDb2xvcikgewogICAgICAgICAgICAg
ICAgIGlmICghY29udGV4dC5hbGxvd0NvbG9yKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Y29udGV4dC5mYWlsZWQoKTsKSW5kZXg6IGNzcy9tYWtlLWNzcy1maWxlLWFycmF5cy5wbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBjc3MvbWFrZS1jc3MtZmlsZS1hcnJheXMucGwJKHJldmlzaW9uIDEzNjMxKQor
KysgY3NzL21ha2UtY3NzLWZpbGUtYXJyYXlzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICsz
OSw3IEBACiAgICAgbXkgJG5hbWUgPSAkMTsKIAogICAgICMgU2x1cnAgaW4gdGhlIENTUyBmaWxl
LgotICAgIG9wZW4gSU4sICRpbiBvciBkaWU7CisgICAgb3BlbiBJTiwgIi18IiwgIi91c3IvYmlu
L2NwcCIsICItUCIsICRpbiwgIi0iIG9yIGRpZTsKICAgICBteSAkdGV4dDsgeyBsb2NhbCAkLzsg
JHRleHQgPSA8SU4+OyB9CiAgICAgY2xvc2UgSU47CiAKQEAgLTU2LDggKzU2LDggQEAKIAogICAg
ICMgV3JpdGUgb3V0IGEgQyBhcnJheSBvZiB0aGUgY2hhcmFjdGVycy4KICAgICBteSAkbGVuZ3Ro
ID0gbGVuZ3RoICR0ZXh0OwotICAgIHByaW50IEhFQURFUiAiZXh0ZXJuIGNvbnN0IHVuc2lnbmVk
IHNob3J0ICR7bmFtZX1Vc2VyQWdlbnRTdHlsZVNoZWV0WyR7bGVuZ3RofV07XG4iOwotICAgIHBy
aW50IE9VVCAiZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIHNob3J0ICR7bmFtZX1Vc2VyQWdlbnRTdHls
ZVNoZWV0WyR7bGVuZ3RofV0gPSB7XG4iOworICAgIHByaW50IEhFQURFUiAiZXh0ZXJuIGNvbnN0
IGNoYXIgJHtuYW1lfVVzZXJBZ2VudFN0eWxlU2hlZXRbJHtsZW5ndGh9XTtcbiI7CisgICAgcHJp
bnQgT1VUICJleHRlcm4gY29uc3QgY2hhciAke25hbWV9VXNlckFnZW50U3R5bGVTaGVldFske2xl
bmd0aH1dID0ge1xuIjsKICAgICBteSAkaSA9IDA7CiAgICAgd2hpbGUgKCRpIDwgJGxlbmd0aCkg
ewogICAgICAgICBwcmludCBPVVQgIiAgICAiOwpJbmRleDogY3NzL2Nzc3N0eWxlc2VsZWN0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGNzcy9jc3NzdHlsZXNlbGVjdG9yLmNwcAkocmV2aXNpb24gMTM2
MzEpCisrKyBjc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3Niwx
OCArMjc2LDE4IEBACiAgICAgZGVsZXRlIG1fdXNlclNoZWV0OwogfQogCi1zdGF0aWMgQ1NTU3R5
bGVTaGVldCogcGFyc2VVQVNoZWV0KGNvbnN0IHVuc2lnbmVkIHNob3J0KiBjaGFyYWN0ZXJzLCBp
bnQgc2l6ZSkKK3N0YXRpYyBDU1NTdHlsZVNoZWV0KiBwYXJzZVVBU2hlZXQoY29uc3QgY2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgc2l6ZSkKIHsKICAgICBDU1NTdHlsZVNoZWV0KiBjb25zdCBw
YXJlbnQgPSAwOwogICAgIENTU1N0eWxlU2hlZXQqIHNoZWV0ID0gbmV3IENTU1N0eWxlU2hlZXQo
cGFyZW50KTsKICAgICBzaGVldC0+cmVmKCk7IC8vIGxlYWsgdGhlIHNoZWV0IG9uIHB1cnBvc2Ug
c2luY2UgaXQgd2lsbCBiZSBzdG9yZWQgaW4gYSBnbG9iYWwgdmFyaWFibGUKLSAgICBzaGVldC0+
cGFyc2VTdHJpbmcoU3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgUUNoYXIqPihjaGFyYWN0
ZXJzKSwgc2l6ZSkpOworICAgIHNoZWV0LT5wYXJzZVN0cmluZyhTdHJpbmcoY2hhcmFjdGVycywg
c2l6ZSkpOwogICAgIHJldHVybiBzaGVldDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4gQ1NT
U3R5bGVTaGVldCogcGFyc2VVQVNoZWV0KGNvbnN0IFQmIGFycmF5KQogewotICAgIHJldHVybiBw
YXJzZVVBU2hlZXQoYXJyYXksIHNpemVvZihhcnJheSkgLyBzaXplb2YodW5zaWduZWQgc2hvcnQp
KTsKKyAgICByZXR1cm4gcGFyc2VVQVNoZWV0KGFycmF5LCBzaXplb2YoYXJyYXkpKTsKIH0KIAog
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkRGVmYXVsdFN0eWxlKCkKQEAgLTE2MzgsNzcgKzE2
MzgsNiBAQAogICAgIHJldHVybiBsOwogfQogCi0KLS8vIGNvbG9yIG1hcHBpbmcgY29kZQotc3Ry
dWN0IGNvbG9yTWFwIHsKLSAgICBpbnQgY3NzX3ZhbHVlOwotICAgIFJHQkEzMiBjb2xvcjsKLX07
Ci0KLXN0YXRpYyBjb25zdCBjb2xvck1hcCBjbWFwW10gPSB7Ci0gICAgeyBDU1NfVkFMX0FRVUEs
IDB4RkYwMEZGRkYgfSwKLSAgICB7IENTU19WQUxfQkxBQ0ssIDB4RkYwMDAwMDAgfSwKLSAgICB7
IENTU19WQUxfQkxVRSwgMHhGRjAwMDBGRiB9LAotICAgIHsgQ1NTX1ZBTF9GVUNIU0lBLCAweEZG
RkYwMEZGIH0sCi0gICAgeyBDU1NfVkFMX0dSQVksIDB4RkY4MDgwODAgfSwKLSAgICB7IENTU19W
QUxfR1JFRU4sIDB4RkYwMDgwMDAgIH0sCi0gICAgeyBDU1NfVkFMX0xJTUUsIDB4RkYwMEZGMDAg
fSwKLSAgICB7IENTU19WQUxfTUFST09OLCAweEZGODAwMDAwIH0sCi0gICAgeyBDU1NfVkFMX05B
VlksIDB4RkYwMDAwODAgfSwKLSAgICB7IENTU19WQUxfT0xJVkUsIDB4RkY4MDgwMDAgIH0sCi0g
ICAgeyBDU1NfVkFMX09SQU5HRSwgMHhGRkZGQTUwMCB9LAotICAgIHsgQ1NTX1ZBTF9QVVJQTEUs
IDB4RkY4MDAwODAgfSwKLSAgICB7IENTU19WQUxfUkVELCAweEZGRkYwMDAwIH0sCi0gICAgeyBD
U1NfVkFMX1NJTFZFUiwgMHhGRkMwQzBDMCB9LAotICAgIHsgQ1NTX1ZBTF9URUFMLCAweEZGMDA4
MDgwICB9LAotICAgIHsgQ1NTX1ZBTF9XSElURSwgMHhGRkZGRkZGRiB9LAotICAgIHsgQ1NTX1ZB
TF9ZRUxMT1csIDB4RkZGRkZGMDAgfSwKLSAgICB7IENTU19WQUxfVFJBTlNQQVJFTlQsIENvbG9y
Ojp0cmFuc3BhcmVudCB9LAotICAgIHsgQ1NTX1ZBTF9HUkVZLCAweEZGODA4MDgwIH0sCi0gICAg
eyBDU1NfVkFMX0FDVElWRUJPUkRFUiwgMHhGRkUwRTBFMCB9LAotICAgIHsgQ1NTX1ZBTF9BQ1RJ
VkVDQVBUSU9OLCAweEZGMDAwMDAwIH0sCi0gICAgeyBDU1NfVkFMX0FQUFdPUktTUEFDRSwgMHhG
RjAwMDAwMCB9LAotICAgIHsgQ1NTX1ZBTF9CVVRUT05GQUNFLCAweEZGQzBDMEMwIH0sCi0gICAg
eyBDU1NfVkFMX0JVVFRPTkhJR0hMSUdIVCwgMHhGRkUwRTBFMCB9LAotICAgIHsgQ1NTX1ZBTF9C
VVRUT05TSEFET1csIDB4RkZGRkZGRkYgfSwKLSAgICB7IENTU19WQUxfQlVUVE9OVEVYVCwgMHhG
RjAwMDAwMCB9LAotICAgIHsgQ1NTX1ZBTF9DQVBUSU9OVEVYVCwgMHhGRjAwMDAwMCB9LAotICAg
IHsgQ1NTX1ZBTF9HUkFZVEVYVCwgMHhGRjgwODA4MCB9LAotICAgIHsgQ1NTX1ZBTF9ISUdITElH
SFQsIDB4RkZGRkZGRkYgfSwKLSAgICB7IENTU19WQUxfSElHSExJR0hUVEVYVCwgMHhGRkZGRkZG
RiB9LAotICAgIHsgQ1NTX1ZBTF9JTkFDVElWRUJPUkRFUiwgMHhGRkZGRkZGRiB9LAotICAgIHsg
Q1NTX1ZBTF9JTkFDVElWRUNBUFRJT04sIDB4RkZGRkZGRkYgfSwKLSAgICB7IENTU19WQUxfSU5B
Q1RJVkVDQVBUSU9OVEVYVCwgMHhGRjAwMDAwMCB9LAotICAgIHsgQ1NTX1ZBTF9JTkZPQkFDS0dS
T1VORCwgMHhGRjAwMDAwMCB9LAotICAgIHsgQ1NTX1ZBTF9JTkZPVEVYVCwgMHhGRjAwMDAwMCB9
LAotICAgIHsgQ1NTX1ZBTF9NRU5VLCAweEZGRkZGRkZGIH0sCi0gICAgeyBDU1NfVkFMX01FTlVU
RVhULCAweEZGRkZGRkZGIH0sCi0gICAgeyBDU1NfVkFMX1NDUk9MTEJBUiwgMHhGRkZGRkZGRiB9
LAotICAgIHsgQ1NTX1ZBTF9URVhULCAweEZGMDAwMDAwIH0sCi0gICAgeyBDU1NfVkFMX1RIUkVF
RERBUktTSEFET1csIDB4RkY0MDQwNDAgfSwKLSAgICB7IENTU19WQUxfVEhSRUVERkFDRSwgMHhG
RkMwQzBDMCB9LAotICAgIHsgQ1NTX1ZBTF9USFJFRURISUdITElHSFQsIDB4RkZFMEUwRTAgfSwK
LSAgICB7IENTU19WQUxfVEhSRUVETElHSFRTSEFET1csIDB4RkZDMEMwQzAgfSwKLSAgICB7IENT
U19WQUxfVEhSRUVEU0hBRE9XLCAweEZGRkZGRkZGIH0sCi0gICAgeyBDU1NfVkFMX1dJTkRPVywg
MHhGRkZGRkZGRiB9LAotICAgIHsgQ1NTX1ZBTF9XSU5ET1dGUkFNRSwgMHhGRkZGRkZGRiB9LAot
ICAgIHsgQ1NTX1ZBTF9XSU5ET1dURVhULCAweEZGMDAwMDAwIH0sCi0gICAgeyAwLCAwIH0KLX07
Ci0KLQotc3RhdGljIENvbG9yIGNvbG9yRm9yQ1NTVmFsdWUoaW50IGNzc192YWx1ZSkKLXsKLSAg
ICAvLyB0cnkgdGhlIHJlZ3VsYXIgb25lcyBmaXJzdAotICAgIGNvbnN0IGNvbG9yTWFwICpjb2wg
PSBjbWFwOwotICAgIHdoaWxlIChjb2wtPmNzc192YWx1ZSAmJiBjb2wtPmNzc192YWx1ZSAhPSBj
c3NfdmFsdWUpCi0gICAgICAgICsrY29sOwotICAgIGlmIChjb2wtPmNzc192YWx1ZSkKLSAgICAg
ICAgcmV0dXJuIGNvbC0+Y29sb3I7Ci0KLSAgICByZXR1cm4gQ29sb3IoKTsKLX0KLQogdm9pZCBD
U1NTdHlsZVNlbGVjdG9yOjphcHBseURlY2xhcmF0aW9ucyhib29sIGFwcGx5Rmlyc3QsIGJvb2wg
aXNJbXBvcnRhbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBzdGFydEluZGV4LCBpbnQgZW5kSW5kZXgpCiB7CkBAIC0yMzM3LDIxICsyMjY2LDE5IEBACiAg
ICAgICAgICAgICBIQU5ETEVfSU5IRVJJVF9DT05EKENTU19QUk9QX09VVExJTkVfQ09MT1IsIG91
dGxpbmVDb2xvciwgT3V0bGluZUNvbG9yKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
Ci0gICAgICAgIGVsc2UgaWYgKGlzSW5pdGlhbCkgeworICAgICAgICBpZiAoaXNJbml0aWFsKSB7
CiAgICAgICAgICAgICAvLyBUaGUgYm9yZGVyL291dGxpbmUgY29sb3JzIHdpbGwganVzdCBtYXAg
dG8gdGhlIGludmFsaWQgY29sb3IgfGNvbHwgYWJvdmUuICBUaGlzIHdpbGwgaGF2ZSB0aGUKICAg
ICAgICAgICAgIC8vIGVmZmVjdCBvZiBmb3JjaW5nIHRoZSB1c2Ugb2YgdGhlIGN1cnJlbnRDb2xv
ciB3aGVuIGl0IGNvbWVzIHRpbWUgdG8gZHJhdyB0aGUgYm9yZGVycyAoYW5kIG9mCiAgICAgICAg
ICAgICAvLyBub3QgcGFpbnRpbmcgdGhlIGJhY2tncm91bmQgc2luY2UgdGhlIGNvbG9yIHdvbid0
IGJlIHZhbGlkKS4KICAgICAgICAgICAgIGlmIChpZCA9PSBDU1NfUFJPUF9DT0xPUikKICAgICAg
ICAgICAgICAgICBjb2wgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbENvbG9yKCk7Ci0gICAgICAgIH0K
LSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZighcHJpbWl0aXZlVmFsdWUpCisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIGNvbCA9IGdldENvbG9yRnJvbVByaW1pdGl2ZVZhbHVl
KHByaW1pdGl2ZVZhbHVlKTsKICAgICAgICAgfQogCi0gICAgICAgIHN3aXRjaChpZCkKLSAgICAg
ICAgeworICAgICAgICBzd2l0Y2goaWQpIHsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9CQUNLR1JP
VU5EX0NPTE9SOgogICAgICAgICAgICAgc3R5bGUtPnNldEJhY2tncm91bmRDb2xvcihjb2wpOyBi
cmVhazsKICAgICAgICAgY2FzZSBDU1NfUFJPUF9CT1JERVJfVE9QX0NPTE9SOgpAQCAtMjM2Niw4
ICsyMjkzLDYgQEAKICAgICAgICAgICAgIHN0eWxlLT5zZXRDb2xvcihjb2wpOyBicmVhazsKICAg
ICAgICAgY2FzZSBDU1NfUFJPUF9PVVRMSU5FX0NPTE9SOgogICAgICAgICAgICAgc3R5bGUtPnNl
dE91dGxpbmVDb2xvcihjb2wpOyBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzUwNCwyMiAr
MzQyOSwxNyBAQAogICAgICAgICB9CiAgICAgfQogCi0gICAgY2FzZSBDU1NfUFJPUF9PVVRMSU5F
X09GRlNFVDogeworICAgIGNhc2UgQ1NTX1BST1BfT1VUTElORV9PRkZTRVQ6CiAgICAgICAgIEhB
TkRMRV9JTkhFUklUX0FORF9JTklUSUFMKG91dGxpbmVPZmZzZXQsIE91dGxpbmVPZmZzZXQpCi0K
LSAgICAgICAgaW50IG9mZnNldCA9IHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlSW50TGVuZ3RoKHN0
eWxlKTsKLSAgICAgICAgaWYgKG9mZnNldCA8IDApIHJldHVybjsKLSAgICAgICAgCi0gICAgICAg
IHN0eWxlLT5zZXRPdXRsaW5lT2Zmc2V0KG9mZnNldCk7CisgICAgICAgIHN0eWxlLT5zZXRPdXRs
aW5lT2Zmc2V0KHByaW1pdGl2ZVZhbHVlLT5jb21wdXRlSW50TGVuZ3RoKHN0eWxlKSk7CiAgICAg
ICAgIGJyZWFrOwotICAgIH0KIAogICAgIGNhc2UgQ1NTX1BST1BfVEVYVF9TSEFET1c6IHsKICAg
ICAgICAgaWYgKGlzSW5oZXJpdCkgewogICAgICAgICAgICAgc3R5bGUtPnNldFRleHRTaGFkb3co
cGFyZW50U3R5bGUtPnRleHRTaGFkb3coKSA/IG5ldyBTaGFkb3dEYXRhKCpwYXJlbnRTdHlsZS0+
dGV4dFNoYWRvdygpKSA6IDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAg
ICAgIGVsc2UgaWYgKGlzSW5pdGlhbCkgeworICAgICAgICBpZiAoaXNJbml0aWFsKSB7CiAgICAg
ICAgICAgICBzdHlsZS0+c2V0VGV4dFNoYWRvdygwKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpAQCAtMzUyOCwzNSArMzQ0OCwyOCBAQAogICAgICAgICAgICAgc3R5bGUtPnNldFRl
eHRTaGFkb3coMCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgCi0g
ICAgICAgIGlmICghdmFsdWUtPmlzVmFsdWVMaXN0KCkpIHJldHVybjsKKworICAgICAgICBpZiAo
IXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBDU1NW
YWx1ZUxpc3QgKmxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QgKj4odmFsdWUpOwogICAg
ICAgICBpbnQgbGVuID0gbGlzdC0+bGVuZ3RoKCk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbGVuOyBpKyspIHsKICAgICAgICAgICAgIFNoYWRvd1ZhbHVlICppdGVtID0gc3RhdGljX2Nh
c3Q8U2hhZG93VmFsdWUqPihsaXN0LT5pdGVtKGkpKTsKLQogICAgICAgICAgICAgaW50IHggPSBp
dGVtLT54LT5jb21wdXRlSW50TGVuZ3RoKHN0eWxlKTsKICAgICAgICAgICAgIGludCB5ID0gaXRl
bS0+eS0+Y29tcHV0ZUludExlbmd0aChzdHlsZSk7CiAgICAgICAgICAgICBpbnQgYmx1ciA9IGl0
ZW0tPmJsdXIgPyBpdGVtLT5ibHVyLT5jb21wdXRlSW50TGVuZ3RoKHN0eWxlKSA6IDA7Ci0gICAg
ICAgICAgICBDb2xvciBjb2wgPSBDb2xvcjo6dHJhbnNwYXJlbnQ7Ci0gICAgICAgICAgICBpZiAo
aXRlbS0+Y29sb3IpIHsKLSAgICAgICAgICAgICAgICBpbnQgaWRlbnQgPSBpdGVtLT5jb2xvci0+
Z2V0SWRlbnQoKTsKLSAgICAgICAgICAgICAgICBpZiAoaWRlbnQpCi0gICAgICAgICAgICAgICAg
ICAgIGNvbCA9IGNvbG9yRm9yQ1NTVmFsdWUoaWRlbnQpOwotICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKGl0ZW0tPmNvbG9yLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19SR0JDT0xPUikKLSAgICAgICAgICAgICAgICAgICAgY29sLnNldFJnYihpdGVtLT5jb2xvci0+
Z2V0UkdCQ29sb3JWYWx1ZSgpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIFNoYWRvd0Rh
dGEqIHNoYWRvd0RhdGEgPSBuZXcgU2hhZG93RGF0YSh4LCB5LCBibHVyLCBjb2wpOworICAgICAg
ICAgICAgQ29sb3IgY29sb3I7CisgICAgICAgICAgICBpZiAoaXRlbS0+Y29sb3IpCisgICAgICAg
ICAgICAgICAgY29sb3IgPSBnZXRDb2xvckZyb21QcmltaXRpdmVWYWx1ZShpdGVtLT5jb2xvci5n
ZXQoKSk7CisgICAgICAgICAgICBTaGFkb3dEYXRhKiBzaGFkb3dEYXRhID0gbmV3IFNoYWRvd0Rh
dGEoeCwgeSwgYmx1ciwgY29sb3IuaXNWYWxpZCgpID8gY29sb3IgOiBDb2xvcjo6dHJhbnNwYXJl
bnQpOwogICAgICAgICAgICAgc3R5bGUtPnNldFRleHRTaGFkb3coc2hhZG93RGF0YSwgaSAhPSAw
KTsKICAgICAgICAgfQotCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgY2FzZSBDU1NfUFJP
UF9PUEFDSVRZOgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChvcGFjaXR5LCBP
cGFjaXR5KQogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlIHx8IHByaW1pdGl2ZVZhbHVlLT5w
cmltaXRpdmVUeXBlKCkgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpCiAgICAgICAg
ICAgICByZXR1cm47IC8vIEVycm9yIGNhc2UuCi0gICAgICAgIAogICAgICAgICAvLyBDbGFtcCBv
cGFjaXR5IHRvIHRoZSByYW5nZSAwLTEKICAgICAgICAgc3R5bGUtPnNldE9wYWNpdHkoa01pbigx
LjAsIGtNYXgoMC4wLCBwcmltaXRpdmVWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX05VTUJFUikpKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTQyMzgsNiArNDE1MSw3
MiBAQAogICAgIHJldHVybiBzaXplLzEuMjsKIH0KIAorLy8gY29sb3IgbWFwcGluZyBjb2RlCitz
dHJ1Y3QgQ29sb3JWYWx1ZSB7CisgICAgaW50IGNzc192YWx1ZTsKKyAgICBSR0JBMzIgY29sb3I7
Cit9OworCitzdGF0aWMgY29uc3QgQ29sb3JWYWx1ZSBjb2xvclZhbHVlc1tdID0geworICAgIHsg
Q1NTX1ZBTF9BUVVBLCAweEZGMDBGRkZGIH0sCisgICAgeyBDU1NfVkFMX0JMQUNLLCAweEZGMDAw
MDAwIH0sCisgICAgeyBDU1NfVkFMX0JMVUUsIDB4RkYwMDAwRkYgfSwKKyAgICB7IENTU19WQUxf
RlVDSFNJQSwgMHhGRkZGMDBGRiB9LAorICAgIHsgQ1NTX1ZBTF9HUkFZLCAweEZGODA4MDgwIH0s
CisgICAgeyBDU1NfVkFMX0dSRUVOLCAweEZGMDA4MDAwICB9LAorICAgIHsgQ1NTX1ZBTF9MSU1F
LCAweEZGMDBGRjAwIH0sCisgICAgeyBDU1NfVkFMX01BUk9PTiwgMHhGRjgwMDAwMCB9LAorICAg
IHsgQ1NTX1ZBTF9OQVZZLCAweEZGMDAwMDgwIH0sCisgICAgeyBDU1NfVkFMX09MSVZFLCAweEZG
ODA4MDAwICB9LAorICAgIHsgQ1NTX1ZBTF9PUkFOR0UsIDB4RkZGRkE1MDAgfSwKKyAgICB7IENT
U19WQUxfUFVSUExFLCAweEZGODAwMDgwIH0sCisgICAgeyBDU1NfVkFMX1JFRCwgMHhGRkZGMDAw
MCB9LAorICAgIHsgQ1NTX1ZBTF9TSUxWRVIsIDB4RkZDMEMwQzAgfSwKKyAgICB7IENTU19WQUxf
VEVBTCwgMHhGRjAwODA4MCAgfSwKKyAgICB7IENTU19WQUxfV0hJVEUsIDB4RkZGRkZGRkYgfSwK
KyAgICB7IENTU19WQUxfWUVMTE9XLCAweEZGRkZGRjAwIH0sCisgICAgeyBDU1NfVkFMX1RSQU5T
UEFSRU5ULCAweDAwMDAwMDAwIH0sCisgICAgeyBDU1NfVkFMX0dSRVksIDB4RkY4MDgwODAgfSwK
KyAgICB7IENTU19WQUxfQUNUSVZFQk9SREVSLCAweEZGRTBFMEUwIH0sCisgICAgeyBDU1NfVkFM
X0FDVElWRUNBUFRJT04sIDB4RkYwMDAwMDAgfSwKKyAgICB7IENTU19WQUxfQVBQV09SS1NQQUNF
LCAweEZGMDAwMDAwIH0sCisgICAgeyBDU1NfVkFMX0JVVFRPTkZBQ0UsIDB4RkZDMEMwQzAgfSwK
KyAgICB7IENTU19WQUxfQlVUVE9OSElHSExJR0hULCAweEZGRTBFMEUwIH0sCisgICAgeyBDU1Nf
VkFMX0JVVFRPTlNIQURPVywgMHhGRkZGRkZGRiB9LAorICAgIHsgQ1NTX1ZBTF9CVVRUT05URVhU
LCAweEZGMDAwMDAwIH0sCisgICAgeyBDU1NfVkFMX0NBUFRJT05URVhULCAweEZGMDAwMDAwIH0s
CisgICAgeyBDU1NfVkFMX0dSQVlURVhULCAweEZGODA4MDgwIH0sCisgICAgeyBDU1NfVkFMX0hJ
R0hMSUdIVCwgMHhGRkZGRkZGRiB9LAorICAgIHsgQ1NTX1ZBTF9ISUdITElHSFRURVhULCAweEZG
RkZGRkZGIH0sCisgICAgeyBDU1NfVkFMX0lOQUNUSVZFQk9SREVSLCAweEZGRkZGRkZGIH0sCisg
ICAgeyBDU1NfVkFMX0lOQUNUSVZFQ0FQVElPTiwgMHhGRkZGRkZGRiB9LAorICAgIHsgQ1NTX1ZB
TF9JTkFDVElWRUNBUFRJT05URVhULCAweEZGMDAwMDAwIH0sCisgICAgeyBDU1NfVkFMX0lORk9C
QUNLR1JPVU5ELCAweEZGMDAwMDAwIH0sCisgICAgeyBDU1NfVkFMX0lORk9URVhULCAweEZGMDAw
MDAwIH0sCisgICAgeyBDU1NfVkFMX01FTlUsIDB4RkZGRkZGRkYgfSwKKyAgICB7IENTU19WQUxf
TUVOVVRFWFQsIDB4RkZGRkZGRkYgfSwKKyAgICB7IENTU19WQUxfU0NST0xMQkFSLCAweEZGRkZG
RkZGIH0sCisgICAgeyBDU1NfVkFMX1RFWFQsIDB4RkYwMDAwMDAgfSwKKyAgICB7IENTU19WQUxf
VEhSRUVEREFSS1NIQURPVywgMHhGRjQwNDA0MCB9LAorICAgIHsgQ1NTX1ZBTF9USFJFRURGQUNF
LCAweEZGQzBDMEMwIH0sCisgICAgeyBDU1NfVkFMX1RIUkVFREhJR0hMSUdIVCwgMHhGRkUwRTBF
MCB9LAorICAgIHsgQ1NTX1ZBTF9USFJFRURMSUdIVFNIQURPVywgMHhGRkMwQzBDMCB9LAorICAg
IHsgQ1NTX1ZBTF9USFJFRURTSEFET1csIDB4RkZGRkZGRkYgfSwKKyAgICB7IENTU19WQUxfV0lO
RE9XLCAweEZGRkZGRkZGIH0sCisgICAgeyBDU1NfVkFMX1dJTkRPV0ZSQU1FLCAweEZGRkZGRkZG
IH0sCisgICAgeyBDU1NfVkFMX1dJTkRPV1RFWFQsIDB4RkYwMDAwMDAgfSwKKyAgICB7IDAsIDAg
fQorfTsKKworCitzdGF0aWMgQ29sb3IgY29sb3JGb3JDU1NWYWx1ZShpbnQgY3NzX3ZhbHVlKQor
eworICAgIGZvciAoY29uc3QgQ29sb3JWYWx1ZSogY29sID0gY29sb3JWYWx1ZXM7IGNvbC0+Y3Nz
X3ZhbHVlOyArK2NvbCkKKyAgICAgICAgaWYgKGNvbC0+Y3NzX3ZhbHVlID09IGNzc192YWx1ZSkK
KyAgICAgICAgICAgIHJldHVybiBjb2wtPmNvbG9yOworICAgIHJldHVybiBDb2xvcigpOworfQor
CiBDb2xvciBDU1NTdHlsZVNlbGVjdG9yOjpnZXRDb2xvckZyb21QcmltaXRpdmVWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUpCiB7CiAgICAgQ29sb3IgY29sOwpAQCAtNDI1
NSwxNCArNDIzNCwxNSBAQAogICAgICAgICAgICAgICAgICAgICBjaGVja1BzZXVkb1N0YXRlKGVs
ZW1lbnQpOwogICAgICAgICAgICAgICAgIGNvbCA9IChwc2V1ZG9TdGF0ZSA9PSBQc2V1ZG9MaW5r
KSA/IGxpbmtDb2xvciA6IHZpc2l0ZWRDb2xvcjsKICAgICAgICAgICAgIH0KLSAgICAgICAgfQot
ICAgICAgICBlbHNlIGlmIChpZGVudCA9PSBDU1NfVkFMX19LSFRNTF9BQ1RJVkVMSU5LKQorICAg
ICAgICB9IGVsc2UgaWYgKGlkZW50ID09IENTU19WQUxfX0tIVE1MX0FDVElWRUxJTkspCiAgICAg
ICAgICAgICBjb2wgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5hY3RpdmVMaW5rQ29sb3IoKTsKKyAg
ICAgICAgZWxzZSBpZiAoaWRlbnQgPT0gQ1NTX1ZBTF9fV0VCS0lUX0ZPQ1VTX1JJTkdfQ09MT1Ip
CisgICAgICAgICAgICBjb2wgPSBmb2N1c1JpbmdDb2xvcigpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBjb2wgPSBjb2xvckZvckNTU1ZhbHVlKGlkZW50KTsKICAgICB9IGVsc2UgaWYgKHBy
aW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19S
R0JDT0xPUikKICAgICAgICAgY29sLnNldFJnYihwcmltaXRpdmVWYWx1ZS0+Z2V0UkdCQ29sb3JW
YWx1ZSgpKTsKLSAgICByZXR1cm4gY29sOyAgICAKKyAgICByZXR1cm4gY29sOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBicmlkZ2UvbWFjL1dlYkNvcmVTZXR0aW5ncy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBicmlkZ2UvbWFjL1dlYkNvcmVTZXR0aW5ncy5tbQkocmV2aXNpb24gMTM2
MzEpCisrKyBicmlkZ2UvbWFjL1dlYkNvcmVTZXR0aW5ncy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDYgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTIzLDEyICsyMywxMiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8K
IAotI2luY2x1ZGUgImNvbmZpZy5oIgorI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJD
b3JlU2V0dGluZ3MuaCIKIAogI2ltcG9ydCAiRm91bmRhdGlvbkV4dHJhcy5oIgotI2ltcG9ydCAi
RnJhbWVNYWMuaCIKICNpbXBvcnQgIktXUUtIVE1MU2V0dGluZ3MuaCIKKyNpbXBvcnQgIlBhZ2Uu
aCIKICNpbXBvcnQgIldlYkNvcmVGcmFtZUJyaWRnZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKQEAgLTYxLDE3ICs2MSwxMyBAQAogewogICAgIC8vIEEgRnJhbWUgbWF5IG5vdCBoYXZl
IGJlZW4gY3JlYXRlZCB5ZXQsIHNvIHdlIGluaXRpYWxpemUgdGhlIEF0b21pY1N0cmluZyBoYXNo
IGJlZm9yZSB3ZSB0cnkgYW5kIHVzZSBpdCBpbiBLSFRNTFNldHRpbmdzLgogICAgIEF0b21pY1N0
cmluZzo6aW5pdCgpOwotICAgIHNldHRpbmdzID0gbmV3IEtIVE1MU2V0dGluZ3MoKTsKKyAgICBz
ZXR0aW5ncyA9IG5ldyBLSFRNTFNldHRpbmdzOwogICAgIHJldHVybiBbc3VwZXIgaW5pdF07CiB9
CiAKIC0gKHZvaWQpX3VwZGF0ZUFsbFZpZXdzCiB7Ci0gICAgZm9yIChEZXByZWNhdGVkUHRyTGlz
dEl0ZXJhdG9yPEZyYW1lPiBpdChGcmFtZTo6aW5zdGFuY2VzKCkpOyBpdC5jdXJyZW50KCk7ICsr
aXQpIHsKLSAgICAgICAgRnJhbWVNYWMgKmZyYW1lID0gTWFjKGl0LmN1cnJlbnQoKSk7Ci0gICAg
ICAgIGlmIChmcmFtZS0+c2V0dGluZ3MoKSA9PSBzZXR0aW5ncykKLSAgICAgICAgICAgIFtmcmFt
ZS0+YnJpZGdlKCkgc2V0TmVlZHNSZWFwcGx5U3R5bGVzXTsKLSAgICB9CisgICAgUGFnZTo6c2V0
TmVlZHNSZWFwcGx5U3R5bGVzRm9yU2V0dGluZ3NDaGFuZ2Uoc2V0dGluZ3MpOwogfQogCiAtICh2
b2lkKXNldFN0YW5kYXJkRm9udEZhbWlseTooTlNTdHJpbmcgKilzCkluZGV4OiBicmlkZ2UvbWFj
L0ZyYW1lTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJyaWRnZS9tYWMvRnJhbWVNYWMubW0JKHJldmlz
aW9uIDEzNjMxKQorKysgYnJpZGdlL21hYy9GcmFtZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTI2LDE1ICsxMjYsMTIgQEAKICAgICAsIF93aW5kb3dTY3JpcHRPYmplY3QoMCkKICAgICAsIF93
aW5kb3dTY3JpcHROUE9iamVjdCgwKQogewotICAgIG11dGFibGVJbnN0YW5jZXMoKS5wcmVwZW5k
KHRoaXMpOwotCiAgICAgZC0+bV9leHRlbnNpb24gPSBuZXcgQnJvd3NlckV4dGVuc2lvbk1hYyh0
aGlzKTsKIH0KIAogRnJhbWVNYWM6On5GcmFtZU1hYygpCiB7CiAgICAgc2V0VmlldygwKTsKLSAg
ICBtdXRhYmxlSW5zdGFuY2VzKCkucmVtb3ZlKHRoaXMpOwogICAgIGZyZWVDbGlwYm9hcmQoKTsK
ICAgICBjbGVhclJlY29yZGVkRm9ybVZhbHVlcygpOyAgICAKICAgICAKQEAgLTIzNTUsMTYgKzIz
NTIsMTYgQEAKIAogICAgICAgICAgICAgICAgICAgICAgICAgbWF4TWFya2VyV2lkdGggPSBNQVgo
W2ZvbnQgcG9pbnRTaXplXSwgbWF4TWFya2VyV2lkdGgpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgc3dpdGNoKHN0eWxlLT5saXN0U3R5bGVUeXBlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYXNlIFdlYkNvcmU6OkRJU0M6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2FzZSBESVNDOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0VGV4dCArPSAo
KFFDaGFyKUJVTExFVF9DSEFSKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpDSVJDTEU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDSVJDTEU6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxpc3RUZXh0ICs9ICgoUUNoYXIpQ0lSQ0xFX0NIQVIpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXNlIFdlYkNvcmU6OlNRVUFSRToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
YXNlIFNRVUFSRToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFRleHQgKz0g
KChRQ2hhcilTUVVBUkVfQ0hBUik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6TE5PTkU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBMTk9ORToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGVwcmVjYXRlZFN0cmluZyBtYXJr
ZXIgPSBsaXN0UmVuZGVyZXItPm1hcmtlclN0cmluZ1ZhbHVlKCk7CkBAIC0yNzUwLDMxICsyNzQ3
LDMxIEBACiAgICAgfQogCiAgICAgaW50IGRlY29yYXRpb24gPSBzdHlsZS0+dGV4dERlY29yYXRp
b25zSW5FZmZlY3QoKTsKLSAgICBpZiAoZGVjb3JhdGlvbiAmIFdlYkNvcmU6OkxJTkVfVEhST1VH
SCkKKyAgICBpZiAoZGVjb3JhdGlvbiAmIExJTkVfVEhST1VHSCkKICAgICAgICAgW3Jlc3VsdCBz
ZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhJbnQ6TlNVbmRlcmxpbmVTdHlsZVNpbmdsZV0g
Zm9yS2V5Ok5TU3RyaWtldGhyb3VnaFN0eWxlQXR0cmlidXRlTmFtZV07CiAKICAgICBpbnQgc3Vw
ZXJzY3JpcHRJbnQgPSAwOwogICAgIHN3aXRjaCAoc3R5bGUtPnZlcnRpY2FsQWxpZ24oKSkgewot
ICAgICAgICBjYXNlIFdlYkNvcmU6OkJBU0VMSU5FOgotICAgICAgICBjYXNlIFdlYkNvcmU6OkJP
VFRPTToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpCQVNFTElORV9NSURETEU6Ci0gICAgICAgIGNh
c2UgV2ViQ29yZTo6TEVOR1RIOgotICAgICAgICBjYXNlIFdlYkNvcmU6Ok1JRERMRToKLSAgICAg
ICAgY2FzZSBXZWJDb3JlOjpURVhUX0JPVFRPTToKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpURVhU
X1RPUDoKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpUT1A6CisgICAgICAgIGNhc2UgQkFTRUxJTkU6
CisgICAgICAgIGNhc2UgQk9UVE9NOgorICAgICAgICBjYXNlIEJBU0VMSU5FX01JRERMRToKKyAg
ICAgICAgY2FzZSBMRU5HVEg6CisgICAgICAgIGNhc2UgTUlERExFOgorICAgICAgICBjYXNlIFRF
WFRfQk9UVE9NOgorICAgICAgICBjYXNlIFRFWFRfVE9QOgorICAgICAgICBjYXNlIFRPUDoKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIFdlYkNvcmU6OlNVQjoKKyAgICAgICAgY2Fz
ZSBTVUI6CiAgICAgICAgICAgICBzdXBlcnNjcmlwdEludCA9IC0xOwogICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6U1VQRVI6CisgICAgICAgIGNhc2UgU1VQRVI6CiAg
ICAgICAgICAgICBzdXBlcnNjcmlwdEludCA9IDE7CiAgICAgICAgICAgICBicmVhazsKICAgICB9
CiAgICAgaWYgKHN1cGVyc2NyaXB0SW50KQogICAgICAgICBbcmVzdWx0IHNldE9iamVjdDpbTlNO
dW1iZXIgbnVtYmVyV2l0aEludDpzdXBlcnNjcmlwdEludF0gZm9yS2V5Ok5TU3VwZXJzY3JpcHRB
dHRyaWJ1dGVOYW1lXTsKIAotICAgIGlmIChkZWNvcmF0aW9uICYgV2ViQ29yZTo6VU5ERVJMSU5F
KQorICAgIGlmIChkZWNvcmF0aW9uICYgVU5ERVJMSU5FKQogICAgICAgICBbcmVzdWx0IHNldE9i
amVjdDpbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpOU1VuZGVybGluZVN0eWxlU2luZ2xlXSBmb3JL
ZXk6TlNVbmRlcmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWVdOwogCiAgICAgaWYgKG5vZGVUb1JlbW92
ZSkgewpAQCAtMjc5OSwxMCArMjc5NiwxMCBAQAogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
ICAgICAKICAgICBzd2l0Y2ggKHN0eWxlLT5kaXJlY3Rpb24oKSkgewotICAgICAgICBjYXNlIFdl
YkNvcmU6OkxUUjoKKyAgICAgICAgY2FzZSBMVFI6CiAgICAgICAgICAgICByZXN1bHQgPSBOU1dy
aXRpbmdEaXJlY3Rpb25MZWZ0VG9SaWdodDsKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIFdlYkNvcmU6OlJUTDoKKyAgICAgICAgY2FzZSBSVEw6CiAgICAgICAgICAgICByZXN1bHQg
PSBOU1dyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdDsKICAgICAgICAgICAgIGJyZWFrOwogICAg
IH0KQEAgLTI4NzIsMTIgKzI4NjksMTIgQEAKICAgICByZXR1cm4gV2ViQ29yZUtleWJvYXJkQWNj
ZXNzRGVmYXVsdDsKIH0KIAotdm9pZCBGcmFtZU1hYzo6ZGlkVGVsbEJyaWRnZUFib3V0TG9hZChj
b25zdCBXZWJDb3JlOjpTdHJpbmcmIFVSTCkKK3ZvaWQgRnJhbWVNYWM6OmRpZFRlbGxCcmlkZ2VB
Ym91dExvYWQoY29uc3QgU3RyaW5nJiBVUkwpCiB7CiAgICAgdXJsc0JyaWRnZUtub3dzQWJvdXQu
YWRkKFVSTC5pbXBsKCkpOwogfQogCi1ib29sIEZyYW1lTWFjOjpoYXZlVG9sZEJyaWRnZUFib3V0
TG9hZChjb25zdCBXZWJDb3JlOjpTdHJpbmcmIFVSTCkKK2Jvb2wgRnJhbWVNYWM6OmhhdmVUb2xk
QnJpZGdlQWJvdXRMb2FkKGNvbnN0IFN0cmluZyYgVVJMKQogewogICAgIHJldHVybiB1cmxzQnJp
ZGdlS25vd3NBYm91dC5jb250YWlucyhVUkwuaW1wbCgpKTsKIH0KQEAgLTMxNDgsNyArMzE0NSw3
IEBACiAgICAgW19icmlkZ2UgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbl07CiB9CiAKLWJvb2wg
RnJhbWVNYWM6OnNob3VsZENoYW5nZVNlbGVjdGlvbihjb25zdCBTZWxlY3Rpb25Db250cm9sbGVy
ICZvbGRTZWxlY3Rpb24sIGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXIgJm5ld1NlbGVjdGlvbiwg
V2ViQ29yZTo6RUFmZmluaXR5IGFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSBjb25zdAor
Ym9vbCBGcmFtZU1hYzo6c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKGNvbnN0IFNlbGVjdGlvbkNvbnRy
b2xsZXIgJm9sZFNlbGVjdGlvbiwgY29uc3QgU2VsZWN0aW9uQ29udHJvbGxlciAmbmV3U2VsZWN0
aW9uLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIFtfYnJpZGdlIHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6W0RPTVJhbmdl
IF9yYW5nZVdpdGg6b2xkU2VsZWN0aW9uLnRvUmFuZ2UoKS5nZXQoKV0KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG9ET01SYW5nZTpbRE9NUmFuZ2UgX3JhbmdlV2l0aDpu
ZXdTZWxlY3Rpb24udG9SYW5nZSgpLmdldCgpXQpAQCAtMzM3MSw5ICszMzY4LDkgQEAKICAgICBy
ZXR1cm4gIW5vRGVmYXVsdFByb2M7CiB9CiAKLXZvaWQgRnJhbWVNYWM6OmRldGFjaEZyb21WaWV3
KCkKK3ZvaWQgRnJhbWU6OnNldE5lZWRzUmVhcHBseVN0eWxlcygpCiB7Ci0gICAgc2V0Vmlldygw
KTsKKyAgICBbTWFjKHRoaXMpLT5icmlkZ2UoKSBzZXROZWVkc1JlYXBwbHlTdHlsZXNdOwogfQog
CiB9CkluZGV4OiBicmlkZ2UvbWFjL0ZyYW1lTWFjLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYnJpZGdlL21h
Yy9GcmFtZU1hYy5oCShyZXZpc2lvbiAxMzYzMSkKKysrIGJyaWRnZS9tYWMvRnJhbWVNYWMuaAko
d29ya2luZyBjb3B5KQpAQCAtMzI4LDggKzMyOCw2IEBACiAKICAgICB2b2lkIHJlZ2lzdGVyQ29t
bWFuZEZvclVuZG9PclJlZG8oY29uc3QgRWRpdENvbW1hbmRQdHIgJmNtZCwgYm9vbCBpc1JlZG8p
OwogCi0gICAgdmlydHVhbCB2b2lkIGRldGFjaEZyb21WaWV3KCk7Ci0KICAgICBXZWJDb3JlRnJh
bWVCcmlkZ2UqIF9icmlkZ2U7CiAgICAgCiAgICAgTlNWaWV3KiBfbW91c2VEb3duVmlldzsKSW5k
ZXg6IHBhZ2UvRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL0ZyYW1lLmgJKHJldmlzaW9uIDEz
NjMxKQorKysgcGFnZS9GcmFtZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsNyArMjYzLDcgQEAK
ICAgICogU2V0cyBhIHVzZXIgZGVmaW5lZCBzdHlsZSBzaGVldCB0byBiZSB1c2VkIG9uIHRvcCBv
ZiB0aGUgSFRNTDQsCiAgICAqIFNWRyBhbmQgcHJpbnRpbmcgZGVmYXVsdCBzdHlsZSBzaGVldHMu
CiAgICAqLwotICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oY29uc3QgS1VSTCYgdXJs
KTsKKyAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNvbnN0IEtVUkwmKTsKICAgdm9p
ZCBzZXRVc2VyU3R5bGVTaGVldChjb25zdCBTdHJpbmcmIHN0eWxlU2hlZXREYXRhKTsKICAgCiAg
IC8qKgpAQCAtNzA2LDkgKzcwNiw2IEBACiAKICAgc3RhdGljIHZvaWQgY2xlYXJEb2N1bWVudEZv
Y3VzKFdpZGdldCopOwogCi0gIHN0YXRpYyBjb25zdCBEZXByZWNhdGVkUHRyTGlzdDxGcmFtZT4m
IGluc3RhbmNlcygpIHsgcmV0dXJuIG11dGFibGVJbnN0YW5jZXMoKTsgfSAgICAKLSAgc3RhdGlj
IERlcHJlY2F0ZWRQdHJMaXN0PEZyYW1lPiYgbXV0YWJsZUluc3RhbmNlcygpOwotCiAgIHZvaWQg
dXBkYXRlUG9saWN5QmFzZVVSTCgpOwogICB2b2lkIHNldFBvbGljeUJhc2VVUkwoY29uc3QgU3Ry
aW5nJik7CiAKQEAgLTc1Myw2ICs3NTAsOCBAQAogCiAgICAgdm9pZCBkaXNjb25uZWN0T3duZXJS
ZW5kZXJlcigpOwogCisgICAgdm9pZCBzZXROZWVkc1JlYXBwbHlTdHlsZXMoKTsKKwogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBzdGFydFJlZGlyZWN0aW9uVGltZXIoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc3RvcFJlZGlyZWN0aW9uVGltZXIoKTsKQEAgLTc5NSw3ICs3OTQsNiBAQAogCiAg
IHZpcnR1YWwgdm9pZCBmcmFtZURldGFjaGVkKCk7CiAKLSAgdmlydHVhbCB2b2lkIGRldGFjaEZy
b21WaWV3KCk7CiAgIHZvaWQgdXBkYXRlQmFzZVVSTEZvckVtcHR5RG9jdW1lbnQoKTsKIAogICBL
VVJMIHVybCgpIGNvbnN0OwpJbmRleDogcGFnZS9QYWdlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9Q
YWdlLmgJKHJldmlzaW9uIDEzNjMxKQorKysgcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDggQEAKICNlbmRpZgogI2VuZGlmCiAKK2NsYXNzIEtIVE1MU2V0dGluZ3M7CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEZyYW1lOwpAQCAtNjAsNiArNjIsOSBA
QAogICAgICAgICB2b2lkIGRlY3JlbWVudEZyYW1lQ291bnQoKSB7IC0tbV9mcmFtZUNvdW50OyB9
CiAgICAgICAgIGludCBmcmFtZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUNvdW50OyB9
CiAKKyAgICAgICAgc3RhdGljIHZvaWQgc2V0TmVlZHNSZWFwcGx5U3R5bGVzKCk7CisgICAgICAg
IHN0YXRpYyB2b2lkIHNldE5lZWRzUmVhcHBseVN0eWxlc0ZvclNldHRpbmdzQ2hhbmdlKEtIVE1M
U2V0dGluZ3MqKTsKKwogI2lmIF9fQVBQTEVfXwogICAgICAgICBQYWdlKFdlYkNvcmVQYWdlQnJp
ZGdlKik7CiAgICAgICAgIFdlYkNvcmVQYWdlQnJpZGdlKiBicmlkZ2UoKSBjb25zdCB7IHJldHVy
biBtX2JyaWRnZTsgfQpJbmRleDogcGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGFnZS9G
cmFtZS5jcHAJKHJldmlzaW9uIDEzNjMxKQorKysgcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI4NjcsMTIgKzI4NjcsNiBAQAogICAgIG5vZGUtPmRvY3VtZW50KCktPnNldEZvY3Vz
Tm9kZSgwKTsKIH0KIAotRGVwcmVjYXRlZFB0ckxpc3Q8RnJhbWU+JiBGcmFtZTo6bXV0YWJsZUlu
c3RhbmNlcygpCi17Ci0gICAgc3RhdGljIERlcHJlY2F0ZWRQdHJMaXN0PEZyYW1lPiBpbnN0YW5j
ZXNMaXN0OwotICAgIHJldHVybiBpbnN0YW5jZXNMaXN0OwotfQotCiB2b2lkIEZyYW1lOjp1cGRh
dGVQb2xpY3lCYXNlVVJMKCkKIHsKICAgICBpZiAodHJlZSgpLT5wYXJlbnQoKSAmJiB0cmVlKCkt
PnBhcmVudCgpLT5kb2N1bWVudCgpKQpAQCAtMzI2NCwxMCArMzI1OCw2IEBACiAgICAgcmV0dXJu
JiBkLT5tX3RyZWVOb2RlOwogfQogCi12b2lkIEZyYW1lOjpkZXRhY2hGcm9tVmlldygpCi17Ci19
Ci0KIEtVUkwgRnJhbWU6OnVybCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPm1fdXJsOwpJbmRl
eDogcGFnZS9GcmFtZVRyZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvRnJhbWVUcmVlLmNwcAko
cmV2aXNpb24gMTM2MzEpCisrKyBwYWdlL0ZyYW1lVHJlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ4LDcgKzQ4LDcgQEAKIEZyYW1lVHJlZTo6fkZyYW1lVHJlZSgpCiB7CiAgICAgZm9yIChGcmFt
ZSogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT50cmVlKCktPm5l
eHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkLT5kZXRhY2hGcm9tVmlldygpOworICAgICAgICBj
aGlsZC0+c2V0VmlldygwKTsKIH0KIAogdm9pZCBGcmFtZVRyZWU6OnNldE5hbWUoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lKSAKQEAgLTgyLDcgKzgyLDcgQEAKIHZvaWQgRnJhbWVUcmVlOjpyZW1v
dmVDaGlsZChGcmFtZSogY2hpbGQpCiB7CiAgICAgY2hpbGQtPnRyZWUoKS0+bV9wYXJlbnQgPSAw
OwotICAgIGNoaWxkLT5kZXRhY2hGcm9tVmlldygpOworICAgIGNoaWxkLT5zZXRWaWV3KDApOwog
CiAgICAgLy8gU2xpZ2h0bHkgdHJpY2t5IHdheSB0byBwcmV2ZW50IGRlbGV0aW5nIHRoZSBjaGls
ZCB1bnRpbCB3ZSBhcmUgZG9uZSB3aXRoIGl0LCB3L28KICAgICAvLyBleHRyYSByZWZzLiBUaGVz
ZSBzd2FwcyBsZWF2ZSB0aGUgY2hpbGQgaW4gYSBjaXJjdWxhciBsaXN0IGJ5IGl0c2VsZi4gQ2xl
YXJpbmcgaXRzCkluZGV4OiBwYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvUGFnZS5j
cHAJKHJldmlzaW9uIDEzNjMxKQorKysgcGFnZS9QYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjEsMjggKzIxLDM3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgog
CisjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1l
VHJlZS5oIgogI2luY2x1ZGUgPGtqcy9jb2xsZWN0b3IuaD4KICNpbmNsdWRlIDxranMvSlNMb2Nr
Lmg+CiAjaW5jbHVkZSA8a3htbGNvcmUvSGFzaE1hcC5oPgorI2luY2x1ZGUgPGt4bWxjb3JlL0hh
c2hTZXQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEtKUzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgaW50IHBhZ2VDb3VudDsKK3N0YXRpYyBIYXNoU2V0PFBhZ2UqPiogYWxsUGFnZXM7
CiBzdGF0aWMgSGFzaE1hcDxTdHJpbmcsIEhhc2hTZXQ8UGFnZSo+Kj4qIGZyYW1lTmFtZXNwYWNl
czsKIAogdm9pZCBQYWdlOjppbml0KCkKIHsKLSAgICArK3BhZ2VDb3VudDsKKyAgICBpZiAoIWFs
bFBhZ2VzKSB7CisgICAgICAgIGFsbFBhZ2VzID0gbmV3IEhhc2hTZXQ8UGFnZSo+OworICAgICAg
ICBzZXRGb2N1c1JpbmdDb2xvckNoYW5nZUZ1bmN0aW9uKHNldE5lZWRzUmVhcHBseVN0eWxlcyk7
CisgICAgfQorICAgIEFTU0VSVCghYWxsUGFnZXMtPmNvbnRhaW5zKHRoaXMpKTsKKyAgICBhbGxQ
YWdlcy0+YWRkKHRoaXMpOwogfQogCi1QYWdlOjp+UGFnZSgpIAorUGFnZTo6flBhZ2UoKQogewot
ICAgIG1fbWFpbkZyYW1lLT5kZXRhY2hGcm9tVmlldygpOyAKKyAgICBtX21haW5GcmFtZS0+c2V0
VmlldygwKTsKICAgICBzZXRHcm91cE5hbWUoU3RyaW5nKCkpOwotICAgIGlmICghLS1wYWdlQ291
bnQpIHsKKyAgICBhbGxQYWdlcy0+cmVtb3ZlKHRoaXMpOworICAgIGlmIChhbGxQYWdlcy0+aXNF
bXB0eSgpKSB7CiAgICAgICAgIEZyYW1lOjplbmRBbGxMaWZlU3VwcG9ydCgpOwogI2lmbmRlZiBO
REVCVUcKICAgICAgICAgbV9tYWluRnJhbWUgPSAwOwpAQCAtOTMsNCArMTAyLDI1IEBACiAgICAg
cmV0dXJuIChmcmFtZU5hbWVzcGFjZXMgJiYgIWdyb3VwTmFtZS5pc0VtcHR5KCkpID8gZnJhbWVO
YW1lc3BhY2VzLT5nZXQoZ3JvdXBOYW1lKSA6IDA7CiB9CiAKK3ZvaWQgUGFnZTo6c2V0TmVlZHNS
ZWFwcGx5U3R5bGVzKCkKK3sKKyAgICBpZiAoIWFsbFBhZ2VzKQorICAgICAgICByZXR1cm47Cisg
ICAgSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGVuZCA9IGFsbFBhZ2VzLT5lbmQoKTsKKyAgICBm
b3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdCA9IGFsbFBhZ2VzLT5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpCisgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gKCppdCktPm1haW5GcmFt
ZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkKKyAgICAg
ICAgICAgIGZyYW1lLT5zZXROZWVkc1JlYXBwbHlTdHlsZXMoKTsKIH0KKwordm9pZCBQYWdlOjpz
ZXROZWVkc1JlYXBwbHlTdHlsZXNGb3JTZXR0aW5nc0NoYW5nZShLSFRNTFNldHRpbmdzKiBzZXR0
aW5ncykKK3sKKyAgICBpZiAoIWFsbFBhZ2VzKQorICAgICAgICByZXR1cm47CisgICAgSGFzaFNl
dDxQYWdlKj46Oml0ZXJhdG9yIGVuZCA9IGFsbFBhZ2VzLT5lbmQoKTsKKyAgICBmb3IgKEhhc2hT
ZXQ8UGFnZSo+OjppdGVyYXRvciBpdCA9IGFsbFBhZ2VzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpCisgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gKCppdCktPm1haW5GcmFtZSgpOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkKKyAgICAgICAgICAgIGlm
IChmcmFtZS0+c2V0dGluZ3MoKSA9PSBzZXR0aW5ncykKKyAgICAgICAgICAgICAgICBmcmFtZS0+
c2V0TmVlZHNSZWFwcGx5U3R5bGVzKCk7Cit9CisKK30K
</data>
<flag name="review"
          id="2025"
          type_id="1"
          status="+"
          setter="adele"
    />
          </attachment>
      

    </bug>

</bugzilla>