<?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>110705</bug_id>
          
          <creation_ts>2013-02-23 20:27:07 -0800</creation_ts>
          <short_desc>Not all properties apply to the &apos;::cue&apos; pseudo-element</short_desc>
          <delta_ts>2013-03-11 13:47:16 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Dima Gorbik">dgorbik</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dgorbik</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>jer.noble</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>vcarbune</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>840516</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-23 20:27:07 -0800</bug_when>
    <thetext>The WebVTT spec says the following &apos;::cue&apos; properties may be styled:

&apos;color&apos;
&apos;opacity&apos;
&apos;visibility&apos;
&apos;text-decoration&apos;
&apos;text-outline&apos;
&apos;text-shadow&apos;
the properties corresponding to the &apos;background&apos; shorthand
the properties corresponding to the &apos;outline&apos; shorthand
the properties corresponding to the &apos;font&apos; shorthand, including &apos;line-height&apos;
&apos;white-space&apos;
properties relating to the transition and animation features

Styling at least the &apos;background&apos; properties don&apos;t really work because the element we use for &apos;::cue&apos; is a 0 x 0 &lt;span&gt;, so the background is not rendered. I wonder if “cue” should be what we now call -webkit-media-text-track-all-nodes?

Our layout tests only check some of these properties, we should have tests for all of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840517</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-02-23 20:27:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/13281074&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841251</commentid>
    <comment_count>2</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-25 13:34:28 -0800</bug_when>
    <thetext>This is expected. Specs require background properties to apply to cueBox instead of the cue itself (only for ::cue without an argument, if there is an argument we just skip background properties).
I have few ideas on how to implement this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841302</commentid>
    <comment_count>3</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-25 14:42:49 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt;I wonder if “cue” should be what we now call -webkit-media-text-track-all-nodes?

So the hierarchy is:

-webkit-media-text-track-container (MediaControlTextTrackContainerElement)
| - ::cue (m_cueContainer)
  | - TextTrackCueBox (WebVTT cue background box according to specs)
    |- -webkit-media-text-track-all-nodes (m_allDocumentNodes)

It should be fine to apply all properties to TextTrackCueBox as there are no differences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841548</commentid>
    <comment_count>4</comment_count>
      <attachid>190185</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-25 19:41:57 -0800</bug_when>
    <thetext>Created attachment 190185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>841936</commentid>
    <comment_count>5</comment_count>
      <attachid>190185</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-26 06:05:34 -0800</bug_when>
    <thetext>Comment on attachment 190185
Patch

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

CaptionUserPreferencesMac::captionsStyleSheetOverride also needs to be updated so the user preference overrides work.

&gt; LayoutTests/media/track/track-css-all-cues.html:21
&gt; +            testExpected(&quot;getComputedStyle(textTrackDisplayElement(video, &apos;cue&apos;)).color&quot;, &quot;rgb(128, 0, 128)&quot;);
&gt; +            testExpected(&quot;getComputedStyle(textTrackDisplayElement(video, &apos;cue&apos;)).backgroundColor&quot;, &quot;rgb(0, 255, 0)&quot;);

We should have tests for all of the white-listed properties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842287</commentid>
    <comment_count>6</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-26 13:01:33 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; We should have tests for all of the white-listed properties.

I think this should be done separately and for other test (whitelists related probably), track-css-all-cues.html checks if ::cue matches the right container in general. Also it would be good to have DRT enabled for this. I&apos;ve created a bug report: https://bugs.webkit.org/show_bug.cgi?id=110902</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842300</commentid>
    <comment_count>7</comment_count>
      <attachid>190348</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-26 13:12:02 -0800</bug_when>
    <thetext>Created attachment 190348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842311</commentid>
    <comment_count>8</comment_count>
      <attachid>190348</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-26 13:28:39 -0800</bug_when>
    <thetext>Comment on attachment 190348
Patch

These changes look correct to me, but I don&apos;t know enough about StyleResolver to r+ it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842331</commentid>
    <comment_count>9</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-26 13:51:14 -0800</bug_when>
    <thetext>Would it be better in terms of performance to save MatchingUARulesScope::isMatchingUARules() result to an intermediate variable or is this being optimized by the compiler itself?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842341</commentid>
    <comment_count>10</comment_count>
      <attachid>190348</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-26 13:55:29 -0800</bug_when>
    <thetext>Comment on attachment 190348
Patch

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

&gt; Source/WebCore/html/track/TextTrackCue.cpp:745
&gt; -    m_allDocumentNodes-&gt;setPseudo(allNodesShadowPseudoId());
&gt; +    m_allDocumentNodes-&gt;setPseudo(cueShadowPseudoId());

m_allDocumentNodes could still use a less confusing name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842345</commentid>
    <comment_count>11</comment_count>
      <attachid>190348</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-26 13:57:24 -0800</bug_when>
    <thetext>Comment on attachment 190348
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:539
&gt; -        addMatchedProperties(result, matchedRules[i]-&gt;rule()-&gt;properties(), matchedRules[i]-&gt;rule(), matchedRules[i]-&gt;linkMatchType(), matchedRules[i]-&gt;propertyWhitelistType());
&gt; +        addMatchedProperties(result, matchedRules[i]-&gt;rule()-&gt;properties(), matchedRules[i]-&gt;rule(), matchedRules[i]-&gt;linkMatchType(), MatchingUARulesScope::isMatchingUARules() ?  PropertyWhitelistNone : matchedRules[i]-&gt;propertyWhitelistType());

This seems hackish. Couldn&apos;t the propertyWhitelistType() just be correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842349</commentid>
    <comment_count>12</comment_count>
      <attachid>190348</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-26 13:59:14 -0800</bug_when>
    <thetext>Comment on attachment 190348
Patch

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

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:539
&gt;&gt; +        addMatchedProperties(result, matchedRules[i]-&gt;rule()-&gt;properties(), matchedRules[i]-&gt;rule(), matchedRules[i]-&gt;linkMatchType(), MatchingUARulesScope::isMatchingUARules() ?  PropertyWhitelistNone : matchedRules[i]-&gt;propertyWhitelistType());
&gt; 
&gt; This seems hackish. Couldn&apos;t the propertyWhitelistType() just be correct?

Extra space after ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842368</commentid>
    <comment_count>13</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-26 14:27:16 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 190348 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190348&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/StyleResolver.cpp:539
&gt; &gt; -        addMatchedProperties(result, matchedRules[i]-&gt;rule()-&gt;properties(), matchedRules[i]-&gt;rule(), matchedRules[i]-&gt;linkMatchType(), matchedRules[i]-&gt;propertyWhitelistType());
&gt; &gt; +        addMatchedProperties(result, matchedRules[i]-&gt;rule()-&gt;properties(), matchedRules[i]-&gt;rule(), matchedRules[i]-&gt;linkMatchType(), MatchingUARulesScope::isMatchingUARules() ?  PropertyWhitelistNone : matchedRules[i]-&gt;propertyWhitelistType());
&gt; 
&gt; This seems hackish. Couldn&apos;t the propertyWhitelistType() just be correct?

This is the earliest possible point to check MatchingUARulesScope. The problem is that RuleSets are being populated (and whitelist type determined) outside of MatchingUARulesScope visibility. I consider this piece of code as customizing matched properties for a particular type of rules (UA in this case).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842380</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-02-26 14:38:32 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 190348 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190348&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/css/StyleResolver.cpp:539
&gt; &gt; &gt; -        addMatchedProperties(result, matchedRules[i]-&gt;rule()-&gt;properties(), matchedRules[i]-&gt;rule(), matchedRules[i]-&gt;linkMatchType(), matchedRules[i]-&gt;propertyWhitelistType());
&gt; &gt; &gt; +        addMatchedProperties(result, matchedRules[i]-&gt;rule()-&gt;properties(), matchedRules[i]-&gt;rule(), matchedRules[i]-&gt;linkMatchType(), MatchingUARulesScope::isMatchingUARules() ?  PropertyWhitelistNone : matchedRules[i]-&gt;propertyWhitelistType());
&gt; &gt; 
&gt; &gt; This seems hackish. Couldn&apos;t the propertyWhitelistType() just be correct?
&gt; 
&gt; This is the earliest possible point to check MatchingUARulesScope. The problem is that RuleSets are being populated (and whitelist type determined) outside of MatchingUARulesScope visibility. I consider this piece of code as customizing matched properties for a particular type of rules (UA in this case).

Could you pass MatchingUARulesScope::isMatchingUARules() to propertyWhitelistType()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842401</commentid>
    <comment_count>15</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-02-26 14:56:29 -0800</bug_when>
    <thetext>MatchingUARulesScope is out-of-band signaling and shouldn&apos;t be used at all if possible. It has only one special case client atm. It think you can just pass the information about RuleData being on a UA sheet in AddRuleFlags and set the whitelist appropriately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842487</commentid>
    <comment_count>16</comment_count>
      <attachid>190348</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 16:20:20 -0800</bug_when>
    <thetext>Comment on attachment 190348
Patch

Attachment 190348 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16807018

New failing tests:
media/track/track-cue-rendering-horizontal.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842561</commentid>
    <comment_count>17</comment_count>
      <attachid>190403</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-02-26 17:41:50 -0800</bug_when>
    <thetext>Created attachment 190403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842627</commentid>
    <comment_count>18</comment_count>
      <attachid>190403</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-26 19:47:53 -0800</bug_when>
    <thetext>Comment on attachment 190403
Patch

Attachment 190403 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16794019

New failing tests:
media/track/track-cue-rendering-horizontal.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845283</commentid>
    <comment_count>19</comment_count>
      <attachid>190348</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-03-01 10:37:33 -0800</bug_when>
    <thetext>Comment on attachment 190348
Patch

Cleared Antti Koivisto&apos;s review+ from obsolete attachment 190348 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845461</commentid>
    <comment_count>20</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-03-01 13:27:32 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (From update of attachment 190348 [details])
&gt; Cleared Antti Koivisto&apos;s review+ from obsolete attachment 190348 [details] so that this bug does not appear in http://webkit.org/pending-commit.

Actually the last one needs to be landed. Though there are some chromium-specific pixel/layout tests that will need a rebaseline after changes land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849278</commentid>
    <comment_count>21</comment_count>
      <attachid>190403</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 13:58:27 -0800</bug_when>
    <thetext>Comment on attachment 190403
Patch

Rejecting attachment 190403 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;--bot-id=gce-cq-04&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 190403, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
Core/html/shadow/MediaControlsGtk.cpp.rej
patching file Source/WebCore/html/track/TextTrackCue.cpp
Hunk #4 FAILED at 741.
1 out of 4 hunks FAILED -- saving rejects to file Source/WebCore/html/track/TextTrackCue.cpp.rej
patching file Source/WebCore/html/track/TextTrackCue.h
patching file Source/WebCore/page/CaptionUserPreferencesMac.mm

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Eric Carlson&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://webkit-commit-queue.appspot.com/results/16987181</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849348</commentid>
    <comment_count>22</comment_count>
      <attachid>191842</attachid>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-03-06 15:06:21 -0800</bug_when>
    <thetext>Created attachment 191842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849446</commentid>
    <comment_count>23</comment_count>
      <attachid>191842</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 16:34:07 -0800</bug_when>
    <thetext>Comment on attachment 191842
Patch

Attachment 191842 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17001110

New failing tests:
media/track/track-cue-rendering-horizontal.html
media/track/track-cue-rendering-vertical.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849501</commentid>
    <comment_count>24</comment_count>
      <attachid>191842</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-06 17:07:58 -0800</bug_when>
    <thetext>Comment on attachment 191842
Patch

Attachment 191842 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17060068

New failing tests:
media/track/track-cue-rendering-horizontal.html
media/track/track-cue-rendering-vertical.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852680</commentid>
    <comment_count>25</comment_count>
    <who name="Dima Gorbik">dgorbik</who>
    <bug_when>2013-03-11 13:47:16 -0700</bug_when>
    <thetext>Committed r145397 (http://trac.webkit.org/changeset/145397)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190185</attachid>
            <date>2013-02-25 19:41:57 -0800</date>
            <delta_ts>2013-02-26 13:12:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>18086</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZGU2ZWRmLi4wODMzMzkzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDIt
MjUgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgTm90IGFsbCBw
cm9wZXJ0aWVzIGFwcGx5IHRvIHRoZSAnOjpjdWUnIHBzZXVkby1lbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA3MDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLWNvbnRy
b2xzLmpzOgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLmh0bWw6Cisg
ICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3NzLWN1ZS1saWZldGltZS5odG1sOgorICAgICAg
ICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1kZWZhdWx0Lmh0bWw6CisgICAgICAg
ICogbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmcuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctdGltZXN0YW1wcy5odG1sOgorICAgICAgICAq
IG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sOgorICAgICAgICAqIG1lZGlhL3Ry
YWNrL3RyYWNrLWNzcy1wcm9wZXJ0eS13aGl0ZWxpc3QuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90
cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWw6CisKIDIwMTMtMDItMjAgIE5hdGUgQ2hhcGlu
ICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBUZXN0IGZvciBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwMjM3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9tZWRpYS9tZWRpYS1jb250cm9scy5qcyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWNvbnRy
b2xzLmpzCmluZGV4IGE2Yjk4NzcuLmUwNjMwNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL21lZGlhLWNvbnRyb2xzLmpzCisrKyBiL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWNvbnRy
b2xzLmpzCkBAIC01NCw3ICs1NCwxMCBAQCBmdW5jdGlvbiB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVu
dChwYXJlbnRFbGVtZW50LCBpZCwgY3VlTnVtYmVyKQogICAgIGlmICghaWQpCiAgICAgICAgIHJl
dHVybiBjb250YWluZXJFbGVtZW50OwogCi0gICAgdmFyIGNvbnRyb2xJRCA9ICItd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stIiArIGFyZ3VtZW50c1sxXTsKKyAgICBpZiAoYXJndW1lbnRzWzFdICE9
ICdjdWUnKQorICAgICAgICB2YXIgY29udHJvbElEID0gIi13ZWJraXQtbWVkaWEtdGV4dC10cmFj
ay0iICsgYXJndW1lbnRzWzFdOworICAgIGVsc2UKKyAgICAgICAgdmFyIGNvbnRyb2xJRCA9IGFy
Z3VtZW50c1sxXTsKIAogICAgIHZhciBkaXNwbGF5RWxlbWVudCA9IG1lZGlhQ29udHJvbHNFbGVt
ZW50KGNvbnRhaW5lckVsZW1lbnQuZmlyc3RDaGlsZCwgY29udHJvbElEKTsKICAgICBpZiAoIWRp
c3BsYXlFbGVtZW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
Y3NzLWFsbC1jdWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNr
LWNzcy1hbGwtY3Vlcy1leHBlY3RlZC50eHQKaW5kZXggYmY0MDlmNC4uNDU5MWFhZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtYWxsLWN1ZXMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDYgKzEsNyBAQAogVGVzdCB0aGF0IHN0eWxlIHRvIGFsbCBjdWVzIGlz
IGFwcGxpZWQgY29ycmVjdGx5LgogRVZFTlQoY2FucGxheXRocm91Z2gpCiBFVkVOVChzZWVrZWQp
Ci1FWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRl
bykuZmlyc3RDaGlsZCkuY29sb3IgPT0gJ3JnYigyNTUsIDAsIDApJykgT0sKK0VYUEVDVEVEIChn
ZXRDb21wdXRlZFN0eWxlKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnY3VlJykpLmNv
bG9yID09ICdyZ2IoMTI4LCAwLCAxMjgpJykgT0sKK0VYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxl
KHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnY3VlJykpLmJhY2tncm91bmRDb2xvciA9
PSAncmdiKDAsIDI1NSwgMCknKSBPSwogRU5EIE9GIFRFU1QKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jc3MtYWxsLWN1ZXMuaHRtbAppbmRleCBlZjIxYzM2NS4uNzI1Y2Nh
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLmh0
bWwKQEAgLTksNyArOSw3IEBACiAKICAgICAgICAgPHN0eWxlPgogCi0gICAgICAgIHZpZGVvOjpj
dWUgeyBjb2xvcjpyZWQgfQorICAgICAgICB2aWRlbzo6Y3VlIHsgY29sb3I6IHB1cnBsZTsgYmFj
a2dyb3VuZC1jb2xvcjogbGltZTsgfQogCiAgICAgICAgIDwvc3R5bGU+CiAKQEAgLTE3LDcgKzE3
LDggQEAKIAogICAgICAgICBmdW5jdGlvbiBzZWVrZWQoKQogICAgICAgICB7Ci0gICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUodGV4dFRyYWNrRGlzcGxheUVsZW1lbnQo
dmlkZW8pLmZpcnN0Q2hpbGQpLmNvbG9yIiwgInJnYigyNTUsIDAsIDApIik7CisgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUodGV4dFRyYWNrRGlzcGxheUVsZW1lbnQo
dmlkZW8sICdjdWUnKSkuY29sb3IiLCAicmdiKDEyOCwgMCwgMTI4KSIpOworICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZp
ZGVvLCAnY3VlJykpLmJhY2tncm91bmRDb2xvciIsICJyZ2IoMCwgMjU1LCAwKSIpOwogICAgICAg
ICAgICAgZW5kVGVzdCgpOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3RyYWNrLWNzcy1jdWUtbGlmZXRpbWUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWNzcy1jdWUtbGlmZXRpbWUuaHRtbAppbmRleCA4Yzc2MDczLi42Y2YzMGM5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtY3VlLWxpZmV0
aW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWN1ZS1saWZl
dGltZS5odG1sCkBAIC0zNCw3ICszNCw3IEBACiAgICAgICAgICAgICBpZiAodGVzdEVuZGVkKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25F
bGVtZW50cyh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2RlcycpLmZpcnN0
Q2hpbGQpOworICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyh0ZXh0VHJhY2tE
aXNwbGF5RWxlbWVudCh2aWRlbywgJ2N1ZScpLmZpcnN0Q2hpbGQpOwogICAgICAgICAgICAgc2tp
cE5vbkVsZW1lbnRzKGN1ZU5vZGUpOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21w
dXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgInJnYigyNTUsIDAsIDApIik7CiAgICAgICAgICAg
ICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUubmV4dFNpYmxpbmcpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWRlZmF1bHQu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1kZWZhdWx0
Lmh0bWwKaW5kZXggN2I1NzE0My4uZmJkNzIzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWRlZmF1bHQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZGVmYXVsdC5odG1sCkBAIC0xNiw3ICsx
Niw3IEBACiAgICAgICAgICAgICBpZiAodGVzdEVuZGVkKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVv
LCAnYWxsLW5vZGVzJykuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgICAgICBjdWVOb2RlID0g
dGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdjdWUnKS5maXJzdEVsZW1lbnRDaGlsZDsK
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5mb250
V2VpZ2h0IiwgImJvbGQiKTsKICAgICAgICAgICAgIGN1ZU5vZGUgPSBjdWVOb2RlLm5leHRFbGVt
ZW50U2libGluZzsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShj
dWVOb2RlKS5mb250U3R5bGUiLCAiaXRhbGljIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmcuaHRtbAppbmRleCAzNDM1YzE3Li5mZWFm
NDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hp
bmctbGFuZy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRj
aGluZy1sYW5nLmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAKICAgICAgICAgICAgIGlmICh0ZXN0RW5k
ZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBjdWVOb2RlID0gdGV4
dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdhbGwtbm9kZXMnKS5maXJzdEVsZW1lbnRDaGls
ZC5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNw
bGF5RWxlbWVudCh2aWRlbywgJ2N1ZScpLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENo
aWxkOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUp
LmNvbG9yIiwgaW5mb1tzZWVrZWRDb3VudF1bMF0pOwogICAgICAgICAgICAgY3VlTm9kZSA9IGN1
ZU5vZGUuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQ7CiAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtl
ZENvdW50XVsxXSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1j
c3MtbWF0Y2hpbmctdGltZXN0YW1wcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stY3NzLW1hdGNoaW5nLXRpbWVzdGFtcHMuaHRtbAppbmRleCAzOWVkZGMxLi5kMTg1MDRiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctdGlt
ZXN0YW1wcy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRj
aGluZy10aW1lc3RhbXBzLmh0bWwKQEAgLTMwLDcgKzMwLDcgQEAKICAgICAgICAgICAgIGlmICh0
ZXN0RW5kZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBjdWVOb2Rl
ID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdhbGwtbm9kZXMnKS5maXJzdEVsZW1l
bnRDaGlsZDsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2
aWRlbywgJ2N1ZScpLmZpcnN0RWxlbWVudENoaWxkOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgaW5mb1tzZWVrZWRDb3VudF1bMF0p
OwogICAgICAgICAgICAgY3VlTm9kZSA9IGN1ZU5vZGUubmV4dEVsZW1lbnRTaWJsaW5nOwogICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwg
aW5mb1tzZWVrZWRDb3VudF1bMV0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stY3NzLW1hdGNoaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFj
ay1jc3MtbWF0Y2hpbmcuaHRtbAppbmRleCA2ZTI2Yzg1Li44OTA1ODk1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmcuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmcuaHRtbApAQCAtNTgsNyArNTgs
NyBAQAogICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZShkZXNjcmlwdGlvbltzZWVrZWRDb3Vu
dF0pOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBjdWVOb2RlID0gc2tpcE5vbkVsZW1l
bnRzKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnYWxsLW5vZGVzJykuZmlyc3RDaGls
ZCk7CisgICAgICAgICAgICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKHRleHRUcmFja0Rpc3Bs
YXlFbGVtZW50KHZpZGVvLCAnY3VlJykuZmlyc3RDaGlsZCk7CiAgICAgICAgICAgICBza2lwTm9u
RWxlbWVudHMoY3VlTm9kZSk7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVk
U3R5bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtlZENvdW50XVswXSk7CiAgICAgICAgICAg
ICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUubmV4dFNpYmxpbmcpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLXByb3BlcnR5LXdoaXRlbGlz
dC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLXByb3BlcnR5LXdoaXRl
bGlzdC5odG1sCmluZGV4IDViMzQ4NzMuLjEwNTBjNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWNzcy1wcm9wZXJ0eS13aGl0ZWxpc3QuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtcHJvcGVydHktd2hpdGVsaXN0Lmh0bWwKQEAg
LTI4LDcgKzI4LDcgQEAKICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPiIpOwogICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCJUZXN0IHRoYXQgb25seSBhbGxvd2VkIGZvciB0aGUgOjpjdWUg
cHNldWRvLWVsZW1lbnQgcHJvcGVydGllcyBhcmUgYXBwbGllZCB0byBXZWJWVFQgbm9kZSBvYmpl
Y3RzLiIpOwogCi0gICAgICAgICAgICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQo
dmlkZW8sICdhbGwtbm9kZXMnKS5maXJzdEVsZW1lbnRDaGlsZDsKKyAgICAgICAgICAgIGN1ZU5v
ZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2N1ZScpLmZpcnN0RWxlbWVudENo
aWxkOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUp
LmNvbG9yIiwgInJnYigyNTUsIDAsIDApIik7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdl
dENvbXB1dGVkU3R5bGUoY3VlTm9kZSkucGFkZGluZyIsICIwcHgiKTsKICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS53b3JkU3BhY2luZyIsICIwcHgi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5
bGUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUuaHRt
bAppbmRleCA5ZGFhYjdjLi42NWVmZDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sCkBAIC0xNiw3ICsxNiw3IEBACiAgICAgICAgICAg
ICAgICAgICAgIGN1ZURpc3BsYXlFbGVtZW50ID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlk
ZW8sICdkaXNwbGF5JywgMCk7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0
Q29tcHV0ZWRTdHlsZShjdWVEaXNwbGF5RWxlbWVudCkuY29sb3IiLCAicmdiKDI1NSwgMjU1LCAy
NTUpIik7CiAKLSAgICAgICAgICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlF
bGVtZW50KHZpZGVvLCAnYWxsLW5vZGVzJyk7CisgICAgICAgICAgICAgICAgICAgIGN1ZU5vZGUg
PSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2N1ZScpOwogICAgICAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuYmFja2dyb3VuZENv
bG9yIiwgInJnYigwLCAwLCAwKSIpOwogCiAgICAgICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkMGE1M2YzLi4wYWFlZDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTMtMDItMjUgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAg
ICAgTm90IGFsbCBwcm9wZXJ0aWVzIGFwcGx5IHRvIHRoZSAnOjpjdWUnIHBzZXVkby1lbGVtZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA3MDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYWNrZ3Jv
dW5kIHByb3BlcnRpZXMgYXJlIG5vdCBpbmhlcml0ZWQgYW5kIHRoZXkgd2VyZSBub3QgYXBwbGll
ZCB0byByaWdodCBlbGVtZW50cy4KKyAgICAgICAgTm93IHdlIGFwcGx5IGFsbCA6OmN1ZSBwcm9w
ZXJ0aWVzIHRvIFdlYlZUVCBjdWUgYmFja2dyb3VuZCBib3gsIHdoaWNoIC13ZWJraXQtbWVkaWEt
dGV4dC10cmFjay1hbGwtbm9kZXMKKyAgICAgICAgY29udGFpbmVyIHdhcyBjb3JyZXNwb25kaW5n
IHRvLiBOb3cgaXQgaGFzICdjdWUnIHBzZXVkb0lkIGluc3RlYWQgb2YgJy13ZWJraXQtbWVkaWEt
dGV4dC10cmFjay1hbGwtbm9kZXMnLgorICAgICAgICBQcm9wZXJ0eSBmaWx0ZXJpbmcgaXMgdHVy
bmVkIG9mZiBmb3IgdXNlciBhZ2VudCBydWxlcyBzbyB0aGF0IHdlIGFyZSBzdGlsbCBhYmxlIHRv
IGFwcGx5IGZpbHRlcmVkIHJ1bGVzCisgICAgICAgIHRvIHRoaXMgY29udGFpbmVyIGludGVybmFs
bHkuIG1fY3VlQ29udGFpbmVyIGlzIHJlbW92ZWQgYmVjYXVzZSBpdCBpcyBubyBsb25nZXIgbmVl
ZGVkLgorCisgICAgICAgIEV4aXN0aW5nIHRlc3RzIG1vZGlmaWVkIHRvIGNvdmVyIHRoaXMgY2Fz
ZS4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUmVzb2x2ZXI6OnNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcyk6IGRpc2FibGUgZmls
dGVyaW5nIGZvciBVQSBydWxlcy4KKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9scy5jc3M6Cisg
ICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlRGlz
cGxheSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaDoKKyAg
ICAgICAgKE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sczo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSk6CisgICAgICAgICogaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sc0Nocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bHNDaHJvbWl1bTo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sc0d0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xz
R3RrOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRU
cmFja0N1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlU
cmVlKToKKyAgICAgICAgKiBodG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oOgorCiAyMDEzLTAyLTIw
ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ3Jhc2ggaW4g
V2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrQ29tcGxldGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcAppbmRleCAzNTRiMmM5Li43YTlkMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwCkBAIC01MzQsNyArNTM0LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpz
b3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCkKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgbWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSsrKSB7CiAgICAgICAg
IGlmIChzdGF0ZS5zdHlsZSgpICYmIG1hdGNoZWRSdWxlc1tpXS0+Y29udGFpbnNVbmNvbW1vbkF0
dHJpYnV0ZVNlbGVjdG9yKCkpCiAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRVbmlxdWUo
KTsKLSAgICAgICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMocmVzdWx0LCBtYXRjaGVkUnVsZXNbaV0t
PnJ1bGUoKS0+cHJvcGVydGllcygpLCBtYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKSwgbWF0Y2hlZFJ1
bGVzW2ldLT5saW5rTWF0Y2hUeXBlKCksIG1hdGNoZWRSdWxlc1tpXS0+cHJvcGVydHlXaGl0ZWxp
c3RUeXBlKCkpOworICAgICAgICBhZGRNYXRjaGVkUHJvcGVydGllcyhyZXN1bHQsIG1hdGNoZWRS
dWxlc1tpXS0+cnVsZSgpLT5wcm9wZXJ0aWVzKCksIG1hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLCBt
YXRjaGVkUnVsZXNbaV0tPmxpbmtNYXRjaFR5cGUoKSwgTWF0Y2hpbmdVQVJ1bGVzU2NvcGU6Omlz
TWF0Y2hpbmdVQVJ1bGVzKCkgPyAgUHJvcGVydHlXaGl0ZWxpc3ROb25lIDogbWF0Y2hlZFJ1bGVz
W2ldLT5wcm9wZXJ0eVdoaXRlbGlzdFR5cGUoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9scy5jc3MKaW5kZXggOGUyNzYzYi4uZGQ2ZGQ1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tZWRpYUNvbnRyb2xzLmNzcwpAQCAtMjM4LDcgKzIzOCw3IEBAIHZpZGVvOjotd2Via2l0LW1l
ZGlhLXRleHQtdHJhY2stY29udGFpbmVyIHsKICAgICAtd2Via2l0LWZsZXg6IDEgMTsKIH0KIAot
dmlkZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMgewordmlkZW86OmN1ZSB7
CiAgICAgZGlzcGxheTogaW5saW5lOwogCiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAw
LCAwLCAwLjgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCmluZGV4IDRiYjI3YjEuLjIyYWYzOWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTExODEs
MTMgKzExODEsNiBAQCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KERvYwogewogfQogCi12b2lkIE1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVN1YnRyZWVzKERvY3VtZW50
KiBkb2N1bWVudCkKLXsKLSAgICBtX2N1ZUNvbnRhaW5lciA9IEhUTUxFbGVtZW50OjpjcmVhdGUo
c3BhblRhZywgZG9jdW1lbnQpOwotICAgIG1fY3VlQ29udGFpbmVyLT5zZXRQc2V1ZG8oVGV4dFRy
YWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICBhcHBlbmRDaGlsZChtX2N1ZUNvbnRh
aW5lciwgQVNTRVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOwotfQotCiBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRleHRUcmFja0Nv
bnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJl
ZihuZXcgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChkb2N1bWVudCkpOwpA
QCAtMTIwOSw3ICsxMjAyLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xUZXh0
VHJhY2tDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnMKIHZvaWQgTWVkaWFD
b250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiB7CiAgICAg
aWYgKCFtZWRpYUNvbnRyb2xsZXIoKS0+Y2xvc2VkQ2FwdGlvbnNWaXNpYmxlKCkpIHsKLSAgICAg
ICAgbV9jdWVDb250YWluZXItPnJlbW92ZUNoaWxkcmVuKCk7CisgICAgICAgIHJlbW92ZUNoaWxk
cmVuKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEyNjgsNyArMTI2MSw3IEBAIHZv
aWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRlRGlzcGxheSgp
CiAgICAgICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IGRpc3BsYXlCb3ggPSBjdWUtPmdldERp
c3BsYXlUcmVlKG1fdmlkZW9EaXNwbGF5U2l6ZS5zaXplKCkpOwogICAgICAgICBpZiAoZGlzcGxh
eUJveC0+aGFzQ2hpbGROb2RlcygpICYmICFjb250YWlucyhzdGF0aWNfY2FzdDxOb2RlKj4oZGlz
cGxheUJveC5nZXQoKSkpKQogICAgICAgICAgICAgLy8gTm90ZTogdGhlIGRpc3BsYXkgdHJlZSBv
ZiBhIGN1ZSBpcyByZW1vdmVkIHdoZW4gdGhlIGFjdGl2ZSBmbGFnIG9mIHRoZSBjdWUgaXMgdW5z
ZXQuCi0gICAgICAgICAgICBtX2N1ZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoZGlzcGxheUJveCwg
QVNTRVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOworICAgICAgICAgICAgYXBwZW5kQ2hpbGQoZGlz
cGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTiwgZmFsc2UpOwogICAgIH0KIAogICAgIC8vIDEx
LiBSZXR1cm4gb3V0cHV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmgKaW5kZXggZDFjZDAyOGIuLjU3NTdkZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaApAQCAtNDM5LDcg
KzQzOSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlRGlzcGxheSgpOwogICAgIHZvaWQg
dXBkYXRlU2l6ZXMoYm9vbCBmb3JjZVVwZGF0ZSA9IGZhbHNlKTsKLSAgICB2b2lkIGNyZWF0ZVN1
YnRyZWVzKERvY3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCopOwpAQCAtNDUzLDcgKzQ1Miw2IEBA
IHByaXZhdGU6CiAKICAgICBJbnRSZWN0IG1fdmlkZW9EaXNwbGF5U2l6ZTsKICAgICBmbG9hdCBt
X2ZvbnRTaXplOwotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbV9jdWVDb250YWluZXI7CiB9Owog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAK
aW5kZXggMzgxNGRlZC4uNTk2ZGJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9scy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9scy5jcHAKQEAgLTM4MSw5ICszODEsNyBAQCB2b2lkIE1lZGlhQ29udHJvbHM6
OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkoKQogICAgICAgICBtX3RleHREaXNwbGF5Q29udGFpbmVy
LT5zZXRNZWRpYUNvbnRyb2xsZXIobV9tZWRpYUNvbnRyb2xsZXIpOwogCiAgICAgLy8gSW5zZXJ0
IGl0IGJlZm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVtZW50IHNvIGl0IGFsd2F5cyBkaXNw
bGF5cyBiZWhpbmQgdGhlIGNvbnRyb2xzLgotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNv
bnRhaW5lciwgbV9wYW5lbCwgSUdOT1JFX0VYQ0VQVElPTiwgdHJ1ZSk7Ci0gICAgdGV4dERpc3Bs
YXlDb250YWluZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3VtZW50KCkpOwotICAgIHRleHREaXNwbGF5
Q29udGFpbmVyLnJlbGVhc2UoKTsKKyAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWlu
ZXIucmVsZWFzZSgpLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OLCB0cnVlKTsKIH0KIAogdm9p
ZCBNZWRpYUNvbnRyb2xzOjpzaG93VGV4dFRyYWNrRGlzcGxheSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcAppbmRleCA0NjQx
YjlkLi4xNzk3ZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTIxNSw5ICsyMTUsNyBAQCB2b2lkIE1lZGlhQ29u
dHJvbHNDaHJvbWl1bTo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSgpCiAKICAgICAvLyBJbnNlcnQg
aXQgYmVmb3JlIHRoZSBmaXJzdCBjb250cm9sbGVyIGVsZW1lbnQgc28gaXQgYWx3YXlzIGRpc3Bs
YXlzIGJlaGluZCB0aGUgY29udHJvbHMuCiAgICAgLy8gSW4gdGhlIENocm9taXVtIGNhc2UsIHRo
YXQncyB0aGUgZW5jbG9zdXJlIGVsZW1lbnQuCi0gICAgaW5zZXJ0QmVmb3JlKHRleHREaXNwbGF5
Q29udGFpbmVyLCBtX2VuY2xvc3VyZSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7Ci0gICAg
dGV4dERpc3BsYXlDb250YWluZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3VtZW50KCkpOwotICAgIHRl
eHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKTsKKyAgICBpbnNlcnRCZWZvcmUodGV4dERpc3Bs
YXlDb250YWluZXIucmVsZWFzZSgpLCBtX2VuY2xvc3VyZSwgQVNTRVJUX05PX0VYQ0VQVElPTiwg
dHJ1ZSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xzR3RrLmNwcAppbmRleCBhMzg2MjkzLi42MGMwZjE2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcApAQCAtMjIzLDkgKzIyMyw3
IEBAIHZvaWQgTWVkaWFDb250cm9sc0d0azo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSgpCiAgICAg
ICAgIG1fdGV4dERpc3BsYXlDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihtX21lZGlhQ29u
dHJvbGxlcik7CiAKICAgICAvLyBJbnNlcnQgaXQgYmVmb3JlIHRoZSBmaXJzdCBjb250cm9sbGVy
IGVsZW1lbnQgc28gaXQgYWx3YXlzIGRpc3BsYXlzIGJlaGluZCB0aGUgY29udHJvbHMuCi0gICAg
aW5zZXJ0QmVmb3JlKHRleHREaXNwbGF5Q29udGFpbmVyLCBtX2VuY2xvc3VyZSwgQVNTRVJUX05P
X0VYQ0VQVElPTiwgdHJ1ZSk7Ci0gICAgdGV4dERpc3BsYXlDb250YWluZXItPmNyZWF0ZVN1YnRy
ZWVzKGRvY3VtZW50KCkpOwotICAgIHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKTsKKyAg
ICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBtX2VuY2xvc3Vy
ZSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IDIyYjBiN2EuLjExZjkyZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKQEAgLTE4NSwxMiAr
MTg1LDYgQEAgUmVuZGVyT2JqZWN0KiBUZXh0VHJhY2tDdWVCb3g6OmNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKLWNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNrQ3VlOjphbGxOb2Rlc1No
YWRvd1BzZXVkb0lkKCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0
cmluZywgc3VidGl0bGVzLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMiLCBB
dG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAgcmV0dXJuIHN1YnRpdGxl
czsKLX0KLQogVGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnQpCiAgICAgOiBtX3N0YXJ0VGltZShzdGFydCkKICAgICAsIG1fZW5kVGltZShlbmQpCkBAIC03
NDgsNyArNzQyLDcgQEAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IFRleHRUcmFja0N1ZTo6
Z2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXoKICAgICAvLyBiYWNrZ3JvdW5k
IGJveC4KIAogICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFpbmVkIGJ5IGRlZmF1bHQgaW4gbV9h
bGxEb2N1bWVudE5vZGVzLgotICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+c2V0UHNldWRvKGFsbE5v
ZGVzU2hhZG93UHNldWRvSWQoKSk7CisgICAgbV9hbGxEb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8o
Y3VlU2hhZG93UHNldWRvSWQoKSk7CiAgICAgZGlzcGxheVRyZWUtPmFwcGVuZENoaWxkKG1fYWxs
RG9jdW1lbnROb2RlcywgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiAKICAgICAvLyBGSVhN
RShCVUcgNzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9mIFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhh
dCBhcmUgbm90CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0N1ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAppbmRleCA1
YjQ4N2ZkLi5jOWVhM2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3Vl
LmgKQEAgLTg3LDggKzg3LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+VGV4dFRyYWNrQ3Vl
KCk7CiAKLSAgICBzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBhbGxOb2Rlc1NoYWRvd1BzZXVk
b0lkKCk7Ci0KICAgICBUZXh0VHJhY2sqIHRyYWNrKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRUcmFj
ayhUZXh0VHJhY2sqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190348</attachid>
            <date>2013-02-26 13:12:02 -0800</date>
            <delta_ts>2013-03-01 10:37:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19004</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhODViNmZjLi4yOWU5YTkyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDIt
MjYgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgTm90IGFsbCBw
cm9wZXJ0aWVzIGFwcGx5IHRvIHRoZSAnOjpjdWUnIHBzZXVkby1lbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA3MDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLWNvbnRy
b2xzLmpzOgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLmh0bWw6Cisg
ICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3NzLWN1ZS1saWZldGltZS5odG1sOgorICAgICAg
ICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1kZWZhdWx0Lmh0bWw6CisgICAgICAg
ICogbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmcuaHRtbDoKKyAgICAgICAgKiBt
ZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctdGltZXN0YW1wcy5odG1sOgorICAgICAgICAq
IG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sOgorICAgICAgICAqIG1lZGlhL3Ry
YWNrL3RyYWNrLWNzcy1wcm9wZXJ0eS13aGl0ZWxpc3QuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90
cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWw6CisKIDIwMTMtMDItMjYgIFphbiBEb2JlcnNl
ayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgZ2FyZGVuaW5n
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29udHJvbHMuanMgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1jb250cm9scy5qcwppbmRleCBhNmI5ODc3Li5lMDYzMDQ3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1jb250cm9scy5qcworKysgYi9MYXlv
dXRUZXN0cy9tZWRpYS9tZWRpYS1jb250cm9scy5qcwpAQCAtNTQsNyArNTQsMTAgQEAgZnVuY3Rp
b24gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQocGFyZW50RWxlbWVudCwgaWQsIGN1ZU51bWJlcikK
ICAgICBpZiAoIWlkKQogICAgICAgICByZXR1cm4gY29udGFpbmVyRWxlbWVudDsKIAotICAgIHZh
ciBjb250cm9sSUQgPSAiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLSIgKyBhcmd1bWVudHNbMV07
CisgICAgaWYgKGFyZ3VtZW50c1sxXSAhPSAnY3VlJykKKyAgICAgICAgdmFyIGNvbnRyb2xJRCA9
ICItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stIiArIGFyZ3VtZW50c1sxXTsKKyAgICBlbHNlCisg
ICAgICAgIHZhciBjb250cm9sSUQgPSBhcmd1bWVudHNbMV07CiAKICAgICB2YXIgZGlzcGxheUVs
ZW1lbnQgPSBtZWRpYUNvbnRyb2xzRWxlbWVudChjb250YWluZXJFbGVtZW50LmZpcnN0Q2hpbGQs
IGNvbnRyb2xJRCk7CiAgICAgaWYgKCFkaXNwbGF5RWxlbWVudCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtYWxsLWN1ZXMtZXhwZWN0ZWQudHh0CmluZGV4
IGJmNDA5ZjQuLjQ1OTFhYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLWNzcy1hbGwtY3Vlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stY3NzLWFsbC1jdWVzLWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDcgQEAKIFRlc3Qg
dGhhdCBzdHlsZSB0byBhbGwgY3VlcyBpcyBhcHBsaWVkIGNvcnJlY3RseS4KIEVWRU5UKGNhbnBs
YXl0aHJvdWdoKQogRVZFTlQoc2Vla2VkKQotRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUodGV4
dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8pLmZpcnN0Q2hpbGQpLmNvbG9yID09ICdyZ2IoMjU1
LCAwLCAwKScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0VHJhY2tEaXNwbGF5
RWxlbWVudCh2aWRlbywgJ2N1ZScpKS5jb2xvciA9PSAncmdiKDEyOCwgMCwgMTI4KScpIE9LCitF
WFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywg
J2N1ZScpKS5iYWNrZ3JvdW5kQ29sb3IgPT0gJ3JnYigwLCAyNTUsIDApJykgT0sKIEVORCBPRiBU
RVNUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwt
Y3Vlcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLmh0
bWwKaW5kZXggZWYyMWMzNjUuLjcyNWNjYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3Ry
YWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy5odG1sCkBAIC05LDcgKzksNyBAQAogCiAgICAgICAgIDxz
dHlsZT4KIAotICAgICAgICB2aWRlbzo6Y3VlIHsgY29sb3I6cmVkIH0KKyAgICAgICAgdmlkZW86
OmN1ZSB7IGNvbG9yOiBwdXJwbGU7IGJhY2tncm91bmQtY29sb3I6IGxpbWU7IH0KIAogICAgICAg
ICA8L3N0eWxlPgogCkBAIC0xNyw3ICsxNyw4IEBACiAKICAgICAgICAgZnVuY3Rpb24gc2Vla2Vk
KCkKICAgICAgICAgewotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxl
KHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvKS5maXJzdENoaWxkKS5jb2xvciIsICJyZ2Io
MjU1LCAwLCAwKSIpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxl
KHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnY3VlJykpLmNvbG9yIiwgInJnYigxMjgs
IDAsIDEyOCkiKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZSh0
ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2N1ZScpKS5iYWNrZ3JvdW5kQ29sb3IiLCAi
cmdiKDAsIDI1NSwgMCkiKTsKICAgICAgICAgICAgIGVuZFRlc3QoKTsKICAgICAgICAgfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtY3VlLWxpZmV0aW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtY3VlLWxpZmV0aW1lLmh0
bWwKaW5kZXggOGM3NjA3My4uNmNmMzBjOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
dHJhY2svdHJhY2stY3NzLWN1ZS1saWZldGltZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWNzcy1jdWUtbGlmZXRpbWUuaHRtbApAQCAtMzQsNyArMzQsNyBAQAogICAg
ICAgICAgICAgaWYgKHRlc3RFbmRlZCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAg
ICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHModGV4dFRyYWNrRGlzcGxheUVsZW1lbnQo
dmlkZW8sICdhbGwtbm9kZXMnKS5maXJzdENoaWxkKTsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBz
a2lwTm9uRWxlbWVudHModGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdjdWUnKS5maXJz
dENoaWxkKTsKICAgICAgICAgICAgIHNraXBOb25FbGVtZW50cyhjdWVOb2RlKTsKICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2Io
MjU1LCAwLCAwKSIpOwogICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyhjdWVO
b2RlLm5leHRTaWJsaW5nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLWNzcy1tYXRjaGluZy1kZWZhdWx0Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90
cmFjay1jc3MtbWF0Y2hpbmctZGVmYXVsdC5odG1sCmluZGV4IDdiNTcxNDMuLmZiZDcyMzIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1kZWZh
dWx0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5n
LWRlZmF1bHQuaHRtbApAQCAtMTYsNyArMTYsNyBAQAogICAgICAgICAgICAgaWYgKHRlc3RFbmRl
ZCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIGN1ZU5vZGUgPSB0ZXh0
VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2RlcycpLmZpcnN0RWxlbWVudENoaWxk
OworICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAn
Y3VlJykuZmlyc3RFbGVtZW50Q2hpbGQ7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENv
bXB1dGVkU3R5bGUoY3VlTm9kZSkuZm9udFdlaWdodCIsICJib2xkIik7CiAgICAgICAgICAgICBj
dWVOb2RlID0gY3VlTm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7CiAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuZm9udFN0eWxlIiwgIml0YWxpYyIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxh
bmcuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5n
Lmh0bWwKaW5kZXggMzQzNWMxNy4uZmVhZjQ3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sCkBAIC0yNiw3ICsyNiw3IEBA
CiAgICAgICAgICAgICBpZiAodGVzdEVuZGVkKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnYWxs
LW5vZGVzJykuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgICAg
ICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdjdWUnKS5maXJzdEVs
ZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZDsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
Z2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRdWzBdKTsK
ICAgICAgICAgICAgIGN1ZU5vZGUgPSBjdWVOb2RlLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxl
bWVudENoaWxkOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1
ZU5vZGUpLmNvbG9yIiwgaW5mb1tzZWVrZWRDb3VudF1bMV0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLXRpbWVzdGFtcHMuaHRtbCBiL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy10aW1lc3RhbXBzLmh0bWwK
aW5kZXggMzllZGRjMS4uZDE4NTA0YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stY3NzLW1hdGNoaW5nLXRpbWVzdGFtcHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctdGltZXN0YW1wcy5odG1sCkBAIC0zMCw3ICsz
MCw3IEBACiAgICAgICAgICAgICBpZiAodGVzdEVuZGVkKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVv
LCAnYWxsLW5vZGVzJykuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgICAgICBjdWVOb2RlID0g
dGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdjdWUnKS5maXJzdEVsZW1lbnRDaGlsZDsK
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xv
ciIsIGluZm9bc2Vla2VkQ291bnRdWzBdKTsKICAgICAgICAgICAgIGN1ZU5vZGUgPSBjdWVOb2Rl
Lm5leHRFbGVtZW50U2libGluZzsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0
ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRdWzFdKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLmh0bWwKaW5kZXggNmUyNmM4
NS4uODkwNTg5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3Nz
LW1hdGNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1h
dGNoaW5nLmh0bWwKQEAgLTU4LDcgKzU4LDcgQEAKICAgICAgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoZGVzY3JpcHRpb25bc2Vla2VkQ291bnRdKTsKICAgICAgICAgICAgIH0KIAotICAgICAgICAg
ICAgY3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRl
bywgJ2FsbC1ub2RlcycpLmZpcnN0Q2hpbGQpOworICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBO
b25FbGVtZW50cyh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2N1ZScpLmZpcnN0Q2hp
bGQpOwogICAgICAgICAgICAgc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUpOwogICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgaW5mb1tzZWVr
ZWRDb3VudF1bMF0pOwogICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyhjdWVO
b2RlLm5leHRTaWJsaW5nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3Ry
YWNrLWNzcy1wcm9wZXJ0eS13aGl0ZWxpc3QuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L3RyYWNrLWNzcy1wcm9wZXJ0eS13aGl0ZWxpc3QuaHRtbAppbmRleCA1YjM0ODczLi4xMDUwYzUz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtcHJvcGVydHkt
d2hpdGVsaXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLXBy
b3BlcnR5LXdoaXRlbGlzdC5odG1sCkBAIC0yOCw3ICsyOCw3IEBACiAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIjxicj4iKTsKICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiVGVzdCB0aGF0IG9u
bHkgYWxsb3dlZCBmb3IgdGhlIDo6Y3VlIHBzZXVkby1lbGVtZW50IHByb3BlcnRpZXMgYXJlIGFw
cGxpZWQgdG8gV2ViVlRUIG5vZGUgb2JqZWN0cy4iKTsKIAotICAgICAgICAgICAgY3VlTm9kZSA9
IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnYWxsLW5vZGVzJykuZmlyc3RFbGVtZW50
Q2hpbGQ7CisgICAgICAgICAgICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlk
ZW8sICdjdWUnKS5maXJzdEVsZW1lbnRDaGlsZDsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
Z2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMjU1LCAwLCAwKSIpOwogICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLnBhZGRpbmci
LCAiMHB4Iik7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3Vl
Tm9kZSkud29yZFNwYWNpbmciLCAiMHB4Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwKaW5kZXggOWRhYWI3Yy4uNjVlZmQ2NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUuaHRtbApAQCAt
MTYsNyArMTYsNyBAQAogICAgICAgICAgICAgICAgICAgICBjdWVEaXNwbGF5RWxlbWVudCA9IHRl
eHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnZGlzcGxheScsIDApOwogICAgICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlRGlzcGxheUVsZW1lbnQp
LmNvbG9yIiwgInJnYigyNTUsIDI1NSwgMjU1KSIpOwogCi0gICAgICAgICAgICAgICAgICAgIGN1
ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2RlcycpOworICAg
ICAgICAgICAgICAgICAgICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8s
ICdjdWUnKTsKICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0
eWxlKGN1ZU5vZGUpLmJhY2tncm91bmRDb2xvciIsICJyZ2IoMCwgMCwgMCkiKTsKIAogICAgICAg
ICAgICAgICAgICAgICBlbmRUZXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU1NzcyOC4uYTI0MzU4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAyLTI2ICBEaW1hIEdvcmJpayAgPGRn
b3JiaWtAYXBwbGUuY29tPgorCisgICAgICAgIE5vdCBhbGwgcHJvcGVydGllcyBhcHBseSB0byB0
aGUgJzo6Y3VlJyBwc2V1ZG8tZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQmFja2dyb3VuZCBwcm9wZXJ0aWVzIGFyZSBub3QgaW5oZXJpdGVk
IGFuZCB0aGV5IHdlcmUgbm90IGFwcGxpZWQgdG8gcmlnaHQgZWxlbWVudHMuCisgICAgICAgIE5v
dyB3ZSBhcHBseSBhbGwgOjpjdWUgcHJvcGVydGllcyB0byBXZWJWVFQgY3VlIGJhY2tncm91bmQg
Ym94LCB3aGljaCAtd2Via2l0LW1lZGlhLXRleHQtdHJhY2stYWxsLW5vZGVzCisgICAgICAgIGNv
bnRhaW5lciB3YXMgY29ycmVzcG9uZGluZyB0by4gTm93IGl0IGhhcyAnY3VlJyBwc2V1ZG9JZCBp
bnN0ZWFkIG9mICctd2Via2l0LW1lZGlhLXRleHQtdHJhY2stYWxsLW5vZGVzJy4KKyAgICAgICAg
UHJvcGVydHkgZmlsdGVyaW5nIGlzIHR1cm5lZCBvZmYgZm9yIHVzZXIgYWdlbnQgcnVsZXMgc28g
dGhhdCB3ZSBhcmUgc3RpbGwgYWJsZSB0byBhcHBseSBmaWx0ZXJlZCBydWxlcworICAgICAgICB0
byB0aGlzIGNvbnRhaW5lciBpbnRlcm5hbGx5LiBtX2N1ZUNvbnRhaW5lciBpcyByZW1vdmVkIGJl
Y2F1c2UgaXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0cyBt
b2RpZmllZCB0byBjb3ZlciB0aGlzIGNhc2UuCisKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJN
YXRjaGVkUnVsZXMpOiBkaXNhYmxlIGZpbHRlcmluZyBmb3IgVUEgcnVsZXMuCisgICAgICAgICog
Y3NzL21lZGlhQ29udHJvbHMuY3NzOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0Nv
bnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXJFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHM6OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmNyZWF0ZVRleHRUcmFja0Rpc3Bs
YXkpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0d0azo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSk6Cisg
ICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuaDoKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1N0
eWxlU2hlZXRPdmVycmlkZSk6CisKIDIwMTMtMDItMjYgIEFuZHJldyBMbyAgPGFubG9AcmltLmNv
bT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQW5pbWF0ZWQgaW1hZ2VzIG5vdCBhbmltYXRpbmcg
b24gYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbGF5ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKaW5kZXggNDZkYjI1YS4uYjY5NjAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcApAQCAtNTM2LDcgKzUzNiw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6c29ydEFu
ZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQpCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1hdGNoZWRSdWxlcy5zaXplKCk7IGkrKykgewogICAgICAgICBpZiAo
c3RhdGUuc3R5bGUoKSAmJiBtYXRjaGVkUnVsZXNbaV0tPmNvbnRhaW5zVW5jb21tb25BdHRyaWJ1
dGVTZWxlY3RvcigpKQogICAgICAgICAgICAgc3RhdGUuc3R5bGUoKS0+c2V0VW5pcXVlKCk7Ci0g
ICAgICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHJlc3VsdCwgbWF0Y2hlZFJ1bGVzW2ldLT5ydWxl
KCktPnByb3BlcnRpZXMoKSwgbWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCksIG1hdGNoZWRSdWxlc1tp
XS0+bGlua01hdGNoVHlwZSgpLCBtYXRjaGVkUnVsZXNbaV0tPnByb3BlcnR5V2hpdGVsaXN0VHlw
ZSgpKTsKKyAgICAgICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMocmVzdWx0LCBtYXRjaGVkUnVsZXNb
aV0tPnJ1bGUoKS0+cHJvcGVydGllcygpLCBtYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKSwgbWF0Y2hl
ZFJ1bGVzW2ldLT5saW5rTWF0Y2hUeXBlKCksIE1hdGNoaW5nVUFSdWxlc1Njb3BlOjppc01hdGNo
aW5nVUFSdWxlcygpID8gIFByb3BlcnR5V2hpdGVsaXN0Tm9uZSA6IG1hdGNoZWRSdWxlc1tpXS0+
cHJvcGVydHlXaGl0ZWxpc3RUeXBlKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlh
Q29udHJvbHMuY3NzCmluZGV4IDhlMjc2M2IuLmRkNmRkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9scy5jc3MKQEAgLTIzOCw3ICsyMzgsNyBAQCB2aWRlbzo6LXdlYmtpdC1tZWRpYS10
ZXh0LXRyYWNrLWNvbnRhaW5lciB7CiAgICAgLXdlYmtpdC1mbGV4OiAxIDE7CiB9CiAKLXZpZGVv
Ojotd2Via2l0LW1lZGlhLXRleHQtdHJhY2stYWxsLW5vZGVzIHsKK3ZpZGVvOjpjdWUgewogICAg
IGRpc3BsYXk6IGlubGluZTsKIAogICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwg
MC44KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcAppbmRleCAyMjRkNDM1Li44YzY1ZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC0xMTgxLDEzICsx
MTgxLDYgQEAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250
cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudChEb2MKIHsKIH0KIAotdm9pZCBNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVTdWJ0cmVlcyhEb2N1bWVudCogZG9j
dW1lbnQpCi17Ci0gICAgbV9jdWVDb250YWluZXIgPSBIVE1MRWxlbWVudDo6Y3JlYXRlKHNwYW5U
YWcsIGRvY3VtZW50KTsKLSAgICBtX2N1ZUNvbnRhaW5lci0+c2V0UHNldWRvKFRleHRUcmFja0N1
ZTo6Y3VlU2hhZG93UHNldWRvSWQoKSk7Ci0gICAgYXBwZW5kQ2hpbGQobV9jdWVDb250YWluZXIs
IEFTU0VSVF9OT19FWENFUFRJT04sIGZhbHNlKTsKLX0KLQogUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWlu
ZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKQEAgLTEy
MTQsNyArMTIwNyw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVGV4dFRyYWNr
Q29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zCiB2b2lkIE1lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkoKQogewogICAgIGlmICgh
bWVkaWFDb250cm9sbGVyKCktPmNsb3NlZENhcHRpb25zVmlzaWJsZSgpKSB7Ci0gICAgICAgIG1f
Y3VlQ29udGFpbmVyLT5yZW1vdmVDaGlsZHJlbigpOworICAgICAgICByZW1vdmVDaGlsZHJlbigp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjczLDcgKzEyNjYsNyBAQCB2b2lkIE1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkoKQogICAg
ICAgICBSZWZQdHI8VGV4dFRyYWNrQ3VlQm94PiBkaXNwbGF5Qm94ID0gY3VlLT5nZXREaXNwbGF5
VHJlZShtX3ZpZGVvRGlzcGxheVNpemUuc2l6ZSgpKTsKICAgICAgICAgaWYgKGRpc3BsYXlCb3gt
Pmhhc0NoaWxkTm9kZXMoKSAmJiAhY29udGFpbnMoc3RhdGljX2Nhc3Q8Tm9kZSo+KGRpc3BsYXlC
b3guZ2V0KCkpKSkKICAgICAgICAgICAgIC8vIE5vdGU6IHRoZSBkaXNwbGF5IHRyZWUgb2YgYSBj
dWUgaXMgcmVtb3ZlZCB3aGVuIHRoZSBhY3RpdmUgZmxhZyBvZiB0aGUgY3VlIGlzIHVuc2V0Lgot
ICAgICAgICAgICAgbV9jdWVDb250YWluZXItPmFwcGVuZENoaWxkKGRpc3BsYXlCb3gsIEFTU0VS
VF9OT19FWENFUFRJT04sIGZhbHNlKTsKKyAgICAgICAgICAgIGFwcGVuZENoaWxkKGRpc3BsYXlC
b3gsIEFTU0VSVF9OT19FWENFUFRJT04sIGZhbHNlKTsKICAgICB9CiAKICAgICAvLyAxMS4gUmV0
dXJuIG91dHB1dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5oCmluZGV4IDVhY2YzOGYuLjAwNTFlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaApAQCAtNDM5LDcgKzQzOSw2
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlRGlzcGxheSgpOwogICAgIHZvaWQgdXBkYXRl
U2l6ZXMoYm9vbCBmb3JjZVVwZGF0ZSA9IGZhbHNlKTsKLSAgICB2b2lkIGNyZWF0ZVN1YnRyZWVz
KERvY3VtZW50Kik7CiAgICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgdGV4dFRyYWNrQ29u
dGFpbmVyRWxlbWVudFNoYWRvd1BzZXVkb0lkKCk7CiAKIHByaXZhdGU6CkBAIC00NTQsNyArNDUz
LDYgQEAgcHJpdmF0ZToKIAogICAgIEludFJlY3QgbV92aWRlb0Rpc3BsYXlTaXplOwogICAgIGZs
b2F0IG1fZm9udFNpemU7Ci0gICAgUmVmUHRyPEhUTUxFbGVtZW50PiBtX2N1ZUNvbnRhaW5lcjsK
IH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9scy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
LmNwcAppbmRleCAzODE0ZGVkLi41OTZkYmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xzLmNwcApAQCAtMzgxLDkgKzM4MSw3IEBAIHZvaWQgTWVkaWFDb250
cm9sczo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSgpCiAgICAgICAgIG1fdGV4dERpc3BsYXlDb250
YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihtX21lZGlhQ29udHJvbGxlcik7CiAKICAgICAvLyBJ
bnNlcnQgaXQgYmVmb3JlIHRoZSBmaXJzdCBjb250cm9sbGVyIGVsZW1lbnQgc28gaXQgYWx3YXlz
IGRpc3BsYXlzIGJlaGluZCB0aGUgY29udHJvbHMuCi0gICAgaW5zZXJ0QmVmb3JlKHRleHREaXNw
bGF5Q29udGFpbmVyLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OLCB0cnVlKTsKLSAgICB0ZXh0
RGlzcGxheUNvbnRhaW5lci0+Y3JlYXRlU3VidHJlZXMoZG9jdW1lbnQoKSk7Ci0gICAgdGV4dERp
c3BsYXlDb250YWluZXIucmVsZWFzZSgpOworICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNv
bnRhaW5lci5yZWxlYXNlKCksIG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04sIHRydWUpOwogfQog
CiB2b2lkIE1lZGlhQ29udHJvbHM6OnNob3dUZXh0VHJhY2tEaXNwbGF5KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCmluZGV4
IDQ2NDFiOWQuLjE3OTdmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcApAQCAtMjE1LDkgKzIxNSw3IEBAIHZvaWQgTWVk
aWFDb250cm9sc0Nocm9taXVtOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkKIAogICAgIC8vIElu
c2VydCBpdCBiZWZvcmUgdGhlIGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVudCBzbyBpdCBhbHdheXMg
ZGlzcGxheXMgYmVoaW5kIHRoZSBjb250cm9scy4KICAgICAvLyBJbiB0aGUgQ2hyb21pdW0gY2Fz
ZSwgdGhhdCdzIHRoZSBlbmNsb3N1cmUgZWxlbWVudC4KLSAgICBpbnNlcnRCZWZvcmUodGV4dERp
c3BsYXlDb250YWluZXIsIG1fZW5jbG9zdXJlLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsK
LSAgICB0ZXh0RGlzcGxheUNvbnRhaW5lci0+Y3JlYXRlU3VidHJlZXMoZG9jdW1lbnQoKSk7Ci0g
ICAgdGV4dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgpOworICAgIGluc2VydEJlZm9yZSh0ZXh0
RGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIG1fZW5jbG9zdXJlLCBBU1NFUlRfTk9fRVhDRVBU
SU9OLCB0cnVlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbHNHdGsuY3BwCmluZGV4IGEzODYyOTMuLjYwYzBmMTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsuY3BwCkBAIC0yMjMsOSAr
MjIzLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzR3RrOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkK
ICAgICAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKG1fbWVk
aWFDb250cm9sbGVyKTsKIAogICAgIC8vIEluc2VydCBpdCBiZWZvcmUgdGhlIGZpcnN0IGNvbnRy
b2xsZXIgZWxlbWVudCBzbyBpdCBhbHdheXMgZGlzcGxheXMgYmVoaW5kIHRoZSBjb250cm9scy4K
LSAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIsIG1fZW5jbG9zdXJlLCBBU1NF
UlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKLSAgICB0ZXh0RGlzcGxheUNvbnRhaW5lci0+Y3JlYXRl
U3VidHJlZXMoZG9jdW1lbnQoKSk7Ci0gICAgdGV4dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgp
OworICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIG1fZW5j
bG9zdXJlLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5jcHAKaW5kZXggMjJiMGI3YS4uMTFmOTJk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcApAQCAtMTg1
LDEyICsxODUsNiBAQCBSZW5kZXJPYmplY3QqIFRleHRUcmFja0N1ZUJveDo6Y3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0VHJhY2tDdWU6OmFsbE5v
ZGVzU2hhZG93UHNldWRvSWQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRv
bWljU3RyaW5nLCBzdWJ0aXRsZXMsICgiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2Rl
cyIsIEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKLSAgICByZXR1cm4gc3Vi
dGl0bGVzOwotfQotCiBUZXh0VHJhY2tDdWU6OlRleHRUcmFja0N1ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBkb3VibGUgc3RhcnQsIGRvdWJsZSBlbmQsIGNvbnN0IFN0cmluZyYg
Y29udGVudCkKICAgICA6IG1fc3RhcnRUaW1lKHN0YXJ0KQogICAgICwgbV9lbmRUaW1lKGVuZCkK
QEAgLTc0OCw3ICs3NDIsNyBAQCBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gVGV4dFRyYWNr
Q3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRlb1NpegogICAgIC8vIGJhY2tn
cm91bmQgYm94LgogCiAgICAgLy8gTm90ZTogVGhpcyBpcyBjb250YWluZWQgYnkgZGVmYXVsdCBp
biBtX2FsbERvY3VtZW50Tm9kZXMuCi0gICAgbV9hbGxEb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8o
YWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICBtX2FsbERvY3VtZW50Tm9kZXMtPnNldFBz
ZXVkbyhjdWVTaGFkb3dQc2V1ZG9JZCgpKTsKICAgICBkaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQo
bV9hbGxEb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKIAogICAgIC8v
IEZJWE1FKEJVRyA3OTkxNik6IFJ1bnMgb2YgY2hpbGRyZW4gb2YgV2ViVlRUIFJ1YnkgT2JqZWN0
cyB0aGF0IGFyZSBub3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4
dFRyYWNrQ3VlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCmlu
ZGV4IDViNDg3ZmQuLmM5ZWEzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVGV4dFRyYWNrQ3VlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWUuaApAQCAtODcsOCArODcsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5UZXh0VHJh
Y2tDdWUoKTsKIAotICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGFsbE5vZGVzU2hhZG93
UHNldWRvSWQoKTsKLQogICAgIFRleHRUcmFjayogdHJhY2soKSBjb25zdDsKICAgICB2b2lkIHNl
dFRyYWNrKFRleHRUcmFjayopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXNNYWMubW0KaW5kZXggMmQ0MmQ1Mi4uNmMyZWIwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQpAQCAtMzY5LDcg
KzM2OSw3IEBAIFN0cmluZyBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1N0eWxl
U2hlZXRPdmVycmlkZSgpIGNvbnN0CiAgICAgU3RyaW5nIGJhY2tncm91bmQgPSBjYXB0aW9uc0Jh
Y2tncm91bmRDU1MoKTsKICAgICBpZiAoIWJhY2tncm91bmQuaXNFbXB0eSgpKSB7CiAgICAgICAg
IGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgiIHZpZGVvOjoiKTsKLSAgICAgICAg
Y2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRUcmFja0N1ZTo6YWxsTm9kZXNT
aGFkb3dQc2V1ZG9JZCgpKTsKKyAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBw
ZW5kKFRleHRUcmFja0N1ZTo6Y3VlU2hhZG93UHNldWRvSWQoKSk7CiAgICAgICAgIGNhcHRpb25z
T3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgneycpOwogICAgICAgICBjYXB0aW9uc092ZXJyaWRl
U3R5bGVTaGVldC5hcHBlbmQoYmFja2dyb3VuZCk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVT
dHlsZVNoZWV0LmFwcGVuZCgnfScpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190403</attachid>
            <date>2013-02-26 17:41:50 -0800</date>
            <delta_ts>2013-03-06 15:06:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>28240</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkYTFhNGM3Li5mYTljZWYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDIt
MjYgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgTm90IGFsbCBw
cm9wZXJ0aWVzIGFwcGx5IHRvIHRoZSAnOjpjdWUnIHBzZXVkby1lbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA3MDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLWNvbnRy
b2xzLmpzOgorICAgICAgICAodGV4dFRyYWNrRGlzcGxheUVsZW1lbnQpOgorICAgICAgICAqIG1l
ZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVk
aWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLmh0bWw6CisgICAgICAgICogbWVkaWEvdHJhY2sv
dHJhY2stY3NzLWN1ZS1saWZldGltZS5odG1sOgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNr
LWNzcy1tYXRjaGluZy1kZWZhdWx0Lmh0bWw6CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2st
Y3NzLW1hdGNoaW5nLWxhbmcuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3Mt
bWF0Y2hpbmctdGltZXN0YW1wcy5odG1sOgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNz
cy1tYXRjaGluZy5odG1sOgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1wcm9wZXJ0
eS13aGl0ZWxpc3QuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0
eWxlLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1y
ZW5kZXJpbmctaG9yaXpvbnRhbC1leHBlY3RlZC50eHQ6CisKIDIwMTMtMDItMjYgIEFkYW0gS2xl
aW4gIDxhZGFta0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUGFyc2luZyBvZiBIVE1MIHRhZ3Mg
aW4gTWF0aE1MIFRleHQgSW5zZXJ0aW9uIFBvaW50cyBsZWFkcyB0byBib2d1cyBwYXJzZXIgYmVo
YXZpb3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWNvbnRyb2xzLmpzIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29udHJvbHMuanMKaW5kZXggYTZiOTg3Ny4uZTA2MzA0
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29udHJvbHMuanMKKysrIGIv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29udHJvbHMuanMKQEAgLTU0LDcgKzU0LDEwIEBAIGZ1
bmN0aW9uIHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHBhcmVudEVsZW1lbnQsIGlkLCBjdWVOdW1i
ZXIpCiAgICAgaWYgKCFpZCkKICAgICAgICAgcmV0dXJuIGNvbnRhaW5lckVsZW1lbnQ7CiAKLSAg
ICB2YXIgY29udHJvbElEID0gIi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay0iICsgYXJndW1lbnRz
WzFdOworICAgIGlmIChhcmd1bWVudHNbMV0gIT0gJ2N1ZScpCisgICAgICAgIHZhciBjb250cm9s
SUQgPSAiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLSIgKyBhcmd1bWVudHNbMV07CisgICAgZWxz
ZQorICAgICAgICB2YXIgY29udHJvbElEID0gYXJndW1lbnRzWzFdOwogCiAgICAgdmFyIGRpc3Bs
YXlFbGVtZW50ID0gbWVkaWFDb250cm9sc0VsZW1lbnQoY29udGFpbmVyRWxlbWVudC5maXJzdENo
aWxkLCBjb250cm9sSUQpOwogICAgIGlmICghZGlzcGxheUVsZW1lbnQpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtYWxsLWN1ZXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLWV4cGVjdGVkLnR4dApp
bmRleCBiZjQwOWY0Li40NTkxYWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1jc3MtYWxsLWN1ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy1leHBlY3RlZC50eHQKQEAgLTEsNiArMSw3IEBACiBU
ZXN0IHRoYXQgc3R5bGUgdG8gYWxsIGN1ZXMgaXMgYXBwbGllZCBjb3JyZWN0bHkuCiBFVkVOVChj
YW5wbGF5dGhyb3VnaCkKIEVWRU5UKHNlZWtlZCkKLUVYUEVDVEVEIChnZXRDb21wdXRlZFN0eWxl
KHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvKS5maXJzdENoaWxkKS5jb2xvciA9PSAncmdi
KDI1NSwgMCwgMCknKSBPSworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUodGV4dFRyYWNrRGlz
cGxheUVsZW1lbnQodmlkZW8sICdjdWUnKSkuY29sb3IgPT0gJ3JnYigxMjgsIDAsIDEyOCknKSBP
SworRVhQRUNURUQgKGdldENvbXB1dGVkU3R5bGUodGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlk
ZW8sICdjdWUnKSkuYmFja2dyb3VuZENvbG9yID09ICdyZ2IoMCwgMjU1LCAwKScpIE9LCiBFTkQg
T0YgVEVTVAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3Mt
YWxsLWN1ZXMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vl
cy5odG1sCmluZGV4IGVmMjFjMzY1Li43MjVjY2ExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jc3MtYWxsLWN1ZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS90cmFjay90cmFjay1jc3MtYWxsLWN1ZXMuaHRtbApAQCAtOSw3ICs5LDcgQEAKIAogICAgICAg
ICA8c3R5bGU+CiAKLSAgICAgICAgdmlkZW86OmN1ZSB7IGNvbG9yOnJlZCB9CisgICAgICAgIHZp
ZGVvOjpjdWUgeyBjb2xvcjogcHVycGxlOyBiYWNrZ3JvdW5kLWNvbG9yOiBsaW1lOyB9CiAKICAg
ICAgICAgPC9zdHlsZT4KIApAQCAtMTcsNyArMTcsOCBAQAogCiAgICAgICAgIGZ1bmN0aW9uIHNl
ZWtlZCgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRT
dHlsZSh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbykuZmlyc3RDaGlsZCkuY29sb3IiLCAi
cmdiKDI1NSwgMCwgMCkiKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRT
dHlsZSh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2N1ZScpKS5jb2xvciIsICJyZ2Io
MTI4LCAwLCAxMjgpIik7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5
bGUodGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdjdWUnKSkuYmFja2dyb3VuZENvbG9y
IiwgInJnYigwLCAyNTUsIDApIik7CiAgICAgICAgICAgICBlbmRUZXN0KCk7CiAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWN1ZS1saWZl
dGltZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWN1ZS1saWZldGlt
ZS5odG1sCmluZGV4IDhjNzYwNzMuLjZjZjMwYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21l
ZGlhL3RyYWNrL3RyYWNrLWNzcy1jdWUtbGlmZXRpbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jc3MtY3VlLWxpZmV0aW1lLmh0bWwKQEAgLTM0LDcgKzM0LDcgQEAK
ICAgICAgICAgICAgIGlmICh0ZXN0RW5kZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgICAgICBjdWVOb2RlID0gc2tpcE5vbkVsZW1lbnRzKHRleHRUcmFja0Rpc3BsYXlFbGVt
ZW50KHZpZGVvLCAnYWxsLW5vZGVzJykuZmlyc3RDaGlsZCk7CisgICAgICAgICAgICBjdWVOb2Rl
ID0gc2tpcE5vbkVsZW1lbnRzKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnY3VlJyku
Zmlyc3RDaGlsZCk7CiAgICAgICAgICAgICBza2lwTm9uRWxlbWVudHMoY3VlTm9kZSk7CiAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCAi
cmdiKDI1NSwgMCwgMCkiKTsKICAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHMo
Y3VlTm9kZS5uZXh0U2libGluZyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1jc3MtbWF0Y2hpbmctZGVmYXVsdC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stY3NzLW1hdGNoaW5nLWRlZmF1bHQuaHRtbAppbmRleCA3YjU3MTQzLi5mYmQ3MjMy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmct
ZGVmYXVsdC5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRj
aGluZy1kZWZhdWx0Lmh0bWwKQEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAgICAgIGlmICh0ZXN0
RW5kZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgICAgICBjdWVOb2RlID0g
dGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdhbGwtbm9kZXMnKS5maXJzdEVsZW1lbnRD
aGlsZDsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRl
bywgJ2N1ZScpLmZpcnN0RWxlbWVudENoaWxkOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJn
ZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmZvbnRXZWlnaHQiLCAiYm9sZCIpOwogICAgICAgICAg
ICAgY3VlTm9kZSA9IGN1ZU5vZGUubmV4dEVsZW1lbnRTaWJsaW5nOwogICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmZvbnRTdHlsZSIsICJpdGFsaWMi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGlu
Zy1sYW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmct
bGFuZy5odG1sCmluZGV4IDM0MzVjMTcuLmZlYWY0NzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1sYW5nLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmcuaHRtbApAQCAtMjYsNyArMjYs
NyBAQAogICAgICAgICAgICAgaWYgKHRlc3RFbmRlZCkKICAgICAgICAgICAgICAgICByZXR1cm47
CiAKLSAgICAgICAgICAgIGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywg
J2FsbC1ub2RlcycpLmZpcnN0RWxlbWVudENoaWxkLmZpcnN0RWxlbWVudENoaWxkOworICAgICAg
ICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnY3VlJykuZmly
c3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hpbGQ7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtlZENvdW50XVsw
XSk7CiAgICAgICAgICAgICBjdWVOb2RlID0gY3VlTm9kZS5maXJzdEVsZW1lbnRDaGlsZC5maXJz
dEVsZW1lbnRDaGlsZDsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHls
ZShjdWVOb2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRdWzFdKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy10aW1lc3RhbXBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctdGltZXN0YW1wcy5o
dG1sCmluZGV4IDM5ZWRkYzEuLmQxODUwNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy10aW1lc3RhbXBzLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLXRpbWVzdGFtcHMuaHRtbApAQCAtMzAs
NyArMzAsNyBAQAogICAgICAgICAgICAgaWYgKHRlc3RFbmRlZCkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgICAgIGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2
aWRlbywgJ2FsbC1ub2RlcycpLmZpcnN0RWxlbWVudENoaWxkOworICAgICAgICAgICAgY3VlTm9k
ZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnY3VlJykuZmlyc3RFbGVtZW50Q2hp
bGQ7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSku
Y29sb3IiLCBpbmZvW3NlZWtlZENvdW50XVswXSk7CiAgICAgICAgICAgICBjdWVOb2RlID0gY3Vl
Tm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENv
bXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCBpbmZvW3NlZWtlZENvdW50XVsxXSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmcuaHRtbCBi
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy5odG1sCmluZGV4IDZl
MjZjODUuLjg5MDU4OTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNr
LWNzcy1tYXRjaGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNz
cy1tYXRjaGluZy5odG1sCkBAIC01OCw3ICs1OCw3IEBACiAgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKGRlc2NyaXB0aW9uW3NlZWtlZENvdW50XSk7CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHModGV4dFRyYWNrRGlzcGxheUVsZW1lbnQo
dmlkZW8sICdhbGwtbm9kZXMnKS5maXJzdENoaWxkKTsKKyAgICAgICAgICAgIGN1ZU5vZGUgPSBz
a2lwTm9uRWxlbWVudHModGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdjdWUnKS5maXJz
dENoaWxkKTsKICAgICAgICAgICAgIHNraXBOb25FbGVtZW50cyhjdWVOb2RlKTsKICAgICAgICAg
ICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9b
c2Vla2VkQ291bnRdWzBdKTsKICAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHMo
Y3VlTm9kZS5uZXh0U2libGluZyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFj
ay90cmFjay1jc3MtcHJvcGVydHktd2hpdGVsaXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90
cmFjay90cmFjay1jc3MtcHJvcGVydHktd2hpdGVsaXN0Lmh0bWwKaW5kZXggNWIzNDg3My4uMTA1
MGM1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLXByb3Bl
cnR5LXdoaXRlbGlzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNz
cy1wcm9wZXJ0eS13aGl0ZWxpc3QuaHRtbApAQCAtMjgsNyArMjgsNyBAQAogICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCI8YnI+Iik7CiAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIlRlc3QgdGhh
dCBvbmx5IGFsbG93ZWQgZm9yIHRoZSA6OmN1ZSBwc2V1ZG8tZWxlbWVudCBwcm9wZXJ0aWVzIGFy
ZSBhcHBsaWVkIHRvIFdlYlZUVCBub2RlIG9iamVjdHMuIik7CiAKLSAgICAgICAgICAgIGN1ZU5v
ZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2RlcycpLmZpcnN0RWxl
bWVudENoaWxkOworICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50
KHZpZGVvLCAnY3VlJykuZmlyc3RFbGVtZW50Q2hpbGQ7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuY29sb3IiLCAicmdiKDI1NSwgMCwgMCkiKTsK
ICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5wYWRk
aW5nIiwgIjBweCIpOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxl
KGN1ZU5vZGUpLndvcmRTcGFjaW5nIiwgIjBweCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
bWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEv
dHJhY2svdHJhY2staW4tYmFuZC1zdHlsZS5odG1sCmluZGV4IDlkYWFiN2MuLjY1ZWZkNjUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5bGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwK
QEAgLTE2LDcgKzE2LDcgQEAKICAgICAgICAgICAgICAgICAgICAgY3VlRGlzcGxheUVsZW1lbnQg
PSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2Rpc3BsYXknLCAwKTsKICAgICAgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZURpc3BsYXlFbGVt
ZW50KS5jb2xvciIsICJyZ2IoMjU1LCAyNTUsIDI1NSkiKTsKIAotICAgICAgICAgICAgICAgICAg
ICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdhbGwtbm9kZXMnKTsK
KyAgICAgICAgICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZp
ZGVvLCAnY3VlJyk7CiAgICAgICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0
ZWRTdHlsZShjdWVOb2RlKS5iYWNrZ3JvdW5kQ29sb3IiLCAicmdiKDAsIDAsIDApIik7CiAKICAg
ICAgICAgICAgICAgICAgICAgZW5kVGVzdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaG9yaXpvbnRhbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdHJhY2svdHJhY2stY3Vl
LXJlbmRlcmluZy1ob3Jpem9udGFsLWV4cGVjdGVkLnR4dAppbmRleCAzMWQ1MDNjLi5mNzM3OGJl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdHJhY2svdHJhY2st
Y3VlLXJlbmRlcmluZy1ob3Jpem9udGFsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1ob3Jpem9udGFsLWV4
cGVjdGVkLnR4dApAQCAtMjEsNjcgKzIxLDYwIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDMz
MgogbGF5ZXIgYXQgKDgsOCkgc2l6ZSAzMjB4MjQwCiAgIFJlbmRlclZpZGVvIHtWSURFT30gYXQg
KDAsMCkgc2l6ZSAzMjB4MjQwCiBsYXllciBhdCAoOCw4KSBzaXplIDMyMHgyNDAKLSAgUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94IChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCww
KSBzaXplIDMyMHgyNDAKKyAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDAsMCkgc2l6ZSAz
MjB4MjQwCiBsYXllciBhdCAoOCw4KSBzaXplIDMyMHgyMTUKLSAgUmVuZGVyQmxvY2sgKHJlbGF0
aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMzIweDIxNSBbY29sb3I9I0ZGRkZG
RjAwXQotbGF5ZXIgYXQgKDgsOCkgc2l6ZSAzMjB4MTQKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9u
ZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgMzIweDE0IFtjb2xvcj0jRkZGRkZGXQorICBSZW5kZXJC
bG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAzMjB4MjE1IFtj
b2xvcj0jRkZGRkZGXQorbGF5ZXIgYXQgKDgsOCkgc2l6ZSAzMjB4MTQgc2Nyb2xsSGVpZ2h0IDE2
CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDMyMHgxNAog
ICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDI4MHgxOCBbYmdjb2xvcj0jMDAw
MDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDIyLDApIHNpemUgMjc2eDE0CiAg
ICAgICAgIHRleHQgcnVuIGF0ICgyMiwwKSB3aWR0aCAyNzY6ICJDdWUgMTogc2hvdWxkIGJlIHBv
c2l0aW9uZWQgYXQgdGhlIHRvcCBvZiB0aGUgdmlkZW8uIgotICAgIFJlbmRlcklubGluZSB7RElW
fSBhdCAoMCwwKSBzaXplIDN4MTggW2JnY29sb3I9IzAwMDAwMENDXQotbGF5ZXIgYXQgKDgsMjYp
IHNpemUgMzIweDE0Ci0gIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwxOCkg
c2l6ZSAzMjB4MTQgW2NvbG9yPSNGRkZGRkZdCitsYXllciBhdCAoOCwyNikgc2l6ZSAzMjB4MTQg
c2Nyb2xsSGVpZ2h0IDE2CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwx
OCkgc2l6ZSAzMjB4MTQKICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAzMDh4
MTggW2JnY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg4LDAp
IHNpemUgMzA0eDE0CiAgICAgICAgIHRleHQgcnVuIGF0ICg4LDApIHdpZHRoIDMwNDogIkN1ZSAy
OiBzaG91bGQgYmUgdGhlIHNlY29uZCBjdWUgYW5kIG5vdCBvdmVybGFwIGN1ZSAxLiIKLSAgICBS
ZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAzeDE4IFtiZ2NvbG9yPSMwMDAwMDBDQ10K
LWxheWVyIGF0ICg4LDQ0KSBzaXplIDMyMHgxNAotICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkg
e0RJVn0gYXQgKDAsMzYpIHNpemUgMzIweDE0IFtjb2xvcj0jRkZGRkZGXQorbGF5ZXIgYXQgKDgs
NDQpIHNpemUgMzIweDE0IHNjcm9sbEhlaWdodCAxNgorICBSZW5kZXJCbG9jayAocG9zaXRpb25l
ZCkge0RJVn0gYXQgKDAsMzYpIHNpemUgMzIweDE0CiAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0
ICgwLDApIHNpemUgMzAweDE4IFtiZ2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMTIsMCkgc2l6ZSAyOTZ4MTQKICAgICAgICAgdGV4dCBydW4gYXQgKDEyLDAp
IHdpZHRoIDI5NjogIkN1ZSAzOiBzaG91bGQgYmVjb21lIHRoZSB0aGlyZCBsaW5lIGZyb20gdG9w
IHRvIGJvdHRvbS4iCi0gICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMngxOCBb
Ymdjb2xvcj0jMDAwMDAwQ0NdCi1sYXllciBhdCAoOCw5OCkgc2l6ZSAzMjB4MTQKLSAgUmVuZGVy
QmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDkwKSBzaXplIDMyMHgxNCBbY29sb3I9I0ZG
RkZGRl0KK2xheWVyIGF0ICg4LDk4KSBzaXplIDMyMHgxNCBzY3JvbGxIZWlnaHQgMTYKKyAgUmVu
ZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDkwKSBzaXplIDMyMHgxNAogICAgIFJl
bmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDI5MngxOCBbYmdjb2xvcj0jMDAwMDAwQ0Nd
CiAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDE2LDApIHNpemUgMjg4eDE0CiAgICAgICAg
IHRleHQgcnVuIGF0ICgxNiwwKSB3aWR0aCAyODg6ICJDdWUgNDogc2hvdWxkIGJlIGZpeGVkIHBv
c2l0aW9uZWQgYXJvdW5kIHRoZSBtaWRkbGUuIgotICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAo
MCwwKSBzaXplIDN4MTggW2JnY29sb3I9IzAwMDAwMENDXQotbGF5ZXIgYXQgKDgsMjA1KSBzaXpl
IDMyMHgxNAotICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMTk3KSBzaXpl
IDMyMHgxNCBbY29sb3I9I0ZGRkZGRl0KK2xheWVyIGF0ICg4LDIwNSkgc2l6ZSAzMjB4MTQgc2Ny
b2xsSGVpZ2h0IDE2CisgIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwxOTcp
IHNpemUgMzIweDE0CiAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjk2eDE4
IFtiZ2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTQsMCkg
c2l6ZSAyOTJ4MTQKICAgICAgICAgdGV4dCBydW4gYXQgKDE0LDApIHdpZHRoIDI5MjogIkN1ZSA1
OiBzaG91bGQgYmUgZGlzcGxheWVkIGF0IHRoZSBib3R0b20gb2YgdGhlIHZpZGVvLiIKLSAgICBS
ZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAzeDE4IFtiZ2NvbG9yPSMwMDAwMDBDQ10K
LWxheWVyIGF0ICg4LDE4Nykgc2l6ZSAzMjB4MTQKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQp
IHtESVZ9IGF0ICgwLDE3OSkgc2l6ZSAzMjB4MTQgW2NvbG9yPSNGRkZGRkZdCitsYXllciBhdCAo
OCwxODcpIHNpemUgMzIweDE0IHNjcm9sbEhlaWdodCAxNgorICBSZW5kZXJCbG9jayAocG9zaXRp
b25lZCkge0RJVn0gYXQgKDAsMTc5KSBzaXplIDMyMHgxNAogICAgIFJlbmRlcklubGluZSB7RElW
fSBhdCAoMCwwKSBzaXplIDI4NHgxOCBbYmdjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDIwLDApIHNpemUgMjgweDE0CiAgICAgICAgIHRleHQgcnVuIGF0ICgy
MCwwKSB3aWR0aCAyODA6ICJDdWUgNjogc2hvdWxkIGJlIG9uIHRvcCBvZiBib3R0b20gcG9zaXRp
b25lZCBjdWUgNS4iCi0gICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgM3gxOCBb
Ymdjb2xvcj0jMDAwMDAwQ0NdCiBsYXllciBhdCAoOCwyMjMpIHNpemUgMzIweDI1Ci0gIFJlbmRl
ckRlcHJlY2F0ZWRGbGV4aWJsZUJveCAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAs
MjE1KSBzaXplIDMyMHgyNQorICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMCwyMTUpIHNp
emUgMzIweDI1CiAgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDYsMykgc2l6ZSAxOHgxOAot
ICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9IGF0ICgzMiw0KSBzaXplIDE2eDE2Ci0gICAgUmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94IHtESVZ9IGF0ICg0OSw1KSBzaXplIDIxNngxNQotICAgICAg
UmVuZGVyU2xpZGVyIHtJTlBVVH0gYXQgKDQ1LDIpIHNpemUgMTI2eDEzCi0gICAgICAgIFJlbmRl
ckRlcHJlY2F0ZWRGbGV4aWJsZUJveCB7RElWfSBhdCAoMCwwKSBzaXplIDEyNngxMwotICAgICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIpIHNpemUgMTE2eDgKLSAgICAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMTE2LDIpIHNpemUgMTB4OAotICAgIFJlbmRlckJ1dHRvbiB7SU5Q
VVR9IGF0ICgyOTcsNCkgc2l6ZSAxNngxNgotICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyNjUs
Nikgc2l6ZSAyNXgxMgorICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9IGF0ICgzMiw0KSBzaXplIDE2
eDE3CisgICAgUmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDQ5LDUpIHNpemUgMjE5eDE1Cisg
ICAgICBSZW5kZXJTbGlkZXIge0lOUFVUfSBhdCAoNDUsMikgc2l6ZSAxMjl4MTMKKyAgICAgICAg
UmVuZGVyRmxleGlibGVCb3gge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMjl4MTMKKyAgICAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyKSBzaXplIDEyOXg5CisgICAgICAgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoNCwwKSBzaXplIDExeDgKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBh
dCAoMzAwLDQpIHNpemUgMTZ4MTcKKyAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoMzMwLDQp
IHNpemUgMTZ4MTcKKyAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMjY4LDYpIHNpemUgMjV4MTMK
IGxheWVyIGF0ICg1NywyMzApIHNpemUgNDV4MTEKLSAgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94IHtESVZ9IGF0ICgwLDIpIHNpemUgNDV4MTEgW2NvbG9yPSNGRkZGRkZdCi0gICAgUmVuZGVy
QmxvY2sgKGFub255bW91cykgYXQgKDksMCkgc2l6ZSAyNngxMQorICBSZW5kZXJGbGV4aWJsZUJv
eCB7RElWfSBhdCAoMCwyKSBzaXplIDQ1eDExIFtjb2xvcj0jRkZGRkZGXQorICAgIFJlbmRlckJs
b2NrIChhbm9ueW1vdXMpIGF0ICg5LDApIHNpemUgMjd4MTEKICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDI2eDExCiAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDI2OiAiMDA6MDAiCi1sYXllciBhdCAoMjI4LDIzMCkgc2l6ZSA0NXgxMQotICBSZW5kZXJEZXBy
ZWNhdGVkRmxleGlibGVCb3gge0RJVn0gYXQgKDE3MSwyKSBzaXplIDQ1eDExIFtjb2xvcj0jRkZG
RkZGXQorbGF5ZXIgYXQgKDIzMSwyMzApIHNpemUgNDV4MTEKKyAgUmVuZGVyRmxleGlibGVCb3gg
e0RJVn0gYXQgKDE3NCwyKSBzaXplIDQ1eDExIFtjb2xvcj0jRkZGRkZGXQogICAgIFJlbmRlckJs
b2NrIChhbm9ueW1vdXMpIGF0ICg3LDApIHNpemUgMzF4MTEKICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDMxeDExCiAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDMxOiAiLTAwOjA1IgotbGF5ZXIgYXQgKDEwNiwyMzIpIHNpemUgMTB4OAotICBSZW5kZXJCbG9j
ayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAxMHg4Ci1sYXllciBh
dCAoMjc1LDIyOSkgc2l6ZSAxNHgxMgorbGF5ZXIgYXQgKDI3OCwyMzApIHNpemUgMTR4MTIKICAg
UmVuZGVyQnV0dG9uIHpJOiAxIHtJTlBVVH0gYXQgKDIsMCkgc2l6ZSAxNHgxMgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDRjY2ZmZmYuLjVmNmUwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAxMy0w
Mi0yNiAgRGltYSBHb3JiaWsgIDxkZ29yYmlrQGFwcGxlLmNvbT4KKworICAgICAgICBOb3QgYWxs
IHByb3BlcnRpZXMgYXBwbHkgdG8gdGhlICc6OmN1ZScgcHNldWRvLWVsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMDcwNQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJhY2tncm91bmQgcHJvcGVy
dGllcyBhcmUgbm90IGluaGVyaXRlZCBhbmQgdGhleSB3ZXJlIG5vdCBhcHBsaWVkIHRvIHJpZ2h0
IGVsZW1lbnRzLgorICAgICAgICBOb3cgd2UgYXBwbHkgYWxsIDo6Y3VlIHByb3BlcnRpZXMgdG8g
V2ViVlRUIGN1ZSBiYWNrZ3JvdW5kIGJveCwgd2hpY2ggLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNr
LWFsbC1ub2RlcworICAgICAgICBjb250YWluZXIgd2FzIGNvcnJlc3BvbmRpbmcgdG8uIE5vdyBp
dCBoYXMgJ2N1ZScgcHNldWRvSWQgaW5zdGVhZCBvZiAnLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNr
LWFsbC1ub2RlcycuCisgICAgICAgIFByb3BlcnR5IGZpbHRlcmluZyBpcyB0dXJuZWQgb2ZmIGZv
ciB1c2VyIGFnZW50IHJ1bGVzIHNvIHRoYXQgd2UgYXJlIHN0aWxsIGFibGUgdG8gYXBwbHkgZmls
dGVyZWQgcnVsZXMKKyAgICAgICAgdG8gdGhpcyBjb250YWluZXIgaW50ZXJuYWxseS4gbV9jdWVD
b250YWluZXIgaXMgcmVtb3ZlZCBiZWNhdXNlIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQuCisgICAg
ICAgIG1fYWxsRG9jdW1lbnROb2RlcyBjb250YWluZXIgd2FzIHJlbmFtZWQgdG8gbV9jdWVCYWNr
Z3JvdW5kQm94LgorCisgICAgICAgIEV4aXN0aW5nIHRlc3RzIG1vZGlmaWVkIHRvIGNvdmVyIHRo
aXMgY2FzZS4KKworICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAgIChXZWJDb3JlOjpS
dWxlRGF0YTo6cHJvcGVydHlXaGl0ZWxpc3RUeXBlKTogZGlzYWJsZSBmaWx0ZXJpbmcgZm9yIFVB
IHJ1bGVzLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlUmVzb2x2ZXI6OnNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcyk6IHBhc3MgdGhl
IFVBIHNjb3BlIHRvIHByb3BlcnR5V2hpdGVsaXN0VHlwZSgpLgorICAgICAgICAqIGNzcy9tZWRp
YUNvbnRyb2xzLmNzczogcmVuYW1lIC13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1hbGwtbm9kZXMg
dG8gJ2N1ZScKKyAgICAgICAgKHZpZGVvOjpjdWUpOiAKKyAgICAgICAgKiBodG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xU
ZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVEaXNwbGF5KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAoTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudCk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9scy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzOjpjcmVhdGVUZXh0VHJh
Y2tEaXNwbGF5KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nocm9taXVtOjpjcmVhdGVUZXh0
VHJhY2tEaXNwbGF5KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNHdGs6OmNyZWF0ZVRleHRUcmFja0Rp
c3BsYXkpOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6VGV4dFRyYWNrQ3VlKToKKyAgICAgICAgKFdlYkNvcmU6
OlRleHRUcmFja0N1ZTo6dXBkYXRlRGlzcGxheVRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJh
Y2tDdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRUcmFja0N1ZTo6ZWxlbWVudCk6CisgICAg
ICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6Y2FwdGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUp
OgorCiAyMDEzLTAyLTI2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAK
ICAgICAgICAgSW1wbGVtZW50IFN0b3JhZ2VBcmVhUHJveHk6OmdldEl0ZW0gYW5kIFN0b3JhZ2VB
cmVhUHJveHk6OnNldEl0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCmluZGV4IDQxYmVhMjEuLjI0NDJiOWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL1J1bGVTZXQuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdW5zaWdu
ZWQgc3BlY2lmaWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3NwZWNpZmljaXR5OyB9CiAgICAgdW5z
aWduZWQgbGlua01hdGNoVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlua01hdGNoVHlwZTsgfQog
ICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1faGFz
RG9jdW1lbnRTZWN1cml0eU9yaWdpbjsgfQotICAgIFByb3BlcnR5V2hpdGVsaXN0VHlwZSBwcm9w
ZXJ0eVdoaXRlbGlzdFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQcm9wZXJ0eVdo
aXRlbGlzdFR5cGU+KG1fcHJvcGVydHlXaGl0ZWxpc3RUeXBlKTsgfQorICAgIFByb3BlcnR5V2hp
dGVsaXN0VHlwZSBwcm9wZXJ0eVdoaXRlbGlzdFR5cGUoYm9vbCBpc01hdGNoaW5nVUFSdWxlcyA9
IGZhbHNlKSBjb25zdCB7IHJldHVybiBpc01hdGNoaW5nVUFSdWxlcyA/IFByb3BlcnR5V2hpdGVs
aXN0Tm9uZSA6IHN0YXRpY19jYXN0PFByb3BlcnR5V2hpdGVsaXN0VHlwZT4obV9wcm9wZXJ0eVdo
aXRlbGlzdFR5cGUpOyB9CiAgICAgLy8gVHJ5IHRvIGJhbGFuY2UgYmV0d2VlbiBtZW1vcnkgdXNh
Z2UgKHRoZXJlIGNhbiBiZSBsb3RzIG9mIFJ1bGVEYXRhIG9iamVjdHMpIGFuZCBnb29kIGZpbHRl
cmluZyBwZXJmb3JtYW5jZS4KICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bUlkZW50
aWZpZXJDb3VudCA9IDQ7CiAgICAgY29uc3QgdW5zaWduZWQqIGRlc2NlbmRhbnRTZWxlY3Rvcklk
ZW50aWZpZXJIYXNoZXMoKSBjb25zdCB7IHJldHVybiBtX2Rlc2NlbmRhbnRTZWxlY3RvcklkZW50
aWZpZXJIYXNoZXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA2ZTcz
OWEzLi45OWJkYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC01MzYs
NyArNTM2LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVs
ZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCkKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbWF0
Y2hlZFJ1bGVzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgIGlmIChzdGF0ZS5zdHlsZSgpICYmIG1h
dGNoZWRSdWxlc1tpXS0+Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yKCkpCiAgICAg
ICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRVbmlxdWUoKTsKLSAgICAgICAgYWRkTWF0Y2hlZFBy
b3BlcnRpZXMocmVzdWx0LCBtYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKS0+cHJvcGVydGllcygpLCBt
YXRjaGVkUnVsZXNbaV0tPnJ1bGUoKSwgbWF0Y2hlZFJ1bGVzW2ldLT5saW5rTWF0Y2hUeXBlKCks
IG1hdGNoZWRSdWxlc1tpXS0+cHJvcGVydHlXaGl0ZWxpc3RUeXBlKCkpOworICAgICAgICBhZGRN
YXRjaGVkUHJvcGVydGllcyhyZXN1bHQsIG1hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLT5wcm9wZXJ0
aWVzKCksIG1hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLCBtYXRjaGVkUnVsZXNbaV0tPmxpbmtNYXRj
aFR5cGUoKSwgbWF0Y2hlZFJ1bGVzW2ldLT5wcm9wZXJ0eVdoaXRlbGlzdFR5cGUoTWF0Y2hpbmdV
QVJ1bGVzU2NvcGU6OmlzTWF0Y2hpbmdVQVJ1bGVzKCkpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwppbmRleCA4ZTI3NjNiLi5kZDZkZDU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCkBAIC0yMzgsNyArMjM4LDcgQEAgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIgewogICAgIC13ZWJraXQtZmxleDogMSAxOwog
fQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2RlcyB7Cit2aWRlbzo6
Y3VlIHsKICAgICBkaXNwbGF5OiBpbmxpbmU7CiAKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Jh
KDAsIDAsIDAsIDAuOCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggMjI0ZDQzNS4uOGM2NWU1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAt
MTE4MSwxMyArMTE4MSw2IEBAIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6
Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jCiB7CiB9CiAKLXZvaWQg
TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlU3VidHJlZXMoRG9j
dW1lbnQqIGRvY3VtZW50KQotewotICAgIG1fY3VlQ29udGFpbmVyID0gSFRNTEVsZW1lbnQ6OmNy
ZWF0ZShzcGFuVGFnLCBkb2N1bWVudCk7Ci0gICAgbV9jdWVDb250YWluZXItPnNldFBzZXVkbyhU
ZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkpOwotICAgIGFwcGVuZENoaWxkKG1fY3Vl
Q29udGFpbmVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBmYWxzZSk7Ci19Ci0KIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudD4gZWxlbWVudCA9IGFk
b3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KGRvY3VtZW50
KSk7CkBAIC0xMjE0LDcgKzEyMDcsNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29ucwogdm9pZCBN
ZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVEaXNwbGF5KCkKIHsK
ICAgICBpZiAoIW1lZGlhQ29udHJvbGxlcigpLT5jbG9zZWRDYXB0aW9uc1Zpc2libGUoKSkgewot
ICAgICAgICBtX2N1ZUNvbnRhaW5lci0+cmVtb3ZlQ2hpbGRyZW4oKTsKKyAgICAgICAgcmVtb3Zl
Q2hpbGRyZW4oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTI3Myw3ICsxMjY2LDcg
QEAgdm9pZCBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50Ojp1cGRhdGVEaXNw
bGF5KCkKICAgICAgICAgUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gZGlzcGxheUJveCA9IGN1ZS0+
Z2V0RGlzcGxheVRyZWUobV92aWRlb0Rpc3BsYXlTaXplLnNpemUoKSk7CiAgICAgICAgIGlmIChk
aXNwbGF5Qm94LT5oYXNDaGlsZE5vZGVzKCkgJiYgIWNvbnRhaW5zKHN0YXRpY19jYXN0PE5vZGUq
PihkaXNwbGF5Qm94LmdldCgpKSkpCiAgICAgICAgICAgICAvLyBOb3RlOiB0aGUgZGlzcGxheSB0
cmVlIG9mIGEgY3VlIGlzIHJlbW92ZWQgd2hlbiB0aGUgYWN0aXZlIGZsYWcgb2YgdGhlIGN1ZSBp
cyB1bnNldC4KLSAgICAgICAgICAgIG1fY3VlQ29udGFpbmVyLT5hcHBlbmRDaGlsZChkaXNwbGF5
Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBmYWxzZSk7CisgICAgICAgICAgICBhcHBlbmRDaGls
ZChkaXNwbGF5Qm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBmYWxzZSk7CiAgICAgfQogCiAgICAg
Ly8gMTEuIFJldHVybiBvdXRwdXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sRWxlbWVudHMuaAppbmRleCA1YWNmMzhmLi4wMDUxZTdhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAgLTQz
OSw3ICs0MzksNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZURpc3BsYXkoKTsKICAgICB2
b2lkIHVwZGF0ZVNpemVzKGJvb2wgZm9yY2VVcGRhdGUgPSBmYWxzZSk7Ci0gICAgdm9pZCBjcmVh
dGVTdWJ0cmVlcyhEb2N1bWVudCopOwogICAgIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHRl
eHRUcmFja0NvbnRhaW5lckVsZW1lbnRTaGFkb3dQc2V1ZG9JZCgpOwogCiBwcml2YXRlOgpAQCAt
NDU0LDcgKzQ1Myw2IEBAIHByaXZhdGU6CiAKICAgICBJbnRSZWN0IG1fdmlkZW9EaXNwbGF5U2l6
ZTsKICAgICBmbG9hdCBtX2ZvbnRTaXplOwotICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gbV9jdWVD
b250YWluZXI7CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9scy5jcHAKaW5kZXggMzgxNGRlZC4uNTk2ZGJmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKQEAgLTM4MSw5ICszODEsNyBAQCB2b2lk
IE1lZGlhQ29udHJvbHM6OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkoKQogICAgICAgICBtX3RleHRE
aXNwbGF5Q29udGFpbmVyLT5zZXRNZWRpYUNvbnRyb2xsZXIobV9tZWRpYUNvbnRyb2xsZXIpOwog
CiAgICAgLy8gSW5zZXJ0IGl0IGJlZm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVtZW50IHNv
IGl0IGFsd2F5cyBkaXNwbGF5cyBiZWhpbmQgdGhlIGNvbnRyb2xzLgotICAgIGluc2VydEJlZm9y
ZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9wYW5lbCwgSUdOT1JFX0VYQ0VQVElPTiwgdHJ1ZSk7
Ci0gICAgdGV4dERpc3BsYXlDb250YWluZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3VtZW50KCkpOwot
ICAgIHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKTsKKyAgICBpbnNlcnRCZWZvcmUodGV4
dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBtX3BhbmVsLCBJR05PUkVfRVhDRVBUSU9OLCB0
cnVlKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xzOjpzaG93VGV4dFRyYWNrRGlzcGxheSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVt
LmNwcAppbmRleCA0NjQxYjlkLi4xNzk3ZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTIxNSw5ICsyMTUsNyBA
QCB2b2lkIE1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSgpCiAK
ICAgICAvLyBJbnNlcnQgaXQgYmVmb3JlIHRoZSBmaXJzdCBjb250cm9sbGVyIGVsZW1lbnQgc28g
aXQgYWx3YXlzIGRpc3BsYXlzIGJlaGluZCB0aGUgY29udHJvbHMuCiAgICAgLy8gSW4gdGhlIENo
cm9taXVtIGNhc2UsIHRoYXQncyB0aGUgZW5jbG9zdXJlIGVsZW1lbnQuCi0gICAgaW5zZXJ0QmVm
b3JlKHRleHREaXNwbGF5Q29udGFpbmVyLCBtX2VuY2xvc3VyZSwgQVNTRVJUX05PX0VYQ0VQVElP
TiwgdHJ1ZSk7Ci0gICAgdGV4dERpc3BsYXlDb250YWluZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3Vt
ZW50KCkpOwotICAgIHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKTsKKyAgICBpbnNlcnRC
ZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBtX2VuY2xvc3VyZSwgQVNTRVJU
X05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0d0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcAppbmRleCBhMzg2MjkzLi42MGMwZjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcApA
QCAtMjIzLDkgKzIyMyw3IEBAIHZvaWQgTWVkaWFDb250cm9sc0d0azo6Y3JlYXRlVGV4dFRyYWNr
RGlzcGxheSgpCiAgICAgICAgIG1fdGV4dERpc3BsYXlDb250YWluZXItPnNldE1lZGlhQ29udHJv
bGxlcihtX21lZGlhQ29udHJvbGxlcik7CiAKICAgICAvLyBJbnNlcnQgaXQgYmVmb3JlIHRoZSBm
aXJzdCBjb250cm9sbGVyIGVsZW1lbnQgc28gaXQgYWx3YXlzIGRpc3BsYXlzIGJlaGluZCB0aGUg
Y29udHJvbHMuCi0gICAgaW5zZXJ0QmVmb3JlKHRleHREaXNwbGF5Q29udGFpbmVyLCBtX2VuY2xv
c3VyZSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7Ci0gICAgdGV4dERpc3BsYXlDb250YWlu
ZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3VtZW50KCkpOwotICAgIHRleHREaXNwbGF5Q29udGFpbmVy
LnJlbGVhc2UoKTsKKyAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIucmVsZWFz
ZSgpLCBtX2VuY2xvc3VyZSwgQVNTRVJUX05PX0VYQ0VQVElPTiwgdHJ1ZSk7CiB9CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3BwCmluZGV4IDIyYjBi
N2EuLmRhOGZmZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRy
YWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5j
cHAKQEAgLTE4NSwxMiArMTg1LDYgQEAgUmVuZGVyT2JqZWN0KiBUZXh0VHJhY2tDdWVCb3g6OmNy
ZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUqKQogCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWNvbnN0IEF0b21pY1N0cmluZyYgVGV4dFRyYWNr
Q3VlOjphbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KGNvbnN0IEF0b21pY1N0cmluZywgc3VidGl0bGVzLCAoIi13ZWJraXQtbWVkaWEtdGV4dC10cmFj
ay1hbGwtbm9kZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7Ci0gICAg
cmV0dXJuIHN1YnRpdGxlczsKLX0KLQogVGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91YmxlIHN0YXJ0LCBkb3VibGUgZW5kLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnQpCiAgICAgOiBtX3N0YXJ0VGltZShzdGFydCkKICAgICAsIG1fZW5k
VGltZShlbmQpCkBAIC0yMDgsNyArMjAyLDcgQEAgVGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91YmxlIHN0YXJ0LCBkb3VibGUKICAg
ICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3BhdXNlT25FeGl0KGZhbHNlKQogICAgICwg
bV9zbmFwVG9MaW5lcyh0cnVlKQotICAgICwgbV9hbGxEb2N1bWVudE5vZGVzKEhUTUxEaXZFbGVt
ZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSkpCisgICAgLCBtX2N1
ZUJhY2tncm91bmRCb3goSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNfY2FzdDxEb2N1bWVu
dCo+KGNvbnRleHQpKSkKICAgICAsIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2UodHJ1ZSkKIHsK
ICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpOwpAQCAt
NzE5LDEyICs3MTMsMTIgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OnVwZGF0ZURpc3BsYXlUcmVlKGZs
b2F0IG1vdmllVGltZSkKICAgICAgIHJldHVybjsKIAogICAgIC8vIENsZWFyIHRoZSBjb250ZW50
cyBvZiB0aGUgc2V0LgotICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+cmVtb3ZlQ2hpbGRyZW4oKTsK
KyAgICBtX2N1ZUJhY2tncm91bmRCb3gtPnJlbW92ZUNoaWxkcmVuKCk7CiAKICAgICAvLyBVcGRh
dGUgdGhlIHR3byBzZXRzIGNvbnRhaW5pbmcgcGFzdCBhbmQgZnV0dXJlIFdlYlZUVCBvYmplY3Rz
LgogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZWZlcmVuY2VUcmVlID0gY3JlYXRlQ3Vl
UmVuZGVyaW5nVHJlZSgpOwogICAgIG1hcmtGdXR1cmVBbmRQYXN0Tm9kZXMocmVmZXJlbmNlVHJl
ZS5nZXQoKSwgc3RhcnRUaW1lKCksIG1vdmllVGltZSk7Ci0gICAgbV9hbGxEb2N1bWVudE5vZGVz
LT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKKyAgICBtX2N1ZUJhY2tncm91bmRCb3gtPmFw
cGVuZENoaWxkKHJlZmVyZW5jZVRyZWUpOwogfQogCiBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJv
eD4gVGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRlb1NpemUp
CkBAIC03NDcsOSArNzQxLDkgQEAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IFRleHRUcmFj
a0N1ZTo6Z2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXoKICAgICAvLyAnZGlz
cGxheScgcHJvcGVydHkgaGFzIHRoZSB2YWx1ZSAnaW5saW5lJy4gVGhpcyBpcyB0aGUgV2ViVlRU
IGN1ZQogICAgIC8vIGJhY2tncm91bmQgYm94LgogCi0gICAgLy8gTm90ZTogVGhpcyBpcyBjb250
YWluZWQgYnkgZGVmYXVsdCBpbiBtX2FsbERvY3VtZW50Tm9kZXMuCi0gICAgbV9hbGxEb2N1bWVu
dE5vZGVzLT5zZXRQc2V1ZG8oYWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKLSAgICBkaXNwbGF5
VHJlZS0+YXBwZW5kQ2hpbGQobV9hbGxEb2N1bWVudE5vZGVzLCBBU1NFUlRfTk9fRVhDRVBUSU9O
LCB0cnVlKTsKKyAgICAvLyBOb3RlOiBUaGlzIGlzIGNvbnRhaW5lZCBieSBkZWZhdWx0IGluIG1f
Y3VlQmFja2dyb3VuZEJveC4KKyAgICBtX2N1ZUJhY2tncm91bmRCb3gtPnNldFBzZXVkbyhjdWVT
aGFkb3dQc2V1ZG9JZCgpKTsKKyAgICBkaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9jdWVCYWNr
Z3JvdW5kQm94LCBBU1NFUlRfTk9fRVhDRVBUSU9OLCB0cnVlKTsKIAogICAgIC8vIEZJWE1FKEJV
RyA3OTkxNik6IFJ1bnMgb2YgY2hpbGRyZW4gb2YgV2ViVlRUIFJ1YnkgT2JqZWN0cyB0aGF0IGFy
ZSBub3QKICAgICAvLyBXZWJWVFQgUnVieSBUZXh0IE9iamVjdHMgbXVzdCBiZSB3cmFwcGVkIGlu
IGFub255bW91cyBib3hlcyB3aG9zZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9UZXh0VHJhY2tDdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
Q3VlLmgKaW5kZXggNWI0ODdmZC4uODlkZDI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RleHRUcmFja0N1ZS5oCkBAIC04Nyw4ICs4Nyw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
flRleHRUcmFja0N1ZSgpOwogCi0gICAgc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgYWxsTm9k
ZXNTaGFkb3dQc2V1ZG9JZCgpOwotCiAgICAgVGV4dFRyYWNrKiB0cmFjaygpIGNvbnN0OwogICAg
IHZvaWQgc2V0VHJhY2soVGV4dFRyYWNrKik7CiAKQEAgLTE0MSw3ICsxMzksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRJc0FjdGl2ZShib29sKTsKIAogICAgIFBhc3NSZWZQdHI8VGV4dFRyYWNr
Q3VlQm94PiBnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXplJiB2aWRlb1NpemUpOwotICAgIFBh
c3NSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2FsbERv
Y3VtZW50Tm9kZXM7IH0KKyAgICBQYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBlbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9jdWVCYWNrZ3JvdW5kQm94OyB9CiAKICAgICB2b2lkIHVwZGF0ZURp
c3BsYXlUcmVlKGZsb2F0KTsKICAgICB2b2lkIHJlbW92ZURpc3BsYXlUcmVlKCk7CkBAIC0yNDAs
NyArMjM4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGF1c2VPbkV4aXQ7CiAgICAgYm9vbCBt
X3NuYXBUb0xpbmVzOwogCi0gICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2FsbERvY3VtZW50
Tm9kZXM7CisgICAgUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBtX2N1ZUJhY2tncm91bmRCb3g7CiAK
ICAgICBib29sIG1fZGlzcGxheVRyZWVTaG91bGRDaGFuZ2U7CiAgICAgUmVmUHRyPFRleHRUcmFj
a0N1ZUJveD4gbV9kaXNwbGF5VHJlZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlv
blVzZXJQcmVmZXJlbmNlc01hYy5tbQppbmRleCAyZDQyZDUyLi42YzJlYjAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1tCkBAIC0zNjks
NyArMzY5LDcgQEAgU3RyaW5nIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmNhcHRpb25zU3R5
bGVTaGVldE92ZXJyaWRlKCkgY29uc3QKICAgICBTdHJpbmcgYmFja2dyb3VuZCA9IGNhcHRpb25z
QmFja2dyb3VuZENTUygpOwogICAgIGlmICghYmFja2dyb3VuZC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCIgdmlkZW86OiIpOwotICAgICAg
ICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoVGV4dFRyYWNrQ3VlOjphbGxOb2Rl
c1NoYWRvd1BzZXVkb0lkKCkpOworICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5h
cHBlbmQoVGV4dFRyYWNrQ3VlOjpjdWVTaGFkb3dQc2V1ZG9JZCgpKTsKICAgICAgICAgY2FwdGlv
bnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKCd7Jyk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJp
ZGVTdHlsZVNoZWV0LmFwcGVuZChiYWNrZ3JvdW5kKTsKICAgICAgICAgY2FwdGlvbnNPdmVycmlk
ZVN0eWxlU2hlZXQuYXBwZW5kKCd9Jyk7Cg==
</data>
<flag name="review"
          id="211059"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
    <flag name="commit-queue"
          id="211060"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191842</attachid>
            <date>2013-03-06 15:06:21 -0800</date>
            <delta_ts>2013-03-06 17:07:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>28268</size>
            <attacher name="Dima Gorbik">dgorbik</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYjdiMzY3Li43MDZiZjlmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTMtMDIt
MjYgIERpbWEgR29yYmlrICA8ZGdvcmJpa0BhcHBsZS5jb20+CisKKyAgICAgICAgTm90IGFsbCBw
cm9wZXJ0aWVzIGFwcGx5IHRvIHRoZSAnOjpjdWUnIHBzZXVkby1lbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA3MDUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIG1lZGlhL21lZGlhLWNvbnRy
b2xzLmpzOgorICAgICAgICAodGV4dFRyYWNrRGlzcGxheUVsZW1lbnQpOgorICAgICAgICAqIG1l
ZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogbWVk
aWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLmh0bWw6CisgICAgICAgICogbWVkaWEvdHJhY2sv
dHJhY2stY3NzLWN1ZS1saWZldGltZS5odG1sOgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNr
LWNzcy1tYXRjaGluZy1kZWZhdWx0Lmh0bWw6CisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2st
Y3NzLW1hdGNoaW5nLWxhbmcuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jc3Mt
bWF0Y2hpbmctdGltZXN0YW1wcy5odG1sOgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNz
cy1tYXRjaGluZy5odG1sOgorICAgICAgICAqIG1lZGlhL3RyYWNrL3RyYWNrLWNzcy1wcm9wZXJ0
eS13aGl0ZWxpc3QuaHRtbDoKKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0
eWxlLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1y
ZW5kZXJpbmctaG9yaXpvbnRhbC1leHBlY3RlZC50eHQ6CisKIDIwMTMtMDMtMDYgIFZpY3RvciBD
b3N0YW4gIDxjb3N0YW5AZ21haWwuY29tPgogCiAgICAgICAgIENsZWFudXAgaW4gbXVsdGlwYXJ0
IEZvcm1EYXRhIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29u
dHJvbHMuanMgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1jb250cm9scy5qcwppbmRleCBhNmI5
ODc3Li5lMDYzMDQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1jb250cm9s
cy5qcworKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1jb250cm9scy5qcwpAQCAtNTQsNyAr
NTQsMTAgQEAgZnVuY3Rpb24gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQocGFyZW50RWxlbWVudCwg
aWQsIGN1ZU51bWJlcikKICAgICBpZiAoIWlkKQogICAgICAgICByZXR1cm4gY29udGFpbmVyRWxl
bWVudDsKIAotICAgIHZhciBjb250cm9sSUQgPSAiLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLSIg
KyBhcmd1bWVudHNbMV07CisgICAgaWYgKGFyZ3VtZW50c1sxXSAhPSAnY3VlJykKKyAgICAgICAg
dmFyIGNvbnRyb2xJRCA9ICItd2Via2l0LW1lZGlhLXRleHQtdHJhY2stIiArIGFyZ3VtZW50c1sx
XTsKKyAgICBlbHNlCisgICAgICAgIHZhciBjb250cm9sSUQgPSBhcmd1bWVudHNbMV07CiAKICAg
ICB2YXIgZGlzcGxheUVsZW1lbnQgPSBtZWRpYUNvbnRyb2xzRWxlbWVudChjb250YWluZXJFbGVt
ZW50LmZpcnN0Q2hpbGQsIGNvbnRyb2xJRCk7CiAgICAgaWYgKCFkaXNwbGF5RWxlbWVudCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtYWxsLWN1ZXMtZXhw
ZWN0ZWQudHh0CmluZGV4IGJmNDA5ZjQuLjQ1OTFhYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWFsbC1jdWVzLWV4cGVjdGVkLnR4dApAQCAtMSw2
ICsxLDcgQEAKIFRlc3QgdGhhdCBzdHlsZSB0byBhbGwgY3VlcyBpcyBhcHBsaWVkIGNvcnJlY3Rs
eS4KIEVWRU5UKGNhbnBsYXl0aHJvdWdoKQogRVZFTlQoc2Vla2VkKQotRVhQRUNURUQgKGdldENv
bXB1dGVkU3R5bGUodGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8pLmZpcnN0Q2hpbGQpLmNv
bG9yID09ICdyZ2IoMjU1LCAwLCAwKScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZSh0
ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2N1ZScpKS5jb2xvciA9PSAncmdiKDEyOCwg
MCwgMTI4KScpIE9LCitFWFBFQ1RFRCAoZ2V0Q29tcHV0ZWRTdHlsZSh0ZXh0VHJhY2tEaXNwbGF5
RWxlbWVudCh2aWRlbywgJ2N1ZScpKS5iYWNrZ3JvdW5kQ29sb3IgPT0gJ3JnYigwLCAyNTUsIDAp
JykgT0sKIEVORCBPRiBURVNUCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNr
L3RyYWNrLWNzcy1hbGwtY3Vlcy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
Y3NzLWFsbC1jdWVzLmh0bWwKaW5kZXggZWYyMWMzNjUuLjcyNWNjYTEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1hbGwtY3Vlcy5odG1sCkBAIC05LDcgKzksNyBA
QAogCiAgICAgICAgIDxzdHlsZT4KIAotICAgICAgICB2aWRlbzo6Y3VlIHsgY29sb3I6cmVkIH0K
KyAgICAgICAgdmlkZW86OmN1ZSB7IGNvbG9yOiBwdXJwbGU7IGJhY2tncm91bmQtY29sb3I6IGxp
bWU7IH0KIAogICAgICAgICA8L3N0eWxlPgogCkBAIC0xNyw3ICsxNyw4IEBACiAKICAgICAgICAg
ZnVuY3Rpb24gc2Vla2VkKCkKICAgICAgICAgewotICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJn
ZXRDb21wdXRlZFN0eWxlKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvKS5maXJzdENoaWxk
KS5jb2xvciIsICJyZ2IoMjU1LCAwLCAwKSIpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJn
ZXRDb21wdXRlZFN0eWxlKHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnY3VlJykpLmNv
bG9yIiwgInJnYigxMjgsIDAsIDEyOCkiKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0
Q29tcHV0ZWRTdHlsZSh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2N1ZScpKS5iYWNr
Z3JvdW5kQ29sb3IiLCAicmdiKDAsIDI1NSwgMCkiKTsKICAgICAgICAgICAgIGVuZFRlc3QoKTsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1j
c3MtY3VlLWxpZmV0aW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3Mt
Y3VlLWxpZmV0aW1lLmh0bWwKaW5kZXggOGM3NjA3My4uNmNmMzBjOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLWN1ZS1saWZldGltZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1jdWUtbGlmZXRpbWUuaHRtbApAQCAtMzQs
NyArMzQsNyBAQAogICAgICAgICAgICAgaWYgKHRlc3RFbmRlZCkKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHModGV4dFRyYWNr
RGlzcGxheUVsZW1lbnQodmlkZW8sICdhbGwtbm9kZXMnKS5maXJzdENoaWxkKTsKKyAgICAgICAg
ICAgIGN1ZU5vZGUgPSBza2lwTm9uRWxlbWVudHModGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlk
ZW8sICdjdWUnKS5maXJzdENoaWxkKTsKICAgICAgICAgICAgIHNraXBOb25FbGVtZW50cyhjdWVO
b2RlKTsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2Rl
KS5jb2xvciIsICJyZ2IoMjU1LCAwLCAwKSIpOwogICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBO
b25FbGVtZW50cyhjdWVOb2RlLm5leHRTaWJsaW5nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy1kZWZhdWx0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctZGVmYXVsdC5odG1sCmluZGV4IDdiNTcx
NDMuLmZiZDcyMzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNz
cy1tYXRjaGluZy1kZWZhdWx0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stY3NzLW1hdGNoaW5nLWRlZmF1bHQuaHRtbApAQCAtMTYsNyArMTYsNyBAQAogICAgICAgICAg
ICAgaWYgKHRlc3RFbmRlZCkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAg
IGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2RlcycpLmZp
cnN0RWxlbWVudENoaWxkOworICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlF
bGVtZW50KHZpZGVvLCAnY3VlJykuZmlyc3RFbGVtZW50Q2hpbGQ7CiAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuZm9udFdlaWdodCIsICJib2xkIik7
CiAgICAgICAgICAgICBjdWVOb2RlID0gY3VlTm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7CiAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3VlTm9kZSkuZm9udFN0eWxl
IiwgIml0YWxpYyIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
Y3NzLW1hdGNoaW5nLWxhbmcuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNz
cy1tYXRjaGluZy1sYW5nLmh0bWwKaW5kZXggMzQzNWMxNy4uZmVhZjQ3NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLWxhbmcuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctbGFuZy5odG1sCkBA
IC0yNiw3ICsyNiw3IEBACiAgICAgICAgICAgICBpZiAodGVzdEVuZGVkKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVt
ZW50KHZpZGVvLCAnYWxsLW5vZGVzJykuZmlyc3RFbGVtZW50Q2hpbGQuZmlyc3RFbGVtZW50Q2hp
bGQ7CisgICAgICAgICAgICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8s
ICdjdWUnKS5maXJzdEVsZW1lbnRDaGlsZC5maXJzdEVsZW1lbnRDaGlsZDsKICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9bc2Vl
a2VkQ291bnRdWzBdKTsKICAgICAgICAgICAgIGN1ZU5vZGUgPSBjdWVOb2RlLmZpcnN0RWxlbWVu
dENoaWxkLmZpcnN0RWxlbWVudENoaWxkOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRD
b21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNvbG9yIiwgaW5mb1tzZWVrZWRDb3VudF1bMV0pOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLXRpbWVz
dGFtcHMuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRjaGluZy10
aW1lc3RhbXBzLmh0bWwKaW5kZXggMzllZGRjMS4uZDE4NTA0YiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLXRpbWVzdGFtcHMuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jc3MtbWF0Y2hpbmctdGltZXN0YW1wcy5o
dG1sCkBAIC0zMCw3ICszMCw3IEBACiAgICAgICAgICAgICBpZiAodGVzdEVuZGVkKQogICAgICAg
ICAgICAgICAgIHJldHVybjsKIAotICAgICAgICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3Bs
YXlFbGVtZW50KHZpZGVvLCAnYWxsLW5vZGVzJykuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgICAg
ICAgICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8sICdjdWUnKS5maXJz
dEVsZW1lbnRDaGlsZDsKICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHls
ZShjdWVOb2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRdWzBdKTsKICAgICAgICAgICAgIGN1
ZU5vZGUgPSBjdWVOb2RlLm5leHRFbGVtZW50U2libGluZzsKICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsIGluZm9bc2Vla2VkQ291bnRd
WzFdKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1tYXRj
aGluZy5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLmh0
bWwKaW5kZXggNmUyNmM4NS4uODkwNTg5NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
dHJhY2svdHJhY2stY3NzLW1hdGNoaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stY3NzLW1hdGNoaW5nLmh0bWwKQEAgLTU4LDcgKzU4LDcgQEAKICAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoZGVzY3JpcHRpb25bc2Vla2VkQ291bnRdKTsKICAgICAgICAgICAg
IH0KIAotICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyh0ZXh0VHJhY2tEaXNw
bGF5RWxlbWVudCh2aWRlbywgJ2FsbC1ub2RlcycpLmZpcnN0Q2hpbGQpOworICAgICAgICAgICAg
Y3VlTm9kZSA9IHNraXBOb25FbGVtZW50cyh0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywg
J2N1ZScpLmZpcnN0Q2hpbGQpOwogICAgICAgICAgICAgc2tpcE5vbkVsZW1lbnRzKGN1ZU5vZGUp
OwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmNv
bG9yIiwgaW5mb1tzZWVrZWRDb3VudF1bMF0pOwogICAgICAgICAgICAgY3VlTm9kZSA9IHNraXBO
b25FbGVtZW50cyhjdWVOb2RlLm5leHRTaWJsaW5nKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL3RyYWNrL3RyYWNrLWNzcy1wcm9wZXJ0eS13aGl0ZWxpc3QuaHRtbCBiL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWNzcy1wcm9wZXJ0eS13aGl0ZWxpc3QuaHRtbAppbmRleCA1
YjM0ODczLi4xMDUwYzUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFj
ay1jc3MtcHJvcGVydHktd2hpdGVsaXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJh
Y2svdHJhY2stY3NzLXByb3BlcnR5LXdoaXRlbGlzdC5odG1sCkBAIC0yOCw3ICsyOCw3IEBACiAg
ICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4iKTsKICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiVGVzdCB0aGF0IG9ubHkgYWxsb3dlZCBmb3IgdGhlIDo6Y3VlIHBzZXVkby1lbGVtZW50IHBy
b3BlcnRpZXMgYXJlIGFwcGxpZWQgdG8gV2ViVlRUIG5vZGUgb2JqZWN0cy4iKTsKIAotICAgICAg
ICAgICAgY3VlTm9kZSA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnYWxsLW5vZGVz
JykuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgICAgICBjdWVOb2RlID0gdGV4dFRyYWNrRGlz
cGxheUVsZW1lbnQodmlkZW8sICdjdWUnKS5maXJzdEVsZW1lbnRDaGlsZDsKICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgiZ2V0Q29tcHV0ZWRTdHlsZShjdWVOb2RlKS5jb2xvciIsICJyZ2IoMjU1
LCAwLCAwKSIpOwogICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJnZXRDb21wdXRlZFN0eWxlKGN1
ZU5vZGUpLnBhZGRpbmciLCAiMHB4Iik7CiAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENv
bXB1dGVkU3R5bGUoY3VlTm9kZSkud29yZFNwYWNpbmciLCAiMHB4Iik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9tZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLmh0bWwKaW5kZXggOWRhYWI3Yy4u
NjVlZmQ2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2staW4tYmFu
ZC1zdHlsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQt
c3R5bGUuaHRtbApAQCAtMTYsNyArMTYsNyBAQAogICAgICAgICAgICAgICAgICAgICBjdWVEaXNw
bGF5RWxlbWVudCA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnZGlzcGxheScsIDAp
OwogICAgICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImdldENvbXB1dGVkU3R5bGUoY3Vl
RGlzcGxheUVsZW1lbnQpLmNvbG9yIiwgInJnYigyNTUsIDI1NSwgMjU1KSIpOwogCi0gICAgICAg
ICAgICAgICAgICAgIGN1ZU5vZGUgPSB0ZXh0VHJhY2tEaXNwbGF5RWxlbWVudCh2aWRlbywgJ2Fs
bC1ub2RlcycpOworICAgICAgICAgICAgICAgICAgICBjdWVOb2RlID0gdGV4dFRyYWNrRGlzcGxh
eUVsZW1lbnQodmlkZW8sICdjdWUnKTsKICAgICAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJnZXRDb21wdXRlZFN0eWxlKGN1ZU5vZGUpLmJhY2tncm91bmRDb2xvciIsICJyZ2IoMCwgMCwg
MCkiKTsKIAogICAgICAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1ob3Jp
em9udGFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS90cmFj
ay90cmFjay1jdWUtcmVuZGVyaW5nLWhvcml6b250YWwtZXhwZWN0ZWQudHh0CmluZGV4IDMxZDUw
M2MuLmY3Mzc4YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS90
cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWhvcml6b250YWwtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLWhv
cml6b250YWwtZXhwZWN0ZWQudHh0CkBAIC0yMSw2NyArMjEsNjAgQEAgbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4MzMyCiBsYXllciBhdCAoOCw4KSBzaXplIDMyMHgyNDAKICAgUmVuZGVyVmlkZW8g
e1ZJREVPfSBhdCAoMCwwKSBzaXplIDMyMHgyNDAKIGxheWVyIGF0ICg4LDgpIHNpemUgMzIweDI0
MAotICBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3ggKHJlbGF0aXZlIHBvc2l0aW9uZWQpIHtE
SVZ9IGF0ICgwLDApIHNpemUgMzIweDI0MAorICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAo
MCwwKSBzaXplIDMyMHgyNDAKIGxheWVyIGF0ICg4LDgpIHNpemUgMzIweDIxNQotICBSZW5kZXJC
bG9jayAocmVsYXRpdmUgcG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAzMjB4MjE1IFtj
b2xvcj0jRkZGRkZGMDBdCi1sYXllciBhdCAoOCw4KSBzaXplIDMyMHgxNAotICBSZW5kZXJCbG9j
ayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMCkgc2l6ZSAzMjB4MTQgW2NvbG9yPSNGRkZGRkZd
CisgIFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXpl
IDMyMHgyMTUgW2NvbG9yPSNGRkZGRkZdCitsYXllciBhdCAoOCw4KSBzaXplIDMyMHgxNCBzY3Jv
bGxIZWlnaHQgMTYKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNp
emUgMzIweDE0CiAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjgweDE4IFti
Z2NvbG9yPSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjIsMCkgc2l6
ZSAyNzZ4MTQKICAgICAgICAgdGV4dCBydW4gYXQgKDIyLDApIHdpZHRoIDI3NjogIkN1ZSAxOiBz
aG91bGQgYmUgcG9zaXRpb25lZCBhdCB0aGUgdG9wIG9mIHRoZSB2aWRlby4iCi0gICAgUmVuZGVy
SW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgM3gxOCBbYmdjb2xvcj0jMDAwMDAwQ0NdCi1sYXll
ciBhdCAoOCwyNikgc2l6ZSAzMjB4MTQKLSAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9
IGF0ICgwLDE4KSBzaXplIDMyMHgxNCBbY29sb3I9I0ZGRkZGRl0KK2xheWVyIGF0ICg4LDI2KSBz
aXplIDMyMHgxNCBzY3JvbGxIZWlnaHQgMTYKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtE
SVZ9IGF0ICgwLDE4KSBzaXplIDMyMHgxNAogICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCww
KSBzaXplIDMwOHgxOCBbYmdjb2xvcj0jMDAwMDAwQ0NdCiAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDgsMCkgc2l6ZSAzMDR4MTQKICAgICAgICAgdGV4dCBydW4gYXQgKDgsMCkgd2lkdGgg
MzA0OiAiQ3VlIDI6IHNob3VsZCBiZSB0aGUgc2Vjb25kIGN1ZSBhbmQgbm90IG92ZXJsYXAgY3Vl
IDEuIgotICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDN4MTggW2JnY29sb3I9
IzAwMDAwMENDXQotbGF5ZXIgYXQgKDgsNDQpIHNpemUgMzIweDE0Ci0gIFJlbmRlckJsb2NrIChw
b3NpdGlvbmVkKSB7RElWfSBhdCAoMCwzNikgc2l6ZSAzMjB4MTQgW2NvbG9yPSNGRkZGRkZdCits
YXllciBhdCAoOCw0NCkgc2l6ZSAzMjB4MTQgc2Nyb2xsSGVpZ2h0IDE2CisgIFJlbmRlckJsb2Nr
IChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwzNikgc2l6ZSAzMjB4MTQKICAgICBSZW5kZXJJbmxp
bmUge0RJVn0gYXQgKDAsMCkgc2l6ZSAzMDB4MTggW2JnY29sb3I9IzAwMDAwMENDXQogICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgxMiwwKSBzaXplIDI5NngxNAogICAgICAgICB0ZXh0IHJ1
biBhdCAoMTIsMCkgd2lkdGggMjk2OiAiQ3VlIDM6IHNob3VsZCBiZWNvbWUgdGhlIHRoaXJkIGxp
bmUgZnJvbSB0b3AgdG8gYm90dG9tLiIKLSAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkg
c2l6ZSAyeDE4IFtiZ2NvbG9yPSMwMDAwMDBDQ10KLWxheWVyIGF0ICg4LDk4KSBzaXplIDMyMHgx
NAotICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAsOTApIHNpemUgMzIweDE0
IFtjb2xvcj0jRkZGRkZGXQorbGF5ZXIgYXQgKDgsOTgpIHNpemUgMzIweDE0IHNjcm9sbEhlaWdo
dCAxNgorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge0RJVn0gYXQgKDAsOTApIHNpemUgMzIw
eDE0CiAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjkyeDE4IFtiZ2NvbG9y
PSMwMDAwMDBDQ10KICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTYsMCkgc2l6ZSAyODh4
MTQKICAgICAgICAgdGV4dCBydW4gYXQgKDE2LDApIHdpZHRoIDI4ODogIkN1ZSA0OiBzaG91bGQg
YmUgZml4ZWQgcG9zaXRpb25lZCBhcm91bmQgdGhlIG1pZGRsZS4iCi0gICAgUmVuZGVySW5saW5l
IHtESVZ9IGF0ICgwLDApIHNpemUgM3gxOCBbYmdjb2xvcj0jMDAwMDAwQ0NdCi1sYXllciBhdCAo
OCwyMDUpIHNpemUgMzIweDE0Ci0gIFJlbmRlckJsb2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAo
MCwxOTcpIHNpemUgMzIweDE0IFtjb2xvcj0jRkZGRkZGXQorbGF5ZXIgYXQgKDgsMjA1KSBzaXpl
IDMyMHgxNCBzY3JvbGxIZWlnaHQgMTYKKyAgUmVuZGVyQmxvY2sgKHBvc2l0aW9uZWQpIHtESVZ9
IGF0ICgwLDE5Nykgc2l6ZSAzMjB4MTQKICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkg
c2l6ZSAyOTZ4MTggW2JnY29sb3I9IzAwMDAwMENDXQogICAgICAgUmVuZGVyVGV4dCB7I3RleHR9
IGF0ICgxNCwwKSBzaXplIDI5MngxNAogICAgICAgICB0ZXh0IHJ1biBhdCAoMTQsMCkgd2lkdGgg
MjkyOiAiQ3VlIDU6IHNob3VsZCBiZSBkaXNwbGF5ZWQgYXQgdGhlIGJvdHRvbSBvZiB0aGUgdmlk
ZW8uIgotICAgIFJlbmRlcklubGluZSB7RElWfSBhdCAoMCwwKSBzaXplIDN4MTggW2JnY29sb3I9
IzAwMDAwMENDXQotbGF5ZXIgYXQgKDgsMTg3KSBzaXplIDMyMHgxNAotICBSZW5kZXJCbG9jayAo
cG9zaXRpb25lZCkge0RJVn0gYXQgKDAsMTc5KSBzaXplIDMyMHgxNCBbY29sb3I9I0ZGRkZGRl0K
K2xheWVyIGF0ICg4LDE4Nykgc2l6ZSAzMjB4MTQgc2Nyb2xsSGVpZ2h0IDE2CisgIFJlbmRlckJs
b2NrIChwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwxNzkpIHNpemUgMzIweDE0CiAgICAgUmVuZGVy
SW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgMjg0eDE4IFtiZ2NvbG9yPSMwMDAwMDBDQ10KICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMjAsMCkgc2l6ZSAyODB4MTQKICAgICAgICAgdGV4
dCBydW4gYXQgKDIwLDApIHdpZHRoIDI4MDogIkN1ZSA2OiBzaG91bGQgYmUgb24gdG9wIG9mIGJv
dHRvbSBwb3NpdGlvbmVkIGN1ZSA1LiIKLSAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkg
c2l6ZSAzeDE4IFtiZ2NvbG9yPSMwMDAwMDBDQ10KIGxheWVyIGF0ICg4LDIyMykgc2l6ZSAzMjB4
MjUKLSAgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94IChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7
RElWfSBhdCAoMCwyMTUpIHNpemUgMzIweDI1CisgIFJlbmRlckZsZXhpYmxlQm94IHtESVZ9IGF0
ICgwLDIxNSkgc2l6ZSAzMjB4MjUKICAgICBSZW5kZXJCdXR0b24ge0lOUFVUfSBhdCAoNiwzKSBz
aXplIDE4eDE4Ci0gICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDMyLDQpIHNpemUgMTZ4MTYK
LSAgICBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gge0RJVn0gYXQgKDQ5LDUpIHNpemUgMjE2
eDE1Ci0gICAgICBSZW5kZXJTbGlkZXIge0lOUFVUfSBhdCAoNDUsMikgc2l6ZSAxMjZ4MTMKLSAg
ICAgICAgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94IHtESVZ9IGF0ICgwLDApIHNpemUgMTI2
eDEzCi0gICAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMikgc2l6ZSAxMTZ4OAotICAg
ICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgxMTYsMikgc2l6ZSAxMHg4Ci0gICAgUmVuZGVy
QnV0dG9uIHtJTlBVVH0gYXQgKDI5Nyw0KSBzaXplIDE2eDE2Ci0gICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDI2NSw2KSBzaXplIDI1eDEyCisgICAgUmVuZGVyQnV0dG9uIHtJTlBVVH0gYXQgKDMy
LDQpIHNpemUgMTZ4MTcKKyAgICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoNDksNSkgc2l6
ZSAyMTl4MTUKKyAgICAgIFJlbmRlclNsaWRlciB7SU5QVVR9IGF0ICg0NSwyKSBzaXplIDEyOXgx
MworICAgICAgICBSZW5kZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMCwwKSBzaXplIDEyOXgxMwor
ICAgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDIpIHNpemUgMTI5eDkKKyAgICAgICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICg0LDApIHNpemUgMTF4OAorICAgIFJlbmRlckJ1dHRv
biB7SU5QVVR9IGF0ICgzMDAsNCkgc2l6ZSAxNngxNworICAgIFJlbmRlckJ1dHRvbiB7SU5QVVR9
IGF0ICgzMzAsNCkgc2l6ZSAxNngxNworICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgyNjgsNikg
c2l6ZSAyNXgxMwogbGF5ZXIgYXQgKDU3LDIzMCkgc2l6ZSA0NXgxMQotICBSZW5kZXJEZXByZWNh
dGVkRmxleGlibGVCb3gge0RJVn0gYXQgKDAsMikgc2l6ZSA0NXgxMSBbY29sb3I9I0ZGRkZGRl0K
LSAgICBSZW5kZXJCbG9jayAoYW5vbnltb3VzKSBhdCAoOSwwKSBzaXplIDI2eDExCisgIFJlbmRl
ckZsZXhpYmxlQm94IHtESVZ9IGF0ICgwLDIpIHNpemUgNDV4MTEgW2NvbG9yPSNGRkZGRkZdCisg
ICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDksMCkgc2l6ZSAyN3gxMQogICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMjZ4MTEKICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMjY6ICIwMDowMCIKLWxheWVyIGF0ICgyMjgsMjMwKSBzaXplIDQ1eDExCi0g
IFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveCB7RElWfSBhdCAoMTcxLDIpIHNpemUgNDV4MTEg
W2NvbG9yPSNGRkZGRkZdCitsYXllciBhdCAoMjMxLDIzMCkgc2l6ZSA0NXgxMQorICBSZW5kZXJG
bGV4aWJsZUJveCB7RElWfSBhdCAoMTc0LDIpIHNpemUgNDV4MTEgW2NvbG9yPSNGRkZGRkZdCiAg
ICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDcsMCkgc2l6ZSAzMXgxMQogICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzF4MTEKICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMzE6ICItMDA6MDUiCi1sYXllciBhdCAoMTA2LDIzMikgc2l6ZSAxMHg4Ci0g
IFJlbmRlckJsb2NrIChyZWxhdGl2ZSBwb3NpdGlvbmVkKSB7RElWfSBhdCAoMCwwKSBzaXplIDEw
eDgKLWxheWVyIGF0ICgyNzUsMjI5KSBzaXplIDE0eDEyCitsYXllciBhdCAoMjc4LDIzMCkgc2l6
ZSAxNHgxMgogICBSZW5kZXJCdXR0b24gekk6IDEge0lOUFVUfSBhdCAoMiwwKSBzaXplIDE0eDEy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZGFhZGMzZC4uMmIyYmQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0
IEBACisyMDEzLTAyLTI2ICBEaW1hIEdvcmJpayAgPGRnb3JiaWtAYXBwbGUuY29tPgorCisgICAg
ICAgIE5vdCBhbGwgcHJvcGVydGllcyBhcHBseSB0byB0aGUgJzo6Y3VlJyBwc2V1ZG8tZWxlbWVu
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwNzA1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmFja2dy
b3VuZCBwcm9wZXJ0aWVzIGFyZSBub3QgaW5oZXJpdGVkIGFuZCB0aGV5IHdlcmUgbm90IGFwcGxp
ZWQgdG8gcmlnaHQgZWxlbWVudHMuCisgICAgICAgIE5vdyB3ZSBhcHBseSBhbGwgOjpjdWUgcHJv
cGVydGllcyB0byBXZWJWVFQgY3VlIGJhY2tncm91bmQgYm94LCB3aGljaCAtd2Via2l0LW1lZGlh
LXRleHQtdHJhY2stYWxsLW5vZGVzCisgICAgICAgIGNvbnRhaW5lciB3YXMgY29ycmVzcG9uZGlu
ZyB0by4gTm93IGl0IGhhcyAnY3VlJyBwc2V1ZG9JZCBpbnN0ZWFkIG9mICctd2Via2l0LW1lZGlh
LXRleHQtdHJhY2stYWxsLW5vZGVzJy4KKyAgICAgICAgUHJvcGVydHkgZmlsdGVyaW5nIGlzIHR1
cm5lZCBvZmYgZm9yIHVzZXIgYWdlbnQgcnVsZXMgc28gdGhhdCB3ZSBhcmUgc3RpbGwgYWJsZSB0
byBhcHBseSBmaWx0ZXJlZCBydWxlcworICAgICAgICB0byB0aGlzIGNvbnRhaW5lciBpbnRlcm5h
bGx5LiBtX2N1ZUNvbnRhaW5lciBpcyByZW1vdmVkIGJlY2F1c2UgaXQgaXMgbm8gbG9uZ2VyIG5l
ZWRlZC4KKyAgICAgICAgbV9hbGxEb2N1bWVudE5vZGVzIGNvbnRhaW5lciB3YXMgcmVuYW1lZCB0
byBtX2N1ZUJhY2tncm91bmRCb3guCisKKyAgICAgICAgRXhpc3RpbmcgdGVzdHMgbW9kaWZpZWQg
dG8gY292ZXIgdGhpcyBjYXNlLgorCisgICAgICAgICogY3NzL1J1bGVTZXQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bGVEYXRhOjpwcm9wZXJ0eVdoaXRlbGlzdFR5cGUpOiBkaXNhYmxlIGZpbHRl
cmluZyBmb3IgVUEgcnVsZXMuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVz
KTogcGFzcyB0aGUgVUEgc2NvcGUgdG8gcHJvcGVydHlXaGl0ZWxpc3RUeXBlKCkuCisgICAgICAg
ICogY3NzL21lZGlhQ29udHJvbHMuY3NzOiByZW5hbWUgLXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNr
LWFsbC1ub2RlcyB0byAnY3VlJworICAgICAgICAodmlkZW86OmN1ZSk6IAorICAgICAgICAqIGh0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmg6CisgICAgICAgIChNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KToKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHM6OmNy
ZWF0ZVRleHRUcmFja0Rpc3BsYXkpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bHNDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ2hyb21pdW06
OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHNHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0d0azo6Y3JlYXRl
VGV4dFRyYWNrRGlzcGxheSk6CisgICAgICAgICogaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjpUZXh0VHJhY2tDdWUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjp1cGRhdGVEaXNwbGF5VHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUZXh0VHJhY2tDdWU6OmdldERpc3BsYXlUcmVlKToKKyAgICAgICAgKiBodG1sL3Ry
YWNrL1RleHRUcmFja0N1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFRyYWNrQ3VlOjplbGVt
ZW50KToKKyAgICAgICAgKiBwYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1N0eWxlU2hl
ZXRPdmVycmlkZSk6CisKIDIwMTMtMDMtMDYgIE1pa2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4K
IAogICAgICAgICBVc2UgU2tUeXBlZmFjZSBBUEkgZGlyZWN0bHksIHJhdGhlciB0aGFuIChzb29u
IHRvIGJlIHByaXZhdGUpIFNrRm9udEhvc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCmluZGV4IDQxYmVhMjEu
LjI0NDJiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgc3BlY2lmaWNpdHkoKSBjb25zdCB7IHJldHVybiBtX3NwZWNpZmljaXR5OyB9
CiAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGlua01hdGNo
VHlwZTsgfQogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0
dXJuIG1faGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsgfQotICAgIFByb3BlcnR5V2hpdGVsaXN0
VHlwZSBwcm9wZXJ0eVdoaXRlbGlzdFR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVdoaXRlbGlzdFR5cGU+KG1fcHJvcGVydHlXaGl0ZWxpc3RUeXBlKTsgfQorICAgIFBy
b3BlcnR5V2hpdGVsaXN0VHlwZSBwcm9wZXJ0eVdoaXRlbGlzdFR5cGUoYm9vbCBpc01hdGNoaW5n
VUFSdWxlcyA9IGZhbHNlKSBjb25zdCB7IHJldHVybiBpc01hdGNoaW5nVUFSdWxlcyA/IFByb3Bl
cnR5V2hpdGVsaXN0Tm9uZSA6IHN0YXRpY19jYXN0PFByb3BlcnR5V2hpdGVsaXN0VHlwZT4obV9w
cm9wZXJ0eVdoaXRlbGlzdFR5cGUpOyB9CiAgICAgLy8gVHJ5IHRvIGJhbGFuY2UgYmV0d2VlbiBt
ZW1vcnkgdXNhZ2UgKHRoZXJlIGNhbiBiZSBsb3RzIG9mIFJ1bGVEYXRhIG9iamVjdHMpIGFuZCBn
b29kIGZpbHRlcmluZyBwZXJmb3JtYW5jZS4KICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4
aW11bUlkZW50aWZpZXJDb3VudCA9IDQ7CiAgICAgY29uc3QgdW5zaWduZWQqIGRlc2NlbmRhbnRT
ZWxlY3RvcklkZW50aWZpZXJIYXNoZXMoKSBjb25zdCB7IHJldHVybiBtX2Rlc2NlbmRhbnRTZWxl
Y3RvcklkZW50aWZpZXJIYXNoZXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApp
bmRleCBlZWFlMWI2Li4yOGJmYjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CkBAIC01MzcsNyArNTM3LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJN
YXRjaGVkUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCkKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgIGlmIChzdGF0ZS5zdHls
ZSgpICYmIG1hdGNoZWRSdWxlc1tpXS0+Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9y
KCkpCiAgICAgICAgICAgICBzdGF0ZS5zdHlsZSgpLT5zZXRVbmlxdWUoKTsKLSAgICAgICAgYWRk
TWF0Y2hlZFByb3BlcnRpZXMocmVzdWx0LCBtYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKS0+cHJvcGVy
dGllcygpLCBtYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKSwgbWF0Y2hlZFJ1bGVzW2ldLT5saW5rTWF0
Y2hUeXBlKCksIG1hdGNoZWRSdWxlc1tpXS0+cHJvcGVydHlXaGl0ZWxpc3RUeXBlKCkpOworICAg
ICAgICBhZGRNYXRjaGVkUHJvcGVydGllcyhyZXN1bHQsIG1hdGNoZWRSdWxlc1tpXS0+cnVsZSgp
LT5wcm9wZXJ0aWVzKCksIG1hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLCBtYXRjaGVkUnVsZXNbaV0t
PmxpbmtNYXRjaFR5cGUoKSwgbWF0Y2hlZFJ1bGVzW2ldLT5wcm9wZXJ0eVdoaXRlbGlzdFR5cGUo
TWF0Y2hpbmdVQVJ1bGVzU2NvcGU6OmlzTWF0Y2hpbmdVQVJ1bGVzKCkpKTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwppbmRleCAzNjJjN2E0Li41ODczZDVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCkBAIC0yMzcsNyArMjM3LDcgQEAgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtdGV4dC10cmFjay1jb250YWluZXIgewogICAgIC13ZWJraXQtZmxl
eDogMSAxOwogfQogCi12aWRlbzo6LXdlYmtpdC1tZWRpYS10ZXh0LXRyYWNrLWFsbC1ub2RlcyB7
Cit2aWRlbzo6Y3VlIHsKICAgICBkaXNwbGF5OiBpbmxpbmU7CiAKICAgICBiYWNrZ3JvdW5kLWNv
bG9yOiByZ2JhKDAsIDAsIDAsIDAuOCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNzc1YzA3Ny4uYWI1ZDBmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcApAQCAtMTE4MSwxMyArMTE4MSw2IEBAIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5l
ckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQoRG9jCiB7CiB9
CiAKLXZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlU3Vi
dHJlZXMoRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIG1fY3VlQ29udGFpbmVyID0gSFRNTEVs
ZW1lbnQ6OmNyZWF0ZShzcGFuVGFnLCBkb2N1bWVudCk7Ci0gICAgbV9jdWVDb250YWluZXItPnNl
dFBzZXVkbyhUZXh0VHJhY2tDdWU6OmN1ZVNoYWRvd1BzZXVkb0lkKCkpOwotICAgIGFwcGVuZENo
aWxkKG1fY3VlQ29udGFpbmVyLCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hOb3cpOwotfQot
CiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlh
Q29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQpCiB7CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+
IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxl
bWVudChkb2N1bWVudCkpOwpAQCAtMTIxNCw3ICsxMjA3LDcgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvbnMKIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBkYXRl
RGlzcGxheSgpCiB7CiAgICAgaWYgKCFtZWRpYUNvbnRyb2xsZXIoKS0+Y2xvc2VkQ2FwdGlvbnNW
aXNpYmxlKCkpIHsKLSAgICAgICAgbV9jdWVDb250YWluZXItPnJlbW92ZUNoaWxkcmVuKCk7Cisg
ICAgICAgIHJlbW92ZUNoaWxkcmVuKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEy
NzMsNyArMTI2Niw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dDo6dXBkYXRlRGlzcGxheSgpCiAgICAgICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IGRpc3Bs
YXlCb3ggPSBjdWUtPmdldERpc3BsYXlUcmVlKG1fdmlkZW9EaXNwbGF5U2l6ZS5zaXplKCkpOwog
ICAgICAgICBpZiAoZGlzcGxheUJveC0+aGFzQ2hpbGROb2RlcygpICYmICFjb250YWlucyhzdGF0
aWNfY2FzdDxOb2RlKj4oZGlzcGxheUJveC5nZXQoKSkpKQogICAgICAgICAgICAgLy8gTm90ZTog
dGhlIGRpc3BsYXkgdHJlZSBvZiBhIGN1ZSBpcyByZW1vdmVkIHdoZW4gdGhlIGFjdGl2ZSBmbGFn
IG9mIHRoZSBjdWUgaXMgdW5zZXQuCi0gICAgICAgICAgICBtX2N1ZUNvbnRhaW5lci0+YXBwZW5k
Q2hpbGQoZGlzcGxheUJveCwgQVNTRVJUX05PX0VYQ0VQVElPTiwgQXR0YWNoTm93KTsKKyAgICAg
ICAgICAgIGFwcGVuZENoaWxkKGRpc3BsYXlCb3gsIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFj
aE5vdyk7CiAgICAgfQogCiAgICAgLy8gMTEuIFJldHVybiBvdXRwdXQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAppbmRleCA1YWNmMzhm
Li4wMDUxZTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbEVsZW1lbnRzLmgKQEAgLTQzOSw3ICs0MzksNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVw
ZGF0ZURpc3BsYXkoKTsKICAgICB2b2lkIHVwZGF0ZVNpemVzKGJvb2wgZm9yY2VVcGRhdGUgPSBm
YWxzZSk7Ci0gICAgdm9pZCBjcmVhdGVTdWJ0cmVlcyhEb2N1bWVudCopOwogICAgIHN0YXRpYyBj
b25zdCBBdG9taWNTdHJpbmcmIHRleHRUcmFja0NvbnRhaW5lckVsZW1lbnRTaGFkb3dQc2V1ZG9J
ZCgpOwogCiBwcml2YXRlOgpAQCAtNDU0LDcgKzQ1Myw2IEBAIHByaXZhdGU6CiAKICAgICBJbnRS
ZWN0IG1fdmlkZW9EaXNwbGF5U2l6ZTsKICAgICBmbG9hdCBtX2ZvbnRTaXplOwotICAgIFJlZlB0
cjxIVE1MRWxlbWVudD4gbV9jdWVDb250YWluZXI7CiB9OwogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKaW5kZXggY2VjOWJjNS4uNzg3ZjUz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5jcHAKQEAg
LTM4MSw5ICszODEsNyBAQCB2b2lkIE1lZGlhQ29udHJvbHM6OmNyZWF0ZVRleHRUcmFja0Rpc3Bs
YXkoKQogICAgICAgICBtX3RleHREaXNwbGF5Q29udGFpbmVyLT5zZXRNZWRpYUNvbnRyb2xsZXIo
bV9tZWRpYUNvbnRyb2xsZXIpOwogCiAgICAgLy8gSW5zZXJ0IGl0IGJlZm9yZSB0aGUgZmlyc3Qg
Y29udHJvbGxlciBlbGVtZW50IHNvIGl0IGFsd2F5cyBkaXNwbGF5cyBiZWhpbmQgdGhlIGNvbnRy
b2xzLgotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lciwgbV9wYW5lbCwgSUdO
T1JFX0VYQ0VQVElPTiwgQXR0YWNoTGF6aWx5KTsKLSAgICB0ZXh0RGlzcGxheUNvbnRhaW5lci0+
Y3JlYXRlU3VidHJlZXMoZG9jdW1lbnQoKSk7Ci0gICAgdGV4dERpc3BsYXlDb250YWluZXIucmVs
ZWFzZSgpOworICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCks
IG1fcGFuZWwsIElHTk9SRV9FWENFUFRJT04sIEF0dGFjaExhemlseSk7CiB9CiAKIHZvaWQgTWVk
aWFDb250cm9sczo6c2hvd1RleHRUcmFja0Rpc3BsYXkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKaW5kZXggYmRhNTU0OS4u
ODU4NTdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sc0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xzQ2hyb21pdW0uY3BwCkBAIC0yMTUsOSArMjE1LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xz
Q2hyb21pdW06OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkoKQogCiAgICAgLy8gSW5zZXJ0IGl0IGJl
Zm9yZSB0aGUgZmlyc3QgY29udHJvbGxlciBlbGVtZW50IHNvIGl0IGFsd2F5cyBkaXNwbGF5cyBi
ZWhpbmQgdGhlIGNvbnRyb2xzLgogICAgIC8vIEluIHRoZSBDaHJvbWl1bSBjYXNlLCB0aGF0J3Mg
dGhlIGVuY2xvc3VyZSBlbGVtZW50LgotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRh
aW5lciwgbV9lbmNsb3N1cmUsIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaExhemlseSk7Ci0g
ICAgdGV4dERpc3BsYXlDb250YWluZXItPmNyZWF0ZVN1YnRyZWVzKGRvY3VtZW50KCkpOwotICAg
IHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKTsKKyAgICBpbnNlcnRCZWZvcmUodGV4dERp
c3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBtX2VuY2xvc3VyZSwgQVNTRVJUX05PX0VYQ0VQVElP
TiwgQXR0YWNoTGF6aWx5KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbHNHdGsuY3BwCmluZGV4IGU4OTViYzYuLjdhOGI5MjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHNHdGsuY3BwCkBAIC0y
MjMsOSArMjIzLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xzR3RrOjpjcmVhdGVUZXh0VHJhY2tEaXNw
bGF5KCkKICAgICAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVy
KG1fbWVkaWFDb250cm9sbGVyKTsKIAogICAgIC8vIEluc2VydCBpdCBiZWZvcmUgdGhlIGZpcnN0
IGNvbnRyb2xsZXIgZWxlbWVudCBzbyBpdCBhbHdheXMgZGlzcGxheXMgYmVoaW5kIHRoZSBjb250
cm9scy4KLSAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIsIG1fZW5jbG9zdXJl
LCBBU1NFUlRfTk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOwotICAgIHRleHREaXNwbGF5Q29u
dGFpbmVyLT5jcmVhdGVTdWJ0cmVlcyhkb2N1bWVudCgpKTsKLSAgICB0ZXh0RGlzcGxheUNvbnRh
aW5lci5yZWxlYXNlKCk7CisgICAgaW5zZXJ0QmVmb3JlKHRleHREaXNwbGF5Q29udGFpbmVyLnJl
bGVhc2UoKSwgbV9lbmNsb3N1cmUsIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFjaExhemlseSk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0
VHJhY2tDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuY3Bw
CmluZGV4IDNiMmM2OTkuLmIyMTk0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
dHJhY2svVGV4dFRyYWNrQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1Rl
eHRUcmFja0N1ZS5jcHAKQEAgLTE4NSwxMiArMTg1LDYgQEAgUmVuZGVyT2JqZWN0KiBUZXh0VHJh
Y2tDdWVCb3g6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUq
KQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWNvbnN0IEF0b21pY1N0cmlu
ZyYgVGV4dFRyYWNrQ3VlOjphbGxOb2Rlc1NoYWRvd1BzZXVkb0lkKCkKLXsKLSAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc3VidGl0bGVzLCAoIi13ZWJraXQtbWVk
aWEtdGV4dC10cmFjay1hbGwtbm9kZXMiLCBBdG9taWNTdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7Ci0gICAgcmV0dXJuIHN1YnRpdGxlczsKLX0KLQogVGV4dFRyYWNrQ3VlOjpUZXh0VHJh
Y2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91YmxlIHN0YXJ0LCBkb3Vi
bGUgZW5kLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpCiAgICAgOiBtX3N0YXJ0VGltZShzdGFydCkK
ICAgICAsIG1fZW5kVGltZShlbmQpCkBAIC0yMDgsNyArMjAyLDcgQEAgVGV4dFRyYWNrQ3VlOjpU
ZXh0VHJhY2tDdWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgZG91YmxlIHN0YXJ0
LCBkb3VibGUKICAgICAsIG1faXNBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3BhdXNlT25FeGl0KGZh
bHNlKQogICAgICwgbV9zbmFwVG9MaW5lcyh0cnVlKQotICAgICwgbV9hbGxEb2N1bWVudE5vZGVz
KEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSkp
CisgICAgLCBtX2N1ZUJhY2tncm91bmRCb3goSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShzdGF0aWNf
Y2FzdDxEb2N1bWVudCo+KGNvbnRleHQpKSkKICAgICAsIG1fZGlzcGxheVRyZWVTaG91bGRDaGFu
Z2UodHJ1ZSkKIHsKICAgICBBU1NFUlQobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0RvY3Vt
ZW50KCkpOwpAQCAtNzE5LDEyICs3MTMsMTIgQEAgdm9pZCBUZXh0VHJhY2tDdWU6OnVwZGF0ZURp
c3BsYXlUcmVlKGZsb2F0IG1vdmllVGltZSkKICAgICAgIHJldHVybjsKIAogICAgIC8vIENsZWFy
IHRoZSBjb250ZW50cyBvZiB0aGUgc2V0LgotICAgIG1fYWxsRG9jdW1lbnROb2Rlcy0+cmVtb3Zl
Q2hpbGRyZW4oKTsKKyAgICBtX2N1ZUJhY2tncm91bmRCb3gtPnJlbW92ZUNoaWxkcmVuKCk7CiAK
ICAgICAvLyBVcGRhdGUgdGhlIHR3byBzZXRzIGNvbnRhaW5pbmcgcGFzdCBhbmQgZnV0dXJlIFdl
YlZUVCBvYmplY3RzLgogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiByZWZlcmVuY2VUcmVl
ID0gY3JlYXRlQ3VlUmVuZGVyaW5nVHJlZSgpOwogICAgIG1hcmtGdXR1cmVBbmRQYXN0Tm9kZXMo
cmVmZXJlbmNlVHJlZS5nZXQoKSwgc3RhcnRUaW1lKCksIG1vdmllVGltZSk7Ci0gICAgbV9hbGxE
b2N1bWVudE5vZGVzLT5hcHBlbmRDaGlsZChyZWZlcmVuY2VUcmVlKTsKKyAgICBtX2N1ZUJhY2tn
cm91bmRCb3gtPmFwcGVuZENoaWxkKHJlZmVyZW5jZVRyZWUpOwogfQogCiBQYXNzUmVmUHRyPFRl
eHRUcmFja0N1ZUJveD4gVGV4dFRyYWNrQ3VlOjpnZXREaXNwbGF5VHJlZShjb25zdCBJbnRTaXpl
JiB2aWRlb1NpemUpCkBAIC03NDcsOSArNzQxLDkgQEAgUGFzc1JlZlB0cjxUZXh0VHJhY2tDdWVC
b3g+IFRleHRUcmFja0N1ZTo6Z2V0RGlzcGxheVRyZWUoY29uc3QgSW50U2l6ZSYgdmlkZW9TaXoK
ICAgICAvLyAnZGlzcGxheScgcHJvcGVydHkgaGFzIHRoZSB2YWx1ZSAnaW5saW5lJy4gVGhpcyBp
cyB0aGUgV2ViVlRUIGN1ZQogICAgIC8vIGJhY2tncm91bmQgYm94LgogCi0gICAgLy8gTm90ZTog
VGhpcyBpcyBjb250YWluZWQgYnkgZGVmYXVsdCBpbiBtX2FsbERvY3VtZW50Tm9kZXMuCi0gICAg
bV9hbGxEb2N1bWVudE5vZGVzLT5zZXRQc2V1ZG8oYWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsK
LSAgICBkaXNwbGF5VHJlZS0+YXBwZW5kQ2hpbGQobV9hbGxEb2N1bWVudE5vZGVzLCBBU1NFUlRf
Tk9fRVhDRVBUSU9OLCBBdHRhY2hMYXppbHkpOworICAgIC8vIE5vdGU6IFRoaXMgaXMgY29udGFp
bmVkIGJ5IGRlZmF1bHQgaW4gbV9jdWVCYWNrZ3JvdW5kQm94LgorICAgIG1fY3VlQmFja2dyb3Vu
ZEJveC0+c2V0UHNldWRvKGN1ZVNoYWRvd1BzZXVkb0lkKCkpOworICAgIGRpc3BsYXlUcmVlLT5h
cHBlbmRDaGlsZChtX2N1ZUJhY2tncm91bmRCb3gsIEFTU0VSVF9OT19FWENFUFRJT04sIEF0dGFj
aExhemlseSk7CiAKICAgICAvLyBGSVhNRShCVUcgNzk5MTYpOiBSdW5zIG9mIGNoaWxkcmVuIG9m
IFdlYlZUVCBSdWJ5IE9iamVjdHMgdGhhdCBhcmUgbm90CiAgICAgLy8gV2ViVlRUIFJ1YnkgVGV4
dCBPYmplY3RzIG11c3QgYmUgd3JhcHBlZCBpbiBhbm9ueW1vdXMgYm94ZXMgd2hvc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0N1ZS5oCmluZGV4IDViNDg3ZmQuLjg5ZGQyNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrQ3VlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tDdWUuaApAQCAtODcsOCArODcs
NiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5UZXh0VHJhY2tDdWUoKTsKIAotICAgIHN0YXRp
YyBjb25zdCBBdG9taWNTdHJpbmcmIGFsbE5vZGVzU2hhZG93UHNldWRvSWQoKTsKLQogICAgIFRl
eHRUcmFjayogdHJhY2soKSBjb25zdDsKICAgICB2b2lkIHNldFRyYWNrKFRleHRUcmFjayopOwog
CkBAIC0xNDEsNyArMTM5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SXNBY3RpdmUoYm9vbCk7
CiAKICAgICBQYXNzUmVmUHRyPFRleHRUcmFja0N1ZUJveD4gZ2V0RGlzcGxheVRyZWUoY29uc3Qg
SW50U2l6ZSYgdmlkZW9TaXplKTsKLSAgICBQYXNzUmVmUHRyPEhUTUxEaXZFbGVtZW50PiBlbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9hbGxEb2N1bWVudE5vZGVzOyB9CisgICAgUGFzc1JlZlB0
cjxIVE1MRGl2RWxlbWVudD4gZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VlQmFja2dyb3Vu
ZEJveDsgfQogCiAgICAgdm9pZCB1cGRhdGVEaXNwbGF5VHJlZShmbG9hdCk7CiAgICAgdm9pZCBy
ZW1vdmVEaXNwbGF5VHJlZSgpOwpAQCAtMjQwLDcgKzIzOCw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3BhdXNlT25FeGl0OwogICAgIGJvb2wgbV9zbmFwVG9MaW5lczsKIAotICAgIFJlZlB0cjxI
VE1MRGl2RWxlbWVudD4gbV9hbGxEb2N1bWVudE5vZGVzOworICAgIFJlZlB0cjxIVE1MRGl2RWxl
bWVudD4gbV9jdWVCYWNrZ3JvdW5kQm94OwogCiAgICAgYm9vbCBtX2Rpc3BsYXlUcmVlU2hvdWxk
Q2hhbmdlOwogICAgIFJlZlB0cjxUZXh0VHJhY2tDdWVCb3g+IG1fZGlzcGxheVRyZWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0KaW5kZXgg
MzdkOWEzOS4uMGJhNzA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9u
VXNlclByZWZlcmVuY2VzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlc01hYy5tbQpAQCAtMzY5LDcgKzM2OSw3IEBAIFN0cmluZyBDYXB0aW9uVXNl
clByZWZlcmVuY2VzTWFjOjpjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSgpIGNvbnN0CiAgICAg
U3RyaW5nIGJhY2tncm91bmQgPSBjYXB0aW9uc0JhY2tncm91bmRDU1MoKTsKICAgICBpZiAoIWJh
Y2tncm91bmQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0
LmFwcGVuZCgiIHZpZGVvOjoiKTsKLSAgICAgICAgY2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQu
YXBwZW5kKFRleHRUcmFja0N1ZTo6YWxsTm9kZXNTaGFkb3dQc2V1ZG9JZCgpKTsKKyAgICAgICAg
Y2FwdGlvbnNPdmVycmlkZVN0eWxlU2hlZXQuYXBwZW5kKFRleHRUcmFja0N1ZTo6Y3VlU2hhZG93
UHNldWRvSWQoKSk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgn
eycpOwogICAgICAgICBjYXB0aW9uc092ZXJyaWRlU3R5bGVTaGVldC5hcHBlbmQoYmFja2dyb3Vu
ZCk7CiAgICAgICAgIGNhcHRpb25zT3ZlcnJpZGVTdHlsZVNoZWV0LmFwcGVuZCgnfScpOwo=
</data>
<flag name="review"
          id="212911"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
    <flag name="commit-queue"
          id="212912"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>