<?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>15779</bug_id>
          
          <creation_ts>2007-10-31 14:28:38 -0700</creation_ts>
          <short_desc>Custom CSS .cur cursor anchor point is ignored</short_desc>
          <delta_ts>2011-06-13 18:02:58 -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>CSS</component>
          <version>420+</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sasha Aickin">xander76</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>bugzilla33</cc>
    
    <cc>dan</cc>
    
    <cc>emacemac7</cc>
    
    <cc>eric</cc>
    
    <cc>jab_creations</cc>
    
    <cc>joris</cc>
    
    <cc>ossy</cc>
    
    <cc>sbvendor</cc>
    
    <cc>shin.sugi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>59955</commentid>
    <comment_count>0</comment_count>
    <who name="Sasha Aickin">xander76</who>
    <bug_when>2007-10-31 14:28:38 -0700</bug_when>
    <thetext>Create a page that uses a CSS custom cursor with a rule such as:

cursor: url(http://maps.live.com/cursors/grab.cur);

Rather than being anchored at the upper left finger of the cursor, as it is on IE, the cursor is anchored approximately 8 pixels up and to the left from the image.  This causes weird jumping effects when custom cursors like this are used.

Test page to follow.

Tested in build 522.15.5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59956</commentid>
    <comment_count>1</comment_count>
      <attachid>16969</attachid>
    <who name="Sasha Aickin">xander76</who>
    <bug_when>2007-10-31 14:30:04 -0700</bug_when>
    <thetext>Created attachment 16969
test page that demonstrates the bug

Added a test page that demos the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59978</commentid>
    <comment_count>2</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-10-31 23:07:05 -0700</bug_when>
    <thetext>Verified with a recent Safari for Windows on XP Pro.

Even stranger is that the custom &quot;grab&quot; cursor specified in the CSS doesn&apos;t appear at all with Safari 3 Public Beta v. 3.0.3 (522.12.1) with a local debug build of WebKit r27306 on Mac OS X 10.4.10 (8R218).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59979</commentid>
    <comment_count>3</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-10-31 23:08:00 -0700</bug_when>
    <thetext>$ curl --head http://maps.live.com/cursors/grab.cur
HTTP/1.1 200 OK
Content-Length: 4286
Content-Type: application/octet-stream
Last-Modified: Sun, 23 Sep 2007 23:26:12 GMT
Accept-Ranges: bytes
ETag: &quot;fb2b1d2139fec71:907&quot;
Server: Microsoft-IIS/6.0
P3P: CP=&quot;BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo&quot;
X-Powered-By: ASP.NET
Date: Thu, 01 Nov 2007 06:07:19 GMT

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59981</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2007-10-31 23:12:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Even stranger is that the custom &quot;grab&quot; cursor specified in the CSS doesn&apos;t
&gt; appear at all with Safari 3 Public Beta v. 3.0.3 (522.12.1) with a local debug
&gt; build of WebKit r27306 on Mac OS X 10.4.10 (8R218).

Filed Bug 15783 for this issue on OS X.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59987</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-11-01 01:03:49 -0700</bug_when>
    <thetext>See also: &lt;rdar://problem/4556355&gt;. I suppose fixes are needed in both CG and WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76624</commentid>
    <comment_count>6</comment_count>
    <who name="Dan Fabulich">dan</who>
    <bug_when>2008-04-08 11:05:50 -0700</bug_when>
    <thetext>Probably related to bug 8989.  That extra byte of difference between a .cur and a .ico includes the anchor point of the cursor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100213</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-25 07:13:02 -0800</bug_when>
    <thetext>*** Bug 22453 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116633</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-06 10:33:43 -0700</bug_when>
    <thetext>*** Bug 18810 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170052</commentid>
    <comment_count>9</comment_count>
    <who name="Scott Bell">sbvendor</who>
    <bug_when>2009-12-09 10:55:55 -0800</bug_when>
    <thetext>This bug makes it impossible to have non-pointer cursors
(such as a hand, or spreadsheet cell cursor) work well in
WebKit. Google Maps is a popular application which behaves
poorly in WebKit due to this bug. 

Our application makes use of two custom cursors, one for
resizing and one to simulate the CSS3 `cell&apos; cursors on 
unsupported browsers (such as WebKit). Both of these have
a hotspot at 6,6, which is far off from the 0,0 value that
WebKit uses, which causes the UI to behave unacceptably.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170057</commentid>
    <comment_count>10</comment_count>
    <who name="Scott Bell">sbvendor</who>
    <bug_when>2009-12-09 11:04:26 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Our application makes use of two custom cursors, one for
&gt; resizing and one to simulate the CSS3 `cell&apos; cursors on 
&gt; unsupported browsers (such as WebKit). Both of these have
&gt; a hotspot at 6,6, which is far off from the 0,0 value that
&gt; WebKit uses, which causes the UI to behave unacceptably.

Correction: we use a custom .CUR file for `cell&apos; to ensure
consistency across browsers, not because WebKit doesn&apos;t
support it (it does).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170063</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-09 11:14:06 -0800</bug_when>
    <thetext>This is a compatibility bug, but I think it can be worked around.  You can specify the hotspot position in CSS, see &lt;http://www.w3.org/TR/css3-ui/#cursor&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170088</commentid>
    <comment_count>12</comment_count>
    <who name="Scott Bell">sbvendor</who>
    <bug_when>2009-12-09 11:55:05 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; This is a compatibility bug, but I think it can be worked around.  You can
&gt; specify the hotspot position in CSS, see
&gt; &lt;http://www.w3.org/TR/css3-ui/#cursor&gt;.

This workaround does seem to work for the latest WebKit,
unfortunately Safari renders the fallback cursor instead at
the moment. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170126</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-09 13:18:27 -0800</bug_when>
    <thetext>The document needs to be in strict parsing mode for that to work in Safari 4 - that was fixed in bug 27390.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227861</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-19 09:49:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/8002964&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231568</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-27 23:02:45 -0700</bug_when>
    <thetext>*** Bug 39824 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231611</commentid>
    <comment_count>16</comment_count>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2010-05-28 02:24:08 -0700</bug_when>
    <thetext>URL: http://pc44.one.pl/goorol/bugs/safari/cursor.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231613</commentid>
    <comment_count>17</comment_count>
      <attachid>57306</attachid>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2010-05-28 02:24:50 -0700</bug_when>
    <thetext>Created attachment 57306
new testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235117</commentid>
    <comment_count>18</comment_count>
      <attachid>58107</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-07 20:57:08 -0700</bug_when>
    <thetext>Created attachment 58107
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235326</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-06-08 10:31:36 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/60849&gt;.

Please note that this will only work in nightly builds with Safari 5 for Windows for now. Fixing this on Mac OS X is tracked by Apple internally as &lt;rdar://problem/4556355&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235340</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-08 10:42:22 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/60849 might have broken Qt Linux Release minimal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235360</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-08 10:55:48 -0700</bug_when>
    <thetext>Qt is very sad after this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235387</commentid>
    <comment_count>22</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2010-06-08 11:20:37 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Qt is very sad after this change.
Fixed by http://trac.webkit.org/changeset/60854.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>314208</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-28 09:49:20 -0800</bug_when>
    <thetext>&gt; Fixing this on Mac OS X is tracked by Apple internally as &lt;rdar://problem/4556355&gt;.

Fixed in Mac OS X 10.6.5 - should work with WebKit nightlies now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>420124</commentid>
    <comment_count>24</comment_count>
    <who name="Shane Stephens">shanestephens</who>
    <bug_when>2011-06-13 18:02:58 -0700</bug_when>
    <thetext>*** Bug 20826 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>16969</attachid>
            <date>2007-10-31 14:30:04 -0700</date>
            <delta_ts>2007-10-31 14:30:04 -0700</delta_ts>
            <desc>test page that demonstrates the bug</desc>
            <filename>safaricursor.html</filename>
            <type>text/html</type>
            <size>841</size>
            <attacher name="Sasha Aickin">xander76</attacher>
            
              <data encoding="base64">PGh0bWw+CiAgIDxoZWFkPgogICAgICA8dGl0bGU+PC90aXRsZT4KICAgICAgPG1ldGEgaHR0cC1l
cXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiPgog
ICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAKICAgICAgI291dHNpZGUgewogICAg
ICAJY3Vyc29yOiB1cmwoaHR0cDovL21hcHMubGl2ZS5jb20vY3Vyc29ycy9ncmFiLmN1cik7CiAg
ICAgIAloZWlnaHQ6IDEwMHB4OwogICAgICAJd2lkdGg6IDEwMHB4OwogICAgICAJYmFja2dyb3Vu
ZDogcmVkOwogICAgICB9CiAgICAgIAogICAgICAjaW5zaWRlIHsKICAgICAgCXBvc2l0aW9uOiBy
ZWxhdGl2ZTsKICAgICAgCWN1cnNvcjogcG9pbnRlcjsKICAgICAgCXRvcDogMjVweDsKICAgICAg
CWxlZnQ6IDI1cHg7CiAgICAgIAloZWlnaHQ6IDUwcHg7CiAgICAgIAl3aWR0aDogNTBweDsKICAg
ICAgCWJhY2tncm91bmQ6IGJsdWU7CiAgICAgIH0KICAgICAgPC9zdHlsZT4KICAgPC9oZWFkPgog
ICA8Ym9keT4KICAgICAgPGRpdj5JbiBTYWZhcmkgV2luZG93cywgY3VzdG9tIGN1cnNvcnMgbWFr
ZSB0aGUgY3Vyc29yIGp1bXAgZnJvbSAKICAgICAgb25lIGRpdiB0byB0aGUgbmV4dC4gIERyYWcg
c2xvd2x5IGZyb20gdGhlIGxvd2VyIHJpZ2h0IGNvcm5lciBvZiB0aGUgcmVkCiAgICAgIGJveCB0
byB0aGUgbG93ZXIgcmVkIGNvcm5lciBvZiB0aGUgYmx1ZSBib3ggdG8gc2VlIHRoZSBidWcuPC9k
aXY+CiAgICAgIDxkaXYgaWQ9Im91dHNpZGUiPgogICAgICAJPGRpdiBpZD0iaW5zaWRlIj4KICAg
ICAgCTwvZGl2PgogICAgICA8L2Rpdj4KICAgPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>57306</attachid>
            <date>2010-05-28 02:24:50 -0700</date>
            <delta_ts>2010-05-28 02:24:50 -0700</delta_ts>
            <desc>new testcase</desc>
            <filename>cursor.zip</filename>
            <type>application/x-zip-compressed</type>
            <size>946</size>
            <attacher name="bugzilla33">bugzilla33</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAAJauzwAAAAAAAAAAAAAAAAHAAAAY3Vyc29yL1BLAwQUAAIACABrWbs8weLzUVAB
AAC+EAAAEQAAAGN1cnNvci9jdXJzb3IuY3Vy7ZY9S8NQFIZP3YVMIoJYcBFBLYK4KCp+dBIn3VzE
P+Av0B+jILh0cQ9uxaFIoKREUUINkiE0Q+BCmh7PCUbSNjoI98bhvuGBw83wvDf3DgGYgApUqwBz
9NwaAFMAsEDQEmwTlXT6f1mZncGy3McHe1iWn90f3nsp/szNUe3Pu1X7R90q/UVuVX52d10XkyRR
7mf368szCiEwjuOxDjL97LbbbQzDEKMoKuwgy8/up1YLfd/HIAh+7CDDz+7HZhNdOnPP837tIMs/
StbB6XSGOqi4/yf1/fQ73N1c47wxOdRBtn+ntvx9FjzzWr6DbP/p0SE6joP3jQbynK1nHWT6d1dr
+GCaaNs2bi4tjnm4A98NWf76+hpalpV2yO9dZS7Ozwr3rqOjo6OjU3boN3RA9AlB9Ig3wiSuCHo/
IPqEIHpfpOsGMU3vNogtmi/xD/kEUEsDBBQAAgAIAJVauzxS+geVFAEAAHACAAASAAAAY3Vyc29y
L2N1cnNvci5odG1srZLBSsNAEIbvgu8w5tJWpNtSPDRNc6kVpIcKFsTjpjtNFpOddXa3Sd/exAqi
HlpEGJg5fPP9yzLJ1d16sXl5XELhqzK9vEi6Dk1VGjePCu9tLERd18N6MiTOxXg6nYqmY6IWhiQj
degGSJTeg/OHEudRJrevOVMwKmZUs21gRxwHLvvHcdi2wY0MnmZWKqVNHt+ObBOlz5ittIfrDoBe
QR6cJd8Dy5SVWEHfligdQkXBIe2RB4loc389YEtlG9hmR+mT3EnWMXwlfxOT016TAe1gBKOTtkXB
VOE/2HJGNFH6sDzHNRm3dYbtXjPuqPmjMl1bZBkff7/nwHSLwVpij+oHuiLzFpDb6BN4Ij4vJBEf
B/YOUEsBAhQACgAAAAAAAlq7PAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAQAAAAAAAAAGN1cnNvci9Q
SwECFAAUAAIACABrWbs8weLzUVABAAC+EAAAEQAAAAAAAAAAACAAAAAlAAAAY3Vyc29yL2N1cnNv
ci5jdXJQSwECFAAUAAIACACVWrs8UvoHlRQBAABwAgAAEgAAAAAAAAABACAAAACkAQAAY3Vyc29y
L2N1cnNvci5odG1sUEsFBgAAAAADAAMAtAAAAOgCAAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58107</attachid>
            <date>2010-06-07 20:57:08 -0700</date>
            <delta_ts>2010-06-08 06:29:55 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>hotspot.txt</filename>
            <type>text/plain</type>
            <size>34336</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDcyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNzEgQEAKKzIwMTAtMDYtMDQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzc5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS84MDAyOTY0PiBDdXN0b20gQ1NTIC5jdXIgY3Vyc29yIGFuY2hvciBwb2lu
dCBpcyBpZ25vcmVkCisKKyAgICAgICAgVGVzdDogbWFudWFsLXRlc3RzL2N1ci1ob3RzcG90Lmh0
bWwKKworICAgICAgICBDdXJyZW50bHksIHRoaXMgcGF0Y2ggb25seSBoYXMgZWZmZWN0IGluIFNh
ZmFyaSA1IG9uIFdpbmRvd3MuIE90aGVyIHBsYXRmb3JtcyB3aWxsIG5lZWQKKyAgICAgICAgdG8g
aW1wbGVtZW50IGdldHRpbmcgaG90IHNwb3QgaW5mb3JtYXRpb24gZnJvbSAuY3VyIGZpbGVzLgor
CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGRlZCBDdXJzb3IuY3Bw
LiBMb29rcyBsaWtlIFRleHRXcmFuZ2xlciBmaXhlZCBsaW5lIGVuZGluZ3MgaW4gdmNwcm9qIGZp
bGUuCisKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKTogUmVuYW1l
ZCAiaG90c3BvdCIgdG8gImhvdFNwb3QiIHRvIG1hdGNoCisgICAgICAgIG90aGVyIGNvZGUuCisg
ICAgICAgIChXZWJDb3JlOjpDU1NDdXJzb3JJbWFnZVZhbHVlOjp1cGRhdGVJZlNWR0N1cnNvcklz
VXNlZCk6IERpdHRvLiBBZGRlZCBhIEZJWE1FIGFib3V0IHBvc3NpYmx5CisgICAgICAgIGluY29y
cmVjdCBjb2RlIGZvciByZXNvbHZpbmcgZGlmZmVyZW5jZXMgd2l0aCBDU1Mgc3BlY2lmaWVkIGhv
dHNwb3QuCisKKyAgICAgICAgKiBjc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQ3Vyc29ySW1hZ2VWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU0N1cnNvckltYWdlVmFsdWU6OmhvdFNwb3QpOgorICAgICAgICBSZW5hbWVkICJob3RzcG90
IiB0byAiaG90U3BvdCIgdG8gbWF0Y2ggb3RoZXIgY29kZS4KKworICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOiAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKTogU3RhcnQgd2l0aCBh
biBpbnZhbGlkIHZhbHVlIGZvciBob3QKKyAgICAgICAgc3BvdCwgc28gdGhhdCB3ZSBjYW4gZGlm
ZmVyZW50aWF0ZSBiZXR3ZWVuIG1pc3NpbmcgYW5kICgwLCAwKSBDU1MgaG90IHNwb3RzLiBNaXNz
aW5nIGFuZAorICAgICAgICAoLTEsIC0xKSBhcmUgdHJlYXRlZCBpZGVudGljYWxseS4KKworICAg
ICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDogKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0
b3I6OmFwcGx5UHJvcGVydHkpOiBSZW5hbWVkICJob3RzcG90IiB0bworICAgICAgICAiaG90U3Bv
dCIgdG8gbWF0Y2ggb3RoZXIgY29kZS4KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNw
cDogKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKTogRG9uJ3QgaWdub3JlIGN1
cnNvcnMgd2l0aAorICAgICAgICBpbmNvcnJlY3QgQ1NTIGhvdCBzcG90cy4gRmlyZWZveCBpZ25v
cmVzIG9ubHkgdGhlIGhvdCBzcG90LCBub3QgdGhlIHdob2xlIGN1cnNvciBpbiB0aGlzIGNhc2UK
KyAgICAgICAgKGFuZCBJRSBkb2Vzbid0IHN1cHBvcnQgQ1NTMyBjdXJzb3IgZGVjbGFyYXRpb25z
KS4KKworICAgICAgICAqIHBsYXRmb3JtL0N1cnNvci5jcHA6IEFkZGVkLiAoV2ViQ29yZTo6ZGV0
ZXJtaW5lSG90U3BvdCk6IEFkZGVkIGEgZnVuY3Rpb24gdGhhdCBkZWNpZGVzCisgICAgICAgIHdo
ZXJlIGhvdCBzcG90IGlzLCBwcm92aWRlZCBhbiBpbWFnZSBhbmQgYSBwb3NzaWJsZSBvdXQgb2Yg
YmFuZCBjb29yZGluYXRlIHNwZWNpZmljYXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9DdXJz
b3IuaDogQWRkZWQgZGV0ZXJtaW5lSG90U3BvdCgpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6Omdl
dEhvdFNwb3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlOjpnZXRIb3RTcG90KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6Z2V0SG90U3BvdCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaDoKKyAgICAgICAgQWRkZWQgcGx1
bWJpbmcgdG8gZ2V0IGhvdCBzcG90IGRhdGEgZnJvbSBhbiBpbWFnZSBwcm92aWRlci4KKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNlQ0cuY3BwOiAoV2ViQ29yZTo6
SW1hZ2VTb3VyY2U6OmdldEhvdFNwb3QpOiBDRyBpbXBsZW1hbnRhdGlvbi4KKworICAgICAgICAq
IHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06IChXZWJDb3JlOjpjcmVhdGVDdXN0b21DdXJzb3Ip
OiBDYWxsIGRldGVybWluZUhvdFNwb3QoKSB0byAKKyAgICAgICAgZGV0ZXJtaW5lIHdoZXJlIGhv
dCBzcG90IHNob3VsZCBiZS4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6Q3Vyc29yKTogUmVu
YW1lZCAiaG90c3BvdCIgdG8gImhvdFNwb3QiIHRvIG1hdGNoIG90aGVyIGNvZGUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcDogKFdlYkNvcmU6OkN1cnNvcjo6Q3Vyc29y
KTogQ2FsbCBkZXRlcm1pbmVIb3RTcG90KCkgdG8gZGV0ZXJtaW5lCisgICAgICAgIHdoZXJlIGhv
dCBzcG90IHNob3VsZCBiZS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3Bw
OiAoV2ViQ29yZTo6Q3Vyc29yOjpDdXJzb3IpOiBEaXR0by4gVGhpcyBtdXN0IGJlIGRvbmUgZGVz
cGl0ZQorICAgICAgICB0aGlzIHBsYXRmb3JtIG5vdCBoYXZpbmcgYW4gaW1wbGVtZW50YXRpb24g
Zm9yIEltYWdlU291cmNlOjpnZXRIb3RTcG90KCksIGJlY2F1c2Ugd2Ugbm8gbG9uZ2VyCisgICAg
ICAgIGNoZWNrIGZvciBvdXQgb2YgYm91bmRzIGhvdCBzcG90cyBpbiBFdmVudEhhbmRsZXI6OnNl
bGVjdEN1cnNvcigpLgorCisgICAgICAgICogcGxhdGZvcm0vcXQvQ3Vyc29yUXQuY3BwOiAoV2Vi
Q29yZTo6Q3Vyc29yOjpDdXJzb3IpOiBEaXR0by4KKwogMjAxMC0wNi0wNCAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExv
cGV6LgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2
MDcyMSkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTg0OTMsNjIgKzg0OTMsNjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxG
aWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3RO
YW1lKVxEZXJpdmVkU291cmNlc1xKU01lbW9yeUluZm8uY3BwIgotCQkJCT4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWd8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1
cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxk
PSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
IgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0
aW9uCi0JCQkJCU5hbWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KLQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiIKLQkJCQkJRXhjbHVkZWRG
cm9tQnVpbGQ9InRydWUiCi0JCQkJCT4KLQkJCQkJPFRvb2wKLQkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiCi0JCQkJCS8+Ci0JCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KLQkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24KLQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIgotCQkJCQlFeGNsdWRlZEZy
b21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJPC9GaWxlPgot
CQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZW1vcnlJbmZvLmgiCi0JCQkJPgotCQkJPC9GaWxl
PgotCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZW1vcnlJbmZvLmNwcCINCisJCQkJPg0KKwkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhj
bHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9
IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0K
KwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVi
dWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4N
CisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJ
TmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVl
Ig0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0K
KwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0
aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0K
KwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU01lbW9yeUluZm8uaCINCisJCQkJPg0KKwkJCTwv
RmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxv
YmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNNZXNzYWdlQ2hhbm5lbC5jcHAiDQog
CQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMjI0MDEsNiArMjI0MDEsMTAgQEAK
IAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cQ3Vyc29yLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEN1cnNvci5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0K
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biA2MDY0NSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC00ODk1LDYgKzQ4OTUsNyBAQAogCQlFMTBCOUI2RDBCNzQ3NTk5MDAz
RUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMEI5QjZCMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRp
dmVYUGF0aE5TUmVzb2x2ZXIuY3BwICovOyB9OwogCQlFMTBCOUNDQzBCNzQ3QTQ0MDAzRUQ4OTAg
LyogRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMTBCOUNDQTBCNzQ3QTQ0MDAzRUQ4OTAgLyogRE9NQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmggKi87IH07CiAJCUUxMEI5Q0NEMEI3NDdBNDQwMDNFRDg5MCAvKiBE
T01DdXN0b21YUGF0aE5TUmVzb2x2ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMTBCOUNDQjBCNzQ3QTQ0MDAzRUQ4OTAgLyogRE9NQ3VzdG9tWFBh
dGhOU1Jlc29sdmVyLm1tICovOyB9OworCQlFMTFBRjE1MTExQjlBMUEzMDA4MDUxMDMgLyogQ3Vy
c29yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
MUFGMTUwMTFCOUExQTMwMDgwNTEwMyAvKiBDdXJzb3IuY3BwICovOyB9OwogCQlFMTFDOUQ5QjBF
QjM2ODEyMDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTExQzlEOUEwRUIzNjgxMjAwRTQwOURC
IC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFMTFDOURCMDBFQjM2OTk1MDBFNDA5REIgLyogU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTFDOURBRjBFQjM2OTk1MDBFNDA5REIgLyogU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5jcHAgKi87IH07CiAJCUUxMjQ3NDg0MTBBQTE2MUQwMEI3OTQ5MyAvKiBBdXRoZW50aWNh
dGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTEyNDc0ODMxMEFBMTYxRDAwQjc5NDkzIC8qIEF1dGhlbnRpY2F0aW9uQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwNDM0LDYg
KzEwNDM1LDcgQEAKIAkJRTEwQjlCNkIwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNS
ZXNvbHZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXRpdmVY
UGF0aE5TUmVzb2x2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTBCOUND
QTBCNzQ3QTQ0MDAzRUQ4OTAgLyogRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUN1c3RvbVhQYXRoTlNSZXNvbHZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTBCOUNDQjBCNzQ3QTQ0MDAzRUQ4OTAgLyogRE9N
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gRE9NQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMTFBRjE1MDExQjlBMUEzMDA4MDUxMDMgLyogQ3Vyc29yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1cnNvci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxMUM5RDlBMEVCMzY4MTIwMEU0MDlEQiAvKiBTY3JpcHRFeGVjdXRp
b25Db250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTExQzlEQUYwRUIz
Njk5NTAwRTQwOURCIC8qIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjQ3NDgzMTBBQTE2MUQwMEI3OTQ5MyAvKiBBdXRo
ZW50aWNhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRo
ZW50aWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU4NjYs
NiArMTU4NjgsNyBAQAogCQkJCTkzNTIwODgxMDlCRDQ1RTkwMEYyMDM4RCAvKiBDb29raWVKYXIu
aCAqLywKIAkJCQkyRTQzNDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwICovLAogCQkJCTJFNDM0NjU3MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGll
ci5oICovLAorCQkJCUUxMUFGMTUwMTFCOUExQTMwMDgwNTEwMyAvKiBDdXJzb3IuY3BwICovLAog
CQkJCUY1ODc4Njg0MDJERTNCODYwMUVBNDEyMiAvKiBDdXJzb3IuaCAqLywKIAkJCQlGNTg3ODY5
OTAyREUzQjg2MDFFQTQxMjIgLyogRGVwcmVjYXRlZFB0ckxpc3QuaCAqLywKIAkJCQlGNTg3ODUx
NjAyREUzNzU5MDFFQTQxMjIgLyogRGVwcmVjYXRlZFB0ckxpc3RJbXBsLmNwcCAqLywKQEAgLTIx
NzA5LDYgKzIxNzEyLDcgQEAKIAkJCQk0RjMyODlCNTExQTQyQUFCMDA1QUJFN0UgLyogSW5zcGVj
dG9yVmFsdWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlGRkUzRTdBMTFCNTlDNUQwMDM3ODc0
RSAvKiBNZW1vcnlJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlGRkUzRUE1MTFCNUE0Mzkw
MDM3ODc0RSAvKiBKU01lbW9yeUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTExQUYxNTEx
MUI5QTFBMzAwODA1MTAzIC8qIEN1cnNvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNv
cmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3Nz
L0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCShyZXZpc2lvbiA2MDY0NSkKKysrIFdlYkNvcmUvY3Nz
L0NTU0N1cnNvckltYWdlVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw5ICs1Miw5IEBA
IHN0YXRpYyBpbmxpbmUgU1ZHQ3Vyc29yRWxlbWVudCogcmVzb3VyY2UKIH0KICNlbmRpZgogCi1D
U1NDdXJzb3JJbWFnZVZhbHVlOjpDU1NDdXJzb3JJbWFnZVZhbHVlKGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBJbnRQb2ludCYgaG90c3BvdCkKK0NTU0N1cnNvckltYWdlVmFsdWU6OkNTU0N1cnNv
ckltYWdlVmFsdWUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQog
ICAgIDogQ1NTSW1hZ2VWYWx1ZSh1cmwpCi0gICAgLCBtX2hvdHNwb3QoaG90c3BvdCkKKyAgICAs
IG1faG90U3BvdChob3RTcG90KQogewogfQogCkBAIC05MCwxMSArOTAsMTIgQEAgYm9vbCBDU1ND
dXJzb3JJbWFnZVZhbHVlOjp1cGRhdGVJZlNWR0N1cgogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBpZiAoU1ZHQ3Vyc29yRWxlbWVudCogY3Vyc29yRWxlbWVudCA9IHJlc291cmNlUmVmZXJl
bmNlZEJ5Q3Vyc29yRWxlbWVudCh1cmwsIGVsZW1lbnQtPmRvY3VtZW50KCkpKSB7CisgICAgICAg
IC8vIEZJWE1FOiBUaGlzIHdpbGwgb3ZlcnJpZGUgaG90IHNwb3Qgc3BlY2lmaWVkIGluIENTUywg
d2hpY2ggaXMgcHJvYmFibHkgaW5jb3JyZWN0LgogICAgICAgICBmbG9hdCB4ID0gcm91bmRmKGN1
cnNvckVsZW1lbnQtPngoKS52YWx1ZSgwKSk7Ci0gICAgICAgIG1faG90c3BvdC5zZXRYKHN0YXRp
Y19jYXN0PGludD4oeCkpOworICAgICAgICBtX2hvdFNwb3Quc2V0WChzdGF0aWNfY2FzdDxpbnQ+
KHgpKTsKIAogICAgICAgICBmbG9hdCB5ID0gcm91bmRmKGN1cnNvckVsZW1lbnQtPnkoKS52YWx1
ZSgwKSk7Ci0gICAgICAgIG1faG90c3BvdC5zZXRZKHN0YXRpY19jYXN0PGludD4oeSkpOworICAg
ICAgICBtX2hvdFNwb3Quc2V0WShzdGF0aWNfY2FzdDxpbnQ+KHkpKTsKIAogICAgICAgICBpZiAo
Y2FjaGVkSW1hZ2VVUkwoKSAhPSBlbGVtZW50LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChjdXJz
b3JFbGVtZW50LT5ocmVmKCkpKQogICAgICAgICAgICAgY2xlYXJDYWNoZWRJbWFnZSgpOwpJbmRl
eDogV2ViQ29yZS9jc3MvQ1NTQ3Vyc29ySW1hZ2VWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvY3NzL0NTU0N1cnNvckltYWdlVmFsdWUuaAkocmV2aXNpb24gNjA2NDUpCisrKyBXZWJDb3Jl
L2Nzcy9DU1NDdXJzb3JJbWFnZVZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDE0ICszMiwx
NCBAQCBjbGFzcyBTVkdFbGVtZW50OwogCiBjbGFzcyBDU1NDdXJzb3JJbWFnZVZhbHVlIDogcHVi
bGljIENTU0ltYWdlVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0N1
cnNvckltYWdlVmFsdWU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgSW50UG9pbnQm
IGhvdHNwb3QpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQ3Vyc29ySW1hZ2VWYWx1ZT4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTQ3Vyc29ySW1hZ2VWYWx1ZSh1cmwsIGhvdHNw
b3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDU1NDdXJzb3JJbWFnZVZhbHVlKHVy
bCwgaG90U3BvdCkpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkNTU0N1cnNvckltYWdlVmFsdWUo
KTsKIAotICAgIEludFBvaW50IGhvdHNwb3QoKSBjb25zdCB7IHJldHVybiBtX2hvdHNwb3Q7IH0K
KyAgICBJbnRQb2ludCBob3RTcG90KCkgY29uc3QgeyByZXR1cm4gbV9ob3RTcG90OyB9CiAKICAg
ICBib29sIHVwZGF0ZUlmU1ZHQ3Vyc29ySXNVc2VkKEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIFN0
eWxlQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlKERvY0xvYWRlciopOwpAQCAtNDksOSArNDksOSBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBDU1NDdXJzb3JJbWFnZVZhbHVlKGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBJbnRQb2ludCYgaG90c3BvdCk7CisgICAgQ1NTQ3Vyc29y
SW1hZ2VWYWx1ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpOwog
Ci0gICAgSW50UG9pbnQgbV9ob3RzcG90OworICAgIEludFBvaW50IG1faG90U3BvdDsKIAogI2lm
IEVOQUJMRShTVkcpCiAgICAgSGFzaFNldDxTVkdFbGVtZW50Kj4gbV9yZWZlcmVuY2VkRWxlbWVu
dHM7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAJKHJldmlzaW9uIDYwNjQ1KQorKysgV2ViQ29yZS9jc3MvQ1NT
UGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQyLDE3ICs4NDIsMTcgQEAgYm9vbCBDU1NQ
YXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAgICAgICAgIGNvb3Jkcy5h
cHBlbmQoaW50KHZhbHVlLT5mVmFsdWUpKTsKICAgICAgICAgICAgICAgICB2YWx1ZSA9IG1fdmFs
dWVMaXN0LT5uZXh0KCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnRQb2ludCBob3Rz
cG90OworICAgICAgICAgICAgSW50UG9pbnQgaG90U3BvdCgtMSwgLTEpOwogICAgICAgICAgICAg
aW50IG5yY29vcmRzID0gY29vcmRzLnNpemUoKTsKICAgICAgICAgICAgIGlmIChucmNvb3JkcyA+
IDAgJiYgbnJjb29yZHMgIT0gMikKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgICAgICBpZiAobnJjb29yZHMgPT0gMikKLSAgICAgICAgICAgICAgICBob3RzcG90ID0gSW50
UG9pbnQoY29vcmRzWzBdLCBjb29yZHNbMV0pOworICAgICAgICAgICAgICAgIGhvdFNwb3QgPSBJ
bnRQb2ludChjb29yZHNbMF0sIGNvb3Jkc1sxXSk7CiAKICAgICAgICAgICAgIGlmICghdXJpLmlz
TnVsbCgpICYmIG1fc3R5bGVTaGVldCkgewogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGUg
Y29tcGxldGVVUkwgY2FsbCBzaG91bGQgYmUgZG9uZSB3aGVuIHVzaW5nIHRoZSBDU1NDdXJzb3JJ
bWFnZVZhbHVlLAogICAgICAgICAgICAgICAgIC8vIG5vdCB3aGVuIGNyZWF0aW5nIGl0LgotICAg
ICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChDU1NDdXJzb3JJbWFnZVZhbHVlOjpjcmVhdGUobV9z
dHlsZVNoZWV0LT5jb21wbGV0ZVVSTCh1cmkpLCBob3RzcG90KSk7CisgICAgICAgICAgICAgICAg
bGlzdC0+YXBwZW5kKENTU0N1cnNvckltYWdlVmFsdWU6OmNyZWF0ZShtX3N0eWxlU2hlZXQtPmNv
bXBsZXRlVVJMKHVyaSksIGhvdFNwb3QpKTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAg
aWYgKChtX3N0cmljdCAmJiAhdmFsdWUpIHx8ICh2YWx1ZSAmJiAhKHZhbHVlLT51bml0ID09IENT
U1BhcnNlclZhbHVlOjpPcGVyYXRvciAmJiB2YWx1ZS0+aVZhbHVlID09ICcsJykpKQpJbmRleDog
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDYwNjQ1KQorKysgV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzOTMsNyArMzM5Myw3IEBA
IHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAgICAg
ICAgICAgLy8gU3R5bGVJbWFnZS4KICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPFN0eWxlQ2Fj
aGVkSW1hZ2U+IHN0eWxlQ2FjaGVkSW1hZ2UoaW1hZ2UtPmNhY2hlZEltYWdlKG1fZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZG9jTG9hZGVyKCkpKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHN0eWxl
Q2FjaGVkSW1hZ2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5hZGRDdXJzb3Io
c3R5bGVDYWNoZWRJbWFnZS0+Y2FjaGVkSW1hZ2UoKSwgaW1hZ2UtPmhvdHNwb3QoKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5hZGRDdXJzb3Ioc3R5bGVDYWNoZWRJbWFnZS0+
Y2FjaGVkSW1hZ2UoKSwgaW1hZ2UtPmhvdFNwb3QoKSk7CiAgICAgICAgICAgICAgICAgfSBlbHNl
IGlmICh0eXBlID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSURFTlQpCiAgICAgICAgICAgICAg
ICAgICAgIG1fc3R5bGUtPnNldEN1cnNvcigqcHJpbWl0aXZlVmFsdWUpOwogICAgICAgICAgICAg
fQpJbmRleDogV2ViQ29yZS9tYW51YWwtdGVzdHMvY3VyLWhvdHNwb3QuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL21hbnVhbC10ZXN0cy9jdXItaG90c3BvdC5odG1sCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9tYW51YWwtdGVzdHMvY3VyLWhvdHNwb3QuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiPg0KKzxib2R5Pg0KKyAgPHA+VGVzdCBmb3IgLmN1ciBjdXJzb3Ig
aW50cmluc2ljIGhvdCBzcG90IGJlaGF2aW9yLiBTZWUgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzc5Ij5idWcgMTU3Nzk8L2E+LjwvcD4NCisgIDxk
aXYgc3R5bGU9ImJhY2tncm91bmQ6dHVycXVvaXNlO2N1cnNvcjp1cmwocmVzb3VyY2VzL2N1ci1o
b3RzcG90LmN1ciksIGF1dG87IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MjAwcHg7IHBvc2l0aW9uOmFi
c29sdXRlOyB0b3A6MTAwcHg7IGxlZnQ6IDUwcHg7Ij5Nb3VzZSBjdXJzb3Igc2hvdWxkIGJlIHVw
c2lkZSBkb3duIGluc2lkZSB0aGlzIGJveC48L2Rpdj4NCisNCisgIDxkaXYgc3R5bGU9ImJhY2tn
cm91bmQ6dHVycXVvaXNlO2N1cnNvcjp1cmwocmVzb3VyY2VzL2N1ci1ob3RzcG90LmN1cikgMjAw
IDIwMCwgYXV0bzsgd2lkdGg6MjAwcHg7IGhlaWdodDoyMDBweDsgcG9zaXRpb246YWJzb2x1dGU7
IHRvcDoxMDBweDsgbGVmdDogMzAwcHg7Ij5Nb3VzZSBjdXJzb3Igc2hvdWxkIGJlIHVwc2lkZSBk
b3duIGluc2lkZSB0aGlzIGJveC48L2Rpdj4NCisNCisgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQ6
dHVycXVvaXNlO2N1cnNvcjp1cmwocmVzb3VyY2VzL2N1ci1ob3RzcG90LmN1cikgMCAwLCBhdXRv
OyB3aWR0aDoyMDBweDsgaGVpZ2h0OjIwMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjM1MHB4
OyBsZWZ0OiA1MHB4OyI+TW91c2UgY3Vyc29yIHNob3VsZCBmbGlwIGVycmF0aWNhbGx5LCBkdWUg
dG8gaW5jb3JyZWN0IGhvdCBzcG90IGZvcmNlZCBpbiBDU1MuPC9kaXY+DQorDQorPC9ib2R5Pg0K
KzwvaHRtbD4NCkluZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gNjA2NDUpCisrKyBX
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3Nyw5ICsx
MDc3LDYgQEAgQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IAogICAgICAg
ICAgICAgSW50U2l6ZSBzaXplID0gY2ltYWdlLT5pbWFnZSgpLT5zaXplKCk7CiAgICAgICAgICAg
ICBpZiAoc2l6ZS53aWR0aCgpID4gMTI4IHx8IHNpemUuaGVpZ2h0KCkgPiAxMjgpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAvLyBEbyBub3QgbGV0IHRoZSBob3RzcG90
IGJlIG91dHNpZGUgdGhlIGJvdW5kcyBvZiB0aGUgaW1hZ2UuIAotICAgICAgICAgICAgaWYgKGhv
dFNwb3QueCgpIDwgMCB8fCBob3RTcG90LnkoKSA8IDAgfHwgaG90U3BvdC54KCkgPiBzaXplLndp
ZHRoKCkgfHwgaG90U3BvdC55KCkgPiBzaXplLmhlaWdodCgpKQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgaWYgKGNpbWFnZS0+aW1hZ2UoKS0+aXNOdWxsKCkpCiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBpZiAoIWNpbWFnZS0+ZXJyb3JPY2N1cnJl
ZCgpKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vQ3Vyc29yLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiQ3Vyc29yLmgiCisKKyNpbmNsdWRlICJJbWFnZS5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK0ludFBvaW50IGRldGVybWluZUhvdFNwb3QoSW1hZ2UqIGltYWdlLCBjb25zdCBJ
bnRQb2ludCYgc3BlY2lmaWVkSG90U3BvdCkKK3sKKyAgICAvLyBIb3Qgc3BvdCBtdXN0IGJlIGlu
c2lkZSBjdXJzb3IgcmVjdGFuZ2xlLgorICAgIEludFJlY3QgaW1hZ2VSZWN0ID0gaW1hZ2UtPnJl
Y3QoKTsKKyAgICBpZiAoaW1hZ2VSZWN0LmNvbnRhaW5zKHNwZWNpZmllZEhvdFNwb3QpKQorICAg
ICAgICByZXR1cm4gc3BlY2lmaWVkSG90U3BvdDsKKworICAgIC8vIElmIGhvdCBzcG90IGlzIG5v
dCBzcGVjaWZpZWQgZXh0ZXJuYWxseSwgaXQgY2FuIGJlIGV4dHJhY3RlZCBmcm9tIHNvbWUgaW1h
Z2UgZm9ybWF0cyAoZS5nLiAuY3VyKS4KKyAgICBJbnRQb2ludCBpbnRyaW5zaWNIb3RTcG90Owor
ICAgIGJvb2wgaW1hZ2VIYXNJbnRyaW5zaWNIb3RTcG90ID0gaW1hZ2UtPmdldEhvdFNwb3QoaW50
cmluc2ljSG90U3BvdCk7CisgICAgaWYgKGltYWdlSGFzSW50cmluc2ljSG90U3BvdCAmJiBpbWFn
ZVJlY3QuY29udGFpbnMoaW50cmluc2ljSG90U3BvdCkpCisgICAgICAgIHJldHVybiBpbnRyaW5z
aWNIb3RTcG90OworCisgICAgcmV0dXJuIEludFBvaW50KCk7Cit9CisKK30KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vQ3Vyc29yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9DdXJz
b3IuaAkocmV2aXNpb24gNjA2NDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMTAsNyArMTEwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlm
CiAgICAgICAgIHsgfQogCi0gICAgICAgIEN1cnNvcihJbWFnZSosIGNvbnN0IEludFBvaW50JiBo
b3RzcG90KTsKKyAgICAgICAgQ3Vyc29yKEltYWdlKiwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3Qp
OwogICAgICAgICBDdXJzb3IoY29uc3QgQ3Vyc29yJik7CiAgICAgICAgIH5DdXJzb3IoKTsKICAg
ICAgICAgQ3Vyc29yJiBvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJik7CkBAIC0xMjIsNiArMTIyLDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQbGF0Zm9ybUN1cnNvciBtX2ltcGw7CiAg
ICAgfTsKIAorICAgIEludFBvaW50IGRldGVybWluZUhvdFNwb3QoSW1hZ2UqLCBjb25zdCBJbnRQ
b2ludCYgc3BlY2lmaWVkSG90U3BvdCk7CisKICAgICBjb25zdCBDdXJzb3ImIHBvaW50ZXJDdXJz
b3IoKTsKICAgICBjb25zdCBDdXJzb3ImIGNyb3NzQ3Vyc29yKCk7CiAgICAgY29uc3QgQ3Vyc29y
JiBoYW5kQ3Vyc29yKCk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmNwcAkocmV2aXNpb24gNjA2NDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTU1LDYgKzE1NSwxMSBAQCBJbnRTaXpl
IEJpdG1hcEltYWdlOjpjdXJyZW50RnJhbWVTaXplKCkgCiAgICAgcmV0dXJuIG1fc291cmNlLmZy
YW1lU2l6ZUF0SW5kZXgobV9jdXJyZW50RnJhbWUpOwogfQogCitib29sIEJpdG1hcEltYWdlOjpn
ZXRIb3RTcG90KEludFBvaW50JiBob3RTcG90KSBjb25zdAoreworICAgIHJldHVybiBtX3NvdXJj
ZS5nZXRIb3RTcG90KGhvdFNwb3QpOworfQorCiBib29sIEJpdG1hcEltYWdlOjpkYXRhQ2hhbmdl
ZChib29sIGFsbERhdGFSZWNlaXZlZCkKIHsKICAgICAvLyBCZWNhdXNlIHdlJ3JlIG1vZGlmeWlu
ZyB0aGUgY3VycmVudCBmcmFtZSwgY2xlYXIgaXRzIChub3cgcG9zc2libHkKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgJKHJldmlzaW9uIDYwNjQ1KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTgsNiArMTE4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBJbnRTaXplIHNpemUoKSBjb25z
dDsKICAgICBJbnRTaXplIGN1cnJlbnRGcmFtZVNpemUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgZ2V0SG90U3BvdChJbnRQb2ludCYpIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIGRhdGFD
aGFuZ2VkKGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKICAgICB2aXJ0dWFsIFN0cmluZyBmaWxlbmFt
ZUV4dGVuc2lvbigpIGNvbnN0OyAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgJKHJl
dmlzaW9uIDYwNjQ1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDksNiArMTA5LDcgQEAgcHVibGljOgogICAgIEludFJlY3QgcmVjdCgp
IGNvbnN0IHsgcmV0dXJuIEludFJlY3QoSW50UG9pbnQoKSwgc2l6ZSgpKTsgfQogICAgIGludCB3
aWR0aCgpIGNvbnN0IHsgcmV0dXJuIHNpemUoKS53aWR0aCgpOyB9CiAgICAgaW50IGhlaWdodCgp
IGNvbnN0IHsgcmV0dXJuIHNpemUoKS5oZWlnaHQoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBnZXRI
b3RTcG90KEludFBvaW50JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGJvb2wgc2V0
RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQp
OwogICAgIHZpcnR1YWwgYm9vbCBkYXRhQ2hhbmdlZChib29sIC8qYWxsRGF0YVJlY2VpdmVkKi8p
IHsgcmV0dXJuIGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcAkocmV2aXNpb24gNjA2NDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNywxMSBAQCBJbnRT
aXplIEltYWdlU291cmNlOjpmcmFtZVNpemVBdEluZGV4KHNpCiAgICAgcmV0dXJuIG1fZGVjb2Rl
ciA/IG1fZGVjb2Rlci0+ZnJhbWVTaXplQXRJbmRleChpbmRleCkgOiBJbnRTaXplKCk7CiB9CiAK
K2Jvb2wgSW1hZ2VTb3VyY2U6OmdldEhvdFNwb3QoSW50UG9pbnQmKSBjb25zdAoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKwogaW50IEltYWdlU291cmNlOjpyZXBldGl0aW9uQ291bnQoKQogewog
ICAgIHJldHVybiBtX2RlY29kZXIgPyBtX2RlY29kZXItPnJlcGV0aXRpb25Db3VudCgpIDogY0Fu
aW1hdGlvbk5vbmU7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5o
CShyZXZpc2lvbiA2MDY0NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQCBjbGFzcyBCQml0bWFwOwogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEludFBvaW50OwogY2xhc3MgSW50U2l6ZTsKIGNs
YXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFN0cmluZzsKQEAgLTE0OCw2ICsxNDksNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc1NpemVBdmFpbGFibGUoKTsKICAgICBJbnRTaXplIHNpemUoKSBjb25z
dDsKICAgICBJbnRTaXplIGZyYW1lU2l6ZUF0SW5kZXgoc2l6ZV90KSBjb25zdDsKKyAgICBib29s
IGdldEhvdFNwb3QoSW50UG9pbnQmKSBjb25zdDsKIAogICAgIGludCByZXBldGl0aW9uQ291bnQo
KTsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZVNvdXJjZUNHLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlU291cmNl
Q0cuY3BwCShyZXZpc2lvbiA2MDY0NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
SW1hZ2VTb3VyY2VDRy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQ
TEFURk9STShDRykKICNpbmNsdWRlICJJbWFnZVNvdXJjZUNHLmgiCiAKKyNpbmNsdWRlICJJbnRQ
b2ludC5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5
LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC0xOTYsNiArMTk3LDI4IEBAIEludFNp
emUgSW1hZ2VTb3VyY2U6OnNpemUoKSBjb25zdAogICAgIHJldHVybiBmcmFtZVNpemVBdEluZGV4
KDApOwogfQogCitib29sIEltYWdlU291cmNlOjpnZXRIb3RTcG90KEludFBvaW50JiBob3RTcG90
KSBjb25zdAoreworICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IHByb3BlcnRpZXMoQWRv
cHRDRiwgQ0dJbWFnZVNvdXJjZUNvcHlQcm9wZXJ0aWVzQXRJbmRleChtX2RlY29kZXIsIDAsIGlt
YWdlU291cmNlT3B0aW9ucygpKSk7CisgICAgaWYgKCFwcm9wZXJ0aWVzKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpbnQgeCA9IC0xLCB5ID0gLTE7CisgICAgQ0ZOdW1iZXJSZWYgbnVt
ID0gKENGTnVtYmVyUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKHByb3BlcnRpZXMuZ2V0KCksIENG
U1RSKCJob3RzcG90WCIpKTsKKyAgICBpZiAoIW51bSB8fCAhQ0ZOdW1iZXJHZXRWYWx1ZShudW0s
IGtDRk51bWJlckludFR5cGUsICZ4KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbnVt
ID0gKENGTnVtYmVyUmVmKUNGRGljdGlvbmFyeUdldFZhbHVlKHByb3BlcnRpZXMuZ2V0KCksIENG
U1RSKCJob3RzcG90WSIpKTsKKyAgICBpZiAoIW51bSB8fCAhQ0ZOdW1iZXJHZXRWYWx1ZShudW0s
IGtDRk51bWJlckludFR5cGUsICZ5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYg
KHggPCAwIHx8IHkgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBob3RTcG90ID0g
SW50UG9pbnQoeCwgeSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGludCBJbWFnZVNvdXJjZTo6
cmVwZXRpdGlvbkNvdW50KCkKIHsKICAgICBpbnQgcmVzdWx0ID0gY0FuaW1hdGlvbkxvb3BPbmNl
OyAvLyBObyBwcm9wZXJ0eSBtZWFucyBsb29wIG9uY2UuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2d0ay9DdXJzb3JHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1
cnNvckd0ay5jcHAJKHJldmlzaW9uIDYwNjQ1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ3Vy
c29yR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsOCArNjUsOSBAQCBDdXJzb3I6OkN1cnNv
cihjb25zdCBDdXJzb3ImIG90aGVyKQogCiBDdXJzb3I6OkN1cnNvcihJbWFnZSogaW1hZ2UsIGNv
bnN0IEludFBvaW50JiBob3RTcG90KQogeworICAgIEludFBvaW50IGVmZmVjdGl2ZUhvdFNwb3Qg
PSBkZXRlcm1pbmVIb3RTcG90KGltYWdlLCBob3RTcG90KTsKICAgICBHZGtQaXhidWYqIHBpeGJ1
ZiA9IGltYWdlLT5nZXRHZGtQaXhidWYoKTsKLSAgICBtX2ltcGwgPSBnZGtfY3Vyc29yX25ld19m
cm9tX3BpeGJ1ZihnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpLCBwaXhidWYsIGhvdFNwb3QueCgp
LCBob3RTcG90LnkoKSk7CisgICAgbV9pbXBsID0gZ2RrX2N1cnNvcl9uZXdfZnJvbV9waXhidWYo
Z2RrX2Rpc3BsYXlfZ2V0X2RlZmF1bHQoKSwgcGl4YnVmLCBlZmZlY3RpdmVIb3RTcG90LngoKSwg
ZWZmZWN0aXZlSG90U3BvdC55KCkpOwogICAgIGdfb2JqZWN0X3VucmVmKHBpeGJ1Zik7CiB9CiAK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0JKHJldmlzaW9uIDYwNjQ1KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00MywxNCAr
NDMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gU2ltcGxlIE5TQ3Vyc29yIGNhbGxzIHNo
b3VsZG4ndCBuZWVkIHByb3RlY3Rpb24sCiAvLyBidXQgY3JlYXRpbmcgYSBjdXJzb3Igd2l0aCBh
IGJhZCBpbWFnZSBtaWdodCB0aHJvdy4KIAotc3RhdGljIE5TQ3Vyc29yKiBjcmVhdGVDdXN0b21D
dXJzb3IoSW1hZ2UqIGltYWdlLCBjb25zdCBJbnRQb2ludCYgaG90c3BvdCkKK3N0YXRpYyBOU0N1
cnNvciogY3JlYXRlQ3VzdG9tQ3Vyc29yKEltYWdlKiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhv
dFNwb3QpCiB7CiAgICAgLy8gRklYTUU6IFRoZSBjdXJzb3Igd29uJ3QgYW5pbWF0ZS4gIE5vdCBz
dXJlIGlmIHRoYXQncyBhIGJpZyBkZWFsLgogICAgIE5TSW1hZ2UqIGltZyA9IGltYWdlLT5nZXRO
U0ltYWdlKCk7CiAgICAgaWYgKCFpbWcpCiAgICAgICAgIHJldHVybiAwOwogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICByZXR1cm4gW1tOU0N1cnNvciBhbGxvY10gaW5pdFdp
dGhJbWFnZTppbWcgaG90U3BvdDpob3RzcG90XTsKKyAgICByZXR1cm4gW1tOU0N1cnNvciBhbGxv
Y10gaW5pdFdpdGhJbWFnZTppbWcgaG90U3BvdDpkZXRlcm1pbmVIb3RTcG90KGltYWdlLCBob3RT
cG90KV07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKICAgICByZXR1cm4gMDsKIH0K
QEAgLTc2LDggKzc2LDggQEAgc3RhdGljIE5TQ3Vyc29yKiBsZWFrTmFtZWRDdXJzb3IoY29uc3Qg
YwogICAgIHJldHVybiBuaWw7CiB9CiAKLUN1cnNvcjo6Q3Vyc29yKEltYWdlKiBpbWFnZSwgY29u
c3QgSW50UG9pbnQmIGhvdHNwb3QpCi0gICAgOiBtX2ltcGwoSGFyZFJldGFpbldpdGhOU1JlbGVh
c2UoY3JlYXRlQ3VzdG9tQ3Vyc29yKGltYWdlLCBob3RzcG90KSkpCitDdXJzb3I6OkN1cnNvcihJ
bWFnZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQorICAgIDogbV9pbXBsKEhhcmRS
ZXRhaW5XaXRoTlNSZWxlYXNlKGNyZWF0ZUN1c3RvbUN1cnNvcihpbWFnZSwgaG90U3BvdCkpKQog
ewogfQogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L0N1cnNvclF0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L0N1cnNvclF0LmNwcAkocmV2aXNpb24gNjA2NDUpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL3F0L0N1cnNvclF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcs
MTEgKzU3LDEyIEBAIEN1cnNvcjo6fkN1cnNvcigpCiB7CiB9CiAKLUN1cnNvcjo6Q3Vyc29yKElt
YWdlKiBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGhvdHNwb3QpCitDdXJzb3I6OkN1cnNvcihJbWFn
ZSogaW1hZ2UsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQorewogI2lmbmRlZiBRVF9OT19DVVJT
T1IKLSAgICA6IG1faW1wbCgqKGltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpKSwg
aG90c3BvdC54KCksIGhvdHNwb3QueSgpKQorICAgIEludFBvaW50IGVmZmVjdGl2ZUhvdFNwb3Qg
PSBkZXRlcm1pbmVIb3RTcG90KGltYWdlLCBob3RTcG90KTsKKyAgICBtX2ltcGwgPSBRQ3Vyc29y
KCooaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkpLCBlZmZlY3RpdmVIb3RTcG90
LngoKSwgZWZmZWN0aXZlSG90U3BvdC55KCkpOwogI2VuZGlmCi17CiB9CiAKIEN1cnNvciYgQ3Vy
c29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vd2luL0N1cnNvcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93aW4v
Q3Vyc29yV2luLmNwcAkocmV2aXNpb24gNjA2NDUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3dpbi9D
dXJzb3JXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw4ICs1Miw5IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBzdXBwb3J0c0FscGhhQ3Vyc29ycygKICAgICByZXR1cm4gb3NpbmZvLmR3TWFqb3JW
ZXJzaW9uID4gNSB8fCAob3NpbmZvLmR3TWFqb3JWZXJzaW9uID09IDUgJiYgb3NpbmZvLmR3TWlu
b3JWZXJzaW9uID4gMCk7CiB9CiAKLUN1cnNvcjo6Q3Vyc29yKEltYWdlKiBpbWcsIGNvbnN0IElu
dFBvaW50JiBob3RzcG90KSAKLXsgCitDdXJzb3I6OkN1cnNvcihJbWFnZSogaW1nLCBjb25zdCBJ
bnRQb2ludCYgaG90U3BvdCkKK3sKKyAgICBJbnRQb2ludCBlZmZlY3RpdmVIb3RTcG90ID0gZGV0
ZXJtaW5lSG90U3BvdChpbWcsIGhvdFNwb3QpOwogICAgIHN0YXRpYyBib29sIGRvQWxwaGEgPSBz
dXBwb3J0c0FscGhhQ3Vyc29ycygpOwogICAgIEJpdG1hcEluZm8gY3Vyc29ySW1hZ2UgPSBCaXRt
YXBJbmZvOjpjcmVhdGUoSW50U2l6ZShpbWctPndpZHRoKCksIGltZy0+aGVpZ2h0KCkpKTsKIApA
QCAtNzQsOCArNzUsOCBAQCBDdXJzb3I6OkN1cnNvcihJbWFnZSogaW1nLCBjb25zdCBJbnRQb2lu
CiAKICAgICAgICAgSUNPTklORk8gaWk7CiAgICAgICAgIGlpLmZJY29uID0gRkFMU0U7Ci0gICAg
ICAgIGlpLnhIb3RzcG90ID0gaG90c3BvdC54KCk7Ci0gICAgICAgIGlpLnlIb3RzcG90ID0gaG90
c3BvdC55KCk7CisgICAgICAgIGlpLnhIb3RzcG90ID0gZWZmZWN0aXZlSG90U3BvdC54KCk7Cisg
ICAgICAgIGlpLnlIb3RzcG90ID0gZWZmZWN0aXZlSG90U3BvdC55KCk7CiAgICAgICAgIGlpLmhi
bU1hc2sgPSBoTWFzay5nZXQoKTsKICAgICAgICAgaWkuaGJtQ29sb3IgPSBoQ3Vyc29yLmdldCgp
OwogCkBAIC0xMTAsOCArMTExLDggQEAgQ3Vyc29yOjpDdXJzb3IoSW1hZ2UqIGltZywgY29uc3Qg
SW50UG9pbgogCiAgICAgICAgIElDT05JTkZPIGljb24gPSB7MH07CiAgICAgICAgIGljb24uZklj
b24gPSBGQUxTRTsKLSAgICAgICAgaWNvbi54SG90c3BvdCA9IGhvdHNwb3QueCgpOwotICAgICAg
ICBpY29uLnlIb3RzcG90ID0gaG90c3BvdC55KCk7CisgICAgICAgIGljb24ueEhvdHNwb3QgPSBl
ZmZlY3RpdmVIb3RTcG90LngoKTsKKyAgICAgICAgaWNvbi55SG90c3BvdCA9IGVmZmVjdGl2ZUhv
dFNwb3QueSgpOwogICAgICAgICBpY29uLmhibU1hc2sgPSBhbmRNYXNrLmdldCgpOwogICAgICAg
ICBpY29uLmhibUNvbG9yID0geG9yTWFzay5nZXQoKTsKICAgICAgICAgbV9pbXBsID0gU2hhcmVk
Q3Vyc29yOjpjcmVhdGUoQ3JlYXRlSWNvbkluZGlyZWN0KCZpY29uKSk7CkluZGV4OiBXZWJDb3Jl
L21hbnVhbC10ZXN0cy9yZXNvdXJjZXMvY3VyLWhvdHNwb3QuY3VyCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQ2Fubm90
IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjptaW1lLXR5cGUgPSBh
cHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUvbWFu
dWFsLXRlc3RzL3Jlc291cmNlcy9jdXItaG90c3BvdC5jdXIKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
Om1pbWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCkFBQUNBQUVBSUNBQUFC
OEFId0NvRUFBQUZnQUFBQ2dBQUFBZ0FBQUFRQUFBQUFFQUlBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBTHgwYS93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFGVkdSUDh2SFJyL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUJWUmtULzZPYmwveThkR3Y4QUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVZV
WkUvK2ptNWYvLy8vLy8KTHgwYS93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRlZHClJQ
L281dVgvLy8vLy8vLy8vLzh2SFJyL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQlZSa1QvNk9i
bC8vLy8vLy8vLy8vLy8vLy8veThkR3Y4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBVlVaRS8ram01Zi8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy9MeDBhL3dBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGVkdSUC9rNHVMLy9mMzkv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vOHYKSFJyL0FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUJWUmtULzM5M2MvL2o0K1AvNysv
di8vZjM5Ci8vLy8vLy8vLy8vLy8vLy8veThkR3Y4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVZVWkUvOWpXMXYveAo4ZkgvOWZYMS8v
ajQrUC83Ky92Ly9mMzkvLy8vLy8vLy8vLy9MeDBhL3dBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUZWR1JQL1J6OC8vNnVycS8rN3U3di94OGZI
LzlmWDEvL2o0K1AvNysvdi8vZjM5Ly8vLy8vOHZIUnIvQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQlZSa1QveThuSi8rTGk0di9tNXViLzZ1cnEvKzd1
N3YveDhmSC85ZlgxLy9qNCtQLzcrL3YvL2YzOS95OGQKR3Y4QUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFGVkdSUDlWUmtUL1ZVWkUvMVZHUlA5VlJrVC82
dXJxLys3dTd2L2IyZG4vCjlmWDEvL2o0K1AvNysvdi9MeDBhL3dBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUZaSApS
Zi9tNXViL3E2V2sveU1RRGYvYjJkbi85ZlgxLy9qNCtQOHZIUnIvQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUJCTUM3L3k4
bkovK0xpNHY5Qk1DNy9BQUFBQUNNUURmL2IyZG4vOWZYMS95OGRHdjhBQUFBQUFBQUFBQUFBQUFB
QQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBRjFQVGYv
YjI5di90YkN3LzExUFRmOEFBQUFBQUFBQUFDTVFEZi9iMmRuL0x4MGEKL3dBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFCRE1qRC93c0RB
LzlqWTJQODlMU3IvQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUNNUURmOVZSa1QvQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUVjM05mL1Qw
OVAvd3NEQQovMTFQVGY4QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFB
SEZrWXY4OUxTci9BQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEK
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQQpBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
CkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB
QUFBQUFBQUFBQUFBQUFBQS8vLy8KL3YvLy8vei8vLy80Ly8vLzhQLy8vK0QvLy8vQS8vLy9nUC8v
L3dELy8vNEEvLy84QVAvLytBRC8vL0FBLy8vd0FQLy8vd0QvLy80UQovLy8rR1AvLy9Eei8vL3cv
Ly8vK2YvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi8vLy8vLy8vLy8vLy8vOD0KCg==
</data>
<flag name="review"
          id="42952"
          type_id="1"
          status="+"
          setter="sullivan"
    />
          </attachment>
      

    </bug>

</bugzilla>