<?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>114886</bug_id>
          
          <creation_ts>2013-04-19 11:37:28 -0700</creation_ts>
          <short_desc>Remove the remaining Skia #ifdefs</short_desc>
          <delta_ts>2013-04-26 09:23:33 -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>Platform</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>115232</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>878592</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-04-19 11:37:28 -0700</bug_when>
    <thetext>The Skia code is gone now, so the #ifdefs don&apos;t make much sense any longer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878594</commentid>
    <comment_count>1</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-04-19 11:43:17 -0700</bug_when>
    <thetext>Yes, I think we can remove them all. Adding Rob to Cc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878600</commentid>
    <comment_count>2</comment_count>
      <attachid>198906</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-04-19 11:56:45 -0700</bug_when>
    <thetext>Created attachment 198906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878609</commentid>
    <comment_count>3</comment_count>
      <attachid>198906</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-04-19 12:25:52 -0700</bug_when>
    <thetext>Comment on attachment 198906
Patch

Attachment 198906 did not pass win-ews (win):
Output: http://webkit-queues.appspot.com/results/159183</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>878741</commentid>
    <comment_count>4</comment_count>
      <attachid>198906</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-04-20 01:29:19 -0700</bug_when>
    <thetext>Comment on attachment 198906
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=198906&amp;action=review

Awesome!

&gt; Source/WebCore/platform/graphics/GraphicsContext.cpp:861
&gt; +#if !USE(CG) // append &amp;&amp; !USE(MYPLATFORM) here to optimize ellipses on your platform.

That comment is pretty dumb. You can remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>879456</commentid>
    <comment_count>5</comment_count>
      <attachid>199115</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-04-22 15:06:12 -0700</bug_when>
    <thetext>Created attachment 199115
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880346</commentid>
    <comment_count>6</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-04-23 23:41:03 -0700</bug_when>
    <thetext>I guess you can also remove the SKIA defs in Source/WTF/wtf/Platform.h and Source/WebKit/blackberry/WebCoreSupport/AboutDataUseFeatures.in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880544</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-04-24 07:29:22 -0700</bug_when>
    <thetext>Hrm. EWS seems to be MIA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881324</commentid>
    <comment_count>8</comment_count>
      <attachid>199677</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-04-25 09:56:00 -0700</bug_when>
    <thetext>Created attachment 199677
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881730</commentid>
    <comment_count>9</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-04-26 00:26:07 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=199677) [details]
&gt; Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881734</commentid>
    <comment_count>10</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-04-26 00:34:33 -0700</bug_when>
    <thetext>I just saw that there&apos;s also Source/WebCore/platform/graphics/harfbuzz/HarfBuzzFaceSkia.cpp, which I guess should be removed as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>881928</commentid>
    <comment_count>11</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-04-26 09:23:33 -0700</bug_when>
    <thetext>Committed r149193: &lt;http://trac.webkit.org/changeset/149193&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>198906</attachid>
            <date>2013-04-19 11:56:45 -0700</date>
            <delta_ts>2013-04-22 15:06:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114886-20130419115614.patch</filename>
            <type>text/plain</type>
            <size>46806</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4NzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjhlNDE0ZWQwNTg2YTE4
MmU3NDk5ODRmYzNlY2FiNjZiNGNkMzgwNS4uOWI2MDM2YzM5ZTFlZjIyMjUzODY3Y2JlODg2NmQ4
MDVjMDBmMjE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDEzLTA0LTE5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAorICAgICAgICBSZW1vdmUgdGhl
IHJlbWFpbmluZyBTa2lhICNpZmRlZnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExNDg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHA6IFJlbW92ZSBTa2lh
ICNpZmRlZiByZWZlcmVuY2VzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5o
OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaDogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcDogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VCdWZmZXIuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXJEYXRhLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50
Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaDogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaDogRGl0dG8uCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvUGF0dGVybi5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQmxlbmQuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbG9yTWF0cml4Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb252b2x2ZU1hdHJpeC5oOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmg6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaDogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmg6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5Lmg6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3Bw
OiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVj
dC5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmlu
ZVRyYW5zZm9ybS5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwOiBEaXR0by4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0Nv
bnRleHQubW06IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VTb2xpZENvbG9yLmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmg6IERpdHRvLgor
CisyMDEzLTA0LTE5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKwog
ICAgICAgICBSZW1vdmUgdGhlIE9wZW5WRyBiYWNrZW5kCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQ4ODEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFu
Z2VMb2cKaW5kZXggOTQzNjM2YmFmYzkxNjMxOGMxZTdjNTI5Nzk5YmNlODNmMWZmNTAyMy4uZjg0
ODU4MWYzODFhY2E5YmE5ZjkxYjQ0NGVmOWQ2ZDU0NTUwMzk5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDQtMTkgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5n
IFNraWEgI2lmZGVmcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE0ODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6IFJlbW92ZSBTa2lhICNpZmRlZiByZWZlcmVuY2VzLgor
CiAyMDEzLTA0LTE5ICBYdWVmZWkgUmVuICA8eHJlbkBibGFja2JlcnJ5LmNvbT4KIAogICAgICAg
ICBmaXhlZCBkZWJ1ZyBicm9rZW4gZnJvbSBwcmV2aW91cyBwYXRjaCAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggY2RlOWIyYmZmZDI5NWQ1MWZlMzI3Nzlk
YWE2MGQwZDFkMTg4YTM5ZS4uNTc5NmZkZGM4MTIyMTJkYjY4YjU1YjhjY2I5MmJiZDc1NjJkZjUx
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAgLTQxOSw3
ICs0MTksNyBAQCBTdHJpbmcgSFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTChjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdAogCiAgICAgU3RyaW5nIGVuY29kaW5n
TWltZVR5cGUgPSB0b0VuY29kaW5nTWltZVR5cGUobWltZVR5cGUpOwogCi0jaWYgVVNFKENHKSB8
fCBVU0UoU0tJQSkKKyNpZiBVU0UoQ0cpCiAgICAgLy8gVHJ5IHRvIGdldCBJbWFnZURhdGEgZmly
c3QsIGFzIHRoYXQgbWF5IGF2b2lkIGxvc3N5IGNvbnZlcnNpb25zLgogICAgIFJlZlB0cjxJbWFn
ZURhdGE+IGltYWdlRGF0YSA9IGdldEltYWdlRGF0YSgpOwogCkBAIC01MjUsMjEgKzUyNSwxMiBA
QCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0CiAKICAg
ICBpZiAoZGV2aWNlU2l6ZS53aWR0aCgpICogZGV2aWNlU2l6ZS5oZWlnaHQoKSA+IE1heENhbnZh
c0FyZWEpCiAgICAgICAgIHJldHVybjsKLSNpZiBVU0UoU0tJQSkKLSAgICBpZiAoZGV2aWNlU2l6
ZS53aWR0aCgpID4gTWF4U2tpYURpbSB8fCBkZXZpY2VTaXplLmhlaWdodCgpID4gTWF4U2tpYURp
bSkKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAKICAgICBJbnRTaXplIGJ1ZmZlclNpemUoZGV2
aWNlU2l6ZS53aWR0aCgpLCBkZXZpY2VTaXplLmhlaWdodCgpKTsKICAgICBpZiAoIWJ1ZmZlclNp
emUud2lkdGgoKSB8fCAhYnVmZmVyU2l6ZS5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gc2hvdWxkQWNjZWxlcmF0ZShidWZmZXJT
aXplKSA/IEFjY2VsZXJhdGVkIDogCi0jaWYgVVNFKFNLSUEpCi0gICAgICAgIFVuYWNjZWxlcmF0
ZWROb25QbGF0Zm9ybUJ1ZmZlcjsKLSNlbHNlCi0gICAgICAgIFVuYWNjZWxlcmF0ZWQ7Ci0jZW5k
aWYKKyAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBzaG91bGRBY2NlbGVyYXRlKGJ1
ZmZlclNpemUpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkOwogICAgIG1faW1hZ2VCdWZm
ZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgbV9kZXZpY2VTY2FsZUZhY3RvciwgQ29s
b3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9kZSk7CiAgICAgaWYgKCFtX2ltYWdlQnVmZmVy
KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggNjk5NGRlMWMzNmJiNDdlZDAzZDIxNDliODNiNTA1Zjcy
NGQ5NjBjNS4uNGE5NzJlNjM0ODQyNWU0YjkzM2FhOTBhZTcyNzBlY2VmOTZmZTZhZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAt
NTk1LDggKzU5NSw2IEBAIHZvaWQgRnJhbWVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIG1lbW9yeU9iamVjdEluZm8t
PnNldENsYXNzTmFtZSgiRnJhbWVEYXRhIik7CiAjaWYgKE9TKFdJTkNFKSAmJiAhUExBVEZPUk0o
UVQpKSB8fCBVU0UoQ0FJUk8pCiAgICAgaW5mby5hZGRSYXdCdWZmZXIobV9mcmFtZS5nZXQoKSwg
bV9mcmFtZUJ5dGVzLCAiTmF0aXZlSW1hZ2UiLCAiZnJhbWUiKTsKLSNlbGlmIFVTRShTS0lBKQot
ICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWUsICJmcmFtZSIsIFdURjo6UmV0YWluaW5nUG9pbnRl
cik7CiAjZWxzZQogICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fZnJhbWUsIG1fZnJhbWVCeXRlcywg
Ik5hdGl2ZUltYWdlIiwgImZyYW1lIik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaAppbmRleCAxN2Q0ZWJhMjI1MzJiZDkzNzIyMzU0MGRm
NzFiMzVjZTZhNTQxN2E1Li43YjQwMTY2MzAxZmU5ZTc2ODA3ZDU3ZDkzZDRlOTcxNzZlMzFjNjUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oCkBA
IC01OCwxMCArNTgsNiBAQCBjbGFzcyBRUG9pbnRGOwogUVRfRU5EX05BTUVTUEFDRQogI2VuZGlm
CiAKLSNpZiBVU0UoU0tJQSkKLXN0cnVjdCBTa1BvaW50OwotI2VuZGlmCi0KIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwpAQCAtMTcwLDExICsxNjYsNiBAQCBw
dWJsaWM6CiAgICAgb3BlcmF0b3IgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZsb2F0UG9pbnQoKSBj
b25zdDsKICNlbmRpZgogCi0jaWYgVVNFKFNLSUEpCi0gICAgb3BlcmF0b3IgU2tQb2ludCgpIGNv
bnN0OwotICAgIEZsb2F0UG9pbnQoY29uc3QgU2tQb2ludCYpOwotI2VuZGlmCi0KICAgICBGbG9h
dFBvaW50IG1hdHJpeFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIGNvbnN0
OwogICAgIEZsb2F0UG9pbnQgbWF0cml4VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYp
IGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5o
CmluZGV4IDc4YmEwYTk0YjQyZDMwNDJjYWRhZDAwNDJiNmFjMGY2MTU4NjNhYmYuLjdhOGUwMTNl
OTIxNjMzYjk3NTA4OTJjMWJlYTkyOWZlYjM5ZjJhYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCkBAIC02MCwxMCArNjAsNiBAQCBjbGFzcyBGbG9h
dFJlY3Q7CiB9CiAjZW5kaWYKIAotI2lmIFVTRShTS0lBKQotc3RydWN0IFNrUmVjdDsKLSNlbmRp
ZgotCiAjaWYgVVNFKENBSVJPKQogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZSBjYWly
b19yZWN0YW5nbGVfdDsKICNlbmRpZgpAQCAtMjEyLDExICsyMDgsNiBAQCBwdWJsaWM6CiAgICAg
b3BlcmF0b3Igd3hSZWN0MkREb3VibGUoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgVVNFKFNLSUEp
Ci0gICAgRmxvYXRSZWN0KGNvbnN0IFNrUmVjdCYpOwotICAgIG9wZXJhdG9yIFNrUmVjdCgpIGNv
bnN0OwotI2VuZGlmCi0KICNpZiBVU0UoQ0FJUk8pCiAgICAgRmxvYXRSZWN0KGNvbnN0IGNhaXJv
X3JlY3RhbmdsZV90Jik7CiAgICAgb3BlcmF0b3IgY2Fpcm9fcmVjdGFuZ2xlX3QoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggNDU0
Y2VmMjM5YzZjMjhmODdjNGM4ZTk2MTRiNjcxNmUxNzdmMGVlMC4uMDUwNjY2ZGE5MDg2MzQ5ZTI5
MDJmNmEwNGQyOTlkMWFmMGZhNGJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmgKQEAgLTExMCwxMSArMTEwLDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCi0jaWYgVVNFKFNLSUEpCi0gICAgdHlwZWRl
ZiB1aW50MzJfdCBGb250RmlsZUtleTsKLSNlbHNlCiAgICAgdHlwZWRlZiBBdG9taWNTdHJpbmcg
Rm9udEZpbGVLZXk7Ci0jZW5kaWYKICAgICBQYXNzUmVmUHRyPE9wZW5UeXBlVmVydGljYWxEYXRh
PiBnZXRWZXJ0aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmLCBjb25zdCBGb250UGxhdGZvcm1E
YXRhJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuY3BwCmluZGV4IGUxMDM2ODRlMGJkMGJlYzc3ZDRiZDc4NmZhNDM2YmVkMGQwNzA1MmUu
LjdlNzYzOGI2ZDE0MjJhMjQ0OWU1ZmU5ODhjNTU3M2Q5N2JhNGYyN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAKQEAgLTI0MCw3ICsyNDAsNyBA
QCB2b2lkIEdyYWRpZW50OjpzZXRHcmFkaWVudFNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYQogICAgIGludmFsaWRhdGVIYXNoKCk7CiB9CiAKLSNp
ZiAhVVNFKFNLSUEpICYmICFVU0UoQ0FJUk8pICYmICFQTEFURk9STShCTEFDS0JFUlJZKQorI2lm
ICFVU0UoQ0FJUk8pICYmICFQTEFURk9STShCTEFDS0JFUlJZKQogdm9pZCBHcmFkaWVudDo6c2V0
UGxhdGZvcm1HcmFkaWVudFNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYpCiB7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaAppbmRleCBh
N2I1NDg4ODVlYjliOGUwMjYwZTc0ZTE2NDIwNjdlMmExNDhlYTdmLi5jNTExODQ2NzgyOGNmODAx
YzZhYTU2NmYwYmM5ODlkMDUyNjhhZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYWRpZW50LmgKQEAgLTUwLDEwICs1MCw2IEBAIHR5cGVkZWYgUUdyYWRpZW50KiBQ
bGF0Zm9ybUdyYWRpZW50OwogI2VsaWYgVVNFKENBSVJPKQogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJv
X3BhdHRlcm4gY2Fpcm9fcGF0dGVybl90OwogdHlwZWRlZiBjYWlyb19wYXR0ZXJuX3QqIFBsYXRm
b3JtR3JhZGllbnQ7Ci0jZWxpZiBVU0UoU0tJQSkKLWNsYXNzIFNrU2hhZGVyOwotdHlwZWRlZiBj
bGFzcyBTa1NoYWRlciogUGxhdGZvcm1HcmFkaWVudDsKLXR5cGVkZWYgY2xhc3MgU2tTaGFkZXIq
IFBsYXRmb3JtUGF0dGVybjsKICNlbGlmIFBMQVRGT1JNKFdYKQogY2xhc3Mgd3hHcmFwaGljc0Jy
dXNoOwogdHlwZWRlZiB3eEdyYXBoaWNzQnJ1c2gqIFBsYXRmb3JtR3JhZGllbnQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcApp
bmRleCBkMGI5YTljN2E5NTJmMDA4MjkwMzkwNzZlMDYyYWQ1MTBhMGQ5MjM2Li42M2VlZTExMGI3
YWQxMTgwN2M3YWE5NDMwNGRhZjViYjY3MDUxNDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTYwNiw3ICs2MDYs
NiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcChjb25zdCBJbnRSZWN0JiByZWN0KQogfQog
I2VuZGlmCiAKLSNpZiAhVVNFKFNLSUEpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcFJvdW5k
ZWRSZWN0KGNvbnN0IFJvdW5kZWRSZWN0JiByZWN0KQogewogICAgIGlmIChwYWludGluZ0Rpc2Fi
bGVkKCkpCkBAIC02MjEsNyArNjIwLDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBSb3Vu
ZGVkUmVjdChjb25zdCBSb3VuZGVkUmVjdCYgcmVjdCkKICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0
KHJlY3QpOwogICAgIGNsaXAocGF0aCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmNsaXBPdXRSb3VuZGVkUmVjdChjb25zdCBSb3VuZGVkUmVjdCYgcmVjdCkKIHsKQEAgLTcz
Nyw3ICs3MzUsNyBAQCBCbGVuZE1vZGUgR3JhcGhpY3NDb250ZXh0OjpibGVuZE1vZGVPcGVyYXRp
b24oKSBjb25zdAogICAgIHJldHVybiBtX3N0YXRlLmJsZW5kTW9kZTsKIH0KIAotI2lmICFVU0Uo
Q0cpICYmICFVU0UoU0tJQSkKKyNpZiAhVVNFKENHKQogLy8gSW1wbGVtZW50IHRoaXMgaWYgeW91
IHdhbnQgdG8gZ28gYWhlYWQgYW5kIHB1c2ggdGhlIGRyYXdpbmcgbW9kZSBpbnRvIHlvdXIgbmF0
aXZlIGNvbnRleHQKIC8vIGltbWVkaWF0ZWx5Lgogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtVGV4dERyYXdpbmdNb2RlKFRleHREcmF3aW5nTW9kZUZsYWdzKQpAQCAtNzQ1LDcgKzc0
Myw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVRleHREcmF3aW5nTW9kZShU
ZXh0RHJhd2luZ01vZGVGbGFncykKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKFFUKSAmJiAh
VVNFKENBSVJPKSAmJiAhVVNFKFNLSUEpCisjaWYgIVBMQVRGT1JNKFFUKSAmJiAhVVNFKENBSVJP
KQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlU3R5bGUoU3Ryb2tlU3R5
bGUpCiB7CiB9CkBAIC03NTcsNyArNzU1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBs
YXRmb3JtU2hvdWxkU21vb3RoRm9udHMoYm9vbCkKIH0KICNlbmRpZgogCi0jaWYgIVVTRShTS0lB
KSAmJiAhVVNFKENHKSAmJiAhVVNFKENBSVJPKQorI2lmICFVU0UoQ0cpICYmICFVU0UoQ0FJUk8p
CiBib29sIEdyYXBoaWNzQ29udGV4dDo6aXNBY2NlbGVyYXRlZENvbnRleHQoKSBjb25zdAogewog
ICAgIHJldHVybiBmYWxzZTsKQEAgLTg2MCw3ICs4NTgsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6c3Ryb2tlRWxsaXBzZUFzUGF0aChjb25zdCBGbG9hdFJlY3QmIGVsbGlwc2UpCiAgICAgc3Ry
b2tlUGF0aChwYXRoKTsKIH0KIAotI2lmICFVU0UoQ0cpICYmICFVU0UoU0tJQSkgLy8gYXBwZW5k
ICYmICFVU0UoTVlQTEFURk9STSkgaGVyZSB0byBvcHRpbWl6ZSBlbGxpcHNlcyBvbiB5b3VyIHBs
YXRmb3JtLgorI2lmICFVU0UoQ0cpIC8vIGFwcGVuZCAmJiAhVVNFKE1ZUExBVEZPUk0pIGhlcmUg
dG8gb3B0aW1pemUgZWxsaXBzZXMgb24geW91ciBwbGF0Zm9ybS4KIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpwbGF0Zm9ybUZpbGxFbGxpcHNlKGNvbnN0IEZsb2F0UmVjdCYgZWxsaXBzZSkKIHsKICAg
ICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCAwMjM0ZmNiNzAxOTEyM2ZlOGY1OWZi
NjQ3Mzc1Zjc1ZmMwMDQ0ZTBmLi45ZWU4OTY0YWUyZGZlZGYxZDc3YWQwOGUxNzQ2YWZkY2NlYWFh
NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuaApAQCAtNjgsMTIgKzY4LDYgQEAgY2xhc3Mgd3hXaW5kb3dEQzsKICNlbHNlCiAg
ICAgdHlwZWRlZiB3eFdpbmRvd0RDIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwogI2VuZGlmCi0j
ZWxpZiBVU0UoU0tJQSkKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFBsYXRmb3JtQ29udGV4
dFNraWE7Ci10eXBlZGVmIFBsYXRmb3JtQ29udGV4dFNraWEgR3JhcGhpY3NDb250ZXh0UGxhdGZv
cm1Qcml2YXRlOwotfQotdHlwZWRlZiBXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0OwogI2VsaWYgT1MoV0lOQ0UpCiB0eXBlZGVmIHN0cnVjdCBIRENf
XyBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDsKICNlbHNlCkBAIC0xMDgsOSArMTAyLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKICAgICBjbGFzcyBE
cmF3aW5nQnVmZmVyOwogICAgIGNsYXNzIEdlbmVyYXRvcjsKLSNpZiAhVVNFKFNLSUEpCiAgICAg
Y2xhc3MgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOwotI2VuZGlmCiAgICAgY2xhc3Mg
SW1hZ2VCdWZmZXI7CiAgICAgY2xhc3MgSW50UmVjdDsKICAgICBjbGFzcyBSb3VuZGVkUmVjdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oCmluZGV4IDZhMDQ0OTg0MmFkZTdjODllN2I1NWE1ZGQ5NzViYTM3YjE0OWU3MDUuLjAw
NTYyM2JiOGRjNTNiNTk3Y2E2MGFlMjIxNWYzYTJlMmFmOWJjZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtODAs
MTAgKzgwLDYgQEAgdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEOwogdHlw
ZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzU3VyZmFjZTNEOwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShCTEFDS0JFUlJZKSAmJiBVU0UoU0tJQSkKLWNsYXNzIEdyQ29udGV4dDsKLSNlbmRpZgot
CiAvLyBUaGVzZSBhcmUgY3VycmVudGx5IHRoZSBzYW1lIGFtb25nIGFsbCBpbXBsZW1lbnRhdGlv
bnMuCiBjb25zdCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIE51bGxQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dDNEID0gMDsKIGNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3JtM0RPYmpl
Y3QgPSAwOwpAQCAtNDk1LDkgKzQ5MSw2IEBAIHB1YmxpYzoKICNlbGlmIFBMQVRGT1JNKEJMQUNL
QkVSUlkpCiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEKCkgY29uc3Q7CiAgICAgUGxhdGZvcm0zRE9iamVjdCBwbGF0Zm9ybVRleHR1cmUoKSBj
b25zdDsKLSNpZiBVU0UoU0tJQSkKLSAgICBHckNvbnRleHQqIGdyQ29udGV4dCgpOwotI2VuZGlm
CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIFBsYXRmb3JtTGF5ZXIqIHBs
YXRmb3JtTGF5ZXIoKSBjb25zdDsKICNlbmRpZgpAQCAtOTE5LDEwICs5MTIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIC8vIG5lZWRzIHRvIGxvY2sgdGhlIHJlc291cmNlcyBvciByZWxldmFudCBkYXRh
IGlmIG5lZWRlZCBhbmQgcmV0dXJucyB0cnVlIHVwb24gc3VjY2VzcwogICAgICAgICBib29sIGV4
dHJhY3RJbWFnZShib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wgaWdub3JlR2FtbWFBbmRDb2xv
clByb2ZpbGUpOwogCi0jaWYgVVNFKFNLSUEpCi0gICAgICAgIFJlZlB0cjxOYXRpdmVJbWFnZVNr
aWE+IG1fbmF0aXZlSW1hZ2U7Ci0gICAgICAgIFJlZlB0cjxOYXRpdmVJbWFnZVNraWE+IG1fc2tp
YUltYWdlOwotI2VsaWYgVVNFKENBSVJPKQorI2lmIFVTRShDQUlSTykKICAgICAgICAgSW1hZ2VT
b3VyY2UqIG1fZGVjb2RlcjsKICAgICAgICAgUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gbV9pbWFn
ZVN1cmZhY2U7CiAjZWxpZiBVU0UoQ0cpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKaW5kZXggMjVlNzM2NWY0MjdiNWQ3NDQ4YzA0YWZjZmQ2
MzE2NGZiMjdlYjczMS4uOGJlMTYxNGJkYjQyOTYyZmZiNjBmNThiNTBhNzYzMGZmNDgyNmU5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNw
cApAQCAtOTksMTQgKzk5LDEzIEBAIHZvaWQgSW1hZ2VCdWZmZXI6OmNvbnZlcnRUb0x1bWluYW5j
ZU1hc2soKQogICAgIGdlbmVyaWNDb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CiB9CiAKLSNpZiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICFVU0UoU0tJQSkgJiYgIVVTRShDQUlSTykK
KyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICFVU0UoQ0FJUk8pCiBQbGF0Zm9y
bUxheWVyKiBJbWFnZUJ1ZmZlcjo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IDA7CiB9CiAjZW5kaWYKIAotI2lmICFVU0UoU0tJQSkKIGJvb2wgSW1hZ2VCdWZmZXI6OmNvcHlU
b1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRCYsIFBsYXRmb3JtM0RPYmplY3QsIEdD
M0RlbnVtLCBib29sLCBib29sKQogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTExNiw3ICsxMTUs
NiBAQCBQYXNzT3duUHRyPEltYWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJs
ZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLAogewogICAgIHJldHVybiBjcmVhdGUoc2l6ZSwg
cmVzb2x1dGlvblNjYWxlLCBjb2xvclNwYWNlLCBjb250ZXh0LT5pc0FjY2VsZXJhdGVkQ29udGV4
dCgpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkKTsKIH0KLSNlbmRpZgogCiB2b2lkIElt
YWdlQnVmZmVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmpl
Y3RJbmZvKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmgKaW5kZXggOWQwYjNlOGM5ZTliYzNjZTFhZTYxNWFkYTA1ZDhkZjA5ZjQ4ZTIw
Zi4uZjlmZGM2NWRhNWMzYzE0NzU4MDVmNWM3ODhlZmJlNGI1NjdkZDAyNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0xNTYsMTIgKzE1
Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gVGhpcyBjb25zdHJ1Y3RvciB3
aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91dC12YXJpYWJsZQogICAgICAg
ICAvLyBzbyB0aGF0IGNyZWF0ZSgpIGtub3dzIHdoZW4gaXQgc2hvdWxkIHJldHVybiBmYWlsdXJl
LgogICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNj
YWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKTsKLSNpZiBVU0Uo
U0tJQSkKLSAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRp
b25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCBoYXNBbHBo
YSwgYm9vbCYgc3VjY2Vzcyk7Ci0jZW5kaWYKICAgICB9OwogCi0jaWYgVVNFKENHKSB8fCBVU0Uo
U0tJQSkKKyNpZiBVU0UoQ0cpCiAgICAgU3RyaW5nIEltYWdlRGF0YVRvRGF0YVVSTChjb25zdCBJ
bWFnZURhdGEmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdHkp
OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlQnVmZmVyRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXJEYXRhLmgKaW5kZXggYmFjZDI0YTBhOTFlMGY0MGU3ZTY1MmZjZWVhOGYzMzhhODc5
ZWIyOS4uMzUwZTY2ZTc1YjgzZDE4ZDk0YmRkYTNmNTM5MjlkZWRkZjM0NDk1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJEYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJEYXRhLmgKQEAg
LTI5LDggKzI5LDYgQEAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckRhdGFDYWlyby5oIgogI2VsaWYg
UExBVEZPUk0oUVQpCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJEYXRhUXQuaCIKLSNlbGlmIFVTRShT
S0lBKQotI2luY2x1ZGUgIkltYWdlQnVmZmVyRGF0YVNraWEuaCIKICNlbGlmIE9TKFdJTkNFKQog
I2luY2x1ZGUgIkltYWdlQnVmZmVyRGF0YVdpbmNlLmgiCiAjZWxpZiBQTEFURk9STShXWCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oCmluZGV4IDBlODg3ZmI4
OTZmMTIyZjM1ZDE3YmIxNjg5NDQ4YTE5YzVlMzVmMWMuLjQ5OTA2NDBkNWQ1NjllN2U0NGRmNjNj
ZDMyNDQ3YTM1YzI2ZDc5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ludFBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50UG9pbnQuaApAQCAtNjUsMTEgKzY1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfUG9pbnQg
RXZhc19Qb2ludDsKIGNsYXNzIHd4UG9pbnQ7CiAjZW5kaWYKIAotI2lmIFVTRShTS0lBKQotc3Ry
dWN0IFNrUG9pbnQ7Ci1zdHJ1Y3QgU2tJUG9pbnQ7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBJbnRQb2ludCB7CkBAIC0xNTMsMTIgKzE0OCw2IEBAIHB1YmxpYzoKICAg
ICBvcGVyYXRvciB3eFBvaW50KCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFVTRShTS0lBKQotICAg
IEludFBvaW50KGNvbnN0IFNrSVBvaW50Jik7Ci0gICAgb3BlcmF0b3IgU2tJUG9pbnQoKSBjb25z
dDsKLSAgICBvcGVyYXRvciBTa1BvaW50KCkgY29uc3Q7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAg
ICBpbnQgbV94LCBtX3k7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW50UmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50
UmVjdC5oCmluZGV4IDRjZjE4OTBlODAzNmUyY2RhYmIxYWNiOGQyYTk3ZDc3Y2E2Zjg0NjEuLjUy
NDAwM2FkNmFiOGIwNDhmNDAwOWYyNzliMDFiODcyZDk4YTExYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKQEAgLTY5LDExICs2OSw2IEBAIHR5cGVkZWYg
c3RydWN0IF9jYWlyb19yZWN0YW5nbGVfaW50IGNhaXJvX3JlY3RhbmdsZV9pbnRfdDsKIGNsYXNz
IHd4UmVjdDsKICNlbmRpZgogCi0jaWYgVVNFKFNLSUEpCi1zdHJ1Y3QgU2tSZWN0Owotc3RydWN0
IFNrSVJlY3Q7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG9hdFJl
Y3Q7CkBAIC0yMjQsMTIgKzIxOSw2IEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciBDR1JlY3QoKSBj
b25zdDsKICNlbmRpZgogCi0jaWYgVVNFKFNLSUEpCi0gICAgSW50UmVjdChjb25zdCBTa0lSZWN0
Jik7Ci0gICAgb3BlcmF0b3IgU2tSZWN0KCkgY29uc3Q7Ci0gICAgb3BlcmF0b3IgU2tJUmVjdCgp
IGNvbnN0OwotI2VuZGlmCi0KICNpZiAoUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChOU0dFT01F
VFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykpIHx8IChQTEFURk9STShRVCkgJiYg
VVNFKFFUS0lUKSkKICAgICBvcGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKaW5kZXgg
ZDAzYmY4ZjZkYWY4ZmNkYWQwMDQ4NDIzMTQyZWQwMjg4YmJkN2Y2Yy4uMzc3YzcwN2U5NGU4ZWNk
N2M4NGNiNTRkMTcxODI4ODc3OTQ2YTVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZVB0ci5oCkBAIC00MSwxMSArNDEsNiBAQCBjbGFzcyBR
UGl4bWFwOwogUVRfRU5EX05BTUVTUEFDRQogI2VsaWYgVVNFKENBSVJPKQogI2luY2x1ZGUgIlJl
ZlB0ckNhaXJvLmgiCi0jZWxpZiBVU0UoU0tJQSkKLSNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEu
aCIKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIE5hdGl2ZUltYWdlU2tpYTsKLX0KICNlbGlm
IE9TKFdJTkNFKQogI2luY2x1ZGUgIlNoYXJlZEJpdG1hcC5oIgogI2VuZGlmCkBAIC03MSwxNyAr
NjYsMTMgQEAgdHlwZWRlZiB3eEJpdG1hcCogTmF0aXZlSW1hZ2VQdHI7CiAjZWxpZiBVU0UoQ0FJ
Uk8pCiB0eXBlZGVmIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IE5hdGl2ZUltYWdlUHRyOwogdHlw
ZWRlZiBQYXNzUmVmUHRyPGNhaXJvX3N1cmZhY2VfdD4gUGFzc05hdGl2ZUltYWdlUHRyOwotI2Vs
aWYgVVNFKFNLSUEpCi10eXBlZGVmIFJlZlB0cjxOYXRpdmVJbWFnZVNraWE+IE5hdGl2ZUltYWdl
UHRyOwotdHlwZWRlZiBQYXNzUmVmUHRyPE5hdGl2ZUltYWdlU2tpYT4gUGFzc05hdGl2ZUltYWdl
UHRyOwotdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBOYXRpdmVJbWFnZVNraWEqLCBXVEY6
Ok1lbW9yeU9iamVjdEluZm8qKTsKICNlbGlmIE9TKFdJTkNFKQogdHlwZWRlZiBSZWZQdHI8U2hh
cmVkQml0bWFwPiBOYXRpdmVJbWFnZVB0cjsKICNlbGlmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCiB0
eXBlZGVmIHZvaWQqIE5hdGl2ZUltYWdlUHRyOwogI2VuZGlmCiAKLSNpZiAhVVNFKFNLSUEpICYm
ICFVU0UoQ0FJUk8pCisjaWYgIVVTRShDQUlSTykKIHR5cGVkZWYgTmF0aXZlSW1hZ2VQdHIgUGFz
c05hdGl2ZUltYWdlUHRyOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1BhdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BhdGguaAppbmRleCBhMDExOTQ0OTJhM2RlOGVhYzg1OGNiMDNjZGRiMjQzOWZmYzhmN2EwLi45
M2E1OGUzMjY3NzM5NjE1ZjEzNDkyY2E4MWM5Yzk2M2U4YTkxNzFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCkBAIC00NSw5ICs0NSw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIENhaXJvUGF0aDsKIH0KIHR5cGVkZWYgV2ViQ29yZTo6Q2Fpcm9QYXRoIFBs
YXRmb3JtUGF0aDsKLSNlbGlmIFVTRShTS0lBKQotY2xhc3MgU2tQYXRoOwotdHlwZWRlZiBTa1Bh
dGggUGxhdGZvcm1QYXRoOwogI2VsaWYgT1MoV0lOQ0UpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgY2xhc3MgUGxhdGZvcm1QYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0dGVybi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QYXR0ZXJuLmNwcAppbmRleCA4ZDk0ZDFmYjJlYzI4NmQzY2Q0NjI2NzRiODdkY2FjOGYyNzc2
ZjA5Li4zYjMyZWJiYjg5YWIxYzgxZWZlMjBmMWRiYTY3NjA4NzFlY2I1YmU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcApAQCAtNDAsMTAgKzQwLDYg
QEAgUGF0dGVybjo6UGF0dGVybihQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSwgYm9vbCByZXBlYXRY
LCBib29sIHJlcGVhdFkpCiAgICAgOiBtX3RpbGVJbWFnZShpbWFnZSkKICAgICAsIG1fcmVwZWF0
WChyZXBlYXRYKQogICAgICwgbV9yZXBlYXRZKHJlcGVhdFkpCi0jaWYgVVNFKFNLSUEpCi0gICAg
LCBtX3BhdHRlcm4oMCkKLSAgICAsIG1fZXh0ZXJuYWxNZW1vcnlBbGxvY2F0ZWQoMCkKLSNlbmRp
ZgogewogICAgIEFTU0VSVChtX3RpbGVJbWFnZSk7CiB9CkBAIC01OSw3ICs1NSw2IEBAIHZvaWQg
UGF0dGVybjo6c2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYg
cGF0dGVyblNwYWNlVHJhbnNmCiAgICAgc2V0UGxhdGZvcm1QYXR0ZXJuU3BhY2VUcmFuc2Zvcm0o
KTsKIH0KIAotI2lmICFVU0UoU0tJQSkKIHZvaWQgUGF0dGVybjo6cGxhdGZvcm1EZXN0cm95KCkK
IHsKIH0KQEAgLTY3LDYgKzYyLDUgQEAgdm9pZCBQYXR0ZXJuOjpwbGF0Zm9ybURlc3Ryb3koKQog
dm9pZCBQYXR0ZXJuOjpzZXRQbGF0Zm9ybVBhdHRlcm5TcGFjZVRyYW5zZm9ybSgpCiB7CiB9Ci0j
ZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGF0dGVybi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCmlu
ZGV4IGU3NmJiMDExYTZlNzQ5YWYwY2JlNmRmNTQ0NTE3ZDM2NzY0Zjk1NGIuLmE0ZjIxZmE1NWQz
YTQ1M2UyODRkZDc2N2JkNGFlOWM0MWYwZTI3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QYXR0ZXJuLmgKQEAgLTQwLDkgKzQwLDYgQEAgdHlwZWRlZiBDR1BhdHRlcm5S
ZWYgUGxhdGZvcm1QYXR0ZXJuUHRyOwogI2VsaWYgVVNFKENBSVJPKQogI2luY2x1ZGUgPGNhaXJv
Lmg+CiB0eXBlZGVmIGNhaXJvX3BhdHRlcm5fdCogUGxhdGZvcm1QYXR0ZXJuUHRyOwotI2VsaWYg
VVNFKFNLSUEpCi1jbGFzcyBTa1NoYWRlcjsKLXR5cGVkZWYgU2tTaGFkZXIqIFBsYXRmb3JtUGF0
dGVyblB0cjsKICNlbGlmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgPFFCcnVzaD4KIHR5cGVkZWYg
UUJydXNoIFBsYXRmb3JtUGF0dGVyblB0cjsKQEAgLTczLDkgKzcwLDcgQEAgcHVibGljOgogICAg
IHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7CiAKICAgICAvLyBQYXR0ZXJuIHNwYWNlIGlzIGFuIGFi
c3RyYWN0IHNwYWNlIHRoYXQgbWFwcyB0byB0aGUgZGVmYXVsdCB1c2VyIHNwYWNlIGJ5IHRoZSB0
cmFuc2Zvcm1hdGlvbiAndXNlclNwYWNlVHJhbnNmb3JtYXRpb24nIAotI2lmIFVTRShTS0lBKQot
ICAgIFBsYXRmb3JtUGF0dGVyblB0ciBwbGF0Zm9ybVBhdHRlcm4oY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiB1c2VyU3BhY2VUcmFuc2Zvcm1hdGlvbik7Ci0jZWxpZiBQTEFURk9STShRVCkKKyNpZiBQ
TEFURk9STShRVCkKICAgICAvLyBRdCBpZ25vcmVzIHVzZXIgc3BhY2UgdHJhbnNmb3JtYXRpb24g
YW5kIHVzZXMgcGF0dGVybidzIGluc3RlYWQKICAgICBQbGF0Zm9ybVBhdHRlcm5QdHIgY3JlYXRl
UGxhdGZvcm1QYXR0ZXJuKCkgY29uc3Q7CiAjZWxzZQpAQCAtOTYsOSArOTEsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9yZXBlYXRZOwogICAgIEFmZmluZVRyYW5zZm9ybSBtX3BhdHRlcm5TcGFj
ZVRyYW5zZm9ybWF0aW9uOwogICAgIFBsYXRmb3JtUGF0dGVyblB0ciBtX3BhdHRlcm47Ci0jaWYg
VVNFKFNLSUEpCi0gICAgaW50IG1fZXh0ZXJuYWxNZW1vcnlBbGxvY2F0ZWQ7Ci0jZW5kaWYKIH07
CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUJsZW5kLmgKaW5kZXggNWM3MWMyYjcyNTA2NjQ3MWJjNzM4MmFkZjJjY2Qx
MmM5NzVlMDhhZi4uNmIwMDA4MGE4YWFhNjhlOWFiNjJiYmU4NDMyZGMxZWZhYmVkZjQ0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5k
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5k
LmgKQEAgLTQ5LDExICs0OSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGNvbG9yQXJyYXlMZW5ndGgpOwogICAgIHZvaWQgcGxhdGZvcm1BcHBseU5FT04o
dW5zaWduZWQgY2hhciogc3JjUGl4ZWxBcnJheUEsIHVuc2lnbmVkIGNoYXIqIHNyY1BpeGVsQXJy
YXlCLCB1bnNpZ25lZCBjaGFyKiBkc3RQaXhlbEFycmF5LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgY29sb3JBcnJheUxlbmd0aCk7Ci0jaWYgVVNFKFNLSUEpCi0gICAgdmly
dHVhbCBib29sIHBsYXRmb3JtQXBwbHlTa2lhKCk7Ci0gICAgdmlydHVhbCBTa0ltYWdlRmlsdGVy
KiBjcmVhdGVJbWFnZUZpbHRlcihTa2lhSW1hZ2VGaWx0ZXJCdWlsZGVyKik7Ci0jZW5kaWYKLQog
ICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKICAgICB2aXJ0dWFsIHZv
aWQgZHVtcCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCmluZGV4IDc2YjI2YzhjMTBhMmVlNTViNTIyN2Jk
ZTlhYzA4N2U3MmQ4NTUyYTguLjk4OTA1YzU4ZWMwYjFmNDQzNDM5NDcwNTUzZDkwYTJjODFhOTk5
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5oCkBAIC00OSwxMCArNDksNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBzZXRWYWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpOwogCiAgICAgdmlydHVhbCB2b2lkIHBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSgpOwotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwgYm9vbCBw
bGF0Zm9ybUFwcGx5U2tpYSgpOwotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRlciogY3JlYXRlSW1h
Z2VGaWx0ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCiAjaWYgRU5BQkxFKE9Q
RU5DTCkKICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1BcHBseU9wZW5DTCgpOwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29t
cG9uZW50VHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCmluZGV4IDY4NDU0ZmQzNTdkYzVkYWQwNGViZGRkNTdk
ZDU2ZTUzZGMyN2U3MWYuLmNmNmI3NDc2ZDhjMzdjZjNkZWVmYTVhOWY5ZTJiNDRiMzJmMDk0NzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb25lbnRUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCkBAIC03OSwxMCArNzksNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRBbHBoYUZ1bmN0aW9uKGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rp
b24mKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSNpZiBV
U0UoU0tJQSkKLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1BcHBseVNraWEoKTsKLSAgICB2aXJ0
dWFsIFNrSW1hZ2VGaWx0ZXIqIGNyZWF0ZUltYWdlRmlsdGVyKFNraWFJbWFnZUZpbHRlckJ1aWxk
ZXIqKTsKLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7CiAKICAgICB2aXJ0dWFsIFRl
eHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRp
b24pIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvc2l0ZS5oCmluZGV4IDNlYjliODYxNWQ3ODkxMmE2NjZmNGU2N2I2NzQy
MmVjNWFkZDUzZDYuLmRmMDQyNmE3OGZlZjJiYjUwYjc4ZDM5YjNjNzU5YWZlMmFiOGFhZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21w
b3NpdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29tcG9zaXRlLmgKQEAgLTY4LDEwICs2OCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVGV4
dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlv
bikgY29uc3Q7CiAKLSNpZiBVU0UoU0tJQSkKLSAgICB2aXJ0dWFsIFNrSW1hZ2VGaWx0ZXIqIGNy
ZWF0ZUltYWdlRmlsdGVyKFNraWFJbWFnZUZpbHRlckJ1aWxkZXIqKTsKLSNlbmRpZgotCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzVmFsaWRQcmVNdWx0aXBsaWVkUGl4ZWxz
KCkgT1ZFUlJJREUgeyByZXR1cm4gbV90eXBlICE9IEZFQ09NUE9TSVRFX09QRVJBVE9SX0FSSVRI
TUVUSUM7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAppbmRleCA5MTA2MGE3OTU0N2I5NTRhNmI3
NzQ4NDMyZGQxOTBlNDVjOTUzMDA0Li44MWViYTFkODNlYmQ3NDIxMDg3MmM3OGVjYjk4YTYyZTc2
NGVkYTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAtNzEsOSArNzEsNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzZXRQcmVzZXJ2ZUFscGhhKGJvb2wpOwogCiAgICAgdmlydHVhbCB2b2lkIHBs
YXRmb3JtQXBwbHlTb2Z0d2FyZSgpOwotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwgU2tJbWFn
ZUZpbHRlciogY3JlYXRlSW1hZ2VGaWx0ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2Vu
ZGlmCiAgICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1p
bmVBYnNvbHV0ZVBhaW50UmVjdCgpIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50
UmVjdChtYXhFZmZlY3RSZWN0KCkpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCmluZGV4IDgx
NWJjZjg2YWQxMjdiZjNlYmMyMDExOGM1MTVhOTdjNDQ0MzY5NjEuLjFiNDE3MGVmNDEwZGM3ZDQ4
ZDFlMGQzYmZiZDBlNWNmZGY4ZDE3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKQEAgLTYz
LDExICs2Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVEaXNwbGFjZW1lbnRNYXAoRmls
dGVyKiwgQ2hhbm5lbFNlbGVjdG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2VsZWN0
b3JUeXBlIHlDaGFubmVsU2VsZWN0b3IsIGZsb2F0KTsKIAotI2lmIFVTRShTS0lBKQotICAgIHZp
cnR1YWwgYm9vbCBwbGF0Zm9ybUFwcGx5U2tpYSgpOwotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRl
ciogY3JlYXRlSW1hZ2VGaWx0ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCi0K
ICAgICBDaGFubmVsU2VsZWN0b3JUeXBlIG1feENoYW5uZWxTZWxlY3RvcjsKICAgICBDaGFubmVs
U2VsZWN0b3JUeXBlIG1feUNoYW5uZWxTZWxlY3RvcjsKICAgICBmbG9hdCBtX3NjYWxlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNz
aWFuQmx1ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdh
dXNzaWFuQmx1ci5oCmluZGV4IGRhZjNlZjE3YTJjMmY3OTc4OTEwZWIwMTQxOWJhYTlmOGFiYTlk
N2MuLmY1NTRlZjg0MWZlZGMwNDUyYzRhYTFkNjdhZjVmNjY2Y2JjNTAwMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3Np
YW5CbHVyLmgKQEAgLTczLDEwICs3Myw2IEBAIHByaXZhdGU6CiAgICAgaW5saW5lIHZvaWQgcGxh
dGZvcm1BcHBseShVaW50OENsYW1wZWRBcnJheSogc3JjUGl4ZWxBcnJheSwgVWludDhDbGFtcGVk
QXJyYXkqIHRtcFBpeGVsQXJyYXksIHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1bnNpZ25lZCBrZXJu
ZWxTaXplWSwgSW50U2l6ZSYgcGFpbnRTaXplKTsKIAogICAgIGlubGluZSB2b2lkIHBsYXRmb3Jt
QXBwbHlHZW5lcmljKFVpbnQ4Q2xhbXBlZEFycmF5KiBzcmNQaXhlbEFycmF5LCBVaW50OENsYW1w
ZWRBcnJheSogdG1wUGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2lnbmVkIGtl
cm5lbFNpemVZLCBJbnRTaXplJiBwYWludFNpemUpOwotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1
YWwgYm9vbCBwbGF0Zm9ybUFwcGx5U2tpYSgpOwotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRlciog
Y3JlYXRlSW1hZ2VGaWx0ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCiAKICAg
ICBmbG9hdCBtX3N0ZFg7CiAgICAgZmxvYXQgbV9zdGRZOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCA0NDhmMDJk
NGY4MDQwZjM2YWM2ZmU1YzU1YjI4NzFmZTNjMDU3Y2Q4Li5iNDBiYjEzMDkwYWJmMzEyNzY0ODkx
Mzc2OTY3Nzg2M2ViMGRlYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaApAQCAtNDUsMTAgKzQ1LDYgQEAgc3RydWN0
IEZFTGlnaHRpbmdQYWludGluZ0RhdGFGb3JOZW9uOwogY2xhc3MgRkVMaWdodGluZyA6IHB1Ymxp
YyBGaWx0ZXJFZmZlY3QgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5
U29mdHdhcmUoKTsKLSNpZiBVU0UoU0tJQSkKLSAgICB2aXJ0dWFsIFNrSW1hZ2VGaWx0ZXIqIGNy
ZWF0ZUltYWdlRmlsdGVyKFNraWFJbWFnZUZpbHRlckJ1aWxkZXIqKTsKLSAgICB2aXJ0dWFsIGJv
b2wgcGxhdGZvcm1BcHBseVNraWEoKTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIGRldGVy
bWluZUFic29sdXRlUGFpbnRSZWN0KCkgeyBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJ
bnRSZWN0KG1heEVmZmVjdFJlY3QoKSkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCmluZGV4IGIzOGU2NzNj
MzgyMjJjNjRiN2VkZjgzMzY4OWRlYzYzMDcwY2FmZWQuLjA0YTc3ZjU0NjhhYjhjYzA0NTU5NjIz
MjE0OTYzNjI4OTExY2ZjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaApAQCAtNDcsMTEgKzQ3LDYgQEAgcHVi
bGljOgogICAgIGJvb2wgc2V0UmFkaXVzWShmbG9hdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGxh
dGZvcm1BcHBseVNvZnR3YXJlKCk7Ci0jaWYgVVNFKFNLSUEpCi0gICAgdmlydHVhbCBib29sIHBs
YXRmb3JtQXBwbHlTa2lhKCk7Ci0gICAgdmlydHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVhdGVJbWFn
ZUZpbHRlcihTa2lhSW1hZ2VGaWx0ZXJCdWlsZGVyKik7Ci0KLSNlbmRpZgogICAgIHZpcnR1YWwg
dm9pZCBkdW1wKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJl
Y3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVPZmZzZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVPZmZzZXQuaAppbmRleCBjMmE0ZmE1ZTNmOGFkOTBiNmEzZGQ3ZjE3MjZjZGNlYjgyNjQyNzZk
Li5lNzVmZWJkOWM3ZTY3ZGU1MzFhYTFhNDFiMDcyMTEyMjI5NTlkZmNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCkBAIC00
NSwxMCArNDUsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFs
UmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OwogCi0jaWYg
VVNFKFNLSUEpCi0gICAgdmlydHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVhdGVJbWFnZUZpbHRlcihT
a2lhSW1hZ2VGaWx0ZXJCdWlsZGVyKik7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBGRU9mZnNl
dChGaWx0ZXIqLCBmbG9hdCBkeCwgZmxvYXQgZHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXgg
Zjc4ZGQxZjY2YmRiMTRiZGFlZThlODlkMGUzZWIzMDMxMDc4MWZiNy4uNWRkMDY1ZDk4ZGE3Yzc5
ZjVjOWI3YjE3OThmZDAwMTE3YjNhN2NiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtMTQ2LDEw
ICsxNDYsNiBAQCB2b2lkIEZpbHRlckVmZmVjdDo6YXBwbHkoKQogICAgIGlmIChwbGF0Zm9ybUFw
cGx5T3BlbkNMKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgotI2lmIFVTRShTS0lBKQotICAg
IGlmIChwbGF0Zm9ybUFwcGx5U2tpYSgpKQotICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICBw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggYTdlYTU3OWIx
YjA4ZTZlNTM3ZWQzYWY0NmE0NjA4OGNiYjE0YjlmMy4uMjk2NDYxZjlmMTk3NGI4ODljMjNmZDgy
MzZhZjg2N2FkNTJlY2FjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCkBAIC0zOSwxMCArMzksNiBAQAogCiBz
dGF0aWMgY29uc3QgZmxvYXQga01heEZpbHRlclNpemUgPSA1MDAwLjBmOwogCi0jaWYgVVNFKFNL
SUEpCi1jbGFzcyBTa0ltYWdlRmlsdGVyOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRmlsdGVyOwpAQCAtNTAsMTAgKzQ2LDYgQEAgY2xhc3MgRmlsdGVyRWZmZWN0Owog
Y2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBUZXh0U3RyZWFtOwogCi0jaWYgVVNFKFNLSUEpCi1j
bGFzcyBTa2lhSW1hZ2VGaWx0ZXJCdWlsZGVyOwotI2VuZGlmCi0KIHR5cGVkZWYgVmVjdG9yPFJl
ZlB0cjxGaWx0ZXJFZmZlY3Q+ID4gRmlsdGVyRWZmZWN0VmVjdG9yOwogCiBlbnVtIEZpbHRlckVm
ZmVjdFR5cGUgewpAQCAtMTI2LDEwICsxMTgsNiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE9QRU5D
TCkKICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1BcHBseU9wZW5DTCgpOwogI2VuZGlmCi0jaWYg
VVNFKFNLSUEpCi0gICAgdmlydHVhbCBib29sIHBsYXRmb3JtQXBwbHlTa2lhKCkgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIFNrSW1hZ2VGaWx0ZXIqIGNyZWF0ZUltYWdlRmlsdGVyKFNr
aWFJbWFnZUZpbHRlckJ1aWxkZXIqKSB7IHJldHVybiAwOyB9Ci0jZW5kaWYKICAgICB2aXJ0dWFs
IHZvaWQgZHVtcCgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBh
aW50UmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmgKaW5kZXggNzE3MGZlNTMzZjNiODkz
ZWY1ZDdkOTRjMjNiMTEyOTJmZmI0OWM3NS4uMzc0MDJlNjY3M2Q5YmQ5NjFjYjNjMzg1ODBhMzMx
YjMxYjM1YTNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5oCkBAIC0zNiw4ICszNiw2IEBA
IHR5cGVkZWYgc3RydWN0IENHQWZmaW5lVHJhbnNmb3JtIENHQWZmaW5lVHJhbnNmb3JtOwogI2lu
Y2x1ZGUgPGNhaXJvLmg+CiAjZWxpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRVHJhbnNmb3Jt
PgotI2VsaWYgVVNFKFNLSUEpCi0jaW5jbHVkZSA8U2tNYXRyaXguaD4KICNlbGlmIFBMQVRGT1JN
KFdYKSAmJiBVU0UoV1hHQykKICNpbmNsdWRlIDx3eC9ncmFwaGljcy5oPgogI2VuZGlmCkBAIC0x
NzQsOCArMTcyLDYgQEAgcHVibGljOgogICAgIG9wZXJhdG9yIGNhaXJvX21hdHJpeF90KCkgY29u
c3Q7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBvcGVyYXRvciBRVHJhbnNmb3JtKCkgY29uc3Q7
Ci0jZWxpZiBVU0UoU0tJQSkKLSAgICBvcGVyYXRvciBTa01hdHJpeCgpIGNvbnN0OwogI2VsaWYg
UExBVEZPUk0oV1gpICYmIFVTRShXWEdDKQogICAgIG9wZXJhdG9yIHd4R3JhcGhpY3NNYXRyaXgo
KSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oCmluZGV4
IGIyNmYzYWFmOThjYWVjNjFkNTU3NDAyOTg4Nzk5ZjM1YjNkYzk1OWIuLmI3ODgwNzQ3NDEzNWVj
MTAxZDgxMTc2YzkxYzIyYTg5Y2I2ZmUwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9u
TWF0cml4LmgKQEAgLTQ1LDggKzQ1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dBZmZpbmVUcmFuc2Zv
cm0gQ0dBZmZpbmVUcmFuc2Zvcm07CiAjZWxpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRTWF0
cml4NHg0PgogI2luY2x1ZGUgPFFUcmFuc2Zvcm0+Ci0jZWxpZiBVU0UoU0tJQSkKLSNpbmNsdWRl
IDxTa01hdHJpeC5oPgogI2VsaWYgUExBVEZPUk0oV1gpICYmIFVTRShXWEdDKQogI2luY2x1ZGUg
PHd4L2dyYXBoaWNzLmg+CiAjZW5kaWYKQEAgLTM1MCw4ICszNDgsNiBAQCBwdWJsaWM6CiAjZWxp
ZiBQTEFURk9STShRVCkKICAgICBvcGVyYXRvciBRVHJhbnNmb3JtKCkgY29uc3Q7CiAgICAgb3Bl
cmF0b3IgUU1hdHJpeDR4NCgpIGNvbnN0OwotI2VsaWYgVVNFKFNLSUEpCi0gICAgb3BlcmF0b3Ig
U2tNYXRyaXgoKSBjb25zdDsKICNlbGlmIFBMQVRGT1JNKFdYKSAmJiBVU0UoV1hHQykKICAgICBv
cGVyYXRvciB3eEdyYXBoaWNzTWF0cml4KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCmlu
ZGV4IDA2N2M1ZGUzNmFlNGQ1MDk5ODU2OGQ4YWNlZWM3Y2FhOGU0MTUwYTQuLjQ3MzlmMTRlYzM2
ZDA0YTUxMzk5MDExMmU1ZDZkNDUyOTgzMzk1ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcApAQCAtMTQwLDgg
KzE0MCw2IEBAIEltYWdlRGVjb2RlciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3QgU2hhcmVk
QnVmZmVyJiBkYXRhLCBJbWFnZVNvdXJjZTo6QWxwaGFPCiAgICAgcmV0dXJuIDA7CiB9CiAKLSNp
ZiAhVVNFKFNLSUEpCi0KIEltYWdlRnJhbWU6OkltYWdlRnJhbWUoKQogICAgIDogbV9oYXNBbHBo
YShmYWxzZSkKICAgICAsIG1fc3RhdHVzKEZyYW1lRW1wdHkpCkBAIC0yMzQsOCArMjMyLDYgQEAg
dm9pZCBJbWFnZUZyYW1lOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uYWRkTWVtYmVyKG1fYmFja2luZ1N0b3JlLCAi
YmFja2luZ1N0b3JlIik7CiB9CiAKLSNlbmRpZgotCiBuYW1lc3BhY2UgewogCiBlbnVtIE1hdGNo
VHlwZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9JbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L0ltYWdlRGVjb2Rlci5oCmluZGV4IDRhNjU5YTFmNjgzMTI5OThmZDJhNmFjZjI2Y2FmZDQyZDkz
OWM2ODUuLjE4YzViZWJlYjk1ZGJlZDczZTZkZDIwMmQ0NDE1ZWVkY2VhYzg1YzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rl
ci5oCkBAIC0zOCwxMSArMzgsNiBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIFVTRShTS0lBKQotI2luY2x1ZGUgIk5hdGl2
ZUltYWdlU2tpYS5oIgotI2luY2x1ZGUgIlNrQ29sb3JQcml2LmgiCi0jZW5kaWYKLQogI2lmIFVT
RShRQ01TTElCKQogI2luY2x1ZGUgInFjbXMuaCIKICNpZiBPUyhEQVJXSU4pCkBAIC02OSwxMSAr
NjQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICBEaXNwb3NlT3ZlcndyaXRl
UHJldmlvdXMgIC8vIENsZWFyIGZyYW1lIHRvIHByZXZpb3VzIGZyYW1lYnVmZmVyCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRlbnRzCiAgICAgICAgIH07Ci0j
aWYgVVNFKFNLSUEpCi0gICAgICAgIHR5cGVkZWYgdWludDMyX3QgUGl4ZWxEYXRhOwotI2Vsc2UK
ICAgICAgICAgdHlwZWRlZiB1bnNpZ25lZCBQaXhlbERhdGE7Ci0jZW5kaWYKIAogICAgICAgICBJ
bWFnZUZyYW1lKCk7CiAKQEAgLTE0MCwxMSArMTMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIGlubGluZSBQaXhlbERhdGEqIGdldEFkZHIoaW50IHgsIGludCB5KQogICAgICAg
ICB7Ci0jaWYgVVNFKFNLSUEpCi0gICAgICAgICAgICByZXR1cm4gbV9iaXRtYXAtPmJpdG1hcCgp
LmdldEFkZHIzMih4LCB5KTsKLSNlbHNlCiAgICAgICAgICAgICByZXR1cm4gbV9ieXRlcyArICh5
ICogd2lkdGgoKSkgKyB4OwotI2VuZGlmCiAgICAgICAgIH0KIAogICAgICAgICAvLyBVc2UgZml4
IHBvaW50IG11bHRpcGxpZXIgaW5zdGVhZCBvZiBpbnRlZ2VyIGRpdmlzaW9uIG9yIGZsb2F0aW5n
IHBvaW50IG1hdGguCkBAIC0xNzAsNDQgKzE1NywyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgICAgICAgICAgZyA9IGZpeFBvaW50VW5zaWduZWRNdWx0aXBseShnLCBhbHBoYU11bHQp
OwogICAgICAgICAgICAgICAgIGIgPSBmaXhQb2ludFVuc2lnbmVkTXVsdGlwbHkoYiwgYWxwaGFN
dWx0KTsKICAgICAgICAgICAgIH0KLSNpZiBVU0UoU0tJQSkKLSAgICAgICAgICAgIC8vIENhbGwg
dGhlICJOb0NoZWNrIiB2ZXJzaW9uIHNpbmNlIHdlIG1heSBkZWxpYmVyYXRlbHkgcGFzcyBub24t
cHJlbXVsdGlwbGllZAotICAgICAgICAgICAgLy8gdmFsdWVzLCBhbmQgd2UgZG9uJ3Qgd2FudCBh
biBhc3NlcnQuCi0gICAgICAgICAgICAqZGVzdCA9IFNrUGFja0FSR0IzMk5vQ2hlY2soYSwgciwg
ZywgYik7Ci0jZWxzZQogICAgICAgICAgICAgKmRlc3QgPSAoYSA8PCAyNCB8IHIgPDwgMTYgfCBn
IDw8IDggfCBiKTsKLSNlbmRpZgogICAgICAgICB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBp
bnQgd2lkdGgoKSBjb25zdAogICAgICAgICB7Ci0jaWYgVVNFKFNLSUEpCi0gICAgICAgICAgICBy
ZXR1cm4gbV9iaXRtYXAtPmJpdG1hcCgpLndpZHRoKCk7Ci0jZWxzZQogICAgICAgICAgICAgcmV0
dXJuIG1fc2l6ZS53aWR0aCgpOwotI2VuZGlmCiAgICAgICAgIH0KIAogICAgICAgICBpbnQgaGVp
Z2h0KCkgY29uc3QKICAgICAgICAgewotI2lmIFVTRShTS0lBKQotICAgICAgICAgICAgcmV0dXJu
IG1fYml0bWFwLT5iaXRtYXAoKS5oZWlnaHQoKTsKLSNlbHNlCiAgICAgICAgICAgICByZXR1cm4g
bV9zaXplLmhlaWdodCgpOwotI2VuZGlmCiAgICAgICAgIH0KIAotI2lmIFVTRShTS0lBKQotICAg
ICAgICBSZWZQdHI8TmF0aXZlSW1hZ2VTa2lhPiBtX2JpdG1hcDsKLSAgICAgICAgU2tCaXRtYXA6
OkFsbG9jYXRvciogbV9hbGxvY2F0b3I7Ci0jZWxzZQogICAgICAgICBWZWN0b3I8UGl4ZWxEYXRh
PiBtX2JhY2tpbmdTdG9yZTsKICAgICAgICAgUGl4ZWxEYXRhKiBtX2J5dGVzOyAvLyBUaGUgbWVt
b3J5IGlzIGJhY2tlZCBieSBtX2JhY2tpbmdTdG9yZS4KICAgICAgICAgSW50U2l6ZSBtX3NpemU7
CiAgICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBuZWVkIG1fY29sb3JQcm9maWxlIGFueW1vcmU/CiAg
ICAgICAgIENvbG9yUHJvZmlsZSBtX2NvbG9yUHJvZmlsZTsKLSNlbmRpZgogICAgICAgICBib29s
IG1faGFzQWxwaGE7CiAgICAgICAgIEludFJlY3QgbV9vcmlnaW5hbEZyYW1lUmVjdDsgLy8gVGhp
cyB3aWxsIGFsd2F5cyBqdXN0IGJlIHRoZSBlbnRpcmUKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBidWZmZXIgZXhjZXB0IGZvciBHSUYgZnJhbWVzIHdob3NlCkBAIC0z
OTUsMzIgKzM2Myw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCi0jaWYgVVNF
KFNLSUEpCi0gICAgICAgIHZpcnR1YWwgdm9pZCBzZXRNZW1vcnlBbGxvY2F0b3IoU2tCaXRtYXA6
OkFsbG9jYXRvciogYWxsb2NhdG9yKQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBGSVhNRTog
dGhpcyBkb2Vzbid0IHdvcmsgZm9yIGltYWdlcyB3aXRoIG11bHRpcGxlIGZyYW1lcy4KLSAgICAg
ICAgICAgIGlmIChtX2ZyYW1lQnVmZmVyQ2FjaGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAg
IG1fZnJhbWVCdWZmZXJDYWNoZS5yZXNpemUoMSk7Ci0gICAgICAgICAgICBtX2ZyYW1lQnVmZmVy
Q2FjaGVbMF0uc2V0TWVtb3J5QWxsb2NhdG9yKGFsbG9jYXRvcik7Ci0gICAgICAgIH0KLQotICAg
ICAgICB2aXJ0dWFsIGJvb2wgbG9ja0ZyYW1lQnVmZmVycygpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGJvb2wgcmV0ID0gdHJ1ZTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBtX2ZyYW1lQnVmZmVyQ2FjaGUuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICBjb25z
dCBTa0JpdG1hcCYgYml0bWFwID0gbV9mcmFtZUJ1ZmZlckNhY2hlW2ldLmdldFNrQml0bWFwKCk7
Ci0gICAgICAgICAgICAgICAgYml0bWFwLmxvY2tQaXhlbHMoKTsKLSAgICAgICAgICAgICAgICBy
ZXQgPSByZXQgJiYgYml0bWFwLmdldFBpeGVscygpOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgcmV0dXJuIHJldDsKLSAgICAgICAgfQotCi0gICAgICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tG
cmFtZUJ1ZmZlcnMoKQotICAgICAgICB7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKTsgKytpKQotICAgICAgICAgICAgICAgIG1f
ZnJhbWVCdWZmZXJDYWNoZVtpXS5nZXRTa0JpdG1hcCgpLnVubG9ja1BpeGVscygpOwotICAgICAg
ICB9Ci0jZW5kaWYKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgcHJlcGFyZVNjYWxlRGF0
YUlmTmVjZXNzYXJ5KCk7CiAgICAgICAgIGludCB1cHBlckJvdW5kU2NhbGVkWChpbnQgb3JpZ1gs
IGludCBzZWFyY2hTdGFydCA9IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKaW5k
ZXggYTk3NzJmYzA4ZDk3OGNiMDI2YWI3ODhmMTRmZDM1MmQzZTA0ZDVkYy4uZDE1ZGNlMmRhZDhh
ZmE3MzBjNzQ2MDgyOGZkZjQzNDJhMjViMjBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29k
ZXIuY3BwCkBAIC02MCwxMSArNjAsNyBAQCBleHRlcm4gIkMiIHsKIAogI2lmIGRlZmluZWQoSkNT
X0FMUEhBX0VYVEVOU0lPTlMpICYmIEFTU1VNRV9MSVRUTEVfRU5ESUFOCiAjZGVmaW5lIFRVUkJP
X0pQRUdfUkdCX1NXSVpaTEUKLSNpZiBVU0UoU0tJQSkgJiYgKCFTS19SMzJfU0hJRlQgJiYgU0tf
RzMyX1NISUZUID09IDggJiYgU0tfQjMyX1NISUZUID09IDE2KQotaW5saW5lIEpfQ09MT1JfU1BB
Q0UgcmdiT3V0cHV0Q29sb3JTcGFjZSgpIHsgcmV0dXJuIEpDU19FWFRfUkdCQTsgfQotI2Vsc2UK
IGlubGluZSBKX0NPTE9SX1NQQUNFIHJnYk91dHB1dENvbG9yU3BhY2UoKSB7IHJldHVybiBKQ1Nf
RVhUX0JHUkE7IH0KLSNlbmRpZgogaW5saW5lIGJvb2wgdHVyYm9Td2l6emxlZChKX0NPTE9SX1NQ
QUNFIGNvbG9yU3BhY2UpIHsgcmV0dXJuIGNvbG9yU3BhY2UgPT0gSkNTX0VYVF9SR0JBIHx8IGNv
bG9yU3BhY2UgPT0gSkNTX0VYVF9CR1JBOyB9CiBpbmxpbmUgYm9vbCBjb2xvclNwYWNlSGFzQWxw
aGEoSl9DT0xPUl9TUEFDRSBjb2xvclNwYWNlKSB7IHJldHVybiB0dXJib1N3aXp6bGVkKGNvbG9y
U3BhY2UpOyB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKaW5kZXggY2U4
NTg2MzBkY2E0N2Y2ZWJhMzlhZDg4OGM0NTdmZjFjNmI5N2I0NC4uZDAwZWI1ZGNkMDA5MzIyMjhl
NTFjNDFhMTNkOTI0NjhkYWJiOGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3Bw
CkBAIC00OSw4ICs0OSw2IEBACiAKICNpZiBDUFUoQklHX0VORElBTikgfHwgQ1BVKE1JRERMRV9F
TkRJQU4pCiBpbmxpbmUgV0VCUF9DU1BfTU9ERSBvdXRwdXRNb2RlKGJvb2wgaGFzQWxwaGEpIHsg
cmV0dXJuIGhhc0FscGhhID8gTU9ERV9yZ2JBIDogTU9ERV9SR0JBOyB9Ci0jZWxpZiBVU0UoU0tJ
QSkgJiYgU0tfQjMyX1NISUZUCi1pbmxpbmUgV0VCUF9DU1BfTU9ERSBvdXRwdXRNb2RlKGJvb2wg
aGFzQWxwaGEpIHsgcmV0dXJuIGhhc0FscGhhID8gTU9ERV9yZ2JBIDogTU9ERV9SR0JBOyB9CiAj
ZWxzZSAvLyBMSVRUTEVfRU5ESUFOLCBvdXRwdXQgQkdSQSBwaXhlbHMuCiBpbmxpbmUgV0VCUF9D
U1BfTU9ERSBvdXRwdXRNb2RlKGJvb2wgaGFzQWxwaGEpIHsgcmV0dXJuIGhhc0FscGhhID8gTU9E
RV9iZ3JBIDogTU9ERV9CR1JBOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaAppbmRleCA4MjRm
MmZmOGQzNDlmZGUwYjkzMmI5NjA4ZWQ3NTRiYWI2YWVkZTA5Li4wNjY3NmM4MmVjNTAxOGNkM2Y5
OTEwZTQ2MDIzODFjODFiODQ5ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oCkBAIC0yMCwxMCArMjAs
NiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgogCi0jaWYgVVNFKFNLSUEpCi0jaW5jbHVkZSAic2tpYS9leHQvc2tpYV91dGlsc19t
YWMuaCIKLSNlbmRpZgotCiBPQkpDX0NMQVNTIE5TR3JhcGhpY3NDb250ZXh0OwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC00MCwzNCArMzYsMTkgQEAgcHJpdmF0ZToKICAgICBHcmFwaGljc0Nv
bnRleHQqIG1fc2F2ZWRHcmFwaGljc0NvbnRleHQ7CiAgICAgTlNHcmFwaGljc0NvbnRleHQqIG1f
c2F2ZWROU0dyYXBoaWNzQ29udGV4dDsKICAgICBib29sIG1fZGlkU2V0R3JhcGhpY3NDb250ZXh0
OwotI2lmIFVTRShTS0lBKQotICAgIGdmeDo6U2tpYUJpdExvY2tlciBtX3NraWFCaXRMb2NrZXI7
Ci0jZW5kaWYKIH07CiAKIGNsYXNzIENvbnRleHRDb250YWluZXIgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKENvbnRleHRDb250YWluZXIpOwogcHVibGljOgotI2lmIFVTRShTS0lBKQotICAg
IENvbnRleHRDb250YWluZXIoR3JhcGhpY3NDb250ZXh0Kik7Ci0gICAgCi0gICAgLy8gVGhpcyBz
eW5jaHJvbml6ZXMgdGhlIENHQ29udGV4dCB0byByZWZsZWN0IHRoZSBjdXJyZW50IFNrQ2FudmFz
IHN0YXRlLgotICAgIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBtYXkgbm90IHJldHVybiB0aGUgc2Ft
ZSBDR0NvbnRleHQgZWFjaCB0aW1lLgotICAgIENHQ29udGV4dFJlZiBjb250ZXh0KCkgeyByZXR1
cm4gbV9za2lhQml0TG9ja2VyLmNnQ29udGV4dCgpOyB9Ci0jZWxzZQogICAgIENvbnRleHRDb250
YWluZXIoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQpCiAgICAgICAgIDogbV9ncmFw
aGljc0NvbnRleHQoZ3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSkKICAgICB7CiAg
ICAgfQogCiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQoKSB7IHJldHVybiBtX2dyYXBoaWNzQ29u
dGV4dDsgfQotI2VuZGlmCiBwcml2YXRlOgotI2lmIFVTRShTS0lBKQotICAgIGdmeDo6U2tpYUJp
dExvY2tlciBtX3NraWFCaXRMb2NrZXI7Ci0jZWxzZQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0KiBtX2dyYXBoaWNzQ29udGV4dDsKLSNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQu
bW0KaW5kZXggZjAzM2RmMzJjMTg5ODM1YWMzNmVmYjUzNWI1Y2NmMmY0ZjZjNWJhNy4uN2QyZjZm
ZmY0ZTA0Y2RiZjVmZjdiMjFhZmQ5MTI1NTEwYmFiOWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1t
CkBAIC0yMiwxOCArMjIsMTAgQEAKIAogI2luY2x1ZGUgPEFwcEtpdC9OU0dyYXBoaWNzQ29udGV4
dC5oPgogCi0jaWYgVVNFKFNLSUEpCi0jaW5jbHVkZSAicGxhdGZvcm1fY2FudmFzLmgiCi0jaW5j
bHVkZSAiUGxhdGZvcm1Db250ZXh0U2tpYS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0Nv
bnRleHQoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQpCiAgICAgOiBtX2RpZFNldEdy
YXBoaWNzQ29udGV4dChmYWxzZSkKLSNpZiBVU0UoU0tJQSkKLSAgICAsIG1fc2tpYUJpdExvY2tl
cihncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSkKLSNlbmRpZgog
ewogICAgIG1fc2F2ZWRHcmFwaGljc0NvbnRleHQgPSBncmFwaGljc0NvbnRleHQ7CiAgICAgZ3Jh
cGhpY3NDb250ZXh0LT5zYXZlKCk7CkBAIC02MiwyMSArNTQsOCBAQCBMb2NhbEN1cnJlbnRHcmFw
aGljc0NvbnRleHQ6On5Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQoKQogCiBDR0NvbnRleHRS
ZWYgTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0OjpjZ0NvbnRleHQoKQogewotI2lmIFVTRShT
S0lBKQotICAgIC8vIFRoaXMgc3luY2hyb25pemVzIHRoZSBDR0NvbnRleHQgdG8gcmVmbGVjdCB0
aGUgY3VycmVudCBTa0NhbnZhcyBzdGF0ZS4KLSAgICAvLyBUaGUgaW1wbGVtZW50YXRpb24gbWF5
IG5vdCByZXR1cm4gdGhlIHNhbWUgQ0dDb250ZXh0IGVhY2ggdGltZS4KLSAgICBDR0NvbnRleHRS
ZWYgY2dDb250ZXh0ID0gbV9za2lhQml0TG9ja2VyLmNnQ29udGV4dCgpOwotI2Vsc2UKICAgICBD
R0NvbnRleHRSZWYgY2dDb250ZXh0ID0gbV9zYXZlZEdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1D
b250ZXh0KCk7Ci0jZW5kaWYKICAgICByZXR1cm4gY2dDb250ZXh0OwogfQogCi0jaWYgVVNFKFNL
SUEpCi1Db250ZXh0Q29udGFpbmVyOjpDb250ZXh0Q29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCog
Z3JhcGhpY3NDb250ZXh0KSAKLSAgICA6IG1fc2tpYUJpdExvY2tlcihncmFwaGljc0NvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSkKLXsKLX0KLSNlbmRpZgotCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlU29saWRD
b2xvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
U29saWRDb2xvci5jcHAKaW5kZXggYTgxYzM2OThkZWMzMTgzY2M5YmY5MzEwNzk2NjBkMjViMTg3
NmM2ZS4uY2E1Y2FkNGM1MDAzMTk5Zjk0ZWRlNjYxMzdjMmZjMmFlMDZmN2VhNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29s
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VTb2xpZENvbG9yLmNwcApAQCAtMjksMTAgKzI5LDYgQEAKICNpbmNsdWRlICJSZW5kZXJTdHls
ZS5oIgogI2luY2x1ZGUgIlNWR1JlbmRlclN1cHBvcnQuaCIKIAotI2lmIFVTRShTS0lBKQotI2lu
Y2x1ZGUgIlBsYXRmb3JtQ29udGV4dFNraWEuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIFJlbmRlclNWR1Jlc291cmNlVHlwZSBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3I6
OnNfcmVzb3VyY2VUeXBlID0gU29saWRDb2xvclJlc291cmNlVHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCmluZGV4IGZhMmNkMTE0YWJlNTM3ZDczOGJlMzNmZDZj
ODZkZWNiMGM3MDBlZTIuLjU1MWJiZDhkOTJmZTNiYzY3YmFhOGExOTY1MTA3MmUwNjY1MjYzZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMTQyLDcgKzE0
Miw3IEBAIHZvaWQgU1ZHSW1hZ2U6OmRyYXdGb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBGbG9hdFNpemUgY29udGFpCiAgICAgc2V0SW1hZ2VPYnNlcnZlcihvYnNl
cnZlcik7CiB9CiAKLSNpZiBVU0UoU0tJQSkgfHwgVVNFKENBSVJPKQorI2lmIFVTRShDQUlSTykK
IC8vIFBhc3NlcyBvd25lcnNoaXAgb2YgdGhlIG5hdGl2ZSBpbWFnZSB0byB0aGUgY2FsbGVyIHNv
IFBhc3NOYXRpdmVJbWFnZVB0ciBuZWVkcwogLy8gdG8gYmUgYSBzbWFydCBwb2ludGVyIHR5cGUu
CiBQYXNzTmF0aXZlSW1hZ2VQdHIgU1ZHSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggZWFkYjEwMTkzNzE1
ZmY5NWRhZTc0OWRmNDM2ZmE2NzU1ZDRlOGVlMS4uMWFkYjIxYmYxMTE2Y2RlMWUyYmM1YzExODIw
MTY5N2JjMzczMTc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKQEAg
LTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKIAotI2lmIFVTRShTS0lBKSB8
fCBVU0UoQ0FJUk8pCisjaWYgVVNFKENBSVJPKQogICAgIHZpcnR1YWwgUGFzc05hdGl2ZUltYWdl
UHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgT1ZFUlJJREU7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggZmVkM2VlNjNiNzI2N2Rh
OTRlNjE1Y2JmNGUzN2ViMDlkZjBiMTlmMy4uMDVlYjk4Mjk5ZDJjZTdkZDkxZDI3NDdlYTVkY2Vi
NDY1M2Q3YWM3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBA
IC0xNTYsMTAgKzE1Niw2IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJy
eS5oIgogI2VuZGlmCiAKLSNpZiBVU0UoU0tJQSkKLSNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRT
a2lhLmgiCi0jZW5kaWYKLQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNs
dWRlICJGcmFtZUxheWVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VDb21wb3NpdG9yQ2xpZW50Lmgi
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWQ3
NTg4ZDgxZjI4OGRjY2Q5Y2M2YWVhMTVmN2FlNDAxNzliYzE3Ny4uYTAwNjY1MTFmNjgyOGY1MWRj
M2JiYjQxMDk3OGZjYjBmMmQyNTdkNCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTA0LTE5ICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIHJlbWFp
bmluZyBTa2lhICNpZmRlZnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNDg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9QaXhlbER1bXBTdXBwb3J0Qmxh
Y2tCZXJyeS5jcHA6CisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOiBS
ZW1vdmUgU2tpYSAjaWZkZWYgcmVmZXJlbmNlcy4KKwogMjAxMy0wNC0xNyAgR3VzdGF2byBOb3Jv
bmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAogICAgICAgICBbR1RLXSBNYWtlIHRoZSAzMiBi
aXRzIGJvdCBvbmx5IGJ1aWxkIGFuZCBydW4gQVBJIHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1BpeGVsRHVtcFN1cHBvcnRCbGFja0JlcnJ5LmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvUGl4ZWxEdW1wU3VwcG9ydEJsYWNrQmVy
cnkuY3BwCmluZGV4IDM3ZDk1ZmYwNmZjM2E5YmQ4NGVjMjc2YjQ4NzY0NmU4ODNkOTZiY2EuLjgy
YjQ0OGQxM2UyN2E5NWFkZDAwNTU1NDM3ZmYxMzQxMTI1NzE0MTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvUGl4ZWxEdW1wU3VwcG9ydEJsYWNrQmVycnkuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvUGl4ZWxEdW1wU3VwcG9ydEJs
YWNrQmVycnkuY3BwCkBAIC0zMiw5ICszMiw2IEBACiAjaW5jbHVkZSAiV2ViUGFnZUNsaWVudC5o
IgogCiAjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtV2luZG93Lmg+Ci0jaWYgVVNFKFNLSUEp
Ci0jaW5jbHVkZSA8U2tEZXZpY2UuaD4KLSNlbmRpZgogI2luY2x1ZGUgPHd0Zi9NRDUuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTYyLDMwICs1OSw2IEBAIFBhc3NSZWZQdHI8Qml0
bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3KGJvb2wgLypvbnNjcmVl
biovLCBib29sCiAgICAgY29uc3QgUGxhdGZvcm06OkludFNpemUmIHdpbmRvd1NpemUgPSB3aW5k
b3ctPnZpZXdwb3J0U2l6ZSgpOwogICAgIHVuc2lnbmVkIGNoYXIqIGRhdGEgPSBuZXcgdW5zaWdu
ZWQgY2hhclt3aW5kb3dTaXplLndpZHRoKCkgKiB3aW5kb3dTaXplLmhlaWdodCgpICogNF07CiAK
LSNpZiBVU0UoU0tJQSkKLSAgICAvLyBXZSBuZWVkIHRvIGZvcmNlIGEgc3luY2hyb25vdXMgdXBk
YXRlIHRvIHRoZSB3aW5kb3cgb3Igd2UgbWF5IGdldCBhbiBlbXB0eSBiaXRtYXAuCi0gICAgLy8g
Rm9yIGV4YW1wbGUsIHJ1bm5pbmcgRFJUIHdpdGggb25lIHRlc3QgY2FzZSB0aGF0IGZpbmlzaGVz
IGJlZm9yZSB0aGUgc2NyZWVuIGlzIHVwZGF0ZWQuCi0gICAgd2luZG93LT5wb3N0KHdpbmRvd1Jl
Y3QpOwotCi0gICAgU2tCaXRtYXAgYml0bWFwOwotICAgIGJpdG1hcC5zZXRDb25maWcoU2tCaXRt
YXA6OmtBUkdCXzg4ODhfQ29uZmlnLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVp
Z2h0KCkpOwotICAgIGJpdG1hcC5hbGxvY1BpeGVscygpOwotICAgIGJpdG1hcC5lcmFzZUFSR0Io
MCwgMCwgMCwgMCk7Ci0KLSAgICBTa0NhbnZhcyBjYW52YXMoYml0bWFwKTsKLSAgICBiYWNraW5n
U3RvcmUtPmRyYXdDb250ZW50cygmY2FudmFzLCB3aW5kb3dSZWN0LCB3aW5kb3dTaXplKTsKLQot
ICAgIC8vIFJlYWQgdGhhdCBTa0JpdG1hcCByYXRoZXIgdGhhbiBjaGFuZ2UgaXQuIFNvIHVzZSBm
YWxzZSBvbiBhY2Nlc3NCaXRtYXAuCi0gICAgY29uc3QgU2tCaXRtYXAmIGNvbnRlbnRzQml0bWFw
ID0gY2FudmFzLmdldERldmljZSgpLT5hY2Nlc3NCaXRtYXAoZmFsc2UvKmNoYW5nZVBpeGVscyov
KTsKLSAgICBjb250ZW50c0JpdG1hcC5sb2NrUGl4ZWxzKCk7Ci0KLSAgICBjb25zdCB1bnNpZ25l
ZCBjaGFyKiB3aW5kb3dQaXhlbHMgPSAwOwotICAgIGlmICghY29udGVudHNCaXRtYXAuZW1wdHko
KSkgewotICAgICAgICB3aW5kb3dQaXhlbHMgPSBzdGF0aWNfY2FzdDxjb25zdCB1bnNpZ25lZCBj
aGFyKj4oY29udGVudHNCaXRtYXAuZ2V0UGl4ZWxzKCkpOwotICAgICAgICBpZiAod2luZG93UGl4
ZWxzKQotICAgICAgICAgICAgbWVtY3B5KGRhdGEsIHdpbmRvd1BpeGVscywgd2luZG93U2l6ZS53
aWR0aCgpICogd2luZG93U2l6ZS5oZWlnaHQoKSAqIDQpOwotICAgIH0KLSNlbHNlCiAgICAgQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpCdWZmZXIqIGJ1ZmZlciA9IEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpHcmFwaGljczo6Y3JlYXRlQnVmZmVyKHdpbmRvd1NpemUsIEJsYWNrQmVycnk6
OlBsYXRmb3JtOjpHcmFwaGljczo6QWx3YXlzQmFja2VkKTsKICAgICBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6R3JhcGhpY3M6OkRyYXdhYmxlKiBkcmF3YWJsZSA9IEJsYWNrQmVycnk6OlBsYXRmb3Jt
OjpHcmFwaGljczo6bG9ja0J1ZmZlckRyYXdhYmxlKGJ1ZmZlcik7CiAgICAgaWYgKGRyYXdhYmxl
KSB7CkBAIC05NSw3ICs2OCw2IEBAIFBhc3NSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0
bWFwQ29udGV4dEZyb21XZWJWaWV3KGJvb2wgLypvbnNjcmVlbiovLCBib29sCiAgICAgICAgIEJs
YWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6cmVsZWFzZUJ1ZmZlckRyYXdhYmxlKGJ1ZmZl
cik7CiAgICAgfQogICAgIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6ZGVzdHJveUJ1
ZmZlcihidWZmZXIpOwotI2VuZGlmCiAgICAgcmV0dXJuIEJpdG1hcENvbnRleHQ6OmNyZWF0ZUJ5
QWRvcHRpbmdEYXRhKGRhdGEsIHdpbmRvd1NpemUud2lkdGgoKSwgd2luZG93U2l6ZS5oZWlnaHQo
KSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199115</attachid>
            <date>2013-04-22 15:06:12 -0700</date>
            <delta_ts>2013-04-25 09:55:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-114886-20130422150537.patch</filename>
            <type>text/plain</type>
            <size>46760</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4OTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTc2ZGY4MzdjODhhOWQz
ZDBhODkzNDZjNDY4NmUxMTViNGFkMTkxYi4uNGExNjEyMjBhZDdjNGYwZTc3NjRlZTdkZmU5MGRl
Mjk3N2JjZGE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU1IEBACiAyMDEzLTA0LTE5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAorICAgICAgICBSZW1vdmUgdGhl
IHJlbWFpbmluZyBTa2lhICNpZmRlZnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExNDg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBv
dWxhaW4uCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDogUmVtb3ZlIFNr
aWEgI2lmZGVmIHJlZmVyZW5jZXMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50
Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaDogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VCdWZmZXIuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUJ1ZmZlci5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlckRhdGEuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9p
bnQuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZVB0ci5oOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmg6IERpdHRvLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9QYXR0ZXJuLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVCbGVuZC5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29sb3JNYXRyaXguaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZlTWF0cml4Lmg6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaDogRGl0dG8uCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaDog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5j
cHA6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZm
ZWN0Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvQWZm
aW5lVHJhbnNmb3JtLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
aW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHA6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHA6
IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNz
Q29udGV4dC5tbTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNv
dXJjZVNvbGlkQ29sb3IuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDogRGl0dG8u
CisKKzIwMTMtMDQtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgor
CiAgICAgICAgIFJlbW92ZSB0aGUgT3BlblZHIGJhY2tlbmQKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg4MQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZwppbmRleCAwMGU5MmRmOWU5OTQ1ZTM0NjQ5YjM2MTQ1YTY5ZGRhMTYyMzA3ZmNjLi44
YTBmOGFhNmYzMGU1ODZhMTcwMjFjMjI2YWZiMTk4OTljOTRjY2ExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wNC0xOSAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHRoZSByZW1haW5p
bmcgU2tpYSAjaWZkZWZzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTQ4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3VsYWluLgor
CisgICAgICAgICogQXBpL1dlYlBhZ2UuY3BwOiBSZW1vdmUgU2tpYSAjaWZkZWYgcmVmZXJlbmNl
cy4KKwogMjAxMy0wNC0yMiAgRWxpIEZpZGxlciAgPGVmaWRsZXJAYmxhY2tiZXJyeS5jb20+CiAK
ICAgICAgICAgW0JsYWNrQmVycnldIFVwZGF0ZSBhYm91dDpjb25maWcgbGlzdHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKaW5kZXggY2RlOWIyYmZmZDI5NWQ1MWZl
MzI3NzlkYWE2MGQwZDFkMTg4YTM5ZS4uNTc5NmZkZGM4MTIyMTJkYjY4YjU1YjhjY2I5MmJiZDc1
NjJkZjUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKQEAg
LTQxOSw3ICs0MTksNyBAQCBTdHJpbmcgSFRNTENhbnZhc0VsZW1lbnQ6OnRvRGF0YVVSTChjb25z
dCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdAogCiAgICAgU3RyaW5nIGVu
Y29kaW5nTWltZVR5cGUgPSB0b0VuY29kaW5nTWltZVR5cGUobWltZVR5cGUpOwogCi0jaWYgVVNF
KENHKSB8fCBVU0UoU0tJQSkKKyNpZiBVU0UoQ0cpCiAgICAgLy8gVHJ5IHRvIGdldCBJbWFnZURh
dGEgZmlyc3QsIGFzIHRoYXQgbWF5IGF2b2lkIGxvc3N5IGNvbnZlcnNpb25zLgogICAgIFJlZlB0
cjxJbWFnZURhdGE+IGltYWdlRGF0YSA9IGdldEltYWdlRGF0YSgpOwogCkBAIC01MjUsMjEgKzUy
NSwxMiBAQCB2b2lkIEhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcigpIGNvbnN0
CiAKICAgICBpZiAoZGV2aWNlU2l6ZS53aWR0aCgpICogZGV2aWNlU2l6ZS5oZWlnaHQoKSA+IE1h
eENhbnZhc0FyZWEpCiAgICAgICAgIHJldHVybjsKLSNpZiBVU0UoU0tJQSkKLSAgICBpZiAoZGV2
aWNlU2l6ZS53aWR0aCgpID4gTWF4U2tpYURpbSB8fCBkZXZpY2VTaXplLmhlaWdodCgpID4gTWF4
U2tpYURpbSkKLSAgICAgICAgcmV0dXJuOwotI2VuZGlmCiAKICAgICBJbnRTaXplIGJ1ZmZlclNp
emUoZGV2aWNlU2l6ZS53aWR0aCgpLCBkZXZpY2VTaXplLmhlaWdodCgpKTsKICAgICBpZiAoIWJ1
ZmZlclNpemUud2lkdGgoKSB8fCAhYnVmZmVyU2l6ZS5oZWlnaHQoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlID0gc2hvdWxkQWNjZWxlcmF0ZShi
dWZmZXJTaXplKSA/IEFjY2VsZXJhdGVkIDogCi0jaWYgVVNFKFNLSUEpCi0gICAgICAgIFVuYWNj
ZWxlcmF0ZWROb25QbGF0Zm9ybUJ1ZmZlcjsKLSNlbHNlCi0gICAgICAgIFVuYWNjZWxlcmF0ZWQ7
Ci0jZW5kaWYKKyAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBzaG91bGRBY2NlbGVy
YXRlKGJ1ZmZlclNpemUpID8gQWNjZWxlcmF0ZWQgOiBVbmFjY2VsZXJhdGVkOwogICAgIG1faW1h
Z2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHNpemUoKSwgbV9kZXZpY2VTY2FsZUZhY3Rv
ciwgQ29sb3JTcGFjZURldmljZVJHQiwgcmVuZGVyaW5nTW9kZSk7CiAgICAgaWYgKCFtX2ltYWdl
QnVmZmVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKaW5kZXggNjk5NGRlMWMzNmJiNDdlZDAzZDIxNDliODNi
NTA1ZjcyNGQ5NjBjNS4uNGE5NzJlNjM0ODQyNWU0YjkzM2FhOTBhZTcyNzBlY2VmOTZmZTZhZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cApAQCAtNTk1LDggKzU5NSw2IEBAIHZvaWQgRnJhbWVEYXRhOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIG1lbW9yeU9iamVj
dEluZm8tPnNldENsYXNzTmFtZSgiRnJhbWVEYXRhIik7CiAjaWYgKE9TKFdJTkNFKSAmJiAhUExB
VEZPUk0oUVQpKSB8fCBVU0UoQ0FJUk8pCiAgICAgaW5mby5hZGRSYXdCdWZmZXIobV9mcmFtZS5n
ZXQoKSwgbV9mcmFtZUJ5dGVzLCAiTmF0aXZlSW1hZ2UiLCAiZnJhbWUiKTsKLSNlbGlmIFVTRShT
S0lBKQotICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWUsICJmcmFtZSIsIFdURjo6UmV0YWluaW5n
UG9pbnRlcik7CiAjZWxzZQogICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fZnJhbWUsIG1fZnJhbWVC
eXRlcywgIk5hdGl2ZUltYWdlIiwgImZyYW1lIik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaAppbmRleCAxN2Q0ZWJhMjI1MzJiZDkzNzIy
MzU0MGRmNzFiMzVjZTZhNTQxN2E1Li43YjQwMTY2MzAxZmU5ZTc2ODA3ZDU3ZDkzZDRlOTcxNzZl
MzFjNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2lu
dC5oCkBAIC01OCwxMCArNTgsNiBAQCBjbGFzcyBRUG9pbnRGOwogUVRfRU5EX05BTUVTUEFDRQog
I2VuZGlmCiAKLSNpZiBVU0UoU0tJQSkKLXN0cnVjdCBTa1BvaW50OwotI2VuZGlmCi0KIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwpAQCAtMTcwLDExICsxNjYs
NiBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkZsb2F0UG9p
bnQoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgVVNFKFNLSUEpCi0gICAgb3BlcmF0b3IgU2tQb2lu
dCgpIGNvbnN0OwotICAgIEZsb2F0UG9pbnQoY29uc3QgU2tQb2ludCYpOwotI2VuZGlmCi0KICAg
ICBGbG9hdFBvaW50IG1hdHJpeFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYp
IGNvbnN0OwogICAgIEZsb2F0UG9pbnQgbWF0cml4VHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UmVjdC5oCmluZGV4IDc4YmEwYTk0YjQyZDMwNDJjYWRhZDAwNDJiNmFjMGY2MTU4NjNhYmYuLjdh
OGUwMTNlOTIxNjMzYjk3NTA4OTJjMWJlYTkyOWZlYjM5ZjJhYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCkBAIC02MCwxMCArNjAsNiBAQCBjbGFz
cyBGbG9hdFJlY3Q7CiB9CiAjZW5kaWYKIAotI2lmIFVTRShTS0lBKQotc3RydWN0IFNrUmVjdDsK
LSNlbmRpZgotCiAjaWYgVVNFKENBSVJPKQogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3Rhbmds
ZSBjYWlyb19yZWN0YW5nbGVfdDsKICNlbmRpZgpAQCAtMjEyLDExICsyMDgsNiBAQCBwdWJsaWM6
CiAgICAgb3BlcmF0b3Igd3hSZWN0MkREb3VibGUoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgVVNF
KFNLSUEpCi0gICAgRmxvYXRSZWN0KGNvbnN0IFNrUmVjdCYpOwotICAgIG9wZXJhdG9yIFNrUmVj
dCgpIGNvbnN0OwotI2VuZGlmCi0KICNpZiBVU0UoQ0FJUk8pCiAgICAgRmxvYXRSZWN0KGNvbnN0
IGNhaXJvX3JlY3RhbmdsZV90Jik7CiAgICAgb3BlcmF0b3IgY2Fpcm9fcmVjdGFuZ2xlX3QoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5k
ZXggNDU0Y2VmMjM5YzZjMjhmODdjNGM4ZTk2MTRiNjcxNmUxNzdmMGVlMC4uMDUwNjY2ZGE5MDg2
MzQ5ZTI5MDJmNmEwNGQyOTlkMWFmMGZhNGJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTExMCwxMSArMTEwLDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCi0jaWYgVVNFKFNLSUEpCi0gICAg
dHlwZWRlZiB1aW50MzJfdCBGb250RmlsZUtleTsKLSNlbHNlCiAgICAgdHlwZWRlZiBBdG9taWNT
dHJpbmcgRm9udEZpbGVLZXk7Ci0jZW5kaWYKICAgICBQYXNzUmVmUHRyPE9wZW5UeXBlVmVydGlj
YWxEYXRhPiBnZXRWZXJ0aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmLCBjb25zdCBGb250UGxh
dGZvcm1EYXRhJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhZGllbnQuY3BwCmluZGV4IGUxMDM2ODRlMGJkMGJlYzc3ZDRiZDc4NmZhNDM2YmVkMGQw
NzA1MmUuLjdlNzYzOGI2ZDE0MjJhMjQ0OWU1ZmU5ODhjNTU3M2Q5N2JhNGYyN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAKQEAgLTI0MCw3ICsy
NDAsNyBAQCB2b2lkIEdyYWRpZW50OjpzZXRHcmFkaWVudFNwYWNlVHJhbnNmb3JtKGNvbnN0IEFm
ZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYQogICAgIGludmFsaWRhdGVIYXNoKCk7CiB9
CiAKLSNpZiAhVVNFKFNLSUEpICYmICFVU0UoQ0FJUk8pICYmICFQTEFURk9STShCTEFDS0JFUlJZ
KQorI2lmICFVU0UoQ0FJUk8pICYmICFQTEFURk9STShCTEFDS0JFUlJZKQogdm9pZCBHcmFkaWVu
dDo6c2V0UGxhdGZvcm1HcmFkaWVudFNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFkaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuaApp
bmRleCA1MDA2YzQzNjJkZDBhZGUzOTI2OTg2ODIyNzc3ZDNlYTg0ZDQ0ZjMxLi5jZmFkOWFjNDAy
OTdkMjVhMjk1NTQwMmVkMmU0MjlmNDQ2Yjc5NDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKQEAgLTUwLDEwICs1MCw2IEBAIHR5cGVkZWYgUUdyYWRp
ZW50KiBQbGF0Zm9ybUdyYWRpZW50OwogI2VsaWYgVVNFKENBSVJPKQogdHlwZWRlZiBzdHJ1Y3Qg
X2NhaXJvX3BhdHRlcm4gY2Fpcm9fcGF0dGVybl90OwogdHlwZWRlZiBjYWlyb19wYXR0ZXJuX3Qq
IFBsYXRmb3JtR3JhZGllbnQ7Ci0jZWxpZiBVU0UoU0tJQSkKLWNsYXNzIFNrU2hhZGVyOwotdHlw
ZWRlZiBjbGFzcyBTa1NoYWRlciogUGxhdGZvcm1HcmFkaWVudDsKLXR5cGVkZWYgY2xhc3MgU2tT
aGFkZXIqIFBsYXRmb3JtUGF0dGVybjsKICNlbGlmIFBMQVRGT1JNKFdYKQogY2xhc3Mgd3hHcmFw
aGljc0JydXNoOwogdHlwZWRlZiB3eEdyYXBoaWNzQnJ1c2gqIFBsYXRmb3JtR3JhZGllbnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
LmNwcAppbmRleCBkMGI5YTljN2E5NTJmMDA4MjkwMzkwNzZlMDYyYWQ1MTBhMGQ5MjM2Li41NWE0
OTkzMDI1ZWUzMTFjMmFjODExNWM3ODk1NzMzMjMxZjI5YjZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAKQEAgLTYwNiw3
ICs2MDYsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcChjb25zdCBJbnRSZWN0JiByZWN0
KQogfQogI2VuZGlmCiAKLSNpZiAhVVNFKFNLSUEpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xp
cFJvdW5kZWRSZWN0KGNvbnN0IFJvdW5kZWRSZWN0JiByZWN0KQogewogICAgIGlmIChwYWludGlu
Z0Rpc2FibGVkKCkpCkBAIC02MjEsNyArNjIwLDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNs
aXBSb3VuZGVkUmVjdChjb25zdCBSb3VuZGVkUmVjdCYgcmVjdCkKICAgICBwYXRoLmFkZFJvdW5k
ZWRSZWN0KHJlY3QpOwogICAgIGNsaXAocGF0aCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmNsaXBPdXRSb3VuZGVkUmVjdChjb25zdCBSb3VuZGVkUmVjdCYgcmVjdCkKIHsK
QEAgLTczNyw3ICs3MzUsNyBAQCBCbGVuZE1vZGUgR3JhcGhpY3NDb250ZXh0OjpibGVuZE1vZGVP
cGVyYXRpb24oKSBjb25zdAogICAgIHJldHVybiBtX3N0YXRlLmJsZW5kTW9kZTsKIH0KIAotI2lm
ICFVU0UoQ0cpICYmICFVU0UoU0tJQSkKKyNpZiAhVVNFKENHKQogLy8gSW1wbGVtZW50IHRoaXMg
aWYgeW91IHdhbnQgdG8gZ28gYWhlYWQgYW5kIHB1c2ggdGhlIGRyYXdpbmcgbW9kZSBpbnRvIHlv
dXIgbmF0aXZlIGNvbnRleHQKIC8vIGltbWVkaWF0ZWx5Lgogdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnNldFBsYXRmb3JtVGV4dERyYXdpbmdNb2RlKFRleHREcmF3aW5nTW9kZUZsYWdzKQpAQCAtNzQ1
LDcgKzc0Myw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVRleHREcmF3aW5n
TW9kZShUZXh0RHJhd2luZ01vZGVGbGFncykKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKFFU
KSAmJiAhVVNFKENBSVJPKSAmJiAhVVNFKFNLSUEpCisjaWYgIVBMQVRGT1JNKFFUKSAmJiAhVVNF
KENBSVJPKQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldFBsYXRmb3JtU3Ryb2tlU3R5bGUoU3Ry
b2tlU3R5bGUpCiB7CiB9CkBAIC03NTcsNyArNzU1LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6
OnNldFBsYXRmb3JtU2hvdWxkU21vb3RoRm9udHMoYm9vbCkKIH0KICNlbmRpZgogCi0jaWYgIVVT
RShTS0lBKSAmJiAhVVNFKENHKSAmJiAhVVNFKENBSVJPKQorI2lmICFVU0UoQ0cpICYmICFVU0Uo
Q0FJUk8pCiBib29sIEdyYXBoaWNzQ29udGV4dDo6aXNBY2NlbGVyYXRlZENvbnRleHQoKSBjb25z
dAogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTg2MCw3ICs4NTgsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6c3Ryb2tlRWxsaXBzZUFzUGF0aChjb25zdCBGbG9hdFJlY3QmIGVsbGlwc2UpCiAg
ICAgc3Ryb2tlUGF0aChwYXRoKTsKIH0KIAotI2lmICFVU0UoQ0cpICYmICFVU0UoU0tJQSkgLy8g
YXBwZW5kICYmICFVU0UoTVlQTEFURk9STSkgaGVyZSB0byBvcHRpbWl6ZSBlbGxpcHNlcyBvbiB5
b3VyIHBsYXRmb3JtLgorI2lmICFVU0UoQ0cpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6cGxhdGZv
cm1GaWxsRWxsaXBzZShjb25zdCBGbG9hdFJlY3QmIGVsbGlwc2UpCiB7CiAgICAgaWYgKHBhaW50
aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmgKaW5kZXggMDIzNGZjYjcwMTkxMjNmZThmNTlmYjY0NzM3NWY3NWZj
MDA0NGUwZi4uOWVlODk2NGFlMmRmZWRmMWQ3N2FkMDhlMTc0NmFmZGNjZWFhYTU2OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgK
QEAgLTY4LDEyICs2OCw2IEBAIGNsYXNzIHd4V2luZG93REM7CiAjZWxzZQogICAgIHR5cGVkZWYg
d3hXaW5kb3dEQyBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDsKICNlbmRpZgotI2VsaWYgVVNFKFNL
SUEpCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBQbGF0Zm9ybUNvbnRleHRTa2lhOwotdHlw
ZWRlZiBQbGF0Zm9ybUNvbnRleHRTa2lhIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTsK
LX0KLXR5cGVkZWYgV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYSBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dDsKICNlbGlmIE9TKFdJTkNFKQogdHlwZWRlZiBzdHJ1Y3QgSERDX18gUGxhdGZvcm1H
cmFwaGljc0NvbnRleHQ7CiAjZWxzZQpAQCAtMTA4LDkgKzEwMiw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiAgICAgY2xhc3MgRHJhd2luZ0J1ZmZl
cjsKICAgICBjbGFzcyBHZW5lcmF0b3I7Ci0jaWYgIVVTRShTS0lBKQogICAgIGNsYXNzIEdyYXBo
aWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZTsKLSNlbmRpZgogICAgIGNsYXNzIEltYWdlQnVmZmVy
OwogICAgIGNsYXNzIEludFJlY3Q7CiAgICAgY2xhc3MgUm91bmRlZFJlY3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRl
eCA2YTA0NDk4NDJhZGU3Yzg5ZTdiNTVhNWRkOTc1YmEzN2IxNDllNzA1Li4wMDU2MjNiYjhkYzUz
YjU5N2NhNjBhZTIyMTVmM2EyZTJhZjliY2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTgwLDEwICs4MCw2IEBA
IHR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKIHR5cGVkZWYgdm9pZCog
UGxhdGZvcm1HcmFwaGljc1N1cmZhY2UzRDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oQkxBQ0tC
RVJSWSkgJiYgVVNFKFNLSUEpCi1jbGFzcyBHckNvbnRleHQ7Ci0jZW5kaWYKLQogLy8gVGhlc2Ug
YXJlIGN1cnJlbnRseSB0aGUgc2FtZSBhbW9uZyBhbGwgaW1wbGVtZW50YXRpb25zLgogY29uc3Qg
UGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBOdWxsUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCA9
IDA7CiBjb25zdCBQbGF0Zm9ybTNET2JqZWN0IE51bGxQbGF0Zm9ybTNET2JqZWN0ID0gMDsKQEAg
LTQ5NSw5ICs0OTEsNiBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShCTEFDS0JFUlJZKQogICAg
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNv
bnN0OwogICAgIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Q7Ci0jaWYg
VVNFKFNLSUEpCi0gICAgR3JDb250ZXh0KiBnckNvbnRleHQoKTsKLSNlbmRpZgogI2lmIFVTRShB
Q0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVy
KCkgY29uc3Q7CiAjZW5kaWYKQEAgLTkxOSwxMCArOTEyLDcgQEAgcHVibGljOgogICAgICAgICAv
LyBuZWVkcyB0byBsb2NrIHRoZSByZXNvdXJjZXMgb3IgcmVsZXZhbnQgZGF0YSBpZiBuZWVkZWQg
YW5kIHJldHVybnMgdHJ1ZSB1cG9uIHN1Y2Nlc3MKICAgICAgICAgYm9vbCBleHRyYWN0SW1hZ2Uo
Ym9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKTsK
IAotI2lmIFVTRShTS0lBKQotICAgICAgICBSZWZQdHI8TmF0aXZlSW1hZ2VTa2lhPiBtX25hdGl2
ZUltYWdlOwotICAgICAgICBSZWZQdHI8TmF0aXZlSW1hZ2VTa2lhPiBtX3NraWFJbWFnZTsKLSNl
bGlmIFVTRShDQUlSTykKKyNpZiBVU0UoQ0FJUk8pCiAgICAgICAgIEltYWdlU291cmNlKiBtX2Rl
Y29kZXI7CiAgICAgICAgIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IG1faW1hZ2VTdXJmYWNlOwog
I2VsaWYgVVNFKENHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuY3BwCmluZGV4IGZkMDI5ODYyZGRjNTU2YzY5ODkwZTk1YzVlZWE4MmRhMzEwNzYw
N2IuLmFiZjg3OThlMTY5YzAzMmJlNTNhNjk1ZTQ4ZGExZTBmY2MxNTMzMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKQEAgLTk5LDE0
ICs5OSwxMyBAQCB2b2lkIEltYWdlQnVmZmVyOjpjb252ZXJ0VG9MdW1pbmFuY2VNYXNrKCkKICAg
ICBnZW5lcmljQ29udmVydFRvTHVtaW5hbmNlTWFzaygpOwogfQogCi0jaWYgVVNFKEFDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HKSAmJiAhVVNFKFNLSUEpICYmICFVU0UoQ0FJUk8pICYmICFQTEFURk9S
TShCTEFDS0JFUlJZKQorI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykgJiYgIVVTRShD
QUlSTykgJiYgIVBMQVRGT1JNKEJMQUNLQkVSUlkpCiBQbGF0Zm9ybUxheWVyKiBJbWFnZUJ1ZmZl
cjo6cGxhdGZvcm1MYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIDA7CiB9CiAjZW5kaWYKIAot
I2lmICFVU0UoU0tJQSkKIGJvb2wgSW1hZ2VCdWZmZXI6OmNvcHlUb1BsYXRmb3JtVGV4dHVyZShH
cmFwaGljc0NvbnRleHQzRCYsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RlbnVtLCBib29sLCBib29s
KQogewogICAgIHJldHVybiBmYWxzZTsKQEAgLTExNiw3ICsxMTUsNiBAQCBQYXNzT3duUHRyPElt
YWdlQnVmZmVyPiBJbWFnZUJ1ZmZlcjo6Y3JlYXRlQ29tcGF0aWJsZUJ1ZmZlcihjb25zdCBJbnRT
aXplJiBzaXplLAogewogICAgIHJldHVybiBjcmVhdGUoc2l6ZSwgcmVzb2x1dGlvblNjYWxlLCBj
b2xvclNwYWNlLCBjb250ZXh0LT5pc0FjY2VsZXJhdGVkQ29udGV4dCgpID8gQWNjZWxlcmF0ZWQg
OiBVbmFjY2VsZXJhdGVkKTsKIH0KLSNlbmRpZgogCiB2b2lkIEltYWdlQnVmZmVyOjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXgg
OWQwYjNlOGM5ZTliYzNjZTFhZTYxNWFkYTA1ZDhkZjA5ZjQ4ZTIwZi4uZjlmZGM2NWRhNWMzYzE0
NzU4MDVmNWM3ODhlZmJlNGI1NjdkZDAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0xNTYsMTIgKzE1Niw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgLy8gVGhpcyBjb25zdHJ1Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNj
ZXNzIGludG8gdGhlIGdpdmVuIG91dC12YXJpYWJsZQogICAgICAgICAvLyBzbyB0aGF0IGNyZWF0
ZSgpIGtub3dzIHdoZW4gaXQgc2hvdWxkIHJldHVybiBmYWlsdXJlLgogICAgICAgICBJbWFnZUJ1
ZmZlcihjb25zdCBJbnRTaXplJiwgZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBS
ZW5kZXJpbmdNb2RlLCBib29sJiBzdWNjZXNzKTsKLSNpZiBVU0UoU0tJQSkKLSAgICAgICAgSW1h
Z2VCdWZmZXIoY29uc3QgSW50U2l6ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFj
ZSwgY29uc3QgR3JhcGhpY3NDb250ZXh0KiwgYm9vbCBoYXNBbHBoYSwgYm9vbCYgc3VjY2Vzcyk7
Ci0jZW5kaWYKICAgICB9OwogCi0jaWYgVVNFKENHKSB8fCBVU0UoU0tJQSkKKyNpZiBVU0UoQ0cp
CiAgICAgU3RyaW5nIEltYWdlRGF0YVRvRGF0YVVSTChjb25zdCBJbWFnZURhdGEmLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1YWxpdHkpOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJEYXRhLmgKaW5k
ZXggYmFjZDI0YTBhOTFlMGY0MGU3ZTY1MmZjZWVhOGYzMzhhODc5ZWIyOS4uMzUwZTY2ZTc1Yjgz
ZDE4ZDk0YmRkYTNmNTM5MjlkZWRkZjM0NDk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJEYXRhLmgKQEAgLTI5LDggKzI5LDYgQEAKICNp
bmNsdWRlICJJbWFnZUJ1ZmZlckRhdGFDYWlyby5oIgogI2VsaWYgUExBVEZPUk0oUVQpCiAjaW5j
bHVkZSAiSW1hZ2VCdWZmZXJEYXRhUXQuaCIKLSNlbGlmIFVTRShTS0lBKQotI2luY2x1ZGUgIklt
YWdlQnVmZmVyRGF0YVNraWEuaCIKICNlbGlmIE9TKFdJTkNFKQogI2luY2x1ZGUgIkltYWdlQnVm
ZmVyRGF0YVdpbmNlLmgiCiAjZWxpZiBQTEFURk9STShXWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oCmluZGV4IDBlODg3ZmI4OTZmMTIyZjM1ZDE3YmIxNjg5
NDQ4YTE5YzVlMzVmMWMuLjQ5OTA2NDBkNWQ1NjllN2U0NGRmNjNjZDMyNDQ3YTM1YzI2ZDc5NjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UG9pbnQuaApAQCAtNjUs
MTEgKzY1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX0V2YXNfUG9pbnQgRXZhc19Qb2ludDsKIGNsYXNz
IHd4UG9pbnQ7CiAjZW5kaWYKIAotI2lmIFVTRShTS0lBKQotc3RydWN0IFNrUG9pbnQ7Ci1zdHJ1
Y3QgU2tJUG9pbnQ7Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbnRQ
b2ludCB7CkBAIC0xNTMsMTIgKzE0OCw2IEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciB3eFBvaW50
KCkgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFVTRShTS0lBKQotICAgIEludFBvaW50KGNvbnN0IFNr
SVBvaW50Jik7Ci0gICAgb3BlcmF0b3IgU2tJUG9pbnQoKSBjb25zdDsKLSAgICBvcGVyYXRvciBT
a1BvaW50KCkgY29uc3Q7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBpbnQgbV94LCBtX3k7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCmluZGV4IDRjZjE4
OTBlODAzNmUyY2RhYmIxYWNiOGQyYTk3ZDc3Y2E2Zjg0NjEuLjUyNDAwM2FkNmFiOGIwNDhmNDAw
OWYyNzliMDFiODcyZDk4YTExYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ludFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0LmgKQEAgLTY5LDExICs2OSw2IEBAIHR5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0
YW5nbGVfaW50IGNhaXJvX3JlY3RhbmdsZV9pbnRfdDsKIGNsYXNzIHd4UmVjdDsKICNlbmRpZgog
Ci0jaWYgVVNFKFNLSUEpCi1zdHJ1Y3QgU2tSZWN0Owotc3RydWN0IFNrSVJlY3Q7Ci0jZW5kaWYK
LQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGbG9hdFJlY3Q7CkBAIC0yMjQsMTIgKzIx
OSw2IEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciBDR1JlY3QoKSBjb25zdDsKICNlbmRpZgogCi0j
aWYgVVNFKFNLSUEpCi0gICAgSW50UmVjdChjb25zdCBTa0lSZWN0Jik7Ci0gICAgb3BlcmF0b3Ig
U2tSZWN0KCkgY29uc3Q7Ci0gICAgb3BlcmF0b3IgU2tJUmVjdCgpIGNvbnN0OwotI2VuZGlmCi0K
ICNpZiAoUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNf
Q0dHRU9NRVRSWV9UWVBFUykpIHx8IChQTEFURk9STShRVCkgJiYgVVNFKFFUS0lUKSkKICAgICBv
cGVyYXRvciBOU1JlY3QoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQdHIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKaW5kZXggZDAzYmY4ZjZkYWY4ZmNkYWQw
MDQ4NDIzMTQyZWQwMjg4YmJkN2Y2Yy4uMzc3YzcwN2U5NGU4ZWNkN2M4NGNiNTRkMTcxODI4ODc3
OTQ2YTVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0
aXZlSW1hZ2VQdHIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRp
dmVJbWFnZVB0ci5oCkBAIC00MSwxMSArNDEsNiBAQCBjbGFzcyBRUGl4bWFwOwogUVRfRU5EX05B
TUVTUEFDRQogI2VsaWYgVVNFKENBSVJPKQogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCi0jZWxp
ZiBVU0UoU0tJQSkKLSNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEuaCIKLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLWNsYXNzIE5hdGl2ZUltYWdlU2tpYTsKLX0KICNlbGlmIE9TKFdJTkNFKQogI2luY2x1
ZGUgIlNoYXJlZEJpdG1hcC5oIgogI2VuZGlmCkBAIC03MSwxNyArNjYsMTMgQEAgdHlwZWRlZiB3
eEJpdG1hcCogTmF0aXZlSW1hZ2VQdHI7CiAjZWxpZiBVU0UoQ0FJUk8pCiB0eXBlZGVmIFJlZlB0
cjxjYWlyb19zdXJmYWNlX3Q+IE5hdGl2ZUltYWdlUHRyOwogdHlwZWRlZiBQYXNzUmVmUHRyPGNh
aXJvX3N1cmZhY2VfdD4gUGFzc05hdGl2ZUltYWdlUHRyOwotI2VsaWYgVVNFKFNLSUEpCi10eXBl
ZGVmIFJlZlB0cjxOYXRpdmVJbWFnZVNraWE+IE5hdGl2ZUltYWdlUHRyOwotdHlwZWRlZiBQYXNz
UmVmUHRyPE5hdGl2ZUltYWdlU2tpYT4gUGFzc05hdGl2ZUltYWdlUHRyOwotdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShjb25zdCBOYXRpdmVJbWFnZVNraWEqLCBXVEY6Ok1lbW9yeU9iamVjdEluZm8q
KTsKICNlbGlmIE9TKFdJTkNFKQogdHlwZWRlZiBSZWZQdHI8U2hhcmVkQml0bWFwPiBOYXRpdmVJ
bWFnZVB0cjsKICNlbGlmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCiB0eXBlZGVmIHZvaWQqIE5hdGl2
ZUltYWdlUHRyOwogI2VuZGlmCiAKLSNpZiAhVVNFKFNLSUEpICYmICFVU0UoQ0FJUk8pCisjaWYg
IVVTRShDQUlSTykKIHR5cGVkZWYgTmF0aXZlSW1hZ2VQdHIgUGFzc05hdGl2ZUltYWdlUHRyOwog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Bh
dGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAppbmRleCBhMDEx
OTQ0OTJhM2RlOGVhYzg1OGNiMDNjZGRiMjQzOWZmYzhmN2EwLi45M2E1OGUzMjY3NzM5NjE1ZjEz
NDkyY2E4MWM5Yzk2M2U4YTkxNzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UGF0aC5oCkBAIC00NSw5ICs0NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENhaXJv
UGF0aDsKIH0KIHR5cGVkZWYgV2ViQ29yZTo6Q2Fpcm9QYXRoIFBsYXRmb3JtUGF0aDsKLSNlbGlm
IFVTRShTS0lBKQotY2xhc3MgU2tQYXRoOwotdHlwZWRlZiBTa1BhdGggUGxhdGZvcm1QYXRoOwog
I2VsaWYgT1MoV0lOQ0UpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUGxhdGZvcm1Q
YXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVy
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcAppbmRl
eCA4ZDk0ZDFmYjJlYzI4NmQzY2Q0NjI2NzRiODdkY2FjOGYyNzc2ZjA5Li4zYjMyZWJiYjg5YWIx
YzgxZWZlMjBmMWRiYTY3NjA4NzFlY2I1YmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QYXR0ZXJuLmNwcApAQCAtNDAsMTAgKzQwLDYgQEAgUGF0dGVybjo6UGF0dGVy
bihQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSwgYm9vbCByZXBlYXRYLCBib29sIHJlcGVhdFkpCiAg
ICAgOiBtX3RpbGVJbWFnZShpbWFnZSkKICAgICAsIG1fcmVwZWF0WChyZXBlYXRYKQogICAgICwg
bV9yZXBlYXRZKHJlcGVhdFkpCi0jaWYgVVNFKFNLSUEpCi0gICAgLCBtX3BhdHRlcm4oMCkKLSAg
ICAsIG1fZXh0ZXJuYWxNZW1vcnlBbGxvY2F0ZWQoMCkKLSNlbmRpZgogewogICAgIEFTU0VSVCht
X3RpbGVJbWFnZSk7CiB9CkBAIC01OSw3ICs1NSw2IEBAIHZvaWQgUGF0dGVybjo6c2V0UGF0dGVy
blNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblNwYWNlVHJhbnNm
CiAgICAgc2V0UGxhdGZvcm1QYXR0ZXJuU3BhY2VUcmFuc2Zvcm0oKTsKIH0KIAotI2lmICFVU0Uo
U0tJQSkKIHZvaWQgUGF0dGVybjo6cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0KQEAgLTY3LDYgKzYy
LDUgQEAgdm9pZCBQYXR0ZXJuOjpwbGF0Zm9ybURlc3Ryb3koKQogdm9pZCBQYXR0ZXJuOjpzZXRQ
bGF0Zm9ybVBhdHRlcm5TcGFjZVRyYW5zZm9ybSgpCiB7CiB9Ci0jZW5kaWYKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCmluZGV4IGU3NmJiMDExYTZlNzQ5
YWYwY2JlNmRmNTQ0NTE3ZDM2NzY0Zjk1NGIuLmE0ZjIxZmE1NWQzYTQ1M2UyODRkZDc2N2JkNGFl
OWM0MWYwZTI3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1BhdHRlcm4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJu
LmgKQEAgLTQwLDkgKzQwLDYgQEAgdHlwZWRlZiBDR1BhdHRlcm5SZWYgUGxhdGZvcm1QYXR0ZXJu
UHRyOwogI2VsaWYgVVNFKENBSVJPKQogI2luY2x1ZGUgPGNhaXJvLmg+CiB0eXBlZGVmIGNhaXJv
X3BhdHRlcm5fdCogUGxhdGZvcm1QYXR0ZXJuUHRyOwotI2VsaWYgVVNFKFNLSUEpCi1jbGFzcyBT
a1NoYWRlcjsKLXR5cGVkZWYgU2tTaGFkZXIqIFBsYXRmb3JtUGF0dGVyblB0cjsKICNlbGlmIFBM
QVRGT1JNKFFUKQogI2luY2x1ZGUgPFFCcnVzaD4KIHR5cGVkZWYgUUJydXNoIFBsYXRmb3JtUGF0
dGVyblB0cjsKQEAgLTczLDkgKzcwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcGxhdGZvcm1EZXN0
cm95KCk7CiAKICAgICAvLyBQYXR0ZXJuIHNwYWNlIGlzIGFuIGFic3RyYWN0IHNwYWNlIHRoYXQg
bWFwcyB0byB0aGUgZGVmYXVsdCB1c2VyIHNwYWNlIGJ5IHRoZSB0cmFuc2Zvcm1hdGlvbiAndXNl
clNwYWNlVHJhbnNmb3JtYXRpb24nIAotI2lmIFVTRShTS0lBKQotICAgIFBsYXRmb3JtUGF0dGVy
blB0ciBwbGF0Zm9ybVBhdHRlcm4oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB1c2VyU3BhY2VUcmFu
c2Zvcm1hdGlvbik7Ci0jZWxpZiBQTEFURk9STShRVCkKKyNpZiBQTEFURk9STShRVCkKICAgICAv
LyBRdCBpZ25vcmVzIHVzZXIgc3BhY2UgdHJhbnNmb3JtYXRpb24gYW5kIHVzZXMgcGF0dGVybidz
IGluc3RlYWQKICAgICBQbGF0Zm9ybVBhdHRlcm5QdHIgY3JlYXRlUGxhdGZvcm1QYXR0ZXJuKCkg
Y29uc3Q7CiAjZWxzZQpAQCAtOTYsOSArOTEsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9yZXBl
YXRZOwogICAgIEFmZmluZVRyYW5zZm9ybSBtX3BhdHRlcm5TcGFjZVRyYW5zZm9ybWF0aW9uOwog
ICAgIFBsYXRmb3JtUGF0dGVyblB0ciBtX3BhdHRlcm47Ci0jaWYgVVNFKFNLSUEpCi0gICAgaW50
IG1fZXh0ZXJuYWxNZW1vcnlBbGxvY2F0ZWQ7Ci0jZW5kaWYKIH07CiAKIH0gLy9uYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVC
bGVuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5k
LmgKaW5kZXggNWM3MWMyYjcyNTA2NjQ3MWJjNzM4MmFkZjJjY2QxMmM5NzVlMDhhZi4uNmIwMDA4
MGE4YWFhNjhlOWFiNjJiYmU4NDMyZGMxZWZhYmVkZjQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKQEAgLTQ5LDExICs0OSw2
IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNvbG9yQXJy
YXlMZW5ndGgpOwogICAgIHZvaWQgcGxhdGZvcm1BcHBseU5FT04odW5zaWduZWQgY2hhciogc3Jj
UGl4ZWxBcnJheUEsIHVuc2lnbmVkIGNoYXIqIHNyY1BpeGVsQXJyYXlCLCB1bnNpZ25lZCBjaGFy
KiBkc3RQaXhlbEFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY29s
b3JBcnJheUxlbmd0aCk7Ci0jaWYgVVNFKFNLSUEpCi0gICAgdmlydHVhbCBib29sIHBsYXRmb3Jt
QXBwbHlTa2lhKCk7Ci0gICAgdmlydHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVhdGVJbWFnZUZpbHRl
cihTa2lhSW1hZ2VGaWx0ZXJCdWlsZGVyKik7Ci0jZW5kaWYKLQogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JN
YXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xv
ck1hdHJpeC5oCmluZGV4IDc2YjI2YzhjMTBhMmVlNTViNTIyN2JkZTlhYzA4N2U3MmQ4NTUyYTgu
Ljk4OTA1YzU4ZWMwYjFmNDQzNDM5NDcwNTUzZDkwYTJjODFhOTk5ZWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJp
eC5oCkBAIC00OSwxMCArNDksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRWYWx1ZXMoY29uc3Qg
VmVjdG9yPGZsb2F0PiYpOwogCiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2Fy
ZSgpOwotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUFwcGx5U2tpYSgp
OwotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRlciogY3JlYXRlSW1hZ2VGaWx0ZXIoU2tpYUltYWdl
RmlsdGVyQnVpbGRlciopOwotI2VuZGlmCiAjaWYgRU5BQkxFKE9QRU5DTCkKICAgICB2aXJ0dWFs
IGJvb2wgcGxhdGZvcm1BcHBseU9wZW5DTCgpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFu
c2Zlci5oCmluZGV4IDY4NDU0ZmQzNTdkYzVkYWQwNGViZGRkNTdkZDU2ZTUzZGMyN2U3MWYuLmNm
NmI3NDc2ZDhjMzdjZjNkZWVmYTVhOWY5ZTJiNDRiMzJmMDk0NzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25lbnRUcmFuc2Zlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25l
bnRUcmFuc2Zlci5oCkBAIC03OSwxMCArNzksNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBbHBo
YUZ1bmN0aW9uKGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSNpZiBVU0UoU0tJQSkKLSAgICB2aXJ0
dWFsIGJvb2wgcGxhdGZvcm1BcHBseVNraWEoKTsKLSAgICB2aXJ0dWFsIFNrSW1hZ2VGaWx0ZXIq
IGNyZWF0ZUltYWdlRmlsdGVyKFNraWFJbWFnZUZpbHRlckJ1aWxkZXIqKTsKLSNlbmRpZgogICAg
IHZpcnR1YWwgdm9pZCBkdW1wKCk7CiAKICAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFs
UmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0
ZS5oCmluZGV4IDNlYjliODYxNWQ3ODkxMmE2NjZmNGU2N2I2NzQyMmVjNWFkZDUzZDYuLmRmMDQy
NmE3OGZlZjJiYjUwYjc4ZDM5YjNjNzU5YWZlMmFiOGFhZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9zaXRlLmgKQEAgLTY4
LDEwICs2OCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVGV4dFN0cmVhbSYgZXh0ZXJuYWxS
ZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29uc3Q7CiAKLSNpZiBV
U0UoU0tJQSkKLSAgICB2aXJ0dWFsIFNrSW1hZ2VGaWx0ZXIqIGNyZWF0ZUltYWdlRmlsdGVyKFNr
aWFJbWFnZUZpbHRlckJ1aWxkZXIqKTsKLSNlbmRpZgotCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCBib29sIHJlcXVpcmVzVmFsaWRQcmVNdWx0aXBsaWVkUGl4ZWxzKCkgT1ZFUlJJREUgeyByZXR1
cm4gbV90eXBlICE9IEZFQ09NUE9TSVRFX09QRVJBVE9SX0FSSVRITUVUSUM7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbnZvbHZl
TWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29u
dm9sdmVNYXRyaXguaAppbmRleCA5MTA2MGE3OTU0N2I5NTRhNmI3NzQ4NDMyZGQxOTBlNDVjOTUz
MDA0Li44MWViYTFkODNlYmQ3NDIxMDg3MmM3OGVjYjk4YTYyZTc2NGVkYTdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRy
aXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29u
dm9sdmVNYXRyaXguaApAQCAtNzEsOSArNzEsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRQcmVz
ZXJ2ZUFscGhhKGJvb2wpOwogCiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQXBwbHlTb2Z0d2Fy
ZSgpOwotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRlciogY3JlYXRlSW1h
Z2VGaWx0ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCiAgICAgdmlydHVhbCB2
b2lkIGR1bXAoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVj
dCgpIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdChtYXhFZmZlY3RSZWN0
KCkpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRURpc3BsYWNlbWVudE1hcC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCmluZGV4IDgxNWJjZjg2YWQxMjdiZjNlYmMy
MDExOGM1MTVhOTdjNDQ0MzY5NjEuLjFiNDE3MGVmNDEwZGM3ZDQ4ZDFlMGQzYmZiZDBlNWNmZGY4
ZDE3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVEaXNwbGFjZW1lbnRNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKQEAgLTYzLDExICs2Myw2IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgRkVEaXNwbGFjZW1lbnRNYXAoRmlsdGVyKiwgQ2hhbm5lbFNlbGVj
dG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2VsZWN0b3JUeXBlIHlDaGFubmVsU2Vs
ZWN0b3IsIGZsb2F0KTsKIAotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9y
bUFwcGx5U2tpYSgpOwotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRlciogY3JlYXRlSW1hZ2VGaWx0
ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCi0KICAgICBDaGFubmVsU2VsZWN0
b3JUeXBlIG1feENoYW5uZWxTZWxlY3RvcjsKICAgICBDaGFubmVsU2VsZWN0b3JUeXBlIG1feUNo
YW5uZWxTZWxlY3RvcjsKICAgICBmbG9hdCBtX3NjYWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCmluZGV4
IGRhZjNlZjE3YTJjMmY3OTc4OTEwZWIwMTQxOWJhYTlmOGFiYTlkN2MuLmY1NTRlZjg0MWZlZGMw
NDUyYzRhYTFkNjdhZjVmNjY2Y2JjNTAwMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVyLmgKQEAgLTczLDEw
ICs3Myw2IEBAIHByaXZhdGU6CiAgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1BcHBseShVaW50OENs
YW1wZWRBcnJheSogc3JjUGl4ZWxBcnJheSwgVWludDhDbGFtcGVkQXJyYXkqIHRtcFBpeGVsQXJy
YXksIHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1bnNpZ25lZCBrZXJuZWxTaXplWSwgSW50U2l6ZSYg
cGFpbnRTaXplKTsKIAogICAgIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHlHZW5lcmljKFVpbnQ4
Q2xhbXBlZEFycmF5KiBzcmNQaXhlbEFycmF5LCBVaW50OENsYW1wZWRBcnJheSogdG1wUGl4ZWxB
cnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNpemVZLCBJbnRTaXpl
JiBwYWludFNpemUpOwotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUFw
cGx5U2tpYSgpOwotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRlciogY3JlYXRlSW1hZ2VGaWx0ZXIo
U2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCiAKICAgICBmbG9hdCBtX3N0ZFg7CiAg
ICAgZmxvYXQgbV9zdGRZOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCA0NDhmMDJkNGY4MDQwZjM2YWM2ZmU1YzU1
YjI4NzFmZTNjMDU3Y2Q4Li5iNDBiYjEzMDkwYWJmMzEyNzY0ODkxMzc2OTY3Nzg2M2ViMGRlYjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFTGlnaHRpbmcuaApAQCAtNDUsMTAgKzQ1LDYgQEAgc3RydWN0IEZFTGlnaHRpbmdQYWludGlu
Z0RhdGFGb3JOZW9uOwogY2xhc3MgRkVMaWdodGluZyA6IHB1YmxpYyBGaWx0ZXJFZmZlY3Qgewog
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSNpZiBV
U0UoU0tJQSkKLSAgICB2aXJ0dWFsIFNrSW1hZ2VGaWx0ZXIqIGNyZWF0ZUltYWdlRmlsdGVyKFNr
aWFJbWFnZUZpbHRlckJ1aWxkZXIqKTsKLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1BcHBseVNr
aWEoKTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFic29sdXRlUGFpbnRS
ZWN0KCkgeyBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0KG1heEVmZmVjdFJl
Y3QoKSkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCmluZGV4IGIzOGU2NzNjMzgyMjJjNjRiN2VkZjgzMzY4
OWRlYzYzMDcwY2FmZWQuLjA0YTc3ZjU0NjhhYjhjYzA0NTU5NjIzMjE0OTYzNjI4OTExY2ZjNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVN
b3JwaG9sb2d5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRU1vcnBob2xvZ3kuaApAQCAtNDcsMTEgKzQ3LDYgQEAgcHVibGljOgogICAgIGJvb2wgc2V0
UmFkaXVzWShmbG9hdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1BcHBseVNvZnR3YXJl
KCk7Ci0jaWYgVVNFKFNLSUEpCi0gICAgdmlydHVhbCBib29sIHBsYXRmb3JtQXBwbHlTa2lhKCk7
Ci0gICAgdmlydHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVhdGVJbWFnZUZpbHRlcihTa2lhSW1hZ2VG
aWx0ZXJCdWlsZGVyKik7Ci0KLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZzZXQuaAppbmRleCBj
MmE0ZmE1ZTNmOGFkOTBiNmEzZGQ3ZjE3MjZjZGNlYjgyNjQyNzZkLi5lNzVmZWJkOWM3ZTY3ZGU1
MzFhYTFhNDFiMDcyMTEyMjI5NTlkZmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCkBAIC00NSwxMCArNDUsNiBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4
dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OwogCi0jaWYgVVNFKFNLSUEpCi0gICAgdmly
dHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVhdGVJbWFnZUZpbHRlcihTa2lhSW1hZ2VGaWx0ZXJCdWls
ZGVyKik7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBGRU9mZnNldChGaWx0ZXIqLCBmbG9hdCBk
eCwgZmxvYXQgZHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggZjc4ZGQxZjY2YmRiMTRiZGFl
ZThlODlkMGUzZWIzMDMxMDc4MWZiNy4uNWRkMDY1ZDk4ZGE3Yzc5ZjVjOWI3YjE3OThmZDAwMTE3
YjNhN2NiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtMTQ2LDEwICsxNDYsNiBAQCB2b2lkIEZp
bHRlckVmZmVjdDo6YXBwbHkoKQogICAgIGlmIChwbGF0Zm9ybUFwcGx5T3BlbkNMKCkpCiAgICAg
ICAgIHJldHVybjsKICNlbmRpZgotI2lmIFVTRShTS0lBKQotICAgIGlmIChwbGF0Zm9ybUFwcGx5
U2tpYSgpKQotICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICBwbGF0Zm9ybUFwcGx5U29mdHdh
cmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggYTdlYTU3OWIxYjA4ZTZlNTM3ZWQzYWY0NmE0
NjA4OGNiYjE0YjlmMy4uMjk2NDYxZjlmMTk3NGI4ODljMjNmZDgyMzZhZjg2N2FkNTJlY2FjZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0
ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZpbHRlckVmZmVjdC5oCkBAIC0zOSwxMCArMzksNiBAQAogCiBzdGF0aWMgY29uc3QgZmxvYXQg
a01heEZpbHRlclNpemUgPSA1MDAwLjBmOwogCi0jaWYgVVNFKFNLSUEpCi1jbGFzcyBTa0ltYWdl
RmlsdGVyOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRmlsdGVyOwpA
QCAtNTAsMTAgKzQ2LDYgQEAgY2xhc3MgRmlsdGVyRWZmZWN0OwogY2xhc3MgSW1hZ2VCdWZmZXI7
CiBjbGFzcyBUZXh0U3RyZWFtOwogCi0jaWYgVVNFKFNLSUEpCi1jbGFzcyBTa2lhSW1hZ2VGaWx0
ZXJCdWlsZGVyOwotI2VuZGlmCi0KIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxGaWx0ZXJFZmZlY3Q+
ID4gRmlsdGVyRWZmZWN0VmVjdG9yOwogCiBlbnVtIEZpbHRlckVmZmVjdFR5cGUgewpAQCAtMTI2
LDEwICsxMTgsNiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE9QRU5DTCkKICAgICB2aXJ0dWFsIGJv
b2wgcGxhdGZvcm1BcHBseU9wZW5DTCgpOwogI2VuZGlmCi0jaWYgVVNFKFNLSUEpCi0gICAgdmly
dHVhbCBib29sIHBsYXRmb3JtQXBwbHlTa2lhKCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0
dWFsIFNrSW1hZ2VGaWx0ZXIqIGNyZWF0ZUltYWdlRmlsdGVyKFNraWFJbWFnZUZpbHRlckJ1aWxk
ZXIqKSB7IHJldHVybiAwOyB9Ci0jZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZHVtcCgpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVjdCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVU
cmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
QWZmaW5lVHJhbnNmb3JtLmgKaW5kZXggNzE3MGZlNTMzZjNiODkzZWY1ZDdkOTRjMjNiMTEyOTJm
ZmI0OWM3NS4uMzc0MDJlNjY3M2Q5YmQ5NjFjYjNjMzg1ODBhMzMxYjMxYjM1YTNiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVU
cmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL0FmZmluZVRyYW5zZm9ybS5oCkBAIC0zNiw4ICszNiw2IEBAIHR5cGVkZWYgc3RydWN0IENH
QWZmaW5lVHJhbnNmb3JtIENHQWZmaW5lVHJhbnNmb3JtOwogI2luY2x1ZGUgPGNhaXJvLmg+CiAj
ZWxpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRVHJhbnNmb3JtPgotI2VsaWYgVVNFKFNLSUEp
Ci0jaW5jbHVkZSA8U2tNYXRyaXguaD4KICNlbGlmIFBMQVRGT1JNKFdYKSAmJiBVU0UoV1hHQykK
ICNpbmNsdWRlIDx3eC9ncmFwaGljcy5oPgogI2VuZGlmCkBAIC0xNzQsOCArMTcyLDYgQEAgcHVi
bGljOgogICAgIG9wZXJhdG9yIGNhaXJvX21hdHJpeF90KCkgY29uc3Q7CiAjZWxpZiBQTEFURk9S
TShRVCkKICAgICBvcGVyYXRvciBRVHJhbnNmb3JtKCkgY29uc3Q7Ci0jZWxpZiBVU0UoU0tJQSkK
LSAgICBvcGVyYXRvciBTa01hdHJpeCgpIGNvbnN0OwogI2VsaWYgUExBVEZPUk0oV1gpICYmIFVT
RShXWEdDKQogICAgIG9wZXJhdG9yIHd4R3JhcGhpY3NNYXRyaXgoKSBjb25zdDsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9U
cmFuc2Zvcm1hdGlvbk1hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oCmluZGV4IGIyNmYzYWFmOThjYWVjNjFk
NTU3NDAyOTg4Nzk5ZjM1YjNkYzk1OWIuLmI3ODgwNzQ3NDEzNWVjMTAxZDgxMTc2YzkxYzIyYTg5
Y2I2ZmUwYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKQEAgLTQ1LDgg
KzQ1LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dBZmZpbmVUcmFuc2Zvcm0gQ0dBZmZpbmVUcmFuc2Zv
cm07CiAjZWxpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRTWF0cml4NHg0PgogI2luY2x1ZGUg
PFFUcmFuc2Zvcm0+Ci0jZWxpZiBVU0UoU0tJQSkKLSNpbmNsdWRlIDxTa01hdHJpeC5oPgogI2Vs
aWYgUExBVEZPUk0oV1gpICYmIFVTRShXWEdDKQogI2luY2x1ZGUgPHd4L2dyYXBoaWNzLmg+CiAj
ZW5kaWYKQEAgLTM1MCw4ICszNDgsNiBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShRVCkKICAg
ICBvcGVyYXRvciBRVHJhbnNmb3JtKCkgY29uc3Q7CiAgICAgb3BlcmF0b3IgUU1hdHJpeDR4NCgp
IGNvbnN0OwotI2VsaWYgVVNFKFNLSUEpCi0gICAgb3BlcmF0b3IgU2tNYXRyaXgoKSBjb25zdDsK
ICNlbGlmIFBMQVRGT1JNKFdYKSAmJiBVU0UoV1hHQykKICAgICBvcGVyYXRvciB3eEdyYXBoaWNz
TWF0cml4KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCmluZGV4IDA2N2M1ZGUzNmFlNGQ1
MDk5ODU2OGQ4YWNlZWM3Y2FhOGU0MTUwYTQuLjQ3MzlmMTRlYzM2ZDA0YTUxMzk5MDExMmU1ZDZk
NDUyOTgzMzk1ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcApAQCAtMTQwLDggKzE0MCw2IEBAIEltYWdlRGVj
b2RlciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3QgU2hhcmVkQnVmZmVyJiBkYXRhLCBJbWFn
ZVNvdXJjZTo6QWxwaGFPCiAgICAgcmV0dXJuIDA7CiB9CiAKLSNpZiAhVVNFKFNLSUEpCi0KIElt
YWdlRnJhbWU6OkltYWdlRnJhbWUoKQogICAgIDogbV9oYXNBbHBoYShmYWxzZSkKICAgICAsIG1f
c3RhdHVzKEZyYW1lRW1wdHkpCkBAIC0yMzQsOCArMjMyLDYgQEAgdm9pZCBJbWFnZUZyYW1lOjpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAogICAgIGluZm8uYWRkTWVtYmVyKG1fYmFja2luZ1N0b3JlLCAiYmFja2luZ1N0b3JlIik7CiB9
CiAKLSNlbmRpZgotCiBuYW1lc3BhY2UgewogCiBlbnVtIE1hdGNoVHlwZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCmlu
ZGV4IDRhNjU5YTFmNjgzMTI5OThmZDJhNmFjZjI2Y2FmZDQyZDkzOWM2ODUuLjE4YzViZWJlYjk1
ZGJlZDczZTZkZDIwMmQ0NDE1ZWVkY2VhYzg1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCkBAIC0zOCwxMSArMzgs
NiBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAotI2lmIFVTRShTS0lBKQotI2luY2x1ZGUgIk5hdGl2ZUltYWdlU2tpYS5oIgotI2lu
Y2x1ZGUgIlNrQ29sb3JQcml2LmgiCi0jZW5kaWYKLQogI2lmIFVTRShRQ01TTElCKQogI2luY2x1
ZGUgInFjbXMuaCIKICNpZiBPUyhEQVJXSU4pCkBAIC02OSwxMSArNjQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICBEaXNwb3NlT3ZlcndyaXRlUHJldmlvdXMgIC8vIENsZWFy
IGZyYW1lIHRvIHByZXZpb3VzIGZyYW1lYnVmZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIGNvbnRlbnRzCiAgICAgICAgIH07Ci0jaWYgVVNFKFNLSUEpCi0gICAg
ICAgIHR5cGVkZWYgdWludDMyX3QgUGl4ZWxEYXRhOwotI2Vsc2UKICAgICAgICAgdHlwZWRlZiB1
bnNpZ25lZCBQaXhlbERhdGE7Ci0jZW5kaWYKIAogICAgICAgICBJbWFnZUZyYW1lKCk7CiAKQEAg
LTE0MCwxMSArMTMxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIGlubGluZSBQ
aXhlbERhdGEqIGdldEFkZHIoaW50IHgsIGludCB5KQogICAgICAgICB7Ci0jaWYgVVNFKFNLSUEp
Ci0gICAgICAgICAgICByZXR1cm4gbV9iaXRtYXAtPmJpdG1hcCgpLmdldEFkZHIzMih4LCB5KTsK
LSNlbHNlCiAgICAgICAgICAgICByZXR1cm4gbV9ieXRlcyArICh5ICogd2lkdGgoKSkgKyB4Owot
I2VuZGlmCiAgICAgICAgIH0KIAogICAgICAgICAvLyBVc2UgZml4IHBvaW50IG11bHRpcGxpZXIg
aW5zdGVhZCBvZiBpbnRlZ2VyIGRpdmlzaW9uIG9yIGZsb2F0aW5nIHBvaW50IG1hdGguCkBAIC0x
NzAsNDQgKzE1NywyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgZyA9
IGZpeFBvaW50VW5zaWduZWRNdWx0aXBseShnLCBhbHBoYU11bHQpOwogICAgICAgICAgICAgICAg
IGIgPSBmaXhQb2ludFVuc2lnbmVkTXVsdGlwbHkoYiwgYWxwaGFNdWx0KTsKICAgICAgICAgICAg
IH0KLSNpZiBVU0UoU0tJQSkKLSAgICAgICAgICAgIC8vIENhbGwgdGhlICJOb0NoZWNrIiB2ZXJz
aW9uIHNpbmNlIHdlIG1heSBkZWxpYmVyYXRlbHkgcGFzcyBub24tcHJlbXVsdGlwbGllZAotICAg
ICAgICAgICAgLy8gdmFsdWVzLCBhbmQgd2UgZG9uJ3Qgd2FudCBhbiBhc3NlcnQuCi0gICAgICAg
ICAgICAqZGVzdCA9IFNrUGFja0FSR0IzMk5vQ2hlY2soYSwgciwgZywgYik7Ci0jZWxzZQogICAg
ICAgICAgICAgKmRlc3QgPSAoYSA8PCAyNCB8IHIgPDwgMTYgfCBnIDw8IDggfCBiKTsKLSNlbmRp
ZgogICAgICAgICB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBpbnQgd2lkdGgoKSBjb25zdAog
ICAgICAgICB7Ci0jaWYgVVNFKFNLSUEpCi0gICAgICAgICAgICByZXR1cm4gbV9iaXRtYXAtPmJp
dG1hcCgpLndpZHRoKCk7Ci0jZWxzZQogICAgICAgICAgICAgcmV0dXJuIG1fc2l6ZS53aWR0aCgp
OwotI2VuZGlmCiAgICAgICAgIH0KIAogICAgICAgICBpbnQgaGVpZ2h0KCkgY29uc3QKICAgICAg
ICAgewotI2lmIFVTRShTS0lBKQotICAgICAgICAgICAgcmV0dXJuIG1fYml0bWFwLT5iaXRtYXAo
KS5oZWlnaHQoKTsKLSNlbHNlCiAgICAgICAgICAgICByZXR1cm4gbV9zaXplLmhlaWdodCgpOwot
I2VuZGlmCiAgICAgICAgIH0KIAotI2lmIFVTRShTS0lBKQotICAgICAgICBSZWZQdHI8TmF0aXZl
SW1hZ2VTa2lhPiBtX2JpdG1hcDsKLSAgICAgICAgU2tCaXRtYXA6OkFsbG9jYXRvciogbV9hbGxv
Y2F0b3I7Ci0jZWxzZQogICAgICAgICBWZWN0b3I8UGl4ZWxEYXRhPiBtX2JhY2tpbmdTdG9yZTsK
ICAgICAgICAgUGl4ZWxEYXRhKiBtX2J5dGVzOyAvLyBUaGUgbWVtb3J5IGlzIGJhY2tlZCBieSBt
X2JhY2tpbmdTdG9yZS4KICAgICAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgICAgIC8vIEZJWE1F
OiBEbyB3ZSBuZWVkIG1fY29sb3JQcm9maWxlIGFueW1vcmU/CiAgICAgICAgIENvbG9yUHJvZmls
ZSBtX2NvbG9yUHJvZmlsZTsKLSNlbmRpZgogICAgICAgICBib29sIG1faGFzQWxwaGE7CiAgICAg
ICAgIEludFJlY3QgbV9vcmlnaW5hbEZyYW1lUmVjdDsgLy8gVGhpcyB3aWxsIGFsd2F5cyBqdXN0
IGJlIHRoZSBlbnRpcmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBi
dWZmZXIgZXhjZXB0IGZvciBHSUYgZnJhbWVzIHdob3NlCkBAIC0zOTUsMzIgKzM2Myw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCi0jaWYgVVNFKFNLSUEpCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBzZXRNZW1vcnlBbGxvY2F0b3IoU2tCaXRtYXA6OkFsbG9jYXRvciogYWxsb2Nh
dG9yKQotICAgICAgICB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogdGhpcyBkb2Vzbid0IHdvcmsg
Zm9yIGltYWdlcyB3aXRoIG11bHRpcGxlIGZyYW1lcy4KLSAgICAgICAgICAgIGlmIChtX2ZyYW1l
QnVmZmVyQ2FjaGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNo
ZS5yZXNpemUoMSk7Ci0gICAgICAgICAgICBtX2ZyYW1lQnVmZmVyQ2FjaGVbMF0uc2V0TWVtb3J5
QWxsb2NhdG9yKGFsbG9jYXRvcik7Ci0gICAgICAgIH0KLQotICAgICAgICB2aXJ0dWFsIGJvb2wg
bG9ja0ZyYW1lQnVmZmVycygpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGJvb2wgcmV0ID0gdHJ1
ZTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2ZyYW1lQnVmZmVyQ2Fj
aGUuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICBjb25zdCBTa0JpdG1hcCYgYml0bWFw
ID0gbV9mcmFtZUJ1ZmZlckNhY2hlW2ldLmdldFNrQml0bWFwKCk7Ci0gICAgICAgICAgICAgICAg
Yml0bWFwLmxvY2tQaXhlbHMoKTsKLSAgICAgICAgICAgICAgICByZXQgPSByZXQgJiYgYml0bWFw
LmdldFBpeGVscygpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIHJldDsKLSAg
ICAgICAgfQotCi0gICAgICAgIHZpcnR1YWwgdm9pZCB1bmxvY2tGcmFtZUJ1ZmZlcnMoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9mcmFtZUJ1ZmZl
ckNhY2hlLnNpemUoKTsgKytpKQotICAgICAgICAgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNoZVtp
XS5nZXRTa0JpdG1hcCgpLnVubG9ja1BpeGVscygpOwotICAgICAgICB9Ci0jZW5kaWYKICAgICBw
cm90ZWN0ZWQ6CiAgICAgICAgIHZvaWQgcHJlcGFyZVNjYWxlRGF0YUlmTmVjZXNzYXJ5KCk7CiAg
ICAgICAgIGludCB1cHBlckJvdW5kU2NhbGVkWChpbnQgb3JpZ1gsIGludCBzZWFyY2hTdGFydCA9
IDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
anBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdl
LWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKaW5kZXggYTk3NzJmYzA4ZDk3OGNi
MDI2YWI3ODhmMTRmZDM1MmQzZTA0ZDVkYy4uZDE1ZGNlMmRhZDhhZmE3MzBjNzQ2MDgyOGZkZjQz
NDJhMjViMjBjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCkBAIC02MCwxMSAr
NjAsNyBAQCBleHRlcm4gIkMiIHsKIAogI2lmIGRlZmluZWQoSkNTX0FMUEhBX0VYVEVOU0lPTlMp
ICYmIEFTU1VNRV9MSVRUTEVfRU5ESUFOCiAjZGVmaW5lIFRVUkJPX0pQRUdfUkdCX1NXSVpaTEUK
LSNpZiBVU0UoU0tJQSkgJiYgKCFTS19SMzJfU0hJRlQgJiYgU0tfRzMyX1NISUZUID09IDggJiYg
U0tfQjMyX1NISUZUID09IDE2KQotaW5saW5lIEpfQ09MT1JfU1BBQ0UgcmdiT3V0cHV0Q29sb3JT
cGFjZSgpIHsgcmV0dXJuIEpDU19FWFRfUkdCQTsgfQotI2Vsc2UKIGlubGluZSBKX0NPTE9SX1NQ
QUNFIHJnYk91dHB1dENvbG9yU3BhY2UoKSB7IHJldHVybiBKQ1NfRVhUX0JHUkE7IH0KLSNlbmRp
ZgogaW5saW5lIGJvb2wgdHVyYm9Td2l6emxlZChKX0NPTE9SX1NQQUNFIGNvbG9yU3BhY2UpIHsg
cmV0dXJuIGNvbG9yU3BhY2UgPT0gSkNTX0VYVF9SR0JBIHx8IGNvbG9yU3BhY2UgPT0gSkNTX0VY
VF9CR1JBOyB9CiBpbmxpbmUgYm9vbCBjb2xvclNwYWNlSGFzQWxwaGEoSl9DT0xPUl9TUEFDRSBj
b2xvclNwYWNlKSB7IHJldHVybiB0dXJib1N3aXp6bGVkKGNvbG9yU3BhY2UpOyB9CiAjZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2VicC9X
RUJQSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29k
ZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKaW5kZXggY2U4NTg2MzBkY2E0N2Y2ZWJhMzlh
ZDg4OGM0NTdmZjFjNmI5N2I0NC4uZDAwZWI1ZGNkMDA5MzIyMjhlNTFjNDFhMTNkOTI0NjhkYWJi
OGE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
d2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwCkBAIC00OSw4ICs0OSw2IEBA
CiAKICNpZiBDUFUoQklHX0VORElBTikgfHwgQ1BVKE1JRERMRV9FTkRJQU4pCiBpbmxpbmUgV0VC
UF9DU1BfTU9ERSBvdXRwdXRNb2RlKGJvb2wgaGFzQWxwaGEpIHsgcmV0dXJuIGhhc0FscGhhID8g
TU9ERV9yZ2JBIDogTU9ERV9SR0JBOyB9Ci0jZWxpZiBVU0UoU0tJQSkgJiYgU0tfQjMyX1NISUZU
Ci1pbmxpbmUgV0VCUF9DU1BfTU9ERSBvdXRwdXRNb2RlKGJvb2wgaGFzQWxwaGEpIHsgcmV0dXJu
IGhhc0FscGhhID8gTU9ERV9yZ2JBIDogTU9ERV9SR0JBOyB9CiAjZWxzZSAvLyBMSVRUTEVfRU5E
SUFOLCBvdXRwdXQgQkdSQSBwaXhlbHMuCiBpbmxpbmUgV0VCUF9DU1BfTU9ERSBvdXRwdXRNb2Rl
KGJvb2wgaGFzQWxwaGEpIHsgcmV0dXJuIGhhc0FscGhhID8gTU9ERV9iZ3JBIDogTU9ERV9CR1JB
OyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2Nh
bEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9M
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaAppbmRleCA4MjRmMmZmOGQzNDlmZGUwYjkzMmI5
NjA4ZWQ3NTRiYWI2YWVkZTA5Li4wNjY3NmM4MmVjNTAxOGNkM2Y5OTEwZTQ2MDIzODFjODFiODQ5
ZWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50
R3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xvY2Fs
Q3VycmVudEdyYXBoaWNzQ29udGV4dC5oCkBAIC0yMCwxMCArMjAsNiBAQAogI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCi0jaWYgVVNF
KFNLSUEpCi0jaW5jbHVkZSAic2tpYS9leHQvc2tpYV91dGlsc19tYWMuaCIKLSNlbmRpZgotCiBP
QkpDX0NMQVNTIE5TR3JhcGhpY3NDb250ZXh0OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
MCwzNCArMzYsMTkgQEAgcHJpdmF0ZToKICAgICBHcmFwaGljc0NvbnRleHQqIG1fc2F2ZWRHcmFw
aGljc0NvbnRleHQ7CiAgICAgTlNHcmFwaGljc0NvbnRleHQqIG1fc2F2ZWROU0dyYXBoaWNzQ29u
dGV4dDsKICAgICBib29sIG1fZGlkU2V0R3JhcGhpY3NDb250ZXh0OwotI2lmIFVTRShTS0lBKQot
ICAgIGdmeDo6U2tpYUJpdExvY2tlciBtX3NraWFCaXRMb2NrZXI7Ci0jZW5kaWYKIH07CiAKIGNs
YXNzIENvbnRleHRDb250YWluZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRleHRD
b250YWluZXIpOwogcHVibGljOgotI2lmIFVTRShTS0lBKQotICAgIENvbnRleHRDb250YWluZXIo
R3JhcGhpY3NDb250ZXh0Kik7Ci0gICAgCi0gICAgLy8gVGhpcyBzeW5jaHJvbml6ZXMgdGhlIENH
Q29udGV4dCB0byByZWZsZWN0IHRoZSBjdXJyZW50IFNrQ2FudmFzIHN0YXRlLgotICAgIC8vIFRo
ZSBpbXBsZW1lbnRhdGlvbiBtYXkgbm90IHJldHVybiB0aGUgc2FtZSBDR0NvbnRleHQgZWFjaCB0
aW1lLgotICAgIENHQ29udGV4dFJlZiBjb250ZXh0KCkgeyByZXR1cm4gbV9za2lhQml0TG9ja2Vy
LmNnQ29udGV4dCgpOyB9Ci0jZWxzZQogICAgIENvbnRleHRDb250YWluZXIoR3JhcGhpY3NDb250
ZXh0KiBncmFwaGljc0NvbnRleHQpCiAgICAgICAgIDogbV9ncmFwaGljc0NvbnRleHQoZ3JhcGhp
Y3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSkKICAgICB7CiAgICAgfQogCiAgICAgQ0dDb250
ZXh0UmVmIGNvbnRleHQoKSB7IHJldHVybiBtX2dyYXBoaWNzQ29udGV4dDsgfQotI2VuZGlmCiBw
cml2YXRlOgotI2lmIFVTRShTS0lBKQotICAgIGdmeDo6U2tpYUJpdExvY2tlciBtX3NraWFCaXRM
b2NrZXI7Ci0jZWxzZQogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0KiBtX2dyYXBoaWNzQ29u
dGV4dDsKLSNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KaW5kZXggZjAzM2RmMzJj
MTg5ODM1YWMzNmVmYjUzNWI1Y2NmMmY0ZjZjNWJhNy4uN2QyZjZmZmY0ZTA0Y2RiZjVmZjdiMjFh
ZmQ5MTI1NTEwYmFiOWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCkBAIC0yMiwxOCArMjIsMTAg
QEAKIAogI2luY2x1ZGUgPEFwcEtpdC9OU0dyYXBoaWNzQ29udGV4dC5oPgogCi0jaWYgVVNFKFNL
SUEpCi0jaW5jbHVkZSAicGxhdGZvcm1fY2FudmFzLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1Db250
ZXh0U2tpYS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTG9jYWxDdXJyZW50
R3JhcGhpY3NDb250ZXh0OjpMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQoR3JhcGhpY3NDb250
ZXh0KiBncmFwaGljc0NvbnRleHQpCiAgICAgOiBtX2RpZFNldEdyYXBoaWNzQ29udGV4dChmYWxz
ZSkKLSNpZiBVU0UoU0tJQSkKLSAgICAsIG1fc2tpYUJpdExvY2tlcihncmFwaGljc0NvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKSkKLSNlbmRpZgogewogICAgIG1fc2F2ZWRHcmFw
aGljc0NvbnRleHQgPSBncmFwaGljc0NvbnRleHQ7CiAgICAgZ3JhcGhpY3NDb250ZXh0LT5zYXZl
KCk7CkBAIC02MiwyMSArNTQsOCBAQCBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQ6On5Mb2Nh
bEN1cnJlbnRHcmFwaGljc0NvbnRleHQoKQogCiBDR0NvbnRleHRSZWYgTG9jYWxDdXJyZW50R3Jh
cGhpY3NDb250ZXh0OjpjZ0NvbnRleHQoKQogewotI2lmIFVTRShTS0lBKQotICAgIC8vIFRoaXMg
c3luY2hyb25pemVzIHRoZSBDR0NvbnRleHQgdG8gcmVmbGVjdCB0aGUgY3VycmVudCBTa0NhbnZh
cyBzdGF0ZS4KLSAgICAvLyBUaGUgaW1wbGVtZW50YXRpb24gbWF5IG5vdCByZXR1cm4gdGhlIHNh
bWUgQ0dDb250ZXh0IGVhY2ggdGltZS4KLSAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gbV9z
a2lhQml0TG9ja2VyLmNnQ29udGV4dCgpOwotI2Vsc2UKICAgICBDR0NvbnRleHRSZWYgY2dDb250
ZXh0ID0gbV9zYXZlZEdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7Ci0jZW5kaWYK
ICAgICByZXR1cm4gY2dDb250ZXh0OwogfQogCi0jaWYgVVNFKFNLSUEpCi1Db250ZXh0Q29udGFp
bmVyOjpDb250ZXh0Q29udGFpbmVyKEdyYXBoaWNzQ29udGV4dCogZ3JhcGhpY3NDb250ZXh0KSAK
LSAgICA6IG1fc2tpYUJpdExvY2tlcihncmFwaGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgp
LT5jYW52YXMoKSkKLXsKLX0KLSNlbmRpZgotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHAKaW5k
ZXggYTgxYzM2OThkZWMzMTgzY2M5YmY5MzEwNzk2NjBkMjViMTg3NmM2ZS4uY2E1Y2FkNGM1MDAz
MTk5Zjk0ZWRlNjYxMzdjMmZjMmFlMDZmN2VhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VTb2xpZENvbG9yLmNwcApA
QCAtMjksMTAgKzI5LDYgQEAKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNW
R1JlbmRlclN1cHBvcnQuaCIKIAotI2lmIFVTRShTS0lBKQotI2luY2x1ZGUgIlBsYXRmb3JtQ29u
dGV4dFNraWEuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFJlbmRlclNWR1Jl
c291cmNlVHlwZSBSZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3I6OnNfcmVzb3VyY2VUeXBlID0g
U29saWRDb2xvclJlc291cmNlVHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCmluZGV4IGZhMmNkMTE0YWJlNTM3ZDczOGJlMzNmZDZjODZkZWNiMGM3MDBlZTIuLjU1
MWJiZDhkOTJmZTNiYzY3YmFhOGExOTY1MTA3MmUwNjY1MjYzZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcApAQCAtMTQyLDcgKzE0Miw3IEBAIHZvaWQgU1ZHSW1h
Z2U6OmRyYXdGb3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9h
dFNpemUgY29udGFpCiAgICAgc2V0SW1hZ2VPYnNlcnZlcihvYnNlcnZlcik7CiB9CiAKLSNpZiBV
U0UoU0tJQSkgfHwgVVNFKENBSVJPKQorI2lmIFVTRShDQUlSTykKIC8vIFBhc3NlcyBvd25lcnNo
aXAgb2YgdGhlIG5hdGl2ZSBpbWFnZSB0byB0aGUgY2FsbGVyIHNvIFBhc3NOYXRpdmVJbWFnZVB0
ciBuZWVkcwogLy8gdG8gYmUgYSBzbWFydCBwb2ludGVyIHR5cGUuCiBQYXNzTmF0aXZlSW1hZ2VQ
dHIgU1ZHSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggZWFkYjEwMTkzNzE1ZmY5NWRhZTc0OWRmNDM2ZmE2
NzU1ZDRlOGVlMS4uMWFkYjIxYmYxMTE2Y2RlMWUyYmM1YzExODIwMTY5N2JjMzczMTc2OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdCBPVkVSUklERTsKIAotI2lmIFVTRShTS0lBKSB8fCBVU0UoQ0FJUk8pCisjaWYg
VVNFKENBSVJPKQogICAgIHZpcnR1YWwgUGFzc05hdGl2ZUltYWdlUHRyIG5hdGl2ZUltYWdlRm9y
Q3VycmVudEZyYW1lKCkgT1ZFUlJJREU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggZmVkM2VlNjNiNzI2N2RhOTRlNjE1Y2JmNGUzN2ViMDlk
ZjBiMTlmMy4uMDVlYjk4Mjk5ZDJjZTdkZDkxZDI3NDdlYTVkY2ViNDY1M2Q3YWM3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC0xNTYsMTAgKzE1Niw2IEBA
CiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5oIgogI2VuZGlmCiAKLSNp
ZiBVU0UoU0tJQSkKLSNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRTa2lhLmgiCi0jZW5kaWYKLQog
I2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNsdWRlICJGcmFtZUxheWVycy5o
IgogI2luY2x1ZGUgIldlYlBhZ2VDb21wb3NpdG9yQ2xpZW50LmgiCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjNhOWI2NGIwM2ZkMjU2Yjg3ZGVl
Mjc0YWQ1ZDk4YTlmNmIwODZmOC4uMTMyNzQ5YmJmNzkxNTEyZmY1ZmYxMmU3ZWNlMmE1NDVlY2U3
M2ExYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEzLTA0LTE5ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIHJlbWFpbmluZyBTa2lhICNpZmRlZnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg4Ngor
CisgICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4uCisKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9ibGFja2JlcnJ5L1BpeGVsRHVtcFN1cHBvcnRCbGFja0JlcnJ5LmNwcDoKKyAg
ICAgICAgKGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyk6IFJlbW92ZSBTa2lhICNpZmRl
ZiByZWZlcmVuY2VzLgorCiAyMDEzLTA0LTIyICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBTZXQgdXAgbGliUGxhdGZvcm0ubGEKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvUGl4ZWxEdW1wU3VwcG9ydEJsYWNr
QmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9QaXhlbER1bXBTdXBw
b3J0QmxhY2tCZXJyeS5jcHAKaW5kZXggMzdkOTVmZjA2ZmMzYTliZDg0ZWMyNzZiNDg3NjQ2ZTg4
M2Q5NmJjYS4uODJiNDQ4ZDEzZTI3YTk1YWRkMDA1NTU0MzdmZjEzNDExMjU3MTQxMSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9QaXhlbER1bXBTdXBwb3J0Qmxh
Y2tCZXJyeS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9QaXhlbER1
bXBTdXBwb3J0QmxhY2tCZXJyeS5jcHAKQEAgLTMyLDkgKzMyLDYgQEAKICNpbmNsdWRlICJXZWJQ
YWdlQ2xpZW50LmgiCiAKICNpbmNsdWRlIDxCbGFja0JlcnJ5UGxhdGZvcm1XaW5kb3cuaD4KLSNp
ZiBVU0UoU0tJQSkKLSNpbmNsdWRlIDxTa0RldmljZS5oPgotI2VuZGlmCiAjaW5jbHVkZSA8d3Rm
L01ENS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNjIsMzAgKzU5LDYgQEAgUGFz
c1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9v
bCAvKm9uc2NyZWVuKi8sIGJvb2wKICAgICBjb25zdCBQbGF0Zm9ybTo6SW50U2l6ZSYgd2luZG93
U2l6ZSA9IHdpbmRvdy0+dmlld3BvcnRTaXplKCk7CiAgICAgdW5zaWduZWQgY2hhciogZGF0YSA9
IG5ldyB1bnNpZ25lZCBjaGFyW3dpbmRvd1NpemUud2lkdGgoKSAqIHdpbmRvd1NpemUuaGVpZ2h0
KCkgKiA0XTsKIAotI2lmIFVTRShTS0lBKQotICAgIC8vIFdlIG5lZWQgdG8gZm9yY2UgYSBzeW5j
aHJvbm91cyB1cGRhdGUgdG8gdGhlIHdpbmRvdyBvciB3ZSBtYXkgZ2V0IGFuIGVtcHR5IGJpdG1h
cC4KLSAgICAvLyBGb3IgZXhhbXBsZSwgcnVubmluZyBEUlQgd2l0aCBvbmUgdGVzdCBjYXNlIHRo
YXQgZmluaXNoZXMgYmVmb3JlIHRoZSBzY3JlZW4gaXMgdXBkYXRlZC4KLSAgICB3aW5kb3ctPnBv
c3Qod2luZG93UmVjdCk7Ci0KLSAgICBTa0JpdG1hcCBiaXRtYXA7Ci0gICAgYml0bWFwLnNldENv
bmZpZyhTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcsIHdpbmRvd1NpemUud2lkdGgoKSwgd2lu
ZG93U2l6ZS5oZWlnaHQoKSk7Ci0gICAgYml0bWFwLmFsbG9jUGl4ZWxzKCk7Ci0gICAgYml0bWFw
LmVyYXNlQVJHQigwLCAwLCAwLCAwKTsKLQotICAgIFNrQ2FudmFzIGNhbnZhcyhiaXRtYXApOwot
ICAgIGJhY2tpbmdTdG9yZS0+ZHJhd0NvbnRlbnRzKCZjYW52YXMsIHdpbmRvd1JlY3QsIHdpbmRv
d1NpemUpOwotCi0gICAgLy8gUmVhZCB0aGF0IFNrQml0bWFwIHJhdGhlciB0aGFuIGNoYW5nZSBp
dC4gU28gdXNlIGZhbHNlIG9uIGFjY2Vzc0JpdG1hcC4KLSAgICBjb25zdCBTa0JpdG1hcCYgY29u
dGVudHNCaXRtYXAgPSBjYW52YXMuZ2V0RGV2aWNlKCktPmFjY2Vzc0JpdG1hcChmYWxzZS8qY2hh
bmdlUGl4ZWxzKi8pOwotICAgIGNvbnRlbnRzQml0bWFwLmxvY2tQaXhlbHMoKTsKLQotICAgIGNv
bnN0IHVuc2lnbmVkIGNoYXIqIHdpbmRvd1BpeGVscyA9IDA7Ci0gICAgaWYgKCFjb250ZW50c0Jp
dG1hcC5lbXB0eSgpKSB7Ci0gICAgICAgIHdpbmRvd1BpeGVscyA9IHN0YXRpY19jYXN0PGNvbnN0
IHVuc2lnbmVkIGNoYXIqPihjb250ZW50c0JpdG1hcC5nZXRQaXhlbHMoKSk7Ci0gICAgICAgIGlm
ICh3aW5kb3dQaXhlbHMpCi0gICAgICAgICAgICBtZW1jcHkoZGF0YSwgd2luZG93UGl4ZWxzLCB3
aW5kb3dTaXplLndpZHRoKCkgKiB3aW5kb3dTaXplLmhlaWdodCgpICogNCk7Ci0gICAgfQotI2Vs
c2UKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6OkJ1ZmZlciogYnVmZmVyID0g
QmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpjcmVhdGVCdWZmZXIod2luZG93U2l6ZSwg
QmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpBbHdheXNCYWNrZWQpOwogICAgIEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6RHJhd2FibGUqIGRyYXdhYmxlID0gQmxhY2tCZXJy
eTo6UGxhdGZvcm06OkdyYXBoaWNzOjpsb2NrQnVmZmVyRHJhd2FibGUoYnVmZmVyKTsKICAgICBp
ZiAoZHJhd2FibGUpIHsKQEAgLTk1LDcgKzY4LDYgQEAgUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0
PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCAvKm9uc2NyZWVuKi8sIGJvb2wK
ICAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNzOjpyZWxlYXNlQnVmZmVyRHJh
d2FibGUoYnVmZmVyKTsKICAgICB9CiAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OkdyYXBoaWNz
OjpkZXN0cm95QnVmZmVyKGJ1ZmZlcik7Ci0jZW5kaWYKICAgICByZXR1cm4gQml0bWFwQ29udGV4
dDo6Y3JlYXRlQnlBZG9wdGluZ0RhdGEoZGF0YSwgd2luZG93U2l6ZS53aWR0aCgpLCB3aW5kb3dT
aXplLmhlaWdodCgpKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>199677</attachid>
            <date>2013-04-25 09:56:00 -0700</date>
            <delta_ts>2013-04-25 09:56:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114886-20130425095522.patch</filename>
            <type>text/plain</type>
            <size>47589</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ5MTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDg4MWY2Y2EzZTE3OTA3YjgyMjU4MDgy
MjQ4MzAyNDAyOGExNmQ0ZDcuLjIyNjdmYTM2ODQ0ZDU4MGZiODM0NTEwNjNhMzZhZjg0MzcwZDBl
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDQtMjUgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIFNraWEg
I2lmZGVmcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTE0ODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91bGFpbi4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybS5oOgorCiAyMDEzLTA0LTI1ICBwZWF2b0BvdXRsb29rLmNvbSAgPHBl
YXZvQG91dGxvb2suY29tPgogCiAgICAgICAgIFtXaW5kb3dzXSBDb21waWxlIGZpeC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA1YTgwNDc0ZjVjOGM5ZjgzMjRmZGU0MmE2OGZhZmJhNjgzM2U2YmEzLi4zZmYzZjFj
N2IzMThhYTY3YzRlNWIwZTUzMTJlZjQ1MTlkNzM0NmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTMgQEAKKzIwMTMtMDQtMjUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJlbW92ZSB0aGUgcmVtYWluaW5nIFNraWEgI2lmZGVmcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0ODg2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91bGFpbi4KKworICAgICAgICAqIGh0bWwvSFRNTENhbnZh
c0VsZW1lbnQuY3BwOiBSZW1vdmUgU2tpYSAjaWZkZWYgcmVmZXJlbmNlcy4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRSZWN0Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYWNoZS5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5j
cHA6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50Lmg6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHA6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHA6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmg6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyRGF0YS5oOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9JbnRSZWN0Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05h
dGl2ZUltYWdlUHRyLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdGgu
aDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5jcHA6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1BhdHRlcm4uaDogRGl0dG8uCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmg6IERpdHRvLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oOiBEaXR0by4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaDogRGl0
dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvc2l0ZS5oOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29udm9sdmVNYXRy
aXguaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3Bs
YWNlbWVudE1hcC5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0ZFR2F1c3NpYW5CbHVyLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVMaWdodGluZy5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFTW9ycGhvbG9neS5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFT2Zmc2V0Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaDogRGl0dG8uCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaDog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VE
ZWNvZGVyLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvd2Vi
cC9XRUJQSW1hZ2VEZWNvZGVyLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWFjL0xv
Y2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHA6IERpdHRvLgorICAgICAg
ICAqIHN2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHA6IERpdHRvLgorICAgICAgICAqIHN2Zy9ncmFw
aGljcy9TVkdJbWFnZS5oOiBEaXR0by4KKwogMjAxMy0wNC0yNSAgUmFwaGFlbCBLdWJvIGRhIENv
c3RhICA8cmFwaGFlbC5rdWJvLmRhLmNvc3RhQGludGVsLmNvbT4KIAogICAgICAgICBSRUdSRVNT
SU9OKHIxNDg3NTgpOiBSZW1vdmUgV1RGTG9nQWx3YXlzIGNhbGwgZnJvbSBJY29uTG9hZGVyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggOWU4YzA1NDNhYjY4YzUwMmFmYTUxMDU0
ZDQzYWQ1ZTNjZjFlODYxOS4uZjhkMDYwMzcwYTZmZWY0MDE5MTdmYzQ4OGVlZGY3MzkyMjIwMmU1
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMt
MDQtMjUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgorCisgICAgICAg
IFJlbW92ZSB0aGUgcmVtYWluaW5nIFNraWEgI2lmZGVmcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0ODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QmVuamFtaW4gUG91bGFpbi4KKworICAgICAgICAqIEFwaS9XZWJQYWdlLmNwcDogUmVtb3ZlIFNr
aWEgI2lmZGVmIHJlZmVyZW5jZXMuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQWJvdXREYXRh
VXNlRmVhdHVyZXMuaW46IERpdHRvLgorCiAyMDEzLTA0LTI0ICBOaW1hIEdoYW5hdmF0aWFuICA8
bmdoYW5hdmF0aWFuQGJsYWNrYmVycnkuY29tPgogCiAgICAgICAgIFtCbGFja0JlcnJ5XSBEbyBu
b3QgY2xlYXIgZm9jdXMgb24gYSBub2RlIHdoZW4gdGFwcGluZyBvbiBmb3JtIGNvbnRyb2xzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oIGIvU291cmNlL1dURi93dGYvUGxh
dGZvcm0uaAppbmRleCAwZGRlNzFjOGVkYzFmYjYxYzVlZWRlOWFkNjk0NmY3ODc2NDNjMmNhLi41
NTAyNzRkNWY3YzJkMTZlNzZlOWI1MTQyODZmNThjZDYzMjFjNGIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKQEAg
LTQ3Myw3ICs0NzMsNiBAQAogI2VuZGlmCiAKICNpZiBQTEFURk9STShCTEFDS0JFUlJZKQotI2Rl
ZmluZSBXVEZfVVNFX1NLSUEgMQogI2RlZmluZSBXVEZfVVNFX0xPV19RVUFMSVRZX0lNQUdFX0lO
VEVSUE9MQVRJT04gMQogI2RlZmluZSBXVEZfVVNFX0xPV19RVUFMSVRZX0lNQUdFX05PX0pQRUdf
RElUSEVSSU5HIDEKICNkZWZpbmUgV1RGX1VTRV9MT1dfUVVBTElUWV9JTUFHRV9OT19KUEVHX0ZB
TkNZX1VQU0FNUExJTkcgMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ2Fu
dmFzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNw
cAppbmRleCBlYmY3YjExZjA3ZjcwY2EyNmViMDdkZGNmZjU2ZDU1NjVkMDIxNWM3Li43MGRkNzI0
MGVkM2MwNzQwOWI5ZjBlMTRjNWU2NTIxMjI4MzkwM2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDYW52YXNFbGVtZW50LmNwcApAQCAtNDE4LDcgKzQxOCw3IEBAIFN0cmluZyBIVE1MQ2Fu
dmFzRWxlbWVudDo6dG9EYXRhVVJMKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IGRvdWJs
ZSogcXVhbGl0CiAKICAgICBTdHJpbmcgZW5jb2RpbmdNaW1lVHlwZSA9IHRvRW5jb2RpbmdNaW1l
VHlwZShtaW1lVHlwZSk7CiAKLSNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBKQorI2lmIFVTRShDRykK
ICAgICAvLyBUcnkgdG8gZ2V0IEltYWdlRGF0YSBmaXJzdCwgYXMgdGhhdCBtYXkgYXZvaWQgbG9z
c3kgY29udmVyc2lvbnMuCiAgICAgUmVmUHRyPEltYWdlRGF0YT4gaW1hZ2VEYXRhID0gZ2V0SW1h
Z2VEYXRhKCk7CiAKQEAgLTUyNCwyMSArNTI0LDEyIEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6
OmNyZWF0ZUltYWdlQnVmZmVyKCkgY29uc3QKIAogICAgIGlmIChkZXZpY2VTaXplLndpZHRoKCkg
KiBkZXZpY2VTaXplLmhlaWdodCgpID4gTWF4Q2FudmFzQXJlYSkKICAgICAgICAgcmV0dXJuOwot
I2lmIFVTRShTS0lBKQotICAgIGlmIChkZXZpY2VTaXplLndpZHRoKCkgPiBNYXhTa2lhRGltIHx8
IGRldmljZVNpemUuaGVpZ2h0KCkgPiBNYXhTa2lhRGltKQotICAgICAgICByZXR1cm47Ci0jZW5k
aWYKIAogICAgIEludFNpemUgYnVmZmVyU2l6ZShkZXZpY2VTaXplLndpZHRoKCksIGRldmljZVNp
emUuaGVpZ2h0KCkpOwogICAgIGlmICghYnVmZmVyU2l6ZS53aWR0aCgpIHx8ICFidWZmZXJTaXpl
LmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZW5kZXJpbmdNb2RlIHJlbmRlcmlu
Z01vZGUgPSBzaG91bGRBY2NlbGVyYXRlKGJ1ZmZlclNpemUpID8gQWNjZWxlcmF0ZWQgOiAKLSNp
ZiBVU0UoU0tJQSkKLSAgICAgICAgVW5hY2NlbGVyYXRlZE5vblBsYXRmb3JtQnVmZmVyOwotI2Vs
c2UKLSAgICAgICAgVW5hY2NlbGVyYXRlZDsKLSNlbmRpZgorICAgIFJlbmRlcmluZ01vZGUgcmVu
ZGVyaW5nTW9kZSA9IHNob3VsZEFjY2VsZXJhdGUoYnVmZmVyU2l6ZSkgPyBBY2NlbGVyYXRlZCA6
IFVuYWNjZWxlcmF0ZWQ7CiAgICAgbV9pbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
c2l6ZSgpLCBtX2RldmljZVNjYWxlRmFjdG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByZW5kZXJp
bmdNb2RlKTsKICAgICBpZiAoIW1faW1hZ2VCdWZmZXIpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQuaAppbmRleCAxN2Q0ZWJh
MjI1MzJiZDkzNzIyMzU0MGRmNzFiMzVjZTZhNTQxN2E1Li43YjQwMTY2MzAxZmU5ZTc2ODA3ZDU3
ZDkzZDRlOTcxNzZlMzFjNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRmxvYXRQb2ludC5oCkBAIC01OCwxMCArNTgsNiBAQCBjbGFzcyBRUG9pbnRGOwogUVRfRU5E
X05BTUVTUEFDRQogI2VuZGlmCiAKLSNpZiBVU0UoU0tJQSkKLXN0cnVjdCBTa1BvaW50OwotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwpAQCAt
MTcwLDExICsxNjYsNiBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgQmxhY2tCZXJyeTo6UGxhdGZv
cm06OkZsb2F0UG9pbnQoKSBjb25zdDsKICNlbmRpZgogCi0jaWYgVVNFKFNLSUEpCi0gICAgb3Bl
cmF0b3IgU2tQb2ludCgpIGNvbnN0OwotICAgIEZsb2F0UG9pbnQoY29uc3QgU2tQb2ludCYpOwot
I2VuZGlmCi0KICAgICBGbG9hdFBvaW50IG1hdHJpeFRyYW5zZm9ybShjb25zdCBUcmFuc2Zvcm1h
dGlvbk1hdHJpeCYpIGNvbnN0OwogICAgIEZsb2F0UG9pbnQgbWF0cml4VHJhbnNmb3JtKGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0Zsb2F0UmVjdC5oCmluZGV4IDc5OGQ4Yzk0ZDBjNDQyNWYxNWVmZmNlZDBjNzAyNmI4
MDYzNDI5NjQuLjZlZjMzZTJmMmFlMDVjZDJmMjMzOGY3YjgwNzM3OWIzOTgwMDY1MWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oCkBAIC01NiwxMCAr
NTYsNiBAQCBjbGFzcyBGbG9hdFJlY3Q7CiB9CiAjZW5kaWYKIAotI2lmIFVTRShTS0lBKQotc3Ry
dWN0IFNrUmVjdDsKLSNlbmRpZgotCiAjaWYgVVNFKENBSVJPKQogdHlwZWRlZiBzdHJ1Y3QgX2Nh
aXJvX3JlY3RhbmdsZSBjYWlyb19yZWN0YW5nbGVfdDsKICNlbmRpZgpAQCAtMjAzLDExICsxOTks
NiBAQCBwdWJsaWM6CiAgICAgRmxvYXRSZWN0IG5vcm1hbGl6ZWQoKSBjb25zdDsKICNlbmRpZgog
Ci0jaWYgVVNFKFNLSUEpCi0gICAgRmxvYXRSZWN0KGNvbnN0IFNrUmVjdCYpOwotICAgIG9wZXJh
dG9yIFNrUmVjdCgpIGNvbnN0OwotI2VuZGlmCi0KICNpZiBVU0UoQ0FJUk8pCiAgICAgRmxvYXRS
ZWN0KGNvbnN0IGNhaXJvX3JlY3RhbmdsZV90Jik7CiAgICAgb3BlcmF0b3IgY2Fpcm9fcmVjdGFu
Z2xlX3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmgKaW5kZXggNDU0Y2VmMjM5YzZjMjhmODdjNGM4ZTk2MTRiNjcxNmUxNzdmMGVlMC4uMDUw
NjY2ZGE5MDg2MzQ5ZTI5MDJmNmEwNGQyOTlkMWFmMGZhNGJmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTExMCwxMSArMTEwLDcgQEAgcHVi
bGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoT1BFTlRZUEVfVkVSVElDQUwpCi0jaWYgVVNFKFNL
SUEpCi0gICAgdHlwZWRlZiB1aW50MzJfdCBGb250RmlsZUtleTsKLSNlbHNlCiAgICAgdHlwZWRl
ZiBBdG9taWNTdHJpbmcgRm9udEZpbGVLZXk7Ci0jZW5kaWYKICAgICBQYXNzUmVmUHRyPE9wZW5U
eXBlVmVydGljYWxEYXRhPiBnZXRWZXJ0aWNhbERhdGEoY29uc3QgRm9udEZpbGVLZXkmLCBjb25z
dCBGb250UGxhdGZvcm1EYXRhJik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhZGllbnQuY3BwCmluZGV4IGUxMDM2ODRlMGJkMGJlYzc3ZDRiZDc4NmZh
NDM2YmVkMGQwNzA1MmUuLjdlNzYzOGI2ZDE0MjJhMjQ0OWU1ZmU5ODhjNTU3M2Q5N2JhNGYyN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5jcHAKQEAg
LTI0MCw3ICsyNDAsNyBAQCB2b2lkIEdyYWRpZW50OjpzZXRHcmFkaWVudFNwYWNlVHJhbnNmb3Jt
KGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgZ3JhZGllbnRTcGFjZVRyYQogICAgIGludmFsaWRhdGVI
YXNoKCk7CiB9CiAKLSNpZiAhVVNFKFNLSUEpICYmICFVU0UoQ0FJUk8pICYmICFQTEFURk9STShC
TEFDS0JFUlJZKQorI2lmICFVU0UoQ0FJUk8pICYmICFQTEFURk9STShCTEFDS0JFUlJZKQogdm9p
ZCBHcmFkaWVudDo6c2V0UGxhdGZvcm1HcmFkaWVudFNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFkaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
ZGllbnQuaAppbmRleCBiZDg2YWM1NWJlOTkzZDU1ZTE4NzNkY2I5MzU4YjEzNmVjN2Y4NGJjLi4w
M2Y4ZTY2NjA3NmFjZjYxNGRhNmYwYzFkNGY5MzhjZDdlNGUzYTZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKQEAgLTUwLDEwICs1MCw2IEBAIHR5cGVk
ZWYgUUdyYWRpZW50KiBQbGF0Zm9ybUdyYWRpZW50OwogI2VsaWYgVVNFKENBSVJPKQogdHlwZWRl
ZiBzdHJ1Y3QgX2NhaXJvX3BhdHRlcm4gY2Fpcm9fcGF0dGVybl90OwogdHlwZWRlZiBjYWlyb19w
YXR0ZXJuX3QqIFBsYXRmb3JtR3JhZGllbnQ7Ci0jZWxpZiBVU0UoU0tJQSkKLWNsYXNzIFNrU2hh
ZGVyOwotdHlwZWRlZiBjbGFzcyBTa1NoYWRlciogUGxhdGZvcm1HcmFkaWVudDsKLXR5cGVkZWYg
Y2xhc3MgU2tTaGFkZXIqIFBsYXRmb3JtUGF0dGVybjsKICNlbGlmIFBMQVRGT1JNKEJMQUNLQkVS
UlkpCiBuYW1lc3BhY2UgQmxhY2tCZXJyeSB7CiBuYW1lc3BhY2UgUGxhdGZvcm0gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAK
aW5kZXggYTM3ZTIzMDJlMWE2MTQwMmNhZjc4ZjQ1OTk5ODY0M2IwODkzMzA1Yi4uMTU0YWM2Mjcy
MzExYWQ1ODM0MWI4YjE0YjgwN2UwMjZjOTI0NmUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC02MDYsNyArNjA2
LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3QgSW50UmVjdCYgcmVjdCkKIH0K
ICNlbmRpZgogCi0jaWYgIVVTRShTS0lBKQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXBSb3Vu
ZGVkUmVjdChjb25zdCBSb3VuZGVkUmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGFpbnRpbmdEaXNh
YmxlZCgpKQpAQCAtNjIxLDcgKzYyMCw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwUm91
bmRlZFJlY3QoY29uc3QgUm91bmRlZFJlY3QmIHJlY3QpCiAgICAgcGF0aC5hZGRSb3VuZGVkUmVj
dChyZWN0KTsKICAgICBjbGlwKHBhdGgpOwogfQotI2VuZGlmCiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpjbGlwT3V0Um91bmRlZFJlY3QoY29uc3QgUm91bmRlZFJlY3QmIHJlY3QpCiB7CkBAIC03
NDAsNyArNzM4LDcgQEAgQmxlbmRNb2RlIEdyYXBoaWNzQ29udGV4dDo6YmxlbmRNb2RlT3BlcmF0
aW9uKCkgY29uc3QKICAgICByZXR1cm4gbV9zdGF0ZS5ibGVuZE1vZGU7CiB9CiAKLSNpZiAhVVNF
KENHKSAmJiAhVVNFKFNLSUEpCisjaWYgIVVTRShDRykKIC8vIEltcGxlbWVudCB0aGlzIGlmIHlv
dSB3YW50IHRvIGdvIGFoZWFkIGFuZCBwdXNoIHRoZSBkcmF3aW5nIG1vZGUgaW50byB5b3VyIG5h
dGl2ZSBjb250ZXh0CiAvLyBpbW1lZGlhdGVseS4KIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVRleHREcmF3aW5nTW9kZShUZXh0RHJhd2luZ01vZGVGbGFncykKQEAgLTc0OCw3ICs3
NDYsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0UGxhdGZvcm1UZXh0RHJhd2luZ01vZGUo
VGV4dERyYXdpbmdNb2RlRmxhZ3MpCiB9CiAjZW5kaWYKIAotI2lmICFQTEFURk9STShRVCkgJiYg
IVVTRShDQUlSTykgJiYgIVVTRShTS0lBKQorI2lmICFQTEFURk9STShRVCkgJiYgIVVTRShDQUlS
TykKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQbGF0Zm9ybVN0cm9rZVN0eWxlKFN0cm9rZVN0
eWxlKQogewogfQpAQCAtNzYwLDcgKzc1OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRQ
bGF0Zm9ybVNob3VsZFNtb290aEZvbnRzKGJvb2wpCiB9CiAjZW5kaWYKIAotI2lmICFVU0UoU0tJ
QSkgJiYgIVVTRShDRykgJiYgIVVTRShDQUlSTykKKyNpZiAhVVNFKENHKSAmJiAhVVNFKENBSVJP
KQogYm9vbCBHcmFwaGljc0NvbnRleHQ6OmlzQWNjZWxlcmF0ZWRDb250ZXh0KCkgY29uc3QKIHsK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC04NjMsNyArODYxLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OnN0cm9rZUVsbGlwc2VBc1BhdGgoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKQogICAgIHN0
cm9rZVBhdGgocGF0aCk7CiB9CiAKLSNpZiAhVVNFKENHKSAmJiAhVVNFKFNLSUEpIC8vIGFwcGVu
ZCAmJiAhVVNFKE1ZUExBVEZPUk0pIGhlcmUgdG8gb3B0aW1pemUgZWxsaXBzZXMgb24geW91ciBw
bGF0Zm9ybS4KKyNpZiAhVVNFKENHKQogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtRmls
bEVsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiBlbGxpcHNlKQogewogICAgIGlmIChwYWludGluZ0Rp
c2FibGVkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5oCmluZGV4IDhjNmIwN2UzMGZlMTIyYmQ4OTA4MDI3MmMzNjQ0ZGVkZTM3Nzc4
NTUuLjU2Zjc2NDUzMDkzMTVlM2ZhMTFmZjdmMmUyMTNmMmU3N2NkZGE2YjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oCkBAIC00
OSwxMiArNDksNiBAQCB0eXBlZGVmIFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dENhaXJvIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0OwogI2VsaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSA8UVBhaW50
ZXI+CiB0eXBlZGVmIFFQYWludGVyIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0OwotI2VsaWYgVVNF
KFNLSUEpCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBQbGF0Zm9ybUNvbnRleHRTa2lhOwot
dHlwZWRlZiBQbGF0Zm9ybUNvbnRleHRTa2lhIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0
ZTsKLX0KLXR5cGVkZWYgV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYSBQbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dDsKICNlbGlmIE9TKFdJTkNFKQogdHlwZWRlZiBzdHJ1Y3QgSERDX18gUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQ7CiAjZWxzZQpAQCAtODksOSArODMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogICAgIGNsYXNzIERyYXdpbmdCdWZm
ZXI7CiAgICAgY2xhc3MgR2VuZXJhdG9yOwotI2lmICFVU0UoU0tJQSkKICAgICBjbGFzcyBHcmFw
aGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU7Ci0jZW5kaWYKICAgICBjbGFzcyBJbWFnZUJ1ZmZl
cjsKICAgICBjbGFzcyBJbnRSZWN0OwogICAgIGNsYXNzIFJvdW5kZWRSZWN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5k
ZXggNmEwNDQ5ODQyYWRlN2M4OWU3YjU1YTVkZDk3NWJhMzdiMTQ5ZTcwNS4uMDA1NjIzYmI4ZGM1
M2I1OTdjYTYwYWUyMjE1ZjNhMmUyYWY5YmNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC04MCwxMCArODAsNiBA
QCB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiB0eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEJMQUNL
QkVSUlkpICYmIFVTRShTS0lBKQotY2xhc3MgR3JDb250ZXh0OwotI2VuZGlmCi0KIC8vIFRoZXNl
IGFyZSBjdXJyZW50bHkgdGhlIHNhbWUgYW1vbmcgYWxsIGltcGxlbWVudGF0aW9ucy4KIGNvbnN0
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgTnVsbFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
PSAwOwogY29uc3QgUGxhdGZvcm0zRE9iamVjdCBOdWxsUGxhdGZvcm0zRE9iamVjdCA9IDA7CkBA
IC00OTUsOSArNDkxLDYgQEAgcHVibGljOgogI2VsaWYgUExBVEZPUk0oQkxBQ0tCRVJSWSkKICAg
ICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBj
b25zdDsKICAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0OwotI2lm
IFVTRShTS0lBKQotICAgIEdyQ29udGV4dCogZ3JDb250ZXh0KCk7Ci0jZW5kaWYKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0OwogI2VuZGlmCkBAIC05MTksMTAgKzkxMiw3IEBAIHB1YmxpYzoKICAgICAgICAg
Ly8gbmVlZHMgdG8gbG9jayB0aGUgcmVzb3VyY2VzIG9yIHJlbGV2YW50IGRhdGEgaWYgbmVlZGVk
IGFuZCByZXR1cm5zIHRydWUgdXBvbiBzdWNjZXNzCiAgICAgICAgIGJvb2wgZXh0cmFjdEltYWdl
KGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7
CiAKLSNpZiBVU0UoU0tJQSkKLSAgICAgICAgUmVmUHRyPE5hdGl2ZUltYWdlU2tpYT4gbV9uYXRp
dmVJbWFnZTsKLSAgICAgICAgUmVmUHRyPE5hdGl2ZUltYWdlU2tpYT4gbV9za2lhSW1hZ2U7Ci0j
ZWxpZiBVU0UoQ0FJUk8pCisjaWYgVVNFKENBSVJPKQogICAgICAgICBJbWFnZVNvdXJjZSogbV9k
ZWNvZGVyOwogICAgICAgICBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBtX2ltYWdlU3VyZmFjZTsK
ICNlbGlmIFVTRShDRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlQnVmZmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlQnVmZmVyLmNwcAppbmRleCAzNDhhYmVkN2U3YTk1ZWEwZTgwZDUzOGI5NTAzOTI1NTQ4MDdj
Y2ZjLi42Y2Y3Y2NhOTQ0M2VjNjRiMTRkMTBiMjJmNWQ3OWQ0OTQ1YjMzNTI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuY3BwCkBAIC05OCwx
NCArOTgsMTMgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6Y29udmVydFRvTHVtaW5hbmNlTWFzaygpCiAg
ICAgZ2VuZXJpY0NvbnZlcnRUb0x1bWluYW5jZU1hc2soKTsKIH0KIAotI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykgJiYgIVVTRShTS0lBKSAmJiAhVVNFKENBSVJPKSAmJiAhUExBVEZP
Uk0oQkxBQ0tCRVJSWSkKKyNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpICYmICFVU0Uo
Q0FJUk8pICYmICFQTEFURk9STShCTEFDS0JFUlJZKQogUGxhdGZvcm1MYXllciogSW1hZ2VCdWZm
ZXI6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewogICAgIHJldHVybiAwOwogfQogI2VuZGlmCiAK
LSNpZiAhVVNFKFNLSUEpCiBib29sIEltYWdlQnVmZmVyOjpjb3B5VG9QbGF0Zm9ybVRleHR1cmUo
R3JhcGhpY3NDb250ZXh0M0QmLCBQbGF0Zm9ybTNET2JqZWN0LCBHQzNEZW51bSwgYm9vbCwgYm9v
bCkKIHsKICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTUsNiArMTE0LDUgQEAgUGFzc093blB0cjxJ
bWFnZUJ1ZmZlcj4gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNvbXBhdGlibGVCdWZmZXIoY29uc3QgSW50
U2l6ZSYgc2l6ZSwKIHsKICAgICByZXR1cm4gY3JlYXRlKHNpemUsIHJlc29sdXRpb25TY2FsZSwg
Y29sb3JTcGFjZSwgY29udGV4dC0+aXNBY2NlbGVyYXRlZENvbnRleHQoKSA/IEFjY2VsZXJhdGVk
IDogVW5hY2NlbGVyYXRlZCk7CiB9Ci0jZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyLmgKaW5kZXggZDhjMGQ1YTQzODM5NzYzNDYxZmFj
M2U1ZWRhOGNmZWY4ZGRjOTA0ZC4uYTczODZhZWM0MDY0Yjk2MmFjNjJiZGI2MGVjYzk0YjU2ZmI1
MDkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VC
dWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZl
ci5oCkBAIC0xNTQsMTIgKzE1NCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8g
VGhpcyBjb25zdHJ1Y3RvciB3aWxsIHBsYWNlIGl0cyBzdWNjZXNzIGludG8gdGhlIGdpdmVuIG91
dC12YXJpYWJsZQogICAgICAgICAvLyBzbyB0aGF0IGNyZWF0ZSgpIGtub3dzIHdoZW4gaXQgc2hv
dWxkIHJldHVybiBmYWlsdXJlLgogICAgICAgICBJbWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiwg
ZmxvYXQgcmVzb2x1dGlvblNjYWxlLCBDb2xvclNwYWNlLCBSZW5kZXJpbmdNb2RlLCBib29sJiBz
dWNjZXNzKTsKLSNpZiBVU0UoU0tJQSkKLSAgICAgICAgSW1hZ2VCdWZmZXIoY29uc3QgSW50U2l6
ZSYsIGZsb2F0IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZSwgY29uc3QgR3JhcGhpY3NDb250
ZXh0KiwgYm9vbCBoYXNBbHBoYSwgYm9vbCYgc3VjY2Vzcyk7Ci0jZW5kaWYKICAgICB9OwogCi0j
aWYgVVNFKENHKSB8fCBVU0UoU0tJQSkKKyNpZiBVU0UoQ0cpCiAgICAgU3RyaW5nIEltYWdlRGF0
YVRvRGF0YVVSTChjb25zdCBJbWFnZURhdGEmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25z
dCBkb3VibGUqIHF1YWxpdHkpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVyRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXJEYXRhLmgKaW5kZXggMTVhMTdlODM4ZmM4MmNhZGFh
NGZjMDI0OTFkNmFmMTg4MDNjMTc1Mi4uMjg2ZDdmM2NkN2M2MDA1NTFmYzVhNmI4ODk1ODBiNjhk
NDY5OTU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXJEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXJEYXRhLmgKQEAgLTI5LDggKzI5LDYgQEAKICNpbmNsdWRlICJJbWFnZUJ1ZmZlckRh
dGFDYWlyby5oIgogI2VsaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXJEYXRh
UXQuaCIKLSNlbGlmIFVTRShTS0lBKQotI2luY2x1ZGUgIkltYWdlQnVmZmVyRGF0YVNraWEuaCIK
ICNlbGlmIE9TKFdJTkNFKQogI2luY2x1ZGUgIkltYWdlQnVmZmVyRGF0YVdpbmNlLmgiCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFBvaW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5oCmluZGV4IGUy
NmVlZTA5MTRjMGM3NDJjMzBmODIxYTYwYjljMmM0MGQzMzM3ZGUuLjYxOTczNGViMjhkYWQ0OTE1
ZjMyNzRjMGI5NmFmNmIxMTJjNGI5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ludFBvaW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW50UG9pbnQuaApAQCAtNjEsMTEgKzYxLDYgQEAgY2xhc3MgSW50UG9pbnQ7CiB0eXBl
ZGVmIHN0cnVjdCBfRXZhc19Qb2ludCBFdmFzX1BvaW50OwogI2VuZGlmCiAKLSNpZiBVU0UoU0tJ
QSkKLXN0cnVjdCBTa1BvaW50Owotc3RydWN0IFNrSVBvaW50OwotI2VuZGlmCi0KIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgSW50UG9pbnQgewpAQCAtMTQ0LDEyICsxMzksNiBAQCBwdWJs
aWM6CiAgICAgb3BlcmF0b3IgRXZhc19Qb2ludCgpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBVU0Uo
U0tJQSkKLSAgICBJbnRQb2ludChjb25zdCBTa0lQb2ludCYpOwotICAgIG9wZXJhdG9yIFNrSVBv
aW50KCkgY29uc3Q7Ci0gICAgb3BlcmF0b3IgU2tQb2ludCgpIGNvbnN0OwotI2VuZGlmCi0KIHBy
aXZhdGU6CiAgICAgaW50IG1feCwgbV95OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ludFJlY3QuaAppbmRleCBkYzE2YTI4ODhiZTYzNTgxY2RkYmI5NDU2MjVhZDBiODc0
NDAxMmE2Li5mNzE4OTM5OWQyYTkwMTU4ZjZmNDIzYTc4ZTQ3MDYxZTQxZDNlM2JlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCkBAIC02NSwxMSArNjUsNiBA
QCBjbGFzcyBJbnRSZWN0OwogdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZV9pbnQgY2Fp
cm9fcmVjdGFuZ2xlX2ludF90OwogI2VuZGlmCiAKLSNpZiBVU0UoU0tJQSkKLXN0cnVjdCBTa1Jl
Y3Q7Ci1zdHJ1Y3QgU2tJUmVjdDsKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEZsb2F0UmVjdDsKQEAgLTIxNSwxMiArMjEwLDYgQEAgcHVibGljOgogICAgIG9wZXJhdG9y
IENHUmVjdCgpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBVU0UoU0tJQSkKLSAgICBJbnRSZWN0KGNv
bnN0IFNrSVJlY3QmKTsKLSAgICBvcGVyYXRvciBTa1JlY3QoKSBjb25zdDsKLSAgICBvcGVyYXRv
ciBTa0lSZWN0KCkgY29uc3Q7Ci0jZW5kaWYKLQogI2lmIChQTEFURk9STShNQUMpICYmICFkZWZp
bmVkKE5TR0VPTUVUUllfVFlQRVNfU0FNRV9BU19DR0dFT01FVFJZX1RZUEVTKSkgfHwgKFBMQVRG
T1JNKFFUKSAmJiBVU0UoUVRLSVQpKQogICAgIG9wZXJhdG9yIE5TUmVjdCgpIGNvbnN0OwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJ
bWFnZVB0ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2VQ
dHIuaAppbmRleCA0N2YxZDQ2ZWU5ZGQzMmFjM2M1NzY4NzU0YTkzZmIzYzBlOGNlYmRhLi5hOGIw
Zjc0NjgyOTRlMTA5MzI3MjBhOTRkMGVhY2Y0ZDc3NzNiZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZVB0ci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlUHRyLmgKQEAgLTM4LDExICszOCw2
IEBAIGNsYXNzIFFQaXhtYXA7CiBRVF9FTkRfTkFNRVNQQUNFCiAjZWxpZiBVU0UoQ0FJUk8pCiAj
aW5jbHVkZSAiUmVmUHRyQ2Fpcm8uaCIKLSNlbGlmIFVTRShTS0lBKQotI2luY2x1ZGUgIk5hdGl2
ZUltYWdlU2tpYS5oIgotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgTmF0aXZlSW1hZ2VTa2lh
OwotfQogI2VsaWYgT1MoV0lOQ0UpCiAjaW5jbHVkZSAiU2hhcmVkQml0bWFwLmgiCiAjZW5kaWYK
QEAgLTU4LDE2ICs1MywxMyBAQCB0eXBlZGVmIFFQaXhtYXAqIE5hdGl2ZUltYWdlUHRyOwogI2Vs
aWYgVVNFKENBSVJPKQogdHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBOYXRpdmVJbWFn
ZVB0cjsKIHR5cGVkZWYgUGFzc1JlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IFBhc3NOYXRpdmVJbWFn
ZVB0cjsKLSNlbGlmIFVTRShTS0lBKQotdHlwZWRlZiBSZWZQdHI8TmF0aXZlSW1hZ2VTa2lhPiBO
YXRpdmVJbWFnZVB0cjsKLXR5cGVkZWYgUGFzc1JlZlB0cjxOYXRpdmVJbWFnZVNraWE+IFBhc3NO
YXRpdmVJbWFnZVB0cjsKICNlbGlmIE9TKFdJTkNFKQogdHlwZWRlZiBSZWZQdHI8U2hhcmVkQml0
bWFwPiBOYXRpdmVJbWFnZVB0cjsKICNlbGlmIFBMQVRGT1JNKEJMQUNLQkVSUlkpCiB0eXBlZGVm
IHZvaWQqIE5hdGl2ZUltYWdlUHRyOwogI2VuZGlmCiAKLSNpZiAhVVNFKFNLSUEpICYmICFVU0Uo
Q0FJUk8pCisjaWYgIVVTRShDQUlSTykKIHR5cGVkZWYgTmF0aXZlSW1hZ2VQdHIgUGFzc05hdGl2
ZUltYWdlUHRyOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BhdGguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGgu
aAppbmRleCBkNDU1ZjBmOTJjZjY2MDZhMzk5MWZjNTk4M2JiYzZhNDg4ZDVjOGU3Li40NzM0NTE5
NTFjZTk0YjAyZDVjMTVjNzYyNjUwZDc5OTBjODAxMGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvUGF0aC5oCkBAIC00Miw5ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIENhaXJvUGF0aDsKIH0KIHR5cGVkZWYgV2ViQ29yZTo6Q2Fpcm9QYXRoIFBsYXRmb3Jt
UGF0aDsKLSNlbGlmIFVTRShTS0lBKQotY2xhc3MgU2tQYXRoOwotdHlwZWRlZiBTa1BhdGggUGxh
dGZvcm1QYXRoOwogI2VsaWYgT1MoV0lOQ0UpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgUGxhdGZvcm1QYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvUGF0dGVybi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0
ZXJuLmNwcAppbmRleCA4ZDk0ZDFmYjJlYzI4NmQzY2Q0NjI2NzRiODdkY2FjOGYyNzc2ZjA5Li4z
YjMyZWJiYjg5YWIxYzgxZWZlMjBmMWRiYTY3NjA4NzFlY2I1YmU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXR0ZXJuLmNwcApAQCAtNDAsMTAgKzQwLDYgQEAgUGF0
dGVybjo6UGF0dGVybihQYXNzUmVmUHRyPEltYWdlPiBpbWFnZSwgYm9vbCByZXBlYXRYLCBib29s
IHJlcGVhdFkpCiAgICAgOiBtX3RpbGVJbWFnZShpbWFnZSkKICAgICAsIG1fcmVwZWF0WChyZXBl
YXRYKQogICAgICwgbV9yZXBlYXRZKHJlcGVhdFkpCi0jaWYgVVNFKFNLSUEpCi0gICAgLCBtX3Bh
dHRlcm4oMCkKLSAgICAsIG1fZXh0ZXJuYWxNZW1vcnlBbGxvY2F0ZWQoMCkKLSNlbmRpZgogewog
ICAgIEFTU0VSVChtX3RpbGVJbWFnZSk7CiB9CkBAIC01OSw3ICs1NSw2IEBAIHZvaWQgUGF0dGVy
bjo6c2V0UGF0dGVyblNwYWNlVHJhbnNmb3JtKGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVy
blNwYWNlVHJhbnNmCiAgICAgc2V0UGxhdGZvcm1QYXR0ZXJuU3BhY2VUcmFuc2Zvcm0oKTsKIH0K
IAotI2lmICFVU0UoU0tJQSkKIHZvaWQgUGF0dGVybjo6cGxhdGZvcm1EZXN0cm95KCkKIHsKIH0K
QEAgLTY3LDYgKzYyLDUgQEAgdm9pZCBQYXR0ZXJuOjpwbGF0Zm9ybURlc3Ryb3koKQogdm9pZCBQ
YXR0ZXJuOjpzZXRQbGF0Zm9ybVBhdHRlcm5TcGFjZVRyYW5zZm9ybSgpCiB7CiB9Ci0jZW5kaWYK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVy
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0dGVybi5oCmluZGV4IGQ4
ZTJmNmI1NjljMmJlM2RmMzdjYzFmYzYzMDkzMmRmYWYyNWNmMjUuLjE4YjcyZTUwNGY5OTBkYWFk
MWNkOTg1Y2Y3NjQyYjUyOGZkZTBkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BhdHRlcm4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9QYXR0ZXJuLmgKQEAgLTQwLDkgKzQwLDYgQEAgdHlwZWRlZiBDR1BhdHRlcm5SZWYgUGxh
dGZvcm1QYXR0ZXJuUHRyOwogI2VsaWYgVVNFKENBSVJPKQogI2luY2x1ZGUgPGNhaXJvLmg+CiB0
eXBlZGVmIGNhaXJvX3BhdHRlcm5fdCogUGxhdGZvcm1QYXR0ZXJuUHRyOwotI2VsaWYgVVNFKFNL
SUEpCi1jbGFzcyBTa1NoYWRlcjsKLXR5cGVkZWYgU2tTaGFkZXIqIFBsYXRmb3JtUGF0dGVyblB0
cjsKICNlbGlmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgPFFCcnVzaD4KIHR5cGVkZWYgUUJydXNo
IFBsYXRmb3JtUGF0dGVyblB0cjsKQEAgLTY1LDkgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQg
cGxhdGZvcm1EZXN0cm95KCk7CiAKICAgICAvLyBQYXR0ZXJuIHNwYWNlIGlzIGFuIGFic3RyYWN0
IHNwYWNlIHRoYXQgbWFwcyB0byB0aGUgZGVmYXVsdCB1c2VyIHNwYWNlIGJ5IHRoZSB0cmFuc2Zv
cm1hdGlvbiAndXNlclNwYWNlVHJhbnNmb3JtYXRpb24nIAotI2lmIFVTRShTS0lBKQotICAgIFBs
YXRmb3JtUGF0dGVyblB0ciBwbGF0Zm9ybVBhdHRlcm4oY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB1
c2VyU3BhY2VUcmFuc2Zvcm1hdGlvbik7Ci0jZWxpZiBQTEFURk9STShRVCkKKyNpZiBQTEFURk9S
TShRVCkKICAgICAvLyBRdCBpZ25vcmVzIHVzZXIgc3BhY2UgdHJhbnNmb3JtYXRpb24gYW5kIHVz
ZXMgcGF0dGVybidzIGluc3RlYWQKICAgICBQbGF0Zm9ybVBhdHRlcm5QdHIgY3JlYXRlUGxhdGZv
cm1QYXR0ZXJuKCkgY29uc3Q7CiAjZWxzZQpAQCAtODgsOSArODMsNiBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9yZXBlYXRZOwogICAgIEFmZmluZVRyYW5zZm9ybSBtX3BhdHRlcm5TcGFjZVRyYW5z
Zm9ybWF0aW9uOwogICAgIFBsYXRmb3JtUGF0dGVyblB0ciBtX3BhdHRlcm47Ci0jaWYgVVNFKFNL
SUEpCi0gICAgaW50IG1fZXh0ZXJuYWxNZW1vcnlBbGxvY2F0ZWQ7Ci0jZW5kaWYKIH07CiAKIH0g
Ly9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVCbGVuZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUJsZW5kLmgKaW5kZXggNWM3MWMyYjcyNTA2NjQ3MWJjNzM4MmFkZjJjY2QxMmM5NzVl
MDhhZi4uNmIwMDA4MGE4YWFhNjhlOWFiNjJiYmU4NDMyZGMxZWZhYmVkZjQ0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmgKQEAg
LTQ5LDExICs0OSw2IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2ln
bmVkIGNvbG9yQXJyYXlMZW5ndGgpOwogICAgIHZvaWQgcGxhdGZvcm1BcHBseU5FT04odW5zaWdu
ZWQgY2hhciogc3JjUGl4ZWxBcnJheUEsIHVuc2lnbmVkIGNoYXIqIHNyY1BpeGVsQXJyYXlCLCB1
bnNpZ25lZCBjaGFyKiBkc3RQaXhlbEFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgY29sb3JBcnJheUxlbmd0aCk7Ci0jaWYgVVNFKFNLSUEpCi0gICAgdmlydHVhbCBi
b29sIHBsYXRmb3JtQXBwbHlTa2lhKCk7Ci0gICAgdmlydHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVh
dGVJbWFnZUZpbHRlcihTa2lhSW1hZ2VGaWx0ZXJCdWlsZGVyKik7Ci0jZW5kaWYKLQogICAgIHZp
cnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKICAgICB2aXJ0dWFsIHZvaWQgZHVt
cCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFQ29sb3JNYXRyaXguaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVDb2xvck1hdHJpeC5oCmluZGV4IDc2YjI2YzhjMTBhMmVlNTViNTIyN2JkZTlhYzA4
N2U3MmQ4NTUyYTguLjk4OTA1YzU4ZWMwYjFmNDQzNDM5NDcwNTUzZDkwYTJjODFhOTk5ZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xv
ck1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5oCkBAIC00OSwxMCArNDksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXRW
YWx1ZXMoY29uc3QgVmVjdG9yPGZsb2F0PiYpOwogCiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
QXBwbHlTb2Z0d2FyZSgpOwotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9y
bUFwcGx5U2tpYSgpOwotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRlciogY3JlYXRlSW1hZ2VGaWx0
ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCiAjaWYgRU5BQkxFKE9QRU5DTCkK
ICAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1BcHBseU9wZW5DTCgpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50
VHJhbnNmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVD
b21wb25lbnRUcmFuc2Zlci5oCmluZGV4IDY4NDU0ZmQzNTdkYzVkYWQwNGViZGRkNTdkZDU2ZTUz
ZGMyN2U3MWYuLmNmNmI3NDc2ZDhjMzdjZjNkZWVmYTVhOWY5ZTJiNDRiMzJmMDk0NzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb25l
bnRUcmFuc2Zlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVDb21wb25lbnRUcmFuc2Zlci5oCkBAIC03OSwxMCArNzksNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRBbHBoYUZ1bmN0aW9uKGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdhcmUoKTsKLSNpZiBVU0UoU0tJ
QSkKLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1BcHBseVNraWEoKTsKLSAgICB2aXJ0dWFsIFNr
SW1hZ2VGaWx0ZXIqIGNyZWF0ZUltYWdlRmlsdGVyKFNraWFJbWFnZUZpbHRlckJ1aWxkZXIqKTsK
LSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBkdW1wKCk7CiAKICAgICB2aXJ0dWFsIFRleHRTdHJl
YW0mIGV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbXBvc2l0ZS5oCmluZGV4IDNlYjliODYxNWQ3ODkxMmE2NjZmNGU2N2I2NzQyMmVjNWFk
ZDUzZDYuLmRmMDQyNmE3OGZlZjJiYjUwYjc4ZDM5YjNjNzU5YWZlMmFiOGFhZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb21wb3NpdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9z
aXRlLmgKQEAgLTY4LDEwICs2OCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgVGV4dFN0cmVh
bSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihUZXh0U3RyZWFtJiwgaW50IGluZGVudGlvbikgY29u
c3Q7CiAKLSNpZiBVU0UoU0tJQSkKLSAgICB2aXJ0dWFsIFNrSW1hZ2VGaWx0ZXIqIGNyZWF0ZUlt
YWdlRmlsdGVyKFNraWFJbWFnZUZpbHRlckJ1aWxkZXIqKTsKLSNlbmRpZgotCiBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzVmFsaWRQcmVNdWx0aXBsaWVkUGl4ZWxzKCkgT1ZF
UlJJREUgeyByZXR1cm4gbV90eXBlICE9IEZFQ09NUE9TSVRFX09QRVJBVE9SX0FSSVRITUVUSUM7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUNvbnZvbHZlTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaAppbmRleCA5MTA2MGE3OTU0N2I5NTRhNmI3NzQ4NDMy
ZGQxOTBlNDVjOTUzMDA0Li44MWViYTFkODNlYmQ3NDIxMDg3MmM3OGVjYjk4YTYyZTc2NGVkYTdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
Q29udm9sdmVNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZFQ29udm9sdmVNYXRyaXguaApAQCAtNzEsOSArNzEsNiBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBzZXRQcmVzZXJ2ZUFscGhhKGJvb2wpOwogCiAgICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
QXBwbHlTb2Z0d2FyZSgpOwotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRl
ciogY3JlYXRlSW1hZ2VGaWx0ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCiAg
ICAgdmlydHVhbCB2b2lkIGR1bXAoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNv
bHV0ZVBhaW50UmVjdCgpIHsgc2V0QWJzb2x1dGVQYWludFJlY3QoZW5jbG9zaW5nSW50UmVjdCht
YXhFZmZlY3RSZWN0KCkpKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5oCmluZGV4IDgxNWJjZjg2
YWQxMjdiZjNlYmMyMDExOGM1MTVhOTdjNDQ0MzY5NjEuLjFiNDE3MGVmNDEwZGM3ZDQ4ZDFlMGQz
YmZiZDBlNWNmZGY4ZDE3NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRGlzcGxhY2VtZW50TWFwLmgKQEAgLTYzLDExICs2
Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgRkVEaXNwbGFjZW1lbnRNYXAoRmlsdGVyKiwg
Q2hhbm5lbFNlbGVjdG9yVHlwZSB4Q2hhbm5lbFNlbGVjdG9yLCBDaGFubmVsU2VsZWN0b3JUeXBl
IHlDaGFubmVsU2VsZWN0b3IsIGZsb2F0KTsKIAotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwg
Ym9vbCBwbGF0Zm9ybUFwcGx5U2tpYSgpOwotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRlciogY3Jl
YXRlSW1hZ2VGaWx0ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCi0KICAgICBD
aGFubmVsU2VsZWN0b3JUeXBlIG1feENoYW5uZWxTZWxlY3RvcjsKICAgICBDaGFubmVsU2VsZWN0
b3JUeXBlIG1feUNoYW5uZWxTZWxlY3RvcjsKICAgICBmbG9hdCBtX3NjYWxlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFu
Qmx1ci5oCmluZGV4IGRhZjNlZjE3YTJjMmY3OTc4OTEwZWIwMTQxOWJhYTlmOGFiYTlkN2MuLmY1
NTRlZjg0MWZlZGMwNDUyYzRhYTFkNjdhZjVmNjY2Y2JjNTAwMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFR2F1c3NpYW5CbHVy
LmgKQEAgLTczLDEwICs3Myw2IEBAIHByaXZhdGU6CiAgICAgaW5saW5lIHZvaWQgcGxhdGZvcm1B
cHBseShVaW50OENsYW1wZWRBcnJheSogc3JjUGl4ZWxBcnJheSwgVWludDhDbGFtcGVkQXJyYXkq
IHRtcFBpeGVsQXJyYXksIHVuc2lnbmVkIGtlcm5lbFNpemVYLCB1bnNpZ25lZCBrZXJuZWxTaXpl
WSwgSW50U2l6ZSYgcGFpbnRTaXplKTsKIAogICAgIGlubGluZSB2b2lkIHBsYXRmb3JtQXBwbHlH
ZW5lcmljKFVpbnQ4Q2xhbXBlZEFycmF5KiBzcmNQaXhlbEFycmF5LCBVaW50OENsYW1wZWRBcnJh
eSogdG1wUGl4ZWxBcnJheSwgdW5zaWduZWQga2VybmVsU2l6ZVgsIHVuc2lnbmVkIGtlcm5lbFNp
emVZLCBJbnRTaXplJiBwYWludFNpemUpOwotI2lmIFVTRShTS0lBKQotICAgIHZpcnR1YWwgYm9v
bCBwbGF0Zm9ybUFwcGx5U2tpYSgpOwotICAgIHZpcnR1YWwgU2tJbWFnZUZpbHRlciogY3JlYXRl
SW1hZ2VGaWx0ZXIoU2tpYUltYWdlRmlsdGVyQnVpbGRlciopOwotI2VuZGlmCiAKICAgICBmbG9h
dCBtX3N0ZFg7CiAgICAgZmxvYXQgbV9zdGRZOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAppbmRleCA0NDhmMDJkNGY4MDQw
ZjM2YWM2ZmU1YzU1YjI4NzFmZTNjMDU3Y2Q4Li5iNDBiYjEzMDkwYWJmMzEyNzY0ODkxMzc2OTY3
Nzg2M2ViMGRlYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL0ZFTGlnaHRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuaApAQCAtNDUsMTAgKzQ1LDYgQEAgc3RydWN0IEZFTGln
aHRpbmdQYWludGluZ0RhdGFGb3JOZW9uOwogY2xhc3MgRkVMaWdodGluZyA6IHB1YmxpYyBGaWx0
ZXJFZmZlY3QgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUFwcGx5U29mdHdh
cmUoKTsKLSNpZiBVU0UoU0tJQSkKLSAgICB2aXJ0dWFsIFNrSW1hZ2VGaWx0ZXIqIGNyZWF0ZUlt
YWdlRmlsdGVyKFNraWFJbWFnZUZpbHRlckJ1aWxkZXIqKTsKLSAgICB2aXJ0dWFsIGJvb2wgcGxh
dGZvcm1BcHBseVNraWEoKTsKLSNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIGRldGVybWluZUFi
c29sdXRlUGFpbnRSZWN0KCkgeyBzZXRBYnNvbHV0ZVBhaW50UmVjdChlbmNsb3NpbmdJbnRSZWN0
KG1heEVmZmVjdFJlY3QoKSkpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5oCmluZGV4IGIzOGU2NzNjMzgyMjJj
NjRiN2VkZjgzMzY4OWRlYzYzMDcwY2FmZWQuLjA0YTc3ZjU0NjhhYjhjYzA0NTU5NjIzMjE0OTYz
NjI4OTExY2ZjNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaApAQCAtNDcsMTEgKzQ3LDYgQEAgcHVibGljOgog
ICAgIGJvb2wgc2V0UmFkaXVzWShmbG9hdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1B
cHBseVNvZnR3YXJlKCk7Ci0jaWYgVVNFKFNLSUEpCi0gICAgdmlydHVhbCBib29sIHBsYXRmb3Jt
QXBwbHlTa2lhKCk7Ci0gICAgdmlydHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVhdGVJbWFnZUZpbHRl
cihTa2lhSW1hZ2VGaWx0ZXJCdWlsZGVyKik7Ci0KLSNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBk
dW1wKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0ZXJtaW5lQWJzb2x1dGVQYWludFJlY3QoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVP
ZmZzZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVPZmZz
ZXQuaAppbmRleCBjMmE0ZmE1ZTNmOGFkOTBiNmEzZGQ3ZjE3MjZjZGNlYjgyNjQyNzZkLi5lNzVm
ZWJkOWM3ZTY3ZGU1MzFhYTFhNDFiMDcyMTEyMjI5NTlkZmNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFT2Zmc2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU9mZnNldC5oCkBAIC00NSwxMCAr
NDUsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oVGV4dFN0cmVhbSYsIGludCBpbmRlbnRpb24pIGNvbnN0OwogCi0jaWYgVVNFKFNL
SUEpCi0gICAgdmlydHVhbCBTa0ltYWdlRmlsdGVyKiBjcmVhdGVJbWFnZUZpbHRlcihTa2lhSW1h
Z2VGaWx0ZXJCdWlsZGVyKik7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBGRU9mZnNldChGaWx0
ZXIqLCBmbG9hdCBkeCwgZmxvYXQgZHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5jcHAKaW5kZXggZjc4ZGQx
ZjY2YmRiMTRiZGFlZThlODlkMGUzZWIzMDMxMDc4MWZiNy4uNWRkMDY1ZDk4ZGE3Yzc5ZjVjOWI3
YjE3OThmZDAwMTE3YjNhN2NiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmNwcApAQCAtMTQ2LDEwICsxNDYs
NiBAQCB2b2lkIEZpbHRlckVmZmVjdDo6YXBwbHkoKQogICAgIGlmIChwbGF0Zm9ybUFwcGx5T3Bl
bkNMKCkpCiAgICAgICAgIHJldHVybjsKICNlbmRpZgotI2lmIFVTRShTS0lBKQotICAgIGlmIChw
bGF0Zm9ybUFwcGx5U2tpYSgpKQotICAgICAgICByZXR1cm47Ci0jZW5kaWYKICAgICBwbGF0Zm9y
bUFwcGx5U29mdHdhcmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0LmgKaW5kZXggYTdlYTU3OWIxYjA4ZTZl
NTM3ZWQzYWY0NmE0NjA4OGNiYjE0YjlmMy4uMjk2NDYxZjlmMTk3NGI4ODljMjNmZDgyMzZhZjg2
N2FkNTJlY2FjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GaWx0ZXJFZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdC5oCkBAIC0zOSwxMCArMzksNiBAQAogCiBzdGF0aWMg
Y29uc3QgZmxvYXQga01heEZpbHRlclNpemUgPSA1MDAwLjBmOwogCi0jaWYgVVNFKFNLSUEpCi1j
bGFzcyBTa0ltYWdlRmlsdGVyOwotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgRmlsdGVyOwpAQCAtNTAsMTAgKzQ2LDYgQEAgY2xhc3MgRmlsdGVyRWZmZWN0OwogY2xhc3Mg
SW1hZ2VCdWZmZXI7CiBjbGFzcyBUZXh0U3RyZWFtOwogCi0jaWYgVVNFKFNLSUEpCi1jbGFzcyBT
a2lhSW1hZ2VGaWx0ZXJCdWlsZGVyOwotI2VuZGlmCi0KIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxG
aWx0ZXJFZmZlY3Q+ID4gRmlsdGVyRWZmZWN0VmVjdG9yOwogCiBlbnVtIEZpbHRlckVmZmVjdFR5
cGUgewpAQCAtMTI2LDEwICsxMTgsNiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKE9QRU5DTCkKICAg
ICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1BcHBseU9wZW5DTCgpOwogI2VuZGlmCi0jaWYgVVNFKFNL
SUEpCi0gICAgdmlydHVhbCBib29sIHBsYXRmb3JtQXBwbHlTa2lhKCkgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICB2aXJ0dWFsIFNrSW1hZ2VGaWx0ZXIqIGNyZWF0ZUltYWdlRmlsdGVyKFNraWFJbWFn
ZUZpbHRlckJ1aWxkZXIqKSB7IHJldHVybiAwOyB9Ci0jZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQg
ZHVtcCgpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRlcm1pbmVBYnNvbHV0ZVBhaW50UmVj
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmgKaW5kZXggMDdkZjcyNjM2NzQ5YmU5MmFhYmI4
NDM0YTJjZmEyNDhhNjhiNWIwMS4uZDhmMzIzYjRmMTY1NDMyZTc4YjU4NDcwNWM4MzFmYjExNzNl
MWJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9BZmZpbmVUcmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5oCkBAIC0zNiw4ICszNiw2IEBAIHR5cGVk
ZWYgc3RydWN0IENHQWZmaW5lVHJhbnNmb3JtIENHQWZmaW5lVHJhbnNmb3JtOwogI2luY2x1ZGUg
PGNhaXJvLmg+CiAjZWxpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRVHJhbnNmb3JtPgotI2Vs
aWYgVVNFKFNLSUEpCi0jaW5jbHVkZSA8U2tNYXRyaXguaD4KICNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC0xNzIsOCArMTcwLDYgQEAgcHVibGljOgogICAgIG9wZXJhdG9yIGNhaXJv
X21hdHJpeF90KCkgY29uc3Q7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBvcGVyYXRvciBRVHJh
bnNmb3JtKCkgY29uc3Q7Ci0jZWxpZiBVU0UoU0tJQSkKLSAgICBvcGVyYXRvciBTa01hdHJpeCgp
IGNvbnN0OwogI2VuZGlmCiAKICAgICBzdGF0aWMgQWZmaW5lVHJhbnNmb3JtIHRyYW5zbGF0aW9u
KGRvdWJsZSB4LCBkb3VibGUgeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaApp
bmRleCA0ZjVhNjhhZmQzMWM2YTI4NjI0ZDIzMjk0NzYyOWQyMTNjMTU1M2M4Li4wMzdjMDFlODc5
NDI4M2QwNzhlMzEyMDdhYTgyZmE4ZmUzMDg4M2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1h
dGlvbk1hdHJpeC5oCkBAIC00NSw4ICs0NSw2IEBAIHR5cGVkZWYgc3RydWN0IENHQWZmaW5lVHJh
bnNmb3JtIENHQWZmaW5lVHJhbnNmb3JtOwogI2VsaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSA8
UU1hdHJpeDR4ND4KICNpbmNsdWRlIDxRVHJhbnNmb3JtPgotI2VsaWYgVVNFKFNLSUEpCi0jaW5j
bHVkZSA8U2tNYXRyaXguaD4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZP
Uk0oR1RLKSAmJiBPUyhXSU5ET1dTKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkK
QEAgLTM0OCw4ICszNDYsNiBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBvcGVy
YXRvciBRVHJhbnNmb3JtKCkgY29uc3Q7CiAgICAgb3BlcmF0b3IgUU1hdHJpeDR4NCgpIGNvbnN0
OwotI2VsaWYgVVNFKFNLSUEpCi0gICAgb3BlcmF0b3IgU2tNYXRyaXgoKSBjb25zdDsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0oR1RLKSAmJiBPUyhXSU5ET1dTKSkg
fHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCmluZGV4IDdjNDJm
MWIzZGQyNTY4Mjg3ZWNmZDkxYmUzMzRlMzBhYWJkOGU3ODcuLmI5ZDNjYjU4OGNmMTc4OGUwMTA2
YTQwYzVlNWU2NTI4ODBhMTcxNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcApAQCAtMTM4LDggKzEzOCw2IEBA
IEltYWdlRGVjb2RlciogSW1hZ2VEZWNvZGVyOjpjcmVhdGUoY29uc3QgU2hhcmVkQnVmZmVyJiBk
YXRhLCBJbWFnZVNvdXJjZTo6QWxwaGFPCiAgICAgcmV0dXJuIDA7CiB9CiAKLSNpZiAhVVNFKFNL
SUEpCi0KIEltYWdlRnJhbWU6OkltYWdlRnJhbWUoKQogICAgIDogbV9oYXNBbHBoYShmYWxzZSkK
ICAgICAsIG1fc3RhdHVzKEZyYW1lRW1wdHkpCkBAIC0yMjYsOCArMjI0LDYgQEAgdm9pZCBJbWFn
ZUZyYW1lOjpzZXRTdGF0dXMoRnJhbWVTdGF0dXMgc3RhdHVzKQogICAgIG1fc3RhdHVzID0gc3Rh
dHVzOwogfQogCi0jZW5kaWYKLQogbmFtZXNwYWNlIHsKIAogZW51bSBNYXRjaFR5cGUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNv
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29k
ZXIuaAppbmRleCBhYjYxZGY5MTdiMDJhMjc4MmI1MDljMTdmN2Y4OTY1MWNkYjQ4YjgwLi5hMzJm
OGM5MDIxY2EzMTdjYTQzYjQ1YWQ2ZDFmZjM0MzYyZDI0NDcyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaApAQCAtMzgs
MTEgKzM4LDYgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKLSNpZiBVU0UoU0tJQSkKLSNpbmNsdWRlICJOYXRpdmVJbWFnZVNraWEu
aCIKLSNpbmNsdWRlICJTa0NvbG9yUHJpdi5oIgotI2VuZGlmCi0KICNpZiBVU0UoUUNNU0xJQikK
ICNpbmNsdWRlICJxY21zLmgiCiAjaWYgT1MoREFSV0lOKQpAQCAtNjksMTEgKzY0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgRGlzcG9zZU92ZXJ3cml0ZVByZXZpb3VzICAv
LyBDbGVhciBmcmFtZSB0byBwcmV2aW91cyBmcmFtZWJ1ZmZlcgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAvLyBjb250ZW50cwogICAgICAgICB9OwotI2lmIFVTRShTS0lB
KQotICAgICAgICB0eXBlZGVmIHVpbnQzMl90IFBpeGVsRGF0YTsKLSNlbHNlCiAgICAgICAgIHR5
cGVkZWYgdW5zaWduZWQgUGl4ZWxEYXRhOwotI2VuZGlmCiAKICAgICAgICAgSW1hZ2VGcmFtZSgp
OwogCkBAIC0xMzksMTEgKzEzMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBp
bmxpbmUgUGl4ZWxEYXRhKiBnZXRBZGRyKGludCB4LCBpbnQgeSkKICAgICAgICAgewotI2lmIFVT
RShTS0lBKQotICAgICAgICAgICAgcmV0dXJuIG1fYml0bWFwLT5iaXRtYXAoKS5nZXRBZGRyMzIo
eCwgeSk7Ci0jZWxzZQogICAgICAgICAgICAgcmV0dXJuIG1fYnl0ZXMgKyAoeSAqIHdpZHRoKCkp
ICsgeDsKLSNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgLy8gVXNlIGZpeCBwb2ludCBtdWx0
aXBsaWVyIGluc3RlYWQgb2YgaW50ZWdlciBkaXZpc2lvbiBvciBmbG9hdGluZyBwb2ludCBtYXRo
LgpAQCAtMTY5LDQ0ICsxNTYsMjUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAg
ICAgIGcgPSBmaXhQb2ludFVuc2lnbmVkTXVsdGlwbHkoZywgYWxwaGFNdWx0KTsKICAgICAgICAg
ICAgICAgICBiID0gZml4UG9pbnRVbnNpZ25lZE11bHRpcGx5KGIsIGFscGhhTXVsdCk7CiAgICAg
ICAgICAgICB9Ci0jaWYgVVNFKFNLSUEpCi0gICAgICAgICAgICAvLyBDYWxsIHRoZSAiTm9DaGVj
ayIgdmVyc2lvbiBzaW5jZSB3ZSBtYXkgZGVsaWJlcmF0ZWx5IHBhc3Mgbm9uLXByZW11bHRpcGxp
ZWQKLSAgICAgICAgICAgIC8vIHZhbHVlcywgYW5kIHdlIGRvbid0IHdhbnQgYW4gYXNzZXJ0Lgot
ICAgICAgICAgICAgKmRlc3QgPSBTa1BhY2tBUkdCMzJOb0NoZWNrKGEsIHIsIGcsIGIpOwotI2Vs
c2UKICAgICAgICAgICAgICpkZXN0ID0gKGEgPDwgMjQgfCByIDw8IDE2IHwgZyA8PCA4IHwgYik7
Ci0jZW5kaWYKICAgICAgICAgfQogCiAgICAgcHJpdmF0ZToKICAgICAgICAgaW50IHdpZHRoKCkg
Y29uc3QKICAgICAgICAgewotI2lmIFVTRShTS0lBKQotICAgICAgICAgICAgcmV0dXJuIG1fYml0
bWFwLT5iaXRtYXAoKS53aWR0aCgpOwotI2Vsc2UKICAgICAgICAgICAgIHJldHVybiBtX3NpemUu
d2lkdGgoKTsKLSNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgaW50IGhlaWdodCgpIGNvbnN0
CiAgICAgICAgIHsKLSNpZiBVU0UoU0tJQSkKLSAgICAgICAgICAgIHJldHVybiBtX2JpdG1hcC0+
Yml0bWFwKCkuaGVpZ2h0KCk7Ci0jZWxzZQogICAgICAgICAgICAgcmV0dXJuIG1fc2l6ZS5oZWln
aHQoKTsKLSNlbmRpZgogICAgICAgICB9CiAKLSNpZiBVU0UoU0tJQSkKLSAgICAgICAgUmVmUHRy
PE5hdGl2ZUltYWdlU2tpYT4gbV9iaXRtYXA7Ci0gICAgICAgIFNrQml0bWFwOjpBbGxvY2F0b3Iq
IG1fYWxsb2NhdG9yOwotI2Vsc2UKICAgICAgICAgVmVjdG9yPFBpeGVsRGF0YT4gbV9iYWNraW5n
U3RvcmU7CiAgICAgICAgIFBpeGVsRGF0YSogbV9ieXRlczsgLy8gVGhlIG1lbW9yeSBpcyBiYWNr
ZWQgYnkgbV9iYWNraW5nU3RvcmUuCiAgICAgICAgIEludFNpemUgbV9zaXplOwogICAgICAgICAv
LyBGSVhNRTogRG8gd2UgbmVlZCBtX2NvbG9yUHJvZmlsZSBhbnltb3JlPwogICAgICAgICBDb2xv
clByb2ZpbGUgbV9jb2xvclByb2ZpbGU7Ci0jZW5kaWYKICAgICAgICAgYm9vbCBtX2hhc0FscGhh
OwogICAgICAgICBJbnRSZWN0IG1fb3JpZ2luYWxGcmFtZVJlY3Q7IC8vIFRoaXMgd2lsbCBhbHdh
eXMganVzdCBiZSB0aGUgZW50aXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLy8gYnVmZmVyIGV4Y2VwdCBmb3IgR0lGIGZyYW1lcyB3aG9zZQpAQCAtMzkyLDMyICszNjAs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIGFuZCByZXR1cm5zIHRydWUuIE90
aGVyd2lzZSByZXR1cm5zIGZhbHNlLgogICAgICAgICB2aXJ0dWFsIGJvb2wgaG90U3BvdChJbnRQ
b2ludCYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSNpZiBVU0UoU0tJQSkKLSAgICAgICAg
dmlydHVhbCB2b2lkIHNldE1lbW9yeUFsbG9jYXRvcihTa0JpdG1hcDo6QWxsb2NhdG9yKiBhbGxv
Y2F0b3IpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiB0aGlzIGRvZXNuJ3Qgd29y
ayBmb3IgaW1hZ2VzIHdpdGggbXVsdGlwbGUgZnJhbWVzLgotICAgICAgICAgICAgaWYgKG1fZnJh
bWVCdWZmZXJDYWNoZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgbV9mcmFtZUJ1ZmZlckNh
Y2hlLnJlc2l6ZSgxKTsKLSAgICAgICAgICAgIG1fZnJhbWVCdWZmZXJDYWNoZVswXS5zZXRNZW1v
cnlBbGxvY2F0b3IoYWxsb2NhdG9yKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZpcnR1YWwgYm9v
bCBsb2NrRnJhbWVCdWZmZXJzKCkKLSAgICAgICAgewotICAgICAgICAgICAgYm9vbCByZXQgPSB0
cnVlOwotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZnJhbWVCdWZmZXJD
YWNoZS5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgICAgIGNvbnN0IFNrQml0bWFwJiBiaXRt
YXAgPSBtX2ZyYW1lQnVmZmVyQ2FjaGVbaV0uZ2V0U2tCaXRtYXAoKTsKLSAgICAgICAgICAgICAg
ICBiaXRtYXAubG9ja1BpeGVscygpOwotICAgICAgICAgICAgICAgIHJldCA9IHJldCAmJiBiaXRt
YXAuZ2V0UGl4ZWxzKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1cm4gcmV0Owot
ICAgICAgICB9Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHVubG9ja0ZyYW1lQnVmZmVycygpCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2ZyYW1lQnVm
ZmVyQ2FjaGUuc2l6ZSgpOyArK2kpCi0gICAgICAgICAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hl
W2ldLmdldFNrQml0bWFwKCkudW5sb2NrUGl4ZWxzKCk7Ci0gICAgICAgIH0KLSNlbmRpZgogICAg
IHByb3RlY3RlZDoKICAgICAgICAgdm9pZCBwcmVwYXJlU2NhbGVEYXRhSWZOZWNlc3NhcnkoKTsK
ICAgICAgICAgaW50IHVwcGVyQm91bmRTY2FsZWRYKGludCBvcmlnWCwgaW50IHNlYXJjaFN0YXJ0
ID0gMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvanBlZy9KUEVHSW1hZ2VEZWNvZGVyLmNwcAppbmRleCBhOTc3MmZjMDhkOTc4
Y2IwMjZhYjc4OGYxNGZkMzUyZDNlMDRkNWRjLi5kMTVkY2UyZGFkOGFmYTczMGM3NDYwODI4ZmRm
NDM0MmEyNWIyMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9qcGVnL0pQRUdJbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL2pwZWcvSlBFR0ltYWdlRGVjb2Rlci5jcHAKQEAgLTYwLDEx
ICs2MCw3IEBAIGV4dGVybiAiQyIgewogCiAjaWYgZGVmaW5lZChKQ1NfQUxQSEFfRVhURU5TSU9O
UykgJiYgQVNTVU1FX0xJVFRMRV9FTkRJQU4KICNkZWZpbmUgVFVSQk9fSlBFR19SR0JfU1dJWlpM
RQotI2lmIFVTRShTS0lBKSAmJiAoIVNLX1IzMl9TSElGVCAmJiBTS19HMzJfU0hJRlQgPT0gOCAm
JiBTS19CMzJfU0hJRlQgPT0gMTYpCi1pbmxpbmUgSl9DT0xPUl9TUEFDRSByZ2JPdXRwdXRDb2xv
clNwYWNlKCkgeyByZXR1cm4gSkNTX0VYVF9SR0JBOyB9Ci0jZWxzZQogaW5saW5lIEpfQ09MT1Jf
U1BBQ0UgcmdiT3V0cHV0Q29sb3JTcGFjZSgpIHsgcmV0dXJuIEpDU19FWFRfQkdSQTsgfQotI2Vu
ZGlmCiBpbmxpbmUgYm9vbCB0dXJib1N3aXp6bGVkKEpfQ09MT1JfU1BBQ0UgY29sb3JTcGFjZSkg
eyByZXR1cm4gY29sb3JTcGFjZSA9PSBKQ1NfRVhUX1JHQkEgfHwgY29sb3JTcGFjZSA9PSBKQ1Nf
RVhUX0JHUkE7IH0KIGlubGluZSBib29sIGNvbG9yU3BhY2VIYXNBbHBoYShKX0NPTE9SX1NQQUNF
IGNvbG9yU3BhY2UpIHsgcmV0dXJuIHR1cmJvU3dpenpsZWQoY29sb3JTcGFjZSk7IH0KICNlbHNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy93ZWJw
L1dFQlBJbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvd2VicC9XRUJQSW1hZ2VEZWNvZGVyLmNwcAppbmRleCBjZTg1ODYzMGRjYTQ3ZjZlYmEz
OWFkODg4YzQ1N2ZmMWM2Yjk3YjQ0Li5kMDBlYjVkY2QwMDkzMjIyOGU1MWM0MWExM2Q5MjQ2OGRh
YmI4YTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy93ZWJwL1dFQlBJbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2ltYWdlLWRlY29kZXJzL3dlYnAvV0VCUEltYWdlRGVjb2Rlci5jcHAKQEAgLTQ5LDggKzQ5LDYg
QEAKIAogI2lmIENQVShCSUdfRU5ESUFOKSB8fCBDUFUoTUlERExFX0VORElBTikKIGlubGluZSBX
RUJQX0NTUF9NT0RFIG91dHB1dE1vZGUoYm9vbCBoYXNBbHBoYSkgeyByZXR1cm4gaGFzQWxwaGEg
PyBNT0RFX3JnYkEgOiBNT0RFX1JHQkE7IH0KLSNlbGlmIFVTRShTS0lBKSAmJiBTS19CMzJfU0hJ
RlQKLWlubGluZSBXRUJQX0NTUF9NT0RFIG91dHB1dE1vZGUoYm9vbCBoYXNBbHBoYSkgeyByZXR1
cm4gaGFzQWxwaGEgPyBNT0RFX3JnYkEgOiBNT0RFX1JHQkE7IH0KICNlbHNlIC8vIExJVFRMRV9F
TkRJQU4sIG91dHB1dCBCR1JBIHBpeGVscy4KIGlubGluZSBXRUJQX0NTUF9NT0RFIG91dHB1dE1v
ZGUoYm9vbCBoYXNBbHBoYSkgeyByZXR1cm4gaGFzQWxwaGEgPyBNT0RFX2JnckEgOiBNT0RFX0JH
UkE7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0xv
Y2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oCmluZGV4IDgyNGYyZmY4ZDM0OWZkZTBiOTMy
Yjk2MDhlZDc1NGJhYjZhZWRlMDkuLjA2Njc2YzgyZWM1MDE4Y2QzZjk5MTBlNDYwMjM4MWM4MWI4
NDllZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJl
bnRHcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTG9j
YWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgKQEAgLTIwLDEwICsyMCw2IEBACiAjaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKLSNpZiBV
U0UoU0tJQSkKLSNpbmNsdWRlICJza2lhL2V4dC9za2lhX3V0aWxzX21hYy5oIgotI2VuZGlmCi0K
IE9CSkNfQ0xBU1MgTlNHcmFwaGljc0NvbnRleHQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQwLDM0ICszNiwxOSBAQCBwcml2YXRlOgogICAgIEdyYXBoaWNzQ29udGV4dCogbV9zYXZlZEdy
YXBoaWNzQ29udGV4dDsKICAgICBOU0dyYXBoaWNzQ29udGV4dCogbV9zYXZlZE5TR3JhcGhpY3ND
b250ZXh0OwogICAgIGJvb2wgbV9kaWRTZXRHcmFwaGljc0NvbnRleHQ7Ci0jaWYgVVNFKFNLSUEp
Ci0gICAgZ2Z4OjpTa2lhQml0TG9ja2VyIG1fc2tpYUJpdExvY2tlcjsKLSNlbmRpZgogfTsKIAog
Y2xhc3MgQ29udGV4dENvbnRhaW5lciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29udGV4
dENvbnRhaW5lcik7CiBwdWJsaWM6Ci0jaWYgVVNFKFNLSUEpCi0gICAgQ29udGV4dENvbnRhaW5l
cihHcmFwaGljc0NvbnRleHQqKTsKLSAgICAKLSAgICAvLyBUaGlzIHN5bmNocm9uaXplcyB0aGUg
Q0dDb250ZXh0IHRvIHJlZmxlY3QgdGhlIGN1cnJlbnQgU2tDYW52YXMgc3RhdGUuCi0gICAgLy8g
VGhlIGltcGxlbWVudGF0aW9uIG1heSBub3QgcmV0dXJuIHRoZSBzYW1lIENHQ29udGV4dCBlYWNo
IHRpbWUuCi0gICAgQ0dDb250ZXh0UmVmIGNvbnRleHQoKSB7IHJldHVybiBtX3NraWFCaXRMb2Nr
ZXIuY2dDb250ZXh0KCk7IH0KLSNlbHNlCiAgICAgQ29udGV4dENvbnRhaW5lcihHcmFwaGljc0Nv
bnRleHQqIGdyYXBoaWNzQ29udGV4dCkKICAgICAgICAgOiBtX2dyYXBoaWNzQ29udGV4dChncmFw
aGljc0NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpKQogICAgIHsKICAgICB9CiAKICAgICBDR0Nv
bnRleHRSZWYgY29udGV4dCgpIHsgcmV0dXJuIG1fZ3JhcGhpY3NDb250ZXh0OyB9Ci0jZW5kaWYK
IHByaXZhdGU6Ci0jaWYgVVNFKFNLSUEpCi0gICAgZ2Z4OjpTa2lhQml0TG9ja2VyIG1fc2tpYUJp
dExvY2tlcjsKLSNlbHNlCiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqIG1fZ3JhcGhpY3ND
b250ZXh0OwotI2VuZGlmCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbQppbmRleCBmMDMzZGYz
MmMxODk4MzVhYzM2ZWZiNTM1YjVjY2YyZjRmNmM1YmE3Li43ZDJmNmZmZjRlMDRjZGJmNWZmN2Iy
MWFmZDkxMjU1MTBiYWI5Yzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0KQEAgLTIyLDE4ICsyMiwx
MCBAQAogCiAjaW5jbHVkZSA8QXBwS2l0L05TR3JhcGhpY3NDb250ZXh0Lmg+CiAKLSNpZiBVU0Uo
U0tJQSkKLSNpbmNsdWRlICJwbGF0Zm9ybV9jYW52YXMuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUNv
bnRleHRTa2lhLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMb2NhbEN1cnJl
bnRHcmFwaGljc0NvbnRleHQ6OkxvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dChHcmFwaGljc0Nv
bnRleHQqIGdyYXBoaWNzQ29udGV4dCkKICAgICA6IG1fZGlkU2V0R3JhcGhpY3NDb250ZXh0KGZh
bHNlKQotI2lmIFVTRShTS0lBKQotICAgICwgbV9za2lhQml0TG9ja2VyKGdyYXBoaWNzQ29udGV4
dC0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpKQotI2VuZGlmCiB7CiAgICAgbV9zYXZlZEdy
YXBoaWNzQ29udGV4dCA9IGdyYXBoaWNzQ29udGV4dDsKICAgICBncmFwaGljc0NvbnRleHQtPnNh
dmUoKTsKQEAgLTYyLDIxICs1NCw4IEBAIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dDo6fkxv
Y2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dCgpCiAKIENHQ29udGV4dFJlZiBMb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQ6OmNnQ29udGV4dCgpCiB7Ci0jaWYgVVNFKFNLSUEpCi0gICAgLy8gVGhp
cyBzeW5jaHJvbml6ZXMgdGhlIENHQ29udGV4dCB0byByZWZsZWN0IHRoZSBjdXJyZW50IFNrQ2Fu
dmFzIHN0YXRlLgotICAgIC8vIFRoZSBpbXBsZW1lbnRhdGlvbiBtYXkgbm90IHJldHVybiB0aGUg
c2FtZSBDR0NvbnRleHQgZWFjaCB0aW1lLgotICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBt
X3NraWFCaXRMb2NrZXIuY2dDb250ZXh0KCk7Ci0jZWxzZQogICAgIENHQ29udGV4dFJlZiBjZ0Nv
bnRleHQgPSBtX3NhdmVkR3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKLSNlbmRp
ZgogICAgIHJldHVybiBjZ0NvbnRleHQ7CiB9CiAKLSNpZiBVU0UoU0tJQSkKLUNvbnRleHRDb250
YWluZXI6OkNvbnRleHRDb250YWluZXIoR3JhcGhpY3NDb250ZXh0KiBncmFwaGljc0NvbnRleHQp
IAotICAgIDogbV9za2lhQml0TG9ja2VyKGdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCktPmNhbnZhcygpKQotewotfQotI2VuZGlmCi0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VTb2xpZENvbG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VTb2xpZENvbG9yLmNwcApp
bmRleCBhODFjMzY5OGRlYzMxODNjYzliZjkzMTA3OTY2MGQyNWIxODc2YzZlLi5jYTVjYWQ0YzUw
MDMxOTlmOTRlZGU2NjEzN2MyZmMyYWUwNmY3ZWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlU29saWRDb2xvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZVNvbGlkQ29sb3IuY3Bw
CkBAIC0yOSwxMCArMjksNiBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAi
U1ZHUmVuZGVyU3VwcG9ydC5oIgogCi0jaWYgVVNFKFNLSUEpCi0jaW5jbHVkZSAiUGxhdGZvcm1D
b250ZXh0U2tpYS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVuZGVyU1ZH
UmVzb3VyY2VUeXBlIFJlbmRlclNWR1Jlc291cmNlU29saWRDb2xvcjo6c19yZXNvdXJjZVR5cGUg
PSBTb2xpZENvbG9yUmVzb3VyY2VUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJ
bWFnZS5jcHAKaW5kZXggOWY2YWNjN2NmZTA4OGVhMzYwZDRkMzk2ZTEyZGJhMmE4MmYzZGE4Yi4u
ZDViOGQzN2E0NjI0N2FiOTZjNjQ1NDY2NDI4NzA4OTU0ZjQwMzRhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBAIC0xNDIsNyArMTQyLDcgQEAgdm9pZCBTVkdJ
bWFnZTo6ZHJhd0ZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZs
b2F0U2l6ZSBjb250YWkKICAgICBzZXRJbWFnZU9ic2VydmVyKG9ic2VydmVyKTsKIH0KIAotI2lm
IFVTRShTS0lBKSB8fCBVU0UoQ0FJUk8pCisjaWYgVVNFKENBSVJPKQogLy8gUGFzc2VzIG93bmVy
c2hpcCBvZiB0aGUgbmF0aXZlIGltYWdlIHRvIHRoZSBjYWxsZXIgc28gUGFzc05hdGl2ZUltYWdl
UHRyIG5lZWRzCiAvLyB0byBiZSBhIHNtYXJ0IHBvaW50ZXIgdHlwZS4KIFBhc3NOYXRpdmVJbWFn
ZVB0ciBTVkdJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAppbmRleCAxNDNmMGE2ZDdhZjBlOWMwMTFlZjM2MzYyMDcx
MTg1OGQ3ZGM5N2I3Li42NjBhMzdiOWQ0NWIwZjQ3NDY4ZGJlOTJlMzkyYzcwNDc5YWRmMWI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaApAQCAtNjAsNyArNjAsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN0b3BBbmltYXRpb24oKSBPVkVSUklERTsKICAgICB2
aXJ0dWFsIHZvaWQgcmVzZXRBbmltYXRpb24oKSBPVkVSUklERTsKIAotI2lmIFVTRShTS0lBKSB8
fCBVU0UoQ0FJUk8pCisjaWYgVVNFKENBSVJPKQogICAgIHZpcnR1YWwgUGFzc05hdGl2ZUltYWdl
UHRyIG5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkgT1ZFUlJJREU7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggN2RhNDA3NWI1NTkxNGM5
NDQyYTU2NWY0YTYxYzQyMzUyYzc1ZDAyMS4uYTBiYjJhMmRiMDhkMGI3MWFhNGMwNzU2NDA0ODdi
MDkyMzc2N2E2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQ
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBA
IC0xNTYsMTAgKzE1Niw2IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJy
eS5oIgogI2VuZGlmCiAKLSNpZiBVU0UoU0tJQSkKLSNpbmNsdWRlICJQbGF0Zm9ybUNvbnRleHRT
a2lhLmgiCi0jZW5kaWYKLQogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICNpbmNs
dWRlICJGcmFtZUxheWVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VDb21wb3NpdG9yQ2xpZW50Lmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvQWJv
dXREYXRhVXNlRmVhdHVyZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvQWJvdXREYXRhVXNlRmVhdHVyZXMuaW4KaW5kZXggZDVlZTFhYmQwYTlmMjRlNGVjY2Yw
OGY0ZDNlNTQ4MzY0ZjdjZDY2Zi4uMTNmOWI1OTJiZTdjYWU3NWY3ZmY0MDJiNWUxM2ZjNmEzMDAy
Y2E1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0Fib3V0RGF0YVVzZUZlYXR1cmVzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9BYm91dERhdGFVc2VGZWF0dXJlcy5pbgpAQCAtOTAsOSArOTAsNiBAQCBS
VExfU0NST0xMQkFSCiBTQUZBUklfVEhFTUUKIFNDUk9MTEJBUl9QQUlOVEVSCiBTRUNVUklUWV9G
UkFNRVdPUksKLVNLSUEKLVNLSUFfT05fTUFDX0NIUk9NSVVNCi1TS0lBX1RFWFQKIFNPVVAKIFNU
T1JBR0VfU1RSQVRFR0lFUwogVEVYTUFQX09QRU5HTF9FU18yCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjM3NDVmNGQ4ODVhYzQ1Nzk4MDFiODFm
NzVmNGYwZDc4NDNlODAyMS4uZDk1MTI4NGNmNjk2MjBiYmQ1YmY3OWNkZDA4ZDBhN2E0YTc2ZTk4
NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDEzLTA0LTI1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIHJlbWFpbmluZyBTa2lhICNpZmRlZnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDg4NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEJlbmphbWluIFBvdWxhaW4uCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L1BpeGVsRHVtcFN1cHBvcnRCbGFja0JlcnJ5LmNwcDoKKyAgICAg
ICAgKGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyk6IFJlbW92ZSBTa2lhICNpZmRlZiBy
ZWZlcmVuY2VzLgorCiAyMDEzLTA0LTI1ICBYYXZpZXIgQ2FzdGFubyAgPHhjYXN0YW5ob0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIFRvb2xzL2d0ay9pbnN0YWxsLWRlcGVuZGVuY2llcyBh
ZGRlZCByYWdlbCBkZXBlbmRlbmN5CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L1BpeGVsRHVtcFN1cHBvcnRCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2JsYWNrYmVycnkvUGl4ZWxEdW1wU3VwcG9ydEJsYWNrQmVycnkuY3BwCmluZGV4IDM3
ZDk1ZmYwNmZjM2E5YmQ4NGVjMjc2YjQ4NzY0NmU4ODNkOTZiY2EuLjgyYjQ0OGQxM2UyN2E5NWFk
ZDAwNTU1NDM3ZmYxMzQxMTI1NzE0MTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2JsYWNrYmVycnkvUGl4ZWxEdW1wU3VwcG9ydEJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvUGl4ZWxEdW1wU3VwcG9ydEJsYWNrQmVycnkuY3BwCkBA
IC0zMiw5ICszMiw2IEBACiAjaW5jbHVkZSAiV2ViUGFnZUNsaWVudC5oIgogCiAjaW5jbHVkZSA8
QmxhY2tCZXJyeVBsYXRmb3JtV2luZG93Lmg+Ci0jaWYgVVNFKFNLSUEpCi0jaW5jbHVkZSA8U2tE
ZXZpY2UuaD4KLSNlbmRpZgogI2luY2x1ZGUgPHd0Zi9NRDUuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKQEAgLTYyLDMwICs1OSw2IEBAIFBhc3NSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3Jl
YXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3KGJvb2wgLypvbnNjcmVlbiovLCBib29sCiAgICAg
Y29uc3QgUGxhdGZvcm06OkludFNpemUmIHdpbmRvd1NpemUgPSB3aW5kb3ctPnZpZXdwb3J0U2l6
ZSgpOwogICAgIHVuc2lnbmVkIGNoYXIqIGRhdGEgPSBuZXcgdW5zaWduZWQgY2hhclt3aW5kb3dT
aXplLndpZHRoKCkgKiB3aW5kb3dTaXplLmhlaWdodCgpICogNF07CiAKLSNpZiBVU0UoU0tJQSkK
LSAgICAvLyBXZSBuZWVkIHRvIGZvcmNlIGEgc3luY2hyb25vdXMgdXBkYXRlIHRvIHRoZSB3aW5k
b3cgb3Igd2UgbWF5IGdldCBhbiBlbXB0eSBiaXRtYXAuCi0gICAgLy8gRm9yIGV4YW1wbGUsIHJ1
bm5pbmcgRFJUIHdpdGggb25lIHRlc3QgY2FzZSB0aGF0IGZpbmlzaGVzIGJlZm9yZSB0aGUgc2Ny
ZWVuIGlzIHVwZGF0ZWQuCi0gICAgd2luZG93LT5wb3N0KHdpbmRvd1JlY3QpOwotCi0gICAgU2tC
aXRtYXAgYml0bWFwOwotICAgIGJpdG1hcC5zZXRDb25maWcoU2tCaXRtYXA6OmtBUkdCXzg4ODhf
Q29uZmlnLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVpZ2h0KCkpOwotICAgIGJp
dG1hcC5hbGxvY1BpeGVscygpOwotICAgIGJpdG1hcC5lcmFzZUFSR0IoMCwgMCwgMCwgMCk7Ci0K
LSAgICBTa0NhbnZhcyBjYW52YXMoYml0bWFwKTsKLSAgICBiYWNraW5nU3RvcmUtPmRyYXdDb250
ZW50cygmY2FudmFzLCB3aW5kb3dSZWN0LCB3aW5kb3dTaXplKTsKLQotICAgIC8vIFJlYWQgdGhh
dCBTa0JpdG1hcCByYXRoZXIgdGhhbiBjaGFuZ2UgaXQuIFNvIHVzZSBmYWxzZSBvbiBhY2Nlc3NC
aXRtYXAuCi0gICAgY29uc3QgU2tCaXRtYXAmIGNvbnRlbnRzQml0bWFwID0gY2FudmFzLmdldERl
dmljZSgpLT5hY2Nlc3NCaXRtYXAoZmFsc2UvKmNoYW5nZVBpeGVscyovKTsKLSAgICBjb250ZW50
c0JpdG1hcC5sb2NrUGl4ZWxzKCk7Ci0KLSAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiB3aW5kb3dQ
aXhlbHMgPSAwOwotICAgIGlmICghY29udGVudHNCaXRtYXAuZW1wdHkoKSkgewotICAgICAgICB3
aW5kb3dQaXhlbHMgPSBzdGF0aWNfY2FzdDxjb25zdCB1bnNpZ25lZCBjaGFyKj4oY29udGVudHNC
aXRtYXAuZ2V0UGl4ZWxzKCkpOwotICAgICAgICBpZiAod2luZG93UGl4ZWxzKQotICAgICAgICAg
ICAgbWVtY3B5KGRhdGEsIHdpbmRvd1BpeGVscywgd2luZG93U2l6ZS53aWR0aCgpICogd2luZG93
U2l6ZS5oZWlnaHQoKSAqIDQpOwotICAgIH0KLSNlbHNlCiAgICAgQmxhY2tCZXJyeTo6UGxhdGZv
cm06OkdyYXBoaWNzOjpCdWZmZXIqIGJ1ZmZlciA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFw
aGljczo6Y3JlYXRlQnVmZmVyKHdpbmRvd1NpemUsIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFw
aGljczo6QWx3YXlzQmFja2VkKTsKICAgICBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6R3JhcGhpY3M6
OkRyYXdhYmxlKiBkcmF3YWJsZSA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6bG9j
a0J1ZmZlckRyYXdhYmxlKGJ1ZmZlcik7CiAgICAgaWYgKGRyYXdhYmxlKSB7CkBAIC05NSw3ICs2
OCw2IEBAIFBhc3NSZWZQdHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dEZyb21X
ZWJWaWV3KGJvb2wgLypvbnNjcmVlbiovLCBib29sCiAgICAgICAgIEJsYWNrQmVycnk6OlBsYXRm
b3JtOjpHcmFwaGljczo6cmVsZWFzZUJ1ZmZlckRyYXdhYmxlKGJ1ZmZlcik7CiAgICAgfQogICAg
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6ZGVzdHJveUJ1ZmZlcihidWZmZXIpOwot
I2VuZGlmCiAgICAgcmV0dXJuIEJpdG1hcENvbnRleHQ6OmNyZWF0ZUJ5QWRvcHRpbmdEYXRhKGRh
dGEsIHdpbmRvd1NpemUud2lkdGgoKSwgd2luZG93U2l6ZS5oZWlnaHQoKSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>