<?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>71151</bug_id>
          
          <creation_ts>2011-10-28 15:30:26 -0700</creation_ts>
          <short_desc>Rename DataTransferItems to DataTransferItemList</short_desc>
          <delta_ts>2011-10-29 16:28:04 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Cheng">dcheng</reporter>
          <assigned_to name="Daniel Cheng">dcheng</assigned_to>
          <cc>abarth</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>492725</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-10-28 15:30:26 -0700</bug_when>
    <thetext>Rename DataTransferItems to DataTransferItemList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492726</commentid>
    <comment_count>1</comment_count>
      <attachid>112922</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-10-28 15:31:09 -0700</bug_when>
    <thetext>Created attachment 112922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492727</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 15:33:38 -0700</bug_when>
    <thetext>Attachment 112922 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/dom/Clipboard.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492734</commentid>
    <comment_count>3</comment_count>
      <attachid>112922</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-28 15:43:21 -0700</bug_when>
    <thetext>Comment on attachment 112922
Patch

Attachment 112922 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10244052</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492743</commentid>
    <comment_count>4</comment_count>
      <attachid>112931</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-10-28 15:57:38 -0700</bug_when>
    <thetext>Created attachment 112931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492747</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 16:01:48 -0700</bug_when>
    <thetext>Attachment 112931 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1

Source/WebCore/dom/Clipboard.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492751</commentid>
    <comment_count>6</comment_count>
      <attachid>112931</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-10-28 16:04:09 -0700</bug_when>
    <thetext>Comment on attachment 112931
Patch

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        Rename DataTransferItems to DataTransferItemList
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=71151

Do you have a link to where this rename happened?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492760</commentid>
    <comment_count>7</comment_count>
      <attachid>112937</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-10-28 16:14:03 -0700</bug_when>
    <thetext>Created attachment 112937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492761</commentid>
    <comment_count>8</comment_count>
      <attachid>112931</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-10-28 16:14:23 -0700</bug_when>
    <thetext>Comment on attachment 112931
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:4
&gt;&gt; +        https://bugs.webkit.org/show_bug.cgi?id=71151
&gt; 
&gt; Do you have a link to where this rename happened?

Added a link to the spec with a little context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492765</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 16:16:31 -0700</bug_when>
    <thetext>Attachment 112937 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1

Source/WebCore/dom/Clipboard.h:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492768</commentid>
    <comment_count>10</comment_count>
      <attachid>112937</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-10-28 16:18:42 -0700</bug_when>
    <thetext>Comment on attachment 112937
Patch

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

Please make sure that the ews bots all compile before landing.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:1767
&gt; -		781755861365A1B00093BE2E /* DataTransferItems.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 781755851365A1B00093BE2E /* DataTransferItems.cpp */; };
&gt; +		781755861365A1B00093BE2E /* DataTransferItemList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 781755851365A1B00093BE2E /* DataTransferItemList.cpp */; };

Did you actually open these in xcode?  I think the hash will change because the filename changed . . .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492918</commentid>
    <comment_count>11</comment_count>
      <attachid>112937</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-10-29 01:18:17 -0700</bug_when>
    <thetext>Comment on attachment 112937
Patch

Attachment 112937 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/10241309</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492989</commentid>
    <comment_count>12</comment_count>
      <attachid>112937</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-10-29 15:53:41 -0700</bug_when>
    <thetext>Comment on attachment 112937
Patch

Patched it into a clean tree on Mac and it worked for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492994</commentid>
    <comment_count>13</comment_count>
      <attachid>112937</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-29 16:27:58 -0700</bug_when>
    <thetext>Comment on attachment 112937
Patch

Clearing flags on attachment: 112937

Committed r98821: &lt;http://trac.webkit.org/changeset/98821&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492995</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-29 16:28:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112922</attachid>
            <date>2011-10-28 15:31:09 -0700</date>
            <delta_ts>2011-10-28 15:57:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71151-20111028153108.patch</filename>
            <type>text/plain</type>
            <size>58690</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZWEzNDAxMDRjODkyYjEx
ZjFkMTFjODc1ODIzOTBhYTA1NjQwNDg3Li43MzBjM2RiM2Q1ZDdiMjIzZTgzY2QwYjNmMTE5MDgy
NDY2ZGJlOGQ4IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTAtMjggIERhbmll
bCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIERhdGFUcmFu
c2Zlckl0ZW1zIHRvIERhdGFUcmFuc2Zlckl0ZW1MaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6CisgICAgICAg
ICogZG9tL0NsaXBib2FyZC5pZGw6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5j
cHAuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6RGF0YVRyYW5zZmVy
SXRlbUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6Omxlbmd0
aCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6aXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZGVsZXRlSXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZCk6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1MaXN0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbXMuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0Ojp+RGF0YVRy
YW5zZmVySXRlbUxpc3QpOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGw6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNsaXBib2FyZENocm9taXVtOjppdGVtcyk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3Bw
LgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW06OkRhdGFU
cmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVy
SXRlbUxpc3RDaHJvbWl1bTo6YWRkUGFzdGVib2FyZEl0ZW0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0u
aC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDbGlwYm9hcmRRdDo6aXRlbXMpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0NsaXBib2Fy
ZFF0Lmg6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVt
c1F0LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjpEYXRhVHJhbnNm
ZXJJdGVtTGlzdFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6
OmFkZFBhc3RlYm9hcmRJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJ
dGVtTGlzdFF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRh
VHJhbnNmZXJJdGVtc1F0LmguCisKIDIwMTEtMTAtMjggIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQ29yZSBwYXJ0IG9mOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwCmluZGV4IDAzNmQ5MzFkM2ZmZGFhOTE5MmM4NGY4MjViNWIwNWRiMTM0MWU0NTMu
LmM4NWFiMWVkY2ZlYTNiM2ZiNDQ1OTNiODI3NzJiNmQyZTk2NjVhZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5jcHAKQEAgLTcxLDcgKzcxLDcgQEAKICNpbmNsdWRlICJKU0RhdGFiYXNlQ2Fs
bGJhY2suY3BwIgogI2luY2x1ZGUgIkpTRGF0YWJhc2VTeW5jLmNwcCIKICNpbmNsdWRlICJKU0Rh
dGFUcmFuc2Zlckl0ZW0uY3BwIgotI2luY2x1ZGUgIkpTRGF0YVRyYW5zZmVySXRlbXMuY3BwIgor
I2luY2x1ZGUgIkpTRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwIgogI2luY2x1ZGUgIkpTRGF0YVZp
ZXcuY3BwIgogI2luY2x1ZGUgIkpTRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHAiCiAjaW5jbHVk
ZSAiSlNEZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IGU1ZDRmMTYxNmQzMzljZWI4ZmViOThkN2ZiNTE1NTA2NjI4MGQ0YzIuLjIwZTc2
NDBkMTdlZTViN2JlZjc0OGIxMzkyMTkxN2UxOTQyN2E3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTI2LDkgKzEyNiw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIERPTVVS
TCBcCiAgICAgRE9NV2luZG93IFwKICAgICBEYXRhVHJhbnNmZXJJdGVtIFwKLSAgICBEYXRhVHJh
bnNmZXJJdGVtIFwKLSAgICBEYXRhVHJhbnNmZXJJdGVtcyBcCi0gICAgRGF0YVRyYW5zZmVySXRl
bXMgXAorICAgIERhdGFUcmFuc2Zlckl0ZW1MaXN0IFwKICAgICBEYXRhVmlldyBcCiAgICAgRGF0
YWJhc2UgXAogICAgIERhdGFiYXNlQ2FsbGJhY2sgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDU5OTYw
NDY2ODk2MzYyODM3MTVkNzhiZmUzMTE1YzQ0ZTZhYzIzMzMuLjRlNDIzNjJhOTVkYzM5MTVlY2Yx
OWE0OGI3OTY4ZDgxOTE3MjNiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTExNzEsNyArMTE3MSw3
IEBACiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ0xpc3QuaWRsJywKICAgICAgICAgICAgICdk
b20vRE9NU3RyaW5nTWFwLmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0u
aWRsJywKLSAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsJywKKyAgICAgICAg
ICAgICdkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsJywKICAgICAgICAgICAgICdkb20vRGV2
aWNlTW90aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vRGV2aWNlT3JpZW50YXRpb25F
dmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9Eb2N1bWVudC5pZGwnLApAQCAtMzIwNCw4ICsz
MjA0LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9DdXJzb3JDaHJvbWl1bS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1DaHJv
bWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtc0Nocm9taXVtLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1
bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcCcsCisgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5oJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFSZWYuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vRHJhZ0ltYWdlQ2hyb21pdW1NYWMuY3BwJywKQEAgLTUxODUsOCArNTE4NSw4IEBA
CiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ01hcC5oJywKICAgICAgICAgICAgICdkb20vRGF0
YVRyYW5zZmVySXRlbS5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmgn
LAotICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAnLAotICAgICAgICAgICAg
J2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5oJywKKyAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVy
SXRlbUxpc3QuY3BwJywKKyAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaCcs
CiAgICAgICAgICAgICAnZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuY3BwJywKICAgICAgICAgICAg
ICdkb20vRGF0YXNldERPTVN0cmluZ01hcC5oJywKICAgICAgICAgICAgICdkb20vRGVjb2RlZERh
dGFEb2N1bWVudFBhcnNlci5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagppbmRleCA0OTdjY2NlN2U0ZGJiNWU5YTRkYjM4OTczODk4M2ZhOGIzMmU3
MjgwLi5lMDBjZGM2ZDliYzRjYTg4MTBmYWFkMzM3MDc5OGJhZmEwNTViYzkzIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjY4Miw3ICsyNjgy
LDcgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChD
b25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xK
U0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCIKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNm
ZXJJdGVtTGlzdC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlvbgogCQkJCQlOYW1l
PSJEZWJ1Z3xXaW4zMiIKQEAgLTI3MzQsNyArMjczNCw3IEBACiAJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3Vy
YXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRy
YW5zZmVySXRlbXMuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJhbnNmZXJJdGVtTGlz
dC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCkBAIC00NDAxNCw3ICs0NDAxNCw3IEBA
CiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxE
YXRhVHJhbnNmZXJJdGVtcy5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YVRyYW5z
ZmVySXRlbUxpc3QuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJTmFt
ZT0iRGVidWd8V2luMzIiCkBAIC00NDA2Niw3ICs0NDA2Niw3IEBACiAJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
RGF0YVRyYW5zZmVySXRlbXMuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxEYXRhVHJhbnNm
ZXJJdGVtTGlzdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGQ5ZWZmMThi
N2U2YWQ1N2MxNzg3N2I2YWNlMTA4ZmM2OTE5ODYyYi4uYmRlZjc2OWY5ZmY3ZmI1NWYwOWQyMmRm
OGMwNjU0M2ZhZDAxNWEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc2NCw3ICsxNzY0LDcgQEAKIAkJNzdBMTdBQTcxMkYy
OEIyQTAwNEUwMkY2IC8qIEpTT0VTVmVydGV4QXJyYXlPYmplY3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc3QTE3QUEzMTJGMjhCMkEwMDRFMDJGNiAv
KiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggKi87IH07CiAJCTc3RUY2MkYzMTJGOURCNzQwMEM3
N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzdFRjYyRjExMkY5REI3NDAwQzc3QkQyIC8q
IEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgKi87IH07CiAJCTc3RUY2MkY0MTJGOURC
NzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc3RUY2MkYyMTJGOURCNzQwMEM3N0JE
MiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLzsgfTsKLQkJNzgxNzU1ODYxMzY1
QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MTc1NTg1MTM2NUExQjAwMDkzQkUyRSAvKiBE
YXRhVHJhbnNmZXJJdGVtcy5jcHAgKi87IH07CisJCTc4MTc1NTg2MTM2NUExQjAwMDkzQkUyRSAv
KiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVy
SXRlbUxpc3QuY3BwICovOyB9OwogCQk3OUFDOTIxODEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21w
b3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc5QUM5MjE2MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuY3Bw
ICovOyB9OwogCQk3OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUFDOTIx
NzEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi87IH07CiAJCTc5RjJG
NUExMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RjJGNTlFMTA5MTkzOUEwMDBEODdD
QiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCAqLzsgfTsKQEAgLTE4MjMsNyArMTgyMyw3IEBACiAJ
CTgxQTczMjYwMTIxMDE4QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBNzMyNUYxMjEwMThBNDAwRkMwRDlF
IC8qIElEQkN1cnNvci5jcHAgKi87IH07CiAJCTgxQTczMjc4MTIxMDE5RTEwMEZDMEQ5RSAvKiBJ
REJDdXJzb3JCYWNrZW5kSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODFBNzMyNzcxMjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJ
bXBsLmggKi87IH07CiAJCTgxQUM1OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJ
dGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFD
NTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oICovOyB9OwotCQk4MUFD
NTk5QTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM1OTk4MTMxNjM2RTYwMDA5QTdF
MCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5oICovOyB9OworCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3
RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtTGlzdC5oICovOyB9OwogCQk4MUFDNkMzNjEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5n
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgxQUM2QzM1MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oICovOyB9OwogCQk4
MUJFMjA5ODExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwOTMxMUY0QUI4
RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLzsgfTsKIAkJODFCRTIwOTkx
MUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDk0MTFGNEFCOEQwMDkx
NURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggKi87IH07CkBAIC04OTUzLDcgKzg5
NTMsNyBAQAogCQk3N0ExN0FBMzEyRjI4QjJBMDA0RTAyRjYgLyogSlNPRVNWZXJ0ZXhBcnJheU9i
amVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09FU1ZlcnRleEFycmF5
T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3RUY2MkYxMTJGOURCNzQw
MEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdFRjYyRjIxMkY5REI3NDAwQzc3QkQyIC8q
IEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNzgxNzU1ODUxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1z
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0
ZW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzgxNzU1ODUxMzY1QTFCMDAw
OTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzlBQzkyMTYxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25F
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NvbXBvc2l0
aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3OUFDOTIxNzEwOTk0
NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQ29tcG9zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3OUYyRjU5RTEwOTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21wb3NpdGlvbkV2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMTcsOSArOTAxNyw5IEBACiAJCTgx
QTczMjVGMTIxMDE4QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJODFBNzMyNzcxMjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1cnNvckJhY2tlbmRJbXBs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM1OTk3MTMxNjM2RTYwMDA5QTdF
MCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERhdGFUcmFuc2Zlckl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODFBQzU5
OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVt
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVt
TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNUFFODEzMTYzOTJFMDAw
OUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0
YVRyYW5zZmVySXRlbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgxQUM1QUU5
MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbXMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4MUFDNUFFOTEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBQzZDMzQxMzFDNTdDMjAwMDlBN0UwIC8qIFN0cmlu
Z0NhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHJpbmdDYWxsYmFjay5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM2QzM1MTMxQzU3RDMwMDA5QTdFMCAv
KiBTdHJpbmdDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJp
bmdDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUJFMjA5MzExRjRB
QjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjA5MjYsOSArMjA5MjYsOSBAQAogCQkJCTgxNUU2MTY2MTMy
NTg3QUEwMEI2MjJCMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmNwcCAqLywKIAkJCQk4MUFDNTk5NzEz
MTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oICovLAogCQkJCTgxQUM1QUU4MTMx
NjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmlkbCAqLywKLQkJCQk3ODE3NTU4NTEz
NjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVySXRlbXMuY3BwICovLAotCQkJCTgxQUM1OTk4
MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5oICovLAotCQkJCTgxQUM1QUU5
MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5pZGwgKi8sCisJCQkJNzgxNzU1
ODUxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLywKKwkJCQk4
MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCAqLywKKwkJ
CQk4MUFDNUFFOTEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsICov
LAogCQkJCUE4QzIyOEEwMTFENTcyMkUwMEQ1QTdEMyAvKiBEZWNvZGVkRGF0YURvY3VtZW50UGFy
c2VyLmNwcCAqLywKIAkJCQlBOEMyMjg5RjExRDU3MjJFMDBENUE3RDMgLyogRGVjb2RlZERhdGFE
b2N1bWVudFBhcnNlci5oICovLAogCQkJCTMxRkIxQTRGMTIwQTVEMDYwMERDMDJBMCAvKiBEZXZp
Y2VNb3Rpb25DbGllbnQuaCAqLywKQEAgLTIxODI5LDcgKzIxODI5LDcgQEAKIAkJCQlCQzIyNzQ2
RjBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2NDY0
MUMxMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01TdHJpbmdNYXAuaCBpbiBIZWFkZXJzICov
LAogCQkJCTgxQUM1OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggaW4g
SGVhZGVycyAqLywKLQkJCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVy
SXRlbXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQUM1OTlBMTMxNjM2RTYwMDA5QTdFMCAvKiBE
YXRhVHJhbnNmZXJJdGVtTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU5N0NDRUIxMjkzOUNC
ODAwQzVDOEZGIC8qIERhdGFWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTczMkIwQjEzNkEx
NjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIz
REI2MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKQEAg
LTI1MTM1LDcgKzI1MTM1LDcgQEAKIAkJCQkxQUQ1MUExNTBDQjU5Q0QzMDA5NTNEMTEgLyogRGF0
YWJhc2VUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2NDFEMTFEN0Y0MTYwMDY0
NTVCMCAvKiBEYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgxNUU2
MTY3MTMyNTg3QUEwMEI2MjJCMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTc4MTc1NTg2MTM2NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtcy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3ODE3NTU4NjEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5z
ZmVySXRlbUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU5N0NDRUExMjkzOUNCODAwQzVD
OEZGIC8qIERhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1NzMyQjBBMTM2QTE2MUQw
MDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNTVCM0RC
NTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DbGlwYm9hcmQuaAppbmRleCBiOGM0Njc2NTIyZWE5YzE5MDQxYTU1MzRkZTJmMGFmYjdi
M2I5OTFjLi5mOTQ3MjdhMGU5OWIwMmYwOTk5NzQ5ZmEwZDk5OGRiMGMwOTM5NTUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NsaXBib2FyZC5oCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotICAgIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1zOworICAgIGNsYXNzIERhdGFUcmFuc2Zlckl0
ZW1MaXN0OwogICAgIGNsYXNzIERyYWdEYXRhOwogICAgIGNsYXNzIEZpbGVMaXN0OwogICAgIGNs
YXNzIEZyYW1lOwpAQCAtOTgsNyArOTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IHZvaWQgc2V0RHJhZ0hhc1N0YXJ0ZWQoKSB7IG1fZHJhZ1N0YXJ0ZWQgPSB0cnVlOyB9CiAKICNp
ZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLSAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PERhdGFUcmFuc2Zlckl0ZW1zPiBpdGVtcygpID0gMDsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpID0gMDsKICNlbmRpZgogICAgICAgICAK
ICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJk
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCmluZGV4IGQ1YmIzMzExN2Q0
NDk2MmM4NWQ4ZTJjYTZlM2E3NjJiY2U3OGMzYzUuLmJiN2JiMjUyODY0MDYzM2Y2N2Q2ODhjY2E2
ZDE3Y2Q2ZTI2ZTBmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCkBAIC00Myw3ICs0Myw3
IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXREcmFnSW1hZ2UoaW4g
SFRNTEltYWdlRWxlbWVudCBpbWFnZSwgaW4gbG9uZyB4LCBpbiBsb25nIHkpCiAgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsIEVuYWJsZWRBdFJ1bnRpbWU9RGF0YVRyYW5z
ZmVySXRlbXNdIERhdGFUcmFuc2Zlckl0ZW1zIGl0ZW1zOworICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsIEVuYWJsZWRBdFJ1bnRpbWU9
RGF0YVRyYW5zZmVySXRlbXNdIERhdGFUcmFuc2Zlckl0ZW1MaXN0IGl0ZW1zOwogICAgIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI1ZmVhY2FjZjRmMjMzZmVlZmVkMzBmNDk2ODNlNzlkZjdkNzY4ZjQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwCkBAIC0w
LDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9yYXRpb24g
YW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRh
dGFUcmFuc2Zlckl0ZW1MaXN0LmgiCisKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtLmgiCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorCisjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRF
TVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGF0YVRyYW5zZmVySXRlbUxpc3Q6OkRhdGFU
cmFuc2Zlckl0ZW1MaXN0KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9hcmQsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX293bmVyKGNsaXBib2FyZCkKKyAgICAs
IG1fY29udGV4dChjb250ZXh0KQoreworfQorCitzaXplX3QgRGF0YVRyYW5zZmVySXRlbUxpc3Q6
Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09IENsaXBib2Fy
ZE51bWIpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1faXRlbXMuc2l6ZSgpOwor
fQorCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IERhdGFUcmFuc2Zlckl0ZW1MaXN0Ojpp
dGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpCit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgpID09
IENsaXBib2FyZE51bWIgfHwgaW5kZXggPj0gbGVuZ3RoKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgcmV0dXJuIG1faXRlbXNbaW5kZXhdOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1M
aXN0OjpkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkgeworICAg
ICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKGluZGV4ID49IGxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2l0ZW1z
LnJlbW92ZShpbmRleCk7Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbUxpc3Q6OmNsZWFyKCkK
K3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1faXRlbXMuY2xlYXIoKTsKKworfQorCit2b2lkIERhdGFUcmFu
c2Zlckl0ZW1MaXN0OjphZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlw
Ym9hcmRXcml0YWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gT25seSBvbmUgJ3N0cmlu
ZycgaXRlbSB3aXRoIGEgZ2l2ZW4gdHlwZSBpcyBhbGxvd2VkIGluIHRoZSBjb2xsZWN0aW9uLgor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9pdGVtcy5zaXplKCk7ICsraSkgeworICAgICAg
ICBpZiAobV9pdGVtc1tpXS0+dHlwZSgpID09IHR5cGUgJiYgbV9pdGVtc1tpXS0+a2luZCgpID09
IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmcpIHsKKyAgICAgICAgICAgIGVjID0gSU5WQUxJ
RF9TVEFURV9FUlI7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV9vd25lciwgbV9jb250
ZXh0LCBkYXRhLCB0eXBlKSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMzE4ZTkyZDk1OGQ5YWIwYjYwYTQz
ZmMxYTM5NWEyMmY4ZDY1MTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbUxpc3QuaApAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJhbnNm
ZXJJdGVtTGlzdF9oCisjZGVmaW5lIERhdGFUcmFuc2Zlckl0ZW1MaXN0X2gKKworI2lmIEVOQUJM
RShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgor
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDbGlwYm9hcmQ7CisKK3R5cGVkZWYgaW50IEV4
Y2VwdGlvbkNvZGU7CisKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW1MaXN0IDogcHVibGljIFJlZkNv
dW50ZWQ8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5EYXRh
VHJhbnNmZXJJdGVtTGlzdCgpIHsgfQorCisgICAgdmlydHVhbCBzaXplX3QgbGVuZ3RoKCkgY29u
c3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IGl0ZW0odW5zaWdu
ZWQgbG9uZyBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0odW5zaWduZWQgbG9u
ZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpOworICAg
IHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBTdHJpbmcmIHR5cGUs
IEV4Y2VwdGlvbkNvZGUmKTsKKworcHJvdGVjdGVkOgorICAgIERhdGFUcmFuc2Zlckl0ZW1MaXN0
KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCitwcm90
ZWN0ZWQ6CisgICAgUmVmUHRyPENsaXBib2FyZD4gbV9vd25lcjsKKyAgICAvLyBJbmRpcmVjdGx5
IG93bmVkIGJ5IG91ciBwYXJlbnQuCisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9jb250
ZXh0OworICAgIFZlY3RvcjxSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gPiBtX2l0ZW1zOworCit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFO
U0ZFUl9JVEVNUykKKworI2VuZGlmIC8vIERhdGFUcmFuc2Zlckl0ZW1MaXN0X2gKKwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAzMzkz
OTViMTdhNDQxYjhmYzJlMjU1YTJjMGM1YmJkNjJmM2FhZgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKQEAgLTAsMCArMSw0OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPURB
VEFfVFJBTlNGRVJfSVRFTVMsCisgICAgICAgIEhhc0luZGV4R2V0dGVyLAorI2lmIGRlZmluZWQo
VjhfQklORElORykgJiYgVjhfQklORElORworICAgICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwK
KyNlbmRpZgorICAgIF0gRGF0YVRyYW5zZmVySXRlbUxpc3QgeworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyBsZW5ndGg7CisgICAgICAgIERhdGFUcmFuc2Zlckl0ZW0gaXRlbShpbiBb
T3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIHVuc2lnbmVkIGxvbmcgaW5kZXgpOworCisg
ICAgICAgIHZvaWQgY2xlYXIoKTsKKyAgICAgICAgdm9pZCBhZGQoaW4gW09wdGlvbmFsPUNhbGxX
aXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgZGF0YSwgCisgICAgICAgICAgICAgICAgIGluIFtP
cHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHR5cGUpIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
YXRhVHJhbnNmZXJJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRl
bXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDAyMjNjNzYwNTYyZGZkOTFj
ODA5ZmMzMTcxZjUxNTM4NjAxMTcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24u
Ci0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtcy5oIgotCi0jaW5jbHVkZSAiRGF0YVRyYW5z
ZmVySXRlbS5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLQotI2lmIEVOQUJMRShEQVRB
X1RSQU5TRkVSX0lURU1TKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLURhdGFUcmFuc2Zlckl0
ZW1zOjpEYXRhVHJhbnNmZXJJdGVtcyhQYXNzUmVmUHRyPENsaXBib2FyZD4gY2xpcGJvYXJkLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotICAgIDogbV9vd25lcihjbGlwYm9hcmQp
Ci0gICAgLCBtX2NvbnRleHQoY29udGV4dCkKLXsKLX0KLQotc2l6ZV90IERhdGFUcmFuc2Zlckl0
ZW1zOjpsZW5ndGgoKSBjb25zdAotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlw
Ym9hcmROdW1iKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBtX2l0ZW1zLnNpemUo
KTsKLX0KLQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtczo6
aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KQotewotICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9
PSBDbGlwYm9hcmROdW1iIHx8IGluZGV4ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIHJldHVybiBtX2l0ZW1zW2luZGV4XTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVt
czo6ZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKLXsK
LSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpIHsKLSAgICAg
ICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmIChpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9pdGVtcy5y
ZW1vdmUoaW5kZXgpOwotfQotCi12b2lkIERhdGFUcmFuc2Zlckl0ZW1zOjpjbGVhcigpCi17Ci0g
ICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX2l0ZW1zLmNsZWFyKCk7Ci0KLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJ
dGVtczo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRp
b25Db2RlJiBlYykKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3Jp
dGFibGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIE9ubHkgb25lICdzdHJpbmcnIGl0ZW0g
d2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4KLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1f
aXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9PSBEYXRhVHJh
bnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7Ci0gICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVf
RVJSOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbV9pdGVt
cy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fb3duZXIsIG1fY29udGV4dCwgZGF0
YSwgdHlwZSkpOwotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc2Yzk0OWEyODM3MWJjOWQy
N2E0NDA0NmUwM2U0MmRhNjgxNWYxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaAorKysg
L2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1zX2gKLSNk
ZWZpbmUgRGF0YVRyYW5zZmVySXRlbXNfaAotCi0jaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRF
TVMpCi0KLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtLmgiCi0jaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIENsaXBib2FyZDsKLQotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotY2xh
c3MgRGF0YVRyYW5zZmVySXRlbXMgOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRhVHJhbnNmZXJJdGVt
cz4gewotcHVibGljOgotICAgIHZpcnR1YWwgfkRhdGFUcmFuc2Zlckl0ZW1zKCkgeyB9Ci0KLSAg
ICB2aXJ0dWFsIHNpemVfdCBsZW5ndGgoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJik7Ci0g
ICAgdmlydHVhbCB2b2lkIGNsZWFyKCk7Ci0gICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBTdHJp
bmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYpOwotCi1wcm90ZWN0
ZWQ6Ci0gICAgRGF0YVRyYW5zZmVySXRlbXMoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0Kik7Ci0KLXByb3RlY3RlZDoKLSAgICBSZWZQdHI8Q2xpcGJvYXJkPiBt
X293bmVyOwotICAgIC8vIEluZGlyZWN0bHkgb3duZWQgYnkgb3VyIHBhcmVudC4KLSAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7Ci0gICAgVmVjdG9yPFJlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtPiA+IG1faXRlbXM7Ci0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQotCi0jZW5kaWYgLy8gRGF0YVRy
YW5zZmVySXRlbXNfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVySXRlbXMuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjlmNDE2ZDBmZTgzMTNiNGU0OGY4YTFiODM2
MGIzZDFkNGU1M2FlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsCisrKyAvZGV2L251
bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0g
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLW1vZHVsZSBjb3JlIHsKLQotICAgIGludGVyZmFjZSBbCi0gICAg
ICAgIENvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsCi0gICAgICAgIEhhc0luZGV4R2V0
dGVyLAotI2lmIGRlZmluZWQoVjhfQklORElORykgJiYgVjhfQklORElORwotICAgICAgICBDdXN0
b21EZWxldGVQcm9wZXJ0eSwKLSNlbmRpZgotICAgIF0gRGF0YVRyYW5zZmVySXRlbXMgewotICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsZW5ndGg7Ci0gICAgICAgIERhdGFUcmFuc2Zl
ckl0ZW0gaXRlbShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwotCi0gICAgICAgIHZvaWQgY2xlYXIoKTsKLSAgICAgICAgdm9pZCBhZGQoaW4g
W09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgZGF0YSwgCi0gICAgICAg
ICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHR5
cGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIH07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAppbmRleCAw
YmNkZWViZDZkMjliYzBiN2VmYmM4ZjdmM2VmZmUwNmM5NDFiOGM2Li4yNTA4MTczYzY4MDI2ZGFl
NjE1ODRiMmM2NGJlYTk4MjExMWJmNjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCkBAIC0zMSw3ICszMSw3IEBA
CiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRhT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkTWlt
ZVR5cGVzLmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzQ2hyb21pdW0uaCIKLSNpbmNs
dWRlICJEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVy
SXRlbUxpc3RDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRHJh
Z0RhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC0zMjQsOSArMzI0LDkgQEAgYm9vbCBD
bGlwYm9hcmRDaHJvbWl1bTo6aGFzRGF0YSgpCiB9CiAKICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZF
Ul9JVEVNUykKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbXM+IENsaXBib2FyZENocm9taXVt
OjppdGVtcygpCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBDbGlwYm9hcmRDaHJv
bWl1bTo6aXRlbXMoKQogewotICAgIFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtPiBp
dGVtcyA9IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNyZWF0ZSh0aGlzLCBtX2ZyYW1lLT5k
b2N1bWVudCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIFJlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtTGlzdENocm9taXVtPiBpdGVtcyA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21p
dW06OmNyZWF0ZSh0aGlzLCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOwogCiAgICAgaWYgKCFtX2RhdGFPYmplY3QpCiAgICAgICAgIHJldHVybiBpdGVtczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENo
cm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJv
bWl1bS5oCmluZGV4IDI3YjE5Yzk1NGMyOGYwMDk2ZjM4ZGRmODZkZGNjNmZiMzU2YzhmZmEuLjhi
MTc0NTI3YTBjY2RmMTczNjMyMDQ4Mzc1MWFiN2ZmOWY2ZmRhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaApAQCAtODIs
NyArODIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNE
YXRhKCk7CiAKICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLSAgICAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zPiBpdGVtcygpOworICAgICAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IGl0ZW1zKCk7CiAjZW5kaWYKIAogICAg
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
YXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMy
MGU3NDkxNDQ2NTFiZjExNGY1YjE2ZTFhMTZhN2M1Yjk4NGZmZTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENo
cm9taXVtLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uaCIKKworI2lmIEVOQUJMRShEQVRBX1RSQU5T
RkVSX0lURU1TKQorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVkZSAiRGF0YVRyYW5z
ZmVySXRlbUNocm9taXVtLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bT4g
RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJk
PiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IERhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0ob3duZXIsIGNvbnRleHQp
KTsKK30KKworRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbUxp
c3RDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQpCisgICAgOiBEYXRhVHJhbnNmZXJJdGVtTGlzdChvd25lciwgY29udGV4
dCkKK3sKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtOjphZGRQYXN0ZWJv
YXJkSXRlbShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGVGcm9tUGFzdGVib2FyZChtX293bmVyLCBtX2NvbnRl
eHQsIHR5cGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTMzMjFiNWFkMzlkNDVmYjQ2ZGU0ZWNlOGFiYzFiZGQzNjJmM2EwZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zl
ckl0ZW1MaXN0Q2hyb21pdW0uaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJhbnNmZXJJ
dGVtTGlzdENocm9taXVtX2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bV9o
CisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2luY2x1ZGUgIkRhdGFUcmFu
c2Zlckl0ZW1MaXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDbGlwYm9hcmQ7CitjbGFz
cyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW07CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OworCit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVt
TGlzdENocm9taXVtIDogcHVibGljIERhdGFUcmFuc2Zlckl0ZW1MaXN0IHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtPiBjcmVhdGUo
UGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKK3ByaXZh
dGU6CisgICAgZnJpZW5kIGNsYXNzIENsaXBib2FyZENocm9taXVtOworCisgICAgRGF0YVRyYW5z
ZmVySXRlbUxpc3RDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqKTsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRQYXN0ZWJvYXJkSXRlbShjb25zdCBT
dHJpbmcmIHR5cGUpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVt
TGlzdENocm9taXVtX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYzY4NGNjYzQ0ZTc3NWE3ZWE5ZmI2Zjc4OWYxMGU5NGY5MWE0ZTVi
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oIgotCi0jaWYgRU5BQkxFKERBVEFfVFJBTlNG
RVJfSVRFTVMpCi0KLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKLSNpbmNsdWRlICJEYXRhVHJhbnNm
ZXJJdGVtQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtPiBEYXRh
VHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVy
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShvd25lciwgY29udGV4dCkpOwotfQotCi1E
YXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtKFBhc3NS
ZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkK
LSAgICA6IERhdGFUcmFuc2Zlckl0ZW1zKG93bmVyLCBjb250ZXh0KQotewotfQotCi12b2lkIERh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYg
dHlwZSkKLXsKLSAgICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW06OmNy
ZWF0ZUZyb21QYXN0ZWJvYXJkKG1fb3duZXIsIG1fY29udGV4dCwgdHlwZSkpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVN
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFu
c2Zlckl0ZW1zQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Rh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDA5OWEyMmYzZTQ0OTVkZTk5ZDY1ZjY4YzhjODM0YWU5MTljNWIzYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2
NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6
Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtX2gKLSNkZWZpbmUgRGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bV9oCi0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVN
UykKLQotI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1zLmgiCi0jaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBDbGlwYm9hcmQ7Ci1jbGFzcyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW07Ci1jbGFzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OwotCi10eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwotCi1j
bGFzcyBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIDogcHVibGljIERhdGFUcmFuc2Zlckl0ZW1z
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtc0Nocm9t
aXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIENsaXBib2FyZENocm9taXVtOwotCi0g
ICAgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKLQotICAgIHZpcnR1YWwgdm9pZCBhZGRQYXN0ZWJvYXJkSXRl
bShjb25zdCBTdHJpbmcmIHR5cGUpOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi0KLSNlbmRpZiAvLyBEYXRhVHJh
bnNmZXJJdGVtc0Nocm9taXVtX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvQ2xpcGJvYXJkUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJv
YXJkUXQuY3BwCmluZGV4IGU4YzUyMTQwZTAzZDkxNzBjNGY1YzlkZmIxYTBiYzMyM2VmZjU1OGMu
LmY0NjY1OWYxMzI0YzQ2NGRiYjEwZDcxZGE1NmRhYTM4NWQ3ZTlhNjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKICNpbmNs
dWRlICJDbGlwYm9hcmRRdC5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKLSNpbmNsdWRl
ICJEYXRhVHJhbnNmZXJJdGVtc1F0LmgiCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbUxpc3RR
dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNs
dWRlICJFbGVtZW50LmgiCkBAIC0zNTUsMTMgKzM1NSwxMyBAQCBib29sIENsaXBib2FyZFF0Ojpo
YXNEYXRhKCkKIH0KIAogI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQotUGFzc1JlZlB0
cjxEYXRhVHJhbnNmZXJJdGVtcz4gQ2xpcGJvYXJkUXQ6Oml0ZW1zKCkKK1Bhc3NSZWZQdHI8RGF0
YVRyYW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZFF0OjppdGVtcygpCiB7CiAKICAgICBpZiAoIW1f
ZnJhbWUgJiYgIW1fZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zUXQ+IGl0ZW1zID0gRGF0YVRyYW5zZmVySXRlbXNRdDo6
Y3JlYXRlKHRoaXMsIG1fZnJhbWUtPmRvY3VtZW50KCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7CisgICAgUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ+IGl0ZW1zID0gRGF0YVRyYW5z
ZmVySXRlbUxpc3RRdDo6Y3JlYXRlKHRoaXMsIG1fZnJhbWUtPmRvY3VtZW50KCktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7CiAKICAgICBpZiAoIW1fcmVhZGFibGVEYXRhKQogICAgICAgICBy
ZXR1cm4gaXRlbXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlw
Ym9hcmRRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuaAppbmRl
eCA4MTk5ZjIyNTIyMzFkYmU2NjE0ZjU1Y2Q3N2U0NmI1NzdkYzQ5OTNiLi5kYzZiYTQxNzNjODc0
YjBlYmY0MzI3ZmQyN2QzZmI1Yjc2ZWVmNTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0NsaXBib2FyZFF0LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxp
ZGF0ZVdyaXRhYmxlRGF0YSgpIHsgbV93cml0YWJsZURhdGEgPSAwOyB9CiAKICNpZiBFTkFCTEUo
REFUQV9UUkFOU0ZFUl9JVEVNUykKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVy
SXRlbXM+IGl0ZW1zKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1M
aXN0PiBpdGVtcygpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1
ZmI2YmM3NjA3OTQwMWNiOWZmYjdmODI0NGRiMjhkYTEyYjMyYjcKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmNwcApA
QCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0
aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmgiCisKKyNpZiBFTkFCTEUoREFU
QV9UUkFOU0ZFUl9JVEVNUykKKworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRh
dGFUcmFuc2Zlckl0ZW1RdC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ+IERhdGFU
cmFuc2Zlckl0ZW1MaXN0UXQ6OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0KG93bmVyLCBjb250ZXh0KSk7Cit9CisKK0RhdGFUcmFu
c2Zlckl0ZW1MaXN0UXQ6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQoUGFzc1JlZlB0cjxDbGlwYm9h
cmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQorICAgIDogRGF0YVRy
YW5zZmVySXRlbUxpc3Qob3duZXIsICBjb250ZXh0KQoreworfQorCit2b2lkIERhdGFUcmFuc2Zl
ckl0ZW1MaXN0UXQ6OmFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAg
ICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtUXQ6OmNyZWF0ZUZyb21QYXN0ZWJvYXJk
KG1fb3duZXIsIG1fY29udGV4dCwgdHlwZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNDQyNTYzZWU4ZjRlMGZhODYwY2I2NzU5ODk1YzExYjk2NjBmMGU0Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5o
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEYXRhVHJh
bnNmZXJJdGVtTGlzdFF0X2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbUxpc3RRdF9oCisKKyNp
ZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0
ZW1MaXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDbGlwYm9hcmQ7CitjbGFzcyBEYXRh
VHJhbnNmZXJJdGVtUXQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworCitjbGFzcyBE
YXRhVHJhbnNmZXJJdGVtTGlzdFF0IDogcHVibGljIERhdGFUcmFuc2Zlckl0ZW1MaXN0IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdFF0PiBjcmVh
dGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKKyAg
ICBmcmllbmQgY2xhc3MgQ2xpcGJvYXJkUXQ7Citwcml2YXRlOgorICAgIERhdGFUcmFuc2Zlckl0
ZW1MaXN0UXQoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7
CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkUGFzdGVib2FyZEl0ZW0oY29uc3QgU3RyaW5nJiB0eXBl
KTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zl
ckl0ZW1zUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRl
bXNRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmZWI4M2U2YzI2M2YzYjg2
YmUyMmQzZWJlMDllOGFiNGQ2YjQ5NDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRl
bXNRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtc1F0
LmgiCi0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLQotI2luY2x1ZGUgIkNsaXBi
b2FyZC5oIgotI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1RdC5oIgotI2luY2x1ZGUgIkV4Y2Vw
dGlvbkNvZGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVmUHRyPERhdGFUcmFu
c2Zlckl0ZW1zUXQ+IERhdGFUcmFuc2Zlckl0ZW1zUXQ6OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBi
b2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXJJdGVtc1F0KG93bmVyLCBjb250ZXh0KSk7Ci19
Ci0KLURhdGFUcmFuc2Zlckl0ZW1zUXQ6OkRhdGFUcmFuc2Zlckl0ZW1zUXQoUGFzc1JlZlB0cjxD
bGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotICAgIDog
RGF0YVRyYW5zZmVySXRlbXMob3duZXIsICBjb250ZXh0KQotewotfQotCi12b2lkIERhdGFUcmFu
c2Zlckl0ZW1zUXQ6OmFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSkKLXsKLSAg
ICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtUXQ6OmNyZWF0ZUZyb21QYXN0ZWJvYXJk
KG1fb3duZXIsIG1fY29udGV4dCwgdHlwZSkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLSNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1zUXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1zUXQuaApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYmUxNzI3MjkyZjk2M2JmNmRlNmQwMzYxMWM1ZDYxZDQxMGQ3ZTI5ZC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtc1F0LmgKKysrIC9kZXYvbnVsbApAQCAt
MSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRGF0YVRyYW5zZmVy
SXRlbXNRdF9oCi0jZGVmaW5lIERhdGFUcmFuc2Zlckl0ZW1zUXRfaAotCi0jaWYgRU5BQkxFKERB
VEFfVFJBTlNGRVJfSVRFTVMpCi0KLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtcy5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2xpcGJvYXJkOwotY2xhc3MgRGF0YVRyYW5zZmVySXRlbVF0
OwotY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLQotY2xhc3MgRGF0YVRyYW5zZmVySXRl
bXNRdCA6IHB1YmxpYyBEYXRhVHJhbnNmZXJJdGVtcyB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbXNRdD4gY3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJk
PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotCi0gICAgZnJpZW5kIGNsYXNzIENsaXBib2Fy
ZFF0OwotcHJpdmF0ZToKLSAgICBEYXRhVHJhbnNmZXJJdGVtc1F0KFBhc3NSZWZQdHI8Q2xpcGJv
YXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotCi0gICAgdmlydHVhbCB2b2lkIGFkZFBh
c3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSk7Ci19OwotCi19Ci0KLSNlbmRpZiAvLyBF
TkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLQotI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112931</attachid>
            <date>2011-10-28 15:57:38 -0700</date>
            <delta_ts>2011-10-28 16:14:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71151-20111028155737.patch</filename>
            <type>text/plain</type>
            <size>62806</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZWEzNDAxMDRjODkyYjEx
ZjFkMTFjODc1ODIzOTBhYTA1NjQwNDg3Li43Njc3ZThiYTJlODY2NjQ1YzQxM2ZjY2RkNDJkMTZh
ZDExNDJhYWQ1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTEtMTAtMjggIERhbmll
bCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIERhdGFUcmFu
c2Zlckl0ZW1zIHRvIERhdGFUcmFuc2Zlckl0ZW1MaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTE1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogQ29k
ZUdlbmVyYXRvcnMucHJpOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAg
KiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vQ2xpcGJvYXJkLmg6CisgICAgICAg
ICogZG9tL0NsaXBib2FyZC5pZGw6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0
LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5j
cHAuCisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6RGF0YVRyYW5zZmVy
SXRlbUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6Omxlbmd0
aCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6aXRlbSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZGVsZXRlSXRlbSk6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OmFkZCk6CisgICAgICAgICogZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1MaXN0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbXMuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0Ojp+RGF0YVRy
YW5zZmVySXRlbUxpc3QpOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGw6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNsaXBib2FyZENocm9taXVtOjppdGVtcyk6CisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3Bw
LgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW06OkRhdGFU
cmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5zZmVy
SXRlbUxpc3RDaHJvbWl1bTo6YWRkUGFzdGVib2FyZEl0ZW0pOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uaDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0u
aC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDbGlwYm9hcmRRdDo6aXRlbXMpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L0NsaXBib2Fy
ZFF0Lmg6CisgICAgICAgICogcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVt
c1F0LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjpEYXRhVHJhbnNm
ZXJJdGVtTGlzdFF0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6
OmFkZFBhc3RlYm9hcmRJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJ
dGVtTGlzdFF0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRh
VHJhbnNmZXJJdGVtc1F0LmguCisKIDIwMTEtMTAtMjggIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViQ29yZSBwYXJ0IG9mOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBkMjhjNmRmYmZiMjc0MTNhNWE0NTExMjZjYWI2MWJiNDljODdhYzAxLi5hMmUyMjQ3
YjM4OTg4NGRiZjc3OGViZGQ3ZGY5NGRiNWZlMDRmN2UzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApA
QCAtMTQxLDcgKzE0MSw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIGRvbS9Db21tZW50
LmlkbAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmlkbAogICAgIGRvbS9DdXN0b21FdmVudC5p
ZGwKLSAgICBkb20vRGF0YVRyYW5zZmVySXRlbXMuaWRsCisgICAgZG9tL0RhdGFUcmFuc2Zlckl0
ZW1MaXN0LmlkbAogICAgIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwKICAgICBkb20vRGV2aWNl
T3JpZW50YXRpb25FdmVudC5pZGwKICAgICBkb20vRG9jdW1lbnRGcmFnbWVudC5pZGwKQEAgLTE0
NzUsNyArMTQ3NSw3IEBAIElGIChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykKICAgICApCiAg
ICAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJ
dGVtLmNwcAotICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwCisgICAgICAgIGRvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAKICAgICAgICAgZG9tL1N0cmluZ0NhbGxiYWNrLmNwcAog
ICAgICkKIEVORElGICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9y
cy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKaW5kZXggODUyMGYzNzJk
N2IzNTMxNzA5NmNhNTUzZWNjM2RjYTFkNzMyNjBjNi4uNmQwMDE0NDA5NmIzNDg4YjBmMWVjNWU1
MzY0Njk5MzkwYTQ1NmU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRv
cnMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQpAQCAtMTE4LDcg
KzExOCw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAgZG9tL0NvbXBvc2l0aW9uRXZlbnQuaWRs
IFwKICAgICBkb20vQ3VzdG9tRXZlbnQuaWRsIFwKICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5p
ZGwgXAotICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwgXAorICAgIGRvbS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdC5pZGwgXAogICAgIGRvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwgXAogICAgIGRv
bS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQu
aWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCAwMzZkOTMxZDNmZmRhYTkxOTJj
ODRmODI1YjViMDVkYjEzNDFlNDUzLi5jODVhYjFlZGNmZWEzYjNmYjQ0NTkzYjgyNzcyYjZkMmU5
NjY1YWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC03MSw3ICs3MSw3IEBACiAj
aW5jbHVkZSAiSlNEYXRhYmFzZUNhbGxiYWNrLmNwcCIKICNpbmNsdWRlICJKU0RhdGFiYXNlU3lu
Yy5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtLmNwcCIKLSNpbmNsdWRlICJKU0Rh
dGFUcmFuc2Zlckl0ZW1zLmNwcCIKKyNpbmNsdWRlICJKU0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNw
cCIKICNpbmNsdWRlICJKU0RhdGFWaWV3LmNwcCIKICNpbmNsdWRlICJKU0RlZGljYXRlZFdvcmtl
ckNvbnRleHQuY3BwIgogI2luY2x1ZGUgIkpTRGV2aWNlT3JpZW50YXRpb25FdmVudC5jcHAiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBlNWQ0ZjE2MTZkMzM5Y2ViOGZlYjk4ZDdm
YjUxNTUwNjYyODBkNGMyLi4yMGU3NjQwZDE3ZWU1YjdiZWY3NDhiMTM5MjE5MTdlMTk0MjdhNzY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTEyNiw5ICsxMjYsNyBAQCBET01f
Q0xBU1NFUyA9IFwKICAgICBET01VUkwgXAogICAgIERPTVdpbmRvdyBcCiAgICAgRGF0YVRyYW5z
ZmVySXRlbSBcCi0gICAgRGF0YVRyYW5zZmVySXRlbSBcCi0gICAgRGF0YVRyYW5zZmVySXRlbXMg
XAotICAgIERhdGFUcmFuc2Zlckl0ZW1zIFwKKyAgICBEYXRhVHJhbnNmZXJJdGVtTGlzdCBcCiAg
ICAgRGF0YVZpZXcgXAogICAgIERhdGFiYXNlIFwKICAgICBEYXRhYmFzZUNhbGxiYWNrIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGNmZTYzNjI1NDAyOThhYjc5OGFlOTU3Mzdh
Mjk2NjVjM2VkODc5OGEuLmQwMjJkMTA4N2UwNjcwOTQxNzUzNjY4ZDNlNjE1YmFhOGVjMjUwYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTA0LDggKzEwNCw4IEBAIHdlYmNv
cmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU1ZhbHVl
TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tRXZlbnQuY3BwIFwKIAlE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tRXZlbnQuaCBcCi0JRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RhdGFUcmFuc2Zlckl0ZW1zLmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNEYXRhVHJhbnNmZXJJdGVtcy5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRh
VHJhbnNmZXJJdGVtTGlzdC5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5z
ZmVySXRlbUxpc3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVZpZXcuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVZpZXcuaCBcCiAJRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0RlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIFwKQEAgLTQyMjMsMTUgKzQy
MjMsMTUgQEAgaWYgRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMKIHdlYmNvcmVfYnVpbHRfc291
cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFUcmFuc2Zlckl0ZW0uY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVySXRlbS5oIFwKLQlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVySXRlbXMuY3BwIFwKLQlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVySXRlbXMuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNT
dHJpbmdDYWxsYmFjay5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNTdHJpbmdDYWxs
YmFjay5oCiB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJh
bnNmZXJJdGVtLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBc
Ci0JU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtTGlzdC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJ
dGVtTGlzdC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suY3BwIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaAogZW5kaWYgIyBFTkQgRU5BQkxFX0RB
VEFfVFJBTlNGRVJfSVRFTVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA1OTk2MDQ2Njg5NjM2MjgzNzE1
ZDc4YmZlMzExNWM0NGU2YWMyMzMzLi40ZTQyMzYyYTk1ZGMzOTE1ZWNmMTlhNDhiNzk2OGQ4MTkx
NzIzYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xMTcxLDcgKzExNzEsNyBAQAogICAgICAgICAg
ICAgJ2RvbS9ET01TdHJpbmdMaXN0LmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RPTVN0cmluZ01h
cC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmlkbCcsCi0gICAgICAg
ICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbCcsCisgICAgICAgICAgICAnZG9tL0RhdGFU
cmFuc2Zlckl0ZW1MaXN0LmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RldmljZU1vdGlvbkV2ZW50
LmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRsJywKICAg
ICAgICAgICAgICdkb20vRG9jdW1lbnQuaWRsJywKQEAgLTMyMDQsOCArMzIwNCw4IEBACiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ3Vyc29yQ2hyb21pdW0uY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaCcs
Ci0gICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1
bS5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1z
Q2hyb21pdW0uaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVy
SXRlbUxpc3RDaHJvbWl1bS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0Rh
dGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hy
b21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdEYXRhUmVmLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdJ
bWFnZUNocm9taXVtTWFjLmNwcCcsCkBAIC01MTg1LDggKzUxODUsOCBAQAogICAgICAgICAgICAg
J2RvbS9ET01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW0u
Y3BwJywKICAgICAgICAgICAgICdkb20vRGF0YVRyYW5zZmVySXRlbS5oJywKLSAgICAgICAgICAg
ICdkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwJywKLSAgICAgICAgICAgICdkb20vRGF0YVRyYW5z
ZmVySXRlbXMuaCcsCisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCcs
CisgICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmgnLAogICAgICAgICAgICAg
J2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCcsCiAgICAgICAgICAgICAnZG9tL0RhdGFzZXRE
T01TdHJpbmdNYXAuaCcsCiAgICAgICAgICAgICAnZG9tL0RlY29kZWREYXRhRG9jdW1lbnRQYXJz
ZXIuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMWE0NDcyODU5MmJjMjYyYWU1N2YwNjgxZjlhMWFl
MzA2ZjVmZmYyYi4uMjc2NjcwYWQ5N2UzMDNhOTQ3MTBhMDhmNDlmNjUzYjU1MGRkYjM1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8KQEAgLTI5NDIsMTYgKzI5NDIsMTYgQEAgY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX0lOREVYRURfREFUQUJBU0U9MSkgewogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RBVEFf
VFJBTlNGRVJfSVRFTVM9MSkgewogICAgIEhFQURFUlMgKz0gXAogICAgICAgICBkb20vRGF0YVRy
YW5zZmVySXRlbS5oIFwKLSAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggXAorICAgICAg
ICBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaCBcCiAgICAgICAgIGRvbS9TdHJpbmdDYWxsYmFj
ay5oIFwKICAgICAgICAgcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbVF0LmggXAotICAgICAg
ICBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtc1F0LmgKKyAgICAgICAgcGxhdGZvcm0vcXQv
RGF0YVRyYW5zZmVySXRlbUxpc3RRdC5oCiAgICAgU09VUkNFUyArPSBcCiAgICAgICAgIGRvbS9E
YXRhVHJhbnNmZXJJdGVtLmNwcCBcCi0gICAgICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAg
XAorICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwIFwKICAgICAgICAgZG9tL1N0
cmluZ0NhbGxiYWNrLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1R
dC5jcHAgXAotICAgICAgICBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtc1F0LmNwcAorICAg
ICAgICBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmNwcAogfQogCiBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfRklMRV9TWVNURU09MSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA0OTdjY2NlN2U0ZGJiNWU5YTRkYjM4OTcz
ODk4M2ZhOGIzMmU3MjgwLi5lMDBjZGM2ZDliYzRjYTg4MTBmYWFkMzM3MDc5OGJhZmEwNTViYzkz
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
MjY4Miw3ICsyNjgyLDcgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0
aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCIKKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmlndXJhdGlv
bgogCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiIKQEAgLTI3MzQsNyArMjczNCw3IEBACiAJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3Vy
Y2VzXEpTRGF0YVRyYW5zZmVySXRlbXMuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJh
bnNmZXJJdGVtTGlzdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCkBAIC00NDAxNCw3
ICs0NDAxNCw3IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGRvbVxEYXRhVHJhbnNmZXJJdGVtcy5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxk
b21cRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KIAkJCQkJTmFtZT0iRGVidWd8V2luMzIiCkBAIC00NDA2Niw3ICs0NDA2Niw3IEBACiAJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQ
YXRoPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbXMuaCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZGQ5ZWZmMThiN2U2YWQ1N2MxNzg3N2I2YWNlMTA4ZmM2OTE5ODYyYi4uYmRlZjc2OWY5ZmY3
ZmI1NWYwOWQyMmRmOGMwNjU0M2ZhZDAxNWEyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc2NCw3ICsxNzY0LDcgQEAKIAkJ
NzdBMTdBQTcxMkYyOEIyQTAwNEUwMkY2IC8qIEpTT0VTVmVydGV4QXJyYXlPYmplY3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc3QTE3QUEzMTJGMjhC
MkEwMDRFMDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggKi87IH07CiAJCTc3RUY2MkYz
MTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzdFRjYyRjExMkY5REI3
NDAwQzc3QkQyIC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgKi87IH07CiAJCTc3
RUY2MkY0MTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc3RUY2MkYyMTJG
OURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLzsgfTsKLQkJ
NzgxNzU1ODYxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc4MTc1NTg1MTM2NUExQjAw
MDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtcy5jcHAgKi87IH07CisJCTc4MTc1NTg2MTM2NUEx
QjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyog
RGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwICovOyB9OwogCQk3OUFDOTIxODEwOTk0NUM4MDAyMTI2
NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc5QUM5MjE2MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0
aW9uRXZlbnQuY3BwICovOyB9OwogCQk3OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21w
b3NpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3OUFDOTIxNzEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi87
IH07CiAJCTc5RjJGNUExMTA5MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc5RjJGNTlFMTA5
MTkzOUEwMDBEODdDQiAvKiBDb21wb3NpdGlvbkV2ZW50LmNwcCAqLzsgfTsKQEAgLTE4MjMsNyAr
MTgyMyw3IEBACiAJCTgxQTczMjYwMTIxMDE4QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBNzMyNUYxMjEw
MThBNDAwRkMwRDlFIC8qIElEQkN1cnNvci5jcHAgKi87IH07CiAJCTgxQTczMjc4MTIxMDE5RTEw
MEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBNzMyNzcxMjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1
cnNvckJhY2tlbmRJbXBsLmggKi87IH07CiAJCTgxQUM1OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBE
YXRhVHJhbnNmZXJJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oICov
OyB9OwotCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM1OTk4MTMx
NjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5oICovOyB9OworCQk4MUFDNTk5QTEz
MTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAv
KiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oICovOyB9OwogCQk4MUFDNkMzNjEzMUM1N0QzMDAwOUE3
RTAgLyogU3RyaW5nQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgxQUM2QzM1MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5o
ICovOyB9OwogCQk4MUJFMjA5ODExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZElt
cGwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFC
RTIwOTMxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLzsgfTsK
IAkJODFCRTIwOTkxMUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDk0
MTFGNEFCOEQwMDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggKi87IH07CkBA
IC04OTUzLDcgKzg5NTMsNyBAQAogCQk3N0ExN0FBMzEyRjI4QjJBMDA0RTAyRjYgLyogSlNPRVNW
ZXJ0ZXhBcnJheU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09F
U1ZlcnRleEFycmF5T2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3RUY2
MkYxMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJHTFZlcnRleEFycmF5T2Jq
ZWN0T0VTLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzdFRjYyRjIxMkY5REI3
NDAwQzc3QkQyIC8qIEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzgxNzU1ODUxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFU
cmFuc2Zlckl0ZW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERh
dGFUcmFuc2Zlckl0ZW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzgxNzU1
ODUxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlBQzkyMTYxMDk5NDVDODAwMjEyNjZFIC8qIEpT
Q29tcG9zaXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0NvbXBvc2l0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
OUFDOTIxNzEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ29tcG9zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3OUYyRjU5RTEwOTE5MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRp
b25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb21wb3Np
dGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTkwMTcsOSArOTAx
Nyw5IEBACiAJCTgxQTczMjVGMTIxMDE4QTQwMEZDMEQ5RSAvKiBJREJDdXJzb3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBNzMyNzcxMjEwMTlFMTAwRkMwRDlFIC8qIElEQkN1cnNv
ckJhY2tlbmRJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkN1cnNv
ckJhY2tlbmRJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM1OTk3MTMx
NjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODFBQzU5OTgxMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1zLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRh
VHJhbnNmZXJJdGVtTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRh
VHJhbnNmZXJJdGVtTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNUFF
ODEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbXMuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk4MUFDNUFFOTEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVy
SXRlbUxpc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhdGFUcmFuc2Zlckl0ZW1MaXN0
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBQzZDMzQxMzFDNTdDMjAwMDlB
N0UwIC8qIFN0cmluZ0NhbGxiYWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTdHJpbmdD
YWxsYmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgxQUM2QzM1MTMxQzU3
RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHJpbmdDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MUJFMjA5MzExRjRBQjhEMDA5MTVERkEgLyogSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCQ3Vyc29yQmFja2VuZEltcGwuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA5MjYsOSArMjA5MjYsOSBAQAogCQkJ
CTgxNUU2MTY2MTMyNTg3QUEwMEI2MjJCMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmNwcCAqLywKIAkJ
CQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oICovLAogCQkJ
CTgxQUM1QUU4MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmlkbCAqLywKLQkJ
CQk3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVySXRlbXMuY3BwICovLAot
CQkJCTgxQUM1OTk4MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5oICovLAot
CQkJCTgxQUM1QUU5MTMxNjM5MkUwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5pZGwgKi8s
CisJCQkJNzgxNzU1ODUxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmNw
cCAqLywKKwkJCQk4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxp
c3QuaCAqLywKKwkJCQk4MUFDNUFFOTEzMTYzOTJFMDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRl
bUxpc3QuaWRsICovLAogCQkJCUE4QzIyOEEwMTFENTcyMkUwMEQ1QTdEMyAvKiBEZWNvZGVkRGF0
YURvY3VtZW50UGFyc2VyLmNwcCAqLywKIAkJCQlBOEMyMjg5RjExRDU3MjJFMDBENUE3RDMgLyog
RGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oICovLAogCQkJCTMxRkIxQTRGMTIwQTVEMDYwMERD
MDJBMCAvKiBEZXZpY2VNb3Rpb25DbGllbnQuaCAqLywKQEAgLTIxODI5LDcgKzIxODI5LDcgQEAK
IAkJCQlCQzIyNzQ2RjBFODM2NjQ1MDBFN0Y5NzUgLyogRGF0YVJlZi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM2NDY0MUMxMUQ3RjQxNjAwNjQ1NUIwIC8qIERhdGFzZXRET01TdHJpbmdNYXAuaCBp
biBIZWFkZXJzICovLAogCQkJCTgxQUM1OTk5MTMxNjM2RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNm
ZXJJdGVtLmggaW4gSGVhZGVycyAqLywKLQkJCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyog
RGF0YVRyYW5zZmVySXRlbXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTgxQUM1OTlBMTMxNjM2RTYw
MDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU5
N0NDRUIxMjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NTczMkIwQjEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUY1NUIzREI2MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRUeXBlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI1MTM1LDcgKzI1MTM1LDcgQEAKIAkJCQkxQUQ1MUExNTBDQjU5Q0QzMDA5
NTNEMTEgLyogRGF0YWJhc2VUcmFja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2NDFE
MTFEN0Y0MTYwMDY0NTVCMCAvKiBEYXRhc2V0RE9NU3RyaW5nTWFwLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTgxNUU2MTY3MTMyNTg3QUEwMEI2MjJCMCAvKiBEYXRhVHJhbnNmZXJJdGVtLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTc4MTc1NTg2MTM2NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNm
ZXJJdGVtcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk3ODE3NTU4NjEzNjVBMUIwMDA5M0JFMkUg
LyogRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkU5N0NDRUEx
MjkzOUNCODAwQzVDOEZGIC8qIERhdGFWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE1NzMy
QjBBMTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGNTVCM0RCNTEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaAppbmRleCBiOGM0Njc2NTIyZWE5YzE5MDQxYTU1
MzRkZTJmMGFmYjdiM2I5OTFjLi5mOTQ3MjdhMGU5OWIwMmYwOTk5NzQ5ZmEwZDk5OGRiMGMwOTM5
NTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIERhdGFUcmFuc2Zlckl0ZW1zOworICAgIGNsYXNzIERh
dGFUcmFuc2Zlckl0ZW1MaXN0OwogICAgIGNsYXNzIERyYWdEYXRhOwogICAgIGNsYXNzIEZpbGVM
aXN0OwogICAgIGNsYXNzIEZyYW1lOwpAQCAtOTgsNyArOTgsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgc2V0RHJhZ0hhc1N0YXJ0ZWQoKSB7IG1fZHJhZ1N0YXJ0ZWQgPSB0
cnVlOyB9CiAKICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLSAgICAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zPiBpdGVtcygpID0gMDsKKyAgICAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpID0gMDsKICNlbmRp
ZgogICAgICAgICAKICAgICBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ2xpcGJvYXJkLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCmluZGV4
IGQ1YmIzMzExN2Q0NDk2MmM4NWQ4ZTJjYTZlM2E3NjJiY2U3OGMzYzUuLmJiN2JiMjUyODY0MDYz
M2Y2N2Q2ODhjY2E2ZDE3Y2Q2ZTI2ZTBmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9DbGlwYm9hcmQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaWRsCkBA
IC00Myw3ICs0Myw3IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXRE
cmFnSW1hZ2UoaW4gSFRNTEltYWdlRWxlbWVudCBpbWFnZSwgaW4gbG9uZyB4LCBpbiBsb25nIHkp
CiAgICAgICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAotICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsIEVuYWJsZWRBdFJ1bnRp
bWU9RGF0YVRyYW5zZmVySXRlbXNdIERhdGFUcmFuc2Zlckl0ZW1zIGl0ZW1zOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsIEVuYWJs
ZWRBdFJ1bnRpbWU9RGF0YVRyYW5zZmVySXRlbXNdIERhdGFUcmFuc2Zlckl0ZW1MaXN0IGl0ZW1z
OwogICAgIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3Qu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmI1ZmVhY2FjZjRmMjMzZmVlZmVkMzBmNDk2ODNlNzlkZjdkNzY4ZjQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxp
c3QuY3BwCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1MaXN0LmgiCisKKyNpbmNsdWRlICJEYXRhVHJhbnNm
ZXJJdGVtLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorCisjaWYgRU5BQkxFKERBVEFf
VFJBTlNGRVJfSVRFTVMpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworRGF0YVRyYW5zZmVySXRl
bUxpc3Q6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBjbGlwYm9h
cmQsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBtX293bmVyKGNsaXBi
b2FyZCkKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQoreworfQorCitzaXplX3QgRGF0YVRyYW5z
ZmVySXRlbUxpc3Q6Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgaWYgKG1fb3duZXItPnBvbGljeSgp
ID09IENsaXBib2FyZE51bWIpCisgICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG1faXRl
bXMuc2l6ZSgpOworfQorCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+IERhdGFUcmFuc2Zl
ckl0ZW1MaXN0OjppdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpCit7CisgICAgaWYgKG1fb3duZXIt
PnBvbGljeSgpID09IENsaXBib2FyZE51bWIgfHwgaW5kZXggPj0gbGVuZ3RoKCkpCisgICAgICAg
IHJldHVybiAwOworCisgICAgcmV0dXJuIG1faXRlbXNbaW5kZXhdOworfQorCit2b2lkIERhdGFU
cmFuc2Zlckl0ZW1MaXN0OjpkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0
YWJsZSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgaWYgKGluZGV4ID49IGxlbmd0aCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2l0ZW1zLnJlbW92ZShpbmRleCk7Cit9CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbUxp
c3Q6OmNsZWFyKCkKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3Jp
dGFibGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1faXRlbXMuY2xlYXIoKTsKKworfQorCit2
b2lkIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjphZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBT
dHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmIChtX293bmVyLT5wb2xp
Y3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gT25s
eSBvbmUgJ3N0cmluZycgaXRlbSB3aXRoIGEgZ2l2ZW4gdHlwZSBpcyBhbGxvd2VkIGluIHRoZSBj
b2xsZWN0aW9uLgorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9pdGVtcy5zaXplKCk7ICsr
aSkgeworICAgICAgICBpZiAobV9pdGVtc1tpXS0+dHlwZSgpID09IHR5cGUgJiYgbV9pdGVtc1tp
XS0+a2luZCgpID09IERhdGFUcmFuc2Zlckl0ZW06OmtpbmRTdHJpbmcpIHsKKyAgICAgICAgICAg
IGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtOjpjcmVhdGUobV9v
d25lciwgbV9jb250ZXh0LCBkYXRhLCB0eXBlKSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVmMzE4ZTkyZDk1
OGQ5YWIwYjYwYTQzZmMxYTM5NWEyMmY4ZDY1MTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaApAQCAtMCwwICsxLDcyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRp
c3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBEYXRhVHJhbnNmZXJJdGVtTGlzdF9oCisjZGVmaW5lIERhdGFUcmFuc2Zlckl0ZW1MaXN0X2gK
KworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisjaW5jbHVkZSAiRGF0YVRyYW5z
ZmVySXRlbS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDbGlwYm9hcmQ7CisKK3R5
cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisKK2NsYXNzIERhdGFUcmFuc2Zlckl0ZW1MaXN0IDog
cHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IHsKK3B1YmxpYzoKKyAgICB2
aXJ0dWFsIH5EYXRhVHJhbnNmZXJJdGVtTGlzdCgpIHsgfQorCisgICAgdmlydHVhbCBzaXplX3Qg
bGVuZ3RoKCkgY29uc3Q7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+
IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUl0ZW0o
dW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZpcnR1YWwgdm9pZCBj
bGVhcigpOworICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBkYXRhLCBjb25zdCBT
dHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKKworcHJvdGVjdGVkOgorICAgIERhdGFUcmFu
c2Zlckl0ZW1MaXN0KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOworCitwcm90ZWN0ZWQ6CisgICAgUmVmUHRyPENsaXBib2FyZD4gbV9vd25lcjsKKyAgICAv
LyBJbmRpcmVjdGx5IG93bmVkIGJ5IG91ciBwYXJlbnQuCisgICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogbV9jb250ZXh0OworICAgIFZlY3RvcjxSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gPiBt
X2l0ZW1zOworCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2VuZGlmIC8vIERhdGFUcmFuc2Zlckl0ZW1MaXN0
X2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjAzMzkzOTViMTdhNDQxYjhmYzJlMjU1YTJjMGM1YmJkNjJmM2FhZgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKQEAg
LTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIENv
bmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsCisgICAgICAgIEhhc0luZGV4R2V0dGVyLAor
I2lmIGRlZmluZWQoVjhfQklORElORykgJiYgVjhfQklORElORworICAgICAgICBDdXN0b21EZWxl
dGVQcm9wZXJ0eSwKKyNlbmRpZgorICAgIF0gRGF0YVRyYW5zZmVySXRlbUxpc3QgeworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsZW5ndGg7CisgICAgICAgIERhdGFUcmFuc2Zlckl0
ZW0gaXRlbShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIHVuc2lnbmVkIGxvbmcg
aW5kZXgpOworCisgICAgICAgIHZvaWQgY2xlYXIoKTsKKyAgICAgICAgdm9pZCBhZGQoaW4gW09w
dGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgZGF0YSwgCisgICAgICAgICAg
ICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIHR5cGUp
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0
YVRyYW5zZmVySXRlbXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDAyMjNj
NzYwNTYyZGZkOTFjODA5ZmMzMTcxZjUxNTM4NjAxMTcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJ
dGVtcy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBk
aXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtcy5oIgotCi0jaW5jbHVk
ZSAiRGF0YVRyYW5zZmVySXRlbS5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLQotI2lm
IEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLURh
dGFUcmFuc2Zlckl0ZW1zOjpEYXRhVHJhbnNmZXJJdGVtcyhQYXNzUmVmUHRyPENsaXBib2FyZD4g
Y2xpcGJvYXJkLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotICAgIDogbV9vd25l
cihjbGlwYm9hcmQpCi0gICAgLCBtX2NvbnRleHQoY29udGV4dCkKLXsKLX0KLQotc2l6ZV90IERh
dGFUcmFuc2Zlckl0ZW1zOjpsZW5ndGgoKSBjb25zdAotewotICAgIGlmIChtX293bmVyLT5wb2xp
Y3koKSA9PSBDbGlwYm9hcmROdW1iKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVybiBt
X2l0ZW1zLnNpemUoKTsKLX0KLQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJh
bnNmZXJJdGVtczo6aXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KQotewotICAgIGlmIChtX293bmVy
LT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iIHx8IGluZGV4ID49IGxlbmd0aCgpKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIHJldHVybiBtX2l0ZW1zW2luZGV4XTsKLX0KLQotdm9pZCBEYXRh
VHJhbnNmZXJJdGVtczo6ZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25D
b2RlJiBlYykKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFi
bGUpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGlmIChpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV9pdGVtcy5yZW1vdmUoaW5kZXgpOwotfQotCi12b2lkIERhdGFUcmFuc2Zlckl0ZW1zOjpj
bGVhcigpCi17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2l0ZW1zLmNsZWFyKCk7Ci0KLX0KLQotdm9pZCBE
YXRhVHJhbnNmZXJJdGVtczo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0
eXBlLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0g
Q2xpcGJvYXJkV3JpdGFibGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIE9ubHkgb25lICdz
dHJpbmcnIGl0ZW0gd2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlv
bi4KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgaWYgKG1faXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQo
KSA9PSBEYXRhVHJhbnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7Ci0gICAgICAgICAgICBlYyA9IElO
VkFMSURfU1RBVEVfRVJSOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fb3duZXIsIG1f
Y29udGV4dCwgZGF0YSwgdHlwZSkpOwotfQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RGF0YVRyYW5zZmVySXRlbXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc2Yzk0
OWEyODM3MWJjOWQyN2E0NDA0NmUwM2U0MmRhNjgxNWYxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVy
SXRlbXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgot
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERhdGFUcmFuc2Zl
ckl0ZW1zX2gKLSNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbXNfaAotCi0jaWYgRU5BQkxFKERBVEFf
VFJBTlNGRVJfSVRFTVMpCi0KLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtLmgiCi0jaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENsaXBib2FyZDsKLQotdHlwZWRlZiBpbnQgRXhjZXB0aW9u
Q29kZTsKLQotY2xhc3MgRGF0YVRyYW5zZmVySXRlbXMgOiBwdWJsaWMgUmVmQ291bnRlZDxEYXRh
VHJhbnNmZXJJdGVtcz4gewotcHVibGljOgotICAgIHZpcnR1YWwgfkRhdGFUcmFuc2Zlckl0ZW1z
KCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHNpemVfdCBsZW5ndGgoKSBjb25zdDsKLSAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRp
b25Db2RlJik7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyKCk7Ci0gICAgdmlydHVhbCB2b2lkIGFk
ZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYp
OwotCi1wcm90ZWN0ZWQ6Ci0gICAgRGF0YVRyYW5zZmVySXRlbXMoUGFzc1JlZlB0cjxDbGlwYm9h
cmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7Ci0KLXByb3RlY3RlZDoKLSAgICBSZWZQdHI8
Q2xpcGJvYXJkPiBtX293bmVyOwotICAgIC8vIEluZGlyZWN0bHkgb3duZWQgYnkgb3VyIHBhcmVu
dC4KLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7Ci0gICAgVmVjdG9yPFJl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiA+IG1faXRlbXM7Ci0KLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQotCi0jZW5k
aWYgLy8gRGF0YVRyYW5zZmVySXRlbXNfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRGF0YVRyYW5zZmVySXRlbXMuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zl
ckl0ZW1zLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjlmNDE2ZDBmZTgzMTNi
NGU0OGY4YTFiODM2MGIzZDFkNGU1M2FlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuaWRs
CisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLW1vZHVsZSBjb3JlIHsKLQotICAgIGludGVy
ZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPURBVEFfVFJBTlNGRVJfSVRFTVMsCi0gICAgICAg
IEhhc0luZGV4R2V0dGVyLAotI2lmIGRlZmluZWQoVjhfQklORElORykgJiYgVjhfQklORElORwot
ICAgICAgICBDdXN0b21EZWxldGVQcm9wZXJ0eSwKLSNlbmRpZgotICAgIF0gRGF0YVRyYW5zZmVy
SXRlbXMgewotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsZW5ndGg7Ci0gICAgICAg
IERhdGFUcmFuc2Zlckl0ZW0gaXRlbShpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVd
IHVuc2lnbmVkIGxvbmcgaW5kZXgpOwotCi0gICAgICAgIHZvaWQgY2xlYXIoKTsKLSAgICAgICAg
dm9pZCBhZGQoaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBET01TdHJpbmcgZGF0
YSwgCi0gICAgICAgICAgICAgICAgIGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0g
RE9NU3RyaW5nIHR5cGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgIH07Ci0KLX0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmNwcAppbmRleCAwYmNkZWViZDZkMjliYzBiN2VmYmM4ZjdmM2VmZmUwNmM5NDFiOGM2Li4yNTA4
MTczYzY4MDI2ZGFlNjE1ODRiMmM2NGJlYTk4MjExMWJmNjAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCkBAIC0z
MSw3ICszMSw3IEBACiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRhT2JqZWN0LmgiCiAjaW5jbHVkZSAi
Q2xpcGJvYXJkTWltZVR5cGVzLmgiCiAjaW5jbHVkZSAiQ2xpcGJvYXJkVXRpbGl0aWVzQ2hyb21p
dW0uaCIKLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgiCisjaW5jbHVkZSAi
RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC0zMjQsOSArMzI0
LDkgQEAgYm9vbCBDbGlwYm9hcmRDaHJvbWl1bTo6aGFzRGF0YSgpCiB9CiAKICNpZiBFTkFCTEUo
REFUQV9UUkFOU0ZFUl9JVEVNUykKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbXM+IENsaXBi
b2FyZENocm9taXVtOjppdGVtcygpCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBD
bGlwYm9hcmRDaHJvbWl1bTo6aXRlbXMoKQogewotICAgIFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtPiBpdGVtcyA9IERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmNyZWF0ZSh0aGlz
LCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAgIFJl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtPiBpdGVtcyA9IERhdGFUcmFuc2Zlckl0
ZW1MaXN0Q2hyb21pdW06OmNyZWF0ZSh0aGlzLCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpOwogCiAgICAgaWYgKCFtX2RhdGFPYmplY3QpCiAgICAgICAgIHJl
dHVybiBpdGVtczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0NsaXBib2FyZENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9D
bGlwYm9hcmRDaHJvbWl1bS5oCmluZGV4IDI3YjE5Yzk1NGMyOGYwMDk2ZjM4ZGRmODZkZGNjNmZi
MzU2YzhmZmEuLjhiMTc0NTI3YTBjY2RmMTczNjMyMDQ4Mzc1MWFiN2ZmOWY2ZmRhZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21p
dW0uaApAQCAtODIsNyArODIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBoYXNEYXRhKCk7CiAKICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLSAg
ICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zPiBpdGVtcygpOworICAg
ICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IGl0ZW1zKCk7CiAj
ZW5kaWYKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMyMGU3NDkxNDQ2NTFiZjExNGY1YjE2ZTFhMTZhN2M1Yjk4NGZmZTMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdENocm9taXVtLmNwcApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uaCIKKworI2lmIEVOQUJM
RShEQVRBX1RSQU5TRkVSX0lURU1TKQorCisjaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCisjaW5jbHVk
ZSAiRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxp
c3RDaHJvbWl1bT4gRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6Y3JlYXRlKFBhc3NSZWZQ
dHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IERhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0ob3du
ZXIsIGNvbnRleHQpKTsKK30KKworRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6RGF0YVRy
YW5zZmVySXRlbUxpc3RDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCisgICAgOiBEYXRhVHJhbnNmZXJJdGVtTGlzdChv
d25lciwgY29udGV4dCkKK3sKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVt
OjphZGRQYXN0ZWJvYXJkSXRlbShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgbV9pdGVtcy5h
cHBlbmQoRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGVGcm9tUGFzdGVib2FyZChtX293
bmVyLCBtX2NvbnRleHQsIHR5cGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENo
cm9taXVtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYTMzMjFiNWFkMzlkNDVmYjQ2ZGU0ZWNlOGFiYzFiZGQzNjJm
M2EwZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uaApAQCAtMCwwICsxLDY1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBE
YXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtX2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbUxp
c3RDaHJvbWl1bV9oCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2luY2x1
ZGUgIkRhdGFUcmFuc2Zlckl0ZW1MaXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDbGlw
Ym9hcmQ7CitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW07CitjbGFzcyBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OworCit0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOworCitjbGFzcyBEYXRh
VHJhbnNmZXJJdGVtTGlzdENocm9taXVtIDogcHVibGljIERhdGFUcmFuc2Zlckl0ZW1MaXN0IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9t
aXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIENsaXBib2FyZENocm9taXVtOworCisg
ICAgRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIHZpcnR1YWwgdm9pZCBhZGRQYXN0ZWJvYXJk
SXRlbShjb25zdCBTdHJpbmcmIHR5cGUpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNlbmRpZiAvLyBEYXRh
VHJhbnNmZXJJdGVtTGlzdENocm9taXVtX2gKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY4NGNjYzQ0ZTc3NWE3ZWE5ZmI2Zjc4OWYx
MGU5NGY5MWE0ZTViMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0No
cm9taXVtLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oIgotCi0jaWYgRU5BQkxF
KERBVEFfVFJBTlNGRVJfSVRFTVMpCi0KLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIKLSNpbmNsdWRl
ICJEYXRhVHJhbnNmZXJJdGVtQ2hyb21pdW0uaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtc0No
cm9taXVtPiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlw
Ym9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShvd25lciwgY29udGV4
dCkpOwotfQotCi1EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtc0No
cm9taXVtKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCkKLSAgICA6IERhdGFUcmFuc2Zlckl0ZW1zKG93bmVyLCBjb250ZXh0KQotewot
fQotCi12b2lkIERhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW06OmFkZFBhc3RlYm9hcmRJdGVtKGNv
bnN0IFN0cmluZyYgdHlwZSkKLXsKLSAgICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVt
Q2hyb21pdW06OmNyZWF0ZUZyb21QYXN0ZWJvYXJkKG1fb3duZXIsIG1fY29udGV4dCwgdHlwZSkp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoREFUQV9U
UkFOU0ZFUl9JVEVNUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDA5OWEyMmYzZTQ0OTVkZTk5ZDY1ZjY4YzhjODM0YWU5MTljNWIzYy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtX2gK
LSNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bV9oCi0KLSNpZiBFTkFCTEUoREFUQV9U
UkFOU0ZFUl9JVEVNUykKLQotI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1zLmgiCi0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBDbGlwYm9hcmQ7Ci1jbGFzcyBEYXRhVHJhbnNmZXJJdGVtQ2hyb21p
dW07Ci1jbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwotCi10eXBlZGVmIGludCBFeGNlcHRp
b25Db2RlOwotCi1jbGFzcyBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtIDogcHVibGljIERhdGFU
cmFuc2Zlckl0ZW1zIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXJJdGVtc0Nocm9taXVtPiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0Kik7Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIENsaXBib2FyZENo
cm9taXVtOwotCi0gICAgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShQYXNzUmVmUHRyPENsaXBi
b2FyZD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKLQotICAgIHZpcnR1YWwgdm9pZCBhZGRQ
YXN0ZWJvYXJkSXRlbShjb25zdCBTdHJpbmcmIHR5cGUpOwotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi0KLSNlbmRp
ZiAvLyBEYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vcXQvQ2xpcGJvYXJkUXQuY3BwCmluZGV4IGU4YzUyMTQwZTAzZDkxNzBjNGY1YzlkZmIxYTBi
YzMyM2VmZjU1OGMuLmY0NjY1OWYxMzI0YzQ2NGRiYjEwZDcxZGE1NmRhYTM4NWQ3ZTlhNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmRRdC5oIgogCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2Uu
aCIKLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtc1F0LmgiCisjaW5jbHVkZSAiRGF0YVRyYW5z
ZmVySXRlbUxpc3RRdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0Rh
dGEuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC0zNTUsMTMgKzM1NSwxMyBAQCBib29sIENs
aXBib2FyZFF0OjpoYXNEYXRhKCkKIH0KIAogI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1T
KQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtcz4gQ2xpcGJvYXJkUXQ6Oml0ZW1zKCkKK1Bh
c3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3Q+IENsaXBib2FyZFF0OjppdGVtcygpCiB7CiAK
ICAgICBpZiAoIW1fZnJhbWUgJiYgIW1fZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVy
biAwOwogCi0gICAgUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zUXQ+IGl0ZW1zID0gRGF0YVRyYW5z
ZmVySXRlbXNRdDo6Y3JlYXRlKHRoaXMsIG1fZnJhbWUtPmRvY3VtZW50KCktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSk7CisgICAgUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ+IGl0ZW1z
ID0gRGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6Y3JlYXRlKHRoaXMsIG1fZnJhbWUtPmRvY3VtZW50
KCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAKICAgICBpZiAoIW1fcmVhZGFibGVEYXRh
KQogICAgICAgICByZXR1cm4gaXRlbXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9DbGlwYm9hcmRRdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJv
YXJkUXQuaAppbmRleCA4MTk5ZjIyNTIyMzFkYmU2NjE0ZjU1Y2Q3N2U0NmI1NzdkYzQ5OTNiLi5k
YzZiYTQxNzNjODc0YjBlYmY0MzI3ZmQyN2QzZmI1Yjc2ZWVmNTJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogICAg
IHZvaWQgaW52YWxpZGF0ZVdyaXRhYmxlRGF0YSgpIHsgbV93cml0YWJsZURhdGEgPSAwOyB9CiAK
ICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
RGF0YVRyYW5zZmVySXRlbXM+IGl0ZW1zKCk7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFU
cmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQ1ZmI2YmM3NjA3OTQwMWNiOWZmYjdmODI0NGRiMjhkYTEyYjMyYjcKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVt
TGlzdFF0LmNwcApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmgiCisKKyNp
ZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgor
I2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1RdC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1M
aXN0UXQ+IERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2Fy
ZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0KG93bmVyLCBjb250ZXh0KSk7Cit9
CisKK0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQoUGFzc1Jl
ZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQor
ICAgIDogRGF0YVRyYW5zZmVySXRlbUxpc3Qob3duZXIsICBjb250ZXh0KQoreworfQorCit2b2lk
IERhdGFUcmFuc2Zlckl0ZW1MaXN0UXQ6OmFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYg
dHlwZSkKK3sKKyAgICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtUXQ6OmNyZWF0ZUZy
b21QYXN0ZWJvYXJkKG1fb3duZXIsIG1fY29udGV4dCwgdHlwZSkpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0
UXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xNDQyNTYzZWU4ZjRlMGZhODYwY2I2NzU5ODk1YzExYjk2NjBmMGU0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVy
SXRlbUxpc3RRdC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
Tm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0X2gKKyNkZWZpbmUgRGF0YVRyYW5zZmVySXRlbUxp
c3RRdF9oCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2luY2x1ZGUgIkRh
dGFUcmFuc2Zlckl0ZW1MaXN0LmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDbGlwYm9hcmQ7
CitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtUXQ7CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0IDogcHVibGljIERhdGFUcmFuc2Zlckl0
ZW1MaXN0IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVt
TGlzdFF0PiBjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kik7CisKKyAgICBmcmllbmQgY2xhc3MgQ2xpcGJvYXJkUXQ7Citwcml2YXRlOgorICAgIERh
dGFUcmFuc2Zlckl0ZW1MaXN0UXQoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkUGFzdGVib2FyZEl0ZW0oY29uc3Qg
U3RyaW5nJiB0eXBlKTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShEQVRBX1RSQU5TRkVS
X0lURU1TKQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0
L0RhdGFUcmFuc2Zlckl0ZW1zUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0
YVRyYW5zZmVySXRlbXNRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmZWI4
M2U2YzI2M2YzYjg2YmUyMmQzZWJlMDllOGFiNGQ2YjQ5NDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0
YVRyYW5zZmVySXRlbXNRdC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJEYXRhVHJh
bnNmZXJJdGVtc1F0LmgiCi0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLQotI2lu
Y2x1ZGUgIkNsaXBib2FyZC5oIgotI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1RdC5oIgotI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVm
UHRyPERhdGFUcmFuc2Zlckl0ZW1zUXQ+IERhdGFUcmFuc2Zlckl0ZW1zUXQ6OmNyZWF0ZShQYXNz
UmVmUHRyPENsaXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQp
Ci17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEYXRhVHJhbnNmZXJJdGVtc1F0KG93bmVyLCBj
b250ZXh0KSk7Ci19Ci0KLURhdGFUcmFuc2Zlckl0ZW1zUXQ6OkRhdGFUcmFuc2Zlckl0ZW1zUXQo
UGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0KQotICAgIDogRGF0YVRyYW5zZmVySXRlbXMob3duZXIsICBjb250ZXh0KQotewotfQotCi12
b2lkIERhdGFUcmFuc2Zlckl0ZW1zUXQ6OmFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYg
dHlwZSkKLXsKLSAgICBtX2l0ZW1zLmFwcGVuZChEYXRhVHJhbnNmZXJJdGVtUXQ6OmNyZWF0ZUZy
b21QYXN0ZWJvYXJkKG1fb3duZXIsIG1fY29udGV4dCwgdHlwZSkpOwotfQotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1zUXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1zUXQuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmUxNzI3MjkyZjk2M2JmNmRlNmQwMzYxMWM1ZDYx
ZDQxMGQ3ZTI5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtc1F0LmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lh
IENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
LSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
RGF0YVRyYW5zZmVySXRlbXNRdF9oCi0jZGVmaW5lIERhdGFUcmFuc2Zlckl0ZW1zUXRfaAotCi0j
aWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi0KLSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJ
dGVtcy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2xpcGJvYXJkOwotY2xhc3MgRGF0YVRy
YW5zZmVySXRlbVF0OwotY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLQotY2xhc3MgRGF0
YVRyYW5zZmVySXRlbXNRdCA6IHB1YmxpYyBEYXRhVHJhbnNmZXJJdGVtcyB7Ci1wdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbXNRdD4gY3JlYXRlKFBhc3NSZWZQ
dHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotCi0gICAgZnJpZW5kIGNs
YXNzIENsaXBib2FyZFF0OwotcHJpdmF0ZToKLSAgICBEYXRhVHJhbnNmZXJJdGVtc1F0KFBhc3NS
ZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotCi0gICAgdmlydHVh
bCB2b2lkIGFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSk7Ci19OwotCi19Ci0K
LSNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLQotI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112937</attachid>
            <date>2011-10-28 16:14:03 -0700</date>
            <delta_ts>2011-10-29 16:27:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71151-20111028161401.patch</filename>
            <type>text/plain</type>
            <size>63071</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3NjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmZWEzNDAxMDRjODkyYjEx
ZjFkMTFjODc1ODIzOTBhYTA1NjQwNDg3Li5hNTA2NGI4NDg3YTQ0ZDdiMWEyZTEyYTk0ZTdmODQ0
M2JmZjliNTdhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIgQEAKKzIwMTEtMTAtMjggIERhbmll
bCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIERhdGFUcmFu
c2Zlckl0ZW1zIHRvIERhdGFUcmFuc2Zlckl0ZW1MaXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTE1MQorCisgICAgICAgIFBlciBmZWVkYmFjayB0
aGF0IEl0ZW1zIGFuZCBJdGVtIGFyZSBoYXJkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4sIHRoZSBI
VE1MNSBzcGVjIHJlbmFtZWQKKyAgICAgICAgRGF0YVRyYW5zZmVySXRlbXMgdG8gRGF0YVRyYW5z
ZmVySXRlbUxpc3Q6CisgICAgICAgIGh0dHA6Ly93d3cud2hhdHdnLm9yZy9zcGVjcy93ZWItYXBw
cy9jdXJyZW50LXdvcmsvbXVsdGlwYWdlL2RuZC5odG1sI3RoZS1kYXRhdHJhbnNmZXJpdGVtbGlz
dC1pbnRlcmZhY2UKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIENvZGVHZW5lcmF0b3JzLnByaToKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6
CisgICAgICAgICogZG9tL0NsaXBib2FyZC5oOgorICAgICAgICAqIGRvbS9DbGlwYm9hcmQuaWRs
OgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHA6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0OjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YVRyYW5zZmVySXRlbUxpc3Q6Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRy
YW5zZmVySXRlbUxpc3Q6OmRlbGV0ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YVRyYW5z
ZmVySXRlbUxpc3Q6OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1M
aXN0OjphZGQpOgorICAgICAgICAqIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5oOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmguCisgICAgICAgIChX
ZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdDo6fkRhdGFUcmFuc2Zlckl0ZW1MaXN0KToKKyAg
ICAgICAgKiBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9h
cmRDaHJvbWl1bTo6aXRlbXMpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0NsaXBib2Fy
ZENocm9taXVtLmg6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRl
bUxpc3RDaHJvbWl1bS5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
aHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmNwcC4KKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtOjpEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9t
aXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW06OmFk
ZFBhc3RlYm9hcmRJdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtTGlzdENocm9taXVtLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmguCisgICAgICAgICogcGxhdGZv
cm0vcXQvQ2xpcGJvYXJkUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xpcGJvYXJkUXQ6Oml0
ZW1zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5oOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbXNRdC5jcHAuCisgICAgICAgIChX
ZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YVRyYW5zZmVySXRlbUxpc3RRdDo6RGF0YVRyYW5zZmVySXRlbUxpc3RRdCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhVHJhbnNmZXJJdGVtTGlzdFF0OjphZGRQYXN0ZWJvYXJkSXRlbSk6
CisgICAgICAgICogcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5oOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbXNRdC5oLgor
CiAyMDExLTEwLTI4ICBKb2huIFN1bGxpdmFuICA8c3VsbGl2YW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYkNvcmUgcGFydCBvZjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDI4YzZkZmJmYjI3
NDEzYTVhNDUxMTI2Y2FiNjFiYjQ5Yzg3YWMwMS4uYTJlMjI0N2IzODk4ODRkYmY3NzhlYmRkN2Rm
OTRkYjVmZTA0ZjdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE0MSw3ICsxNDEsNyBAQCBT
RVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBkb20vQ29tbWVudC5pZGwKICAgICBkb20vQ29tcG9z
aXRpb25FdmVudC5pZGwKICAgICBkb20vQ3VzdG9tRXZlbnQuaWRsCi0gICAgZG9tL0RhdGFUcmFu
c2Zlckl0ZW1zLmlkbAorICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwKICAgICBkb20v
RGV2aWNlTW90aW9uRXZlbnQuaWRsCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uRXZlbnQuaWRs
CiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaWRsCkBAIC0xNDc1LDcgKzE0NzUsNyBAQCBJRiAo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpCiAgICAgKQogICAgIExJU1QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUwogICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKLSAgICAgICAgZG9t
L0RhdGFUcmFuc2Zlckl0ZW1zLmNwcAorICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3Qu
Y3BwCiAgICAgICAgIGRvbS9TdHJpbmdDYWxsYmFjay5jcHAKICAgICApCiBFTkRJRiAoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpIGIvU291cmNlL1dlYkNv
cmUvQ29kZUdlbmVyYXRvcnMucHJpCmluZGV4IDg1MjBmMzcyZDdiMzUzMTcwOTZjYTU1M2VjYzNk
Y2ExZDczMjYwYzYuLjZkMDAxNDQwOTZiMzQ4OGIwZjFlYzVlNTM2NDY5OTM5MGE0NTZlOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Db2RlR2VuZXJhdG9ycy5wcmkKQEAgLTExOCw3ICsxMTgsNyBAQCBJRExfQklORElO
R1MgKz0gXAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL0N1c3RvbUV2
ZW50LmlkbCBcCiAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaWRsIFwKLSAgICBkb20vRGF0YVRy
YW5zZmVySXRlbXMuaWRsIFwKKyAgICBkb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsIFwKICAg
ICBkb20vRGV2aWNlTW90aW9uRXZlbnQuaWRsIFwKICAgICBkb20vRGV2aWNlT3JpZW50YXRpb25F
dmVudC5pZGwgXAogICAgIGRvbS9Eb2N1bWVudEZyYWdtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5jcHAKaW5kZXggMDM2ZDkzMWQzZmZkYWE5MTkyYzg0ZjgyNWI1YjA1ZGIxMzQxZTQ1
My4uYzg1YWIxZWRjZmVhM2IzZmI0NDU5M2I4Mjc3MmI2ZDJlOTY2NWFmOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLmNwcApAQCAtNzEsNyArNzEsNyBAQAogI2luY2x1ZGUgIkpTRGF0YWJhc2VD
YWxsYmFjay5jcHAiCiAjaW5jbHVkZSAiSlNEYXRhYmFzZVN5bmMuY3BwIgogI2luY2x1ZGUgIkpT
RGF0YVRyYW5zZmVySXRlbS5jcHAiCi0jaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtcy5jcHAi
CisjaW5jbHVkZSAiSlNEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAiCiAjaW5jbHVkZSAiSlNEYXRh
Vmlldy5jcHAiCiAjaW5jbHVkZSAiSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcCIKICNpbmNs
dWRlICJKU0RldmljZU9yaWVudGF0aW9uRXZlbnQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggZTVkNGYxNjE2ZDMzOWNlYjhmZWI5OGQ3ZmI1MTU1MDY2MjgwZDRjMi4uMjBl
NzY0MGQxN2VlNWI3YmVmNzQ4YjEzOTIxOTE3ZTE5NDI3YTc2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC0xMjYsOSArMTI2LDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgRE9N
VVJMIFwKICAgICBET01XaW5kb3cgXAogICAgIERhdGFUcmFuc2Zlckl0ZW0gXAotICAgIERhdGFU
cmFuc2Zlckl0ZW0gXAotICAgIERhdGFUcmFuc2Zlckl0ZW1zIFwKLSAgICBEYXRhVHJhbnNmZXJJ
dGVtcyBcCisgICAgRGF0YVRyYW5zZmVySXRlbUxpc3QgXAogICAgIERhdGFWaWV3IFwKICAgICBE
YXRhYmFzZSBcCiAgICAgRGF0YWJhc2VDYWxsYmFjayBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQppbmRleCBjZmU2MzYyNTQwMjk4YWI3OThhZTk1NzM3YTI5NjY1YzNlZDg3OThhLi5kMDIy
ZDEwODdlMDY3MDk0MTc1MzY2OGQzZTYxNWJhYThlYzI1MGJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KQEAgLTEwNCw4ICsxMDQsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0g
XAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NWYWx1ZUxpc3QuaCBcCiAJRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0N1c3RvbUV2ZW50LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0N1c3RvbUV2ZW50LmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVHJhbnNm
ZXJJdGVtcy5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVySXRlbXMu
Y3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTRGF0YVRyYW5zZmVySXRlbUxpc3QuaCBc
CisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFWaWV3LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RhdGFWaWV3LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0LmNwcCBcCkBAIC00MjIzLDE1ICs0MjIzLDE1IEBAIGlmIEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TCiB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNEYXRhVHJhbnNmZXJJdGVtLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0RhdGFUcmFuc2Zlckl0ZW0uaCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0RhdGFUcmFuc2Zlckl0ZW1zLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0RhdGFU
cmFuc2Zlckl0ZW1zLmggXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVHJhbnNmZXJJ
dGVtTGlzdC5jcHAgXAorCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNEYXRhVHJhbnNmZXJJdGVt
TGlzdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3RyaW5nQ2FsbGJhY2suY3BwIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU3RyaW5nQ2FsbGJhY2suaAogd2ViY29yZV9zb3Vy
Y2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtLmggXAotCVNvdXJjZS9XZWJDb3JlL2Rv
bS9EYXRhVHJhbnNmZXJJdGVtcy5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNm
ZXJJdGVtcy5oIFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaCBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1N0
cmluZ0NhbGxiYWNrLmgKIGVuZGlmICMgRU5EIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggNTk5NjA0NjY4OTYzNjI4MzcxNWQ3OGJmZTMxMTVjNDRlNmFjMjMz
My4uNGU0MjM2MmE5NWRjMzkxNWVjZjE5YTQ4Yjc5NjhkODE5MTcyM2JkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQpAQCAtMTE3MSw3ICsxMTcxLDcgQEAKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTGlz
dC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9ET01TdHJpbmdNYXAuaWRsJywKICAgICAgICAgICAg
ICdkb20vRGF0YVRyYW5zZmVySXRlbS5pZGwnLAotICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNm
ZXJJdGVtcy5pZGwnLAorICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwn
LAogICAgICAgICAgICAgJ2RvbS9EZXZpY2VNb3Rpb25FdmVudC5pZGwnLAogICAgICAgICAgICAg
J2RvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL0RvY3Vt
ZW50LmlkbCcsCkBAIC0zMjA0LDggKzMyMDQsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL0N1cnNvckNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUNocm9taXVtLmgnLAotICAgICAgICAgICAgJ3BsYXRm
b3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3BwJywKLSAgICAgICAgICAg
ICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtLmgnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0uY3Bw
JywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENo
cm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21p
dW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YVJlZi5oJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9EcmFnSW1hZ2VDaHJvbWl1bU1hYy5jcHAn
LApAQCAtNTE4NSw4ICs1MTg1LDggQEAKICAgICAgICAgICAgICdkb20vRE9NU3RyaW5nTWFwLmgn
LAogICAgICAgICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtLmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCcsCi0gICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0
ZW1zLmNwcCcsCi0gICAgICAgICAgICAnZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgnLAorICAgICAg
ICAgICAgJ2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAnLAorICAgICAgICAgICAgJ2RvbS9E
YXRhVHJhbnNmZXJJdGVtTGlzdC5oJywKICAgICAgICAgICAgICdkb20vRGF0YXNldERPTVN0cmlu
Z01hcC5jcHAnLAogICAgICAgICAgICAgJ2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgnLAogICAg
ICAgICAgICAgJ2RvbS9EZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyLmNwcCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CmluZGV4IDFhNDQ3Mjg1OTJiYzI2MmFlNTdmMDY4MWY5YTFhZTMwNmY1ZmZmMmIuLjI3NjY3MGFk
OTdlMzAzYTk0NzEwYTA4ZjQ5ZjY1M2I1NTBkZGIzNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0yOTQy
LDE2ICsyOTQyLDE2IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNF
PTEpIHsKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TPTEpIHsK
ICAgICBIRUFERVJTICs9IFwKICAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0ZW0uaCBcCi0gICAg
ICAgIGRvbS9EYXRhVHJhbnNmZXJJdGVtcy5oIFwKKyAgICAgICAgZG9tL0RhdGFUcmFuc2Zlckl0
ZW1MaXN0LmggXAogICAgICAgICBkb20vU3RyaW5nQ2FsbGJhY2suaCBcCiAgICAgICAgIHBsYXRm
b3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1RdC5oIFwKLSAgICAgICAgcGxhdGZvcm0vcXQvRGF0YVRy
YW5zZmVySXRlbXNRdC5oCisgICAgICAgIHBsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0
UXQuaAogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAg
XAotICAgICAgICBkb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwIFwKKyAgICAgICAgZG9tL0RhdGFU
cmFuc2Zlckl0ZW1MaXN0LmNwcCBcCiAgICAgICAgIGRvbS9TdHJpbmdDYWxsYmFjay5jcHAgXAog
ICAgICAgICBwbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtUXQuY3BwIFwKLSAgICAgICAgcGxh
dGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbXNRdC5jcHAKKyAgICAgICAgcGxhdGZvcm0vcXQvRGF0
YVRyYW5zZmVySXRlbUxpc3RRdC5jcHAKIH0KIAogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0ZJ
TEVfU1lTVEVNPTEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKaW5kZXggNDk3Y2NjZTdlNGRiYjVlOWE0ZGIzODk3Mzg5ODNmYThiMzJlNzI4MC4uZTAw
Y2RjNmQ5YmM0Y2E4ODEwZmFhZDMzNzA3OThiYWZhMDU1YmM5MyAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2ODIsNyArMjY4Miw3IEBACiAJ
CQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNEYXRhVHJh
bnNmZXJJdGVtcy5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbUxp
c3QuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KIAkJCQkJTmFtZT0iRGVidWd8
V2luMzIiCkBAIC0yNzM0LDcgKzI3MzQsNyBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CiAJ
CQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0RhdGFUcmFuc2Zlckl0
ZW1zLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXCQo
UHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTRGF0YVRyYW5zZmVySXRlbUxpc3QuaCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQpAQCAtNDQwMTQsNyArNDQwMTQsNyBAQAogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YVRyYW5z
ZmVySXRlbXMuY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFuc2Zlckl0ZW1M
aXN0LmNwcCIKIAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCiAJCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIgpAQCAtNDQwNjYsNyArNDQwNjYsNyBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXERhdGFUcmFu
c2Zlckl0ZW1zLmgiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cRGF0YVRyYW5zZmVySXRlbUxp
c3QuaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRkOWVmZjE4YjdlNmFkNTdj
MTc4NzdiNmFjZTEwOGZjNjkxOTg2MmIuLmJkZWY3NjlmOWZmN2ZiNTVmMDlkMjJkZjhjMDY1NDNm
YWQwMTVhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTE3NjQsNyArMTc2NCw3IEBACiAJCTc3QTE3QUE3MTJGMjhCMkEwMDRF
MDJGNiAvKiBKU09FU1ZlcnRleEFycmF5T2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3N0ExN0FBMzEyRjI4QjJBMDA0RTAyRjYgLyogSlNPRVNW
ZXJ0ZXhBcnJheU9iamVjdC5oICovOyB9OwogCQk3N0VGNjJGMzEyRjlEQjc0MDBDNzdCRDIgLyog
SlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc3RUY2MkYxMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVMuY3BwICovOyB9OwogCQk3N0VGNjJGNDEyRjlEQjc0MDBDNzdC
RDIgLyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3N0VGNjJGMjEyRjlEQjc0MDBDNzdCRDIgLyogSlNX
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggKi87IH07Ci0JCTc4MTc1NTg2MTM2NUExQjAwMDkz
QkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3ODE3NTU4NTEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5z
ZmVySXRlbXMuY3BwICovOyB9OworCQk3ODE3NTU4NjEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRy
YW5zZmVySXRlbUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzgxNzU1ODUxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0
LmNwcCAqLzsgfTsKIAkJNzlBQzkyMTgxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
OUFDOTIxNjEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmNwcCAqLzsgfTsK
IAkJNzlBQzkyMTkxMDk5NDVDODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzlBQzkyMTcxMDk5NDVD
ODAwMjEyNjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5oICovOyB9OwogCQk3OUYyRjVBMTEwOTE5
MzlBMDAwRDg3Q0IgLyogQ29tcG9zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3OUYyRjU5RTEwOTE5MzlBMDAwRDg3Q0IgLyogQ29t
cG9zaXRpb25FdmVudC5jcHAgKi87IH07CkBAIC0xODIzLDcgKzE4MjMsNyBAQAogCQk4MUE3MzI2
MDEyMTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQTczMjVGMTIxMDE4QTQwMEZDMEQ5RSAvKiBJREJD
dXJzb3IuY3BwICovOyB9OwogCQk4MUE3MzI3ODEyMTAxOUUxMDBGQzBEOUUgLyogSURCQ3Vyc29y
QmFja2VuZEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICov
OyB9OwogCQk4MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFBQzU5OTcxMzE2
MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLzsgfTsKLQkJODFBQzU5OUExMzE2
MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0
YVRyYW5zZmVySXRlbXMuaCAqLzsgfTsKKwkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERh
dGFUcmFuc2Zlckl0ZW1MaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxp
c3QuaCAqLzsgfTsKIAkJODFBQzZDMzYxMzFDNTdEMzAwMDlBN0UwIC8qIFN0cmluZ0NhbGxiYWNr
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUFDNkMz
NTEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2suaCAqLzsgfTsKIAkJODFCRTIwOTgx
MUY0QUI4RDAwOTE1REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMDkzMTFGNEFCOEQwMDkxNURG
QSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAgKi87IH07CiAJCTgxQkUyMDk5MTFGNEFCOEQw
MDkxNURGQSAvKiBJREJDdXJzb3JCYWNrZW5kSW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUJFMjA5NDExRjRBQjhEMDA5MTVERkEgLyog
SURCQ3Vyc29yQmFja2VuZEludGVyZmFjZS5oICovOyB9OwpAQCAtODk1Myw3ICs4OTUzLDcgQEAK
IAkJNzdBMTdBQTMxMkYyOEIyQTAwNEUwMkY2IC8qIEpTT0VTVmVydGV4QXJyYXlPYmplY3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNPRVNWZXJ0ZXhBcnJheU9iamVjdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3N0VGNjJGMTEyRjlEQjc0MDBDNzdCRDIg
LyogSlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTc3RUY2MkYyMTJGOURCNzQwMEM3N0JEMiAvKiBKU1dlYkdM
VmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTc4MTc1NTg1MTM2NUExQjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTc4MTc1NTg1MTM2NUExQjAwMDkzQkUyRSAv
KiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTc5QUM5MjE2MTA5OTQ1QzgwMDIxMjY2RSAvKiBKU0NvbXBvc2l0aW9uRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDb21wb3NpdGlvbkV2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzlBQzkyMTcxMDk5NDVDODAwMjEy
NjZFIC8qIEpTQ29tcG9zaXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0NvbXBvc2l0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzlGMkY1OUUxMDkxOTM5QTAwMEQ4N0NCIC8qIENvbXBvc2l0aW9uRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcG9zaXRpb25FdmVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MDE3LDkgKzkwMTcsOSBAQAogCQk4MUE3MzI1RjEy
MTAxOEE0MDBGQzBEOUUgLyogSURCQ3Vyc29yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IElEQkN1cnNvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgxQTczMjc3MTIxMDE5RTEwMEZDMEQ5RSAvKiBJREJDdXJzb3JCYWNrZW5kSW1wbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJDdXJzb3JCYWNrZW5kSW1wbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNTk5NzEzMTYzNkU2MDAwOUE3RTAgLyogRGF0
YVRyYW5zZmVySXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhVHJh
bnNmZXJJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgxQUM1OTk4MTMxNjM2
RTYwMDA5QTdFMCAvKiBEYXRhVHJhbnNmZXJJdGVtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4MUFDNTk5ODEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbUxpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YVRyYW5zZmVySXRlbUxpc3QuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFBQzVBRTgxMzE2MzkyRTAwMDlBN0UwIC8q
IERhdGFUcmFuc2Zlckl0ZW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhdGFUcmFuc2Zl
ckl0ZW0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MUFDNUFFOTEzMTYzOTJF
MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IERhdGFUcmFuc2Zlckl0ZW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFB
QzVBRTkxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBEYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTgxQUM2QzM0MTMxQzU3QzIwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFj
ay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU3RyaW5nQ2FsbGJhY2suaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MUFDNkMzNTEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5n
Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyaW5nQ2FsbGJh
Y2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFCRTIwOTMxMUY0QUI4RDAwOTE1
REZBIC8qIElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IElEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTIwOTI2LDkgKzIwOTI2LDkgQEAKIAkJCQk4MTVFNjE2NjEzMjU4N0FBMDBC
NjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAgKi8sCiAJCQkJODFBQzU5OTcxMzE2MzZFNjAw
MDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW0uaCAqLywKIAkJCQk4MUFDNUFFODEzMTYzOTJFMDAw
OUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5pZGwgKi8sCi0JCQkJNzgxNzU1ODUxMzY1QTFCMDAw
OTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmNwcCAqLywKLQkJCQk4MUFDNTk5ODEzMTYzNkU2
MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaCAqLywKLQkJCQk4MUFDNUFFOTEzMTYzOTJF
MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbXMuaWRsICovLAorCQkJCTc4MTc1NTg1MTM2NUEx
QjAwMDkzQkUyRSAvKiBEYXRhVHJhbnNmZXJJdGVtTGlzdC5jcHAgKi8sCisJCQkJODFBQzU5OTgx
MzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmggKi8sCisJCQkJODFBQzVB
RTkxMzE2MzkyRTAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1MaXN0LmlkbCAqLywKIAkJCQlB
OEMyMjhBMDExRDU3MjJFMDBENUE3RDMgLyogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5jcHAg
Ki8sCiAJCQkJQThDMjI4OUYxMUQ1NzIyRTAwRDVBN0QzIC8qIERlY29kZWREYXRhRG9jdW1lbnRQ
YXJzZXIuaCAqLywKIAkJCQkzMUZCMUE0RjEyMEE1RDA2MDBEQzAyQTAgLyogRGV2aWNlTW90aW9u
Q2xpZW50LmggKi8sCkBAIC0yMTgyOSw3ICsyMTgyOSw3IEBACiAJCQkJQkMyMjc0NkYwRTgzNjY0
NTAwRTdGOTc1IC8qIERhdGFSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2NDFDMTFEN0Y0
MTYwMDY0NTVCMCAvKiBEYXRhc2V0RE9NU3RyaW5nTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQk4
MUFDNTk5OTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5zZmVySXRlbS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJODFBQzU5OUExMzE2MzZFNjAwMDlBN0UwIC8qIERhdGFUcmFuc2Zlckl0ZW1zLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk4MUFDNTk5QTEzMTYzNkU2MDAwOUE3RTAgLyogRGF0YVRyYW5z
ZmVySXRlbUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFOTdDQ0VCMTI5MzlDQjgwMEM1QzhG
RiAvKiBEYXRhVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU3MzJCMEIxMzZBMTYxRDAwNUM4
RDdDIC8qIERhdGVDb21wb25lbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0RCNjEyNTFG
MTJEMDAzRUYyNjkgLyogRGF0ZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTEzNSw3
ICsyNTEzNSw3IEBACiAJCQkJMUFENTFBMTUwQ0I1OUNEMzAwOTUzRDExIC8qIERhdGFiYXNlVHJh
Y2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0NjQxRDExRDdGNDE2MDA2NDU1QjAgLyog
RGF0YXNldERPTVN0cmluZ01hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MTVFNjE2NzEzMjU4
N0FBMDBCNjIyQjAgLyogRGF0YVRyYW5zZmVySXRlbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk3
ODE3NTU4NjEzNjVBMUIwMDA5M0JFMkUgLyogRGF0YVRyYW5zZmVySXRlbXMuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNzgxNzU1ODYxMzY1QTFCMDAwOTNCRTJFIC8qIERhdGFUcmFuc2Zlckl0ZW1M
aXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFOTdDQ0VBMTI5MzlDQjgwMEM1QzhGRiAvKiBE
YXRhVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBNTczMkIwQTEzNkExNjFEMDA1QzhEN0Mg
LyogRGF0ZUNvbXBvbmVudHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQjUxMjUxRjEy
RDAwM0VGMjY5IC8qIERhdGVJbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xp
cGJvYXJkLmgKaW5kZXggYjhjNDY3NjUyMmVhOWMxOTA0MWE1NTM0ZGUyZjBhZmI3YjNiOTkxYy4u
Zjk0NzI3YTBlOTliMDJmMDk5OTc0OWZhMGQ5OThkYjBjMDkzOTU1MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DbGlw
Ym9hcmQuaApAQCAtMzMsNyArMzMsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBj
bGFzcyBEYXRhVHJhbnNmZXJJdGVtczsKKyAgICBjbGFzcyBEYXRhVHJhbnNmZXJJdGVtTGlzdDsK
ICAgICBjbGFzcyBEcmFnRGF0YTsKICAgICBjbGFzcyBGaWxlTGlzdDsKICAgICBjbGFzcyBGcmFt
ZTsKQEAgLTk4LDcgKzk4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHNl
dERyYWdIYXNTdGFydGVkKCkgeyBtX2RyYWdTdGFydGVkID0gdHJ1ZTsgfQogCiAjaWYgRU5BQkxF
KERBVEFfVFJBTlNGRVJfSVRFTVMpCi0gICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXJJdGVtcz4gaXRlbXMoKSA9IDA7CisgICAgICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRh
VHJhbnNmZXJJdGVtTGlzdD4gaXRlbXMoKSA9IDA7CiAjZW5kaWYKICAgICAgICAgCiAgICAgcHJv
dGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NsaXBib2FyZC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbAppbmRleCBkNWJiMzMxMTdkNDQ5NjJjODVk
OGUyY2E2ZTNhNzYyYmNlNzhjM2M1Li5iYjdiYjI1Mjg2NDA2MzNmNjdkNjg4Y2NhNmQxN2NkNmUy
NmUwZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmlkbApAQCAtNDMsNyArNDMsNyBAQCBtb2R1
bGUgY29yZSB7CiAgICAgICAgIFtDdXN0b21dIHZvaWQgc2V0RHJhZ0ltYWdlKGluIEhUTUxJbWFn
ZUVsZW1lbnQgaW1hZ2UsIGluIGxvbmcgeCwgaW4gbG9uZyB5KQogICAgICAgICAgICAgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1EQVRBX1RSQU5TRkVSX0lURU1TLCBFbmFibGVkQXRSdW50aW1lPURhdGFUcmFuc2Zlckl0ZW1z
XSBEYXRhVHJhbnNmZXJJdGVtcyBpdGVtczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1EQVRBX1RSQU5TRkVSX0lURU1TLCBFbmFibGVkQXRSdW50aW1lPURhdGFUcmFu
c2Zlckl0ZW1zXSBEYXRhVHJhbnNmZXJJdGVtTGlzdCBpdGVtczsKICAgICB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNWZl
YWNhY2Y0ZjIzM2ZlZWZlZDMwZjQ5NjgzZTc5ZGY3ZDc2OGY0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmNwcApAQCAtMCwwICsxLDEw
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNm
ZXJJdGVtTGlzdC5oIgorCisjaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgorI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKKworI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0RhdGFUcmFuc2Zlckl0ZW1MaXN0OjpEYXRhVHJhbnNmZXJJ
dGVtTGlzdChQYXNzUmVmUHRyPENsaXBib2FyZD4gY2xpcGJvYXJkLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQorICAgIDogbV9vd25lcihjbGlwYm9hcmQpCisgICAgLCBtX2NvbnRl
eHQoY29udGV4dCkKK3sKK30KKworc2l6ZV90IERhdGFUcmFuc2Zlckl0ZW1MaXN0OjpsZW5ndGgo
KSBjb25zdAoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9hcmROdW1iKQor
ICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX2l0ZW1zLnNpemUoKTsKK30KKworUGFz
c1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6aXRlbSh1bnNp
Z25lZCBsb25nIGluZGV4KQoreworICAgIGlmIChtX293bmVyLT5wb2xpY3koKSA9PSBDbGlwYm9h
cmROdW1iIHx8IGluZGV4ID49IGxlbmd0aCgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJl
dHVybiBtX2l0ZW1zW2luZGV4XTsKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlzdDo6ZGVs
ZXRlSXRlbSh1bnNpZ25lZCBsb25nIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBp
ZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChp
bmRleCA+PSBsZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pdGVtcy5yZW1vdmUo
aW5kZXgpOworfQorCit2b2lkIERhdGFUcmFuc2Zlckl0ZW1MaXN0OjpjbGVhcigpCit7CisgICAg
aWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2l0ZW1zLmNsZWFyKCk7CisKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVt
TGlzdDo6YWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKKyAgICBpZiAobV9vd25lci0+cG9saWN5KCkgIT0gQ2xpcGJvYXJkV3Jp
dGFibGUpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIE9ubHkgb25lICdzdHJpbmcnIGl0ZW0g
d2l0aCBhIGdpdmVuIHR5cGUgaXMgYWxsb3dlZCBpbiB0aGUgY29sbGVjdGlvbi4KKyAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IG1faXRlbXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1f
aXRlbXNbaV0tPnR5cGUoKSA9PSB0eXBlICYmIG1faXRlbXNbaV0tPmtpbmQoKSA9PSBEYXRhVHJh
bnNmZXJJdGVtOjpraW5kU3RyaW5nKSB7CisgICAgICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVf
RVJSOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgbV9pdGVt
cy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbTo6Y3JlYXRlKG1fb3duZXIsIG1fY29udGV4dCwgZGF0
YSwgdHlwZSkpOworfQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RhdGFUcmFuc2Zlckl0ZW1MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVySXRlbUxpc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjMxOGU5MmQ5NThkOWFiMGI2MGE0M2ZjMWEzOTVh
MjJmOGQ2NTE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFu
c2Zlckl0ZW1MaXN0LmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVRyYW5zZmVySXRlbUxp
c3RfaAorI2RlZmluZSBEYXRhVHJhbnNmZXJJdGVtTGlzdF9oCisKKyNpZiBFTkFCTEUoREFUQV9U
UkFOU0ZFUl9JVEVNUykKKworI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0uaCIKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQ2xpcGJvYXJkOworCit0eXBlZGVmIGludCBFeGNlcHRpb25D
b2RlOworCitjbGFzcyBEYXRhVHJhbnNmZXJJdGVtTGlzdCA6IHB1YmxpYyBSZWZDb3VudGVkPERh
dGFUcmFuc2Zlckl0ZW1MaXN0PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RGF0YVRyYW5zZmVy
SXRlbUxpc3QoKSB7IH0KKworICAgIHZpcnR1YWwgc2l6ZV90IGxlbmd0aCgpIGNvbnN0OworICAg
IHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtPiBpdGVtKHVuc2lnbmVkIGxvbmcg
aW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgZGF0YSwgY29uc3QgU3RyaW5nJiB0eXBlLCBFeGNlcHRp
b25Db2RlJik7CisKK3Byb3RlY3RlZDoKKyAgICBEYXRhVHJhbnNmZXJJdGVtTGlzdChQYXNzUmVm
UHRyPENsaXBib2FyZD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworcHJvdGVjdGVkOgor
ICAgIFJlZlB0cjxDbGlwYm9hcmQ+IG1fb3duZXI7CisgICAgLy8gSW5kaXJlY3RseSBvd25lZCBi
eSBvdXIgcGFyZW50LgorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIG1fY29udGV4dDsKKyAg
ICBWZWN0b3I8UmVmUHRyPERhdGFUcmFuc2Zlckl0ZW0+ID4gbV9pdGVtczsKKworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRF
TVMpCisKKyNlbmRpZiAvLyBEYXRhVHJhbnNmZXJJdGVtTGlzdF9oCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtTGlzdC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMzM5Mzk1YjE3YTQ0
MWI4ZmMyZTI1NWEyYzBjNWJiZDYyZjNhYWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRGF0YVRyYW5zZmVySXRlbUxpc3QuaWRsCkBAIC0wLDAgKzEsNDggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlz
dHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwor
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUg
Y29yZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1EQVRBX1RSQU5T
RkVSX0lURU1TLAorICAgICAgICBIYXNJbmRleEdldHRlciwKKyNpZiBkZWZpbmVkKFY4X0JJTkRJ
TkcpICYmIFY4X0JJTkRJTkcKKyAgICAgICAgQ3VzdG9tRGVsZXRlUHJvcGVydHksCisjZW5kaWYK
KyAgICBdIERhdGFUcmFuc2Zlckl0ZW1MaXN0IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGxvbmcgbGVuZ3RoOworICAgICAgICBEYXRhVHJhbnNmZXJJdGVtIGl0ZW0oaW4gW09wdGlvbmFs
PUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBsb25nIGluZGV4KTsKKworICAgICAgICB2
b2lkIGNsZWFyKCk7CisgICAgICAgIHZvaWQgYWRkKGluIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1
bHRWYWx1ZV0gRE9NU3RyaW5nIGRhdGEsIAorICAgICAgICAgICAgICAgICBpbiBbT3B0aW9uYWw9
Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyB0eXBlKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5z
ZmVySXRlbXMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjAwMjIzYzc2MDU2MmRmZDkxYzgwOWZjMzE3
MWY1MTUzODYwMTE3MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRGF0YVRyYW5zZmVySXRlbXMuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMTA0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiRGF0YVRyYW5zZmVySXRlbXMuaCIKLQotI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW0u
aCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0KLSNpZiBFTkFCTEUoREFUQV9UUkFOU0ZF
Ul9JVEVNUykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1EYXRhVHJhbnNmZXJJdGVtczo6RGF0
YVRyYW5zZmVySXRlbXMoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IGNsaXBib2FyZCwgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICA6IG1fb3duZXIoY2xpcGJvYXJkKQotICAgICwg
bV9jb250ZXh0KGNvbnRleHQpCi17Ci19Ci0KLXNpemVfdCBEYXRhVHJhbnNmZXJJdGVtczo6bGVu
Z3RoKCkgY29uc3QKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJvYXJkTnVt
YikKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gbV9pdGVtcy5zaXplKCk7Ci19Ci0K
LVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbT4gRGF0YVRyYW5zZmVySXRlbXM6Oml0ZW0odW5z
aWduZWQgbG9uZyBpbmRleCkKLXsKLSAgICBpZiAobV9vd25lci0+cG9saWN5KCkgPT0gQ2xpcGJv
YXJkTnVtYiB8fCBpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBy
ZXR1cm4gbV9pdGVtc1tpbmRleF07Ci19Ci0KLXZvaWQgRGF0YVRyYW5zZmVySXRlbXM6OmRlbGV0
ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYg
KG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKSB7Ci0gICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoaW5k
ZXggPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXRlbXMucmVtb3ZlKGlu
ZGV4KTsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVtczo6Y2xlYXIoKQotewotICAgIGlmICht
X293bmVyLT5wb2xpY3koKSAhPSBDbGlwYm9hcmRXcml0YWJsZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgbV9pdGVtcy5jbGVhcigpOwotCi19Ci0KLXZvaWQgRGF0YVRyYW5zZmVySXRlbXM6OmFk
ZChjb25zdCBTdHJpbmcmIGRhdGEsIGNvbnN0IFN0cmluZyYgdHlwZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCi17Ci0gICAgaWYgKG1fb3duZXItPnBvbGljeSgpICE9IENsaXBib2FyZFdyaXRhYmxlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBPbmx5IG9uZSAnc3RyaW5nJyBpdGVtIHdpdGggYSBn
aXZlbiB0eXBlIGlzIGFsbG93ZWQgaW4gdGhlIGNvbGxlY3Rpb24uCi0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2l0ZW1zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChtX2l0ZW1zW2ld
LT50eXBlKCkgPT0gdHlwZSAmJiBtX2l0ZW1zW2ldLT5raW5kKCkgPT0gRGF0YVRyYW5zZmVySXRl
bTo6a2luZFN0cmluZykgewotICAgICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIG1faXRlbXMuYXBwZW5k
KERhdGFUcmFuc2Zlckl0ZW06OmNyZWF0ZShtX293bmVyLCBtX2NvbnRleHQsIGRhdGEsIHR5cGUp
KTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRh
VHJhbnNmZXJJdGVtcy5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE3NmM5NDlhMjgzNzFiYzlkMjdhNDQwNDZl
MDNlNDJkYTY4MTVmMTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw3MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBEYXRhVHJhbnNmZXJJdGVtc19oCi0jZGVmaW5lIERh
dGFUcmFuc2Zlckl0ZW1zX2gKLQotI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQotCi0j
aW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0j
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBDbGlwYm9hcmQ7Ci0KLXR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7Ci0KLWNsYXNzIERhdGFU
cmFuc2Zlckl0ZW1zIDogcHVibGljIFJlZkNvdW50ZWQ8RGF0YVRyYW5zZmVySXRlbXM+IHsKLXB1
YmxpYzoKLSAgICB2aXJ0dWFsIH5EYXRhVHJhbnNmZXJJdGVtcygpIHsgfQotCi0gICAgdmlydHVh
bCBzaXplX3QgbGVuZ3RoKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFu
c2Zlckl0ZW0+IGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7Ci0gICAgdmlydHVhbCB2b2lkIGRl
bGV0ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZpcnR1
YWwgdm9pZCBjbGVhcigpOwotICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3QgU3RyaW5nJiBkYXRh
LCBjb25zdCBTdHJpbmcmIHR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKLQotcHJvdGVjdGVkOgotICAg
IERhdGFUcmFuc2Zlckl0ZW1zKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOwotCi1wcm90ZWN0ZWQ6Ci0gICAgUmVmUHRyPENsaXBib2FyZD4gbV9vd25lcjsK
LSAgICAvLyBJbmRpcmVjdGx5IG93bmVkIGJ5IG91ciBwYXJlbnQuCi0gICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogbV9jb250ZXh0OwotICAgIFZlY3RvcjxSZWZQdHI8RGF0YVRyYW5zZmVySXRl
bT4gPiBtX2l0ZW1zOwotCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLQotI2VuZGlmIC8vIERhdGFUcmFuc2Zlckl0
ZW1zX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1z
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9EYXRhVHJhbnNmZXJJdGVtcy5pZGwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5ZjQxNmQwZmU4MzEzYjRlNDhmOGExYjgzNjBiM2QxZDRl
NTNhZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RhdGFUcmFuc2Zlckl0ZW1zLmlkbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1l
dDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi1tb2R1bGUgY29yZSB7Ci0KLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25k
aXRpb25hbD1EQVRBX1RSQU5TRkVSX0lURU1TLAotICAgICAgICBIYXNJbmRleEdldHRlciwKLSNp
ZiBkZWZpbmVkKFY4X0JJTkRJTkcpICYmIFY4X0JJTkRJTkcKLSAgICAgICAgQ3VzdG9tRGVsZXRl
UHJvcGVydHksCi0jZW5kaWYKLSAgICBdIERhdGFUcmFuc2Zlckl0ZW1zIHsKLSAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGxvbmcgbGVuZ3RoOwotICAgICAgICBEYXRhVHJhbnNmZXJJdGVtIGl0
ZW0oaW4gW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSB1bnNpZ25lZCBsb25nIGluZGV4
KTsKLQotICAgICAgICB2b2lkIGNsZWFyKCk7Ci0gICAgICAgIHZvaWQgYWRkKGluIFtPcHRpb25h
bD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gRE9NU3RyaW5nIGRhdGEsIAotICAgICAgICAgICAgICAg
ICBpbiBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIERPTVN0cmluZyB0eXBlKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICB9OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5jcHAKaW5kZXggMGJjZGVlYmQ2
ZDI5YmMwYjdlZmJjOGY3ZjNlZmZlMDZjOTQxYjhjNi4uMjUwODE3M2M2ODAyNmRhZTYxNTg0YjJj
NjRiZWE5ODIxMTFiZjYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1
ZGUgIkNocm9taXVtRGF0YU9iamVjdC5oIgogI2luY2x1ZGUgIkNsaXBib2FyZE1pbWVUeXBlcy5o
IgogI2luY2x1ZGUgIkNsaXBib2FyZFV0aWxpdGllc0Nocm9taXVtLmgiCi0jaW5jbHVkZSAiRGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1MaXN0
Q2hyb21pdW0uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRyYWdEYXRhLmgi
CiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtMzI0LDkgKzMyNCw5IEBAIGJvb2wgQ2xpcGJvYXJk
Q2hyb21pdW06Omhhc0RhdGEoKQogfQogCiAjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMp
Ci1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zPiBDbGlwYm9hcmRDaHJvbWl1bTo6aXRlbXMo
KQorUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4gQ2xpcGJvYXJkQ2hyb21pdW06Oml0
ZW1zKCkKIHsKLSAgICBSZWZQdHI8RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bT4gaXRlbXMgPSBE
YXRhVHJhbnNmZXJJdGVtc0Nocm9taXVtOjpjcmVhdGUodGhpcywgbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBSZWZQdHI8RGF0YVRyYW5zZmVySXRl
bUxpc3RDaHJvbWl1bT4gaXRlbXMgPSBEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtOjpjcmVh
dGUodGhpcywgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
IAogICAgIGlmICghbV9kYXRhT2JqZWN0KQogICAgICAgICByZXR1cm4gaXRlbXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaApp
bmRleCAyN2IxOWM5NTRjMjhmMDA5NmYzOGRkZjg2ZGRjYzZmYjM1NmM4ZmZhLi44YjE3NDUyN2Ew
Y2NkZjE3MzYzMjA0ODM3NTFhYjdmZjlmNmZkYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKQEAgLTgyLDcgKzgyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzRGF0YSgpOwog
CiAjaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi0gICAgICAgIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxEYXRhVHJhbnNmZXJJdGVtcz4gaXRlbXMoKTsKKyAgICAgICAgdmlydHVhbCBQYXNzUmVm
UHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0PiBpdGVtcygpOwogI2VuZGlmCiAKICAgICBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5z
ZmVySXRlbUxpc3RDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9EYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMjBlNzQ5MTQ0
NjUxYmYxMTRmNWIxNmUxYTE2YTdjNWI5ODRmZmUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5j
cHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEYXRhVHJh
bnNmZXJJdGVtTGlzdENocm9taXVtLmgiCisKKyNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVN
UykKKworI2luY2x1ZGUgIkNsaXBib2FyZC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1D
aHJvbWl1bS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW0+IERhdGFUcmFu
c2Zlckl0ZW1MaXN0Q2hyb21pdW06OmNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4gb3duZXIs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBEYXRhVHJhbnNmZXJJdGVtTGlzdENocm9taXVtKG93bmVyLCBjb250ZXh0KSk7Cit9CisK
K0RhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW06OkRhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21p
dW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0KQorICAgIDogRGF0YVRyYW5zZmVySXRlbUxpc3Qob3duZXIsIGNvbnRleHQpCit7Cit9
CisKK3ZvaWQgRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bTo6YWRkUGFzdGVib2FyZEl0ZW0o
Y29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIG1faXRlbXMuYXBwZW5kKERhdGFUcmFuc2Zlckl0
ZW1DaHJvbWl1bTo6Y3JlYXRlRnJvbVBhc3RlYm9hcmQobV9vd25lciwgbV9jb250ZXh0LCB0eXBl
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShEQVRB
X1RSQU5TRkVSX0lURU1TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEzMzIxYjVhZDM5ZDQ1ZmI0NmRlNGVjZThhYmMxYmRkMzYyZjNhMGUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVtTGlz
dENocm9taXVtLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVRyYW5zZmVySXRlbUxpc3RD
aHJvbWl1bV9oCisjZGVmaW5lIERhdGFUcmFuc2Zlckl0ZW1MaXN0Q2hyb21pdW1faAorCisjaWYg
RU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVt
TGlzdC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2xpcGJvYXJkOworY2xhc3MgRGF0YVRy
YW5zZmVySXRlbUNocm9taXVtOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKwordHlw
ZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKKworY2xhc3MgRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJv
bWl1bSA6IHB1YmxpYyBEYXRhVHJhbnNmZXJJdGVtTGlzdCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3RDaHJvbWl1bT4gY3JlYXRlKFBhc3NSZWZQ
dHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCitwcml2YXRlOgorICAg
IGZyaWVuZCBjbGFzcyBDbGlwYm9hcmRDaHJvbWl1bTsKKworICAgIERhdGFUcmFuc2Zlckl0ZW1M
aXN0Q2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgYWRkUGFzdGVib2FyZEl0ZW0oY29uc3QgU3RyaW5nJiB0
eXBlKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShE
QVRBX1RSQU5TRkVSX0lURU1TKQorCisjZW5kaWYgLy8gRGF0YVRyYW5zZmVySXRlbUxpc3RDaHJv
bWl1bV9oCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Rh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGM2ODRjY2M0NGU3NzVhN2VhOWZiNmY3ODlmMTBlOTRmOTFhNGU1YjIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCi0gKiBtZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRhdGFU
cmFuc2Zlckl0ZW1zQ2hyb21pdW0uaCIKLQotI2lmIEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1T
KQotCi0jaW5jbHVkZSAiQ2xpcGJvYXJkLmgiCi0jaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbUNo
cm9taXVtLmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bT4gRGF0YVRyYW5zZmVy
SXRlbXNDaHJvbWl1bTo6Y3JlYXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25lciwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IERh
dGFUcmFuc2Zlckl0ZW1zQ2hyb21pdW0ob3duZXIsIGNvbnRleHQpKTsKLX0KLQotRGF0YVRyYW5z
ZmVySXRlbXNDaHJvbWl1bTo6RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bShQYXNzUmVmUHRyPENs
aXBib2FyZD4gb3duZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBE
YXRhVHJhbnNmZXJJdGVtcyhvd25lciwgY29udGV4dCkKLXsKLX0KLQotdm9pZCBEYXRhVHJhbnNm
ZXJJdGVtc0Nocm9taXVtOjphZGRQYXN0ZWJvYXJkSXRlbShjb25zdCBTdHJpbmcmIHR5cGUpCi17
Ci0gICAgbV9pdGVtcy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOjpjcmVhdGVGcm9t
UGFzdGVib2FyZChtX293bmVyLCBtX2NvbnRleHQsIHR5cGUpKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNmZXJJdGVt
c0Nocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EYXRhVHJhbnNm
ZXJJdGVtc0Nocm9taXVtLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwOTlhMjJm
M2U0NDk1ZGU5OWQ2NWY2OGM4YzgzNGFlOTE5YzViM2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgRGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bV9oCi0jZGVmaW5lIERhdGFUcmFuc2Zl
ckl0ZW1zQ2hyb21pdW1faAotCi0jaWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi0KLSNp
bmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtcy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ2xp
cGJvYXJkOwotY2xhc3MgRGF0YVRyYW5zZmVySXRlbUNocm9taXVtOwotY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKLQotdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKLQotY2xhc3MgRGF0
YVRyYW5zZmVySXRlbXNDaHJvbWl1bSA6IHB1YmxpYyBEYXRhVHJhbnNmZXJJdGVtcyB7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbXNDaHJvbWl1bT4gY3Jl
YXRlKFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwotCi1w
cml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBDbGlwYm9hcmRDaHJvbWl1bTsKLQotICAgIERhdGFU
cmFuc2Zlckl0ZW1zQ2hyb21pdW0oUGFzc1JlZlB0cjxDbGlwYm9hcmQ+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgYWRkUGFzdGVib2FyZEl0ZW0oY29uc3Qg
U3RyaW5nJiB0eXBlKTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShEQVRBX1RSQU5TRkVSX0lURU1TKQotCi0jZW5kaWYgLy8gRGF0YVRyYW5zZmVySXRl
bXNDaHJvbWl1bV9oCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0Ns
aXBib2FyZFF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmNw
cAppbmRleCBlOGM1MjE0MGUwM2Q5MTcwYzRmNWM5ZGZiMWEwYmMzMjNlZmY1NThjLi5mNDY2NTlm
MTMyNGM0NjRkYmIxMGQ3MWRhNTZkYWEzODVkN2U5YTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9hcmRRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvQ2xpcGJvYXJkUXQuY3BwCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiQ2xp
cGJvYXJkUXQuaCIKIAogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCi0jaW5jbHVkZSAiRGF0YVRy
YW5zZmVySXRlbXNRdC5oIgorI2luY2x1ZGUgIkRhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiRWxl
bWVudC5oIgpAQCAtMzU1LDEzICszNTUsMTMgQEAgYm9vbCBDbGlwYm9hcmRRdDo6aGFzRGF0YSgp
CiB9CiAKICNpZiBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKLVBhc3NSZWZQdHI8RGF0YVRy
YW5zZmVySXRlbXM+IENsaXBib2FyZFF0OjppdGVtcygpCitQYXNzUmVmUHRyPERhdGFUcmFuc2Zl
ckl0ZW1MaXN0PiBDbGlwYm9hcmRRdDo6aXRlbXMoKQogewogCiAgICAgaWYgKCFtX2ZyYW1lICYm
ICFtX2ZyYW1lLT5kb2N1bWVudCgpKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxE
YXRhVHJhbnNmZXJJdGVtc1F0PiBpdGVtcyA9IERhdGFUcmFuc2Zlckl0ZW1zUXQ6OmNyZWF0ZSh0
aGlzLCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworICAg
IFJlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdFF0PiBpdGVtcyA9IERhdGFUcmFuc2Zlckl0ZW1M
aXN0UXQ6OmNyZWF0ZSh0aGlzLCBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpOwogCiAgICAgaWYgKCFtX3JlYWRhYmxlRGF0YSkKICAgICAgICAgcmV0dXJuIGl0
ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvQ2xpcGJvYXJkUXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0NsaXBib2FyZFF0LmgKaW5kZXggODE5OWYy
MjUyMjMxZGJlNjYxNGY1NWNkNzdlNDZiNTc3ZGM0OTkzYi4uZGM2YmE0MTczYzg3NGIwZWJmNDMy
N2ZkMjdkM2ZiNWI3NmVlZjUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvQ2xpcGJvYXJkUXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9DbGlwYm9h
cmRRdC5oCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGVXcml0
YWJsZURhdGEoKSB7IG1fd3JpdGFibGVEYXRhID0gMDsgfQogCiAjaWYgRU5BQkxFKERBVEFfVFJB
TlNGRVJfSVRFTVMpCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlckl0ZW1zPiBp
dGVtcygpOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdD4gaXRl
bXMoKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWZiNmJjNzYw
Nzk0MDFjYjlmZmI3ZjgyNDRkYjI4ZGExMmIzMmI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5jcHAKQEAgLTAsMCAr
MSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRGF0YVRyYW5zZmVySXRlbUxpc3RRdC5oIgorCisjaWYgRU5BQkxFKERBVEFfVFJBTlNG
RVJfSVRFTVMpCisKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJEYXRhVHJhbnNm
ZXJJdGVtUXQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVtTGlzdFF0PiBEYXRhVHJhbnNmZXJJ
dGVtTGlzdFF0OjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93bmVyLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgRGF0YVRy
YW5zZmVySXRlbUxpc3RRdChvd25lciwgY29udGV4dCkpOworfQorCitEYXRhVHJhbnNmZXJJdGVt
TGlzdFF0OjpEYXRhVHJhbnNmZXJJdGVtTGlzdFF0KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBvd25l
ciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKKyAgICA6IERhdGFUcmFuc2Zlckl0
ZW1MaXN0KG93bmVyLCAgY29udGV4dCkKK3sKK30KKwordm9pZCBEYXRhVHJhbnNmZXJJdGVtTGlz
dFF0OjphZGRQYXN0ZWJvYXJkSXRlbShjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgbV9pdGVt
cy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbVF0OjpjcmVhdGVGcm9tUGFzdGVib2FyZChtX293bmVy
LCBtX2NvbnRleHQsIHR5cGUpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtTGlzdFF0LmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTQ0MjU2
M2VlOGY0ZTBmYTg2MGNiNjc1OTg5NWMxMWI5NjYwZjBlNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1MaXN0UXQuaApAQCAtMCww
ICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGF0YVRyYW5zZmVySXRl
bUxpc3RRdF9oCisjZGVmaW5lIERhdGFUcmFuc2Zlckl0ZW1MaXN0UXRfaAorCisjaWYgRU5BQkxF
KERBVEFfVFJBTlNGRVJfSVRFTVMpCisKKyNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtTGlzdC5o
IgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2xpcGJvYXJkOworY2xhc3MgRGF0YVRyYW5zZmVy
SXRlbVF0OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKKworY2xhc3MgRGF0YVRyYW5z
ZmVySXRlbUxpc3RRdCA6IHB1YmxpYyBEYXRhVHJhbnNmZXJJdGVtTGlzdCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVySXRlbUxpc3RRdD4gY3JlYXRlKFBhc3NS
ZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCisgICAgZnJpZW5k
IGNsYXNzIENsaXBib2FyZFF0OworcHJpdmF0ZToKKyAgICBEYXRhVHJhbnNmZXJJdGVtTGlzdFF0
KFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCisgICAg
dmlydHVhbCB2b2lkIGFkZFBhc3RlYm9hcmRJdGVtKGNvbnN0IFN0cmluZyYgdHlwZSk7Cit9Owor
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoREFUQV9UUkFOU0ZFUl9JVEVNUykKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtc1F0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1zUXQuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZmViODNlNmMyNjNmM2I4NmJlMjJkM2Vi
ZTA5ZThhYjRkNmI0OTQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RhdGFUcmFuc2Zlckl0ZW1zUXQuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbXNRdC5oIgotCi0j
aWYgRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCi0KLSNpbmNsdWRlICJDbGlwYm9hcmQuaCIK
LSNpbmNsdWRlICJEYXRhVHJhbnNmZXJJdGVtUXQuaCIKLSNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXJJdGVt
c1F0PiBEYXRhVHJhbnNmZXJJdGVtc1F0OjpjcmVhdGUoUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IG93
bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRGF0YVRyYW5zZmVySXRlbXNRdChvd25lciwgY29udGV4dCkpOwotfQotCi1EYXRh
VHJhbnNmZXJJdGVtc1F0OjpEYXRhVHJhbnNmZXJJdGVtc1F0KFBhc3NSZWZQdHI8Q2xpcGJvYXJk
PiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKLSAgICA6IERhdGFUcmFu
c2Zlckl0ZW1zKG93bmVyLCAgY29udGV4dCkKLXsKLX0KLQotdm9pZCBEYXRhVHJhbnNmZXJJdGVt
c1F0OjphZGRQYXN0ZWJvYXJkSXRlbShjb25zdCBTdHJpbmcmIHR5cGUpCi17Ci0gICAgbV9pdGVt
cy5hcHBlbmQoRGF0YVRyYW5zZmVySXRlbVF0OjpjcmVhdGVGcm9tUGFzdGVib2FyZChtX293bmVy
LCBtX2NvbnRleHQsIHR5cGUpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKERBVEFfVFJBTlNGRVJfSVRFTVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtc1F0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9EYXRhVHJhbnNmZXJJdGVtc1F0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGJlMTcyNzI5MmY5NjNiZjZkZTZkMDM2MTFjNWQ2MWQ0MTBkN2UyOWQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vcXQvRGF0YVRyYW5zZmVySXRlbXNRdC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTYgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3Ig
aXRzIHN1YnNpZGlhcnkoLWllcykKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERhdGFUcmFuc2Zlckl0ZW1zUXRf
aAotI2RlZmluZSBEYXRhVHJhbnNmZXJJdGVtc1F0X2gKLQotI2lmIEVOQUJMRShEQVRBX1RSQU5T
RkVSX0lURU1TKQotCi0jaW5jbHVkZSAiRGF0YVRyYW5zZmVySXRlbXMuaCIKLSNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0KLWNsYXNzIENsaXBib2FyZDsKLWNsYXNzIERhdGFUcmFuc2Zlckl0ZW1RdDsKLWNsYXNz
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci0KLWNsYXNzIERhdGFUcmFuc2Zlckl0ZW1zUXQgOiBw
dWJsaWMgRGF0YVRyYW5zZmVySXRlbXMgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PERhdGFUcmFuc2Zlckl0ZW1zUXQ+IGNyZWF0ZShQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKLQotICAgIGZyaWVuZCBjbGFzcyBDbGlwYm9hcmRRdDsKLXBy
aXZhdGU6Ci0gICAgRGF0YVRyYW5zZmVySXRlbXNRdChQYXNzUmVmUHRyPENsaXBib2FyZD4sIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKLQotICAgIHZpcnR1YWwgdm9pZCBhZGRQYXN0ZWJvYXJk
SXRlbShjb25zdCBTdHJpbmcmIHR5cGUpOwotfTsKLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKERB
VEFfVFJBTlNGRVJfSVRFTVMpCi0KLSNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>