<?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>53583</bug_id>
          
          <creation_ts>2011-02-02 03:11:57 -0800</creation_ts>
          <short_desc>Refactoring: &lt;progress&gt; should not use ShadowElement</short_desc>
          <delta_ts>2011-02-03 17:46:16 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>48698</blocked>
    
    <blocked>53417</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>343931</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-02 03:11:57 -0800</bug_when>
    <thetext>This is a part of ShadowElement removal refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343935</commentid>
    <comment_count>1</comment_count>
      <attachid>80908</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-02 03:36:40 -0800</bug_when>
    <thetext>Created attachment 80908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343936</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-02 03:37:58 -0800</bug_when>
    <thetext>Hi Dimitri, could you take a look? 
This change kicks ShadowElement out from &lt;progress&gt;.
I&apos;ll do same for &lt;meter&gt; after this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343938</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-02 03:39:12 -0800</bug_when>
    <thetext>Attachment 80908 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 2

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = &quot;en_US.US-ASCII&quot;
    are supported and installed on your system.
perl: warning: Falling back to the standard locale (&quot;C&quot;).
Updating OpenSource
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LANG = &quot;en_US.US-ASCII&quot;
    are supported and installed on your system.
perl: warning: Falling back to the standard locale (&quot;C&quot;).
RA layer request failed: OPTIONS of &apos;http://svn.webkit.org/repository/webkit&apos;: could not connect to server (http://svn.webkit.org) at /usr/lib/git-core/git-svn line 2295

Died at Tools/Scripts/update-webkit line 132.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344004</commentid>
    <comment_count>4</comment_count>
      <attachid>80908</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-02-02 09:21:26 -0800</bug_when>
    <thetext>Comment on attachment 80908
Patch

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

Can you explain a bit about the originalVisibility? I may have known but forgotten, and now confuses me. I am easily confused. Why do we need this?

&gt; Source/WebCore/html/HTMLProgressElement.cpp:40
&gt; +class ProgressBarValueElement : public HTMLDivElement {

This class should live in html/shadow/ProgressBarValuePartElement

&gt; Source/WebCore/html/HTMLProgressElement.cpp:53
&gt; +#if 0

You didn&apos;t mean to leave this in :)

&gt; Source/WebCore/rendering/RenderIndicator.h:37
&gt; +    virtual bool shouldHidden() = 0;

shouldBeHidden()?

&gt; Source/WebCore/rendering/RenderProgress.cpp:102
&gt; +    for (RenderObject* child = firstChild(); child; child = child-&gt;nextSibling())

Why is this here? Why can&apos;t we just use RenderProgress:layout()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344503</commentid>
    <comment_count>5</comment_count>
      <attachid>81027</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-02 20:22:25 -0800</bug_when>
    <thetext>Created attachment 81027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344506</commentid>
    <comment_count>6</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-02 20:27:05 -0800</bug_when>
    <thetext>Oops. Updated patch is not ready....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344529</commentid>
    <comment_count>7</comment_count>
      <attachid>81031</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-02 21:59:01 -0800</bug_when>
    <thetext>Created attachment 81031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344530</commentid>
    <comment_count>8</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-02 21:59:56 -0800</bug_when>
    <thetext>Dimitori, thank you for the review!
I updated the patch.

(In reply to comment #4)
&gt; (From update of attachment 80908 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=80908&amp;action=review
&gt; 
&gt; Can you explain a bit about the originalVisibility? I may have known but forgotten, and now confuses me. I am easily confused. Why do we need this?
This is for the situation that dynamically changes the visibility. (hiding/unhiding the part element.)
Though &lt;progress&gt; has no such case,  &lt;meter&gt; has one.
I&apos;m preparing for code sharing between &lt;meter&gt;and &lt;progress&gt;, so I&apos;ll put this here.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLProgressElement.cpp:40
&gt; &gt; +class ProgressBarValueElement : public HTMLDivElement {
&gt; 
&gt; This class should live in html/shadow/ProgressBarValuePartElement
Moved to there.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLProgressElement.cpp:53
&gt; &gt; +#if 0
&gt; 
&gt; You didn&apos;t mean to leave this in :)
&gt;
Oops. Removed.
 
&gt; &gt; Source/WebCore/rendering/RenderIndicator.h:37
&gt; &gt; +    virtual bool shouldHidden() = 0;
&gt; 
&gt; shouldBeHidden()?
Sure. Renamed.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderProgress.cpp:102
&gt; &gt; +    for (RenderObject* child = firstChild(); child; child = child-&gt;nextSibling())
&gt; 
&gt; Why is this here? Why can&apos;t we just use RenderProgress:layout()?
This is because RenderProgress shares layout() with RenderMeter via RenderIndicator superclass.
I&apos;m going to migrate the layout code of both and remove layoutAsPart() at that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344956</commentid>
    <comment_count>9</comment_count>
      <attachid>81031</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-02-03 13:16:33 -0800</bug_when>
    <thetext>Comment on attachment 81031
Patch

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345090</commentid>
    <comment_count>10</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-02-03 16:03:38 -0800</bug_when>
    <thetext>It looks like patch 81031 mis-spells ProgressBarValueElement.h in GNUmakefile.am and WebCore.gypi (ProgressBarValuElement.h c.f. ProgressBarValueElement.h in WebCore.xcodeproj.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345221</commentid>
    <comment_count>11</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-03 17:43:24 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; It looks like patch 81031 mis-spells ProgressBarValueElement.h in GNUmakefile.am and WebCore.gypi (ProgressBarValuElement.h c.f. ProgressBarValueElement.h in WebCore.xcodeproj.)
oh, thanks for finding this! I&apos;ll fix it before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345222</commentid>
    <comment_count>12</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-02-03 17:46:16 -0800</bug_when>
    <thetext>Committed r77578: &lt;http://trac.webkit.org/changeset/77578&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80908</attachid>
            <date>2011-02-02 03:36:40 -0800</date>
            <delta_ts>2011-02-02 20:22:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53583-20110202203638.patch</filename>
            <type>text/plain</type>
            <size>13815</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjMDZiN2U3Y2VlMmUzNzZkZGE1ZTgyY2Y5NGQxYjBmYTdiZmI0YjA2Li41NjdiNTE4
ZDNiMDQzMjM2ZDg2YWE5OGJkNDQ5NmJkNTc2MDFhMzA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDItMDIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IDxw
cm9ncmVzcz4gc2hvdWxkIG5vdCB1c2UgU2hhZG93RWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM1ODMKKworICAgICAgICBVcGRhdGVkIHRv
IGNhdGNoIHRoZSBjaGFuZ2Ugb24gLXdlYmtpdC1wcm9ncmVzcy1iYXItdmFsdWUgaW50ZXJwcmV0
YXRpb24uCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNz
LWJhci12YWx1ZS1wc2V1ZG8tZWxlbWVudC5odG1sOgorCiAyMDExLTAyLTAyICBIYW5zIFdlbm5i
b3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVyZW15IE9y
bG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVu
dC9wcm9ncmVzcy1iYXItdmFsdWUtcHNldWRvLWVsZW1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtYmFyLXZhbHVlLXBzZXVkby1lbGVt
ZW50Lmh0bWwKaW5kZXggMWIzZDNiZjU1MTgxMmM1ZjIzNGIyMGI0MzY0ZjhiZTdhNDc4NDM0OS4u
NDM2YTgxMzBlY2I5Nzc5MDhmNGM3NWFmZjkwMWZmZjQzMWUyNzFlMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVzcy1iYXItdmFsdWUt
cHNldWRvLWVsZW1lbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jl
c3NFbGVtZW50L3Byb2dyZXNzLWJhci12YWx1ZS1wc2V1ZG8tZWxlbWVudC5odG1sCkBAIC0yLDEz
ICsyLDEzIEBACiA8aGVhZD48c2NyaXB0Pgogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewog
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b0NoYW5nZVN0eWxlIikuc2V0QXR0cmlidXRl
KCJzdHlsZSIsICJib3JkZXI6M3B4IHJlZCBkb3R0ZWQ7IGJhY2tncm91bmQtY29sb3I6Y3lhbjsi
KTsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9BZGRTdHlsZSIpLnNldEF0dHJpYnV0
ZSgic3R5bGUiLCAiYm9yZGVyOjNweCByZWQgZG90dGVkOyBiYWNrZ3JvdW5kLWNvbG9yOmN5YW47
Iik7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvQWRkU3R5bGUiKS5zZXRBdHRyaWJ1
dGUoInN0eWxlIiwgImJvcmRlcjozcHggcmVkIGRvdHRlZDsgYmFja2dyb3VuZC1jb2xvcjpjeWFu
OyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7Iik7CiB9CiA8L3NjcmlwdD4KIDxzdHlsZT4KLS5z
dHlsZWQ6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyLXZhbHVlIHtiYWNrZ3JvdW5kLWNvbG9yOiBsaWdo
dGdyYXk7fQorLnN0eWxlZCB7IC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfQorLnN0eWxlZDo6
LXdlYmtpdC1wcm9ncmVzcy1iYXItdmFsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7
IH0KICN0b0FkZFN0eWxlOjotd2Via2l0LXByb2dyZXNzLWJhci12YWx1ZSB7YmFja2dyb3VuZC1j
b2xvcjpkYXJrYmx1ZTt9Ci0ubm8tYXBwZWFyYW5jZSB7LXdlYmtpdC1hcHBlYXJhbmNlOiBub25l
O30KIDwvc3R5bGU+CiA8L2hlYWQ+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwM2Y0NGRjNzVhMmE0
Mzc2YjJlZWZiM2NlZjdlYmVhMTY1MDA4ZmVhLi4wZTE5MjM2YWRhZjNhMjA5MjkzM2RkN2YyNWU0
ZjYzOTRjM2Y2OTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTEtMDItMDIgIE1P
UklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IDxwcm9ncmVzcz4gc2hvdWxk
IG5vdCB1c2UgU2hhZG93RWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTM1ODMKKworICAgICAgICAtIEludHJvZHVjZWQgUmVuZGVySW5kaWNh
dG9yUGFydCBhbmQgUmVuZGVyUHJvZ3Jlc3NCYXJWYWx1ZVBhcnQKKyAgICAgICAgICB0byBiZSBy
ZXNwb25zaWJsZSBmb3IgYmFyLXBhcnQgbGF5b3V0LAorICAgICAgICAgIHdoaWNoIGFkb3B0ZWQg
bGF5b3V0IGxvZ2ljIGZyb20gU2hhZG93QmxvY2tFbGVtZW50LgorICAgICAgICAtIFByb2dyZXNz
QmFyVmFsdWVFbGVtZW50IGlzIG5vIGxvbmdlciBhIHN1YmNsYXNzIG9mIFNoYWRvd0Jsb2NrRWxl
bWVudC4KKyAgICAgICAgLSBSZW1vdmUgZGVwZW5kZW5jeSBmcm9tIFJlbmRlclByb2dyZXNzIHRv
IEhUTUxQcm9ncmVzc0VsZW1lbnQgYW5kCisgICAgICAgICAgU2hhZG93QmxvY2tFbGVtZW50Lgor
ICAgICAgICAtIFRoZSBzaGFkb3cgdHJlZSBpcyBubyBsb25nZXIgcmVtb3ZlZCBvbiBkZXRhY2go
KS4gSXQgYmVjb21lcyBwZXJzaXN0ZW50LgorICAgICAgICAgIFRoaXMgaXMgbm93IHBvc3NpYmxl
IGJlY2F1c2UgdGhlIFNoYWRvd0Jsb2NrRWxlbWVudCBkZXBlbmRlbmN5IGlzIGdvbmUuCisgICAg
ICAgIC0gOjotd2Via2l0LWFwcGVhcmFuY2UgZm9yIC13ZWJraXQtcHJvZ3Jlc3MtYmFyLXZhbHVl
IGlzIG5vIGxvbmdlciByZWZlcnJlZC4KKyAgICAgICAgICBUaGF0IGRpZG4ndCBtYWtlIHNlbnNl
LgorCisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlByb2dyZXNzQmFyVmFsdWVFbGVtZW50OjpQcm9ncmVzc0JhclZhbHVlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0JhclZhbHVlRWxlbWVudDo6ZGV0YWNoKToKKyAg
ICAgICAgKFdlYkNvcmU6OlByb2dyZXNzQmFyVmFsdWVFbGVtZW50OjpjcmVhdGVSZW5kZXJlcik6
CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0JhclZhbHVlRWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWVJ
Zk5lZWRlZCk6CisgICAgICAgICogaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50Lmg6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckluZGljYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJJbmRpY2F0b3JQYXJ0OjpSZW5kZXJJbmRpY2F0b3JQYXJ0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckluZGljYXRvclBhcnQ6On5SZW5kZXJJbmRpY2F0b3JQYXJ0KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckluZGljYXRvclBhcnQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJJbmRpY2F0b3JQYXJ0OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckluZGljYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5kaWNhdG9yUGFy
dDo6b3JpZ2luYWxWaXNpYmlsaXR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckluZGljYXRv
clBhcnQ6OnJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJJbmRpY2F0b3JQYXJ0OjpjYW5IYXZlQ2hpbGRyZW4pOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQ
cm9ncmVzc0JhclZhbHVlUGFydDo6cHJlZmVycmVkRnJhbWVSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclByb2dyZXNzQmFyVmFsdWVQYXJ0OjpzaG91bGRIaWRkZW4pOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnVwZGF0ZUZyb21FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclByb2dyZXNzOjpsYXlvdXRQYXJ0cyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJQcm9ncmVzczo6c2hvdWxkSGF2ZVBhcnRzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzQmFyVmFsdWVQ
YXJ0OjpSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydCk6CisKIDIwMTEtMDItMDIgIEhhbnMgV2Vu
bmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkg
T3Jsb3cuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRl
eCA3ODI0ZmE4NmJmN2U3ODljNWJjODI3OGY3MjMzYTAyMTQyNDAyOWZjLi4yZGExMmM0MmQ2NTEw
ZjIzZjEyMmM5YzM3YmI1MGYzNWEyY2MwYjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTI2LDIxICsyNiwyMSBAQAogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9ybURhdGFM
aXN0LmgiCisjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCiAjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKLSNpbmNsdWRlICJTaGFkb3dFbGVt
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLWNsYXNzIFByb2dyZXNzQmFyVmFs
dWVFbGVtZW50IDogcHVibGljIFNoYWRvd0Jsb2NrRWxlbWVudCB7CitjbGFzcyBQcm9ncmVzc0Jh
clZhbHVlRWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgUHJv
Z3Jlc3NCYXJWYWx1ZUVsZW1lbnQoSFRNTEVsZW1lbnQqIHNoYWRvd1BhcmVudCkgCi0gICAgICAg
IDogU2hhZG93QmxvY2tFbGVtZW50KHNoYWRvd1BhcmVudCkKKyAgICBQcm9ncmVzc0JhclZhbHVl
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpIAorICAgICAgICA6IEhUTUxEaXZFbGVtZW50KGRp
dlRhZywgZG9jdW1lbnQpCiAgICAgewogICAgIH0KIApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBwc2V1ZElkOwogICAgIH0KIAorI2lmIDAKICAgICB2aXJ0dWFsIHZv
aWQgZGV0YWNoKCkKICAgICB7CiAgICAgICAgIC8vIEluc3RlYWQgb2YgdXNpbmcgc2V0U2hhZG93
SG9zdCgpIGxpa2UgU2hhZG93QmxvY2tFbGVtZW50IGRvZXMsCkBAIC01OCwxMiArNTksMTggQEAg
cHVibGljOgogICAgICAgICAvLyBzaGFkb3cgbW9kZWwgdHJhbnNpdGlvbiBpcyBvdmVyLiAoQnVn
IDUzNDE3KQogICAgICAgICBpZiAoRWxlbWVudCogaG9zdCA9IHNoYWRvd0hvc3QoKSkKICAgICAg
ICAgICAgIGhvc3QtPnNldFNoYWRvd1Jvb3QoMCk7Ci0gICAgICAgIFNoYWRvd0Jsb2NrRWxlbWVu
dDo6c2V0U2hhZG93SG9zdCgwKTsKKyAgICAgICAgc2V0U2hhZG93SG9zdCgwKTsKKyAgICB9Cisj
ZW5kaWYKKworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgKGFy
ZW5hKSBSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydCh0aGlzKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxQcm9ncmVzc0JhclZhbHVlRWxlbWVudD4gY3JlYXRlKEhUTUxFbGVtZW50
KiBzaGFkb3dQYXJlbnQpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8UHJvZ3Jlc3NCYXJWYWx1ZUVs
ZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFByb2dyZXNzQmFyVmFsdWVFbGVtZW50KHNoYWRvd1BhcmVudCkpOworICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2dyZXNzQmFyVmFsdWVFbGVtZW50KGRvY3VtZW50
KSk7CiAgICAgfQogCiB9OwpAQCAtMTUxLDExICsxNTgsNiBAQCBkb3VibGUgSFRNTFByb2dyZXNz
RWxlbWVudDo6cG9zaXRpb24oKSBjb25zdAogICAgIHJldHVybiB2YWx1ZSgpIC8gbWF4KCk7CiB9
CiAKLVNoYWRvd0Jsb2NrRWxlbWVudCogSFRNTFByb2dyZXNzRWxlbWVudDo6dmFsdWVQYXJ0KCkK
LXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhZG93QmxvY2tFbGVtZW50Kj4oc2hhZG93Um9v
dCgpKTsKLX0KLQogdm9pZCBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpkaWRFbGVtZW50U3RhdGVDaGFu
Z2UoKQogewogICAgIGlmIChyZW5kZXJlcigpKQpAQCAtMTY2LDcgKzE2OCw3IEBAIHZvaWQgSFRN
TFByb2dyZXNzRWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZUlmTmVlZGVkKCkKIHsKICAgICBp
ZiAoc2hhZG93Um9vdCgpKQogICAgICAgICByZXR1cm47Ci0gICAgc2V0U2hhZG93Um9vdChQcm9n
cmVzc0JhclZhbHVlRWxlbWVudDo6Y3JlYXRlKHRoaXMpLmdldCgpKTsKKyAgICBzZXRTaGFkb3dS
b290KFByb2dyZXNzQmFyVmFsdWVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQoKSkuZ2V0KCkpOwog
fQogCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1l
bnQuaAppbmRleCAzZjQzY2Q5ODZjOTQ3N2FhNDNhMGRlYjA3MGJlZjc4MzQ4ZmY3OTg4Li5hMGRi
OTY2MmJmMGIyZTYwZjBlMTQ3ZjViM2FmNDBhNjY5ZjdmMzM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuaApAQCAtMjYsOCArMjYsNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIFNoYWRvd0Jsb2NrRWxlbWVudDsKLQogY2xhc3MgSFRNTFByb2dy
ZXNzRWxlbWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MUHJvZ3Jlc3NFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVtZW50Kik7CkBAIC00MCw3ICszOCw2
IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBwb3NpdGlvbigpIGNvbnN0OwogCi0gICAgU2hhZG93
QmxvY2tFbGVtZW50KiB2YWx1ZVBhcnQoKTsKIHByaXZhdGU6CiAgICAgSFRNTFByb2dyZXNzRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckluZGljYXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5kaWNhdG9yLmNwcAppbmRleCBi
MDNkZmJhYmFlZGMzOTExOWIwZTE3MmU3MWVmZjJhMGY1MzYwMDJiLi5mYjE2Njc0YmUyYjNmMTNl
YTRlNGMyNzJjMGNjZTM2MWNmZjhiYWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5kaWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5kaWNhdG9yLmNwcApAQCAtMjUsMTIgKzI1LDUxIEBACiAjaW5jbHVkZSAiUmVuZGVy
SW5kaWNhdG9yLmgiCiAKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgotI2luY2x1ZGUgIlNoYWRv
d0VsZW1lbnQuaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorUmVuZGVySW5kaWNhdG9yUGFydDo6UmVuZGVy
SW5kaWNhdG9yUGFydChOb2RlKiBub2RlKQorICAgIDogUmVuZGVyQmxvY2sobm9kZSkKKyAgICAs
IG1fb3JpZ2luYWxWaXNpYmlsaXR5KEhJRERFTikKK3sKK30KKworUmVuZGVySW5kaWNhdG9yUGFy
dDo6flJlbmRlckluZGljYXRvclBhcnQoKQoreworfQorCit2b2lkIFJlbmRlckluZGljYXRvclBh
cnQ6OmxheW91dCgpCit7CisgICAgUmVuZGVyQm94KiBwYXJlbnRSZW5kZXJlciA9IHRvUmVuZGVy
Qm94KHBhcmVudCgpKTsKKyAgICBJbnRSZWN0IG9sZFJlY3QgPSBmcmFtZVJlY3QoKTsKKyAgICBJ
bnRSZWN0IG5ld1JlY3QgPSBwcmVmZXJyZWRGcmFtZVJlY3QoKTsKKworICAgIExheW91dFN0YXRl
TWFpbnRhaW5lciBzdGF0ZVB1c2hlcihwYXJlbnRSZW5kZXJlci0+dmlldygpLCBwYXJlbnRSZW5k
ZXJlciwgcGFyZW50UmVuZGVyZXItPnNpemUoKSwgcGFyZW50UmVuZGVyZXItPnN0eWxlKCktPmlz
RmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpOworCisgICAgaWYgKG9sZFJlY3Quc2l6ZSgpICE9
IG5ld1JlY3Quc2l6ZSgpKQorICAgICAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KHRydWUsIGZhbHNl
KTsKKyAgICBpZiAobmVlZHNMYXlvdXQoKSkKKyAgICAgICAgUmVuZGVyQmxvY2s6OmxheW91dCgp
OworICAgIHNldEZyYW1lUmVjdChuZXdSZWN0KTsKKworICAgIGlmIChjaGVja0ZvclJlcGFpbnRE
dXJpbmdMYXlvdXQoKSkKKyAgICAgICAgcmVwYWludER1cmluZ0xheW91dElmTW92ZWQob2xkUmVj
dCk7CisgICAgICAgIAorICAgIHN0YXRlUHVzaGVyLnBvcCgpOworICAgIHBhcmVudFJlbmRlcmVy
LT5hZGRPdmVyZmxvd0Zyb21DaGlsZCh0aGlzKTsKKyAgICBzdHlsZSgpLT5zZXRWaXNpYmlsaXR5
KHNob3VsZEhpZGRlbigpID8gSElEREVOIDogb3JpZ2luYWxWaXNpYmlsaXR5KCkpOworfQorCit2
b2lkIFJlbmRlckluZGljYXRvclBhcnQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBk
aWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgbV9vcmlnaW5hbFZpc2li
aWxpdHkgPSBzdHlsZSgpLT52aXNpYmlsaXR5KCk7CisgICAgUmVuZGVyQmxvY2s6OnN0eWxlRGlk
Q2hhbmdlKGRpZmYsIG9sZFN0eWxlKTsKK30KKworCiBSZW5kZXJJbmRpY2F0b3I6OlJlbmRlcklu
ZGljYXRvcihOb2RlKiBub2RlKQogICAgIDogUmVuZGVyQmxvY2sobm9kZSkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmRpY2F0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmRpY2F0b3IuaAppbmRleCA1MGQ4MTlkNGVlZWVmODU1
ZTc0OTJiNzQwNzYxM2VmZDdiNWYwNTJhLi40ODRmZDA0YmRjNDQwNDc2ZTcwMDVjMjY2Mzk2MTVm
NjdmMmZmMzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5k
aWNhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckluZGljYXRvci5o
CkBAIC0yNiw2ICsyNiwyNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFJlbmRl
ckluZGljYXRvclBhcnQgOiBwdWJsaWMgUmVuZGVyQmxvY2sgeworcHVibGljOgorICAgIFJlbmRl
ckluZGljYXRvclBhcnQoTm9kZSopOworICAgIHZpcnR1YWwgflJlbmRlckluZGljYXRvclBhcnQo
KTsKKworcHJvdGVjdGVkOgorICAgIEVWaXNpYmlsaXR5IG9yaWdpbmFsVmlzaWJpbGl0eSgpIGNv
bnN0IHsgcmV0dXJuIG1fb3JpZ2luYWxWaXNpYmlsaXR5OyB9CisgICAgdmlydHVhbCBJbnRSZWN0
IHByZWZlcnJlZEZyYW1lUmVjdCgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGlkZGVu
KCkgPSAwOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisgICAgdmlydHVh
bCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSopOworCisgICAgRVZpc2liaWxpdHkgbV9vcmlnaW5h
bFZpc2liaWxpdHk7Cit9OworCiBjbGFzcyBSZW5kZXJJbmRpY2F0b3IgOiBwdWJsaWMgUmVuZGVy
QmxvY2sgewogcHVibGljOgogICAgIFJlbmRlckluZGljYXRvcihOb2RlKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAppbmRleCAxZWMwYTcyYjA5ZjYxYzkx
MWFhN2U3Y2I3OWU1ZDViNjllZmFkMGIwLi4yZWQwZGZlZmUzNGQ2MWY4MDkzNzA2MmFmOTUyMDRi
NWYwN2IzYjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJv
Z3Jlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5j
cHAKQEAgLTM2LDYgKzM2LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorSW50UmVjdCBSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydDo6cHJlZmVycmVk
RnJhbWVSZWN0KCkKK3sKKyAgICByZXR1cm4gdG9SZW5kZXJQcm9ncmVzcyhwYXJlbnQoKSktPnZh
bHVlUGFydFJlY3QoKTsKK30KKworYm9vbCBSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydDo6c2hv
dWxkSGlkZGVuKCkKK3sKKyAgICByZXR1cm4gIXRvUmVuZGVyUHJvZ3Jlc3MocGFyZW50KCkpLT5z
aG91bGRIYXZlUGFydHMoKTsKK30KKwogUmVuZGVyUHJvZ3Jlc3M6OlJlbmRlclByb2dyZXNzKEhU
TUxQcm9ncmVzc0VsZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBSZW5kZXJJbmRpY2F0b3IoZWxlbWVu
dCkKICAgICAsIG1fcG9zaXRpb24oLTEpCkBAIC01MywxMSArNjMsNiBAQCBSZW5kZXJQcm9ncmVz
czo6flJlbmRlclByb2dyZXNzKCkKIAogdm9pZCBSZW5kZXJQcm9ncmVzczo6dXBkYXRlRnJvbUVs
ZW1lbnQoKQogewotICAgIGlmIChzaG91bGRIYXZlUGFydHMoKSkKLSAgICAgICAgc3R5bGUoKS0+
c2V0QXBwZWFyYW5jZShOb0NvbnRyb2xQYXJ0KTsKLSAgICBlbHNlIGlmICh2YWx1ZVBhcnQoKS0+
cmVuZGVyZXIoKSkKLSAgICAgICAgdmFsdWVQYXJ0KCktPnJlbmRlcmVyKCktPnN0eWxlKCktPnNl
dFZpc2liaWxpdHkoSElEREVOKTsKLQogICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQqIGVsZW1lbnQg
PSBwcm9ncmVzc0VsZW1lbnQoKTsKICAgICBpZiAobV9wb3NpdGlvbiA9PSBlbGVtZW50LT5wb3Np
dGlvbigpKQogICAgICAgICByZXR1cm47CkBAIC05NCw3ICs5OSw4IEBAIHZvaWQgUmVuZGVyUHJv
Z3Jlc3M6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBpbnQgdHgsIGludCB0eSkKIAogdm9p
ZCBSZW5kZXJQcm9ncmVzczo6bGF5b3V0UGFydHMoKQogewotICAgIHZhbHVlUGFydCgpLT5sYXlv
dXRBc1BhcnQodmFsdWVQYXJ0UmVjdCgpKTsKKyAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQg
PSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQorICAg
ICAgICBjaGlsZC0+bGF5b3V0KCk7CiAgICAgdXBkYXRlQW5pbWF0aW9uU3RhdGUoKTsKIH0KIApA
QCAtMTAyLDggKzEwOCw2IEBAIGJvb2wgUmVuZGVyUHJvZ3Jlc3M6OnNob3VsZEhhdmVQYXJ0cygp
IGNvbnN0CiB7CiAgICAgaWYgKCFzdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgIGlmICghKHZhbHVlUGFydCgpLT5yZW5kZXJlcigpICYmIHZhbHVlUGFy
dCgpLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5oYXNBcHBlYXJhbmNlKCkpKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTEzNywxMSArMTQxLDYgQEAgSFRN
TFByb2dyZXNzRWxlbWVudCogUmVuZGVyUHJvZ3Jlc3M6OnByb2dyZXNzRWxlbWVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxQcm9ncmVzc0VsZW1lbnQqPihub2RlKCkpOwog
fSAgICAKIAotU2hhZG93QmxvY2tFbGVtZW50KiBSZW5kZXJQcm9ncmVzczo6dmFsdWVQYXJ0KCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gcHJvZ3Jlc3NFbGVtZW50KCktPnZhbHVlUGFydCgpOwotfQot
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUHJvZ3Jlc3MuaAppbmRleCBkNWQwMzZjNWU0OTBjY2ZlZGNhZjhlYmVjMDNlMDcw
NTMwYzgwNzBkLi5iNjUxNzExNTZmOThiMDIwZTQzMjFkOGNiYjBmYmJkZDljODY0MjgxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaApAQCAtMjgsNyArMjgsMTQg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSFRNTFByb2dyZXNzRWxlbWVudDsKLWNs
YXNzIFNoYWRvd0Jsb2NrRWxlbWVudDsKKworY2xhc3MgUmVuZGVyUHJvZ3Jlc3NCYXJWYWx1ZVBh
cnQgOiBwdWJsaWMgUmVuZGVySW5kaWNhdG9yUGFydCB7CitwdWJsaWM6CisgICAgUmVuZGVyUHJv
Z3Jlc3NCYXJWYWx1ZVBhcnQoTm9kZSogbm9kZSkgOiBSZW5kZXJJbmRpY2F0b3JQYXJ0KG5vZGUp
IHt9Citwcml2YXRlOgorICAgIHZpcnR1YWwgSW50UmVjdCBwcmVmZXJyZWRGcmFtZVJlY3QoKTsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGlkZGVuKCk7Cit9OwogCiBjbGFzcyBSZW5kZXJQcm9n
cmVzcyA6IHB1YmxpYyBSZW5kZXJJbmRpY2F0b3IgewogcHVibGljOgpAQCAtNDAsNiArNDcsOCBA
QCBwdWJsaWM6CiAgICAgZG91YmxlIGFuaW1hdGlvblN0YXJ0VGltZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYW5pbWF0aW9uU3RhcnRUaW1lOyB9CiAKICAgICBib29sIGlzRGV0ZXJtaW5hdGUoKSBjb25z
dDsKKyAgICBJbnRSZWN0IHZhbHVlUGFydFJlY3QoKSBjb25zdDsKKyAgICBib29sIHNob3VsZEhh
dmVQYXJ0cygpIGNvbnN0OwogCiAgICAgSFRNTFByb2dyZXNzRWxlbWVudCogcHJvZ3Jlc3NFbGVt
ZW50KCkgY29uc3Q7CiAKQEAgLTQ4LDE3ICs1NywxMSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
Ym9vbCBpc1Byb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVGcm9tRWxlbWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8m
LCBpbnQgdHgsIGludCB0eSk7Ci0KICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0UGFydHMoKTsKIAot
ICAgIEludFJlY3QgdmFsdWVQYXJ0UmVjdCgpIGNvbnN0OwotICAgIGJvb2wgc2hvdWxkSGF2ZVBh
cnRzKCkgY29uc3Q7Ci0KICAgICB2b2lkIGFuaW1hdGlvblRpbWVyRmlyZWQoVGltZXI8UmVuZGVy
UHJvZ3Jlc3M+Kik7CiAgICAgdm9pZCB1cGRhdGVBbmltYXRpb25TdGF0ZSgpOwogCi0gICAgU2hh
ZG93QmxvY2tFbGVtZW50KiB2YWx1ZVBhcnQoKSBjb25zdDsKLQogICAgIGRvdWJsZSBtX3Bvc2l0
aW9uOwogICAgIGRvdWJsZSBtX2FuaW1hdGlvblN0YXJ0VGltZTsKICAgICBkb3VibGUgbV9hbmlt
YXRpb25SZXBlYXRJbnRlcnZhbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81027</attachid>
            <date>2011-02-02 20:22:25 -0800</date>
            <delta_ts>2011-02-02 21:58:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53583-20110203132223.patch</filename>
            <type>text/plain</type>
            <size>13939</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZjViMzBkNzc1ZmY0YjZiNWM0ZmYxMjNjMmYzZjBjOTI0ODY0MTA4Li4wMDFiMjFi
ZDdhZTBkNWJiNTM4OGNhN2VlNWYwNDRmODkzMGIzZWNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDItMDIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IDxw
cm9ncmVzcz4gc2hvdWxkIG5vdCB1c2UgU2hhZG93RWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM1ODMKKworICAgICAgICBVcGRhdGVkIHRv
IGNhdGNoIHRoZSBjaGFuZ2Ugb24gLXdlYmtpdC1wcm9ncmVzcy1iYXItdmFsdWUgaW50ZXJwcmV0
YXRpb24uCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNz
LWJhci12YWx1ZS1wc2V1ZG8tZWxlbWVudC5odG1sOgorCiAyMDExLTAyLTAyICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnNraXAgdGhlIGxhc3Qg
YmF0Y2ggb2YgZWRpdGluZyB0ZXN0cyBuZWVkaW5nIEdUSysgcmVzdWx0cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtYmFyLXZh
bHVlLXBzZXVkby1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jl
c3NFbGVtZW50L3Byb2dyZXNzLWJhci12YWx1ZS1wc2V1ZG8tZWxlbWVudC5odG1sCmluZGV4IDFi
M2QzYmY1NTE4MTJjNWYyMzRiMjBiNDM2NGY4YmU3YTQ3ODQzNDkuLjQzNmE4MTMwZWNiOTc3OTA4
ZjRjNzVhZmY5MDFmZmY0MzFlMjcxZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtYmFyLXZhbHVlLXBzZXVkby1lbGVtZW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVz
cy1iYXItdmFsdWUtcHNldWRvLWVsZW1lbnQuaHRtbApAQCAtMiwxMyArMiwxMyBAQAogPGhlYWQ+
PHNjcmlwdD4KIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidG9DaGFuZ2VTdHlsZSIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiYm9yZGVy
OjNweCByZWQgZG90dGVkOyBiYWNrZ3JvdW5kLWNvbG9yOmN5YW47Iik7Ci0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRvQWRkU3R5bGUiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImJvcmRl
cjozcHggcmVkIGRvdHRlZDsgYmFja2dyb3VuZC1jb2xvcjpjeWFuOyIpOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0b0FkZFN0eWxlIikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJib3Jk
ZXI6M3B4IHJlZCBkb3R0ZWQ7IGJhY2tncm91bmQtY29sb3I6Y3lhbjsgLXdlYmtpdC1hcHBlYXJh
bmNlOiBub25lOyIpOwogfQogPC9zY3JpcHQ+CiA8c3R5bGU+Ci0uc3R5bGVkOjotd2Via2l0LXBy
b2dyZXNzLWJhci12YWx1ZSB7YmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O30KKy5zdHlsZWQg
eyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH0KKy5zdHlsZWQ6Oi13ZWJraXQtcHJvZ3Jlc3Mt
YmFyLXZhbHVlIHsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OyB9CiAjdG9BZGRTdHlsZTo6
LXdlYmtpdC1wcm9ncmVzcy1iYXItdmFsdWUge2JhY2tncm91bmQtY29sb3I6ZGFya2JsdWU7fQot
Lm5vLWFwcGVhcmFuY2Ugey13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTt9CiA8L3N0eWxlPgogPC9o
ZWFkPgogPGJvZHk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU0MTIyYWFiNzU1M2NlMDZmMTg2ODYzZWUzN2Zi
ZTExNjZiMmMxMy4uZTE4ZGY1NDgwYjQ4ODhiZDNjNDY2YzhmNzFjYTdkODI0YzJiZDg0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDExLTAyLTAyICBNT1JJVEEgSGFqaW1lICA8bW9y
cml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlZmFjdG9yaW5nOiA8cHJvZ3Jlc3M+IHNob3VsZCBub3QgdXNlIFNoYWRvd0Vs
ZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUz
NTgzCisKKyAgICAgICAgLSBJbnRyb2R1Y2VkIFJlbmRlckluZGljYXRvclBhcnQgYW5kIFJlbmRl
clByb2dyZXNzQmFyVmFsdWVQYXJ0CisgICAgICAgICAgdG8gYmUgcmVzcG9uc2libGUgZm9yIGJh
ci1wYXJ0IGxheW91dCwKKyAgICAgICAgICB3aGljaCBhZG9wdGVkIGxheW91dCBsb2dpYyBmcm9t
IFNoYWRvd0Jsb2NrRWxlbWVudC4KKyAgICAgICAgLSBQcm9ncmVzc0JhclZhbHVlRWxlbWVudCBp
cyBubyBsb25nZXIgYSBzdWJjbGFzcyBvZiBTaGFkb3dCbG9ja0VsZW1lbnQuCisgICAgICAgIC0g
UmVtb3ZlIGRlcGVuZGVuY3kgZnJvbSBSZW5kZXJQcm9ncmVzcyB0byBIVE1MUHJvZ3Jlc3NFbGVt
ZW50IGFuZAorICAgICAgICAgIFNoYWRvd0Jsb2NrRWxlbWVudC4KKyAgICAgICAgLSBUaGUgc2hh
ZG93IHRyZWUgaXMgbm8gbG9uZ2VyIHJlbW92ZWQgb24gZGV0YWNoKCkuIEl0IGJlY29tZXMgcGVy
c2lzdGVudC4KKyAgICAgICAgICBUaGlzIGlzIG5vdyBwb3NzaWJsZSBiZWNhdXNlIHRoZSBTaGFk
b3dCbG9ja0VsZW1lbnQgZGVwZW5kZW5jeSBpcyBnb25lLgorICAgICAgICAtIDo6LXdlYmtpdC1h
cHBlYXJhbmNlIGZvciAtd2Via2l0LXByb2dyZXNzLWJhci12YWx1ZSBpcyBubyBsb25nZXIgcmVm
ZXJyZWQuCisgICAgICAgICAgVGhhdCBkaWRuJ3QgbWFrZSBzZW5zZS4KKworICAgICAgICAqIGh0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmVzc0Jh
clZhbHVlRWxlbWVudDo6UHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQ6OmRldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9ncmVzc0JhclZhbHVlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6UHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlSWZOZWVkZWQpOgorICAgICAg
ICAqIGh0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5kaWNhdG9yUGFydDo6
UmVuZGVySW5kaWNhdG9yUGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmRpY2F0b3JQ
YXJ0Ojp+UmVuZGVySW5kaWNhdG9yUGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmRp
Y2F0b3JQYXJ0OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5kaWNhdG9yUGFy
dDo6c3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbmRpY2F0b3Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckluZGljYXRvclBhcnQ6Om9yaWdpbmFsVmlzaWJp
bGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmRpY2F0b3JQYXJ0OjpyZXF1aXJlc0Zv
cmNlZFN0eWxlUmVjYWxjUHJvcGFnYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5k
aWNhdG9yUGFydDo6Y2FuSGF2ZUNoaWxkcmVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UHJvZ3Jlc3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3NCYXJWYWx1ZVBh
cnQ6OnByZWZlcnJlZEZyYW1lUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVz
c0JhclZhbHVlUGFydDo6c2hvdWxkSGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBy
b2dyZXNzOjp1cGRhdGVGcm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9n
cmVzczo6bGF5b3V0UGFydHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnNo
b3VsZEhhdmVQYXJ0cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydDo6UmVuZGVyUHJvZ3Jl
c3NCYXJWYWx1ZVBhcnQpOgorCiAyMDExLTAyLTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKaW5kZXggNzgyNGZhODZiZjdlNzg5YzVi
YzgyNzhmNzIzM2EwMjE0MjQwMjlmYy4uNDU5ZmNkZjJmNzY2NWQ0YjMxNTM4ZjM1ZDIzZjk5OTBk
NDg1ZjhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
CkBAIC0yNiwyMSArMjYsMjEgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgorI2luY2x1ZGUgIkhU
TUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIlJl
bmRlclByb2dyZXNzLmgiCi0jaW5jbHVkZSAiU2hhZG93RWxlbWVudC5oIgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogCi1jbGFzcyBQcm9ncmVzc0JhclZhbHVlRWxlbWVudCA6IHB1YmxpYyBT
aGFkb3dCbG9ja0VsZW1lbnQgeworY2xhc3MgUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQgOiBwdWJs
aWMgSFRNTERpdkVsZW1lbnQgewogcHVibGljOgotICAgIFByb2dyZXNzQmFyVmFsdWVFbGVtZW50
KEhUTUxFbGVtZW50KiBzaGFkb3dQYXJlbnQpIAotICAgICAgICA6IFNoYWRvd0Jsb2NrRWxlbWVu
dChzaGFkb3dQYXJlbnQpCisgICAgUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50KSAKKyAgICAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogICAg
IHsKICAgICB9CiAKQEAgLTUwLDIwICs1MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBw
c2V1ZElkOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKQorICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0
eWxlKikKICAgICB7Ci0gICAgICAgIC8vIEluc3RlYWQgb2YgdXNpbmcgc2V0U2hhZG93SG9zdCgp
IGxpa2UgU2hhZG93QmxvY2tFbGVtZW50IGRvZXMsCi0gICAgICAgIC8vIHRoaXMgY2xhc3MgdXNl
cyBzZXRTaGFkb3dSb290KCkgdG8gdW5saW5rIG11dHVhbCBzaGFkb3ctaG9zdCByZWZlcmVuY2Vz
LgotICAgICAgICAvLyBOb3RlIHRoYXQgU2hhZG93QmxvY2tFbGVtZW50OjpkZXRhY2goKSBzaG91
bGQgYmUgcmVtb3ZlZCB3aGVuIHRoZQotICAgICAgICAvLyBzaGFkb3cgbW9kZWwgdHJhbnNpdGlv
biBpcyBvdmVyLiAoQnVnIDUzNDE3KQotICAgICAgICBpZiAoRWxlbWVudCogaG9zdCA9IHNoYWRv
d0hvc3QoKSkKLSAgICAgICAgICAgIGhvc3QtPnNldFNoYWRvd1Jvb3QoMCk7Ci0gICAgICAgIFNo
YWRvd0Jsb2NrRWxlbWVudDo6c2V0U2hhZG93SG9zdCgwKTsKKyAgICAgICAgcmV0dXJuIG5ldyAo
YXJlbmEpIFJlbmRlclByb2dyZXNzQmFyVmFsdWVQYXJ0KHRoaXMpOwogICAgIH0KIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNzQmFyVmFsdWVFbGVtZW50PiBjcmVhdGUoSFRNTEVsZW1l
bnQqIHNoYWRvd1BhcmVudCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9ncmVzc0JhclZhbHVl
RWxlbWVudD4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQoc2hhZG93UGFyZW50KSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQoZG9jdW1l
bnQpKTsKICAgICB9CiAKIH07CkBAIC0xNTEsMTEgKzE0NSw2IEBAIGRvdWJsZSBIVE1MUHJvZ3Jl
c3NFbGVtZW50Ojpwb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIHZhbHVlKCkgLyBtYXgoKTsK
IH0KIAotU2hhZG93QmxvY2tFbGVtZW50KiBIVE1MUHJvZ3Jlc3NFbGVtZW50Ojp2YWx1ZVBhcnQo
KQotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxTaGFkb3dCbG9ja0VsZW1lbnQqPihzaGFkb3dS
b290KCkpOwotfQotCiB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmRpZEVsZW1lbnRTdGF0ZUNo
YW5nZSgpCiB7CiAgICAgaWYgKHJlbmRlcmVyKCkpCkBAIC0xNjYsNyArMTU1LDcgQEAgdm9pZCBI
VE1MUHJvZ3Jlc3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlSWZOZWVkZWQoKQogewogICAg
IGlmIChzaGFkb3dSb290KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBzZXRTaGFkb3dSb290KFBy
b2dyZXNzQmFyVmFsdWVFbGVtZW50OjpjcmVhdGUodGhpcykuZ2V0KCkpOworICAgIHNldFNoYWRv
d1Jvb3QoUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCgpKS5nZXQoKSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxQcm9ncmVzc0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxl
bWVudC5oCmluZGV4IDNmNDNjZDk4NmM5NDc3YWE0M2EwZGViMDcwYmVmNzgzNDhmZjc5ODguLmEw
ZGI5NjYyYmYwYjJlNjBmMGUxNDdmNWIzYWY0MGE2NjlmN2YzMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oCkBAIC0yNiw4ICsyNiw2IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgU2hhZG93QmxvY2tFbGVtZW50OwotCiBjbGFzcyBIVE1MUHJv
Z3Jlc3NFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQgewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxQcm9ncmVzc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqKTsKQEAgLTQwLDcgKzM4
LDYgQEAgcHVibGljOgogCiAgICAgZG91YmxlIHBvc2l0aW9uKCkgY29uc3Q7CiAKLSAgICBTaGFk
b3dCbG9ja0VsZW1lbnQqIHZhbHVlUGFydCgpOwogcHJpdmF0ZToKICAgICBIVE1MUHJvZ3Jlc3NF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCop
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5kaWNhdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmRpY2F0b3IuY3BwCmluZGV4
IGIwM2RmYmFiYWVkYzM5MTE5YjBlMTcyZTcxZWZmMmEwZjUzNjAwMmIuLjhmMzRhNDA4NzMwY2Mx
Y2ViYjZmZWIyNzI1MTAyYjEzNmVkZmRmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbmRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmRpY2F0b3IuY3BwCkBAIC0yNSwxMiArMjUsNTEgQEAKICNpbmNsdWRlICJSZW5k
ZXJJbmRpY2F0b3IuaCIKIAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCi0jaW5jbHVkZSAiU2hh
ZG93RWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitSZW5kZXJJbmRpY2F0b3JQYXJ0OjpSZW5k
ZXJJbmRpY2F0b3JQYXJ0KE5vZGUqIG5vZGUpCisgICAgOiBSZW5kZXJCbG9jayhub2RlKQorICAg
ICwgbV9vcmlnaW5hbFZpc2liaWxpdHkoSElEREVOKQoreworfQorCitSZW5kZXJJbmRpY2F0b3JQ
YXJ0Ojp+UmVuZGVySW5kaWNhdG9yUGFydCgpCit7Cit9CisKK3ZvaWQgUmVuZGVySW5kaWNhdG9y
UGFydDo6bGF5b3V0KCkKK3sKKyAgICBSZW5kZXJCb3gqIHBhcmVudFJlbmRlcmVyID0gdG9SZW5k
ZXJCb3gocGFyZW50KCkpOworICAgIEludFJlY3Qgb2xkUmVjdCA9IGZyYW1lUmVjdCgpOworICAg
IEludFJlY3QgbmV3UmVjdCA9IHByZWZlcnJlZEZyYW1lUmVjdCgpOworCisgICAgTGF5b3V0U3Rh
dGVNYWludGFpbmVyIHN0YXRlUHVzaGVyKHBhcmVudFJlbmRlcmVyLT52aWV3KCksIHBhcmVudFJl
bmRlcmVyLCBwYXJlbnRSZW5kZXJlci0+c2l6ZSgpLCBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKS0+
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSk7CisKKyAgICBpZiAob2xkUmVjdC5zaXplKCkg
IT0gbmV3UmVjdC5zaXplKCkpCisgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgZmFs
c2UpOworICAgIGlmIChuZWVkc0xheW91dCgpKQorICAgICAgICBSZW5kZXJCbG9jazo6bGF5b3V0
KCk7CisgICAgc2V0RnJhbWVSZWN0KG5ld1JlY3QpOworCisgICAgaWYgKGNoZWNrRm9yUmVwYWlu
dER1cmluZ0xheW91dCgpKQorICAgICAgICByZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZChvbGRS
ZWN0KTsKKyAgICAgICAgCisgICAgc3RhdGVQdXNoZXIucG9wKCk7CisgICAgcGFyZW50UmVuZGVy
ZXItPmFkZE92ZXJmbG93RnJvbUNoaWxkKHRoaXMpOworICAgIHN0eWxlKCktPnNldFZpc2liaWxp
dHkoc2hvdWxkQmVIaWRkZW4oKSA/IEhJRERFTiA6IG9yaWdpbmFsVmlzaWJpbGl0eSgpKTsKK30K
Kwordm9pZCBSZW5kZXJJbmRpY2F0b3JQYXJ0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQoreworICAgIG1fb3JpZ2luYWxW
aXNpYmlsaXR5ID0gc3R5bGUoKS0+dmlzaWJpbGl0eSgpOworICAgIFJlbmRlckJsb2NrOjpzdHls
ZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7Cit9CisKKwogUmVuZGVySW5kaWNhdG9yOjpSZW5k
ZXJJbmRpY2F0b3IoTm9kZSogbm9kZSkKICAgICA6IFJlbmRlckJsb2NrKG5vZGUpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5kaWNhdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5kaWNhdG9yLmgKaW5kZXggNTBkODE5ZDRlZWVl
Zjg1NWU3NDkyYjc0MDc2MTNlZmQ3YjVmMDUyYS4uN2MyYTM0NmU2NmYxYTI4MjJhOWUwZGY4YzQy
MzRhMzJiYWQ1MGM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckluZGljYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmRpY2F0
b3IuaApAQCAtMjYsNiArMjYsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBS
ZW5kZXJJbmRpY2F0b3JQYXJ0IDogcHVibGljIFJlbmRlckJsb2NrIHsKK3B1YmxpYzoKKyAgICBS
ZW5kZXJJbmRpY2F0b3JQYXJ0KE5vZGUqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJJbmRpY2F0b3JQ
YXJ0KCk7CisKK3Byb3RlY3RlZDoKKyAgICBFVmlzaWJpbGl0eSBvcmlnaW5hbFZpc2liaWxpdHko
KSBjb25zdCB7IHJldHVybiBtX29yaWdpbmFsVmlzaWJpbGl0eTsgfQorICAgIHZpcnR1YWwgSW50
UmVjdCBwcmVmZXJyZWRGcmFtZVJlY3QoKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZEJl
SGlkZGVuKCkgPSAwOworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisgICAg
dmlydHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSopOworCisgICAgRVZpc2liaWxpdHkgbV9v
cmlnaW5hbFZpc2liaWxpdHk7Cit9OworCiBjbGFzcyBSZW5kZXJJbmRpY2F0b3IgOiBwdWJsaWMg
UmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlckluZGljYXRvcihOb2RlKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAppbmRleCAxZWMwYTcyYjA5
ZjYxYzkxMWFhN2U3Y2I3OWU1ZDViNjllZmFkMGIwLi4yYThlNmYzNzkzZjZmZTU5ZTIxNjQwYzIx
MWVhZjYyMDBjNGE0ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUHJvZ3Jlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9n
cmVzcy5jcHAKQEAgLTM2LDYgKzM2LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAorSW50UmVjdCBSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydDo6cHJl
ZmVycmVkRnJhbWVSZWN0KCkKK3sKKyAgICByZXR1cm4gdG9SZW5kZXJQcm9ncmVzcyhwYXJlbnQo
KSktPnZhbHVlUGFydFJlY3QoKTsKK30KKworYm9vbCBSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFy
dDo6c2hvdWxkQmVIaWRkZW4oKQoreworICAgIHJldHVybiAhdG9SZW5kZXJQcm9ncmVzcyhwYXJl
bnQoKSktPnNob3VsZEhhdmVQYXJ0cygpOworfQorCiBSZW5kZXJQcm9ncmVzczo6UmVuZGVyUHJv
Z3Jlc3MoSFRNTFByb2dyZXNzRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRlckluZGljYXRv
cihlbGVtZW50KQogICAgICwgbV9wb3NpdGlvbigtMSkKQEAgLTUzLDExICs2Myw2IEBAIFJlbmRl
clByb2dyZXNzOjp+UmVuZGVyUHJvZ3Jlc3MoKQogCiB2b2lkIFJlbmRlclByb2dyZXNzOjp1cGRh
dGVGcm9tRWxlbWVudCgpCiB7Ci0gICAgaWYgKHNob3VsZEhhdmVQYXJ0cygpKQotICAgICAgICBz
dHlsZSgpLT5zZXRBcHBlYXJhbmNlKE5vQ29udHJvbFBhcnQpOwotICAgIGVsc2UgaWYgKHZhbHVl
UGFydCgpLT5yZW5kZXJlcigpKQotICAgICAgICB2YWx1ZVBhcnQoKS0+cmVuZGVyZXIoKS0+c3R5
bGUoKS0+c2V0VmlzaWJpbGl0eShISURERU4pOwotCiAgICAgSFRNTFByb2dyZXNzRWxlbWVudCog
ZWxlbWVudCA9IHByb2dyZXNzRWxlbWVudCgpOwogICAgIGlmIChtX3Bvc2l0aW9uID09IGVsZW1l
bnQtPnBvc2l0aW9uKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTk0LDcgKzk5LDggQEAgdm9pZCBS
ZW5kZXJQcm9ncmVzczo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5
KQogCiB2b2lkIFJlbmRlclByb2dyZXNzOjpsYXlvdXRQYXJ0cygpCiB7Ci0gICAgdmFsdWVQYXJ0
KCktPmxheW91dEFzUGFydCh2YWx1ZVBhcnRSZWN0KCkpOworICAgIGZvciAoUmVuZGVyT2JqZWN0
KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpCisgICAgICAgIGNoaWxkLT5sYXlvdXQoKTsKICAgICB1cGRhdGVBbmltYXRpb25TdGF0ZSgp
OwogfQogCkBAIC0xMDIsOCArMTA4LDYgQEAgYm9vbCBSZW5kZXJQcm9ncmVzczo6c2hvdWxkSGF2
ZVBhcnRzKCkgY29uc3QKIHsKICAgICBpZiAoIXN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKCEodmFsdWVQYXJ0KCktPnJlbmRlcmVyKCkgJiYg
dmFsdWVQYXJ0KCktPnJlbmRlcmVyKCktPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkpCi0gICAg
ICAgIHJldHVybiB0cnVlOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTM3LDExICsxNDEs
NiBAQCBIVE1MUHJvZ3Jlc3NFbGVtZW50KiBSZW5kZXJQcm9ncmVzczo6cHJvZ3Jlc3NFbGVtZW50
KCkgY29uc3QKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFByb2dyZXNzRWxlbWVudCo+KG5v
ZGUoKSk7CiB9ICAgIAogCi1TaGFkb3dCbG9ja0VsZW1lbnQqIFJlbmRlclByb2dyZXNzOjp2YWx1
ZVBhcnQoKSBjb25zdAotewotICAgIHJldHVybiBwcm9ncmVzc0VsZW1lbnQoKS0+dmFsdWVQYXJ0
KCk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCmluZGV4IGQ1ZDAzNmM1ZTQ5MGNjZmVkY2FmOGVi
ZWMwM2UwNzA1MzBjODA3MGQuLjc4Y2YzNTkxNDFlZmY5NWNkM2Q0NmMyYzE4YzI5YzVlNmQ5Yzc3
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCkBAIC0yOCw3
ICsyOCwxNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MUHJvZ3Jlc3NFbGVt
ZW50OwotY2xhc3MgU2hhZG93QmxvY2tFbGVtZW50OworCitjbGFzcyBSZW5kZXJQcm9ncmVzc0Jh
clZhbHVlUGFydCA6IHB1YmxpYyBSZW5kZXJJbmRpY2F0b3JQYXJ0IHsKK3B1YmxpYzoKKyAgICBS
ZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydChOb2RlKiBub2RlKSA6IFJlbmRlckluZGljYXRvclBh
cnQobm9kZSkge30KK3ByaXZhdGU6CisgICAgdmlydHVhbCBJbnRSZWN0IHByZWZlcnJlZEZyYW1l
UmVjdCgpOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRCZUhpZGRlbigpOworfTsKIAogY2xhc3Mg
UmVuZGVyUHJvZ3Jlc3MgOiBwdWJsaWMgUmVuZGVySW5kaWNhdG9yIHsKIHB1YmxpYzoKQEAgLTQw
LDYgKzQ3LDggQEAgcHVibGljOgogICAgIGRvdWJsZSBhbmltYXRpb25TdGFydFRpbWUoKSBjb25z
dCB7IHJldHVybiBtX2FuaW1hdGlvblN0YXJ0VGltZTsgfQogCiAgICAgYm9vbCBpc0RldGVybWlu
YXRlKCkgY29uc3Q7CisgICAgSW50UmVjdCB2YWx1ZVBhcnRSZWN0KCkgY29uc3Q7CisgICAgYm9v
bCBzaG91bGRIYXZlUGFydHMoKSBjb25zdDsKIAogICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQqIHBy
b2dyZXNzRWxlbWVudCgpIGNvbnN0OwogCkBAIC00OCwxNyArNTcsMTEgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIGJvb2wgaXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQo
UGFpbnRJbmZvJiwgaW50IHR4LCBpbnQgdHkpOwotCiAgICAgdmlydHVhbCB2b2lkIGxheW91dFBh
cnRzKCk7CiAKLSAgICBJbnRSZWN0IHZhbHVlUGFydFJlY3QoKSBjb25zdDsKLSAgICBib29sIHNo
b3VsZEhhdmVQYXJ0cygpIGNvbnN0OwotCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKFRp
bWVyPFJlbmRlclByb2dyZXNzPiopOwogICAgIHZvaWQgdXBkYXRlQW5pbWF0aW9uU3RhdGUoKTsK
IAotICAgIFNoYWRvd0Jsb2NrRWxlbWVudCogdmFsdWVQYXJ0KCkgY29uc3Q7Ci0KICAgICBkb3Vi
bGUgbV9wb3NpdGlvbjsKICAgICBkb3VibGUgbV9hbmltYXRpb25TdGFydFRpbWU7CiAgICAgZG91
YmxlIG1fYW5pbWF0aW9uUmVwZWF0SW50ZXJ2YWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81031</attachid>
            <date>2011-02-02 21:59:01 -0800</date>
            <delta_ts>2011-02-03 13:16:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53583-20110203145859.patch</filename>
            <type>text/plain</type>
            <size>22303</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZjViMzBkNzc1ZmY0YjZiNWM0ZmYxMjNjMmYzZjBjOTI0ODY0MTA4Li4wMDFiMjFi
ZDdhZTBkNWJiNTM4OGNhN2VlNWYwNDRmODkzMGIzZWNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDItMDIgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmc6IDxw
cm9ncmVzcz4gc2hvdWxkIG5vdCB1c2UgU2hhZG93RWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM1ODMKKworICAgICAgICBVcGRhdGVkIHRv
IGNhdGNoIHRoZSBjaGFuZ2Ugb24gLXdlYmtpdC1wcm9ncmVzcy1iYXItdmFsdWUgaW50ZXJwcmV0
YXRpb24uCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MUHJvZ3Jlc3NFbGVtZW50L3Byb2dyZXNz
LWJhci12YWx1ZS1wc2V1ZG8tZWxlbWVudC5odG1sOgorCiAyMDExLTAyLTAyICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnNraXAgdGhlIGxhc3Qg
YmF0Y2ggb2YgZWRpdGluZyB0ZXN0cyBuZWVkaW5nIEdUSysgcmVzdWx0cy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtYmFyLXZh
bHVlLXBzZXVkby1lbGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MUHJvZ3Jl
c3NFbGVtZW50L3Byb2dyZXNzLWJhci12YWx1ZS1wc2V1ZG8tZWxlbWVudC5odG1sCmluZGV4IDFi
M2QzYmY1NTE4MTJjNWYyMzRiMjBiNDM2NGY4YmU3YTQ3ODQzNDkuLjQzNmE4MTMwZWNiOTc3OTA4
ZjRjNzVhZmY5MDFmZmY0MzFlMjcxZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxQcm9ncmVzc0VsZW1lbnQvcHJvZ3Jlc3MtYmFyLXZhbHVlLXBzZXVkby1lbGVtZW50Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTFByb2dyZXNzRWxlbWVudC9wcm9ncmVz
cy1iYXItdmFsdWUtcHNldWRvLWVsZW1lbnQuaHRtbApAQCAtMiwxMyArMiwxMyBAQAogPGhlYWQ+
PHNjcmlwdD4KIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidG9DaGFuZ2VTdHlsZSIpLnNldEF0dHJpYnV0ZSgic3R5bGUiLCAiYm9yZGVy
OjNweCByZWQgZG90dGVkOyBiYWNrZ3JvdW5kLWNvbG9yOmN5YW47Iik7Ci0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRvQWRkU3R5bGUiKS5zZXRBdHRyaWJ1dGUoInN0eWxlIiwgImJvcmRl
cjozcHggcmVkIGRvdHRlZDsgYmFja2dyb3VuZC1jb2xvcjpjeWFuOyIpOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0b0FkZFN0eWxlIikuc2V0QXR0cmlidXRlKCJzdHlsZSIsICJib3Jk
ZXI6M3B4IHJlZCBkb3R0ZWQ7IGJhY2tncm91bmQtY29sb3I6Y3lhbjsgLXdlYmtpdC1hcHBlYXJh
bmNlOiBub25lOyIpOwogfQogPC9zY3JpcHQ+CiA8c3R5bGU+Ci0uc3R5bGVkOjotd2Via2l0LXBy
b2dyZXNzLWJhci12YWx1ZSB7YmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5O30KKy5zdHlsZWQg
eyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH0KKy5zdHlsZWQ6Oi13ZWJraXQtcHJvZ3Jlc3Mt
YmFyLXZhbHVlIHsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OyB9CiAjdG9BZGRTdHlsZTo6
LXdlYmtpdC1wcm9ncmVzcy1iYXItdmFsdWUge2JhY2tncm91bmQtY29sb3I6ZGFya2JsdWU7fQot
Lm5vLWFwcGVhcmFuY2Ugey13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTt9CiA8L3N0eWxlPgogPC9o
ZWFkPgogPGJvZHk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU0MTIyYWFiNzU1M2NlMDZmMTg2ODYzZWUzN2Zi
ZTExNjZiMmMxMy4uMTllZDEzYzVlZjk1OTA1NWJjM2NmYmI5NGI3YzNkNTA0MzUzNTI5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDExLTAyLTAyICBNT1JJVEEgSGFqaW1lICA8bW9y
cml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlZmFjdG9yaW5nOiA8cHJvZ3Jlc3M+IHNob3VsZCBub3QgdXNlIFNoYWRvd0Vs
ZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUz
NTgzCisKKyAgICAgICAgLSBJbnRyb2R1Y2VkIFJlbmRlckluZGljYXRvclBhcnQgYW5kIFJlbmRl
clByb2dyZXNzQmFyVmFsdWVQYXJ0CisgICAgICAgICAgdG8gYmUgcmVzcG9uc2libGUgZm9yIGJh
ci1wYXJ0IGxheW91dCwKKyAgICAgICAgICB3aGljaCBhZG9wdGVkIGxheW91dCBsb2dpYyBmcm9t
IFNoYWRvd0Jsb2NrRWxlbWVudC4KKyAgICAgICAgLSBQcm9ncmVzc0JhclZhbHVlRWxlbWVudCBp
cyBubyBsb25nZXIgYSBzdWJjbGFzcyBvZiBTaGFkb3dCbG9ja0VsZW1lbnQuCisgICAgICAgIC0g
UmVtb3ZlIGRlcGVuZGVuY3kgZnJvbSBSZW5kZXJQcm9ncmVzcyB0byBIVE1MUHJvZ3Jlc3NFbGVt
ZW50IGFuZAorICAgICAgICAgIFNoYWRvd0Jsb2NrRWxlbWVudC4KKyAgICAgICAgLSBUaGUgc2hh
ZG93IHRyZWUgaXMgbm8gbG9uZ2VyIHJlbW92ZWQgb24gZGV0YWNoKCkuIEl0IGJlY29tZXMgcGVy
c2lzdGVudC4KKyAgICAgICAgICBUaGlzIGlzIG5vdyBwb3NzaWJsZSBiZWNhdXNlIHRoZSBTaGFk
b3dCbG9ja0VsZW1lbnQgZGVwZW5kZW5jeSBpcyBnb25lLgorICAgICAgICAtIDo6LXdlYmtpdC1h
cHBlYXJhbmNlIGZvciAtd2Via2l0LXByb2dyZXNzLWJhci12YWx1ZSBpcyBubyBsb25nZXIgcmVm
ZXJyZWQuCisgICAgICAgICAgVGhhdCBkaWRuJ3QgbWFrZSBzZW5zZS4KKworICAgICAgICAqIGh0
bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvZ3Jl
c3NFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlSWZOZWVkZWQpOgorICAgICAgICAqIGh0bWwv
SFRNTFByb2dyZXNzRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L1Byb2dyZXNzQmFy
VmFsdWVFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3Jlc3NCYXJWYWx1
ZUVsZW1lbnQ6OlByb2dyZXNzQmFyVmFsdWVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBy
b2dyZXNzQmFyVmFsdWVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9ncmVzc0JhclZhbHVlRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckluZGljYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmRpY2F0
b3JQYXJ0OjpSZW5kZXJJbmRpY2F0b3JQYXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcklu
ZGljYXRvclBhcnQ6On5SZW5kZXJJbmRpY2F0b3JQYXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckluZGljYXRvclBhcnQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbmRp
Y2F0b3JQYXJ0OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklu
ZGljYXRvci5oOiBBZGRlZCBSZW5kZXJJbmRpY2F0b3JQYXJ0IGNsYXNzCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJJbmRpY2F0b3JQYXJ0OjpvcmlnaW5hbFZpc2liaWxpdHkpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySW5kaWNhdG9yUGFydDo6cmVxdWlyZXNGb3JjZWRTdHlsZVJlY2FsY1By
b3BhZ2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckluZGljYXRvclBhcnQ6OmNhbkhh
dmVDaGlsZHJlbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzQmFyVmFsdWVQYXJ0OjpwcmVmZXJyZWRGcmFt
ZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3NCYXJWYWx1ZVBhcnQ6OnNo
b3VsZEJlSGlkZGVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclByb2dyZXNzOjp1cGRhdGVG
cm9tRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQcm9ncmVzczo6bGF5b3V0UGFy
dHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUHJvZ3Jlc3M6OnNob3VsZEhhdmVQYXJ0cyk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclByb2dyZXNzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydDo6UmVuZGVyUHJvZ3Jlc3NCYXJWYWx1ZVBhcnQp
OgorCiAyMDExLTAyLTAyICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFuaWVsIEJhdGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA3YTU2
MjY2MzAxYTEwN2I3M2Y1Yjc0M2JlNTQxMDQwM2I1ZGZiYTI4Li42N2I5ZDVlMzlmNTNlMTMzMDUz
OWQyNWVmODQ0M2NmYmUzM2I0ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTg4Niw2ICsx
ODg2LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xzLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRo
dW1iRWxlbWVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1i
RWxlbWVudC5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9ncmVzc0JhclZhbHVF
bGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3BwIFwK
IAlTb3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmggXAogCVNvdXJjZS9XZWJD
b3JlL2h0bWwvUGx1Z2luRG9jdW1lbnQuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBjN2UwNmI2
NjZlNGQ1MDQ1NjMzZjNjMGYxYjNlOTAxNjg2OWFiZTAxLi5hMjVkNTU3OGY1ZjliM2M1MmFjNTVj
ZTNkZmRhMWIxMDI3NTVmYmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMDA3LDYgKzIwMDcsNyBA
QAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1hTU0ZpbHRlci5oJywKICAgICAgICAgICAgICdo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9scy5oJywKKyAgICAgICAgICAgICdodG1sL3NoYWRvdy9Qcm9ncmVzc0JhclZh
bHVFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVu
dC5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5oJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMmRhOWE1OTMyZjMwMzRj
Yjk4N2I5ZjliNTBmNzg1NThjNTIwOGU5ZS4uMWYyODY5ODkzZTg1OThjMWI4NzdiNTVlZmYyNDJm
N2UxOTdiNDEwOSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTU1Njg5LDYgKzU1Njg5LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJ
PEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXHNoYWRvd1xQcm9ncmVzc0JhclZhbHVl
RWxlbWVudC5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZl
UGF0aD0iLi5caHRtbFxzaGFkb3dcU2xpZGVyVGh1bWJFbGVtZW50LmNwcCIKIAkJCQkJPgogCQkJ
CTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAzZmEwZWRiNDE0Mjc3ODMzN2VmZjdiODBhMDFlYjQ5YjEyMzcxYmVlLi45
MDhkNDNjMTNiNTY5ZjJjMzBkMjJjMmYxNWE3MThhODk2NWJjOGQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMjMyLDYgKzMy
MzIsNyBAQAogCQlBN0RCRjhERTEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0RCRjhE
QzEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmggKi87IH07CiAJCUE3RjMz
OEEzMTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RjMzOEExMTFDMEVGQ0EwMEEzMjBBNyAv
KiBTaGFkb3dFbGVtZW50LmNwcCAqLzsgfTsKIAkJQTdGMzM4QTQxMUMwRUZDQTAwQTMyMEE3IC8q
IFNoYWRvd0VsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE3RjMzOEEyMTFDMEVGQ0EwMEEzMjBBNyAvKiBTaGFkb3dFbGVtZW50LmggKi87IH07
CisJCUE3RkU4MTlDMTJGQTY3NzcwMDg1MEMxRSAvKiBQcm9ncmVzc0JhclZhbHVlRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdGRTgxOUIx
MkZBNjc3NzAwODUwQzFFIC8qIFByb2dyZXNzQmFyVmFsdWVFbGVtZW50LmggKi87IH07CiAJCUE4
MEEzOEZFMEU1MENDODIwMEEyNUVCQyAvKiBQYXR0ZXJuQ0cuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwQTM4RkQwRTUwQ0M4MjAwQTI1RUJDIC8q
IFBhdHRlcm5DRy5jcHAgKi87IH07CiAJCUE4MEQ2NzA4MEU5RTlERUIwMEU0MjBGMCAvKiBHcmFw
aGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRDY3MDcwRTlFOURFQjAwRTQyMEYwIC8qIEdyYXBoaWNz
Q29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmggKi87IH07CiAJCUE4MEU2Q0U0MEExOTg5Q0EwMDdG
QjhDNSAvKiBDU1NWYWx1ZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTgwRTZDQkEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlTGlzdC5j
cHAgKi87IH07CkBAIC05NjQwLDYgKzk2NDEsNyBAQAogCQlBN0RCRjhEQzEyNzY5MTlDMDA2QjYw
MDggLyogVGV4dENoZWNraW5nSGVscGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRleHRDaGVja2luZ0hlbHBlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
N0YzMzhBMTExQzBFRkNBMDBBMzIwQTcgLyogU2hhZG93RWxlbWVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFkb3dFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTdGMzM4QTIxMUMwRUZDQTAwQTMyMEE3IC8qIFNoYWRvd0VsZW1l
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2hhZG93RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBN0ZFODE5QjEyRkE2Nzc3MDA4NTBDMUUgLyog
UHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTgwQTM4RkQwRTUwQ0M4MjAwQTI1RUJDIC8qIFBhdHRlcm5DRy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXR0ZXJuQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBODBENjcwNzBFOUU5REVCMDBFNDIwRjAgLyogR3JhcGhpY3NDb250ZXh0
UGxhdGZvcm1Qcml2YXRlQ0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTgwRTZDQkEwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlTGlzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTVmFsdWVMaXN0LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMjU2LDYgKzEzMjU4LDcgQEAKIAkJCWNoaWxkcmVu
ID0gKAogCQkJCTQxNTdBRjdGMTJGMUZCMDQwMEE4QzZGNSAvKiBNZWRpYUNvbnRyb2xzLmNwcCAq
LywKIAkJCQk0MTU3QUY3RTEyRjFGQjA0MDBBOEM2RjUgLyogTWVkaWFDb250cm9scy5oICovLAor
CQkJCUE3RkU4MTlCMTJGQTY3NzcwMDg1MEMxRSAvKiBQcm9ncmVzc0JhclZhbHVlRWxlbWVudC5o
ICovLAogCQkJCTQxNTBGOUYwMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwICovLAogCQkJCTQxNTBGOUVGMTJCNkUwRTcwMDA4Qzg2MCAvKiBTbGlkZXJUaHVtYkVsZW1l
bnQuaCAqLywKIAkJCSk7CkBAIC0yMjQ4NSw2ICsyMjQ4OCw3IEBACiAJCQkJQkNFNDQxMzYxMkY3
NDkwQjAwOUI4NEI4IC8qIEZvbnRXaWR0aFZhcmlhbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0
OTQ3RkZFMTJGODBDRDIwMEEwRjYzMSAvKiBEb2N1bWVudE9yZGVyZWRNYXAuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTk3QzQ3MURDMTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xp
Y3kuaCBpbiBIZWFkZXJzICovLAorCQkJCUE3RkU4MTlDMTJGQTY3NzcwMDg1MEMxRSAvKiBQcm9n
cmVzc0JhclZhbHVlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmNwcAppbmRleCA3ODI0ZmE4NmJmN2U3ODljNWJjODI3OGY3
MjMzYTAyMTQyNDAyOWZjLi5jYWIwNDI5MGU0Y2YwYjcwNzkyMmJjZGM2OWE1ZWFhMzhhODljZTM1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9ncmVzc0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5jcHAKQEAgLTI2
LDQ4ICsyNiwxOCBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCisjaW5jbHVkZSAiSFRNTERpdkVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVkZSAiUHJvZ3Jlc3NC
YXJWYWx1ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJSZW5kZXJQcm9ncmVzcy5oIgotI2luY2x1ZGUg
IlNoYWRvd0VsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAotY2xhc3MgUHJv
Z3Jlc3NCYXJWYWx1ZUVsZW1lbnQgOiBwdWJsaWMgU2hhZG93QmxvY2tFbGVtZW50IHsKLXB1Ymxp
YzoKLSAgICBQcm9ncmVzc0JhclZhbHVlRWxlbWVudChIVE1MRWxlbWVudCogc2hhZG93UGFyZW50
KSAKLSAgICAgICAgOiBTaGFkb3dCbG9ja0VsZW1lbnQoc2hhZG93UGFyZW50KQotICAgIHsKLSAg
ICB9Ci0KLSAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdAotICAgIHsKLSAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBz
ZXVkSWQsICgiLXdlYmtpdC1wcm9ncmVzcy1iYXItdmFsdWUiKSk7Ci0gICAgICAgIHJldHVybiBw
c2V1ZElkOwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKQotICAgIHsKLSAgICAg
ICAgLy8gSW5zdGVhZCBvZiB1c2luZyBzZXRTaGFkb3dIb3N0KCkgbGlrZSBTaGFkb3dCbG9ja0Vs
ZW1lbnQgZG9lcywKLSAgICAgICAgLy8gdGhpcyBjbGFzcyB1c2VzIHNldFNoYWRvd1Jvb3QoKSB0
byB1bmxpbmsgbXV0dWFsIHNoYWRvdy1ob3N0IHJlZmVyZW5jZXMuCi0gICAgICAgIC8vIE5vdGUg
dGhhdCBTaGFkb3dCbG9ja0VsZW1lbnQ6OmRldGFjaCgpIHNob3VsZCBiZSByZW1vdmVkIHdoZW4g
dGhlCi0gICAgICAgIC8vIHNoYWRvdyBtb2RlbCB0cmFuc2l0aW9uIGlzIG92ZXIuIChCdWcgNTM0
MTcpCi0gICAgICAgIGlmIChFbGVtZW50KiBob3N0ID0gc2hhZG93SG9zdCgpKQotICAgICAgICAg
ICAgaG9zdC0+c2V0U2hhZG93Um9vdCgwKTsKLSAgICAgICAgU2hhZG93QmxvY2tFbGVtZW50Ojpz
ZXRTaGFkb3dIb3N0KDApOwotICAgIH0KLQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFByb2dyZXNz
QmFyVmFsdWVFbGVtZW50PiBjcmVhdGUoSFRNTEVsZW1lbnQqIHNoYWRvd1BhcmVudCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQoc2hh
ZG93UGFyZW50KSk7Ci0gICAgfQotCi19OwotCiBIVE1MUHJvZ3Jlc3NFbGVtZW50OjpIVE1MUHJv
Z3Jlc3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCwgSFRNTEZvcm1FbGVtZW50KiBmb3JtKQogICAgIDogSFRNTEZvcm1Db250cm9sRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSkKIHsKQEAgLTE1MSwxMSArMTIxLDYgQEAgZG91Ymxl
IEhUTUxQcm9ncmVzc0VsZW1lbnQ6OnBvc2l0aW9uKCkgY29uc3QKICAgICByZXR1cm4gdmFsdWUo
KSAvIG1heCgpOwogfQogCi1TaGFkb3dCbG9ja0VsZW1lbnQqIEhUTUxQcm9ncmVzc0VsZW1lbnQ6
OnZhbHVlUGFydCgpCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFNoYWRvd0Jsb2NrRWxlbWVu
dCo+KHNoYWRvd1Jvb3QoKSk7Ci19Ci0KIHZvaWQgSFRNTFByb2dyZXNzRWxlbWVudDo6ZGlkRWxl
bWVudFN0YXRlQ2hhbmdlKCkKIHsKICAgICBpZiAocmVuZGVyZXIoKSkKQEAgLTE2Niw3ICsxMzEs
NyBAQCB2b2lkIEhUTUxQcm9ncmVzc0VsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWVJZk5lZWRl
ZCgpCiB7CiAgICAgaWYgKHNoYWRvd1Jvb3QoKSkKICAgICAgICAgcmV0dXJuOwotICAgIHNldFNo
YWRvd1Jvb3QoUHJvZ3Jlc3NCYXJWYWx1ZUVsZW1lbnQ6OmNyZWF0ZSh0aGlzKS5nZXQoKSk7Cisg
ICAgc2V0U2hhZG93Um9vdChQcm9ncmVzc0JhclZhbHVlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KCkpLmdldCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFByb2dyZXNzRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UHJvZ3Jlc3NFbGVtZW50LmgKaW5kZXggM2Y0M2NkOTg2Yzk0NzdhYTQzYTBkZWIwNzBiZWY3ODM0
OGZmNzk4OC4uYTBkYjk2NjJiZjBiMmU2MGYwZTE0N2Y1YjNhZjQwYTY2OWY3ZjMzNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvZ3Jlc3NFbGVtZW50LmgKQEAgLTI2LDggKzI2LDYgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTaGFkb3dCbG9ja0VsZW1lbnQ7Ci0KIGNs
YXNzIEhUTUxQcm9ncmVzc0VsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudCB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTFByb2dyZXNzRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwpA
QCAtNDAsNyArMzgsNiBAQCBwdWJsaWM6CiAKICAgICBkb3VibGUgcG9zaXRpb24oKSBjb25zdDsK
IAotICAgIFNoYWRvd0Jsb2NrRWxlbWVudCogdmFsdWVQYXJ0KCk7CiBwcml2YXRlOgogICAgIEhU
TUxQcm9ncmVzc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZv
cm1FbGVtZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1By
b2dyZXNzQmFyVmFsdWVFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Qcm9n
cmVzc0JhclZhbHVlRWxlbWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyZjRlNTczMTE2NmNlZDg2ZDdmYzk5
Y2FlZjcyNDEzOGJkNWRlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Qcm9ncmVzc0JhclZhbHVlRWxlbWVudC5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6
CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBQcm9ncmVzc0JhclZhbHVlRWxlbWVudF9oCisjZGVmaW5lIFByb2dy
ZXNzQmFyVmFsdWVFbGVtZW50X2gKKworI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiUmVuZGVyUHJvZ3Jlc3MuaCIKKyNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFByb2dyZXNz
QmFyVmFsdWVFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBQ
cm9ncmVzc0JhclZhbHVlRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpIAorICAgICAgICA6IEhU
TUxEaXZFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVudCkKKyAgICB7CisgICAgfQor
CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7
CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwg
UmVuZGVyU3R5bGUqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQcm9ncmVzc0JhclZhbHVlRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisKK307CisKK2lubGluZSBjb25zdCBBdG9taWNTdHJp
bmcmIFByb2dyZXNzQmFyVmFsdWVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7Cisg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHBzZXVkSWQsICgiLXdlYmtpdC1w
cm9ncmVzcy1iYXItdmFsdWUiKSk7CisgICAgcmV0dXJuIHBzZXVkSWQ7Cit9CisKK2lubGluZSBS
ZW5kZXJPYmplY3QqIFByb2dyZXNzQmFyVmFsdWVFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5k
ZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKikKK3sKKyAgICByZXR1cm4gbmV3IChhcmVuYSkg
UmVuZGVyUHJvZ3Jlc3NCYXJWYWx1ZVBhcnQodGhpcyk7Cit9CisKK2lubGluZSBQYXNzUmVmUHRy
PFByb2dyZXNzQmFyVmFsdWVFbGVtZW50PiBQcm9ncmVzc0JhclZhbHVlRWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFByb2dyZXNz
QmFyVmFsdWVFbGVtZW50KGRvY3VtZW50KSk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5kaWNhdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmRpY2F0b3IuY3BwCmluZGV4IGIwM2RmYmFiYWVkYzM5
MTE5YjBlMTcyZTcxZWZmMmEwZjUzNjAwMmIuLjhmMzRhNDA4NzMwY2MxY2ViYjZmZWIyNzI1MTAy
YjEzNmVkZmRmMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bmRpY2F0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmRpY2F0
b3IuY3BwCkBAIC0yNSwxMiArMjUsNTEgQEAKICNpbmNsdWRlICJSZW5kZXJJbmRpY2F0b3IuaCIK
IAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCi0jaW5jbHVkZSAiU2hhZG93RWxlbWVudC5oIgor
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitSZW5kZXJJbmRpY2F0b3JQYXJ0OjpSZW5kZXJJbmRpY2F0b3JQYXJ0
KE5vZGUqIG5vZGUpCisgICAgOiBSZW5kZXJCbG9jayhub2RlKQorICAgICwgbV9vcmlnaW5hbFZp
c2liaWxpdHkoSElEREVOKQoreworfQorCitSZW5kZXJJbmRpY2F0b3JQYXJ0Ojp+UmVuZGVySW5k
aWNhdG9yUGFydCgpCit7Cit9CisKK3ZvaWQgUmVuZGVySW5kaWNhdG9yUGFydDo6bGF5b3V0KCkK
K3sKKyAgICBSZW5kZXJCb3gqIHBhcmVudFJlbmRlcmVyID0gdG9SZW5kZXJCb3gocGFyZW50KCkp
OworICAgIEludFJlY3Qgb2xkUmVjdCA9IGZyYW1lUmVjdCgpOworICAgIEludFJlY3QgbmV3UmVj
dCA9IHByZWZlcnJlZEZyYW1lUmVjdCgpOworCisgICAgTGF5b3V0U3RhdGVNYWludGFpbmVyIHN0
YXRlUHVzaGVyKHBhcmVudFJlbmRlcmVyLT52aWV3KCksIHBhcmVudFJlbmRlcmVyLCBwYXJlbnRS
ZW5kZXJlci0+c2l6ZSgpLCBwYXJlbnRSZW5kZXJlci0+c3R5bGUoKS0+aXNGbGlwcGVkQmxvY2tz
V3JpdGluZ01vZGUoKSk7CisKKyAgICBpZiAob2xkUmVjdC5zaXplKCkgIT0gbmV3UmVjdC5zaXpl
KCkpCisgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgZmFsc2UpOworICAgIGlmIChu
ZWVkc0xheW91dCgpKQorICAgICAgICBSZW5kZXJCbG9jazo6bGF5b3V0KCk7CisgICAgc2V0RnJh
bWVSZWN0KG5ld1JlY3QpOworCisgICAgaWYgKGNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgp
KQorICAgICAgICByZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZChvbGRSZWN0KTsKKyAgICAgICAg
CisgICAgc3RhdGVQdXNoZXIucG9wKCk7CisgICAgcGFyZW50UmVuZGVyZXItPmFkZE92ZXJmbG93
RnJvbUNoaWxkKHRoaXMpOworICAgIHN0eWxlKCktPnNldFZpc2liaWxpdHkoc2hvdWxkQmVIaWRk
ZW4oKSA/IEhJRERFTiA6IG9yaWdpbmFsVmlzaWJpbGl0eSgpKTsKK30KKwordm9pZCBSZW5kZXJJ
bmRpY2F0b3JQYXJ0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3Qg
UmVuZGVyU3R5bGUqIG9sZFN0eWxlKQoreworICAgIG1fb3JpZ2luYWxWaXNpYmlsaXR5ID0gc3R5
bGUoKS0+dmlzaWJpbGl0eSgpOworICAgIFJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZShkaWZm
LCBvbGRTdHlsZSk7Cit9CisKKwogUmVuZGVySW5kaWNhdG9yOjpSZW5kZXJJbmRpY2F0b3IoTm9k
ZSogbm9kZSkKICAgICA6IFJlbmRlckJsb2NrKG5vZGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5kaWNhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW5kaWNhdG9yLmgKaW5kZXggNTBkODE5ZDRlZWVlZjg1NWU3NDkyYjc0MDc2
MTNlZmQ3YjVmMDUyYS4uN2MyYTM0NmU2NmYxYTI4MjJhOWUwZGY4YzQyMzRhMzJiYWQ1MGM1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckluZGljYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmRpY2F0b3IuaApAQCAtMjYsNiAr
MjYsMjQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBSZW5kZXJJbmRpY2F0b3JQ
YXJ0IDogcHVibGljIFJlbmRlckJsb2NrIHsKK3B1YmxpYzoKKyAgICBSZW5kZXJJbmRpY2F0b3JQ
YXJ0KE5vZGUqKTsKKyAgICB2aXJ0dWFsIH5SZW5kZXJJbmRpY2F0b3JQYXJ0KCk7CisKK3Byb3Rl
Y3RlZDoKKyAgICBFVmlzaWJpbGl0eSBvcmlnaW5hbFZpc2liaWxpdHkoKSBjb25zdCB7IHJldHVy
biBtX29yaWdpbmFsVmlzaWJpbGl0eTsgfQorICAgIHZpcnR1YWwgSW50UmVjdCBwcmVmZXJyZWRG
cmFtZVJlY3QoKSA9IDA7CisgICAgdmlydHVhbCBib29sIHNob3VsZEJlSGlkZGVuKCkgPSAwOwor
cHJpdmF0ZToKKyAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7CisgICAgdmlydHVhbCBib29sIHJl
cXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9wYWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgY2FuSGF2ZUNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSopOworCisgICAgRVZpc2liaWxpdHkgbV9vcmlnaW5hbFZpc2liaWxp
dHk7Cit9OworCiBjbGFzcyBSZW5kZXJJbmRpY2F0b3IgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewog
cHVibGljOgogICAgIFJlbmRlckluZGljYXRvcihOb2RlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclByb2dyZXNzLmNwcAppbmRleCAxZWMwYTcyYjA5ZjYxYzkxMWFhN2U3Y2I3
OWU1ZDViNjllZmFkMGIwLi4yYThlNmYzNzkzZjZmZTU5ZTIxNjQwYzIxMWVhZjYyMDBjNGE0ZDc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5jcHAKQEAgLTM2
LDYgKzM2LDE2IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorSW50UmVjdCBSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydDo6cHJlZmVycmVkRnJhbWVSZWN0
KCkKK3sKKyAgICByZXR1cm4gdG9SZW5kZXJQcm9ncmVzcyhwYXJlbnQoKSktPnZhbHVlUGFydFJl
Y3QoKTsKK30KKworYm9vbCBSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydDo6c2hvdWxkQmVIaWRk
ZW4oKQoreworICAgIHJldHVybiAhdG9SZW5kZXJQcm9ncmVzcyhwYXJlbnQoKSktPnNob3VsZEhh
dmVQYXJ0cygpOworfQorCiBSZW5kZXJQcm9ncmVzczo6UmVuZGVyUHJvZ3Jlc3MoSFRNTFByb2dy
ZXNzRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRlckluZGljYXRvcihlbGVtZW50KQogICAg
ICwgbV9wb3NpdGlvbigtMSkKQEAgLTUzLDExICs2Myw2IEBAIFJlbmRlclByb2dyZXNzOjp+UmVu
ZGVyUHJvZ3Jlc3MoKQogCiB2b2lkIFJlbmRlclByb2dyZXNzOjp1cGRhdGVGcm9tRWxlbWVudCgp
CiB7Ci0gICAgaWYgKHNob3VsZEhhdmVQYXJ0cygpKQotICAgICAgICBzdHlsZSgpLT5zZXRBcHBl
YXJhbmNlKE5vQ29udHJvbFBhcnQpOwotICAgIGVsc2UgaWYgKHZhbHVlUGFydCgpLT5yZW5kZXJl
cigpKQotICAgICAgICB2YWx1ZVBhcnQoKS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+c2V0VmlzaWJp
bGl0eShISURERU4pOwotCiAgICAgSFRNTFByb2dyZXNzRWxlbWVudCogZWxlbWVudCA9IHByb2dy
ZXNzRWxlbWVudCgpOwogICAgIGlmIChtX3Bvc2l0aW9uID09IGVsZW1lbnQtPnBvc2l0aW9uKCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTk0LDcgKzk5LDggQEAgdm9pZCBSZW5kZXJQcm9ncmVzczo6
cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGludCB0eCwgaW50IHR5KQogCiB2b2lkIFJlbmRl
clByb2dyZXNzOjpsYXlvdXRQYXJ0cygpCiB7Ci0gICAgdmFsdWVQYXJ0KCktPmxheW91dEFzUGFy
dCh2YWx1ZVBhcnRSZWN0KCkpOworICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjaGlsZCA9IGZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCisgICAgICAgIGNo
aWxkLT5sYXlvdXQoKTsKICAgICB1cGRhdGVBbmltYXRpb25TdGF0ZSgpOwogfQogCkBAIC0xMDIs
OCArMTA4LDYgQEAgYm9vbCBSZW5kZXJQcm9ncmVzczo6c2hvdWxkSGF2ZVBhcnRzKCkgY29uc3QK
IHsKICAgICBpZiAoIXN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgaWYgKCEodmFsdWVQYXJ0KCktPnJlbmRlcmVyKCkgJiYgdmFsdWVQYXJ0KCktPnJl
bmRlcmVyKCktPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkpCi0gICAgICAgIHJldHVybiB0cnVl
OwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTM3LDExICsxNDEsNiBAQCBIVE1MUHJvZ3Jl
c3NFbGVtZW50KiBSZW5kZXJQcm9ncmVzczo6cHJvZ3Jlc3NFbGVtZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFByb2dyZXNzRWxlbWVudCo+KG5vZGUoKSk7CiB9ICAgIAog
Ci1TaGFkb3dCbG9ja0VsZW1lbnQqIFJlbmRlclByb2dyZXNzOjp2YWx1ZVBhcnQoKSBjb25zdAot
ewotICAgIHJldHVybiBwcm9ncmVzc0VsZW1lbnQoKS0+dmFsdWVQYXJ0KCk7Ci19Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUHJvZ3Jlc3MuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJQcm9ncmVzcy5oCmluZGV4IGQ1ZDAzNmM1ZTQ5MGNjZmVkY2FmOGViZWMwM2UwNzA1MzBjODA3
MGQuLjc4Y2YzNTkxNDFlZmY5NWNkM2Q0NmMyYzE4YzI5YzVlNmQ5Yzc3YzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQcm9ncmVzcy5oCkBAIC0yOCw3ICsyOCwxNCBAQAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBIVE1MUHJvZ3Jlc3NFbGVtZW50OwotY2xhc3MgU2hh
ZG93QmxvY2tFbGVtZW50OworCitjbGFzcyBSZW5kZXJQcm9ncmVzc0JhclZhbHVlUGFydCA6IHB1
YmxpYyBSZW5kZXJJbmRpY2F0b3JQYXJ0IHsKK3B1YmxpYzoKKyAgICBSZW5kZXJQcm9ncmVzc0Jh
clZhbHVlUGFydChOb2RlKiBub2RlKSA6IFJlbmRlckluZGljYXRvclBhcnQobm9kZSkge30KK3By
aXZhdGU6CisgICAgdmlydHVhbCBJbnRSZWN0IHByZWZlcnJlZEZyYW1lUmVjdCgpOworICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRCZUhpZGRlbigpOworfTsKIAogY2xhc3MgUmVuZGVyUHJvZ3Jlc3Mg
OiBwdWJsaWMgUmVuZGVySW5kaWNhdG9yIHsKIHB1YmxpYzoKQEAgLTQwLDYgKzQ3LDggQEAgcHVi
bGljOgogICAgIGRvdWJsZSBhbmltYXRpb25TdGFydFRpbWUoKSBjb25zdCB7IHJldHVybiBtX2Fu
aW1hdGlvblN0YXJ0VGltZTsgfQogCiAgICAgYm9vbCBpc0RldGVybWluYXRlKCkgY29uc3Q7Cisg
ICAgSW50UmVjdCB2YWx1ZVBhcnRSZWN0KCkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRIYXZlUGFy
dHMoKSBjb25zdDsKIAogICAgIEhUTUxQcm9ncmVzc0VsZW1lbnQqIHByb2dyZXNzRWxlbWVudCgp
IGNvbnN0OwogCkBAIC00OCwxNyArNTcsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNQcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlRnJvbUVsZW1lbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgaW50
IHR4LCBpbnQgdHkpOwotCiAgICAgdmlydHVhbCB2b2lkIGxheW91dFBhcnRzKCk7CiAKLSAgICBJ
bnRSZWN0IHZhbHVlUGFydFJlY3QoKSBjb25zdDsKLSAgICBib29sIHNob3VsZEhhdmVQYXJ0cygp
IGNvbnN0OwotCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFJlbmRlclByb2dy
ZXNzPiopOwogICAgIHZvaWQgdXBkYXRlQW5pbWF0aW9uU3RhdGUoKTsKIAotICAgIFNoYWRvd0Js
b2NrRWxlbWVudCogdmFsdWVQYXJ0KCkgY29uc3Q7Ci0KICAgICBkb3VibGUgbV9wb3NpdGlvbjsK
ICAgICBkb3VibGUgbV9hbmltYXRpb25TdGFydFRpbWU7CiAgICAgZG91YmxlIG1fYW5pbWF0aW9u
UmVwZWF0SW50ZXJ2YWw7Cg==
</data>
<flag name="review"
          id="72561"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>