<?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>103031</bug_id>
          
          <creation_ts>2012-11-22 00:16:41 -0800</creation_ts>
          <short_desc>Better type ahead for DateTimeSymbolicFieldElement</short_desc>
          <delta_ts>2013-05-11 20:35:32 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103620</dependson>
    
    <dependson>103834</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>773671</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-22 00:16:41 -0800</bug_when>
    <thetext>Better type ahead for DateTimeSymbolicFieldElement.
We want to support cycling and multiple character prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775248</commentid>
    <comment_count>1</comment_count>
      <attachid>175941</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-26 01:37:44 -0800</bug_when>
    <thetext>Created attachment 175941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775257</commentid>
    <comment_count>2</comment_count>
      <attachid>175941</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-26 01:47:02 -0800</bug_when>
    <thetext>Comment on attachment 175941
Patch

Attachment 175941 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14981596</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775258</commentid>
    <comment_count>3</comment_count>
      <attachid>175941</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-26 01:48:12 -0800</bug_when>
    <thetext>Comment on attachment 175941
Patch

Attachment 175941 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15003041</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775259</commentid>
    <comment_count>4</comment_count>
      <attachid>175941</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-26 01:49:36 -0800</bug_when>
    <thetext>Comment on attachment 175941
Patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        * WebCore.gypi: Added TypeAhead.{h,cpp}

You need to add these files to many other build files.

&gt; Source/WebCore/html/HTMLSelectElement.h:111
&gt; +    // TypeAheadDataSource methods.
&gt; +    virtual int indexOfSelectedOption() const OVERRIDE;
&gt; +    virtual int optionCount() const OVERRIDE;
&gt; +    virtual String optionAtIndex(int index) const OVERRIDE;

Let&apos;s make them private because they shouldn&apos;t be called by non-TypeAhead code.

&gt; Source/WebCore/html/TypeAhead.cpp:2
&gt; + * Copyright (C) 2012 Google Inc. All rights reserved.

You have to respect the copyright of the original code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775270</commentid>
    <comment_count>5</comment_count>
      <attachid>175941</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-26 02:04:57 -0800</bug_when>
    <thetext>Comment on attachment 175941
Patch

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

&gt; Source/WebCore/html/TypeAhead.cpp:51
&gt; +    int length = string.length();
&gt; +
&gt; +    int i;

nit: They should be unsigned.

&gt; Source/WebCore/html/TypeAhead.cpp:79
&gt; +        m_buffer.append(c);

We should avoid String::append.  m_buffer should be a StringBuilder or a Vector.

&gt; Source/WebCore/html/TypeAhead.h:47
&gt; +    int handleEvent(KeyboardEvent*);

You had better add a comment about the return value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775376</commentid>
    <comment_count>6</comment_count>
      <attachid>175974</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-26 05:34:43 -0800</bug_when>
    <thetext>Created attachment 175974
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775378</commentid>
    <comment_count>7</comment_count>
      <attachid>175975</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-26 05:35:53 -0800</bug_when>
    <thetext>Created attachment 175975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775381</commentid>
    <comment_count>8</comment_count>
      <attachid>175975</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-26 05:38:32 -0800</bug_when>
    <thetext>Comment on attachment 175975
Patch

Attachment 175975 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14989565</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775382</commentid>
    <comment_count>9</comment_count>
      <attachid>175975</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-26 05:41:16 -0800</bug_when>
    <thetext>Comment on attachment 175975
Patch

Attachment 175975 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14987640</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775383</commentid>
    <comment_count>10</comment_count>
      <attachid>175975</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 05:42:00 -0800</bug_when>
    <thetext>Comment on attachment 175975
Patch

Attachment 175975 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14986586</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775392</commentid>
    <comment_count>11</comment_count>
      <attachid>175979</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-26 05:49:23 -0800</bug_when>
    <thetext>Created attachment 175979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775395</commentid>
    <comment_count>12</comment_count>
      <attachid>175979</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-26 05:55:51 -0800</bug_when>
    <thetext>Comment on attachment 175979
Patch

Attachment 175979 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14981673</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775400</commentid>
    <comment_count>13</comment_count>
      <attachid>175981</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-26 05:57:43 -0800</bug_when>
    <thetext>Created attachment 175981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776176</commentid>
    <comment_count>14</comment_count>
      <attachid>175981</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-11-26 18:20:48 -0800</bug_when>
    <thetext>Comment on attachment 175981
Patch

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

&gt; Source/WebCore/html/TypeAhead.h:59
&gt; +    void setMatchMode(MatchModeFlags);

nit: We can remove setMatchMode and m_matchMode by adding MatchModeFlags argument to handleEvent.
It&apos;s up to you to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778757</commentid>
    <comment_count>15</comment_count>
      <attachid>176662</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-29 00:17:53 -0800</bug_when>
    <thetext>Created attachment 176662
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778769</commentid>
    <comment_count>16</comment_count>
      <attachid>176665</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-29 00:31:27 -0800</bug_when>
    <thetext>Created attachment 176665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778809</commentid>
    <comment_count>17</comment_count>
      <attachid>176665</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 01:16:47 -0800</bug_when>
    <thetext>Comment on attachment 176665
Patch

Clearing flags on attachment: 176665

Committed r136111: &lt;http://trac.webkit.org/changeset/136111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778810</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 01:16:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778838</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 02:14:17 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 103620</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778903</commentid>
    <comment_count>20</comment_count>
      <attachid>176699</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-29 04:02:16 -0800</bug_when>
    <thetext>Created attachment 176699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779790</commentid>
    <comment_count>21</comment_count>
      <attachid>176897</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-11-29 20:53:30 -0800</bug_when>
    <thetext>Created attachment 176897
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779804</commentid>
    <comment_count>22</comment_count>
      <attachid>176897</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 21:47:01 -0800</bug_when>
    <thetext>Comment on attachment 176897
Patch

Clearing flags on attachment: 176897

Committed r136205: &lt;http://trac.webkit.org/changeset/136205&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779805</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-29 21:47:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>887892</commentid>
    <comment_count>24</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2013-05-11 20:35:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/13334846&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175941</attachid>
            <date>2012-11-26 01:37:44 -0800</date>
            <delta_ts>2012-11-26 05:34:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103031-20121126183523.patch</filename>
            <type>text/plain</type>
            <size>24928</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFlYWQ0OGRmMTA0MGU0
ZDZjMThmNTkzMDlhMmFkMWEwMjQxNmExNC4uNjg1OGM2ZTNmZWUyMjg5M2Y4M2NmNTRiN2EzZDg0
YTU1MzczZDQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTExLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0eXBlIGFo
ZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGN1dHMgb3V0IHRoZSB0eXBlIGFoZWFk
IGNvZGUgdGhhdCB3aWxsIGJlIHVzZWQgYnkgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgYW5k
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgaW50byBhIFR5cGVBaGVhZCBjbGFzcy4gVGhp
cyB3aWxsCisgICAgICAgIGltcHJvdmUgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB0eXBl
IGFoZWFkIHdoaWNoIHdhcyBmaXJzdAorICAgICAgICBjaGFyYWN0ZXIgbWF0Y2ggb25seSwgYnkg
YWRkaW5nIGN5Y2xpbmcsIHByZWZpeCBtYXRjaCBhbmQgaW5kZXggbnVtYmVyCisgICAgICAgIG1h
dGNoLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIG1vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogQWRkZWQgVHlwZUFo
ZWFkLntoLGNwcH0KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxT
ZWxlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjppbmRl
eE9mU2VsZWN0ZWRPcHRpb24pOiBSZXR1cm5zIGluZGV4IG9mIGN1cnJlbnQgc2VsZWN0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbkNvdW50KTogUmV0dXJu
cyB0b3RhbCBudW1iZXIgb2Ygb3B0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RF
bGVtZW50OjpvcHRpb25BdEluZGV4KTogUmV0dXJucyBvcHRpb24gYXQgaW5kZXguCisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFoZWFkRmluZCk6IFVzZSBUeXBlQWhl
YWQuCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAoSFRNTFNl
bGVjdEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvVHlwZUFoZWFkLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVhZDo6VHlwZUFoZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OnN0cmlwTGVhZGluZ1doaXRlU3BhY2UpOiBNb3ZlZCBmcm9tIEhU
TUxTZWxlY3RFbGVtZW50LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVhZDo6c2V0TWF0
Y2hNb2RlKTogU2V0cyB0aGUgbWF0Y2ggbW9kZS4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVh
ZDo6aGFuZGxlRXZlbnQpOiBSZXR1cm5zIGluZGV4IGZvciBtYXRjaC4KKyAgICAgICAgKiBodG1s
L1R5cGVBaGVhZC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVHlwZUFo
ZWFkRGF0YVNvdXJjZSk6IFByb3ZpZGUgdGhlIGRhdGEgYWJvdXQgdGhlIG9wdGlvbnMgdGhhdCBU
eXBlQWhlYWQgc2hvdWxkIG1hdGNoIGFnYWluc3QuCisgICAgICAgIChUeXBlQWhlYWQpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluZGV4T2ZTZWxlY3RlZE9wdGlvbik6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQ6Om9wdGlvbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaDoKKyAgICAgICAgKERhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQpOgorCiAyMDEyLTExLTIxICBEYW4gQ2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBWOERPTVdpbmRvd1NoZWxsOjpnZXRFbnRlcmVkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggYTBjNTBiMjZlNmZjNmNjY2FiNTRjZGUyYjY3YjExOGQ3MTZkYTYwZS4uYjg5NGQw
YjQyMjZmMGJmNGEzNGFlMmU5M2NjZGRhMzMyYTk0ZDg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAt
NDI5OSw2ICs0Mjk5LDggQEAKICAgICAgICAgICAgICdodG1sL1ZhbGlkaXR5U3RhdGUuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9X
ZWVrSW5wdXRUeXBlLmgnLAorICAgICAgICAgICAgJ2h0bWwvVHlwZUFoZWFkLmNwcCcsCisgICAg
ICAgICAgICAnaHRtbC9UeXBlQWhlYWQuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2Fu
dmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52
YXNDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNH
cmFkaWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApp
bmRleCAwNTI3YTkxY2EyNWUxMjRmOTRkODEwNDAyMTllZDdkZDhkMjZkN2E3Li4yNzFiZTU3ZmM2
MmYxNTM0ZjNmYmVmNjU3MDA4MWVlMzQwNDY3MjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNjQsMTYgKzY0LDEzIEBAIHVzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CiAvLyBVcHBlciBsaW1pdCBhZ3JlZWQgdXBvbiB3aXRoIHJlcHJlc2VudGF0aXZl
cyBvZiBPcGVyYSBhbmQgTW96aWxsYS4KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhTZWxlY3RJ
dGVtcyA9IDEwMDAwOwogCi1zdGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVv
dXQgPSAxMDAwOwotCiBIVE1MU2VsZWN0RWxlbWVudDo6SFRNTFNlbGVjdEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0pCiAgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKHRhZ05hbWUs
IGRvY3VtZW50LCBmb3JtKQotICAgICwgbV9sYXN0Q2hhclRpbWUoMCkKKyAgICAsIG1fdHlwZUFo
ZWFkKHRoaXMpCiAgICAgLCBtX3NpemUoMCkKICAgICAsIG1fbGFzdE9uQ2hhbmdlSW5kZXgoLTEp
CiAgICAgLCBtX2FjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4KC0xKQogICAgICwgbV9hY3RpdmVT
ZWxlY3Rpb25FbmRJbmRleCgtMSkKLSAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQogICAgICwgbV9p
c1Byb2Nlc3NpbmdVc2VyRHJpdmVuQ2hhbmdlKGZhbHNlKQogICAgICwgbV9tdWx0aXBsZShmYWxz
ZSkKICAgICAsIG1fYWN0aXZlU2VsZWN0aW9uU3RhdGUoZmFsc2UpCkBAIC0xNDc0LDgyICsxNDcx
LDM0IEBAIGludCBIVE1MU2VsZWN0RWxlbWVudDo6bGFzdFNlbGVjdGVkTGlzdEluZGV4KCkgY29u
c3QKICAgICByZXR1cm4gLTE7CiB9CiAKLXN0YXRpYyBTdHJpbmcgc3RyaXBMZWFkaW5nV2hpdGVT
cGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKK2ludCBIVE1MU2VsZWN0RWxlbWVudDo6aW5kZXhP
ZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QKIHsKLSAgICBpbnQgbGVuZ3RoID0gc3RyaW5nLmxlbmd0
aCgpOwotCi0gICAgaW50IGk7Ci0gICAgZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgIGlmIChzdHJpbmdbaV0gIT0gbm9CcmVha1NwYWNlICYmIChzdHJpbmdbaV0gPD0gMHg3
RiA/ICFpc0FTQ0lJU3BhY2Uoc3RyaW5nW2ldKSA6IChkaXJlY3Rpb24oc3RyaW5nW2ldKSAhPSBX
aGl0ZVNwYWNlTmV1dHJhbCkpKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0
dXJuIHN0cmluZy5zdWJzdHJpbmcoaSwgbGVuZ3RoIC0gaSk7CisgICAgcmV0dXJuIG9wdGlvblRv
TGlzdEluZGV4KHNlbGVjdGVkSW5kZXgoKSk7CiB9CiAKLXZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6
OnR5cGVBaGVhZEZpbmQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCitpbnQgSFRNTFNlbGVjdEVsZW1l
bnQ6Om9wdGlvbkNvdW50KCkgY29uc3QKIHsKLSAgICBpZiAoZXZlbnQtPnRpbWVTdGFtcCgpIDwg
bV9sYXN0Q2hhclRpbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIERPTVRpbWVTdGFtcCBkZWx0
YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdENoYXJUaW1lOwotICAgIG1fbGFzdENoYXJU
aW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwotCi0gICAgVUNoYXIgYyA9IGV2ZW50LT5jaGFyQ29k
ZSgpOwotCi0gICAgU3RyaW5nIHByZWZpeDsKLSAgICBpbnQgc2VhcmNoU3RhcnRPZmZzZXQgPSAx
OwotICAgIGlmIChkZWx0YSA+IHR5cGVBaGVhZFRpbWVvdXQpIHsKLSAgICAgICAgcHJlZml4ID0g
U3RyaW5nKCZjLCAxKTsKLSAgICAgICAgbV90eXBlZFN0cmluZyA9IHByZWZpeDsKLSAgICAgICAg
bV9yZXBlYXRpbmdDaGFyID0gYzsKLSAgICB9IGVsc2UgewotICAgICAgICBtX3R5cGVkU3RyaW5n
LmFwcGVuZChjKTsKLQotICAgICAgICBpZiAoYyA9PSBtX3JlcGVhdGluZ0NoYXIpIHsKLSAgICAg
ICAgICAgIC8vIFRoZSB1c2VyIGlzIGxpa2VseSB0cnlpbmcgdG8gY3ljbGUgdGhyb3VnaCBhbGwg
dGhlIGl0ZW1zIHN0YXJ0aW5nCi0gICAgICAgICAgICAvLyB3aXRoIHRoaXMgY2hhcmFjdGVyLCBz
byBqdXN0IHNlYXJjaCBvbiB0aGUgY2hhcmFjdGVyLgotICAgICAgICAgICAgcHJlZml4ID0gU3Ry
aW5nKCZjLCAxKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIG1fcmVwZWF0aW5nQ2hh
ciA9IDA7Ci0gICAgICAgICAgICBwcmVmaXggPSBtX3R5cGVkU3RyaW5nOwotICAgICAgICAgICAg
c2VhcmNoU3RhcnRPZmZzZXQgPSAwOwotICAgICAgICB9Ci0gICAgfQorICAgIHJldHVybiBsaXN0
SXRlbXMoKS5zaXplKCk7Cit9CiAKK1N0cmluZyBIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uQXRJ
bmRleChpbnQgaW5kZXgpIGNvbnN0Cit7CiAgICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4m
IGl0ZW1zID0gbGlzdEl0ZW1zKCk7Ci0gICAgaW50IGl0ZW1Db3VudCA9IGl0ZW1zLnNpemUoKTsK
LSAgICBpZiAoaXRlbUNvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuOworICAgIAorICAgIEhUTUxF
bGVtZW50KiBlbGVtZW50ID0gaXRlbXNbaW5kZXhdOworICAgIGlmICghZWxlbWVudC0+aGFzVGFn
TmFtZShvcHRpb25UYWcpIHx8IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPmRpc2FibGVk
KCkpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gdG9IVE1MT3B0aW9uRWxl
bWVudChlbGVtZW50KS0+dGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpOworfQogCi0g
ICAgaW50IHNlbGVjdGVkID0gc2VsZWN0ZWRJbmRleCgpOwotICAgIGludCBpbmRleCA9IG9wdGlv
blRvTGlzdEluZGV4KHNlbGVjdGVkID49IDAgPyBzZWxlY3RlZCA6IDApICsgc2VhcmNoU3RhcnRP
ZmZzZXQ7Cit2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojp0eXBlQWhlYWRGaW5kKEtleWJvYXJkRXZl
bnQqIGV2ZW50KQoreworICAgIGludCBpbmRleCA9IG1fdHlwZUFoZWFkLmhhbmRsZUV2ZW50KGV2
ZW50KTsKICAgICBpZiAoaW5kZXggPCAwKQogICAgICAgICByZXR1cm47Ci0gICAgaW5kZXggJT0g
aXRlbUNvdW50OwotCi0gICAgLy8gQ29tcHV0ZSBhIGNhc2UtZm9sZGVkIGNvcHkgb2YgdGhlIHBy
ZWZpeCBzdHJpbmcgYmVmb3JlIGJlZ2lubmluZyB0aGUgc2VhcmNoIGZvcgotICAgIC8vIGEgbWF0
Y2hpbmcgZWxlbWVudC4gVGhpcyBjb2RlIHVzZXMgZm9sZENhc2UgdG8gd29yayBhcm91bmQgdGhl
IGZhY3QgdGhhdAotICAgIC8vIFN0cmluZzo6c3RhcnRXaXRoIGRvZXMgbm90IGZvbGQgbm9uLUFT
Q0lJIGNoYXJhY3RlcnMuIFRoaXMgY29kZSBjYW4gYmUgY2hhbmdlZAotICAgIC8vIHRvIHVzZSBz
dGFydFdpdGggb25jZSB0aGF0IGlzIGZpeGVkLgotICAgIFN0cmluZyBwcmVmaXhXaXRoQ2FzZUZv
bGRlZChwcmVmaXguZm9sZENhc2UoKSk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtQ291
bnQ7ICsraSwgaW5kZXggPSAoaW5kZXggKyAxKSAlIGl0ZW1Db3VudCkgewotICAgICAgICBIVE1M
RWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2luZGV4XTsKLSAgICAgICAgaWYgKCFlbGVtZW50LT5o
YXNUYWdOYW1lKG9wdGlvblRhZykgfHwgdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+ZGlz
YWJsZWQoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIC8vIEZvbGQgdGhlIG9w
dGlvbiBzdHJpbmcgYW5kIGNoZWNrIGlmIGl0cyBwcmVmaXggaXMgZXF1YWwgdG8gdGhlIGZvbGRl
ZCBwcmVmaXguCi0gICAgICAgIFN0cmluZyB0ZXh0ID0gdG9IVE1MT3B0aW9uRWxlbWVudChlbGVt
ZW50KS0+dGV4dEluZGVudGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpOwotICAgICAgICBpZiAoc3Ry
aXBMZWFkaW5nV2hpdGVTcGFjZSh0ZXh0KS5mb2xkQ2FzZSgpLnN0YXJ0c1dpdGgocHJlZml4V2l0
aENhc2VGb2xkZWQpKSB7Ci0gICAgICAgICAgICBzZWxlY3RPcHRpb24obGlzdFRvT3B0aW9uSW5k
ZXgoaW5kZXgpLCBEZXNlbGVjdE90aGVyT3B0aW9ucyB8IERpc3BhdGNoQ2hhbmdlRXZlbnQgfCBV
c2VyRHJpdmVuKTsKLSAgICAgICAgICAgIGlmICghdXNlc01lbnVMaXN0KCkpCi0gICAgICAgICAg
ICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7Ci0KLSAgICAgICAgICAgIHNldE9wdGlvbnNDaGFuZ2Vk
T25SZW5kZXJlcigpOwotICAgICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQorICAgIHNlbGVjdE9wdGlvbihsaXN0VG9P
cHRpb25JbmRleChpbmRleCksIERlc2VsZWN0T3RoZXJPcHRpb25zIHwgRGlzcGF0Y2hDaGFuZ2VF
dmVudCB8IFVzZXJEcml2ZW4pOworICAgIGlmICghdXNlc01lbnVMaXN0KCkpCisgICAgICAgIGxp
c3RCb3hPbkNoYW5nZSgpOwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0
IEhUTUxTZWxlY3RFbGVtZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9u
UG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggNmQ4OGRh
MTc4ODNlMjM1Mzk1ZTViYTY5ZjUzM2Q3YWM1N2UyMDQ2NS4uNzJiY2VmZGI3NWNiM2Q1NzkxNjdk
MWYzMDdmMmJjNjNjZTM0YmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaApAQCAtMjksMTMgKzI5LDE0IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJI
VE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiVHlwZUFoZWFkLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxPcHRpb25FbGVtZW50Owog
Ci1jbGFzcyBIVE1MU2VsZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50
V2l0aFN0YXRlIHsKK2NsYXNzIEhUTUxTZWxlY3RFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGUsIHB1YmxpYyBUeXBlQWhlYWREYXRhU291cmNlIHsKIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwogCkBAIC0xMDQs
NiArMTA1LDExIEBAIHB1YmxpYzoKICAgICAvLyBGb3IgdXNlIGluIHRoZSBpbXBsZW1lbnRhdGlv
biBvZiBIVE1MT3B0aW9uRWxlbWVudC4KICAgICB2b2lkIG9wdGlvblNlbGVjdGlvblN0YXRlQ2hh
bmdlZChIVE1MT3B0aW9uRWxlbWVudCosIGJvb2wgb3B0aW9uSXNTZWxlY3RlZCk7CiAgICAgCisg
ICAgLy8gVHlwZUFoZWFkRGF0YVNvdXJjZSBtZXRob2RzLgorICAgIHZpcnR1YWwgaW50IGluZGV4
T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IG9wdGlv
bkNvdW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgb3B0aW9uQXRJbmRl
eChpbnQgaW5kZXgpIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTFNlbGVj
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50
Kik7CiAKQEAgLTE4NSwxMyArMTkxLDExIEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBWZWN0b3I8
SFRNTEVsZW1lbnQqPiBtX2xpc3RJdGVtczsKICAgICBWZWN0b3I8Ym9vbD4gbV9sYXN0T25DaGFu
Z2VTZWxlY3Rpb247CiAgICAgVmVjdG9yPGJvb2w+IG1fY2FjaGVkU3RhdGVGb3JBY3RpdmVTZWxl
Y3Rpb247Ci0gICAgRE9NVGltZVN0YW1wIG1fbGFzdENoYXJUaW1lOwotICAgIFN0cmluZyBtX3R5
cGVkU3RyaW5nOworICAgIFR5cGVBaGVhZCBtX3R5cGVBaGVhZDsKICAgICBpbnQgbV9zaXplOwog
ICAgIGludCBtX2xhc3RPbkNoYW5nZUluZGV4OwogICAgIGludCBtX2FjdGl2ZVNlbGVjdGlvbkFu
Y2hvckluZGV4OwogICAgIGludCBtX2FjdGl2ZVNlbGVjdGlvbkVuZEluZGV4OwotICAgIFVDaGFy
IG1fcmVwZWF0aW5nQ2hhcjsKICAgICBib29sIG1faXNQcm9jZXNzaW5nVXNlckRyaXZlbkNoYW5n
ZTsKICAgICBib29sIG1fbXVsdGlwbGU7CiAgICAgYm9vbCBtX2FjdGl2ZVNlbGVjdGlvblN0YXRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViOTQ5NTMxZjVmYzczODMx
YzBmMWY3M2RiNTljNGI2YmMxYzgzMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVHlwZUFoZWFkLmgiCisKKyNpbmNsdWRl
ICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMu
aD4KKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBX
VEY6OlVuaWNvZGU7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVHlwZUFoZWFkOjpUeXBlQWhl
YWQoVHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKKyAgICA6IG1fZGF0YVNvdXJjZShk
YXRhU291cmNlKQorICAgICwgbV9sYXN0VHlwZVRpbWUoMCkKKyAgICAsIG1fcmVwZWF0aW5nQ2hh
cigwKQorICAgICwgbV9tYXRjaE1vZGUoTWF0Y2hQcmVmaXggfCBDeWNsZUZpcnN0Q2hhcikKK3sK
K30KKworc3RhdGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsK
Kworc3RhdGljIFN0cmluZyBzdHJpcExlYWRpbmdXaGl0ZVNwYWNlKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQoreworICAgIGludCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisKKyAgICBpbnQgaTsK
KyAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHN0cmluZ1tp
XSAhPSBub0JyZWFrU3BhY2UgJiYgKHN0cmluZ1tpXSA8PSAweDdGID8gIWlzQVNDSUlTcGFjZShz
dHJpbmdbaV0pIDogKGRpcmVjdGlvbihzdHJpbmdbaV0pICE9IFdoaXRlU3BhY2VOZXV0cmFsKSkp
CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gc3RyaW5nLnN1YnN0cmlu
ZyhpLCBsZW5ndGggLSBpKTsKK30KKwordm9pZCBUeXBlQWhlYWQ6OnNldE1hdGNoTW9kZShNYXRj
aE1vZGVGbGFncyBtYXRjaE1vZGUpCit7CisgICAgbV9tYXRjaE1vZGUgPSBtYXRjaE1vZGU7Cit9
CisKK2ludCBUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQorewor
ICAgIGlmIChldmVudC0+dGltZVN0YW1wKCkgPCBtX2xhc3RUeXBlVGltZSkKKyAgICAgICAgcmV0
dXJuIG5vdEZvdW5kOworCisgICAgaW50IG9wdGlvbkNvdW50ID0gbV9kYXRhU291cmNlLT5vcHRp
b25Db3VudCgpOworICAgIERPTVRpbWVTdGFtcCBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAt
IG1fbGFzdFR5cGVUaW1lOworICAgIG1fbGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgp
OworCisgICAgVUNoYXIgYyA9IGV2ZW50LT5jaGFyQ29kZSgpOworCisgICAgaWYgKGRlbHRhID4g
dHlwZUFoZWFkVGltZW91dCkKKyAgICAgICAgbV9idWZmZXIgPSBTdHJpbmcoJmMsIDEpOworICAg
IGVsc2UKKyAgICAgICAgbV9idWZmZXIuYXBwZW5kKGMpOworCisgICAgaWYgKG9wdGlvbkNvdW50
IDwgMSkKKyAgICAgICAgcmV0dXJuIG5vdEZvdW5kOworCisgICAgaW50IHNlYXJjaFN0YXJ0T2Zm
c2V0ID0gMTsKKyAgICBTdHJpbmcgcHJlZml4OworICAgIGlmIChtX21hdGNoTW9kZSAmIEN5Y2xl
Rmlyc3RDaGFyICYmIGMgPT0gbV9yZXBlYXRpbmdDaGFyKSB7CisgICAgICAgIC8vIFRoZSB1c2Vy
IGlzIGxpa2VseSB0cnlpbmcgdG8gY3ljbGUgdGhyb3VnaCBhbGwgdGhlIGl0ZW1zIHN0YXJ0aW5n
CisgICAgICAgIC8vIHdpdGggdGhpcyBjaGFyYWN0ZXIsIHNvIGp1c3Qgc2VhcmNoIG9uIHRoZSBj
aGFyYWN0ZXIuCisgICAgICAgIHByZWZpeCA9IFN0cmluZygmYywgMSk7CisgICAgICAgIG1fcmVw
ZWF0aW5nQ2hhciA9IGM7CisgICAgfSBlbHNlIGlmIChtX21hdGNoTW9kZSAmIE1hdGNoUHJlZml4
KSB7CisgICAgICAgIHByZWZpeCA9IG1fYnVmZmVyOworICAgICAgICBpZiAobV9idWZmZXIubGVu
Z3RoKCkgPiAxKSB7CisgICAgICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOworICAgICAgICAg
ICAgc2VhcmNoU3RhcnRPZmZzZXQgPSAwOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1f
cmVwZWF0aW5nQ2hhciA9IGM7CisgICAgfQorCisgICAgaWYgKCFwcmVmaXguaXNFbXB0eSgpKSB7
CisgICAgICAgIGludCBzZWxlY3RlZCA9IG1fZGF0YVNvdXJjZS0+aW5kZXhPZlNlbGVjdGVkT3B0
aW9uKCk7CisgICAgICAgIGludCBpbmRleCA9IChzZWxlY3RlZCA8IDAgPyAwIDogc2VsZWN0ZWQp
ICsgc2VhcmNoU3RhcnRPZmZzZXQ7CisgICAgICAgIGluZGV4ICU9IG9wdGlvbkNvdW50OworCisg
ICAgICAgIC8vIENvbXB1dGUgYSBjYXNlLWZvbGRlZCBjb3B5IG9mIHRoZSBwcmVmaXggc3RyaW5n
IGJlZm9yZSBiZWdpbm5pbmcgdGhlIHNlYXJjaCBmb3IKKyAgICAgICAgLy8gYSBtYXRjaGluZyBl
bGVtZW50LiBUaGlzIGNvZGUgdXNlcyBmb2xkQ2FzZSB0byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0
aGF0CisgICAgICAgIC8vIFN0cmluZzo6c3RhcnRXaXRoIGRvZXMgbm90IGZvbGQgbm9uLUFTQ0lJ
IGNoYXJhY3RlcnMuIFRoaXMgY29kZSBjYW4gYmUgY2hhbmdlZAorICAgICAgICAvLyB0byB1c2Ug
c3RhcnRXaXRoIG9uY2UgdGhhdCBpcyBmaXhlZC4KKyAgICAgICAgU3RyaW5nIHByZWZpeFdpdGhD
YXNlRm9sZGVkKHByZWZpeC5mb2xkQ2FzZSgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBvcHRpb25Db3VudDsgKytpLCBpbmRleCA9IChpbmRleCArIDEpICUgb3B0aW9uQ291bnQpIHsK
KyAgICAgICAgICAgIC8vIEZvbGQgdGhlIG9wdGlvbiBzdHJpbmcgYW5kIGNoZWNrIGlmIGl0cyBw
cmVmaXggaXMgZXF1YWwgdG8gdGhlIGZvbGRlZCBwcmVmaXguCisgICAgICAgICAgICBTdHJpbmcg
dGV4dCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQXRJbmRleChpbmRleCk7CisgICAgICAgICAgICBp
ZiAoc3RyaXBMZWFkaW5nV2hpdGVTcGFjZSh0ZXh0KS5mb2xkQ2FzZSgpLnN0YXJ0c1dpdGgocHJl
Zml4V2l0aENhc2VGb2xkZWQpKQorICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIGlmIChtX21hdGNoTW9kZSAmIE1hdGNoSW5kZXgpIHsKKyAgICAg
ICAgYm9vbCBvayA9IGZhbHNlOworICAgICAgICBpbnQgaW5kZXggPSBtX2J1ZmZlci50b0ludCgm
b2spOworICAgICAgICBpZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50KQorICAg
ICAgICAgICAgcmV0dXJuIGluZGV4IC0gMTsKKyAgICB9CisgICAgcmV0dXJuIG5vdEZvdW5kOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MWQwYThlODc0MWQ2NmQ4MjFkMjQzY2U3ODQxMThjZWEyOTJiYjI2Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaApAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAg
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIK
KyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICog
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUeXBlQWhlYWRfaAorI2RlZmluZSBUeXBlQWhl
YWRfaAorCisjaW5jbHVkZSAiRE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS2V5Ym9hcmRFdmVudDsK
KworY2xhc3MgVHlwZUFoZWFkRGF0YVNvdXJjZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCBpbnQg
aW5kZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgaW50IG9wdGlv
bkNvdW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIG9wdGlvbkF0SW5kZXgoaW50
IGluZGV4KSBjb25zdCA9IDA7Cit9OworCitjbGFzcyBUeXBlQWhlYWQgeworcHVibGljOgorICAg
IFR5cGVBaGVhZChUeXBlQWhlYWREYXRhU291cmNlKik7CisKKyAgICBpbnQgaGFuZGxlRXZlbnQo
S2V5Ym9hcmRFdmVudCopOworCisgICAgZW51bSBNb2RlRmxhZyB7CisgICAgICAgIE1hdGNoUHJl
Zml4ID0gMSA8PCAwLAorICAgICAgICBDeWNsZUZpcnN0Q2hhciA9IDEgPDwgMSwKKyAgICAgICAg
TWF0Y2hJbmRleCA9IDEgPDwgMiwKKyAgICB9OworICAgIHR5cGVkZWYgdW5zaWduZWQgTWF0Y2hN
b2RlRmxhZ3M7CisgICAgdm9pZCBzZXRNYXRjaE1vZGUoTWF0Y2hNb2RlRmxhZ3MpOworCitwcml2
YXRlOgorICAgIFR5cGVBaGVhZERhdGFTb3VyY2UqIG1fZGF0YVNvdXJjZTsKKyAgICBET01UaW1l
U3RhbXAgbV9sYXN0VHlwZVRpbWU7CisgICAgVUNoYXIgbV9yZXBlYXRpbmdDaGFyOworICAgIE1h
dGNoTW9kZUZsYWdzIG1fbWF0Y2hNb2RlOworICAgIFN0cmluZyBtX2J1ZmZlcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFR5cGVBaGVhZF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQuY3BwCmluZGV4IDhlZjRkYWMyZmU3OTE4MjFjMDZlMGQxYjRlOTEwZjY3ZDU4NmU3MmIu
LmMwODVmNGUwMzFlOThjODRjMzQyMDk3YTM4NzgzMTE1OGU3ZTVjOTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQuY3BwCkBAIC01NSw5ICs1NSwxMSBAQCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgRgogICAg
ICwgbV9zeW1ib2xzKHN5bWJvbHMpCiAgICAgLCBtX3Zpc2libGVFbXB0eVZhbHVlKG1ha2VWaXNp
YmxlRW1wdHlWYWx1ZShzeW1ib2xzKSkKICAgICAsIG1fc2VsZWN0ZWRJbmRleCgtMSkKKyAgICAs
IG1fdHlwZUFoZWFkKHRoaXMpCiB7CiAgICAgQVNTRVJUKCFzeW1ib2xzLmlzRW1wdHkoKSk7CiAg
ICAgc2V0SGFzQ3VzdG9tQ2FsbGJhY2tzKCk7CisgICAgbV90eXBlQWhlYWQuc2V0TWF0Y2hNb2Rl
KFR5cGVBaGVhZDo6TWF0Y2hQcmVmaXggfCBUeXBlQWhlYWQ6OkN5Y2xlRmlyc3RDaGFyIHwgVHlw
ZUFoZWFkOjpNYXRjaEluZGV4KTsKIH0KIAogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6Y3VzdG9tU3R5bGVGb3JSZW5kZXJlcigpCkBAIC04Miwx
MiArODQsMTEgQEAgdm9pZCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpoYW5kbGVLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGtleWJvYXJkRXYKICAgICAgICAgcmV0dXJuOwogCiAg
ICAga2V5Ym9hcmRFdmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICBmb3IgKHVuc2lnbmVk
IGluZGV4ID0gMDsgaW5kZXggPCBtX3N5bWJvbHMuc2l6ZSgpOyArK2luZGV4KSB7Ci0gICAgICAg
IGlmICghbV9zeW1ib2xzW2luZGV4XS5pc0VtcHR5KCkgJiYgV1RGOjpVbmljb2RlOjp0b0xvd2Vy
KG1fc3ltYm9sc1tpbmRleF1bMF0pID09IGNoYXJDb2RlKSB7Ci0gICAgICAgICAgICBzZXRWYWx1
ZUFzSW50ZWdlcihpbmRleCwgRGlzcGF0Y2hFdmVudCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICB9CisKKyAgICBpbnQgaW5kZXggPSBtX3R5cGVBaGVhZC5oYW5kbGVFdmVu
dChrZXlib2FyZEV2ZW50KTsKKyAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICByZXR1cm47Cisg
ICAgc2V0VmFsdWVBc0ludGVnZXIoaW5kZXgsIERpc3BhdGNoRXZlbnQpOwogfQogCiBib29sIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Omhhc1ZhbHVlKCkgY29uc3QKQEAgLTE1MCw2ICsx
NTEsMjEgQEAgU3RyaW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1
ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc1ZhbHVlKCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZElu
ZGV4XSA6IHZpc2libGVFbXB0eVZhbHVlKCk7CiB9CiAKK2ludCBEYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50OjppbmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25zdAoreworICAgIHJldHVybiBt
X3NlbGVjdGVkSW5kZXg7Cit9CisKK2ludCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojpv
cHRpb25Db3VudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3ltYm9scy5zaXplKCk7Cit9CisK
K1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25BdEluZGV4KGludCBp
bmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zeW1ib2xzW2luZGV4XTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaAppbmRleCA1YzZiMDVh
Y2JhZjQ3YmNkNGQ1MGM0MTU0YzZiNzdhOGEyZGZiMmZkLi5lZWMxOThiZjU5YTI3ODgzZTZjYmIz
YWI0NjBhNmQ4NmZhM2ZjNWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oCkBAIC0yOCwxNCArMjgsMjAg
QEAKIAogI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCiAjaW5jbHVkZSAiRGF0
ZVRpbWVGaWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJUeXBlQWhlYWQuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAvLyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50IHJlcHJlc2VudHMg
bm9uLW51bWVyaWMgZmllbGQgb2YgZGF0YSB0aW1lCiAvLyBmb3JtYXQsIHN1Y2ggYXM6IEFNL1BN
LCBhbmQgbW9udGguCi1jbGFzcyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50IDogcHVibGlj
IERhdGVUaW1lRmllbGRFbGVtZW50IHsKK2NsYXNzIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQsIHB1YmxpYyBUeXBlQWhlYWREYXRhU291
cmNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50KTsKIAorICAgIC8vIFR5cGVBaGVhZERhdGFTb3VyY2UgbWV0aG9kcy4KKyAgICB2aXJ0dWFs
IGludCBpbmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IGludCBvcHRpb25Db3VudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIG9w
dGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVjdGVkOgogICAg
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqLCBGaWVsZE93bmVyJiwgY29u
c3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICBzaXplX3Qgc3ltYm9sc1NpemUoKSBjb25zdCB7IHJl
dHVybiBtX3N5bWJvbHMuc2l6ZSgpOyB9CkBAIC02NSw2ICs3MSw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gRGF0ZVRpbWVFZGl0RWxlbWVudHMgaW4gdGhlIHBhZ2UuCiAgICAgY29uc3QgQXRvbWljU3Ry
aW5nIG1fdmlzaWJsZUVtcHR5VmFsdWU7CiAgICAgaW50IG1fc2VsZWN0ZWRJbmRleDsKKyAgICBU
eXBlQWhlYWQgbV90eXBlQWhlYWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMDEwYzcyY2U0ZmYyZTMzZWQ4NTc0YTdkNDUzY2M4NmZlODBkNzYxZi4uMTQ1Y2MxMjRhMTk3
ZmEyZDA2ODAxYTAxZWJmNTljNjIwOTRhNmY1OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEy
LTExLTI2ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJl
dHRlciB0eXBlIGFoZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvbW9u
dGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRz
L21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbDogQWRkZWQgdGVzdHMg
Zm9yIHR5cGVhaGVhZC4KKwogMjAxMi0xMS0yMSAgQ29zbWluIFRydXRhICA8Y3RydXRhQHJpbS5j
b20+CiAKICAgICAgICAgTnVtZXJpYyBpZGVudGlmaWVycyBvZiBldmVudHMgc2hvdWxkIG5vdCBi
ZSBnbG9iYWxseSBzZXF1ZW50aWFsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZl
bnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUt
ZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0
CmluZGV4IDUyYzY1N2Y3NDdmNWE5MjgwYzk1ZGNlZjA5YTk2ZTk3OTZlZjRkNGMuLjE0Yzk2NDhh
NzFhNjUwMGRhOWQ2YmUxNzBlNjE2YmIzZTM2MDdlMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1r
ZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
bW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVu
dHMtZXhwZWN0ZWQudHh0CkBAIC0xNSw3ICsxNSw3IEBAIEJhY2tzcGFjZSAtIE1ha2UgdmFsdWUg
ZW1wdHkKID09IERpZ2l0IGtleXMgPT0KIEZBSUwgaW5wdXQudmFsdWUgc2hvdWxkIGJlIDAwMTIt
MDkuIFdhcyAwMTEyLTA5LgogPT0gTGVmdC9SaWdodCBrZXlzID09Ci1GQUlMIGlucHV0LnZhbHVl
IHNob3VsZCBiZSAwMDA1LTA2LiBXYXMgMDAwNS0wOS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAw
MDUtMDYiCiBQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgImlucHV0IgogPT0gVXAv
RG93biBrZXlzID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEwIgpAQCAtNDksNiArNDks
MjMgQEAgUEFTUyBpbnB1dC52YWx1ZSBpcyAiIgogPT0gVHlwZWFoZWFkID09CiBQQVNTIGlucHV0
LnZhbHVlIGlzICIwMDAxLTEyIgogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMi0xMiIKKz09IFR5
cGVhaGVhZCBjeWNsZSBmaXJzdCBjaGFyYWN0ZXIgPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIw
MTItMDEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTA2IgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMjAxMi0wNyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDEiCitQQVNTIGlucHV0LnZh
bHVlIGlzICIyMDEyLTAxIgorPT0gVHlwZWFoZWFkIHByZWZpeCBtYXRjaCA9PQorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMjAxMi0wMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDMiCitQQVNT
IGlucHV0LnZhbHVlIGlzICIyMDEyLTA1IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNSIK
Kz09IFR5cGVhaGVhZCBpbmRleCBtYXRjaCA9PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0w
MSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMTIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIy
MDEyLTEyIgorPT0gVHlwZWFoZWFkIHNob3VsZCBzZWFyY2ggZnJvbSBjdXJyZW50IHNlbGVjdGlv
biA9PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNiIKID09IFJUTCBMZWZ0L1JpZ2h0IGtl
eXMgPT0KIFBBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMTAiCiBQQVNTIGlucHV0LnZhbHVlIGlz
ICIwMDAyLTEwIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0
aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlw
bGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCmluZGV4IDMyMTM0NDhhYzU5MWQ5ZDRiZWZi
YTc5NTNlNzNmZDMwY2M0Mzc5YzguLmYyMGY0YzU1YjliOTdkYzc4OWE4YmFkNjA1ZTNlNTUzYjI3
OGQ1ZmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUt
ZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBs
ZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKQEAgLTE3MSw2ICsxNzEsNDQgQEAga2V5RG93
bigncmlnaHRBcnJvdycpOwoga2V5RG93bignMicpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdp
bnB1dC52YWx1ZScsICcwMDAyLTEyJyk7CiAKK2JlZ2luVGVzdCgnVHlwZWFoZWFkIGN5Y2xlIGZp
cnN0IGNoYXJhY3RlcicsICcyMDEyLTA5Jyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+
IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0w
MScpOwora2V5RG93bignaicpOyAvLyAgICAgICAgICAtPiBbSnVuXSAyMDEyCitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDYnKTsKK2tleURvd24oJ2onKTsgLy8g
ICAgICAgICAgLT4gW0p1bF0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1
ZScsICcyMDEyLTA3Jyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKYW5dIDIwMTIK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMScpOwora2V5RG93
bigneCcpOyAvLyAgICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2lucHV0LnZhbHVlJywgJzIwMTItMDEnKTsKK2lucHV0LnJlbW92ZUF0dHJpYnV0ZSgibGFuZyIp
OworCitiZWdpblRlc3QoJ1R5cGVhaGVhZCBwcmVmaXggbWF0Y2gnLCAnMjAxMi0wOScpOwora2V5
RG93bignbScpOyAvLyAgICAgICAgICAtPiBbTWFyXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDMnKTsKK2tleURvd24oJ2EnKTsgLy8gICAgICAgICAg
LT4gW01hcl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEy
LTAzJyk7CitrZXlEb3duKCd5Jyk7IC8vICAgICAgICAgIC0+IFtNYXldIDIwMTIKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNScpOwora2V5RG93bigneCcpOyAv
LyAgICAgICAgICAtPiBbTWF5XSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZh
bHVlJywgJzIwMTItMDUnKTsKK2lucHV0LnJlbW92ZUF0dHJpYnV0ZSgibGFuZyIpOworCitiZWdp
blRlc3QoJ1R5cGVhaGVhZCBpbmRleCBtYXRjaCcsICcyMDEyLTA5Jyk7CitrZXlEb3duKCcxJyk7
IC8vICAgICAgICAgIC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQu
dmFsdWUnLCAnMjAxMi0wMScpOwora2V5RG93bignMicpOyAvLyAgICAgICAgICAtPiBbRGVjXSAy
MDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMTInKTsKK2tl
eURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW0RlY10gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTEyJyk7CitpbnB1dC5yZW1vdmVBdHRyaWJ1dGUoImxh
bmciKTsKKworYmVnaW5UZXN0KCdUeXBlYWhlYWQgc2hvdWxkIHNlYXJjaCBmcm9tIGN1cnJlbnQg
c2VsZWN0aW9uJywgJzIwMTItMDEnKTsKK2tleURvd24oJ2onKTsgLy8gICAgICAgICAgLT4gW0p1
bl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA2Jyk7
CitpbnB1dC5yZW1vdmVBdHRyaWJ1dGUoImxhbmciKTsKKwogLy8gVGhlIHRlc3RzIGluIHRoZSBm
b2xsb3dpbmcgYmxvY2sgZmFpbCBvbiBwbGF0Zm9ybXMgd2l0aG91dCB0aGUKIC8vIGxhbmctYXR0
cmlidXRlLWF3YXJlLWZvcm0tY29udHJvbC1VSSBmZWF0dXJlLgogaW5wdXQuc2V0QXR0cmlidXRl
KCJsYW5nIiwgImhlLWlsIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175974</attachid>
            <date>2012-11-26 05:34:43 -0800</date>
            <delta_ts>2012-11-26 05:35:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103031-20121126223221.patch</filename>
            <type>text/plain</type>
            <size>31873</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Njk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM4OTk4YTFhZGM1Zjcz
OWNiMWZiODlmNzQyNGJkNDI4MDAyZGVmNy4uYTU4OWY1MTM3NTc1MWU0NDY2NGFjNzRmYTJhMWNh
Nzg0NjlmMzY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTExLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0eXBlIGFo
ZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGN1dHMgb3V0IHRoZSB0eXBlIGFoZWFk
IGNvZGUgdGhhdCB3aWxsIGJlIHVzZWQgYnkgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgYW5k
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgaW50byBhIFR5cGVBaGVhZCBjbGFzcy4gVGhp
cyB3aWxsCisgICAgICAgIGltcHJvdmUgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB0eXBl
IGFoZWFkIHdoaWNoIHdhcyBmaXJzdAorICAgICAgICBjaGFyYWN0ZXIgbWF0Y2ggb25seSwgYnkg
YWRkaW5nIGN5Y2xpbmcsIHByZWZpeCBtYXRjaCBhbmQgaW5kZXggbnVtYmVyCisgICAgICAgIG1h
dGNoLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIG1vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVk
IFR5cGVBaGVhZC57aCxjcHB9CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAg
ICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxT
ZWxlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjppbmRl
eE9mU2VsZWN0ZWRPcHRpb24pOiBSZXR1cm5zIGluZGV4IG9mIGN1cnJlbnQgc2VsZWN0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbkNvdW50KTogUmV0dXJu
cyB0b3RhbCBudW1iZXIgb2Ygb3B0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RF
bGVtZW50OjpvcHRpb25BdEluZGV4KTogUmV0dXJucyBvcHRpb24gYXQgaW5kZXguCisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFoZWFkRmluZCk6IFVzZSBUeXBlQWhl
YWQuCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAoSFRNTFNl
bGVjdEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvVHlwZUFoZWFkLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVhZDo6VHlwZUFoZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OnN0cmlwTGVhZGluZ1doaXRlU3BhY2UpOiBNb3ZlZCBmcm9tIEhU
TUxTZWxlY3RFbGVtZW50LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVhZDo6c2V0TWF0
Y2hNb2RlKTogU2V0cyB0aGUgbWF0Y2ggbW9kZS4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVh
ZDo6aGFuZGxlRXZlbnQpOiBSZXR1cm5zIGluZGV4IGZvciBtYXRjaC4KKyAgICAgICAgKiBodG1s
L1R5cGVBaGVhZC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVHlwZUFo
ZWFkRGF0YVNvdXJjZSk6IFByb3ZpZGUgdGhlIGRhdGEgYWJvdXQgdGhlIG9wdGlvbnMgdGhhdCBU
eXBlQWhlYWQgc2hvdWxkIG1hdGNoIGFnYWluc3QuCisgICAgICAgIChUeXBlQWhlYWQpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluZGV4T2ZTZWxlY3RlZE9wdGlvbik6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQ6Om9wdGlvbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaDoKKyAgICAgICAgKERhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQpOgorCiAyMDEyLTExLTI2ICBLdW5paGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgaW5wdXQgdHlwZSBkYXRldGlt
ZS1sb2NhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNzBlMTA4NzMwZDcyYTcx
MTNkNDJmMDlmY2I5MmUxYzMwMzUwY2MyMi4uNjVhYWY4NmZmZDY1NTA5NmVmNzI3MjBjZWZkYWY1
ODVkMzM1MWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNjIyLDYgKzM2
MjIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRUVG9rZW4uaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0
bWwvVHlwZUFoZWFkLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYzk3MGY1ZTkwOTZh
MWZhMWFhMTQ2MjBjMmFlY2IyMWNlMTdkYWNmMC4uMjdkYzBjNTg0NjFhMDFkNjA3YzQ5OGFlMDk5
Njg3MDg0ODRlYjYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC02OTAsNiArNjkwLDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIFwKICAgICBodG1sL1RleHRJbnB1
dFR5cGUuY3BwIFwKICAgICBodG1sL1RpbWVJbnB1dFR5cGUuY3BwIFwKKyAgICBodG1sL1R5cGVB
aGVhZC5jcHAgXAogICAgIGh0bWwvVVJMSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9WYWxpZGF0
aW9uTWVzc2FnZS5jcHAgXAogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgXApAQCAtMTg0Myw2
ICsxODQ0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9TdGVwUmFuZ2UuaCBcCiAgICAgaHRt
bC9UZXh0RG9jdW1lbnQuaCBcCiAgICAgaHRtbC9UaW1lUmFuZ2VzLmggXAorICAgIGh0bWwvVHlw
ZUFoZWFkLmggXAogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5oIFwKICAgICBodG1sL3BhcnNlci9D
U1NQcmVsb2FkU2Nhbm5lci5oIFwKICAgICBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyOTQ4ODVjZGVjMDE2OGMxYjk2MjAzYzc2NjVjYWEy
MjM5NWZjZGZlLi4zMjg4OGQzNjlmNjEyMzZhYTJlZmUzYjdiZTMzNjQ5NjRkYzYwN2JmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC00MjYyLDYgKzQyNjIsOCBAQAogICAgICAgICAgICAgJ2h0bWwvVmFs
aWRpdHlTdGF0ZS5oJywKICAgICAgICAgICAgICdodG1sL1dlZWtJbnB1dFR5cGUuY3BwJywKICAg
ICAgICAgICAgICdodG1sL1dlZWtJbnB1dFR5cGUuaCcsCisgICAgICAgICAgICAnaHRtbC9UeXBl
QWhlYWQuY3BwJywKKyAgICAgICAgICAgICdodG1sL1R5cGVBaGVhZC5oJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9DYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAnLAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL0NhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmgnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDViMDJiMjViNzI4ZGExMjM4NTVjMjczYjE3NGI3
YWRmNDhlMzQ1NTAuLjdiN2EwYWNlN2FjYWRkZmM2NmFiZWE3ZmFmNjM2NTdmY2UyZjA4Y2MgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02Mzky
OSw2ICs2MzkyOSwxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxUaW1lUmFuZ2VzLmgi
CiAJCQkJPgogCQkJPC9GaWxlPgorICAJCTxGaWxlCisgIAkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxUeXBlQWhlYWQuY3BwIgorICAJCQk+CisgIAkJPC9GaWxlPgorICAJCTxGaWxlCisgIAkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxUeXBlQWhlYWQuaCIKKyAgCQkJPgorICAJCTwvRmlsZT4KIAkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXFVSTElucHV0VHlwZS5jcHAiCiAJCQkJ
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGNkNzMyN2FiYWE5ZmM5NTE2ZjQ2ZTc4MTQ4MzFlZWEwNjM1NjY3YzUuLjZiMDAwYWIw
MGJhMTAyZmEzMWViMzViMTZmZmEyY2MzOWNlNmJkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4MjgsNiArNTgyOCw4IEBA
CiAJCUMzM0VFNUM1MTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzMz
RUU1QzMxNEZCNDk2MTAwMDIwOTVBIC8qIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgg
Ki87IH07CiAJCUMzNDg2MTIzMTVGREUyMUUwMDdBMUNDOSAvKiBJbnB1dFR5cGVOYW1lcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzQ4NjEyMTE1
RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuY3BwICovOyB9OwogCQlDMzQ4NjEyNDE1
RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzNDg2MTIyMTVGREUyMUUwMDdBMUNDOSAvKiBJbnB1
dFR5cGVOYW1lcy5oICovOyB9OworCQlDMzc1RDdGRDE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFo
ZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMz
NzVEN0ZCMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwICovOyB9OworCQlDMzc1RDdG
RTE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzc1RDdGQzE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFo
ZWFkLmggKi87IH07CiAJCUMzN0NERUJEMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMz
N0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDM0NGMTdBNDE1QjAwNjNG
MDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDM0NGMTdBMDE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJn
ZXRPYnNlcnZlci5jcHAgKi87IH07CiAJCUMzQ0YxN0E1MTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRh
cmdldE9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDM0NGMTdBMTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzIyOSw2ICsx
MzIzMSw4IEBACiAJCUMzM0VFNUMzMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MzQ4NjEyMTE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5wdXRUeXBlTmFtZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMzQ4NjEyMjE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBl
TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5wdXRUeXBlTmFtZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzM3NUQ3RkIxNjYzOTUxOTAwNjE4NEFC
IC8qIFR5cGVBaGVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
eXBlQWhlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMzc1RDdGQzE2NjM5
NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFR5cGVBaGVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMzdDREVCQzE0
OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvbG9yQ2hvb3NlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDM0NGMTdBMDE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJZFRhcmdldE9ic2VydmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTExNUIwMDYzRjAwMjc2
RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSWRUYXJnZXRPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4
NzQsNiArMTc4NzgsOCBAQAogCQkJCUU0NDYxMzlEMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFu
Z2VzLmNwcCAqLywKIAkJCQlFNDQ2MTM5RTBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5o
ICovLAogCQkJCUU0NDYxMzlGMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFuZ2VzLmlkbCAqLywK
KwkJCQlDMzc1RDdGQjE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCAqLywKKwkJCQlD
Mzc1RDdGQzE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggKi8sCiAJCQkJRjU1QjNEQTkx
MjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEQUExMjUx
RjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovLAogCQkJCUY1QTE1NDI1MTI3OTUzNEQw
MEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8sCkBAIC0yNTgxMiw2ICsyNTgxOCw3
IEBACiAJCQkJNDQ3OTU4MDQxNjQzQjQ5QTAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGQjJDMTVDMzE2NUQ2NDlEMDAzOUM5RjggLyogQ2FjaGVkU1ZH
RG9jdW1lbnRSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNzQxQUFEMTY2MzY2MDkw
MDhBNUI3RSAvKiBTaW11bGF0ZWRDbGlja09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMz
NzVEN0ZFMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
Mjg5MTEsNiArMjg5MTgsNyBAQAogCQkJCTFFNTAwODQ4MTY1MTZBRDgwMEI3RTA5OCAvKiBSZW5k
ZXJUaGVtZU1hY1NoYXJlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEN0UwNTIyMTY1MUMyODIw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0NDc5NTgwNTE2NDNCNEIyMDAxRTBBN0YgLyogUGFyc2VkQ29udGVudFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAK
aW5kZXggMjNhYzU3YWY0YjBhZTUzNTZlODIxYjcwMGUyMzI2NWU5MTIwMDhjOC4uMGYzNmEzYzI1
YzhkNjU0NmFiZDY2NmFhYmE0MmQxODM5MmFkNjNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTY0LDE2ICs2NCwxMyBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogLy8gVXBwZXIgbGltaXQgYWdyZWVkIHVwb24gd2l0aCByZXByZXNlbnRhdGl2
ZXMgb2YgT3BlcmEgYW5kIE1vemlsbGEuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4U2VsZWN0
SXRlbXMgPSAxMDAwMDsKIAotc3RhdGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1l
b3V0ID0gMTAwMDsKLQogSFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxTZWxlY3RFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVt
ZW50KiBmb3JtKQogICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSh0YWdOYW1l
LCBkb2N1bWVudCwgZm9ybSkKLSAgICAsIG1fbGFzdENoYXJUaW1lKDApCisgICAgLCBtX3R5cGVB
aGVhZCh0aGlzKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2xhc3RPbkNoYW5nZUluZGV4KC0x
KQogICAgICwgbV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleCgtMSkKICAgICAsIG1fYWN0aXZl
U2VsZWN0aW9uRW5kSW5kZXgoLTEpCi0gICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKICAgICAsIG1f
aXNQcm9jZXNzaW5nVXNlckRyaXZlbkNoYW5nZShmYWxzZSkKICAgICAsIG1fbXVsdGlwbGUoZmFs
c2UpCiAgICAgLCBtX2FjdGl2ZVNlbGVjdGlvblN0YXRlKGZhbHNlKQpAQCAtMTQ3NCw4MiArMTQ3
MSwzNCBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxhc3RTZWxlY3RlZExpc3RJbmRleCgpIGNv
bnN0CiAgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRl
U3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6OmluZGV4
T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0CiB7Ci0gICAgaW50IGxlbmd0aCA9IHN0cmluZy5sZW5n
dGgoKTsKLQotICAgIGludCBpOwotICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewot
ICAgICAgICBpZiAoc3RyaW5nW2ldICE9IG5vQnJlYWtTcGFjZSAmJiAoc3RyaW5nW2ldIDw9IDB4
N0YgPyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tpXSkgOiAoZGlyZWN0aW9uKHN0cmluZ1tpXSkgIT0g
V2hpdGVTcGFjZU5ldXRyYWwpKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJl
dHVybiBzdHJpbmcuc3Vic3RyaW5nKGksIGxlbmd0aCAtIGkpOworICAgIHJldHVybiBvcHRpb25U
b0xpc3RJbmRleChzZWxlY3RlZEluZGV4KCkpOwogfQogCi12b2lkIEhUTUxTZWxlY3RFbGVtZW50
Ojp0eXBlQWhlYWRGaW5kKEtleWJvYXJkRXZlbnQqIGV2ZW50KQoraW50IEhUTUxTZWxlY3RFbGVt
ZW50OjpvcHRpb25Db3VudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGV2ZW50LT50aW1lU3RhbXAoKSA8
IG1fbGFzdENoYXJUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBET01UaW1lU3RhbXAgZGVs
dGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RDaGFyVGltZTsKLSAgICBtX2xhc3RDaGFy
VGltZSA9IGV2ZW50LT50aW1lU3RhbXAoKTsKLQotICAgIFVDaGFyIGMgPSBldmVudC0+Y2hhckNv
ZGUoKTsKLQotICAgIFN0cmluZyBwcmVmaXg7Ci0gICAgaW50IHNlYXJjaFN0YXJ0T2Zmc2V0ID0g
MTsKLSAgICBpZiAoZGVsdGEgPiB0eXBlQWhlYWRUaW1lb3V0KSB7Ci0gICAgICAgIHByZWZpeCA9
IFN0cmluZygmYywgMSk7Ci0gICAgICAgIG1fdHlwZWRTdHJpbmcgPSBwcmVmaXg7Ci0gICAgICAg
IG1fcmVwZWF0aW5nQ2hhciA9IGM7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbV90eXBlZFN0cmlu
Zy5hcHBlbmQoYyk7Ci0KLSAgICAgICAgaWYgKGMgPT0gbV9yZXBlYXRpbmdDaGFyKSB7Ci0gICAg
ICAgICAgICAvLyBUaGUgdXNlciBpcyBsaWtlbHkgdHJ5aW5nIHRvIGN5Y2xlIHRocm91Z2ggYWxs
IHRoZSBpdGVtcyBzdGFydGluZwotICAgICAgICAgICAgLy8gd2l0aCB0aGlzIGNoYXJhY3Rlciwg
c28ganVzdCBzZWFyY2ggb24gdGhlIGNoYXJhY3Rlci4KLSAgICAgICAgICAgIHByZWZpeCA9IFN0
cmluZygmYywgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX3JlcGVhdGluZ0No
YXIgPSAwOwotICAgICAgICAgICAgcHJlZml4ID0gbV90eXBlZFN0cmluZzsKLSAgICAgICAgICAg
IHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKLSAgICAgICAgfQotICAgIH0KKyAgICByZXR1cm4gbGlz
dEl0ZW1zKCkuc2l6ZSgpOworfQogCitTdHJpbmcgSFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbkF0
SW5kZXgoaW50IGluZGV4KSBjb25zdAorewogICAgIGNvbnN0IFZlY3RvcjxIVE1MRWxlbWVudCo+
JiBpdGVtcyA9IGxpc3RJdGVtcygpOwotICAgIGludCBpdGVtQ291bnQgPSBpdGVtcy5zaXplKCk7
Ci0gICAgaWYgKGl0ZW1Db3VudCA8IDEpCi0gICAgICAgIHJldHVybjsKKyAgICAKKyAgICBIVE1M
RWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2luZGV4XTsKKyAgICBpZiAoIWVsZW1lbnQtPmhhc1Rh
Z05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5kaXNhYmxl
ZCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIHRvSFRNTE9wdGlvbkVs
ZW1lbnQoZWxlbWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKK30KIAot
ICAgIGludCBzZWxlY3RlZCA9IHNlbGVjdGVkSW5kZXgoKTsKLSAgICBpbnQgaW5kZXggPSBvcHRp
b25Ub0xpc3RJbmRleChzZWxlY3RlZCA+PSAwID8gc2VsZWN0ZWQgOiAwKSArIHNlYXJjaFN0YXJ0
T2Zmc2V0Owordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFoZWFkRmluZChLZXlib2FyZEV2
ZW50KiBldmVudCkKK3sKKyAgICBpbnQgaW5kZXggPSBtX3R5cGVBaGVhZC5oYW5kbGVFdmVudChl
dmVudCk7CiAgICAgaWYgKGluZGV4IDwgMCkKICAgICAgICAgcmV0dXJuOwotICAgIGluZGV4ICU9
IGl0ZW1Db3VudDsKLQotICAgIC8vIENvbXB1dGUgYSBjYXNlLWZvbGRlZCBjb3B5IG9mIHRoZSBw
cmVmaXggc3RyaW5nIGJlZm9yZSBiZWdpbm5pbmcgdGhlIHNlYXJjaCBmb3IKLSAgICAvLyBhIG1h
dGNoaW5nIGVsZW1lbnQuIFRoaXMgY29kZSB1c2VzIGZvbGRDYXNlIHRvIHdvcmsgYXJvdW5kIHRo
ZSBmYWN0IHRoYXQKLSAgICAvLyBTdHJpbmc6OnN0YXJ0V2l0aCBkb2VzIG5vdCBmb2xkIG5vbi1B
U0NJSSBjaGFyYWN0ZXJzLiBUaGlzIGNvZGUgY2FuIGJlIGNoYW5nZWQKLSAgICAvLyB0byB1c2Ug
c3RhcnRXaXRoIG9uY2UgdGhhdCBpcyBmaXhlZC4KLSAgICBTdHJpbmcgcHJlZml4V2l0aENhc2VG
b2xkZWQocHJlZml4LmZvbGRDYXNlKCkpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbUNv
dW50OyArK2ksIGluZGV4ID0gKGluZGV4ICsgMSkgJSBpdGVtQ291bnQpIHsKLSAgICAgICAgSFRN
TEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtc1tpbmRleF07Ci0gICAgICAgIGlmICghZWxlbWVudC0+
aGFzVGFnTmFtZShvcHRpb25UYWcpIHx8IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPmRp
c2FibGVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAvLyBGb2xkIHRoZSBv
cHRpb24gc3RyaW5nIGFuZCBjaGVjayBpZiBpdHMgcHJlZml4IGlzIGVxdWFsIHRvIHRoZSBmb2xk
ZWQgcHJlZml4LgotICAgICAgICBTdHJpbmcgdGV4dCA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxl
bWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKLSAgICAgICAgaWYgKHN0
cmlwTGVhZGluZ1doaXRlU3BhY2UodGV4dCkuZm9sZENhc2UoKS5zdGFydHNXaXRoKHByZWZpeFdp
dGhDYXNlRm9sZGVkKSkgewotICAgICAgICAgICAgc2VsZWN0T3B0aW9uKGxpc3RUb09wdGlvbklu
ZGV4KGluZGV4KSwgRGVzZWxlY3RPdGhlck9wdGlvbnMgfCBEaXNwYXRjaENoYW5nZUV2ZW50IHwg
VXNlckRyaXZlbik7Ci0gICAgICAgICAgICBpZiAoIXVzZXNNZW51TGlzdCgpKQotICAgICAgICAg
ICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwotCi0gICAgICAgICAgICBzZXRPcHRpb25zQ2hhbmdl
ZE9uUmVuZGVyZXIoKTsKLSAgICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KKyAgICBzZWxlY3RPcHRpb24obGlzdFRv
T3B0aW9uSW5kZXgoaW5kZXgpLCBEZXNlbGVjdE90aGVyT3B0aW9ucyB8IERpc3BhdGNoQ2hhbmdl
RXZlbnQgfCBVc2VyRHJpdmVuKTsKKyAgICBpZiAoIXVzZXNNZW51TGlzdCgpKQorICAgICAgICBs
aXN0Qm94T25DaGFuZ2UoKTsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBIVE1MU2VsZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqIGluc2VydGlv
blBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDZkODhk
YTE3ODgzZTIzNTM5NWU1YmE2OWY1MzNkN2FjNTdlMjA0NjUuLmEyZjI2NTBmNjAzMDZmODc0ZTcw
YTg0NTIwZThmNjkxMWJlNDQxMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmgKQEAgLTI5LDEzICsyOSwxNCBAQAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25z
Q29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIlR5cGVBaGVhZC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsK
IAotY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZSB7CitjbGFzcyBIVE1MU2VsZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50V2l0aFN0YXRlLCBwdWJsaWMgVHlwZUFoZWFkRGF0YVNvdXJjZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIApAQCAtMTAz
LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBGb3IgdXNlIGluIHRoZSBpbXBsZW1l
bnRhdGlvbiBvZiBIVE1MT3B0aW9uRWxlbWVudC4KICAgICB2b2lkIG9wdGlvblNlbGVjdGlvblN0
YXRlQ2hhbmdlZChIVE1MT3B0aW9uRWxlbWVudCosIGJvb2wgb3B0aW9uSXNTZWxlY3RlZCk7Ci0g
ICAgCisKIHByb3RlY3RlZDoKICAgICBIVE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIApAQCAtMTgxLDE3ICsxODIsMjAg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdl
ZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hh
bmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogICAgIHZpcnR1YWwgYm9vbCBhcmVB
dXRob3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAK
KyAgICAvLyBUeXBlQWhlYWREYXRhU291cmNlIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIGludCBp
bmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGludCBv
cHRpb25Db3VudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIG9wdGlvbkF0
SW5kZXgoaW50IGluZGV4KSBjb25zdCBPVkVSUklERTsKKwogICAgIC8vIG1fbGlzdEl0ZW1zIGNv
bnRhaW5zIEhUTUxPcHRpb25FbGVtZW50LCBIVE1MT3B0R3JvdXBFbGVtZW50LCBhbmQgSFRNTEhS
RWxlbWVudCBvYmplY3RzLgogICAgIG11dGFibGUgVmVjdG9yPEhUTUxFbGVtZW50Kj4gbV9saXN0
SXRlbXM7CiAgICAgVmVjdG9yPGJvb2w+IG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9uOwogICAgIFZl
Y3Rvcjxib29sPiBtX2NhY2hlZFN0YXRlRm9yQWN0aXZlU2VsZWN0aW9uOwotICAgIERPTVRpbWVT
dGFtcCBtX2xhc3RDaGFyVGltZTsKLSAgICBTdHJpbmcgbV90eXBlZFN0cmluZzsKKyAgICBUeXBl
QWhlYWQgbV90eXBlQWhlYWQ7CiAgICAgaW50IG1fc2l6ZTsKICAgICBpbnQgbV9sYXN0T25DaGFu
Z2VJbmRleDsKICAgICBpbnQgbV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleDsKICAgICBpbnQg
bV9hY3RpdmVTZWxlY3Rpb25FbmRJbmRleDsKLSAgICBVQ2hhciBtX3JlcGVhdGluZ0NoYXI7CiAg
ICAgYm9vbCBtX2lzUHJvY2Vzc2luZ1VzZXJEcml2ZW5DaGFuZ2U7CiAgICAgYm9vbCBtX211bHRp
cGxlOwogICAgIGJvb2wgbV9hY3RpdmVTZWxlY3Rpb25TdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFo
ZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43YWNhNDdjMjE4ZjRiMjdiOTc1ZDg5MzlhZWVjMGNkMWUxOTQw
Yjg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3Bw
CkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqIENvcHlyaWdodCAoQykgMTk5
OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRp
IEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIERpcmsg
TXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5j
b20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlR5cGVBaGVhZC5oIgorCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CisjaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvVW5pY29kZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCisgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKKyAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCisgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKKyAgICAsIG1fbWF0
Y2hNb2RlKE1hdGNoUHJlZml4IHwgQ3ljbGVGaXJzdENoYXIpCit7Cit9CisKK3N0YXRpYyBjb25z
dCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91dCA9IDEwMDA7CisKK3N0YXRpYyBTdHJpbmcg
c3RyaXBMZWFkaW5nV2hpdGVTcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICB1bnNp
Z25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisKKyAgICB1bnNpZ25lZCBpOworICAgIGZv
ciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoc3RyaW5nW2ldICE9IG5v
QnJlYWtTcGFjZSAmJiAoc3RyaW5nW2ldIDw9IDB4N0YgPyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tp
XSkgOiAoZGlyZWN0aW9uKHN0cmluZ1tpXSkgIT0gV2hpdGVTcGFjZU5ldXRyYWwpKSkKKyAgICAg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKGksIGxl
bmd0aCAtIGkpOworfQorCit2b2lkIFR5cGVBaGVhZDo6c2V0TWF0Y2hNb2RlKE1hdGNoTW9kZUZs
YWdzIG1hdGNoTW9kZSkKK3sKKyAgICBtX21hdGNoTW9kZSA9IG1hdGNoTW9kZTsKK30KKworaW50
IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgaWYg
KGV2ZW50LT50aW1lU3RhbXAoKSA8IG1fbGFzdFR5cGVUaW1lKQorICAgICAgICByZXR1cm4gbm90
Rm91bmQ7CisKKyAgICBpbnQgb3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50
KCk7CisgICAgRE9NVGltZVN0YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0
VHlwZVRpbWU7CisgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CisKKyAg
ICBVQ2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CisKKyAgICBpZiAoZGVsdGEgPiB0eXBlQWhl
YWRUaW1lb3V0KQorICAgICAgICBtX2J1ZmZlci5jbGVhcigpOworICAgIG1fYnVmZmVyLmFwcGVu
ZChjKTsKKworICAgIGlmIChvcHRpb25Db3VudCA8IDEpCisgICAgICAgIHJldHVybiBub3RGb3Vu
ZDsKKworICAgIGludCBzZWFyY2hTdGFydE9mZnNldCA9IDE7CisgICAgU3RyaW5nIHByZWZpeDsK
KyAgICBpZiAobV9tYXRjaE1vZGUgJiBDeWNsZUZpcnN0Q2hhciAmJiBjID09IG1fcmVwZWF0aW5n
Q2hhcikgeworICAgICAgICAvLyBUaGUgdXNlciBpcyBsaWtlbHkgdHJ5aW5nIHRvIGN5Y2xlIHRo
cm91Z2ggYWxsIHRoZSBpdGVtcyBzdGFydGluZworICAgICAgICAvLyB3aXRoIHRoaXMgY2hhcmFj
dGVyLCBzbyBqdXN0IHNlYXJjaCBvbiB0aGUgY2hhcmFjdGVyLgorICAgICAgICBwcmVmaXggPSBT
dHJpbmcoJmMsIDEpOworICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSBjOworICAgIH0gZWxzZSBp
ZiAobV9tYXRjaE1vZGUgJiBNYXRjaFByZWZpeCkgeworICAgICAgICBwcmVmaXggPSBtX2J1ZmZl
ci50b1N0cmluZygpOworICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkgPiAxKSB7CisgICAg
ICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOworICAgICAgICAgICAgc2VhcmNoU3RhcnRPZmZz
ZXQgPSAwOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7
CisgICAgfQorCisgICAgaWYgKCFwcmVmaXguaXNFbXB0eSgpKSB7CisgICAgICAgIGludCBzZWxl
Y3RlZCA9IG1fZGF0YVNvdXJjZS0+aW5kZXhPZlNlbGVjdGVkT3B0aW9uKCk7CisgICAgICAgIGlu
dCBpbmRleCA9IChzZWxlY3RlZCA8IDAgPyAwIDogc2VsZWN0ZWQpICsgc2VhcmNoU3RhcnRPZmZz
ZXQ7CisgICAgICAgIGluZGV4ICU9IG9wdGlvbkNvdW50OworCisgICAgICAgIC8vIENvbXB1dGUg
YSBjYXNlLWZvbGRlZCBjb3B5IG9mIHRoZSBwcmVmaXggc3RyaW5nIGJlZm9yZSBiZWdpbm5pbmcg
dGhlIHNlYXJjaCBmb3IKKyAgICAgICAgLy8gYSBtYXRjaGluZyBlbGVtZW50LiBUaGlzIGNvZGUg
dXNlcyBmb2xkQ2FzZSB0byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0CisgICAgICAgIC8vIFN0
cmluZzo6c3RhcnRXaXRoIGRvZXMgbm90IGZvbGQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIFRoaXMg
Y29kZSBjYW4gYmUgY2hhbmdlZAorICAgICAgICAvLyB0byB1c2Ugc3RhcnRXaXRoIG9uY2UgdGhh
dCBpcyBmaXhlZC4KKyAgICAgICAgU3RyaW5nIHByZWZpeFdpdGhDYXNlRm9sZGVkKHByZWZpeC5m
b2xkQ2FzZSgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcHRpb25Db3VudDsgKytp
LCBpbmRleCA9IChpbmRleCArIDEpICUgb3B0aW9uQ291bnQpIHsKKyAgICAgICAgICAgIC8vIEZv
bGQgdGhlIG9wdGlvbiBzdHJpbmcgYW5kIGNoZWNrIGlmIGl0cyBwcmVmaXggaXMgZXF1YWwgdG8g
dGhlIGZvbGRlZCBwcmVmaXguCisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IG1fZGF0YVNvdXJj
ZS0+b3B0aW9uQXRJbmRleChpbmRleCk7CisgICAgICAgICAgICBpZiAoc3RyaXBMZWFkaW5nV2hp
dGVTcGFjZSh0ZXh0KS5mb2xkQ2FzZSgpLnN0YXJ0c1dpdGgocHJlZml4V2l0aENhc2VGb2xkZWQp
KQorICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChtX21hdGNoTW9kZSAmIE1hdGNoSW5kZXgpIHsKKyAgICAgICAgYm9vbCBvayA9IGZhbHNl
OworICAgICAgICBpbnQgaW5kZXggPSBtX2J1ZmZlci50b1N0cmluZygpLnRvSW50KCZvayk7Cisg
ICAgICAgIGlmIChpbmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCisgICAgICAgICAg
ICByZXR1cm4gaW5kZXggLSAxOworICAgIH0KKyAgICByZXR1cm4gbm90Rm91bmQ7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlw
ZUFoZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdi
MjRhMDgyMDNmMjQ5MDk5YjZkODQ2M2Q1ZTRkN2I1NzYzNmEzYmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFR5cGVBaGVhZF9oCisjZGVmaW5lIFR5cGVBaGVhZF9oCisK
KyNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgS2V5Ym9hcmRFdmVudDsKKworY2xhc3MgVHlwZUFoZWFkRGF0YVNvdXJj
ZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCBpbnQgaW5kZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgaW50IG9wdGlvbkNvdW50KCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgU3RyaW5nIG9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdCA9IDA7Cit9OworCitj
bGFzcyBUeXBlQWhlYWQgeworcHVibGljOgorICAgIFR5cGVBaGVhZChUeXBlQWhlYWREYXRhU291
cmNlKik7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbmRleCBmb3IgdGhlIG1hdGNoaW5nIG9wdGlv
bi4KKyAgICBpbnQgaGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCopOworCisgICAgZW51bSBNb2Rl
RmxhZyB7CisgICAgICAgIE1hdGNoUHJlZml4ID0gMSA8PCAwLAorICAgICAgICBDeWNsZUZpcnN0
Q2hhciA9IDEgPDwgMSwKKyAgICAgICAgTWF0Y2hJbmRleCA9IDEgPDwgMiwKKyAgICB9OworICAg
IHR5cGVkZWYgdW5zaWduZWQgTWF0Y2hNb2RlRmxhZ3M7CisgICAgdm9pZCBzZXRNYXRjaE1vZGUo
TWF0Y2hNb2RlRmxhZ3MpOworCitwcml2YXRlOgorICAgIFR5cGVBaGVhZERhdGFTb3VyY2UqIG1f
ZGF0YVNvdXJjZTsKKyAgICBET01UaW1lU3RhbXAgbV9sYXN0VHlwZVRpbWU7CisgICAgVUNoYXIg
bV9yZXBlYXRpbmdDaGFyOworICAgIE1hdGNoTW9kZUZsYWdzIG1fbWF0Y2hNb2RlOworICAgIFN0
cmluZ0J1aWxkZXIgbV9idWZmZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBUeXBlQWhlYWRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAppbmRleCA4ZWY0ZGFjMmZl
NzkxODIxYzA2ZTBkMWI0ZTkxMGY2N2Q1ODZlNzJiLi5jMDg1ZjRlMDMxZTk4Yzg0YzM0MjA5N2Ez
ODc4MzExNThlN2U1YzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcApAQCAtNTUsOSArNTUsMTEg
QEAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIEYKICAgICAsIG1fc3ltYm9scyhzeW1ib2xzKQogICAg
ICwgbV92aXNpYmxlRW1wdHlWYWx1ZShtYWtlVmlzaWJsZUVtcHR5VmFsdWUoc3ltYm9scykpCiAg
ICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCisgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQogewogICAg
IEFTU0VSVCghc3ltYm9scy5pc0VtcHR5KCkpOwogICAgIHNldEhhc0N1c3RvbUNhbGxiYWNrcygp
OworICAgIG1fdHlwZUFoZWFkLnNldE1hdGNoTW9kZShUeXBlQWhlYWQ6Ok1hdGNoUHJlZml4IHwg
VHlwZUFoZWFkOjpDeWNsZUZpcnN0Q2hhciB8IFR5cGVBaGVhZDo6TWF0Y2hJbmRleCk7CiB9CiAK
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmN1
c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQpAQCAtODIsMTIgKzg0LDExIEBAIHZvaWQgRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBr
ZXlib2FyZEV2CiAgICAgICAgIHJldHVybjsKIAogICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1
bHRIYW5kbGVkKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbV9zeW1i
b2xzLnNpemUoKTsgKytpbmRleCkgewotICAgICAgICBpZiAoIW1fc3ltYm9sc1tpbmRleF0uaXNF
bXB0eSgpICYmIFdURjo6VW5pY29kZTo6dG9Mb3dlcihtX3N5bWJvbHNbaW5kZXhdWzBdKSA9PSBj
aGFyQ29kZSkgewotICAgICAgICAgICAgc2V0VmFsdWVBc0ludGVnZXIoaW5kZXgsIERpc3BhdGNo
RXZlbnQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQorCisgICAgaW50
IGluZGV4ID0gbV90eXBlQWhlYWQuaGFuZGxlRXZlbnQoa2V5Ym9hcmRFdmVudCk7CisgICAgaWYg
KGluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuOworICAgIHNldFZhbHVlQXNJbnRlZ2VyKGluZGV4
LCBEaXNwYXRjaEV2ZW50KTsKIH0KIAogYm9vbCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
OjpoYXNWYWx1ZSgpIGNvbnN0CkBAIC0xNTAsNiArMTUxLDIxIEBAIFN0cmluZyBEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBoYXNW
YWx1ZSgpID8gbV9zeW1ib2xzW21fc2VsZWN0ZWRJbmRleF0gOiB2aXNpYmxlRW1wdHlWYWx1ZSgp
OwogfQogCitpbnQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aW5kZXhPZlNlbGVjdGVk
T3B0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZWxlY3RlZEluZGV4OworfQorCitpbnQg
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6b3B0aW9uQ291bnQoKSBjb25zdAoreworICAg
IHJldHVybiBtX3N5bWJvbHMuc2l6ZSgpOworfQorCitTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudDo6b3B0aW9uQXRJbmRleChpbnQgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fc3ltYm9sc1tpbmRleF07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmgKaW5kZXggNWM2YjA1YWNiYWY0N2JjZDRkNTBjNDE1NGM2Yjc3YThh
MmRmYjJmZC4uYWE2YzhkYTIxY2IxZmIyYmJiNmMwN2FlOGNiM2Y2NDVhMzI5YTZlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQuaApAQCAtMjgsMTIgKzI4LDEzIEBACiAKICNpZiBFTkFCTEUoSU5QVVRfTVVM
VElQTEVfRklFTERTX1VJKQogI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50LmgiCisjaW5j
bHVkZSAiVHlwZUFoZWFkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudCByZXByZXNlbnRzIG5vbi1udW1lcmljIGZpZWxkIG9mIGRhdGEg
dGltZQogLy8gZm9ybWF0LCBzdWNoIGFzOiBBTS9QTSwgYW5kIG1vbnRoLgotY2xhc3MgRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCB7Citj
bGFzcyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lRmllbGRF
bGVtZW50LCBwdWJsaWMgVHlwZUFoZWFkRGF0YVNvdXJjZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk7CiAKIHByb3RlY3RlZDoKQEAgLTU5
LDEyICs2MCwxOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7CiAKKyAgICAvLyBUeXBlQWhlYWREYXRhU291cmNlIGZ1bmN0aW9ucy4K
KyAgICB2aXJ0dWFsIGludCBpbmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGludCBvcHRpb25Db3VudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgU3RyaW5nIG9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdCBPVkVSUklERTsKKwogICAg
IGNvbnN0IFZlY3RvcjxTdHJpbmc+IG1fc3ltYm9sczsKIAogICAgIC8vIFdlIHVzZSBBdG9taWNT
dHJpbmcgdG8gc2hhcmUgdmlzaWJsZSBlbXB0eSB2YWx1ZSBhbW9uZyBtdWx0aXBsZQogICAgIC8v
IERhdGVUaW1lRWRpdEVsZW1lbnRzIGluIHRoZSBwYWdlLgogICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyBtX3Zpc2libGVFbXB0eVZhbHVlOwogICAgIGludCBtX3NlbGVjdGVkSW5kZXg7CisgICAgVHlw
ZUFoZWFkIG1fdHlwZUFoZWFkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDI4YzY3NWE1NGMzMjI1OWY0ZjZlYzE3YmY3Yjc1OTg4YzM4NjJmNjQuLjMxYmVhYjAzODA4M2Fj
MmZmNTYwNDZkYmI0NDY2MDEwN2U4YzhkNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0x
MS0yNiAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBCZXR0
ZXIgdHlwZSBhaGVhZCBmb3IgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMDMxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL21vbnRo
LW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9t
b250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWw6IEFkZGVkIHRlc3RzIGZv
ciB0eXBlYWhlYWQuCisKIDIwMTItMTEtMjYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBnb29n
bGUuY29tPgogCiAgICAgICAgIFtTaGFkb3cgRE9NXSBJbXBsZW1lbnQgRWxlbWVudDo6Y3JlYXRl
U2hhZG93Um9vdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11
bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21v
bnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDUy
YzY1N2Y3NDdmNWE5MjgwYzk1ZGNlZjA5YTk2ZTk3OTZlZjRkNGMuLjE0Yzk2NDhhNzFhNjUwMGRh
OWQ2YmUxNzBlNjE2YmIzZTM2MDdlMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1l
dmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVs
dGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0
ZWQudHh0CkBAIC0xNSw3ICsxNSw3IEBAIEJhY2tzcGFjZSAtIE1ha2UgdmFsdWUgZW1wdHkKID09
IERpZ2l0IGtleXMgPT0KIEZBSUwgaW5wdXQudmFsdWUgc2hvdWxkIGJlIDAwMTItMDkuIFdhcyAw
MTEyLTA5LgogPT0gTGVmdC9SaWdodCBrZXlzID09Ci1GQUlMIGlucHV0LnZhbHVlIHNob3VsZCBi
ZSAwMDA1LTA2LiBXYXMgMDAwNS0wOS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAwMDUtMDYiCiBQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgImlucHV0IgogPT0gVXAvRG93biBrZXlz
ID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEwIgpAQCAtNDksNiArNDksMjMgQEAgUEFT
UyBpbnB1dC52YWx1ZSBpcyAiIgogPT0gVHlwZWFoZWFkID09CiBQQVNTIGlucHV0LnZhbHVlIGlz
ICIwMDAxLTEyIgogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMi0xMiIKKz09IFR5cGVhaGVhZCBj
eWNsZSBmaXJzdCBjaGFyYWN0ZXIgPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDEiCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTA2IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0w
NyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIy
MDEyLTAxIgorPT0gVHlwZWFoZWFkIHByZWZpeCBtYXRjaCA9PQorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMjAxMi0wMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDMiCitQQVNTIGlucHV0LnZh
bHVlIGlzICIyMDEyLTA1IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNSIKKz09IFR5cGVh
aGVhZCBpbmRleCBtYXRjaCA9PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wMSIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjIwMTItMTIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEyIgor
PT0gVHlwZWFoZWFkIHNob3VsZCBzZWFyY2ggZnJvbSBjdXJyZW50IHNlbGVjdGlvbiA9PQorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNiIKID09IFJUTCBMZWZ0L1JpZ2h0IGtleXMgPT0KIFBB
U1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMTAiCiBQQVNTIGlucHV0LnZhbHVlIGlzICIwMDAyLTEw
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVs
ZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRz
LWtleWJvYXJkLWV2ZW50cy5odG1sCmluZGV4IDMyMTM0NDhhYzU5MWQ5ZDRiZWZiYTc5NTNlNzNm
ZDMwY2M0Mzc5YzguLmYyMGY0YzU1YjliOTdkYzc4OWE4YmFkNjA1ZTNlNTUzYjI3OGQ1ZmQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21v
bnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMt
a2V5Ym9hcmQtZXZlbnRzLmh0bWwKQEAgLTE3MSw2ICsxNzEsNDQgQEAga2V5RG93bigncmlnaHRB
cnJvdycpOwoga2V5RG93bignMicpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1
ZScsICcwMDAyLTEyJyk7CiAKK2JlZ2luVGVzdCgnVHlwZWFoZWFkIGN5Y2xlIGZpcnN0IGNoYXJh
Y3RlcicsICcyMDEyLTA5Jyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKYW5dIDIw
MTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMScpOwora2V5
RG93bignaicpOyAvLyAgICAgICAgICAtPiBbSnVuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDYnKTsKK2tleURvd24oJ2onKTsgLy8gICAgICAgICAg
LT4gW0p1bF0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEy
LTA3Jyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMScpOwora2V5RG93bigneCcpOyAv
LyAgICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZh
bHVlJywgJzIwMTItMDEnKTsKK2lucHV0LnJlbW92ZUF0dHJpYnV0ZSgibGFuZyIpOworCitiZWdp
blRlc3QoJ1R5cGVhaGVhZCBwcmVmaXggbWF0Y2gnLCAnMjAxMi0wOScpOwora2V5RG93bignbScp
OyAvLyAgICAgICAgICAtPiBbTWFyXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0
LnZhbHVlJywgJzIwMTItMDMnKTsKK2tleURvd24oJ2EnKTsgLy8gICAgICAgICAgLT4gW01hcl0g
MjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTAzJyk7Citr
ZXlEb3duKCd5Jyk7IC8vICAgICAgICAgIC0+IFtNYXldIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNScpOwora2V5RG93bigneCcpOyAvLyAgICAgICAg
ICAtPiBbTWF5XSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIw
MTItMDUnKTsKK2lucHV0LnJlbW92ZUF0dHJpYnV0ZSgibGFuZyIpOworCitiZWdpblRlc3QoJ1R5
cGVhaGVhZCBpbmRleCBtYXRjaCcsICcyMDEyLTA5Jyk7CitrZXlEb3duKCcxJyk7IC8vICAgICAg
ICAgIC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAn
MjAxMi0wMScpOwora2V5RG93bignMicpOyAvLyAgICAgICAgICAtPiBbRGVjXSAyMDEyCitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMTInKTsKK2tleURvd24oJ3gn
KTsgLy8gICAgICAgICAgLT4gW0RlY10gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1
dC52YWx1ZScsICcyMDEyLTEyJyk7CitpbnB1dC5yZW1vdmVBdHRyaWJ1dGUoImxhbmciKTsKKwor
YmVnaW5UZXN0KCdUeXBlYWhlYWQgc2hvdWxkIHNlYXJjaCBmcm9tIGN1cnJlbnQgc2VsZWN0aW9u
JywgJzIwMTItMDEnKTsKK2tleURvd24oJ2onKTsgLy8gICAgICAgICAgLT4gW0p1bl0gMjAxMgor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA2Jyk7CitpbnB1dC5y
ZW1vdmVBdHRyaWJ1dGUoImxhbmciKTsKKwogLy8gVGhlIHRlc3RzIGluIHRoZSBmb2xsb3dpbmcg
YmxvY2sgZmFpbCBvbiBwbGF0Zm9ybXMgd2l0aG91dCB0aGUKIC8vIGxhbmctYXR0cmlidXRlLWF3
YXJlLWZvcm0tY29udHJvbC1VSSBmZWF0dXJlLgogaW5wdXQuc2V0QXR0cmlidXRlKCJsYW5nIiwg
ImhlLWlsIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175975</attachid>
            <date>2012-11-26 05:35:53 -0800</date>
            <delta_ts>2012-11-26 05:49:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103031-20121126223331.patch</filename>
            <type>text/plain</type>
            <size>31745</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Njk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM4OTk4YTFhZGM1Zjcz
OWNiMWZiODlmNzQyNGJkNDI4MDAyZGVmNy4uYTU4OWY1MTM3NTc1MWU0NDY2NGFjNzRmYTJhMWNh
Nzg0NjlmMzY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTExLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0eXBlIGFo
ZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGN1dHMgb3V0IHRoZSB0eXBlIGFoZWFk
IGNvZGUgdGhhdCB3aWxsIGJlIHVzZWQgYnkgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgYW5k
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgaW50byBhIFR5cGVBaGVhZCBjbGFzcy4gVGhp
cyB3aWxsCisgICAgICAgIGltcHJvdmUgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB0eXBl
IGFoZWFkIHdoaWNoIHdhcyBmaXJzdAorICAgICAgICBjaGFyYWN0ZXIgbWF0Y2ggb25seSwgYnkg
YWRkaW5nIGN5Y2xpbmcsIHByZWZpeCBtYXRjaCBhbmQgaW5kZXggbnVtYmVyCisgICAgICAgIG1h
dGNoLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIG1vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVk
IFR5cGVBaGVhZC57aCxjcHB9CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAg
ICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxT
ZWxlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjppbmRl
eE9mU2VsZWN0ZWRPcHRpb24pOiBSZXR1cm5zIGluZGV4IG9mIGN1cnJlbnQgc2VsZWN0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbkNvdW50KTogUmV0dXJu
cyB0b3RhbCBudW1iZXIgb2Ygb3B0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RF
bGVtZW50OjpvcHRpb25BdEluZGV4KTogUmV0dXJucyBvcHRpb24gYXQgaW5kZXguCisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFoZWFkRmluZCk6IFVzZSBUeXBlQWhl
YWQuCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAoSFRNTFNl
bGVjdEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvVHlwZUFoZWFkLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVhZDo6VHlwZUFoZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OnN0cmlwTGVhZGluZ1doaXRlU3BhY2UpOiBNb3ZlZCBmcm9tIEhU
TUxTZWxlY3RFbGVtZW50LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVhZDo6c2V0TWF0
Y2hNb2RlKTogU2V0cyB0aGUgbWF0Y2ggbW9kZS4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVh
ZDo6aGFuZGxlRXZlbnQpOiBSZXR1cm5zIGluZGV4IGZvciBtYXRjaC4KKyAgICAgICAgKiBodG1s
L1R5cGVBaGVhZC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVHlwZUFo
ZWFkRGF0YVNvdXJjZSk6IFByb3ZpZGUgdGhlIGRhdGEgYWJvdXQgdGhlIG9wdGlvbnMgdGhhdCBU
eXBlQWhlYWQgc2hvdWxkIG1hdGNoIGFnYWluc3QuCisgICAgICAgIChUeXBlQWhlYWQpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluZGV4T2ZTZWxlY3RlZE9wdGlvbik6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQ6Om9wdGlvbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaDoKKyAgICAgICAgKERhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQpOgorCiAyMDEyLTExLTI2ICBLdW5paGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgaW5wdXQgdHlwZSBkYXRldGlt
ZS1sb2NhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNzBlMTA4NzMwZDcyYTcx
MTNkNDJmMDlmY2I5MmUxYzMwMzUwY2MyMi4uNjVhYWY4NmZmZDY1NTA5NmVmNzI3MjBjZWZkYWY1
ODVkMzM1MWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNjIyLDYgKzM2
MjIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRUVG9rZW4uaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0
bWwvVHlwZUFoZWFkLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYzk3MGY1ZTkwOTZh
MWZhMWFhMTQ2MjBjMmFlY2IyMWNlMTdkYWNmMC4uMjdkYzBjNTg0NjFhMDFkNjA3YzQ5OGFlMDk5
Njg3MDg0ODRlYjYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC02OTAsNiArNjkwLDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIFwKICAgICBodG1sL1RleHRJbnB1
dFR5cGUuY3BwIFwKICAgICBodG1sL1RpbWVJbnB1dFR5cGUuY3BwIFwKKyAgICBodG1sL1R5cGVB
aGVhZC5jcHAgXAogICAgIGh0bWwvVVJMSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9WYWxpZGF0
aW9uTWVzc2FnZS5jcHAgXAogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgXApAQCAtMTg0Myw2
ICsxODQ0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9TdGVwUmFuZ2UuaCBcCiAgICAgaHRt
bC9UZXh0RG9jdW1lbnQuaCBcCiAgICAgaHRtbC9UaW1lUmFuZ2VzLmggXAorICAgIGh0bWwvVHlw
ZUFoZWFkLmggXAogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5oIFwKICAgICBodG1sL3BhcnNlci9D
U1NQcmVsb2FkU2Nhbm5lci5oIFwKICAgICBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyOTQ4ODVjZGVjMDE2OGMxYjk2MjAzYzc2NjVjYWEy
MjM5NWZjZGZlLi4zMjg4OGQzNjlmNjEyMzZhYTJlZmUzYjdiZTMzNjQ5NjRkYzYwN2JmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC00MjYyLDYgKzQyNjIsOCBAQAogICAgICAgICAgICAgJ2h0bWwvVmFs
aWRpdHlTdGF0ZS5oJywKICAgICAgICAgICAgICdodG1sL1dlZWtJbnB1dFR5cGUuY3BwJywKICAg
ICAgICAgICAgICdodG1sL1dlZWtJbnB1dFR5cGUuaCcsCisgICAgICAgICAgICAnaHRtbC9UeXBl
QWhlYWQuY3BwJywKKyAgICAgICAgICAgICdodG1sL1R5cGVBaGVhZC5oJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9DYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAnLAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL0NhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmgnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDViMDJiMjViNzI4ZGExMjM4NTVjMjczYjE3NGI3
YWRmNDhlMzQ1NTAuLjdiN2EwYWNlN2FjYWRkZmM2NmFiZWE3ZmFmNjM2NTdmY2UyZjA4Y2MgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02Mzky
OSw2ICs2MzkyOSwxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxUaW1lUmFuZ2VzLmgi
CiAJCQkJPgogCQkJPC9GaWxlPgorICAJCTxGaWxlCisgIAkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxUeXBlQWhlYWQuY3BwIgorICAJCQk+CisgIAkJPC9GaWxlPgorICAJCTxGaWxlCisgIAkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxUeXBlQWhlYWQuaCIKKyAgCQkJPgorICAJCTwvRmlsZT4KIAkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXFVSTElucHV0VHlwZS5jcHAiCiAJCQkJ
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGNkNzMyN2FiYWE5ZmM5NTE2ZjQ2ZTc4MTQ4MzFlZWEwNjM1NjY3YzUuLjZiMDAwYWIw
MGJhMTAyZmEzMWViMzViMTZmZmEyY2MzOWNlNmJkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4MjgsNiArNTgyOCw4IEBA
CiAJCUMzM0VFNUM1MTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzMz
RUU1QzMxNEZCNDk2MTAwMDIwOTVBIC8qIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgg
Ki87IH07CiAJCUMzNDg2MTIzMTVGREUyMUUwMDdBMUNDOSAvKiBJbnB1dFR5cGVOYW1lcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzQ4NjEyMTE1
RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuY3BwICovOyB9OwogCQlDMzQ4NjEyNDE1
RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzNDg2MTIyMTVGREUyMUUwMDdBMUNDOSAvKiBJbnB1
dFR5cGVOYW1lcy5oICovOyB9OworCQlDMzc1RDdGRDE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFo
ZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMz
NzVEN0ZCMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwICovOyB9OworCQlDMzc1RDdG
RTE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzc1RDdGQzE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFo
ZWFkLmggKi87IH07CiAJCUMzN0NERUJEMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMz
N0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDM0NGMTdBNDE1QjAwNjNG
MDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDM0NGMTdBMDE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJn
ZXRPYnNlcnZlci5jcHAgKi87IH07CiAJCUMzQ0YxN0E1MTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRh
cmdldE9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDM0NGMTdBMTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzIyOSw2ICsx
MzIzMSw4IEBACiAJCUMzM0VFNUMzMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MzQ4NjEyMTE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5wdXRUeXBlTmFtZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMzQ4NjEyMjE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBl
TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5wdXRUeXBlTmFtZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzM3NUQ3RkIxNjYzOTUxOTAwNjE4NEFC
IC8qIFR5cGVBaGVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
eXBlQWhlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMzc1RDdGQzE2NjM5
NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFR5cGVBaGVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMzdDREVCQzE0
OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvbG9yQ2hvb3NlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDM0NGMTdBMDE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJZFRhcmdldE9ic2VydmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTExNUIwMDYzRjAwMjc2
RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSWRUYXJnZXRPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4
NzQsNiArMTc4NzgsOCBAQAogCQkJCUU0NDYxMzlEMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFu
Z2VzLmNwcCAqLywKIAkJCQlFNDQ2MTM5RTBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5o
ICovLAogCQkJCUU0NDYxMzlGMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFuZ2VzLmlkbCAqLywK
KwkJCQlDMzc1RDdGQjE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCAqLywKKwkJCQlD
Mzc1RDdGQzE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggKi8sCiAJCQkJRjU1QjNEQTkx
MjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEQUExMjUx
RjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovLAogCQkJCUY1QTE1NDI1MTI3OTUzNEQw
MEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8sCkBAIC0yNTgxMiw2ICsyNTgxOCw3
IEBACiAJCQkJNDQ3OTU4MDQxNjQzQjQ5QTAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGQjJDMTVDMzE2NUQ2NDlEMDAzOUM5RjggLyogQ2FjaGVkU1ZH
RG9jdW1lbnRSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNzQxQUFEMTY2MzY2MDkw
MDhBNUI3RSAvKiBTaW11bGF0ZWRDbGlja09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMz
NzVEN0ZFMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
Mjg5MTEsNiArMjg5MTgsNyBAQAogCQkJCTFFNTAwODQ4MTY1MTZBRDgwMEI3RTA5OCAvKiBSZW5k
ZXJUaGVtZU1hY1NoYXJlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEN0UwNTIyMTY1MUMyODIw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0NDc5NTgwNTE2NDNCNEIyMDAxRTBBN0YgLyogUGFyc2VkQ29udGVudFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAK
aW5kZXggMjNhYzU3YWY0YjBhZTUzNTZlODIxYjcwMGUyMzI2NWU5MTIwMDhjOC4uMGYzNmEzYzI1
YzhkNjU0NmFiZDY2NmFhYmE0MmQxODM5MmFkNjNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTY0LDE2ICs2NCwxMyBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogLy8gVXBwZXIgbGltaXQgYWdyZWVkIHVwb24gd2l0aCByZXByZXNlbnRhdGl2
ZXMgb2YgT3BlcmEgYW5kIE1vemlsbGEuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4U2VsZWN0
SXRlbXMgPSAxMDAwMDsKIAotc3RhdGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1l
b3V0ID0gMTAwMDsKLQogSFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxTZWxlY3RFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVt
ZW50KiBmb3JtKQogICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSh0YWdOYW1l
LCBkb2N1bWVudCwgZm9ybSkKLSAgICAsIG1fbGFzdENoYXJUaW1lKDApCisgICAgLCBtX3R5cGVB
aGVhZCh0aGlzKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2xhc3RPbkNoYW5nZUluZGV4KC0x
KQogICAgICwgbV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleCgtMSkKICAgICAsIG1fYWN0aXZl
U2VsZWN0aW9uRW5kSW5kZXgoLTEpCi0gICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKICAgICAsIG1f
aXNQcm9jZXNzaW5nVXNlckRyaXZlbkNoYW5nZShmYWxzZSkKICAgICAsIG1fbXVsdGlwbGUoZmFs
c2UpCiAgICAgLCBtX2FjdGl2ZVNlbGVjdGlvblN0YXRlKGZhbHNlKQpAQCAtMTQ3NCw4MiArMTQ3
MSwzNCBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxhc3RTZWxlY3RlZExpc3RJbmRleCgpIGNv
bnN0CiAgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRl
U3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6OmluZGV4
T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0CiB7Ci0gICAgaW50IGxlbmd0aCA9IHN0cmluZy5sZW5n
dGgoKTsKLQotICAgIGludCBpOwotICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewot
ICAgICAgICBpZiAoc3RyaW5nW2ldICE9IG5vQnJlYWtTcGFjZSAmJiAoc3RyaW5nW2ldIDw9IDB4
N0YgPyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tpXSkgOiAoZGlyZWN0aW9uKHN0cmluZ1tpXSkgIT0g
V2hpdGVTcGFjZU5ldXRyYWwpKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJl
dHVybiBzdHJpbmcuc3Vic3RyaW5nKGksIGxlbmd0aCAtIGkpOworICAgIHJldHVybiBvcHRpb25U
b0xpc3RJbmRleChzZWxlY3RlZEluZGV4KCkpOwogfQogCi12b2lkIEhUTUxTZWxlY3RFbGVtZW50
Ojp0eXBlQWhlYWRGaW5kKEtleWJvYXJkRXZlbnQqIGV2ZW50KQoraW50IEhUTUxTZWxlY3RFbGVt
ZW50OjpvcHRpb25Db3VudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGV2ZW50LT50aW1lU3RhbXAoKSA8
IG1fbGFzdENoYXJUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBET01UaW1lU3RhbXAgZGVs
dGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RDaGFyVGltZTsKLSAgICBtX2xhc3RDaGFy
VGltZSA9IGV2ZW50LT50aW1lU3RhbXAoKTsKLQotICAgIFVDaGFyIGMgPSBldmVudC0+Y2hhckNv
ZGUoKTsKLQotICAgIFN0cmluZyBwcmVmaXg7Ci0gICAgaW50IHNlYXJjaFN0YXJ0T2Zmc2V0ID0g
MTsKLSAgICBpZiAoZGVsdGEgPiB0eXBlQWhlYWRUaW1lb3V0KSB7Ci0gICAgICAgIHByZWZpeCA9
IFN0cmluZygmYywgMSk7Ci0gICAgICAgIG1fdHlwZWRTdHJpbmcgPSBwcmVmaXg7Ci0gICAgICAg
IG1fcmVwZWF0aW5nQ2hhciA9IGM7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbV90eXBlZFN0cmlu
Zy5hcHBlbmQoYyk7Ci0KLSAgICAgICAgaWYgKGMgPT0gbV9yZXBlYXRpbmdDaGFyKSB7Ci0gICAg
ICAgICAgICAvLyBUaGUgdXNlciBpcyBsaWtlbHkgdHJ5aW5nIHRvIGN5Y2xlIHRocm91Z2ggYWxs
IHRoZSBpdGVtcyBzdGFydGluZwotICAgICAgICAgICAgLy8gd2l0aCB0aGlzIGNoYXJhY3Rlciwg
c28ganVzdCBzZWFyY2ggb24gdGhlIGNoYXJhY3Rlci4KLSAgICAgICAgICAgIHByZWZpeCA9IFN0
cmluZygmYywgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX3JlcGVhdGluZ0No
YXIgPSAwOwotICAgICAgICAgICAgcHJlZml4ID0gbV90eXBlZFN0cmluZzsKLSAgICAgICAgICAg
IHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKLSAgICAgICAgfQotICAgIH0KKyAgICByZXR1cm4gbGlz
dEl0ZW1zKCkuc2l6ZSgpOworfQogCitTdHJpbmcgSFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbkF0
SW5kZXgoaW50IGluZGV4KSBjb25zdAorewogICAgIGNvbnN0IFZlY3RvcjxIVE1MRWxlbWVudCo+
JiBpdGVtcyA9IGxpc3RJdGVtcygpOwotICAgIGludCBpdGVtQ291bnQgPSBpdGVtcy5zaXplKCk7
Ci0gICAgaWYgKGl0ZW1Db3VudCA8IDEpCi0gICAgICAgIHJldHVybjsKKyAgICAKKyAgICBIVE1M
RWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2luZGV4XTsKKyAgICBpZiAoIWVsZW1lbnQtPmhhc1Rh
Z05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5kaXNhYmxl
ZCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIHRvSFRNTE9wdGlvbkVs
ZW1lbnQoZWxlbWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKK30KIAot
ICAgIGludCBzZWxlY3RlZCA9IHNlbGVjdGVkSW5kZXgoKTsKLSAgICBpbnQgaW5kZXggPSBvcHRp
b25Ub0xpc3RJbmRleChzZWxlY3RlZCA+PSAwID8gc2VsZWN0ZWQgOiAwKSArIHNlYXJjaFN0YXJ0
T2Zmc2V0Owordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFoZWFkRmluZChLZXlib2FyZEV2
ZW50KiBldmVudCkKK3sKKyAgICBpbnQgaW5kZXggPSBtX3R5cGVBaGVhZC5oYW5kbGVFdmVudChl
dmVudCk7CiAgICAgaWYgKGluZGV4IDwgMCkKICAgICAgICAgcmV0dXJuOwotICAgIGluZGV4ICU9
IGl0ZW1Db3VudDsKLQotICAgIC8vIENvbXB1dGUgYSBjYXNlLWZvbGRlZCBjb3B5IG9mIHRoZSBw
cmVmaXggc3RyaW5nIGJlZm9yZSBiZWdpbm5pbmcgdGhlIHNlYXJjaCBmb3IKLSAgICAvLyBhIG1h
dGNoaW5nIGVsZW1lbnQuIFRoaXMgY29kZSB1c2VzIGZvbGRDYXNlIHRvIHdvcmsgYXJvdW5kIHRo
ZSBmYWN0IHRoYXQKLSAgICAvLyBTdHJpbmc6OnN0YXJ0V2l0aCBkb2VzIG5vdCBmb2xkIG5vbi1B
U0NJSSBjaGFyYWN0ZXJzLiBUaGlzIGNvZGUgY2FuIGJlIGNoYW5nZWQKLSAgICAvLyB0byB1c2Ug
c3RhcnRXaXRoIG9uY2UgdGhhdCBpcyBmaXhlZC4KLSAgICBTdHJpbmcgcHJlZml4V2l0aENhc2VG
b2xkZWQocHJlZml4LmZvbGRDYXNlKCkpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbUNv
dW50OyArK2ksIGluZGV4ID0gKGluZGV4ICsgMSkgJSBpdGVtQ291bnQpIHsKLSAgICAgICAgSFRN
TEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtc1tpbmRleF07Ci0gICAgICAgIGlmICghZWxlbWVudC0+
aGFzVGFnTmFtZShvcHRpb25UYWcpIHx8IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPmRp
c2FibGVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAvLyBGb2xkIHRoZSBv
cHRpb24gc3RyaW5nIGFuZCBjaGVjayBpZiBpdHMgcHJlZml4IGlzIGVxdWFsIHRvIHRoZSBmb2xk
ZWQgcHJlZml4LgotICAgICAgICBTdHJpbmcgdGV4dCA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxl
bWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKLSAgICAgICAgaWYgKHN0
cmlwTGVhZGluZ1doaXRlU3BhY2UodGV4dCkuZm9sZENhc2UoKS5zdGFydHNXaXRoKHByZWZpeFdp
dGhDYXNlRm9sZGVkKSkgewotICAgICAgICAgICAgc2VsZWN0T3B0aW9uKGxpc3RUb09wdGlvbklu
ZGV4KGluZGV4KSwgRGVzZWxlY3RPdGhlck9wdGlvbnMgfCBEaXNwYXRjaENoYW5nZUV2ZW50IHwg
VXNlckRyaXZlbik7Ci0gICAgICAgICAgICBpZiAoIXVzZXNNZW51TGlzdCgpKQotICAgICAgICAg
ICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwotCi0gICAgICAgICAgICBzZXRPcHRpb25zQ2hhbmdl
ZE9uUmVuZGVyZXIoKTsKLSAgICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KKyAgICBzZWxlY3RPcHRpb24obGlzdFRv
T3B0aW9uSW5kZXgoaW5kZXgpLCBEZXNlbGVjdE90aGVyT3B0aW9ucyB8IERpc3BhdGNoQ2hhbmdl
RXZlbnQgfCBVc2VyRHJpdmVuKTsKKyAgICBpZiAoIXVzZXNNZW51TGlzdCgpKQorICAgICAgICBs
aXN0Qm94T25DaGFuZ2UoKTsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBIVE1MU2VsZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqIGluc2VydGlv
blBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDZkODhk
YTE3ODgzZTIzNTM5NWU1YmE2OWY1MzNkN2FjNTdlMjA0NjUuLmEyZjI2NTBmNjAzMDZmODc0ZTcw
YTg0NTIwZThmNjkxMWJlNDQxMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmgKQEAgLTI5LDEzICsyOSwxNCBAQAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25z
Q29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIlR5cGVBaGVhZC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsK
IAotY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZSB7CitjbGFzcyBIVE1MU2VsZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50V2l0aFN0YXRlLCBwdWJsaWMgVHlwZUFoZWFkRGF0YVNvdXJjZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIApAQCAtMTAz
LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBGb3IgdXNlIGluIHRoZSBpbXBsZW1l
bnRhdGlvbiBvZiBIVE1MT3B0aW9uRWxlbWVudC4KICAgICB2b2lkIG9wdGlvblNlbGVjdGlvblN0
YXRlQ2hhbmdlZChIVE1MT3B0aW9uRWxlbWVudCosIGJvb2wgb3B0aW9uSXNTZWxlY3RlZCk7Ci0g
ICAgCisKIHByb3RlY3RlZDoKICAgICBIVE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIApAQCAtMTgxLDE3ICsxODIsMjAg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdl
ZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hh
bmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogICAgIHZpcnR1YWwgYm9vbCBhcmVB
dXRob3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAK
KyAgICAvLyBUeXBlQWhlYWREYXRhU291cmNlIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIGludCBp
bmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGludCBv
cHRpb25Db3VudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIG9wdGlvbkF0
SW5kZXgoaW50IGluZGV4KSBjb25zdCBPVkVSUklERTsKKwogICAgIC8vIG1fbGlzdEl0ZW1zIGNv
bnRhaW5zIEhUTUxPcHRpb25FbGVtZW50LCBIVE1MT3B0R3JvdXBFbGVtZW50LCBhbmQgSFRNTEhS
RWxlbWVudCBvYmplY3RzLgogICAgIG11dGFibGUgVmVjdG9yPEhUTUxFbGVtZW50Kj4gbV9saXN0
SXRlbXM7CiAgICAgVmVjdG9yPGJvb2w+IG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9uOwogICAgIFZl
Y3Rvcjxib29sPiBtX2NhY2hlZFN0YXRlRm9yQWN0aXZlU2VsZWN0aW9uOwotICAgIERPTVRpbWVT
dGFtcCBtX2xhc3RDaGFyVGltZTsKLSAgICBTdHJpbmcgbV90eXBlZFN0cmluZzsKKyAgICBUeXBl
QWhlYWQgbV90eXBlQWhlYWQ7CiAgICAgaW50IG1fc2l6ZTsKICAgICBpbnQgbV9sYXN0T25DaGFu
Z2VJbmRleDsKICAgICBpbnQgbV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleDsKICAgICBpbnQg
bV9hY3RpdmVTZWxlY3Rpb25FbmRJbmRleDsKLSAgICBVQ2hhciBtX3JlcGVhdGluZ0NoYXI7CiAg
ICAgYm9vbCBtX2lzUHJvY2Vzc2luZ1VzZXJEcml2ZW5DaGFuZ2U7CiAgICAgYm9vbCBtX211bHRp
cGxlOwogICAgIGJvb2wgbV9hY3RpdmVTZWxlY3Rpb25TdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFo
ZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43YWNhNDdjMjE4ZjRiMjdiOTc1ZDg5MzlhZWVjMGNkMWUxOTQw
Yjg5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3Bw
CkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqIENvcHlyaWdodCAoQykgMTk5
OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRp
IEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIERpcmsg
TXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5j
b20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlR5cGVBaGVhZC5oIgorCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CisjaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvVW5pY29kZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCisgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKKyAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCisgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKKyAgICAsIG1fbWF0
Y2hNb2RlKE1hdGNoUHJlZml4IHwgQ3ljbGVGaXJzdENoYXIpCit7Cit9CisKK3N0YXRpYyBjb25z
dCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91dCA9IDEwMDA7CisKK3N0YXRpYyBTdHJpbmcg
c3RyaXBMZWFkaW5nV2hpdGVTcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICB1bnNp
Z25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisKKyAgICB1bnNpZ25lZCBpOworICAgIGZv
ciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoc3RyaW5nW2ldICE9IG5v
QnJlYWtTcGFjZSAmJiAoc3RyaW5nW2ldIDw9IDB4N0YgPyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tp
XSkgOiAoZGlyZWN0aW9uKHN0cmluZ1tpXSkgIT0gV2hpdGVTcGFjZU5ldXRyYWwpKSkKKyAgICAg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKGksIGxl
bmd0aCAtIGkpOworfQorCit2b2lkIFR5cGVBaGVhZDo6c2V0TWF0Y2hNb2RlKE1hdGNoTW9kZUZs
YWdzIG1hdGNoTW9kZSkKK3sKKyAgICBtX21hdGNoTW9kZSA9IG1hdGNoTW9kZTsKK30KKworaW50
IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgaWYg
KGV2ZW50LT50aW1lU3RhbXAoKSA8IG1fbGFzdFR5cGVUaW1lKQorICAgICAgICByZXR1cm4gbm90
Rm91bmQ7CisKKyAgICBpbnQgb3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50
KCk7CisgICAgRE9NVGltZVN0YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0
VHlwZVRpbWU7CisgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CisKKyAg
ICBVQ2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CisKKyAgICBpZiAoZGVsdGEgPiB0eXBlQWhl
YWRUaW1lb3V0KQorICAgICAgICBtX2J1ZmZlci5jbGVhcigpOworICAgIG1fYnVmZmVyLmFwcGVu
ZChjKTsKKworICAgIGlmIChvcHRpb25Db3VudCA8IDEpCisgICAgICAgIHJldHVybiBub3RGb3Vu
ZDsKKworICAgIGludCBzZWFyY2hTdGFydE9mZnNldCA9IDE7CisgICAgU3RyaW5nIHByZWZpeDsK
KyAgICBpZiAobV9tYXRjaE1vZGUgJiBDeWNsZUZpcnN0Q2hhciAmJiBjID09IG1fcmVwZWF0aW5n
Q2hhcikgeworICAgICAgICAvLyBUaGUgdXNlciBpcyBsaWtlbHkgdHJ5aW5nIHRvIGN5Y2xlIHRo
cm91Z2ggYWxsIHRoZSBpdGVtcyBzdGFydGluZworICAgICAgICAvLyB3aXRoIHRoaXMgY2hhcmFj
dGVyLCBzbyBqdXN0IHNlYXJjaCBvbiB0aGUgY2hhcmFjdGVyLgorICAgICAgICBwcmVmaXggPSBT
dHJpbmcoJmMsIDEpOworICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSBjOworICAgIH0gZWxzZSBp
ZiAobV9tYXRjaE1vZGUgJiBNYXRjaFByZWZpeCkgeworICAgICAgICBwcmVmaXggPSBtX2J1ZmZl
ci50b1N0cmluZygpOworICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkgPiAxKSB7CisgICAg
ICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOworICAgICAgICAgICAgc2VhcmNoU3RhcnRPZmZz
ZXQgPSAwOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7
CisgICAgfQorCisgICAgaWYgKCFwcmVmaXguaXNFbXB0eSgpKSB7CisgICAgICAgIGludCBzZWxl
Y3RlZCA9IG1fZGF0YVNvdXJjZS0+aW5kZXhPZlNlbGVjdGVkT3B0aW9uKCk7CisgICAgICAgIGlu
dCBpbmRleCA9IChzZWxlY3RlZCA8IDAgPyAwIDogc2VsZWN0ZWQpICsgc2VhcmNoU3RhcnRPZmZz
ZXQ7CisgICAgICAgIGluZGV4ICU9IG9wdGlvbkNvdW50OworCisgICAgICAgIC8vIENvbXB1dGUg
YSBjYXNlLWZvbGRlZCBjb3B5IG9mIHRoZSBwcmVmaXggc3RyaW5nIGJlZm9yZSBiZWdpbm5pbmcg
dGhlIHNlYXJjaCBmb3IKKyAgICAgICAgLy8gYSBtYXRjaGluZyBlbGVtZW50LiBUaGlzIGNvZGUg
dXNlcyBmb2xkQ2FzZSB0byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0CisgICAgICAgIC8vIFN0
cmluZzo6c3RhcnRXaXRoIGRvZXMgbm90IGZvbGQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIFRoaXMg
Y29kZSBjYW4gYmUgY2hhbmdlZAorICAgICAgICAvLyB0byB1c2Ugc3RhcnRXaXRoIG9uY2UgdGhh
dCBpcyBmaXhlZC4KKyAgICAgICAgU3RyaW5nIHByZWZpeFdpdGhDYXNlRm9sZGVkKHByZWZpeC5m
b2xkQ2FzZSgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcHRpb25Db3VudDsgKytp
LCBpbmRleCA9IChpbmRleCArIDEpICUgb3B0aW9uQ291bnQpIHsKKyAgICAgICAgICAgIC8vIEZv
bGQgdGhlIG9wdGlvbiBzdHJpbmcgYW5kIGNoZWNrIGlmIGl0cyBwcmVmaXggaXMgZXF1YWwgdG8g
dGhlIGZvbGRlZCBwcmVmaXguCisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IG1fZGF0YVNvdXJj
ZS0+b3B0aW9uQXRJbmRleChpbmRleCk7CisgICAgICAgICAgICBpZiAoc3RyaXBMZWFkaW5nV2hp
dGVTcGFjZSh0ZXh0KS5mb2xkQ2FzZSgpLnN0YXJ0c1dpdGgocHJlZml4V2l0aENhc2VGb2xkZWQp
KQorICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChtX21hdGNoTW9kZSAmIE1hdGNoSW5kZXgpIHsKKyAgICAgICAgYm9vbCBvayA9IGZhbHNl
OworICAgICAgICBpbnQgaW5kZXggPSBtX2J1ZmZlci50b1N0cmluZygpLnRvSW50KCZvayk7Cisg
ICAgICAgIGlmIChpbmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCisgICAgICAgICAg
ICByZXR1cm4gaW5kZXggLSAxOworICAgIH0KKyAgICByZXR1cm4gbm90Rm91bmQ7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlw
ZUFoZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdi
MjRhMDgyMDNmMjQ5MDk5YjZkODQ2M2Q1ZTRkN2I1NzYzNmEzYmQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFR5cGVBaGVhZF9oCisjZGVmaW5lIFR5cGVBaGVhZF9oCisK
KyNpbmNsdWRlICJET01UaW1lU3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWls
ZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgS2V5Ym9hcmRFdmVudDsKKworY2xhc3MgVHlwZUFoZWFkRGF0YVNvdXJj
ZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCBpbnQgaW5kZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgaW50IG9wdGlvbkNvdW50KCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgU3RyaW5nIG9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdCA9IDA7Cit9OworCitj
bGFzcyBUeXBlQWhlYWQgeworcHVibGljOgorICAgIFR5cGVBaGVhZChUeXBlQWhlYWREYXRhU291
cmNlKik7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbmRleCBmb3IgdGhlIG1hdGNoaW5nIG9wdGlv
bi4KKyAgICBpbnQgaGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCopOworCisgICAgZW51bSBNb2Rl
RmxhZyB7CisgICAgICAgIE1hdGNoUHJlZml4ID0gMSA8PCAwLAorICAgICAgICBDeWNsZUZpcnN0
Q2hhciA9IDEgPDwgMSwKKyAgICAgICAgTWF0Y2hJbmRleCA9IDEgPDwgMiwKKyAgICB9OworICAg
IHR5cGVkZWYgdW5zaWduZWQgTWF0Y2hNb2RlRmxhZ3M7CisgICAgdm9pZCBzZXRNYXRjaE1vZGUo
TWF0Y2hNb2RlRmxhZ3MpOworCitwcml2YXRlOgorICAgIFR5cGVBaGVhZERhdGFTb3VyY2UqIG1f
ZGF0YVNvdXJjZTsKKyAgICBET01UaW1lU3RhbXAgbV9sYXN0VHlwZVRpbWU7CisgICAgVUNoYXIg
bV9yZXBlYXRpbmdDaGFyOworICAgIE1hdGNoTW9kZUZsYWdzIG1fbWF0Y2hNb2RlOworICAgIFN0
cmluZ0J1aWxkZXIgbV9idWZmZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBUeXBlQWhlYWRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAppbmRleCA4ZWY0ZGFjMmZl
NzkxODIxYzA2ZTBkMWI0ZTkxMGY2N2Q1ODZlNzJiLi5jMDg1ZjRlMDMxZTk4Yzg0YzM0MjA5N2Ez
ODc4MzExNThlN2U1YzkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9E
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcApAQCAtNTUsOSArNTUsMTEg
QEAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQsIEYKICAgICAsIG1fc3ltYm9scyhzeW1ib2xzKQogICAg
ICwgbV92aXNpYmxlRW1wdHlWYWx1ZShtYWtlVmlzaWJsZUVtcHR5VmFsdWUoc3ltYm9scykpCiAg
ICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCisgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQogewogICAg
IEFTU0VSVCghc3ltYm9scy5pc0VtcHR5KCkpOwogICAgIHNldEhhc0N1c3RvbUNhbGxiYWNrcygp
OworICAgIG1fdHlwZUFoZWFkLnNldE1hdGNoTW9kZShUeXBlQWhlYWQ6Ok1hdGNoUHJlZml4IHwg
VHlwZUFoZWFkOjpDeWNsZUZpcnN0Q2hhciB8IFR5cGVBaGVhZDo6TWF0Y2hJbmRleCk7CiB9CiAK
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmN1
c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQpAQCAtODIsMTIgKzg0LDExIEBAIHZvaWQgRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBr
ZXlib2FyZEV2CiAgICAgICAgIHJldHVybjsKIAogICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1
bHRIYW5kbGVkKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbV9zeW1i
b2xzLnNpemUoKTsgKytpbmRleCkgewotICAgICAgICBpZiAoIW1fc3ltYm9sc1tpbmRleF0uaXNF
bXB0eSgpICYmIFdURjo6VW5pY29kZTo6dG9Mb3dlcihtX3N5bWJvbHNbaW5kZXhdWzBdKSA9PSBj
aGFyQ29kZSkgewotICAgICAgICAgICAgc2V0VmFsdWVBc0ludGVnZXIoaW5kZXgsIERpc3BhdGNo
RXZlbnQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQorCisgICAgaW50
IGluZGV4ID0gbV90eXBlQWhlYWQuaGFuZGxlRXZlbnQoa2V5Ym9hcmRFdmVudCk7CisgICAgaWYg
KGluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuOworICAgIHNldFZhbHVlQXNJbnRlZ2VyKGluZGV4
LCBEaXNwYXRjaEV2ZW50KTsKIH0KIAogYm9vbCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
OjpoYXNWYWx1ZSgpIGNvbnN0CkBAIC0xNTAsNiArMTUxLDIxIEBAIFN0cmluZyBEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBoYXNW
YWx1ZSgpID8gbV9zeW1ib2xzW21fc2VsZWN0ZWRJbmRleF0gOiB2aXNpYmxlRW1wdHlWYWx1ZSgp
OwogfQogCitpbnQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aW5kZXhPZlNlbGVjdGVk
T3B0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZWxlY3RlZEluZGV4OworfQorCitpbnQg
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6b3B0aW9uQ291bnQoKSBjb25zdAoreworICAg
IHJldHVybiBtX3N5bWJvbHMuc2l6ZSgpOworfQorCitTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudDo6b3B0aW9uQXRJbmRleChpbnQgaW5kZXgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fc3ltYm9sc1tpbmRleF07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmgKaW5kZXggNWM2YjA1YWNiYWY0N2JjZDRkNTBjNDE1NGM2Yjc3YThh
MmRmYjJmZC4uYWE2YzhkYTIxY2IxZmIyYmJiNmMwN2FlOGNiM2Y2NDVhMzI5YTZlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQuaApAQCAtMjgsMTIgKzI4LDEzIEBACiAKICNpZiBFTkFCTEUoSU5QVVRfTVVM
VElQTEVfRklFTERTX1VJKQogI2luY2x1ZGUgIkRhdGVUaW1lRmllbGRFbGVtZW50LmgiCisjaW5j
bHVkZSAiVHlwZUFoZWFkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudCByZXByZXNlbnRzIG5vbi1udW1lcmljIGZpZWxkIG9mIGRhdGEg
dGltZQogLy8gZm9ybWF0LCBzdWNoIGFzOiBBTS9QTSwgYW5kIG1vbnRoLgotY2xhc3MgRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCB7Citj
bGFzcyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lRmllbGRF
bGVtZW50LCBwdWJsaWMgVHlwZUFoZWFkRGF0YVNvdXJjZSB7CiAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCk7CiAKIHByb3RlY3RlZDoKQEAgLTU5
LDEyICs2MCwxOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlKCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Qg
T1ZFUlJJREUgRklOQUw7CiAKKyAgICAvLyBUeXBlQWhlYWREYXRhU291cmNlIGZ1bmN0aW9ucy4K
KyAgICB2aXJ0dWFsIGludCBpbmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGludCBvcHRpb25Db3VudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgU3RyaW5nIG9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdCBPVkVSUklERTsKKwogICAg
IGNvbnN0IFZlY3RvcjxTdHJpbmc+IG1fc3ltYm9sczsKIAogICAgIC8vIFdlIHVzZSBBdG9taWNT
dHJpbmcgdG8gc2hhcmUgdmlzaWJsZSBlbXB0eSB2YWx1ZSBhbW9uZyBtdWx0aXBsZQogICAgIC8v
IERhdGVUaW1lRWRpdEVsZW1lbnRzIGluIHRoZSBwYWdlLgogICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyBtX3Zpc2libGVFbXB0eVZhbHVlOwogICAgIGludCBtX3NlbGVjdGVkSW5kZXg7CisgICAgVHlw
ZUFoZWFkIG1fdHlwZUFoZWFkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDI4YzY3NWE1NGMzMjI1OWY0ZjZlYzE3YmY3Yjc1OTg4YzM4NjJmNjQuLjMxYmVhYjAzODA4M2Fj
MmZmNTYwNDZkYmI0NDY2MDEwN2U4YzhkNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0x
MS0yNiAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBCZXR0
ZXIgdHlwZSBhaGVhZCBmb3IgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMDMxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL21vbnRo
LW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9t
b250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWw6IEFkZGVkIHRlc3RzIGZv
ciB0eXBlYWhlYWQuCisKIDIwMTItMTEtMjYgIEhhamltZSBNb3JyaXRhICA8bW9ycml0YUBnb29n
bGUuY29tPgogCiAgICAgICAgIFtTaGFkb3cgRE9NXSBJbXBsZW1lbnQgRWxlbWVudDo6Y3JlYXRl
U2hhZG93Um9vdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11
bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21v
bnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDUy
YzY1N2Y3NDdmNWE5MjgwYzk1ZGNlZjA5YTk2ZTk3OTZlZjRkNGMuLjE0Yzk2NDhhNzFhNjUwMGRh
OWQ2YmUxNzBlNjE2YmIzZTM2MDdlMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1l
dmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVs
dGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0
ZWQudHh0CkBAIC0xNSw3ICsxNSw3IEBAIEJhY2tzcGFjZSAtIE1ha2UgdmFsdWUgZW1wdHkKID09
IERpZ2l0IGtleXMgPT0KIEZBSUwgaW5wdXQudmFsdWUgc2hvdWxkIGJlIDAwMTItMDkuIFdhcyAw
MTEyLTA5LgogPT0gTGVmdC9SaWdodCBrZXlzID09Ci1GQUlMIGlucHV0LnZhbHVlIHNob3VsZCBi
ZSAwMDA1LTA2LiBXYXMgMDAwNS0wOS4KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjAwMDUtMDYiCiBQ
QVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgImlucHV0IgogPT0gVXAvRG93biBrZXlz
ID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEwIgpAQCAtNDksNiArNDksMjMgQEAgUEFT
UyBpbnB1dC52YWx1ZSBpcyAiIgogPT0gVHlwZWFoZWFkID09CiBQQVNTIGlucHV0LnZhbHVlIGlz
ICIwMDAxLTEyIgogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMi0xMiIKKz09IFR5cGVhaGVhZCBj
eWNsZSBmaXJzdCBjaGFyYWN0ZXIgPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDEiCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTA2IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0w
NyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIy
MDEyLTAxIgorPT0gVHlwZWFoZWFkIHByZWZpeCBtYXRjaCA9PQorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMjAxMi0wMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDMiCitQQVNTIGlucHV0LnZh
bHVlIGlzICIyMDEyLTA1IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNSIKKz09IFR5cGVh
aGVhZCBpbmRleCBtYXRjaCA9PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wMSIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjIwMTItMTIiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEyIgor
PT0gVHlwZWFoZWFkIHNob3VsZCBzZWFyY2ggZnJvbSBjdXJyZW50IHNlbGVjdGlvbiA9PQorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNiIKID09IFJUTCBMZWZ0L1JpZ2h0IGtleXMgPT0KIFBB
U1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMTAiCiBQQVNTIGlucHV0LnZhbHVlIGlzICIwMDAyLTEw
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVs
ZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRz
LWtleWJvYXJkLWV2ZW50cy5odG1sCmluZGV4IDMyMTM0NDhhYzU5MWQ5ZDRiZWZiYTc5NTNlNzNm
ZDMwY2M0Mzc5YzguLjU2MDM2YjczNzc2YTc3ZDYzYzJmNWE3MWMzYWYxMTRlYzQ1YTIzYmUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21v
bnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMt
a2V5Ym9hcmQtZXZlbnRzLmh0bWwKQEAgLTE3MSw2ICsxNzEsNDAgQEAga2V5RG93bigncmlnaHRB
cnJvdycpOwoga2V5RG93bignMicpOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1
ZScsICcwMDAyLTEyJyk7CiAKK2JlZ2luVGVzdCgnVHlwZWFoZWFkIGN5Y2xlIGZpcnN0IGNoYXJh
Y3RlcicsICcyMDEyLTA5Jyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKYW5dIDIw
MTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMScpOwora2V5
RG93bignaicpOyAvLyAgICAgICAgICAtPiBbSnVuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJp
bmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDYnKTsKK2tleURvd24oJ2onKTsgLy8gICAgICAgICAg
LT4gW0p1bF0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEy
LTA3Jyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMScpOwora2V5RG93bigneCcpOyAv
LyAgICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZh
bHVlJywgJzIwMTItMDEnKTsKKworYmVnaW5UZXN0KCdUeXBlYWhlYWQgcHJlZml4IG1hdGNoJywg
JzIwMTItMDknKTsKK2tleURvd24oJ20nKTsgLy8gICAgICAgICAgLT4gW01hcl0gMjAxMgorc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTAzJyk7CitrZXlEb3duKCdh
Jyk7IC8vICAgICAgICAgIC0+IFtNYXJdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5w
dXQudmFsdWUnLCAnMjAxMi0wMycpOwora2V5RG93bigneScpOyAvLyAgICAgICAgICAtPiBbTWF5
XSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDUnKTsK
K2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW01heV0gMjAxMgorc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA1Jyk7CisKK2JlZ2luVGVzdCgnVHlwZWFoZWFk
IGluZGV4IG1hdGNoJywgJzIwMTItMDknKTsKK2tleURvd24oJzEnKTsgLy8gICAgICAgICAgLT4g
W0phbl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTAx
Jyk7CitrZXlEb3duKCcyJyk7IC8vICAgICAgICAgIC0+IFtEZWNdIDIwMTIKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0xMicpOwora2V5RG93bigneCcpOyAvLyAg
ICAgICAgICAtPiBbRGVjXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVl
JywgJzIwMTItMTInKTsKKworYmVnaW5UZXN0KCdUeXBlYWhlYWQgc2hvdWxkIHNlYXJjaCBmcm9t
IGN1cnJlbnQgc2VsZWN0aW9uJywgJzIwMTItMDEnKTsKK2tleURvd24oJ2onKTsgLy8gICAgICAg
ICAgLT4gW0p1bl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcy
MDEyLTA2Jyk7CisKIC8vIFRoZSB0ZXN0cyBpbiB0aGUgZm9sbG93aW5nIGJsb2NrIGZhaWwgb24g
cGxhdGZvcm1zIHdpdGhvdXQgdGhlCiAvLyBsYW5nLWF0dHJpYnV0ZS1hd2FyZS1mb3JtLWNvbnRy
b2wtVUkgZmVhdHVyZS4KIGlucHV0LnNldEF0dHJpYnV0ZSgibGFuZyIsICJoZS1pbCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175979</attachid>
            <date>2012-11-26 05:49:23 -0800</date>
            <delta_ts>2012-11-26 05:57:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103031-20121126224701.patch</filename>
            <type>text/plain</type>
            <size>31769</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Njk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM4OTk4YTFhZGM1Zjcz
OWNiMWZiODlmNzQyNGJkNDI4MDAyZGVmNy4uYTU4OWY1MTM3NTc1MWU0NDY2NGFjNzRmYTJhMWNh
Nzg0NjlmMzY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTExLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0eXBlIGFo
ZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGN1dHMgb3V0IHRoZSB0eXBlIGFoZWFk
IGNvZGUgdGhhdCB3aWxsIGJlIHVzZWQgYnkgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgYW5k
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgaW50byBhIFR5cGVBaGVhZCBjbGFzcy4gVGhp
cyB3aWxsCisgICAgICAgIGltcHJvdmUgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB0eXBl
IGFoZWFkIHdoaWNoIHdhcyBmaXJzdAorICAgICAgICBjaGFyYWN0ZXIgbWF0Y2ggb25seSwgYnkg
YWRkaW5nIGN5Y2xpbmcsIHByZWZpeCBtYXRjaCBhbmQgaW5kZXggbnVtYmVyCisgICAgICAgIG1h
dGNoLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIG1vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVk
IFR5cGVBaGVhZC57aCxjcHB9CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAg
ICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxT
ZWxlY3RFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjppbmRl
eE9mU2VsZWN0ZWRPcHRpb24pOiBSZXR1cm5zIGluZGV4IG9mIGN1cnJlbnQgc2VsZWN0aW9uLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbkNvdW50KTogUmV0dXJu
cyB0b3RhbCBudW1iZXIgb2Ygb3B0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RF
bGVtZW50OjpvcHRpb25BdEluZGV4KTogUmV0dXJucyBvcHRpb24gYXQgaW5kZXguCisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFoZWFkRmluZCk6IFVzZSBUeXBlQWhl
YWQuCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAoSFRNTFNl
bGVjdEVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvVHlwZUFoZWFkLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVhZDo6VHlwZUFoZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OnN0cmlwTGVhZGluZ1doaXRlU3BhY2UpOiBNb3ZlZCBmcm9tIEhU
TUxTZWxlY3RFbGVtZW50LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVhZDo6c2V0TWF0
Y2hNb2RlKTogU2V0cyB0aGUgbWF0Y2ggbW9kZS4KKyAgICAgICAgKFdlYkNvcmU6OlR5cGVBaGVh
ZDo6aGFuZGxlRXZlbnQpOiBSZXR1cm5zIGluZGV4IGZvciBtYXRjaC4KKyAgICAgICAgKiBodG1s
L1R5cGVBaGVhZC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoVHlwZUFo
ZWFkRGF0YVNvdXJjZSk6IFByb3ZpZGUgdGhlIGRhdGEgYWJvdXQgdGhlIG9wdGlvbnMgdGhhdCBU
eXBlQWhlYWQgc2hvdWxkIG1hdGNoIGFnYWluc3QuCisgICAgICAgIChUeXBlQWhlYWQpOgorICAg
ICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmll
bGRFbGVtZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluZGV4T2ZTZWxlY3RlZE9wdGlvbik6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQ6Om9wdGlvbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgpOgorICAgICAgICAqIGh0bWwvc2hhZG93L0RhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQuaDoKKyAgICAgICAgKERhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQpOgorCiAyMDEyLTExLTI2ICBLdW5paGlrbyBTYWthbW90byAgPGtzYWthbW90b0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBFbmFibGUgaW5wdXQgdHlwZSBkYXRldGlt
ZS1sb2NhbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggNzBlMTA4NzMwZDcyYTcx
MTNkNDJmMDlmY2I5MmUxYzMwMzUwY2MyMi4uNjVhYWY4NmZmZDY1NTA5NmVmNzI3MjBjZWZkYWY1
ODVkMzM1MWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNjIyLDYgKzM2
MjIsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
V2ViVlRUVG9rZW4uaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9XZWJWVFRUb2tlbml6ZXIuY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2h0
bWwvVHlwZUFoZWFkLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBcCiAJU291cmNlL1dlYkNvcmUv
aHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
VGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggYzk3MGY1ZTkwOTZh
MWZhMWFhMTQ2MjBjMmFlY2IyMWNlMTdkYWNmMC4uMjdkYzBjNTg0NjFhMDFkNjA3YzQ5OGFlMDk5
Njg3MDg0ODRlYjYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC02OTAsNiArNjkwLDcgQEAgU09VUkNFUyAr
PSBcCiAgICAgaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIFwKICAgICBodG1sL1RleHRJbnB1
dFR5cGUuY3BwIFwKICAgICBodG1sL1RpbWVJbnB1dFR5cGUuY3BwIFwKKyAgICBodG1sL1R5cGVB
aGVhZC5jcHAgXAogICAgIGh0bWwvVVJMSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9WYWxpZGF0
aW9uTWVzc2FnZS5jcHAgXAogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgXApAQCAtMTg0Myw2
ICsxODQ0LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaHRtbC9TdGVwUmFuZ2UuaCBcCiAgICAgaHRt
bC9UZXh0RG9jdW1lbnQuaCBcCiAgICAgaHRtbC9UaW1lUmFuZ2VzLmggXAorICAgIGh0bWwvVHlw
ZUFoZWFkLmggXAogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5oIFwKICAgICBodG1sL3BhcnNlci9D
U1NQcmVsb2FkU2Nhbm5lci5oIFwKICAgICBodG1sL3BhcnNlci9IVE1MQ29uc3RydWN0aW9uU2l0
ZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAyOTQ4ODVjZGVjMDE2OGMxYjk2MjAzYzc2NjVjYWEy
MjM5NWZjZGZlLi4zMjg4OGQzNjlmNjEyMzZhYTJlZmUzYjdiZTMzNjQ5NjRkYzYwN2JmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC00MjYyLDYgKzQyNjIsOCBAQAogICAgICAgICAgICAgJ2h0bWwvVmFs
aWRpdHlTdGF0ZS5oJywKICAgICAgICAgICAgICdodG1sL1dlZWtJbnB1dFR5cGUuY3BwJywKICAg
ICAgICAgICAgICdodG1sL1dlZWtJbnB1dFR5cGUuaCcsCisgICAgICAgICAgICAnaHRtbC9UeXBl
QWhlYWQuY3BwJywKKyAgICAgICAgICAgICdodG1sL1R5cGVBaGVhZC5oJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9DYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAnLAogICAgICAgICAgICAg
J2h0bWwvY2FudmFzL0NhbnZhc0NvbnRleHRBdHRyaWJ1dGVzLmgnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDViMDJiMjViNzI4ZGExMjM4NTVjMjczYjE3NGI3
YWRmNDhlMzQ1NTAuLjdiN2EwYWNlN2FjYWRkZmM2NmFiZWE3ZmFmNjM2NTdmY2UyZjA4Y2MgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC02Mzky
OSw2ICs2MzkyOSwxNCBAQAogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxUaW1lUmFuZ2VzLmgi
CiAJCQkJPgogCQkJPC9GaWxlPgorICAJCTxGaWxlCisgIAkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxUeXBlQWhlYWQuY3BwIgorICAJCQk+CisgIAkJPC9GaWxlPgorICAJCTxGaWxlCisgIAkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxUeXBlQWhlYWQuaCIKKyAgCQkJPgorICAJCTwvRmlsZT4KIAkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXFVSTElucHV0VHlwZS5jcHAiCiAJCQkJ
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGNkNzMyN2FiYWE5ZmM5NTE2ZjQ2ZTc4MTQ4MzFlZWEwNjM1NjY3YzUuLjZiMDAwYWIw
MGJhMTAyZmEzMWViMzViMTZmZmEyY2MzOWNlNmJkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU4MjgsNiArNTgyOCw4IEBA
CiAJCUMzM0VFNUM1MTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzMz
RUU1QzMxNEZCNDk2MTAwMDIwOTVBIC8qIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLmgg
Ki87IH07CiAJCUMzNDg2MTIzMTVGREUyMUUwMDdBMUNDOSAvKiBJbnB1dFR5cGVOYW1lcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzQ4NjEyMTE1
RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuY3BwICovOyB9OwogCQlDMzQ4NjEyNDE1
RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzNDg2MTIyMTVGREUyMUUwMDdBMUNDOSAvKiBJbnB1
dFR5cGVOYW1lcy5oICovOyB9OworCQlDMzc1RDdGRDE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFo
ZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMz
NzVEN0ZCMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwICovOyB9OworCQlDMzc1RDdG
RTE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzc1RDdGQzE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFo
ZWFkLmggKi87IH07CiAJCUMzN0NERUJEMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMz
N0NERUJDMTQ5RUYyMDMwMDQyMDkwRCAvKiBDb2xvckNob29zZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDM0NGMTdBNDE1QjAwNjNG
MDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDM0NGMTdBMDE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJn
ZXRPYnNlcnZlci5jcHAgKi87IH07CiAJCUMzQ0YxN0E1MTVCMDA2M0YwMDI3NkQzOSAvKiBJZFRh
cmdldE9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDM0NGMTdBMTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzIyOSw2ICsx
MzIzMSw4IEBACiAJCUMzM0VFNUMzMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MzQ4NjEyMTE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5wdXRUeXBlTmFtZXMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMzQ4NjEyMjE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBl
TmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5wdXRUeXBlTmFtZXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzM3NUQ3RkIxNjYzOTUxOTAwNjE4NEFC
IC8qIFR5cGVBaGVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
eXBlQWhlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMzc1RDdGQzE2NjM5
NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFR5cGVBaGVhZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMzdDREVCQzE0
OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENvbG9yQ2hvb3NlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDM0NGMTdBMDE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJnZXRPYnNlcnZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJZFRhcmdldE9ic2VydmVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTExNUIwMDYzRjAwMjc2
RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSWRUYXJnZXRPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4
NzQsNiArMTc4NzgsOCBAQAogCQkJCUU0NDYxMzlEMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFu
Z2VzLmNwcCAqLywKIAkJCQlFNDQ2MTM5RTBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5o
ICovLAogCQkJCUU0NDYxMzlGMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFuZ2VzLmlkbCAqLywK
KwkJCQlDMzc1RDdGQjE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCAqLywKKwkJCQlD
Mzc1RDdGQzE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggKi8sCiAJCQkJRjU1QjNEQTkx
MjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEQUExMjUx
RjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovLAogCQkJCUY1QTE1NDI1MTI3OTUzNEQw
MEQwQjBDMCAvKiBWYWxpZGF0aW9uTWVzc2FnZS5jcHAgKi8sCkBAIC0yNTgxMiw2ICsyNTgxOCw3
IEBACiAJCQkJNDQ3OTU4MDQxNjQzQjQ5QTAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGQjJDMTVDMzE2NUQ2NDlEMDAzOUM5RjggLyogQ2FjaGVkU1ZH
RG9jdW1lbnRSZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNzQxQUFEMTY2MzY2MDkw
MDhBNUI3RSAvKiBTaW11bGF0ZWRDbGlja09wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCUMz
NzVEN0ZFMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAt
Mjg5MTEsNiArMjg5MTgsNyBAQAogCQkJCTFFNTAwODQ4MTY1MTZBRDgwMEI3RTA5OCAvKiBSZW5k
ZXJUaGVtZU1hY1NoYXJlZC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNEN0UwNTIyMTY1MUMyODIw
MEMxMjAxRiAvKiBXZWJDb3JlQVZGUmVzb3VyY2VMb2FkZXIubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk0NDc5NTgwNTE2NDNCNEIyMDAxRTBBN0YgLyogUGFyc2VkQ29udGVudFR5cGUuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAK
aW5kZXggMjNhYzU3YWY0YjBhZTUzNTZlODIxYjcwMGUyMzI2NWU5MTIwMDhjOC4uMGYzNmEzYzI1
YzhkNjU0NmFiZDY2NmFhYmE0MmQxODM5MmFkNjNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTY0LDE2ICs2NCwxMyBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogLy8gVXBwZXIgbGltaXQgYWdyZWVkIHVwb24gd2l0aCByZXByZXNlbnRhdGl2
ZXMgb2YgT3BlcmEgYW5kIE1vemlsbGEuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4U2VsZWN0
SXRlbXMgPSAxMDAwMDsKIAotc3RhdGljIGNvbnN0IERPTVRpbWVTdGFtcCB0eXBlQWhlYWRUaW1l
b3V0ID0gMTAwMDsKLQogSFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxTZWxlY3RFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgSFRNTEZvcm1FbGVt
ZW50KiBmb3JtKQogICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSh0YWdOYW1l
LCBkb2N1bWVudCwgZm9ybSkKLSAgICAsIG1fbGFzdENoYXJUaW1lKDApCisgICAgLCBtX3R5cGVB
aGVhZCh0aGlzKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2xhc3RPbkNoYW5nZUluZGV4KC0x
KQogICAgICwgbV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleCgtMSkKICAgICAsIG1fYWN0aXZl
U2VsZWN0aW9uRW5kSW5kZXgoLTEpCi0gICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKICAgICAsIG1f
aXNQcm9jZXNzaW5nVXNlckRyaXZlbkNoYW5nZShmYWxzZSkKICAgICAsIG1fbXVsdGlwbGUoZmFs
c2UpCiAgICAgLCBtX2FjdGl2ZVNlbGVjdGlvblN0YXRlKGZhbHNlKQpAQCAtMTQ3NCw4MiArMTQ3
MSwzNCBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxhc3RTZWxlY3RlZExpc3RJbmRleCgpIGNv
bnN0CiAgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgU3RyaW5nIHN0cmlwTGVhZGluZ1doaXRl
U3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6OmluZGV4
T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0CiB7Ci0gICAgaW50IGxlbmd0aCA9IHN0cmluZy5sZW5n
dGgoKTsKLQotICAgIGludCBpOwotICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewot
ICAgICAgICBpZiAoc3RyaW5nW2ldICE9IG5vQnJlYWtTcGFjZSAmJiAoc3RyaW5nW2ldIDw9IDB4
N0YgPyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tpXSkgOiAoZGlyZWN0aW9uKHN0cmluZ1tpXSkgIT0g
V2hpdGVTcGFjZU5ldXRyYWwpKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJl
dHVybiBzdHJpbmcuc3Vic3RyaW5nKGksIGxlbmd0aCAtIGkpOworICAgIHJldHVybiBvcHRpb25U
b0xpc3RJbmRleChzZWxlY3RlZEluZGV4KCkpOwogfQogCi12b2lkIEhUTUxTZWxlY3RFbGVtZW50
Ojp0eXBlQWhlYWRGaW5kKEtleWJvYXJkRXZlbnQqIGV2ZW50KQoraW50IEhUTUxTZWxlY3RFbGVt
ZW50OjpvcHRpb25Db3VudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGV2ZW50LT50aW1lU3RhbXAoKSA8
IG1fbGFzdENoYXJUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBET01UaW1lU3RhbXAgZGVs
dGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RDaGFyVGltZTsKLSAgICBtX2xhc3RDaGFy
VGltZSA9IGV2ZW50LT50aW1lU3RhbXAoKTsKLQotICAgIFVDaGFyIGMgPSBldmVudC0+Y2hhckNv
ZGUoKTsKLQotICAgIFN0cmluZyBwcmVmaXg7Ci0gICAgaW50IHNlYXJjaFN0YXJ0T2Zmc2V0ID0g
MTsKLSAgICBpZiAoZGVsdGEgPiB0eXBlQWhlYWRUaW1lb3V0KSB7Ci0gICAgICAgIHByZWZpeCA9
IFN0cmluZygmYywgMSk7Ci0gICAgICAgIG1fdHlwZWRTdHJpbmcgPSBwcmVmaXg7Ci0gICAgICAg
IG1fcmVwZWF0aW5nQ2hhciA9IGM7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbV90eXBlZFN0cmlu
Zy5hcHBlbmQoYyk7Ci0KLSAgICAgICAgaWYgKGMgPT0gbV9yZXBlYXRpbmdDaGFyKSB7Ci0gICAg
ICAgICAgICAvLyBUaGUgdXNlciBpcyBsaWtlbHkgdHJ5aW5nIHRvIGN5Y2xlIHRocm91Z2ggYWxs
IHRoZSBpdGVtcyBzdGFydGluZwotICAgICAgICAgICAgLy8gd2l0aCB0aGlzIGNoYXJhY3Rlciwg
c28ganVzdCBzZWFyY2ggb24gdGhlIGNoYXJhY3Rlci4KLSAgICAgICAgICAgIHByZWZpeCA9IFN0
cmluZygmYywgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBtX3JlcGVhdGluZ0No
YXIgPSAwOwotICAgICAgICAgICAgcHJlZml4ID0gbV90eXBlZFN0cmluZzsKLSAgICAgICAgICAg
IHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKLSAgICAgICAgfQotICAgIH0KKyAgICByZXR1cm4gbGlz
dEl0ZW1zKCkuc2l6ZSgpOworfQogCitTdHJpbmcgSFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbkF0
SW5kZXgoaW50IGluZGV4KSBjb25zdAorewogICAgIGNvbnN0IFZlY3RvcjxIVE1MRWxlbWVudCo+
JiBpdGVtcyA9IGxpc3RJdGVtcygpOwotICAgIGludCBpdGVtQ291bnQgPSBpdGVtcy5zaXplKCk7
Ci0gICAgaWYgKGl0ZW1Db3VudCA8IDEpCi0gICAgICAgIHJldHVybjsKKyAgICAKKyAgICBIVE1M
RWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2luZGV4XTsKKyAgICBpZiAoIWVsZW1lbnQtPmhhc1Rh
Z05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5kaXNhYmxl
ZCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0dXJuIHRvSFRNTE9wdGlvbkVs
ZW1lbnQoZWxlbWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKK30KIAot
ICAgIGludCBzZWxlY3RlZCA9IHNlbGVjdGVkSW5kZXgoKTsKLSAgICBpbnQgaW5kZXggPSBvcHRp
b25Ub0xpc3RJbmRleChzZWxlY3RlZCA+PSAwID8gc2VsZWN0ZWQgOiAwKSArIHNlYXJjaFN0YXJ0
T2Zmc2V0Owordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFoZWFkRmluZChLZXlib2FyZEV2
ZW50KiBldmVudCkKK3sKKyAgICBpbnQgaW5kZXggPSBtX3R5cGVBaGVhZC5oYW5kbGVFdmVudChl
dmVudCk7CiAgICAgaWYgKGluZGV4IDwgMCkKICAgICAgICAgcmV0dXJuOwotICAgIGluZGV4ICU9
IGl0ZW1Db3VudDsKLQotICAgIC8vIENvbXB1dGUgYSBjYXNlLWZvbGRlZCBjb3B5IG9mIHRoZSBw
cmVmaXggc3RyaW5nIGJlZm9yZSBiZWdpbm5pbmcgdGhlIHNlYXJjaCBmb3IKLSAgICAvLyBhIG1h
dGNoaW5nIGVsZW1lbnQuIFRoaXMgY29kZSB1c2VzIGZvbGRDYXNlIHRvIHdvcmsgYXJvdW5kIHRo
ZSBmYWN0IHRoYXQKLSAgICAvLyBTdHJpbmc6OnN0YXJ0V2l0aCBkb2VzIG5vdCBmb2xkIG5vbi1B
U0NJSSBjaGFyYWN0ZXJzLiBUaGlzIGNvZGUgY2FuIGJlIGNoYW5nZWQKLSAgICAvLyB0byB1c2Ug
c3RhcnRXaXRoIG9uY2UgdGhhdCBpcyBmaXhlZC4KLSAgICBTdHJpbmcgcHJlZml4V2l0aENhc2VG
b2xkZWQocHJlZml4LmZvbGRDYXNlKCkpOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRlbUNv
dW50OyArK2ksIGluZGV4ID0gKGluZGV4ICsgMSkgJSBpdGVtQ291bnQpIHsKLSAgICAgICAgSFRN
TEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtc1tpbmRleF07Ci0gICAgICAgIGlmICghZWxlbWVudC0+
aGFzVGFnTmFtZShvcHRpb25UYWcpIHx8IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPmRp
c2FibGVkKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAvLyBGb2xkIHRoZSBv
cHRpb24gc3RyaW5nIGFuZCBjaGVjayBpZiBpdHMgcHJlZml4IGlzIGVxdWFsIHRvIHRoZSBmb2xk
ZWQgcHJlZml4LgotICAgICAgICBTdHJpbmcgdGV4dCA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxl
bWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKLSAgICAgICAgaWYgKHN0
cmlwTGVhZGluZ1doaXRlU3BhY2UodGV4dCkuZm9sZENhc2UoKS5zdGFydHNXaXRoKHByZWZpeFdp
dGhDYXNlRm9sZGVkKSkgewotICAgICAgICAgICAgc2VsZWN0T3B0aW9uKGxpc3RUb09wdGlvbklu
ZGV4KGluZGV4KSwgRGVzZWxlY3RPdGhlck9wdGlvbnMgfCBEaXNwYXRjaENoYW5nZUV2ZW50IHwg
VXNlckRyaXZlbik7Ci0gICAgICAgICAgICBpZiAoIXVzZXNNZW51TGlzdCgpKQotICAgICAgICAg
ICAgICAgIGxpc3RCb3hPbkNoYW5nZSgpOwotCi0gICAgICAgICAgICBzZXRPcHRpb25zQ2hhbmdl
ZE9uUmVuZGVyZXIoKTsKLSAgICAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KKyAgICBzZWxlY3RPcHRpb24obGlzdFRv
T3B0aW9uSW5kZXgoaW5kZXgpLCBEZXNlbGVjdE90aGVyT3B0aW9ucyB8IERpc3BhdGNoQ2hhbmdl
RXZlbnQgfCBVc2VyRHJpdmVuKTsKKyAgICBpZiAoIXVzZXNNZW51TGlzdCgpKQorICAgICAgICBs
aXN0Qm94T25DaGFuZ2UoKTsKIH0KIAogTm9kZTo6SW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVz
dCBIVE1MU2VsZWN0RWxlbWVudDo6aW5zZXJ0ZWRJbnRvKENvbnRhaW5lck5vZGUqIGluc2VydGlv
blBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IDZkODhk
YTE3ODgzZTIzNTM5NWU1YmE2OWY1MzNkN2FjNTdlMjA0NjUuLmEyZjI2NTBmNjAzMDZmODc0ZTcw
YTg0NTIwZThmNjkxMWJlNDQxMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVt
ZW50LmgKQEAgLTI5LDEzICsyOSwxNCBAQAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25z
Q29sbGVjdGlvbi5oIgorI2luY2x1ZGUgIlR5cGVBaGVhZC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsK
IAotY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZSB7CitjbGFzcyBIVE1MU2VsZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNv
bnRyb2xFbGVtZW50V2l0aFN0YXRlLCBwdWJsaWMgVHlwZUFoZWFkRGF0YVNvdXJjZSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIApAQCAtMTAz
LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICAKICAgICAvLyBGb3IgdXNlIGluIHRoZSBpbXBsZW1l
bnRhdGlvbiBvZiBIVE1MT3B0aW9uRWxlbWVudC4KICAgICB2b2lkIG9wdGlvblNlbGVjdGlvblN0
YXRlQ2hhbmdlZChIVE1MT3B0aW9uRWxlbWVudCosIGJvb2wgb3B0aW9uSXNTZWxlY3RlZCk7Ci0g
ICAgCisKIHByb3RlY3RlZDoKICAgICBIVE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKIApAQCAtMTgxLDE3ICsxODIsMjAg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdl
ZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hh
bmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogICAgIHZpcnR1YWwgYm9vbCBhcmVB
dXRob3JTaGFkb3dzQWxsb3dlZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9CiAK
KyAgICAvLyBUeXBlQWhlYWREYXRhU291cmNlIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIGludCBp
bmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGludCBv
cHRpb25Db3VudCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIG9wdGlvbkF0
SW5kZXgoaW50IGluZGV4KSBjb25zdCBPVkVSUklERTsKKwogICAgIC8vIG1fbGlzdEl0ZW1zIGNv
bnRhaW5zIEhUTUxPcHRpb25FbGVtZW50LCBIVE1MT3B0R3JvdXBFbGVtZW50LCBhbmQgSFRNTEhS
RWxlbWVudCBvYmplY3RzLgogICAgIG11dGFibGUgVmVjdG9yPEhUTUxFbGVtZW50Kj4gbV9saXN0
SXRlbXM7CiAgICAgVmVjdG9yPGJvb2w+IG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9uOwogICAgIFZl
Y3Rvcjxib29sPiBtX2NhY2hlZFN0YXRlRm9yQWN0aXZlU2VsZWN0aW9uOwotICAgIERPTVRpbWVT
dGFtcCBtX2xhc3RDaGFyVGltZTsKLSAgICBTdHJpbmcgbV90eXBlZFN0cmluZzsKKyAgICBUeXBl
QWhlYWQgbV90eXBlQWhlYWQ7CiAgICAgaW50IG1fc2l6ZTsKICAgICBpbnQgbV9sYXN0T25DaGFu
Z2VJbmRleDsKICAgICBpbnQgbV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleDsKICAgICBpbnQg
bV9hY3RpdmVTZWxlY3Rpb25FbmRJbmRleDsKLSAgICBVQ2hhciBtX3JlcGVhdGluZ0NoYXI7CiAg
ICAgYm9vbCBtX2lzUHJvY2Vzc2luZ1VzZXJEcml2ZW5DaGFuZ2U7CiAgICAgYm9vbCBtX211bHRp
cGxlOwogICAgIGJvb2wgbV9hY3RpdmVTZWxlY3Rpb25TdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFo
ZWFkLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wODdiODYwMTM5YzliZjdhMzg3MDM4ZGRmNjk1YzU5NDM2MjA4
YTkyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3Bw
CkBAIC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KKyAqIENvcHlyaWdodCAoQykgMTk5
OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5IEFudHRp
IEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICogICAgICAgICAgIChDKSAyMDAxIERpcmsg
TXVlbGxlciAobXVlbGxlckBrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA2LCAyMDA3LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5j
b20pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIlR5cGVBaGVhZC5oIgorCisjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CisjaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvVW5pY29kZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV1RGOjpVbmljb2RlOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK1R5cGVBaGVhZDo6VHlwZUFoZWFkKFR5cGVBaGVhZERhdGFT
b3VyY2UqIGRhdGFTb3VyY2UpCisgICAgOiBtX2RhdGFTb3VyY2UoZGF0YVNvdXJjZSkKKyAgICAs
IG1fbGFzdFR5cGVUaW1lKDApCisgICAgLCBtX3JlcGVhdGluZ0NoYXIoMCkKKyAgICAsIG1fbWF0
Y2hNb2RlKE1hdGNoUHJlZml4IHwgQ3ljbGVGaXJzdENoYXIpCit7Cit9CisKK3N0YXRpYyBjb25z
dCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91dCA9IDEwMDA7CisKK3N0YXRpYyBTdHJpbmcg
c3RyaXBMZWFkaW5nV2hpdGVTcGFjZShjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICB1bnNp
Z25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisKKyAgICB1bnNpZ25lZCBpOworICAgIGZv
ciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBpZiAoc3RyaW5nW2ldICE9IG5v
QnJlYWtTcGFjZSAmJiAoc3RyaW5nW2ldIDw9IDB4N0YgPyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tp
XSkgOiAoZGlyZWN0aW9uKHN0cmluZ1tpXSkgIT0gV2hpdGVTcGFjZU5ldXRyYWwpKSkKKyAgICAg
ICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKGksIGxl
bmd0aCAtIGkpOworfQorCit2b2lkIFR5cGVBaGVhZDo6c2V0TWF0Y2hNb2RlKE1hdGNoTW9kZUZs
YWdzIG1hdGNoTW9kZSkKK3sKKyAgICBtX21hdGNoTW9kZSA9IG1hdGNoTW9kZTsKK30KKworaW50
IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgaWYg
KGV2ZW50LT50aW1lU3RhbXAoKSA8IG1fbGFzdFR5cGVUaW1lKQorICAgICAgICByZXR1cm4gLTE7
CisKKyAgICBpbnQgb3B0aW9uQ291bnQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkNvdW50KCk7Cisg
ICAgRE9NVGltZVN0YW1wIGRlbHRhID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0VHlwZVRp
bWU7CisgICAgbV9sYXN0VHlwZVRpbWUgPSBldmVudC0+dGltZVN0YW1wKCk7CisKKyAgICBVQ2hh
ciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7CisKKyAgICBpZiAoZGVsdGEgPiB0eXBlQWhlYWRUaW1l
b3V0KQorICAgICAgICBtX2J1ZmZlci5jbGVhcigpOworICAgIG1fYnVmZmVyLmFwcGVuZChjKTsK
KworICAgIGlmIChvcHRpb25Db3VudCA8IDEpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGlu
dCBzZWFyY2hTdGFydE9mZnNldCA9IDE7CisgICAgU3RyaW5nIHByZWZpeDsKKyAgICBpZiAobV9t
YXRjaE1vZGUgJiBDeWNsZUZpcnN0Q2hhciAmJiBjID09IG1fcmVwZWF0aW5nQ2hhcikgeworICAg
ICAgICAvLyBUaGUgdXNlciBpcyBsaWtlbHkgdHJ5aW5nIHRvIGN5Y2xlIHRocm91Z2ggYWxsIHRo
ZSBpdGVtcyBzdGFydGluZworICAgICAgICAvLyB3aXRoIHRoaXMgY2hhcmFjdGVyLCBzbyBqdXN0
IHNlYXJjaCBvbiB0aGUgY2hhcmFjdGVyLgorICAgICAgICBwcmVmaXggPSBTdHJpbmcoJmMsIDEp
OworICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSBjOworICAgIH0gZWxzZSBpZiAobV9tYXRjaE1v
ZGUgJiBNYXRjaFByZWZpeCkgeworICAgICAgICBwcmVmaXggPSBtX2J1ZmZlci50b1N0cmluZygp
OworICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAgICBtX3Jl
cGVhdGluZ0NoYXIgPSAwOworICAgICAgICAgICAgc2VhcmNoU3RhcnRPZmZzZXQgPSAwOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7CisgICAgfQorCisg
ICAgaWYgKCFwcmVmaXguaXNFbXB0eSgpKSB7CisgICAgICAgIGludCBzZWxlY3RlZCA9IG1fZGF0
YVNvdXJjZS0+aW5kZXhPZlNlbGVjdGVkT3B0aW9uKCk7CisgICAgICAgIGludCBpbmRleCA9IChz
ZWxlY3RlZCA8IDAgPyAwIDogc2VsZWN0ZWQpICsgc2VhcmNoU3RhcnRPZmZzZXQ7CisgICAgICAg
IGluZGV4ICU9IG9wdGlvbkNvdW50OworCisgICAgICAgIC8vIENvbXB1dGUgYSBjYXNlLWZvbGRl
ZCBjb3B5IG9mIHRoZSBwcmVmaXggc3RyaW5nIGJlZm9yZSBiZWdpbm5pbmcgdGhlIHNlYXJjaCBm
b3IKKyAgICAgICAgLy8gYSBtYXRjaGluZyBlbGVtZW50LiBUaGlzIGNvZGUgdXNlcyBmb2xkQ2Fz
ZSB0byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0CisgICAgICAgIC8vIFN0cmluZzo6c3RhcnRX
aXRoIGRvZXMgbm90IGZvbGQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIFRoaXMgY29kZSBjYW4gYmUg
Y2hhbmdlZAorICAgICAgICAvLyB0byB1c2Ugc3RhcnRXaXRoIG9uY2UgdGhhdCBpcyBmaXhlZC4K
KyAgICAgICAgU3RyaW5nIHByZWZpeFdpdGhDYXNlRm9sZGVkKHByZWZpeC5mb2xkQ2FzZSgpKTsK
KyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcHRpb25Db3VudDsgKytpLCBpbmRleCA9IChp
bmRleCArIDEpICUgb3B0aW9uQ291bnQpIHsKKyAgICAgICAgICAgIC8vIEZvbGQgdGhlIG9wdGlv
biBzdHJpbmcgYW5kIGNoZWNrIGlmIGl0cyBwcmVmaXggaXMgZXF1YWwgdG8gdGhlIGZvbGRlZCBw
cmVmaXguCisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQXRJ
bmRleChpbmRleCk7CisgICAgICAgICAgICBpZiAoc3RyaXBMZWFkaW5nV2hpdGVTcGFjZSh0ZXh0
KS5mb2xkQ2FzZSgpLnN0YXJ0c1dpdGgocHJlZml4V2l0aENhc2VGb2xkZWQpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChtX21hdGNo
TW9kZSAmIE1hdGNoSW5kZXgpIHsKKyAgICAgICAgYm9vbCBvayA9IGZhbHNlOworICAgICAgICBp
bnQgaW5kZXggPSBtX2J1ZmZlci50b1N0cmluZygpLnRvSW50KCZvayk7CisgICAgICAgIGlmIChp
bmRleCA+IDAgJiYgaW5kZXggPD0gb3B0aW9uQ291bnQpCisgICAgICAgICAgICByZXR1cm4gaW5k
ZXggLSAxOworICAgIH0KKyAgICByZXR1cm4gLTE7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkzODM2MWRhZGE5ZTgxNWUxNzg0
MGM0MzgyMWIzZTc4YTIyYjMzYTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1R5cGVBaGVhZC5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
CisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFR5cGVBaGVhZF9oCisjZGVmaW5lIFR5cGVBaGVhZF9oCisKKyNpbmNsdWRlICJET01UaW1l
U3RhbXAuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS2V5
Ym9hcmRFdmVudDsKKworY2xhc3MgVHlwZUFoZWFkRGF0YVNvdXJjZSB7CitwdWJsaWM6CisgICAg
dmlydHVhbCB+VHlwZUFoZWFkRGF0YVNvdXJjZSgpIHsgfQorCisgICAgdmlydHVhbCBpbnQgaW5k
ZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgaW50IG9wdGlvbkNv
dW50KCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIG9wdGlvbkF0SW5kZXgoaW50IGlu
ZGV4KSBjb25zdCA9IDA7Cit9OworCitjbGFzcyBUeXBlQWhlYWQgeworcHVibGljOgorICAgIFR5
cGVBaGVhZChUeXBlQWhlYWREYXRhU291cmNlKik7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbmRl
eCBmb3IgdGhlIG1hdGNoaW5nIG9wdGlvbi4KKyAgICBpbnQgaGFuZGxlRXZlbnQoS2V5Ym9hcmRF
dmVudCopOworCisgICAgZW51bSBNb2RlRmxhZyB7CisgICAgICAgIE1hdGNoUHJlZml4ID0gMSA8
PCAwLAorICAgICAgICBDeWNsZUZpcnN0Q2hhciA9IDEgPDwgMSwKKyAgICAgICAgTWF0Y2hJbmRl
eCA9IDEgPDwgMiwKKyAgICB9OworICAgIHR5cGVkZWYgdW5zaWduZWQgTWF0Y2hNb2RlRmxhZ3M7
CisgICAgdm9pZCBzZXRNYXRjaE1vZGUoTWF0Y2hNb2RlRmxhZ3MpOworCitwcml2YXRlOgorICAg
IFR5cGVBaGVhZERhdGFTb3VyY2UqIG1fZGF0YVNvdXJjZTsKKyAgICBET01UaW1lU3RhbXAgbV9s
YXN0VHlwZVRpbWU7CisgICAgVUNoYXIgbV9yZXBlYXRpbmdDaGFyOworICAgIE1hdGNoTW9kZUZs
YWdzIG1fbWF0Y2hNb2RlOworICAgIFN0cmluZ0J1aWxkZXIgbV9idWZmZXI7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUeXBlQWhlYWRfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50LmNwcAppbmRleCA4ZWY0ZGFjMmZlNzkxODIxYzA2ZTBkMWI0ZTkxMGY2N2Q1ODZlNzJiLi5j
MDg1ZjRlMDMxZTk4Yzg0YzM0MjA5N2EzODc4MzExNThlN2U1YzkxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVt
ZW50LmNwcApAQCAtNTUsOSArNTUsMTEgQEAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEYKICAgICAs
IG1fc3ltYm9scyhzeW1ib2xzKQogICAgICwgbV92aXNpYmxlRW1wdHlWYWx1ZShtYWtlVmlzaWJs
ZUVtcHR5VmFsdWUoc3ltYm9scykpCiAgICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCisgICAgLCBt
X3R5cGVBaGVhZCh0aGlzKQogewogICAgIEFTU0VSVCghc3ltYm9scy5pc0VtcHR5KCkpOwogICAg
IHNldEhhc0N1c3RvbUNhbGxiYWNrcygpOworICAgIG1fdHlwZUFoZWFkLnNldE1hdGNoTW9kZShU
eXBlQWhlYWQ6Ok1hdGNoUHJlZml4IHwgVHlwZUFoZWFkOjpDeWNsZUZpcnN0Q2hhciB8IFR5cGVB
aGVhZDo6TWF0Y2hJbmRleCk7CiB9CiAKIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IERhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQ6OmN1c3RvbVN0eWxlRm9yUmVuZGVyZXIoKQpAQCAtODIsMTIg
Kzg0LDExIEBAIHZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9h
cmRFdmVudChLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2CiAgICAgICAgIHJldHVybjsKIAogICAg
IGtleWJvYXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBp
bmRleCA9IDA7IGluZGV4IDwgbV9zeW1ib2xzLnNpemUoKTsgKytpbmRleCkgewotICAgICAgICBp
ZiAoIW1fc3ltYm9sc1tpbmRleF0uaXNFbXB0eSgpICYmIFdURjo6VW5pY29kZTo6dG9Mb3dlciht
X3N5bWJvbHNbaW5kZXhdWzBdKSA9PSBjaGFyQ29kZSkgewotICAgICAgICAgICAgc2V0VmFsdWVB
c0ludGVnZXIoaW5kZXgsIERpc3BhdGNoRXZlbnQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB9Ci0gICAgfQorCisgICAgaW50IGluZGV4ID0gbV90eXBlQWhlYWQuaGFuZGxlRXZlbnQo
a2V5Ym9hcmRFdmVudCk7CisgICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuOworICAg
IHNldFZhbHVlQXNJbnRlZ2VyKGluZGV4LCBEaXNwYXRjaEV2ZW50KTsKIH0KIAogYm9vbCBEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpoYXNWYWx1ZSgpIGNvbnN0CkBAIC0xNTAsNiArMTUx
LDIxIEBAIFN0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Ojp2aXNpYmxlVmFsdWUo
KSBjb25zdAogICAgIHJldHVybiBoYXNWYWx1ZSgpID8gbV9zeW1ib2xzW21fc2VsZWN0ZWRJbmRl
eF0gOiB2aXNpYmxlRW1wdHlWYWx1ZSgpOwogfQogCitpbnQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudDo6aW5kZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
ZWxlY3RlZEluZGV4OworfQorCitpbnQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6b3B0
aW9uQ291bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3N5bWJvbHMuc2l6ZSgpOworfQorCitT
dHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6b3B0aW9uQXRJbmRleChpbnQgaW5k
ZXgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3ltYm9sc1tpbmRleF07Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgKaW5kZXggNWM2YjA1YWNi
YWY0N2JjZDRkNTBjNDE1NGM2Yjc3YThhMmRmYjJmZC4uYWE2YzhkYTIxY2IxZmIyYmJiNmMwN2Fl
OGNiM2Y2NDVhMzI5YTZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaApAQCAtMjgsMTIgKzI4LDEzIEBA
CiAKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQogI2luY2x1ZGUgIkRhdGVU
aW1lRmllbGRFbGVtZW50LmgiCisjaW5jbHVkZSAiVHlwZUFoZWFkLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogLy8gRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCByZXByZXNlbnRzIG5v
bi1udW1lcmljIGZpZWxkIG9mIGRhdGEgdGltZQogLy8gZm9ybWF0LCBzdWNoIGFzOiBBTS9QTSwg
YW5kIG1vbnRoLgotY2xhc3MgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBE
YXRlVGltZUZpZWxkRWxlbWVudCB7CitjbGFzcyBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
IDogcHVibGljIERhdGVUaW1lRmllbGRFbGVtZW50LCBwdWJsaWMgVHlwZUFoZWFkRGF0YVNvdXJj
ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dCk7CiAKIHByb3RlY3RlZDoKQEAgLTU5LDEyICs2MCwxOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgU3RyaW5nIHZhbHVlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCBTdHJp
bmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgT1ZFUlJJREUgRklOQUw7CiAKKyAgICAvLyBUeXBlQWhl
YWREYXRhU291cmNlIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIGludCBpbmRleE9mU2VsZWN0ZWRP
cHRpb24oKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGludCBvcHRpb25Db3VudCgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIG9wdGlvbkF0SW5kZXgoaW50IGluZGV4
KSBjb25zdCBPVkVSUklERTsKKwogICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+IG1fc3ltYm9sczsK
IAogICAgIC8vIFdlIHVzZSBBdG9taWNTdHJpbmcgdG8gc2hhcmUgdmlzaWJsZSBlbXB0eSB2YWx1
ZSBhbW9uZyBtdWx0aXBsZQogICAgIC8vIERhdGVUaW1lRWRpdEVsZW1lbnRzIGluIHRoZSBwYWdl
LgogICAgIGNvbnN0IEF0b21pY1N0cmluZyBtX3Zpc2libGVFbXB0eVZhbHVlOwogICAgIGludCBt
X3NlbGVjdGVkSW5kZXg7CisgICAgVHlwZUFoZWFkIG1fdHlwZUFoZWFkOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI4YzY3NWE1NGMzMjI1OWY0ZjZlYzE3YmY3Yjc1OTg4
YzM4NjJmNjQuLjMxYmVhYjAzODA4M2FjMmZmNTYwNDZkYmI0NDY2MDEwN2U4YzhkNWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0xMS0yNiAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBCZXR0ZXIgdHlwZSBhaGVhZCBmb3IgRGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAzMDMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1m
aWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1z
L21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZl
bnRzLmh0bWw6IEFkZGVkIHRlc3RzIGZvciB0eXBlYWhlYWQuCisKIDIwMTItMTEtMjYgIEhhamlt
ZSBNb3JyaXRhICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFtTaGFkb3cgRE9NXSBJ
bXBsZW1lbnQgRWxlbWVudDo6Y3JlYXRlU2hhZG93Um9vdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVs
ZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
bW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVu
dHMtZXhwZWN0ZWQudHh0CmluZGV4IDUyYzY1N2Y3NDdmNWE5MjgwYzk1ZGNlZjA5YTk2ZTk3OTZl
ZjRkNGMuLjE0Yzk2NDhhNzFhNjUwMGRhOWQ2YmUxNzBlNjE2YmIzZTM2MDdlMDkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11
bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxk
cy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xNSw3ICsxNSw3IEBAIEJhY2tzcGFj
ZSAtIE1ha2UgdmFsdWUgZW1wdHkKID09IERpZ2l0IGtleXMgPT0KIEZBSUwgaW5wdXQudmFsdWUg
c2hvdWxkIGJlIDAwMTItMDkuIFdhcyAwMTEyLTA5LgogPT0gTGVmdC9SaWdodCBrZXlzID09Ci1G
QUlMIGlucHV0LnZhbHVlIHNob3VsZCBiZSAwMDA1LTA2LiBXYXMgMDAwNS0wOS4KK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjAwMDUtMDYiCiBQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMg
ImlucHV0IgogPT0gVXAvRG93biBrZXlzID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEw
IgpAQCAtNDksNiArNDksMjMgQEAgUEFTUyBpbnB1dC52YWx1ZSBpcyAiIgogPT0gVHlwZWFoZWFk
ID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIwMDAxLTEyIgogUEFTUyBpbnB1dC52YWx1ZSBpcyAi
MDAwMi0xMiIKKz09IFR5cGVhaGVhZCBjeWNsZSBmaXJzdCBjaGFyYWN0ZXIgPT0KK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjIwMTItMDEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTA2IgorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDEi
CitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTAxIgorPT0gVHlwZWFoZWFkIHByZWZpeCBtYXRj
aCA9PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjIwMTItMDMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTA1IgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMjAxMi0wNSIKKz09IFR5cGVhaGVhZCBpbmRleCBtYXRjaCA9PQorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMjAxMi0wMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMTIiCitQQVNTIGlu
cHV0LnZhbHVlIGlzICIyMDEyLTEyIgorPT0gVHlwZWFoZWFkIHNob3VsZCBzZWFyY2ggZnJvbSBj
dXJyZW50IHNlbGVjdGlvbiA9PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNiIKID09IFJU
TCBMZWZ0L1JpZ2h0IGtleXMgPT0KIFBBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMTAiCiBQQVNT
IGlucHV0LnZhbHVlIGlzICIwMDAyLTEwIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJk
LWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVs
ZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCmluZGV4IDMyMTM0
NDhhYzU5MWQ5ZDRiZWZiYTc5NTNlNzNmZDMwY2M0Mzc5YzguLjU2MDM2YjczNzc2YTc3ZDYzYzJm
NWE3MWMzYWYxMTRlYzQ1YTIzYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
bW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVu
dHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxk
cy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKQEAgLTE3MSw2ICsx
NzEsNDAgQEAga2V5RG93bigncmlnaHRBcnJvdycpOwoga2V5RG93bignMicpOwogc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcwMDAyLTEyJyk7CiAKK2JlZ2luVGVzdCgnVHlw
ZWFoZWFkIGN5Y2xlIGZpcnN0IGNoYXJhY3RlcicsICcyMDEyLTA5Jyk7CitrZXlEb3duKCdqJyk7
IC8vICAgICAgICAgIC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQu
dmFsdWUnLCAnMjAxMi0wMScpOwora2V5RG93bignaicpOyAvLyAgICAgICAgICAtPiBbSnVuXSAy
MDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDYnKTsKK2tl
eURvd24oJ2onKTsgLy8gICAgICAgICAgLT4gW0p1bF0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA3Jyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAg
IC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAx
Mi0wMScpOwora2V5RG93bigneCcpOyAvLyAgICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDEnKTsKKworYmVnaW5UZXN0KCdU
eXBlYWhlYWQgcHJlZml4IG1hdGNoJywgJzIwMTItMDknKTsKK2tleURvd24oJ20nKTsgLy8gICAg
ICAgICAgLT4gW01hcl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScs
ICcyMDEyLTAzJyk7CitrZXlEb3duKCdhJyk7IC8vICAgICAgICAgIC0+IFtNYXJdIDIwMTIKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMycpOwora2V5RG93bign
eScpOyAvLyAgICAgICAgICAtPiBbTWF5XSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lu
cHV0LnZhbHVlJywgJzIwMTItMDUnKTsKK2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW01h
eV0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA1Jyk7
CisKK2JlZ2luVGVzdCgnVHlwZWFoZWFkIGluZGV4IG1hdGNoJywgJzIwMTItMDknKTsKK2tleURv
d24oJzEnKTsgLy8gICAgICAgICAgLT4gW0phbl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdpbnB1dC52YWx1ZScsICcyMDEyLTAxJyk7CitrZXlEb3duKCcyJyk7IC8vICAgICAgICAgIC0+
IFtEZWNdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0x
MicpOwora2V5RG93bigneCcpOyAvLyAgICAgICAgICAtPiBbRGVjXSAyMDEyCitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMTInKTsKKworYmVnaW5UZXN0KCdUeXBl
YWhlYWQgc2hvdWxkIHNlYXJjaCBmcm9tIGN1cnJlbnQgc2VsZWN0aW9uJywgJzIwMTItMDEnKTsK
K2tleURvd24oJ2onKTsgLy8gICAgICAgICAgLT4gW0p1bl0gMjAxMgorc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA2Jyk7CisKIC8vIFRoZSB0ZXN0cyBpbiB0aGUg
Zm9sbG93aW5nIGJsb2NrIGZhaWwgb24gcGxhdGZvcm1zIHdpdGhvdXQgdGhlCiAvLyBsYW5nLWF0
dHJpYnV0ZS1hd2FyZS1mb3JtLWNvbnRyb2wtVUkgZmVhdHVyZS4KIGlucHV0LnNldEF0dHJpYnV0
ZSgibGFuZyIsICJoZS1pbCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175981</attachid>
            <date>2012-11-26 05:57:43 -0800</date>
            <delta_ts>2012-11-29 00:17:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103031-20121126225521.patch</filename>
            <type>text/plain</type>
            <size>32280</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Njk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTM4OTk4YTFhZGM1Zjcz
OWNiMWZiODlmNzQyNGJkNDI4MDAyZGVmNy4uMzljNDRmNTk3N2U1Y2MxNmQ1Njc0OGJhMzJjMTE4
MGRiNmRhOWRhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTExLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0eXBlIGFo
ZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGN1dHMgb3V0IHRoZSB0eXBlIGFoZWFk
IGNvZGUgdGhhdCB3aWxsIGJlIHVzZWQgYnkgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgYW5k
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgaW50byBhIFR5cGVBaGVhZCBjbGFzcy4gVGhp
cyB3aWxsCisgICAgICAgIGltcHJvdmUgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB0eXBl
IGFoZWFkIHdoaWNoIHdhcyBmaXJzdAorICAgICAgICBjaGFyYWN0ZXIgbWF0Y2ggb25seSwgYnkg
YWRkaW5nIGN5Y2xpbmcsIHByZWZpeCBtYXRjaCBhbmQgaW5kZXggbnVtYmVyCisgICAgICAgIG1h
dGNoLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIG1vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVk
IFR5cGVBaGVhZC57aCxjcHB9CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAg
ICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogRGl0dG8uCisgICAgICAgICog
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aW5kZXhPZlNlbGVjdGVkT3B0aW9uKTogUmV0
dXJucyBpbmRleCBvZiBjdXJyZW50IHNlbGVjdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjpvcHRpb25Db3VudCk6IFJldHVybnMgdG90YWwgbnVtYmVyIG9mIG9wdGlv
bnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uQXRJbmRleCk6
IFJldHVybnMgb3B0aW9uIGF0IGluZGV4LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVs
ZW1lbnQ6OnR5cGVBaGVhZEZpbmQpOiBVc2UgVHlwZUFoZWFkLgorICAgICAgICAqIGh0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxTZWxlY3RFbGVtZW50KToKKyAgICAgICAg
KiBodG1sL1R5cGVBaGVhZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpUeXBlQWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpzdHJp
cExlYWRpbmdXaGl0ZVNwYWNlKTogTW92ZWQgZnJvbSBIVE1MU2VsZWN0RWxlbWVudC5jcHAuCisg
ICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OnNldE1hdGNoTW9kZSk6IFNldHMgdGhlIG1hdGNo
IG1vZGUuCisgICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KTogUmV0dXJu
cyBpbmRleCBmb3IgbWF0Y2guCisgICAgICAgICogaHRtbC9UeXBlQWhlYWQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFR5cGVBaGVhZERhdGFTb3VyY2UpOiBQcm92aWRl
IHRoZSBkYXRhIGFib3V0IHRoZSBvcHRpb25zIHRoYXQgVHlwZUFoZWFkIHNob3VsZCBtYXRjaCBh
Z2FpbnN0LgorICAgICAgICAoVHlwZUFoZWFkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9h
cmRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
OjppbmRleE9mU2VsZWN0ZWRPcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25Db3VudCk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25BdEluZGV4
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6
CisgICAgICAgIChEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KToKKwogMjAxMi0xMS0yNiAg
S3VuaWhpa28gU2FrYW1vdG8gIDxrc2FrYW1vdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gRW5hYmxlIGlucHV0IHR5cGUgZGF0ZXRpbWUtbG9jYWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggNmE5OWZhMjZiMDY1YWQ0NGZmNjVjZGEwNWQ3YjAxYjRiOGM2ZDg5Zi4uMGEzMTFl
OTYyYzUzNTQ0NzZlM2JmODI4MWY2M2ExYmU3OTRhMjVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTE0NjYsNiArMTQ2Niw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL1RleHRJ
bnB1dFR5cGUuY3BwCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAogICAgIGh0bWwvVGltZVJh
bmdlcy5jcHAKKyAgICBodG1sL1R5cGVBaGVhZC5jcHAKICAgICBodG1sL1VSTElucHV0VHlwZS5j
cHAKICAgICBodG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAogICAgIGh0bWwvVmFsaWRpdHlTdGF0
ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDcwZTEwODczMGQ3MmE3MTEz
ZDQyZjA5ZmNiOTJlMWMzMDM1MGNjMjIuLjY1YWFmODZmZmQ2NTUwOTZlZjcyNzIwY2VmZGFmNTg1
ZDMzNTFmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzYyMiw2ICszNjIy
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1dl
YlZUVFRva2VuLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVy
LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1s
L1R5cGVBaGVhZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0
bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGM5NzBmNWU5MDk2YTFm
YTFhYTE0NjIwYzJhZWNiMjFjZTE3ZGFjZjAuLjI3ZGMwYzU4NDYxYTAxZDYwN2M0OThhZTA5OTY4
NzA4NDg0ZWI2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIv
U291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNjkwLDYgKzY5MCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9UZXh0SW5wdXRU
eXBlLmNwcCBcCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBcCisgICAgaHRtbC9UeXBlQWhl
YWQuY3BwIFwKICAgICBodG1sL1VSTElucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvVmFsaWRhdGlv
bk1lc3NhZ2UuY3BwIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuY3BwIFwKQEAgLTE4NDMsNiAr
MTg0NCw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvU3RlcFJhbmdlLmggXAogICAgIGh0bWwv
VGV4dERvY3VtZW50LmggXAogICAgIGh0bWwvVGltZVJhbmdlcy5oIFwKKyAgICBodG1sL1R5cGVB
aGVhZC5oIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaCBcCiAgICAgaHRtbC9wYXJzZXIvQ1NT
UHJlbG9hZFNjYW5uZXIuaCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNpdGUu
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMjk0ODg1Y2RlYzAxNjhjMWI5NjIwM2M3NjY1Y2FhMjIz
OTVmY2RmZS4uMzI4ODhkMzY5ZjYxMjM2YWEyZWZlM2I3YmUzMzY0OTY0ZGM2MDdiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtNDI2Miw2ICs0MjYyLDggQEAKICAgICAgICAgICAgICdodG1sL1ZhbGlk
aXR5U3RhdGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmNwcCcsCiAgICAg
ICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmgnLAorICAgICAgICAgICAgJ2h0bWwvVHlwZUFo
ZWFkLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9UeXBlQWhlYWQuaCcsCiAgICAgICAgICAgICAn
aHRtbC9jYW52YXMvQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwJywKICAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9DYW52YXNDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA1YjAyYjI1YjcyOGRhMTIzODU1YzI3M2IxNzRiN2Fk
ZjQ4ZTM0NTUwLi43YjdhMGFjZTdhY2FkZGZjNjZhYmVhN2ZhZjYzNjU3ZmNlMmYwOGNjIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjM5Mjks
NiArNjM5MjksMTQgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVGltZVJhbmdlcy5oIgog
CQkJCT4KIAkJCTwvRmlsZT4KKyAgCQk8RmlsZQorICAJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxc
VHlwZUFoZWFkLmNwcCIKKyAgCQkJPgorICAJCTwvRmlsZT4KKyAgCQk8RmlsZQorICAJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGh0bWxcVHlwZUFoZWFkLmgiCisgIAkJCT4KKyAgCQk8L0ZpbGU+CiAJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxVUkxJbnB1dFR5cGUuY3BwIgogCQkJCT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBjZDczMjdhYmFhOWZjOTUxNmY0NmU3ODE0ODMxZWVhMDYzNTY2N2M1Li42YjAwMGFiMDBi
YTEwMmZhMzFlYjM1YjE2ZmZhMmNjMzljZTZiZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODI4LDYgKzU4MjgsOCBAQAog
CQlDMzNFRTVDNTE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5
cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMzM0VF
NUMzMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZS5oICov
OyB9OwogCQlDMzQ4NjEyMzE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzM0ODYxMjExNUZE
RTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAqLzsgfTsKIAkJQzM0ODYxMjQxNUZE
RTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzQ4NjEyMjE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRU
eXBlTmFtZXMuaCAqLzsgfTsKKwkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVh
ZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzc1
RDdGQjE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCAqLzsgfTsKKwkJQzM3NUQ3RkUx
NjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVh
ZC5oICovOyB9OwogCQlDMzdDREVCRDE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzdD
REVCQzE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzNDRjE3QTQxNUIwMDYzRjAw
Mjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0
T2JzZXJ2ZXIuY3BwICovOyB9OwogCQlDM0NGMTdBNTE1QjAwNjNGMDAyNzZEMzkgLyogSWRUYXJn
ZXRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzNDRjE3QTExNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMyMjksNiArMTMy
MzEsOCBAQAogCQlDMzNFRTVDMzE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhL
ZXlJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM0
ODYxMjExNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElucHV0VHlwZU5hbWVzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzM0ODYxMjIxNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5h
bWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0VHlwZU5hbWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMzNzVEN0ZCMTY2Mzk1MTkwMDYxODRBQiAv
KiBUeXBlQWhlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVHlw
ZUFoZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzM3NUQ3RkMxNjYzOTUx
OTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUeXBlQWhlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM3Q0RFQkMxNDlF
RjIwMzAwNDIwOTBEIC8qIENvbG9yQ2hvb3NlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDb2xvckNob29zZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRUYXJnZXRPYnNlcnZlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMzQ0YxN0ExMTVCMDA2M0YwMDI3NkQz
OSAvKiBJZFRhcmdldE9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IElkVGFyZ2V0T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3ODc0
LDYgKzE3ODc4LDggQEAKIAkJCQlFNDQ2MTM5RDBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdl
cy5jcHAgKi8sCiAJCQkJRTQ0NjEzOUUwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVSYW5nZXMuaCAq
LywKIAkJCQlFNDQ2MTM5RjBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5pZGwgKi8sCisJ
CQkJQzM3NUQ3RkIxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5jcHAgKi8sCisJCQkJQzM3
NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovLAogCQkJCUY1NUIzREE5MTI1
MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzREFBMTI1MUYx
MkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLywKIAkJCQlGNUExNTQyNTEyNzk1MzREMDBE
MEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovLApAQCAtMjU4MTIsNiArMjU4MTgsNyBA
QAogCQkJCTQ0Nzk1ODA0MTY0M0I0OUEwMDFFMEE3RiAvKiBQYXJzZWRDb250ZW50VHlwZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkIyQzE1QzMxNjVENjQ5RDAwMzlDOUY4IC8qIENhY2hlZFNWR0Rv
Y3VtZW50UmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTc0MUFBRDE2NjM2NjA5MDA4
QTVCN0UgLyogU2ltdWxhdGVkQ2xpY2tPcHRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQlDMzc1
RDdGRTE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI4
OTExLDYgKzI4OTE4LDcgQEAKIAkJCQkxRTUwMDg0ODE2NTE2QUQ4MDBCN0UwOTggLyogUmVuZGVy
VGhlbWVNYWNTaGFyZWQubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDdFMDUyMjE2NTFDMjgyMDBD
MTIwMUYgLyogV2ViQ29yZUFWRlJlc291cmNlTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDQ3OTU4MDUxNjQzQjRCMjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUMzNzVEN0ZEMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmlu
ZGV4IDIzYWM1N2FmNGIwYWU1MzU2ZTgyMWI3MDBlMjMyNjVlOTEyMDA4YzguLjBmMzZhM2MyNWM4
ZDY1NDZhYmQ2NjZhYWJhNDJkMTgzOTJhZDYzZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwCkBAIC02NCwxNiArNjQsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIC8vIFVwcGVyIGxpbWl0IGFncmVlZCB1cG9uIHdpdGggcmVwcmVzZW50YXRpdmVz
IG9mIE9wZXJhIGFuZCBNb3ppbGxhLgogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFNlbGVjdEl0
ZW1zID0gMTAwMDA7CiAKLXN0YXRpYyBjb25zdCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91
dCA9IDEwMDA7Ci0KIEhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVu
dCogZm9ybSkKICAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFnTmFtZSwg
ZG9jdW1lbnQsIGZvcm0pCi0gICAgLCBtX2xhc3RDaGFyVGltZSgwKQorICAgICwgbV90eXBlQWhl
YWQodGhpcykKICAgICAsIG1fc2l6ZSgwKQogICAgICwgbV9sYXN0T25DaGFuZ2VJbmRleCgtMSkK
ICAgICAsIG1fYWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgoLTEpCiAgICAgLCBtX2FjdGl2ZVNl
bGVjdGlvbkVuZEluZGV4KC0xKQotICAgICwgbV9yZXBlYXRpbmdDaGFyKDApCiAgICAgLCBtX2lz
UHJvY2Vzc2luZ1VzZXJEcml2ZW5DaGFuZ2UoZmFsc2UpCiAgICAgLCBtX211bHRpcGxlKGZhbHNl
KQogICAgICwgbV9hY3RpdmVTZWxlY3Rpb25TdGF0ZShmYWxzZSkKQEAgLTE0NzQsODIgKzE0NzEs
MzQgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjpsYXN0U2VsZWN0ZWRMaXN0SW5kZXgoKSBjb25z
dAogICAgIHJldHVybiAtMTsKIH0KIAotc3RhdGljIFN0cmluZyBzdHJpcExlYWRpbmdXaGl0ZVNw
YWNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoraW50IEhUTUxTZWxlY3RFbGVtZW50OjppbmRleE9m
U2VsZWN0ZWRPcHRpb24oKSBjb25zdAogewotICAgIGludCBsZW5ndGggPSBzdHJpbmcubGVuZ3Ro
KCk7Ci0KLSAgICBpbnQgaTsKLSAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgaWYgKHN0cmluZ1tpXSAhPSBub0JyZWFrU3BhY2UgJiYgKHN0cmluZ1tpXSA8PSAweDdG
ID8gIWlzQVNDSUlTcGFjZShzdHJpbmdbaV0pIDogKGRpcmVjdGlvbihzdHJpbmdbaV0pICE9IFdo
aXRlU3BhY2VOZXV0cmFsKSkpCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICByZXR1
cm4gc3RyaW5nLnN1YnN0cmluZyhpLCBsZW5ndGggLSBpKTsKKyAgICByZXR1cm4gb3B0aW9uVG9M
aXN0SW5kZXgoc2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6
dHlwZUFoZWFkRmluZChLZXlib2FyZEV2ZW50KiBldmVudCkKK2ludCBIVE1MU2VsZWN0RWxlbWVu
dDo6b3B0aW9uQ291bnQoKSBjb25zdAogewotICAgIGlmIChldmVudC0+dGltZVN0YW1wKCkgPCBt
X2xhc3RDaGFyVGltZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRE9NVGltZVN0YW1wIGRlbHRh
ID0gZXZlbnQtPnRpbWVTdGFtcCgpIC0gbV9sYXN0Q2hhclRpbWU7Ci0gICAgbV9sYXN0Q2hhclRp
bWUgPSBldmVudC0+dGltZVN0YW1wKCk7Ci0KLSAgICBVQ2hhciBjID0gZXZlbnQtPmNoYXJDb2Rl
KCk7Ci0KLSAgICBTdHJpbmcgcHJlZml4OwotICAgIGludCBzZWFyY2hTdGFydE9mZnNldCA9IDE7
Ci0gICAgaWYgKGRlbHRhID4gdHlwZUFoZWFkVGltZW91dCkgewotICAgICAgICBwcmVmaXggPSBT
dHJpbmcoJmMsIDEpOwotICAgICAgICBtX3R5cGVkU3RyaW5nID0gcHJlZml4OwotICAgICAgICBt
X3JlcGVhdGluZ0NoYXIgPSBjOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fdHlwZWRTdHJpbmcu
YXBwZW5kKGMpOwotCi0gICAgICAgIGlmIChjID09IG1fcmVwZWF0aW5nQ2hhcikgewotICAgICAg
ICAgICAgLy8gVGhlIHVzZXIgaXMgbGlrZWx5IHRyeWluZyB0byBjeWNsZSB0aHJvdWdoIGFsbCB0
aGUgaXRlbXMgc3RhcnRpbmcKLSAgICAgICAgICAgIC8vIHdpdGggdGhpcyBjaGFyYWN0ZXIsIHNv
IGp1c3Qgc2VhcmNoIG9uIHRoZSBjaGFyYWN0ZXIuCi0gICAgICAgICAgICBwcmVmaXggPSBTdHJp
bmcoJmMsIDEpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9yZXBlYXRpbmdDaGFy
ID0gMDsKLSAgICAgICAgICAgIHByZWZpeCA9IG1fdHlwZWRTdHJpbmc7Ci0gICAgICAgICAgICBz
ZWFyY2hTdGFydE9mZnNldCA9IDA7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcmV0dXJuIGxpc3RJ
dGVtcygpLnNpemUoKTsKK30KIAorU3RyaW5nIEhUTUxTZWxlY3RFbGVtZW50OjpvcHRpb25BdElu
ZGV4KGludCBpbmRleCkgY29uc3QKK3sKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYg
aXRlbXMgPSBsaXN0SXRlbXMoKTsKLSAgICBpbnQgaXRlbUNvdW50ID0gaXRlbXMuc2l6ZSgpOwot
ICAgIGlmIChpdGVtQ291bnQgPCAxKQotICAgICAgICByZXR1cm47CisgICAgCisgICAgSFRNTEVs
ZW1lbnQqIGVsZW1lbnQgPSBpdGVtc1tpbmRleF07CisgICAgaWYgKCFlbGVtZW50LT5oYXNUYWdO
YW1lKG9wdGlvblRhZykgfHwgdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+ZGlzYWJsZWQo
KSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiB0b0hUTUxPcHRpb25FbGVt
ZW50KGVsZW1lbnQpLT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7Cit9CiAKLSAg
ICBpbnQgc2VsZWN0ZWQgPSBzZWxlY3RlZEluZGV4KCk7Ci0gICAgaW50IGluZGV4ID0gb3B0aW9u
VG9MaXN0SW5kZXgoc2VsZWN0ZWQgPj0gMCA/IHNlbGVjdGVkIDogMCkgKyBzZWFyY2hTdGFydE9m
ZnNldDsKK3ZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnR5cGVBaGVhZEZpbmQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCit7CisgICAgaW50IGluZGV4ID0gbV90eXBlQWhlYWQuaGFuZGxlRXZlbnQoZXZl
bnQpOwogICAgIGlmIChpbmRleCA8IDApCiAgICAgICAgIHJldHVybjsKLSAgICBpbmRleCAlPSBp
dGVtQ291bnQ7Ci0KLSAgICAvLyBDb21wdXRlIGEgY2FzZS1mb2xkZWQgY29weSBvZiB0aGUgcHJl
Zml4IHN0cmluZyBiZWZvcmUgYmVnaW5uaW5nIHRoZSBzZWFyY2ggZm9yCi0gICAgLy8gYSBtYXRj
aGluZyBlbGVtZW50LiBUaGlzIGNvZGUgdXNlcyBmb2xkQ2FzZSB0byB3b3JrIGFyb3VuZCB0aGUg
ZmFjdCB0aGF0Ci0gICAgLy8gU3RyaW5nOjpzdGFydFdpdGggZG9lcyBub3QgZm9sZCBub24tQVND
SUkgY2hhcmFjdGVycy4gVGhpcyBjb2RlIGNhbiBiZSBjaGFuZ2VkCi0gICAgLy8gdG8gdXNlIHN0
YXJ0V2l0aCBvbmNlIHRoYXQgaXMgZml4ZWQuCi0gICAgU3RyaW5nIHByZWZpeFdpdGhDYXNlRm9s
ZGVkKHByZWZpeC5mb2xkQ2FzZSgpKTsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IGl0ZW1Db3Vu
dDsgKytpLCBpbmRleCA9IChpbmRleCArIDEpICUgaXRlbUNvdW50KSB7Ci0gICAgICAgIEhUTUxF
bGVtZW50KiBlbGVtZW50ID0gaXRlbXNbaW5kZXhdOwotICAgICAgICBpZiAoIWVsZW1lbnQtPmhh
c1RhZ05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5kaXNh
YmxlZCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgLy8gRm9sZCB0aGUgb3B0
aW9uIHN0cmluZyBhbmQgY2hlY2sgaWYgaXRzIHByZWZpeCBpcyBlcXVhbCB0byB0aGUgZm9sZGVk
IHByZWZpeC4KLSAgICAgICAgU3RyaW5nIHRleHQgPSB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1l
bnQpLT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7Ci0gICAgICAgIGlmIChzdHJp
cExlYWRpbmdXaGl0ZVNwYWNlKHRleHQpLmZvbGRDYXNlKCkuc3RhcnRzV2l0aChwcmVmaXhXaXRo
Q2FzZUZvbGRlZCkpIHsKLSAgICAgICAgICAgIHNlbGVjdE9wdGlvbihsaXN0VG9PcHRpb25JbmRl
eChpbmRleCksIERlc2VsZWN0T3RoZXJPcHRpb25zIHwgRGlzcGF0Y2hDaGFuZ2VFdmVudCB8IFVz
ZXJEcml2ZW4pOwotICAgICAgICAgICAgaWYgKCF1c2VzTWVudUxpc3QoKSkKLSAgICAgICAgICAg
ICAgICBsaXN0Qm94T25DaGFuZ2UoKTsKLQotICAgICAgICAgICAgc2V0T3B0aW9uc0NoYW5nZWRP
blJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9CisgICAgc2VsZWN0T3B0aW9uKGxpc3RUb09w
dGlvbkluZGV4KGluZGV4KSwgRGVzZWxlY3RPdGhlck9wdGlvbnMgfCBEaXNwYXRjaENoYW5nZUV2
ZW50IHwgVXNlckRyaXZlbik7CisgICAgaWYgKCF1c2VzTWVudUxpc3QoKSkKKyAgICAgICAgbGlz
dEJveE9uQ2hhbmdlKCk7CiB9CiAKIE5vZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3Qg
SFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJOb2RlKiBpbnNlcnRpb25Q
b2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAppbmRleCA2ZDg4ZGEx
Nzg4M2UyMzUzOTVlNWJhNjlmNTMzZDdhYzU3ZTIwNDY1Li5hMmYyNjUwZjYwMzA2Zjg3NGU3MGE4
NDUyMGU4ZjY5MTFiZTQ0MTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
ZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oCkBAIC0yOSwxMyArMjksMTQgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkhU
TUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuaCIKICNpbmNsdWRlICJIVE1MT3B0aW9uc0Nv
bGxlY3Rpb24uaCIKKyNpbmNsdWRlICJUeXBlQWhlYWQuaCIKICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTE9wdGlvbkVsZW1lbnQ7CiAK
LWNsYXNzIEhUTUxTZWxlY3RFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRX
aXRoU3RhdGUgeworY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZSwgcHVibGljIFR5cGVBaGVhZERhdGFTb3VyY2UgewogcHVibGlj
OgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKQEAgLTEwMyw3
ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gRm9yIHVzZSBpbiB0aGUgaW1wbGVtZW50
YXRpb24gb2YgSFRNTE9wdGlvbkVsZW1lbnQuCiAgICAgdm9pZCBvcHRpb25TZWxlY3Rpb25TdGF0
ZUNoYW5nZWQoSFRNTE9wdGlvbkVsZW1lbnQqLCBib29sIG9wdGlvbklzU2VsZWN0ZWQpOwotICAg
IAorCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKQEAgLTE4MSwxNyArMTgyLDIwIEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRC
eVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRlckNoYW5n
ZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKICAgICB2aXJ0dWFsIGJvb2wgYXJlQXV0
aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBmYWxzZTsgfQogCisg
ICAgLy8gVHlwZUFoZWFkRGF0YVNvdXJjZSBmdW5jdGlvbnMuCisgICAgdmlydHVhbCBpbnQgaW5k
ZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBpbnQgb3B0
aW9uQ291bnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBvcHRpb25BdElu
ZGV4KGludCBpbmRleCkgY29uc3QgT1ZFUlJJREU7CisKICAgICAvLyBtX2xpc3RJdGVtcyBjb250
YWlucyBIVE1MT3B0aW9uRWxlbWVudCwgSFRNTE9wdEdyb3VwRWxlbWVudCwgYW5kIEhUTUxIUkVs
ZW1lbnQgb2JqZWN0cy4KICAgICBtdXRhYmxlIFZlY3RvcjxIVE1MRWxlbWVudCo+IG1fbGlzdEl0
ZW1zOwogICAgIFZlY3Rvcjxib29sPiBtX2xhc3RPbkNoYW5nZVNlbGVjdGlvbjsKICAgICBWZWN0
b3I8Ym9vbD4gbV9jYWNoZWRTdGF0ZUZvckFjdGl2ZVNlbGVjdGlvbjsKLSAgICBET01UaW1lU3Rh
bXAgbV9sYXN0Q2hhclRpbWU7Ci0gICAgU3RyaW5nIG1fdHlwZWRTdHJpbmc7CisgICAgVHlwZUFo
ZWFkIG1fdHlwZUFoZWFkOwogICAgIGludCBtX3NpemU7CiAgICAgaW50IG1fbGFzdE9uQ2hhbmdl
SW5kZXg7CiAgICAgaW50IG1fYWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXg7CiAgICAgaW50IG1f
YWN0aXZlU2VsZWN0aW9uRW5kSW5kZXg7Ci0gICAgVUNoYXIgbV9yZXBlYXRpbmdDaGFyOwogICAg
IGJvb2wgbV9pc1Byb2Nlc3NpbmdVc2VyRHJpdmVuQ2hhbmdlOwogICAgIGJvb2wgbV9tdWx0aXBs
ZTsKICAgICBib29sIG1fYWN0aXZlU2VsZWN0aW9uU3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVh
ZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDg3Yjg2MDEzOWM5YmY3YTM4NzAzOGRkZjY5NWM1OTQzNjIwOGE5
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmNwcApA
QCAtMCwwICsxLDEyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5cmlnaHQgKEMpIDE5OTkg
TGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBL
b2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11
ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwNywgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29t
KQorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJUeXBlQWhlYWQuaCIKKworI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIK
KyNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgorI2luY2x1ZGUgPHd0Zi91
bmljb2RlL1VuaWNvZGUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdURjo6VW5pY29kZTsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitUeXBlQWhlYWQ6OlR5cGVBaGVhZChUeXBlQWhlYWREYXRhU291
cmNlKiBkYXRhU291cmNlKQorICAgIDogbV9kYXRhU291cmNlKGRhdGFTb3VyY2UpCisgICAgLCBt
X2xhc3RUeXBlVGltZSgwKQorICAgICwgbV9yZXBlYXRpbmdDaGFyKDApCisgICAgLCBtX21hdGNo
TW9kZShNYXRjaFByZWZpeCB8IEN5Y2xlRmlyc3RDaGFyKQoreworfQorCitzdGF0aWMgY29uc3Qg
RE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAxMDAwOworCitzdGF0aWMgU3RyaW5nIHN0
cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgdW5zaWdu
ZWQgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOworCisgICAgdW5zaWduZWQgaTsKKyAgICBmb3Ig
KGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHN0cmluZ1tpXSAhPSBub0Jy
ZWFrU3BhY2UgJiYgKHN0cmluZ1tpXSA8PSAweDdGID8gIWlzQVNDSUlTcGFjZShzdHJpbmdbaV0p
IDogKGRpcmVjdGlvbihzdHJpbmdbaV0pICE9IFdoaXRlU3BhY2VOZXV0cmFsKSkpCisgICAgICAg
ICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gc3RyaW5nLnN1YnN0cmluZyhpLCBsZW5n
dGggLSBpKTsKK30KKwordm9pZCBUeXBlQWhlYWQ6OnNldE1hdGNoTW9kZShNYXRjaE1vZGVGbGFn
cyBtYXRjaE1vZGUpCit7CisgICAgbV9tYXRjaE1vZGUgPSBtYXRjaE1vZGU7Cit9CisKK2ludCBU
eXBlQWhlYWQ6OmhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGlmIChl
dmVudC0+dGltZVN0YW1wKCkgPCBtX2xhc3RUeXBlVGltZSkKKyAgICAgICAgcmV0dXJuIC0xOwor
CisgICAgaW50IG9wdGlvbkNvdW50ID0gbV9kYXRhU291cmNlLT5vcHRpb25Db3VudCgpOworICAg
IERPTVRpbWVTdGFtcCBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1fbGFzdFR5cGVUaW1l
OworICAgIG1fbGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOworCisgICAgVUNoYXIg
YyA9IGV2ZW50LT5jaGFyQ29kZSgpOworCisgICAgaWYgKGRlbHRhID4gdHlwZUFoZWFkVGltZW91
dCkKKyAgICAgICAgbV9idWZmZXIuY2xlYXIoKTsKKyAgICBtX2J1ZmZlci5hcHBlbmQoYyk7CisK
KyAgICBpZiAob3B0aW9uQ291bnQgPCAxKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBpbnQg
c2VhcmNoU3RhcnRPZmZzZXQgPSAxOworICAgIFN0cmluZyBwcmVmaXg7CisgICAgaWYgKG1fbWF0
Y2hNb2RlICYgQ3ljbGVGaXJzdENoYXIgJiYgYyA9PSBtX3JlcGVhdGluZ0NoYXIpIHsKKyAgICAg
ICAgLy8gVGhlIHVzZXIgaXMgbGlrZWx5IHRyeWluZyB0byBjeWNsZSB0aHJvdWdoIGFsbCB0aGUg
aXRlbXMgc3RhcnRpbmcKKyAgICAgICAgLy8gd2l0aCB0aGlzIGNoYXJhY3Rlciwgc28ganVzdCBz
ZWFyY2ggb24gdGhlIGNoYXJhY3Rlci4KKyAgICAgICAgcHJlZml4ID0gU3RyaW5nKCZjLCAxKTsK
KyAgICAgICAgbV9yZXBlYXRpbmdDaGFyID0gYzsKKyAgICB9IGVsc2UgaWYgKG1fbWF0Y2hNb2Rl
ICYgTWF0Y2hQcmVmaXgpIHsKKyAgICAgICAgcHJlZml4ID0gbV9idWZmZXIudG9TdHJpbmcoKTsK
KyAgICAgICAgaWYgKG1fYnVmZmVyLmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgbV9yZXBl
YXRpbmdDaGFyID0gMDsKKyAgICAgICAgICAgIHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSBjOworICAgIH0KKworICAg
IGlmICghcHJlZml4LmlzRW1wdHkoKSkgeworICAgICAgICBpbnQgc2VsZWN0ZWQgPSBtX2RhdGFT
b3VyY2UtPmluZGV4T2ZTZWxlY3RlZE9wdGlvbigpOworICAgICAgICBpbnQgaW5kZXggPSAoc2Vs
ZWN0ZWQgPCAwID8gMCA6IHNlbGVjdGVkKSArIHNlYXJjaFN0YXJ0T2Zmc2V0OworICAgICAgICBp
bmRleCAlPSBvcHRpb25Db3VudDsKKworICAgICAgICAvLyBDb21wdXRlIGEgY2FzZS1mb2xkZWQg
Y29weSBvZiB0aGUgcHJlZml4IHN0cmluZyBiZWZvcmUgYmVnaW5uaW5nIHRoZSBzZWFyY2ggZm9y
CisgICAgICAgIC8vIGEgbWF0Y2hpbmcgZWxlbWVudC4gVGhpcyBjb2RlIHVzZXMgZm9sZENhc2Ug
dG8gd29yayBhcm91bmQgdGhlIGZhY3QgdGhhdAorICAgICAgICAvLyBTdHJpbmc6OnN0YXJ0V2l0
aCBkb2VzIG5vdCBmb2xkIG5vbi1BU0NJSSBjaGFyYWN0ZXJzLiBUaGlzIGNvZGUgY2FuIGJlIGNo
YW5nZWQKKyAgICAgICAgLy8gdG8gdXNlIHN0YXJ0V2l0aCBvbmNlIHRoYXQgaXMgZml4ZWQuCisg
ICAgICAgIFN0cmluZyBwcmVmaXhXaXRoQ2FzZUZvbGRlZChwcmVmaXguZm9sZENhc2UoKSk7Cisg
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgb3B0aW9uQ291bnQ7ICsraSwgaW5kZXggPSAoaW5k
ZXggKyAxKSAlIG9wdGlvbkNvdW50KSB7CisgICAgICAgICAgICAvLyBGb2xkIHRoZSBvcHRpb24g
c3RyaW5nIGFuZCBjaGVjayBpZiBpdHMgcHJlZml4IGlzIGVxdWFsIHRvIHRoZSBmb2xkZWQgcHJl
Zml4LgorICAgICAgICAgICAgU3RyaW5nIHRleHQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkF0SW5k
ZXgoaW5kZXgpOworICAgICAgICAgICAgaWYgKHN0cmlwTGVhZGluZ1doaXRlU3BhY2UodGV4dCku
Zm9sZENhc2UoKS5zdGFydHNXaXRoKHByZWZpeFdpdGhDYXNlRm9sZGVkKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gaW5kZXg7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobV9tYXRjaE1v
ZGUgJiBNYXRjaEluZGV4KSB7CisgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAgICAgICAgaW50
IGluZGV4ID0gbV9idWZmZXIudG9TdHJpbmcoKS50b0ludCgmb2spOworICAgICAgICBpZiAoaW5k
ZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50KQorICAgICAgICAgICAgcmV0dXJuIGluZGV4
IC0gMTsKKyAgICB9CisgICAgcmV0dXJuIC0xOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UeXBlQWhlYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzgzNjFkYWRhOWU4MTVlMTc4NDBj
NDM4MjFiM2U3OGEyMmIzM2ExCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UeXBlQWhlYWQuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQor
ICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBUeXBlQWhlYWRfaAorI2RlZmluZSBUeXBlQWhlYWRfaAorCisjaW5jbHVkZSAiRE9NVGltZVN0
YW1wLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtleWJv
YXJkRXZlbnQ7CisKK2NsYXNzIFR5cGVBaGVhZERhdGFTb3VyY2UgeworcHVibGljOgorICAgIHZp
cnR1YWwgflR5cGVBaGVhZERhdGFTb3VyY2UoKSB7IH0KKworICAgIHZpcnR1YWwgaW50IGluZGV4
T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGludCBvcHRpb25Db3Vu
dCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBvcHRpb25BdEluZGV4KGludCBpbmRl
eCkgY29uc3QgPSAwOworfTsKKworY2xhc3MgVHlwZUFoZWFkIHsKK3B1YmxpYzoKKyAgICBUeXBl
QWhlYWQoVHlwZUFoZWFkRGF0YVNvdXJjZSopOworCisgICAgLy8gUmV0dXJucyB0aGUgaW5kZXgg
Zm9yIHRoZSBtYXRjaGluZyBvcHRpb24uCisgICAgaW50IGhhbmRsZUV2ZW50KEtleWJvYXJkRXZl
bnQqKTsKKworICAgIGVudW0gTW9kZUZsYWcgeworICAgICAgICBNYXRjaFByZWZpeCA9IDEgPDwg
MCwKKyAgICAgICAgQ3ljbGVGaXJzdENoYXIgPSAxIDw8IDEsCisgICAgICAgIE1hdGNoSW5kZXgg
PSAxIDw8IDIsCisgICAgfTsKKyAgICB0eXBlZGVmIHVuc2lnbmVkIE1hdGNoTW9kZUZsYWdzOwor
ICAgIHZvaWQgc2V0TWF0Y2hNb2RlKE1hdGNoTW9kZUZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBU
eXBlQWhlYWREYXRhU291cmNlKiBtX2RhdGFTb3VyY2U7CisgICAgRE9NVGltZVN0YW1wIG1fbGFz
dFR5cGVUaW1lOworICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKKyAgICBNYXRjaE1vZGVGbGFn
cyBtX21hdGNoTW9kZTsKKyAgICBTdHJpbmdCdWlsZGVyIG1fYnVmZmVyOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwZUFoZWFkX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dC5jcHAKaW5kZXggOGVmNGRhYzJmZTc5MTgyMWMwNmUwZDFiNGU5MTBmNjdkNTg2ZTcyYi4uYzA4
NWY0ZTAzMWU5OGM4NGMzNDIwOTdhMzg3ODMxMTU4ZTdlNWM5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dC5jcHAKQEAgLTU1LDkgKzU1LDExIEBAIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGCiAgICAgLCBt
X3N5bWJvbHMoc3ltYm9scykKICAgICAsIG1fdmlzaWJsZUVtcHR5VmFsdWUobWFrZVZpc2libGVF
bXB0eVZhbHVlKHN5bWJvbHMpKQogICAgICwgbV9zZWxlY3RlZEluZGV4KC0xKQorICAgICwgbV90
eXBlQWhlYWQodGhpcykKIHsKICAgICBBU1NFUlQoIXN5bWJvbHMuaXNFbXB0eSgpKTsKICAgICBz
ZXRIYXNDdXN0b21DYWxsYmFja3MoKTsKKyAgICBtX3R5cGVBaGVhZC5zZXRNYXRjaE1vZGUoVHlw
ZUFoZWFkOjpNYXRjaFByZWZpeCB8IFR5cGVBaGVhZDo6Q3ljbGVGaXJzdENoYXIgfCBUeXBlQWhl
YWQ6Ok1hdGNoSW5kZXgpOwogfQogCiBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50OjpjdXN0b21TdHlsZUZvclJlbmRlcmVyKCkKQEAgLTgyLDEyICs4
NCwxMSBAQCB2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmhhbmRsZUtleWJvYXJk
RXZlbnQoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdgogICAgICAgICByZXR1cm47CiAKICAgICBr
ZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgIGZvciAodW5zaWduZWQgaW5k
ZXggPSAwOyBpbmRleCA8IG1fc3ltYm9scy5zaXplKCk7ICsraW5kZXgpIHsKLSAgICAgICAgaWYg
KCFtX3N5bWJvbHNbaW5kZXhdLmlzRW1wdHkoKSAmJiBXVEY6OlVuaWNvZGU6OnRvTG93ZXIobV9z
eW1ib2xzW2luZGV4XVswXSkgPT0gY2hhckNvZGUpIHsKLSAgICAgICAgICAgIHNldFZhbHVlQXNJ
bnRlZ2VyKGluZGV4LCBEaXNwYXRjaEV2ZW50KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotICAgIH0KKworICAgIGludCBpbmRleCA9IG1fdHlwZUFoZWFkLmhhbmRsZUV2ZW50KGtl
eWJvYXJkRXZlbnQpOworICAgIGlmIChpbmRleCA8IDApCisgICAgICAgIHJldHVybjsKKyAgICBz
ZXRWYWx1ZUFzSW50ZWdlcihpbmRleCwgRGlzcGF0Y2hFdmVudCk7CiB9CiAKIGJvb2wgRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUoKSBjb25zdApAQCAtMTUwLDYgKzE1MSwy
MSBAQCBTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkg
Y29uc3QKICAgICByZXR1cm4gaGFzVmFsdWUoKSA/IG1fc3ltYm9sc1ttX3NlbGVjdGVkSW5kZXhd
IDogdmlzaWJsZUVtcHR5VmFsdWUoKTsKIH0KIAoraW50IERhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQ6OmluZGV4T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Vs
ZWN0ZWRJbmRleDsKK30KKworaW50IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Om9wdGlv
bkNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zeW1ib2xzLnNpemUoKTsKK30KKworU3Ry
aW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgoaW50IGluZGV4
KSBjb25zdAoreworICAgIHJldHVybiBtX3N5bWJvbHNbaW5kZXhdOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDVjNmIwNWFjYmFm
NDdiY2Q0ZDUwYzQxNTRjNmI3N2E4YTJkZmIyZmQuLmFhNmM4ZGEyMWNiMWZiMmJiYjZjMDdhZThj
YjNmNjQ1YTMyOWE2ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgKQEAgLTI4LDEyICsyOCwxMyBAQAog
CiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKICNpbmNsdWRlICJEYXRlVGlt
ZUZpZWxkRWxlbWVudC5oIgorI2luY2x1ZGUgIlR5cGVBaGVhZC5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIC8vIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgcmVwcmVzZW50cyBub24t
bnVtZXJpYyBmaWVsZCBvZiBkYXRhIHRpbWUKIC8vIGZvcm1hdCwgc3VjaCBhczogQU0vUE0sIGFu
ZCBtb250aC4KLWNsYXNzIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0
ZVRpbWVGaWVsZEVsZW1lbnQgeworY2xhc3MgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCA6
IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCwgcHVibGljIFR5cGVBaGVhZERhdGFTb3VyY2Ug
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQp
OwogCiBwcm90ZWN0ZWQ6CkBAIC01OSwxMiArNjAsMTggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFN0cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgU3RyaW5n
IHZpc2libGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCisgICAgLy8gVHlwZUFoZWFk
RGF0YVNvdXJjZSBmdW5jdGlvbnMuCisgICAgdmlydHVhbCBpbnQgaW5kZXhPZlNlbGVjdGVkT3B0
aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBpbnQgb3B0aW9uQ291bnQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBvcHRpb25BdEluZGV4KGludCBpbmRleCkg
Y29uc3QgT1ZFUlJJREU7CisKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiBtX3N5bWJvbHM7CiAK
ICAgICAvLyBXZSB1c2UgQXRvbWljU3RyaW5nIHRvIHNoYXJlIHZpc2libGUgZW1wdHkgdmFsdWUg
YW1vbmcgbXVsdGlwbGUKICAgICAvLyBEYXRlVGltZUVkaXRFbGVtZW50cyBpbiB0aGUgcGFnZS4K
ICAgICBjb25zdCBBdG9taWNTdHJpbmcgbV92aXNpYmxlRW1wdHlWYWx1ZTsKICAgICBpbnQgbV9z
ZWxlY3RlZEluZGV4OworICAgIFR5cGVBaGVhZCBtX3R5cGVBaGVhZDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyOGM2NzVhNTRjMzIyNTlmNGY2ZWMxN2JmN2I3NTk4OGMz
ODYyZjY0Li4zMWJlYWIwMzgwODNhYzJmZjU2MDQ2ZGJiNDQ2NjAxMDdlOGM4ZDVlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMjYgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgQmV0dGVyIHR5cGUgYWhlYWQgZm9yIERhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMzAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmll
bGRzLWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mb3Jtcy9t
b250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50
cy5odG1sOiBBZGRlZCB0ZXN0cyBmb3IgdHlwZWFoZWFkLgorCiAyMDEyLTExLTI2ICBIYWppbWUg
TW9ycml0YSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbU2hhZG93IERPTV0gSW1w
bGVtZW50IEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1Jvb3QoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRz
LWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21v
bnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRz
LWV4cGVjdGVkLnR4dAppbmRleCA1MmM2NTdmNzQ3ZjVhOTI4MGM5NWRjZWYwOWE5NmU5Nzk2ZWY0
ZDRjLi4xNGM5NjQ4YTcxYTY1MDBkYTlkNmJlMTcwZTYxNmJiM2UzNjA3ZTA5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0
aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMt
a2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNyBAQCBCYWNrc3BhY2Ug
LSBNYWtlIHZhbHVlIGVtcHR5CiA9PSBEaWdpdCBrZXlzID09CiBGQUlMIGlucHV0LnZhbHVlIHNo
b3VsZCBiZSAwMDEyLTA5LiBXYXMgMDExMi0wOS4KID09IExlZnQvUmlnaHQga2V5cyA9PQotRkFJ
TCBpbnB1dC52YWx1ZSBzaG91bGQgYmUgMDAwNS0wNi4gV2FzIDAwMDUtMDkuCitQQVNTIGlucHV0
LnZhbHVlIGlzICIwMDA1LTA2IgogUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIGlzICJp
bnB1dCIKID09IFVwL0Rvd24ga2V5cyA9PQogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0xMCIK
QEAgLTQ5LDYgKzQ5LDIzIEBAIFBBU1MgaW5wdXQudmFsdWUgaXMgIiIKID09IFR5cGVhaGVhZCA9
PQogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMS0xMiIKIFBBU1MgaW5wdXQudmFsdWUgaXMgIjAw
MDItMTIiCis9PSBUeXBlYWhlYWQgY3ljbGUgZmlyc3QgY2hhcmFjdGVyID09CitQQVNTIGlucHV0
LnZhbHVlIGlzICIyMDEyLTAxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNiIKK1BBU1Mg
aW5wdXQudmFsdWUgaXMgIjIwMTItMDciCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTAxIgor
UEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wMSIKKz09IFR5cGVhaGVhZCBwcmVmaXggbWF0Y2gg
PT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIy
MDEyLTAzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNSIKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjIwMTItMDUiCis9PSBUeXBlYWhlYWQgaW5kZXggbWF0Y2ggPT0KK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjIwMTItMDEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEyIgorUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMjAxMi0xMiIKKz09IFR5cGVhaGVhZCBzaG91bGQgc2VhcmNoIGZyb20gY3Vy
cmVudCBzZWxlY3Rpb24gPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDYiCiA9PSBSVEwg
TGVmdC9SaWdodCBrZXlzID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEwIgogUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMDAwMi0xMCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1l
dmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRz
L21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbAppbmRleCAzMjEzNDQ4
YWM1OTFkOWQ0YmVmYmE3OTUzZTczZmQzMGNjNDM3OWM4Li41NjAzNmI3Mzc3NmE3N2Q2M2MyZjVh
NzFjM2FmMTE0ZWM0NWEyM2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21v
bnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMv
bW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCkBAIC0xNzEsNiArMTcx
LDQwIEBAIGtleURvd24oJ3JpZ2h0QXJyb3cnKTsKIGtleURvd24oJzInKTsKIHNob3VsZEJlRXF1
YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMDAwMi0xMicpOwogCitiZWdpblRlc3QoJ1R5cGVh
aGVhZCBjeWNsZSBmaXJzdCBjaGFyYWN0ZXInLCAnMjAxMi0wOScpOwora2V5RG93bignaicpOyAv
LyAgICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZh
bHVlJywgJzIwMTItMDEnKTsKK2tleURvd24oJ2onKTsgLy8gICAgICAgICAgLT4gW0p1bl0gMjAx
Mgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA2Jyk7CitrZXlE
b3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKdWxdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNycpOwora2V5RG93bignaicpOyAvLyAgICAgICAgICAt
PiBbSmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTIt
MDEnKTsKK2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW0phbl0gMjAxMgorc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTAxJyk7CisKK2JlZ2luVGVzdCgnVHlw
ZWFoZWFkIHByZWZpeCBtYXRjaCcsICcyMDEyLTA5Jyk7CitrZXlEb3duKCdtJyk7IC8vICAgICAg
ICAgIC0+IFtNYXJdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAn
MjAxMi0wMycpOwora2V5RG93bignYScpOyAvLyAgICAgICAgICAtPiBbTWFyXSAyMDEyCitzaG91
bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDMnKTsKK2tleURvd24oJ3kn
KTsgLy8gICAgICAgICAgLT4gW01heV0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1
dC52YWx1ZScsICcyMDEyLTA1Jyk7CitrZXlEb3duKCd4Jyk7IC8vICAgICAgICAgIC0+IFtNYXld
IDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNScpOwor
CitiZWdpblRlc3QoJ1R5cGVhaGVhZCBpbmRleCBtYXRjaCcsICcyMDEyLTA5Jyk7CitrZXlEb3du
KCcxJyk7IC8vICAgICAgICAgIC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
aW5wdXQudmFsdWUnLCAnMjAxMi0wMScpOwora2V5RG93bignMicpOyAvLyAgICAgICAgICAtPiBb
RGVjXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMTIn
KTsKK2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW0RlY10gMjAxMgorc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTEyJyk7CisKK2JlZ2luVGVzdCgnVHlwZWFo
ZWFkIHNob3VsZCBzZWFyY2ggZnJvbSBjdXJyZW50IHNlbGVjdGlvbicsICcyMDEyLTAxJyk7Citr
ZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKdW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNicpOworCiAvLyBUaGUgdGVzdHMgaW4gdGhlIGZv
bGxvd2luZyBibG9jayBmYWlsIG9uIHBsYXRmb3JtcyB3aXRob3V0IHRoZQogLy8gbGFuZy1hdHRy
aWJ1dGUtYXdhcmUtZm9ybS1jb250cm9sLVVJIGZlYXR1cmUuCiBpbnB1dC5zZXRBdHRyaWJ1dGUo
ImxhbmciLCAiaGUtaWwiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176662</attachid>
            <date>2012-11-29 00:17:53 -0800</date>
            <delta_ts>2012-11-29 00:31:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103031-20121129171527.patch</filename>
            <type>text/plain</type>
            <size>32055</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U2MDIzNzkzOTYzOWU3
MmYyMjA3MmY1YzkxMWE4ODg5MjRlODEzYS4uNTI1YzAxMzkyMDEzZjBlNDAxYTI0YjA5NzRjMjVm
N2EwYmI3N2UzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTExLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0eXBlIGFo
ZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGN1dHMgb3V0IHRoZSB0eXBlIGFoZWFk
IGNvZGUgdGhhdCB3aWxsIGJlIHVzZWQgYnkgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgYW5k
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgaW50byBhIFR5cGVBaGVhZCBjbGFzcy4gVGhp
cyB3aWxsCisgICAgICAgIGltcHJvdmUgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB0eXBl
IGFoZWFkIHdoaWNoIHdhcyBmaXJzdAorICAgICAgICBjaGFyYWN0ZXIgbWF0Y2ggb25seSwgYnkg
YWRkaW5nIGN5Y2xpbmcsIHByZWZpeCBtYXRjaCBhbmQgaW5kZXggbnVtYmVyCisgICAgICAgIG1h
dGNoLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIG1vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXli
b2FyZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVk
IFR5cGVBaGVhZC57aCxjcHB9CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAg
ICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOiBEaXR0by4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogRGl0dG8uCisgICAgICAgICog
aHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aW5kZXhPZlNlbGVjdGVkT3B0aW9uKTogUmV0
dXJucyBpbmRleCBvZiBjdXJyZW50IHNlbGVjdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxT
ZWxlY3RFbGVtZW50OjpvcHRpb25Db3VudCk6IFJldHVybnMgdG90YWwgbnVtYmVyIG9mIG9wdGlv
bnMuCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uQXRJbmRleCk6
IFJldHVybnMgb3B0aW9uIGF0IGluZGV4LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVs
ZW1lbnQ6OnR5cGVBaGVhZEZpbmQpOiBVc2UgVHlwZUFoZWFkLgorICAgICAgICAqIGh0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxTZWxlY3RFbGVtZW50KToKKyAgICAgICAg
KiBodG1sL1R5cGVBaGVhZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpUeXBlQWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpzdHJp
cExlYWRpbmdXaGl0ZVNwYWNlKTogTW92ZWQgZnJvbSBIVE1MU2VsZWN0RWxlbWVudC5jcHAuCisg
ICAgICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KTogUmV0dXJucyBpbmRleCBm
b3IgbWF0Y2guCisgICAgICAgICogaHRtbC9UeXBlQWhlYWQuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFR5cGVBaGVhZERhdGFTb3VyY2UpOiBQcm92aWRlIHRoZSBkYXRh
IGFib3V0IHRoZSBvcHRpb25zIHRoYXQgVHlwZUFoZWFkIHNob3VsZCBtYXRjaCBhZ2FpbnN0Lgor
ICAgICAgICAoVHlwZUFoZWFkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjppbmRleE9m
U2VsZWN0ZWRPcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25Db3VudCk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25BdEluZGV4KToKKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6CisgICAgICAg
IChEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KToKKwogMjAxMi0xMS0yOCAgTWlrZSBXZXN0
ICA8bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBhIHRlc3QgdG8gZW5zdXJlIHRo
YXQgJ3NlYW1sZXNzJyBpZnJhbWVzIGRvIG5vdCBpbmhlcml0IGNvbnRlbnRlZGl0YWJsZS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggYjQwYjRhZDVmZDMwN2RkNzUzNzIxOTA3NDAzZDRhZjczYjZj
NTYzMS4uOTYxYzVkNTU5MzhjYzQ4MGI3ZTJhODUyNTZlMGY1MjczMjAzOTZkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTE0NjcsNiArMTQ2Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAg
ICBodG1sL1RleHRJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAogICAg
IGh0bWwvVGltZVJhbmdlcy5jcHAKKyAgICBodG1sL1R5cGVBaGVhZC5jcHAKICAgICBodG1sL1VS
TElucHV0VHlwZS5jcHAKICAgICBodG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAogICAgIGh0bWwv
VmFsaWRpdHlTdGF0ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhmYjYz
Nzg3MDNlNjRjY2JiMGU2Y2RhZjI3NWVlYTNmODc5Mjg3NWQuLjI1ZGQzODhiZGE4NmJmYzNlM2U3
ZmQ0YzJiYzRlNGVkNmFmMTc0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAt
MzYyNSw2ICszNjI1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1dlYlZUVFRva2VuLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2Vi
VlRUVG9rZW5pemVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5p
emVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0
VHlwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGM1
N2Q1OGIyMGNjNWY1ZTcyZWM4OTUxYWI2MTYyYjMxNzBhZmZhNWUuLjljYTIyZDlkZjI0YjNiNzM3
ZDIwNTYwODY3NjY0ODNhZDljNzY2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNjkwLDYgKzY5MCw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRt
bC9UZXh0SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBcCisgICAg
aHRtbC9UeXBlQWhlYWQuY3BwIFwKICAgICBodG1sL1VSTElucHV0VHlwZS5jcHAgXAogICAgIGh0
bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuY3BwIFwK
QEAgLTE4NDQsNiArMTg0NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvU3RlcFJhbmdlLmgg
XAogICAgIGh0bWwvVGV4dERvY3VtZW50LmggXAogICAgIGh0bWwvVGltZVJhbmdlcy5oIFwKKyAg
ICBodG1sL1R5cGVBaGVhZC5oIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaCBcCiAgICAgaHRt
bC9wYXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTENvbnN0
cnVjdGlvblNpdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDk1YTE3ZDhkZGIwNGI4ZjZhMmMw
NTI1YmM5NzNkM2ZlOTg2MGY0My4uZGFhYzRlOTU2MWYwZGZlNThmODgyMWVkNTg4MDc0MWU3MmRj
NjJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDI2NSw2ICs0MjY1LDggQEAKICAgICAgICAgICAg
ICdodG1sL1ZhbGlkaXR5U3RhdGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBl
LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmgnLAorICAgICAgICAgICAg
J2h0bWwvVHlwZUFoZWFkLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9UeXBlQWhlYWQuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwJywKICAg
ICAgICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMWQzYTIyMzMwZmI4MWE3YzBh
YmMyYWE2MzEwMWEwMWZmOWFhYjI0Li42ODZlNjI2N2RhM2U5OGI3ZGJmYzczOWM1MmI5NDhmMzI1
NGJjMTUzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agpAQCAtNjM5ODksNiArNjM5ODksMTQgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVGlt
ZVJhbmdlcy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgCQk8RmlsZQorICAJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcVHlwZUFoZWFkLmNwcCIKKyAgCQkJPgorICAJCTwvRmlsZT4KKyAgCQk8Rmls
ZQorICAJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVHlwZUFoZWFkLmgiCisgIAkJCT4KKyAgCQk8
L0ZpbGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxVUkxJbnB1dFR5cGUu
Y3BwIgogCQkJCT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBiMmQ1NzU2Y2M1YTYwMDVkNGRmOWNlZTc1MWZhOWQ4MmQ2YWZmZWNj
Li42NjllMjZlZDg5YWU0YjQwOGM5Zjk3YmQ4NGVjY2FiNTllNmM0NWY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODMxLDYg
KzU4MzEsOCBAQAogCQlDMzNFRTVDNTE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMzM0VFNUMzMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZS5oICovOyB9OwogCQlDMzQ4NjEyMzE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBl
TmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzM0ODYxMjExNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAqLzsgfTsKIAkJ
QzM0ODYxMjQxNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzQ4NjEyMjE1RkRFMjFFMDA3QTFD
QzkgLyogSW5wdXRUeXBlTmFtZXMuaCAqLzsgfTsKKwkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFC
IC8qIFR5cGVBaGVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMzc1RDdGQjE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCAqLzsgfTsK
KwkJQzM3NUQ3RkUxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFC
IC8qIFR5cGVBaGVhZC5oICovOyB9OwogCQlDMzdDREVCRDE0OUVGMjAzMDA0MjA5MEQgLyogQ29s
b3JDaG9vc2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMzdDREVCQzE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzNDRjE3
QTQxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5
IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuY3BwICovOyB9OwogCQlDM0NGMTdBNTE1QjAwNjNGMDAyNzZE
MzkgLyogSWRUYXJnZXRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzNDRjE3QTExNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MTMyMzksNiArMTMyNDEsOCBAQAogCQlDMzNFRTVDMzE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNs
aWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzM0ODYxMjExNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElucHV0VHlwZU5hbWVzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM0ODYxMjIxNUZERTIxRTAwN0ExQ0M5IC8q
IElucHV0VHlwZU5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0
VHlwZU5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMzNzVEN0ZCMTY2Mzk1
MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVHlwZUFoZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzM3
NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUeXBlQWhlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzM3Q0RFQkMxNDlFRjIwMzAwNDIwOTBEIC8qIENvbG9yQ2hvb3NlckNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xvckNob29zZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0
T2JzZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRUYXJn
ZXRPYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMzQ0YxN0ExMTVC
MDA2M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IElkVGFyZ2V0T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE3ODkyLDYgKzE3ODk2LDggQEAKIAkJCQlFNDQ2MTM5RDBDRDYzMzEwMDBGQURBNzUg
LyogVGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJRTQ0NjEzOUUwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRp
bWVSYW5nZXMuaCAqLywKIAkJCQlFNDQ2MTM5RjBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdl
cy5pZGwgKi8sCisJCQkJQzM3NUQ3RkIxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5jcHAg
Ki8sCisJCQkJQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovLAogCQkJ
CUY1NUIzREE5MTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1
NUIzREFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLywKIAkJCQlGNUExNTQy
NTEyNzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovLApAQCAtMjU4MzYs
NiArMjU4NDIsNyBAQAogCQkJCUZCMkMxNUMzMTY1RDY0OUQwMDM5QzlGOCAvKiBDYWNoZWRTVkdE
b2N1bWVudFJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE3NDFBQUQxNjYzNjYwOTAw
OEE1QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVC
OEI3QzkxNjUyQzUyMjAwMzZFRjU1IC8qIEpTV2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQzM3NUQ3RkUxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yODkzOSw2ICsyODk0Niw3IEBACiAJCQkJNDQ3OTU4MDUxNjQz
QjRCMjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTE1QjhCN0M4MTY1MkM1MjIwMDM2RUY1NSAvKiBKU1dlYktpdENTU01peEZ1bmN0aW9uVmFsdWUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZCQTc2NkUxNjY0MjdBODAwNUJFNUQxIC8qIEZyYW1l
TG9hZFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4
NEFCIC8qIFR5cGVBaGVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggMjNhYzU3YWY0YjBhZTUzNTZlODIxYjcwMGUyMzI2
NWU5MTIwMDhjOC4uZjQxZWUwZDA3NDVkNGMxOTdjM2Q1MGI3ODM3MjhiZDNiM2I1MmU5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTY0LDE2ICs2NCwx
MyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogLy8gVXBwZXIgbGltaXQgYWdyZWVkIHVw
b24gd2l0aCByZXByZXNlbnRhdGl2ZXMgb2YgT3BlcmEgYW5kIE1vemlsbGEuCiBzdGF0aWMgY29u
c3QgdW5zaWduZWQgbWF4U2VsZWN0SXRlbXMgPSAxMDAwMDsKIAotc3RhdGljIGNvbnN0IERPTVRp
bWVTdGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKLQogSFRNTFNlbGVjdEVsZW1lbnQ6OkhU
TUxTZWxlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAgIDogSFRNTEZvcm1Db250cm9sRWxl
bWVudFdpdGhTdGF0ZSh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKLSAgICAsIG1fbGFzdENoYXJU
aW1lKDApCisgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQogICAgICwgbV9zaXplKDApCiAgICAgLCBt
X2xhc3RPbkNoYW5nZUluZGV4KC0xKQogICAgICwgbV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRl
eCgtMSkKICAgICAsIG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgoLTEpCi0gICAgLCBtX3JlcGVh
dGluZ0NoYXIoMCkKICAgICAsIG1faXNQcm9jZXNzaW5nVXNlckRyaXZlbkNoYW5nZShmYWxzZSkK
ICAgICAsIG1fbXVsdGlwbGUoZmFsc2UpCiAgICAgLCBtX2FjdGl2ZVNlbGVjdGlvblN0YXRlKGZh
bHNlKQpAQCAtMTQ3NCw4MiArMTQ3MSwzNCBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxhc3RT
ZWxlY3RlZExpc3RJbmRleCgpIGNvbnN0CiAgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgU3Ry
aW5nIHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitpbnQgSFRN
TFNlbGVjdEVsZW1lbnQ6OmluZGV4T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0CiB7Ci0gICAgaW50
IGxlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKLQotICAgIGludCBpOwotICAgIGZvciAoaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoc3RyaW5nW2ldICE9IG5vQnJlYWtTcGFj
ZSAmJiAoc3RyaW5nW2ldIDw9IDB4N0YgPyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tpXSkgOiAoZGly
ZWN0aW9uKHN0cmluZ1tpXSkgIT0gV2hpdGVTcGFjZU5ldXRyYWwpKSkKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgIH0KLQotICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKGksIGxlbmd0aCAtIGkp
OworICAgIHJldHVybiBvcHRpb25Ub0xpc3RJbmRleChzZWxlY3RlZEluZGV4KCkpOwogfQogCi12
b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojp0eXBlQWhlYWRGaW5kKEtleWJvYXJkRXZlbnQqIGV2ZW50
KQoraW50IEhUTUxTZWxlY3RFbGVtZW50OjpvcHRpb25Db3VudCgpIGNvbnN0CiB7Ci0gICAgaWYg
KGV2ZW50LT50aW1lU3RhbXAoKSA8IG1fbGFzdENoYXJUaW1lKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RDaGFy
VGltZTsKLSAgICBtX2xhc3RDaGFyVGltZSA9IGV2ZW50LT50aW1lU3RhbXAoKTsKLQotICAgIFVD
aGFyIGMgPSBldmVudC0+Y2hhckNvZGUoKTsKLQotICAgIFN0cmluZyBwcmVmaXg7Ci0gICAgaW50
IHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMTsKLSAgICBpZiAoZGVsdGEgPiB0eXBlQWhlYWRUaW1lb3V0
KSB7Ci0gICAgICAgIHByZWZpeCA9IFN0cmluZygmYywgMSk7Ci0gICAgICAgIG1fdHlwZWRTdHJp
bmcgPSBwcmVmaXg7Ci0gICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgbV90eXBlZFN0cmluZy5hcHBlbmQoYyk7Ci0KLSAgICAgICAgaWYgKGMgPT0gbV9y
ZXBlYXRpbmdDaGFyKSB7Ci0gICAgICAgICAgICAvLyBUaGUgdXNlciBpcyBsaWtlbHkgdHJ5aW5n
IHRvIGN5Y2xlIHRocm91Z2ggYWxsIHRoZSBpdGVtcyBzdGFydGluZwotICAgICAgICAgICAgLy8g
d2l0aCB0aGlzIGNoYXJhY3Rlciwgc28ganVzdCBzZWFyY2ggb24gdGhlIGNoYXJhY3Rlci4KLSAg
ICAgICAgICAgIHByZWZpeCA9IFN0cmluZygmYywgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOwotICAgICAgICAgICAgcHJlZml4ID0gbV90eXBl
ZFN0cmluZzsKLSAgICAgICAgICAgIHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKLSAgICAgICAgfQot
ICAgIH0KKyAgICByZXR1cm4gbGlzdEl0ZW1zKCkuc2l6ZSgpOworfQogCitTdHJpbmcgSFRNTFNl
bGVjdEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdAorewogICAgIGNvbnN0
IFZlY3RvcjxIVE1MRWxlbWVudCo+JiBpdGVtcyA9IGxpc3RJdGVtcygpOwotICAgIGludCBpdGVt
Q291bnQgPSBpdGVtcy5zaXplKCk7Ci0gICAgaWYgKGl0ZW1Db3VudCA8IDEpCi0gICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2luZGV4XTsKKyAg
ICBpZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVt
ZW50KGVsZW1lbnQpLT5kaXNhYmxlZCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAg
cmV0dXJuIHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVj
dEdyb3VwTGFiZWwoKTsKK30KIAotICAgIGludCBzZWxlY3RlZCA9IHNlbGVjdGVkSW5kZXgoKTsK
LSAgICBpbnQgaW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleChzZWxlY3RlZCA+PSAwID8gc2VsZWN0
ZWQgOiAwKSArIHNlYXJjaFN0YXJ0T2Zmc2V0Owordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dHlw
ZUFoZWFkRmluZChLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBpbnQgaW5kZXggPSBtX3R5
cGVBaGVhZC5oYW5kbGVFdmVudChldmVudCwgVHlwZUFoZWFkOjpNYXRjaFByZWZpeCB8IFR5cGVB
aGVhZDo6Q3ljbGVGaXJzdENoYXIpOwogICAgIGlmIChpbmRleCA8IDApCiAgICAgICAgIHJldHVy
bjsKLSAgICBpbmRleCAlPSBpdGVtQ291bnQ7Ci0KLSAgICAvLyBDb21wdXRlIGEgY2FzZS1mb2xk
ZWQgY29weSBvZiB0aGUgcHJlZml4IHN0cmluZyBiZWZvcmUgYmVnaW5uaW5nIHRoZSBzZWFyY2gg
Zm9yCi0gICAgLy8gYSBtYXRjaGluZyBlbGVtZW50LiBUaGlzIGNvZGUgdXNlcyBmb2xkQ2FzZSB0
byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0Ci0gICAgLy8gU3RyaW5nOjpzdGFydFdpdGggZG9l
cyBub3QgZm9sZCBub24tQVNDSUkgY2hhcmFjdGVycy4gVGhpcyBjb2RlIGNhbiBiZSBjaGFuZ2Vk
Ci0gICAgLy8gdG8gdXNlIHN0YXJ0V2l0aCBvbmNlIHRoYXQgaXMgZml4ZWQuCi0gICAgU3RyaW5n
IHByZWZpeFdpdGhDYXNlRm9sZGVkKHByZWZpeC5mb2xkQ2FzZSgpKTsKLSAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGl0ZW1Db3VudDsgKytpLCBpbmRleCA9IChpbmRleCArIDEpICUgaXRlbUNvdW50
KSB7Ci0gICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaXRlbXNbaW5kZXhdOwotICAgICAg
ICBpZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVt
ZW50KGVsZW1lbnQpLT5kaXNhYmxlZCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAg
ICAgLy8gRm9sZCB0aGUgb3B0aW9uIHN0cmluZyBhbmQgY2hlY2sgaWYgaXRzIHByZWZpeCBpcyBl
cXVhbCB0byB0aGUgZm9sZGVkIHByZWZpeC4KLSAgICAgICAgU3RyaW5nIHRleHQgPSB0b0hUTUxP
cHRpb25FbGVtZW50KGVsZW1lbnQpLT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7
Ci0gICAgICAgIGlmIChzdHJpcExlYWRpbmdXaGl0ZVNwYWNlKHRleHQpLmZvbGRDYXNlKCkuc3Rh
cnRzV2l0aChwcmVmaXhXaXRoQ2FzZUZvbGRlZCkpIHsKLSAgICAgICAgICAgIHNlbGVjdE9wdGlv
bihsaXN0VG9PcHRpb25JbmRleChpbmRleCksIERlc2VsZWN0T3RoZXJPcHRpb25zIHwgRGlzcGF0
Y2hDaGFuZ2VFdmVudCB8IFVzZXJEcml2ZW4pOwotICAgICAgICAgICAgaWYgKCF1c2VzTWVudUxp
c3QoKSkKLSAgICAgICAgICAgICAgICBsaXN0Qm94T25DaGFuZ2UoKTsKLQotICAgICAgICAgICAg
c2V0T3B0aW9uc0NoYW5nZWRPblJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBzZXROZWVkc1N0eWxl
UmVjYWxjKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9CisgICAgc2Vs
ZWN0T3B0aW9uKGxpc3RUb09wdGlvbkluZGV4KGluZGV4KSwgRGVzZWxlY3RPdGhlck9wdGlvbnMg
fCBEaXNwYXRjaENoYW5nZUV2ZW50IHwgVXNlckRyaXZlbik7CisgICAgaWYgKCF1c2VzTWVudUxp
c3QoKSkKKyAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7CiB9CiAKIE5vZGU6Okluc2VydGlvbk5v
dGlmaWNhdGlvblJlcXVlc3QgSFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWlu
ZXJOb2RlKiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaAppbmRleCA2ZDg4ZGExNzg4M2UyMzUzOTVlNWJhNjlmNTMzZDdhYzU3ZTIwNDY1Li5hMmYy
NjUwZjYwMzA2Zjg3NGU3MGE4NDUyMGU4ZjY5MTFiZTQ0MTI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5oCkBAIC0yOSwxMyArMjksMTQgQEAKICNpbmNsdWRlICJFdmVu
dC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuaCIKICNpbmNs
dWRlICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJUeXBlQWhlYWQuaCIKICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRN
TE9wdGlvbkVsZW1lbnQ7CiAKLWNsYXNzIEhUTUxTZWxlY3RFbGVtZW50IDogcHVibGljIEhUTUxG
b3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUgeworY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQgOiBw
dWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSwgcHVibGljIFR5cGVBaGVhZERh
dGFTb3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxTZWxlY3RFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVt
ZW50Kik7CiAKQEAgLTEwMyw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gRm9yIHVz
ZSBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgSFRNTE9wdGlvbkVsZW1lbnQuCiAgICAgdm9pZCBv
cHRpb25TZWxlY3Rpb25TdGF0ZUNoYW5nZWQoSFRNTE9wdGlvbkVsZW1lbnQqLCBib29sIG9wdGlv
bklzU2VsZWN0ZWQpOwotICAgIAorCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKQEAg
LTE4MSwxNyArMTgyLDIwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hh
bmdlZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAw
LCBOb2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKICAgICB2
aXJ0dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBPVkVSUklERSB7IHJl
dHVybiBmYWxzZTsgfQogCisgICAgLy8gVHlwZUFoZWFkRGF0YVNvdXJjZSBmdW5jdGlvbnMuCisg
ICAgdmlydHVhbCBpbnQgaW5kZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBpbnQgb3B0aW9uQ291bnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IFN0cmluZyBvcHRpb25BdEluZGV4KGludCBpbmRleCkgY29uc3QgT1ZFUlJJREU7CisKICAgICAv
LyBtX2xpc3RJdGVtcyBjb250YWlucyBIVE1MT3B0aW9uRWxlbWVudCwgSFRNTE9wdEdyb3VwRWxl
bWVudCwgYW5kIEhUTUxIUkVsZW1lbnQgb2JqZWN0cy4KICAgICBtdXRhYmxlIFZlY3RvcjxIVE1M
RWxlbWVudCo+IG1fbGlzdEl0ZW1zOwogICAgIFZlY3Rvcjxib29sPiBtX2xhc3RPbkNoYW5nZVNl
bGVjdGlvbjsKICAgICBWZWN0b3I8Ym9vbD4gbV9jYWNoZWRTdGF0ZUZvckFjdGl2ZVNlbGVjdGlv
bjsKLSAgICBET01UaW1lU3RhbXAgbV9sYXN0Q2hhclRpbWU7Ci0gICAgU3RyaW5nIG1fdHlwZWRT
dHJpbmc7CisgICAgVHlwZUFoZWFkIG1fdHlwZUFoZWFkOwogICAgIGludCBtX3NpemU7CiAgICAg
aW50IG1fbGFzdE9uQ2hhbmdlSW5kZXg7CiAgICAgaW50IG1fYWN0aXZlU2VsZWN0aW9uQW5jaG9y
SW5kZXg7CiAgICAgaW50IG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXg7Ci0gICAgVUNoYXIgbV9y
ZXBlYXRpbmdDaGFyOwogICAgIGJvb2wgbV9pc1Byb2Nlc3NpbmdVc2VyRHJpdmVuQ2hhbmdlOwog
ICAgIGJvb2wgbV9tdWx0aXBsZTsKICAgICBib29sIG1fYWN0aXZlU2VsZWN0aW9uU3RhdGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1R5cGVBaGVhZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc5ZDdjMDY3M2Y5NDJmMDNhZjFi
MTkyMzk2NzQ0OGIyN2U3OTkzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVHlwZUFoZWFkLmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBD
b3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAg
ICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAg
ICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5
YWtvdiAoYXBAbnlwb3AuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBlQWhlYWQuaCIKKworI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5o
PgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdU
Rjo6VW5pY29kZTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBlQWhlYWQ6OlR5cGVBaGVh
ZChUeXBlQWhlYWREYXRhU291cmNlKiBkYXRhU291cmNlKQorICAgIDogbV9kYXRhU291cmNlKGRh
dGFTb3VyY2UpCisgICAgLCBtX2xhc3RUeXBlVGltZSgwKQorICAgICwgbV9yZXBlYXRpbmdDaGFy
KDApCit7Cit9CisKK3N0YXRpYyBjb25zdCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91dCA9
IDEwMDA7CisKK3N0YXRpYyBTdHJpbmcgc3RyaXBMZWFkaW5nV2hpdGVTcGFjZShjb25zdCBTdHJp
bmcmIHN0cmluZykKK3sKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisK
KyAgICB1bnNpZ25lZCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAg
ICAgICBpZiAoc3RyaW5nW2ldICE9IG5vQnJlYWtTcGFjZSAmJiAoc3RyaW5nW2ldIDw9IDB4N0Yg
PyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tpXSkgOiAoZGlyZWN0aW9uKHN0cmluZ1tpXSkgIT0gV2hp
dGVTcGFjZU5ldXRyYWwpKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVy
biBzdHJpbmcuc3Vic3RyaW5nKGksIGxlbmd0aCAtIGkpOworfQorCitpbnQgVHlwZUFoZWFkOjpo
YW5kbGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2Rl
KQoreworICAgIGlmIChldmVudC0+dGltZVN0YW1wKCkgPCBtX2xhc3RUeXBlVGltZSkKKyAgICAg
ICAgcmV0dXJuIC0xOworCisgICAgaW50IG9wdGlvbkNvdW50ID0gbV9kYXRhU291cmNlLT5vcHRp
b25Db3VudCgpOworICAgIERPTVRpbWVTdGFtcCBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAt
IG1fbGFzdFR5cGVUaW1lOworICAgIG1fbGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgp
OworCisgICAgVUNoYXIgYyA9IGV2ZW50LT5jaGFyQ29kZSgpOworCisgICAgaWYgKGRlbHRhID4g
dHlwZUFoZWFkVGltZW91dCkKKyAgICAgICAgbV9idWZmZXIuY2xlYXIoKTsKKyAgICBtX2J1ZmZl
ci5hcHBlbmQoYyk7CisKKyAgICBpZiAob3B0aW9uQ291bnQgPCAxKQorICAgICAgICByZXR1cm4g
LTE7CisKKyAgICBpbnQgc2VhcmNoU3RhcnRPZmZzZXQgPSAxOworICAgIFN0cmluZyBwcmVmaXg7
CisgICAgaWYgKG1hdGNoTW9kZSAmIEN5Y2xlRmlyc3RDaGFyICYmIGMgPT0gbV9yZXBlYXRpbmdD
aGFyKSB7CisgICAgICAgIC8vIFRoZSB1c2VyIGlzIGxpa2VseSB0cnlpbmcgdG8gY3ljbGUgdGhy
b3VnaCBhbGwgdGhlIGl0ZW1zIHN0YXJ0aW5nCisgICAgICAgIC8vIHdpdGggdGhpcyBjaGFyYWN0
ZXIsIHNvIGp1c3Qgc2VhcmNoIG9uIHRoZSBjaGFyYWN0ZXIuCisgICAgICAgIHByZWZpeCA9IFN0
cmluZygmYywgMSk7CisgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7CisgICAgfSBlbHNlIGlm
IChtYXRjaE1vZGUgJiBNYXRjaFByZWZpeCkgeworICAgICAgICBwcmVmaXggPSBtX2J1ZmZlci50
b1N0cmluZygpOworICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkgPiAxKSB7CisgICAgICAg
ICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOworICAgICAgICAgICAgc2VhcmNoU3RhcnRPZmZzZXQg
PSAwOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7Cisg
ICAgfQorCisgICAgaWYgKCFwcmVmaXguaXNFbXB0eSgpKSB7CisgICAgICAgIGludCBzZWxlY3Rl
ZCA9IG1fZGF0YVNvdXJjZS0+aW5kZXhPZlNlbGVjdGVkT3B0aW9uKCk7CisgICAgICAgIGludCBp
bmRleCA9IChzZWxlY3RlZCA8IDAgPyAwIDogc2VsZWN0ZWQpICsgc2VhcmNoU3RhcnRPZmZzZXQ7
CisgICAgICAgIGluZGV4ICU9IG9wdGlvbkNvdW50OworCisgICAgICAgIC8vIENvbXB1dGUgYSBj
YXNlLWZvbGRlZCBjb3B5IG9mIHRoZSBwcmVmaXggc3RyaW5nIGJlZm9yZSBiZWdpbm5pbmcgdGhl
IHNlYXJjaCBmb3IKKyAgICAgICAgLy8gYSBtYXRjaGluZyBlbGVtZW50LiBUaGlzIGNvZGUgdXNl
cyBmb2xkQ2FzZSB0byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0CisgICAgICAgIC8vIFN0cmlu
Zzo6c3RhcnRXaXRoIGRvZXMgbm90IGZvbGQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIFRoaXMgY29k
ZSBjYW4gYmUgY2hhbmdlZAorICAgICAgICAvLyB0byB1c2Ugc3RhcnRXaXRoIG9uY2UgdGhhdCBp
cyBmaXhlZC4KKyAgICAgICAgU3RyaW5nIHByZWZpeFdpdGhDYXNlRm9sZGVkKHByZWZpeC5mb2xk
Q2FzZSgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcHRpb25Db3VudDsgKytpLCBp
bmRleCA9IChpbmRleCArIDEpICUgb3B0aW9uQ291bnQpIHsKKyAgICAgICAgICAgIC8vIEZvbGQg
dGhlIG9wdGlvbiBzdHJpbmcgYW5kIGNoZWNrIGlmIGl0cyBwcmVmaXggaXMgZXF1YWwgdG8gdGhl
IGZvbGRlZCBwcmVmaXguCisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IG1fZGF0YVNvdXJjZS0+
b3B0aW9uQXRJbmRleChpbmRleCk7CisgICAgICAgICAgICBpZiAoc3RyaXBMZWFkaW5nV2hpdGVT
cGFjZSh0ZXh0KS5mb2xkQ2FzZSgpLnN0YXJ0c1dpdGgocHJlZml4V2l0aENhc2VGb2xkZWQpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlm
IChtYXRjaE1vZGUgJiBNYXRjaEluZGV4KSB7CisgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAg
ICAgICAgaW50IGluZGV4ID0gbV9idWZmZXIudG9TdHJpbmcoKS50b0ludCgmb2spOworICAgICAg
ICBpZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50KQorICAgICAgICAgICAgcmV0
dXJuIGluZGV4IC0gMTsKKyAgICB9CisgICAgcmV0dXJuIC0xOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTVkNjNkZDA3OTEy
ZjNhYzY3OGVjZTk1YzE0NWNjNGI1ZDQ1ZjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9UeXBlQWhlYWQuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICog
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBUeXBlQWhlYWRfaAorI2RlZmluZSBUeXBlQWhlYWRfaAorCisjaW5jbHVkZSAi
RE9NVGltZVN0YW1wLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEtleWJvYXJkRXZlbnQ7CisKK2NsYXNzIFR5cGVBaGVhZERhdGFTb3VyY2UgeworcHVibGlj
OgorICAgIHZpcnR1YWwgflR5cGVBaGVhZERhdGFTb3VyY2UoKSB7IH0KKworICAgIHZpcnR1YWwg
aW50IGluZGV4T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGludCBv
cHRpb25Db3VudCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBvcHRpb25BdEluZGV4
KGludCBpbmRleCkgY29uc3QgPSAwOworfTsKKworY2xhc3MgVHlwZUFoZWFkIHsKK3B1YmxpYzoK
KyAgICBUeXBlQWhlYWQoVHlwZUFoZWFkRGF0YVNvdXJjZSopOworCisgICAgZW51bSBNb2RlRmxh
ZyB7CisgICAgICAgIE1hdGNoUHJlZml4ID0gMSA8PCAwLAorICAgICAgICBDeWNsZUZpcnN0Q2hh
ciA9IDEgPDwgMSwKKyAgICAgICAgTWF0Y2hJbmRleCA9IDEgPDwgMiwKKyAgICB9OworICAgIHR5
cGVkZWYgdW5zaWduZWQgTWF0Y2hNb2RlRmxhZ3M7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbmRl
eCBmb3IgdGhlIG1hdGNoaW5nIG9wdGlvbi4KKyAgICBpbnQgaGFuZGxlRXZlbnQoS2V5Ym9hcmRF
dmVudCosIE1hdGNoTW9kZUZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBUeXBlQWhlYWREYXRhU291
cmNlKiBtX2RhdGFTb3VyY2U7CisgICAgRE9NVGltZVN0YW1wIG1fbGFzdFR5cGVUaW1lOworICAg
IFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKKyAgICBNYXRjaE1vZGVGbGFncyBtX21hdGNoTW9kZTsK
KyAgICBTdHJpbmdCdWlsZGVyIG1fYnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gVHlwZUFoZWFkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKaW5kZXggOGVm
NGRhYzJmZTc5MTgyMWMwNmUwZDFiNGU5MTBmNjdkNTg2ZTcyYi4uM2U4MzUwOTA5M2IzZjRkNWJj
MGExMmUxYjVhZWM0MTc0YmQ4ZTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTU1LDYg
KzU1LDcgQEAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0Zp
ZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEYKICAgICAsIG1fc3ltYm9scyhzeW1ib2xz
KQogICAgICwgbV92aXNpYmxlRW1wdHlWYWx1ZShtYWtlVmlzaWJsZUVtcHR5VmFsdWUoc3ltYm9s
cykpCiAgICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCisgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQog
ewogICAgIEFTU0VSVCghc3ltYm9scy5pc0VtcHR5KCkpOwogICAgIHNldEhhc0N1c3RvbUNhbGxi
YWNrcygpOwpAQCAtODIsMTIgKzgzLDExIEBAIHZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2CiAgICAg
ICAgIHJldHVybjsKIAogICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0g
ICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbV9zeW1ib2xzLnNpemUoKTsgKytp
bmRleCkgewotICAgICAgICBpZiAoIW1fc3ltYm9sc1tpbmRleF0uaXNFbXB0eSgpICYmIFdURjo6
VW5pY29kZTo6dG9Mb3dlcihtX3N5bWJvbHNbaW5kZXhdWzBdKSA9PSBjaGFyQ29kZSkgewotICAg
ICAgICAgICAgc2V0VmFsdWVBc0ludGVnZXIoaW5kZXgsIERpc3BhdGNoRXZlbnQpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQorCisgICAgaW50IGluZGV4ID0gbV90eXBl
QWhlYWQuaGFuZGxlRXZlbnQoa2V5Ym9hcmRFdmVudCwgVHlwZUFoZWFkOjpNYXRjaFByZWZpeCB8
IFR5cGVBaGVhZDo6Q3ljbGVGaXJzdENoYXIgfCBUeXBlQWhlYWQ6Ok1hdGNoSW5kZXgpOworICAg
IGlmIChpbmRleCA8IDApCisgICAgICAgIHJldHVybjsKKyAgICBzZXRWYWx1ZUFzSW50ZWdlcihp
bmRleCwgRGlzcGF0Y2hFdmVudCk7CiB9CiAKIGJvb2wgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxl
bWVudDo6aGFzVmFsdWUoKSBjb25zdApAQCAtMTUwLDYgKzE1MCwyMSBAQCBTdHJpbmcgRGF0ZVRp
bWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4g
aGFzVmFsdWUoKSA/IG1fc3ltYm9sc1ttX3NlbGVjdGVkSW5kZXhdIDogdmlzaWJsZUVtcHR5VmFs
dWUoKTsKIH0KIAoraW50IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluZGV4T2ZTZWxl
Y3RlZE9wdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbmRleDsKK30KKwor
aW50IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Om9wdGlvbkNvdW50KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9zeW1ib2xzLnNpemUoKTsKK30KKworU3RyaW5nIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdAoreworICAgIHJl
dHVybiBtX3N5bWJvbHNbaW5kZXhdOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDVjNmIwNWFjYmFmNDdiY2Q0ZDUwYzQxNTRjNmI3
N2E4YTJkZmIyZmQuLmFhNmM4ZGEyMWNiMWZiMmJiYjZjMDdhZThjYjNmNjQ1YTMyOWE2ZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50LmgKQEAgLTI4LDEyICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKElOUFVU
X01VTFRJUExFX0ZJRUxEU19VSSkKICNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgor
I2luY2x1ZGUgIlR5cGVBaGVhZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIERhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgcmVwcmVzZW50cyBub24tbnVtZXJpYyBmaWVsZCBvZiBk
YXRhIHRpbWUKIC8vIGZvcm1hdCwgc3VjaCBhczogQU0vUE0sIGFuZCBtb250aC4KLWNsYXNzIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQg
eworY2xhc3MgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZp
ZWxkRWxlbWVudCwgcHVibGljIFR5cGVBaGVhZERhdGFTb3VyY2UgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOwogCiBwcm90ZWN0ZWQ6CkBA
IC01OSwxMiArNjAsMTggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNv
bnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNv
bnN0IE9WRVJSSURFIEZJTkFMOwogCisgICAgLy8gVHlwZUFoZWFkRGF0YVNvdXJjZSBmdW5jdGlv
bnMuCisgICAgdmlydHVhbCBpbnQgaW5kZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBpbnQgb3B0aW9uQ291bnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFN0cmluZyBvcHRpb25BdEluZGV4KGludCBpbmRleCkgY29uc3QgT1ZFUlJJREU7CisK
ICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiBtX3N5bWJvbHM7CiAKICAgICAvLyBXZSB1c2UgQXRv
bWljU3RyaW5nIHRvIHNoYXJlIHZpc2libGUgZW1wdHkgdmFsdWUgYW1vbmcgbXVsdGlwbGUKICAg
ICAvLyBEYXRlVGltZUVkaXRFbGVtZW50cyBpbiB0aGUgcGFnZS4KICAgICBjb25zdCBBdG9taWNT
dHJpbmcgbV92aXNpYmxlRW1wdHlWYWx1ZTsKICAgICBpbnQgbV9zZWxlY3RlZEluZGV4OworICAg
IFR5cGVBaGVhZCBtX3R5cGVBaGVhZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAyNTgxMzU3NjhhZjhjNjg0OTNlNTU5NDI4MDFhOWRkZmUyNWRhYTQ2Li5kYmM4NjM3Yzdk
ZjU0M2Q4MjMwNzYwYjg2NDY5ZmU3YWZjNDUwNmMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTItMTEtMjYgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
QmV0dGVyIHR5cGUgYWhlYWQgZm9yIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzAzMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9t
b250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVs
ZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sOiBBZGRlZCB0ZXN0
cyBmb3IgdHlwZWFoZWFkLgorCiAyMDEyLTExLTI4ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgQWRkIGEgdGVzdCB0byBlbnN1cmUgdGhhdCAnc2VhbWxlc3MnIGlm
cmFtZXMgZG8gbm90IGluaGVyaXQgY29udGVudGVkaXRhYmxlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmll
bGRzLWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZl
bnRzLWV4cGVjdGVkLnR4dAppbmRleCA1MmM2NTdmNzQ3ZjVhOTI4MGM5NWRjZWYwOWE5NmU5Nzk2
ZWY0ZDRjLi4xNGM5NjQ4YTcxYTY1MDBkYTlkNmJlMTcwZTYxNmJiM2UzNjA3ZTA5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1t
dWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVs
ZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNyBAQCBCYWNrc3Bh
Y2UgLSBNYWtlIHZhbHVlIGVtcHR5CiA9PSBEaWdpdCBrZXlzID09CiBGQUlMIGlucHV0LnZhbHVl
IHNob3VsZCBiZSAwMDEyLTA5LiBXYXMgMDExMi0wOS4KID09IExlZnQvUmlnaHQga2V5cyA9PQot
RkFJTCBpbnB1dC52YWx1ZSBzaG91bGQgYmUgMDAwNS0wNi4gV2FzIDAwMDUtMDkuCitQQVNTIGlu
cHV0LnZhbHVlIGlzICIwMDA1LTA2IgogUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIGlz
ICJpbnB1dCIKID09IFVwL0Rvd24ga2V5cyA9PQogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0x
MCIKQEAgLTQ5LDYgKzQ5LDIzIEBAIFBBU1MgaW5wdXQudmFsdWUgaXMgIiIKID09IFR5cGVhaGVh
ZCA9PQogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMS0xMiIKIFBBU1MgaW5wdXQudmFsdWUgaXMg
IjAwMDItMTIiCis9PSBUeXBlYWhlYWQgY3ljbGUgZmlyc3QgY2hhcmFjdGVyID09CitQQVNTIGlu
cHV0LnZhbHVlIGlzICIyMDEyLTAxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNiIKK1BB
U1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDciCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTAx
IgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wMSIKKz09IFR5cGVhaGVhZCBwcmVmaXggbWF0
Y2ggPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDMiCitQQVNTIGlucHV0LnZhbHVlIGlz
ICIyMDEyLTAzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNSIKK1BBU1MgaW5wdXQudmFs
dWUgaXMgIjIwMTItMDUiCis9PSBUeXBlYWhlYWQgaW5kZXggbWF0Y2ggPT0KK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjIwMTItMDEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEyIgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMjAxMi0xMiIKKz09IFR5cGVhaGVhZCBzaG91bGQgc2VhcmNoIGZyb20g
Y3VycmVudCBzZWxlY3Rpb24gPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDYiCiA9PSBS
VEwgTGVmdC9SaWdodCBrZXlzID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEwIgogUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMDAwMi0xMCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2Fy
ZC1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmll
bGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbAppbmRleCAzMjEz
NDQ4YWM1OTFkOWQ0YmVmYmE3OTUzZTczZmQzMGNjNDM3OWM4Li41NjAzNmI3Mzc3NmE3N2Q2M2My
ZjVhNzFjM2FmMTE0ZWM0NWEyM2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZl
bnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVs
ZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCkBAIC0xNzEsNiAr
MTcxLDQwIEBAIGtleURvd24oJ3JpZ2h0QXJyb3cnKTsKIGtleURvd24oJzInKTsKIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMDAwMi0xMicpOwogCitiZWdpblRlc3QoJ1R5
cGVhaGVhZCBjeWNsZSBmaXJzdCBjaGFyYWN0ZXInLCAnMjAxMi0wOScpOwora2V5RG93bignaicp
OyAvLyAgICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0
LnZhbHVlJywgJzIwMTItMDEnKTsKK2tleURvd24oJ2onKTsgLy8gICAgICAgICAgLT4gW0p1bl0g
MjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA2Jyk7Citr
ZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKdWxdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNycpOwora2V5RG93bignaicpOyAvLyAgICAgICAg
ICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIw
MTItMDEnKTsKK2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW0phbl0gMjAxMgorc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTAxJyk7CisKK2JlZ2luVGVzdCgn
VHlwZWFoZWFkIHByZWZpeCBtYXRjaCcsICcyMDEyLTA5Jyk7CitrZXlEb3duKCdtJyk7IC8vICAg
ICAgICAgIC0+IFtNYXJdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUn
LCAnMjAxMi0wMycpOwora2V5RG93bignYScpOyAvLyAgICAgICAgICAtPiBbTWFyXSAyMDEyCitz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDMnKTsKK2tleURvd24o
J3knKTsgLy8gICAgICAgICAgLT4gW01heV0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdp
bnB1dC52YWx1ZScsICcyMDEyLTA1Jyk7CitrZXlEb3duKCd4Jyk7IC8vICAgICAgICAgIC0+IFtN
YXldIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNScp
OworCitiZWdpblRlc3QoJ1R5cGVhaGVhZCBpbmRleCBtYXRjaCcsICcyMDEyLTA5Jyk7CitrZXlE
b3duKCcxJyk7IC8vICAgICAgICAgIC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMScpOwora2V5RG93bignMicpOyAvLyAgICAgICAgICAt
PiBbRGVjXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTIt
MTInKTsKK2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW0RlY10gMjAxMgorc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTEyJyk7CisKK2JlZ2luVGVzdCgnVHlw
ZWFoZWFkIHNob3VsZCBzZWFyY2ggZnJvbSBjdXJyZW50IHNlbGVjdGlvbicsICcyMDEyLTAxJyk7
CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKdW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNicpOworCiAvLyBUaGUgdGVzdHMgaW4gdGhl
IGZvbGxvd2luZyBibG9jayBmYWlsIG9uIHBsYXRmb3JtcyB3aXRob3V0IHRoZQogLy8gbGFuZy1h
dHRyaWJ1dGUtYXdhcmUtZm9ybS1jb250cm9sLVVJIGZlYXR1cmUuCiBpbnB1dC5zZXRBdHRyaWJ1
dGUoImxhbmciLCAiaGUtaWwiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176665</attachid>
            <date>2012-11-29 00:31:27 -0800</date>
            <delta_ts>2012-11-29 04:02:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103031-20121129172900.patch</filename>
            <type>text/plain</type>
            <size>32049</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U2MDIzNzkzOTYzOWU3
MmYyMjA3MmY1YzkxMWE4ODg5MjRlODEzYS4uNjhiNGQ0OGJmMWFlZGJiMjk0YzBkZjkyNzBkMTdk
NTY3NWE2N2M4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTExLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0eXBlIGFo
ZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBLZW50IFRhbXVyYS4KKworICAgICAgICBUaGlzIGN1dHMgb3V0IHRoZSB0eXBlIGFoZWFkIGNv
ZGUgdGhhdCB3aWxsIGJlIHVzZWQgYnkgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgYW5kIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgaW50byBhIFR5cGVBaGVhZCBjbGFzcy4gVGhpcyB3
aWxsCisgICAgICAgIGltcHJvdmUgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB0eXBlIGFo
ZWFkIHdoaWNoIHdhcyBmaXJzdAorICAgICAgICBjaGFyYWN0ZXIgbWF0Y2ggb25seSwgYnkgYWRk
aW5nIGN5Y2xpbmcsIHByZWZpeCBtYXRjaCBhbmQgaW5kZXggbnVtYmVyCisgICAgICAgIG1hdGNo
LgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIG1vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2Fy
ZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIFR5
cGVBaGVhZC57aCxjcHB9CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICog
V2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBEaXR0by4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogRGl0dG8uCisgICAgICAgICogaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aW5kZXhPZlNlbGVjdGVkT3B0aW9uKTogUmV0dXJu
cyBpbmRleCBvZiBjdXJyZW50IHNlbGVjdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50OjpvcHRpb25Db3VudCk6IFJldHVybnMgdG90YWwgbnVtYmVyIG9mIG9wdGlvbnMu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uQXRJbmRleCk6IFJl
dHVybnMgb3B0aW9uIGF0IGluZGV4LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1l
bnQ6OnR5cGVBaGVhZEZpbmQpOiBVc2UgVHlwZUFoZWFkLgorICAgICAgICAqIGh0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxTZWxlY3RFbGVtZW50KToKKyAgICAgICAgKiBo
dG1sL1R5cGVBaGVhZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBlQWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpzdHJpcExl
YWRpbmdXaGl0ZVNwYWNlKTogTW92ZWQgZnJvbSBIVE1MU2VsZWN0RWxlbWVudC5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KTogUmV0dXJucyBpbmRleCBmb3Ig
bWF0Y2guCisgICAgICAgICogaHRtbC9UeXBlQWhlYWQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFR5cGVBaGVhZERhdGFTb3VyY2UpOiBQcm92aWRlIHRoZSBkYXRhIGFi
b3V0IHRoZSBvcHRpb25zIHRoYXQgVHlwZUFoZWFkIHNob3VsZCBtYXRjaCBhZ2FpbnN0LgorICAg
ICAgICAoVHlwZUFoZWFkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjppbmRleE9mU2Vs
ZWN0ZWRPcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25Db3VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25BdEluZGV4KToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6CisgICAgICAgIChE
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KToKKwogMjAxMi0xMS0yOCAgTWlrZSBXZXN0ICA8
bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBhIHRlc3QgdG8gZW5zdXJlIHRoYXQg
J3NlYW1sZXNzJyBpZnJhbWVzIGRvIG5vdCBpbmhlcml0IGNvbnRlbnRlZGl0YWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggYjQwYjRhZDVmZDMwN2RkNzUzNzIxOTA3NDAzZDRhZjczYjZjNTYz
MS4uOTYxYzVkNTU5MzhjYzQ4MGI3ZTJhODUyNTZlMGY1MjczMjAzOTZkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTE0NjcsNiArMTQ2Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBo
dG1sL1RleHRJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAogICAgIGh0
bWwvVGltZVJhbmdlcy5jcHAKKyAgICBodG1sL1R5cGVBaGVhZC5jcHAKICAgICBodG1sL1VSTElu
cHV0VHlwZS5jcHAKICAgICBodG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAogICAgIGh0bWwvVmFs
aWRpdHlTdGF0ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhmYjYzNzg3
MDNlNjRjY2JiMGU2Y2RhZjI3NWVlYTNmODc5Mjg3NWQuLjI1ZGQzODhiZGE4NmJmYzNlM2U3ZmQ0
YzJiYzRlNGVkNmFmMTc0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzYy
NSw2ICszNjI1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1dlYlZUVFRva2VuLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
VG9rZW5pemVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVy
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9odG1sL1R5cGVBaGVhZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlw
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGM1N2Q1
OGIyMGNjNWY1ZTcyZWM4OTUxYWI2MTYyYjMxNzBhZmZhNWUuLjljYTIyZDlkZjI0YjNiNzM3ZDIw
NTYwODY3NjY0ODNhZDljNzY2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNjkwLDYgKzY5MCw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9U
ZXh0SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBcCisgICAgaHRt
bC9UeXBlQWhlYWQuY3BwIFwKICAgICBodG1sL1VSTElucHV0VHlwZS5jcHAgXAogICAgIGh0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuY3BwIFwKQEAg
LTE4NDQsNiArMTg0NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvU3RlcFJhbmdlLmggXAog
ICAgIGh0bWwvVGV4dERvY3VtZW50LmggXAogICAgIGh0bWwvVGltZVJhbmdlcy5oIFwKKyAgICBo
dG1sL1R5cGVBaGVhZC5oIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaCBcCiAgICAgaHRtbC9w
YXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDk1YTE3ZDhkZGIwNGI4ZjZhMmMwNTI1
YmM5NzNkM2ZlOTg2MGY0My4uZGFhYzRlOTU2MWYwZGZlNThmODgyMWVkNTg4MDc0MWU3MmRjNjJh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDI2NSw2ICs0MjY1LDggQEAKICAgICAgICAgICAgICdo
dG1sL1ZhbGlkaXR5U3RhdGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmNw
cCcsCiAgICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmgnLAorICAgICAgICAgICAgJ2h0
bWwvVHlwZUFoZWFkLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9UeXBlQWhlYWQuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMWQzYTIyMzMwZmI4MWE3YzBhYmMy
YWE2MzEwMWEwMWZmOWFhYjI0Li42ODZlNjI2N2RhM2U5OGI3ZGJmYzczOWM1MmI5NDhmMzI1NGJj
MTUzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNjM5ODksNiArNjM5ODksMTQgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVGltZVJh
bmdlcy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgCQk8RmlsZQorICAJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGh0bWxcVHlwZUFoZWFkLmNwcCIKKyAgCQkJPgorICAJCTwvRmlsZT4KKyAgCQk8RmlsZQor
ICAJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVHlwZUFoZWFkLmgiCisgIAkJCT4KKyAgCQk8L0Zp
bGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxVUkxJbnB1dFR5cGUuY3Bw
IgogCQkJCT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiMmQ1NzU2Y2M1YTYwMDVkNGRmOWNlZTc1MWZhOWQ4MmQ2YWZmZWNjLi42
NjllMjZlZDg5YWU0YjQwOGM5Zjk3YmQ4NGVjY2FiNTllNmM0NWY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODMxLDYgKzU4
MzEsOCBAQAogCQlDMzNFRTVDNTE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhL
ZXlJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMzM0VFNUMzMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0
VHlwZS5oICovOyB9OwogCQlDMzQ4NjEyMzE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFt
ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzM0
ODYxMjExNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAqLzsgfTsKIAkJQzM0
ODYxMjQxNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzQ4NjEyMjE1RkRFMjFFMDA3QTFDQzkg
LyogSW5wdXRUeXBlTmFtZXMuaCAqLzsgfTsKKwkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFCIC8q
IFR5cGVBaGVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMzc1RDdGQjE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCAqLzsgfTsKKwkJ
QzM3NUQ3RkUxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8q
IFR5cGVBaGVhZC5oICovOyB9OwogCQlDMzdDREVCRDE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JD
aG9vc2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMzdDREVCQzE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzNDRjE3QTQx
NUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5IC8q
IElkVGFyZ2V0T2JzZXJ2ZXIuY3BwICovOyB9OwogCQlDM0NGMTdBNTE1QjAwNjNGMDAyNzZEMzkg
LyogSWRUYXJnZXRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzNDRjE3QTExNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMy
MzksNiArMTMyNDEsOCBAQAogCQlDMzNFRTVDMzE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzM0ODYxMjExNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElucHV0VHlwZU5hbWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM0ODYxMjIxNUZERTIxRTAwN0ExQ0M5IC8qIElu
cHV0VHlwZU5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0VHlw
ZU5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMzNzVEN0ZCMTY2Mzk1MTkw
MDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVHlwZUFoZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzM3NUQ3
RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUeXBlQWhlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM3
Q0RFQkMxNDlFRjIwMzAwNDIwOTBEIC8qIENvbG9yQ2hvb3NlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xvckNob29zZXJDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2Jz
ZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRUYXJnZXRP
YnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMzQ0YxN0ExMTVCMDA2
M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IElkVGFyZ2V0T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE3ODkyLDYgKzE3ODk2LDggQEAKIAkJCQlFNDQ2MTM5RDBDRDYzMzEwMDBGQURBNzUgLyog
VGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJRTQ0NjEzOUUwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVS
YW5nZXMuaCAqLywKIAkJCQlFNDQ2MTM5RjBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5p
ZGwgKi8sCisJCQkJQzM3NUQ3RkIxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5jcHAgKi8s
CisJCQkJQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovLAogCQkJCUY1
NUIzREE5MTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIz
REFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLywKIAkJCQlGNUExNTQyNTEy
Nzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovLApAQCAtMjU4MzYsNiAr
MjU4NDIsNyBAQAogCQkJCUZCMkMxNUMzMTY1RDY0OUQwMDM5QzlGOCAvKiBDYWNoZWRTVkdEb2N1
bWVudFJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE3NDFBQUQxNjYzNjYwOTAwOEE1
QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVCOEI3
QzkxNjUyQzUyMjAwMzZFRjU1IC8qIEpTV2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQzM3NUQ3RkUxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yODkzOSw2ICsyODk0Niw3IEBACiAJCQkJNDQ3OTU4MDUxNjQzQjRC
MjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE1
QjhCN0M4MTY1MkM1MjIwMDM2RUY1NSAvKiBKU1dlYktpdENTU01peEZ1bmN0aW9uVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODZCQTc2NkUxNjY0MjdBODAwNUJFNUQxIC8qIEZyYW1lTG9h
ZFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFC
IC8qIFR5cGVBaGVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5jcHAKaW5kZXggMjNhYzU3YWY0YjBhZTUzNTZlODIxYjcwMGUyMzI2NWU5
MTIwMDhjOC4uZjQxZWUwZDA3NDVkNGMxOTdjM2Q1MGI3ODM3MjhiZDNiM2I1MmU5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTY0LDE2ICs2NCwxMyBA
QCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogLy8gVXBwZXIgbGltaXQgYWdyZWVkIHVwb24g
d2l0aCByZXByZXNlbnRhdGl2ZXMgb2YgT3BlcmEgYW5kIE1vemlsbGEuCiBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbWF4U2VsZWN0SXRlbXMgPSAxMDAwMDsKIAotc3RhdGljIGNvbnN0IERPTVRpbWVT
dGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKLQogSFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxT
ZWxlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZSh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKLSAgICAsIG1fbGFzdENoYXJUaW1l
KDApCisgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2xh
c3RPbkNoYW5nZUluZGV4KC0xKQogICAgICwgbV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleCgt
MSkKICAgICAsIG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgoLTEpCi0gICAgLCBtX3JlcGVhdGlu
Z0NoYXIoMCkKICAgICAsIG1faXNQcm9jZXNzaW5nVXNlckRyaXZlbkNoYW5nZShmYWxzZSkKICAg
ICAsIG1fbXVsdGlwbGUoZmFsc2UpCiAgICAgLCBtX2FjdGl2ZVNlbGVjdGlvblN0YXRlKGZhbHNl
KQpAQCAtMTQ3NCw4MiArMTQ3MSwzNCBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxhc3RTZWxl
Y3RlZExpc3RJbmRleCgpIGNvbnN0CiAgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgU3RyaW5n
IHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitpbnQgSFRNTFNl
bGVjdEVsZW1lbnQ6OmluZGV4T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0CiB7Ci0gICAgaW50IGxl
bmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKLQotICAgIGludCBpOwotICAgIGZvciAoaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoc3RyaW5nW2ldICE9IG5vQnJlYWtTcGFjZSAm
JiAoc3RyaW5nW2ldIDw9IDB4N0YgPyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tpXSkgOiAoZGlyZWN0
aW9uKHN0cmluZ1tpXSkgIT0gV2hpdGVTcGFjZU5ldXRyYWwpKSkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgIH0KLQotICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKGksIGxlbmd0aCAtIGkpOwor
ICAgIHJldHVybiBvcHRpb25Ub0xpc3RJbmRleChzZWxlY3RlZEluZGV4KCkpOwogfQogCi12b2lk
IEhUTUxTZWxlY3RFbGVtZW50Ojp0eXBlQWhlYWRGaW5kKEtleWJvYXJkRXZlbnQqIGV2ZW50KQor
aW50IEhUTUxTZWxlY3RFbGVtZW50OjpvcHRpb25Db3VudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGV2
ZW50LT50aW1lU3RhbXAoKSA8IG1fbGFzdENoYXJUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RDaGFyVGlt
ZTsKLSAgICBtX2xhc3RDaGFyVGltZSA9IGV2ZW50LT50aW1lU3RhbXAoKTsKLQotICAgIFVDaGFy
IGMgPSBldmVudC0+Y2hhckNvZGUoKTsKLQotICAgIFN0cmluZyBwcmVmaXg7Ci0gICAgaW50IHNl
YXJjaFN0YXJ0T2Zmc2V0ID0gMTsKLSAgICBpZiAoZGVsdGEgPiB0eXBlQWhlYWRUaW1lb3V0KSB7
Ci0gICAgICAgIHByZWZpeCA9IFN0cmluZygmYywgMSk7Ci0gICAgICAgIG1fdHlwZWRTdHJpbmcg
PSBwcmVmaXg7Ci0gICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgbV90eXBlZFN0cmluZy5hcHBlbmQoYyk7Ci0KLSAgICAgICAgaWYgKGMgPT0gbV9yZXBl
YXRpbmdDaGFyKSB7Ci0gICAgICAgICAgICAvLyBUaGUgdXNlciBpcyBsaWtlbHkgdHJ5aW5nIHRv
IGN5Y2xlIHRocm91Z2ggYWxsIHRoZSBpdGVtcyBzdGFydGluZwotICAgICAgICAgICAgLy8gd2l0
aCB0aGlzIGNoYXJhY3Rlciwgc28ganVzdCBzZWFyY2ggb24gdGhlIGNoYXJhY3Rlci4KLSAgICAg
ICAgICAgIHByZWZpeCA9IFN0cmluZygmYywgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOwotICAgICAgICAgICAgcHJlZml4ID0gbV90eXBlZFN0
cmluZzsKLSAgICAgICAgICAgIHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKLSAgICAgICAgfQotICAg
IH0KKyAgICByZXR1cm4gbGlzdEl0ZW1zKCkuc2l6ZSgpOworfQogCitTdHJpbmcgSFRNTFNlbGVj
dEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdAorewogICAgIGNvbnN0IFZl
Y3RvcjxIVE1MRWxlbWVudCo+JiBpdGVtcyA9IGxpc3RJdGVtcygpOwotICAgIGludCBpdGVtQ291
bnQgPSBpdGVtcy5zaXplKCk7Ci0gICAgaWYgKGl0ZW1Db3VudCA8IDEpCi0gICAgICAgIHJldHVy
bjsKKyAgICAKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2luZGV4XTsKKyAgICBp
ZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVtZW50
KGVsZW1lbnQpLT5kaXNhYmxlZCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0
dXJuIHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdy
b3VwTGFiZWwoKTsKK30KIAotICAgIGludCBzZWxlY3RlZCA9IHNlbGVjdGVkSW5kZXgoKTsKLSAg
ICBpbnQgaW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleChzZWxlY3RlZCA+PSAwID8gc2VsZWN0ZWQg
OiAwKSArIHNlYXJjaFN0YXJ0T2Zmc2V0Owordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFo
ZWFkRmluZChLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBpbnQgaW5kZXggPSBtX3R5cGVB
aGVhZC5oYW5kbGVFdmVudChldmVudCwgVHlwZUFoZWFkOjpNYXRjaFByZWZpeCB8IFR5cGVBaGVh
ZDo6Q3ljbGVGaXJzdENoYXIpOwogICAgIGlmIChpbmRleCA8IDApCiAgICAgICAgIHJldHVybjsK
LSAgICBpbmRleCAlPSBpdGVtQ291bnQ7Ci0KLSAgICAvLyBDb21wdXRlIGEgY2FzZS1mb2xkZWQg
Y29weSBvZiB0aGUgcHJlZml4IHN0cmluZyBiZWZvcmUgYmVnaW5uaW5nIHRoZSBzZWFyY2ggZm9y
Ci0gICAgLy8gYSBtYXRjaGluZyBlbGVtZW50LiBUaGlzIGNvZGUgdXNlcyBmb2xkQ2FzZSB0byB3
b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0Ci0gICAgLy8gU3RyaW5nOjpzdGFydFdpdGggZG9lcyBu
b3QgZm9sZCBub24tQVNDSUkgY2hhcmFjdGVycy4gVGhpcyBjb2RlIGNhbiBiZSBjaGFuZ2VkCi0g
ICAgLy8gdG8gdXNlIHN0YXJ0V2l0aCBvbmNlIHRoYXQgaXMgZml4ZWQuCi0gICAgU3RyaW5nIHBy
ZWZpeFdpdGhDYXNlRm9sZGVkKHByZWZpeC5mb2xkQ2FzZSgpKTsKLSAgICBmb3IgKGludCBpID0g
MDsgaSA8IGl0ZW1Db3VudDsgKytpLCBpbmRleCA9IChpbmRleCArIDEpICUgaXRlbUNvdW50KSB7
Ci0gICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaXRlbXNbaW5kZXhdOwotICAgICAgICBp
ZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVtZW50
KGVsZW1lbnQpLT5kaXNhYmxlZCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAg
Ly8gRm9sZCB0aGUgb3B0aW9uIHN0cmluZyBhbmQgY2hlY2sgaWYgaXRzIHByZWZpeCBpcyBlcXVh
bCB0byB0aGUgZm9sZGVkIHByZWZpeC4KLSAgICAgICAgU3RyaW5nIHRleHQgPSB0b0hUTUxPcHRp
b25FbGVtZW50KGVsZW1lbnQpLT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7Ci0g
ICAgICAgIGlmIChzdHJpcExlYWRpbmdXaGl0ZVNwYWNlKHRleHQpLmZvbGRDYXNlKCkuc3RhcnRz
V2l0aChwcmVmaXhXaXRoQ2FzZUZvbGRlZCkpIHsKLSAgICAgICAgICAgIHNlbGVjdE9wdGlvbihs
aXN0VG9PcHRpb25JbmRleChpbmRleCksIERlc2VsZWN0T3RoZXJPcHRpb25zIHwgRGlzcGF0Y2hD
aGFuZ2VFdmVudCB8IFVzZXJEcml2ZW4pOwotICAgICAgICAgICAgaWYgKCF1c2VzTWVudUxpc3Qo
KSkKLSAgICAgICAgICAgICAgICBsaXN0Qm94T25DaGFuZ2UoKTsKLQotICAgICAgICAgICAgc2V0
T3B0aW9uc0NoYW5nZWRPblJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBzZXROZWVkc1N0eWxlUmVj
YWxjKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9CisgICAgc2VsZWN0
T3B0aW9uKGxpc3RUb09wdGlvbkluZGV4KGluZGV4KSwgRGVzZWxlY3RPdGhlck9wdGlvbnMgfCBE
aXNwYXRjaENoYW5nZUV2ZW50IHwgVXNlckRyaXZlbik7CisgICAgaWYgKCF1c2VzTWVudUxpc3Qo
KSkKKyAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7CiB9CiAKIE5vZGU6Okluc2VydGlvbk5vdGlm
aWNhdGlvblJlcXVlc3QgSFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJO
b2RlKiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aAppbmRleCA2ZDg4ZGExNzg4M2UyMzUzOTVlNWJhNjlmNTMzZDdhYzU3ZTIwNDY1Li5hMmYyNjUw
ZjYwMzA2Zjg3NGU3MGE4NDUyMGU4ZjY5MTFiZTQ0MTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5oCkBAIC0yOSwxMyArMjksMTQgQEAKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuaCIKICNpbmNsdWRl
ICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJUeXBlQWhlYWQuaCIKICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTE9w
dGlvbkVsZW1lbnQ7CiAKLWNsYXNzIEhUTUxTZWxlY3RFbGVtZW50IDogcHVibGljIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGUgeworY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQgOiBwdWJs
aWMgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSwgcHVibGljIFR5cGVBaGVhZERhdGFT
b3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50
Kik7CiAKQEAgLTEwMyw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gRm9yIHVzZSBp
biB0aGUgaW1wbGVtZW50YXRpb24gb2YgSFRNTE9wdGlvbkVsZW1lbnQuCiAgICAgdm9pZCBvcHRp
b25TZWxlY3Rpb25TdGF0ZUNoYW5nZWQoSFRNTE9wdGlvbkVsZW1lbnQqLCBib29sIG9wdGlvbklz
U2VsZWN0ZWQpOwotICAgIAorCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKQEAgLTE4
MSwxNyArMTgyLDIwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBO
b2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKICAgICB2aXJ0
dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBmYWxzZTsgfQogCisgICAgLy8gVHlwZUFoZWFkRGF0YVNvdXJjZSBmdW5jdGlvbnMuCisgICAg
dmlydHVhbCBpbnQgaW5kZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBpbnQgb3B0aW9uQ291bnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0
cmluZyBvcHRpb25BdEluZGV4KGludCBpbmRleCkgY29uc3QgT1ZFUlJJREU7CisKICAgICAvLyBt
X2xpc3RJdGVtcyBjb250YWlucyBIVE1MT3B0aW9uRWxlbWVudCwgSFRNTE9wdEdyb3VwRWxlbWVu
dCwgYW5kIEhUTUxIUkVsZW1lbnQgb2JqZWN0cy4KICAgICBtdXRhYmxlIFZlY3RvcjxIVE1MRWxl
bWVudCo+IG1fbGlzdEl0ZW1zOwogICAgIFZlY3Rvcjxib29sPiBtX2xhc3RPbkNoYW5nZVNlbGVj
dGlvbjsKICAgICBWZWN0b3I8Ym9vbD4gbV9jYWNoZWRTdGF0ZUZvckFjdGl2ZVNlbGVjdGlvbjsK
LSAgICBET01UaW1lU3RhbXAgbV9sYXN0Q2hhclRpbWU7Ci0gICAgU3RyaW5nIG1fdHlwZWRTdHJp
bmc7CisgICAgVHlwZUFoZWFkIG1fdHlwZUFoZWFkOwogICAgIGludCBtX3NpemU7CiAgICAgaW50
IG1fbGFzdE9uQ2hhbmdlSW5kZXg7CiAgICAgaW50IG1fYWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5k
ZXg7CiAgICAgaW50IG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXg7Ci0gICAgVUNoYXIgbV9yZXBl
YXRpbmdDaGFyOwogICAgIGJvb2wgbV9pc1Byb2Nlc3NpbmdVc2VyRHJpdmVuQ2hhbmdlOwogICAg
IGJvb2wgbV9tdWx0aXBsZTsKICAgICBib29sIG1fYWN0aXZlU2VsZWN0aW9uU3RhdGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1R5cGVBaGVhZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc5ZDdjMDY3M2Y5NDJmMDNhZjFiMTky
Mzk2NzQ0OGIyN2U3OTkzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VHlwZUFoZWFkLmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5
cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAo
QykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAo
QykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtv
diAoYXBAbnlwb3AuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBlQWhlYWQuaCIKKworI2luY2x1ZGUgIktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgor
I2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdURjo6
VW5pY29kZTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBlQWhlYWQ6OlR5cGVBaGVhZChU
eXBlQWhlYWREYXRhU291cmNlKiBkYXRhU291cmNlKQorICAgIDogbV9kYXRhU291cmNlKGRhdGFT
b3VyY2UpCisgICAgLCBtX2xhc3RUeXBlVGltZSgwKQorICAgICwgbV9yZXBlYXRpbmdDaGFyKDAp
Cit7Cit9CisKK3N0YXRpYyBjb25zdCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91dCA9IDEw
MDA7CisKK3N0YXRpYyBTdHJpbmcgc3RyaXBMZWFkaW5nV2hpdGVTcGFjZShjb25zdCBTdHJpbmcm
IHN0cmluZykKK3sKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisKKyAg
ICB1bnNpZ25lZCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAg
ICBpZiAoc3RyaW5nW2ldICE9IG5vQnJlYWtTcGFjZSAmJiAoc3RyaW5nW2ldIDw9IDB4N0YgPyAh
aXNBU0NJSVNwYWNlKHN0cmluZ1tpXSkgOiAoZGlyZWN0aW9uKHN0cmluZ1tpXSkgIT0gV2hpdGVT
cGFjZU5ldXRyYWwpKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBz
dHJpbmcuc3Vic3RyaW5nKGksIGxlbmd0aCAtIGkpOworfQorCitpbnQgVHlwZUFoZWFkOjpoYW5k
bGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQor
eworICAgIGlmIChldmVudC0+dGltZVN0YW1wKCkgPCBtX2xhc3RUeXBlVGltZSkKKyAgICAgICAg
cmV0dXJuIC0xOworCisgICAgaW50IG9wdGlvbkNvdW50ID0gbV9kYXRhU291cmNlLT5vcHRpb25D
b3VudCgpOworICAgIERPTVRpbWVTdGFtcCBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1f
bGFzdFR5cGVUaW1lOworICAgIG1fbGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwor
CisgICAgVUNoYXIgYyA9IGV2ZW50LT5jaGFyQ29kZSgpOworCisgICAgaWYgKGRlbHRhID4gdHlw
ZUFoZWFkVGltZW91dCkKKyAgICAgICAgbV9idWZmZXIuY2xlYXIoKTsKKyAgICBtX2J1ZmZlci5h
cHBlbmQoYyk7CisKKyAgICBpZiAob3B0aW9uQ291bnQgPCAxKQorICAgICAgICByZXR1cm4gLTE7
CisKKyAgICBpbnQgc2VhcmNoU3RhcnRPZmZzZXQgPSAxOworICAgIFN0cmluZyBwcmVmaXg7Cisg
ICAgaWYgKG1hdGNoTW9kZSAmIEN5Y2xlRmlyc3RDaGFyICYmIGMgPT0gbV9yZXBlYXRpbmdDaGFy
KSB7CisgICAgICAgIC8vIFRoZSB1c2VyIGlzIGxpa2VseSB0cnlpbmcgdG8gY3ljbGUgdGhyb3Vn
aCBhbGwgdGhlIGl0ZW1zIHN0YXJ0aW5nCisgICAgICAgIC8vIHdpdGggdGhpcyBjaGFyYWN0ZXIs
IHNvIGp1c3Qgc2VhcmNoIG9uIHRoZSBjaGFyYWN0ZXIuCisgICAgICAgIHByZWZpeCA9IFN0cmlu
ZygmYywgMSk7CisgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7CisgICAgfSBlbHNlIGlmICht
YXRjaE1vZGUgJiBNYXRjaFByZWZpeCkgeworICAgICAgICBwcmVmaXggPSBtX2J1ZmZlci50b1N0
cmluZygpOworICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAg
ICBtX3JlcGVhdGluZ0NoYXIgPSAwOworICAgICAgICAgICAgc2VhcmNoU3RhcnRPZmZzZXQgPSAw
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7CisgICAg
fQorCisgICAgaWYgKCFwcmVmaXguaXNFbXB0eSgpKSB7CisgICAgICAgIGludCBzZWxlY3RlZCA9
IG1fZGF0YVNvdXJjZS0+aW5kZXhPZlNlbGVjdGVkT3B0aW9uKCk7CisgICAgICAgIGludCBpbmRl
eCA9IChzZWxlY3RlZCA8IDAgPyAwIDogc2VsZWN0ZWQpICsgc2VhcmNoU3RhcnRPZmZzZXQ7Cisg
ICAgICAgIGluZGV4ICU9IG9wdGlvbkNvdW50OworCisgICAgICAgIC8vIENvbXB1dGUgYSBjYXNl
LWZvbGRlZCBjb3B5IG9mIHRoZSBwcmVmaXggc3RyaW5nIGJlZm9yZSBiZWdpbm5pbmcgdGhlIHNl
YXJjaCBmb3IKKyAgICAgICAgLy8gYSBtYXRjaGluZyBlbGVtZW50LiBUaGlzIGNvZGUgdXNlcyBm
b2xkQ2FzZSB0byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0CisgICAgICAgIC8vIFN0cmluZzo6
c3RhcnRXaXRoIGRvZXMgbm90IGZvbGQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIFRoaXMgY29kZSBj
YW4gYmUgY2hhbmdlZAorICAgICAgICAvLyB0byB1c2Ugc3RhcnRXaXRoIG9uY2UgdGhhdCBpcyBm
aXhlZC4KKyAgICAgICAgU3RyaW5nIHByZWZpeFdpdGhDYXNlRm9sZGVkKHByZWZpeC5mb2xkQ2Fz
ZSgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcHRpb25Db3VudDsgKytpLCBpbmRl
eCA9IChpbmRleCArIDEpICUgb3B0aW9uQ291bnQpIHsKKyAgICAgICAgICAgIC8vIEZvbGQgdGhl
IG9wdGlvbiBzdHJpbmcgYW5kIGNoZWNrIGlmIGl0cyBwcmVmaXggaXMgZXF1YWwgdG8gdGhlIGZv
bGRlZCBwcmVmaXguCisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IG1fZGF0YVNvdXJjZS0+b3B0
aW9uQXRJbmRleChpbmRleCk7CisgICAgICAgICAgICBpZiAoc3RyaXBMZWFkaW5nV2hpdGVTcGFj
ZSh0ZXh0KS5mb2xkQ2FzZSgpLnN0YXJ0c1dpdGgocHJlZml4V2l0aENhc2VGb2xkZWQpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICht
YXRjaE1vZGUgJiBNYXRjaEluZGV4KSB7CisgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAgICAg
ICAgaW50IGluZGV4ID0gbV9idWZmZXIudG9TdHJpbmcoKS50b0ludCgmb2spOworICAgICAgICBp
ZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50KQorICAgICAgICAgICAgcmV0dXJu
IGluZGV4IC0gMTsKKyAgICB9CisgICAgcmV0dXJuIC0xOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTVkNjNkZDA3OTEyZjNh
YzY3OGVjZTk1YzE0NWNjNGI1ZDQ1ZjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UeXBlQWhlYWQuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBUeXBlQWhlYWRfaAorI2RlZmluZSBUeXBlQWhlYWRfaAorCisjaW5jbHVkZSAiRE9N
VGltZVN0YW1wLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEtleWJvYXJkRXZlbnQ7CisKK2NsYXNzIFR5cGVBaGVhZERhdGFTb3VyY2UgeworcHVibGljOgor
ICAgIHZpcnR1YWwgflR5cGVBaGVhZERhdGFTb3VyY2UoKSB7IH0KKworICAgIHZpcnR1YWwgaW50
IGluZGV4T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGludCBvcHRp
b25Db3VudCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBvcHRpb25BdEluZGV4KGlu
dCBpbmRleCkgY29uc3QgPSAwOworfTsKKworY2xhc3MgVHlwZUFoZWFkIHsKK3B1YmxpYzoKKyAg
ICBUeXBlQWhlYWQoVHlwZUFoZWFkRGF0YVNvdXJjZSopOworCisgICAgZW51bSBNb2RlRmxhZyB7
CisgICAgICAgIE1hdGNoUHJlZml4ID0gMSA8PCAwLAorICAgICAgICBDeWNsZUZpcnN0Q2hhciA9
IDEgPDwgMSwKKyAgICAgICAgTWF0Y2hJbmRleCA9IDEgPDwgMiwKKyAgICB9OworICAgIHR5cGVk
ZWYgdW5zaWduZWQgTWF0Y2hNb2RlRmxhZ3M7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbmRleCBm
b3IgdGhlIG1hdGNoaW5nIG9wdGlvbi4KKyAgICBpbnQgaGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVu
dCosIE1hdGNoTW9kZUZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBUeXBlQWhlYWREYXRhU291cmNl
KiBtX2RhdGFTb3VyY2U7CisgICAgRE9NVGltZVN0YW1wIG1fbGFzdFR5cGVUaW1lOworICAgIFVD
aGFyIG1fcmVwZWF0aW5nQ2hhcjsKKyAgICBNYXRjaE1vZGVGbGFncyBtX21hdGNoTW9kZTsKKyAg
ICBTdHJpbmdCdWlsZGVyIG1fYnVmZmVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gVHlwZUFoZWFkX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKaW5kZXggOGVmNGRh
YzJmZTc5MTgyMWMwNmUwZDFiNGU5MTBmNjdkNTg2ZTcyYi4uM2U4MzUwOTA5M2IzZjRkNWJjMGEx
MmUxYjVhZWM0MTc0YmQ4ZTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1
LDcgQEAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEYKICAgICAsIG1fc3ltYm9scyhzeW1ib2xzKQog
ICAgICwgbV92aXNpYmxlRW1wdHlWYWx1ZShtYWtlVmlzaWJsZUVtcHR5VmFsdWUoc3ltYm9scykp
CiAgICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCisgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQogewog
ICAgIEFTU0VSVCghc3ltYm9scy5pc0VtcHR5KCkpOwogICAgIHNldEhhc0N1c3RvbUNhbGxiYWNr
cygpOwpAQCAtODIsMTIgKzgzLDExIEBAIHZvaWQgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBrZXlib2FyZEV2CiAgICAgICAg
IHJldHVybjsKIAogICAgIGtleWJvYXJkRXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Ci0gICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgbV9zeW1ib2xzLnNpemUoKTsgKytpbmRl
eCkgewotICAgICAgICBpZiAoIW1fc3ltYm9sc1tpbmRleF0uaXNFbXB0eSgpICYmIFdURjo6VW5p
Y29kZTo6dG9Mb3dlcihtX3N5bWJvbHNbaW5kZXhdWzBdKSA9PSBjaGFyQ29kZSkgewotICAgICAg
ICAgICAgc2V0VmFsdWVBc0ludGVnZXIoaW5kZXgsIERpc3BhdGNoRXZlbnQpOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQorCisgICAgaW50IGluZGV4ID0gbV90eXBlQWhl
YWQuaGFuZGxlRXZlbnQoa2V5Ym9hcmRFdmVudCwgVHlwZUFoZWFkOjpNYXRjaFByZWZpeCB8IFR5
cGVBaGVhZDo6Q3ljbGVGaXJzdENoYXIgfCBUeXBlQWhlYWQ6Ok1hdGNoSW5kZXgpOworICAgIGlm
IChpbmRleCA8IDApCisgICAgICAgIHJldHVybjsKKyAgICBzZXRWYWx1ZUFzSW50ZWdlcihpbmRl
eCwgRGlzcGF0Y2hFdmVudCk7CiB9CiAKIGJvb2wgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dDo6aGFzVmFsdWUoKSBjb25zdApAQCAtMTUwLDYgKzE1MCwyMSBAQCBTdHJpbmcgRGF0ZVRpbWVT
eW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gaGFz
VmFsdWUoKSA/IG1fc3ltYm9sc1ttX3NlbGVjdGVkSW5kZXhdIDogdmlzaWJsZUVtcHR5VmFsdWUo
KTsKIH0KIAoraW50IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OmluZGV4T2ZTZWxlY3Rl
ZE9wdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2VsZWN0ZWRJbmRleDsKK30KKworaW50
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Om9wdGlvbkNvdW50KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9zeW1ib2xzLnNpemUoKTsKK30KKworU3RyaW5nIERhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdAoreworICAgIHJldHVy
biBtX3N5bWJvbHNbaW5kZXhdOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xp
Y0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1i
b2xpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDVjNmIwNWFjYmFmNDdiY2Q0ZDUwYzQxNTRjNmI3N2E4
YTJkZmIyZmQuLmFhNmM4ZGEyMWNiMWZiMmJiYjZjMDdhZThjYjNmNjQ1YTMyOWE2ZWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmgKQEAgLTI4LDEyICsyOCwxMyBAQAogCiAjaWYgRU5BQkxFKElOUFVUX01V
TFRJUExFX0ZJRUxEU19VSSkKICNpbmNsdWRlICJEYXRlVGltZUZpZWxkRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlR5cGVBaGVhZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIERhdGVUaW1l
U3ltYm9saWNGaWVsZEVsZW1lbnQgcmVwcmVzZW50cyBub24tbnVtZXJpYyBmaWVsZCBvZiBkYXRh
IHRpbWUKIC8vIGZvcm1hdCwgc3VjaCBhczogQU0vUE0sIGFuZCBtb250aC4KLWNsYXNzIERhdGVU
aW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1lbnQgewor
Y2xhc3MgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCA6IHB1YmxpYyBEYXRlVGltZUZpZWxk
RWxlbWVudCwgcHVibGljIFR5cGVBaGVhZERhdGFTb3VyY2UgewogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOwogCiBwcm90ZWN0ZWQ6CkBAIC01
OSwxMiArNjAsMTggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0
IE9WRVJSSURFIEZJTkFMOwogCisgICAgLy8gVHlwZUFoZWFkRGF0YVNvdXJjZSBmdW5jdGlvbnMu
CisgICAgdmlydHVhbCBpbnQgaW5kZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBpbnQgb3B0aW9uQ291bnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIFN0cmluZyBvcHRpb25BdEluZGV4KGludCBpbmRleCkgY29uc3QgT1ZFUlJJREU7CisKICAg
ICBjb25zdCBWZWN0b3I8U3RyaW5nPiBtX3N5bWJvbHM7CiAKICAgICAvLyBXZSB1c2UgQXRvbWlj
U3RyaW5nIHRvIHNoYXJlIHZpc2libGUgZW1wdHkgdmFsdWUgYW1vbmcgbXVsdGlwbGUKICAgICAv
LyBEYXRlVGltZUVkaXRFbGVtZW50cyBpbiB0aGUgcGFnZS4KICAgICBjb25zdCBBdG9taWNTdHJp
bmcgbV92aXNpYmxlRW1wdHlWYWx1ZTsKICAgICBpbnQgbV9zZWxlY3RlZEluZGV4OworICAgIFR5
cGVBaGVhZCBtX3R5cGVBaGVhZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAyNTgxMzU3NjhhZjhjNjg0OTNlNTU5NDI4MDFhOWRkZmUyNWRhYTQ2Li5iMTU4ODgzMmQ3ZThk
YjcwMzFmNTFkZDY0MjFmMjcwMTVhMDdmYjFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTIt
MTEtMjYgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQmV0
dGVyIHR5cGUgYWhlYWQgZm9yIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzAzMQorCisgICAgICAg
IFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9tb250aC1t
dWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9u
dGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sOiBBZGRlZCB0ZXN0cyBmb3Ig
dHlwZWFoZWFkLgorCiAyMDEyLTExLTI4ICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgQWRkIGEgdGVzdCB0byBlbnN1cmUgdGhhdCAnc2VhbWxlc3MnIGlmcmFtZXMg
ZG8gbm90IGluaGVyaXQgY29udGVudGVkaXRhYmxlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtl
eWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRo
LW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4
cGVjdGVkLnR4dAppbmRleCA1MmM2NTdmNzQ3ZjVhOTI4MGM5NWRjZWYwOWE5NmU5Nzk2ZWY0ZDRj
Li4xNGM5NjQ4YTcxYTY1MDBkYTlkNmJlMTcwZTYxNmJiM2UzNjA3ZTA5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBs
ZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5
Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMTUsNyArMTUsNyBAQCBCYWNrc3BhY2UgLSBN
YWtlIHZhbHVlIGVtcHR5CiA9PSBEaWdpdCBrZXlzID09CiBGQUlMIGlucHV0LnZhbHVlIHNob3Vs
ZCBiZSAwMDEyLTA5LiBXYXMgMDExMi0wOS4KID09IExlZnQvUmlnaHQga2V5cyA9PQotRkFJTCBp
bnB1dC52YWx1ZSBzaG91bGQgYmUgMDAwNS0wNi4gV2FzIDAwMDUtMDkuCitQQVNTIGlucHV0LnZh
bHVlIGlzICIwMDA1LTA2IgogUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmlkIGlzICJpbnB1
dCIKID09IFVwL0Rvd24ga2V5cyA9PQogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0xMCIKQEAg
LTQ5LDYgKzQ5LDIzIEBAIFBBU1MgaW5wdXQudmFsdWUgaXMgIiIKID09IFR5cGVhaGVhZCA9PQog
UEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMS0xMiIKIFBBU1MgaW5wdXQudmFsdWUgaXMgIjAwMDIt
MTIiCis9PSBUeXBlYWhlYWQgY3ljbGUgZmlyc3QgY2hhcmFjdGVyID09CitQQVNTIGlucHV0LnZh
bHVlIGlzICIyMDEyLTAxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNiIKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIjIwMTItMDciCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTAxIgorUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wMSIKKz09IFR5cGVhaGVhZCBwcmVmaXggbWF0Y2ggPT0K
K1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEy
LTAzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNSIKK1BBU1MgaW5wdXQudmFsdWUgaXMg
IjIwMTItMDUiCis9PSBUeXBlYWhlYWQgaW5kZXggbWF0Y2ggPT0KK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjIwMTItMDEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEyIgorUEFTUyBpbnB1dC52
YWx1ZSBpcyAiMjAxMi0xMiIKKz09IFR5cGVhaGVhZCBzaG91bGQgc2VhcmNoIGZyb20gY3VycmVu
dCBzZWxlY3Rpb24gPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDYiCiA9PSBSVEwgTGVm
dC9SaWdodCBrZXlzID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEwIgogUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMDAwMi0xMCIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
bW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVu
dHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21v
bnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbAppbmRleCAzMjEzNDQ4YWM1
OTFkOWQ0YmVmYmE3OTUzZTczZmQzMGNjNDM3OWM4Li41NjAzNmI3Mzc3NmE3N2Q2M2MyZjVhNzFj
M2FmMTE0ZWM0NWEyM2JlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRo
LW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9u
dGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCkBAIC0xNzEsNiArMTcxLDQw
IEBAIGtleURvd24oJ3JpZ2h0QXJyb3cnKTsKIGtleURvd24oJzInKTsKIHNob3VsZEJlRXF1YWxU
b1N0cmluZygnaW5wdXQudmFsdWUnLCAnMDAwMi0xMicpOwogCitiZWdpblRlc3QoJ1R5cGVhaGVh
ZCBjeWNsZSBmaXJzdCBjaGFyYWN0ZXInLCAnMjAxMi0wOScpOwora2V5RG93bignaicpOyAvLyAg
ICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVl
JywgJzIwMTItMDEnKTsKK2tleURvd24oJ2onKTsgLy8gICAgICAgICAgLT4gW0p1bl0gMjAxMgor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA2Jyk7CitrZXlEb3du
KCdqJyk7IC8vICAgICAgICAgIC0+IFtKdWxdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
aW5wdXQudmFsdWUnLCAnMjAxMi0wNycpOwora2V5RG93bignaicpOyAvLyAgICAgICAgICAtPiBb
SmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDEn
KTsKK2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW0phbl0gMjAxMgorc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTAxJyk7CisKK2JlZ2luVGVzdCgnVHlwZWFo
ZWFkIHByZWZpeCBtYXRjaCcsICcyMDEyLTA5Jyk7CitrZXlEb3duKCdtJyk7IC8vICAgICAgICAg
IC0+IFtNYXJdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAx
Mi0wMycpOwora2V5RG93bignYScpOyAvLyAgICAgICAgICAtPiBbTWFyXSAyMDEyCitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDMnKTsKK2tleURvd24oJ3knKTsg
Ly8gICAgICAgICAgLT4gW01heV0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52
YWx1ZScsICcyMDEyLTA1Jyk7CitrZXlEb3duKCd4Jyk7IC8vICAgICAgICAgIC0+IFtNYXldIDIw
MTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNScpOworCiti
ZWdpblRlc3QoJ1R5cGVhaGVhZCBpbmRleCBtYXRjaCcsICcyMDEyLTA5Jyk7CitrZXlEb3duKCcx
Jyk7IC8vICAgICAgICAgIC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5w
dXQudmFsdWUnLCAnMjAxMi0wMScpOwora2V5RG93bignMicpOyAvLyAgICAgICAgICAtPiBbRGVj
XSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMTInKTsK
K2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW0RlY10gMjAxMgorc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTEyJyk7CisKK2JlZ2luVGVzdCgnVHlwZWFoZWFk
IHNob3VsZCBzZWFyY2ggZnJvbSBjdXJyZW50IHNlbGVjdGlvbicsICcyMDEyLTAxJyk7CitrZXlE
b3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKdW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNicpOworCiAvLyBUaGUgdGVzdHMgaW4gdGhlIGZvbGxv
d2luZyBibG9jayBmYWlsIG9uIHBsYXRmb3JtcyB3aXRob3V0IHRoZQogLy8gbGFuZy1hdHRyaWJ1
dGUtYXdhcmUtZm9ybS1jb250cm9sLVVJIGZlYXR1cmUuCiBpbnB1dC5zZXRBdHRyaWJ1dGUoImxh
bmciLCAiaGUtaWwiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176699</attachid>
            <date>2012-11-29 04:02:16 -0800</date>
            <delta_ts>2012-11-29 20:53:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103031-20121129205949.patch</filename>
            <type>text/plain</type>
            <size>32016</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U2MDIzNzkzOTYzOWU3
MmYyMjA3MmY1YzkxMWE4ODg5MjRlODEzYS4uNjhiNGQ0OGJmMWFlZGJiMjk0YzBkZjkyNzBkMTdk
NTY3NWE2N2M4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTExLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0eXBlIGFo
ZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBLZW50IFRhbXVyYS4KKworICAgICAgICBUaGlzIGN1dHMgb3V0IHRoZSB0eXBlIGFoZWFkIGNv
ZGUgdGhhdCB3aWxsIGJlIHVzZWQgYnkgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgYW5kIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgaW50byBhIFR5cGVBaGVhZCBjbGFzcy4gVGhpcyB3
aWxsCisgICAgICAgIGltcHJvdmUgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB0eXBlIGFo
ZWFkIHdoaWNoIHdhcyBmaXJzdAorICAgICAgICBjaGFyYWN0ZXIgbWF0Y2ggb25seSwgYnkgYWRk
aW5nIGN5Y2xpbmcsIHByZWZpeCBtYXRjaCBhbmQgaW5kZXggbnVtYmVyCisgICAgICAgIG1hdGNo
LgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIG1vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2Fy
ZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIFR5
cGVBaGVhZC57aCxjcHB9CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICog
V2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBEaXR0by4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogRGl0dG8uCisgICAgICAgICogaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aW5kZXhPZlNlbGVjdGVkT3B0aW9uKTogUmV0dXJu
cyBpbmRleCBvZiBjdXJyZW50IHNlbGVjdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50OjpvcHRpb25Db3VudCk6IFJldHVybnMgdG90YWwgbnVtYmVyIG9mIG9wdGlvbnMu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uQXRJbmRleCk6IFJl
dHVybnMgb3B0aW9uIGF0IGluZGV4LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1l
bnQ6OnR5cGVBaGVhZEZpbmQpOiBVc2UgVHlwZUFoZWFkLgorICAgICAgICAqIGh0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxTZWxlY3RFbGVtZW50KToKKyAgICAgICAgKiBo
dG1sL1R5cGVBaGVhZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBlQWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpzdHJpcExl
YWRpbmdXaGl0ZVNwYWNlKTogTW92ZWQgZnJvbSBIVE1MU2VsZWN0RWxlbWVudC5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KTogUmV0dXJucyBpbmRleCBmb3Ig
bWF0Y2guCisgICAgICAgICogaHRtbC9UeXBlQWhlYWQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFR5cGVBaGVhZERhdGFTb3VyY2UpOiBQcm92aWRlIHRoZSBkYXRhIGFi
b3V0IHRoZSBvcHRpb25zIHRoYXQgVHlwZUFoZWFkIHNob3VsZCBtYXRjaCBhZ2FpbnN0LgorICAg
ICAgICAoVHlwZUFoZWFkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjppbmRleE9mU2Vs
ZWN0ZWRPcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25Db3VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25BdEluZGV4KToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6CisgICAgICAgIChE
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KToKKwogMjAxMi0xMS0yOCAgTWlrZSBXZXN0ICA8
bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBhIHRlc3QgdG8gZW5zdXJlIHRoYXQg
J3NlYW1sZXNzJyBpZnJhbWVzIGRvIG5vdCBpbmhlcml0IGNvbnRlbnRlZGl0YWJsZS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKaW5kZXggYjQwYjRhZDVmZDMwN2RkNzUzNzIxOTA3NDAzZDRhZjczYjZjNTYz
MS4uOTYxYzVkNTU5MzhjYzQ4MGI3ZTJhODUyNTZlMGY1MjczMjAzOTZkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKQEAgLTE0NjcsNiArMTQ2Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBo
dG1sL1RleHRJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAogICAgIGh0
bWwvVGltZVJhbmdlcy5jcHAKKyAgICBodG1sL1R5cGVBaGVhZC5jcHAKICAgICBodG1sL1VSTElu
cHV0VHlwZS5jcHAKICAgICBodG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAogICAgIGh0bWwvVmFs
aWRpdHlTdGF0ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDhmYjYzNzg3
MDNlNjRjY2JiMGU2Y2RhZjI3NWVlYTNmODc5Mjg3NWQuLjI1ZGQzODhiZGE4NmJmYzNlM2U3ZmQ0
YzJiYzRlNGVkNmFmMTc0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxl
Lmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzYy
NSw2ICszNjI1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1s
L3RyYWNrL1dlYlZUVFRva2VuLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRU
VG9rZW5pemVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVy
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9odG1sL1R5cGVBaGVhZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlw
ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGM1N2Q1
OGIyMGNjNWY1ZTcyZWM4OTUxYWI2MTYyYjMxNzBhZmZhNWUuLjljYTIyZDlkZjI0YjNiNzM3ZDIw
NTYwODY3NjY0ODNhZDljNzY2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNjkwLDYgKzY5MCw3IEBAIFNP
VVJDRVMgKz0gXAogICAgIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9U
ZXh0SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBcCisgICAgaHRt
bC9UeXBlQWhlYWQuY3BwIFwKICAgICBodG1sL1VSTElucHV0VHlwZS5jcHAgXAogICAgIGh0bWwv
VmFsaWRhdGlvbk1lc3NhZ2UuY3BwIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuY3BwIFwKQEAg
LTE4NDQsNiArMTg0NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvU3RlcFJhbmdlLmggXAog
ICAgIGh0bWwvVGV4dERvY3VtZW50LmggXAogICAgIGh0bWwvVGltZVJhbmdlcy5oIFwKKyAgICBo
dG1sL1R5cGVBaGVhZC5oIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaCBcCiAgICAgaHRtbC9w
YXJzZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVj
dGlvblNpdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDk1YTE3ZDhkZGIwNGI4ZjZhMmMwNTI1
YmM5NzNkM2ZlOTg2MGY0My4uZGFhYzRlOTU2MWYwZGZlNThmODgyMWVkNTg4MDc0MWU3MmRjNjJh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDI2NSw2ICs0MjY1LDggQEAKICAgICAgICAgICAgICdo
dG1sL1ZhbGlkaXR5U3RhdGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmNw
cCcsCiAgICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmgnLAorICAgICAgICAgICAgJ2h0
bWwvVHlwZUFoZWFkLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9UeXBlQWhlYWQuaCcsCiAgICAg
ICAgICAgICAnaHRtbC9jYW52YXMvQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9DYW52YXNDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMWQzYTIyMzMwZmI4MWE3YzBhYmMy
YWE2MzEwMWEwMWZmOWFhYjI0Li42ODZlNjI2N2RhM2U5OGI3ZGJmYzczOWM1MmI5NDhmMzI1NGJj
MTUzIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNjM5ODksNiArNjM5ODksMTQgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVGltZVJh
bmdlcy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgCQk8RmlsZQorICAJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGh0bWxcVHlwZUFoZWFkLmNwcCIKKyAgCQkJPgorICAJCTwvRmlsZT4KKyAgCQk8RmlsZQor
ICAJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVHlwZUFoZWFkLmgiCisgIAkJCT4KKyAgCQk8L0Zp
bGU+CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxVUkxJbnB1dFR5cGUuY3Bw
IgogCQkJCT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBiMmQ1NzU2Y2M1YTYwMDVkNGRmOWNlZTc1MWZhOWQ4MmQ2YWZmZWNjLi42
NjllMjZlZDg5YWU0YjQwOGM5Zjk3YmQ4NGVjY2FiNTllNmM0NWY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODMxLDYgKzU4
MzEsOCBAQAogCQlDMzNFRTVDNTE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhL
ZXlJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMzM0VFNUMzMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0
VHlwZS5oICovOyB9OwogCQlDMzQ4NjEyMzE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFt
ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzM0
ODYxMjExNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAqLzsgfTsKIAkJQzM0
ODYxMjQxNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzQ4NjEyMjE1RkRFMjFFMDA3QTFDQzkg
LyogSW5wdXRUeXBlTmFtZXMuaCAqLzsgfTsKKwkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFCIC8q
IFR5cGVBaGVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMzc1RDdGQjE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCAqLzsgfTsKKwkJ
QzM3NUQ3RkUxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8q
IFR5cGVBaGVhZC5oICovOyB9OwogCQlDMzdDREVCRDE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JD
aG9vc2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMzdDREVCQzE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzNDRjE3QTQx
NUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5IC8q
IElkVGFyZ2V0T2JzZXJ2ZXIuY3BwICovOyB9OwogCQlDM0NGMTdBNTE1QjAwNjNGMDAyNzZEMzkg
LyogSWRUYXJnZXRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzNDRjE3QTExNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMy
MzksNiArMTMyNDEsOCBAQAogCQlDMzNFRTVDMzE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNr
YWJsZVdpdGhLZXlJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQzM0ODYxMjExNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElucHV0VHlwZU5hbWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM0ODYxMjIxNUZERTIxRTAwN0ExQ0M5IC8qIElu
cHV0VHlwZU5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0VHlw
ZU5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMzNzVEN0ZCMTY2Mzk1MTkw
MDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVHlwZUFoZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzM3NUQ3
RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUeXBlQWhlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM3
Q0RFQkMxNDlFRjIwMzAwNDIwOTBEIC8qIENvbG9yQ2hvb3NlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xvckNob29zZXJDbGllbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2Jz
ZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRUYXJnZXRP
YnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMzQ0YxN0ExMTVCMDA2
M0YwMDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IElkVGFyZ2V0T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTE3ODkyLDYgKzE3ODk2LDggQEAKIAkJCQlFNDQ2MTM5RDBDRDYzMzEwMDBGQURBNzUgLyog
VGltZVJhbmdlcy5jcHAgKi8sCiAJCQkJRTQ0NjEzOUUwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVS
YW5nZXMuaCAqLywKIAkJCQlFNDQ2MTM5RjBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5p
ZGwgKi8sCisJCQkJQzM3NUQ3RkIxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5jcHAgKi8s
CisJCQkJQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovLAogCQkJCUY1
NUIzREE5MTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIz
REFBMTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLywKIAkJCQlGNUExNTQyNTEy
Nzk1MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovLApAQCAtMjU4MzYsNiAr
MjU4NDIsNyBAQAogCQkJCUZCMkMxNUMzMTY1RDY0OUQwMDM5QzlGOCAvKiBDYWNoZWRTVkdEb2N1
bWVudFJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE3NDFBQUQxNjYzNjYwOTAwOEE1
QjdFIC8qIFNpbXVsYXRlZENsaWNrT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTVCOEI3
QzkxNjUyQzUyMjAwMzZFRjU1IC8qIEpTV2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQzM3NUQ3RkUxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yODkzOSw2ICsyODk0Niw3IEBACiAJCQkJNDQ3OTU4MDUxNjQzQjRC
MjAwMUUwQTdGIC8qIFBhcnNlZENvbnRlbnRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE1
QjhCN0M4MTY1MkM1MjIwMDM2RUY1NSAvKiBKU1dlYktpdENTU01peEZ1bmN0aW9uVmFsdWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODZCQTc2NkUxNjY0MjdBODAwNUJFNUQxIC8qIEZyYW1lTG9h
ZFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFC
IC8qIFR5cGVBaGVhZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U2VsZWN0RWxlbWVudC5jcHAKaW5kZXggMjNhYzU3YWY0YjBhZTUzNTZlODIxYjcwMGUyMzI2NWU5
MTIwMDhjOC4uZjQxZWUwZDA3NDVkNGMxOTdjM2Q1MGI3ODM3MjhiZDNiM2I1MmU5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKQEAgLTY0LDE2ICs2NCwxMyBA
QCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogLy8gVXBwZXIgbGltaXQgYWdyZWVkIHVwb24g
d2l0aCByZXByZXNlbnRhdGl2ZXMgb2YgT3BlcmEgYW5kIE1vemlsbGEuCiBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbWF4U2VsZWN0SXRlbXMgPSAxMDAwMDsKIAotc3RhdGljIGNvbnN0IERPTVRpbWVT
dGFtcCB0eXBlQWhlYWRUaW1lb3V0ID0gMTAwMDsKLQogSFRNTFNlbGVjdEVsZW1lbnQ6OkhUTUxT
ZWxlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVu
dFdpdGhTdGF0ZSh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKLSAgICAsIG1fbGFzdENoYXJUaW1l
KDApCisgICAgLCBtX3R5cGVBaGVhZCh0aGlzKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2xh
c3RPbkNoYW5nZUluZGV4KC0xKQogICAgICwgbV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleCgt
MSkKICAgICAsIG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXgoLTEpCi0gICAgLCBtX3JlcGVhdGlu
Z0NoYXIoMCkKICAgICAsIG1faXNQcm9jZXNzaW5nVXNlckRyaXZlbkNoYW5nZShmYWxzZSkKICAg
ICAsIG1fbXVsdGlwbGUoZmFsc2UpCiAgICAgLCBtX2FjdGl2ZVNlbGVjdGlvblN0YXRlKGZhbHNl
KQpAQCAtMTQ3NCw4MiArMTQ3MSwzNCBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxhc3RTZWxl
Y3RlZExpc3RJbmRleCgpIGNvbnN0CiAgICAgcmV0dXJuIC0xOwogfQogCi1zdGF0aWMgU3RyaW5n
IHN0cmlwTGVhZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCitpbnQgSFRNTFNl
bGVjdEVsZW1lbnQ6OmluZGV4T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0CiB7Ci0gICAgaW50IGxl
bmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKLQotICAgIGludCBpOwotICAgIGZvciAoaSA9IDA7IGkg
PCBsZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoc3RyaW5nW2ldICE9IG5vQnJlYWtTcGFjZSAm
JiAoc3RyaW5nW2ldIDw9IDB4N0YgPyAhaXNBU0NJSVNwYWNlKHN0cmluZ1tpXSkgOiAoZGlyZWN0
aW9uKHN0cmluZ1tpXSkgIT0gV2hpdGVTcGFjZU5ldXRyYWwpKSkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgIH0KLQotICAgIHJldHVybiBzdHJpbmcuc3Vic3RyaW5nKGksIGxlbmd0aCAtIGkpOwor
ICAgIHJldHVybiBvcHRpb25Ub0xpc3RJbmRleChzZWxlY3RlZEluZGV4KCkpOwogfQogCi12b2lk
IEhUTUxTZWxlY3RFbGVtZW50Ojp0eXBlQWhlYWRGaW5kKEtleWJvYXJkRXZlbnQqIGV2ZW50KQor
aW50IEhUTUxTZWxlY3RFbGVtZW50OjpvcHRpb25Db3VudCgpIGNvbnN0CiB7Ci0gICAgaWYgKGV2
ZW50LT50aW1lU3RhbXAoKSA8IG1fbGFzdENoYXJUaW1lKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBET01UaW1lU3RhbXAgZGVsdGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RDaGFyVGlt
ZTsKLSAgICBtX2xhc3RDaGFyVGltZSA9IGV2ZW50LT50aW1lU3RhbXAoKTsKLQotICAgIFVDaGFy
IGMgPSBldmVudC0+Y2hhckNvZGUoKTsKLQotICAgIFN0cmluZyBwcmVmaXg7Ci0gICAgaW50IHNl
YXJjaFN0YXJ0T2Zmc2V0ID0gMTsKLSAgICBpZiAoZGVsdGEgPiB0eXBlQWhlYWRUaW1lb3V0KSB7
Ci0gICAgICAgIHByZWZpeCA9IFN0cmluZygmYywgMSk7Ci0gICAgICAgIG1fdHlwZWRTdHJpbmcg
PSBwcmVmaXg7Ci0gICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgbV90eXBlZFN0cmluZy5hcHBlbmQoYyk7Ci0KLSAgICAgICAgaWYgKGMgPT0gbV9yZXBl
YXRpbmdDaGFyKSB7Ci0gICAgICAgICAgICAvLyBUaGUgdXNlciBpcyBsaWtlbHkgdHJ5aW5nIHRv
IGN5Y2xlIHRocm91Z2ggYWxsIHRoZSBpdGVtcyBzdGFydGluZwotICAgICAgICAgICAgLy8gd2l0
aCB0aGlzIGNoYXJhY3Rlciwgc28ganVzdCBzZWFyY2ggb24gdGhlIGNoYXJhY3Rlci4KLSAgICAg
ICAgICAgIHByZWZpeCA9IFN0cmluZygmYywgMSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBtX3JlcGVhdGluZ0NoYXIgPSAwOwotICAgICAgICAgICAgcHJlZml4ID0gbV90eXBlZFN0
cmluZzsKLSAgICAgICAgICAgIHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKLSAgICAgICAgfQotICAg
IH0KKyAgICByZXR1cm4gbGlzdEl0ZW1zKCkuc2l6ZSgpOworfQogCitTdHJpbmcgSFRNTFNlbGVj
dEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgoaW50IGluZGV4KSBjb25zdAorewogICAgIGNvbnN0IFZl
Y3RvcjxIVE1MRWxlbWVudCo+JiBpdGVtcyA9IGxpc3RJdGVtcygpOwotICAgIGludCBpdGVtQ291
bnQgPSBpdGVtcy5zaXplKCk7Ci0gICAgaWYgKGl0ZW1Db3VudCA8IDEpCi0gICAgICAgIHJldHVy
bjsKKyAgICAKKyAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2luZGV4XTsKKyAgICBp
ZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVtZW50
KGVsZW1lbnQpLT5kaXNhYmxlZCgpKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0
dXJuIHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdy
b3VwTGFiZWwoKTsKK30KIAotICAgIGludCBzZWxlY3RlZCA9IHNlbGVjdGVkSW5kZXgoKTsKLSAg
ICBpbnQgaW5kZXggPSBvcHRpb25Ub0xpc3RJbmRleChzZWxlY3RlZCA+PSAwID8gc2VsZWN0ZWQg
OiAwKSArIHNlYXJjaFN0YXJ0T2Zmc2V0Owordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFo
ZWFkRmluZChLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBpbnQgaW5kZXggPSBtX3R5cGVB
aGVhZC5oYW5kbGVFdmVudChldmVudCwgVHlwZUFoZWFkOjpNYXRjaFByZWZpeCB8IFR5cGVBaGVh
ZDo6Q3ljbGVGaXJzdENoYXIpOwogICAgIGlmIChpbmRleCA8IDApCiAgICAgICAgIHJldHVybjsK
LSAgICBpbmRleCAlPSBpdGVtQ291bnQ7Ci0KLSAgICAvLyBDb21wdXRlIGEgY2FzZS1mb2xkZWQg
Y29weSBvZiB0aGUgcHJlZml4IHN0cmluZyBiZWZvcmUgYmVnaW5uaW5nIHRoZSBzZWFyY2ggZm9y
Ci0gICAgLy8gYSBtYXRjaGluZyBlbGVtZW50LiBUaGlzIGNvZGUgdXNlcyBmb2xkQ2FzZSB0byB3
b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0Ci0gICAgLy8gU3RyaW5nOjpzdGFydFdpdGggZG9lcyBu
b3QgZm9sZCBub24tQVNDSUkgY2hhcmFjdGVycy4gVGhpcyBjb2RlIGNhbiBiZSBjaGFuZ2VkCi0g
ICAgLy8gdG8gdXNlIHN0YXJ0V2l0aCBvbmNlIHRoYXQgaXMgZml4ZWQuCi0gICAgU3RyaW5nIHBy
ZWZpeFdpdGhDYXNlRm9sZGVkKHByZWZpeC5mb2xkQ2FzZSgpKTsKLSAgICBmb3IgKGludCBpID0g
MDsgaSA8IGl0ZW1Db3VudDsgKytpLCBpbmRleCA9IChpbmRleCArIDEpICUgaXRlbUNvdW50KSB7
Ci0gICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaXRlbXNbaW5kZXhdOwotICAgICAgICBp
ZiAoIWVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSB8fCB0b0hUTUxPcHRpb25FbGVtZW50
KGVsZW1lbnQpLT5kaXNhYmxlZCgpKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAg
Ly8gRm9sZCB0aGUgb3B0aW9uIHN0cmluZyBhbmQgY2hlY2sgaWYgaXRzIHByZWZpeCBpcyBlcXVh
bCB0byB0aGUgZm9sZGVkIHByZWZpeC4KLSAgICAgICAgU3RyaW5nIHRleHQgPSB0b0hUTUxPcHRp
b25FbGVtZW50KGVsZW1lbnQpLT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7Ci0g
ICAgICAgIGlmIChzdHJpcExlYWRpbmdXaGl0ZVNwYWNlKHRleHQpLmZvbGRDYXNlKCkuc3RhcnRz
V2l0aChwcmVmaXhXaXRoQ2FzZUZvbGRlZCkpIHsKLSAgICAgICAgICAgIHNlbGVjdE9wdGlvbihs
aXN0VG9PcHRpb25JbmRleChpbmRleCksIERlc2VsZWN0T3RoZXJPcHRpb25zIHwgRGlzcGF0Y2hD
aGFuZ2VFdmVudCB8IFVzZXJEcml2ZW4pOwotICAgICAgICAgICAgaWYgKCF1c2VzTWVudUxpc3Qo
KSkKLSAgICAgICAgICAgICAgICBsaXN0Qm94T25DaGFuZ2UoKTsKLQotICAgICAgICAgICAgc2V0
T3B0aW9uc0NoYW5nZWRPblJlbmRlcmVyKCk7Ci0gICAgICAgICAgICBzZXROZWVkc1N0eWxlUmVj
YWxjKCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9CisgICAgc2VsZWN0
T3B0aW9uKGxpc3RUb09wdGlvbkluZGV4KGluZGV4KSwgRGVzZWxlY3RPdGhlck9wdGlvbnMgfCBE
aXNwYXRjaENoYW5nZUV2ZW50IHwgVXNlckRyaXZlbik7CisgICAgaWYgKCF1c2VzTWVudUxpc3Qo
KSkKKyAgICAgICAgbGlzdEJveE9uQ2hhbmdlKCk7CiB9CiAKIE5vZGU6Okluc2VydGlvbk5vdGlm
aWNhdGlvblJlcXVlc3QgSFRNTFNlbGVjdEVsZW1lbnQ6Omluc2VydGVkSW50byhDb250YWluZXJO
b2RlKiBpbnNlcnRpb25Qb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
aAppbmRleCA2ZDg4ZGExNzg4M2UyMzUzOTVlNWJhNjlmNTMzZDdhYzU3ZTIwNDY1Li5hMmYyNjUw
ZjYwMzA2Zjg3NGU3MGE4NDUyMGU4ZjY5MTFiZTQ0MTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MU2VsZWN0RWxlbWVudC5oCkBAIC0yOSwxMyArMjksMTQgQEAKICNpbmNsdWRlICJFdmVudC5o
IgogI2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuaCIKICNpbmNsdWRl
ICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJUeXBlQWhlYWQuaCIKICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTE9w
dGlvbkVsZW1lbnQ7CiAKLWNsYXNzIEhUTUxTZWxlY3RFbGVtZW50IDogcHVibGljIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnRXaXRoU3RhdGUgeworY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQgOiBwdWJs
aWMgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSwgcHVibGljIFR5cGVBaGVhZERhdGFT
b3VyY2UgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxTZWxlY3RFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50
Kik7CiAKQEAgLTEwMyw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gRm9yIHVzZSBp
biB0aGUgaW1wbGVtZW50YXRpb24gb2YgSFRNTE9wdGlvbkVsZW1lbnQuCiAgICAgdm9pZCBvcHRp
b25TZWxlY3Rpb25TdGF0ZUNoYW5nZWQoSFRNTE9wdGlvbkVsZW1lbnQqLCBib29sIG9wdGlvbklz
U2VsZWN0ZWQpOwotICAgIAorCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTFNlbGVjdEVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CiAKQEAgLTE4
MSwxNyArMTgyLDIwIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdl
ZChib29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBO
b2RlKiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKICAgICB2aXJ0
dWFsIGJvb2wgYXJlQXV0aG9yU2hhZG93c0FsbG93ZWQoKSBjb25zdCBPVkVSUklERSB7IHJldHVy
biBmYWxzZTsgfQogCisgICAgLy8gVHlwZUFoZWFkRGF0YVNvdXJjZSBmdW5jdGlvbnMuCisgICAg
dmlydHVhbCBpbnQgaW5kZXhPZlNlbGVjdGVkT3B0aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBpbnQgb3B0aW9uQ291bnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0
cmluZyBvcHRpb25BdEluZGV4KGludCBpbmRleCkgY29uc3QgT1ZFUlJJREU7CisKICAgICAvLyBt
X2xpc3RJdGVtcyBjb250YWlucyBIVE1MT3B0aW9uRWxlbWVudCwgSFRNTE9wdEdyb3VwRWxlbWVu
dCwgYW5kIEhUTUxIUkVsZW1lbnQgb2JqZWN0cy4KICAgICBtdXRhYmxlIFZlY3RvcjxIVE1MRWxl
bWVudCo+IG1fbGlzdEl0ZW1zOwogICAgIFZlY3Rvcjxib29sPiBtX2xhc3RPbkNoYW5nZVNlbGVj
dGlvbjsKICAgICBWZWN0b3I8Ym9vbD4gbV9jYWNoZWRTdGF0ZUZvckFjdGl2ZVNlbGVjdGlvbjsK
LSAgICBET01UaW1lU3RhbXAgbV9sYXN0Q2hhclRpbWU7Ci0gICAgU3RyaW5nIG1fdHlwZWRTdHJp
bmc7CisgICAgVHlwZUFoZWFkIG1fdHlwZUFoZWFkOwogICAgIGludCBtX3NpemU7CiAgICAgaW50
IG1fbGFzdE9uQ2hhbmdlSW5kZXg7CiAgICAgaW50IG1fYWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5k
ZXg7CiAgICAgaW50IG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXg7Ci0gICAgVUNoYXIgbV9yZXBl
YXRpbmdDaGFyOwogICAgIGJvb2wgbV9pc1Byb2Nlc3NpbmdVc2VyRHJpdmVuQ2hhbmdlOwogICAg
IGJvb2wgbV9tdWx0aXBsZTsKICAgICBib29sIG1fYWN0aXZlU2VsZWN0aW9uU3RhdGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1R5cGVBaGVhZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc5ZDdjMDY3M2Y5NDJmMDNhZjFiMTky
Mzk2NzQ0OGIyN2U3OTkzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VHlwZUFoZWFkLmNwcApAQCAtMCwwICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCisgKiBDb3B5
cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAgICAgICAo
QykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqICAgICAgICAgICAo
QykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKKyAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtv
diAoYXBAbnlwb3AuY29tKQorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUeXBlQWhlYWQuaCIKKworI2luY2x1ZGUgIktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgor
I2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdURjo6
VW5pY29kZTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUeXBlQWhlYWQ6OlR5cGVBaGVhZChU
eXBlQWhlYWREYXRhU291cmNlKiBkYXRhU291cmNlKQorICAgIDogbV9kYXRhU291cmNlKGRhdGFT
b3VyY2UpCisgICAgLCBtX2xhc3RUeXBlVGltZSgwKQorICAgICwgbV9yZXBlYXRpbmdDaGFyKDAp
Cit7Cit9CisKK3N0YXRpYyBjb25zdCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91dCA9IDEw
MDA7CisKK3N0YXRpYyBTdHJpbmcgc3RyaXBMZWFkaW5nV2hpdGVTcGFjZShjb25zdCBTdHJpbmcm
IHN0cmluZykKK3sKKyAgICB1bnNpZ25lZCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7CisKKyAg
ICB1bnNpZ25lZCBpOworICAgIGZvciAoaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAg
ICBpZiAoc3RyaW5nW2ldICE9IG5vQnJlYWtTcGFjZSAmJiAoc3RyaW5nW2ldIDw9IDB4N0YgPyAh
aXNBU0NJSVNwYWNlKHN0cmluZ1tpXSkgOiAoZGlyZWN0aW9uKHN0cmluZ1tpXSkgIT0gV2hpdGVT
cGFjZU5ldXRyYWwpKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJldHVybiBz
dHJpbmcuc3Vic3RyaW5nKGksIGxlbmd0aCAtIGkpOworfQorCitpbnQgVHlwZUFoZWFkOjpoYW5k
bGVFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCwgTWF0Y2hNb2RlRmxhZ3MgbWF0Y2hNb2RlKQor
eworICAgIGlmIChldmVudC0+dGltZVN0YW1wKCkgPCBtX2xhc3RUeXBlVGltZSkKKyAgICAgICAg
cmV0dXJuIC0xOworCisgICAgaW50IG9wdGlvbkNvdW50ID0gbV9kYXRhU291cmNlLT5vcHRpb25D
b3VudCgpOworICAgIERPTVRpbWVTdGFtcCBkZWx0YSA9IGV2ZW50LT50aW1lU3RhbXAoKSAtIG1f
bGFzdFR5cGVUaW1lOworICAgIG1fbGFzdFR5cGVUaW1lID0gZXZlbnQtPnRpbWVTdGFtcCgpOwor
CisgICAgVUNoYXIgYyA9IGV2ZW50LT5jaGFyQ29kZSgpOworCisgICAgaWYgKGRlbHRhID4gdHlw
ZUFoZWFkVGltZW91dCkKKyAgICAgICAgbV9idWZmZXIuY2xlYXIoKTsKKyAgICBtX2J1ZmZlci5h
cHBlbmQoYyk7CisKKyAgICBpZiAob3B0aW9uQ291bnQgPCAxKQorICAgICAgICByZXR1cm4gLTE7
CisKKyAgICBpbnQgc2VhcmNoU3RhcnRPZmZzZXQgPSAxOworICAgIFN0cmluZyBwcmVmaXg7Cisg
ICAgaWYgKG1hdGNoTW9kZSAmIEN5Y2xlRmlyc3RDaGFyICYmIGMgPT0gbV9yZXBlYXRpbmdDaGFy
KSB7CisgICAgICAgIC8vIFRoZSB1c2VyIGlzIGxpa2VseSB0cnlpbmcgdG8gY3ljbGUgdGhyb3Vn
aCBhbGwgdGhlIGl0ZW1zIHN0YXJ0aW5nCisgICAgICAgIC8vIHdpdGggdGhpcyBjaGFyYWN0ZXIs
IHNvIGp1c3Qgc2VhcmNoIG9uIHRoZSBjaGFyYWN0ZXIuCisgICAgICAgIHByZWZpeCA9IFN0cmlu
ZygmYywgMSk7CisgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7CisgICAgfSBlbHNlIGlmICht
YXRjaE1vZGUgJiBNYXRjaFByZWZpeCkgeworICAgICAgICBwcmVmaXggPSBtX2J1ZmZlci50b1N0
cmluZygpOworICAgICAgICBpZiAobV9idWZmZXIubGVuZ3RoKCkgPiAxKSB7CisgICAgICAgICAg
ICBtX3JlcGVhdGluZ0NoYXIgPSAwOworICAgICAgICAgICAgc2VhcmNoU3RhcnRPZmZzZXQgPSAw
OworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fcmVwZWF0aW5nQ2hhciA9IGM7CisgICAg
fQorCisgICAgaWYgKCFwcmVmaXguaXNFbXB0eSgpKSB7CisgICAgICAgIGludCBzZWxlY3RlZCA9
IG1fZGF0YVNvdXJjZS0+aW5kZXhPZlNlbGVjdGVkT3B0aW9uKCk7CisgICAgICAgIGludCBpbmRl
eCA9IChzZWxlY3RlZCA8IDAgPyAwIDogc2VsZWN0ZWQpICsgc2VhcmNoU3RhcnRPZmZzZXQ7Cisg
ICAgICAgIGluZGV4ICU9IG9wdGlvbkNvdW50OworCisgICAgICAgIC8vIENvbXB1dGUgYSBjYXNl
LWZvbGRlZCBjb3B5IG9mIHRoZSBwcmVmaXggc3RyaW5nIGJlZm9yZSBiZWdpbm5pbmcgdGhlIHNl
YXJjaCBmb3IKKyAgICAgICAgLy8gYSBtYXRjaGluZyBlbGVtZW50LiBUaGlzIGNvZGUgdXNlcyBm
b2xkQ2FzZSB0byB3b3JrIGFyb3VuZCB0aGUgZmFjdCB0aGF0CisgICAgICAgIC8vIFN0cmluZzo6
c3RhcnRXaXRoIGRvZXMgbm90IGZvbGQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMuIFRoaXMgY29kZSBj
YW4gYmUgY2hhbmdlZAorICAgICAgICAvLyB0byB1c2Ugc3RhcnRXaXRoIG9uY2UgdGhhdCBpcyBm
aXhlZC4KKyAgICAgICAgU3RyaW5nIHByZWZpeFdpdGhDYXNlRm9sZGVkKHByZWZpeC5mb2xkQ2Fz
ZSgpKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcHRpb25Db3VudDsgKytpLCBpbmRl
eCA9IChpbmRleCArIDEpICUgb3B0aW9uQ291bnQpIHsKKyAgICAgICAgICAgIC8vIEZvbGQgdGhl
IG9wdGlvbiBzdHJpbmcgYW5kIGNoZWNrIGlmIGl0cyBwcmVmaXggaXMgZXF1YWwgdG8gdGhlIGZv
bGRlZCBwcmVmaXguCisgICAgICAgICAgICBTdHJpbmcgdGV4dCA9IG1fZGF0YVNvdXJjZS0+b3B0
aW9uQXRJbmRleChpbmRleCk7CisgICAgICAgICAgICBpZiAoc3RyaXBMZWFkaW5nV2hpdGVTcGFj
ZSh0ZXh0KS5mb2xkQ2FzZSgpLnN0YXJ0c1dpdGgocHJlZml4V2l0aENhc2VGb2xkZWQpKQorICAg
ICAgICAgICAgICAgIHJldHVybiBpbmRleDsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmICht
YXRjaE1vZGUgJiBNYXRjaEluZGV4KSB7CisgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAgICAg
ICAgaW50IGluZGV4ID0gbV9idWZmZXIudG9TdHJpbmcoKS50b0ludCgmb2spOworICAgICAgICBp
ZiAoaW5kZXggPiAwICYmIGluZGV4IDw9IG9wdGlvbkNvdW50KQorICAgICAgICAgICAgcmV0dXJu
IGluZGV4IC0gMTsKKyAgICB9CisgICAgcmV0dXJuIC0xOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMmIxZDlhZjk2MWI0YWFk
N2E0ZDcyODc3MTE5MzZlMWZkM2JhOThlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UeXBlQWhlYWQuaApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRQorICogQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUKKyAqIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisgKiBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAqIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICogTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWQorICogT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBUeXBlQWhlYWRfaAorI2RlZmluZSBUeXBlQWhlYWRfaAorCisjaW5jbHVkZSAiRE9N
VGltZVN0YW1wLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEtleWJvYXJkRXZlbnQ7CisKK2NsYXNzIFR5cGVBaGVhZERhdGFTb3VyY2UgeworcHVibGljOgor
ICAgIHZpcnR1YWwgflR5cGVBaGVhZERhdGFTb3VyY2UoKSB7IH0KKworICAgIHZpcnR1YWwgaW50
IGluZGV4T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGludCBvcHRp
b25Db3VudCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBvcHRpb25BdEluZGV4KGlu
dCBpbmRleCkgY29uc3QgPSAwOworfTsKKworY2xhc3MgVHlwZUFoZWFkIHsKK3B1YmxpYzoKKyAg
ICBUeXBlQWhlYWQoVHlwZUFoZWFkRGF0YVNvdXJjZSopOworCisgICAgZW51bSBNb2RlRmxhZyB7
CisgICAgICAgIE1hdGNoUHJlZml4ID0gMSA8PCAwLAorICAgICAgICBDeWNsZUZpcnN0Q2hhciA9
IDEgPDwgMSwKKyAgICAgICAgTWF0Y2hJbmRleCA9IDEgPDwgMiwKKyAgICB9OworICAgIHR5cGVk
ZWYgdW5zaWduZWQgTWF0Y2hNb2RlRmxhZ3M7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBpbmRleCBm
b3IgdGhlIG1hdGNoaW5nIG9wdGlvbi4KKyAgICBpbnQgaGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVu
dCosIE1hdGNoTW9kZUZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBUeXBlQWhlYWREYXRhU291cmNl
KiBtX2RhdGFTb3VyY2U7CisgICAgRE9NVGltZVN0YW1wIG1fbGFzdFR5cGVUaW1lOworICAgIFVD
aGFyIG1fcmVwZWF0aW5nQ2hhcjsKKyAgICBTdHJpbmdCdWlsZGVyIG1fYnVmZmVyOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVHlwZUFoZWFkX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5jcHAKaW5kZXggOGVmNGRhYzJmZTc5MTgyMWMwNmUwZDFiNGU5MTBmNjdkNTg2ZTcy
Yi4uM2U4MzUwOTA5M2IzZjRkNWJjMGExMmUxYjVhZWM0MTc0YmQ4ZTcwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5jcHAKQEAgLTU1LDYgKzU1LDcgQEAgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dDo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEYKICAg
ICAsIG1fc3ltYm9scyhzeW1ib2xzKQogICAgICwgbV92aXNpYmxlRW1wdHlWYWx1ZShtYWtlVmlz
aWJsZUVtcHR5VmFsdWUoc3ltYm9scykpCiAgICAgLCBtX3NlbGVjdGVkSW5kZXgoLTEpCisgICAg
LCBtX3R5cGVBaGVhZCh0aGlzKQogewogICAgIEFTU0VSVCghc3ltYm9scy5pc0VtcHR5KCkpOwog
ICAgIHNldEhhc0N1c3RvbUNhbGxiYWNrcygpOwpAQCAtODIsMTIgKzgzLDExIEBAIHZvaWQgRGF0
ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2
ZW50KiBrZXlib2FyZEV2CiAgICAgICAgIHJldHVybjsKIAogICAgIGtleWJvYXJkRXZlbnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwg
bV9zeW1ib2xzLnNpemUoKTsgKytpbmRleCkgewotICAgICAgICBpZiAoIW1fc3ltYm9sc1tpbmRl
eF0uaXNFbXB0eSgpICYmIFdURjo6VW5pY29kZTo6dG9Mb3dlcihtX3N5bWJvbHNbaW5kZXhdWzBd
KSA9PSBjaGFyQ29kZSkgewotICAgICAgICAgICAgc2V0VmFsdWVBc0ludGVnZXIoaW5kZXgsIERp
c3BhdGNoRXZlbnQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQorCisg
ICAgaW50IGluZGV4ID0gbV90eXBlQWhlYWQuaGFuZGxlRXZlbnQoa2V5Ym9hcmRFdmVudCwgVHlw
ZUFoZWFkOjpNYXRjaFByZWZpeCB8IFR5cGVBaGVhZDo6Q3ljbGVGaXJzdENoYXIgfCBUeXBlQWhl
YWQ6Ok1hdGNoSW5kZXgpOworICAgIGlmIChpbmRleCA8IDApCisgICAgICAgIHJldHVybjsKKyAg
ICBzZXRWYWx1ZUFzSW50ZWdlcihpbmRleCwgRGlzcGF0Y2hFdmVudCk7CiB9CiAKIGJvb2wgRGF0
ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFzVmFsdWUoKSBjb25zdApAQCAtMTUwLDYgKzE1
MCwyMSBAQCBTdHJpbmcgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6dmlzaWJsZVZhbHVl
KCkgY29uc3QKICAgICByZXR1cm4gaGFzVmFsdWUoKSA/IG1fc3ltYm9sc1ttX3NlbGVjdGVkSW5k
ZXhdIDogdmlzaWJsZUVtcHR5VmFsdWUoKTsKIH0KIAoraW50IERhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQ6OmluZGV4T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
c2VsZWN0ZWRJbmRleDsKK30KKworaW50IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Om9w
dGlvbkNvdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zeW1ib2xzLnNpemUoKTsKK30KKwor
U3RyaW5nIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Om9wdGlvbkF0SW5kZXgoaW50IGlu
ZGV4KSBjb25zdAoreworICAgIHJldHVybiBtX3N5bWJvbHNbaW5kZXhdOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudC5oCmluZGV4IDVjNmIwNWFj
YmFmNDdiY2Q0ZDUwYzQxNTRjNmI3N2E4YTJkZmIyZmQuLmFhNmM4ZGEyMWNiMWZiMmJiYjZjMDdh
ZThjYjNmNjQ1YTMyOWE2ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmgKQEAgLTI4LDEyICsyOCwxMyBA
QAogCiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKICNpbmNsdWRlICJEYXRl
VGltZUZpZWxkRWxlbWVudC5oIgorI2luY2x1ZGUgIlR5cGVBaGVhZC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIC8vIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgcmVwcmVzZW50cyBu
b24tbnVtZXJpYyBmaWVsZCBvZiBkYXRhIHRpbWUKIC8vIGZvcm1hdCwgc3VjaCBhczogQU0vUE0s
IGFuZCBtb250aC4KLWNsYXNzIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMg
RGF0ZVRpbWVGaWVsZEVsZW1lbnQgeworY2xhc3MgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVu
dCA6IHB1YmxpYyBEYXRlVGltZUZpZWxkRWxlbWVudCwgcHVibGljIFR5cGVBaGVhZERhdGFTb3Vy
Y2UgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQpOwogCiBwcm90ZWN0ZWQ6CkBAIC01OSwxMiArNjAsMTggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIFN0cmluZyB2YWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgU3Ry
aW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IE9WRVJSSURFIEZJTkFMOwogCisgICAgLy8gVHlwZUFo
ZWFkRGF0YVNvdXJjZSBmdW5jdGlvbnMuCisgICAgdmlydHVhbCBpbnQgaW5kZXhPZlNlbGVjdGVk
T3B0aW9uKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBpbnQgb3B0aW9uQ291bnQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBvcHRpb25BdEluZGV4KGludCBpbmRl
eCkgY29uc3QgT1ZFUlJJREU7CisKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiBtX3N5bWJvbHM7
CiAKICAgICAvLyBXZSB1c2UgQXRvbWljU3RyaW5nIHRvIHNoYXJlIHZpc2libGUgZW1wdHkgdmFs
dWUgYW1vbmcgbXVsdGlwbGUKICAgICAvLyBEYXRlVGltZUVkaXRFbGVtZW50cyBpbiB0aGUgcGFn
ZS4KICAgICBjb25zdCBBdG9taWNTdHJpbmcgbV92aXNpYmxlRW1wdHlWYWx1ZTsKICAgICBpbnQg
bV9zZWxlY3RlZEluZGV4OworICAgIFR5cGVBaGVhZCBtX3R5cGVBaGVhZDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNTgxMzU3NjhhZjhjNjg0OTNlNTU5NDI4MDFhOWRk
ZmUyNWRhYTQ2Li5iMTU4ODgzMmQ3ZThkYjcwMzFmNTFkZDY0MjFmMjcwMTVhMDdmYjFkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMjYgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQmV0dGVyIHR5cGUgYWhlYWQgZm9yIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwMzAzMQorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgorCisgICAg
ICAgICogZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmll
bGRzLWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mb3Jtcy9t
b250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50
cy5odG1sOiBBZGRlZCB0ZXN0cyBmb3IgdHlwZWFoZWFkLgorCiAyMDEyLTExLTI4ICBNaWtlIFdl
c3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGEgdGVzdCB0byBlbnN1cmUg
dGhhdCAnc2VhbWxlc3MnIGlmcmFtZXMgZG8gbm90IGluaGVyaXQgY29udGVudGVkaXRhYmxlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMv
bW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1m
aWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCA1MmM2NTdmNzQ3ZjVhOTI4
MGM5NWRjZWYwOWE5NmU5Nzk2ZWY0ZDRjLi4xNGM5NjQ4YTcxYTY1MDBkYTlkNmJlMTcwZTYxNmJi
M2UzNjA3ZTA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRp
cGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9t
b250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMTUs
NyArMTUsNyBAQCBCYWNrc3BhY2UgLSBNYWtlIHZhbHVlIGVtcHR5CiA9PSBEaWdpdCBrZXlzID09
CiBGQUlMIGlucHV0LnZhbHVlIHNob3VsZCBiZSAwMDEyLTA5LiBXYXMgMDExMi0wOS4KID09IExl
ZnQvUmlnaHQga2V5cyA9PQotRkFJTCBpbnB1dC52YWx1ZSBzaG91bGQgYmUgMDAwNS0wNi4gV2Fz
IDAwMDUtMDkuCitQQVNTIGlucHV0LnZhbHVlIGlzICIwMDA1LTA2IgogUEFTUyBkb2N1bWVudC5h
Y3RpdmVFbGVtZW50LmlkIGlzICJpbnB1dCIKID09IFVwL0Rvd24ga2V5cyA9PQogUEFTUyBpbnB1
dC52YWx1ZSBpcyAiMjAxMi0xMCIKQEAgLTQ5LDYgKzQ5LDIzIEBAIFBBU1MgaW5wdXQudmFsdWUg
aXMgIiIKID09IFR5cGVhaGVhZCA9PQogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMS0xMiIKIFBB
U1MgaW5wdXQudmFsdWUgaXMgIjAwMDItMTIiCis9PSBUeXBlYWhlYWQgY3ljbGUgZmlyc3QgY2hh
cmFjdGVyID09CitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTAxIgorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMjAxMi0wNiIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDciCitQQVNTIGlucHV0
LnZhbHVlIGlzICIyMDEyLTAxIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wMSIKKz09IFR5
cGVhaGVhZCBwcmVmaXggbWF0Y2ggPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDMiCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTAzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0w
NSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDUiCis9PSBUeXBlYWhlYWQgaW5kZXggbWF0
Y2ggPT0KK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDEiCitQQVNTIGlucHV0LnZhbHVlIGlz
ICIyMDEyLTEyIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0xMiIKKz09IFR5cGVhaGVhZCBz
aG91bGQgc2VhcmNoIGZyb20gY3VycmVudCBzZWxlY3Rpb24gPT0KK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjIwMTItMDYiCiA9PSBSVEwgTGVmdC9SaWdodCBrZXlzID09CiBQQVNTIGlucHV0LnZhbHVl
IGlzICIyMDEyLTEwIgogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAwMi0xMCIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRp
cGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
bW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVu
dHMuaHRtbAppbmRleCAzMjEzNDQ4YWM1OTFkOWQ0YmVmYmE3OTUzZTczZmQzMGNjNDM3OWM4Li41
NjAzNmI3Mzc3NmE3N2Q2M2MyZjVhNzFjM2FmMTE0ZWM0NWEyM2JlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1m
aWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9t
b250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50
cy5odG1sCkBAIC0xNzEsNiArMTcxLDQwIEBAIGtleURvd24oJ3JpZ2h0QXJyb3cnKTsKIGtleURv
d24oJzInKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMDAwMi0xMicp
OwogCitiZWdpblRlc3QoJ1R5cGVhaGVhZCBjeWNsZSBmaXJzdCBjaGFyYWN0ZXInLCAnMjAxMi0w
OScpOwora2V5RG93bignaicpOyAvLyAgICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDEnKTsKK2tleURvd24oJ2onKTsgLy8g
ICAgICAgICAgLT4gW0p1bl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1
ZScsICcyMDEyLTA2Jyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKdWxdIDIwMTIK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNycpOwora2V5RG93
bignaicpOyAvLyAgICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2lucHV0LnZhbHVlJywgJzIwMTItMDEnKTsKK2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4g
W0phbl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTAx
Jyk7CisKK2JlZ2luVGVzdCgnVHlwZWFoZWFkIHByZWZpeCBtYXRjaCcsICcyMDEyLTA5Jyk7Citr
ZXlEb3duKCdtJyk7IC8vICAgICAgICAgIC0+IFtNYXJdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMycpOwora2V5RG93bignYScpOyAvLyAgICAgICAg
ICAtPiBbTWFyXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIw
MTItMDMnKTsKK2tleURvd24oJ3knKTsgLy8gICAgICAgICAgLT4gW01heV0gMjAxMgorc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA1Jyk7CitrZXlEb3duKCd4Jyk7
IC8vICAgICAgICAgIC0+IFtNYXldIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQu
dmFsdWUnLCAnMjAxMi0wNScpOworCitiZWdpblRlc3QoJ1R5cGVhaGVhZCBpbmRleCBtYXRjaCcs
ICcyMDEyLTA5Jyk7CitrZXlEb3duKCcxJyk7IC8vICAgICAgICAgIC0+IFtKYW5dIDIwMTIKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMScpOwora2V5RG93bign
MicpOyAvLyAgICAgICAgICAtPiBbRGVjXSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lu
cHV0LnZhbHVlJywgJzIwMTItMTInKTsKK2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW0Rl
Y10gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTEyJyk7
CisKK2JlZ2luVGVzdCgnVHlwZWFoZWFkIHNob3VsZCBzZWFyY2ggZnJvbSBjdXJyZW50IHNlbGVj
dGlvbicsICcyMDEyLTAxJyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+IFtKdW5dIDIw
MTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wNicpOworCiAv
LyBUaGUgdGVzdHMgaW4gdGhlIGZvbGxvd2luZyBibG9jayBmYWlsIG9uIHBsYXRmb3JtcyB3aXRo
b3V0IHRoZQogLy8gbGFuZy1hdHRyaWJ1dGUtYXdhcmUtZm9ybS1jb250cm9sLVVJIGZlYXR1cmUu
CiBpbnB1dC5zZXRBdHRyaWJ1dGUoImxhbmciLCAiaGUtaWwiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176897</attachid>
            <date>2012-11-29 20:53:30 -0800</date>
            <delta_ts>2012-11-29 21:47:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103031-20121130135102.patch</filename>
            <type>text/plain</type>
            <size>31937</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEwNzBmMjFmMGY0NTk2
Mjk5ZjNlNzhiZmNkYWVlNjdmNTVkZWJhYy4uZTZhYmEyMWQ5Yjg0ZWQzZjZkOWM3Y2FjZGJiYTdi
MjVjNzZhZDg0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTExLTI2ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0eXBlIGFo
ZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBLZW50IFRhbXVyYS4KKworICAgICAgICBUaGlzIGN1dHMgb3V0IHRoZSB0eXBlIGFoZWFkIGNv
ZGUgdGhhdCB3aWxsIGJlIHVzZWQgYnkgSFRNTFNlbGVjdEVsZW1lbnQKKyAgICAgICAgYW5kIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgaW50byBhIFR5cGVBaGVhZCBjbGFzcy4gVGhpcyB3
aWxsCisgICAgICAgIGltcHJvdmUgRGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudCB0eXBlIGFo
ZWFkIHdoaWNoIHdhcyBmaXJzdAorICAgICAgICBjaGFyYWN0ZXIgbWF0Y2ggb25seSwgYnkgYWRk
aW5nIGN5Y2xpbmcsIHByZWZpeCBtYXRjaCBhbmQgaW5kZXggbnVtYmVyCisgICAgICAgIG1hdGNo
LgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRvIG1vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2Fy
ZC1ldmVudHMuaHRtbC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIFR5
cGVBaGVhZC57aCxjcHB9CisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisgICAgICAgICog
V2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBEaXR0by4KKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogRGl0dG8uCisgICAgICAgICogaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6aW5kZXhPZlNlbGVjdGVkT3B0aW9uKTogUmV0dXJu
cyBpbmRleCBvZiBjdXJyZW50IHNlbGVjdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50OjpvcHRpb25Db3VudCk6IFJldHVybnMgdG90YWwgbnVtYmVyIG9mIG9wdGlvbnMu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9uQXRJbmRleCk6IFJl
dHVybnMgb3B0aW9uIGF0IGluZGV4LgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1l
bnQ6OnR5cGVBaGVhZEZpbmQpOiBVc2UgVHlwZUFoZWFkLgorICAgICAgICAqIGh0bWwvSFRNTFNl
bGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxTZWxlY3RFbGVtZW50KToKKyAgICAgICAgKiBo
dG1sL1R5cGVBaGVhZC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpUeXBlQWhlYWQ6OlR5cGVBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpzdHJpcExl
YWRpbmdXaGl0ZVNwYWNlKTogTW92ZWQgZnJvbSBIVE1MU2VsZWN0RWxlbWVudC5jcHAuCisgICAg
ICAgIChXZWJDb3JlOjpUeXBlQWhlYWQ6OmhhbmRsZUV2ZW50KTogUmV0dXJucyBpbmRleCBmb3Ig
bWF0Y2guCisgICAgICAgICogaHRtbC9UeXBlQWhlYWQuaDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFR5cGVBaGVhZERhdGFTb3VyY2UpOiBQcm92aWRlIHRoZSBkYXRhIGFi
b3V0IHRoZSBvcHRpb25zIHRoYXQgVHlwZUFoZWFkIHNob3VsZCBtYXRjaCBhZ2FpbnN0LgorICAg
ICAgICAoVHlwZUFoZWFkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGlj
RmllbGRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTeW1ib2xpY0ZpZWxkRWxlbWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjppbmRleE9mU2Vs
ZWN0ZWRPcHRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25Db3VudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25BdEluZGV4KToKKyAgICAgICAg
KiBodG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50Lmg6CisgICAgICAgIChE
YXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KToKKwogMjAxMi0xMS0yOSAgRWxsaW90dCBTcHJl
aG4gIDxlc3ByZWhuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb2RlOjppc0Rlc2NlbmRhbnRP
ZiBjb250YWlucyBsb2dpYyB0aGF0IGR1cGxpY2F0ZXMgaXNEb2N1bWVudE5vZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggYjQwYjRhZDVmZDMwN2RkNzUzNzIxOTA3NDAzZDRhZjczYjZjNTYzMS4u
OTYxYzVkNTU5MzhjYzQ4MGI3ZTJhODUyNTZlMGY1MjczMjAzOTZkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTE0NjcsNiArMTQ2Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1s
L1RleHRJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAogICAgIGh0bWwv
VGltZVJhbmdlcy5jcHAKKyAgICBodG1sL1R5cGVBaGVhZC5jcHAKICAgICBodG1sL1VSTElucHV0
VHlwZS5jcHAKICAgICBodG1sL1ZhbGlkYXRpb25NZXNzYWdlLmNwcAogICAgIGh0bWwvVmFsaWRp
dHlTdGF0ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDA2N2M3MWM1ZDA4
MzQxYmZmZDE1OTg3YjAyNmMwODI0ZWVhMjI0YjQuLmU1MmExNjhmZjY3OWVjMTBiN2ZlZWFkNDk5
M2ZiNmJkY2JjYTFiMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzYyNSw2
ICszNjI1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1dlYlZUVFRva2VuLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9r
ZW5pemVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNw
cCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwIFwKKwlTb3VyY2UvV2ViQ29y
ZS9odG1sL1R5cGVBaGVhZC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmggXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvVmFsaWRhdGlvbk1lc3NhZ2UuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDJkNDBhZDBi
ZDI2NWQ4Nzc1Y2FmNmZjODhkNTUzM2Q0MTZlMzE3OTIuLjQ4YTEwMTRkNDY2ZjU2YTI5YzlkMjcw
NTYzYjUzOTcwNDMwZTAzZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNjkwLDYgKzY5MCw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9UZXh0
SW5wdXRUeXBlLmNwcCBcCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBcCisgICAgaHRtbC9U
eXBlQWhlYWQuY3BwIFwKICAgICBodG1sL1VSTElucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvVmFs
aWRhdGlvbk1lc3NhZ2UuY3BwIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuY3BwIFwKQEAgLTE4
NDQsNiArMTg0NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGh0bWwvU3RlcFJhbmdlLmggXAogICAg
IGh0bWwvVGV4dERvY3VtZW50LmggXAogICAgIGh0bWwvVGltZVJhbmdlcy5oIFwKKyAgICBodG1s
L1R5cGVBaGVhZC5oIFwKICAgICBodG1sL1ZhbGlkaXR5U3RhdGUuaCBcCiAgICAgaHRtbC9wYXJz
ZXIvQ1NTUHJlbG9hZFNjYW5uZXIuaCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlv
blNpdGUuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZDYyNWMxZWZhMWY5YmE1OTEyZmY5NzE4NDM3
M2IwYWEyMDI2YjhjMy4uZTNkNjAxMzlhNGM3YzZmMzc2YTM0OTdkMGNiODE4MWE4MjQ4Y2NmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDI2Niw2ICs0MjY2LDggQEAKICAgICAgICAgICAgICdodG1s
L1ZhbGlkaXR5U3RhdGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9XZWVrSW5wdXRUeXBlLmgnLAorICAgICAgICAgICAgJ2h0bWwv
VHlwZUFoZWFkLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9UeXBlQWhlYWQuaCcsCiAgICAgICAg
ICAgICAnaHRtbC9jYW52YXMvQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuY3BwJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9DYW52YXNDb250ZXh0QXR0cmlidXRlcy5oJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA5MDZiYTE2MTE2MmEwYzhmY2RjNzdiNWE2
ZDhjM2I4ZDVlYzI4Y2VhLi45ZDkyYjgwOWM4MmEwY2ZiOTM3MTk2OWE0NWI0OTllY2VmNjY1OTQy
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAt
NjM5OTMsNiArNjM5OTMsMTQgQEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVGltZVJhbmdl
cy5oIgogCQkJCT4KIAkJCTwvRmlsZT4KKyAgCQk8RmlsZQorICAJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGh0bWxcVHlwZUFoZWFkLmNwcCIKKyAgCQkJPgorICAJCTwvRmlsZT4KKyAgCQk8RmlsZQorICAJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcVHlwZUFoZWFkLmgiCisgIAkJCT4KKyAgCQk8L0ZpbGU+
CiAJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxVUkxJbnB1dFR5cGUuY3BwIgog
CQkJCT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAwMzE0NmM4MDM5ZTAyZjdmMGU3MjdjOGYwMDVhZTEzY2VlMzI4MTM3Li41YjM0
ZDUxNzFhYTY1OWMwMjkwMDMyODc1MTNmZGU0MjQxNDUzNTc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01ODM0LDYgKzU4MzQs
OCBAQAogCQlDMzNFRTVDNTE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJsZVdpdGhLZXlJ
bnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMzM0VFNUMzMTRGQjQ5NjEwMDAyMDk1QSAvKiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZS5oICovOyB9OwogCQlDMzQ4NjEyMzE1RkRFMjFFMDA3QTFDQzkgLyogSW5wdXRUeXBlTmFtZXMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzM0ODYx
MjExNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAqLzsgfTsKIAkJQzM0ODYx
MjQxNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMzQ4NjEyMjE1RkRFMjFFMDA3QTFDQzkgLyog
SW5wdXRUeXBlTmFtZXMuaCAqLzsgfTsKKwkJQzM3NUQ3RkQxNjYzOTUxOTAwNjE4NEFCIC8qIFR5
cGVBaGVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMzc1RDdGQjE2NjM5NTE5MDA2MTg0QUIgLyogVHlwZUFoZWFkLmNwcCAqLzsgfTsKKwkJQzM3
NUQ3RkUxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5
cGVBaGVhZC5oICovOyB9OwogCQlDMzdDREVCRDE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9v
c2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMzdDREVCQzE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzNDRjE3QTQxNUIw
MDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5IC8qIElk
VGFyZ2V0T2JzZXJ2ZXIuY3BwICovOyB9OwogCQlDM0NGMTdBNTE1QjAwNjNGMDAyNzZEMzkgLyog
SWRUYXJnZXRPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzNDRjE3QTExNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMyNDUs
NiArMTMyNDcsOCBAQAogCQlDMzNFRTVDMzE0RkI0OTYxMDAwMjA5NUEgLyogQmFzZUNsaWNrYWJs
ZVdpdGhLZXlJbnB1dFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFz
ZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzM0ODYxMjExNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0VHlwZU5hbWVzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElucHV0VHlwZU5hbWVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM0ODYxMjIxNUZERTIxRTAwN0ExQ0M5IC8qIElucHV0
VHlwZU5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0VHlwZU5h
bWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMzNzVEN0ZCMTY2Mzk1MTkwMDYx
ODRBQiAvKiBUeXBlQWhlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVHlwZUFoZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzM3NUQ3RkMx
NjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBUeXBlQWhlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzM3Q0RF
QkMxNDlFRjIwMzAwNDIwOTBEIC8qIENvbG9yQ2hvb3NlckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb2xvckNob29zZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzNDRjE3QTAxNUIwMDYzRjAwMjc2RDM5IC8qIElkVGFyZ2V0T2JzZXJ2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWRUYXJnZXRPYnNl
cnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMzQ0YxN0ExMTVCMDA2M0Yw
MDI3NkQzOSAvKiBJZFRhcmdldE9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IElkVGFyZ2V0T2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE3OTAwLDYgKzE3OTA0LDggQEAKIAkJCQlFNDQ2MTM5RDBDRDYzMzEwMDBGQURBNzUgLyogVGlt
ZVJhbmdlcy5jcHAgKi8sCiAJCQkJRTQ0NjEzOUUwQ0Q2MzMxMDAwRkFEQTc1IC8qIFRpbWVSYW5n
ZXMuaCAqLywKIAkJCQlFNDQ2MTM5RjBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5pZGwg
Ki8sCisJCQkJQzM3NUQ3RkIxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5jcHAgKi8sCisJ
CQkJQzM3NUQ3RkMxNjYzOTUxOTAwNjE4NEFCIC8qIFR5cGVBaGVhZC5oICovLAogCQkJCUY1NUIz
REE5MTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIzREFB
MTI1MUYxMkQwMDNFRjI2OSAvKiBVUkxJbnB1dFR5cGUuaCAqLywKIAkJCQlGNUExNTQyNTEyNzk1
MzREMDBEMEIwQzAgLyogVmFsaWRhdGlvbk1lc3NhZ2UuY3BwICovLApAQCAtMjU4NDcsNiArMjU4
NTMsNyBAQAogCQkJCTMxNzQxQUFEMTY2MzY2MDkwMDhBNUI3RSAvKiBTaW11bGF0ZWRDbGlja09w
dGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1QjhCN0M5MTY1MkM1MjIwMDM2RUY1NSAvKiBK
U1dlYktpdENTU01peEZ1bmN0aW9uVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjcyQUYz
MTY2NkVERkMwMDJBMDJCRCAvKiBMYXllclBvb2wuaCBpbiBIZWFkZXJzICovLAorCQkJCUMzNzVE
N0ZFMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjg5
NTEsNiArMjg5NTgsNyBAQAogCQkJCTE1QjhCN0M4MTY1MkM1MjIwMDM2RUY1NSAvKiBKU1dlYktp
dENTU01peEZ1bmN0aW9uVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODZCQTc2NkUxNjY0
MjdBODAwNUJFNUQxIC8qIEZyYW1lTG9hZFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTNGNzJBRjQxNjY2RURGQzAwMkEwMkJEIC8qIExheWVyUG9vbC5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUMzNzVEN0ZEMTY2Mzk1MTkwMDYxODRBQiAvKiBUeXBlQWhlYWQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDIzYWM1
N2FmNGIwYWU1MzU2ZTgyMWI3MDBlMjMyNjVlOTEyMDA4YzguLmY0MWVlMGQwNzQ1ZDRjMTk3YzNk
NTBiNzgzNzI4YmQzYjNiNTJlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuY3BwCkBAIC02NCwxNiArNjQsMTMgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IC8vIFVwcGVyIGxpbWl0IGFncmVlZCB1cG9uIHdpdGggcmVwcmVzZW50YXRpdmVzIG9mIE9wZXJh
IGFuZCBNb3ppbGxhLgogc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFNlbGVjdEl0ZW1zID0gMTAw
MDA7CiAKLXN0YXRpYyBjb25zdCBET01UaW1lU3RhbXAgdHlwZUFoZWFkVGltZW91dCA9IDEwMDA7
Ci0KIEhUTUxTZWxlY3RFbGVtZW50OjpIVE1MU2VsZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkK
ICAgICA6IEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUodGFnTmFtZSwgZG9jdW1lbnQs
IGZvcm0pCi0gICAgLCBtX2xhc3RDaGFyVGltZSgwKQorICAgICwgbV90eXBlQWhlYWQodGhpcykK
ICAgICAsIG1fc2l6ZSgwKQogICAgICwgbV9sYXN0T25DaGFuZ2VJbmRleCgtMSkKICAgICAsIG1f
YWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgoLTEpCiAgICAgLCBtX2FjdGl2ZVNlbGVjdGlvbkVu
ZEluZGV4KC0xKQotICAgICwgbV9yZXBlYXRpbmdDaGFyKDApCiAgICAgLCBtX2lzUHJvY2Vzc2lu
Z1VzZXJEcml2ZW5DaGFuZ2UoZmFsc2UpCiAgICAgLCBtX211bHRpcGxlKGZhbHNlKQogICAgICwg
bV9hY3RpdmVTZWxlY3Rpb25TdGF0ZShmYWxzZSkKQEAgLTE0NzQsODIgKzE0NzEsMzQgQEAgaW50
IEhUTUxTZWxlY3RFbGVtZW50OjpsYXN0U2VsZWN0ZWRMaXN0SW5kZXgoKSBjb25zdAogICAgIHJl
dHVybiAtMTsKIH0KIAotc3RhdGljIFN0cmluZyBzdHJpcExlYWRpbmdXaGl0ZVNwYWNlKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQoraW50IEhUTUxTZWxlY3RFbGVtZW50OjppbmRleE9mU2VsZWN0ZWRP
cHRpb24oKSBjb25zdAogewotICAgIGludCBsZW5ndGggPSBzdHJpbmcubGVuZ3RoKCk7Ci0KLSAg
ICBpbnQgaTsKLSAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYg
KHN0cmluZ1tpXSAhPSBub0JyZWFrU3BhY2UgJiYgKHN0cmluZ1tpXSA8PSAweDdGID8gIWlzQVND
SUlTcGFjZShzdHJpbmdbaV0pIDogKGRpcmVjdGlvbihzdHJpbmdbaV0pICE9IFdoaXRlU3BhY2VO
ZXV0cmFsKSkpCi0gICAgICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RyaW5n
LnN1YnN0cmluZyhpLCBsZW5ndGggLSBpKTsKKyAgICByZXR1cm4gb3B0aW9uVG9MaXN0SW5kZXgo
c2VsZWN0ZWRJbmRleCgpKTsKIH0KIAotdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6dHlwZUFoZWFk
RmluZChLZXlib2FyZEV2ZW50KiBldmVudCkKK2ludCBIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9u
Q291bnQoKSBjb25zdAogewotICAgIGlmIChldmVudC0+dGltZVN0YW1wKCkgPCBtX2xhc3RDaGFy
VGltZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRE9NVGltZVN0YW1wIGRlbHRhID0gZXZlbnQt
PnRpbWVTdGFtcCgpIC0gbV9sYXN0Q2hhclRpbWU7Ci0gICAgbV9sYXN0Q2hhclRpbWUgPSBldmVu
dC0+dGltZVN0YW1wKCk7Ci0KLSAgICBVQ2hhciBjID0gZXZlbnQtPmNoYXJDb2RlKCk7Ci0KLSAg
ICBTdHJpbmcgcHJlZml4OwotICAgIGludCBzZWFyY2hTdGFydE9mZnNldCA9IDE7Ci0gICAgaWYg
KGRlbHRhID4gdHlwZUFoZWFkVGltZW91dCkgewotICAgICAgICBwcmVmaXggPSBTdHJpbmcoJmMs
IDEpOwotICAgICAgICBtX3R5cGVkU3RyaW5nID0gcHJlZml4OwotICAgICAgICBtX3JlcGVhdGlu
Z0NoYXIgPSBjOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fdHlwZWRTdHJpbmcuYXBwZW5kKGMp
OwotCi0gICAgICAgIGlmIChjID09IG1fcmVwZWF0aW5nQ2hhcikgewotICAgICAgICAgICAgLy8g
VGhlIHVzZXIgaXMgbGlrZWx5IHRyeWluZyB0byBjeWNsZSB0aHJvdWdoIGFsbCB0aGUgaXRlbXMg
c3RhcnRpbmcKLSAgICAgICAgICAgIC8vIHdpdGggdGhpcyBjaGFyYWN0ZXIsIHNvIGp1c3Qgc2Vh
cmNoIG9uIHRoZSBjaGFyYWN0ZXIuCi0gICAgICAgICAgICBwcmVmaXggPSBTdHJpbmcoJmMsIDEp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgbV9yZXBlYXRpbmdDaGFyID0gMDsKLSAg
ICAgICAgICAgIHByZWZpeCA9IG1fdHlwZWRTdHJpbmc7Ci0gICAgICAgICAgICBzZWFyY2hTdGFy
dE9mZnNldCA9IDA7Ci0gICAgICAgIH0KLSAgICB9CisgICAgcmV0dXJuIGxpc3RJdGVtcygpLnNp
emUoKTsKK30KIAorU3RyaW5nIEhUTUxTZWxlY3RFbGVtZW50OjpvcHRpb25BdEluZGV4KGludCBp
bmRleCkgY29uc3QKK3sKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgaXRlbXMgPSBs
aXN0SXRlbXMoKTsKLSAgICBpbnQgaXRlbUNvdW50ID0gaXRlbXMuc2l6ZSgpOwotICAgIGlmIChp
dGVtQ291bnQgPCAxKQotICAgICAgICByZXR1cm47CisgICAgCisgICAgSFRNTEVsZW1lbnQqIGVs
ZW1lbnQgPSBpdGVtc1tpbmRleF07CisgICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlv
blRhZykgfHwgdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+ZGlzYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1l
bnQpLT50ZXh0SW5kZW50ZWRUb1Jlc3BlY3RHcm91cExhYmVsKCk7Cit9CiAKLSAgICBpbnQgc2Vs
ZWN0ZWQgPSBzZWxlY3RlZEluZGV4KCk7Ci0gICAgaW50IGluZGV4ID0gb3B0aW9uVG9MaXN0SW5k
ZXgoc2VsZWN0ZWQgPj0gMCA/IHNlbGVjdGVkIDogMCkgKyBzZWFyY2hTdGFydE9mZnNldDsKK3Zv
aWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnR5cGVBaGVhZEZpbmQoS2V5Ym9hcmRFdmVudCogZXZlbnQp
Cit7CisgICAgaW50IGluZGV4ID0gbV90eXBlQWhlYWQuaGFuZGxlRXZlbnQoZXZlbnQsIFR5cGVB
aGVhZDo6TWF0Y2hQcmVmaXggfCBUeXBlQWhlYWQ6OkN5Y2xlRmlyc3RDaGFyKTsKICAgICBpZiAo
aW5kZXggPCAwKQogICAgICAgICByZXR1cm47Ci0gICAgaW5kZXggJT0gaXRlbUNvdW50OwotCi0g
ICAgLy8gQ29tcHV0ZSBhIGNhc2UtZm9sZGVkIGNvcHkgb2YgdGhlIHByZWZpeCBzdHJpbmcgYmVm
b3JlIGJlZ2lubmluZyB0aGUgc2VhcmNoIGZvcgotICAgIC8vIGEgbWF0Y2hpbmcgZWxlbWVudC4g
VGhpcyBjb2RlIHVzZXMgZm9sZENhc2UgdG8gd29yayBhcm91bmQgdGhlIGZhY3QgdGhhdAotICAg
IC8vIFN0cmluZzo6c3RhcnRXaXRoIGRvZXMgbm90IGZvbGQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMu
IFRoaXMgY29kZSBjYW4gYmUgY2hhbmdlZAotICAgIC8vIHRvIHVzZSBzdGFydFdpdGggb25jZSB0
aGF0IGlzIGZpeGVkLgotICAgIFN0cmluZyBwcmVmaXhXaXRoQ2FzZUZvbGRlZChwcmVmaXguZm9s
ZENhc2UoKSk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpdGVtQ291bnQ7ICsraSwgaW5kZXgg
PSAoaW5kZXggKyAxKSAlIGl0ZW1Db3VudCkgewotICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVu
dCA9IGl0ZW1zW2luZGV4XTsKLSAgICAgICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlv
blRhZykgfHwgdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+ZGlzYWJsZWQoKSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIC8vIEZvbGQgdGhlIG9wdGlvbiBzdHJpbmcgYW5k
IGNoZWNrIGlmIGl0cyBwcmVmaXggaXMgZXF1YWwgdG8gdGhlIGZvbGRlZCBwcmVmaXguCi0gICAg
ICAgIFN0cmluZyB0ZXh0ID0gdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+dGV4dEluZGVu
dGVkVG9SZXNwZWN0R3JvdXBMYWJlbCgpOwotICAgICAgICBpZiAoc3RyaXBMZWFkaW5nV2hpdGVT
cGFjZSh0ZXh0KS5mb2xkQ2FzZSgpLnN0YXJ0c1dpdGgocHJlZml4V2l0aENhc2VGb2xkZWQpKSB7
Ci0gICAgICAgICAgICBzZWxlY3RPcHRpb24obGlzdFRvT3B0aW9uSW5kZXgoaW5kZXgpLCBEZXNl
bGVjdE90aGVyT3B0aW9ucyB8IERpc3BhdGNoQ2hhbmdlRXZlbnQgfCBVc2VyRHJpdmVuKTsKLSAg
ICAgICAgICAgIGlmICghdXNlc01lbnVMaXN0KCkpCi0gICAgICAgICAgICAgICAgbGlzdEJveE9u
Q2hhbmdlKCk7Ci0KLSAgICAgICAgICAgIHNldE9wdGlvbnNDaGFuZ2VkT25SZW5kZXJlcigpOwot
ICAgICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgfQorICAgIHNlbGVjdE9wdGlvbihsaXN0VG9PcHRpb25JbmRleChpbmRl
eCksIERlc2VsZWN0T3RoZXJPcHRpb25zIHwgRGlzcGF0Y2hDaGFuZ2VFdmVudCB8IFVzZXJEcml2
ZW4pOworICAgIGlmICghdXNlc01lbnVMaXN0KCkpCisgICAgICAgIGxpc3RCb3hPbkNoYW5nZSgp
OwogfQogCiBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IEhUTUxTZWxlY3RFbGVt
ZW50OjppbnNlcnRlZEludG8oQ29udGFpbmVyTm9kZSogaW5zZXJ0aW9uUG9pbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKaW5kZXggNmQ4OGRhMTc4ODNlMjM1Mzk1ZTVi
YTY5ZjUzM2Q3YWM1N2UyMDQ2NS4uYTJmMjY1MGY2MDMwNmY4NzRlNzBhODQ1MjBlOGY2OTExYmU0
NDEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaApAQCAtMjksMTMg
KzI5LDE0IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xF
bGVtZW50V2l0aFN0YXRlLmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCisj
aW5jbHVkZSAiVHlwZUFoZWFkLmgiCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxPcHRpb25FbGVtZW50OwogCi1jbGFzcyBIVE1MU2Vs
ZWN0RWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlIHsKK2Ns
YXNzIEhUTUxTZWxlY3RFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRo
U3RhdGUsIHB1YmxpYyBUeXBlQWhlYWREYXRhU291cmNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwogCkBAIC0xMDMsNyArMTA0LDcgQEAgcHVi
bGljOgogICAgIAogICAgIC8vIEZvciB1c2UgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIEhUTUxP
cHRpb25FbGVtZW50LgogICAgIHZvaWQgb3B0aW9uU2VsZWN0aW9uU3RhdGVDaGFuZ2VkKEhUTUxP
cHRpb25FbGVtZW50KiwgYm9vbCBvcHRpb25Jc1NlbGVjdGVkKTsKLSAgICAKKwogcHJvdGVjdGVk
OgogICAgIEhUTUxTZWxlY3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCos
IEhUTUxGb3JtRWxlbWVudCopOwogCkBAIC0xODEsMTcgKzE4MiwyMCBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxz
ZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hp
bGRDb3VudERlbHRhID0gMCk7CiAgICAgdmlydHVhbCBib29sIGFyZUF1dGhvclNoYWRvd3NBbGxv
d2VkKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIC8vIFR5cGVBaGVh
ZERhdGFTb3VyY2UgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgaW50IGluZGV4T2ZTZWxlY3RlZE9w
dGlvbigpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgaW50IG9wdGlvbkNvdW50KCkgY29u
c3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgb3B0aW9uQXRJbmRleChpbnQgaW5kZXgp
IGNvbnN0IE9WRVJSSURFOworCiAgICAgLy8gbV9saXN0SXRlbXMgY29udGFpbnMgSFRNTE9wdGlv
bkVsZW1lbnQsIEhUTUxPcHRHcm91cEVsZW1lbnQsIGFuZCBIVE1MSFJFbGVtZW50IG9iamVjdHMu
CiAgICAgbXV0YWJsZSBWZWN0b3I8SFRNTEVsZW1lbnQqPiBtX2xpc3RJdGVtczsKICAgICBWZWN0
b3I8Ym9vbD4gbV9sYXN0T25DaGFuZ2VTZWxlY3Rpb247CiAgICAgVmVjdG9yPGJvb2w+IG1fY2Fj
aGVkU3RhdGVGb3JBY3RpdmVTZWxlY3Rpb247Ci0gICAgRE9NVGltZVN0YW1wIG1fbGFzdENoYXJU
aW1lOwotICAgIFN0cmluZyBtX3R5cGVkU3RyaW5nOworICAgIFR5cGVBaGVhZCBtX3R5cGVBaGVh
ZDsKICAgICBpbnQgbV9zaXplOwogICAgIGludCBtX2xhc3RPbkNoYW5nZUluZGV4OwogICAgIGlu
dCBtX2FjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4OwogICAgIGludCBtX2FjdGl2ZVNlbGVjdGlv
bkVuZEluZGV4OwotICAgIFVDaGFyIG1fcmVwZWF0aW5nQ2hhcjsKICAgICBib29sIG1faXNQcm9j
ZXNzaW5nVXNlckRyaXZlbkNoYW5nZTsKICAgICBib29sIG1fbXVsdGlwbGU7CiAgICAgYm9vbCBt
X2FjdGl2ZVNlbGVjdGlvblN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
eXBlQWhlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UeXBlQWhlYWQuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3OWQ3YzA2NzNmOTQyZjAzYWYxYjE5MjM5Njc0NDhiMjdlNzk5MzIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1R5cGVBaGVhZC5jcHAKQEAgLTAsMCArMSwxMjIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0
cyBzdWJzaWRpYXJ5KC1pZXMpLgorICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtu
b2xsQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCisgKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDks
IDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogICAgICAgICAg
IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8v
d3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VHlwZUFoZWFkLmgiCisKKyNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2Rl
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXVEY6OlVuaWNvZGU7CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworVHlwZUFoZWFkOjpUeXBlQWhlYWQoVHlwZUFoZWFkRGF0YVNvdXJjZSogZGF0YVNvdXJj
ZSkKKyAgICA6IG1fZGF0YVNvdXJjZShkYXRhU291cmNlKQorICAgICwgbV9sYXN0VHlwZVRpbWUo
MCkKKyAgICAsIG1fcmVwZWF0aW5nQ2hhcigwKQoreworfQorCitzdGF0aWMgY29uc3QgRE9NVGlt
ZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAxMDAwOworCitzdGF0aWMgU3RyaW5nIHN0cmlwTGVh
ZGluZ1doaXRlU3BhY2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgdW5zaWduZWQgbGVu
Z3RoID0gc3RyaW5nLmxlbmd0aCgpOworCisgICAgdW5zaWduZWQgaTsKKyAgICBmb3IgKGkgPSAw
OyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKHN0cmluZ1tpXSAhPSBub0JyZWFrU3Bh
Y2UgJiYgKHN0cmluZ1tpXSA8PSAweDdGID8gIWlzQVNDSUlTcGFjZShzdHJpbmdbaV0pIDogKGRp
cmVjdGlvbihzdHJpbmdbaV0pICE9IFdoaXRlU3BhY2VOZXV0cmFsKSkpCisgICAgICAgICAgICBi
cmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gc3RyaW5nLnN1YnN0cmluZyhpLCBsZW5ndGggLSBp
KTsKK30KKworaW50IFR5cGVBaGVhZDo6aGFuZGxlRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZlbnQs
IE1hdGNoTW9kZUZsYWdzIG1hdGNoTW9kZSkKK3sKKyAgICBpZiAoZXZlbnQtPnRpbWVTdGFtcCgp
IDwgbV9sYXN0VHlwZVRpbWUpCisgICAgICAgIHJldHVybiAtMTsKKworICAgIGludCBvcHRpb25D
b3VudCA9IG1fZGF0YVNvdXJjZS0+b3B0aW9uQ291bnQoKTsKKyAgICBET01UaW1lU3RhbXAgZGVs
dGEgPSBldmVudC0+dGltZVN0YW1wKCkgLSBtX2xhc3RUeXBlVGltZTsKKyAgICBtX2xhc3RUeXBl
VGltZSA9IGV2ZW50LT50aW1lU3RhbXAoKTsKKworICAgIFVDaGFyIGMgPSBldmVudC0+Y2hhckNv
ZGUoKTsKKworICAgIGlmIChkZWx0YSA+IHR5cGVBaGVhZFRpbWVvdXQpCisgICAgICAgIG1fYnVm
ZmVyLmNsZWFyKCk7CisgICAgbV9idWZmZXIuYXBwZW5kKGMpOworCisgICAgaWYgKG9wdGlvbkNv
dW50IDwgMSkKKyAgICAgICAgcmV0dXJuIC0xOworCisgICAgaW50IHNlYXJjaFN0YXJ0T2Zmc2V0
ID0gMTsKKyAgICBTdHJpbmcgcHJlZml4OworICAgIGlmIChtYXRjaE1vZGUgJiBDeWNsZUZpcnN0
Q2hhciAmJiBjID09IG1fcmVwZWF0aW5nQ2hhcikgeworICAgICAgICAvLyBUaGUgdXNlciBpcyBs
aWtlbHkgdHJ5aW5nIHRvIGN5Y2xlIHRocm91Z2ggYWxsIHRoZSBpdGVtcyBzdGFydGluZworICAg
ICAgICAvLyB3aXRoIHRoaXMgY2hhcmFjdGVyLCBzbyBqdXN0IHNlYXJjaCBvbiB0aGUgY2hhcmFj
dGVyLgorICAgICAgICBwcmVmaXggPSBTdHJpbmcoJmMsIDEpOworICAgICAgICBtX3JlcGVhdGlu
Z0NoYXIgPSBjOworICAgIH0gZWxzZSBpZiAobWF0Y2hNb2RlICYgTWF0Y2hQcmVmaXgpIHsKKyAg
ICAgICAgcHJlZml4ID0gbV9idWZmZXIudG9TdHJpbmcoKTsKKyAgICAgICAgaWYgKG1fYnVmZmVy
Lmxlbmd0aCgpID4gMSkgeworICAgICAgICAgICAgbV9yZXBlYXRpbmdDaGFyID0gMDsKKyAgICAg
ICAgICAgIHNlYXJjaFN0YXJ0T2Zmc2V0ID0gMDsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICBtX3JlcGVhdGluZ0NoYXIgPSBjOworICAgIH0KKworICAgIGlmICghcHJlZml4LmlzRW1wdHko
KSkgeworICAgICAgICBpbnQgc2VsZWN0ZWQgPSBtX2RhdGFTb3VyY2UtPmluZGV4T2ZTZWxlY3Rl
ZE9wdGlvbigpOworICAgICAgICBpbnQgaW5kZXggPSAoc2VsZWN0ZWQgPCAwID8gMCA6IHNlbGVj
dGVkKSArIHNlYXJjaFN0YXJ0T2Zmc2V0OworICAgICAgICBpbmRleCAlPSBvcHRpb25Db3VudDsK
KworICAgICAgICAvLyBDb21wdXRlIGEgY2FzZS1mb2xkZWQgY29weSBvZiB0aGUgcHJlZml4IHN0
cmluZyBiZWZvcmUgYmVnaW5uaW5nIHRoZSBzZWFyY2ggZm9yCisgICAgICAgIC8vIGEgbWF0Y2hp
bmcgZWxlbWVudC4gVGhpcyBjb2RlIHVzZXMgZm9sZENhc2UgdG8gd29yayBhcm91bmQgdGhlIGZh
Y3QgdGhhdAorICAgICAgICAvLyBTdHJpbmc6OnN0YXJ0V2l0aCBkb2VzIG5vdCBmb2xkIG5vbi1B
U0NJSSBjaGFyYWN0ZXJzLiBUaGlzIGNvZGUgY2FuIGJlIGNoYW5nZWQKKyAgICAgICAgLy8gdG8g
dXNlIHN0YXJ0V2l0aCBvbmNlIHRoYXQgaXMgZml4ZWQuCisgICAgICAgIFN0cmluZyBwcmVmaXhX
aXRoQ2FzZUZvbGRlZChwcmVmaXguZm9sZENhc2UoKSk7CisgICAgICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgb3B0aW9uQ291bnQ7ICsraSwgaW5kZXggPSAoaW5kZXggKyAxKSAlIG9wdGlvbkNvdW50
KSB7CisgICAgICAgICAgICAvLyBGb2xkIHRoZSBvcHRpb24gc3RyaW5nIGFuZCBjaGVjayBpZiBp
dHMgcHJlZml4IGlzIGVxdWFsIHRvIHRoZSBmb2xkZWQgcHJlZml4LgorICAgICAgICAgICAgU3Ry
aW5nIHRleHQgPSBtX2RhdGFTb3VyY2UtPm9wdGlvbkF0SW5kZXgoaW5kZXgpOworICAgICAgICAg
ICAgaWYgKHN0cmlwTGVhZGluZ1doaXRlU3BhY2UodGV4dCkuZm9sZENhc2UoKS5zdGFydHNXaXRo
KHByZWZpeFdpdGhDYXNlRm9sZGVkKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXg7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobWF0Y2hNb2RlICYgTWF0Y2hJbmRleCkgeworICAg
ICAgICBib29sIG9rID0gZmFsc2U7CisgICAgICAgIGludCBpbmRleCA9IG1fYnVmZmVyLnRvU3Ry
aW5nKCkudG9JbnQoJm9rKTsKKyAgICAgICAgaWYgKGluZGV4ID4gMCAmJiBpbmRleCA8PSBvcHRp
b25Db3VudCkKKyAgICAgICAgICAgIHJldHVybiBpbmRleCAtIDE7CisgICAgfQorICAgIHJldHVy
biAtMTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9UeXBlQWhlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjJiMWQ5YWY5NjFiNGFhZDdhNGQ3Mjg3NzExOTM2ZTFmZDNiYTk4ZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVHlwZUFoZWFkLmgKQEAgLTAsMCAr
MSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyAqIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKKyAqIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFCisg
KiBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTAorICogREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyAqIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSCisgKiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QKKyAqIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAqIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVHlwZUFoZWFkX2gKKyNkZWZpbmUg
VHlwZUFoZWFkX2gKKworI2luY2x1ZGUgIkRPTVRpbWVTdGFtcC5oIgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBLZXlib2FyZEV2ZW50OworCitjbGFzcyBUeXBl
QWhlYWREYXRhU291cmNlIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UeXBlQWhlYWREYXRhU291
cmNlKCkgeyB9CisKKyAgICB2aXJ0dWFsIGludCBpbmRleE9mU2VsZWN0ZWRPcHRpb24oKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBpbnQgb3B0aW9uQ291bnQoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBTdHJpbmcgb3B0aW9uQXRJbmRleChpbnQgaW5kZXgpIGNvbnN0ID0gMDsKK307CisKK2Ns
YXNzIFR5cGVBaGVhZCB7CitwdWJsaWM6CisgICAgVHlwZUFoZWFkKFR5cGVBaGVhZERhdGFTb3Vy
Y2UqKTsKKworICAgIGVudW0gTW9kZUZsYWcgeworICAgICAgICBNYXRjaFByZWZpeCA9IDEgPDwg
MCwKKyAgICAgICAgQ3ljbGVGaXJzdENoYXIgPSAxIDw8IDEsCisgICAgICAgIE1hdGNoSW5kZXgg
PSAxIDw8IDIsCisgICAgfTsKKyAgICB0eXBlZGVmIHVuc2lnbmVkIE1hdGNoTW9kZUZsYWdzOwor
CisgICAgLy8gUmV0dXJucyB0aGUgaW5kZXggZm9yIHRoZSBtYXRjaGluZyBvcHRpb24uCisgICAg
aW50IGhhbmRsZUV2ZW50KEtleWJvYXJkRXZlbnQqLCBNYXRjaE1vZGVGbGFncyk7CisKK3ByaXZh
dGU6CisgICAgVHlwZUFoZWFkRGF0YVNvdXJjZSogbV9kYXRhU291cmNlOworICAgIERPTVRpbWVT
dGFtcCBtX2xhc3RUeXBlVGltZTsKKyAgICBVQ2hhciBtX3JlcGVhdGluZ0NoYXI7CisgICAgU3Ry
aW5nQnVpbGRlciBtX2J1ZmZlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFR5cGVBaGVhZF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCmluZGV4IDhlZjRkYWMyZmU3
OTE4MjFjMDZlMGQxYjRlOTEwZjY3ZDU4NmU3MmIuLjNlODM1MDkwOTNiM2Y0ZDViYzBhMTJlMWI1
YWVjNDE3NGJkOGU3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Rh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQuY3BwCkBAIC01NSw2ICs1NSw3IEBA
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6OkRhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50LCBGCiAgICAgLCBtX3N5bWJvbHMoc3ltYm9scykKICAgICAs
IG1fdmlzaWJsZUVtcHR5VmFsdWUobWFrZVZpc2libGVFbXB0eVZhbHVlKHN5bWJvbHMpKQogICAg
ICwgbV9zZWxlY3RlZEluZGV4KC0xKQorICAgICwgbV90eXBlQWhlYWQodGhpcykKIHsKICAgICBB
U1NFUlQoIXN5bWJvbHMuaXNFbXB0eSgpKTsKICAgICBzZXRIYXNDdXN0b21DYWxsYmFja3MoKTsK
QEAgLTgyLDEyICs4MywxMSBAQCB2b2lkIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Omhh
bmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCoga2V5Ym9hcmRFdgogICAgICAgICByZXR1
cm47CiAKICAgICBrZXlib2FyZEV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwotICAgIGZvciAo
dW5zaWduZWQgaW5kZXggPSAwOyBpbmRleCA8IG1fc3ltYm9scy5zaXplKCk7ICsraW5kZXgpIHsK
LSAgICAgICAgaWYgKCFtX3N5bWJvbHNbaW5kZXhdLmlzRW1wdHkoKSAmJiBXVEY6OlVuaWNvZGU6
OnRvTG93ZXIobV9zeW1ib2xzW2luZGV4XVswXSkgPT0gY2hhckNvZGUpIHsKLSAgICAgICAgICAg
IHNldFZhbHVlQXNJbnRlZ2VyKGluZGV4LCBEaXNwYXRjaEV2ZW50KTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotICAgIH0KKworICAgIGludCBpbmRleCA9IG1fdHlwZUFoZWFkLmhh
bmRsZUV2ZW50KGtleWJvYXJkRXZlbnQsIFR5cGVBaGVhZDo6TWF0Y2hQcmVmaXggfCBUeXBlQWhl
YWQ6OkN5Y2xlRmlyc3RDaGFyIHwgVHlwZUFoZWFkOjpNYXRjaEluZGV4KTsKKyAgICBpZiAoaW5k
ZXggPCAwKQorICAgICAgICByZXR1cm47CisgICAgc2V0VmFsdWVBc0ludGVnZXIoaW5kZXgsIERp
c3BhdGNoRXZlbnQpOwogfQogCiBib29sIERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQ6Omhh
c1ZhbHVlKCkgY29uc3QKQEAgLTE1MCw2ICsxNTAsMjEgQEAgU3RyaW5nIERhdGVUaW1lU3ltYm9s
aWNGaWVsZEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGhhc1ZhbHVl
KCkgPyBtX3N5bWJvbHNbbV9zZWxlY3RlZEluZGV4XSA6IHZpc2libGVFbXB0eVZhbHVlKCk7CiB9
CiAKK2ludCBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50OjppbmRleE9mU2VsZWN0ZWRPcHRp
b24oKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbGVjdGVkSW5kZXg7Cit9CisKK2ludCBEYXRl
VGltZVN5bWJvbGljRmllbGRFbGVtZW50OjpvcHRpb25Db3VudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fc3ltYm9scy5zaXplKCk7Cit9CisKK1N0cmluZyBEYXRlVGltZVN5bWJvbGljRmllbGRF
bGVtZW50OjpvcHRpb25BdEluZGV4KGludCBpbmRleCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9z
eW1ib2xzW2luZGV4XTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNGaWVs
ZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lU3ltYm9saWNG
aWVsZEVsZW1lbnQuaAppbmRleCA1YzZiMDVhY2JhZjQ3YmNkNGQ1MGM0MTU0YzZiNzdhOGEyZGZi
MmZkLi5hYTZjOGRhMjFjYjFmYjJiYmI2YzA3YWU4Y2IzZjY0NWEzMjlhNmVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVTeW1ib2xpY0ZpZWxk
RWxlbWVudC5oCkBAIC0yOCwxMiArMjgsMTMgQEAKIAogI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBM
RV9GSUVMRFNfVUkpCiAjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJUeXBlQWhlYWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBEYXRlVGltZVN5bWJv
bGljRmllbGRFbGVtZW50IHJlcHJlc2VudHMgbm9uLW51bWVyaWMgZmllbGQgb2YgZGF0YSB0aW1l
CiAvLyBmb3JtYXQsIHN1Y2ggYXM6IEFNL1BNLCBhbmQgbW9udGguCi1jbGFzcyBEYXRlVGltZVN5
bWJvbGljRmllbGRFbGVtZW50IDogcHVibGljIERhdGVUaW1lRmllbGRFbGVtZW50IHsKK2NsYXNz
IERhdGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQgOiBwdWJsaWMgRGF0ZVRpbWVGaWVsZEVsZW1l
bnQsIHB1YmxpYyBUeXBlQWhlYWREYXRhU291cmNlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50KTsKIAogcHJvdGVjdGVkOgpAQCAtNTksMTIg
KzYwLDE4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKICAgICB2aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBPVkVS
UklERSBGSU5BTDsKIAorICAgIC8vIFR5cGVBaGVhZERhdGFTb3VyY2UgZnVuY3Rpb25zLgorICAg
IHZpcnR1YWwgaW50IGluZGV4T2ZTZWxlY3RlZE9wdGlvbigpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgaW50IG9wdGlvbkNvdW50KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBT
dHJpbmcgb3B0aW9uQXRJbmRleChpbnQgaW5kZXgpIGNvbnN0IE9WRVJSSURFOworCiAgICAgY29u
c3QgVmVjdG9yPFN0cmluZz4gbV9zeW1ib2xzOwogCiAgICAgLy8gV2UgdXNlIEF0b21pY1N0cmlu
ZyB0byBzaGFyZSB2aXNpYmxlIGVtcHR5IHZhbHVlIGFtb25nIG11bHRpcGxlCiAgICAgLy8gRGF0
ZVRpbWVFZGl0RWxlbWVudHMgaW4gdGhlIHBhZ2UuCiAgICAgY29uc3QgQXRvbWljU3RyaW5nIG1f
dmlzaWJsZUVtcHR5VmFsdWU7CiAgICAgaW50IG1fc2VsZWN0ZWRJbmRleDsKKyAgICBUeXBlQWhl
YWQgbV90eXBlQWhlYWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTM3
Yzc4NTQ2NzlmYmZmMTFjMmE1YWIwOGY5MzEyODZmOWIwNmJjOC4uODBlMDJmZDE2NzExM2RmMTZh
ZTEwZWNiNDA1ZDZjMjZiZGFlZGYwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTI2
ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEJldHRlciB0
eXBlIGFoZWFkIGZvciBEYXRlVGltZVN5bWJvbGljRmllbGRFbGVtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwMzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBLZW50IFRhbXVyYS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvbW9udGgtbXVsdGlw
bGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11
bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMuaHRtbDogQWRkZWQgdGVzdHMgZm9yIHR5cGVh
aGVhZC4KKwogMjAxMi0xMS0yOSAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIFdlYktpdCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9tb250aC1tdWx0aXBsZS1maWVsZHMt
a2V5Ym9hcmQtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9u
dGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDUyYzY1N2Y3NDdmNWE5MjgwYzk1ZGNlZjA5YTk2ZTk3OTZlZjRk
NGMuLjE0Yzk2NDhhNzFhNjUwMGRhOWQ2YmUxNzBlNjE2YmIzZTM2MDdlMDkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRp
cGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvbW9udGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1r
ZXlib2FyZC1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xNSw3ICsxNSw3IEBAIEJhY2tzcGFjZSAt
IE1ha2UgdmFsdWUgZW1wdHkKID09IERpZ2l0IGtleXMgPT0KIEZBSUwgaW5wdXQudmFsdWUgc2hv
dWxkIGJlIDAwMTItMDkuIFdhcyAwMTEyLTA5LgogPT0gTGVmdC9SaWdodCBrZXlzID09Ci1GQUlM
IGlucHV0LnZhbHVlIHNob3VsZCBiZSAwMDA1LTA2LiBXYXMgMDAwNS0wOS4KK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjAwMDUtMDYiCiBQQVNTIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuaWQgaXMgImlu
cHV0IgogPT0gVXAvRG93biBrZXlzID09CiBQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTEwIgpA
QCAtNDksNiArNDksMjMgQEAgUEFTUyBpbnB1dC52YWx1ZSBpcyAiIgogPT0gVHlwZWFoZWFkID09
CiBQQVNTIGlucHV0LnZhbHVlIGlzICIwMDAxLTEyIgogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMDAw
Mi0xMiIKKz09IFR5cGVhaGVhZCBjeWNsZSBmaXJzdCBjaGFyYWN0ZXIgPT0KK1BBU1MgaW5wdXQu
dmFsdWUgaXMgIjIwMTItMDEiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTA2IgorUEFTUyBp
bnB1dC52YWx1ZSBpcyAiMjAxMi0wNyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMDEiCitQ
QVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTAxIgorPT0gVHlwZWFoZWFkIHByZWZpeCBtYXRjaCA9
PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIw
MTItMDMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIyMDEyLTA1IgorUEFTUyBpbnB1dC52YWx1ZSBp
cyAiMjAxMi0wNSIKKz09IFR5cGVhaGVhZCBpbmRleCBtYXRjaCA9PQorUEFTUyBpbnB1dC52YWx1
ZSBpcyAiMjAxMi0wMSIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMTIiCitQQVNTIGlucHV0
LnZhbHVlIGlzICIyMDEyLTEyIgorPT0gVHlwZWFoZWFkIHNob3VsZCBzZWFyY2ggZnJvbSBjdXJy
ZW50IHNlbGVjdGlvbiA9PQorUEFTUyBpbnB1dC52YWx1ZSBpcyAiMjAxMi0wNiIKID09IFJUTCBM
ZWZ0L1JpZ2h0IGtleXMgPT0KIFBBU1MgaW5wdXQudmFsdWUgaXMgIjIwMTItMTAiCiBQQVNTIGlu
cHV0LnZhbHVlIGlzICIwMDAyLTEwIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9tb250aC1tdWx0aXBsZS1maWVsZHMvbW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2
ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9tb250aC1tdWx0aXBsZS1maWVsZHMv
bW9udGgtbXVsdGlwbGUtZmllbGRzLWtleWJvYXJkLWV2ZW50cy5odG1sCmluZGV4IDMyMTM0NDhh
YzU5MWQ5ZDRiZWZiYTc5NTNlNzNmZDMwY2M0Mzc5YzguLjU2MDM2YjczNzc2YTc3ZDYzYzJmNWE3
MWMzYWYxMTRlYzQ1YTIzYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvbW9u
dGgtbXVsdGlwbGUtZmllbGRzL21vbnRoLW11bHRpcGxlLWZpZWxkcy1rZXlib2FyZC1ldmVudHMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL21vbnRoLW11bHRpcGxlLWZpZWxkcy9t
b250aC1tdWx0aXBsZS1maWVsZHMta2V5Ym9hcmQtZXZlbnRzLmh0bWwKQEAgLTE3MSw2ICsxNzEs
NDAgQEAga2V5RG93bigncmlnaHRBcnJvdycpOwoga2V5RG93bignMicpOwogc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcwMDAyLTEyJyk7CiAKK2JlZ2luVGVzdCgnVHlwZWFo
ZWFkIGN5Y2xlIGZpcnN0IGNoYXJhY3RlcicsICcyMDEyLTA5Jyk7CitrZXlEb3duKCdqJyk7IC8v
ICAgICAgICAgIC0+IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFs
dWUnLCAnMjAxMi0wMScpOwora2V5RG93bignaicpOyAvLyAgICAgICAgICAtPiBbSnVuXSAyMDEy
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDYnKTsKK2tleURv
d24oJ2onKTsgLy8gICAgICAgICAgLT4gW0p1bF0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCdpbnB1dC52YWx1ZScsICcyMDEyLTA3Jyk7CitrZXlEb3duKCdqJyk7IC8vICAgICAgICAgIC0+
IFtKYW5dIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0w
MScpOwora2V5RG93bigneCcpOyAvLyAgICAgICAgICAtPiBbSmFuXSAyMDEyCitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMDEnKTsKKworYmVnaW5UZXN0KCdUeXBl
YWhlYWQgcHJlZml4IG1hdGNoJywgJzIwMTItMDknKTsKK2tleURvd24oJ20nKTsgLy8gICAgICAg
ICAgLT4gW01hcl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcy
MDEyLTAzJyk7CitrZXlEb3duKCdhJyk7IC8vICAgICAgICAgIC0+IFtNYXJdIDIwMTIKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0wMycpOwora2V5RG93bigneScp
OyAvLyAgICAgICAgICAtPiBbTWF5XSAyMDEyCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lucHV0
LnZhbHVlJywgJzIwMTItMDUnKTsKK2tleURvd24oJ3gnKTsgLy8gICAgICAgICAgLT4gW01heV0g
MjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA1Jyk7CisK
K2JlZ2luVGVzdCgnVHlwZWFoZWFkIGluZGV4IG1hdGNoJywgJzIwMTItMDknKTsKK2tleURvd24o
JzEnKTsgLy8gICAgICAgICAgLT4gW0phbl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdp
bnB1dC52YWx1ZScsICcyMDEyLTAxJyk7CitrZXlEb3duKCcyJyk7IC8vICAgICAgICAgIC0+IFtE
ZWNdIDIwMTIKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnaW5wdXQudmFsdWUnLCAnMjAxMi0xMicp
Owora2V5RG93bigneCcpOyAvLyAgICAgICAgICAtPiBbRGVjXSAyMDEyCitzaG91bGRCZUVxdWFs
VG9TdHJpbmcoJ2lucHV0LnZhbHVlJywgJzIwMTItMTInKTsKKworYmVnaW5UZXN0KCdUeXBlYWhl
YWQgc2hvdWxkIHNlYXJjaCBmcm9tIGN1cnJlbnQgc2VsZWN0aW9uJywgJzIwMTItMDEnKTsKK2tl
eURvd24oJ2onKTsgLy8gICAgICAgICAgLT4gW0p1bl0gMjAxMgorc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdpbnB1dC52YWx1ZScsICcyMDEyLTA2Jyk7CisKIC8vIFRoZSB0ZXN0cyBpbiB0aGUgZm9s
bG93aW5nIGJsb2NrIGZhaWwgb24gcGxhdGZvcm1zIHdpdGhvdXQgdGhlCiAvLyBsYW5nLWF0dHJp
YnV0ZS1hd2FyZS1mb3JtLWNvbnRyb2wtVUkgZmVhdHVyZS4KIGlucHV0LnNldEF0dHJpYnV0ZSgi
bGFuZyIsICJoZS1pbCIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>