<?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>113259</bug_id>
          
          <creation_ts>2013-03-25 18:20:23 -0700</creation_ts>
          <short_desc>[css3-text] Rendering -webkit-each-line value for text-indent from css3-text</short_desc>
          <delta_ts>2013-04-02 23:12:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>112755</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Jaehun Lim">ljaehun.lim</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>leviw</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>863245</commentid>
    <comment_count>0</comment_count>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-25 18:20:23 -0700</bug_when>
    <thetext>This is the rendering part for &quot;-webkit-each-line&quot; value from CSS3 text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863273</commentid>
    <comment_count>1</comment_count>
      <attachid>194979</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-25 19:16:00 -0700</bug_when>
    <thetext>Created attachment 194979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863297</commentid>
    <comment_count>2</comment_count>
      <attachid>194979</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-25 19:51:03 -0700</bug_when>
    <thetext>Comment on attachment 194979
Patch

Attachment 194979 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17328163</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>863306</commentid>
    <comment_count>3</comment_count>
      <attachid>194989</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-25 20:10:27 -0700</bug_when>
    <thetext>Created attachment 194989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>864866</commentid>
    <comment_count>4</comment_count>
      <attachid>194989</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-03-27 14:36:05 -0700</bug_when>
    <thetext>Comment on attachment 194989
Patch

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

The change looks OK to me but some layout guru (looking at you levi!) should definitely do a sanity check.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:106
&gt; +        , m_needsIndent(needsIndent)

I am really not a huge fan of the name |needsIndent| (and again one more boolean arguments). I think shouldIndentText (or equivalent) would be better. Also I would advise to use an enum as we are touching this code anyway

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:951
&gt; +static bool requiresIndent(bool firstLine, bool forcedLineBreak, RenderStyle* style)

Per our coding style, boolean should start with a verb (the style mandates the use of &quot;is&quot; or &quot;did&quot; but really starting with a verb is the intent -&gt; http://www.webkit.org/coding/coding-style.html)

While we are touching this code, I would prefer if we could fix some of that or at least not add more violations.

&gt; LayoutTests/platform/win/TestExpectations:2492
&gt; +fast/css3-text/css3-text-indent/each-line.html

Why only windows and not mac / chromium / qt / gtk? Can we just skip the whole css3-text-indent directory?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865020</commentid>
    <comment_count>5</comment_count>
      <attachid>194989</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2013-03-27 17:11:48 -0700</bug_when>
    <thetext>Comment on attachment 194989
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:106
&gt;&gt; +        , m_needsIndent(needsIndent)
&gt; 
&gt; I am really not a huge fan of the name |needsIndent| (and again one more boolean arguments). I think shouldIndentText (or equivalent) would be better. Also I would advise to use an enum as we are touching this code anyway

Yessir!

&gt;&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:951
&gt;&gt; +static bool requiresIndent(bool firstLine, bool forcedLineBreak, RenderStyle* style)
&gt; 
&gt; Per our coding style, boolean should start with a verb (the style mandates the use of &quot;is&quot; or &quot;did&quot; but really starting with a verb is the intent -&gt; http://www.webkit.org/coding/coding-style.html)
&gt; 
&gt; While we are touching this code, I would prefer if we could fix some of that or at least not add more violations.

+1

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:983
&gt; +    bool forcedLineBreak = lineBox-&gt;prevRootBox() &amp;&amp; lineBox-&gt;prevRootBox()-&gt;endsWithBreak();

We usually call this a hardLineBreak (see BidiResolver.h for instance).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865142</commentid>
    <comment_count>6</comment_count>
      <attachid>194989</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-27 20:40:23 -0700</bug_when>
    <thetext>Comment on attachment 194989
Patch

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

Thank you for your review, Julien Chaffraix and Levi Weintraub.

&gt;&gt;&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:106
&gt;&gt;&gt; +        , m_needsIndent(needsIndent)
&gt;&gt; 
&gt;&gt; I am really not a huge fan of the name |needsIndent| (and again one more boolean arguments). I think shouldIndentText (or equivalent) would be better. Also I would advise to use an enum as we are touching this code anyway
&gt; 
&gt; Yessir!

Add enum IndentTextOrNot and use bool shouldIndentText.

&gt;&gt;&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:951
&gt;&gt;&gt; +static bool requiresIndent(bool firstLine, bool forcedLineBreak, RenderStyle* style)
&gt;&gt; 
&gt;&gt; Per our coding style, boolean should start with a verb (the style mandates the use of &quot;is&quot; or &quot;did&quot; but really starting with a verb is the intent -&gt; http://www.webkit.org/coding/coding-style.html)
&gt;&gt; 
&gt;&gt; While we are touching this code, I would prefer if we could fix some of that or at least not add more violations.
&gt; 
&gt; +1

Use m_shouldIndentText and shouldIndentText().

&gt;&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:983
&gt;&gt; +    bool forcedLineBreak = lineBox-&gt;prevRootBox() &amp;&amp; lineBox-&gt;prevRootBox()-&gt;endsWithBreak();
&gt; 
&gt; We usually call this a hardLineBreak (see BidiResolver.h for instance).

Use isHardLineBreak.

&gt;&gt; LayoutTests/platform/win/TestExpectations:2492
&gt;&gt; +fast/css3-text/css3-text-indent/each-line.html
&gt; 
&gt; Why only windows and not mac / chromium / qt / gtk? Can we just skip the whole css3-text-indent directory?

Yes, other ports except windows skip the whole directory, fast/css3-text/css3-text-indent/.
I change this line to skip &apos;css3-text-indent&apos; directory as other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>865143</commentid>
    <comment_count>7</comment_count>
      <attachid>195475</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-03-27 20:43:17 -0700</bug_when>
    <thetext>Created attachment 195475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868286</commentid>
    <comment_count>8</comment_count>
      <attachid>195475</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2013-04-02 15:27:21 -0700</bug_when>
    <thetext>Comment on attachment 195475
Patch

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

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:987
&gt; +    bool isHardLineBreak = lineBox-&gt;prevRootBox() &amp;&amp; lineBox-&gt;prevRootBox()-&gt;endsWithBreak();

This isn&apos;t exactly right either... this line box isn&apos;t a hard line break, it&apos;s *after* a hard line break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868357</commentid>
    <comment_count>9</comment_count>
      <attachid>195475</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-04-02 17:17:58 -0700</bug_when>
    <thetext>Comment on attachment 195475
Patch

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

Thanks.

&gt;&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:987
&gt;&gt; +    bool isHardLineBreak = lineBox-&gt;prevRootBox() &amp;&amp; lineBox-&gt;prevRootBox()-&gt;endsWithBreak();
&gt; 
&gt; This isn&apos;t exactly right either... this line box isn&apos;t a hard line break, it&apos;s *after* a hard line break.

Fixed. Use isAfterHardLineBreak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868359</commentid>
    <comment_count>10</comment_count>
      <attachid>196258</attachid>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-04-02 17:21:20 -0700</bug_when>
    <thetext>Created attachment 196258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868370</commentid>
    <comment_count>11</comment_count>
      <attachid>196258</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2013-04-02 17:44:53 -0700</bug_when>
    <thetext>Comment on attachment 196258
Patch

Okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868371</commentid>
    <comment_count>12</comment_count>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-04-02 17:46:43 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 196258 [details])
&gt; Okay.

Thanks, Levi Weintraub.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868377</commentid>
    <comment_count>13</comment_count>
      <attachid>196258</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 18:30:48 -0700</bug_when>
    <thetext>Comment on attachment 196258
Patch

Clearing flags on attachment: 196258

Committed r147513: &lt;http://trac.webkit.org/changeset/147513&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868378</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 18:30:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868415</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-04-02 21:11:29 -0700</bug_when>
    <thetext>The new test is failing everywhere except Chromium:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;tests=fast%2Fcss3-text%2Fcss3-text-indent%2Ftext-indent-each-line.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868451</commentid>
    <comment_count>16</comment_count>
    <who name="Jaehun Lim">ljaehun.lim</who>
    <bug_when>2013-04-02 23:12:09 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; The new test is failing everywhere except Chromium:
&gt; http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;tests=fast%2Fcss3-text%2Fcss3-text-indent%2Ftext-indent-each-line.html

I filed a bug. https://bugs.webkit.org/show_bug.cgi?id=113848</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194979</attachid>
            <date>2013-03-25 19:16:00 -0700</date>
            <delta_ts>2013-03-25 20:10:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113259-20130326111142.patch</filename>
            <type>text/plain</type>
            <size>23752</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4NzJkM2MwZDUzYTM3
MWEyMmE5NjM5NWRmMTQ0NjkzZGE2MmQ3Zi4uMGZjZDhkMGY3NGIwODJkNGMzYzBkMDg1MjQzYWZl
YzdiYWVhMWM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAzLTI1ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UmVuZGVyaW5nIC13ZWJraXQtZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudCBmcm9tIGNz
czMtdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEzMjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q1NTMyBURVhUIGludHJvZHVjZXMgbmV3IHZhbHVlLCAiZWFjaC1saW5lIiBmb3IgdGV4dC1pbmRl
bnQuCisgICAgICAgIEluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJs
b2NrIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZQorICAgICAgICBhZnRlciBhIGZvcmNl
ZCBsaW5lIGJyZWFrLCBidXQgZG9lcyBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFw
IGJyZWFrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgdGhlIHJlbmRlcmluZyBwYXJ0IHRvIHN1
cHBvcnQgZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudC4KKyAgICAgICAgSXQncyBwcmVm
aXhlZCBhbmQgZ3VhcmRlZCBieSBDU1MzX1RFWFQgZmxhZy4KKworICAgICAgICBUZXN0OiBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2VhY2gtbGluZS5odG1sCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjph
dmFpbGFibGVMb2dpY2FsV2lkdGhGb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OnN0YXJ0T2Zmc2V0Rm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6ZW5kT2Zmc2V0Rm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
cGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpwaXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKToKKyAg
ICAgICAgICAgIFJlbmFtZSBhIHBhcmFtZXRlciBmcm9tIGZpcnN0TGluZSB0byBuZWVkc0luZGVu
dAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGluZVdpZHRoOjpMaW5lV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6TGlu
ZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lV2lk
dGg6OnNocmlua0F2YWlsYWJsZVdpZHRoRm9yTmV3RmxvYXRJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKToKKyAgICAgICAgICAgIFVzZSBtX25l
ZWRzSW5kZW50IGluc3RlYWQgb2YgbV9pc0ZpcnN0TGluZQorICAgICAgICAoV2ViQ29yZTo6cmVx
dWlyZXNJbmRlbnQpOiBEZWNpZGUgd2hldGhlciB0ZXh0IGluZGVudGF0aW9uIGlzIHJlcXVpcmVk
CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVMb2dpY2FsSW5saW5lUG9zaXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25z
Rm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5l
eHRTZWdtZW50QnJlYWspOgorCiAyMDEzLTAzLTI1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBTdXBwb3J0IEdyYXBoaWNzTGF5ZXI6
OnNldENvbnRlbnRzVG9Tb2xpZENvbG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCmluZGV4IDA2ZWYzODMwNDMwNTExZjY4NWRlMWNjMTRlM2NkNmI1YjEwY2M3YzUuLmVkZDZi
MjMyMjdlNDQzOGRjN2ZjYTA1OTU2MjI1MmFlODIyNWM5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCkBAIC0xNjUsNjYgKzE2NSw2NiBAQCBwdWJsaWM6CiAKICAgICAv
LyBWZXJzaW9ucyB0aGF0IGNhbiBjb21wdXRlIGxpbmUgb2Zmc2V0cyB3aXRoIHRoZSByZWdpb24g
YW5kIHBhZ2Ugb2Zmc2V0IHBhc3NlZCBpbi4gVXNlZCBmb3Igc3BlZWQgdG8gYXZvaWQgaGF2aW5n
IHRvCiAgICAgLy8gY29tcHV0ZSB0aGUgcmVnaW9uIGFsbCBvdmVyIGFnYWluIHdoZW4geW91IGFs
cmVhZHkga25vdyBpdC4KLSAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckxp
bmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExpbmUsIFJlbmRlclJlZ2lvbiogcmVn
aW9uLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIExheW91dFVu
aXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CisgICAgTGF5b3V0VW5pdCBhdmFpbGFibGVMb2dp
Y2FsV2lkdGhGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJbmRlbnQsIFJl
bmRlclJlZ2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJz
dFBhZ2UsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CiAgICAgewotICAgICAg
ICByZXR1cm4gbWF4PExheW91dFVuaXQ+KDAsIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9z
aXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdl
LCBsb2dpY2FsSGVpZ2h0KQotICAgICAgICAgICAgLSBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUo
cG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQ
YWdlLCBsb2dpY2FsSGVpZ2h0KSk7CisgICAgICAgIHJldHVybiBtYXg8TGF5b3V0VW5pdD4oMCwg
bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbmVlZHNJbmRlbnQsIHJlZ2lvbiwg
b2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9naWNhbEhlaWdodCkKKyAgICAgICAg
ICAgIC0gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBuZWVkc0luZGVudCwgcmVn
aW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KSk7CiAg
ICAgfQotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0
IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVu
aXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5l
KExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJbmRlbnQsIFJlbmRlclJlZ2lvbiogcmVn
aW9uLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIExheW91dFVu
aXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAogICAgIHsKLSAgICAgICAgcmV0dXJuIGxvZ2lj
YWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIGxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRl
bnQocmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKSwgZmlyc3RMaW5lLCAw
LCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIGxvZ2ljYWxSaWdodE9mZnNldEZvckxp
bmUocG9zaXRpb24sIGxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQocmVnaW9uLCBvZmZzZXRG
cm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKSwgbmVlZHNJbmRlbnQsIDAsIGxvZ2ljYWxIZWlnaHQp
OwogICAgIH0KLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShMYXlvdXRV
bml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91
dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2Fs
SGVpZ2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldEZvckxp
bmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBuZWVkc0luZGVudCwgUmVuZGVyUmVnaW9uKiBy
ZWdpb24sIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0
VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAgICAgewotICAgICAgICByZXR1cm4gbG9n
aWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRl
bnQocmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKSwgZmlyc3RMaW5lLCAw
LCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGlu
ZShwb3NpdGlvbiwgbG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KHJlZ2lvbiwgb2Zmc2V0RnJv
bUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSksIG5lZWRzSW5kZW50LCAwLCBsb2dpY2FsSGVpZ2h0KTsK
ICAgICB9Ci0gICAgTGF5b3V0VW5pdCBzdGFydE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3Np
dGlvbiwgYm9vbCBmaXJzdExpbmUsIFJlbmRlclJlZ2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IG9m
ZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9
IDApIGNvbnN0CisgICAgTGF5b3V0VW5pdCBzdGFydE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBw
b3NpdGlvbiwgYm9vbCBuZWVkc0luZGVudCwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVu
aXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0ID0gMCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0
TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVp
Z2h0KQotICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNldEZv
ckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9m
Rmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPmlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oKSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwg
bmVlZHNJbmRlbnQsIHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9n
aWNhbEhlaWdodCkKKyAgICAgICAgICAgIDogbG9naWNhbFdpZHRoKCkgLSBsb2dpY2FsUmlnaHRP
ZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBuZWVkc0luZGVudCwgcmVnaW9uLCBvZmZzZXRGcm9tTG9n
aWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5p
dCBlbmRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBS
ZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0VW5pdCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmly
c3RQYWdlLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAorICAgIExheW91dFVu
aXQgZW5kT2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIG5lZWRzSW5kZW50
LCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0VW5pdCBvZmZzZXRGcm9tTG9naWNhbFRvcE9m
Rmlyc3RQYWdlLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuICFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dpY2Fs
TGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9t
TG9naWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KQotICAgICAgICAgICAgOiBsb2dp
Y2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGlu
ZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0
KTsKKyAgICAgICAgcmV0dXJuICFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBs
b2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIG5lZWRzSW5kZW50LCByZWdpb24sIG9m
ZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIGxvZ2ljYWxIZWlnaHQpCisgICAgICAgICAg
ICA6IGxvZ2ljYWxXaWR0aCgpIC0gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwg
bmVlZHNJbmRlbnQsIHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9n
aWNhbEhlaWdodCk7CiAgICAgfQogCi0gICAgTGF5b3V0VW5pdCBhdmFpbGFibGVMb2dpY2FsV2lk
dGhGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAorICAgIExheW91dFVuaXQgYXZhaWxhYmxlTG9naWNh
bFdpZHRoRm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIG5lZWRzSW5kZW50LCBMYXlv
dXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGF2
YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uQXRC
bG9ja09mZnNldChwb3NpdGlvbiksIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSwg
bG9naWNhbEhlaWdodCk7CisgICAgICAgIHJldHVybiBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JM
aW5lKHBvc2l0aW9uLCBuZWVkc0luZGVudCwgcmVnaW9uQXRCbG9ja09mZnNldChwb3NpdGlvbiks
IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSwgbG9naWNhbEhlaWdodCk7CiAgICAg
fQotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBv
c2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29u
c3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQg
cG9zaXRpb24sIGJvb2wgbmVlZHNJbmRlbnQsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDAp
IGNvbnN0IAogICAgIHsKLSAgICAgICAgcmV0dXJuIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUo
cG9zaXRpb24sIGxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQocG9zaXRpb24pLCBmaXJzdExp
bmUsIDAsIGxvZ2ljYWxIZWlnaHQpOworICAgICAgICByZXR1cm4gbG9naWNhbFJpZ2h0T2Zmc2V0
Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudChwb3NpdGlvbiks
IG5lZWRzSW5kZW50LCAwLCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBs
b2dpY2FsTGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExp
bmUsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAorICAgIExheW91dFVuaXQg
bG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJ
bmRlbnQsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbExlZnRP
ZmZzZXRGb3JDb250ZW50KHBvc2l0aW9uKSwgZmlyc3RMaW5lLCAwLCBsb2dpY2FsSGVpZ2h0KTsK
KyAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNh
bExlZnRPZmZzZXRGb3JDb250ZW50KHBvc2l0aW9uKSwgbmVlZHNJbmRlbnQsIDAsIGxvZ2ljYWxI
ZWlnaHQpOwogICAgIH0KLSAgICBMYXlvdXRVbml0IHBpeGVsU25hcHBlZExvZ2ljYWxMZWZ0T2Zm
c2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBwaXhlbFNuYXBwZWRM
b2dpY2FsTGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBuZWVkc0lu
ZGVudCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAgICAgewotICAgICAg
ICByZXR1cm4gcm91bmRUb0ludChsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZp
cnN0TGluZSwgbG9naWNhbEhlaWdodCkpOworICAgICAgICByZXR1cm4gcm91bmRUb0ludChsb2dp
Y2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIG5lZWRzSW5kZW50LCBsb2dpY2FsSGVpZ2h0
KSk7CiAgICAgfQotICAgIExheW91dFVuaXQgcGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0T2Zmc2V0
Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5pdCBs
b2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBwaXhlbFNuYXBwZWRMb2dp
Y2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJbmRl
bnQsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAogICAgIHsKICAgICAgICAg
Ly8gRklYTUU6IE11bHRpY29sdW1uIGxheW91dHMgYnJlYWsgY2Fycnlpbmcgb3ZlciBzdWJwaXhl
bCB2YWx1ZXMgdG8gdGhlIGxvZ2ljYWwgcmlnaHQgb2Zmc2V0IGJlY2F1c2UgdGhlIGxpbmVzIG1h
eSBiZSBzaGlmdGVkCiAgICAgICAgIC8vIGJ5IGEgc3VicGl4ZWwgdmFsdWUgZm9yIGFsbCBidXQg
dGhlIGZpcnN0IGNvbHVtbi4gVGhpcyBjYW4gbGVhZCB0byB0aGUgYWN0dWFsIHBpeGVsIHNuYXBw
ZWQgd2lkdGggb2YgdGhlIGNvbHVtbiBiZWluZyBvZmYKICAgICAgICAgLy8gYnkgb25lIHBpeGVs
IHdoZW4gcmVuZGVyZWQgdmVyc3VzIGxheWVkIG91dCwgd2hpY2ggY2FuIHJlc3VsdCBpbiB0aGUg
bGluZSBiZWluZyBjbGlwcGVkLiBGb3Igbm93LCB3ZSBoYXZlIHRvIGZsb29yLgogICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NDYxCi0gICAgICAg
IHJldHVybiBmbG9vclRvSW50KGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZp
cnN0TGluZSwgbG9naWNhbEhlaWdodCkpOworICAgICAgICByZXR1cm4gZmxvb3JUb0ludChsb2dp
Y2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBuZWVkc0luZGVudCwgbG9naWNhbEhlaWdo
dCkpOwogICAgIH0KLSAgICBMYXlvdXRVbml0IHN0YXJ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0
IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkg
Y29uc3QKKyAgICBMYXlvdXRVbml0IHN0YXJ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0
aW9uLCBib29sIG5lZWRzSW5kZW50LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgZmlyc3RMaW5lLCBsb2dpY2Fs
SGVpZ2h0KQotICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNl
dEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgbG9naWNhbEhlaWdodCk7CisgICAgICAgIHJl
dHVybiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNl
dEZvckxpbmUocG9zaXRpb24sIG5lZWRzSW5kZW50LCBsb2dpY2FsSGVpZ2h0KQorICAgICAgICAg
ICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24s
IG5lZWRzSW5kZW50LCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBlbmRP
ZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBMYXlvdXRV
bml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAorICAgIExheW91dFVuaXQgZW5kT2Zmc2V0Rm9y
TGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIG5lZWRzSW5kZW50LCBMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQgPSAwKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuICFzdHlsZSgpLT5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRp
b24sIGZpcnN0TGluZSwgbG9naWNhbEhlaWdodCkKLSAgICAgICAgICAgIDogbG9naWNhbFdpZHRo
KCkgLSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJzdExpbmUsIGxvZ2lj
YWxIZWlnaHQpOworICAgICAgICByZXR1cm4gIXN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbmVlZHNJbmRlbnQsIGxv
Z2ljYWxIZWlnaHQpCisgICAgICAgICAgICA6IGxvZ2ljYWxXaWR0aCgpIC0gbG9naWNhbFJpZ2h0
T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbmVlZHNJbmRlbnQsIGxvZ2ljYWxIZWlnaHQpOwogICAg
IH0KIAotICAgIExheW91dFVuaXQgc3RhcnRBbGlnbmVkT2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0
IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSk7CisgICAgTGF5b3V0VW5pdCBzdGFydEFsaWduZWRP
ZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJbmRlbnQpOwogICAg
IExheW91dFVuaXQgdGV4dEluZGVudE9mZnNldCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBWaXNp
YmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRl
eCBkYTU2OTYyOWNlMmY1NzRmMWY1MDk2ZWQ3MjRiMDIxMzMwZTQyNGI5Li5mNjY5OTJmNDYyYTIw
MjFiNzIxMzBiNTQ0ZGQxZGE1OWIxNTcwNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtOTEsNyArOTEsNyBAQCBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8qIFJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8oKSBjb25zdAogCiBjbGFzcyBMaW5lV2lkdGggewogcHVibGljOgotICAgIExpbmVX
aWR0aChSZW5kZXJCbG9jayogYmxvY2ssIGJvb2wgaXNGaXJzdExpbmUpCisgICAgTGluZVdpZHRo
KFJlbmRlckJsb2NrKiBibG9jaywgYm9vbCBpc0ZpcnN0TGluZSwgYm9vbCBuZWVkc0luZGVudCkK
ICAgICAgICAgOiBtX2Jsb2NrKGJsb2NrKQogICAgICAgICAsIG1fdW5jb21taXR0ZWRXaWR0aCgw
KQogICAgICAgICAsIG1fY29tbWl0dGVkV2lkdGgoMCkKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJs
aWM6CiAgICAgICAgICwgbV9zZWdtZW50KDApCiAjZW5kaWYKICAgICAgICAgLCBtX2lzRmlyc3RM
aW5lKGlzRmlyc3RMaW5lKQorICAgICAgICAsIG1fbmVlZHNJbmRlbnQobmVlZHNJbmRlbnQpCiAg
ICAgewogICAgICAgICBBU1NFUlQoYmxvY2spOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
QEAgLTE1MCwxNCArMTUxLDE1IEBAIHByaXZhdGU6CiAgICAgY29uc3QgTGluZVNlZ21lbnQqIG1f
c2VnbWVudDsKICNlbmRpZgogICAgIGJvb2wgbV9pc0ZpcnN0TGluZTsKKyAgICBib29sIG1fbmVl
ZHNJbmRlbnQ7CiB9OwogCiBpbmxpbmUgdm9pZCBMaW5lV2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdp
ZHRoKExheW91dFVuaXQgcmVwbGFjZWRIZWlnaHQpCiB7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQg
PSBtX2Jsb2NrLT5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
ID0gbG9naWNhbEhlaWdodEZvckxpbmUobV9ibG9jaywgbV9pc0ZpcnN0TGluZSwgcmVwbGFjZWRI
ZWlnaHQpOwotICAgIG1fbGVmdCA9IG1fYmxvY2stPmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZSho
ZWlnaHQsIG1faXNGaXJzdExpbmUsIGxvZ2ljYWxIZWlnaHQpOwotICAgIG1fcmlnaHQgPSBtX2Js
b2NrLT5sb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGhlaWdodCwgbV9pc0ZpcnN0TGluZSwgbG9n
aWNhbEhlaWdodCk7CisgICAgbV9sZWZ0ID0gbV9ibG9jay0+bG9naWNhbExlZnRPZmZzZXRGb3JM
aW5lKGhlaWdodCwgbV9uZWVkc0luZGVudCwgbG9naWNhbEhlaWdodCk7CisgICAgbV9yaWdodCA9
IG1fYmxvY2stPmxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoaGVpZ2h0LCBtX25lZWRzSW5kZW50
LCBsb2dpY2FsSGVpZ2h0KTsKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBpZiAo
bV9zZWdtZW50KSB7CkBAIC0xODgsNyArMTkwLDcgQEAgaW5saW5lIHZvaWQgTGluZVdpZHRoOjpz
aHJpbmtBdmFpbGFibGVXaWR0aEZvck5ld0Zsb2F0SWZOZWVkZWQoUmVuZGVyQmxvY2s6OkZsb2EK
ICAgICAgICAgICAgIG5ld0xlZnQgKz0gc2hhcGVPdXRzaWRlSW5mby0+cmlnaHRTZWdtZW50U2hh
cGVCb3VuZGluZ0JveERlbHRhKCk7CiAjZW5kaWYKIAotICAgICAgICBpZiAobV9pc0ZpcnN0TGlu
ZSAmJiBtX2Jsb2NrLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCisgICAgICAg
IGlmIChtX25lZWRzSW5kZW50ICYmIG1fYmxvY2stPnN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJl
Y3Rpb24oKSkKICAgICAgICAgICAgIG5ld0xlZnQgKz0gZmxvb3JUb0ludChtX2Jsb2NrLT50ZXh0
SW5kZW50T2Zmc2V0KCkpOwogICAgICAgICBtX2xlZnQgPSBtYXg8ZmxvYXQ+KG1fbGVmdCwgbmV3
TGVmdCk7CiAgICAgfSBlbHNlIHsKQEAgLTE5OCw3ICsyMDAsNyBAQCBpbmxpbmUgdm9pZCBMaW5l
V2lkdGg6OnNocmlua0F2YWlsYWJsZVdpZHRoRm9yTmV3RmxvYXRJZk5lZWRlZChSZW5kZXJCbG9j
azo6RmxvYQogICAgICAgICAgICAgbmV3UmlnaHQgKz0gc2hhcGVPdXRzaWRlSW5mby0+bGVmdFNl
Z21lbnRTaGFwZUJvdW5kaW5nQm94RGVsdGEoKTsKICNlbmRpZgogCi0gICAgICAgIGlmIChtX2lz
Rmlyc3RMaW5lICYmICFtX2Jsb2NrLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkp
CisgICAgICAgIGlmIChtX25lZWRzSW5kZW50ICYmICFtX2Jsb2NrLT5zdHlsZSgpLT5pc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICBuZXdSaWdodCAtPSBmbG9vclRvSW50KG1f
YmxvY2stPnRleHRJbmRlbnRPZmZzZXQoKSk7CiAgICAgICAgIG1fcmlnaHQgPSBtaW48ZmxvYXQ+
KG1fcmlnaHQsIG5ld1JpZ2h0KTsKICAgICB9CkBAIC0yMzUsOCArMjM3LDggQEAgdm9pZCBMaW5l
V2lkdGg6OmZpdEJlbG93RmxvYXRzKCkKICAgICAgICAgaWYgKGZsb2F0TG9naWNhbEJvdHRvbSA8
PSBsYXN0RmxvYXRMb2dpY2FsQm90dG9tKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAg
bmV3TGluZUxlZnQgPSBtX2Jsb2NrLT5sb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoZmxvYXRMb2dp
Y2FsQm90dG9tLCBtX2lzRmlyc3RMaW5lKTsKLSAgICAgICAgbmV3TGluZVJpZ2h0ID0gbV9ibG9j
ay0+bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShmbG9hdExvZ2ljYWxCb3R0b20sIG1faXNGaXJz
dExpbmUpOworICAgICAgICBuZXdMaW5lTGVmdCA9IG1fYmxvY2stPmxvZ2ljYWxMZWZ0T2Zmc2V0
Rm9yTGluZShmbG9hdExvZ2ljYWxCb3R0b20sIG1fbmVlZHNJbmRlbnQpOworICAgICAgICBuZXdM
aW5lUmlnaHQgPSBtX2Jsb2NrLT5sb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGZsb2F0TG9naWNh
bEJvdHRvbSwgbV9uZWVkc0luZGVudCk7CiAgICAgICAgIG5ld0xpbmVXaWR0aCA9IG1heCgwLjBm
LCBuZXdMaW5lUmlnaHQgLSBuZXdMaW5lTGVmdCk7CiAgICAgICAgIGxhc3RGbG9hdExvZ2ljYWxC
b3R0b20gPSBmbG9hdExvZ2ljYWxCb3R0b207CiAgICAgICAgIGlmIChuZXdMaW5lV2lkdGggPj0g
bV91bmNvbW1pdHRlZFdpZHRoKQpAQCAtOTQ2LDExICs5NDgsMjIgQEAgdm9pZCBSZW5kZXJCbG9j
azo6dXBkYXRlTG9naWNhbFdpZHRoRm9yQWxpZ25tZW50KGNvbnN0IEVUZXh0QWxpZ24mIHRleHRB
bGlnbiwgQmkKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3Np
dGlvbnMoUmVuZGVyQmxvY2sqIGJsb2NrLCBmbG9hdCYgbGluZUxvZ2ljYWxMZWZ0LCBmbG9hdCYg
bGluZUxvZ2ljYWxSaWdodCwgZmxvYXQmIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgYm9vbCBmaXJz
dExpbmUsIExheW91dFVuaXQgYm94TG9naWNhbEhlaWdodCkKK3N0YXRpYyBib29sIHJlcXVpcmVz
SW5kZW50KGJvb2wgZmlyc3RMaW5lLCBib29sIGZvcmNlZExpbmVCcmVhaywgUmVuZGVyU3R5bGUq
IHN0eWxlKQoreworICAgIGlmIChmaXJzdExpbmUpCisgICAgICAgIHJldHVybiB0cnVlOworI2lm
IEVOQUJMRShDU1MzX1RFWFQpCisgICAgaWYgKGZvcmNlZExpbmVCcmVhayAmJiBzdHlsZS0+dGV4
dEluZGVudExpbmUoKSA9PSBUZXh0SW5kZW50RWFjaExpbmUpIAorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgdXBkYXRlTG9n
aWNhbElubGluZVBvc2l0aW9ucyhSZW5kZXJCbG9jayogYmxvY2ssIGZsb2F0JiBsaW5lTG9naWNh
bExlZnQsIGZsb2F0JiBsaW5lTG9naWNhbFJpZ2h0LCBmbG9hdCYgYXZhaWxhYmxlTG9naWNhbFdp
ZHRoLCBib29sIGZpcnN0TGluZSwgYm9vbCBuZWVkc0luZGVudCwgTGF5b3V0VW5pdCBib3hMb2dp
Y2FsSGVpZ2h0KQogewogICAgIExheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQgPSBsb2dpY2Fs
SGVpZ2h0Rm9yTGluZShibG9jaywgZmlyc3RMaW5lLCBib3hMb2dpY2FsSGVpZ2h0KTsKLSAgICBs
aW5lTG9naWNhbExlZnQgPSBibG9jay0+cGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JM
aW5lKGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCksIGZpcnN0TGluZSwgbGluZUxvZ2ljYWxIZWlnaHQp
OwotICAgIGxpbmVMb2dpY2FsUmlnaHQgPSBibG9jay0+cGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0
T2Zmc2V0Rm9yTGluZShibG9jay0+bG9naWNhbEhlaWdodCgpLCBmaXJzdExpbmUsIGxpbmVMb2dp
Y2FsSGVpZ2h0KTsKKyAgICBsaW5lTG9naWNhbExlZnQgPSBibG9jay0+cGl4ZWxTbmFwcGVkTG9n
aWNhbExlZnRPZmZzZXRGb3JMaW5lKGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCksIG5lZWRzSW5kZW50
LCBsaW5lTG9naWNhbEhlaWdodCk7CisgICAgbGluZUxvZ2ljYWxSaWdodCA9IGJsb2NrLT5waXhl
bFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCks
IG5lZWRzSW5kZW50LCBsaW5lTG9naWNhbEhlaWdodCk7CiAgICAgYXZhaWxhYmxlTG9naWNhbFdp
ZHRoID0gbGluZUxvZ2ljYWxSaWdodCAtIGxpbmVMb2dpY2FsTGVmdDsKIH0KIApAQCAtOTYxLDEx
ICs5NzQsMTUgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0
aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCogbGluZUJveCwKICAgICAKICAgICAvLyBDU1MgMi4x
OiAiJ1RleHQtaW5kZW50JyBvbmx5IGFmZmVjdHMgYSBsaW5lIGlmIGl0IGlzIHRoZSBmaXJzdCBm
b3JtYXR0ZWQgbGluZSBvZiBhbiBlbGVtZW50LiBGb3IgZXhhbXBsZSwgdGhlIGZpcnN0IGxpbmUg
b2YgYW4gYW5vbnltb3VzIGJsb2NrIAogICAgIC8vIGJveCBpcyBvbmx5IGFmZmVjdGVkIGlmIGl0
IGlzIHRoZSBmaXJzdCBjaGlsZCBvZiBpdHMgcGFyZW50IGVsZW1lbnQuIgorICAgIC8vIENTUzMg
InRleHQtaW5kZW50IiwgIi13ZWJraXQtZWFjaC1saW5lIiBhZmZlY3RzIHRoZSBmaXJzdCBsaW5l
IG9mIHRoZSBibG9jayBjb250YWluZXIgYXMgd2VsbCBhcyBlYWNoIGxpbmUgYWZ0ZXIgYSBmb3Jj
ZWQgbGluZSBicmVhaywKKyAgICAvLyBidXQgZG9lcyBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEg
c29mdCB3cmFwIGJyZWFrLgogICAgIGJvb2wgZmlyc3RMaW5lID0gbGluZUluZm8uaXNGaXJzdExp
bmUoKSAmJiAhKGlzQW5vbnltb3VzQmxvY2soKSAmJiBwYXJlbnQoKS0+Zmlyc3RDaGlsZCgpICE9
IHRoaXMpOworICAgIGJvb2wgZm9yY2VkTGluZUJyZWFrID0gbGluZUJveC0+cHJldlJvb3RCb3go
KSAmJiBsaW5lQm94LT5wcmV2Um9vdEJveCgpLT5lbmRzV2l0aEJyZWFrKCk7CisgICAgYm9vbCBu
ZWVkc0luZGVudCA9IHJlcXVpcmVzSW5kZW50KGZpcnN0TGluZSwgZm9yY2VkTGluZUJyZWFrLCBz
dHlsZSgpKTsKICAgICBmbG9hdCBsaW5lTG9naWNhbExlZnQ7CiAgICAgZmxvYXQgbGluZUxvZ2lj
YWxSaWdodDsKICAgICBmbG9hdCBhdmFpbGFibGVMb2dpY2FsV2lkdGg7Ci0gICAgdXBkYXRlTG9n
aWNhbElubGluZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsUmln
aHQsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCAwKTsKKyAgICB1cGRhdGVMb2dp
Y2FsSW5saW5lUG9zaXRpb25zKHRoaXMsIGxpbmVMb2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxSaWdo
dCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBmaXJzdExpbmUsIG5lZWRzSW5kZW50LCAwKTsKICAg
ICBib29sIG5lZWRzV29yZFNwYWNpbmc7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbGF5
b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CkBAIC0xMDAxLDcgKzEwMTgsNyBAQCB2b2lk
IFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290
SW5saW5lQm94KiBsaW5lQm94LAogCiAgICAgaWYgKGZpcnN0UnVuICYmIGZpcnN0UnVuLT5tX29i
amVjdC0+aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9S
ZW5kZXJCb3goZmlyc3RSdW4tPm1fb2JqZWN0KTsKLSAgICAgICAgdXBkYXRlTG9naWNhbElubGlu
ZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsUmlnaHQsIGF2YWls
YWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCByZW5kZXJCb3gtPmxvZ2ljYWxIZWlnaHQoKSk7
CisgICAgICAgIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnModGhpcywgbGluZUxvZ2ljYWxM
ZWZ0LCBsaW5lTG9naWNhbFJpZ2h0LCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIGZpcnN0TGluZSwg
bmVlZHNJbmRlbnQsIHJlbmRlckJveC0+bG9naWNhbEhlaWdodCgpKTsKICAgICB9CiAKICAgICBj
b21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yU2VnbWVudChsaW5lQm94LCBsaW5lSW5m
bywgdGV4dEFsaWduLCBsaW5lTG9naWNhbExlZnQsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZmly
c3RSdW4sIHRyYWlsaW5nU3BhY2VSdW4sIHRleHRCb3hEYXRhTWFwLCB2ZXJ0aWNhbFBvc2l0aW9u
Q2FjaGUsIHdvcmRNZWFzdXJlbWVudHMpOwpAQCAtMjYxOSw3ICsyNjM2LDcgQEAgSW5saW5lSXRl
cmF0b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJyZWFrKElubGluZUJp
ZGlSZXNvbHZlciYgcmUKICAgICBib29sIGluY2x1ZGVFbmRXaWR0aCA9IHRydWU7CiAgICAgTGlu
ZU1pZHBvaW50U3RhdGUmIGxpbmVNaWRwb2ludFN0YXRlID0gcmVzb2x2ZXIubWlkcG9pbnRTdGF0
ZSgpOwogCi0gICAgTGluZVdpZHRoIHdpZHRoKG1fYmxvY2ssIGxpbmVJbmZvLmlzRmlyc3RMaW5l
KCkpOworICAgIExpbmVXaWR0aCB3aWR0aChtX2Jsb2NrLCBsaW5lSW5mby5pc0ZpcnN0TGluZSgp
LCByZXF1aXJlc0luZGVudChsaW5lSW5mby5pc0ZpcnN0TGluZSgpLCBsaW5lSW5mby5wcmV2aW91
c0xpbmVCcm9rZUNsZWFubHkoKSwgbV9ibG9jay0+c3R5bGUoKSkpOwogCiAgICAgc2tpcExlYWRp
bmdXaGl0ZXNwYWNlKHJlc29sdmVyLCBsaW5lSW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGlu
ZSwgd2lkdGgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDdjMzA5OTQ4NjY5NWQxNDQyMTJmNzkyNDVhNmIyYTYzNTdk
NzZlYi4uMDM0NTJjODM4MTk5MmU4MTIyYzkxZjE0NWY4NzUyYzJiOWZjNDMyYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE5IEBACisyMDEzLTAzLTI1ICBKYWVodW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0gUmVuZGVyaW5nIC13ZWJraXQtZWFjaC1saW5l
IHZhbHVlIGZvciB0ZXh0LWluZGVudCBmcm9tIGNzczMtdGV4dAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzMjU5CisKKyAgICAgICAgQ1NTMyBURVhU
IGludHJvZHVjZXMgbmV3IHZhbHVlLCAiZWFjaC1saW5lIiBmb3IgdGV4dC1pbmRlbnQuCisgICAg
ICAgIEluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrIGNvbnRh
aW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZQorICAgICAgICBhZnRlciBhIGZvcmNlZCBsaW5lIGJy
ZWFrLCBidXQgZG9lcyBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9lYWNoLWxpbmUtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9lYWNoLWxpbmUuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wMy0yNSAg
VmljdG9yIENhcmJ1bmUgIDx2Y2FyYnVuZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVGV4dFRy
YWNrIEV4dGVuc2lvbiBmb3IgV2ViVlRUIFJlZ2lvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZWFjaC1saW5lLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2VhY2gtbGluZS1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NjhhNTdiMjQxYzUyODc0ZDg2NGU4ZGUxYTkzODk5
Zjk0ZTdlNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9j
c3MzLXRleHQtaW5kZW50L2VhY2gtbGluZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjggQEAK
KzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPltjc3MzLXRleHRdIHRleHQtaW5kZW50PC90aXRs
ZT4KKyAgICA8c3R5bGU+CisgICAgZGl2IHsgd2lkdGg6ODBweDsgZm9udDogMTBweCBBaGVtOyBi
YWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTsgfQorICAgIC5ub3JtYWwgeyB0ZXh0LWluZGVudDog
NGVtOyB9CisgICAgLmluZGVudCB7IGNvbG9yOiBibHVlOyB9CisgICAgLmVhY2hsaW5lIHsgcGFk
ZGluZy1sZWZ0OjRlbTsgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQKKzxib2R5PgorPGRpdiBjbGFz
cz0ibm9ybWFsIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+PGJyPnh4eHg8YnI+
eHh4eAorPC9kaXY+Cis8YnI+Cis8ZGl2IGNsYXNzPSJub3JtYWwiPgorPHNwYW4gY2xhc3M9Imlu
ZGVudCI+eHh4eDwvc3Bhbj4geHh4eCB4eHh4Cis8L2Rpdj4KKzxicj4KKzxkaXYgY2xhc3M9Im5v
cm1hbCI+Cis8c3BhbiBjbGFzcz0iaW5kZW50Ij54eHh4PC9zcGFuPjxicj48c3BhbiBjbGFzcz0i
aW5kZW50IGVhY2hsaW5lIj54eHh4PC9zcGFuPjxicj48c3BhbiBjbGFzcz0iaW5kZW50IGVhY2hs
aW5lIj54eHh4PC9zcGFuPgorPC9kaXY+Cis8YnI+Cis8ZGl2IGNsYXNzPSJub3JtYWwiPgorPHNw
YW4gY2xhc3M9ImluZGVudCI+eHh4eDwvc3Bhbj4geHh4eDxicj48c3BhbiBjbGFzcz0iaW5kZW50
IGVhY2hsaW5lIj54eHh4PC9zcGFuPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2VhY2gtbGlu
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9lYWNo
LWxpbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDRiMDE0YWZjYjAyZTAyN2I0OTRlZjU1ZDQwMGM0ZmE3
MDNhYjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWluZGVudC9lYWNoLWxpbmUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8aHRtbD4KKzxo
ZWFkPgorICAgIDx0aXRsZT5bY3NzMy10ZXh0XSB0ZXh0LWluZGVudDwvdGl0bGU+CisgICAgPHN0
eWxlPgorICAgIGRpdiB7IHdpZHRoOjgwcHg7IGZvbnQ6IDEwcHggQWhlbTsgYmFja2dyb3VuZC1j
b2xvcjpsaWdodGdyYXk7IH0KKyAgICAubm9ybWFsIHsgdGV4dC1pbmRlbnQ6IDRlbTsgfQorICAg
IC5lYWNobGluZSB7IHdpZHRoOjgwcHg7IHRleHQtaW5kZW50OiA0ZW0gLXdlYmtpdC1lYWNoLWxp
bmU7IH0KKyAgICAuaW5kZW50IHsgY29sb3I6IGJsdWU7IH0KKyAgICA8L3N0eWxlPgorPC9oZWFk
Cis8Ym9keT4KKzwhLS0KK2FsbCBibGFjayBib3hlcyBzaG91bGQgYmUgbGVmdC1hbGlnbmVkLgor
YWxsIGJsdWUgYm94ZXMgc2hvdWxkIGJlIHJpZ2h0LWFsaWduZWQuCistLT4KKworPCEtLSBub3Jt
YWwgdGV4dC1pbmRlbnQgLS0+Cis8ZGl2IGNsYXNzPSJub3JtYWwiPgorPHNwYW4gY2xhc3M9Imlu
ZGVudCI+eHh4eDwvc3Bhbj48YnI+eHh4eDxicj54eHh4Cis8L2Rpdj4KKzxicj4KKzwhLS0gLXdl
YmtpdC1lYWNoLWxpbmUgd2l0aCBhIHNvZnQgd3JhcCBicmVhayAtLT4KKzxkaXYgY2xhc3M9ImVh
Y2hsaW5lIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+IHh4eHggeHh4eAorPC9k
aXY+Cis8YnI+Cis8IS0tIC13ZWJraXQtZWFjaC1saW5lIHdpdGggYSBmb3JjZWQgbGluZSBicmVh
ayAtLT4KKzxkaXYgY2xhc3M9ImVhY2hsaW5lIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8
L3NwYW4+PGJyPjxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+PGJyPjxzcGFuIGNsYXNz
PSJpbmRlbnQiPnh4eHg8L3NwYW4+Cis8L2Rpdj4KKzxicj4KKzwhLS0gLXdlYmtpdC1lYWNoLWxp
bmUgd2l0aCBhIHNvZnQgd3JhcCBicmVhayBhbmQgYSBmb3JjZWQgbGluZSBicmVhayAtLT4KKzxk
aXYgY2xhc3M9ImVhY2hsaW5lIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+IHh4
eHg8YnI+PHNwYW4gY2xhc3M9ImluZGVudCI+eHh4eDwvc3Bhbj4KKzwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBl
MzM1MDAwZmJkM2M0OWVlOTczNGU5MDEzZWI3YjFiMDNhNTM3ZTZiLi5kNDZiYThmODY0MmMxYjkw
ZGVmMWVlNWMzNmY0ZTdkYjM1Y2QwMTU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMjQ4OSw2ICsyNDg5LDcgQEAgZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtZGVj
b3IKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dldENvbXB1dGVkU3R5bGUv
Z2V0Q29tcHV0ZWRTdHlsZS10ZXh0LXVuZGVybGluZS1wb3NpdGlvbi5odG1sCiBmYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10
ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVu
dC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQuaHRtbAorZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9lYWNoLWxpbmUuaHRtbAogCiAjIEFDQ0VMRVJB
VEVEX09WRVJGTE9XX1NDUk9MTElORyBpcyBkaXNhYmxlZCBvbiBXaW5kb3dzCiBjb21wb3NpdGlu
Zy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGluZy5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlZDYyODUxMDAwNGQ2
MDA4NTQyMGU3NjgxNGExZWJmYzg2MGUyMjQ2Li4xMTE0ODA3Mjk3NjVhZjI3ZTBhMzc5YjNiZjQ3
NmUxNjFmZDIwMGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTI5ODEsNiArMjk4MSw3IEBAIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWdu
CiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0eWxlL2dl
dENvbXB1dGVkU3R5bGUtdGV4dC1kZWNvcmF0aW9uLWxpbmUuaHRtbAogZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1p
bmRlbnQtaW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKK2Zhc3QvY3Nz
My10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZWFjaC1saW5lLmh0bWwKIAogIyBTcGVsbGNoZWNrZXIg
YmVoYXZpb3IgdGVzdHMuCiB3ZWJraXQub3JnL2IvMTA4MzcwIGVkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194989</attachid>
            <date>2013-03-25 20:10:27 -0700</date>
            <delta_ts>2013-03-27 20:43:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113259-20130326120608.patch</filename>
            <type>text/plain</type>
            <size>23821</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjI4NzJkM2MwZDUzYTM3
MWEyMmE5NjM5NWRmMTQ0NjkzZGE2MmQ3Zi4uMGZjZDhkMGY3NGIwODJkNGMzYzBkMDg1MjQzYWZl
YzdiYWVhMWM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEzLTAzLTI1ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UmVuZGVyaW5nIC13ZWJraXQtZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudCBmcm9tIGNz
czMtdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEzMjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q1NTMyBURVhUIGludHJvZHVjZXMgbmV3IHZhbHVlLCAiZWFjaC1saW5lIiBmb3IgdGV4dC1pbmRl
bnQuCisgICAgICAgIEluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJs
b2NrIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZQorICAgICAgICBhZnRlciBhIGZvcmNl
ZCBsaW5lIGJyZWFrLCBidXQgZG9lcyBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFw
IGJyZWFrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgdGhlIHJlbmRlcmluZyBwYXJ0IHRvIHN1
cHBvcnQgZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudC4KKyAgICAgICAgSXQncyBwcmVm
aXhlZCBhbmQgZ3VhcmRlZCBieSBDU1MzX1RFWFQgZmxhZy4KKworICAgICAgICBUZXN0OiBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2VhY2gtbGluZS5odG1sCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjph
dmFpbGFibGVMb2dpY2FsV2lkdGhGb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OnN0YXJ0T2Zmc2V0Rm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6ZW5kT2Zmc2V0Rm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
cGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpwaXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKToKKyAg
ICAgICAgICAgIFJlbmFtZSBhIHBhcmFtZXRlciBmcm9tIGZpcnN0TGluZSB0byBuZWVkc0luZGVu
dAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TGluZVdpZHRoOjpMaW5lV2lkdGgpOgorICAgICAgICAoV2ViQ29yZTo6TGlu
ZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5lV2lk
dGg6OnNocmlua0F2YWlsYWJsZVdpZHRoRm9yTmV3RmxvYXRJZk5lZWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKToKKyAgICAgICAgICAgIFVzZSBtX25l
ZWRzSW5kZW50IGluc3RlYWQgb2YgbV9pc0ZpcnN0TGluZQorICAgICAgICAoV2ViQ29yZTo6cmVx
dWlyZXNJbmRlbnQpOiBEZWNpZGUgd2hldGhlciB0ZXh0IGluZGVudGF0aW9uIGlzIHJlcXVpcmVk
CisgICAgICAgIChXZWJDb3JlOjp1cGRhdGVMb2dpY2FsSW5saW5lUG9zaXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25z
Rm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5l
eHRTZWdtZW50QnJlYWspOgorCiAyMDEzLTAzLTI1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBTdXBwb3J0IEdyYXBoaWNzTGF5ZXI6
OnNldENvbnRlbnRzVG9Tb2xpZENvbG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCmluZGV4IDA2ZWYzODMwNDMwNTExZjY4NWRlMWNjMTRlM2NkNmI1YjEwY2M3YzUuLmVkZDZi
MjMyMjdlNDQzOGRjN2ZjYTA1OTU2MjI1MmFlODIyNWM5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCkBAIC0xNjUsNjYgKzE2NSw2NiBAQCBwdWJsaWM6CiAKICAgICAv
LyBWZXJzaW9ucyB0aGF0IGNhbiBjb21wdXRlIGxpbmUgb2Zmc2V0cyB3aXRoIHRoZSByZWdpb24g
YW5kIHBhZ2Ugb2Zmc2V0IHBhc3NlZCBpbi4gVXNlZCBmb3Igc3BlZWQgdG8gYXZvaWQgaGF2aW5n
IHRvCiAgICAgLy8gY29tcHV0ZSB0aGUgcmVnaW9uIGFsbCBvdmVyIGFnYWluIHdoZW4geW91IGFs
cmVhZHkga25vdyBpdC4KLSAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckxp
bmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExpbmUsIFJlbmRlclJlZ2lvbiogcmVn
aW9uLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIExheW91dFVu
aXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CisgICAgTGF5b3V0VW5pdCBhdmFpbGFibGVMb2dp
Y2FsV2lkdGhGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJbmRlbnQsIFJl
bmRlclJlZ2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJz
dFBhZ2UsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CiAgICAgewotICAgICAg
ICByZXR1cm4gbWF4PExheW91dFVuaXQ+KDAsIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9z
aXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdl
LCBsb2dpY2FsSGVpZ2h0KQotICAgICAgICAgICAgLSBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUo
cG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQ
YWdlLCBsb2dpY2FsSGVpZ2h0KSk7CisgICAgICAgIHJldHVybiBtYXg8TGF5b3V0VW5pdD4oMCwg
bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbmVlZHNJbmRlbnQsIHJlZ2lvbiwg
b2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9naWNhbEhlaWdodCkKKyAgICAgICAg
ICAgIC0gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBuZWVkc0luZGVudCwgcmVn
aW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KSk7CiAg
ICAgfQotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0
IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVu
aXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5l
KExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJbmRlbnQsIFJlbmRlclJlZ2lvbiogcmVn
aW9uLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIExheW91dFVu
aXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAogICAgIHsKLSAgICAgICAgcmV0dXJuIGxvZ2lj
YWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIGxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRl
bnQocmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKSwgZmlyc3RMaW5lLCAw
LCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIGxvZ2ljYWxSaWdodE9mZnNldEZvckxp
bmUocG9zaXRpb24sIGxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQocmVnaW9uLCBvZmZzZXRG
cm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKSwgbmVlZHNJbmRlbnQsIDAsIGxvZ2ljYWxIZWlnaHQp
OwogICAgIH0KLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShMYXlvdXRV
bml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91
dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2Fs
SGVpZ2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldEZvckxp
bmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBuZWVkc0luZGVudCwgUmVuZGVyUmVnaW9uKiBy
ZWdpb24sIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0
VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAgICAgewotICAgICAgICByZXR1cm4gbG9n
aWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRl
bnQocmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlKSwgZmlyc3RMaW5lLCAw
LCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGlu
ZShwb3NpdGlvbiwgbG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KHJlZ2lvbiwgb2Zmc2V0RnJv
bUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSksIG5lZWRzSW5kZW50LCAwLCBsb2dpY2FsSGVpZ2h0KTsK
ICAgICB9Ci0gICAgTGF5b3V0VW5pdCBzdGFydE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3Np
dGlvbiwgYm9vbCBmaXJzdExpbmUsIFJlbmRlclJlZ2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IG9m
ZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9
IDApIGNvbnN0CisgICAgTGF5b3V0VW5pdCBzdGFydE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBw
b3NpdGlvbiwgYm9vbCBuZWVkc0luZGVudCwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVu
aXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVp
Z2h0ID0gMCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0
TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVp
Z2h0KQotICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNldEZv
ckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9m
Rmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPmlzTGVm
dFRvUmlnaHREaXJlY3Rpb24oKSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwg
bmVlZHNJbmRlbnQsIHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9n
aWNhbEhlaWdodCkKKyAgICAgICAgICAgIDogbG9naWNhbFdpZHRoKCkgLSBsb2dpY2FsUmlnaHRP
ZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBuZWVkc0luZGVudCwgcmVnaW9uLCBvZmZzZXRGcm9tTG9n
aWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5p
dCBlbmRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBS
ZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0VW5pdCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmly
c3RQYWdlLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAorICAgIExheW91dFVu
aXQgZW5kT2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIG5lZWRzSW5kZW50
LCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0VW5pdCBvZmZzZXRGcm9tTG9naWNhbFRvcE9m
Rmlyc3RQYWdlLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAogICAgIHsKLSAg
ICAgICAgcmV0dXJuICFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dpY2Fs
TGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9t
TG9naWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KQotICAgICAgICAgICAgOiBsb2dp
Y2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGlu
ZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0
KTsKKyAgICAgICAgcmV0dXJuICFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBs
b2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIG5lZWRzSW5kZW50LCByZWdpb24sIG9m
ZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIGxvZ2ljYWxIZWlnaHQpCisgICAgICAgICAg
ICA6IGxvZ2ljYWxXaWR0aCgpIC0gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwg
bmVlZHNJbmRlbnQsIHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9n
aWNhbEhlaWdodCk7CiAgICAgfQogCi0gICAgTGF5b3V0VW5pdCBhdmFpbGFibGVMb2dpY2FsV2lk
dGhGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAorICAgIExheW91dFVuaXQgYXZhaWxhYmxlTG9naWNh
bFdpZHRoRm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIG5lZWRzSW5kZW50LCBMYXlv
dXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGF2
YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uQXRC
bG9ja09mZnNldChwb3NpdGlvbiksIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSwg
bG9naWNhbEhlaWdodCk7CisgICAgICAgIHJldHVybiBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JM
aW5lKHBvc2l0aW9uLCBuZWVkc0luZGVudCwgcmVnaW9uQXRCbG9ja09mZnNldChwb3NpdGlvbiks
IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSwgbG9naWNhbEhlaWdodCk7CiAgICAg
fQotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBv
c2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29u
c3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQg
cG9zaXRpb24sIGJvb2wgbmVlZHNJbmRlbnQsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDAp
IGNvbnN0IAogICAgIHsKLSAgICAgICAgcmV0dXJuIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUo
cG9zaXRpb24sIGxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQocG9zaXRpb24pLCBmaXJzdExp
bmUsIDAsIGxvZ2ljYWxIZWlnaHQpOworICAgICAgICByZXR1cm4gbG9naWNhbFJpZ2h0T2Zmc2V0
Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudChwb3NpdGlvbiks
IG5lZWRzSW5kZW50LCAwLCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBs
b2dpY2FsTGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExp
bmUsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAorICAgIExheW91dFVuaXQg
bG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJ
bmRlbnQsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbExlZnRP
ZmZzZXRGb3JDb250ZW50KHBvc2l0aW9uKSwgZmlyc3RMaW5lLCAwLCBsb2dpY2FsSGVpZ2h0KTsK
KyAgICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNh
bExlZnRPZmZzZXRGb3JDb250ZW50KHBvc2l0aW9uKSwgbmVlZHNJbmRlbnQsIDAsIGxvZ2ljYWxI
ZWlnaHQpOwogICAgIH0KLSAgICBMYXlvdXRVbml0IHBpeGVsU25hcHBlZExvZ2ljYWxMZWZ0T2Zm
c2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBwaXhlbFNuYXBwZWRM
b2dpY2FsTGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBuZWVkc0lu
ZGVudCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAgICAgewotICAgICAg
ICByZXR1cm4gcm91bmRUb0ludChsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZp
cnN0TGluZSwgbG9naWNhbEhlaWdodCkpOworICAgICAgICByZXR1cm4gcm91bmRUb0ludChsb2dp
Y2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIG5lZWRzSW5kZW50LCBsb2dpY2FsSGVpZ2h0
KSk7CiAgICAgfQotICAgIExheW91dFVuaXQgcGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0T2Zmc2V0
Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5pdCBs
b2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBwaXhlbFNuYXBwZWRMb2dp
Y2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJbmRl
bnQsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAogICAgIHsKICAgICAgICAg
Ly8gRklYTUU6IE11bHRpY29sdW1uIGxheW91dHMgYnJlYWsgY2Fycnlpbmcgb3ZlciBzdWJwaXhl
bCB2YWx1ZXMgdG8gdGhlIGxvZ2ljYWwgcmlnaHQgb2Zmc2V0IGJlY2F1c2UgdGhlIGxpbmVzIG1h
eSBiZSBzaGlmdGVkCiAgICAgICAgIC8vIGJ5IGEgc3VicGl4ZWwgdmFsdWUgZm9yIGFsbCBidXQg
dGhlIGZpcnN0IGNvbHVtbi4gVGhpcyBjYW4gbGVhZCB0byB0aGUgYWN0dWFsIHBpeGVsIHNuYXBw
ZWQgd2lkdGggb2YgdGhlIGNvbHVtbiBiZWluZyBvZmYKICAgICAgICAgLy8gYnkgb25lIHBpeGVs
IHdoZW4gcmVuZGVyZWQgdmVyc3VzIGxheWVkIG91dCwgd2hpY2ggY2FuIHJlc3VsdCBpbiB0aGUg
bGluZSBiZWluZyBjbGlwcGVkLiBGb3Igbm93LCB3ZSBoYXZlIHRvIGZsb29yLgogICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NDYxCi0gICAgICAg
IHJldHVybiBmbG9vclRvSW50KGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZp
cnN0TGluZSwgbG9naWNhbEhlaWdodCkpOworICAgICAgICByZXR1cm4gZmxvb3JUb0ludChsb2dp
Y2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBuZWVkc0luZGVudCwgbG9naWNhbEhlaWdo
dCkpOwogICAgIH0KLSAgICBMYXlvdXRVbml0IHN0YXJ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0
IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkg
Y29uc3QKKyAgICBMYXlvdXRVbml0IHN0YXJ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0
aW9uLCBib29sIG5lZWRzSW5kZW50LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25z
dAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24o
KSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgZmlyc3RMaW5lLCBsb2dpY2Fs
SGVpZ2h0KQotICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNl
dEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgbG9naWNhbEhlaWdodCk7CisgICAgICAgIHJl
dHVybiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNl
dEZvckxpbmUocG9zaXRpb24sIG5lZWRzSW5kZW50LCBsb2dpY2FsSGVpZ2h0KQorICAgICAgICAg
ICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24s
IG5lZWRzSW5kZW50LCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBlbmRP
ZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBMYXlvdXRV
bml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAorICAgIExheW91dFVuaXQgZW5kT2Zmc2V0Rm9y
TGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIG5lZWRzSW5kZW50LCBMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQgPSAwKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuICFzdHlsZSgpLT5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRp
b24sIGZpcnN0TGluZSwgbG9naWNhbEhlaWdodCkKLSAgICAgICAgICAgIDogbG9naWNhbFdpZHRo
KCkgLSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJzdExpbmUsIGxvZ2lj
YWxIZWlnaHQpOworICAgICAgICByZXR1cm4gIXN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbmVlZHNJbmRlbnQsIGxv
Z2ljYWxIZWlnaHQpCisgICAgICAgICAgICA6IGxvZ2ljYWxXaWR0aCgpIC0gbG9naWNhbFJpZ2h0
T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbmVlZHNJbmRlbnQsIGxvZ2ljYWxIZWlnaHQpOwogICAg
IH0KIAotICAgIExheW91dFVuaXQgc3RhcnRBbGlnbmVkT2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0
IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSk7CisgICAgTGF5b3V0VW5pdCBzdGFydEFsaWduZWRP
ZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgbmVlZHNJbmRlbnQpOwogICAg
IExheW91dFVuaXQgdGV4dEluZGVudE9mZnNldCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBWaXNp
YmxlUG9zaXRpb24gcG9zaXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRl
eCBkYTU2OTYyOWNlMmY1NzRmMWY1MDk2ZWQ3MjRiMDIxMzMwZTQyNGI5Li40Y2FhMTJlOTdmOWQ4
YTdiNzQ2MGIwN2U2OTczYjVkYTVlMzY2YzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtOTEsNyArOTEsNyBAQCBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8qIFJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8oKSBjb25zdAogCiBjbGFzcyBMaW5lV2lkdGggewogcHVibGljOgotICAgIExpbmVX
aWR0aChSZW5kZXJCbG9jayogYmxvY2ssIGJvb2wgaXNGaXJzdExpbmUpCisgICAgTGluZVdpZHRo
KFJlbmRlckJsb2NrKiBibG9jaywgYm9vbCBpc0ZpcnN0TGluZSwgYm9vbCBuZWVkc0luZGVudCkK
ICAgICAgICAgOiBtX2Jsb2NrKGJsb2NrKQogICAgICAgICAsIG1fdW5jb21taXR0ZWRXaWR0aCgw
KQogICAgICAgICAsIG1fY29tbWl0dGVkV2lkdGgoMCkKQEAgLTEwMyw2ICsxMDMsNyBAQCBwdWJs
aWM6CiAgICAgICAgICwgbV9zZWdtZW50KDApCiAjZW5kaWYKICAgICAgICAgLCBtX2lzRmlyc3RM
aW5lKGlzRmlyc3RMaW5lKQorICAgICAgICAsIG1fbmVlZHNJbmRlbnQobmVlZHNJbmRlbnQpCiAg
ICAgewogICAgICAgICBBU1NFUlQoYmxvY2spOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
QEAgLTE1MCwxNCArMTUxLDE1IEBAIHByaXZhdGU6CiAgICAgY29uc3QgTGluZVNlZ21lbnQqIG1f
c2VnbWVudDsKICNlbmRpZgogICAgIGJvb2wgbV9pc0ZpcnN0TGluZTsKKyAgICBib29sIG1fbmVl
ZHNJbmRlbnQ7CiB9OwogCiBpbmxpbmUgdm9pZCBMaW5lV2lkdGg6OnVwZGF0ZUF2YWlsYWJsZVdp
ZHRoKExheW91dFVuaXQgcmVwbGFjZWRIZWlnaHQpCiB7CiAgICAgTGF5b3V0VW5pdCBoZWlnaHQg
PSBtX2Jsb2NrLT5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
ID0gbG9naWNhbEhlaWdodEZvckxpbmUobV9ibG9jaywgbV9pc0ZpcnN0TGluZSwgcmVwbGFjZWRI
ZWlnaHQpOwotICAgIG1fbGVmdCA9IG1fYmxvY2stPmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZSho
ZWlnaHQsIG1faXNGaXJzdExpbmUsIGxvZ2ljYWxIZWlnaHQpOwotICAgIG1fcmlnaHQgPSBtX2Js
b2NrLT5sb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGhlaWdodCwgbV9pc0ZpcnN0TGluZSwgbG9n
aWNhbEhlaWdodCk7CisgICAgbV9sZWZ0ID0gbV9ibG9jay0+bG9naWNhbExlZnRPZmZzZXRGb3JM
aW5lKGhlaWdodCwgbV9uZWVkc0luZGVudCwgbG9naWNhbEhlaWdodCk7CisgICAgbV9yaWdodCA9
IG1fYmxvY2stPmxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoaGVpZ2h0LCBtX25lZWRzSW5kZW50
LCBsb2dpY2FsSGVpZ2h0KTsKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBpZiAo
bV9zZWdtZW50KSB7CkBAIC0xODgsNyArMTkwLDcgQEAgaW5saW5lIHZvaWQgTGluZVdpZHRoOjpz
aHJpbmtBdmFpbGFibGVXaWR0aEZvck5ld0Zsb2F0SWZOZWVkZWQoUmVuZGVyQmxvY2s6OkZsb2EK
ICAgICAgICAgICAgIG5ld0xlZnQgKz0gc2hhcGVPdXRzaWRlSW5mby0+cmlnaHRTZWdtZW50U2hh
cGVCb3VuZGluZ0JveERlbHRhKCk7CiAjZW5kaWYKIAotICAgICAgICBpZiAobV9pc0ZpcnN0TGlu
ZSAmJiBtX2Jsb2NrLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCisgICAgICAg
IGlmIChtX25lZWRzSW5kZW50ICYmIG1fYmxvY2stPnN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJl
Y3Rpb24oKSkKICAgICAgICAgICAgIG5ld0xlZnQgKz0gZmxvb3JUb0ludChtX2Jsb2NrLT50ZXh0
SW5kZW50T2Zmc2V0KCkpOwogICAgICAgICBtX2xlZnQgPSBtYXg8ZmxvYXQ+KG1fbGVmdCwgbmV3
TGVmdCk7CiAgICAgfSBlbHNlIHsKQEAgLTE5OCw3ICsyMDAsNyBAQCBpbmxpbmUgdm9pZCBMaW5l
V2lkdGg6OnNocmlua0F2YWlsYWJsZVdpZHRoRm9yTmV3RmxvYXRJZk5lZWRlZChSZW5kZXJCbG9j
azo6RmxvYQogICAgICAgICAgICAgbmV3UmlnaHQgKz0gc2hhcGVPdXRzaWRlSW5mby0+bGVmdFNl
Z21lbnRTaGFwZUJvdW5kaW5nQm94RGVsdGEoKTsKICNlbmRpZgogCi0gICAgICAgIGlmIChtX2lz
Rmlyc3RMaW5lICYmICFtX2Jsb2NrLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkp
CisgICAgICAgIGlmIChtX25lZWRzSW5kZW50ICYmICFtX2Jsb2NrLT5zdHlsZSgpLT5pc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICBuZXdSaWdodCAtPSBmbG9vclRvSW50KG1f
YmxvY2stPnRleHRJbmRlbnRPZmZzZXQoKSk7CiAgICAgICAgIG1fcmlnaHQgPSBtaW48ZmxvYXQ+
KG1fcmlnaHQsIG5ld1JpZ2h0KTsKICAgICB9CkBAIC0yMzUsOCArMjM3LDggQEAgdm9pZCBMaW5l
V2lkdGg6OmZpdEJlbG93RmxvYXRzKCkKICAgICAgICAgaWYgKGZsb2F0TG9naWNhbEJvdHRvbSA8
PSBsYXN0RmxvYXRMb2dpY2FsQm90dG9tKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAg
bmV3TGluZUxlZnQgPSBtX2Jsb2NrLT5sb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoZmxvYXRMb2dp
Y2FsQm90dG9tLCBtX2lzRmlyc3RMaW5lKTsKLSAgICAgICAgbmV3TGluZVJpZ2h0ID0gbV9ibG9j
ay0+bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShmbG9hdExvZ2ljYWxCb3R0b20sIG1faXNGaXJz
dExpbmUpOworICAgICAgICBuZXdMaW5lTGVmdCA9IG1fYmxvY2stPmxvZ2ljYWxMZWZ0T2Zmc2V0
Rm9yTGluZShmbG9hdExvZ2ljYWxCb3R0b20sIG1fbmVlZHNJbmRlbnQpOworICAgICAgICBuZXdM
aW5lUmlnaHQgPSBtX2Jsb2NrLT5sb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGZsb2F0TG9naWNh
bEJvdHRvbSwgbV9uZWVkc0luZGVudCk7CiAgICAgICAgIG5ld0xpbmVXaWR0aCA9IG1heCgwLjBm
LCBuZXdMaW5lUmlnaHQgLSBuZXdMaW5lTGVmdCk7CiAgICAgICAgIGxhc3RGbG9hdExvZ2ljYWxC
b3R0b20gPSBmbG9hdExvZ2ljYWxCb3R0b207CiAgICAgICAgIGlmIChuZXdMaW5lV2lkdGggPj0g
bV91bmNvbW1pdHRlZFdpZHRoKQpAQCAtOTQ2LDExICs5NDgsMjUgQEAgdm9pZCBSZW5kZXJCbG9j
azo6dXBkYXRlTG9naWNhbFdpZHRoRm9yQWxpZ25tZW50KGNvbnN0IEVUZXh0QWxpZ24mIHRleHRB
bGlnbiwgQmkKICAgICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3Np
dGlvbnMoUmVuZGVyQmxvY2sqIGJsb2NrLCBmbG9hdCYgbGluZUxvZ2ljYWxMZWZ0LCBmbG9hdCYg
bGluZUxvZ2ljYWxSaWdodCwgZmxvYXQmIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgYm9vbCBmaXJz
dExpbmUsIExheW91dFVuaXQgYm94TG9naWNhbEhlaWdodCkKK3N0YXRpYyBib29sIHJlcXVpcmVz
SW5kZW50KGJvb2wgZmlyc3RMaW5lLCBib29sIGZvcmNlZExpbmVCcmVhaywgUmVuZGVyU3R5bGUq
IHN0eWxlKQoreworICAgIGlmIChmaXJzdExpbmUpCisgICAgICAgIHJldHVybiB0cnVlOworI2lm
IEVOQUJMRShDU1MzX1RFWFQpCisgICAgaWYgKGZvcmNlZExpbmVCcmVhayAmJiBzdHlsZS0+dGV4
dEluZGVudExpbmUoKSA9PSBUZXh0SW5kZW50RWFjaExpbmUpIAorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGZvcmNlZExpbmVCcmVhayk7CisgICAgVU5VU0VE
X1BBUkFNKHN0eWxlKTsKKyNlbmRpZgorICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHZv
aWQgdXBkYXRlTG9naWNhbElubGluZVBvc2l0aW9ucyhSZW5kZXJCbG9jayogYmxvY2ssIGZsb2F0
JiBsaW5lTG9naWNhbExlZnQsIGZsb2F0JiBsaW5lTG9naWNhbFJpZ2h0LCBmbG9hdCYgYXZhaWxh
YmxlTG9naWNhbFdpZHRoLCBib29sIGZpcnN0TGluZSwgYm9vbCBuZWVkc0luZGVudCwgTGF5b3V0
VW5pdCBib3hMb2dpY2FsSGVpZ2h0KQogewogICAgIExheW91dFVuaXQgbGluZUxvZ2ljYWxIZWln
aHQgPSBsb2dpY2FsSGVpZ2h0Rm9yTGluZShibG9jaywgZmlyc3RMaW5lLCBib3hMb2dpY2FsSGVp
Z2h0KTsKLSAgICBsaW5lTG9naWNhbExlZnQgPSBibG9jay0+cGl4ZWxTbmFwcGVkTG9naWNhbExl
ZnRPZmZzZXRGb3JMaW5lKGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCksIGZpcnN0TGluZSwgbGluZUxv
Z2ljYWxIZWlnaHQpOwotICAgIGxpbmVMb2dpY2FsUmlnaHQgPSBibG9jay0+cGl4ZWxTbmFwcGVk
TG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShibG9jay0+bG9naWNhbEhlaWdodCgpLCBmaXJzdExp
bmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKKyAgICBsaW5lTG9naWNhbExlZnQgPSBibG9jay0+cGl4
ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCks
IG5lZWRzSW5kZW50LCBsaW5lTG9naWNhbEhlaWdodCk7CisgICAgbGluZUxvZ2ljYWxSaWdodCA9
IGJsb2NrLT5waXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGJsb2NrLT5sb2dp
Y2FsSGVpZ2h0KCksIG5lZWRzSW5kZW50LCBsaW5lTG9naWNhbEhlaWdodCk7CiAgICAgYXZhaWxh
YmxlTG9naWNhbFdpZHRoID0gbGluZUxvZ2ljYWxSaWdodCAtIGxpbmVMb2dpY2FsTGVmdDsKIH0K
IApAQCAtOTYxLDExICs5NzcsMTUgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZURp
cmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCogbGluZUJveCwKICAgICAKICAg
ICAvLyBDU1MgMi4xOiAiJ1RleHQtaW5kZW50JyBvbmx5IGFmZmVjdHMgYSBsaW5lIGlmIGl0IGlz
IHRoZSBmaXJzdCBmb3JtYXR0ZWQgbGluZSBvZiBhbiBlbGVtZW50LiBGb3IgZXhhbXBsZSwgdGhl
IGZpcnN0IGxpbmUgb2YgYW4gYW5vbnltb3VzIGJsb2NrIAogICAgIC8vIGJveCBpcyBvbmx5IGFm
ZmVjdGVkIGlmIGl0IGlzIHRoZSBmaXJzdCBjaGlsZCBvZiBpdHMgcGFyZW50IGVsZW1lbnQuIgor
ICAgIC8vIENTUzMgInRleHQtaW5kZW50IiwgIi13ZWJraXQtZWFjaC1saW5lIiBhZmZlY3RzIHRo
ZSBmaXJzdCBsaW5lIG9mIHRoZSBibG9jayBjb250YWluZXIgYXMgd2VsbCBhcyBlYWNoIGxpbmUg
YWZ0ZXIgYSBmb3JjZWQgbGluZSBicmVhaywKKyAgICAvLyBidXQgZG9lcyBub3QgYWZmZWN0IGxp
bmVzIGFmdGVyIGEgc29mdCB3cmFwIGJyZWFrLgogICAgIGJvb2wgZmlyc3RMaW5lID0gbGluZUlu
Zm8uaXNGaXJzdExpbmUoKSAmJiAhKGlzQW5vbnltb3VzQmxvY2soKSAmJiBwYXJlbnQoKS0+Zmly
c3RDaGlsZCgpICE9IHRoaXMpOworICAgIGJvb2wgZm9yY2VkTGluZUJyZWFrID0gbGluZUJveC0+
cHJldlJvb3RCb3goKSAmJiBsaW5lQm94LT5wcmV2Um9vdEJveCgpLT5lbmRzV2l0aEJyZWFrKCk7
CisgICAgYm9vbCBuZWVkc0luZGVudCA9IHJlcXVpcmVzSW5kZW50KGZpcnN0TGluZSwgZm9yY2Vk
TGluZUJyZWFrLCBzdHlsZSgpKTsKICAgICBmbG9hdCBsaW5lTG9naWNhbExlZnQ7CiAgICAgZmxv
YXQgbGluZUxvZ2ljYWxSaWdodDsKICAgICBmbG9hdCBhdmFpbGFibGVMb2dpY2FsV2lkdGg7Ci0g
ICAgdXBkYXRlTG9naWNhbElubGluZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxp
bmVMb2dpY2FsUmlnaHQsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCAwKTsKKyAg
ICB1cGRhdGVMb2dpY2FsSW5saW5lUG9zaXRpb25zKHRoaXMsIGxpbmVMb2dpY2FsTGVmdCwgbGlu
ZUxvZ2ljYWxSaWdodCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBmaXJzdExpbmUsIG5lZWRzSW5k
ZW50LCAwKTsKICAgICBib29sIG5lZWRzV29yZFNwYWNpbmc7CiAjaWYgRU5BQkxFKENTU19FWENM
VVNJT05TKQogICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvID0gbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CkBAIC0xMDAxLDcgKzEw
MjEsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25z
Rm9yTGluZShSb290SW5saW5lQm94KiBsaW5lQm94LAogCiAgICAgaWYgKGZpcnN0UnVuICYmIGZp
cnN0UnVuLT5tX29iamVjdC0+aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgIFJlbmRlckJveCogcmVu
ZGVyQm94ID0gdG9SZW5kZXJCb3goZmlyc3RSdW4tPm1fb2JqZWN0KTsKLSAgICAgICAgdXBkYXRl
TG9naWNhbElubGluZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2Fs
UmlnaHQsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCByZW5kZXJCb3gtPmxvZ2lj
YWxIZWlnaHQoKSk7CisgICAgICAgIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnModGhpcywg
bGluZUxvZ2ljYWxMZWZ0LCBsaW5lTG9naWNhbFJpZ2h0LCBhdmFpbGFibGVMb2dpY2FsV2lkdGgs
IGZpcnN0TGluZSwgbmVlZHNJbmRlbnQsIHJlbmRlckJveC0+bG9naWNhbEhlaWdodCgpKTsKICAg
ICB9CiAKICAgICBjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yU2VnbWVudChsaW5l
Qm94LCBsaW5lSW5mbywgdGV4dEFsaWduLCBsaW5lTG9naWNhbExlZnQsIGF2YWlsYWJsZUxvZ2lj
YWxXaWR0aCwgZmlyc3RSdW4sIHRyYWlsaW5nU3BhY2VSdW4sIHRleHRCb3hEYXRhTWFwLCB2ZXJ0
aWNhbFBvc2l0aW9uQ2FjaGUsIHdvcmRNZWFzdXJlbWVudHMpOwpAQCAtMjYxOSw3ICsyNjM5LDcg
QEAgSW5saW5lSXRlcmF0b3IgUmVuZGVyQmxvY2s6OkxpbmVCcmVha2VyOjpuZXh0U2VnbWVudEJy
ZWFrKElubGluZUJpZGlSZXNvbHZlciYgcmUKICAgICBib29sIGluY2x1ZGVFbmRXaWR0aCA9IHRy
dWU7CiAgICAgTGluZU1pZHBvaW50U3RhdGUmIGxpbmVNaWRwb2ludFN0YXRlID0gcmVzb2x2ZXIu
bWlkcG9pbnRTdGF0ZSgpOwogCi0gICAgTGluZVdpZHRoIHdpZHRoKG1fYmxvY2ssIGxpbmVJbmZv
LmlzRmlyc3RMaW5lKCkpOworICAgIExpbmVXaWR0aCB3aWR0aChtX2Jsb2NrLCBsaW5lSW5mby5p
c0ZpcnN0TGluZSgpLCByZXF1aXJlc0luZGVudChsaW5lSW5mby5pc0ZpcnN0TGluZSgpLCBsaW5l
SW5mby5wcmV2aW91c0xpbmVCcm9rZUNsZWFubHkoKSwgbV9ibG9jay0+c3R5bGUoKSkpOwogCiAg
ICAgc2tpcExlYWRpbmdXaGl0ZXNwYWNlKHJlc29sdmVyLCBsaW5lSW5mbywgbGFzdEZsb2F0RnJv
bVByZXZpb3VzTGluZSwgd2lkdGgpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDdjMzA5OTQ4NjY5NWQxNDQyMTJmNzky
NDVhNmIyYTYzNTdkNzZlYi4uMDM0NTJjODM4MTk5MmU4MTIyYzkxZjE0NWY4NzUyYzJiOWZjNDMy
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTI1ICBKYWVodW4gTGltICA8bGphZWh1
bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0gUmVuZGVyaW5nIC13ZWJr
aXQtZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudCBmcm9tIGNzczMtdGV4dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzMjU5CisKKyAgICAg
ICAgQ1NTMyBURVhUIGludHJvZHVjZXMgbmV3IHZhbHVlLCAiZWFjaC1saW5lIiBmb3IgdGV4dC1p
bmRlbnQuCisgICAgICAgIEluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhl
IGJsb2NrIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZQorICAgICAgICBhZnRlciBhIGZv
cmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcyBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3
cmFwIGJyZWFrLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9lYWNoLWxpbmUtZXhwZWN0ZWQu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9l
YWNoLWxpbmUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKwog
MjAxMy0wMy0yNSAgVmljdG9yIENhcmJ1bmUgIDx2Y2FyYnVuZUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVGV4dFRyYWNrIEV4dGVuc2lvbiBmb3IgV2ViVlRUIFJlZ2lvbnMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZWFjaC1saW5lLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50
L2VhY2gtbGluZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4NjhhNTdiMjQxYzUyODc0ZDg2
NGU4ZGUxYTkzODk5Zjk0ZTdlNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2VhY2gtbGluZS1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMjggQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPltjc3MzLXRleHRdIHRleHQt
aW5kZW50PC90aXRsZT4KKyAgICA8c3R5bGU+CisgICAgZGl2IHsgd2lkdGg6ODBweDsgZm9udDog
MTBweCBBaGVtOyBiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTsgfQorICAgIC5ub3JtYWwgeyB0
ZXh0LWluZGVudDogNGVtOyB9CisgICAgLmluZGVudCB7IGNvbG9yOiBibHVlOyB9CisgICAgLmVh
Y2hsaW5lIHsgcGFkZGluZy1sZWZ0OjRlbTsgfQorICAgIDwvc3R5bGU+Cis8L2hlYWQKKzxib2R5
PgorPGRpdiBjbGFzcz0ibm9ybWFsIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+
PGJyPnh4eHg8YnI+eHh4eAorPC9kaXY+Cis8YnI+Cis8ZGl2IGNsYXNzPSJub3JtYWwiPgorPHNw
YW4gY2xhc3M9ImluZGVudCI+eHh4eDwvc3Bhbj4geHh4eCB4eHh4Cis8L2Rpdj4KKzxicj4KKzxk
aXYgY2xhc3M9Im5vcm1hbCI+Cis8c3BhbiBjbGFzcz0iaW5kZW50Ij54eHh4PC9zcGFuPjxicj48
c3BhbiBjbGFzcz0iaW5kZW50IGVhY2hsaW5lIj54eHh4PC9zcGFuPjxicj48c3BhbiBjbGFzcz0i
aW5kZW50IGVhY2hsaW5lIj54eHh4PC9zcGFuPgorPC9kaXY+Cis8YnI+Cis8ZGl2IGNsYXNzPSJu
b3JtYWwiPgorPHNwYW4gY2xhc3M9ImluZGVudCI+eHh4eDwvc3Bhbj4geHh4eDxicj48c3BhbiBj
bGFzcz0iaW5kZW50IGVhY2hsaW5lIj54eHh4PC9zcGFuPgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5k
ZW50L2VhY2gtbGluZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0
LWluZGVudC9lYWNoLWxpbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDRiMDE0YWZjYjAyZTAyN2I0OTRl
ZjU1ZDQwMGM0ZmE3MDNhYjcwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9lYWNoLWxpbmUuaHRtbApAQCAtMCwwICsxLDM3IEBA
Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5bY3NzMy10ZXh0XSB0ZXh0LWluZGVudDwvdGl0
bGU+CisgICAgPHN0eWxlPgorICAgIGRpdiB7IHdpZHRoOjgwcHg7IGZvbnQ6IDEwcHggQWhlbTsg
YmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7IH0KKyAgICAubm9ybWFsIHsgdGV4dC1pbmRlbnQ6
IDRlbTsgfQorICAgIC5lYWNobGluZSB7IHdpZHRoOjgwcHg7IHRleHQtaW5kZW50OiA0ZW0gLXdl
YmtpdC1lYWNoLWxpbmU7IH0KKyAgICAuaW5kZW50IHsgY29sb3I6IGJsdWU7IH0KKyAgICA8L3N0
eWxlPgorPC9oZWFkCis8Ym9keT4KKzwhLS0KK2FsbCBibGFjayBib3hlcyBzaG91bGQgYmUgbGVm
dC1hbGlnbmVkLgorYWxsIGJsdWUgYm94ZXMgc2hvdWxkIGJlIHJpZ2h0LWFsaWduZWQuCistLT4K
KworPCEtLSBub3JtYWwgdGV4dC1pbmRlbnQgLS0+Cis8ZGl2IGNsYXNzPSJub3JtYWwiPgorPHNw
YW4gY2xhc3M9ImluZGVudCI+eHh4eDwvc3Bhbj48YnI+eHh4eDxicj54eHh4Cis8L2Rpdj4KKzxi
cj4KKzwhLS0gLXdlYmtpdC1lYWNoLWxpbmUgd2l0aCBhIHNvZnQgd3JhcCBicmVhayAtLT4KKzxk
aXYgY2xhc3M9ImVhY2hsaW5lIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+IHh4
eHggeHh4eAorPC9kaXY+Cis8YnI+Cis8IS0tIC13ZWJraXQtZWFjaC1saW5lIHdpdGggYSBmb3Jj
ZWQgbGluZSBicmVhayAtLT4KKzxkaXYgY2xhc3M9ImVhY2hsaW5lIj4KKzxzcGFuIGNsYXNzPSJp
bmRlbnQiPnh4eHg8L3NwYW4+PGJyPjxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+PGJy
PjxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+Cis8L2Rpdj4KKzxicj4KKzwhLS0gLXdl
YmtpdC1lYWNoLWxpbmUgd2l0aCBhIHNvZnQgd3JhcCBicmVhayBhbmQgYSBmb3JjZWQgbGluZSBi
cmVhayAtLT4KKzxkaXYgY2xhc3M9ImVhY2hsaW5lIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4
eHg8L3NwYW4+IHh4eHg8YnI+PHNwYW4gY2xhc3M9ImluZGVudCI+eHh4eDwvc3Bhbj4KKzwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBlMzM1MDAwZmJkM2M0OWVlOTczNGU5MDEzZWI3YjFiMDNhNTM3ZTZiLi5kNDZi
YThmODY0MmMxYjkwZGVmMWVlNWMzNmY0ZTdkYjM1Y2QwMTU3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjQ4OSw2ICsyNDg5LDcgQEAgZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0
eWxlLXRleHQtZGVjb3IKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dldENv
bXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LXVuZGVybGluZS1wb3NpdGlvbi5odG1s
CiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29t
cHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbAogZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRl
bnQuaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9lYWNoLWxpbmUuaHRtbAog
CiAjIEFDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyBpcyBkaXNhYmxlZCBvbiBXaW5kb3dz
CiBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGxpbmctd2l0aG91dC1wYWludGluZy5odG1sCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBl
ZDYyODUxMDAwNGQ2MDA4NTQyMGU3NjgxNGExZWJmYzg2MGUyMjQ2Li4xMTE0ODA3Mjk3NjVhZjI3
ZTBhMzc5YjNiZjQ3NmUxNjFmZDIwMGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI5ODEsNiArMjk4MSw3IEBAIGZhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHls
ZS10ZXh0LWFsaWduCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1kZWNvcmF0aW9uLWxpbmUuaHRtbAogZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVk
U3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50Lmh0
bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZWFjaC1saW5lLmh0bWwKIAogIyBT
cGVsbGNoZWNrZXIgYmVoYXZpb3IgdGVzdHMuCiB3ZWJraXQub3JnL2IvMTA4MzcwIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>195475</attachid>
            <date>2013-03-27 20:43:17 -0700</date>
            <delta_ts>2013-04-02 17:21:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113259-20130328124314.patch</filename>
            <type>text/plain</type>
            <size>25325</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4NmExNjJmNzYzMTQ0
MWM4ZTE1YzQ2NDc1ZmU0NGQ1ZTM1Y2FlOS4uN2ZiOGZhOGVkOTE4NGQwY2FlMzFhZjI2MmUxZTZl
MzAyZGY1YTRkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTAzLTI3ICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UmVuZGVyaW5nIC13ZWJraXQtZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudCBmcm9tIGNz
czMtdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEzMjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q1NTMyBURVhUIGludHJvZHVjZXMgbmV3IHZhbHVlLCAiZWFjaC1saW5lIiBmb3IgdGV4dC1pbmRl
bnQuCisgICAgICAgIEluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJs
b2NrIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZQorICAgICAgICBhZnRlciBhIGZvcmNl
ZCBsaW5lIGJyZWFrLCBidXQgZG9lcyBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFw
IGJyZWFrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgdGhlIHJlbmRlcmluZyBwYXJ0IHRvIHN1
cHBvcnQgZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudC4KKyAgICAgICAgSXQncyBwcmVm
aXhlZCBhbmQgZ3VhcmRlZCBieSBDU1MzX1RFWFQgZmxhZy4KKworICAgICAgICBUZXN0OiBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L3RleHQtaW5kZW50LWVhY2gtbGluZS5odG1sCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjphdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JMaW5lKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OnN0YXJ0T2Zmc2V0Rm9yTGluZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9jazo6ZW5kT2Zmc2V0Rm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6cGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwaXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRG
b3JMaW5lKToKKyAgICAgICAgICAgIFJlbmFtZSBhIHBhcmFtZXRlciBmcm9tIGZpcnN0TGluZSB0
byBzaG91bGRJbmRlbnRUZXh0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5lV2lkdGg6OkxpbmVXaWR0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMaW5lV2lkdGg6OnNob3VsZEluZGVudFRleHQpOiBSZXR1cm4gYm9v
bGVhbiBhY2NvcmRpbmcgdG8gbV9zaG91bGRJbmRlbnRUZXh0LgorICAgICAgICAoV2ViQ29yZTo6
TGluZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5l
V2lkdGg6OnNocmlua0F2YWlsYWJsZVdpZHRoRm9yTmV3RmxvYXRJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKToKKyAgICAgICAgICAgIEFkZCBl
bnVtIEluZGVudFRleHRPck5vdCBhbmQgbV9zaG91bGRJbmRlbnRUZXh0LgorICAgICAgICAgICAg
VXNlIG1fc2hvdWxkSW5kZW50VGV4dCBpbnN0ZWFkIG9mIG1faXNGaXJzdExpbmUuCisKKyAgICAg
ICAgKFdlYkNvcmU6OnJlcXVpcmVzSW5kZW50KTogRGVjaWRlIHdoZXRoZXIgdGV4dCBpbmRlbnRh
dGlvbiBpcyByZXF1aXJlZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZUxvZ2ljYWxJbmxpbmVQ
b3NpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVE
aXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayk6CisKIDIwMTMtMDMtMjcgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIENocm9taXVtIE1hYyBmYWlscyB0byBi
dWlsZCBhZnRlciByMTQ2OTk1IGJlY2F1c2UgdGhlIG5ldyBOU0ZvbnQgY2F0ZWdvcnkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggMDZlZjM4MzA0MzA1MTFmNjg1ZGUx
Y2MxNGUzY2Q2YjViMTBjYzdjNS4uODUyMTg1NWYyMTZjNzlhZjBmY2I4YjFkM2Y1ZDMxNTE2Mzk2
ODRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTE2NSw2NiAr
MTY1LDY2IEBAIHB1YmxpYzoKIAogICAgIC8vIFZlcnNpb25zIHRoYXQgY2FuIGNvbXB1dGUgbGlu
ZSBvZmZzZXRzIHdpdGggdGhlIHJlZ2lvbiBhbmQgcGFnZSBvZmZzZXQgcGFzc2VkIGluLiBVc2Vk
IGZvciBzcGVlZCB0byBhdm9pZCBoYXZpbmcgdG8KICAgICAvLyBjb21wdXRlIHRoZSByZWdpb24g
YWxsIG92ZXIgYWdhaW4gd2hlbiB5b3UgYWxyZWFkeSBrbm93IGl0LgotICAgIExheW91dFVuaXQg
YXZhaWxhYmxlTG9naWNhbFdpZHRoRm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZp
cnN0TGluZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2lj
YWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QKKyAg
ICBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckxpbmUoTGF5b3V0VW5pdCBwb3Np
dGlvbiwgYm9vbCBzaG91bGRJbmRlbnRUZXh0LCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0
VW5pdCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBMYXlvdXRVbml0IGxvZ2ljYWxI
ZWlnaHQgPSAwKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1heDxMYXlvdXRVbml0Pigw
LCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJzdExpbmUsIHJlZ2lvbiwg
b2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9naWNhbEhlaWdodCkKLSAgICAgICAg
ICAgIC0gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJzdExpbmUsIHJlZ2lv
biwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9naWNhbEhlaWdodCkpOworICAg
ICAgICByZXR1cm4gbWF4PExheW91dFVuaXQ+KDAsIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUo
cG9zaXRpb24sIHNob3VsZEluZGVudFRleHQsIHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BP
ZkZpcnN0UGFnZSwgbG9naWNhbEhlaWdodCkKKyAgICAgICAgICAgIC0gbG9naWNhbExlZnRPZmZz
ZXRGb3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJbmRlbnRUZXh0LCByZWdpb24sIG9mZnNldEZyb21M
b2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIGxvZ2ljYWxIZWlnaHQpKTsKICAgICB9Ci0gICAgTGF5b3V0
VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wg
Zmlyc3RMaW5lLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0VW5pdCBvZmZzZXRGcm9tTG9n
aWNhbFRvcE9mRmlyc3RQYWdlLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdCAK
KyAgICBMYXlvdXRVbml0IGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3Np
dGlvbiwgYm9vbCBzaG91bGRJbmRlbnRUZXh0LCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0
VW5pdCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBMYXlvdXRVbml0IGxvZ2ljYWxI
ZWlnaHQgPSAwKSBjb25zdCAKICAgICB7Ci0gICAgICAgIHJldHVybiBsb2dpY2FsUmlnaHRPZmZz
ZXRGb3JMaW5lKHBvc2l0aW9uLCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KHJlZ2lvbiwg
b2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSksIGZpcnN0TGluZSwgMCwgbG9naWNhbEhl
aWdodCk7CisgICAgICAgIHJldHVybiBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9u
LCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxU
b3BPZkZpcnN0UGFnZSksIHNob3VsZEluZGVudFRleHQsIDAsIGxvZ2ljYWxIZWlnaHQpOwogICAg
IH0KLSAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBv
c2l0aW9uLCBib29sIGZpcnN0TGluZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVuaXQg
b2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0
ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoTGF5
b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBzaG91bGRJbmRlbnRUZXh0LCBSZW5kZXJSZWdpb24qIHJl
Z2lvbiwgTGF5b3V0VW5pdCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBMYXlvdXRV
bml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdCAKICAgICB7Ci0gICAgICAgIHJldHVybiBsb2dp
Y2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yQ29udGVu
dChyZWdpb24sIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UpLCBmaXJzdExpbmUsIDAs
IGxvZ2ljYWxIZWlnaHQpOworICAgICAgICByZXR1cm4gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5l
KHBvc2l0aW9uLCBsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRlbnQocmVnaW9uLCBvZmZzZXRGcm9t
TG9naWNhbFRvcE9mRmlyc3RQYWdlKSwgc2hvdWxkSW5kZW50VGV4dCwgMCwgbG9naWNhbEhlaWdo
dCk7CiAgICAgfQotICAgIExheW91dFVuaXQgc3RhcnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQg
cG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0VW5p
dCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQgPSAwKSBjb25zdAorICAgIExheW91dFVuaXQgc3RhcnRPZmZzZXRGb3JMaW5lKExheW91dFVu
aXQgcG9zaXRpb24sIGJvb2wgc2hvdWxkSW5kZW50VGV4dCwgUmVuZGVyUmVnaW9uKiByZWdpb24s
IExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBs
b2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzdHlsZSgpLT5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRp
b24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBs
b2dpY2FsSGVpZ2h0KQotICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdo
dE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9n
aWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHN0eWxl
KCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShw
b3NpdGlvbiwgc2hvdWxkSW5kZW50VGV4dCwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9m
Rmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KQorICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAt
IGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIHNob3VsZEluZGVudFRleHQsIHJl
Z2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9naWNhbEhlaWdodCk7CiAg
ICAgfQotICAgIExheW91dFVuaXQgZW5kT2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9u
LCBib29sIGZpcnN0TGluZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVuaXQgb2Zmc2V0
RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkg
Y29uc3QKKyAgICBMYXlvdXRVbml0IGVuZE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlv
biwgYm9vbCBzaG91bGRJbmRlbnRUZXh0LCBSZW5kZXJSZWdpb24qIHJlZ2lvbiwgTGF5b3V0VW5p
dCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQgPSAwKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuICFzdHlsZSgpLT5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0
TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdlLCBsb2dpY2FsSGVp
Z2h0KQotICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNldEZv
ckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9m
Rmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuICFzdHlsZSgpLT5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24s
IHNob3VsZEluZGVudFRleHQsIHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFn
ZSwgbG9naWNhbEhlaWdodCkKKyAgICAgICAgICAgIDogbG9naWNhbFdpZHRoKCkgLSBsb2dpY2Fs
UmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJbmRlbnRUZXh0LCByZWdpb24sIG9m
ZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIGxvZ2ljYWxIZWlnaHQpOwogICAgIH0KIAot
ICAgIExheW91dFVuaXQgYXZhaWxhYmxlTG9naWNhbFdpZHRoRm9yTGluZShMYXlvdXRVbml0IHBv
c2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29u
c3QKKyAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aEZvckxpbmUoTGF5b3V0VW5p
dCBwb3NpdGlvbiwgYm9vbCBzaG91bGRJbmRlbnRUZXh0LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQgPSAwKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGF2YWlsYWJsZUxvZ2ljYWxXaWR0
aEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgcmVnaW9uQXRCbG9ja09mZnNldChwb3NpdGlv
biksIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UoKSwgbG9naWNhbEhlaWdodCk7Cisg
ICAgICAgIHJldHVybiBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JMaW5lKHBvc2l0aW9uLCBzaG91
bGRJbmRlbnRUZXh0LCByZWdpb25BdEJsb2NrT2Zmc2V0KHBvc2l0aW9uKSwgb2Zmc2V0RnJvbUxv
Z2ljYWxUb3BPZkZpcnN0UGFnZSgpLCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0
VW5pdCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wg
Zmlyc3RMaW5lLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdCAKKyAgICBMYXlv
dXRVbml0IGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9v
bCBzaG91bGRJbmRlbnRUZXh0LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdCAK
ICAgICB7Ci0gICAgICAgIHJldHVybiBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9u
LCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JDb250ZW50KHBvc2l0aW9uKSwgZmlyc3RMaW5lLCAwLCBs
b2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIGxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUo
cG9zaXRpb24sIGxvZ2ljYWxSaWdodE9mZnNldEZvckNvbnRlbnQocG9zaXRpb24pLCBzaG91bGRJ
bmRlbnRUZXh0LCAwLCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBsb2dp
Y2FsTGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExpbmUs
IExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAorICAgIExheW91dFVuaXQgbG9n
aWNhbExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgc2hvdWxkSW5k
ZW50VGV4dCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAgICAgewotICAg
ICAgICByZXR1cm4gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBsb2dpY2FsTGVm
dE9mZnNldEZvckNvbnRlbnQocG9zaXRpb24pLCBmaXJzdExpbmUsIDAsIGxvZ2ljYWxIZWlnaHQp
OworICAgICAgICByZXR1cm4gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBsb2dp
Y2FsTGVmdE9mZnNldEZvckNvbnRlbnQocG9zaXRpb24pLCBzaG91bGRJbmRlbnRUZXh0LCAwLCBs
b2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBwaXhlbFNuYXBwZWRMb2dpY2Fs
TGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExpbmUsIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAorICAgIExheW91dFVuaXQgcGl4ZWxT
bmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wg
c2hvdWxkSW5kZW50VGV4dCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAg
ICAgewotICAgICAgICByZXR1cm4gcm91bmRUb0ludChsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUo
cG9zaXRpb24sIGZpcnN0TGluZSwgbG9naWNhbEhlaWdodCkpOworICAgICAgICByZXR1cm4gcm91
bmRUb0ludChsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIHNob3VsZEluZGVudFRl
eHQsIGxvZ2ljYWxIZWlnaHQpKTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBwaXhlbFNuYXBwZWRM
b2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RM
aW5lLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdCAKKyAgICBMYXlvdXRVbml0
IHBpeGVsU25hcHBlZExvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlv
biwgYm9vbCBzaG91bGRJbmRlbnRUZXh0LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBj
b25zdCAKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBNdWx0aWNvbHVtbiBsYXlvdXRzIGJyZWFr
IGNhcnJ5aW5nIG92ZXIgc3VicGl4ZWwgdmFsdWVzIHRvIHRoZSBsb2dpY2FsIHJpZ2h0IG9mZnNl
dCBiZWNhdXNlIHRoZSBsaW5lcyBtYXkgYmUgc2hpZnRlZAogICAgICAgICAvLyBieSBhIHN1YnBp
eGVsIHZhbHVlIGZvciBhbGwgYnV0IHRoZSBmaXJzdCBjb2x1bW4uIFRoaXMgY2FuIGxlYWQgdG8g
dGhlIGFjdHVhbCBwaXhlbCBzbmFwcGVkIHdpZHRoIG9mIHRoZSBjb2x1bW4gYmVpbmcgb2ZmCiAg
ICAgICAgIC8vIGJ5IG9uZSBwaXhlbCB3aGVuIHJlbmRlcmVkIHZlcnN1cyBsYXllZCBvdXQsIHdo
aWNoIGNhbiByZXN1bHQgaW4gdGhlIGxpbmUgYmVpbmcgY2xpcHBlZC4gRm9yIG5vdywgd2UgaGF2
ZSB0byBmbG9vci4KICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNTQ2MQotICAgICAgICByZXR1cm4gZmxvb3JUb0ludChsb2dpY2FsUmlnaHRPZmZz
ZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJzdExpbmUsIGxvZ2ljYWxIZWlnaHQpKTsKKyAgICAgICAg
cmV0dXJuIGZsb29yVG9JbnQobG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgc2hv
dWxkSW5kZW50VGV4dCwgbG9naWNhbEhlaWdodCkpOwogICAgIH0KLSAgICBMYXlvdXRVbml0IHN0
YXJ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QKKyAgICBMYXlvdXRVbml0IHN0YXJ0T2Zm
c2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVudFRleHQsIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4g
c3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbG9naWNhbExlZnRPZmZzZXRGb3JM
aW5lKHBvc2l0aW9uLCBmaXJzdExpbmUsIGxvZ2ljYWxIZWlnaHQpCi0gICAgICAgICAgICA6IGxv
Z2ljYWxXaWR0aCgpIC0gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgZmlyc3RM
aW5lLCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgc2hvdWxk
SW5kZW50VGV4dCwgbG9naWNhbEhlaWdodCkKKyAgICAgICAgICAgIDogbG9naWNhbFdpZHRoKCkg
LSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJbmRlbnRUZXh0LCBs
b2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBlbmRPZmZzZXRGb3JMaW5lKExh
eW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQgPSAwKSBjb25zdAorICAgIExheW91dFVuaXQgZW5kT2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0
IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVudFRleHQsIExheW91dFVuaXQgbG9naWNhbEhlaWdo
dCA9IDApIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gIXN0eWxlKCktPmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgZmlyc3RM
aW5lLCBsb2dpY2FsSGVpZ2h0KQotICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2lj
YWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgbG9naWNhbEhlaWdodCk7
CisgICAgICAgIHJldHVybiAhc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbG9n
aWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJbmRlbnRUZXh0LCBsb2dpY2Fs
SGVpZ2h0KQorICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2ljYWxSaWdodE9mZnNl
dEZvckxpbmUocG9zaXRpb24sIHNob3VsZEluZGVudFRleHQsIGxvZ2ljYWxIZWlnaHQpOwogICAg
IH0KIAotICAgIExheW91dFVuaXQgc3RhcnRBbGlnbmVkT2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0
IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSk7CisgICAgTGF5b3V0VW5pdCBzdGFydEFsaWduZWRP
ZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgc2hvdWxkSW5kZW50VGV4dCk7
CiAgICAgTGF5b3V0VW5pdCB0ZXh0SW5kZW50T2Zmc2V0KCkgY29uc3Q7CiAKICAgICB2aXJ0dWFs
IFZpc2libGVQb3NpdGlvbiBwb3NpdGlvbkZvclBvaW50KGNvbnN0IExheW91dFBvaW50Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
CmluZGV4IGRhNTY5NjI5Y2UyZjU3NGYxZjUwOTZlZDcyNGIwMjEzMzBlNDI0YjkuLjIxODk5ZTAz
MTZhYWUzOWFhOGU5OTA2YWUyY2M4Y2FmN2M5ZTNhNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC04OSw5ICs4OSwxMSBA
QCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIFJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8oKSBjb25zdAogfQogI2VuZGlmCiAKK2VudW0gSW5kZW50VGV4dE9yTm90
IHsgRG9Ob3RJbmRlbnRUZXh0LCBJbmRlbnRUZXh0IH07CisKIGNsYXNzIExpbmVXaWR0aCB7CiBw
dWJsaWM6Ci0gICAgTGluZVdpZHRoKFJlbmRlckJsb2NrKiBibG9jaywgYm9vbCBpc0ZpcnN0TGlu
ZSkKKyAgICBMaW5lV2lkdGgoUmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW5lLCBJ
bmRlbnRUZXh0T3JOb3Qgc2hvdWxkSW5kZW50VGV4dCkKICAgICAgICAgOiBtX2Jsb2NrKGJsb2Nr
KQogICAgICAgICAsIG1fdW5jb21taXR0ZWRXaWR0aCgwKQogICAgICAgICAsIG1fY29tbWl0dGVk
V2lkdGgoMCkKQEAgLTEwMyw2ICsxMDUsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9zZWdtZW50
KDApCiAjZW5kaWYKICAgICAgICAgLCBtX2lzRmlyc3RMaW5lKGlzRmlyc3RMaW5lKQorICAgICAg
ICAsIG1fc2hvdWxkSW5kZW50VGV4dChzaG91bGRJbmRlbnRUZXh0KQogICAgIHsKICAgICAgICAg
QVNTRVJUKGJsb2NrKTsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCkBAIC0xMzIsNiArMTM1
LDggQEAgcHVibGljOgogICAgIHZvaWQgYXBwbHlPdmVyaGFuZyhSZW5kZXJSdWJ5UnVuKiwgUmVu
ZGVyT2JqZWN0KiBzdGFydFJlbmRlcmVyLCBSZW5kZXJPYmplY3QqIGVuZFJlbmRlcmVyKTsKICAg
ICB2b2lkIGZpdEJlbG93RmxvYXRzKCk7CiAKKyAgICBib29sIHNob3VsZEluZGVudFRleHQoKSB7
IHJldHVybiBtX3Nob3VsZEluZGVudFRleHQgPT0gSW5kZW50VGV4dDsgfQorCiBwcml2YXRlOgog
ICAgIHZvaWQgY29tcHV0ZUF2YWlsYWJsZVdpZHRoRnJvbUxlZnRBbmRSaWdodCgpCiAgICAgewpA
QCAtMTUwLDE0ICsxNTUsMTUgQEAgcHJpdmF0ZToKICAgICBjb25zdCBMaW5lU2VnbWVudCogbV9z
ZWdtZW50OwogI2VuZGlmCiAgICAgYm9vbCBtX2lzRmlyc3RMaW5lOworICAgIEluZGVudFRleHRP
ck5vdCBtX3Nob3VsZEluZGVudFRleHQ7CiB9OwogCiBpbmxpbmUgdm9pZCBMaW5lV2lkdGg6OnVw
ZGF0ZUF2YWlsYWJsZVdpZHRoKExheW91dFVuaXQgcmVwbGFjZWRIZWlnaHQpCiB7CiAgICAgTGF5
b3V0VW5pdCBoZWlnaHQgPSBtX2Jsb2NrLT5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodEZvckxpbmUobV9ibG9jaywgbV9pc0ZpcnN0
TGluZSwgcmVwbGFjZWRIZWlnaHQpOwotICAgIG1fbGVmdCA9IG1fYmxvY2stPmxvZ2ljYWxMZWZ0
T2Zmc2V0Rm9yTGluZShoZWlnaHQsIG1faXNGaXJzdExpbmUsIGxvZ2ljYWxIZWlnaHQpOwotICAg
IG1fcmlnaHQgPSBtX2Jsb2NrLT5sb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGhlaWdodCwgbV9p
c0ZpcnN0TGluZSwgbG9naWNhbEhlaWdodCk7CisgICAgbV9sZWZ0ID0gbV9ibG9jay0+bG9naWNh
bExlZnRPZmZzZXRGb3JMaW5lKGhlaWdodCwgc2hvdWxkSW5kZW50VGV4dCgpLCBsb2dpY2FsSGVp
Z2h0KTsKKyAgICBtX3JpZ2h0ID0gbV9ibG9jay0+bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZSho
ZWlnaHQsIHNob3VsZEluZGVudFRleHQoKSwgbG9naWNhbEhlaWdodCk7CiAKICNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCiAgICAgaWYgKG1fc2VnbWVudCkgewpAQCAtMTg4LDcgKzE5NCw3IEBA
IGlubGluZSB2b2lkIExpbmVXaWR0aDo6c2hyaW5rQXZhaWxhYmxlV2lkdGhGb3JOZXdGbG9hdElm
TmVlZGVkKFJlbmRlckJsb2NrOjpGbG9hCiAgICAgICAgICAgICBuZXdMZWZ0ICs9IHNoYXBlT3V0
c2lkZUluZm8tPnJpZ2h0U2VnbWVudFNoYXBlQm91bmRpbmdCb3hEZWx0YSgpOwogI2VuZGlmCiAK
LSAgICAgICAgaWYgKG1faXNGaXJzdExpbmUgJiYgbV9ibG9jay0+c3R5bGUoKS0+aXNMZWZ0VG9S
aWdodERpcmVjdGlvbigpKQorICAgICAgICBpZiAoc2hvdWxkSW5kZW50VGV4dCgpICYmIG1fYmxv
Y2stPnN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKICAgICAgICAgICAgIG5ld0xl
ZnQgKz0gZmxvb3JUb0ludChtX2Jsb2NrLT50ZXh0SW5kZW50T2Zmc2V0KCkpOwogICAgICAgICBt
X2xlZnQgPSBtYXg8ZmxvYXQ+KG1fbGVmdCwgbmV3TGVmdCk7CiAgICAgfSBlbHNlIHsKQEAgLTE5
OCw3ICsyMDQsNyBAQCBpbmxpbmUgdm9pZCBMaW5lV2lkdGg6OnNocmlua0F2YWlsYWJsZVdpZHRo
Rm9yTmV3RmxvYXRJZk5lZWRlZChSZW5kZXJCbG9jazo6RmxvYQogICAgICAgICAgICAgbmV3Umln
aHQgKz0gc2hhcGVPdXRzaWRlSW5mby0+bGVmdFNlZ21lbnRTaGFwZUJvdW5kaW5nQm94RGVsdGEo
KTsKICNlbmRpZgogCi0gICAgICAgIGlmIChtX2lzRmlyc3RMaW5lICYmICFtX2Jsb2NrLT5zdHls
ZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCisgICAgICAgIGlmIChzaG91bGRJbmRlbnRU
ZXh0KCkgJiYgIW1fYmxvY2stPnN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKICAg
ICAgICAgICAgIG5ld1JpZ2h0IC09IGZsb29yVG9JbnQobV9ibG9jay0+dGV4dEluZGVudE9mZnNl
dCgpKTsKICAgICAgICAgbV9yaWdodCA9IG1pbjxmbG9hdD4obV9yaWdodCwgbmV3UmlnaHQpOwog
ICAgIH0KQEAgLTIzNSw4ICsyNDEsOCBAQCB2b2lkIExpbmVXaWR0aDo6Zml0QmVsb3dGbG9hdHMo
KQogICAgICAgICBpZiAoZmxvYXRMb2dpY2FsQm90dG9tIDw9IGxhc3RGbG9hdExvZ2ljYWxCb3R0
b20pCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBuZXdMaW5lTGVmdCA9IG1fYmxvY2st
PmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShmbG9hdExvZ2ljYWxCb3R0b20sIG1faXNGaXJzdExp
bmUpOwotICAgICAgICBuZXdMaW5lUmlnaHQgPSBtX2Jsb2NrLT5sb2dpY2FsUmlnaHRPZmZzZXRG
b3JMaW5lKGZsb2F0TG9naWNhbEJvdHRvbSwgbV9pc0ZpcnN0TGluZSk7CisgICAgICAgIG5ld0xp
bmVMZWZ0ID0gbV9ibG9jay0+bG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGZsb2F0TG9naWNhbEJv
dHRvbSwgc2hvdWxkSW5kZW50VGV4dCgpKTsKKyAgICAgICAgbmV3TGluZVJpZ2h0ID0gbV9ibG9j
ay0+bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShmbG9hdExvZ2ljYWxCb3R0b20sIHNob3VsZElu
ZGVudFRleHQoKSk7CiAgICAgICAgIG5ld0xpbmVXaWR0aCA9IG1heCgwLjBmLCBuZXdMaW5lUmln
aHQgLSBuZXdMaW5lTGVmdCk7CiAgICAgICAgIGxhc3RGbG9hdExvZ2ljYWxCb3R0b20gPSBmbG9h
dExvZ2ljYWxCb3R0b207CiAgICAgICAgIGlmIChuZXdMaW5lV2lkdGggPj0gbV91bmNvbW1pdHRl
ZFdpZHRoKQpAQCAtOTQ2LDExICs5NTIsMjUgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlTG9n
aWNhbFdpZHRoRm9yQWxpZ25tZW50KGNvbnN0IEVUZXh0QWxpZ24mIHRleHRBbGlnbiwgQmkKICAg
ICB9CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnMoUmVuZGVy
QmxvY2sqIGJsb2NrLCBmbG9hdCYgbGluZUxvZ2ljYWxMZWZ0LCBmbG9hdCYgbGluZUxvZ2ljYWxS
aWdodCwgZmxvYXQmIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgYm9vbCBmaXJzdExpbmUsIExheW91
dFVuaXQgYm94TG9naWNhbEhlaWdodCkKK3N0YXRpYyBJbmRlbnRUZXh0T3JOb3QgcmVxdWlyZXNJ
bmRlbnQoYm9vbCBpc0ZpcnN0TGluZSwgYm9vbCBpc0hhcmRMaW5lQnJlYWssIFJlbmRlclN0eWxl
KiBzdHlsZSkKK3sKKyAgICBpZiAoaXNGaXJzdExpbmUpCisgICAgICAgIHJldHVybiBJbmRlbnRU
ZXh0OworI2lmIEVOQUJMRShDU1MzX1RFWFQpCisgICAgaWYgKGlzSGFyZExpbmVCcmVhayAmJiBz
dHlsZS0+dGV4dEluZGVudExpbmUoKSA9PSBUZXh0SW5kZW50RWFjaExpbmUpIAorICAgICAgICBy
ZXR1cm4gSW5kZW50VGV4dDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGlzSGFyZExpbmVCcmVh
ayk7CisgICAgVU5VU0VEX1BBUkFNKHN0eWxlKTsKKyNlbmRpZgorICAgIHJldHVybiBEb05vdElu
ZGVudFRleHQ7Cit9CisKK3N0YXRpYyB2b2lkIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnMo
UmVuZGVyQmxvY2sqIGJsb2NrLCBmbG9hdCYgbGluZUxvZ2ljYWxMZWZ0LCBmbG9hdCYgbGluZUxv
Z2ljYWxSaWdodCwgZmxvYXQmIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgYm9vbCBmaXJzdExpbmUs
IEluZGVudFRleHRPck5vdCBzaG91bGRJbmRlbnRUZXh0LCBMYXlvdXRVbml0IGJveExvZ2ljYWxI
ZWlnaHQpCiB7CiAgICAgTGF5b3V0VW5pdCBsaW5lTG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWln
aHRGb3JMaW5lKGJsb2NrLCBmaXJzdExpbmUsIGJveExvZ2ljYWxIZWlnaHQpOwotICAgIGxpbmVM
b2dpY2FsTGVmdCA9IGJsb2NrLT5waXhlbFNuYXBwZWRMb2dpY2FsTGVmdE9mZnNldEZvckxpbmUo
YmxvY2stPmxvZ2ljYWxIZWlnaHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7Ci0g
ICAgbGluZUxvZ2ljYWxSaWdodCA9IGJsb2NrLT5waXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZz
ZXRGb3JMaW5lKGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCksIGZpcnN0TGluZSwgbGluZUxvZ2ljYWxI
ZWlnaHQpOworICAgIGxpbmVMb2dpY2FsTGVmdCA9IGJsb2NrLT5waXhlbFNuYXBwZWRMb2dpY2Fs
TGVmdE9mZnNldEZvckxpbmUoYmxvY2stPmxvZ2ljYWxIZWlnaHQoKSwgc2hvdWxkSW5kZW50VGV4
dCA9PSBJbmRlbnRUZXh0LCBsaW5lTG9naWNhbEhlaWdodCk7CisgICAgbGluZUxvZ2ljYWxSaWdo
dCA9IGJsb2NrLT5waXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGJsb2NrLT5s
b2dpY2FsSGVpZ2h0KCksIHNob3VsZEluZGVudFRleHQgPT0gSW5kZW50VGV4dCwgbGluZUxvZ2lj
YWxIZWlnaHQpOwogICAgIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCA9IGxpbmVMb2dpY2FsUmlnaHQg
LSBsaW5lTG9naWNhbExlZnQ7CiB9CiAKQEAgLTk2MSwxMSArOTgxLDE1IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVC
b3gqIGxpbmVCb3gsCiAgICAgCiAgICAgLy8gQ1NTIDIuMTogIidUZXh0LWluZGVudCcgb25seSBh
ZmZlY3RzIGEgbGluZSBpZiBpdCBpcyB0aGUgZmlyc3QgZm9ybWF0dGVkIGxpbmUgb2YgYW4gZWxl
bWVudC4gRm9yIGV4YW1wbGUsIHRoZSBmaXJzdCBsaW5lIG9mIGFuIGFub255bW91cyBibG9jayAK
ICAgICAvLyBib3ggaXMgb25seSBhZmZlY3RlZCBpZiBpdCBpcyB0aGUgZmlyc3QgY2hpbGQgb2Yg
aXRzIHBhcmVudCBlbGVtZW50LiIKLSAgICBib29sIGZpcnN0TGluZSA9IGxpbmVJbmZvLmlzRmly
c3RMaW5lKCkgJiYgIShpc0Fub255bW91c0Jsb2NrKCkgJiYgcGFyZW50KCktPmZpcnN0Q2hpbGQo
KSAhPSB0aGlzKTsKKyAgICAvLyBDU1MzICJ0ZXh0LWluZGVudCIsICItd2Via2l0LWVhY2gtbGlu
ZSIgYWZmZWN0cyB0aGUgZmlyc3QgbGluZSBvZiB0aGUgYmxvY2sgY29udGFpbmVyIGFzIHdlbGwg
YXMgZWFjaCBsaW5lIGFmdGVyIGEgZm9yY2VkIGxpbmUgYnJlYWssCisgICAgLy8gYnV0IGRvZXMg
bm90IGFmZmVjdCBsaW5lcyBhZnRlciBhIHNvZnQgd3JhcCBicmVhay4KKyAgICBib29sIGlzRmly
c3RMaW5lID0gbGluZUluZm8uaXNGaXJzdExpbmUoKSAmJiAhKGlzQW5vbnltb3VzQmxvY2soKSAm
JiBwYXJlbnQoKS0+Zmlyc3RDaGlsZCgpICE9IHRoaXMpOworICAgIGJvb2wgaXNIYXJkTGluZUJy
ZWFrID0gbGluZUJveC0+cHJldlJvb3RCb3goKSAmJiBsaW5lQm94LT5wcmV2Um9vdEJveCgpLT5l
bmRzV2l0aEJyZWFrKCk7CisgICAgSW5kZW50VGV4dE9yTm90IHNob3VsZEluZGVudFRleHQgPSBy
ZXF1aXJlc0luZGVudChpc0ZpcnN0TGluZSwgaXNIYXJkTGluZUJyZWFrLCBzdHlsZSgpKTsKICAg
ICBmbG9hdCBsaW5lTG9naWNhbExlZnQ7CiAgICAgZmxvYXQgbGluZUxvZ2ljYWxSaWdodDsKICAg
ICBmbG9hdCBhdmFpbGFibGVMb2dpY2FsV2lkdGg7Ci0gICAgdXBkYXRlTG9naWNhbElubGluZVBv
c2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsUmlnaHQsIGF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCAwKTsKKyAgICB1cGRhdGVMb2dpY2FsSW5saW5lUG9z
aXRpb25zKHRoaXMsIGxpbmVMb2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxSaWdodCwgYXZhaWxhYmxl
TG9naWNhbFdpZHRoLCBpc0ZpcnN0TGluZSwgc2hvdWxkSW5kZW50VGV4dCwgMCk7CiAgICAgYm9v
bCBuZWVkc1dvcmRTcGFjaW5nOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwpAQCAtMTAwMSw3ICsxMDI1LDcgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGlu
ZUJveCogbGluZUJveCwKIAogICAgIGlmIChmaXJzdFJ1biAmJiBmaXJzdFJ1bi0+bV9vYmplY3Qt
PmlzUmVwbGFjZWQoKSkgewogICAgICAgICBSZW5kZXJCb3gqIHJlbmRlckJveCA9IHRvUmVuZGVy
Qm94KGZpcnN0UnVuLT5tX29iamVjdCk7Ci0gICAgICAgIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3Np
dGlvbnModGhpcywgbGluZUxvZ2ljYWxMZWZ0LCBsaW5lTG9naWNhbFJpZ2h0LCBhdmFpbGFibGVM
b2dpY2FsV2lkdGgsIGZpcnN0TGluZSwgcmVuZGVyQm94LT5sb2dpY2FsSGVpZ2h0KCkpOworICAg
ICAgICB1cGRhdGVMb2dpY2FsSW5saW5lUG9zaXRpb25zKHRoaXMsIGxpbmVMb2dpY2FsTGVmdCwg
bGluZUxvZ2ljYWxSaWdodCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBpc0ZpcnN0TGluZSwgc2hv
dWxkSW5kZW50VGV4dCwgcmVuZGVyQm94LT5sb2dpY2FsSGVpZ2h0KCkpOwogICAgIH0KIAogICAg
IGNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JTZWdtZW50KGxpbmVCb3gsIGxpbmVJ
bmZvLCB0ZXh0QWxpZ24sIGxpbmVMb2dpY2FsTGVmdCwgYXZhaWxhYmxlTG9naWNhbFdpZHRoLCBm
aXJzdFJ1biwgdHJhaWxpbmdTcGFjZVJ1biwgdGV4dEJveERhdGFNYXAsIHZlcnRpY2FsUG9zaXRp
b25DYWNoZSwgd29yZE1lYXN1cmVtZW50cyk7CkBAIC0yNjE5LDcgKzI2NDMsNyBAQCBJbmxpbmVJ
dGVyYXRvciBSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRTZWdtZW50QnJlYWsoSW5saW5l
QmlkaVJlc29sdmVyJiByZQogICAgIGJvb2wgaW5jbHVkZUVuZFdpZHRoID0gdHJ1ZTsKICAgICBM
aW5lTWlkcG9pbnRTdGF0ZSYgbGluZU1pZHBvaW50U3RhdGUgPSByZXNvbHZlci5taWRwb2ludFN0
YXRlKCk7CiAKLSAgICBMaW5lV2lkdGggd2lkdGgobV9ibG9jaywgbGluZUluZm8uaXNGaXJzdExp
bmUoKSk7CisgICAgTGluZVdpZHRoIHdpZHRoKG1fYmxvY2ssIGxpbmVJbmZvLmlzRmlyc3RMaW5l
KCksIHJlcXVpcmVzSW5kZW50KGxpbmVJbmZvLmlzRmlyc3RMaW5lKCksIGxpbmVJbmZvLnByZXZp
b3VzTGluZUJyb2tlQ2xlYW5seSgpLCBtX2Jsb2NrLT5zdHlsZSgpKSk7CiAKICAgICBza2lwTGVh
ZGluZ1doaXRlc3BhY2UocmVzb2x2ZXIsIGxpbmVJbmZvLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNM
aW5lLCB3aWR0aCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ZGYxNTMwM2ZhZDI0YTVmNDYwN2UzMDhmMjE1ZTA1NThi
MzAyY2I5Li45YmMyNGQ1ODI4MWU4ZDhlYzZiZGVmNTBjN2UzYTg3MTE0MTIyY2JjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTMtMDMtMjcgIEphZWh1biBMaW0gIDxsamFlaHVuLmxpbUBzYW1z
dW5nLmNvbT4KKworICAgICAgICBbY3NzMy10ZXh0XSBSZW5kZXJpbmcgLXdlYmtpdC1lYWNoLWxp
bmUgdmFsdWUgZm9yIHRleHQtaW5kZW50IGZyb20gY3NzMy10ZXh0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTMyNTkKKyAgICAgICAgCisgICAgICAg
IENTUzMgVEVYVCBpbnRyb2R1Y2VzIG5ldyB2YWx1ZSwgImVhY2gtbGluZSIgZm9yIHRleHQtaW5k
ZW50LgorICAgICAgICBJbmRlbnRhdGlvbiBhZmZlY3RzIHRoZSBmaXJzdCBsaW5lIG9mIHRoZSBi
bG9jayBjb250YWluZXIgYXMgd2VsbCBhcyBlYWNoIGxpbmUKKyAgICAgICAgYWZ0ZXIgYSBmb3Jj
ZWQgbGluZSBicmVhaywgYnV0IGRvZXMgbm90IGFmZmVjdCBsaW5lcyBhZnRlciBhIHNvZnQgd3Jh
cCBicmVhay4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvdGV4dC1pbmRlbnQtZWFjaC1saW5l
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4
dC1pbmRlbnQvdGV4dC1pbmRlbnQtZWFjaC1saW5lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJv
L1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDMtMjcgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZy4gUmViYXNl
bGluaW5nIGFmdGVyIHIxNDY5OTIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NzczMt
dGV4dC9jc3MzLXRleHQtaW5kZW50L3RleHQtaW5kZW50LWVhY2gtbGluZS1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC90ZXh0LWluZGVu
dC1lYWNoLWxpbmUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODY4YTU3YjI0MWM1Mjg3NGQ4
NjRlOGRlMWE5Mzg5OWY5NGU3ZTQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC90ZXh0LWluZGVudC1lYWNoLWxpbmUtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5bY3Nz
My10ZXh0XSB0ZXh0LWluZGVudDwvdGl0bGU+CisgICAgPHN0eWxlPgorICAgIGRpdiB7IHdpZHRo
OjgwcHg7IGZvbnQ6IDEwcHggQWhlbTsgYmFja2dyb3VuZC1jb2xvcjpsaWdodGdyYXk7IH0KKyAg
ICAubm9ybWFsIHsgdGV4dC1pbmRlbnQ6IDRlbTsgfQorICAgIC5pbmRlbnQgeyBjb2xvcjogYmx1
ZTsgfQorICAgIC5lYWNobGluZSB7IHBhZGRpbmctbGVmdDo0ZW07IH0KKyAgICA8L3N0eWxlPgor
PC9oZWFkCis8Ym9keT4KKzxkaXYgY2xhc3M9Im5vcm1hbCI+Cis8c3BhbiBjbGFzcz0iaW5kZW50
Ij54eHh4PC9zcGFuPjxicj54eHh4PGJyPnh4eHgKKzwvZGl2PgorPGJyPgorPGRpdiBjbGFzcz0i
bm9ybWFsIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+IHh4eHggeHh4eAorPC9k
aXY+Cis8YnI+Cis8ZGl2IGNsYXNzPSJub3JtYWwiPgorPHNwYW4gY2xhc3M9ImluZGVudCI+eHh4
eDwvc3Bhbj48YnI+PHNwYW4gY2xhc3M9ImluZGVudCBlYWNobGluZSI+eHh4eDwvc3Bhbj48YnI+
PHNwYW4gY2xhc3M9ImluZGVudCBlYWNobGluZSI+eHh4eDwvc3Bhbj4KKzwvZGl2PgorPGJyPgor
PGRpdiBjbGFzcz0ibm9ybWFsIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+IHh4
eHg8YnI+PHNwYW4gY2xhc3M9ImluZGVudCBlYWNobGluZSI+eHh4eDwvc3Bhbj4KKzwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MzLXRleHQv
Y3NzMy10ZXh0LWluZGVudC90ZXh0LWluZGVudC1lYWNoLWxpbmUuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvdGV4dC1pbmRlbnQtZWFjaC1saW5lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmQ0YjAxNGFmY2IwMmUwMjdiNDk0ZWY1NWQ0MDBjNGZhNzAzYWI3MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1p
bmRlbnQvdGV4dC1pbmRlbnQtZWFjaC1saW5lLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPGh0bWw+
Cis8aGVhZD4KKyAgICA8dGl0bGU+W2NzczMtdGV4dF0gdGV4dC1pbmRlbnQ8L3RpdGxlPgorICAg
IDxzdHlsZT4KKyAgICBkaXYgeyB3aWR0aDo4MHB4OyBmb250OiAxMHB4IEFoZW07IGJhY2tncm91
bmQtY29sb3I6bGlnaHRncmF5OyB9CisgICAgLm5vcm1hbCB7IHRleHQtaW5kZW50OiA0ZW07IH0K
KyAgICAuZWFjaGxpbmUgeyB3aWR0aDo4MHB4OyB0ZXh0LWluZGVudDogNGVtIC13ZWJraXQtZWFj
aC1saW5lOyB9CisgICAgLmluZGVudCB7IGNvbG9yOiBibHVlOyB9CisgICAgPC9zdHlsZT4KKzwv
aGVhZAorPGJvZHk+Cis8IS0tCithbGwgYmxhY2sgYm94ZXMgc2hvdWxkIGJlIGxlZnQtYWxpZ25l
ZC4KK2FsbCBibHVlIGJveGVzIHNob3VsZCBiZSByaWdodC1hbGlnbmVkLgorLS0+CisKKzwhLS0g
bm9ybWFsIHRleHQtaW5kZW50IC0tPgorPGRpdiBjbGFzcz0ibm9ybWFsIj4KKzxzcGFuIGNsYXNz
PSJpbmRlbnQiPnh4eHg8L3NwYW4+PGJyPnh4eHg8YnI+eHh4eAorPC9kaXY+Cis8YnI+Cis8IS0t
IC13ZWJraXQtZWFjaC1saW5lIHdpdGggYSBzb2Z0IHdyYXAgYnJlYWsgLS0+Cis8ZGl2IGNsYXNz
PSJlYWNobGluZSI+Cis8c3BhbiBjbGFzcz0iaW5kZW50Ij54eHh4PC9zcGFuPiB4eHh4IHh4eHgK
KzwvZGl2PgorPGJyPgorPCEtLSAtd2Via2l0LWVhY2gtbGluZSB3aXRoIGEgZm9yY2VkIGxpbmUg
YnJlYWsgLS0+Cis8ZGl2IGNsYXNzPSJlYWNobGluZSI+Cis8c3BhbiBjbGFzcz0iaW5kZW50Ij54
eHh4PC9zcGFuPjxicj48c3BhbiBjbGFzcz0iaW5kZW50Ij54eHh4PC9zcGFuPjxicj48c3BhbiBj
bGFzcz0iaW5kZW50Ij54eHh4PC9zcGFuPgorPC9kaXY+Cis8YnI+Cis8IS0tIC13ZWJraXQtZWFj
aC1saW5lIHdpdGggYSBzb2Z0IHdyYXAgYnJlYWsgYW5kIGEgZm9yY2VkIGxpbmUgYnJlYWsgLS0+
Cis8ZGl2IGNsYXNzPSJlYWNobGluZSI+Cis8c3BhbiBjbGFzcz0iaW5kZW50Ij54eHh4PC9zcGFu
PiB4eHh4PGJyPjxzcGFuIGNsYXNzPSJpbmRlbnQiPnh4eHg8L3NwYW4+Cis8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggYTZkMTY1MDVkMTc1YjU1Mzc3Nzc0NTBjY2U2OWNiMmYyZDlmMDhjOC4uZjZjMjg4MDIyNTdk
MDdhOGZmOTk3NzE2Zjg3YTdjNWRlMWY2N2Y2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI0OTMsOCArMjQ5Myw3IEBAIGZhc3QvY3NzMy10ZXh0L2Nz
czMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0
LWFsaWduCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0
eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1kZWNvcmF0aW9uLWxpbmUuaHRtbAogZmFzdC9jc3Mz
LXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0
eWxlLXRleHQtZGVjb3JhdGlvbi1jb2xvci5odG1sCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQt
ZGVjb3JhdGlvbi9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC11bmRlcmxp
bmUtcG9zaXRpb24uaHRtbAotZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21w
dXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1pbmRlbnQtaW5oZXJpdGVkLmh0bWwKLWZh
c3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRl
ZFN0eWxlLXRleHQtaW5kZW50Lmh0bWwKK2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQg
WyBGYWlsdXJlIF0KIAogIyBBQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkcgaXMgZGlzYWJs
ZWQgb24gV2luZG93cwogY29tcG9zaXRpbmcvb3ZlcmZsb3cvc2Nyb2xsaW5nLXdpdGhvdXQtcGFp
bnRpbmcuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggZWQ2Mjg1MTAwMDRkNjAwODU0MjBlNzY4MTRhMWViZmM4NjBlMjI0Ni4uZmEw
ZDkwMTkxNDAwYmVhYzg2MTJlMTc1YTdjMTg3ZmM3MTVmZjBiZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTc5LDggKzI5NzksNyBA
QCB3ZWJraXQub3JnL2IvMzk3MjUgZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1hdXRvc2Nyb2xs
Lmh0bWwgWyBTa2lwIF0KIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENv
bXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QtaW5oZXJpdGVkLmh0
bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1hbGlnbi1sYXN0L2dldENvbXB1dGVkU3R5bGUv
Z2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWFsaWduLWxhc3QuaHRtbAogZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQt
ZGVjb3JhdGlvbi1saW5lLmh0bWwKLWZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1s
Ci1mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29t
cHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5k
ZW50IFsgRmFpbHVyZSBdCiAKICMgU3BlbGxjaGVja2VyIGJlaGF2aW9yIHRlc3RzLgogd2Via2l0
Lm9yZy9iLzEwODM3MCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdv
cmQuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196258</attachid>
            <date>2013-04-02 17:21:20 -0700</date>
            <delta_ts>2013-04-02 18:30:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-113259-20130403092109.patch</filename>
            <type>text/plain</type>
            <size>25317</size>
            <attacher name="Jaehun Lim">ljaehun.lim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3NTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzUwYzBiNzBiZmY2N2Iz
ZTE4MDgyZGJjZjgxNmVjNmNkNmRkMjg5Zi4uOTIxNzQ0Njc4NmJkZTBjZWM2YjhkYTZmODFmZTEy
OGUwNDUwOWIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTA0LTAyICBKYWVo
dW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgW2NzczMtdGV4dF0g
UmVuZGVyaW5nIC13ZWJraXQtZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudCBmcm9tIGNz
czMtdGV4dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTEzMjU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q1NTMyBURVhUIGludHJvZHVjZXMgbmV3IHZhbHVlLCAiZWFjaC1saW5lIiBmb3IgdGV4dC1pbmRl
bnQuCisgICAgICAgIEluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJs
b2NrIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZQorICAgICAgICBhZnRlciBhIGZvcmNl
ZCBsaW5lIGJyZWFrLCBidXQgZG9lcyBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29mdCB3cmFw
IGJyZWFrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgdGhlIHJlbmRlcmluZyBwYXJ0IHRvIHN1
cHBvcnQgZWFjaC1saW5lIHZhbHVlIGZvciB0ZXh0LWluZGVudC4KKyAgICAgICAgSXQncyBwcmVm
aXhlZCBhbmQgZ3VhcmRlZCBieSBDU1MzX1RFWFQgZmxhZy4KKworICAgICAgICBUZXN0OiBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L3RleHQtaW5kZW50LWVhY2gtbGluZS5odG1sCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrOjphdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JMaW5lKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OnN0YXJ0T2Zmc2V0Rm9yTGluZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9jazo6ZW5kT2Zmc2V0Rm9yTGluZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6cGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwaXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRG
b3JMaW5lKToKKyAgICAgICAgICAgIFJlbmFtZSBhIHBhcmFtZXRlciBmcm9tIGZpcnN0TGluZSB0
byBzaG91bGRJbmRlbnRUZXh0LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5lV2lkdGg6OkxpbmVXaWR0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMaW5lV2lkdGg6OnNob3VsZEluZGVudFRleHQpOiBSZXR1cm4gYm9v
bGVhbiBhY2NvcmRpbmcgdG8gbV9zaG91bGRJbmRlbnRUZXh0LgorICAgICAgICAoV2ViQ29yZTo6
TGluZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpMaW5l
V2lkdGg6OnNocmlua0F2YWlsYWJsZVdpZHRoRm9yTmV3RmxvYXRJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKToKKyAgICAgICAgICAgIEFkZCBl
bnVtIEluZGVudFRleHRPck5vdCBhbmQgbV9zaG91bGRJbmRlbnRUZXh0LgorICAgICAgICAgICAg
VXNlIG1fc2hvdWxkSW5kZW50VGV4dCBpbnN0ZWFkIG9mIG1faXNGaXJzdExpbmUuCisKKyAgICAg
ICAgKFdlYkNvcmU6OnJlcXVpcmVzSW5kZW50KTogRGVjaWRlIHdoZXRoZXIgdGV4dCBpbmRlbnRh
dGlvbiBpcyByZXF1aXJlZC4KKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZUxvZ2ljYWxJbmxpbmVQ
b3NpdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVE
aXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
OjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayk6CisKIDIwMTMtMDQtMDIgIEdsZW5uIEFk
YW1zICA8Z2xlbm5Ac2t5bmF2LmNvbT4KIAogICAgICAgICBHZW5lcmFsaXplIHByaW9yIGxpbmUg
YnJlYWsgY29udGV4dCBzdGF0ZSBhbmQgbmFtZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCmluZGV4IDNlYjVhYTZjYTU5ZjA3MjY3NTJjZjJmZWZmYjFlNTY5OGYzNDY5NDku
LjI3MzM5M2YxY2Y1MTg3MTc3YzQzOTg1YjM4NGNhNTEzMmYwYzNiYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0xNjUsNjYgKzE2NSw2NiBAQCBwdWJsaWM6CiAK
ICAgICAvLyBWZXJzaW9ucyB0aGF0IGNhbiBjb21wdXRlIGxpbmUgb2Zmc2V0cyB3aXRoIHRoZSBy
ZWdpb24gYW5kIHBhZ2Ugb2Zmc2V0IHBhc3NlZCBpbi4gVXNlZCBmb3Igc3BlZWQgdG8gYXZvaWQg
aGF2aW5nIHRvCiAgICAgLy8gY29tcHV0ZSB0aGUgcmVnaW9uIGFsbCBvdmVyIGFnYWluIHdoZW4g
eW91IGFscmVhZHkga25vdyBpdC4KLSAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0
aEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExpbmUsIFJlbmRlclJlZ2lv
biogcmVnaW9uLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CisgICAgTGF5b3V0VW5pdCBhdmFpbGFi
bGVMb2dpY2FsV2lkdGhGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgc2hvdWxkSW5k
ZW50VGV4dCwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2lj
YWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiBtYXg8TGF5b3V0VW5pdD4oMCwgbG9naWNhbFJpZ2h0T2Zmc2V0
Rm9yTGluZShwb3NpdGlvbiwgZmlyc3RMaW5lLCByZWdpb24sIG9mZnNldEZyb21Mb2dpY2FsVG9w
T2ZGaXJzdFBhZ2UsIGxvZ2ljYWxIZWlnaHQpCi0gICAgICAgICAgICAtIGxvZ2ljYWxMZWZ0T2Zm
c2V0Rm9yTGluZShwb3NpdGlvbiwgZmlyc3RMaW5lLCByZWdpb24sIG9mZnNldEZyb21Mb2dpY2Fs
VG9wT2ZGaXJzdFBhZ2UsIGxvZ2ljYWxIZWlnaHQpKTsKKyAgICAgICAgcmV0dXJuIG1heDxMYXlv
dXRVbml0PigwLCBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJbmRl
bnRUZXh0LCByZWdpb24sIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIGxvZ2ljYWxI
ZWlnaHQpCisgICAgICAgICAgICAtIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwg
c2hvdWxkSW5kZW50VGV4dCwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQYWdl
LCBsb2dpY2FsSGVpZ2h0KSk7CiAgICAgfQotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zm
c2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgUmVuZGVyUmVn
aW9uKiByZWdpb24sIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBsb2dp
Y2FsUmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgc2hvdWxkSW5k
ZW50VGV4dCwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2lj
YWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAg
ICAgewotICAgICAgICByZXR1cm4gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwg
bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yQ29udGVudChyZWdpb24sIG9mZnNldEZyb21Mb2dpY2FsVG9w
T2ZGaXJzdFBhZ2UpLCBmaXJzdExpbmUsIDAsIGxvZ2ljYWxIZWlnaHQpOworICAgICAgICByZXR1
cm4gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbFJpZ2h0T2Zmc2V0
Rm9yQ29udGVudChyZWdpb24sIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UpLCBzaG91
bGRJbmRlbnRUZXh0LCAwLCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBs
b2dpY2FsTGVmdE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExp
bmUsIFJlbmRlclJlZ2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9w
T2ZGaXJzdFBhZ2UsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAorICAgIExh
eW91dFVuaXQgbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJv
b2wgc2hvdWxkSW5kZW50VGV4dCwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVuaXQgb2Zm
c2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0g
MCkgY29uc3QgCiAgICAgewotICAgICAgICByZXR1cm4gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5l
KHBvc2l0aW9uLCBsb2dpY2FsTGVmdE9mZnNldEZvckNvbnRlbnQocmVnaW9uLCBvZmZzZXRGcm9t
TG9naWNhbFRvcE9mRmlyc3RQYWdlKSwgZmlyc3RMaW5lLCAwLCBsb2dpY2FsSGVpZ2h0KTsKKyAg
ICAgICAgcmV0dXJuIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbExl
ZnRPZmZzZXRGb3JDb250ZW50KHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFn
ZSksIHNob3VsZEluZGVudFRleHQsIDAsIGxvZ2ljYWxIZWlnaHQpOwogICAgIH0KLSAgICBMYXlv
dXRVbml0IHN0YXJ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZpcnN0
TGluZSwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxU
b3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QKKyAgICBM
YXlvdXRVbml0IHN0YXJ0T2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIHNo
b3VsZEluZGVudFRleHQsIFJlbmRlclJlZ2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IG9mZnNldEZy
b21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNv
bnN0CiAgICAgewotICAgICAgICByZXR1cm4gc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlv
bigpID8gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJzdExpbmUsIHJlZ2lv
biwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9naWNhbEhlaWdodCkKLSAgICAg
ICAgICAgIDogbG9naWNhbFdpZHRoKCkgLSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0
aW9uLCBmaXJzdExpbmUsIHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwg
bG9naWNhbEhlaWdodCk7CisgICAgICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGly
ZWN0aW9uKCkgPyBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIHNob3VsZEluZGVu
dFRleHQsIHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9naWNhbEhl
aWdodCkKKyAgICAgICAgICAgIDogbG9naWNhbFdpZHRoKCkgLSBsb2dpY2FsUmlnaHRPZmZzZXRG
b3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJbmRlbnRUZXh0LCByZWdpb24sIG9mZnNldEZyb21Mb2dp
Y2FsVG9wT2ZGaXJzdFBhZ2UsIGxvZ2ljYWxIZWlnaHQpOwogICAgIH0KLSAgICBMYXlvdXRVbml0
IGVuZE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExpbmUsIFJl
bmRlclJlZ2lvbiogcmVnaW9uLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJz
dFBhZ2UsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CisgICAgTGF5b3V0VW5p
dCBlbmRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgc2hvdWxkSW5kZW50
VGV4dCwgUmVuZGVyUmVnaW9uKiByZWdpb24sIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxU
b3BPZkZpcnN0UGFnZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QKICAgICB7
Ci0gICAgICAgIHJldHVybiAhc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpID8gbG9n
aWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJzdExpbmUsIHJlZ2lvbiwgb2Zmc2V0
RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9naWNhbEhlaWdodCkKLSAgICAgICAgICAgIDog
bG9naWNhbFdpZHRoKCkgLSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJz
dExpbmUsIHJlZ2lvbiwgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSwgbG9naWNhbEhl
aWdodCk7CisgICAgICAgIHJldHVybiAhc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigp
ID8gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJbmRlbnRUZXh0LCBy
ZWdpb24sIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2UsIGxvZ2ljYWxIZWlnaHQpCisg
ICAgICAgICAgICA6IGxvZ2ljYWxXaWR0aCgpIC0gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShw
b3NpdGlvbiwgc2hvdWxkSW5kZW50VGV4dCwgcmVnaW9uLCBvZmZzZXRGcm9tTG9naWNhbFRvcE9m
Rmlyc3RQYWdlLCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0IGF2YWls
YWJsZUxvZ2ljYWxXaWR0aEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExp
bmUsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0CisgICAgTGF5b3V0VW5pdCBh
dmFpbGFibGVMb2dpY2FsV2lkdGhGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgc2hv
dWxkSW5kZW50VGV4dCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QKICAgICB7
Ci0gICAgICAgIHJldHVybiBhdmFpbGFibGVMb2dpY2FsV2lkdGhGb3JMaW5lKHBvc2l0aW9uLCBm
aXJzdExpbmUsIHJlZ2lvbkF0QmxvY2tPZmZzZXQocG9zaXRpb24pLCBvZmZzZXRGcm9tTG9naWNh
bFRvcE9mRmlyc3RQYWdlKCksIGxvZ2ljYWxIZWlnaHQpOworICAgICAgICByZXR1cm4gYXZhaWxh
YmxlTG9naWNhbFdpZHRoRm9yTGluZShwb3NpdGlvbiwgc2hvdWxkSW5kZW50VGV4dCwgcmVnaW9u
QXRCbG9ja09mZnNldChwb3NpdGlvbiksIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJzdFBhZ2Uo
KSwgbG9naWNhbEhlaWdodCk7CiAgICAgfQotICAgIExheW91dFVuaXQgbG9naWNhbFJpZ2h0T2Zm
c2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsUmlnaHRP
ZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgc2hvdWxkSW5kZW50VGV4dCwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAgICAgewotICAgICAgICByZXR1
cm4gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbFJpZ2h0T2Zmc2V0
Rm9yQ29udGVudChwb3NpdGlvbiksIGZpcnN0TGluZSwgMCwgbG9naWNhbEhlaWdodCk7CisgICAg
ICAgIHJldHVybiBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBsb2dpY2FsUmln
aHRPZmZzZXRGb3JDb250ZW50KHBvc2l0aW9uKSwgc2hvdWxkSW5kZW50VGV4dCwgMCwgbG9naWNh
bEhlaWdodCk7CiAgICAgfQotICAgIExheW91dFVuaXQgbG9naWNhbExlZnRPZmZzZXRGb3JMaW5l
KExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBMYXlvdXRVbml0IGxvZ2ljYWxI
ZWlnaHQgPSAwKSBjb25zdCAKKyAgICBMYXlvdXRVbml0IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGlu
ZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVudFRleHQsIExheW91dFVuaXQg
bG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAogICAgIHsKLSAgICAgICAgcmV0dXJuIGxvZ2ljYWxM
ZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbExlZnRPZmZzZXRGb3JDb250ZW50KHBv
c2l0aW9uKSwgZmlyc3RMaW5lLCAwLCBsb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIGxv
Z2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgbG9naWNhbExlZnRPZmZzZXRGb3JDb250
ZW50KHBvc2l0aW9uKSwgc2hvdWxkSW5kZW50VGV4dCwgMCwgbG9naWNhbEhlaWdodCk7CiAgICAg
fQotICAgIExheW91dFVuaXQgcGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKExh
eW91dFVuaXQgcG9zaXRpb24sIGJvb2wgZmlyc3RMaW5lLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQgPSAwKSBjb25zdCAKKyAgICBMYXlvdXRVbml0IHBpeGVsU25hcHBlZExvZ2ljYWxMZWZ0T2Zm
c2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVudFRleHQsIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDApIGNvbnN0IAogICAgIHsKLSAgICAgICAgcmV0dXJu
IHJvdW5kVG9JbnQobG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBmaXJzdExpbmUs
IGxvZ2ljYWxIZWlnaHQpKTsKKyAgICAgICAgcmV0dXJuIHJvdW5kVG9JbnQobG9naWNhbExlZnRP
ZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBzaG91bGRJbmRlbnRUZXh0LCBsb2dpY2FsSGVpZ2h0KSk7
CiAgICAgfQotICAgIExheW91dFVuaXQgcGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0T2Zmc2V0Rm9y
TGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBib29sIGZpcnN0TGluZSwgTGF5b3V0VW5pdCBsb2dp
Y2FsSGVpZ2h0ID0gMCkgY29uc3QgCisgICAgTGF5b3V0VW5pdCBwaXhlbFNuYXBwZWRMb2dpY2Fs
UmlnaHRPZmZzZXRGb3JMaW5lKExheW91dFVuaXQgcG9zaXRpb24sIGJvb2wgc2hvdWxkSW5kZW50
VGV4dCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QgCiAgICAgewogICAgICAg
ICAvLyBGSVhNRTogTXVsdGljb2x1bW4gbGF5b3V0cyBicmVhayBjYXJyeWluZyBvdmVyIHN1YnBp
eGVsIHZhbHVlcyB0byB0aGUgbG9naWNhbCByaWdodCBvZmZzZXQgYmVjYXVzZSB0aGUgbGluZXMg
bWF5IGJlIHNoaWZ0ZWQKICAgICAgICAgLy8gYnkgYSBzdWJwaXhlbCB2YWx1ZSBmb3IgYWxsIGJ1
dCB0aGUgZmlyc3QgY29sdW1uLiBUaGlzIGNhbiBsZWFkIHRvIHRoZSBhY3R1YWwgcGl4ZWwgc25h
cHBlZCB3aWR0aCBvZiB0aGUgY29sdW1uIGJlaW5nIG9mZgogICAgICAgICAvLyBieSBvbmUgcGl4
ZWwgd2hlbiByZW5kZXJlZCB2ZXJzdXMgbGF5ZWQgb3V0LCB3aGljaCBjYW4gcmVzdWx0IGluIHRo
ZSBsaW5lIGJlaW5nIGNsaXBwZWQuIEZvciBub3csIHdlIGhhdmUgdG8gZmxvb3IuCiAgICAgICAg
IC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDU0NjEKLSAgICAg
ICAgcmV0dXJuIGZsb29yVG9JbnQobG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwg
Zmlyc3RMaW5lLCBsb2dpY2FsSGVpZ2h0KSk7CisgICAgICAgIHJldHVybiBmbG9vclRvSW50KGxv
Z2ljYWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIHNob3VsZEluZGVudFRleHQsIGxvZ2lj
YWxIZWlnaHQpKTsKICAgICB9Ci0gICAgTGF5b3V0VW5pdCBzdGFydE9mZnNldEZvckxpbmUoTGF5
b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJzdExpbmUsIExheW91dFVuaXQgbG9naWNhbEhlaWdo
dCA9IDApIGNvbnN0CisgICAgTGF5b3V0VW5pdCBzdGFydE9mZnNldEZvckxpbmUoTGF5b3V0VW5p
dCBwb3NpdGlvbiwgYm9vbCBzaG91bGRJbmRlbnRUZXh0LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWln
aHQgPSAwKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0eWxlKCktPmlzTGVmdFRvUmln
aHREaXJlY3Rpb24oKSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShwb3NpdGlvbiwgZmlyc3RM
aW5lLCBsb2dpY2FsSGVpZ2h0KQotICAgICAgICAgICAgOiBsb2dpY2FsV2lkdGgoKSAtIGxvZ2lj
YWxSaWdodE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgbG9naWNhbEhlaWdodCk7
CisgICAgICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dp
Y2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIHNob3VsZEluZGVudFRleHQsIGxvZ2ljYWxI
ZWlnaHQpCisgICAgICAgICAgICA6IGxvZ2ljYWxXaWR0aCgpIC0gbG9naWNhbFJpZ2h0T2Zmc2V0
Rm9yTGluZShwb3NpdGlvbiwgc2hvdWxkSW5kZW50VGV4dCwgbG9naWNhbEhlaWdodCk7CiAgICAg
fQotICAgIExheW91dFVuaXQgZW5kT2Zmc2V0Rm9yTGluZShMYXlvdXRVbml0IHBvc2l0aW9uLCBi
b29sIGZpcnN0TGluZSwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMCkgY29uc3QKKyAgICBM
YXlvdXRVbml0IGVuZE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBzaG91
bGRJbmRlbnRUZXh0LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwKSBjb25zdAogICAgIHsK
LSAgICAgICAgcmV0dXJuICFzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBsb2dp
Y2FsTGVmdE9mZnNldEZvckxpbmUocG9zaXRpb24sIGZpcnN0TGluZSwgbG9naWNhbEhlaWdodCkK
LSAgICAgICAgICAgIDogbG9naWNhbFdpZHRoKCkgLSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5l
KHBvc2l0aW9uLCBmaXJzdExpbmUsIGxvZ2ljYWxIZWlnaHQpOworICAgICAgICByZXR1cm4gIXN0
eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGlu
ZShwb3NpdGlvbiwgc2hvdWxkSW5kZW50VGV4dCwgbG9naWNhbEhlaWdodCkKKyAgICAgICAgICAg
IDogbG9naWNhbFdpZHRoKCkgLSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKHBvc2l0aW9uLCBz
aG91bGRJbmRlbnRUZXh0LCBsb2dpY2FsSGVpZ2h0KTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0
IHN0YXJ0QWxpZ25lZE9mZnNldEZvckxpbmUoTGF5b3V0VW5pdCBwb3NpdGlvbiwgYm9vbCBmaXJz
dExpbmUpOworICAgIExheW91dFVuaXQgc3RhcnRBbGlnbmVkT2Zmc2V0Rm9yTGluZShMYXlvdXRV
bml0IHBvc2l0aW9uLCBib29sIHNob3VsZEluZGVudFRleHQpOwogICAgIExheW91dFVuaXQgdGV4
dEluZGVudE9mZnNldCgpIGNvbnN0OwogCiAgICAgdmlydHVhbCBWaXNpYmxlUG9zaXRpb24gcG9z
aXRpb25Gb3JQb2ludChjb25zdCBMYXlvdXRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCAyZDdjY2Q2N2I2MTgz
ODg5NDVkODlmMzQ0YzFmMjNiZjFlM2E3OTY2Li5hOTJkNjk0ZWU3YThlYTU3OTRjZTBmODRiMGE4
YTgwZDA2NzhhNzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtODksOSArODksMTEgQEAgRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKiBSZW5kZXJCbG9jazo6bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgY29u
c3QKIH0KICNlbmRpZgogCitlbnVtIEluZGVudFRleHRPck5vdCB7IERvTm90SW5kZW50VGV4dCwg
SW5kZW50VGV4dCB9OworCiBjbGFzcyBMaW5lV2lkdGggewogcHVibGljOgotICAgIExpbmVXaWR0
aChSZW5kZXJCbG9jayogYmxvY2ssIGJvb2wgaXNGaXJzdExpbmUpCisgICAgTGluZVdpZHRoKFJl
bmRlckJsb2NrKiBibG9jaywgYm9vbCBpc0ZpcnN0TGluZSwgSW5kZW50VGV4dE9yTm90IHNob3Vs
ZEluZGVudFRleHQpCiAgICAgICAgIDogbV9ibG9jayhibG9jaykKICAgICAgICAgLCBtX3VuY29t
bWl0dGVkV2lkdGgoMCkKICAgICAgICAgLCBtX2NvbW1pdHRlZFdpZHRoKDApCkBAIC0xMDMsNiAr
MTA1LDcgQEAgcHVibGljOgogICAgICAgICAsIG1fc2VnbWVudCgwKQogI2VuZGlmCiAgICAgICAg
ICwgbV9pc0ZpcnN0TGluZShpc0ZpcnN0TGluZSkKKyAgICAgICAgLCBtX3Nob3VsZEluZGVudFRl
eHQoc2hvdWxkSW5kZW50VGV4dCkKICAgICB7CiAgICAgICAgIEFTU0VSVChibG9jayk7CiAjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQpAQCAtMTMyLDYgKzEzNSw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFwcGx5T3ZlcmhhbmcoUmVuZGVyUnVieVJ1biosIFJlbmRlck9iamVjdCogc3RhcnRSZW5k
ZXJlciwgUmVuZGVyT2JqZWN0KiBlbmRSZW5kZXJlcik7CiAgICAgdm9pZCBmaXRCZWxvd0Zsb2F0
cygpOwogCisgICAgYm9vbCBzaG91bGRJbmRlbnRUZXh0KCkgeyByZXR1cm4gbV9zaG91bGRJbmRl
bnRUZXh0ID09IEluZGVudFRleHQ7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1dGVBdmFp
bGFibGVXaWR0aEZyb21MZWZ0QW5kUmlnaHQoKQogICAgIHsKQEAgLTE1MCwxNCArMTU1LDE1IEBA
IHByaXZhdGU6CiAgICAgY29uc3QgTGluZVNlZ21lbnQqIG1fc2VnbWVudDsKICNlbmRpZgogICAg
IGJvb2wgbV9pc0ZpcnN0TGluZTsKKyAgICBJbmRlbnRUZXh0T3JOb3QgbV9zaG91bGRJbmRlbnRU
ZXh0OwogfTsKIAogaW5saW5lIHZvaWQgTGluZVdpZHRoOjp1cGRhdGVBdmFpbGFibGVXaWR0aChM
YXlvdXRVbml0IHJlcGxhY2VkSGVpZ2h0KQogewogICAgIExheW91dFVuaXQgaGVpZ2h0ID0gbV9i
bG9jay0+bG9naWNhbEhlaWdodCgpOwogICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IGxv
Z2ljYWxIZWlnaHRGb3JMaW5lKG1fYmxvY2ssIG1faXNGaXJzdExpbmUsIHJlcGxhY2VkSGVpZ2h0
KTsKLSAgICBtX2xlZnQgPSBtX2Jsb2NrLT5sb2dpY2FsTGVmdE9mZnNldEZvckxpbmUoaGVpZ2h0
LCBtX2lzRmlyc3RMaW5lLCBsb2dpY2FsSGVpZ2h0KTsKLSAgICBtX3JpZ2h0ID0gbV9ibG9jay0+
bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShoZWlnaHQsIG1faXNGaXJzdExpbmUsIGxvZ2ljYWxI
ZWlnaHQpOworICAgIG1fbGVmdCA9IG1fYmxvY2stPmxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZSho
ZWlnaHQsIHNob3VsZEluZGVudFRleHQoKSwgbG9naWNhbEhlaWdodCk7CisgICAgbV9yaWdodCA9
IG1fYmxvY2stPmxvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUoaGVpZ2h0LCBzaG91bGRJbmRlbnRU
ZXh0KCksIGxvZ2ljYWxIZWlnaHQpOwogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAg
IGlmIChtX3NlZ21lbnQpIHsKQEAgLTE4OCw3ICsxOTQsNyBAQCBpbmxpbmUgdm9pZCBMaW5lV2lk
dGg6OnNocmlua0F2YWlsYWJsZVdpZHRoRm9yTmV3RmxvYXRJZk5lZWRlZChSZW5kZXJCbG9jazo6
RmxvYQogICAgICAgICAgICAgbmV3TGVmdCArPSBzaGFwZU91dHNpZGVJbmZvLT5yaWdodFNlZ21l
bnRTaGFwZUJvdW5kaW5nQm94RGVsdGEoKTsKICNlbmRpZgogCi0gICAgICAgIGlmIChtX2lzRmly
c3RMaW5lICYmIG1fYmxvY2stPnN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKKyAg
ICAgICAgaWYgKHNob3VsZEluZGVudFRleHQoKSAmJiBtX2Jsb2NrLT5zdHlsZSgpLT5pc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICBuZXdMZWZ0ICs9IGZsb29yVG9JbnQobV9i
bG9jay0+dGV4dEluZGVudE9mZnNldCgpKTsKICAgICAgICAgbV9sZWZ0ID0gbWF4PGZsb2F0Piht
X2xlZnQsIG5ld0xlZnQpOwogICAgIH0gZWxzZSB7CkBAIC0xOTgsNyArMjA0LDcgQEAgaW5saW5l
IHZvaWQgTGluZVdpZHRoOjpzaHJpbmtBdmFpbGFibGVXaWR0aEZvck5ld0Zsb2F0SWZOZWVkZWQo
UmVuZGVyQmxvY2s6OkZsb2EKICAgICAgICAgICAgIG5ld1JpZ2h0ICs9IHNoYXBlT3V0c2lkZUlu
Zm8tPmxlZnRTZWdtZW50U2hhcGVCb3VuZGluZ0JveERlbHRhKCk7CiAjZW5kaWYKIAotICAgICAg
ICBpZiAobV9pc0ZpcnN0TGluZSAmJiAhbV9ibG9jay0+c3R5bGUoKS0+aXNMZWZ0VG9SaWdodERp
cmVjdGlvbigpKQorICAgICAgICBpZiAoc2hvdWxkSW5kZW50VGV4dCgpICYmICFtX2Jsb2NrLT5z
dHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAgICAgICAgICBuZXdSaWdodCAt
PSBmbG9vclRvSW50KG1fYmxvY2stPnRleHRJbmRlbnRPZmZzZXQoKSk7CiAgICAgICAgIG1fcmln
aHQgPSBtaW48ZmxvYXQ+KG1fcmlnaHQsIG5ld1JpZ2h0KTsKICAgICB9CkBAIC0yMzUsOCArMjQx
LDggQEAgdm9pZCBMaW5lV2lkdGg6OmZpdEJlbG93RmxvYXRzKCkKICAgICAgICAgaWYgKGZsb2F0
TG9naWNhbEJvdHRvbSA8PSBsYXN0RmxvYXRMb2dpY2FsQm90dG9tKQogICAgICAgICAgICAgYnJl
YWs7CiAKLSAgICAgICAgbmV3TGluZUxlZnQgPSBtX2Jsb2NrLT5sb2dpY2FsTGVmdE9mZnNldEZv
ckxpbmUoZmxvYXRMb2dpY2FsQm90dG9tLCBtX2lzRmlyc3RMaW5lKTsKLSAgICAgICAgbmV3TGlu
ZVJpZ2h0ID0gbV9ibG9jay0+bG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShmbG9hdExvZ2ljYWxC
b3R0b20sIG1faXNGaXJzdExpbmUpOworICAgICAgICBuZXdMaW5lTGVmdCA9IG1fYmxvY2stPmxv
Z2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShmbG9hdExvZ2ljYWxCb3R0b20sIHNob3VsZEluZGVudFRl
eHQoKSk7CisgICAgICAgIG5ld0xpbmVSaWdodCA9IG1fYmxvY2stPmxvZ2ljYWxSaWdodE9mZnNl
dEZvckxpbmUoZmxvYXRMb2dpY2FsQm90dG9tLCBzaG91bGRJbmRlbnRUZXh0KCkpOwogICAgICAg
ICBuZXdMaW5lV2lkdGggPSBtYXgoMC4wZiwgbmV3TGluZVJpZ2h0IC0gbmV3TGluZUxlZnQpOwog
ICAgICAgICBsYXN0RmxvYXRMb2dpY2FsQm90dG9tID0gZmxvYXRMb2dpY2FsQm90dG9tOwogICAg
ICAgICBpZiAobmV3TGluZVdpZHRoID49IG1fdW5jb21taXR0ZWRXaWR0aCkKQEAgLTk1MSwxMSAr
OTU3LDI1IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUxvZ2ljYWxXaWR0aEZvckFsaWdubWVu
dChjb25zdCBFVGV4dEFsaWduJiB0ZXh0QWxpZ24sIEJpCiAgICAgfQogfQogCi1zdGF0aWMgdm9p
ZCB1cGRhdGVMb2dpY2FsSW5saW5lUG9zaXRpb25zKFJlbmRlckJsb2NrKiBibG9jaywgZmxvYXQm
IGxpbmVMb2dpY2FsTGVmdCwgZmxvYXQmIGxpbmVMb2dpY2FsUmlnaHQsIGZsb2F0JiBhdmFpbGFi
bGVMb2dpY2FsV2lkdGgsIGJvb2wgZmlyc3RMaW5lLCBMYXlvdXRVbml0IGJveExvZ2ljYWxIZWln
aHQpCitzdGF0aWMgSW5kZW50VGV4dE9yTm90IHJlcXVpcmVzSW5kZW50KGJvb2wgaXNGaXJzdExp
bmUsIGJvb2wgaXNBZnRlckhhcmRMaW5lQnJlYWssIFJlbmRlclN0eWxlKiBzdHlsZSkKK3sKKyAg
ICBpZiAoaXNGaXJzdExpbmUpCisgICAgICAgIHJldHVybiBJbmRlbnRUZXh0OworI2lmIEVOQUJM
RShDU1MzX1RFWFQpCisgICAgaWYgKGlzQWZ0ZXJIYXJkTGluZUJyZWFrICYmIHN0eWxlLT50ZXh0
SW5kZW50TGluZSgpID09IFRleHRJbmRlbnRFYWNoTGluZSkgCisgICAgICAgIHJldHVybiBJbmRl
bnRUZXh0OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oaXNBZnRlckhhcmRMaW5lQnJlYWspOwor
ICAgIFVOVVNFRF9QQVJBTShzdHlsZSk7CisjZW5kaWYKKyAgICByZXR1cm4gRG9Ob3RJbmRlbnRU
ZXh0OworfQorCitzdGF0aWMgdm9pZCB1cGRhdGVMb2dpY2FsSW5saW5lUG9zaXRpb25zKFJlbmRl
ckJsb2NrKiBibG9jaywgZmxvYXQmIGxpbmVMb2dpY2FsTGVmdCwgZmxvYXQmIGxpbmVMb2dpY2Fs
UmlnaHQsIGZsb2F0JiBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIGJvb2wgZmlyc3RMaW5lLCBJbmRl
bnRUZXh0T3JOb3Qgc2hvdWxkSW5kZW50VGV4dCwgTGF5b3V0VW5pdCBib3hMb2dpY2FsSGVpZ2h0
KQogewogICAgIExheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0Rm9y
TGluZShibG9jaywgZmlyc3RMaW5lLCBib3hMb2dpY2FsSGVpZ2h0KTsKLSAgICBsaW5lTG9naWNh
bExlZnQgPSBibG9jay0+cGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGJsb2Nr
LT5sb2dpY2FsSGVpZ2h0KCksIGZpcnN0TGluZSwgbGluZUxvZ2ljYWxIZWlnaHQpOwotICAgIGxp
bmVMb2dpY2FsUmlnaHQgPSBibG9jay0+cGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0T2Zmc2V0Rm9y
TGluZShibG9jay0+bG9naWNhbEhlaWdodCgpLCBmaXJzdExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0
KTsKKyAgICBsaW5lTG9naWNhbExlZnQgPSBibG9jay0+cGl4ZWxTbmFwcGVkTG9naWNhbExlZnRP
ZmZzZXRGb3JMaW5lKGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCksIHNob3VsZEluZGVudFRleHQgPT0g
SW5kZW50VGV4dCwgbGluZUxvZ2ljYWxIZWlnaHQpOworICAgIGxpbmVMb2dpY2FsUmlnaHQgPSBi
bG9jay0+cGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShibG9jay0+bG9naWNh
bEhlaWdodCgpLCBzaG91bGRJbmRlbnRUZXh0ID09IEluZGVudFRleHQsIGxpbmVMb2dpY2FsSGVp
Z2h0KTsKICAgICBhdmFpbGFibGVMb2dpY2FsV2lkdGggPSBsaW5lTG9naWNhbFJpZ2h0IC0gbGlu
ZUxvZ2ljYWxMZWZ0OwogfQogCkBAIC05NjYsMTEgKzk4NiwxNSBAQCB2b2lkIFJlbmRlckJsb2Nr
Ojpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5saW5lQm94KiBs
aW5lQm94LAogICAgIAogICAgIC8vIENTUyAyLjE6ICInVGV4dC1pbmRlbnQnIG9ubHkgYWZmZWN0
cyBhIGxpbmUgaWYgaXQgaXMgdGhlIGZpcnN0IGZvcm1hdHRlZCBsaW5lIG9mIGFuIGVsZW1lbnQu
IEZvciBleGFtcGxlLCB0aGUgZmlyc3QgbGluZSBvZiBhbiBhbm9ueW1vdXMgYmxvY2sgCiAgICAg
Ly8gYm94IGlzIG9ubHkgYWZmZWN0ZWQgaWYgaXQgaXMgdGhlIGZpcnN0IGNoaWxkIG9mIGl0cyBw
YXJlbnQgZWxlbWVudC4iCi0gICAgYm9vbCBmaXJzdExpbmUgPSBsaW5lSW5mby5pc0ZpcnN0TGlu
ZSgpICYmICEoaXNBbm9ueW1vdXNCbG9jaygpICYmIHBhcmVudCgpLT5maXJzdENoaWxkKCkgIT0g
dGhpcyk7CisgICAgLy8gQ1NTMyAidGV4dC1pbmRlbnQiLCAiLXdlYmtpdC1lYWNoLWxpbmUiIGFm
ZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGJsb2NrIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVh
Y2ggbGluZSBhZnRlciBhIGZvcmNlZCBsaW5lIGJyZWFrLAorICAgIC8vIGJ1dCBkb2VzIG5vdCBh
ZmZlY3QgbGluZXMgYWZ0ZXIgYSBzb2Z0IHdyYXAgYnJlYWsuCisgICAgYm9vbCBpc0ZpcnN0TGlu
ZSA9IGxpbmVJbmZvLmlzRmlyc3RMaW5lKCkgJiYgIShpc0Fub255bW91c0Jsb2NrKCkgJiYgcGFy
ZW50KCktPmZpcnN0Q2hpbGQoKSAhPSB0aGlzKTsKKyAgICBib29sIGlzQWZ0ZXJIYXJkTGluZUJy
ZWFrID0gbGluZUJveC0+cHJldlJvb3RCb3goKSAmJiBsaW5lQm94LT5wcmV2Um9vdEJveCgpLT5l
bmRzV2l0aEJyZWFrKCk7CisgICAgSW5kZW50VGV4dE9yTm90IHNob3VsZEluZGVudFRleHQgPSBy
ZXF1aXJlc0luZGVudChpc0ZpcnN0TGluZSwgaXNBZnRlckhhcmRMaW5lQnJlYWssIHN0eWxlKCkp
OwogICAgIGZsb2F0IGxpbmVMb2dpY2FsTGVmdDsKICAgICBmbG9hdCBsaW5lTG9naWNhbFJpZ2h0
OwogICAgIGZsb2F0IGF2YWlsYWJsZUxvZ2ljYWxXaWR0aDsKLSAgICB1cGRhdGVMb2dpY2FsSW5s
aW5lUG9zaXRpb25zKHRoaXMsIGxpbmVMb2dpY2FsTGVmdCwgbGluZUxvZ2ljYWxSaWdodCwgYXZh
aWxhYmxlTG9naWNhbFdpZHRoLCBmaXJzdExpbmUsIDApOworICAgIHVwZGF0ZUxvZ2ljYWxJbmxp
bmVQb3NpdGlvbnModGhpcywgbGluZUxvZ2ljYWxMZWZ0LCBsaW5lTG9naWNhbFJpZ2h0LCBhdmFp
bGFibGVMb2dpY2FsV2lkdGgsIGlzRmlyc3RMaW5lLCBzaG91bGRJbmRlbnRUZXh0LCAwKTsKICAg
ICBib29sIG5lZWRzV29yZFNwYWNpbmc7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbGF5
b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CkBAIC0xMDA2LDcgKzEwMzAsNyBAQCB2b2lk
IFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290
SW5saW5lQm94KiBsaW5lQm94LAogCiAgICAgaWYgKGZpcnN0UnVuICYmIGZpcnN0UnVuLT5tX29i
amVjdC0+aXNSZXBsYWNlZCgpKSB7CiAgICAgICAgIFJlbmRlckJveCogcmVuZGVyQm94ID0gdG9S
ZW5kZXJCb3goZmlyc3RSdW4tPm1fb2JqZWN0KTsKLSAgICAgICAgdXBkYXRlTG9naWNhbElubGlu
ZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsUmlnaHQsIGF2YWls
YWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCByZW5kZXJCb3gtPmxvZ2ljYWxIZWlnaHQoKSk7
CisgICAgICAgIHVwZGF0ZUxvZ2ljYWxJbmxpbmVQb3NpdGlvbnModGhpcywgbGluZUxvZ2ljYWxM
ZWZ0LCBsaW5lTG9naWNhbFJpZ2h0LCBhdmFpbGFibGVMb2dpY2FsV2lkdGgsIGlzRmlyc3RMaW5l
LCBzaG91bGRJbmRlbnRUZXh0LCByZW5kZXJCb3gtPmxvZ2ljYWxIZWlnaHQoKSk7CiAgICAgfQog
CiAgICAgY29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvclNlZ21lbnQobGluZUJveCwg
bGluZUluZm8sIHRleHRBbGlnbiwgbGluZUxvZ2ljYWxMZWZ0LCBhdmFpbGFibGVMb2dpY2FsV2lk
dGgsIGZpcnN0UnVuLCB0cmFpbGluZ1NwYWNlUnVuLCB0ZXh0Qm94RGF0YU1hcCwgdmVydGljYWxQ
b3NpdGlvbkNhY2hlLCB3b3JkTWVhc3VyZW1lbnRzKTsKQEAgLTI2MzUsNyArMjY1OSw3IEBAIElu
bGluZUl0ZXJhdG9yIFJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dFNlZ21lbnRCcmVhayhJ
bmxpbmVCaWRpUmVzb2x2ZXImIHJlCiAgICAgYm9vbCBpbmNsdWRlRW5kV2lkdGggPSB0cnVlOwog
ICAgIExpbmVNaWRwb2ludFN0YXRlJiBsaW5lTWlkcG9pbnRTdGF0ZSA9IHJlc29sdmVyLm1pZHBv
aW50U3RhdGUoKTsKIAotICAgIExpbmVXaWR0aCB3aWR0aChtX2Jsb2NrLCBsaW5lSW5mby5pc0Zp
cnN0TGluZSgpKTsKKyAgICBMaW5lV2lkdGggd2lkdGgobV9ibG9jaywgbGluZUluZm8uaXNGaXJz
dExpbmUoKSwgcmVxdWlyZXNJbmRlbnQobGluZUluZm8uaXNGaXJzdExpbmUoKSwgbGluZUluZm8u
cHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KCksIG1fYmxvY2stPnN0eWxlKCkpKTsKIAogICAgIHNr
aXBMZWFkaW5nV2hpdGVzcGFjZShyZXNvbHZlciwgbGluZUluZm8sIGxhc3RGbG9hdEZyb21QcmV2
aW91c0xpbmUsIHdpZHRoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRmOTA3NTcxOWNjMjc0NGU1ZDQ1ZjNiYzYwYjk2
MmQ2NDQxZjc5YWEuLmNmNGU0YTY4YzE0OTUzZGY1MTVjOTJhZmY5YWI2MzA4YTFhZGYyN2IgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wNC0wMiAgSmFlaHVuIExpbSAgPGxqYWVodW4ubGlt
QHNhbXN1bmcuY29tPgorCisgICAgICAgIFtjc3MzLXRleHRdIFJlbmRlcmluZyAtd2Via2l0LWVh
Y2gtbGluZSB2YWx1ZSBmb3IgdGV4dC1pbmRlbnQgZnJvbSBjc3MzLXRleHQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMzI1OQorICAgICAgICAKKyAg
ICAgICAgQ1NTMyBURVhUIGludHJvZHVjZXMgbmV3IHZhbHVlLCAiZWFjaC1saW5lIiBmb3IgdGV4
dC1pbmRlbnQuCisgICAgICAgIEluZGVudGF0aW9uIGFmZmVjdHMgdGhlIGZpcnN0IGxpbmUgb2Yg
dGhlIGJsb2NrIGNvbnRhaW5lciBhcyB3ZWxsIGFzIGVhY2ggbGluZQorICAgICAgICBhZnRlciBh
IGZvcmNlZCBsaW5lIGJyZWFrLCBidXQgZG9lcyBub3QgYWZmZWN0IGxpbmVzIGFmdGVyIGEgc29m
dCB3cmFwIGJyZWFrLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC90ZXh0LWluZGVudC1lYWNo
LWxpbmUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MzLXRleHQvY3Nz
My10ZXh0LWluZGVudC90ZXh0LWluZGVudC1lYWNoLWxpbmUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2lu
Y2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wNC0wMiAgRW1pbCBBIEVrbHVuZCAgPGVh
ZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUGFkZGluZyBhcHBsaWVkIHR3aWNlIGZvciBlbXB0
eSBnZW5lcmF0ZWQgUmVuZGVySW5saW5lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC90ZXh0LWluZGVudC1lYWNoLWxpbmUtZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvdGV4dC1p
bmRlbnQtZWFjaC1saW5lLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjg2OGE1N2IyNDFjNTI4
NzRkODY0ZThkZTFhOTM4OTlmOTRlN2U0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvdGV4dC1pbmRlbnQtZWFjaC1saW5lLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyOCBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+
W2NzczMtdGV4dF0gdGV4dC1pbmRlbnQ8L3RpdGxlPgorICAgIDxzdHlsZT4KKyAgICBkaXYgeyB3
aWR0aDo4MHB4OyBmb250OiAxMHB4IEFoZW07IGJhY2tncm91bmQtY29sb3I6bGlnaHRncmF5OyB9
CisgICAgLm5vcm1hbCB7IHRleHQtaW5kZW50OiA0ZW07IH0KKyAgICAuaW5kZW50IHsgY29sb3I6
IGJsdWU7IH0KKyAgICAuZWFjaGxpbmUgeyBwYWRkaW5nLWxlZnQ6NGVtOyB9CisgICAgPC9zdHls
ZT4KKzwvaGVhZAorPGJvZHk+Cis8ZGl2IGNsYXNzPSJub3JtYWwiPgorPHNwYW4gY2xhc3M9Imlu
ZGVudCI+eHh4eDwvc3Bhbj48YnI+eHh4eDxicj54eHh4Cis8L2Rpdj4KKzxicj4KKzxkaXYgY2xh
c3M9Im5vcm1hbCI+Cis8c3BhbiBjbGFzcz0iaW5kZW50Ij54eHh4PC9zcGFuPiB4eHh4IHh4eHgK
KzwvZGl2PgorPGJyPgorPGRpdiBjbGFzcz0ibm9ybWFsIj4KKzxzcGFuIGNsYXNzPSJpbmRlbnQi
Pnh4eHg8L3NwYW4+PGJyPjxzcGFuIGNsYXNzPSJpbmRlbnQgZWFjaGxpbmUiPnh4eHg8L3NwYW4+
PGJyPjxzcGFuIGNsYXNzPSJpbmRlbnQgZWFjaGxpbmUiPnh4eHg8L3NwYW4+Cis8L2Rpdj4KKzxi
cj4KKzxkaXYgY2xhc3M9Im5vcm1hbCI+Cis8c3BhbiBjbGFzcz0iaW5kZW50Ij54eHh4PC9zcGFu
PiB4eHh4PGJyPjxzcGFuIGNsYXNzPSJpbmRlbnQgZWFjaGxpbmUiPnh4eHg8L3NwYW4+Cis8L2Rp
dj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzMy10
ZXh0L2NzczMtdGV4dC1pbmRlbnQvdGV4dC1pbmRlbnQtZWFjaC1saW5lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L3RleHQtaW5kZW50LWVhY2gtbGlu
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJkNGIwMTRhZmNiMDJlMDI3YjQ5NGVmNTVkNDAwYzRmYTcwM2Fi
NzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NzczMtdGV4dC9jc3MzLXRl
eHQtaW5kZW50L3RleHQtaW5kZW50LWVhY2gtbGluZS5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzxo
dG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPltjc3MzLXRleHRdIHRleHQtaW5kZW50PC90aXRsZT4K
KyAgICA8c3R5bGU+CisgICAgZGl2IHsgd2lkdGg6ODBweDsgZm9udDogMTBweCBBaGVtOyBiYWNr
Z3JvdW5kLWNvbG9yOmxpZ2h0Z3JheTsgfQorICAgIC5ub3JtYWwgeyB0ZXh0LWluZGVudDogNGVt
OyB9CisgICAgLmVhY2hsaW5lIHsgd2lkdGg6ODBweDsgdGV4dC1pbmRlbnQ6IDRlbSAtd2Via2l0
LWVhY2gtbGluZTsgfQorICAgIC5pbmRlbnQgeyBjb2xvcjogYmx1ZTsgfQorICAgIDwvc3R5bGU+
Cis8L2hlYWQKKzxib2R5PgorPCEtLQorYWxsIGJsYWNrIGJveGVzIHNob3VsZCBiZSBsZWZ0LWFs
aWduZWQuCithbGwgYmx1ZSBib3hlcyBzaG91bGQgYmUgcmlnaHQtYWxpZ25lZC4KKy0tPgorCis8
IS0tIG5vcm1hbCB0ZXh0LWluZGVudCAtLT4KKzxkaXYgY2xhc3M9Im5vcm1hbCI+Cis8c3BhbiBj
bGFzcz0iaW5kZW50Ij54eHh4PC9zcGFuPjxicj54eHh4PGJyPnh4eHgKKzwvZGl2PgorPGJyPgor
PCEtLSAtd2Via2l0LWVhY2gtbGluZSB3aXRoIGEgc29mdCB3cmFwIGJyZWFrIC0tPgorPGRpdiBj
bGFzcz0iZWFjaGxpbmUiPgorPHNwYW4gY2xhc3M9ImluZGVudCI+eHh4eDwvc3Bhbj4geHh4eCB4
eHh4Cis8L2Rpdj4KKzxicj4KKzwhLS0gLXdlYmtpdC1lYWNoLWxpbmUgd2l0aCBhIGZvcmNlZCBs
aW5lIGJyZWFrIC0tPgorPGRpdiBjbGFzcz0iZWFjaGxpbmUiPgorPHNwYW4gY2xhc3M9ImluZGVu
dCI+eHh4eDwvc3Bhbj48YnI+PHNwYW4gY2xhc3M9ImluZGVudCI+eHh4eDwvc3Bhbj48YnI+PHNw
YW4gY2xhc3M9ImluZGVudCI+eHh4eDwvc3Bhbj4KKzwvZGl2PgorPGJyPgorPCEtLSAtd2Via2l0
LWVhY2gtbGluZSB3aXRoIGEgc29mdCB3cmFwIGJyZWFrIGFuZCBhIGZvcmNlZCBsaW5lIGJyZWFr
IC0tPgorPGRpdiBjbGFzcz0iZWFjaGxpbmUiPgorPHNwYW4gY2xhc3M9ImluZGVudCI+eHh4eDwv
c3Bhbj4geHh4eDxicj48c3BhbiBjbGFzcz0iaW5kZW50Ij54eHh4PC9zcGFuPgorPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDE4ODA5MWQ3NTI2ZWViMGFkYTkzOWI1ZTU2M2IzZWQ2NzhlZTQ0NTUuLmFjZDY3ZDBl
ZGM1NWQ5MjA0NWY0N2M2MDNiOGMwODBjMmRiZmQ2ZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNTA3LDggKzI1MDcsNyBAQCBmYXN0L2NzczMtdGV4
dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5bGUt
dGV4dC1hbGlnbgogZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0
ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtZGVjb3JhdGlvbi1saW5lLmh0bWwKIGZhc3Qv
Y3NzMy10ZXh0L2NzczMtdGV4dC1kZWNvcmF0aW9uL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0
ZWRTdHlsZS10ZXh0LWRlY29yYXRpb24tY29sb3IuaHRtbAogZmFzdC9jc3MzLXRleHQvY3NzMy10
ZXh0LWRlY29yYXRpb24vZ2V0Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtdW5k
ZXJsaW5lLXBvc2l0aW9uLmh0bWwKLWZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1pbmRlbnQvZ2V0
Q29tcHV0ZWRTdHlsZS9nZXRDb21wdXRlZFN0eWxlLXRleHQtaW5kZW50LWluaGVyaXRlZC5odG1s
Ci1mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVkU3R5bGUvZ2V0Q29t
cHV0ZWRTdHlsZS10ZXh0LWluZGVudC5odG1sCitmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5k
ZW50IFsgRmFpbHVyZSBdCiAKICMgTmVlZHMgcmViYXNlbGluZS4KIHdlYmtpdC5vcmcvYi85NDE5
OCBmYXN0L2RvbS9IVE1MSW1hZ2VFbGVtZW50L2ltYWdlLWFsdC10ZXh0Lmh0bWwgWyBGYWlsdXJl
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGU4ZjVlZDcxN2Y4MDY0ZTVmMTEzZTRmMzU3YTVlNTk2ODRhZWVhMDIuLjFmNTJkNjVhODQ1
MTdkZTA0MDdmNTFkMDZhNGEzYzQ3MThiZDYzYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjk4Myw4ICsyOTgzLDcgQEAgd2Via2l0
Lm9yZy9iLzM5NzI1IGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtYXV0b3Njcm9sbC5odG1sIFsg
U2tpcCBdCiBmYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0
eWxlL2dldENvbXB1dGVkU3R5bGUtdGV4dC1hbGlnbi1sYXN0LWluaGVyaXRlZC5odG1sCiBmYXN0
L2NzczMtdGV4dC9jc3MzLXRleHQtYWxpZ24tbGFzdC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1
dGVkU3R5bGUtdGV4dC1hbGlnbi1sYXN0Lmh0bWwKIGZhc3QvY3NzMy10ZXh0L2NzczMtdGV4dC1k
ZWNvcmF0aW9uL2dldENvbXB1dGVkU3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWRlY29yYXRp
b24tbGluZS5odG1sCi1mYXN0L2NzczMtdGV4dC9jc3MzLXRleHQtaW5kZW50L2dldENvbXB1dGVk
U3R5bGUvZ2V0Q29tcHV0ZWRTdHlsZS10ZXh0LWluZGVudC1pbmhlcml0ZWQuaHRtbAotZmFzdC9j
c3MzLXRleHQvY3NzMy10ZXh0LWluZGVudC9nZXRDb21wdXRlZFN0eWxlL2dldENvbXB1dGVkU3R5
bGUtdGV4dC1pbmRlbnQuaHRtbAorZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWluZGVudCBbIEZh
aWx1cmUgXQogCiAjIFNwZWxsY2hlY2tlciBiZWhhdmlvciB0ZXN0cy4KIHdlYmtpdC5vcmcvYi8x
MDgzNzAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwg
WyBTa2lwIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>