<?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>86704</bug_id>
          
          <creation_ts>2012-05-16 22:38:16 -0700</creation_ts>
          <short_desc>Convert setDomainRelaxationForbiddenForURLScheme to use InternalSettings interface.</short_desc>
          <delta_ts>2012-05-21 00:57:36 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          <dependson>86748</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>sullivan</cc>
    
    <cc>tkent</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>626267</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-16 22:38:16 -0700</bug_when>
    <thetext>Adjust setDomainRelaxationForbiddenForURLScheme tests to use InternalSettings instead of LayoutTestController interface. In my humble opinion, setDomainRelaxationForbiddenForURLScheme() is able to be supported by InternalSettings because it looks this function is implemented by WebCore layer, not WebKit layer. If reviewers think this test function is able to be dealt with by WebKit layer, I will remove this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626277</commentid>
    <comment_count>1</comment_count>
      <attachid>142416</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-16 22:51:25 -0700</bug_when>
    <thetext>Created attachment 142416
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626291</commentid>
    <comment_count>2</comment_count>
      <attachid>142416</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 23:22:55 -0700</bug_when>
    <thetext>Comment on attachment 142416
Patch

Attachment 142416 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12716489</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626306</commentid>
    <comment_count>3</comment_count>
      <attachid>142416</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-16 23:46:48 -0700</bug_when>
    <thetext>Comment on attachment 142416
Patch

Attachment 142416 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12723245</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626321</commentid>
    <comment_count>4</comment_count>
      <attachid>142427</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-17 00:07:33 -0700</bug_when>
    <thetext>Created attachment 142427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626323</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 00:10:18 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626355</commentid>
    <comment_count>6</comment_count>
      <attachid>142427</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-17 00:57:59 -0700</bug_when>
    <thetext>Comment on attachment 142427
Patch

Attachment 142427 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12719441</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626364</commentid>
    <comment_count>7</comment_count>
      <attachid>142439</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-17 01:06:24 -0700</bug_when>
    <thetext>Created attachment 142439
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626413</commentid>
    <comment_count>8</comment_count>
      <attachid>142439</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-17 03:17:01 -0700</bug_when>
    <thetext>Comment on attachment 142439
Patch

Yay!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626436</commentid>
    <comment_count>9</comment_count>
      <attachid>142439</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 04:13:47 -0700</bug_when>
    <thetext>Comment on attachment 142439
Patch

Clearing flags on attachment: 142439

Committed r117428: &lt;http://trac.webkit.org/changeset/117428&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626437</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 04:13:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626499</commentid>
    <comment_count>11</comment_count>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2012-05-17 06:04:08 -0700</bug_when>
    <thetext>Safari was using [WebView _setDomainRelaxationForbiddenForURLScheme:], so this change broke the Safari build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626503</commentid>
    <comment_count>12</comment_count>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2012-05-17 06:07:26 -0700</bug_when>
    <thetext>We need to roll this change out or restore [WebKit _setDomainRelaxationForbidden:forURLScheme:] ASAP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626638</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-17 09:30:43 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 86748</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626642</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-05-17 09:37:38 -0700</bug_when>
    <thetext>I&apos;m not sure if we have guidelines on rules for touching other platform&apos;s API layers, but this patch did so a bit recklessly..

In general you have to treat &quot;ClassNamePrivate.h&quot; headers the same as &quot;ClassName.h&quot; headers - the methods are APIs that embedding applications use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626684</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-05-17 10:29:23 -0700</bug_when>
    <thetext>This change was reverted in http://trac.webkit.org/changeset/117460</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626744</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-17 11:21:15 -0700</bug_when>
    <thetext>This has been discussed before in similar bugs. Patches that change *Private.h in WebKit/mac headers need to be reviewed by Apple engineers, who can do at least partial verification that this is OK.

Since routing through LayoutTestController is testing SPI that cannot be removed, this seems like a WONTFIX.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626764</commentid>
    <comment_count>17</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-05-17 11:36:42 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; This has been discussed before in similar bugs. Patches that change *Private.h in WebKit/mac headers need to be reviewed by Apple engineers, who can do at least partial verification that this is OK.

In general it seems like this rule needs to extend to all API layers of all platforms.  This type of change could very easily have broken others as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>626846</commentid>
    <comment_count>18</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-05-17 12:26:14 -0700</bug_when>
    <thetext>My apologies for the build break.

I would strongly encourage folks who wish to monitor Apple&apos;s SPI/APIs to add themselves to the watchlist for the apprpriate regexps:
http://trac.webkit.org/wiki/WatchList

That may help catch this sort of thing earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627263</commentid>
    <comment_count>19</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-17 19:58:13 -0700</bug_when>
    <thetext>First of all, I&apos;m so sorry for build problem. However, in my humble opinion, it seems to me this patch is still valuable except for mac API. Because, setDomainRelaxationForbiddenForURLScheme() function just adds|remove a scheme to SchemeRegistry&apos;s hash table. So, I thought this patch doesn&apos;t need to do something in WebKit layer. 

If mac port is using _setDomainRelaxationForbidden:forURLScheme as public APIs and this APIs should be tested by LTC, I&apos;m enough to understand this patch was wrong. However, this APIs was added to WebViewPrivate.h in mac port. So, it looks this is internal function for testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627272</commentid>
    <comment_count>20</comment_count>
      <attachid>142439</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-17 20:05:08 -0700</bug_when>
    <thetext>Comment on attachment 142439
Patch

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

&gt; Source/WebKit/chromium/public/WebView.h:-145
&gt; -    // Allows disabling domain relaxation.
&gt; -    virtual void setDomainRelaxationForbidden(bool, const WebString&amp; scheme) = 0;

For what it&apos;s worth, this part of the change is correct.  This API is not needed by Chromium, and if it were, this API should be on WebSecurityPolicy, not WebView.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627284</commentid>
    <comment_count>21</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-17 20:20:18 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 142439 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=142439&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebView.h:-145
&gt; &gt; -    // Allows disabling domain relaxation.
&gt; &gt; -    virtual void setDomainRelaxationForbidden(bool, const WebString&amp; scheme) = 0;
&gt; 
&gt; For what it&apos;s worth, this part of the change is correct.  This API is not needed by Chromium, and if it were, this API should be on WebSecurityPolicy, not WebView.

If this patch can&apos;t be landed, I will file new bug for your comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>627718</commentid>
    <comment_count>22</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-05-18 08:36:48 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; First of all, I&apos;m so sorry for build problem. However, in my humble opinion, it seems to me this patch is still valuable except for mac API. 

No one was commenting on the value of the patch.  However, I disagree that moving forward with it was okay &quot;except for mac API.&quot;

The patch changed 3 platform&apos;s API layers.  Clearly the chromium platform change was reviewed and okay&apos;ed by chromium folks.

But it changed both Mac and Windows API without getting an all clear from their ports.

Fortunately the gtk and qt changes were kept contained within DRT support specifically.
 
&gt; However, this APIs was added to WebViewPrivate.h in mac port. So, it looks this is internal function for testing.

And IWebViewPrivate.dll in the windows port.  As I mentioned earlier:

&gt; In general you have to treat &quot;ClassNamePrivate.h&quot; headers the same as &quot;ClassName.h&quot; headers - the methods are APIs that embedding applications use.

Mac and Windows have the following naming schemes for headers/idls:
&quot;ClassName.h/idl&quot; for published API
&quot;ClassNamePrivate.h/idl&quot; for unpublished API (but still a big binary compatibility risk)
&quot;ClassNameInternal.h/idl&quot; for functions 100% internal to WebKit.

Perhaps this needs to be better documented somewhere, but that is how it has always been since the start of the project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628850</commentid>
    <comment_count>23</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-21 00:57:36 -0700</bug_when>
    <thetext>(In reply to comment #22)
I agree with your opinion. We can only remove | move APIs when there are no issues related to APIs in all ports.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142416</attachid>
            <date>2012-05-16 22:51:25 -0700</date>
            <delta_ts>2012-05-17 00:07:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86704-20120517145123.patch</filename>
            <type>text/plain</type>
            <size>33956</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkyN2QzNzk3ZTdkNzFi
Yjk2MzkxZWQ3OTZlZTYwNTJlNGYyNGQ0MS4uYWFiMjFmYTg0YTc2NzQ3MDA2YzZmYTNjZGQ0NzRm
ZmYyYmMwM2M4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA1LTE2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQ29udmVydCBz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIHRvIHVzZSBJbnRlcm5hbFNl
dHRpbmdzIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODY3MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSBmdW5j
dGlvbnMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1w
b3J0IHdheSBieSBtZWFucyBvZiB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBzaW5jZSB3ZSBhcmUgaW1wcm92aW5nIGhlcmUgdGhlIGluZnJh
LXN0cnVjdHVyZSBmb3IgdGVzdGluZworICAgICAgICBhIHNwZWNpZmljIG1ldGhvZC4KKworICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldERvbWFpblJlbGF4YXRpb25G
b3JiaWRkZW5Gb3JVUkxTY2hlbWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbDoKKwogMjAxMi0wNS0xNiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTogbGF6eSBpbml0aWFs
aXphdGlvbiBvZiBzdGF0aWMgbnVsbFZhbHVlIG5vdCB0aHJlYWRzYWZlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGM4YzE3YWVmNmUwNTc3ZGFiNmE0YjE2YjBjYjc0NWNkZjJhY2IzNjku
LmFmNmQwMzgwZGFiMTMxNDhlNmY5OTg4MTY2ZDA1OGJlZTE0YWNjYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDUtMTYgIEd5dXlvdW5nIEtpbSAg
PGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252ZXJ0IHNldERvbWFpblJl
bGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIEludGVybmFsU2V0dGluZ3MgaW50
ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjcwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIGZ1bmN0aW9ucywg
YmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBvcnQgd2F5
IHRocm91Z2ggdGhlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlLgorCisgICAgICAgICogc3Jj
L1dlYlZpZXdJbXBsLmNwcDoKKwogMjAxMi0wNS0xNiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gSW5kZXhlZERCOiBXZWJLaXQgQVBJIGZv
ciBJREJPYmplY3RTdG9yZS5hdXRvSW5jcmVtZW50IHByb3BlcnR5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5k
ZXggNmMyYzA2MjNlYzhlYzQzYWIxM2JjNWQ3YWVhOWQ3MTRjYmU5NjRkZC4uMmFiYzRkZWVkYWE0
MjFjYzE1N2UyZDM0MTNjMjc2MzA5Nzc4YzMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDEyLTA1LTE2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5j
b20+CisKKyAgICAgICAgQ29udmVydCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJM
U2NoZW1lIHRvIHVzZSBJbnRlcm5hbFNldHRpbmdzIGludGVyZmFjZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY3MDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgc2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZSBmdW5jdGlvbnMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3
b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbFNl
dHRpbmdzIGludGVyZmFjZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmRl
bGl2ZXJBbGxNdXRhdGlvbnNJZk5lY2Vzc2FyeSk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGspOgorCiAyMDEyLTA1LTE0ICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5z
YW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFtHVEtdIFdyb25nIGRvY3VtZW50YXRpb24gZm9y
IFdlYiBEYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGJhYjliMzU4ZjlhMGRkYzIzZjMwNjNm
MDAwNjU3ZTA3YTAxOWI2ZjUuLmM3OWEyMDUwZTI4NGRiYTJmY2E1Mjc1NWVjZDg5N2ZlNTY3ZTJj
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNS0xNiAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIENvbnZlcnQgc2V0
RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSB0byB1c2UgSW50ZXJuYWxTZXR0
aW5ncyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg2NzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgZnVu
Y3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUKKyAgICAgICAgY3Jvc3Mt
cG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAgICAg
ICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisKIDIwMTItMDUtMTUgIEFuZGVycyBDYXJsc3NvbiAg
PGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgdW5hY2NlbGVyYXRlZCBzY3JvbGxp
bmcgZGVsdGFzIHdoZW4gcnViYmVyLWJhbmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggMWRhZDc5MTFj
NzljYjdkZWI1NzM0MjEzZWQ2YjhlYzY4ZjU1ODBkNC4uM2VjODA1YjY3Y2Q2MGQ0Njg3YWYxOTU0
NzcwYjI3ODNhYTdmMDQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0w
NS0xNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAg
IENvbnZlcnQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSB0byB1c2Ug
SW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2NzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JV
UkxTY2hlbWUgZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUKKyAg
ICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZh
Y2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5j
cHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoK
KwogMjAxMi0wNS0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW1F0XSBBZGQgaW5mcmEgZm9yIHRlc3RpbmcgZG91YmxlLXRhcCB0
byB6b29tIGZ1bmN0aW9uYWxpdHkgZXRjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYzJhOTZiMDgwMmJh
OWI1ZjQ5NDkyMTcwYzc1OTY3NmFlZGQ4NjlhNy4uZTg2OTZmZjY3NzM2NjFlZjE0ZjM3ZGZmMDVh
Y2E3OWRlOGI2Mzg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA1
LTE2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
Q29udmVydCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIHRvIHVzZSBJ
bnRlcm5hbFNldHRpbmdzIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODY3MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW1vdmUgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVS
TFNjaGVtZSBmdW5jdGlvbnMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZQorICAg
ICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbFNldHRpbmdzIGludGVyZmFj
ZS4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKKyAgICAgICAg
KiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisgICAgICAgIChXZWJWaWV3KToK
KwogMjAxMi0wNS0xMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgog
CiAgICAgICAgIE1vdmUgcmVzdW1lQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNDkz
YTM5ZGExZTYxZWQxYTNhMWEwNjY5YmIxMzMwMWY0YzE1NTIyMi4uZDFjNmRiMjZjOTBlNDk1MWY1
YTRjOGUwMGJjNmZiYTEzYjQ3OTJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiTG9jYWxlVG9TY3Jp
cHRNYXBwaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKQEAgLTMyOCw1ICszMjksMTAg
QEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2Vz
dHVyZShib29sIGVuYWJsZWQsIEV4Y2VwdGkKICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JT
ZXR0aW5ncygpOwogICAgIHNldHRpbmdzKCktPnNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJH
ZXN0dXJlKGVuYWJsZWQpOwogfQorICAgIAordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXREb21h
aW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25zdCBT
dHJpbmcmIHVybFNjaGVtZSwgRXhjZXB0aW9uQ29kZSYpCit7CisgICAgU2NoZW1lUmVnaXN0cnk6
OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCB1cmxT
Y2hlbWUpOworfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
CmluZGV4IDY2MTk3Njc1NGNiNzM3NjdmYTI0NDE5MDYwMDhmMjhhNjgwMmZkNTcuLjg3ZTljMzhk
MTdiNGQzNzExMWE5MjhlOGFiMTBiMjRiN2VjZTA4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICBib29s
IHNjcm9sbEFuaW1hdG9yRW5hYmxlZChFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRDU1NF
eGNsdXNpb25zRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKGJvb2wsIEV4Y2VwdGlvbkNvZGUm
KTsKLQorICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShi
b29sIGZvcmJpZGRlbiwgY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2b2lkIHJlc3RvcmVUbyhTZXR0aW5ncyopOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggYmJhYmUzYWIzODUzYjBkZDA1
MDdlNDI2NmQyMjZlY2ZmZDVlZWEwOC4uM2ZjOTdkMzIxNTUwOTlmZjJkZDMxOWI2NzI4NTQ1Yzlk
YjcwMjU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRs
CkBAIC01Myw2ICs1Myw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBib29sZWFuIHNjcm9s
bEFuaW1hdG9yRW5hYmxlZCgpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNl
dENTU0V4Y2x1c2lvbnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIHZvaWQgc2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUo
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGluIGJvb2xlYW4gZm9yYmlk
ZGVuLCBpbiBET01TdHJpbmcgdXJsU2NoZW1lKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXgg
ZTg4NGZlYTdhMjgzYzM1MzU3NDIxZmJkZTkxMDU3YjdiZDgxNmFiYS4uYmUzODgzZTNiMWUwNDBk
NzQzYWY4NzlhZWE1NmNjMjgyNGFmZGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmNwcApAQCAtMjkzNCwxMSArMjkzNCw2IEBAIGJvb2wgV2ViVmlld0ltcGw6
OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gKHBhZ2UoKSAmJiBwYWdlKCktPmZvY3VzQ29u
dHJvbGxlcigpKSA/IHBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZlKCkgOiBmYWxz
ZTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbihi
b29sIGZvcmJpZGRlbiwgY29uc3QgV2ViU3RyaW5nJiBzY2hlbWUpCi17Ci0gICAgU2NoZW1lUmVn
aXN0cnk6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVu
LCBTdHJpbmcoc2NoZW1lKSk7Ci19Ci0KIHZvaWQgV2ViVmlld0ltcGw6OnNldFNjcm9sbGJhckNv
bG9ycyh1bnNpZ25lZCBpbmFjdGl2ZUNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZUNvbG9yLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrQ29sb3IpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwCmluZGV4IDAzODI3YjRiNzE5NDlkNjVjOThiNDUyOGU2ODY2ZGU2ZjA3YjBhNGYuLjM0YjA5
YTBmOWEwNGE1ZGI1NWEwYjFjN2NiZjRhZjM1YWQzNGE1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcApAQCAtNTYsNyArNTYsNiBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAj
aW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKLSNp
bmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAj
aW5jbHVkZSAiU2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtODgw
LDggKzg3OSwzIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkZWxpdmVyQWxsTXV0
YXRpb25zSWZOZWNlc3NhcnkoKQogICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJB
bGxNdXRhdGlvbnMoKTsKICNlbmRpZgogfQotCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRl
biwgY29uc3QgY2hhciogdXJsU2NoZW1lKQotewotICAgIFNjaGVtZVJlZ2lzdHJ5OjpzZXREb21h
aW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZvcmJpZGRlbiwgU3RyaW5nOjpmcm9t
VVRGOCh1cmxTY2hlbWUpKTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggYTBmZDFhNTY3
ZGRjYzkyMTdhODU0YTU5NzQ1MmZhYzcwZmNkM2Y3ZC4uMjFiNzE3NTM4ZThlZDNjY2VmM2Q2Nzcz
MWVlYTNkNzhhYzgzNjA1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTEyNiw3ICsxMjYs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5z
KFdlYktpdFdlYlZpZXcqLCBib29sIGVuYWJsZWQpOwogCiAgICAgc3RhdGljIHZvaWQgZGVsaXZl
ckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0RG9tYWluUmVs
YXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgY2hhciog
dXJsU2NoZW1lKTsKIAogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBzX2RydFJ1bjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBjY2Y1NTQxM2E4MGNlMjQ1OWNiY2E5Yjg5
MGZiZmM3ZjgyMWI1YjIzLi43YjlkOGU1ODQwMDU3ZGU1ZjcyMDE5ZjRmMDhjOWEyYTU4OWZkMDlj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNzA2LDExICsyNzA2LDYg
QEAgc3RhdGljIFBhc3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB0b1N0cmluZ1ZlY3RvcihOU0Fy
cmF5KiBwYXR0ZXJucykKICAgICAgICAgZnJhbWUtPmFuaW1hdGlvbigpLT5yZXN1bWVBbmltYXRp
b25zKCk7CiB9CiAKLSsgKHZvaWQpX3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW46KEJPT0wp
Zm9yYmlkZGVuIGZvclVSTFNjaGVtZTooTlNTdHJpbmcgKilzY2hlbWUKLXsKLSAgICBTY2hlbWVS
ZWdpc3RyeTo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShmb3JiaWRk
ZW4sIHNjaGVtZSk7Ci19Ci0KICsgKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmU6KE5T
U3RyaW5nICopc2NoZW1lCiB7CiAgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1l
QXNTZWN1cmUoc2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggMmQ0ZmI1MDU3ZDJk
YWI1ZjMwNDk5OWM2MjFkMjFhYmIwM2FlNzAxNS4uNGZmMzM0OTY1YmU2OTcyN2RhZDc0YTg0YzE0
NDlhMzJiNzZhZmVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTcxLDcgKzcxLDYgQEAK
ICNpbmNsdWRlICJQcmludENvbnRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5oIgog
I2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKLSNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5o
IgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTY3JpcHRTb3VyY2VD
b2RlLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKQEAgLTQ4NSwxMSArNDg0LDYgQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzKCkK
ICAgICBTZWN1cml0eVBvbGljeTo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CiB9CiAK
LXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFFTdHJpbmcmIHNjaGVtZSkKLXsK
LSAgICBTY2hlbWVSZWdpc3RyeTo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNj
aGVtZShmb3JiaWRkZW4sIHNjaGVtZSk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQ6OnNldENhcmV0QnJvd3NpbmdFbmFibGVkKFFXZWJQYWdlKiBwYWdlLCBib29sIHZhbHVlKQog
ewogICAgIHBhZ2UtPmhhbmRsZSgpLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRDYXJldEJyb3dzaW5n
RW5hYmxlZCh2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggMzczZjYwZTcwY2Q4YTc3NTBh
ZTI4M2U0NTI4MDE3YTU4OTg1OGQyYy4uYTk2Mzk3NTBiYWI0MjE0Y2ZkNmZmYzM3NTcwZjkzYjc4
ZGM3NGRmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTE1LDcgKzExNSw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCBzdXNwZW5kQWN0aXZlRE9NT2JqZWN0cyhRV2ViRnJhbWUqIGZyYW1l
KTsKICAgICBzdGF0aWMgdm9pZCByZXN1bWVBY3RpdmVET01PYmplY3RzKFFXZWJGcmFtZSogZnJh
bWUpOwogCi0gICAgc3RhdGljIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVS
TFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKICAgICBzdGF0
aWMgdm9pZCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFFXZWJQYWdlKiwgYm9vbCk7CiAgICAg
c3RhdGljIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoUVdlYlBhZ2UqIHBhZ2UsIGJvb2wg
dmFsdWUpOwogICAgIHN0YXRpYyB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKFFX
ZWJQYWdlKiwgYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2Vz
L0lXZWJWaWV3UHJpdmF0ZS5pZGwgYi9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJW
aWV3UHJpdmF0ZS5pZGwKaW5kZXggYjQ2MTk0OTRmMjVjNWNhYWZjZGFkN2E5MzdiZjQ4YzExZDA0
MmQ0NC4uNjBlNGE1NzI2NGI1NGUwMDU3MzkxZGJhZDZiZjlhY2I5OWRlYWIzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbApAQCAtMjI3
LDggKzIyNyw2IEBAIGludGVyZmFjZSBJV2ViVmlld1ByaXZhdGUgOiBJVW5rbm93bgogICAgIEhS
RVNVTFQgZ2VvbG9jYXRpb25EaWRDaGFuZ2VQb3NpdGlvbihbaW5dIElXZWJHZW9sb2NhdGlvblBv
c2l0aW9uKiBwb3NpdGlvbik7CiAgICAgSFJFU1VMVCBnZW9sb2NhdGlvbkRpZEZhaWxXaXRoRXJy
b3IoW2luXSBJV2ViRXJyb3IqIGVycm9yKTsKIAotICAgIEhSRVNVTFQgc2V0RG9tYWluUmVsYXhh
dGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShbaW5dIEJPT0wgZm9yYmlkZGVuLCBbaW5dIEJTVFIg
c2NoZW1lKTsKLQogICAgIEhSRVNVTFQgcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShbaW5dIEJT
VFIgc2NoZW1lKTsKIAogICAgIEhSRVNVTFQgbmV4dERpc3BsYXlJc1N5bmNocm9ub3VzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCmluZGV4IDI2ZTU4MzVkZDA1NzE5YjcxMzJkNDFkMmJiZGZiYjAwM2Ji
NDcwNzMuLjk5ZGFjM2JhZGU3MTdhMjA1NzE1YWVkM2YxZGMwZmM1NDk1ODhlNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCkBAIC0xMjcsNyArMTI3LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlSGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUhhbmRsZUNsaWVudC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9T
Y2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0VmFsdWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsYmFyVGhl
bWUuaD4KQEAgLTY2MDYsMTIgKzY2MDUsNiBAQCBIUkVTVUxUIFdlYlZpZXc6Omdlb2xvY2F0aW9u
RGlkRmFpbFdpdGhFcnJvcihJV2ViRXJyb3IqIGVycm9yKQogICAgIHJldHVybiBTX09LOwogfQog
Ci1IUkVTVUxUIFdlYlZpZXc6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hl
bWUoQk9PTCBmb3JiaWRkZW4sIEJTVFIgc2NoZW1lKQotewotICAgIFNjaGVtZVJlZ2lzdHJ5Ojpz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZvcmJpZGRlbiwgU3RyaW5n
KHNjaGVtZSwgU3lzU3RyaW5nTGVuKHNjaGVtZSkpKTsKLSAgICByZXR1cm4gU19PSzsKLX0KLQog
SFJFU1VMVCBXZWJWaWV3OjpyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKEJTVFIgc2NoZW1lKQog
ewogICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKHRvU3RyaW5n
KHNjaGVtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291
cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IDNhMGY5NWFmZmUwNGJiNGNjZGY0MjQ3M2Iz
MDcyN2JmZDQ2YzhiZDQuLmRkM2NjMzRjM2M0NzZhYzg5ODk0ODdlN2FmNTRhNTgzZDk4ZGMzNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmgKQEAgLTgyNCw3ICs4MjQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGdlb2xvY2F0aW9uRGlkQ2hhbmdlUG9zaXRpb24o
SVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgZ2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yKElXZWJFcnJvciog
ZXJyb3IpOwogCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldERvbWFp
blJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoQk9PTCBmb3JiaWRkZW4sIEJTVFIgc2No
ZW1lKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVnaXN0ZXJVUkxT
Y2hlbWVBc1NlY3VyZShCU1RSKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgcmVnaXN0ZXJVUkxTY2hlbWVBc0FsbG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRl
QnJvd3NpbmcoQlNUUik7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJl
Z2lzdGVyVVJMU2NoZW1lQXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3Npbmco
QlNUUik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291
cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAwOWE5NWVhMWNiMjU2OTkxYjQ3NDY5
NGRlOWYzZjRiYjMyYWNjZjMzLi41YjMzOTIxZmQwY2ZiMzA0NzViZTIxYmY2ZjdmNzlkNmYzZDU3
ZDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTE0NCw2ICsxNDQsNyBAQCBfWk43V2Vi
Q29yZThEb2N1bWVudDM0d2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudEVQTlNfN0Vs
ZW1lbnRFOwogX1pON1dlYkNvcmU4RG9jdW1lbnQzNHdlYmtpdFdpbGxFeGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnRFUE5TXzdFbGVtZW50RTsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzV3ZWJraXRXaWxs
RW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudEVQTlNfN0VsZW1lbnRFOwogX1pON1dlYkNvcmUxN0pT
RE9NR2xvYmFsT2JqZWN0NnNfaW5mb0U7CitfWk43V2ViQ29yZTE0U2NoZW1lUmVnaXN0cnk0MHNl
dERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWVFYlJLTjNXVEY2U3RyaW5nRTsK
IGxvY2FsOgogX1oqOwogY3RpKjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAzZjc4ZmQzYmM4NWJlYWI3OWUzMDZjY2ZhMWNiN2JhNTM3YjYwOWRi
Li41NTA5MzY0NTEwOWQzOGI3MGNhZmE2YjYyOGYwZTcxM2MxYTAwOTgxIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIw
MTItMDUtMTYgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAg
ICAgICBDb252ZXJ0IHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8g
dXNlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjcwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVu
Rm9yVVJMU2NoZW1lIGZ1bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhl
CisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFsU2V0dGluZ3MgaW50
ZXJmYWNlLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRU
ZXN0Q29udHJvbGxlckVmbC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91
dFRlc3RDb250cm9sbGVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5
b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6
CisKIDIwMTItMDUtMTYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KIAogICAgICAgICBbRUZMXSBSb3VuZGluZyBlcnJvcnMgb24gMzItYml0IG1hY2hpbmVz
IGNhdXNlcyB0ZXN0cyB0byBmYWlsCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggODM2ZGRlZmY4YTJlNmQ1MmZmOWQ3YjNkNTgzZDRiOTM2MWI5
YTM4My4uZjI4ZDRlNjYxMDI0YzlmYjg1Mzc3NTk5ODMzMzgyYWVmOWU5NmQwNSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTIzMSwyMSAr
MTIzMSw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldERlZmVyc0xvYWRpbmdDYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXREb21haW5SZWxh
eGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQotewotICAgIC8vIEhhcyBNYWMgYW5kIFdpbmRvd3MgaW1wbGVtZW50YXRpb24KLSAg
ICBpZiAoYXJndW1lbnRDb3VudCA8IDIpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKLQotICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOwotCi0gICAgYm9vbCBmb3JiaWRkZW4gPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRl
eHQsIGFyZ3VtZW50c1swXSk7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNjaGVtZShB
ZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMV0sIDApKTsKLSAg
ICBjb250cm9sbGVyLT5zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZv
cmJpZGRlbiwgc2NoZW1lLmdldCgpKTsKLQotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0TW9ja0RldmljZU9yaWVudGF0
aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1
bWVudENvdW50IDwgNikKQEAgLTIzNzQsNyArMjM1OSw2IEBAIEpTU3RhdGljRnVuY3Rpb24qIExh
eW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXREYXRh
YmFzZVF1b3RhIiwgc2V0RGF0YWJhc2VRdW90YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAogICAgICAgICB7
ICJzZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2FkIiwgc2V0RGVmZXJNYWluUmVzb3VyY2VEYXRh
TG9hZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldERlZmVyc0xvYWRpbmciLCBzZXRE
ZWZlcnNMb2FkaW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0RG9tYWluUmVsYXhh
dGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSIsIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5G
b3JVUkxTY2hlbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRFZGl0aW5nQmVoYXZp
b3IiLCBzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRG
cmFtZUZsYXR0ZW5pbmdFbmFibGVkIiwgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEdlb2xvY2F0aW9uUGVybWlzc2lvbiIsIHNldEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBlM2QzMTgyZGRiNDYyZTE4ZTBhYjgyODkxMWEw
ZDhjZmU3NWYyMDA1Li5hZGQ5ZmNhY2VmNTJiMDM0ODM1ODQyMTM2YTY4NjM5NThmMjk0NjZmIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTk2LDcg
Kzk2LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChpbnQpOwogICAgIHZvaWQg
c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBzZXREZWxlZ2F0ZSwgYm9vbCBwZXJtaXNzaXZl
KTsKICAgICB2b2lkIHNldERhdGFiYXNlUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKTsK
LSAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBm
b3JiaWRkZW4sIEpTU3RyaW5nUmVmIHNjaGVtZSk7CiAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5n
KGJvb2wpOwogICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGljb25EYXRhYmFz
ZUVuYWJsZWQpOwogICAgIHZvaWQgc2V0SmF2YVNjcmlwdFByb2ZpbGluZ0VuYWJsZWQoYm9vbCBw
cm9maWxpbmdFbmFibGVkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNr
YmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAppbmRl
eCBhNzk5YjA0MTQ1YzA4NmQ0Y2IwOWQwN2NiY2NjYmJhOGI3NTJlMjI2Li5mNDFkODA0ZmM0NmFj
ZTI4Yzc1YmU1NDAwNDhmZmZiMWI1NDgxODE3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNr
QmVycnkuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAjaW5jbHVkZSAiT3duQXJyYXlQdHIuaCIKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgotI2luY2x1ZGUg
IlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yMjMsMTEgKzIy
Miw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERhdGFiYXNlUXVvdGEodW5zaWdu
ZWQgbG9uZyBsb25nIHF1b3RhKQogICAgIFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tl
cigpLnNldFF1b3RhKG1haW5GcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgcXVv
dGEpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREb21haW5SZWxheGF0aW9u
Rm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBKU1N0cmluZ1JlZiBzY2hlbWUp
Ci17Ci0gICAgV2ViQ29yZTo6U2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBqc1N0cmluZ1JlZlRvV2ViQ29yZVN0cmluZyhz
Y2hlbWUpKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNl
RW5hYmxlZChib29sIGljb25EYXRhYmFzZUVuYWJsZWQpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGlj
b25EYXRhYmFzZUVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGE1NmY0YzM1YjQwZTAxMDEwYmYy
ZmE1ZjczZWNjNDNhYmU3YmQ0ODUuLjVjYzgzZjliYTY5MzYyNjkwN2QyMjBiNjZhNjE4MGU0MjNj
YWI5ODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE3OCw3ICsxNzgsNiBAQCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0
aG9kKCJzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
Q3VzdG9tUG9saWN5RGVsZWdhdGUpOwogICAgIGJpbmRNZXRob2QoInNldERhdGFiYXNlUXVvdGEi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERhdGFiYXNlUXVvdGEpOwogICAgIGJpbmRNZXRo
b2QoInNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQpOwotICAgIGJpbmRNZXRob2QoInNldERvbWFp
blJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUpOwogICAgIGJpbmRNZXRo
b2QoInNldEVkaXRpbmdCZWhhdmlvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGlu
Z0JlaGF2aW9yKTsKICAgICBiaW5kTWV0aG9kKCJzZXRBdWRpb0RhdGEiLCAmTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEF1ZGlvRGF0YSk7CiAgICAgYmluZE1ldGhvZCgic2V0R2VvbG9jYXRpb25Q
ZXJtaXNzaW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRHZW9sb2NhdGlvblBlcm1pc3Np
b24pOwpAQCAtMTE4MCwxMyArMTE3OSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNp
bXVsYXRlRGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0IENwcEFyZ3VtZW50TGlzCiB9CiAj
ZW5kaWYKIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RG9tYWluUmVsYXhhdGlvbkZv
cmJpZGRlbkZvclVSTFNjaGVtZShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpICE9IDIgfHwgIWFy
Z3VtZW50c1swXS5pc0Jvb2woKSB8fCAhYXJndW1lbnRzWzFdLmlzU3RyaW5nKCkpCi0gICAgICAg
IHJldHVybjsKLSAgICBtX3NoZWxsLT53ZWJWaWV3KCktPnNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW4oY3BwVmFyaWFudFRvQm9vbChhcmd1bWVudHNbMF0pLCBjcHBWYXJpYW50VG9XZWJTdHJp
bmcoYXJndW1lbnRzWzFdKSk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERl
ZmVyTWFpblJlc291cmNlRGF0YUxvYWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA9PSAxKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgKaW5kZXggN2JkYjRlMTQzNjNjY2YyOTIzZjQ4ZTJiNTNjM2Q3Nzc0NTNmM2YyZi4uNmNi
NzdkYTI1ZjhmMTllNWM0NjE4NjdjMGE4NjAzYzBiNWFjMTI4OCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0yNTQs
NyArMjU0LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9u
Q2xpY2soY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogI2VuZGlmCiAKLSAg
ICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0RGVmZXJNYWluUmVzb3Vy
Y2VEYXRhTG9hZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9p
ZCBzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRy
b2xsZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9s
bGVyRWZsLmNwcAppbmRleCAxNmY3MjdmMzE2YzUyMGJlMWViYjZmZTE1MDY2MTc5ZDZhYjJhNDE2
Li4xOTk1ZDhlNzRmNjAyZmQ1ZmRmMmE2NGZmZjA3YmRhNDZiZmJmZjc5IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKQEAg
LTYxNCwxMSArNjE0LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3luY0xvY2FsU3Rv
cmFnZSgpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sLCBKU1N0
cmluZ1JlZikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpnb0JhY2soKQogewogICAgIGV3a19mcmFtZV9iYWNrKGJyb3dzZXItPm1haW5G
cmFtZSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENv
bnRyb2xsZXJHdGsuY3BwCmluZGV4IDVlYjdmYmVkNDJiZGJhMWYxYjQxZDhjYjExZjcxNDdhOWY4
ZDUxMDYuLmUxMzg2YTU4ZWNiMGEyZWNlMjFkNWU4ZGYzNTVhOWQ0YWY4ODQyNGIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cApAQCAtNzM5LDEyICs3MzksNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzeW5jTG9j
YWxTdG9yYWdlKCkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9v
bCBmb3JiaWRkZW4sIEpTU3RyaW5nUmVmIHNjaGVtZSkKLXsKLSAgICBHT3duUHRyPGdjaGFyPiB1
cmxTY2hlbWUoSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcoc2NoZW1lKSk7Ci0gICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1l
KGZvcmJpZGRlbiwgdXJsU2NoZW1lLmdldCgpKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6Z29CYWNrKCkKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gd2Via2l0X3dl
Yl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCBiODM1NmM5MzU1Zjgy
MGExNDUyMzIzZjc4MzZkNGFkOGJjNjg5YjA4Li5hOGM3MTZjYTg5NTU0NjlkNGIxMmFlNWNkMGRk
NjkxYTUzYjgxYWE3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0
VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91
dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC00OTIsMTIgKzQ5Miw2IEBAIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnMpCiAgICAgW1ttYWluRnJh
bWUgd2ViVmlld10gc2V0RGVmZXJzQ2FsbGJhY2tzOmRlZmVyc107CiB9CiAKLXZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUo
Ym9vbCBmb3JiaWRkZW4sIEpTU3RyaW5nUmVmIHNjaGVtZSkKLXsKLSAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHNjaGVtZUNGU3RyaW5nKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtD
RkFsbG9jYXRvckRlZmF1bHQsIHNjaGVtZSkpOwotICAgIFtXZWJWaWV3IF9zZXREb21haW5SZWxh
eGF0aW9uRm9yYmlkZGVuOmZvcmJpZGRlbiBmb3JVUkxTY2hlbWU6KE5TU3RyaW5nICopc2NoZW1l
Q0ZTdHJpbmcuZ2V0KCldOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNb2Nr
RGV2aWNlT3JpZW50YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9v
bCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3Vi
bGUgZ2FtbWEpCiB7CiAgICAgLy8gRHVtcFJlbmRlclRyZWUgY29uZmlndXJlZCB0aGUgV2ViVmll
dyB0byB1c2UgV2ViRGV2aWNlT3JpZW50YXRpb25Qcm92aWRlck1vY2suCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDNlODc1
ZDFjNWZiZGYzYWRiZDlkYTllNTkwNWJkMTg2Nzg4NWIwNTAuLjhhMGJlZWY3OWRiYmUwZTdlMTZk
NTA5NWVjNGYyMmFiZTFhNWY3YzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC03MjAsMTEgKzcyMCw2IEBAIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZChib29sIGVuYWJsZWQp
CiAgICAgICAgIG1fZHJ0LT53ZWJQYWdlKCktPnNldHRpbmdzKCktPnNldFVzZXJTdHlsZVNoZWV0
VXJsKFFVcmwoKSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERvbWFpblJl
bGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFFTdHJp
bmcmIHNjaGVtZSkKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0RG9tYWluUmVs
YXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShmb3JiaWRkZW4sIHNjaGVtZSk7Ci19Ci0KIGlu
dCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d29ya2VyVGhyZWFkQ291bnQoKQogewogICAgIHJldHVy
biBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6d29ya2VyVGhyZWFkQ291bnQoKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCAyNGFi
MDk3ZDExNjkyMzdiOTNhZDQ3OWY0YmYyNTRhZThjNTRlOGZkLi5lMzQxZDljODk0ZGIzYmE3NjFh
MDJlMWY5OTRkMDQ1MGVkMmM5MjdhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0yMTEsNyArMjExLDYgQEAgcHVibGljIHNsb3Rz
OgogICAgIHZvaWQgb3ZlcnJpZGVQcmVmZXJlbmNlKGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0
IFFWYXJpYW50JiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGNv
bnN0IFFTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoYm9v
bCBlbmFibGVkKTsKLSAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxT
Y2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFFTdHJpbmcmIHNjaGVtZSk7CiAgICAgaW50IHdv
cmtlclRocmVhZENvdW50KCk7CiAgICAgaW50IHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZChjb25z
dCBRU3RyaW5nJiBpZCwgZmxvYXQgd2lkdGggPSAwLCBmbG9hdCBoZWlnaHQgPSAwKTsKICAgICBp
bnQgbnVtYmVyT2ZQYWdlcyhmbG9hdCB3aWR0aCA9IG1heFZpZXdXaWR0aCwgZmxvYXQgaGVpZ2h0
ID0gbWF4Vmlld0hlaWdodCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
TGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xh
eW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCBmYjIzN2IxMTU3NmJhZWI3NmJmYjVhMmZh
Yjk1NDZjODBjMjRjMTgwLi45MTM3MzdjYWZmOGM4YTQ0NWU4MDI3NmJmYmU3YzNjNjdiZTUwNDMw
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xs
ZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJv
bGxlcldpbi5jcHAKQEAgLTEwNDMsMTcgKzEwNDMsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0byBl
bmFibGUgbG9hZGVyL25hdmlnYXRpb24td2hpbGUtZGVmZXJyaW5nLWxvYWRzLmh0bWwKIH0KIAot
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgSlNTdHJpbmdSZWYgc2NoZW1lKQotewotICAgIENP
TVB0cjxJV2ViVmlld1ByaXZhdGU+IHdlYlZpZXc7Ci0gICAgaWYgKEZBSUxFRChXZWJLaXRDcmVh
dGVJbnN0YW5jZShfX3V1aWRvZihXZWJWaWV3KSwgMCwgX191dWlkb2Yod2ViVmlldyksIHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd2ViVmlldykpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
QlNUUiBzY2hlbWVCU1RSID0gSlNTdHJpbmdDb3B5QlNUUihzY2hlbWUpOwotICAgIHdlYlZpZXct
PnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBzY2hl
bWVCU1RSKTsKLSAgICBTeXNGcmVlU3RyaW5nKHNjaGVtZUJTVFIpOwotfQotCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcgbG9u
ZyBzaXplKQogewogICAgIHByaW50ZigiRVJST1I6IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRB
cHBDYWNoZU1heGltdW1TaXplKCkgbm90IGltcGxlbWVudGVkXG4iKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5kZXggMjEzOWU3
YzAxNjg2NGNhNGY1MTY4ZWIzOWEwNzQ2MTMwZGU2ZTJiOC4uNTRjZjczOTRiNjE4MjUzZjI1ZTE3
MDE2OGRmNDRmN2NlMTQzNzBlOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
TGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
TGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKQEAgLTI5NywxMSArMjk3LDYgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0RGVmZXJzTG9hZGluZyhib29sKQogICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQgdG8gZW5hYmxlIGxvYWRlci9uYXZpZ2F0aW9uLXdoaWxlLWRlZmVycmluZy1sb2Fk
cy5odG1sCiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCwgSlNTdHJpbmdSZWYpCi17Ci0gICAgLy8gRklY
TUU6IGltcGxlbWVudAotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBcHBDYWNo
ZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQogewogICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA5YWVlZjk4MGExY2VmM2JkYTA0YjcxMTY5YmZmNWJmOGQ5NzE3ZWVh
Li4zYzQyOTVmZTcxMTRlOTY2YmVjYTY2NDU2ZWY0YzE2YWQ5OWViMTg0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTItMDUtMTYgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBDb252ZXJ0IHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JV
UkxTY2hlbWUgdG8gdXNlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjcwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludm9rZSBzZXREb21haW5SZWxheGF0
aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIGZ1bmN0aW9ucyBmcm9tIGludGVybmFsU2V0dGluZ3Ms
IGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1wb3J0IHdh
eSB2aWEgdGhlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlLgorCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lLmh0
bWw6CisKIDIwMTItMDUtMTYgIENocmlzIFJvZ2VycyAgPGNyb2dlcnNAZ29vZ2xlLmNvbT4KIAog
ICAgICAgICBBdWRpb1BhcmFtIG11c3Qgc3VwcG9ydCBmYW4taW4gKG11bHRpcGxlIGF1ZGlvIGNv
bm5lY3Rpb25zKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9z
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxT
Y2hlbWUuaHRtbAppbmRleCBiNjMxZjk3NzI1MzdjNDg2YzNmOTA4ZjNhMmY3OWNkYzhjYTg0ZTVh
Li41NTI5MTBhNTNhMDMxMjM5OTQ1ZmE3NGVjZTRhNzI0NTFiOGQ2OGNhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUuaHRtbApAQCAtMzYsOCAr
MzYsOCBAQAogCiAgICAgICAgIGxvZygiRm9yYmlkZGluZyBkb21haW4gcmVsYXhhdGlvbiBmb3Ig
dGhlIGh0dHA6IHNjaGVtZSIpOwogCi0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXREb21haW5SZWxheGF0
aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKHRydWUsICJodHRwIik7CisgICAgICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldERvbWFpblJl
bGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUodHJ1ZSwgImh0dHAiKTsKIAogICAgICAgICB2
YXIgZXhjZXB0aW9uOwogICAgICAgICB0cnkgewpAQCAtNTMsOCArNTMsOCBAQAogCiAgICAgICAg
IGRvbWFpblNob3VsZEJlKCIwLjAuMSIpOwogCi0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXREb21haW5S
ZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZhbHNlLCAiaHR0cCIpOworICAgICAgICBp
ZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRE
b21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZhbHNlLCAiaHR0cCIpOwogCiAg
ICAgICAgIGxvZygiQWxsb3dpbmcgZG9tYWluIHJlbGF4YXRpb24gZm9yIHRoZSBodHRwOiBzY2hl
bWUiKTsKIApAQCAtNjMsMTYgKzYzLDE2IEBACiAKICAgICAgICAgbG9nKCJGb3JiaWRkaW5nIGRv
bWFpbiByZWxheGF0aW9uIGZvciB0aGUgbm90LWh0dHA6IHNjaGVtZSIpOwogCi0gICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKHRydWUsICJu
b3QtaHR0cCIpOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1l
KHRydWUsICJub3QtaHR0cCIpOwogCiAgICAgICAgIGRvY3VtZW50LmRvbWFpbiA9ICIxIjsKICAg
ICAgICAgZG9tYWluU2hvdWxkQmUoIjEiKTsKIAogICAgICAgICBsb2coIkFsbG93aW5nIGRvbWFp
biByZWxheGF0aW9uIGZvciB0aGUgbm90LWh0dHA6IHNjaGVtZSIpOwogCi0gICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZhbHNlLCAibm90
LWh0dHAiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShm
YWxzZSwgIm5vdC1odHRwIik7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZTExOTNkMmY2OTEwMTA4MzZmOTE3
NzU3YjdmNjZlZTI1ZDA2NWNhMi4uZWRhYmIxYmZlNDYwODgwMjJmOTY3NGExYzg1OWM1MjRkM2U3
MmE2OCAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEy
IEBACisyMDEyLTA1LTE2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+
CisKKyAgICAgICAgQ29udmVydCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2No
ZW1lIHRvIHVzZSBJbnRlcm5hbFNldHRpbmdzIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY3MDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXI6IEFkZCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIHN5bWJv
bCBmaWx0ZXIuCisKIDIwMTItMDUtMTYgIFZhcnVuIEphaW4gIDx2YXJ1bmphaW5AZ29vZ2xlLmNv
bT4KIAogICAgICAgICBbY2hyb21pdW1dIE5vIG1vZGlmaWVyIGZsYWdzIChzaGlmdC9jdHJsL2Fs
dCkgaW4gZHJhZyZkcm9wIGV2ZW50cyBvbiBjaHJvbWl1bSBsaW51eAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142427</attachid>
            <date>2012-05-17 00:07:33 -0700</date>
            <delta_ts>2012-05-17 01:06:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86704-20120517160731.patch</filename>
            <type>text/plain</type>
            <size>36451</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkyN2QzNzk3ZTdkNzFi
Yjk2MzkxZWQ3OTZlZTYwNTJlNGYyNGQ0MS4uYWFiMjFmYTg0YTc2NzQ3MDA2YzZmYTNjZGQ0NzRm
ZmYyYmMwM2M4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA1LTE2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQ29udmVydCBz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIHRvIHVzZSBJbnRlcm5hbFNl
dHRpbmdzIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODY3MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSBmdW5j
dGlvbnMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1w
b3J0IHdheSBieSBtZWFucyBvZiB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBzaW5jZSB3ZSBhcmUgaW1wcm92aW5nIGhlcmUgdGhlIGluZnJh
LXN0cnVjdHVyZSBmb3IgdGVzdGluZworICAgICAgICBhIHNwZWNpZmljIG1ldGhvZC4KKworICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldERvbWFpblJlbGF4YXRpb25G
b3JiaWRkZW5Gb3JVUkxTY2hlbWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbDoKKwogMjAxMi0wNS0xNiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTogbGF6eSBpbml0aWFs
aXphdGlvbiBvZiBzdGF0aWMgbnVsbFZhbHVlIG5vdCB0aHJlYWRzYWZlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGM4YzE3YWVmNmUwNTc3ZGFiNmE0YjE2YjBjYjc0NWNkZjJhY2IzNjku
LjMzZDhkYTZjMTMyZDMwNzZhZTU0YzM1NzJlMmFkMWVhMzlhMDQ0MDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDUtMTYgIEd5dXlvdW5nIEtpbSAg
PGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252ZXJ0IHNldERvbWFpblJl
bGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIEludGVybmFsU2V0dGluZ3MgaW50
ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjcwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIGZ1bmN0aW9ucywg
YmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBvcnQgd2F5
IHRocm91Z2ggdGhlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlLgorCisgICAgICAgICogcHVi
bGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTA1LTE2
ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVt
XSBJbmRleGVkREI6IFdlYktpdCBBUEkgZm9yIElEQk9iamVjdFN0b3JlLmF1dG9JbmNyZW1lbnQg
cHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2YzJjMDYyM2VjOGVjNDNhYjEzYmM1ZDdhZWE5
ZDcxNGNiZTk2NGRkLi4yYWJjNGRlZWRhYTQyMWNjMTU3ZTJkMzQxM2MyNzYzMDk3NzhjMzJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDUtMTYgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252ZXJ0IHNldERvbWFp
blJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIEludGVybmFsU2V0dGluZ3Mg
aW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NjcwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIGZ1bmN0aW9u
cywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBvcnQg
d2F5IHRocm91Z2ggdGhlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDUtMTQgIFRoaWFnbyBN
YXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0dU
S10gV3JvbmcgZG9jdW1lbnRhdGlvbiBmb3IgV2ViIERhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggYmFiOWIzNThmOWEwZGRjMjNmMzA2M2YwMDA2NTdlMDdhMDE5YjZmNS4uZDg3MjhjMTY4ZmE1
OGVhMThhZjJlODM5NDFjNzM1NjViZjA0MTJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA1LTE2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5j
b20+CisKKyAgICAgICAgQ29udmVydCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJM
U2NoZW1lIHRvIHVzZSBJbnRlcm5hbFNldHRpbmdzIGludGVyZmFjZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY3MDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgc2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZSBmdW5jdGlvbnMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3
b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbFNl
dHRpbmdzIGludGVyZmFjZS4KKworICAgICAgICAqIFdlYktpdC5vcmRlcjoKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgor
CiAyMDEyLTA1LTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIHVuYWNjZWxlcmF0ZWQgc2Nyb2xsaW5nIGRlbHRhcyB3aGVuIHJ1YmJlci1iYW5k
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IDFkYWQ3OTExYzc5Y2I3ZGViNTczNDIxM2VkNmI4ZWM2OGY1
NTgwZDQuLjNlYzgwNWI2N2NkNjBkNDY4N2FmMTk1NDc3MGIyNzgzYWE3ZjA0NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMTYgIEd5dXlvdW5nIEtpbSAgPGd5dXlv
dW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252ZXJ0IHNldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjcwNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIGZ1bmN0aW9ucywgYmVjYXVz
ZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91
Z2ggdGhlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTItMDUtMTUgIEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gQWRk
IGluZnJhIGZvciB0ZXN0aW5nIGRvdWJsZS10YXAgdG8gem9vbSBmdW5jdGlvbmFsaXR5IGV0Ywpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCmluZGV4IGMyYTk2YjA4MDJiYTliNWY0OTQ5MjE3MGM3NTk2NzZhZWRkODY5
YTcuLmU4Njk2ZmY2NzczNjYxZWYxNGYzN2RmZjA1YWNhNzlkZThiNjM4NzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNS0xNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91
bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIENvbnZlcnQgc2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZSB0byB1c2UgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NzA0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHNl
dERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgZnVuY3Rpb25zLCBiZWNhdXNl
IGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3Vn
aCB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBJbnRlcmZhY2Vz
L0lXZWJWaWV3UHJpdmF0ZS5pZGw6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgICog
V2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisKIDIwMTItMDUtMTAgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBNb3ZlIHJlc3VtZUFuaW1h
dGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDQ5M2EzOWRhMWU2MWVkMWEzYTFhMDY2OWJiMTMz
MDFmNGMxNTUyMjIuLmQxYzZkYjI2YzkwZTQ5NTFmNWE0YzhlMDBiYzZmYmExM2I0NzkyYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgIkxvY2FsZVRvU2NyaXB0TWFwcGluZy5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisjaW5jbHVkZSAiU2No
ZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogCiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCkBAIC0zMjgsNSArMzI5LDEwIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0TWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUoYm9vbCBlbmFibGVkLCBFeGNlcHRp
CiAgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKICAgICBzZXR0aW5ncygp
LT5zZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShlbmFibGVkKTsKIH0KKyAgICAK
K3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVS
TFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUsIEV4Y2VwdGlv
bkNvZGUmKQoreworICAgIFNjaGVtZVJlZ2lzdHJ5OjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlk
ZGVuRm9yVVJMU2NoZW1lKGZvcmJpZGRlbiwgdXJsU2NoZW1lKTsKK30KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA2NjE5NzY3NTRjYjczNzY3ZmEy
NDQxOTA2MDA4ZjI4YTY4MDJmZDU3Li44N2U5YzM4ZDE3YjRkMzcxMTFhOTI4ZThhYjEwYjI0Yjdl
Y2UwOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAt
NzQsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoRXhj
ZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQoYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNV
c2VyR2VzdHVyZShib29sLCBFeGNlcHRpb25Db2RlJik7Ci0KKyAgICB2b2lkIHNldERvbWFpblJl
bGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFN0cmlu
ZyYgdXJsU2NoZW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCByZXN0b3JlVG8oU2V0dGlu
Z3MqKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsCmluZGV4IGJiYWJlM2FiMzg1M2IwZGQwNTA3ZTQyNjZkMjI2ZWNmZmQ1ZWVhMDguLjNm
Yzk3ZDMyMTU1MDk5ZmYyZGQzMTliNjcyODU0NWM5ZGI3MDI1NWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNTMsNiArNTMsNyBAQCBtb2R1bGUg
d2luZG93IHsKICAgICAgICAgYm9vbGVhbiBzY3JvbGxBbmltYXRvckVuYWJsZWQoKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChpbiBi
b29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldE1l
ZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRl
bkZvclVSTFNjaGVtZShpbiBib29sZWFuIGZvcmJpZGRlbiwgaW4gRE9NU3RyaW5nIHVybFNjaGVt
ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlldy5oCmluZGV4IDBmNzA5M2FjNGZkYzA4NjE1NDY0NWEzMGMwMWVhMzM0
MjkwZmM1ZGMuLjg3MjJiZDU1YTkzMGU0ZTE5MmZmZjhjMzQ3MGI1ZWNkOTc4ZDBjMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKQEAgLTE0MSw5ICsxNDEsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRJc0FjdGl2ZShib29sKSA9IDA7CiAKLSAgICAvLyBBbGxvd3MgZGlzYWJsaW5n
IGRvbWFpbiByZWxheGF0aW9uLgotICAgIHZpcnR1YWwgdm9pZCBzZXREb21haW5SZWxheGF0aW9u
Rm9yYmlkZGVuKGJvb2wsIGNvbnN0IFdlYlN0cmluZyYgc2NoZW1lKSA9IDA7Ci0KIAogICAgIC8v
IENsb3NpbmcgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKaW5kZXggZTg4NGZlYTdhMjgzYzM1MzU3NDIxZmJkZTkxMDU3YjdiZDgxNmFiYS4uYmUzODgz
ZTNiMWUwNDBkNzQzYWY4NzlhZWE1NmNjMjgyNGFmZGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtMjkzNCwxMSArMjkzNCw2IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gKHBhZ2UoKSAmJiBwYWdlKCkt
PmZvY3VzQ29udHJvbGxlcigpKSA/IHBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCktPmlzQWN0aXZl
KCkgOiBmYWxzZTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0RG9tYWluUmVsYXhhdGlvbkZv
cmJpZGRlbihib29sIGZvcmJpZGRlbiwgY29uc3QgV2ViU3RyaW5nJiBzY2hlbWUpCi17Ci0gICAg
U2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUo
Zm9yYmlkZGVuLCBTdHJpbmcoc2NoZW1lKSk7Ci19Ci0KIHZvaWQgV2ViVmlld0ltcGw6OnNldFNj
cm9sbGJhckNvbG9ycyh1bnNpZ25lZCBpbmFjdGl2ZUNvbG9yLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGFjdGl2ZUNvbG9yLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRyYWNrQ29sb3IpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IGI3NmExNzIwNjc2MWQzOWQwNDNlMzQz
ZmRlMTQ0YmMzN2EyNzY5OGIuLmEyYjc2N2QxZmU1Y2U2ZjY0MmY4NDE2N2NkNmU5MTFjZGFjMGJj
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTc2LDcg
KzE3Niw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3Vn
aEVsZW1lbnRzKGJvb2wgdmFsdWUpOwogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRJc0FjdGl2ZShib29sIHZhbHVlKTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbihib29sLCBjb25zdCBXZWJTdHJpbmcm
IHNjaGVtZSk7CiAgICAgdmlydHVhbCBib29sIGRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQoKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hVbmxvYWRFdmVudCgpOwogICAgIHZpcnR1YWwgV2Vi
RnJhbWUqIG1haW5GcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggMDM4Mjdi
NGI3MTk0OWQ2NWM5OGI0NTI4ZTY4NjZkZTZmMDdiMGE0Zi4uMzRiMDlhMGY5YTA0YTVkYjU1YTBi
MWM3Y2JmNGFmMzVhZDM0YTVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC01Niw3
ICs1Niw2IEBACiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJSZW5kZXJU
cmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgotI2luY2x1ZGUgIlNjaGVtZVJl
Z2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZWN1cml0
eVBvbGljeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC04ODAsOCArODc5LDMgQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmRlbGl2ZXJBbGxNdXRhdGlvbnNJZk5lY2Vzc2Fy
eSgpCiAgICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlcjo6ZGVsaXZlckFsbE11dGF0aW9ucygpOwog
I2VuZGlmCiB9Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXREb21haW5SZWxh
eGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25zdCBjaGFyKiB1
cmxTY2hlbWUpCi17Ci0gICAgU2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBTdHJpbmc6OmZyb21VVEY4KHVybFNjaGVtZSkp
OwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCBhMGZkMWE1NjdkZGNjOTIxN2E4NTRhNTk3
NDUyZmFjNzBmY2QzZjdkLi4yMWI3MTc1MzhlOGVkM2NjZWYzZDY3NzMxZWVhM2Q3OGFjODM2MDU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtMTI2LDcgKzEyNiw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBzZXRQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoV2ViS2l0V2ViVmlldyos
IGJvb2wgZW5hYmxlZCk7CiAKICAgICBzdGF0aWMgdm9pZCBkZWxpdmVyQWxsTXV0YXRpb25zSWZO
ZWNlc3NhcnkoKTsKLSAgICBzdGF0aWMgdm9pZCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVu
Rm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25zdCBjaGFyKiB1cmxTY2hlbWUpOwogCiBw
cml2YXRlOgogICAgIHN0YXRpYyBib29sIHNfZHJ0UnVuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0Lm9yZGVyIGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCmlu
ZGV4IDFhMWViMGM3MmIzMGE5OTA5ODBkZjE1OTcxZTJmYmU5ZTdjMGVmZTYuLmRmYTNlZmMxNDdm
OGM4NGE3MWMwNzYxZGI3MWRiNjJlNjgzZTFmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYktpdC5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKQEAg
LTU1LDcgKzU1LDYgQEAgX1dLR2V0V2ViRGVmYXVsdENGU3RyaW5nRW5jb2RpbmcKIC1bTlNVUkwo
V2ViTlNVUkxFeHRyYXMpIF93ZWJfb3JpZ2luYWxEYXRhXQogX1dlYkxvY2FsaXplZFN0cmluZwog
K1tXZWJWaWV3KFdlYlByaXZhdGUpIF9yZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlOl0KLStbV2Vi
VmlldyhXZWJQcml2YXRlKSBfc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbjpmb3JVUkxTY2hl
bWU6XQogLVtXZWJQcmVmZXJlbmNlcyhXZWJQcml2YXRlKSBzZXREZXZlbG9wZXJFeHRyYXNFbmFi
bGVkOl0KIC1bV2ViUHJlZmVyZW5jZXMgX3NldEJvb2xWYWx1ZTpmb3JLZXk6XQogK1tOU1Bhc3Rl
Ym9hcmQoV2ViRXh0cmFzKSBfd2ViX2RyYWdUeXBlc0ZvclVSTF0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQppbmRleCBjY2Y1NTQxM2E4MGNlMjQ1OWNiY2E5Yjg5MGZiZmM3ZjgyMWI1
YjIzLi43YjlkOGU1ODQwMDU3ZGU1ZjcyMDE5ZjRmMDhjOWEyYTU4OWZkMDljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yNzA2LDExICsyNzA2LDYgQEAgc3RhdGljIFBh
c3NPd25QdHI8VmVjdG9yPFN0cmluZz4gPiB0b1N0cmluZ1ZlY3RvcihOU0FycmF5KiBwYXR0ZXJu
cykKICAgICAgICAgZnJhbWUtPmFuaW1hdGlvbigpLT5yZXN1bWVBbmltYXRpb25zKCk7CiB9CiAK
LSsgKHZvaWQpX3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW46KEJPT0wpZm9yYmlkZGVuIGZv
clVSTFNjaGVtZTooTlNTdHJpbmcgKilzY2hlbWUKLXsKLSAgICBTY2hlbWVSZWdpc3RyeTo6c2V0
RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShmb3JiaWRkZW4sIHNjaGVtZSk7
Ci19Ci0KICsgKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmU6KE5TU3RyaW5nICopc2No
ZW1lCiB7CiAgICAgU2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoc2No
ZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAppbmRleCAw
MmY3YmNjNDU2N2Q3NjVjN2JkM2E0MzRmMjU3MjZhNjEwM2UzMTMwLi41NmVkODk4MzgxYjhiN2E4
NDgwOGFiNWEwMjA0ODkxZDQxOTFlODMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3UHJpdmF0ZS5oCkBAIC01NTAsNyArNTUwLDYgQEAgQ291bGQgYmUgd29ydGggYWRkaW5n
IHRvIHRoZSBBUEkuCiAqLwogLSAodm9pZClzZXRDU1NBbmltYXRpb25zU3VzcGVuZGVkOihCT09M
KXN1c3BlbmRlZDsKIAotKyAodm9pZClfc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbjooQk9P
TClmb3JiaWRkZW4gZm9yVVJMU2NoZW1lOihOU1N0cmluZyAqKXNjaGVtZTsKICsgKHZvaWQpX3Jl
Z2lzdGVyVVJMU2NoZW1lQXNTZWN1cmU6KE5TU3RyaW5nICopc2NoZW1lOwogKyAodm9pZClfcmVn
aXN0ZXJVUkxTY2hlbWVBc0FsbG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3Np
bmc6KE5TU3RyaW5nICopc2NoZW1lOwogKyAodm9pZClfcmVnaXN0ZXJVUkxTY2hlbWVBc0FsbG93
aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZzooTlNTdHJpbmcgKilzY2hlbWU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDJkNGZiNTA1N2QyZGFiNWYzMDQ5OTljNjIxZDIxYWJi
MDNhZTcwMTUuLjRmZjMzNDk2NWJlNjk3MjdkYWQ3NGE4NGMxNDQ5YTMyYjc2YWZlZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwCkBAIC03MSw3ICs3MSw2IEBACiAjaW5jbHVkZSAiUHJpbnRDb250
ZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJSZW5kZXJUcmVl
QXNUZXh0LmgiCi0jaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNj
cmlwdFZhbHVlLmgiCkBAIC00ODUsMTEgKzQ4NCw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpCiAgICAgU2VjdXJpdHlQb2xpY3k6
OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0OjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wg
Zm9yYmlkZGVuLCBjb25zdCBRU3RyaW5nJiBzY2hlbWUpCi17Ci0gICAgU2NoZW1lUmVnaXN0cnk6
OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBzY2hl
bWUpOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRDYXJldEJyb3dzaW5n
RW5hYmxlZChRV2ViUGFnZSogcGFnZSwgYm9vbCB2YWx1ZSkKIHsKICAgICBwYWdlLT5oYW5kbGUo
KS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQodmFsdWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5oCmluZGV4IDM3M2Y2MGU3MGNkOGE3NzUwYWUyODNlNDUyODAxN2E1ODk4NThk
MmMuLmE5NjM5NzUwYmFiNDIxNGNmZDZmZmMzNzU3MGY5M2I3OGRjNzRkZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmgKQEAgLTExNSw3ICsxMTUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc3Vz
cGVuZEFjdGl2ZURPTU9iamVjdHMoUVdlYkZyYW1lKiBmcmFtZSk7CiAgICAgc3RhdGljIHZvaWQg
cmVzdW1lQWN0aXZlRE9NT2JqZWN0cyhRV2ViRnJhbWUqIGZyYW1lKTsKIAotICAgIHN0YXRpYyB2
b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRk
ZW4sIGNvbnN0IFFTdHJpbmcmIHNjaGVtZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0RnJhbWVGbGF0
dGVuaW5nRW5hYmxlZChRV2ViUGFnZSosIGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHNldENhcmV0
QnJvd3NpbmdFbmFibGVkKFFXZWJQYWdlKiBwYWdlLCBib29sIHZhbHVlKTsKICAgICBzdGF0aWMg
dm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChRV2ViUGFnZSosIGJvb2wpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRs
IGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsCmluZGV4
IGI0NjE5NDk0ZjI1YzVjYWFmY2RhZDdhOTM3YmY0OGMxMWQwNDJkNDQuLjYwZTRhNTcyNjRiNTRl
MDA1NzM5MWRiYWQ2YmY5YWNiOTlkZWFiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9J
bnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKQEAgLTIyNyw4ICsyMjcsNiBAQCBpbnRlcmZh
Y2UgSVdlYlZpZXdQcml2YXRlIDogSVVua25vd24KICAgICBIUkVTVUxUIGdlb2xvY2F0aW9uRGlk
Q2hhbmdlUG9zaXRpb24oW2luXSBJV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiogcG9zaXRpb24pOwog
ICAgIEhSRVNVTFQgZ2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yKFtpbl0gSVdlYkVycm9yKiBl
cnJvcik7CiAKLSAgICBIUkVTVUxUIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxT
Y2hlbWUoW2luXSBCT09MIGZvcmJpZGRlbiwgW2luXSBCU1RSIHNjaGVtZSk7Ci0KICAgICBIUkVT
VUxUIHJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoW2luXSBCU1RSIHNjaGVtZSk7CiAKICAgICBI
UkVTVUxUIG5leHREaXNwbGF5SXNTeW5jaHJvbm91cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRl
eCAyNmU1ODM1ZGQwNTcxOWI3MTMyZDQxZDJiYmRmYmIwMDNiYjQ3MDczLi4wYzRmODhlOGFlYTFi
MGMwYzViYWIwZTk1ZDcxZGY4NDAwN2QyOTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNjYw
NiwxMiArNjYwNiw2IEBAIEhSRVNVTFQgV2ViVmlldzo6Z2VvbG9jYXRpb25EaWRGYWlsV2l0aEVy
cm9yKElXZWJFcnJvciogZXJyb3IpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgV2Vi
Vmlldzo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShCT09MIGZvcmJp
ZGRlbiwgQlNUUiBzY2hlbWUpCi17Ci0gICAgU2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4
YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBTdHJpbmcoc2NoZW1lLCBTeXNT
dHJpbmdMZW4oc2NoZW1lKSkpOwotICAgIHJldHVybiBTX09LOwotfQotCiBIUkVTVUxUIFdlYlZp
ZXc6OnJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoQlNUUiBzY2hlbWUpCiB7CiAgICAgU2NoZW1l
UmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUodG9TdHJpbmcoc2NoZW1lKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmgKaW5kZXggM2EwZjk1YWZmZTA0YmI0Y2NkZjQyNDczYjMwNzI3YmZkNDZjOGJk
NC4uZGQzY2MzNGMzYzQ3NmFjODk4OTQ4N2U3YWY1NGE1ODNkOThkYzM2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuaApAQCAtODI0LDcgKzgyNCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgZ2VvbG9jYXRpb25EaWRDaGFuZ2VQb3NpdGlvbihJV2ViR2VvbG9jYXRp
b25Qb3NpdGlvbiogcG9zaXRpb24pOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBnZW9sb2NhdGlvbkRpZEZhaWxXaXRoRXJyb3IoSVdlYkVycm9yKiBlcnJvcik7CiAKLSAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RG9tYWluUmVsYXhhdGlvbkZv
cmJpZGRlbkZvclVSTFNjaGVtZShCT09MIGZvcmJpZGRlbiwgQlNUUiBzY2hlbWUpOwogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJl
KEJTVFIpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZWdpc3RlclVS
TFNjaGVtZUFzQWxsb3dpbmdMb2NhbFN0b3JhZ2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhCU1RS
KTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVnaXN0ZXJVUkxTY2hl
bWVBc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZyhCU1RSKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xz
L3N5bWJvbHMuZmlsdGVyCmluZGV4IDA5YTk1ZWExY2IyNTY5OTFiNDc0Njk0ZGU5ZjNmNGJiMzJh
Y2NmMzMuLjViMzM5MjFmZDBjZmIzMDQ3NWJlMjFiZjZmN2Y3OWQ2ZjNkNTdkODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgpAQCAtMTQ0LDYgKzE0NCw3IEBAIF9aTjdXZWJDb3JlOERvY3VtZW50
MzR3ZWJraXREaWRFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50RVBOU183RWxlbWVudEU7CiBfWk43
V2ViQ29yZThEb2N1bWVudDM0d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudEVQTlNf
N0VsZW1lbnRFOwogX1pON1dlYkNvcmU4RG9jdW1lbnQzNXdlYmtpdFdpbGxFbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50RVBOU183RWxlbWVudEU7CiBfWk43V2ViQ29yZTE3SlNET01HbG9iYWxPYmpl
Y3Q2c19pbmZvRTsKK19aTjdXZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTQwc2V0RG9tYWluUmVsYXhh
dGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZUViUktOM1dURjZTdHJpbmdFOwogbG9jYWw6CiBfWio7
CiBjdGkqOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDNmNzhmZDNiYzg1YmVhYjc5ZTMwNmNjZmExY2I3YmE1MzdiNjA5ZGIuLjU1MDkzNjQ1MTA5
ZDM4YjcwY2FmYTZiNjI4ZjBlNzEzYzFhMDA5ODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMi0wNS0xNiAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIENvbnZlcnQg
c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSB0byB1c2UgSW50ZXJuYWxT
ZXR0aW5ncyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2NzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUg
ZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUKKyAgICAgICAgY3Jv
c3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVz
dENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVy
RWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xs
ZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0Lmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKwogMjAxMi0wNS0x
NiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAg
ICAgIFtFRkxdIFJvdW5kaW5nIGVycm9ycyBvbiAzMi1iaXQgbWFjaGluZXMgY2F1c2VzIHRlc3Rz
IHRvIGZhaWwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cAppbmRleCA4MzZkZGVmZjhhMmU2ZDUyZmY5ZDdiM2Q1ODNkNGI5MzYxYjlhMzgzLi5mMjhkNGU2
NjEwMjRjOWZiODUzNzc1OTk4MzMzODJhZWY5ZTk2ZDA1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMjMxLDIxICsxMjMxLDYgQEAgc3Rh
dGljIEpTVmFsdWVSZWYgc2V0RGVmZXJzTG9hZGluZ0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW4KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0g
ICAgLy8gSGFzIE1hYyBhbmQgV2luZG93cyBpbXBsZW1lbnRhdGlvbgotICAgIGlmIChhcmd1bWVu
dENvdW50IDwgMikKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwotCi0gICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxM
YXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0K
LSAgICBib29sIGZvcmJpZGRlbiA9IEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRz
WzBdKTsKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gc2NoZW1lKEFkb3B0LCBKU1ZhbHVl
VG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgMCkpOwotICAgIGNvbnRyb2xsZXIt
PnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBzY2hl
bWUuZ2V0KCkpOwotCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwot
fQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRNb2NrRGV2aWNlT3JpZW50YXRpb25DYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCA2
KQpAQCAtMjM3NCw3ICsyMzU5LDYgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldERhdGFiYXNlUXVvdGEiLCBz
ZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAgICAgICAgIHsgInNldERlZmVyTWFp
blJlc291cmNlRGF0YUxvYWQiLCBzZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2FkQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAic2V0RGVmZXJzTG9hZGluZyIsIHNldERlZmVyc0xvYWRpbmdD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVu
Rm9yVVJMU2NoZW1lIiwgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZUNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEVkaXRpbmdCZWhhdmlvciIsIHNldEVkaXRp
bmdCZWhhdmlvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQiLCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uIiwgc2V0R2VvbG9jYXRpb25QZXJtaXNz
aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCmluZGV4IGUzZDMxODJkZGI0NjJlMThlMGFiODI4OTExYTBkOGNmZTc1ZjIwMDUu
LmFkZDlmY2FjZWY1MmIwMzQ4MzU4NDIxMzZhNjg2Mzk1OGYyOTQ2NmYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtOTYsNyArOTYsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVsKGludCk7CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xp
Y3lEZWxlZ2F0ZShib29sIHNldERlbGVnYXRlLCBib29sIHBlcm1pc3NpdmUpOwogICAgIHZvaWQg
c2V0RGF0YWJhc2VRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwotICAgIHZvaWQgc2V0
RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgSlNT
dHJpbmdSZWYgc2NoZW1lKTsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAgICAg
dm9pZCBzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxlZCk7CiAg
ICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5hYmxlZChib29sIHByb2ZpbGluZ0VuYWJs
ZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRU
ZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2ti
ZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCmluZGV4IGE3OTliMDQxNDVj
MDg2ZDRjYjA5ZDA3Y2JjY2NiYmE4Yjc1MmUyMjYuLmY0MWQ4MDRmYzQ2YWNlMjhjNzViZTU0MDA0
OGZmZmIxYjU0ODE4MTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVy
cnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKQEAg
LTM4LDcgKzM4LDYgQEAKICNpbmNsdWRlICJPd25BcnJheVB0ci5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVkZSAiU2NoZW1lUmVnaXN0
cnkuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5UG9s
aWN5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTIyMywxMSArMjIyLDYgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGF0YWJhc2VRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcg
cXVvdGEpCiAgICAgV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0UXVvdGEo
bWFpbkZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBxdW90YSk7CiB9CiAKLXZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JV
UkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIEpTU3RyaW5nUmVmIHNjaGVtZSkKLXsKLSAgICBXZWJD
b3JlOjpTY2hlbWVSZWdpc3RyeTo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNj
aGVtZShmb3JiaWRkZW4sIGpzU3RyaW5nUmVmVG9XZWJDb3JlU3RyaW5nKHNjaGVtZSkpOwotfQot
CiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wg
aWNvbkRhdGFiYXNlRW5hYmxlZCkKIHsKICAgICBVTlVTRURfUEFSQU0oaWNvbkRhdGFiYXNlRW5h
YmxlZCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYTU2ZjRjMzViNDBlMDEwMTBiZjJmYTVmNzNlY2M0M2Fi
ZTdiZDQ4NS4uNWNjODNmOWJhNjkzNjI2OTA3ZDIyMGI2NmE2MTgwZTQyM2NhYjk4NSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcApAQCAtMTc4LDcgKzE3OCw2IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRU
ZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldEN1c3Rv
bVBvbGljeURlbGVnYXRlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRDdXN0b21Qb2xpY3lE
ZWxlZ2F0ZSk7CiAgICAgYmluZE1ldGhvZCgic2V0RGF0YWJhc2VRdW90YSIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0RGF0YWJhc2VRdW90YSk7CiAgICAgYmluZE1ldGhvZCgic2V0RGVmZXJN
YWluUmVzb3VyY2VEYXRhTG9hZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGVmZXJNYWlu
UmVzb3VyY2VEYXRhTG9hZCk7Ci0gICAgYmluZE1ldGhvZCgic2V0RG9tYWluUmVsYXhhdGlvbkZv
cmJpZGRlbkZvclVSTFNjaGVtZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RG9tYWluUmVs
YXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSk7CiAgICAgYmluZE1ldGhvZCgic2V0RWRpdGlu
Z0JlaGF2aW9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOwog
ICAgIGJpbmRNZXRob2QoInNldEF1ZGlvRGF0YSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
QXVkaW9EYXRhKTsKICAgICBiaW5kTWV0aG9kKCJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24iLCAm
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbik7CkBAIC0xMTgw
LDEzICsxMTc5LDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2ltdWxhdGVEZXNrdG9w
Tm90aWZpY2F0aW9uQ2xpY2soY29uc3QgQ3BwQXJndW1lbnRMaXMKIH0KICNlbmRpZgogCi12b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJM
U2NoZW1lKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1
bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgIT0gMiB8fCAhYXJndW1lbnRzWzBdLmlz
Qm9vbCgpIHx8ICFhcmd1bWVudHNbMV0uaXNTdHJpbmcoKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IG1fc2hlbGwtPndlYlZpZXcoKS0+c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbihjcHBWYXJp
YW50VG9Cb29sKGFyZ3VtZW50c1swXSksIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNb
MV0pKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGVmZXJNYWluUmVzb3Vy
Y2VEYXRhTG9hZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQogewogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID09IDEpCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA3
YmRiNGUxNDM2M2NjZjI5MjNmNDhlMmI1M2MzZDc3NzQ1M2YzZjJmLi42Y2I3N2RhMjVmOGYxOWU1
YzQ2MTg2N2MwYTg2MDNjMGI1YWMxMjg4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTI1NCw3ICsyNTQsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzaW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0RG9t
YWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldEVkaXRpbmdC
ZWhhdmlvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCmlu
ZGV4IDE2ZjcyN2YzMTZjNTIwYmUxZWJiNmZlMTUwNjYxNzlkNmFiMmE0MTYuLjE5OTVkOGU3NGY2
MDJmZDVmZGYyYTY0ZmZmMDdiZGE0NmJmYmZmNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcApAQCAtNjE0LDExICs2MTQs
NiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzeW5jTG9jYWxTdG9yYWdlKCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREb21h
aW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wsIEpTU3RyaW5nUmVmKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omdv
QmFjaygpCiB7CiAgICAgZXdrX2ZyYW1lX2JhY2soYnJvd3Nlci0+bWFpbkZyYW1lKCkpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHAKaW5kZXggNWViN2ZiZWQ0MmJkYmExZjFiNDFkOGNiMTFmNzE0N2E5ZjhkNTEwNi4uZTEzODZh
NThlY2IwYTJlY2UyMWQ1ZThkZjM1NWE5ZDRhZjg4NDI0YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC03MzksMTIg
KzczOSw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN5bmNMb2NhbFN0b3JhZ2UoKQog
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwg
SlNTdHJpbmdSZWYgc2NoZW1lKQotewotICAgIEdPd25QdHI8Z2NoYXI+IHVybFNjaGVtZShKU1N0
cmluZ0NvcHlVVEY4Q1N0cmluZyhzY2hlbWUpKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCB1
cmxTY2hlbWUuZ2V0KCkpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpnb0JhY2so
KQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93
ZWJfdmlldyhtYWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xh
eW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IGI4MzU2YzkzNTVmODIwYTE0NTIzMjNmNzgz
NmQ0YWQ4YmM2ODliMDguLmE4YzcxNmNhODk1NTQ2OWQ0YjEyYWU1Y2QwZGQ2OTFhNTNiODFhYTcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xs
ZXJNYWMubW0KQEAgLTQ5MiwxMiArNDkyLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVycykKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBz
ZXREZWZlcnNDYWxsYmFja3M6ZGVmZXJzXTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRl
biwgSlNTdHJpbmdSZWYgc2NoZW1lKQotewotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2No
ZW1lQ0ZTdHJpbmcoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgc2NoZW1lKSk7Ci0gICAgW1dlYlZpZXcgX3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW46Zm9yYmlkZGVuIGZvclVSTFNjaGVtZTooTlNTdHJpbmcgKilzY2hlbWVDRlN0cmluZy5nZXQo
KV07Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tEZXZpY2VPcmllbnRh
dGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVC
ZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkKIHsK
ICAgICAvLyBEdW1wUmVuZGVyVHJlZSBjb25maWd1cmVkIHRoZSBXZWJWaWV3IHRvIHVzZSBXZWJE
ZXZpY2VPcmllbnRhdGlvblByb3ZpZGVyTW9jay4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggM2U4NzVkMWM1ZmJkZjNhZGJk
OWRhOWU1OTA1YmQxODY3ODg1YjA1MC4uOGEwYmVlZjc5ZGJiZTBlN2UxNmQ1MDk1ZWM0ZjIyYWJl
MWE1ZjdjNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5jcHAKQEAgLTcyMCwxMSArNzIwLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgbV9k
cnQtPndlYlBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0VXNlclN0eWxlU2hlZXRVcmwoUVVybCgpKTsK
IH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJp
ZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgUVN0cmluZyYgc2NoZW1lKQot
ewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlk
ZGVuRm9yVVJMU2NoZW1lKGZvcmJpZGRlbiwgc2NoZW1lKTsKLX0KLQogaW50IExheW91dFRlc3RD
b250cm9sbGVyOjp3b3JrZXJUaHJlYWRDb3VudCgpCiB7CiAgICAgcmV0dXJuIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0Ojp3b3JrZXJUaHJlYWRDb3VudCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDI0YWIwOTdkMTE2OTIzN2I5
M2FkNDc5ZjRiZjI1NGFlOGM1NGU4ZmQuLmUzNDFkOWM4OTRkYjNiYTc2MWEwMmUxZjk5NGQwNDUw
ZWQyYzkyN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmgKQEAgLTIxMSw3ICsyMTEsNiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBv
dmVycmlkZVByZWZlcmVuY2UoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVZhcmlhbnQmIHZh
bHVlKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oY29uc3QgUVN0cmluZyYg
dXJsKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZChib29sIGVuYWJsZWQpOwot
ICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZv
cmJpZGRlbiwgY29uc3QgUVN0cmluZyYgc2NoZW1lKTsKICAgICBpbnQgd29ya2VyVGhyZWFkQ291
bnQoKTsKICAgICBpbnQgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkKGNvbnN0IFFTdHJpbmcmIGlk
LCBmbG9hdCB3aWR0aCA9IDAsIGZsb2F0IGhlaWdodCA9IDApOwogICAgIGludCBudW1iZXJPZlBh
Z2VzKGZsb2F0IHdpZHRoID0gbWF4Vmlld1dpZHRoLCBmbG9hdCBoZWlnaHQgPSBtYXhWaWV3SGVp
Z2h0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29u
dHJvbGxlcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRy
b2xsZXJXaW4uY3BwCmluZGV4IGZiMjM3YjExNTc2YmFlYjc2YmZiNWEyZmFiOTU0NmM4MGMyNGMx
ODAuLjkxMzczN2NhZmY4YzhhNDQ1ZTgwMjc2YmZiZTdjM2M2N2JlNTA0MzAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApA
QCAtMTA0MywxNyArMTA0Myw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERlZmVy
c0xvYWRpbmcoYm9vbCkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50IHRvIGVuYWJsZSBsb2FkZXIv
bmF2aWdhdGlvbi13aGlsZS1kZWZlcnJpbmctbG9hZHMuaHRtbAogfQogCi12b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJv
b2wgZm9yYmlkZGVuLCBKU1N0cmluZ1JlZiBzY2hlbWUpCi17Ci0gICAgQ09NUHRyPElXZWJWaWV3
UHJpdmF0ZT4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKFdlYktpdENyZWF0ZUluc3RhbmNlKF9f
dXVpZG9mKFdlYlZpZXcpLCAwLCBfX3V1aWRvZih3ZWJWaWV3KSwgcmVpbnRlcnByZXRfY2FzdDx2
b2lkKio+KCZ3ZWJWaWV3KSkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBCU1RSIHNjaGVtZUJT
VFIgPSBKU1N0cmluZ0NvcHlCU1RSKHNjaGVtZSk7Ci0gICAgd2ViVmlldy0+c2V0RG9tYWluUmVs
YXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShmb3JiaWRkZW4sIHNjaGVtZUJTVFIpOwotICAg
IFN5c0ZyZWVTdHJpbmcoc2NoZW1lQlNUUik7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiB7CiAg
ICAgcHJpbnRmKCJFUlJPUjogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcENhY2hlTWF4aW11
bVNpemUoKSBub3QgaW1wbGVtZW50ZWRcbiIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCAyMTM5ZTdjMDE2ODY0Y2E0ZjUx
NjhlYjM5YTA3NDYxMzBkZTZlMmI4Li41NGNmNzM5NGI2MTgyNTNmMjVlMTcwMTY4ZGY0NGY3Y2Ux
NDM3MGU4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcApAQCAtMjk3LDExICsyOTcsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0byBl
bmFibGUgbG9hZGVyL25hdmlnYXRpb24td2hpbGUtZGVmZXJyaW5nLWxvYWRzLmh0bWwKIH0KIAot
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZShib29sLCBKU1N0cmluZ1JlZikKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50
Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUo
dW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDlhZWVmOTgwYTFjZWYzYmRhMDRiNzExNjliZmY1YmY4ZDk3MTdlZWEuLjNjNDI5NWZlNzEx
NGU5NjZiZWNhNjY0NTZlZjRjMTZhZDk5ZWIxODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
Mi0wNS0xNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAg
ICAgIENvbnZlcnQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSB0byB1
c2UgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW52b2tlIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5G
b3JVUkxTY2hlbWUgZnVuY3Rpb25zIGZyb20gaW50ZXJuYWxTZXR0aW5ncywgYmVjYXVzZSBpdCBp
cyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHZpYSB0aGUgSW50
ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUuaHRtbDoKKwogMjAxMi0w
NS0xNiAgQ2hyaXMgUm9nZXJzICA8Y3JvZ2Vyc0Bnb29nbGUuY29tPgogCiAgICAgICAgIEF1ZGlv
UGFyYW0gbXVzdCBzdXBwb3J0IGZhbi1pbiAobXVsdGlwbGUgYXVkaW8gY29ubmVjdGlvbnMpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NldERvbWFpblJlbGF4
YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZS5odG1sCmlu
ZGV4IGI2MzFmOTc3MjUzN2M0ODZjM2Y5MDhmM2EyZjc5Y2RjOGNhODRlNWEuLjU1MjkxMGE1M2Ew
MzEyMzk5NDVmYTc0ZWNlNGE3MjQ1MWI4ZDY4Y2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVt
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2V0RG9tYWluUmVs
YXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZS5odG1sCkBAIC0zNiw4ICszNiw4IEBACiAKICAg
ICAgICAgbG9nKCJGb3JiaWRkaW5nIGRvbWFpbiByZWxheGF0aW9uIGZvciB0aGUgaHR0cDogc2No
ZW1lIik7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5G
b3JVUkxTY2hlbWUodHJ1ZSwgImh0dHAiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJp
ZGRlbkZvclVSTFNjaGVtZSh0cnVlLCAiaHR0cCIpOwogCiAgICAgICAgIHZhciBleGNlcHRpb247
CiAgICAgICAgIHRyeSB7CkBAIC01Myw4ICs1Myw4IEBACiAKICAgICAgICAgZG9tYWluU2hvdWxk
QmUoIjAuMC4xIik7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW5Gb3JVUkxTY2hlbWUoZmFsc2UsICJodHRwIik7CisgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZmFsc2UsICJodHRwIik7CiAKICAgICAgICAgbG9nKCJB
bGxvd2luZyBkb21haW4gcmVsYXhhdGlvbiBmb3IgdGhlIGh0dHA6IHNjaGVtZSIpOwogCkBAIC02
MywxNiArNjMsMTYgQEAKIAogICAgICAgICBsb2coIkZvcmJpZGRpbmcgZG9tYWluIHJlbGF4YXRp
b24gZm9yIHRoZSBub3QtaHR0cDogc2NoZW1lIik7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldERv
bWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUodHJ1ZSwgIm5vdC1odHRwIik7Cisg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUodHJ1ZSwgIm5vdC1o
dHRwIik7CiAKICAgICAgICAgZG9jdW1lbnQuZG9tYWluID0gIjEiOwogICAgICAgICBkb21haW5T
aG91bGRCZSgiMSIpOwogCiAgICAgICAgIGxvZygiQWxsb3dpbmcgZG9tYWluIHJlbGF4YXRpb24g
Zm9yIHRoZSBub3QtaHR0cDogc2NoZW1lIik7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldERvbWFp
blJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZmFsc2UsICJub3QtaHR0cCIpOworICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZhbHNlLCAibm90LWh0
dHAiKTsKICAgICA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCBlMTE5M2QyZjY5MTAxMDgzNmY5MTc3NTdiN2Y2NmVlMjVk
MDY1Y2EyLi5lZGFiYjFiZmU0NjA4ODAyMmY5Njc0YTFjODU5YzUyNGQzZTcyYTY4IDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDUt
MTYgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBD
b252ZXJ0IHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIElu
dGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NjcwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjogQWRkIHNl
dERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgc3ltYm9sIGZpbHRlci4KKwog
MjAxMi0wNS0xNiAgVmFydW4gSmFpbiAgPHZhcnVuamFpbkBnb29nbGUuY29tPgogCiAgICAgICAg
IFtjaHJvbWl1bV0gTm8gbW9kaWZpZXIgZmxhZ3MgKHNoaWZ0L2N0cmwvYWx0KSBpbiBkcmFnJmRy
b3AgZXZlbnRzIG9uIGNocm9taXVtIGxpbnV4Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142439</attachid>
            <date>2012-05-17 01:06:24 -0700</date>
            <delta_ts>2012-05-17 20:05:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86704-20120517170622.patch</filename>
            <type>text/plain</type>
            <size>37687</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkyN2QzNzk3ZTdkNzFi
Yjk2MzkxZWQ3OTZlZTYwNTJlNGYyNGQ0MS4uYWFiMjFmYTg0YTc2NzQ3MDA2YzZmYTNjZGQ0NzRm
ZmYyYmMwM2M4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA1LTE2ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgQ29udmVydCBz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIHRvIHVzZSBJbnRlcm5hbFNl
dHRpbmdzIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODY3MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSBmdW5j
dGlvbnMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1w
b3J0IHdheSBieSBtZWFucyBvZiB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLCBzaW5jZSB3ZSBhcmUgaW1wcm92aW5nIGhlcmUgdGhlIGluZnJh
LXN0cnVjdHVyZSBmb3IgdGVzdGluZworICAgICAgICBhIHNwZWNpZmljIG1ldGhvZC4KKworICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldERvbWFpblJlbGF4YXRpb25G
b3JiaWRkZW5Gb3JVUkxTY2hlbWUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbDoKKwogMjAxMi0wNS0xNiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTogbGF6eSBpbml0aWFs
aXphdGlvbiBvZiBzdGF0aWMgbnVsbFZhbHVlIG5vdCB0aHJlYWRzYWZlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGM4YzE3YWVmNmUwNTc3ZGFiNmE0YjE2YjBjYjc0NWNkZjJhY2IzNjku
LjMzZDhkYTZjMTMyZDMwNzZhZTU0YzM1NzJlMmFkMWVhMzlhMDQ0MDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDUtMTYgIEd5dXlvdW5nIEtpbSAg
PGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252ZXJ0IHNldERvbWFpblJl
bGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIEludGVybmFsU2V0dGluZ3MgaW50
ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjcwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIGZ1bmN0aW9ucywg
YmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBvcnQgd2F5
IHRocm91Z2ggdGhlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlLgorCisgICAgICAgICogcHVi
bGljL1dlYlZpZXcuaDoKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorCiAyMDEyLTA1LTE2
ICBKb3NodWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVt
XSBJbmRleGVkREI6IFdlYktpdCBBUEkgZm9yIElEQk9iamVjdFN0b3JlLmF1dG9JbmNyZW1lbnQg
cHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA2YzJjMDYyM2VjOGVjNDNhYjEzYmM1ZDdhZWE5
ZDcxNGNiZTk2NGRkLi4yYWJjNGRlZWRhYTQyMWNjMTU3ZTJkMzQxM2MyNzYzMDk3NzhjMzJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDUtMTYgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252ZXJ0IHNldERvbWFp
blJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIEludGVybmFsU2V0dGluZ3Mg
aW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NjcwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIGZ1bmN0aW9u
cywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBvcnQg
d2F5IHRocm91Z2ggdGhlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVsaXZlckFsbE11dGF0aW9uc0lmTmVjZXNzYXJ5KToK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDUtMTQgIFRoaWFnbyBN
YXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAKICAgICAgICAgW0dU
S10gV3JvbmcgZG9jdW1lbnRhdGlvbiBmb3IgV2ViIERhdGFiYXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggYmFiOWIzNThmOWEwZGRjMjNmMzA2M2YwMDA2NTdlMDdhMDE5YjZmNS4uZDg3MjhjMTY4ZmE1
OGVhMThhZjJlODM5NDFjNzM1NjViZjA0MTJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA1LTE2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5j
b20+CisKKyAgICAgICAgQ29udmVydCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJM
U2NoZW1lIHRvIHVzZSBJbnRlcm5hbFNldHRpbmdzIGludGVyZmFjZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY3MDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgc2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZSBmdW5jdGlvbnMsIGJlY2F1c2UgaXQgaXMgYWJsZSB0byB3
b3JrIGluIHRoZQorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbFNl
dHRpbmdzIGludGVyZmFjZS4KKworICAgICAgICAqIFdlYktpdC5vcmRlcjoKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgor
CiAyMDEyLTA1LTE1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgVXNlIHVuYWNjZWxlcmF0ZWQgc2Nyb2xsaW5nIGRlbHRhcyB3aGVuIHJ1YmJlci1iYW5k
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCmluZGV4IDFkYWQ3OTExYzc5Y2I3ZGViNTczNDIxM2VkNmI4ZWM2OGY1
NTgwZDQuLjNlYzgwNWI2N2NkNjBkNDY4N2FmMTk1NDc3MGIyNzgzYWE3ZjA0NzYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMTYgIEd5dXlvdW5nIEtpbSAgPGd5dXlv
dW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252ZXJ0IHNldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjcwNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIGZ1bmN0aW9ucywgYmVjYXVz
ZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91
Z2ggdGhlIEludGVybmFsU2V0dGluZ3MgaW50ZXJmYWNlLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIwMTItMDUtMTUgIEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gQWRk
IGluZnJhIGZvciB0ZXN0aW5nIGRvdWJsZS10YXAgdG8gem9vbSBmdW5jdGlvbmFsaXR5IGV0Ywpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCmluZGV4IGMyYTk2YjA4MDJiYTliNWY0OTQ5MjE3MGM3NTk2NzZhZWRkODY5
YTcuLmU4Njk2ZmY2NzczNjYxZWYxNGYzN2RmZjA1YWNhNzlkZThiNjM4NzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNS0xNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91
bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIENvbnZlcnQgc2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZSB0byB1c2UgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NzA0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHNl
dERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgZnVuY3Rpb25zLCBiZWNhdXNl
IGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3Vn
aCB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBJbnRlcmZhY2Vz
L0lXZWJWaWV3UHJpdmF0ZS5pZGw6CisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgICog
V2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisKIDIwMTItMDUtMTAgIEd5dXlvdW5nIEtp
bSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBNb3ZlIHJlc3VtZUFuaW1h
dGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxNTIyNjFlYWRi
MTE5ODc1ODk5MjE4OTVlNTk4ODhmODkxZmE2ZGYxLi4wNjhiN2JmMTYxZjU2MTU1MzFiM2MxNmZh
NjlkZDg4OGUwZmNjYjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDUtMTcg
IEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252
ZXJ0IHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIEludGVy
bmFsU2V0dGluZ3MgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NjcwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOiBBZGQgc2V0RG9tYWluUmVsYXhhdGlvbkZv
cmJpZGRlbkZvclVSTFNjaGVtZSBzeW1ib2wgZmlsdGVyLgorCiAyMDEyLTA1LTE2ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV2luQ2Fpcm9dIFVucmV2
aWV3ZWQgYnVpbGQgY2hhbmdlIGFmdGVyIGV4cG9ydGVkIHN5bWJvbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNDkzYTM5ZGExZTYxZWQxYTNhMWEw
NjY5YmIxMzMwMWY0YzE1NTIyMi4uZDFjNmRiMjZjOTBlNDk1MWY1YTRjOGUwMGJjNmZiYTEzYjQ3
OTJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiTG9jYWxlVG9TY3JpcHRNYXBwaW5nLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNs
dWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAKICNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKQEAgLTMyOCw1ICszMjksMTAgQEAgdm9pZCBJbnRlcm5hbFNl
dHRpbmdzOjpzZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShib29sIGVuYWJsZWQs
IEV4Y2VwdGkKICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOwogICAgIHNl
dHRpbmdzKCktPnNldE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlKGVuYWJsZWQpOwog
fQorICAgIAordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlk
ZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25zdCBTdHJpbmcmIHVybFNjaGVtZSwg
RXhjZXB0aW9uQ29kZSYpCit7CisgICAgU2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCB1cmxTY2hlbWUpOworfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDY2MTk3Njc1NGNi
NzM3NjdmYTI0NDE5MDYwMDhmMjhhNjgwMmZkNTcuLjRlN2Y1ZDJiYTc3MWM2M2RmZDI1MmU5MWIz
M2U1Y2FlZjBmNjE4MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oCkBAIC03NCw2ICs3NCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5h
YmxlZChFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldE1lZGlhUGxheWJhY2tS
ZXF1aXJlc1VzZXJHZXN0dXJlKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldERv
bWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0
IFN0cmluZyYgdXJsU2NoZW1lLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIHJlc3RvcmVU
byhTZXR0aW5ncyopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdz
LmlkbAppbmRleCBiYmFiZTNhYjM4NTNiMGRkMDUwN2U0MjY2ZDIyNmVjZmZkNWVlYTA4Li4zZmM5
N2QzMjE1NTA5OWZmMmRkMzE5YjY3Mjg1NDVjOWRiNzAyNTVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTUzLDYgKzUzLDcgQEAgbW9kdWxlIHdp
bmRvdyB7CiAgICAgICAgIGJvb2xlYW4gc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQoaW4gYm9v
bGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRNZWRp
YVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZShpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5G
b3JVUkxTY2hlbWUoaW4gYm9vbGVhbiBmb3JiaWRkZW4sIGluIERPTVN0cmluZyB1cmxTY2hlbWUp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaAppbmRleCAwZjcwOTNhYzRmZGMwODYxNTQ2NDVhMzBjMDFlYTMzNDI5
MGZjNWRjLi44NzIyYmQ1NWE5MzBlNGUxOTJmZmY4YzM0NzBiNWVjZDk3OGQwYzMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0xNDEsOSArMTQxLDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0SXNBY3RpdmUoYm9vbCkgPSAwOwogCi0gICAgLy8gQWxsb3dzIGRpc2FibGluZyBk
b21haW4gcmVsYXhhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZv
cmJpZGRlbihib29sLCBjb25zdCBXZWJTdHJpbmcmIHNjaGVtZSkgPSAwOwotCiAKICAgICAvLyBD
bG9zaW5nIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CmluZGV4IGU4ODRmZWE3YTI4M2MzNTM1NzQyMWZiZGU5MTA1N2I3YmQ4MTZhYmEuLmJlMzg4M2Uz
YjFlMDQwZDc0M2FmODc5YWVhNTZjYzI4MjRhZmRiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTI5MzQsMTEgKzI5MzQsNiBAQCBib29sIFdlYlZp
ZXdJbXBsOjppc0FjdGl2ZSgpIGNvbnN0CiAgICAgcmV0dXJuIChwYWdlKCkgJiYgcGFnZSgpLT5m
b2N1c0NvbnRyb2xsZXIoKSkgPyBwYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLT5pc0FjdGl2ZSgp
IDogZmFsc2U7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW4oYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFdlYlN0cmluZyYgc2NoZW1lKQotewotICAgIFNj
aGVtZVJlZ2lzdHJ5OjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZv
cmJpZGRlbiwgU3RyaW5nKHNjaGVtZSkpOwotfQotCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRTY3Jv
bGxiYXJDb2xvcnModW5zaWduZWQgaW5hY3RpdmVDb2xvciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBhY3RpdmVDb2xvciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCB0cmFja0NvbG9yKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCBiNzZhMTcyMDY3NjFkMzlkMDQzZTM0M2Zk
ZTE0NGJjMzdhMjc2OThiLi5hMmI3NjdkMWZlNWNlNmY2NDJmODQxNjdjZDZlOTExY2RhYzBiYzcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTE3Niw3ICsx
NzYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFRhYktleUN5Y2xlc1Rocm91Z2hF
bGVtZW50cyhib29sIHZhbHVlKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBY3RpdmUoYm9vbCB2YWx1ZSk7Ci0gICAgdmlydHVhbCB2
b2lkIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW4oYm9vbCwgY29uc3QgV2ViU3RyaW5nJiBz
Y2hlbWUpOwogICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaEJlZm9yZVVubG9hZEV2ZW50KCk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVW5sb2FkRXZlbnQoKTsKICAgICB2aXJ0dWFsIFdlYkZy
YW1lKiBtYWluRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDAzODI3YjRi
NzE5NDlkNjVjOThiNDUyOGU2ODY2ZGU2ZjA3YjBhNGYuLjM0YjA5YTBmOWEwNGE1ZGI1NWEwYjFj
N2NiZjRhZjM1YWQzNGE1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtNTYsNyAr
NTYsNiBAQAogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJl
ZUFzVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKLSNpbmNsdWRlICJTY2hlbWVSZWdp
c3RyeS5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlQ
b2xpY3kuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtODgwLDggKzg3OSwzIEBAIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpkZWxpdmVyQWxsTXV0YXRpb25zSWZOZWNlc3Nhcnko
KQogICAgIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXI6OmRlbGl2ZXJBbGxNdXRhdGlvbnMoKTsKICNl
bmRpZgogfQotCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RG9tYWluUmVsYXhh
dGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgY2hhciogdXJs
U2NoZW1lKQotewotICAgIFNjaGVtZVJlZ2lzdHJ5OjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlk
ZGVuRm9yVVJMU2NoZW1lKGZvcmJpZGRlbiwgU3RyaW5nOjpmcm9tVVRGOCh1cmxTY2hlbWUpKTsK
LX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggYTBmZDFhNTY3ZGRjYzkyMTdhODU0YTU5NzQ1
MmZhYzcwZmNkM2Y3ZC4uMjFiNzE3NTM4ZThlZDNjY2VmM2Q2NzczMWVlYTNkNzhhYzgzNjA1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTEyNiw3ICsxMjYsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgc2V0UGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zKFdlYktpdFdlYlZpZXcqLCBi
b29sIGVuYWJsZWQpOwogCiAgICAgc3RhdGljIHZvaWQgZGVsaXZlckFsbE11dGF0aW9uc0lmTmVj
ZXNzYXJ5KCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgY2hhciogdXJsU2NoZW1lKTsKIAogcHJp
dmF0ZToKICAgICBzdGF0aWMgYm9vbCBzX2RydFJ1bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYktpdC5vcmRlciBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgppbmRl
eCAxYTFlYjBjNzJiMzBhOTkwOTgwZGYxNTk3MWUyZmJlOWU3YzBlZmU2Li5kZmEzZWZjMTQ3Zjhj
ODRhNzFjMDc2MWRiNzFkYjYyZTY4M2UxZjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJLaXQub3JkZXIKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCkBAIC01
NSw3ICs1NSw2IEBAIF9XS0dldFdlYkRlZmF1bHRDRlN0cmluZ0VuY29kaW5nCiAtW05TVVJMKFdl
Yk5TVVJMRXh0cmFzKSBfd2ViX29yaWdpbmFsRGF0YV0KIF9XZWJMb2NhbGl6ZWRTdHJpbmcKICtb
V2ViVmlldyhXZWJQcml2YXRlKSBfcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZTpdCi0rW1dlYlZp
ZXcoV2ViUHJpdmF0ZSkgX3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW46Zm9yVVJMU2NoZW1l
Ol0KIC1bV2ViUHJlZmVyZW5jZXMoV2ViUHJpdmF0ZSkgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxl
ZDpdCiAtW1dlYlByZWZlcmVuY2VzIF9zZXRCb29sVmFsdWU6Zm9yS2V5Ol0KICtbTlNQYXN0ZWJv
YXJkKFdlYkV4dHJhcykgX3dlYl9kcmFnVHlwZXNGb3JVUkxdCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggY2NmNTU0MTNhODBjZTI0NTljYmNhOWI4OTBmYmZjN2Y4MjFiNWIy
My4uN2I5ZDhlNTg0MDA1N2RlNWY3MjAxOWY0ZjA4YzlhMmE1ODlmZDA5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjcwNiwxMSArMjcwNiw2IEBAIHN0YXRpYyBQYXNz
T3duUHRyPFZlY3RvcjxTdHJpbmc+ID4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMp
CiAgICAgICAgIGZyYW1lLT5hbmltYXRpb24oKS0+cmVzdW1lQW5pbWF0aW9ucygpOwogfQogCi0r
ICh2b2lkKV9zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuOihCT09MKWZvcmJpZGRlbiBmb3JV
UkxTY2hlbWU6KE5TU3RyaW5nICopc2NoZW1lCi17Ci0gICAgU2NoZW1lUmVnaXN0cnk6OnNldERv
bWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBzY2hlbWUpOwot
fQotCiArICh2b2lkKV9yZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlOihOU1N0cmluZyAqKXNjaGVt
ZQogewogICAgIFNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKHNjaGVt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgKaW5kZXggMDJm
N2JjYzQ1NjdkNzY1YzdiZDNhNDM0ZjI1NzI2YTYxMDNlMzEzMC4uNTZlZDg5ODM4MWI4YjdhODQ4
MDhhYjVhMDIwNDg5MWQ0MTkxZTgzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld1ByaXZhdGUuaApAQCAtNTUwLDcgKzU1MCw2IEBAIENvdWxkIGJlIHdvcnRoIGFkZGluZyB0
byB0aGUgQVBJLgogKi8KIC0gKHZvaWQpc2V0Q1NTQW5pbWF0aW9uc1N1c3BlbmRlZDooQk9PTClz
dXNwZW5kZWQ7CiAKLSsgKHZvaWQpX3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW46KEJPT0wp
Zm9yYmlkZGVuIGZvclVSTFNjaGVtZTooTlNTdHJpbmcgKilzY2hlbWU7CiArICh2b2lkKV9yZWdp
c3RlclVSTFNjaGVtZUFzU2VjdXJlOihOU1N0cmluZyAqKXNjaGVtZTsKICsgKHZvaWQpX3JlZ2lz
dGVyVVJMU2NoZW1lQXNBbGxvd2luZ0xvY2FsU3RvcmFnZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5n
OihOU1N0cmluZyAqKXNjaGVtZTsKICsgKHZvaWQpX3JlZ2lzdGVyVVJMU2NoZW1lQXNBbGxvd2lu
Z0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3Npbmc6KE5TU3RyaW5nICopc2NoZW1lOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmNwcAppbmRleCAyZDRmYjUwNTdkMmRhYjVmMzA0OTk5YzYyMWQyMWFiYjAz
YWU3MDE1Li40ZmYzMzQ5NjViZTY5NzI3ZGFkNzRhODRjMTQ0OWEzMmI3NmFmZWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmNwcApAQCAtNzEsNyArNzEsNiBAQAogI2luY2x1ZGUgIlByaW50Q29udGV4
dC5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFz
VGV4dC5oIgotI2luY2x1ZGUgIlNjaGVtZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29u
dHJvbGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3Jp
cHRWYWx1ZS5oIgpAQCAtNDg1LDExICs0ODQsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0OjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlTGlzdHMoKQogICAgIFNlY3VyaXR5UG9saWN5Ojpy
ZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZv
cmJpZGRlbiwgY29uc3QgUVN0cmluZyYgc2NoZW1lKQotewotICAgIFNjaGVtZVJlZ2lzdHJ5Ojpz
ZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZvcmJpZGRlbiwgc2NoZW1l
KTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0Q2FyZXRCcm93c2luZ0Vu
YWJsZWQoUVdlYlBhZ2UqIHBhZ2UsIGJvb2wgdmFsdWUpCiB7CiAgICAgcGFnZS0+aGFuZGxlKCkt
PnBhZ2UtPnNldHRpbmdzKCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKHZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuaAppbmRleCAzNzNmNjBlNzBjZDhhNzc1MGFlMjgzZTQ1MjgwMTdhNTg5ODU4ZDJj
Li5hOTYzOTc1MGJhYjQyMTRjZmQ2ZmZjMzc1NzBmOTNiNzhkYzc0ZGY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
KysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdC5oCkBAIC0xMTUsNyArMTE1LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHN1c3Bl
bmRBY3RpdmVET01PYmplY3RzKFFXZWJGcmFtZSogZnJhbWUpOwogICAgIHN0YXRpYyB2b2lkIHJl
c3VtZUFjdGl2ZURPTU9iamVjdHMoUVdlYkZyYW1lKiBmcmFtZSk7CiAKLSAgICBzdGF0aWMgdm9p
ZCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVu
LCBjb25zdCBRU3RyaW5nJiBzY2hlbWUpOwogICAgIHN0YXRpYyB2b2lkIHNldEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQoUVdlYlBhZ2UqLCBib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDYXJldEJy
b3dzaW5nRW5hYmxlZChRV2ViUGFnZSogcGFnZSwgYm9vbCB2YWx1ZSk7CiAgICAgc3RhdGljIHZv
aWQgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoUVdlYlBhZ2UqLCBib29sKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbCBi
L1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAppbmRleCBi
NDYxOTQ5NGYyNWM1Y2FhZmNkYWQ3YTkzN2JmNDhjMTFkMDQyZDQ0Li42MGU0YTU3MjY0YjU0ZTAw
NTczOTFkYmFkNmJmOWFjYjk5ZGVhYjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9J
bnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKKysrIGIvU291cmNlL1dlYktpdC93aW4vSW50
ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsCkBAIC0yMjcsOCArMjI3LDYgQEAgaW50ZXJmYWNl
IElXZWJWaWV3UHJpdmF0ZSA6IElVbmtub3duCiAgICAgSFJFU1VMVCBnZW9sb2NhdGlvbkRpZENo
YW5nZVBvc2l0aW9uKFtpbl0gSVdlYkdlb2xvY2F0aW9uUG9zaXRpb24qIHBvc2l0aW9uKTsKICAg
ICBIUkVTVUxUIGdlb2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJvcihbaW5dIElXZWJFcnJvciogZXJy
b3IpOwogCi0gICAgSFJFU1VMVCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2No
ZW1lKFtpbl0gQk9PTCBmb3JiaWRkZW4sIFtpbl0gQlNUUiBzY2hlbWUpOwotCiAgICAgSFJFU1VM
VCByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKFtpbl0gQlNUUiBzY2hlbWUpOwogCiAgICAgSFJF
U1VMVCBuZXh0RGlzcGxheUlzU3luY2hyb25vdXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXgg
MjZlNTgzNWRkMDU3MTliNzEzMmQ0MWQyYmJkZmJiMDAzYmI0NzA3My4uMGM0Zjg4ZThhZWExYjBj
MGM1YmFiMGU5NWQ3MWRmODQwMDdkMjk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTY2MDYs
MTIgKzY2MDYsNiBAQCBIUkVTVUxUIFdlYlZpZXc6Omdlb2xvY2F0aW9uRGlkRmFpbFdpdGhFcnJv
cihJV2ViRXJyb3IqIGVycm9yKQogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFdlYlZp
ZXc6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoQk9PTCBmb3JiaWRk
ZW4sIEJTVFIgc2NoZW1lKQotewotICAgIFNjaGVtZVJlZ2lzdHJ5OjpzZXREb21haW5SZWxheGF0
aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZvcmJpZGRlbiwgU3RyaW5nKHNjaGVtZSwgU3lzU3Ry
aW5nTGVuKHNjaGVtZSkpKTsKLSAgICByZXR1cm4gU19PSzsKLX0KLQogSFJFU1VMVCBXZWJWaWV3
OjpyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKEJTVFIgc2NoZW1lKQogewogICAgIFNjaGVtZVJl
Z2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKHRvU3RyaW5nKHNjaGVtZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5oCmluZGV4IDNhMGY5NWFmZmUwNGJiNGNjZGY0MjQ3M2IzMDcyN2JmZDQ2YzhiZDQu
LmRkM2NjMzRjM2M0NzZhYzg5ODk0ODdlN2FmNTRhNTgzZDk4ZGMzNjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmgKQEAgLTgyNCw3ICs4MjQsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGdlb2xvY2F0aW9uRGlkQ2hhbmdlUG9zaXRpb24oSVdlYkdlb2xvY2F0aW9u
UG9zaXRpb24qIHBvc2l0aW9uKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgZ2VvbG9jYXRpb25EaWRGYWlsV2l0aEVycm9yKElXZWJFcnJvciogZXJyb3IpOwogCi0gICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW5Gb3JVUkxTY2hlbWUoQk9PTCBmb3JiaWRkZW4sIEJTVFIgc2NoZW1lKTsKICAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVnaXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShC
U1RSKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVnaXN0ZXJVUkxT
Y2hlbWVBc0FsbG93aW5nTG9jYWxTdG9yYWdlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoQlNUUik7
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlZ2lzdGVyVVJMU2NoZW1l
QXNBbGxvd2luZ0RhdGFiYXNlQWNjZXNzSW5Qcml2YXRlQnJvd3NpbmcoQlNUUik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi5kZWYKaW5kZXggOGUzYzJjNDE3OWM2ODg4ZDg2NzRmYjNkZTZhOThlZGEwYzMzMjg2
MS4uNjNlZTJjMzg0YWE4OWZlNzc2YTc2ZDg2ODUwMzUxYWVjNDJkNjNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLmRlZgpAQCAtMjU2LDMgKzI1Niw0IEBAIEVYUE9SVFMKICAgICAgICAgP2lzUGFnZUJv
eFZpc2libGVARG9jdW1lbnRAV2ViQ29yZUBAUUFFX05IQFoKICAgICAgICAgP3N1c3BlbmRBbmlt
YXRpb25zQEFuaW1hdGlvbkNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID9yZXN1
bWVBbmltYXRpb25zQEFuaW1hdGlvbkNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFWFhaCisgICAgICAg
ID9zZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lQFNjaGVtZVJlZ2lzdHJ5
QFdlYkNvcmVAQFNBWF9OQUJWU3RyaW5nQFdURkBAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmlu
ZGV4IDA5YTk1ZWExY2IyNTY5OTFiNDc0Njk0ZGU5ZjNmNGJiMzJhY2NmMzMuLjViMzM5MjFmZDBj
ZmIzMDQ3NWJlMjFiZjZmN2Y3OWQ2ZjNkNTdkODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpA
QCAtMTQ0LDYgKzE0NCw3IEBAIF9aTjdXZWJDb3JlOERvY3VtZW50MzR3ZWJraXREaWRFbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50RVBOU183RWxlbWVudEU7CiBfWk43V2ViQ29yZThEb2N1bWVudDM0
d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudEVQTlNfN0VsZW1lbnRFOwogX1pON1dl
YkNvcmU4RG9jdW1lbnQzNXdlYmtpdFdpbGxFbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50RVBOU183
RWxlbWVudEU7CiBfWk43V2ViQ29yZTE3SlNET01HbG9iYWxPYmplY3Q2c19pbmZvRTsKK19aTjdX
ZWJDb3JlMTRTY2hlbWVSZWdpc3RyeTQwc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVS
TFNjaGVtZUViUktOM1dURjZTdHJpbmdFOwogbG9jYWw6CiBfWio7CiBjdGkqOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNmNzhmZDNiYzg1YmVh
Yjc5ZTMwNmNjZmExY2I3YmE1MzdiNjA5ZGIuLjU1MDkzNjQ1MTA5ZDM4YjcwY2FmYTZiNjI4ZjBl
NzEzYzFhMDA5ODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMi0wNS0xNiAgR3l1eW91bmcgS2ltICA8Z3l1eW91
bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIENvbnZlcnQgc2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZSB0byB1c2UgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2NzA0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHNl
dERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgZnVuY3Rpb25zLCBiZWNhdXNl
IGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3Vn
aCB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0Jl
cnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENv
bnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xh
eW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9M
YXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKwogMjAxMi0wNS0xNiAgQ2hyaXN0b3BoZSBEdW1l
eiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFJvdW5kaW5n
IGVycm9ycyBvbiAzMi1iaXQgbWFjaGluZXMgY2F1c2VzIHRlc3RzIHRvIGZhaWwKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCA4MzZkZGVmZjhh
MmU2ZDUyZmY5ZDdiM2Q1ODNkNGI5MzYxYjlhMzgzLi5mMjhkNGU2NjEwMjRjOWZiODUzNzc1OTk4
MzMzODJhZWY5ZTk2ZDA1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCkBAIC0xMjMxLDIxICsxMjMxLDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0
RGVmZXJzTG9hZGluZ0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW4KICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRp
YyBKU1ZhbHVlUmVmIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWVDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0
UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFy
Z3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgLy8gSGFzIE1hYyBhbmQg
V2luZG93cyBpbXBsZW1lbnRhdGlvbgotICAgIGlmIChhcmd1bWVudENvdW50IDwgMikKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgTGF5b3V0VGVz
dENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxl
cio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0KLSAgICBib29sIGZvcmJpZGRl
biA9IEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKTsKLSAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gc2NoZW1lKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRl
eHQsIGFyZ3VtZW50c1sxXSwgMCkpOwotICAgIGNvbnRyb2xsZXItPnNldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCBzY2hlbWUuZ2V0KCkpOwotCi0gICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1
ZVJlZiBzZXRNb2NrRGV2aWNlT3JpZW50YXRpb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBh
cmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCA2KQpAQCAtMjM3NCw3ICsyMzU5
LDYgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0
aW9ucygpCiAgICAgICAgIHsgInNldERhdGFiYXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3RhQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwgCiAgICAgICAgIHsgInNldERlZmVyTWFpblJlc291cmNlRGF0YUxvYWQi
LCBzZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2FkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0RGVmZXJzTG9hZGluZyIsIHNldERlZmVyc0xvYWRpbmdDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAot
ICAgICAgICB7ICJzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIiwgc2V0
RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInNldEVkaXRpbmdCZWhhdmlvciIsIHNldEVkaXRpbmdCZWhhdmlvckNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQiLCBzZXRGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0R2VvbG9j
YXRpb25QZXJtaXNzaW9uIiwgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGUz
ZDMxODJkZGI0NjJlMThlMGFiODI4OTExYTBkOGNmZTc1ZjIwMDUuLmFkZDlmY2FjZWY1MmIwMzQ4
MzU4NDIxMzZhNjg2Mzk1OGYyOTQ2NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaApAQCAtOTYsNyArOTYsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRD
YWNoZU1vZGVsKGludCk7CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZShib29sIHNl
dERlbGVnYXRlLCBib29sIHBlcm1pc3NpdmUpOwogICAgIHZvaWQgc2V0RGF0YWJhc2VRdW90YSh1
bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwotICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZv
cmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgSlNTdHJpbmdSZWYgc2NoZW1lKTsK
ICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAgICAgdm9pZCBzZXRJY29uRGF0YWJh
c2VFbmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxlZCk7CiAgICAgdm9pZCBzZXRKYXZhU2Ny
aXB0UHJvZmlsaW5nRW5hYmxlZChib29sIHByb2ZpbGluZ0VuYWJsZWQpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNr
QmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29u
dHJvbGxlckJsYWNrQmVycnkuY3BwCmluZGV4IGE3OTliMDQxNDVjMDg2ZDRjYjA5ZDA3Y2JjY2Ni
YmE4Yjc1MmUyMjYuLmY0MWQ4MDRmYzQ2YWNlMjhjNzViZTU0MDA0OGZmZmIxYjU0ODE4MTcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRy
b2xsZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKQEAgLTM4LDcgKzM4LDYgQEAKICNp
bmNsdWRlICJPd25BcnJheVB0ci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJUcmVlQXNUZXh0LmgiCi0jaW5jbHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJT
ZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKQEAgLTIyMywxMSArMjIyLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0RGF0YWJhc2VRdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCiAgICAgV2ViQ29y
ZTo6RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0UXVvdGEobWFpbkZyYW1lLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLCBxdW90YSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3Ji
aWRkZW4sIEpTU3RyaW5nUmVmIHNjaGVtZSkKLXsKLSAgICBXZWJDb3JlOjpTY2hlbWVSZWdpc3Ry
eTo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShmb3JiaWRkZW4sIGpz
U3RyaW5nUmVmVG9XZWJDb3JlU3RyaW5nKHNjaGVtZSkpOwotfQotCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgaWNvbkRhdGFiYXNlRW5hYmxl
ZCkKIHsKICAgICBVTlVTRURfUEFSQU0oaWNvbkRhdGFiYXNlRW5hYmxlZCk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAK
aW5kZXggYTU2ZjRjMzViNDBlMDEwMTBiZjJmYTVmNzNlY2M0M2FiZTdiZDQ4NS4uNWNjODNmOWJh
NjkzNjI2OTA3ZDIyMGI2NmE2MTgwZTQyM2NhYjk4NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTc4LDcg
KzE3OCw2IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0
U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldEN1c3RvbVBvbGljeURlbGVnYXRlIiwg
JkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSk7CiAgICAgYmlu
ZE1ldGhvZCgic2V0RGF0YWJhc2VRdW90YSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGF0
YWJhc2VRdW90YSk7CiAgICAgYmluZE1ldGhvZCgic2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9h
ZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZCk7
Ci0gICAgYmluZE1ldGhvZCgic2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVt
ZSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZSk7CiAgICAgYmluZE1ldGhvZCgic2V0RWRpdGluZ0JlaGF2aW9yIiwgJkxheW91
dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOwogICAgIGJpbmRNZXRob2QoInNl
dEF1ZGlvRGF0YSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QXVkaW9EYXRhKTsKICAgICBi
aW5kTWV0aG9kKCJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24iLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEdlb2xvY2F0aW9uUGVybWlzc2lvbik7CkBAIC0xMTgwLDEzICsxMTc5LDYgQEAgdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2ltdWxhdGVEZXNrdG9wTm90aWZpY2F0aW9uQ2xpY2so
Y29uc3QgQ3BwQXJndW1lbnRMaXMKIH0KICNlbmRpZgogCi12b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFy
Z3VtZW50cy5zaXplKCkgIT0gMiB8fCAhYXJndW1lbnRzWzBdLmlzQm9vbCgpIHx8ICFhcmd1bWVu
dHNbMV0uaXNTdHJpbmcoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fc2hlbGwtPndlYlZpZXco
KS0+c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbihjcHBWYXJpYW50VG9Cb29sKGFyZ3VtZW50
c1swXSksIGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVudHNbMV0pKTsKLX0KLQogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGVmZXJNYWluUmVzb3VyY2VEYXRhTG9hZChjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIGlm
IChhcmd1bWVudHMuc2l6ZSgpID09IDEpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA3YmRiNGUxNDM2M2NjZjI5MjNm
NDhlMmI1M2MzZDc3NzQ1M2YzZjJmLi42Y2I3N2RhMjVmOGYxOWU1YzQ2MTg2N2MwYTg2MDNjMGI1
YWMxMjg4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmgKQEAgLTI1NCw3ICsyNTQsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
aW11bGF0ZURlc2t0b3BOb3RpZmljYXRpb25DbGljayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAjZW5kaWYKIAotICAgIHZvaWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJp
ZGRlbkZvclVSTFNjaGVtZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAg
ICAgdm9pZCBzZXREZWZlck1haW5SZXNvdXJjZURhdGFMb2FkKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCmluZGV4IDE2ZjcyN2YzMTZjNTIw
YmUxZWJiNmZlMTUwNjYxNzlkNmFiMmE0MTYuLjE5OTVkOGU3NGY2MDJmZDVmZGYyYTY0ZmZmMDdi
ZGE0NmJmYmZmNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRU
ZXN0Q29udHJvbGxlckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91
dFRlc3RDb250cm9sbGVyRWZsLmNwcApAQCAtNjE0LDExICs2MTQsNiBAQCB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzeW5jTG9jYWxTdG9yYWdlKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlk
ZGVuRm9yVVJMU2NoZW1lKGJvb2wsIEpTU3RyaW5nUmVmKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmdvQmFjaygpCiB7CiAgICAgZXdr
X2ZyYW1lX2JhY2soYnJvd3Nlci0+bWFpbkZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggNWViN2ZiZWQ0
MmJkYmExZjFiNDFkOGNiMTFmNzE0N2E5ZjhkNTEwNi4uZTEzODZhNThlY2IwYTJlY2UyMWQ1ZThk
ZjM1NWE5ZDRhZjg4NDI0YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xh
eW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC03MzksMTIgKzczOSw2IEBAIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnN5bmNMb2NhbFN0b3JhZ2UoKQogICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RG9tYWluUmVsYXhhdGlv
bkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgSlNTdHJpbmdSZWYgc2NoZW1l
KQotewotICAgIEdPd25QdHI8Z2NoYXI+IHVybFNjaGVtZShKU1N0cmluZ0NvcHlVVEY4Q1N0cmlu
ZyhzY2hlbWUpKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERvbWFpblJlbGF4
YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoZm9yYmlkZGVuLCB1cmxTY2hlbWUuZ2V0KCkpOwot
fQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpnb0JhY2soKQogewogICAgIFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVy
TWFjLm1tCmluZGV4IGI4MzU2YzkzNTVmODIwYTE0NTIzMjNmNzgzNmQ0YWQ4YmM2ODliMDguLmE4
YzcxNmNhODk1NTQ2OWQ0YjEyYWU1Y2QwZGQ2OTFhNTNiODFhYTcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTQ5Miwx
MiArNDkyLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RGVmZXJzTG9hZGluZyhi
b29sIGRlZmVycykKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXREZWZlcnNDYWxsYmFja3M6
ZGVmZXJzXTsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RG9tYWluUmVsYXhh
dGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgSlNTdHJpbmdSZWYgc2No
ZW1lKQotewotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc2NoZW1lQ0ZTdHJpbmcoQWRvcHRD
RiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgc2NoZW1lKSk7Ci0g
ICAgW1dlYlZpZXcgX3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW46Zm9yYmlkZGVuIGZvclVS
TFNjaGVtZTooTlNTdHJpbmcgKilzY2hlbWVDRlN0cmluZy5nZXQoKV07Ci19Ci0KIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sIGNhblByb3Zp
ZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwg
Ym9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkKIHsKICAgICAvLyBEdW1wUmVuZGVy
VHJlZSBjb25maWd1cmVkIHRoZSBXZWJWaWV3IHRvIHVzZSBXZWJEZXZpY2VPcmllbnRhdGlvblBy
b3ZpZGVyTW9jay4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5jcHAKaW5kZXggM2U4NzVkMWM1ZmJkZjNhZGJkOWRhOWU1OTA1YmQxODY3ODg1
YjA1MC4uOGEwYmVlZjc5ZGJiZTBlN2UxNmQ1MDk1ZWM0ZjIyYWJlMWE1ZjdjNCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAg
LTcyMCwxMSArNzIwLDYgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VXNlclN0eWxl
U2hlZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0
dGluZ3MoKS0+c2V0VXNlclN0eWxlU2hlZXRVcmwoUVVybCgpKTsKIH0KIAotdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShi
b29sIGZvcmJpZGRlbiwgY29uc3QgUVN0cmluZyYgc2NoZW1lKQotewotICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZv
cmJpZGRlbiwgc2NoZW1lKTsKLX0KLQogaW50IExheW91dFRlc3RDb250cm9sbGVyOjp3b3JrZXJU
aHJlYWRDb3VudCgpCiB7CiAgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp3b3Jr
ZXJUaHJlYWRDb3VudCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oCmluZGV4IDI0YWIwOTdkMTE2OTIzN2I5M2FkNDc5ZjRiZjI1NGFlOGM1
NGU4ZmQuLmUzNDFkOWM4OTRkYjNiYTc2MWEwMmUxZjk5NGQwNDUwZWQyYzkyN2EgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTIx
MSw3ICsyMTEsNiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBvdmVycmlkZVByZWZlcmVuY2Uo
Y29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVZhcmlhbnQmIHZhbHVlKTsKICAgICB2b2lkIHNl
dFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oY29uc3QgUVN0cmluZyYgdXJsKTsKICAgICB2b2lkIHNl
dFVzZXJTdHlsZVNoZWV0RW5hYmxlZChib29sIGVuYWJsZWQpOwotICAgIHZvaWQgc2V0RG9tYWlu
UmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sIGZvcmJpZGRlbiwgY29uc3QgUVN0
cmluZyYgc2NoZW1lKTsKICAgICBpbnQgd29ya2VyVGhyZWFkQ291bnQoKTsKICAgICBpbnQgcGFn
ZU51bWJlckZvckVsZW1lbnRCeUlkKGNvbnN0IFFTdHJpbmcmIGlkLCBmbG9hdCB3aWR0aCA9IDAs
IGZsb2F0IGhlaWdodCA9IDApOwogICAgIGludCBudW1iZXJPZlBhZ2VzKGZsb2F0IHdpZHRoID0g
bWF4Vmlld1dpZHRoLCBmbG9hdCBoZWlnaHQgPSBtYXhWaWV3SGVpZ2h0KTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4
IGZiMjM3YjExNTc2YmFlYjc2YmZiNWEyZmFiOTU0NmM4MGMyNGMxODAuLjkxMzczN2NhZmY4Yzhh
NDQ1ZTgwMjc2YmZiZTdjM2M2N2JlNTA0MzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtMTA0MywxNyArMTA0Myw2
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCkKICAg
ICAvLyBGSVhNRTogaW1wbGVtZW50IHRvIGVuYWJsZSBsb2FkZXIvbmF2aWdhdGlvbi13aGlsZS1k
ZWZlcnJpbmctbG9hZHMuaHRtbAogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRE
b21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBKU1N0
cmluZ1JlZiBzY2hlbWUpCi17Ci0gICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gd2ViVmlldzsK
LSAgICBpZiAoRkFJTEVEKFdlYktpdENyZWF0ZUluc3RhbmNlKF9fdXVpZG9mKFdlYlZpZXcpLCAw
LCBfX3V1aWRvZih3ZWJWaWV3KSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZ3ZWJWaWV3KSkp
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBCU1RSIHNjaGVtZUJTVFIgPSBKU1N0cmluZ0NvcHlC
U1RSKHNjaGVtZSk7Ci0gICAgd2ViVmlldy0+c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZShmb3JiaWRkZW4sIHNjaGVtZUJTVFIpOwotICAgIFN5c0ZyZWVTdHJpbmcoc2No
ZW1lQlNUUik7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcENhY2hlTWF4
aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiB7CiAgICAgcHJpbnRmKCJFUlJPUjog
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUoKSBub3QgaW1wbGVt
ZW50ZWRcbiIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVz
dENvbnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcAppbmRleCAyMTM5ZTdjMDE2ODY0Y2E0ZjUxNjhlYjM5YTA3NDYxMzBkZTZl
MmI4Li41NGNmNzM5NGI2MTgyNTNmMjVlMTcwMTY4ZGY0NGY3Y2UxNDM3MGU4IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAt
Mjk3LDExICsyOTcsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXREZWZlcnNMb2Fk
aW5nKGJvb2wpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudCB0byBlbmFibGUgbG9hZGVyL25hdmln
YXRpb24td2hpbGUtZGVmZXJyaW5nLWxvYWRzLmh0bWwKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShib29sLCBK
U1N0cmluZ1JlZikKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci19Ci0KIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25n
IHNpemUpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlhZWVmOTgwYTFjZWYz
YmRhMDRiNzExNjliZmY1YmY4ZDk3MTdlZWEuLjNjNDI5NWZlNzExNGU5NjZiZWNhNjY0NTZlZjRj
MTZhZDk5ZWIxODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wNS0xNiAgR3l1eW91bmcg
S2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIENvbnZlcnQgc2V0RG9t
YWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSB0byB1c2UgSW50ZXJuYWxTZXR0aW5n
cyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg2NzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW52b2tlIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgZnVuY3Rp
b25zIGZyb20gaW50ZXJuYWxTZXR0aW5ncywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4g
dGhlCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHZpYSB0aGUgSW50ZXJuYWxTZXR0aW5ncyBpbnRl
cmZhY2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3NldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUuaHRtbDoKKwogMjAxMi0wNS0xNiAgQ2hyaXMgUm9nZXJz
ICA8Y3JvZ2Vyc0Bnb29nbGUuY29tPgogCiAgICAgICAgIEF1ZGlvUGFyYW0gbXVzdCBzdXBwb3J0
IGZhbi1pbiAobXVsdGlwbGUgYXVkaW8gY29ubmVjdGlvbnMpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3NldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JV
UkxTY2hlbWUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2V0RG9tYWlu
UmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZS5odG1sCmluZGV4IGI2MzFmOTc3MjUzN2M0
ODZjM2Y5MDhmM2EyZjc5Y2RjOGNhODRlNWEuLjU1MjkxMGE1M2EwMzEyMzk5NDVmYTc0ZWNlNGE3
MjQ1MWI4ZDY4Y2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZS5odG1sCkBAIC0zNiw4ICszNiw4IEBACiAKICAgICAgICAgbG9nKCJGb3JiaWRk
aW5nIGRvbWFpbiByZWxheGF0aW9uIGZvciB0aGUgaHR0cDogc2NoZW1lIik7CiAKLSAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUodHJ1ZSwg
Imh0dHAiKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSh0
cnVlLCAiaHR0cCIpOwogCiAgICAgICAgIHZhciBleGNlcHRpb247CiAgICAgICAgIHRyeSB7CkBA
IC01Myw4ICs1Myw4IEBACiAKICAgICAgICAgZG9tYWluU2hvdWxkQmUoIjAuMC4xIik7CiAKLSAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUo
ZmFsc2UsICJodHRwIik7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxT
Y2hlbWUoZmFsc2UsICJodHRwIik7CiAKICAgICAgICAgbG9nKCJBbGxvd2luZyBkb21haW4gcmVs
YXhhdGlvbiBmb3IgdGhlIGh0dHA6IHNjaGVtZSIpOwogCkBAIC02MywxNiArNjMsMTYgQEAKIAog
ICAgICAgICBsb2coIkZvcmJpZGRpbmcgZG9tYWluIHJlbGF4YXRpb24gZm9yIHRoZSBub3QtaHR0
cDogc2NoZW1lIik7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldERvbWFpblJlbGF4YXRpb25Gb3Ji
aWRkZW5Gb3JVUkxTY2hlbWUodHJ1ZSwgIm5vdC1odHRwIik7CisgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldERvbWFpblJlbGF4
YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUodHJ1ZSwgIm5vdC1odHRwIik7CiAKICAgICAgICAg
ZG9jdW1lbnQuZG9tYWluID0gIjEiOwogICAgICAgICBkb21haW5TaG91bGRCZSgiMSIpOwogCiAg
ICAgICAgIGxvZygiQWxsb3dpbmcgZG9tYWluIHJlbGF4YXRpb24gZm9yIHRoZSBub3QtaHR0cDog
c2NoZW1lIik7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWUoZmFsc2UsICJub3QtaHR0cCIpOworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXREb21haW5SZWxheGF0
aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGZhbHNlLCAibm90LWh0dHAiKTsKICAgICA8L3Njcmlw
dD4KIDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCBlMTE5M2QyZjY5MTAxMDgzNmY5MTc3NTdiN2Y2NmVlMjVkMDY1Y2EyLi5lZGFiYjFiZmU0
NjA4ODAyMmY5Njc0YTFjODU5YzUyNGQzZTcyYTY4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDUtMTYgIEd5dXlvdW5nIEtpbSAg
PGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBDb252ZXJ0IHNldERvbWFpblJl
bGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUgdG8gdXNlIEludGVybmFsU2V0dGluZ3MgaW50
ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjcwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjogQWRkIHNldERvbWFpblJlbGF4YXRpb25G
b3JiaWRkZW5Gb3JVUkxTY2hlbWUgc3ltYm9sIGZpbHRlci4KKwogMjAxMi0wNS0xNiAgVmFydW4g
SmFpbiAgPHZhcnVuamFpbkBnb29nbGUuY29tPgogCiAgICAgICAgIFtjaHJvbWl1bV0gTm8gbW9k
aWZpZXIgZmxhZ3MgKHNoaWZ0L2N0cmwvYWx0KSBpbiBkcmFnJmRyb3AgZXZlbnRzIG9uIGNocm9t
aXVtIGxpbnV4Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>