<?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>71644</bug_id>
          
          <creation_ts>2011-11-06 16:36:12 -0800</creation_ts>
          <short_desc>Change ColorChooser from singleton to ordinary object</short_desc>
          <delta_ts>2011-11-07 03:39:55 -0800</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>65897</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>japhet</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>496917</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-06 16:36:12 -0800</bug_when>
    <thetext>Changing WebCore::ColorChooser from a singleton to an ordinary object can broaden how browsers implement the color chooser interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496932</commentid>
    <comment_count>1</comment_count>
      <attachid>113817</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-06 17:58:27 -0800</bug_when>
    <thetext>Created attachment 113817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496971</commentid>
    <comment_count>2</comment_count>
      <attachid>113817</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-06 22:13:23 -0800</bug_when>
    <thetext>Comment on attachment 113817
Patch

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

&gt; Source/WebCore/page/Chrome.h:161
&gt; +        void openColorChooser(PassRefPtr&lt;ColorChooser&gt;, const Color&amp;);
&gt; +        void cleanupColorChooser(PassRefPtr&lt;ColorChooser&gt;);
&gt; +        void setSelectedColorInColorChooser(PassRefPtr&lt;ColorChooser&gt;, const Color&amp;);

Passing PassRefPtr&lt;&gt; as a function argument is wrong in many cases.
If an implementation of these function want to have an ownership of this ColorChooser, these function should have a ColorChooser* argument, and the implementation should assign the raw pointer to RefPtr&lt;ColorChooser&gt;.

RefPtr&lt;ColorChooser&gt; m_colorChooser;
ChromeClientFoo::openColorChooser(ColorChooser* chooser, const Color&amp;) {
    m_colorChooser = chooser;
    ...
}

&gt; Source/WebCore/platform/ColorChooser.cpp:56
&gt; +        m_chooser-&gt;disconnectClient();
&gt; +      m_chooser.clear();

Wrong indentation.

&gt; Source/WebCore/platform/ColorChooser.h:48
&gt; +    PassRefPtr&lt;ColorChooser&gt; chooser() { return m_chooser; }

Returning PassRefPtr&lt;&gt; from non-factory method is wrong in many cases. ColorChooser* is enough in this case.

You have code like the following in this patch:

  if (chrome &amp;&amp; chooser())
       chrome-&gt;setSelectedColorInColorChooser(chooser(), valueAsColor());

This calls ref() twice and deref() twice, and they are unnecessary at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496985</commentid>
    <comment_count>3</comment_count>
      <attachid>113825</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-06 23:10:34 -0800</bug_when>
    <thetext>Created attachment 113825
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496986</commentid>
    <comment_count>4</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-06 23:12:31 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Passing PassRefPtr&lt;&gt; as a function argument is wrong in many cases.
&gt; If an implementation of these function want to have an ownership of this ColorChooser, these function should have a ColorChooser* argument, and the implementation should assign the raw pointer to RefPtr&lt;ColorChooser&gt;.

I removed PassRefPtr everywhere except ColorChooser::create

&gt; Wrong indentation.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496992</commentid>
    <comment_count>5</comment_count>
      <attachid>113825</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-06 23:34:24 -0800</bug_when>
    <thetext>Comment on attachment 113825
Patch

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

&gt; Source/WebCore/ChangeLog:30
&gt; +        * platform/ColorChooser.cpp: Styled after FileChooser

What does this mean?

&gt; Source/WebCore/html/ColorInputType.h:61
&gt;      virtual void didChooseColor(const Color&amp;);
&gt; -    virtual bool isColorInputType() const;
&gt; +    virtual void didCleanup();

nit: We had better add OVERRIDE.

&gt; LayoutTests/fast/forms/color/input-color-onchange-event.html:29
&gt; +eventSender.mouseMoveTo(10, 10);
&gt; +eventSender.mouseDown();
&gt; +eventSender.mouseUp();

We had better show a manual testing instruction if there is no eventSender.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497007</commentid>
    <comment_count>6</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-07 00:17:33 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 113825 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113825&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:30
&gt; &gt; +        * platform/ColorChooser.cpp: Styled after FileChooser
&gt; 
&gt; What does this mean?
I was trying to say that I named the methods similar to FileChooser. It was unnecessary, I removed this.

&gt; &gt; Source/WebCore/html/ColorInputType.h:61
&gt; &gt;      virtual void didChooseColor(const Color&amp;);
&gt; &gt; -    virtual bool isColorInputType() const;
&gt; &gt; +    virtual void didCleanup();
&gt; 
&gt; nit: We had better add OVERRIDE.
Done.

&gt; &gt; LayoutTests/fast/forms/color/input-color-onchange-event.html:29
&gt; &gt; +eventSender.mouseMoveTo(10, 10);
&gt; &gt; +eventSender.mouseDown();
&gt; &gt; +eventSender.mouseUp();
&gt; 
&gt; We had better show a manual testing instruction if there is no eventSender.
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497008</commentid>
    <comment_count>7</comment_count>
      <attachid>113831</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-07 00:18:20 -0800</bug_when>
    <thetext>Created attachment 113831
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497043</commentid>
    <comment_count>8</comment_count>
      <attachid>113831</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-07 02:54:50 -0800</bug_when>
    <thetext>Comment on attachment 113831
Patch

Rejecting attachment 113831 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

NOBODY (OOPS!) found in /mnt/git/webkit-commit-queue/LayoutTests/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/10338614</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497044</commentid>
    <comment_count>9</comment_count>
      <attachid>113839</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2011-11-07 03:00:01 -0800</bug_when>
    <thetext>Created attachment 113839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497052</commentid>
    <comment_count>10</comment_count>
      <attachid>113839</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-07 03:39:50 -0800</bug_when>
    <thetext>Comment on attachment 113839
Patch

Clearing flags on attachment: 113839

Committed r99403: &lt;http://trac.webkit.org/changeset/99403&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497053</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-07 03:39:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113817</attachid>
            <date>2011-11-06 17:58:27 -0800</date>
            <delta_ts>2011-11-06 23:10:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71644-20111107105825.patch</filename>
            <type>text/plain</type>
            <size>20358</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjI0NzczMTkzNDk2M2Vh
ZGNkZTA2ZjMwMjMwMDlmOGE4NzQxYmJmLi41MjBiNjJjNzY1ZWVhODMyZTkyMzI0MjcwMWY3ODFh
NTEwYjhkZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMTEtMTEtMDYgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2hhbmdlIENvbG9yQ2hv
b3NlciBmcm9tIHNpbmdsZXRvbiB0byBvcmRpbmFyeSBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNjQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdpbmcgV2ViQ29yZTo6Q29sb3JDaG9v
c2VyIGZyb20gYSBzaW5nbGV0b24gdG8gYW4gb3JkaW5hcnkgb2JqZWN0IGNhbiBicm9hZGVuIGhv
dyBicm93c2VycyBpbXBsZW1lbnQgdGhlIGNvbG9yIGNob29zZXIgaW50ZXJmYWNlLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6fkNvbG9ySW5wdXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZSk6IElmIGEgY2hvb3NlciBl
eGlzdHMsIGNhbGxzIENocm9tZTo6c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyCisgICAg
ICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudCk6IAor
ICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OmRldGFjaCk6CisgICAgICAgIChXZWJD
b3JlOjpDb2xvcklucHV0VHlwZTo6ZGlkQ2xlYW51cCk6IENhbGxlZCBhZnRlciBjbGVhbnVwIGlz
IGNvbXBsZXRlLgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OmNsZWFudXBDb2xv
ckNob29zZXIpOiBSZW5hbWVkIGZyb20gY2xlYW51cENvbG9yQ2hvb3NlcklmQ3VycmVudENsaWVu
dC4KKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNl
bGVjdENvbG9ySW5Db2xvckNob29zZXIpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5oOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkVtcHR5Q2hyb21lQ2xpZW50OjpvcGVuQ29sb3JDaG9vc2VyKTogQ2hhbmdlZCBjb2xvckNob29z
ZXIgYXJndW1lbnQgZnJvbSByYXcgcG9pbnRlciB0byBQYXNzUmVmUHRyLgorICAgICAgICAoV2Vi
Q29yZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNsZWFudXBDb2xvckNob29zZXIpOiBBZGRlZCBjb2xv
ckNob29zZXIgYXJndW1lbnQgYmVjYXVzZSB0aGVyZSBhcmUgbWFueSBXZWJDb3JlOjpDb2xvckNo
b29zZXJzIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzZXRTZWxl
Y3RlZENvbG9ySW5Db2xvckNob29zZXIpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6Om9wZW5Db2xvckNob29zZXIpOiBDaGFuZ2Vk
IGNvbG9yQ2hvb3NlciBhcmd1bWVudCBmcm9tIHJhdyBwb2ludGVyIHRvIFBhc3NSZWZQdHIuCisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmNsZWFudXBDb2xvckNob29zZXIpOiBBZGRlZCBjb2xv
ckNob29zZXIgYXJndW1lbnQgYmVjYXVzZSB0aGVyZSBhcmUgbWFueSBXZWJDb3JlOjpDb2xvckNo
b29zZXJzIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2V0U2VsZWN0ZWRDb2xvcklu
Q29sb3JDaG9vc2VyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAg
KiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0NvbG9yQ2hvb3Nlci5j
cHA6IFN0eWxlZCBhZnRlciBGaWxlQ2hvb3NlcgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9v
c2VyQ2xpZW50Ojp+Q29sb3JDaG9vc2VyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9y
Q2hvb3NlckNsaWVudDo6bmV3Q29sb3JDaG9vc2VyKTogQ3JlYXRlcyBhIG5ldyBjb2xvciBjaG9v
c2VyIHRoYXQgaXMgY29ubmVjdGVkIHRvIGl0c2VsZi4KKyAgICAgICAgKFdlYkNvcmU6OkNvbG9y
Q2hvb3NlckNsaWVudDo6ZGlzY2FyZENob29zZXIpOiBEaXNjYXJkcyB0aGUgY29ubmVjdGVkIGNv
bG9yIGNob29zZXIuCisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXI6OkNvbG9yQ2hvb3Nl
cik6IENvbG9yQ2hvb3NlciBpcyBSZWZDb3VudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JD
aG9vc2VyOjpjcmVhdGUpOiBDcmVhdGVzIGEgQ29sb3JDaG9vc2VyIHRoYXQgaXMgY29ubmVjdGVk
IHRvIHRoZSBnaXZlbiBDb2xvckNob29zZXJDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpDb2xv
ckNob29zZXI6On5Db2xvckNob29zZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2Vy
OjpkaWRDaG9vc2VDb2xvcik6IENhbGxlZCBmcm9tIFdlYktpdCBzaWRlIHdoZW4gdXNlciBjaG9z
ZSBhIGNvbG9yLiBDYWxscyBDb2xvckNob29zZXJDbGllbnQ6OmRpZENob29zZUNvbG9yCisgICAg
ICAgIChXZWJDb3JlOjpDb2xvckNob29zZXI6OmRpZENsZWFudXApOiBDYWxsZWQgZnJvbSBXZWJL
aXQgc2lkZSB3aGVuIHVzZXIgY29sb3IgY2hvb3NlciB3YXMgY2xlYW5lZCB1cC4gQ2FsbHMgQ29s
b3JDaG9vc2VyQ2xpZW50OjpkaWRDbGVhbnVwCisgICAgICAgICogcGxhdGZvcm0vQ29sb3JDaG9v
c2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQ6OmNob29zZXIpOiBS
ZXR1cm5zIHRoZSBjdXJyZW50IENvbG9yQ2hvb3Nlci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbG9y
Q2hvb3Nlcjo6ZGlzY29ubmVjdENsaWVudCk6IERpc2Nvbm5lY3RzIHRoZSBDb2xvckNob29zZXJD
bGllbnQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKTogQWRkZWQgZWxlbWVudCBh
cmd1bWVudC4gVGhpcyBjYWxscyBkaWRDaG9vc2VDb2xvciBvbiB0aGUgQ29sb3JDaG9vc2VyIG9m
IHRoYXQgZWxlbWVudC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDogUmVtb3ZlZCBjb25uZWN0Q29sb3JDaG9vc2VyQ2xpZW50
IGFuZCB1cGRhdGVkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIuCisKIDIwMTEtMTEtMDQgIFBh
dHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBDTWFrZSBidWlsZCBmaXggZm9yICFFTkFCTEUoU1FMX0RBVEFCQVNFKS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KaW5kZXggYzkzNGQwNTI0ODFjM2Q0ZTdkZTc0Y2I2ODg2MmU2Yjg2NGY0NTRkMS4uNzdm
YjMwZDE1YTQ3OTM2ZTM0NTgxOTVmOWI5MjNiZTg4OGIwNjk2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTE5NzcsMTAgKzE5NzcsOCBAQCBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjRz
ZXREZWZhdWx0U3RvcmFnZVNlc3Npb25FUEsyMV9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbgogI2VuZGlm
CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi1fX1pON1dlYkNvcmUxMkNvbG9yQ2hvb3Nlcjdj
aG9vc2VyRXYKLV9fWk5LN1dlYkNvcmUxMkNvbG9yQ2hvb3NlcjEzZGlkQ2hvb3NlQ29sb3JFUktO
U181Q29sb3JFCiBfX1pON1dlYkNvcmU1Q29sb3JDMUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2Vi
Q29yZTE2SFRNTElucHV0RWxlbWVudDIxY29ubmVjdFRvQ29sb3JDaG9vc2VyRXYKK19fWk43V2Vi
Q29yZTE2SFRNTElucHV0RWxlbWVudDI1c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlckVSS05TXzVD
b2xvckUKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4
IDhlNzk0MjEzMjg2YTJlYmNiNWQyNTczNzU2NmQ1MDI5YWE3NTYzZTQuLjVjYzU1MDM3MTE4NjFk
ZjJlOTA3MjBhMDEyNTQ4NzRkNjgyYTYyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBDb2xvcklu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiAKIENvbG9ySW5wdXRU
eXBlOjp+Q29sb3JJbnB1dFR5cGUoKQogewotICAgIGNsZWFudXBDb2xvckNob29zZXJJZkN1cnJl
bnRDbGllbnQoKTsKKyAgICBjbGVhbnVwQ29sb3JDaG9vc2VyKCk7CiB9CiAKIGJvb2wgQ29sb3JJ
bnB1dFR5cGU6OmlzQ29sb3JDb250cm9sKCkgY29uc3QKQEAgLTEyNiwxMCArMTI2LDkgQEAgdm9p
ZCBDb2xvcklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCB2YWx1
ZUNoYW5nZWQsIGJvb2wgc2VuZEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRlQ29sb3JT
d2F0Y2goKTsKLSAgICBpZiAoQ29sb3JDaG9vc2VyOjpjaG9vc2VyKCktPmNsaWVudCgpID09IHRo
aXMpIHsKLSAgICAgICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpCi0gICAg
ICAgICAgICBjaHJvbWUtPnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcih2YWx1ZUFzQ29s
b3IoKSk7Ci0gICAgfQorICAgIENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCk7CisgICAg
aWYgKGNocm9tZSAmJiBjaG9vc2VyKCkpCisgICAgICAgIGNocm9tZS0+c2V0U2VsZWN0ZWRDb2xv
ckluQ29sb3JDaG9vc2VyKGNob29zZXIoKSwgdmFsdWVBc0NvbG9yKCkpOwogfQogCiB2b2lkIENv
bG9ySW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KiBldmVudCkKQEAgLTE0
MCwxNiArMTM5LDE0IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZl
bnQoRXZlbnQqIGV2ZW50KQogICAgIGlmICghU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChDaHJvbWUqIGNocm9tZSA9
IHRoaXMtPmNocm9tZSgpKSB7Ci0gICAgICAgIENvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5jb25u
ZWN0Q2xpZW50KHRoaXMpOwotICAgICAgICBjaHJvbWUtPm9wZW5Db2xvckNob29zZXIoQ29sb3JD
aG9vc2VyOjpjaG9vc2VyKCksIHZhbHVlQXNDb2xvcigpKTsKLSAgICB9CisgICAgaWYgKENocm9t
ZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpCisgICAgICAgIGNocm9tZS0+b3BlbkNvbG9yQ2hv
b3NlcihuZXdDb2xvckNob29zZXIoKSwgdmFsdWVBc0NvbG9yKCkpOwogICAgIGV2ZW50LT5zZXRE
ZWZhdWx0SGFuZGxlZCgpOwogfQogCiB2b2lkIENvbG9ySW5wdXRUeXBlOjpkZXRhY2goKQogewot
ICAgIGNsZWFudXBDb2xvckNob29zZXJJZkN1cnJlbnRDbGllbnQoKTsKKyAgICBjbGVhbnVwQ29s
b3JDaG9vc2VyKCk7CiB9CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmRpZENob29zZUNvbG9yKGNv
bnN0IENvbG9yJiBjb2xvcikKQEAgLTE2MSwxNyArMTU4LDE3IEBAIHZvaWQgQ29sb3JJbnB1dFR5
cGU6OmRpZENob29zZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBlbGVtZW50KCktPmRp
c3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogfQogCi1ib29sIENvbG9ySW5wdXRUeXBl
Ojppc0NvbG9ySW5wdXRUeXBlKCkgY29uc3QKK3ZvaWQgQ29sb3JJbnB1dFR5cGU6OmRpZENsZWFu
dXAoKQogewotICAgIHJldHVybiB0cnVlOworICAgIGRpc2NhcmRDaG9vc2VyKCk7CiB9CiAKLXZv
aWQgQ29sb3JJbnB1dFR5cGU6OmNsZWFudXBDb2xvckNob29zZXJJZkN1cnJlbnRDbGllbnQoKSBj
b25zdAordm9pZCBDb2xvcklucHV0VHlwZTo6Y2xlYW51cENvbG9yQ2hvb3NlcigpCiB7Ci0gICAg
aWYgKENvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5jbGllbnQoKSAhPSB0aGlzKQotICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpCi0gICAgICAg
IGNocm9tZS0+Y2xlYW51cENvbG9yQ2hvb3NlcigpOworICAgIENocm9tZSogY2hyb21lID0gdGhp
cy0+Y2hyb21lKCk7CisgICAgaWYgKGNocm9tZSAmJiBjaG9vc2VyKCkuZ2V0KCkpCisgICAgICAg
IGNocm9tZS0+Y2xlYW51cENvbG9yQ2hvb3NlcihjaG9vc2VyKCkpOworICAgIGRpc2NhcmRDaG9v
c2VyKCk7CiB9CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OnVwZGF0ZUNvbG9yU3dhdGNoKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCBhZDhhZmM0ZmM4MWRjMzI0YTkwOGRm
YzgyNTYwZGE2NjlhN2VjYTI5Li5iNzhjZDI5ZmQ3NDAzNWYyNmNkOTViNzU5MzMwZjc4ZWFjYWU4
NzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC01OCw5ICs1OCw5IEBA
IHByaXZhdGU6CiAKICAgICAvLyBDb2xvckNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCiAg
ICAgdmlydHVhbCB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IENvbG9yJik7Ci0gICAgdmlydHVh
bCBib29sIGlzQ29sb3JJbnB1dFR5cGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xl
YW51cCgpOwogCi0gICAgdm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VySWZDdXJyZW50Q2xpZW50KCkg
Y29uc3Q7CisgICAgdm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VyKCk7CiAgICAgdm9pZCB1cGRhdGVD
b2xvclN3YXRjaCgpOwogICAgIEhUTUxFbGVtZW50KiBzaGFkb3dDb2xvclN3YXRjaCgpIGNvbnN0
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDllZmQ0
ZGIyYWMwYjk5ZTA1OTNjNTI0MmE0YjA2ZjlmOTRkYmQxY2QuLjk0YTk5MmQ3N2NmNTZiZjg3MWM0
YzVkN2Q4MDk3MDJmMDI3OTJjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcApAQCAtMTUyMywxMiArMTUyMywxNCBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJl
Y2FsY1dpbGxWYWxpZGF0ZSgpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi1i
b29sIEhUTUxJbnB1dEVsZW1lbnQ6OmNvbm5lY3RUb0NvbG9yQ2hvb3NlcigpCit2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoY29uc3QgQ29sb3ImIGNvbG9y
KQogewogICAgIGlmICghbV9pbnB1dFR5cGUtPmlzQ29sb3JDb250cm9sKCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICBDb2xvckNob29zZXI6OmNob29zZXIoKS0+Y29ubmVjdENsaWVudChz
dGF0aWNfY2FzdDxDb2xvcklucHV0VHlwZSo+KG1faW5wdXRUeXBlLmdldCgpKSk7Ci0gICAgcmV0
dXJuIHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICBSZWZQdHI8Q29sb3JDaG9vc2VyPiBjaG9v
c2VyID0gc3RhdGljX2Nhc3Q8Q29sb3JJbnB1dFR5cGUqPihtX2lucHV0VHlwZS5nZXQoKSktPmNo
b29zZXIoKTsKKyAgICBpZiAoIWNob29zZXIpCisgICAgICAgIHJldHVybjsKKyAgICBjaG9vc2Vy
LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7CiB9CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMDJjOGY4ZmI1ZTM4MzMyMjMyMDEwZjZkNTkwNGRk
M2U0NGU2ZTU1Ny4uYjUwYjUwOTQ5MDlmYzVmNDcxYjEyNTdmNGE3ZGQzNGNhOWU2ZmE0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTIyOSw3ICsyMjksNyBAQCBw
dWJsaWM6CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgLy8gRm9yIHRlc3QgcHVycG9z
ZXMuCi0gICAgYm9vbCBjb25uZWN0VG9Db2xvckNob29zZXIoKTsKKyAgICB2b2lkIHNlbGVjdENv
bG9ySW5Db2xvckNob29zZXIoY29uc3QgQ29sb3ImKTsKICNlbmRpZgogCiAgICAgU3RyaW5nIGRl
ZmF1bHRUb29sVGlwKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5k
ZXggMmI3NWVmYmFkODk0M2ViZjI2ODgzZmJjMzhhMjBiMWMxMTM2ZGI3Ni4uZDc4NjhhYzAzNmJi
YTYxZjIzM2Q1NmUyNmY5ZGRjNzEwZGU0NWJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuaApAQCAtMTk2LDkgKzE5Niw5IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxF
KElOUFVUX0NPTE9SKQotICAgIHZvaWQgb3BlbkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBj
b25zdCBDb2xvciYpIHsgfQotICAgIHZvaWQgY2xlYW51cENvbG9yQ2hvb3NlcigpIHsgfQotICAg
IHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKGNvbnN0IENvbG9yJikgeyB9Cisg
ICAgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKFBhc3NSZWZQdHI8Q29sb3JDaG9vc2VyPiwgY29uc3Qg
Q29sb3ImKSB7IH0KKyAgICB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoUGFzc1JlZlB0cjxDb2xv
ckNob29zZXI+KSB7IH0KKyAgICB2b2lkIHNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3NlcihQ
YXNzUmVmUHRyPENvbG9yQ2hvb3Nlcj4sIGNvbnN0IENvbG9yJikgeyB9CiAjZW5kaWYKIAogICAg
IHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2Vy
PikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggN2UzYzZjMzVhNDkwN2E4Yjc0YWNjN2Mw
ZmRlY2I2OTcyMTBlNTY3OS4uMTlhYWEzODc0YWFkM2M3MDA2ZTYxYjI4ZmYzOTlhYjQ2ODU2Y2U0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDU4LDE5ICs0NTgsMTkgQEAgdm9pZCBDaHJv
bWU6OmVudW1lcmF0ZUNob3NlbkRpcmVjdG9yeShGaWxlQ2hvb3NlciogZmlsZUNob29zZXIpCiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKLXZvaWQgQ2hyb21lOjpvcGVuQ29sb3JD
aG9vc2VyKENvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyLCBjb25zdCBDb2xvciYgaW5pdGlhbENv
bG9yKQordm9pZCBDaHJvbWU6Om9wZW5Db2xvckNob29zZXIoUGFzc1JlZlB0cjxDb2xvckNob29z
ZXI+IGNvbG9yQ2hvb3NlciwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsKICAgICBtX2Ns
aWVudC0+b3BlbkNvbG9yQ2hvb3Nlcihjb2xvckNob29zZXIsIGluaXRpYWxDb2xvcik7CiB9CiAK
LXZvaWQgQ2hyb21lOjpjbGVhbnVwQ29sb3JDaG9vc2VyKCkKK3ZvaWQgQ2hyb21lOjpjbGVhbnVw
Q29sb3JDaG9vc2VyKFBhc3NSZWZQdHI8Q29sb3JDaG9vc2VyPiBjb2xvckNob29zZXIpCiB7Ci0g
ICAgbV9jbGllbnQtPmNsZWFudXBDb2xvckNob29zZXIoKTsKKyAgICBtX2NsaWVudC0+Y2xlYW51
cENvbG9yQ2hvb3Nlcihjb2xvckNob29zZXIpOwogfQogCi12b2lkIENocm9tZTo6c2V0U2VsZWN0
ZWRDb2xvckluQ29sb3JDaG9vc2VyKGNvbnN0IENvbG9yJiBjb2xvcikKK3ZvaWQgQ2hyb21lOjpz
ZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoUGFzc1JlZlB0cjxDb2xvckNob29zZXI+IGNv
bG9yQ2hvb3NlciwgY29uc3QgQ29sb3ImIGNvbG9yKQogewotICAgIG1fY2xpZW50LT5zZXRTZWxl
Y3RlZENvbG9ySW5Db2xvckNob29zZXIoY29sb3IpOworICAgIG1fY2xpZW50LT5zZXRTZWxlY3Rl
ZENvbG9ySW5Db2xvckNob29zZXIoY29sb3JDaG9vc2VyLCBjb2xvcik7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmgKaW5kZXggNDU2NjZlYTM1ZGQzNjg4YmZmMzM3MTExZmU5OWRlYmI4OThi
MmQ2Zi4uYmI1M2VhMDIwMmI0MWMzNWQxMGMzNTBiOGQ0MmE0YTdjYWI5NWIwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCkBAIC0xNTYsOSArMTU2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSos
IEdlb2xvY2F0aW9uKik7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi0gICAgICAgIHZvaWQg
b3BlbkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBjb25zdCBDb2xvciYpOwotICAgICAgICB2
b2lkIGNsZWFudXBDb2xvckNob29zZXIoKTsKLSAgICAgICAgdm9pZCBzZXRTZWxlY3RlZENvbG9y
SW5Db2xvckNob29zZXIoY29uc3QgQ29sb3ImKTsKKyAgICAgICAgdm9pZCBvcGVuQ29sb3JDaG9v
c2VyKFBhc3NSZWZQdHI8Q29sb3JDaG9vc2VyPiwgY29uc3QgQ29sb3ImKTsKKyAgICAgICAgdm9p
ZCBjbGVhbnVwQ29sb3JDaG9vc2VyKFBhc3NSZWZQdHI8Q29sb3JDaG9vc2VyPik7CisgICAgICAg
IHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKFBhc3NSZWZQdHI8Q29sb3JDaG9v
c2VyPiwgY29uc3QgQ29sb3ImKTsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgcnVuT3BlblBhbmVs
KEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggY2RlN2M0MmIxOWY2MmJhZDlhNzdlNzdjYTJhNTg2YmI0MTllOTY5OS4uYzA1
Y2Y3MDI2MGUxYWM1NGIwNDgzNmM0NmQ1ZGQ0ZDIyNmY4Y2E5OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC0yMjcsOSArMjI3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdEZvckZy
YW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKSA9IDA7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1Ip
Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNv
bnN0IENvbG9yJikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cENvbG9yQ2hvb3Nl
cigpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hv
b3Nlcihjb25zdCBDb2xvciYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIG9wZW5Db2xvckNo
b29zZXIoUGFzc1JlZlB0cjxDb2xvckNob29zZXI+LCBjb25zdCBDb2xvciYpID0gMDsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoUGFzc1JlZlB0cjxDb2xvckNob29z
ZXI+KSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNo
b29zZXIoUGFzc1JlZlB0cjxDb2xvckNob29zZXI+LCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRp
ZgogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRy
PEZpbGVDaG9vc2VyPikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29sb3JDaG9vc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5j
cHAKaW5kZXggNmUwZTdjYjRlZDUwNmVlMTNlMGMwMmIzYjVkZGJiYjJiOGQ2MjMzMS4uZTMyOWVl
N2M2OTQ0YjY3NTk5MDBhOWNmNDJhY2Q5N2NlZDA2NzhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db2xvckNob29zZXIuY3BwCkBAIC0zOCwzNiArMzgsNTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBDb2xvckNob29zZXJDbGllbnQ6On5Db2xvckNob29zZXJDbGllbnQoKQogewotICAg
IENvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5kaXNjb25uZWN0Q2xpZW50KHRoaXMpOworICAgIGRp
c2NhcmRDaG9vc2VyKCk7CiB9CiAKLXN0YXRpYyBDb2xvckNob29zZXIqIHN0YXRpY0Nob29zZXIg
PSAwOworQ29sb3JDaG9vc2VyKiBDb2xvckNob29zZXJDbGllbnQ6Om5ld0NvbG9yQ2hvb3Nlcigp
Cit7CisgICAgZGlzY2FyZENob29zZXIoKTsKKworICAgIG1fY2hvb3NlciA9IENvbG9yQ2hvb3Nl
cjo6Y3JlYXRlKHRoaXMpOworICAgIHJldHVybiBtX2Nob29zZXIuZ2V0KCk7Cit9CisKK3ZvaWQg
Q29sb3JDaG9vc2VyQ2xpZW50OjpkaXNjYXJkQ2hvb3NlcigpCit7CisgICAgaWYgKG1fY2hvb3Nl
cikKKyAgICAgICAgbV9jaG9vc2VyLT5kaXNjb25uZWN0Q2xpZW50KCk7CisgICAgICBtX2Nob29z
ZXIuY2xlYXIoKTsKK30KIAotQ29sb3JDaG9vc2VyKiBDb2xvckNob29zZXI6OmNob29zZXIoKQor
aW5saW5lIENvbG9yQ2hvb3Nlcjo6Q29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xp
ZW50KQorICAgIDogbV9jbGllbnQoY2xpZW50KQogewotICAgIGlmICghc3RhdGljQ2hvb3NlcikK
LSAgICAgICAgc3RhdGljQ2hvb3NlciA9IGFkb3B0UHRyKG5ldyBDb2xvckNob29zZXIoKSkubGVh
a1B0cigpOwotICAgIHJldHVybiBzdGF0aWNDaG9vc2VyOwogfQogCi12b2lkIENvbG9yQ2hvb3Nl
cjo6Y29ubmVjdENsaWVudChDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkKK1Bhc3NSZWZQdHI8
Q29sb3JDaG9vc2VyPiBDb2xvckNob29zZXI6OmNyZWF0ZShDb2xvckNob29zZXJDbGllbnQqIGNs
aWVudCkKIHsKLSAgICBpZiAoY2xpZW50ICE9IG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudCA9
IGNsaWVudDsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvbG9yQ2hvb3NlcihjbGllbnQpKTsK
IH0KIAotdm9pZCBDb2xvckNob29zZXI6OmRpc2Nvbm5lY3RDbGllbnQoQ29sb3JDaG9vc2VyQ2xp
ZW50KiBjbGllbnQpCitDb2xvckNob29zZXI6On5Db2xvckNob29zZXIoKQogewotICAgIGlmIChj
bGllbnQgPT0gbV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50ID0gMDsKIH0KIAotdm9pZCBDb2xv
ckNob29zZXI6OmRpZENob29zZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikgY29uc3QKK3ZvaWQg
Q29sb3JDaG9vc2VyOjpkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAg
aWYgKG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+ZGlkQ2hvb3NlQ29sb3IoY29sb3IpOwog
fQogCit2b2lkIENvbG9yQ2hvb3Nlcjo6ZGlkQ2xlYW51cCgpCit7CisgICAgaWYgKG1fY2xpZW50
KQorICAgICAgICBtX2NsaWVudC0+ZGlkQ2xlYW51cCgpOworfQorCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoSU5QVVRfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
b2xvckNob29zZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5oCmlu
ZGV4IDFlNjg3ODgzMjk0NDI4ODk0MjEwZTNiNjM5MjE0M2FhMGU3MDQ3NjguLjEzNDBjNmNlMjE0
ZWE2NmNlM2MyNjhiYjRiNzZkNjVjNWJmM2FmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bG9yQ2hvb3Nlci5oCkBAIC0zMSw2ICszMSw4IEBACiAjZGVmaW5lIENvbG9yQ2hvb3Nlcl9oCiAK
ICNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogCkBAIC00MiwyMyAr
NDQsMjkgQEAgY2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5Db2xvckNob29zZXJDbGllbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3Io
Y29uc3QgQ29sb3ImKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzQ29sb3JJbnB1dFR5cGUoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwKCkgPSAw
OworICAgIFBhc3NSZWZQdHI8Q29sb3JDaG9vc2VyPiBjaG9vc2VyKCkgeyByZXR1cm4gbV9jaG9v
c2VyOyB9CisKK3Byb3RlY3RlZDoKKyAgICBDb2xvckNob29zZXIqIG5ld0NvbG9yQ2hvb3Nlcigp
OworICAgIHZvaWQgZGlzY2FyZENob29zZXIoKTsKKworcHJpdmF0ZToKKyAgICBSZWZQdHI8Q29s
b3JDaG9vc2VyPiBtX2Nob29zZXI7CiB9OwogCi1jbGFzcyBDb2xvckNob29zZXIgeworY2xhc3Mg
Q29sb3JDaG9vc2VyIDogcHVibGljIFJlZkNvdW50ZWQ8Q29sb3JDaG9vc2VyPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIENvbG9yQ2hvb3NlciogY2hvb3NlcigpOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlKENvbG9yQ2hvb3NlckNsaWVudCopOworICAgIH5Db2xv
ckNob29zZXIoKTsKIAotICAgIENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9jbGllbnQ7IH07Ci0gICAgdm9pZCBjb25uZWN0Q2xpZW50KENvbG9yQ2hvb3NlckNs
aWVudCopOwotICAgIHZvaWQgZGlzY29ubmVjdENsaWVudChDb2xvckNob29zZXJDbGllbnQqKTsK
KyAgICB2b2lkIGRpc2Nvbm5lY3RDbGllbnQoKSB7IG1fY2xpZW50ID0gMDsgfQogCi0gICAgdm9p
ZCBkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xvciYpIGNvbnN0OworICAgIHZvaWQgZGlkQ2hvb3Nl
Q29sb3IoY29uc3QgQ29sb3ImKTsKKyAgICB2b2lkIGRpZENsZWFudXAoKTsKIAogcHJpdmF0ZToK
LSAgICBDb2xvckNob29zZXIoKQotICAgICAgICA6IG1fY2xpZW50KDApCi0gICAgeyB9CisgICAg
Q29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCopOwogCiAgICAgQ29sb3JDaG9vc2VyQ2xp
ZW50KiBtX2NsaWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXgg
YWVmYTRkOTYzZjM4OGM5OTQzMzNiZDIwYWZkMjFiNDBmY2U1ZWI1NS4uYjFkZGQxOWFiNzJlOTYw
ZGI4OTBkYjU1YzE3OTNhMTkzYmM5M2E4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcApAQCAtMTc0LDE5ICsxNzQsMTQgQEAgU3RyaW5nIEludGVybmFsczo6c2hhZG93UHNldWRv
SWQoRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB9CiAKICNpZiBFTkFCTEUo
SU5QVVRfQ09MT1IpCi1ib29sIEludGVybmFsczo6Y29ubmVjdENvbG9yQ2hvb3NlckNsaWVudChF
bGVtZW50KiBlbGVtZW50KQordm9pZCBJbnRlcm5hbHM6OnNlbGVjdENvbG9ySW5Db2xvckNob29z
ZXIoRWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiBjb2xvclZhbHVlKQogewogICAgIGlm
ICghZWxlbWVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmlucHV0VGFnKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICByZXR1cm47CiAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXRF
bGVtZW50ID0gZWxlbWVudC0+dG9JbnB1dEVsZW1lbnQoKTsKICAgICBpZiAoIWlucHV0RWxlbWVu
dCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBpbnB1dEVsZW1lbnQtPmNvbm5l
Y3RUb0NvbG9yQ2hvb3NlcigpOwotfQotCi12b2lkIEludGVybmFsczo6c2VsZWN0Q29sb3JJbkNv
bG9yQ2hvb3Nlcihjb25zdCBTdHJpbmcmIGNvbG9yVmFsdWUpCi17Ci0gICAgQ29sb3JDaG9vc2Vy
OjpjaG9vc2VyKCktPmNvbG9yU2VsZWN0ZWQoQ29sb3IoY29sb3JWYWx1ZSkpOworICAgICAgICBy
ZXR1cm47CisgICAgaW5wdXRFbGVtZW50LT5zZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKENvbG9y
KGNvbG9yVmFsdWUpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCAxOGI0MjI1YmUxZmE3MDE4NTg1NTNiZjM3MzRkZmYwMzY1NmYwZTg2Li5lZDBmNmQ5MmIx
ZGVkZWZlNTVhOWQ4YTY4MWQ5ZDI4YzBiY2VjYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTYwLDggKzYwLDcgQEAgcHVibGljOgogICAgIEVsZW1lbnQqIGdldEVsZW1lbnRC
eUlkSW5TaGFkb3dSb290KE5vZGUqIHNoYWRvd1Jvb3QsIGNvbnN0IFN0cmluZyYgaWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKLSAgICBib29sIGNvbm5lY3RD
b2xvckNob29zZXJDbGllbnQoRWxlbWVudCopOwotICAgIHZvaWQgc2VsZWN0Q29sb3JJbkNvbG9y
Q2hvb3Nlcihjb25zdCBTdHJpbmcmIGNvbG9yVmFsdWUpOworICAgIHZvaWQgc2VsZWN0Q29sb3JJ
bkNvbG9yQ2hvb3NlcihFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBjb2xvclZhbHVlKTsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bAppbmRleCAzODUwYmJiOGZhZjdlZDY3Y2ViYjVlZGZkMTFmYjM0NWZkMjBkZjY1Li40YTM2NjM4
YTY2YzAyZTc3ZDk1N2QyNTlkNTMwMjJhNjQzMDUwNjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCkBAIC0zOSw4ICszOSw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBF
bGVtZW50IGdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KGluIE5vZGUgc2hhZG93Um9vdCwgaW4g
RE9NU3RyaW5nIGlkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogI2lmIGRlZmluZWQoRU5BQkxF
X0lOUFVUX0NPTE9SKSAmJiBFTkFCTEVfSU5QVVRfQ09MT1IKLSAgICAgICAgYm9vbGVhbiBjb25u
ZWN0Q29sb3JDaG9vc2VyQ2xpZW50KGluIEVsZW1lbnQgZWxlbWVudCk7Ci0gICAgICAgIHZvaWQg
c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihpbiBET01TdHJpbmcgY29sb3JWYWx1ZSk7CisgICAg
ICAgIHZvaWQgc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihpbiBFbGVtZW50IGVsZW1lbnQsIGlu
IERPTVN0cmluZyBjb2xvclZhbHVlKTsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgc2V0SW5zcGVj
dG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcg
bWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplLCBpbiBsb25nIG1heGltdW1TaW5nbGVSZXNvdXJj
ZUNvbnRlbnRTaXplKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3MThmZDMwMGJhMzBl
YmYyNTFhYThlM2Q1YzFiMTVlNDg1OWE3MjZmLi5hNDI5MzFkNWRjMzA2NTdlNzFmN2UwMTU4YzM5
MGJmNWEyYWQ4MmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMTEtMDYgIEtlaXNoaSBI
YXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2hhbmdlIENvbG9yQ2hvb3Nl
ciBmcm9tIHNpbmdsZXRvbiB0byBvcmRpbmFyeSBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNjQ0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2NvbG9yL2lucHV0LWNvbG9y
LW9uY2hhbmdlLWV2ZW50Lmh0bWw6IENoYW5nZWQgdG8gbWF0Y2ggdGhlIGNoYW5nZXMgdG8gd2lu
ZG93LmludGVybmFscyBvYmplY3QKKwogMjAxMS0xMS0wNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBu
b3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBzb21lIGZhc3Qv
dmlld3BvcnQgZmFpbGluZyB0ZXN0cyBvbiBHVEsgYWZ0ZXIgcjk5MTk1LgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jb2xvci9pbnB1dC1jb2xvci1vbmNoYW5nZS1ldmVudC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jb2xvci9pbnB1dC1jb2xvci1vbmNoYW5nZS1l
dmVudC5odG1sCmluZGV4IDI2MzZlODM1MWZhNmY1OThhMWUzOWQwNjE5OTVhZjg4MmQ4NGVhZmQu
Ljk2MjljZWM2ODc3NWM1M2YzNTk3YjVmMmVkZjAyZDBhOGIwMWQzZjEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvY29sb3IvaW5wdXQtY29sb3Itb25jaGFuZ2UtZXZlbnQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbG9yL2lucHV0LWNvbG9yLW9uY2hhbmdl
LWV2ZW50Lmh0bWwKQEAgLTEyLDE2ICsxMiwyNiBAQCBkZXNjcmlwdGlvbignVGVzdCBpZiBjaGFu
Z2UgZXZlbnQgZmlyZXMgcHJvcGVybHkgd2hlbiBjb2xvciBjaG9vc2VyIGNoYW5nZXMuIEJ1Zwog
dmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTsKIGlucHV0LnR5cGUg
PSAnY29sb3InOwogaW5wdXQudmFsdWUgPSAnIzAwMDAwMCc7Citkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlucHV0KTsKKworaW5wdXQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOworaW5w
dXQuc3R5bGUubGVmdCA9ICcwJzsKK2lucHV0LnN0eWxlLnRvcCA9ICcwJzsKK2lucHV0LnN0eWxl
LndpZHRoID0gJzIwcHgnOworaW5wdXQuc3R5bGUuaGVpZ2h0ID0gJzIwcHgnOworCiBpbnB1dC5v
bmNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgIGRlYnVnKCJ2YWx1ZSBjaGFuZ2VkIHRvICIgKyBp
bnB1dC52YWx1ZSk7Ci0gICAgZmluaXNoSlNUZXN0KCk7CiB9OwotaWYgKCFpbnRlcm5hbHMuY29u
bmVjdENvbG9yQ2hvb3NlckNsaWVudChpbnB1dCkpCi0gICAgdGVzdEZhaWxlZCgiQ291bGQgbm90
IGNvbm5lY3QgQ29sb3JDaG9vc2VyQ2xpZW50LiIpOwotaW50ZXJuYWxzLnNlbGVjdENvbG9ySW5D
b2xvckNob29zZXIoJyNmZjAwMDAnKTsKKworZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEw
KTsKK2V2ZW50U2VuZGVyLm1vdXNlRG93bigpOworZXZlbnRTZW5kZXIubW91c2VVcCgpOwogLy8g
aW5wdXQub25jaGFuZ2Ugc2hvdWxkIGJlIGNhbGxlZAotaW50ZXJuYWxzLnNlbGVjdENvbG9ySW5D
b2xvckNob29zZXIoJyNmZjAwMDAnKTsKK2ludGVybmFscy5zZWxlY3RDb2xvckluQ29sb3JDaG9v
c2VyKGlucHV0LCAnI2ZmMDAwMCcpOwogLy8gaW5wdXQub25jaGFuZ2Ugc2hvdWxkIG5vdCBiZSBj
YWxsZWQKK2ludGVybmFscy5zZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKGlucHV0LCAnI2ZmMDAw
MCcpOworCiBzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIiNmZjAwMDAiJyk7CiA8L3NjcmlwdD4K
IDwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113825</attachid>
            <date>2011-11-06 23:10:34 -0800</date>
            <delta_ts>2011-11-07 00:18:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71644-20111107161032.patch</filename>
            <type>text/plain</type>
            <size>19418</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjI0NzczMTkzNDk2M2Vh
ZGNkZTA2ZjMwMjMwMDlmOGE4NzQxYmJmLi5lZWJiMjIzY2E0ODQ1ZWM2ZTQ4MGM2ZWU0OTg1MTk3
YWFlN2RjMTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMTEtMDYgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2hhbmdlIENvbG9yQ2hv
b3NlciBmcm9tIHNpbmdsZXRvbiB0byBvcmRpbmFyeSBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNjQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdpbmcgV2ViQ29yZTo6Q29sb3JDaG9v
c2VyIGZyb20gYSBzaW5nbGV0b24gdG8gYW4gb3JkaW5hcnkgb2JqZWN0IGNhbiBicm9hZGVuIGhv
dyBicm93c2VycyBpbXBsZW1lbnQgdGhlIGNvbG9yIGNob29zZXIgaW50ZXJmYWNlLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6fkNvbG9ySW5wdXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZSk6IElmIGEgY2hvb3NlciBl
eGlzdHMsIGNhbGxzIENocm9tZTo6c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyCisgICAg
ICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbG9ySW5wdXRUeXBlOjpkaWRDbGVhbnVwKTogQ2FsbGVkIGFmdGVyIGNsZWFudXAgaXMg
Y29tcGxldGUuCisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y2xlYW51cENvbG9y
Q2hvb3Nlcik6IFJlbmFtZWQgZnJvbSBjbGVhbnVwQ29sb3JDaG9vc2VySWZDdXJyZW50Q2xpZW50
LgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2Vs
ZWN0Q29sb3JJbkNvbG9yQ2hvb3Nlcik6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
Lmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6
RW1wdHlDaHJvbWVDbGllbnQ6OmNsZWFudXBDb2xvckNob29zZXIpOiBBZGRlZCBjb2xvckNob29z
ZXIgYXJndW1lbnQgYmVjYXVzZSB0aGVyZSBhcmUgbWFueSBXZWJDb3JlOjpDb2xvckNob29zZXJz
IG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzZXRTZWxlY3RlZENv
bG9ySW5Db2xvckNob29zZXIpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmNsZWFudXBDb2xvckNob29zZXIpOiBBZGRlZCBjb2xv
ckNob29zZXIgYXJndW1lbnQgYmVjYXVzZSB0aGVyZSBhcmUgbWFueSBXZWJDb3JlOjpDb2xvckNo
b29zZXJzIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2V0U2VsZWN0ZWRDb2xvcklu
Q29sb3JDaG9vc2VyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAg
KiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0NvbG9yQ2hvb3Nlci5j
cHA6IFN0eWxlZCBhZnRlciBGaWxlQ2hvb3NlcgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9v
c2VyQ2xpZW50Ojp+Q29sb3JDaG9vc2VyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9y
Q2hvb3NlckNsaWVudDo6bmV3Q29sb3JDaG9vc2VyKTogQ3JlYXRlcyBhIG5ldyBjb2xvciBjaG9v
c2VyIHRoYXQgaXMgY29ubmVjdGVkIHRvIGl0c2VsZi4KKyAgICAgICAgKFdlYkNvcmU6OkNvbG9y
Q2hvb3NlckNsaWVudDo6ZGlzY2FyZENob29zZXIpOiBEaXNjYXJkcyB0aGUgY29ubmVjdGVkIGNv
bG9yIGNob29zZXIuCisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXI6OkNvbG9yQ2hvb3Nl
cik6IENvbG9yQ2hvb3NlciBpcyBSZWZDb3VudGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JD
aG9vc2VyOjpjcmVhdGUpOiBDcmVhdGVzIGEgQ29sb3JDaG9vc2VyIHRoYXQgaXMgY29ubmVjdGVk
IHRvIHRoZSBnaXZlbiBDb2xvckNob29zZXJDbGllbnQuCisgICAgICAgIChXZWJDb3JlOjpDb2xv
ckNob29zZXI6On5Db2xvckNob29zZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2Vy
OjpkaWRDaG9vc2VDb2xvcik6IENhbGxlZCBmcm9tIFdlYktpdCBzaWRlIHdoZW4gdXNlciBjaG9z
ZSBhIGNvbG9yLiBDYWxscyBDb2xvckNob29zZXJDbGllbnQ6OmRpZENob29zZUNvbG9yCisgICAg
ICAgIChXZWJDb3JlOjpDb2xvckNob29zZXI6OmRpZENsZWFudXApOiBDYWxsZWQgZnJvbSBXZWJL
aXQgc2lkZSB3aGVuIHVzZXIgY29sb3IgY2hvb3NlciB3YXMgY2xlYW5lZCB1cC4gQ2FsbHMgQ29s
b3JDaG9vc2VyQ2xpZW50OjpkaWRDbGVhbnVwCisgICAgICAgICogcGxhdGZvcm0vQ29sb3JDaG9v
c2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQ6OmNob29zZXIpOiBS
ZXR1cm5zIHRoZSBjdXJyZW50IENvbG9yQ2hvb3Nlci4KKyAgICAgICAgKFdlYkNvcmU6OkNvbG9y
Q2hvb3Nlcjo6ZGlzY29ubmVjdENsaWVudCk6IERpc2Nvbm5lY3RzIHRoZSBDb2xvckNob29zZXJD
bGllbnQuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKTogQWRkZWQgZWxlbWVudCBh
cmd1bWVudC4gVGhpcyBjYWxscyBkaWRDaG9vc2VDb2xvciBvbiB0aGUgQ29sb3JDaG9vc2VyIG9m
IHRoYXQgZWxlbWVudC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmlkbDogUmVtb3ZlZCBjb25uZWN0Q29sb3JDaG9vc2VyQ2xpZW50
IGFuZCB1cGRhdGVkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIuCisKIDIwMTEtMTEtMDQgIFBh
dHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdl
ZCBDTWFrZSBidWlsZCBmaXggZm9yICFFTkFCTEUoU1FMX0RBVEFCQVNFKS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4KaW5kZXggYzkzNGQwNTI0ODFjM2Q0ZTdkZTc0Y2I2ODg2MmU2Yjg2NGY0NTRkMS4uNzdm
YjMwZDE1YTQ3OTM2ZTM0NTgxOTVmOWI5MjNiZTg4OGIwNjk2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KQEAgLTE5NzcsMTAgKzE5NzcsOCBAQCBfX1pON1dlYkNvcmUxNFJlc291cmNlSGFuZGxlMjRz
ZXREZWZhdWx0U3RvcmFnZVNlc3Npb25FUEsyMV9fQ0ZVUkxTdG9yYWdlU2Vzc2lvbgogI2VuZGlm
CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi1fX1pON1dlYkNvcmUxMkNvbG9yQ2hvb3Nlcjdj
aG9vc2VyRXYKLV9fWk5LN1dlYkNvcmUxMkNvbG9yQ2hvb3NlcjEzZGlkQ2hvb3NlQ29sb3JFUktO
U181Q29sb3JFCiBfX1pON1dlYkNvcmU1Q29sb3JDMUVSS04zV1RGNlN0cmluZ0UKLV9fWk43V2Vi
Q29yZTE2SFRNTElucHV0RWxlbWVudDIxY29ubmVjdFRvQ29sb3JDaG9vc2VyRXYKK19fWk43V2Vi
Q29yZTE2SFRNTElucHV0RWxlbWVudDI1c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlckVSS05TXzVD
b2xvckUKICNlbmRpZgogCiAjaWYgIWRlZmluZWQoTlNHRU9NRVRSWV9UWVBFU19TQU1FX0FTX0NH
R0VPTUVUUllfVFlQRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4
IDhlNzk0MjEzMjg2YTJlYmNiNWQyNTczNzU2NmQ1MDI5YWE3NTYzZTQuLjU3ZWU1NzcwMTdmYWIy
MzAwNzc5MjM1ZjBjYzVmZGNmMmFlODZmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBDb2xvcklu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiAKIENvbG9ySW5wdXRU
eXBlOjp+Q29sb3JJbnB1dFR5cGUoKQogewotICAgIGNsZWFudXBDb2xvckNob29zZXJJZkN1cnJl
bnRDbGllbnQoKTsKKyAgICBjbGVhbnVwQ29sb3JDaG9vc2VyKCk7CiB9CiAKIGJvb2wgQ29sb3JJ
bnB1dFR5cGU6OmlzQ29sb3JDb250cm9sKCkgY29uc3QKQEAgLTEyNiwxMCArMTI2LDkgQEAgdm9p
ZCBDb2xvcklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgYm9vbCB2YWx1
ZUNoYW5nZWQsIGJvb2wgc2VuZEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRlQ29sb3JT
d2F0Y2goKTsKLSAgICBpZiAoQ29sb3JDaG9vc2VyOjpjaG9vc2VyKCktPmNsaWVudCgpID09IHRo
aXMpIHsKLSAgICAgICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpCi0gICAg
ICAgICAgICBjaHJvbWUtPnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcih2YWx1ZUFzQ29s
b3IoKSk7Ci0gICAgfQorICAgIENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCk7CisgICAg
aWYgKGNocm9tZSAmJiBjaG9vc2VyKCkpCisgICAgICAgIGNocm9tZS0+c2V0U2VsZWN0ZWRDb2xv
ckluQ29sb3JDaG9vc2VyKGNob29zZXIoKSwgdmFsdWVBc0NvbG9yKCkpOwogfQogCiB2b2lkIENv
bG9ySW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50KiBldmVudCkKQEAgLTE0
MCwxNiArMTM5LDE0IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZl
bnQoRXZlbnQqIGV2ZW50KQogICAgIGlmICghU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChDaHJvbWUqIGNocm9tZSA9
IHRoaXMtPmNocm9tZSgpKSB7Ci0gICAgICAgIENvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5jb25u
ZWN0Q2xpZW50KHRoaXMpOwotICAgICAgICBjaHJvbWUtPm9wZW5Db2xvckNob29zZXIoQ29sb3JD
aG9vc2VyOjpjaG9vc2VyKCksIHZhbHVlQXNDb2xvcigpKTsKLSAgICB9CisgICAgaWYgKENocm9t
ZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpCisgICAgICAgIGNocm9tZS0+b3BlbkNvbG9yQ2hv
b3NlcihuZXdDb2xvckNob29zZXIoKSwgdmFsdWVBc0NvbG9yKCkpOwogICAgIGV2ZW50LT5zZXRE
ZWZhdWx0SGFuZGxlZCgpOwogfQogCiB2b2lkIENvbG9ySW5wdXRUeXBlOjpkZXRhY2goKQogewot
ICAgIGNsZWFudXBDb2xvckNob29zZXJJZkN1cnJlbnRDbGllbnQoKTsKKyAgICBjbGVhbnVwQ29s
b3JDaG9vc2VyKCk7CiB9CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmRpZENob29zZUNvbG9yKGNv
bnN0IENvbG9yJiBjb2xvcikKQEAgLTE2MSwxNyArMTU4LDE3IEBAIHZvaWQgQ29sb3JJbnB1dFR5
cGU6OmRpZENob29zZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKICAgICBlbGVtZW50KCktPmRp
c3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwogfQogCi1ib29sIENvbG9ySW5wdXRUeXBl
Ojppc0NvbG9ySW5wdXRUeXBlKCkgY29uc3QKK3ZvaWQgQ29sb3JJbnB1dFR5cGU6OmRpZENsZWFu
dXAoKQogewotICAgIHJldHVybiB0cnVlOworICAgIGRpc2NhcmRDaG9vc2VyKCk7CiB9CiAKLXZv
aWQgQ29sb3JJbnB1dFR5cGU6OmNsZWFudXBDb2xvckNob29zZXJJZkN1cnJlbnRDbGllbnQoKSBj
b25zdAordm9pZCBDb2xvcklucHV0VHlwZTo6Y2xlYW51cENvbG9yQ2hvb3NlcigpCiB7Ci0gICAg
aWYgKENvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5jbGllbnQoKSAhPSB0aGlzKQotICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpCi0gICAgICAg
IGNocm9tZS0+Y2xlYW51cENvbG9yQ2hvb3NlcigpOworICAgIENocm9tZSogY2hyb21lID0gdGhp
cy0+Y2hyb21lKCk7CisgICAgaWYgKGNocm9tZSAmJiBjaG9vc2VyKCkpCisgICAgICAgIGNocm9t
ZS0+Y2xlYW51cENvbG9yQ2hvb3NlcihjaG9vc2VyKCkpOworICAgIGRpc2NhcmRDaG9vc2VyKCk7
CiB9CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OnVwZGF0ZUNvbG9yU3dhdGNoKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCBhZDhhZmM0ZmM4MWRjMzI0YTkwOGRmYzgyNTYw
ZGE2NjlhN2VjYTI5Li5iNzhjZDI5ZmQ3NDAzNWYyNmNkOTViNzU5MzMwZjc4ZWFjYWU4NzAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC01OCw5ICs1OCw5IEBAIHByaXZh
dGU6CiAKICAgICAvLyBDb2xvckNob29zZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCiAgICAgdmly
dHVhbCB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IENvbG9yJik7Ci0gICAgdmlydHVhbCBib29s
IGlzQ29sb3JJbnB1dFR5cGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cCgp
OwogCi0gICAgdm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VySWZDdXJyZW50Q2xpZW50KCkgY29uc3Q7
CisgICAgdm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VyKCk7CiAgICAgdm9pZCB1cGRhdGVDb2xvclN3
YXRjaCgpOwogICAgIEhUTUxFbGVtZW50KiBzaGFkb3dDb2xvclN3YXRjaCgpIGNvbnN0OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDllZmQ0ZGIyYWMw
Yjk5ZTA1OTNjNTI0MmE0YjA2ZjlmOTRkYmQxY2QuLjk0YTk5MmQ3N2NmNTZiZjg3MWM0YzVkN2Q4
MDk3MDJmMDI3OTJjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cApAQCAtMTUyMywxMiArMTUyMywxNCBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJlY2FsY1dp
bGxWYWxpZGF0ZSgpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi1ib29sIEhU
TUxJbnB1dEVsZW1lbnQ6OmNvbm5lY3RUb0NvbG9yQ2hvb3NlcigpCit2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoY29uc3QgQ29sb3ImIGNvbG9yKQogewog
ICAgIGlmICghbV9pbnB1dFR5cGUtPmlzQ29sb3JDb250cm9sKCkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBDb2xvckNob29zZXI6OmNob29zZXIoKS0+Y29ubmVjdENsaWVudChzdGF0aWNf
Y2FzdDxDb2xvcklucHV0VHlwZSo+KG1faW5wdXRUeXBlLmdldCgpKSk7Ci0gICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIHJldHVybjsKKyAgICBSZWZQdHI8Q29sb3JDaG9vc2VyPiBjaG9vc2VyID0g
c3RhdGljX2Nhc3Q8Q29sb3JJbnB1dFR5cGUqPihtX2lucHV0VHlwZS5nZXQoKSktPmNob29zZXIo
KTsKKyAgICBpZiAoIWNob29zZXIpCisgICAgICAgIHJldHVybjsKKyAgICBjaG9vc2VyLT5kaWRD
aG9vc2VDb2xvcihjb2xvcik7CiB9CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKaW5kZXggMDJjOGY4ZmI1ZTM4MzMyMjMyMDEwZjZkNTkwNGRkM2U0NGU2
ZTU1Ny4uYjUwYjUwOTQ5MDlmYzVmNDcxYjEyNTdmNGE3ZGQzNGNhOWU2ZmE0MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTIyOSw3ICsyMjksNyBAQCBwdWJsaWM6
CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgLy8gRm9yIHRlc3QgcHVycG9zZXMuCi0g
ICAgYm9vbCBjb25uZWN0VG9Db2xvckNob29zZXIoKTsKKyAgICB2b2lkIHNlbGVjdENvbG9ySW5D
b2xvckNob29zZXIoY29uc3QgQ29sb3ImKTsKICNlbmRpZgogCiAgICAgU3RyaW5nIGRlZmF1bHRU
b29sVGlwKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggMmI3
NWVmYmFkODk0M2ViZjI2ODgzZmJjMzhhMjBiMWMxMTM2ZGI3Ni4uMTNjYzA4ZjMxNDNhYTBmOTc5
Mzg0NGE2ZjQzYTc4Njk0NGU0NmMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aApAQCAtMTk3LDggKzE5Nyw4IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikK
ICAgICB2b2lkIG9wZW5Db2xvckNob29zZXIoQ29sb3JDaG9vc2VyKiwgY29uc3QgQ29sb3ImKSB7
IH0KLSAgICB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoKSB7IH0KLSAgICB2b2lkIHNldFNlbGVj
dGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihjb25zdCBDb2xvciYpIHsgfQorICAgIHZvaWQgY2xlYW51
cENvbG9yQ2hvb3NlcihDb2xvckNob29zZXIqKSB7IH0KKyAgICB2b2lkIHNldFNlbGVjdGVkQ29s
b3JJbkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBjb25zdCBDb2xvciYpIHsgfQogI2VuZGlm
CiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4pIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDdlM2M2YzM1YTQ5MDdhOGI3
NGFjYzdjMGZkZWNiNjk3MjEwZTU2NzkuLjZkMGRhOGZjNGRmMjZjYWJkOWVlYmY0N2NjZmZlODJk
ODEzYzExYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTQ2MywxNCArNDYzLDE0IEBAIHZv
aWQgQ2hyb21lOjpvcGVuQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyLCBj
b25zdCBDb2xvciYgaW5pdGlhbENvCiAgICAgbV9jbGllbnQtPm9wZW5Db2xvckNob29zZXIoY29s
b3JDaG9vc2VyLCBpbml0aWFsQ29sb3IpOwogfQogCi12b2lkIENocm9tZTo6Y2xlYW51cENvbG9y
Q2hvb3NlcigpCit2b2lkIENocm9tZTo6Y2xlYW51cENvbG9yQ2hvb3NlcihDb2xvckNob29zZXIq
IGNvbG9yQ2hvb3NlcikKIHsKLSAgICBtX2NsaWVudC0+Y2xlYW51cENvbG9yQ2hvb3NlcigpOwor
ICAgIG1fY2xpZW50LT5jbGVhbnVwQ29sb3JDaG9vc2VyKGNvbG9yQ2hvb3Nlcik7CiB9CiAKLXZv
aWQgQ2hyb21lOjpzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoY29uc3QgQ29sb3ImIGNv
bG9yKQordm9pZCBDaHJvbWU6OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXIqIGNvbG9yQ2hvb3NlciwgY29uc3QgQ29sb3ImIGNvbG9yKQogewotICAgIG1fY2xpZW50
LT5zZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoY29sb3IpOworICAgIG1fY2xpZW50LT5z
ZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoY29sb3JDaG9vc2VyLCBjb2xvcik7CiB9CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNDU2NjZlYTM1ZGQzNjg4YmZmMzM3MTExZmU5
OWRlYmI4OThiMmQ2Zi4uNTFjNTkyMmM4NDFkMzc5OTMzMmE0MDM5NmY2YjY1NjRmNDgxZDgzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCkBAIC0xNTcsOCArMTU3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogICAgICAgICB2b2lkIG9wZW5Db2xvckNob29z
ZXIoQ29sb3JDaG9vc2VyKiwgY29uc3QgQ29sb3ImKTsKLSAgICAgICAgdm9pZCBjbGVhbnVwQ29s
b3JDaG9vc2VyKCk7Ci0gICAgICAgIHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2Vy
KGNvbnN0IENvbG9yJik7CisgICAgICAgIHZvaWQgY2xlYW51cENvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXIqKTsKKyAgICAgICAgdm9pZCBzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoQ29s
b3JDaG9vc2VyKiwgY29uc3QgQ29sb3ImKTsKICNlbmRpZgogCiAgICAgICAgIHZvaWQgcnVuT3Bl
blBhbmVsKEZyYW1lKiwgUGFzc1JlZlB0cjxGaWxlQ2hvb3Nlcj4pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lQ2xpZW50LmgKaW5kZXggY2RlN2M0MmIxOWY2MmJhZDlhNzdlNzdjYTJhNTg2YmI0MTllOTY5
OS4uN2NjYjc3YWRiOTlkYTE0YWU1ZTFhYTI3Mjc1ZjIzM2Q4M2RkYTE1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yMjgsOCArMjI4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogICAgICAgICB2aXJ0dWFsIHZvaWQgb3BlbkNv
bG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBjb25zdCBDb2xvciYpID0gMDsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBzZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoY29uc3QgQ29sb3ImKSA9IDA7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciopID0gMDsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3NlcihDb2xv
ckNob29zZXIqLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgPSAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHAKaW5kZXggNmUwZTdjYjRlZDUw
NmVlMTNlMGMwMmIzYjVkZGJiYjJiOGQ2MjMzMS4uMTczZjNmOGUzZjU1ZDE5ZTljMWU4MDMxNzU3
MGNkNDAzZDI1ZmRkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JD
aG9vc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29zZXIuY3Bw
CkBAIC0zOCwzNiArMzgsNTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDb2xvckNob29zZXJD
bGllbnQ6On5Db2xvckNob29zZXJDbGllbnQoKQogewotICAgIENvbG9yQ2hvb3Nlcjo6Y2hvb3Nl
cigpLT5kaXNjb25uZWN0Q2xpZW50KHRoaXMpOworICAgIGRpc2NhcmRDaG9vc2VyKCk7CiB9CiAK
LXN0YXRpYyBDb2xvckNob29zZXIqIHN0YXRpY0Nob29zZXIgPSAwOworQ29sb3JDaG9vc2VyKiBD
b2xvckNob29zZXJDbGllbnQ6Om5ld0NvbG9yQ2hvb3NlcigpCit7CisgICAgZGlzY2FyZENob29z
ZXIoKTsKKworICAgIG1fY2hvb3NlciA9IENvbG9yQ2hvb3Nlcjo6Y3JlYXRlKHRoaXMpOworICAg
IHJldHVybiBtX2Nob29zZXIuZ2V0KCk7Cit9CisKK3ZvaWQgQ29sb3JDaG9vc2VyQ2xpZW50Ojpk
aXNjYXJkQ2hvb3NlcigpCit7CisgICAgaWYgKG1fY2hvb3NlcikKKyAgICAgICAgbV9jaG9vc2Vy
LT5kaXNjb25uZWN0Q2xpZW50KCk7CisgICAgbV9jaG9vc2VyLmNsZWFyKCk7Cit9CiAKLUNvbG9y
Q2hvb3NlciogQ29sb3JDaG9vc2VyOjpjaG9vc2VyKCkKK2lubGluZSBDb2xvckNob29zZXI6OkNv
bG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNs
aWVudCkKIHsKLSAgICBpZiAoIXN0YXRpY0Nob29zZXIpCi0gICAgICAgIHN0YXRpY0Nob29zZXIg
PSBhZG9wdFB0cihuZXcgQ29sb3JDaG9vc2VyKCkpLmxlYWtQdHIoKTsKLSAgICByZXR1cm4gc3Rh
dGljQ2hvb3NlcjsKIH0KIAotdm9pZCBDb2xvckNob29zZXI6OmNvbm5lY3RDbGllbnQoQ29sb3JD
aG9vc2VyQ2xpZW50KiBjbGllbnQpCitQYXNzUmVmUHRyPENvbG9yQ2hvb3Nlcj4gQ29sb3JDaG9v
c2VyOjpjcmVhdGUoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQpCiB7Ci0gICAgaWYgKGNsaWVu
dCAhPSBtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQgPSBjbGllbnQ7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBDb2xvckNob29zZXIoY2xpZW50KSk7CiB9CiAKLXZvaWQgQ29sb3JDaG9vc2Vy
OjpkaXNjb25uZWN0Q2xpZW50KENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50KQorQ29sb3JDaG9v
c2VyOjp+Q29sb3JDaG9vc2VyKCkKIHsKLSAgICBpZiAoY2xpZW50ID09IG1fY2xpZW50KQotICAg
ICAgICBtX2NsaWVudCA9IDA7CiB9CiAKLXZvaWQgQ29sb3JDaG9vc2VyOjpkaWRDaG9vc2VDb2xv
cihjb25zdCBDb2xvciYgY29sb3IpIGNvbnN0Cit2b2lkIENvbG9yQ2hvb3Nlcjo6ZGlkQ2hvb3Nl
Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogewogICAgIGlmIChtX2NsaWVudCkKICAgICAgICAg
bV9jbGllbnQtPmRpZENob29zZUNvbG9yKGNvbG9yKTsKIH0KIAordm9pZCBDb2xvckNob29zZXI6
OmRpZENsZWFudXAoKQoreworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPmRp
ZENsZWFudXAoKTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKElOUFVUX0NPTE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29zZXIuaAppbmRleCAxZTY4Nzg4MzI5NDQyODg5NDIx
MGUzYjYzOTIxNDNhYTBlNzA0NzY4Li5iYTExMTM0ODlmM2Y5MDU3MWEwN2E4MmVlOWNjZDA2Yjkz
NDEyODFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29zZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29zZXIuaApAQCAtMzEsNiAr
MzEsOCBAQAogI2RlZmluZSBDb2xvckNob29zZXJfaAogCiAjaW5jbHVkZSAiQ29sb3IuaCIKKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogI2lm
IEVOQUJMRShJTlBVVF9DT0xPUikKIApAQCAtNDIsMjMgKzQ0LDI5IEBAIGNsYXNzIENvbG9yQ2hv
b3NlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q29sb3JDaG9vc2VyQ2xpZW50KCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IENvbG9yJikgPSAwOwotICAg
IHZpcnR1YWwgYm9vbCBpc0NvbG9ySW5wdXRUeXBlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cCgpID0gMDsKKyAgICBDb2xvckNob29zZXIqIGNo
b29zZXIoKSB7IHJldHVybiBtX2Nob29zZXIuZ2V0KCk7IH0KKworcHJvdGVjdGVkOgorICAgIENv
bG9yQ2hvb3NlciogbmV3Q29sb3JDaG9vc2VyKCk7CisgICAgdm9pZCBkaXNjYXJkQ2hvb3Nlcigp
OworCitwcml2YXRlOgorICAgIFJlZlB0cjxDb2xvckNob29zZXI+IG1fY2hvb3NlcjsKIH07CiAK
LWNsYXNzIENvbG9yQ2hvb3NlciB7CitjbGFzcyBDb2xvckNob29zZXIgOiBwdWJsaWMgUmVmQ291
bnRlZDxDb2xvckNob29zZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgQ29sb3JDaG9vc2VyKiBj
aG9vc2VyKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGUoQ29s
b3JDaG9vc2VyQ2xpZW50Kik7CisgICAgfkNvbG9yQ2hvb3NlcigpOwogCi0gICAgQ29sb3JDaG9v
c2VyQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfTsKLSAgICB2b2lk
IGNvbm5lY3RDbGllbnQoQ29sb3JDaG9vc2VyQ2xpZW50Kik7Ci0gICAgdm9pZCBkaXNjb25uZWN0
Q2xpZW50KENvbG9yQ2hvb3NlckNsaWVudCopOworICAgIHZvaWQgZGlzY29ubmVjdENsaWVudCgp
IHsgbV9jbGllbnQgPSAwOyB9CiAKLSAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IENvbG9y
JikgY29uc3Q7CisgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xvciYpOworICAgIHZv
aWQgZGlkQ2xlYW51cCgpOwogCiBwcml2YXRlOgotICAgIENvbG9yQ2hvb3NlcigpCi0gICAgICAg
IDogbV9jbGllbnQoMCkKLSAgICB7IH0KKyAgICBDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xp
ZW50Kik7CiAKICAgICBDb2xvckNob29zZXJDbGllbnQqIG1fY2xpZW50OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBhZWZhNGQ5NjNmMzg4Yzk5NDMzM2JkMjBhZmQy
MWI0MGZjZTVlYjU1Li5iMWRkZDE5YWI3MmU5NjBkYjg5MGRiNTVjMTc5M2ExOTNiYzkzYTg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNzQsMTkgKzE3NCwxNCBAQCBT
dHJpbmcgSW50ZXJuYWxzOjpzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRp
b25Db2RlJiBlYykKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKLWJvb2wgSW50ZXJuYWxz
Ojpjb25uZWN0Q29sb3JDaG9vc2VyQ2xpZW50KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIEludGVy
bmFsczo6c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihFbGVtZW50KiBlbGVtZW50LCBjb25zdCBT
dHJpbmcmIGNvbG9yVmFsdWUpCiB7CiAgICAgaWYgKCFlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxO
YW1lczo6aW5wdXRUYWcpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybjsK
ICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQgPSBlbGVtZW50LT50b0lucHV0RWxl
bWVudCgpOwogICAgIGlmICghaW5wdXRFbGVtZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIGlucHV0RWxlbWVudC0+Y29ubmVjdFRvQ29sb3JDaG9vc2VyKCk7Ci19Ci0KLXZv
aWQgSW50ZXJuYWxzOjpzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKGNvbnN0IFN0cmluZyYgY29s
b3JWYWx1ZSkKLXsKLSAgICBDb2xvckNob29zZXI6OmNob29zZXIoKS0+Y29sb3JTZWxlY3RlZChD
b2xvcihjb2xvclZhbHVlKSk7CisgICAgICAgIHJldHVybjsKKyAgICBpbnB1dEVsZW1lbnQtPnNl
bGVjdENvbG9ySW5Db2xvckNob29zZXIoQ29sb3IoY29sb3JWYWx1ZSkpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDE4YjQyMjViZTFmYTcwMTg1ODU1M2Jm
MzczNGRmZjAzNjU2ZjBlODYuLmVkMGY2ZDkyYjFkZWRlZmU1NWE5ZDhhNjgxZDlkMjhjMGJjZWNh
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNjAsOCArNjAsNyBAQCBwdWJs
aWM6CiAgICAgRWxlbWVudCogZ2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoTm9kZSogc2hhZG93
Um9vdCwgY29uc3QgU3RyaW5nJiBpZCwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5BQkxFKElO
UFVUX0NPTE9SKQotICAgIGJvb2wgY29ubmVjdENvbG9yQ2hvb3NlckNsaWVudChFbGVtZW50Kik7
Ci0gICAgdm9pZCBzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKGNvbnN0IFN0cmluZyYgY29sb3JW
YWx1ZSk7CisgICAgdm9pZCBzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKEVsZW1lbnQqLCBjb25z
dCBTdHJpbmcmIGNvbG9yVmFsdWUpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDM4NTBiYmI4ZmFmN2VkNjdjZWJi
NWVkZmQxMWZiMzQ1ZmQyMGRmNjUuLjRhMzY2MzhhNjZjMDJlNzdkOTU3ZDI1OWQ1MzAyMmE2NDMw
NTA2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTM5LDggKzM5LDcg
QEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5SWRJblNoYWRv
d1Jvb3QoaW4gTm9kZSBzaGFkb3dSb290LCBpbiBET01TdHJpbmcgaWQpIHJhaXNlcyhET01FeGNl
cHRpb24pOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfSU5QVVRfQ09MT1IpICYmIEVOQUJMRV9JTlBV
VF9DT0xPUgotICAgICAgICBib29sZWFuIGNvbm5lY3RDb2xvckNob29zZXJDbGllbnQoaW4gRWxl
bWVudCBlbGVtZW50KTsKLSAgICAgICAgdm9pZCBzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKGlu
IERPTVN0cmluZyBjb2xvclZhbHVlKTsKKyAgICAgICAgdm9pZCBzZWxlY3RDb2xvckluQ29sb3JD
aG9vc2VyKGluIEVsZW1lbnQgZWxlbWVudCwgaW4gRE9NU3RyaW5nIGNvbG9yVmFsdWUpOwogI2Vu
ZGlmCiAKICAgICAgICAgdm9pZCBzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhp
biBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUs
IGluIGxvbmcgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpIHJhaXNlcyhET01FeGNl
cHRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDcxOGZkMzAwYmEzMGViZjI1MWFhOGUzZDVjMWIxNWU0ODU5YTcyNmYu
LmE0MjkzMWQ1ZGMzMDY1N2U3MWY3ZTAxNThjMzkwYmY1YTJhZDgyYmQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxMS0xMS0wNiAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4K
KworICAgICAgICBDaGFuZ2UgQ29sb3JDaG9vc2VyIGZyb20gc2luZ2xldG9uIHRvIG9yZGluYXJ5
IG9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzE2NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvZm9ybXMvY29sb3IvaW5wdXQtY29sb3Itb25jaGFuZ2UtZXZlbnQuaHRtbDogQ2hhbmdl
ZCB0byBtYXRjaCB0aGUgY2hhbmdlcyB0byB3aW5kb3cuaW50ZXJuYWxzIG9iamVjdAorCiAyMDEx
LTExLTA0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCBza2lwIHNvbWUgZmFzdC92aWV3cG9ydCBmYWlsaW5nIHRlc3RzIG9uIEdU
SyBhZnRlciByOTkxOTUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NvbG9y
L2lucHV0LWNvbG9yLW9uY2hhbmdlLWV2ZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2NvbG9yL2lucHV0LWNvbG9yLW9uY2hhbmdlLWV2ZW50Lmh0bWwKaW5kZXggMjYzNmU4MzUxZmE2
ZjU5OGExZTM5ZDA2MTk5NWFmODgyZDg0ZWFmZC4uOTYyOWNlYzY4Nzc1YzUzZjM1OTdiNWYyZWRm
MDJkMGE4YjAxZDNmMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jb2xvci9p
bnB1dC1jb2xvci1vbmNoYW5nZS1ldmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvY29sb3IvaW5wdXQtY29sb3Itb25jaGFuZ2UtZXZlbnQuaHRtbApAQCAtMTIsMTYgKzEyLDI2
IEBAIGRlc2NyaXB0aW9uKCdUZXN0IGlmIGNoYW5nZSBldmVudCBmaXJlcyBwcm9wZXJseSB3aGVu
IGNvbG9yIGNob29zZXIgY2hhbmdlcy4gQnVnCiB2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpbnB1dCcpOwogaW5wdXQudHlwZSA9ICdjb2xvcic7CiBpbnB1dC52YWx1ZSA9ICcj
MDAwMDAwJzsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wdXQpOworCitpbnB1dC5zdHls
ZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CitpbnB1dC5zdHlsZS5sZWZ0ID0gJzAnOworaW5wdXQu
c3R5bGUudG9wID0gJzAnOworaW5wdXQuc3R5bGUud2lkdGggPSAnMjBweCc7CitpbnB1dC5zdHls
ZS5oZWlnaHQgPSAnMjBweCc7CisKIGlucHV0Lm9uY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAg
ZGVidWcoInZhbHVlIGNoYW5nZWQgdG8gIiArIGlucHV0LnZhbHVlKTsKLSAgICBmaW5pc2hKU1Rl
c3QoKTsKIH07Ci1pZiAoIWludGVybmFscy5jb25uZWN0Q29sb3JDaG9vc2VyQ2xpZW50KGlucHV0
KSkKLSAgICB0ZXN0RmFpbGVkKCJDb3VsZCBub3QgY29ubmVjdCBDb2xvckNob29zZXJDbGllbnQu
Iik7Ci1pbnRlcm5hbHMuc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcignI2ZmMDAwMCcpOworCitl
dmVudFNlbmRlci5tb3VzZU1vdmVUbygxMCwgMTApOworZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
CitldmVudFNlbmRlci5tb3VzZVVwKCk7CiAvLyBpbnB1dC5vbmNoYW5nZSBzaG91bGQgYmUgY2Fs
bGVkCi1pbnRlcm5hbHMuc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcignI2ZmMDAwMCcpOworaW50
ZXJuYWxzLnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoaW5wdXQsICcjZmYwMDAwJyk7CiAvLyBp
bnB1dC5vbmNoYW5nZSBzaG91bGQgbm90IGJlIGNhbGxlZAoraW50ZXJuYWxzLnNlbGVjdENvbG9y
SW5Db2xvckNob29zZXIoaW5wdXQsICcjZmYwMDAwJyk7CisKIHNob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciI2ZmMDAwMCInKTsKIDwvc2NyaXB0PgogPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113831</attachid>
            <date>2011-11-07 00:18:20 -0800</date>
            <delta_ts>2011-11-07 02:59:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71644-20111107171819.patch</filename>
            <type>text/plain</type>
            <size>19880</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjI0NzczMTkzNDk2M2Vh
ZGNkZTA2ZjMwMjMwMDlmOGE4NzQxYmJmLi5mZjFkOWMyYzNmYzE0NjgxM2JkODQwMWMyODgwNzQ0
Y2ZiZWExZTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMTEtMDYgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2hhbmdlIENvbG9yQ2hv
b3NlciBmcm9tIHNpbmdsZXRvbiB0byBvcmRpbmFyeSBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNjQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdpbmcgV2ViQ29yZTo6Q29sb3JDaG9v
c2VyIGZyb20gYSBzaW5nbGV0b24gdG8gYW4gb3JkaW5hcnkgb2JqZWN0IGNhbiBicm9hZGVuIGhv
dyBicm93c2VycyBpbXBsZW1lbnQgdGhlIGNvbG9yIGNob29zZXIgaW50ZXJmYWNlLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6fkNvbG9ySW5wdXRUeXBlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZSk6IElmIGEgY2hvb3NlciBl
eGlzdHMsIGNhbGxzIENocm9tZTo6c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyCisgICAg
ICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbG9ySW5wdXRUeXBlOjpkaWRDbGVhbnVwKTogQ2FsbGVkIGFmdGVyIGNsZWFudXAgaXMg
Y29tcGxldGUuCisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y2xlYW51cENvbG9y
Q2hvb3Nlcik6IFJlbmFtZWQgZnJvbSBjbGVhbnVwQ29sb3JDaG9vc2VySWZDdXJyZW50Q2xpZW50
LgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2Vs
ZWN0Q29sb3JJbkNvbG9yQ2hvb3Nlcik6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
Lmg6CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6
RW1wdHlDaHJvbWVDbGllbnQ6OmNsZWFudXBDb2xvckNob29zZXIpOiBBZGRlZCBjb2xvckNob29z
ZXIgYXJndW1lbnQgYmVjYXVzZSB0aGVyZSBhcmUgbWFueSBXZWJDb3JlOjpDb2xvckNob29zZXJz
IG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzZXRTZWxlY3RlZENv
bG9ySW5Db2xvckNob29zZXIpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmNsZWFudXBDb2xvckNob29zZXIpOiBBZGRlZCBjb2xv
ckNob29zZXIgYXJndW1lbnQgYmVjYXVzZSB0aGVyZSBhcmUgbWFueSBXZWJDb3JlOjpDb2xvckNo
b29zZXJzIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2V0U2VsZWN0ZWRDb2xvcklu
Q29sb3JDaG9vc2VyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAg
KiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0NvbG9yQ2hvb3Nlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQ6On5Db2xvckNob29zZXJD
bGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50OjpuZXdDb2xvckNo
b29zZXIpOiBDcmVhdGVzIGEgbmV3IGNvbG9yIGNob29zZXIgdGhhdCBpcyBjb25uZWN0ZWQgdG8g
aXRzZWxmLgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50OjpkaXNjYXJkQ2hv
b3Nlcik6IERpc2NhcmRzIHRoZSBjb25uZWN0ZWQgY29sb3IgY2hvb3Nlci4KKyAgICAgICAgKFdl
YkNvcmU6OkNvbG9yQ2hvb3Nlcjo6Q29sb3JDaG9vc2VyKTogQ29sb3JDaG9vc2VyIGlzIFJlZkNv
dW50ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXI6OmNyZWF0ZSk6IENyZWF0ZXMg
YSBDb2xvckNob29zZXIgdGhhdCBpcyBjb25uZWN0ZWQgdG8gdGhlIGdpdmVuIENvbG9yQ2hvb3Nl
ckNsaWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcjo6fkNvbG9yQ2hvb3Nlcik6
CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXI6OmRpZENob29zZUNvbG9yKTogQ2FsbGVk
IGZyb20gV2ViS2l0IHNpZGUgd2hlbiB1c2VyIGNob3NlIGEgY29sb3IuIENhbGxzIENvbG9yQ2hv
b3NlckNsaWVudDo6ZGlkQ2hvb3NlQ29sb3IKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yQ2hvb3Nl
cjo6ZGlkQ2xlYW51cCk6IENhbGxlZCBmcm9tIFdlYktpdCBzaWRlIHdoZW4gdXNlciBjb2xvciBj
aG9vc2VyIHdhcyBjbGVhbmVkIHVwLiBDYWxscyBDb2xvckNob29zZXJDbGllbnQ6OmRpZENsZWFu
dXAKKyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvckNob29zZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlckNsaWVudDo6Y2hvb3Nlcik6IFJldHVybnMgdGhlIGN1cnJlbnQgQ29sb3JD
aG9vc2VyLgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyOjpkaXNjb25uZWN0Q2xpZW50
KTogRGlzY29ubmVjdHMgdGhlIENvbG9yQ2hvb3NlckNsaWVudC4KKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNlbGVjdENvbG9y
SW5Db2xvckNob29zZXIpOiBBZGRlZCBlbGVtZW50IGFyZ3VtZW50LiBUaGlzIGNhbGxzIGRpZENo
b29zZUNvbG9yIG9uIHRoZSBDb2xvckNob29zZXIgb2YgdGhhdCBlbGVtZW50LgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOiBS
ZW1vdmVkIGNvbm5lY3RDb2xvckNob29zZXJDbGllbnQgYW5kIHVwZGF0ZWQgc2VsZWN0Q29sb3JJ
bkNvbG9yQ2hvb3Nlci4KKwogMjAxMS0xMS0wNCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENNYWtlIGJ1aWxkIGZpeCBmb3IgIUVO
QUJMRShTUUxfREFUQUJBU0UpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjOTM0ZDA1MjQ4MWMz
ZDRlN2RlNzRjYjY4ODYyZTZiODY0ZjQ1NGQxLi43N2ZiMzBkMTVhNDc5MzZlMzQ1ODE5NWY5Yjky
M2JlODg4YjA2OTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTk3NywxMCArMTk3Nyw4IEBA
IF9fWk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUyNHNldERlZmF1bHRTdG9yYWdlU2Vzc2lvbkVQ
SzIxX19DRlVSTFN0b3JhZ2VTZXNzaW9uCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9DT0xP
UikKLV9fWk43V2ViQ29yZTEyQ29sb3JDaG9vc2VyN2Nob29zZXJFdgotX19aTks3V2ViQ29yZTEy
Q29sb3JDaG9vc2VyMTNkaWRDaG9vc2VDb2xvckVSS05TXzVDb2xvckUKIF9fWk43V2ViQ29yZTVD
b2xvckMxRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MjFj
b25uZWN0VG9Db2xvckNob29zZXJFdgorX19aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MjVz
ZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyRVJLTlNfNUNvbG9yRQogI2VuZGlmCiAKICNpZiAhZGVm
aW5lZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggOGU3OTQyMTMyODZhMmViY2I1ZDI1NzM3
NTY2ZDUwMjlhYTc1NjNlNC4uNTdlZTU3NzAxN2ZhYjIzMDA3NzkyMzVmMGNjNWZkY2YyYWU4NmY4
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTY2LDcgKzY2LDcg
QEAgUGFzc093blB0cjxJbnB1dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCogZWxlbWVudCkKIAogQ29sb3JJbnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiB7
Ci0gICAgY2xlYW51cENvbG9yQ2hvb3NlcklmQ3VycmVudENsaWVudCgpOworICAgIGNsZWFudXBD
b2xvckNob29zZXIoKTsKIH0KIAogYm9vbCBDb2xvcklucHV0VHlwZTo6aXNDb2xvckNvbnRyb2wo
KSBjb25zdApAQCAtMTI2LDEwICsxMjYsOSBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQwogICAg
ICAgICByZXR1cm47CiAKICAgICB1cGRhdGVDb2xvclN3YXRjaCgpOwotICAgIGlmIChDb2xvckNo
b29zZXI6OmNob29zZXIoKS0+Y2xpZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoQ2hyb21l
KiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKSkKLSAgICAgICAgICAgIGNocm9tZS0+c2V0U2VsZWN0
ZWRDb2xvckluQ29sb3JDaG9vc2VyKHZhbHVlQXNDb2xvcigpKTsKLSAgICB9CisgICAgQ2hyb21l
KiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsKKyAgICBpZiAoY2hyb21lICYmIGNob29zZXIoKSkK
KyAgICAgICAgY2hyb21lLT5zZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoY2hvb3Nlcigp
LCB2YWx1ZUFzQ29sb3IoKSk7CiB9CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFj
dGl2YXRlRXZlbnQoRXZlbnQqIGV2ZW50KQpAQCAtMTQwLDE2ICsxMzksMTQgQEAgdm9pZCBDb2xv
cklucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgaWYg
KCFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpIHsKLSAgICAg
ICAgQ29sb3JDaG9vc2VyOjpjaG9vc2VyKCktPmNvbm5lY3RDbGllbnQodGhpcyk7Ci0gICAgICAg
IGNocm9tZS0+b3BlbkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXI6OmNob29zZXIoKSwgdmFsdWVB
c0NvbG9yKCkpOwotICAgIH0KKyAgICBpZiAoQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUo
KSkKKyAgICAgICAgY2hyb21lLT5vcGVuQ29sb3JDaG9vc2VyKG5ld0NvbG9yQ2hvb3NlcigpLCB2
YWx1ZUFzQ29sb3IoKSk7CiAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKIHZv
aWQgQ29sb3JJbnB1dFR5cGU6OmRldGFjaCgpCiB7Ci0gICAgY2xlYW51cENvbG9yQ2hvb3Nlcklm
Q3VycmVudENsaWVudCgpOworICAgIGNsZWFudXBDb2xvckNob29zZXIoKTsKIH0KIAogdm9pZCBD
b2xvcklucHV0VHlwZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtMTYx
LDE3ICsxNTgsMTcgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3Qg
Q29sb3ImIGNvbG9yKQogICAgIGVsZW1lbnQoKS0+ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2
ZW50KCk7CiB9CiAKLWJvb2wgQ29sb3JJbnB1dFR5cGU6OmlzQ29sb3JJbnB1dFR5cGUoKSBjb25z
dAordm9pZCBDb2xvcklucHV0VHlwZTo6ZGlkQ2xlYW51cCgpCiB7Ci0gICAgcmV0dXJuIHRydWU7
CisgICAgZGlzY2FyZENob29zZXIoKTsKIH0KIAotdm9pZCBDb2xvcklucHV0VHlwZTo6Y2xlYW51
cENvbG9yQ2hvb3NlcklmQ3VycmVudENsaWVudCgpIGNvbnN0Cit2b2lkIENvbG9ySW5wdXRUeXBl
OjpjbGVhbnVwQ29sb3JDaG9vc2VyKCkKIHsKLSAgICBpZiAoQ29sb3JDaG9vc2VyOjpjaG9vc2Vy
KCktPmNsaWVudCgpICE9IHRoaXMpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoQ2hyb21lKiBj
aHJvbWUgPSB0aGlzLT5jaHJvbWUoKSkKLSAgICAgICAgY2hyb21lLT5jbGVhbnVwQ29sb3JDaG9v
c2VyKCk7CisgICAgQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsKKyAgICBpZiAoY2hy
b21lICYmIGNob29zZXIoKSkKKyAgICAgICAgY2hyb21lLT5jbGVhbnVwQ29sb3JDaG9vc2VyKGNo
b29zZXIoKSk7CisgICAgZGlzY2FyZENob29zZXIoKTsKIH0KIAogdm9pZCBDb2xvcklucHV0VHlw
ZTo6dXBkYXRlQ29sb3JTd2F0Y2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9D
b2xvcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCmlu
ZGV4IGFkOGFmYzRmYzgxZGMzMjRhOTA4ZGZjODI1NjBkYTY2OWE3ZWNhMjkuLjRiMjMzZDMzODA4
NTVlZjIzZWZlZTRlNzdiN2QxYjVhZGZiZDQxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmgKQEAgLTU3LDEwICs1NywxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBk
ZXRhY2goKTsKIAogICAgIC8vIENvbG9yQ2hvb3NlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29sb3ImKTsKLSAgICB2aXJ0dWFs
IGJvb2wgaXNDb2xvcklucHV0VHlwZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9v
c2VDb2xvcihjb25zdCBDb2xvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVh
bnVwKCkgT1ZFUlJJREU7CiAKLSAgICB2b2lkIGNsZWFudXBDb2xvckNob29zZXJJZkN1cnJlbnRD
bGllbnQoKSBjb25zdDsKKyAgICB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoKTsKICAgICB2b2lk
IHVwZGF0ZUNvbG9yU3dhdGNoKCk7CiAgICAgSFRNTEVsZW1lbnQqIHNoYWRvd0NvbG9yU3dhdGNo
KCkgY29uc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5k
ZXggOWVmZDRkYjJhYzBiOTllMDU5M2M1MjQyYTRiMDZmOWY5NGRiZDFjZC4uOTRhOTkyZDc3Y2Y1
NmJmODcxYzRjNWQ3ZDgwOTcwMmYwMjc5MmNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCkBAIC0xNTIzLDEyICsxNTIzLDE0IEBAIGJvb2wgSFRNTElucHV0RWxl
bWVudDo6cmVjYWxjV2lsbFZhbGlkYXRlKCkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9D
T0xPUikKLWJvb2wgSFRNTElucHV0RWxlbWVudDo6Y29ubmVjdFRvQ29sb3JDaG9vc2VyKCkKK3Zv
aWQgSFRNTElucHV0RWxlbWVudDo6c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3Nlcihjb25zdCBDb2xv
ciYgY29sb3IpCiB7CiAgICAgaWYgKCFtX2lucHV0VHlwZS0+aXNDb2xvckNvbnRyb2woKSkKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIENvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5jb25uZWN0
Q2xpZW50KHN0YXRpY19jYXN0PENvbG9ySW5wdXRUeXBlKj4obV9pbnB1dFR5cGUuZ2V0KCkpKTsK
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxDb2xvckNob29z
ZXI+IGNob29zZXIgPSBzdGF0aWNfY2FzdDxDb2xvcklucHV0VHlwZSo+KG1faW5wdXRUeXBlLmdl
dCgpKS0+Y2hvb3NlcigpOworICAgIGlmICghY2hvb3NlcikKKyAgICAgICAgcmV0dXJuOworICAg
IGNob29zZXItPmRpZENob29zZUNvbG9yKGNvbG9yKTsKIH0KICNlbmRpZgogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCAwMmM4ZjhmYjVlMzgzMzIyMzIwMTBm
NmQ1OTA0ZGQzZTQ0ZTZlNTU3Li5iNTBiNTA5NDkwOWZjNWY0NzFiMTI1N2Y0YTdkZDM0Y2E5ZTZm
YTQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjI5LDcgKzIy
OSw3IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKICAgICAvLyBGb3IgdGVz
dCBwdXJwb3Nlcy4KLSAgICBib29sIGNvbm5lY3RUb0NvbG9yQ2hvb3NlcigpOworICAgIHZvaWQg
c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3Nlcihjb25zdCBDb2xvciYpOwogI2VuZGlmCiAKICAgICBT
dHJpbmcgZGVmYXVsdFRvb2xUaXAoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaAppbmRleCAyYjc1ZWZiYWQ4OTQzZWJmMjY4ODNmYmMzOGEyMGIxYzExMzZkYjc2Li4xM2Nj
MDhmMzE0M2FhMGY5NzkzODQ0YTZmNDNhNzg2OTQ0ZTQ2YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5Q2xpZW50cy5oCkBAIC0xOTcsOCArMTk3LDggQEAgcHVibGljOgogCiAjaWYgRU5BQkxF
KElOUFVUX0NPTE9SKQogICAgIHZvaWQgb3BlbkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBj
b25zdCBDb2xvciYpIHsgfQotICAgIHZvaWQgY2xlYW51cENvbG9yQ2hvb3NlcigpIHsgfQotICAg
IHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKGNvbnN0IENvbG9yJikgeyB9Cisg
ICAgdm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciopIHsgfQorICAgIHZvaWQg
c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0IENvbG9y
JikgeyB9CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQ
YXNzUmVmUHRyPEZpbGVDaG9vc2VyPikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggN2Uz
YzZjMzVhNDkwN2E4Yjc0YWNjN2MwZmRlY2I2OTcyMTBlNTY3OS4uNmQwZGE4ZmM0ZGYyNmNhYmQ5
ZWViZjQ3Y2NmZmU4MmQ4MTNjMTFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDYzLDE0
ICs0NjMsMTQgQEAgdm9pZCBDaHJvbWU6Om9wZW5Db2xvckNob29zZXIoQ29sb3JDaG9vc2VyKiBj
b2xvckNob29zZXIsIGNvbnN0IENvbG9yJiBpbml0aWFsQ28KICAgICBtX2NsaWVudC0+b3BlbkNv
bG9yQ2hvb3Nlcihjb2xvckNob29zZXIsIGluaXRpYWxDb2xvcik7CiB9CiAKLXZvaWQgQ2hyb21l
OjpjbGVhbnVwQ29sb3JDaG9vc2VyKCkKK3ZvaWQgQ2hyb21lOjpjbGVhbnVwQ29sb3JDaG9vc2Vy
KENvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyKQogewotICAgIG1fY2xpZW50LT5jbGVhbnVwQ29s
b3JDaG9vc2VyKCk7CisgICAgbV9jbGllbnQtPmNsZWFudXBDb2xvckNob29zZXIoY29sb3JDaG9v
c2VyKTsKIH0KIAotdm9pZCBDaHJvbWU6OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihj
b25zdCBDb2xvciYgY29sb3IpCit2b2lkIENocm9tZTo6c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JD
aG9vc2VyKENvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyLCBjb25zdCBDb2xvciYgY29sb3IpCiB7
Ci0gICAgbV9jbGllbnQtPnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihjb2xvcik7Cisg
ICAgbV9jbGllbnQtPnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihjb2xvckNob29zZXIs
IGNvbG9yKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA0NTY2NmVhMzVkZDM2
ODhiZmYzMzcxMTFmZTk5ZGViYjg5OGIyZDZmLi41MWM1OTIyYzg0MWQzNzk5MzMyYTQwMzk2ZjZi
NjU2NGY0ODFkODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTE1Nyw4ICsxNTcsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgICAgIHZvaWQg
b3BlbkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBjb25zdCBDb2xvciYpOwotICAgICAgICB2
b2lkIGNsZWFudXBDb2xvckNob29zZXIoKTsKLSAgICAgICAgdm9pZCBzZXRTZWxlY3RlZENvbG9y
SW5Db2xvckNob29zZXIoY29uc3QgQ29sb3ImKTsKKyAgICAgICAgdm9pZCBjbGVhbnVwQ29sb3JD
aG9vc2VyKENvbG9yQ2hvb3NlciopOworICAgICAgICB2b2lkIHNldFNlbGVjdGVkQ29sb3JJbkNv
bG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBjb25zdCBDb2xvciYpOwogI2VuZGlmCiAKICAgICAg
ICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBjZGU3YzQyYjE5ZjYyYmFkOWE3N2U3N2Nh
MmE1ODZiYjQxOWU5Njk5Li43Y2NiNzdhZGI5OWRhMTRhZTVlMWFhMjcyNzVmMjMzZDgzZGRhMTVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTIyOCw4ICsyMjgsOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBvcGVuQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0IENvbG9yJikgPSAw
OwotICAgICAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cENvbG9yQ2hvb3NlcigpID0gMDsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihjb25zdCBDb2xv
ciYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoQ29sb3JD
aG9vc2VyKikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29s
b3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0IENvbG9yJikgPSAwOwogI2VuZGlmCiAKICAg
ICAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNo
b29zZXI+KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNo
b29zZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2VyLmNwcAppbmRl
eCA2ZTBlN2NiNGVkNTA2ZWUxM2UwYzAyYjNiNWRkYmJiMmI4ZDYyMzMxLi4xNzNmM2Y4ZTNmNTVk
MTllOWMxZTgwMzE3NTcwY2Q0MDNkMjVmZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Db2xvckNob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bG9yQ2hvb3Nlci5jcHAKQEAgLTM4LDM2ICszOCw1MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IENvbG9yQ2hvb3NlckNsaWVudDo6fkNvbG9yQ2hvb3NlckNsaWVudCgpCiB7Ci0gICAgQ29sb3JD
aG9vc2VyOjpjaG9vc2VyKCktPmRpc2Nvbm5lY3RDbGllbnQodGhpcyk7CisgICAgZGlzY2FyZENo
b29zZXIoKTsKIH0KIAotc3RhdGljIENvbG9yQ2hvb3Nlciogc3RhdGljQ2hvb3NlciA9IDA7CitD
b2xvckNob29zZXIqIENvbG9yQ2hvb3NlckNsaWVudDo6bmV3Q29sb3JDaG9vc2VyKCkKK3sKKyAg
ICBkaXNjYXJkQ2hvb3NlcigpOworCisgICAgbV9jaG9vc2VyID0gQ29sb3JDaG9vc2VyOjpjcmVh
dGUodGhpcyk7CisgICAgcmV0dXJuIG1fY2hvb3Nlci5nZXQoKTsKK30KKwordm9pZCBDb2xvckNo
b29zZXJDbGllbnQ6OmRpc2NhcmRDaG9vc2VyKCkKK3sKKyAgICBpZiAobV9jaG9vc2VyKQorICAg
ICAgICBtX2Nob29zZXItPmRpc2Nvbm5lY3RDbGllbnQoKTsKKyAgICBtX2Nob29zZXIuY2xlYXIo
KTsKK30KIAotQ29sb3JDaG9vc2VyKiBDb2xvckNob29zZXI6OmNob29zZXIoKQoraW5saW5lIENv
bG9yQ2hvb3Nlcjo6Q29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50KQorICAg
IDogbV9jbGllbnQoY2xpZW50KQogewotICAgIGlmICghc3RhdGljQ2hvb3NlcikKLSAgICAgICAg
c3RhdGljQ2hvb3NlciA9IGFkb3B0UHRyKG5ldyBDb2xvckNob29zZXIoKSkubGVha1B0cigpOwot
ICAgIHJldHVybiBzdGF0aWNDaG9vc2VyOwogfQogCi12b2lkIENvbG9yQ2hvb3Nlcjo6Y29ubmVj
dENsaWVudChDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkKK1Bhc3NSZWZQdHI8Q29sb3JDaG9v
c2VyPiBDb2xvckNob29zZXI6OmNyZWF0ZShDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkKIHsK
LSAgICBpZiAoY2xpZW50ICE9IG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudCA9IGNsaWVudDsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IENvbG9yQ2hvb3NlcihjbGllbnQpKTsKIH0KIAotdm9p
ZCBDb2xvckNob29zZXI6OmRpc2Nvbm5lY3RDbGllbnQoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGll
bnQpCitDb2xvckNob29zZXI6On5Db2xvckNob29zZXIoKQogewotICAgIGlmIChjbGllbnQgPT0g
bV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50ID0gMDsKIH0KIAotdm9pZCBDb2xvckNob29zZXI6
OmRpZENob29zZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikgY29uc3QKK3ZvaWQgQ29sb3JDaG9v
c2VyOjpkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKG1fY2xp
ZW50KQogICAgICAgICBtX2NsaWVudC0+ZGlkQ2hvb3NlQ29sb3IoY29sb3IpOwogfQogCit2b2lk
IENvbG9yQ2hvb3Nlcjo6ZGlkQ2xlYW51cCgpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAg
ICBtX2NsaWVudC0+ZGlkQ2xlYW51cCgpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5Q
VVRfQ09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29z
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5oCmluZGV4IDFlNjg3
ODgzMjk0NDI4ODk0MjEwZTNiNjM5MjE0M2FhMGU3MDQ3NjguLmJhMTExMzQ4OWYzZjkwNTcxYTA3
YTgyZWU5Y2NkMDZiOTM0MTI4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0NvbG9yQ2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nl
ci5oCkBAIC0zMSw2ICszMSw4IEBACiAjZGVmaW5lIENvbG9yQ2hvb3Nlcl9oCiAKICNpbmNsdWRl
ICJDb2xvci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogCkBAIC00MiwyMyArNDQsMjkgQEAg
Y2xhc3MgQ29sb3JDaG9vc2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db2xvckNo
b29zZXJDbGllbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29s
b3ImKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzQ29sb3JJbnB1dFR5cGUoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwKCkgPSAwOworICAgIENv
bG9yQ2hvb3NlciogY2hvb3NlcigpIHsgcmV0dXJuIG1fY2hvb3Nlci5nZXQoKTsgfQorCitwcm90
ZWN0ZWQ6CisgICAgQ29sb3JDaG9vc2VyKiBuZXdDb2xvckNob29zZXIoKTsKKyAgICB2b2lkIGRp
c2NhcmRDaG9vc2VyKCk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPENvbG9yQ2hvb3Nlcj4gbV9j
aG9vc2VyOwogfTsKIAotY2xhc3MgQ29sb3JDaG9vc2VyIHsKK2NsYXNzIENvbG9yQ2hvb3NlciA6
IHB1YmxpYyBSZWZDb3VudGVkPENvbG9yQ2hvb3Nlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBD
b2xvckNob29zZXIqIGNob29zZXIoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb2xvckNob29z
ZXI+IGNyZWF0ZShDb2xvckNob29zZXJDbGllbnQqKTsKKyAgICB+Q29sb3JDaG9vc2VyKCk7CiAK
LSAgICBDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50
OyB9OwotICAgIHZvaWQgY29ubmVjdENsaWVudChDb2xvckNob29zZXJDbGllbnQqKTsKLSAgICB2
b2lkIGRpc2Nvbm5lY3RDbGllbnQoQ29sb3JDaG9vc2VyQ2xpZW50Kik7CisgICAgdm9pZCBkaXNj
b25uZWN0Q2xpZW50KCkgeyBtX2NsaWVudCA9IDA7IH0KIAotICAgIHZvaWQgZGlkQ2hvb3NlQ29s
b3IoY29uc3QgQ29sb3ImKSBjb25zdDsKKyAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IENv
bG9yJik7CisgICAgdm9pZCBkaWRDbGVhbnVwKCk7CiAKIHByaXZhdGU6Ci0gICAgQ29sb3JDaG9v
c2VyKCkKLSAgICAgICAgOiBtX2NsaWVudCgwKQotICAgIHsgfQorICAgIENvbG9yQ2hvb3NlcihD
b2xvckNob29zZXJDbGllbnQqKTsKIAogICAgIENvbG9yQ2hvb3NlckNsaWVudCogbV9jbGllbnQ7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGFlZmE0ZDk2M2YzODhj
OTk0MzMzYmQyMGFmZDIxYjQwZmNlNWViNTUuLmIxZGRkMTlhYjcyZTk2MGRiODkwZGI1NWMxNzkz
YTE5M2JjOTNhODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3NCwx
OSArMTc0LDE0IEBAIFN0cmluZyBJbnRlcm5hbHM6OnNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqIGVs
ZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogfQogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQot
Ym9vbCBJbnRlcm5hbHM6OmNvbm5lY3RDb2xvckNob29zZXJDbGllbnQoRWxlbWVudCogZWxlbWVu
dCkKK3ZvaWQgSW50ZXJuYWxzOjpzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKEVsZW1lbnQqIGVs
ZW1lbnQsIGNvbnN0IFN0cmluZyYgY29sb3JWYWx1ZSkKIHsKICAgICBpZiAoIWVsZW1lbnQtPmhh
c1RhZ05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuOwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGVsZW1l
bnQtPnRvSW5wdXRFbGVtZW50KCk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5jb25uZWN0VG9Db2xvckNob29z
ZXIoKTsKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoY29u
c3QgU3RyaW5nJiBjb2xvclZhbHVlKQotewotICAgIENvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5j
b2xvclNlbGVjdGVkKENvbG9yKGNvbG9yVmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIGlu
cHV0RWxlbWVudC0+c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihDb2xvcihjb2xvclZhbHVlKSk7
CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMThiNDIyNWJl
MWZhNzAxODU4NTUzYmYzNzM0ZGZmMDM2NTZmMGU4Ni4uZWQwZjZkOTJiMWRlZGVmZTU1YTlkOGE2
ODFkOWQyOGMwYmNlY2EzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC02MCw4
ICs2MCw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9v
dChOb2RlKiBzaGFkb3dSb290LCBjb25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJik7CiAK
ICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi0gICAgYm9vbCBjb25uZWN0Q29sb3JDaG9vc2VyQ2xp
ZW50KEVsZW1lbnQqKTsKLSAgICB2b2lkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoY29uc3Qg
U3RyaW5nJiBjb2xvclZhbHVlKTsKKyAgICB2b2lkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIo
RWxlbWVudCosIGNvbnN0IFN0cmluZyYgY29sb3JWYWx1ZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMzg1MGJi
YjhmYWY3ZWQ2N2NlYmI1ZWRmZDExZmIzNDVmZDIwZGY2NS4uNGEzNjYzOGE2NmMwMmU3N2Q5NTdk
MjU5ZDUzMDIyYTY0MzA1MDYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApA
QCAtMzksOCArMzksNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgRWxlbWVudCBnZXRFbGVt
ZW50QnlJZEluU2hhZG93Um9vdChpbiBOb2RlIHNoYWRvd1Jvb3QsIGluIERPTVN0cmluZyBpZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9JTlBVVF9DT0xPUikg
JiYgRU5BQkxFX0lOUFVUX0NPTE9SCi0gICAgICAgIGJvb2xlYW4gY29ubmVjdENvbG9yQ2hvb3Nl
ckNsaWVudChpbiBFbGVtZW50IGVsZW1lbnQpOwotICAgICAgICB2b2lkIHNlbGVjdENvbG9ySW5D
b2xvckNob29zZXIoaW4gRE9NU3RyaW5nIGNvbG9yVmFsdWUpOworICAgICAgICB2b2lkIHNlbGVj
dENvbG9ySW5Db2xvckNob29zZXIoaW4gRWxlbWVudCBlbGVtZW50LCBpbiBET01TdHJpbmcgY29s
b3JWYWx1ZSk7CiAjZW5kaWYKIAogICAgICAgICB2b2lkIHNldEluc3BlY3RvclJlc291cmNlc0Rh
dGFTaXplTGltaXRzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBsb25nIG1heGltdW1SZXNvdXJj
ZXNDb250ZW50U2l6ZSwgaW4gbG9uZyBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzE4ZmQzMDBiYTMwZWJmMjUxYWE4ZTNkNWMx
YjE1ZTQ4NTlhNzI2Zi4uYTQyOTMxZDVkYzMwNjU3ZTcxZjdlMDE1OGMzOTBiZjVhMmFkODJiZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTExLTA2ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNo
aUB3ZWJraXQub3JnPgorCisgICAgICAgIENoYW5nZSBDb2xvckNob29zZXIgZnJvbSBzaW5nbGV0
b24gdG8gb3JkaW5hcnkgb2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9mb3Jtcy9jb2xvci9pbnB1dC1jb2xvci1vbmNoYW5nZS1ldmVu
dC5odG1sOiBDaGFuZ2VkIHRvIG1hdGNoIHRoZSBjaGFuZ2VzIHRvIHdpbmRvdy5pbnRlcm5hbHMg
b2JqZWN0CisKIDIwMTEtMTEtMDQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgc29tZSBmYXN0L3ZpZXdwb3J0IGZhaWxp
bmcgdGVzdHMgb24gR1RLIGFmdGVyIHI5OTE5NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvY29sb3IvaW5wdXQtY29sb3Itb25jaGFuZ2UtZXZlbnQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvY29sb3IvaW5wdXQtY29sb3Itb25jaGFuZ2UtZXZlbnQuaHRtbAppbmRl
eCAyNjM2ZTgzNTFmYTZmNTk4YTFlMzlkMDYxOTk1YWY4ODJkODRlYWZkLi5lM2EyMmZiNmMwNDc5
MmNhNDliZDhlMjRmYTI3NDk1OWNiYzhiYTU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2NvbG9yL2lucHV0LWNvbG9yLW9uY2hhbmdlLWV2ZW50Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9jb2xvci9pbnB1dC1jb2xvci1vbmNoYW5nZS1ldmVudC5odG1sCkBA
IC03LDIxICs3LDMyIEBACiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCdUZXN0IGlmIGNoYW5nZSBldmVudCBm
aXJlcyBwcm9wZXJseSB3aGVuIGNvbG9yIGNob29zZXIgY2hhbmdlcy4gQnVnIDY2ODQ4Jyk7Citk
ZXNjcmlwdGlvbignVGVzdCBpZiBjaGFuZ2UgZXZlbnQgZmlyZXMgcHJvcGVybHkgd2hlbiBjb2xv
ciBjaG9vc2VyIGNoYW5nZXMuIEJ1ZyA2Njg0OCA8YnI+IFRvIG1hbnVhbGx5IHRlc3QgdGhpcywg
Y2xpY2sgb24gdGhlIGlucHV0IGNvbG9yIGVsZW1lbnQgaW4gdGhlIHRvcCBsZWZ0IGNvcm5lciBh
bmQgY2hhbmdlIHRoZSB2YWx1ZSBmcm9tIHRoZSBjb2xvciBjaG9vc2VyLiBTZWUgaWYgdGhlIG51
bWJlciBvZiAidmFsdWUgY2hhbmdlZCIgbWVzc2FnZXMgbWF0Y2hlcyB0aGUgbnVtYmVyIG9mIHRp
bWVzIHlvdSBjaGFuZ2VkIHRoZSBjb2xvci4nKTsKIAogdmFyIGlucHV0ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnaW5wdXQnKTsKIGlucHV0LnR5cGUgPSAnY29sb3InOwogaW5wdXQudmFsdWUg
PSAnIzAwMDAwMCc7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlucHV0KTsKKworaW5wdXQu
c3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnOworaW5wdXQuc3R5bGUubGVmdCA9ICcwJzsKK2lu
cHV0LnN0eWxlLnRvcCA9ICcwJzsKK2lucHV0LnN0eWxlLndpZHRoID0gJzIwcHgnOworaW5wdXQu
c3R5bGUuaGVpZ2h0ID0gJzIwcHgnOworCiBpbnB1dC5vbmNoYW5nZSA9IGZ1bmN0aW9uKCkgewog
ICAgIGRlYnVnKCJ2YWx1ZSBjaGFuZ2VkIHRvICIgKyBpbnB1dC52YWx1ZSk7Ci0gICAgZmluaXNo
SlNUZXN0KCk7CiB9OwotaWYgKCFpbnRlcm5hbHMuY29ubmVjdENvbG9yQ2hvb3NlckNsaWVudChp
bnB1dCkpCi0gICAgdGVzdEZhaWxlZCgiQ291bGQgbm90IGNvbm5lY3QgQ29sb3JDaG9vc2VyQ2xp
ZW50LiIpOwotaW50ZXJuYWxzLnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoJyNmZjAwMDAnKTsK
KworZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsKK2V2ZW50U2VuZGVyLm1vdXNlRG93
bigpOworZXZlbnRTZW5kZXIubW91c2VVcCgpOworCiAvLyBpbnB1dC5vbmNoYW5nZSBzaG91bGQg
YmUgY2FsbGVkCi1pbnRlcm5hbHMuc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcignI2ZmMDAwMCcp
OworaW50ZXJuYWxzLnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoaW5wdXQsICcjZmYwMDAwJyk7
CiAvLyBpbnB1dC5vbmNoYW5nZSBzaG91bGQgbm90IGJlIGNhbGxlZAoraW50ZXJuYWxzLnNlbGVj
dENvbG9ySW5Db2xvckNob29zZXIoaW5wdXQsICcjZmYwMDAwJyk7CisKIHNob3VsZEJlKCdpbnB1
dC52YWx1ZScsICciI2ZmMDAwMCInKTsKIDwvc2NyaXB0PgogPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113839</attachid>
            <date>2011-11-07 03:00:01 -0800</date>
            <delta_ts>2011-11-07 03:39:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71644-20111107195959.patch</filename>
            <type>text/plain</type>
            <size>19874</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjI0NzczMTkzNDk2M2Vh
ZGNkZTA2ZjMwMjMwMDlmOGE4NzQxYmJmLi45Yzk1Yzg0MGI1ZTEwMmU3MzAwYTJjMDJkMzE1YTNj
MmFlZThjMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTEtMTEtMDYgIEtlaXNo
aSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQ2hhbmdlIENvbG9yQ2hv
b3NlciBmcm9tIHNpbmdsZXRvbiB0byBvcmRpbmFyeSBvYmplY3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNjQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgS2VudCBUYW11cmEuCisKKyAgICAgICAgQ2hhbmdpbmcgV2ViQ29yZTo6Q29sb3JDaG9vc2Vy
IGZyb20gYSBzaW5nbGV0b24gdG8gYW4gb3JkaW5hcnkgb2JqZWN0IGNhbiBicm9hZGVuIGhvdyBi
cm93c2VycyBpbXBsZW1lbnQgdGhlIGNvbG9yIGNob29zZXIgaW50ZXJmYWNlLgorCisgICAgICAg
ICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6fkNvbG9ySW5wdXRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZSk6IElmIGEgY2hvb3NlciBleGlz
dHMsIGNhbGxzIENocm9tZTo6c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyCisgICAgICAg
IChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbG9ySW5wdXRUeXBlOjpkaWRDbGVhbnVwKTogQ2FsbGVkIGFmdGVyIGNsZWFudXAgaXMgY29t
cGxldGUuCisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6Y2xlYW51cENvbG9yQ2hv
b3Nlcik6IFJlbmFtZWQgZnJvbSBjbGVhbnVwQ29sb3JDaG9vc2VySWZDdXJyZW50Q2xpZW50Lgor
ICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2VsZWN0
Q29sb3JJbkNvbG9yQ2hvb3Nlcik6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6
CisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6RW1w
dHlDaHJvbWVDbGllbnQ6OmNsZWFudXBDb2xvckNob29zZXIpOiBBZGRlZCBjb2xvckNob29zZXIg
YXJndW1lbnQgYmVjYXVzZSB0aGVyZSBhcmUgbWFueSBXZWJDb3JlOjpDb2xvckNob29zZXJzIG5v
dy4KKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpzZXRTZWxlY3RlZENvbG9y
SW5Db2xvckNob29zZXIpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmNsZWFudXBDb2xvckNob29zZXIpOiBBZGRlZCBjb2xvckNo
b29zZXIgYXJndW1lbnQgYmVjYXVzZSB0aGVyZSBhcmUgbWFueSBXZWJDb3JlOjpDb2xvckNob29z
ZXJzIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6c2V0U2VsZWN0ZWRDb2xvckluQ29s
b3JDaG9vc2VyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL0NvbG9yQ2hvb3Nlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQ6On5Db2xvckNob29zZXJDbGll
bnQpOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50OjpuZXdDb2xvckNob29z
ZXIpOiBDcmVhdGVzIGEgbmV3IGNvbG9yIGNob29zZXIgdGhhdCBpcyBjb25uZWN0ZWQgdG8gaXRz
ZWxmLgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50OjpkaXNjYXJkQ2hvb3Nl
cik6IERpc2NhcmRzIHRoZSBjb25uZWN0ZWQgY29sb3IgY2hvb3Nlci4KKyAgICAgICAgKFdlYkNv
cmU6OkNvbG9yQ2hvb3Nlcjo6Q29sb3JDaG9vc2VyKTogQ29sb3JDaG9vc2VyIGlzIFJlZkNvdW50
ZWQuCisgICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXI6OmNyZWF0ZSk6IENyZWF0ZXMgYSBD
b2xvckNob29zZXIgdGhhdCBpcyBjb25uZWN0ZWQgdG8gdGhlIGdpdmVuIENvbG9yQ2hvb3NlckNs
aWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcjo6fkNvbG9yQ2hvb3Nlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpDb2xvckNob29zZXI6OmRpZENob29zZUNvbG9yKTogQ2FsbGVkIGZy
b20gV2ViS2l0IHNpZGUgd2hlbiB1c2VyIGNob3NlIGEgY29sb3IuIENhbGxzIENvbG9yQ2hvb3Nl
ckNsaWVudDo6ZGlkQ2hvb3NlQ29sb3IKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcjo6
ZGlkQ2xlYW51cCk6IENhbGxlZCBmcm9tIFdlYktpdCBzaWRlIHdoZW4gdXNlciBjb2xvciBjaG9v
c2VyIHdhcyBjbGVhbmVkIHVwLiBDYWxscyBDb2xvckNob29zZXJDbGllbnQ6OmRpZENsZWFudXAK
KyAgICAgICAgKiBwbGF0Zm9ybS9Db2xvckNob29zZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bG9yQ2hvb3NlckNsaWVudDo6Y2hvb3Nlcik6IFJldHVybnMgdGhlIGN1cnJlbnQgQ29sb3JDaG9v
c2VyLgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JDaG9vc2VyOjpkaXNjb25uZWN0Q2xpZW50KTog
RGlzY29ubmVjdHMgdGhlIENvbG9yQ2hvb3NlckNsaWVudC4KKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNlbGVjdENvbG9ySW5D
b2xvckNob29zZXIpOiBBZGRlZCBlbGVtZW50IGFyZ3VtZW50LiBUaGlzIGNhbGxzIGRpZENob29z
ZUNvbG9yIG9uIHRoZSBDb2xvckNob29zZXIgb2YgdGhhdCBlbGVtZW50LgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOiBSZW1v
dmVkIGNvbm5lY3RDb2xvckNob29zZXJDbGllbnQgYW5kIHVwZGF0ZWQgc2VsZWN0Q29sb3JJbkNv
bG9yQ2hvb3Nlci4KKwogMjAxMS0xMS0wNCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENNYWtlIGJ1aWxkIGZpeCBmb3IgIUVOQUJM
RShTUUxfREFUQUJBU0UpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjOTM0ZDA1MjQ4MWMzZDRl
N2RlNzRjYjY4ODYyZTZiODY0ZjQ1NGQxLi43N2ZiMzBkMTVhNDc5MzZlMzQ1ODE5NWY5YjkyM2Jl
ODg4YjA2OTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTk3NywxMCArMTk3Nyw4IEBAIF9f
Wk43V2ViQ29yZTE0UmVzb3VyY2VIYW5kbGUyNHNldERlZmF1bHRTdG9yYWdlU2Vzc2lvbkVQSzIx
X19DRlVSTFN0b3JhZ2VTZXNzaW9uCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikK
LV9fWk43V2ViQ29yZTEyQ29sb3JDaG9vc2VyN2Nob29zZXJFdgotX19aTks3V2ViQ29yZTEyQ29s
b3JDaG9vc2VyMTNkaWRDaG9vc2VDb2xvckVSS05TXzVDb2xvckUKIF9fWk43V2ViQ29yZTVDb2xv
ckMxRVJLTjNXVEY2U3RyaW5nRQotX19aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MjFjb25u
ZWN0VG9Db2xvckNob29zZXJFdgorX19aTjdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MjVzZWxl
Y3RDb2xvckluQ29sb3JDaG9vc2VyRVJLTlNfNUNvbG9yRQogI2VuZGlmCiAKICNpZiAhZGVmaW5l
ZChOU0dFT01FVFJZX1RZUEVTX1NBTUVfQVNfQ0dHRU9NRVRSWV9UWVBFUykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggOGU3OTQyMTMyODZhMmViY2I1ZDI1NzM3NTY2
ZDUwMjlhYTc1NjNlNC4uNTdlZTU3NzAxN2ZhYjIzMDA3NzkyMzVmMGNjNWZkY2YyYWU4NmY4YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAg
UGFzc093blB0cjxJbnB1dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCkKIAogQ29sb3JJbnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiB7Ci0g
ICAgY2xlYW51cENvbG9yQ2hvb3NlcklmQ3VycmVudENsaWVudCgpOworICAgIGNsZWFudXBDb2xv
ckNob29zZXIoKTsKIH0KIAogYm9vbCBDb2xvcklucHV0VHlwZTo6aXNDb2xvckNvbnRyb2woKSBj
b25zdApAQCAtMTI2LDEwICsxMjYsOSBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZShj
b25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgYm9vbCBzZW5kQwogICAgICAg
ICByZXR1cm47CiAKICAgICB1cGRhdGVDb2xvclN3YXRjaCgpOwotICAgIGlmIChDb2xvckNob29z
ZXI6OmNob29zZXIoKS0+Y2xpZW50KCkgPT0gdGhpcykgewotICAgICAgICBpZiAoQ2hyb21lKiBj
aHJvbWUgPSB0aGlzLT5jaHJvbWUoKSkKLSAgICAgICAgICAgIGNocm9tZS0+c2V0U2VsZWN0ZWRD
b2xvckluQ29sb3JDaG9vc2VyKHZhbHVlQXNDb2xvcigpKTsKLSAgICB9CisgICAgQ2hyb21lKiBj
aHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsKKyAgICBpZiAoY2hyb21lICYmIGNob29zZXIoKSkKKyAg
ICAgICAgY2hyb21lLT5zZXRTZWxlY3RlZENvbG9ySW5Db2xvckNob29zZXIoY2hvb3NlcigpLCB2
YWx1ZUFzQ29sb3IoKSk7CiB9CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2
YXRlRXZlbnQoRXZlbnQqIGV2ZW50KQpAQCAtMTQwLDE2ICsxMzksMTQgQEAgdm9pZCBDb2xvcklu
cHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCogZXZlbnQpCiAgICAgaWYgKCFT
Y3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpIHsKLSAgICAgICAg
Q29sb3JDaG9vc2VyOjpjaG9vc2VyKCktPmNvbm5lY3RDbGllbnQodGhpcyk7Ci0gICAgICAgIGNo
cm9tZS0+b3BlbkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXI6OmNob29zZXIoKSwgdmFsdWVBc0Nv
bG9yKCkpOwotICAgIH0KKyAgICBpZiAoQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKSkK
KyAgICAgICAgY2hyb21lLT5vcGVuQ29sb3JDaG9vc2VyKG5ld0NvbG9yQ2hvb3NlcigpLCB2YWx1
ZUFzQ29sb3IoKSk7CiAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKIHZvaWQg
Q29sb3JJbnB1dFR5cGU6OmRldGFjaCgpCiB7Ci0gICAgY2xlYW51cENvbG9yQ2hvb3NlcklmQ3Vy
cmVudENsaWVudCgpOworICAgIGNsZWFudXBDb2xvckNob29zZXIoKTsKIH0KIAogdm9pZCBDb2xv
cklucHV0VHlwZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtMTYxLDE3
ICsxNTgsMTcgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29s
b3ImIGNvbG9yKQogICAgIGVsZW1lbnQoKS0+ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50
KCk7CiB9CiAKLWJvb2wgQ29sb3JJbnB1dFR5cGU6OmlzQ29sb3JJbnB1dFR5cGUoKSBjb25zdAor
dm9pZCBDb2xvcklucHV0VHlwZTo6ZGlkQ2xlYW51cCgpCiB7Ci0gICAgcmV0dXJuIHRydWU7Cisg
ICAgZGlzY2FyZENob29zZXIoKTsKIH0KIAotdm9pZCBDb2xvcklucHV0VHlwZTo6Y2xlYW51cENv
bG9yQ2hvb3NlcklmQ3VycmVudENsaWVudCgpIGNvbnN0Cit2b2lkIENvbG9ySW5wdXRUeXBlOjpj
bGVhbnVwQ29sb3JDaG9vc2VyKCkKIHsKLSAgICBpZiAoQ29sb3JDaG9vc2VyOjpjaG9vc2VyKCkt
PmNsaWVudCgpICE9IHRoaXMpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoQ2hyb21lKiBjaHJv
bWUgPSB0aGlzLT5jaHJvbWUoKSkKLSAgICAgICAgY2hyb21lLT5jbGVhbnVwQ29sb3JDaG9vc2Vy
KCk7CisgICAgQ2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKTsKKyAgICBpZiAoY2hyb21l
ICYmIGNob29zZXIoKSkKKyAgICAgICAgY2hyb21lLT5jbGVhbnVwQ29sb3JDaG9vc2VyKGNob29z
ZXIoKSk7CisgICAgZGlzY2FyZENob29zZXIoKTsKIH0KIAogdm9pZCBDb2xvcklucHV0VHlwZTo6
dXBkYXRlQ29sb3JTd2F0Y2goKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xv
cklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCmluZGV4
IGFkOGFmYzRmYzgxZGMzMjRhOTA4ZGZjODI1NjBkYTY2OWE3ZWNhMjkuLjRiMjMzZDMzODA4NTVl
ZjIzZWZlZTRlNzdiN2QxYjVhZGZiZDQxNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQ29sb3JJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRU
eXBlLmgKQEAgLTU3LDEwICs1NywxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZXRh
Y2goKTsKIAogICAgIC8vIENvbG9yQ2hvb3NlckNsaWVudCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29sb3ImKTsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNDb2xvcklucHV0VHlwZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBkaWRDaG9vc2VD
b2xvcihjb25zdCBDb2xvciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVw
KCkgT1ZFUlJJREU7CiAKLSAgICB2b2lkIGNsZWFudXBDb2xvckNob29zZXJJZkN1cnJlbnRDbGll
bnQoKSBjb25zdDsKKyAgICB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoKTsKICAgICB2b2lkIHVw
ZGF0ZUNvbG9yU3dhdGNoKCk7CiAgICAgSFRNTEVsZW1lbnQqIHNoYWRvd0NvbG9yU3dhdGNoKCkg
Y29uc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXgg
OWVmZDRkYjJhYzBiOTllMDU5M2M1MjQyYTRiMDZmOWY5NGRiZDFjZC4uOTRhOTkyZDc3Y2Y1NmJm
ODcxYzRjNWQ3ZDgwOTcwMmYwMjc5MmNjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCkBAIC0xNTIzLDEyICsxNTIzLDE0IEBAIGJvb2wgSFRNTElucHV0RWxlbWVu
dDo6cmVjYWxjV2lsbFZhbGlkYXRlKCkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9DT0xP
UikKLWJvb2wgSFRNTElucHV0RWxlbWVudDo6Y29ubmVjdFRvQ29sb3JDaG9vc2VyKCkKK3ZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3Nlcihjb25zdCBDb2xvciYg
Y29sb3IpCiB7CiAgICAgaWYgKCFtX2lucHV0VHlwZS0+aXNDb2xvckNvbnRyb2woKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIENvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5jb25uZWN0Q2xp
ZW50KHN0YXRpY19jYXN0PENvbG9ySW5wdXRUeXBlKj4obV9pbnB1dFR5cGUuZ2V0KCkpKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuOworICAgIFJlZlB0cjxDb2xvckNob29zZXI+
IGNob29zZXIgPSBzdGF0aWNfY2FzdDxDb2xvcklucHV0VHlwZSo+KG1faW5wdXRUeXBlLmdldCgp
KS0+Y2hvb3NlcigpOworICAgIGlmICghY2hvb3NlcikKKyAgICAgICAgcmV0dXJuOworICAgIGNo
b29zZXItPmRpZENob29zZUNvbG9yKGNvbG9yKTsKIH0KICNlbmRpZgogICAgIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCAwMmM4ZjhmYjVlMzgzMzIyMzIwMTBmNmQ1
OTA0ZGQzZTQ0ZTZlNTU3Li5iNTBiNTA5NDkwOWZjNWY0NzFiMTI1N2Y0YTdkZDM0Y2E5ZTZmYTQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjI5LDcgKzIyOSw3
IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShJTlBVVF9DT0xPUikKICAgICAvLyBGb3IgdGVzdCBw
dXJwb3Nlcy4KLSAgICBib29sIGNvbm5lY3RUb0NvbG9yQ2hvb3NlcigpOworICAgIHZvaWQgc2Vs
ZWN0Q29sb3JJbkNvbG9yQ2hvb3Nlcihjb25zdCBDb2xvciYpOwogI2VuZGlmCiAKICAgICBTdHJp
bmcgZGVmYXVsdFRvb2xUaXAoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMu
aAppbmRleCAyYjc1ZWZiYWQ4OTQzZWJmMjY4ODNmYmMzOGEyMGIxYzExMzZkYjc2Li4xM2NjMDhm
MzE0M2FhMGY5NzkzODQ0YTZmNDNhNzg2OTQ0ZTQ2YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCkBAIC0xOTcsOCArMTk3LDggQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKElO
UFVUX0NPTE9SKQogICAgIHZvaWQgb3BlbkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBjb25z
dCBDb2xvciYpIHsgfQotICAgIHZvaWQgY2xlYW51cENvbG9yQ2hvb3NlcigpIHsgfQotICAgIHZv
aWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKGNvbnN0IENvbG9yJikgeyB9CisgICAg
dm9pZCBjbGVhbnVwQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciopIHsgfQorICAgIHZvaWQgc2V0
U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0IENvbG9yJikg
eyB9CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNz
UmVmUHRyPEZpbGVDaG9vc2VyPikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggN2UzYzZj
MzVhNDkwN2E4Yjc0YWNjN2MwZmRlY2I2OTcyMTBlNTY3OS4uNmQwZGE4ZmM0ZGYyNmNhYmQ5ZWVi
ZjQ3Y2NmZmU4MmQ4MTNjMTFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDYzLDE0ICs0
NjMsMTQgQEAgdm9pZCBDaHJvbWU6Om9wZW5Db2xvckNob29zZXIoQ29sb3JDaG9vc2VyKiBjb2xv
ckNob29zZXIsIGNvbnN0IENvbG9yJiBpbml0aWFsQ28KICAgICBtX2NsaWVudC0+b3BlbkNvbG9y
Q2hvb3Nlcihjb2xvckNob29zZXIsIGluaXRpYWxDb2xvcik7CiB9CiAKLXZvaWQgQ2hyb21lOjpj
bGVhbnVwQ29sb3JDaG9vc2VyKCkKK3ZvaWQgQ2hyb21lOjpjbGVhbnVwQ29sb3JDaG9vc2VyKENv
bG9yQ2hvb3NlciogY29sb3JDaG9vc2VyKQogewotICAgIG1fY2xpZW50LT5jbGVhbnVwQ29sb3JD
aG9vc2VyKCk7CisgICAgbV9jbGllbnQtPmNsZWFudXBDb2xvckNob29zZXIoY29sb3JDaG9vc2Vy
KTsKIH0KIAotdm9pZCBDaHJvbWU6OnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihjb25z
dCBDb2xvciYgY29sb3IpCit2b2lkIENocm9tZTo6c2V0U2VsZWN0ZWRDb2xvckluQ29sb3JDaG9v
c2VyKENvbG9yQ2hvb3NlciogY29sb3JDaG9vc2VyLCBjb25zdCBDb2xvciYgY29sb3IpCiB7Ci0g
ICAgbV9jbGllbnQtPnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihjb2xvcik7CisgICAg
bV9jbGllbnQtPnNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihjb2xvckNob29zZXIsIGNv
bG9yKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA0NTY2NmVhMzVkZDM2ODhi
ZmYzMzcxMTFmZTk5ZGViYjg5OGIyZDZmLi41MWM1OTIyYzg0MWQzNzk5MzMyYTQwMzk2ZjZiNjU2
NGY0ODFkODM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTE1Nyw4ICsxNTcsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgICAgIHZvaWQgb3Bl
bkNvbG9yQ2hvb3NlcihDb2xvckNob29zZXIqLCBjb25zdCBDb2xvciYpOwotICAgICAgICB2b2lk
IGNsZWFudXBDb2xvckNob29zZXIoKTsKLSAgICAgICAgdm9pZCBzZXRTZWxlY3RlZENvbG9ySW5D
b2xvckNob29zZXIoY29uc3QgQ29sb3ImKTsKKyAgICAgICAgdm9pZCBjbGVhbnVwQ29sb3JDaG9v
c2VyKENvbG9yQ2hvb3NlciopOworICAgICAgICB2b2lkIHNldFNlbGVjdGVkQ29sb3JJbkNvbG9y
Q2hvb3NlcihDb2xvckNob29zZXIqLCBjb25zdCBDb2xvciYpOwogI2VuZGlmCiAKICAgICAgICAg
dm9pZCBydW5PcGVuUGFuZWwoRnJhbWUqLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBjZGU3YzQyYjE5ZjYyYmFkOWE3N2U3N2NhMmE1
ODZiYjQxOWU5Njk5Li43Y2NiNzdhZGI5OWRhMTRhZTVlMWFhMjcyNzVmMjMzZDgzZGRhMTVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTIyOCw4ICsyMjgsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09MT1IpCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBvcGVuQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0IENvbG9yJikgPSAwOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgY2xlYW51cENvbG9yQ2hvb3NlcigpID0gMDsKLSAgICAgICAg
dmlydHVhbCB2b2lkIHNldFNlbGVjdGVkQ29sb3JJbkNvbG9yQ2hvb3Nlcihjb25zdCBDb2xvciYp
ID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGNsZWFudXBDb2xvckNob29zZXIoQ29sb3JDaG9v
c2VyKikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0ZWRDb2xvckluQ29sb3JD
aG9vc2VyKENvbG9yQ2hvb3NlciosIGNvbnN0IENvbG9yJikgPSAwOwogI2VuZGlmCiAKICAgICAg
ICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSosIFBhc3NSZWZQdHI8RmlsZUNob29z
ZXI+KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29z
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29sb3JDaG9vc2VyLmNwcAppbmRleCA2
ZTBlN2NiNGVkNTA2ZWUxM2UwYzAyYjNiNWRkYmJiMmI4ZDYyMzMxLi4xNzNmM2Y4ZTNmNTVkMTll
OWMxZTgwMzE3NTcwY2Q0MDNkMjVmZGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Db2xvckNob29zZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9y
Q2hvb3Nlci5jcHAKQEAgLTM4LDM2ICszOCw1MCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENv
bG9yQ2hvb3NlckNsaWVudDo6fkNvbG9yQ2hvb3NlckNsaWVudCgpCiB7Ci0gICAgQ29sb3JDaG9v
c2VyOjpjaG9vc2VyKCktPmRpc2Nvbm5lY3RDbGllbnQodGhpcyk7CisgICAgZGlzY2FyZENob29z
ZXIoKTsKIH0KIAotc3RhdGljIENvbG9yQ2hvb3Nlciogc3RhdGljQ2hvb3NlciA9IDA7CitDb2xv
ckNob29zZXIqIENvbG9yQ2hvb3NlckNsaWVudDo6bmV3Q29sb3JDaG9vc2VyKCkKK3sKKyAgICBk
aXNjYXJkQ2hvb3NlcigpOworCisgICAgbV9jaG9vc2VyID0gQ29sb3JDaG9vc2VyOjpjcmVhdGUo
dGhpcyk7CisgICAgcmV0dXJuIG1fY2hvb3Nlci5nZXQoKTsKK30KKwordm9pZCBDb2xvckNob29z
ZXJDbGllbnQ6OmRpc2NhcmRDaG9vc2VyKCkKK3sKKyAgICBpZiAobV9jaG9vc2VyKQorICAgICAg
ICBtX2Nob29zZXItPmRpc2Nvbm5lY3RDbGllbnQoKTsKKyAgICBtX2Nob29zZXIuY2xlYXIoKTsK
K30KIAotQ29sb3JDaG9vc2VyKiBDb2xvckNob29zZXI6OmNob29zZXIoKQoraW5saW5lIENvbG9y
Q2hvb3Nlcjo6Q29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50KQorICAgIDog
bV9jbGllbnQoY2xpZW50KQogewotICAgIGlmICghc3RhdGljQ2hvb3NlcikKLSAgICAgICAgc3Rh
dGljQ2hvb3NlciA9IGFkb3B0UHRyKG5ldyBDb2xvckNob29zZXIoKSkubGVha1B0cigpOwotICAg
IHJldHVybiBzdGF0aWNDaG9vc2VyOwogfQogCi12b2lkIENvbG9yQ2hvb3Nlcjo6Y29ubmVjdENs
aWVudChDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkKK1Bhc3NSZWZQdHI8Q29sb3JDaG9vc2Vy
PiBDb2xvckNob29zZXI6OmNyZWF0ZShDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCkKIHsKLSAg
ICBpZiAoY2xpZW50ICE9IG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudCA9IGNsaWVudDsKKyAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IENvbG9yQ2hvb3NlcihjbGllbnQpKTsKIH0KIAotdm9pZCBD
b2xvckNob29zZXI6OmRpc2Nvbm5lY3RDbGllbnQoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQp
CitDb2xvckNob29zZXI6On5Db2xvckNob29zZXIoKQogewotICAgIGlmIChjbGllbnQgPT0gbV9j
bGllbnQpCi0gICAgICAgIG1fY2xpZW50ID0gMDsKIH0KIAotdm9pZCBDb2xvckNob29zZXI6OmRp
ZENob29zZUNvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikgY29uc3QKK3ZvaWQgQ29sb3JDaG9vc2Vy
OjpkaWRDaG9vc2VDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKG1fY2xpZW50
KQogICAgICAgICBtX2NsaWVudC0+ZGlkQ2hvb3NlQ29sb3IoY29sb3IpOwogfQogCit2b2lkIENv
bG9yQ2hvb3Nlcjo6ZGlkQ2xlYW51cCgpCit7CisgICAgaWYgKG1fY2xpZW50KQorICAgICAgICBt
X2NsaWVudC0+ZGlkQ2xlYW51cCgpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5QVVRf
Q09MT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db2xvckNob29zZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5oCmluZGV4IDFlNjg3ODgz
Mjk0NDI4ODk0MjEwZTNiNjM5MjE0M2FhMGU3MDQ3NjguLmJhMTExMzQ4OWYzZjkwNTcxYTA3YTgy
ZWU5Y2NkMDZiOTM0MTI4MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nv
bG9yQ2hvb3Nlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbG9yQ2hvb3Nlci5o
CkBAIC0zMSw2ICszMSw4IEBACiAjZGVmaW5lIENvbG9yQ2hvb3Nlcl9oCiAKICNpbmNsdWRlICJD
b2xvci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogCkBAIC00MiwyMyArNDQsMjkgQEAgY2xh
c3MgQ29sb3JDaG9vc2VyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Db2xvckNob29z
ZXJDbGllbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgQ29sb3Im
KSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzQ29sb3JJbnB1dFR5cGUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwKCkgPSAwOworICAgIENvbG9y
Q2hvb3NlciogY2hvb3NlcigpIHsgcmV0dXJuIG1fY2hvb3Nlci5nZXQoKTsgfQorCitwcm90ZWN0
ZWQ6CisgICAgQ29sb3JDaG9vc2VyKiBuZXdDb2xvckNob29zZXIoKTsKKyAgICB2b2lkIGRpc2Nh
cmRDaG9vc2VyKCk7CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPENvbG9yQ2hvb3Nlcj4gbV9jaG9v
c2VyOwogfTsKIAotY2xhc3MgQ29sb3JDaG9vc2VyIHsKK2NsYXNzIENvbG9yQ2hvb3NlciA6IHB1
YmxpYyBSZWZDb3VudGVkPENvbG9yQ2hvb3Nlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBDb2xv
ckNob29zZXIqIGNob29zZXIoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb2xvckNob29zZXI+
IGNyZWF0ZShDb2xvckNob29zZXJDbGllbnQqKTsKKyAgICB+Q29sb3JDaG9vc2VyKCk7CiAKLSAg
ICBDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9
OwotICAgIHZvaWQgY29ubmVjdENsaWVudChDb2xvckNob29zZXJDbGllbnQqKTsKLSAgICB2b2lk
IGRpc2Nvbm5lY3RDbGllbnQoQ29sb3JDaG9vc2VyQ2xpZW50Kik7CisgICAgdm9pZCBkaXNjb25u
ZWN0Q2xpZW50KCkgeyBtX2NsaWVudCA9IDA7IH0KIAotICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3Io
Y29uc3QgQ29sb3ImKSBjb25zdDsKKyAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IENvbG9y
Jik7CisgICAgdm9pZCBkaWRDbGVhbnVwKCk7CiAKIHByaXZhdGU6Ci0gICAgQ29sb3JDaG9vc2Vy
KCkKLSAgICAgICAgOiBtX2NsaWVudCgwKQotICAgIHsgfQorICAgIENvbG9yQ2hvb3NlcihDb2xv
ckNob29zZXJDbGllbnQqKTsKIAogICAgIENvbG9yQ2hvb3NlckNsaWVudCogbV9jbGllbnQ7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGFlZmE0ZDk2M2YzODhjOTk0
MzMzYmQyMGFmZDIxYjQwZmNlNWViNTUuLmIxZGRkMTlhYjcyZTk2MGRiODkwZGI1NWMxNzkzYTE5
M2JjOTNhODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE3NCwxOSAr
MTc0LDE0IEBAIFN0cmluZyBJbnRlcm5hbHM6OnNoYWRvd1BzZXVkb0lkKEVsZW1lbnQqIGVsZW1l
bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogfQogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQotYm9v
bCBJbnRlcm5hbHM6OmNvbm5lY3RDb2xvckNob29zZXJDbGllbnQoRWxlbWVudCogZWxlbWVudCkK
K3ZvaWQgSW50ZXJuYWxzOjpzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKEVsZW1lbnQqIGVsZW1l
bnQsIGNvbnN0IFN0cmluZyYgY29sb3JWYWx1ZSkKIHsKICAgICBpZiAoIWVsZW1lbnQtPmhhc1Rh
Z05hbWUoSFRNTE5hbWVzOjppbnB1dFRhZykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuOwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IGVsZW1lbnQt
PnRvSW5wdXRFbGVtZW50KCk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5jb25uZWN0VG9Db2xvckNob29zZXIo
KTsKLX0KLQotdm9pZCBJbnRlcm5hbHM6OnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoY29uc3Qg
U3RyaW5nJiBjb2xvclZhbHVlKQotewotICAgIENvbG9yQ2hvb3Nlcjo6Y2hvb3NlcigpLT5jb2xv
clNlbGVjdGVkKENvbG9yKGNvbG9yVmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIGlucHV0
RWxlbWVudC0+c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihDb2xvcihjb2xvclZhbHVlKSk7CiB9
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMThiNDIyNWJlMWZh
NzAxODU4NTUzYmYzNzM0ZGZmMDM2NTZmMGU4Ni4uZWQwZjZkOTJiMWRlZGVmZTU1YTlkOGE2ODFk
OWQyOGMwYmNlY2EzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC02MCw4ICs2
MCw3IEBAIHB1YmxpYzoKICAgICBFbGVtZW50KiBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChO
b2RlKiBzaGFkb3dSb290LCBjb25zdCBTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJik7CiAKICNp
ZiBFTkFCTEUoSU5QVVRfQ09MT1IpCi0gICAgYm9vbCBjb25uZWN0Q29sb3JDaG9vc2VyQ2xpZW50
KEVsZW1lbnQqKTsKLSAgICB2b2lkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoY29uc3QgU3Ry
aW5nJiBjb2xvclZhbHVlKTsKKyAgICB2b2lkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoRWxl
bWVudCosIGNvbnN0IFN0cmluZyYgY29sb3JWYWx1ZSk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMzg1MGJiYjhm
YWY3ZWQ2N2NlYmI1ZWRmZDExZmIzNDVmZDIwZGY2NS4uNGEzNjYzOGE2NmMwMmU3N2Q5NTdkMjU5
ZDUzMDIyYTY0MzA1MDYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAt
MzksOCArMzksNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgRWxlbWVudCBnZXRFbGVtZW50
QnlJZEluU2hhZG93Um9vdChpbiBOb2RlIHNoYWRvd1Jvb3QsIGluIERPTVN0cmluZyBpZCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9JTlBVVF9DT0xPUikgJiYg
RU5BQkxFX0lOUFVUX0NPTE9SCi0gICAgICAgIGJvb2xlYW4gY29ubmVjdENvbG9yQ2hvb3NlckNs
aWVudChpbiBFbGVtZW50IGVsZW1lbnQpOwotICAgICAgICB2b2lkIHNlbGVjdENvbG9ySW5Db2xv
ckNob29zZXIoaW4gRE9NU3RyaW5nIGNvbG9yVmFsdWUpOworICAgICAgICB2b2lkIHNlbGVjdENv
bG9ySW5Db2xvckNob29zZXIoaW4gRWxlbWVudCBlbGVtZW50LCBpbiBET01TdHJpbmcgY29sb3JW
YWx1ZSk7CiAjZW5kaWYKIAogICAgICAgICB2b2lkIHNldEluc3BlY3RvclJlc291cmNlc0RhdGFT
aXplTGltaXRzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBsb25nIG1heGltdW1SZXNvdXJjZXND
b250ZW50U2l6ZSwgaW4gbG9uZyBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzE4ZmQzMDBiYTMwZWJmMjUxYWE4ZTNkNWMxYjE1
ZTQ4NTlhNzI2Zi4uNDM3OGJjYzc0OWI4YzdiZTVmOTI2NDg1Mzg5YjE1YmNiNzc3NmFkOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTExLTA2ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3
ZWJraXQub3JnPgorCisgICAgICAgIENoYW5nZSBDb2xvckNob29zZXIgZnJvbSBzaW5nbGV0b24g
dG8gb3JkaW5hcnkgb2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTY0NAorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgorCisg
ICAgICAgICogZmFzdC9mb3Jtcy9jb2xvci9pbnB1dC1jb2xvci1vbmNoYW5nZS1ldmVudC5odG1s
OiBDaGFuZ2VkIHRvIG1hdGNoIHRoZSBjaGFuZ2VzIHRvIHdpbmRvdy5pbnRlcm5hbHMgb2JqZWN0
CisKIDIwMTEtMTEtMDQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgc29tZSBmYXN0L3ZpZXdwb3J0IGZhaWxpbmcgdGVz
dHMgb24gR1RLIGFmdGVyIHI5OTE5NS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvY29sb3IvaW5wdXQtY29sb3Itb25jaGFuZ2UtZXZlbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvY29sb3IvaW5wdXQtY29sb3Itb25jaGFuZ2UtZXZlbnQuaHRtbAppbmRleCAyNjM2
ZTgzNTFmYTZmNTk4YTFlMzlkMDYxOTk1YWY4ODJkODRlYWZkLi5lM2EyMmZiNmMwNDc5MmNhNDli
ZDhlMjRmYTI3NDk1OWNiYzhiYTU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2NvbG9yL2lucHV0LWNvbG9yLW9uY2hhbmdlLWV2ZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9jb2xvci9pbnB1dC1jb2xvci1vbmNoYW5nZS1ldmVudC5odG1sCkBAIC03LDIx
ICs3LDMyIEBACiA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KIDxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCdUZXN0IGlmIGNoYW5nZSBldmVudCBmaXJlcyBw
cm9wZXJseSB3aGVuIGNvbG9yIGNob29zZXIgY2hhbmdlcy4gQnVnIDY2ODQ4Jyk7CitkZXNjcmlw
dGlvbignVGVzdCBpZiBjaGFuZ2UgZXZlbnQgZmlyZXMgcHJvcGVybHkgd2hlbiBjb2xvciBjaG9v
c2VyIGNoYW5nZXMuIEJ1ZyA2Njg0OCA8YnI+IFRvIG1hbnVhbGx5IHRlc3QgdGhpcywgY2xpY2sg
b24gdGhlIGlucHV0IGNvbG9yIGVsZW1lbnQgaW4gdGhlIHRvcCBsZWZ0IGNvcm5lciBhbmQgY2hh
bmdlIHRoZSB2YWx1ZSBmcm9tIHRoZSBjb2xvciBjaG9vc2VyLiBTZWUgaWYgdGhlIG51bWJlciBv
ZiAidmFsdWUgY2hhbmdlZCIgbWVzc2FnZXMgbWF0Y2hlcyB0aGUgbnVtYmVyIG9mIHRpbWVzIHlv
dSBjaGFuZ2VkIHRoZSBjb2xvci4nKTsKIAogdmFyIGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnaW5wdXQnKTsKIGlucHV0LnR5cGUgPSAnY29sb3InOwogaW5wdXQudmFsdWUgPSAnIzAw
MDAwMCc7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlucHV0KTsKKworaW5wdXQuc3R5bGUu
cG9zaXRpb24gPSAnYWJzb2x1dGUnOworaW5wdXQuc3R5bGUubGVmdCA9ICcwJzsKK2lucHV0LnN0
eWxlLnRvcCA9ICcwJzsKK2lucHV0LnN0eWxlLndpZHRoID0gJzIwcHgnOworaW5wdXQuc3R5bGUu
aGVpZ2h0ID0gJzIwcHgnOworCiBpbnB1dC5vbmNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgIGRl
YnVnKCJ2YWx1ZSBjaGFuZ2VkIHRvICIgKyBpbnB1dC52YWx1ZSk7Ci0gICAgZmluaXNoSlNUZXN0
KCk7CiB9OwotaWYgKCFpbnRlcm5hbHMuY29ubmVjdENvbG9yQ2hvb3NlckNsaWVudChpbnB1dCkp
Ci0gICAgdGVzdEZhaWxlZCgiQ291bGQgbm90IGNvbm5lY3QgQ29sb3JDaG9vc2VyQ2xpZW50LiIp
OwotaW50ZXJuYWxzLnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoJyNmZjAwMDAnKTsKKworZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsKK2V2ZW50U2VuZGVyLm1vdXNlRG93bigpOwor
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworCiAvLyBpbnB1dC5vbmNoYW5nZSBzaG91bGQgYmUgY2Fs
bGVkCi1pbnRlcm5hbHMuc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcignI2ZmMDAwMCcpOworaW50
ZXJuYWxzLnNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoaW5wdXQsICcjZmYwMDAwJyk7CiAvLyBp
bnB1dC5vbmNoYW5nZSBzaG91bGQgbm90IGJlIGNhbGxlZAoraW50ZXJuYWxzLnNlbGVjdENvbG9y
SW5Db2xvckNob29zZXIoaW5wdXQsICcjZmYwMDAwJyk7CisKIHNob3VsZEJlKCdpbnB1dC52YWx1
ZScsICciI2ZmMDAwMCInKTsKIDwvc2NyaXB0PgogPC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>