<?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>70304</bug_id>
          
          <creation_ts>2011-10-17 22:20:57 -0700</creation_ts>
          <short_desc>width/height attributes of input element should be supported when the type of the input element is image.</short_desc>
          <delta_ts>2012-07-10 07:32:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dongwoo Joshua Im (dwim)">dw.im</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>code.vineet</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ian</cc>
    
    <cc>info</cc>
    
    <cc>ojan</cc>
    
    <cc>s.choi</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yosin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>485807</commentid>
    <comment_count>0</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-17 22:20:57 -0700</bug_when>
    <thetext>Regarding the HTML5 specification, width and height attributes of input element should be supported when the type of the input element is image.

First of all, IDL of input element has width and height attributes (http://www.w3.org/TR/html5/the-input-element.html#the-input-element) in it.
And, there is a description about width and height attributes on input element when their type attribute is in the Image Button state (http://www.w3.org/TR/html5/the-map-element.html#attr-dim-width).

And in my opinion, if the type of input element should be respected the height and width attributes 
(if the result of &quot;m_inputType-&gt;shouldRespectHeightAndWidthAttributes()&quot; is true), such as image type, 
width and height attributes should be accessible by JavaScript API.


So, I propose to add width and height attributes into input element.


I&apos;ll upload patch, so please review the patch and give some comments.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485808</commentid>
    <comment_count>1</comment_count>
      <attachid>111382</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-17 22:26:15 -0700</bug_when>
    <thetext>Created attachment 111382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485809</commentid>
    <comment_count>2</comment_count>
      <attachid>111383</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-17 22:27:47 -0700</bug_when>
    <thetext>Created attachment 111383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485860</commentid>
    <comment_count>3</comment_count>
    <who name="Vineet Chaudhary (vineetc)">code.vineet</who>
    <bug_when>2011-10-17 23:54:10 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=111383&amp;action=review

I am not reviewer, but here are my observation:

&gt; Source/WebCore/html/HTMLInputElement.idl:42
&gt; +        attribute long height;

After looking at spec http://www.whatwg.org/specs/web-apps/current-work/multipage/the-map-element.html#dom-dim-width 
it says &quot;The attributes, if specified, must have values that are valid non-negative integers.&quot; 
so can we have unsigned long height instead of long height.

As It says &quot;For iframe, embed, and object the IDL attributes are DOMString; for video the IDL attributes are unsigned long.&quot;

Also referring to spec http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#htmlinputelement height and with are mentioned as &quot;attribute DOMString height&quot;

Please correct me if I misunderstood.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485867</commentid>
    <comment_count>4</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-18 00:05:52 -0700</bug_when>
    <thetext>Deer Vineet Chaudhary.

Thanks for your feedback.

As you mentioned,
width and height attributes are DOMString type in WHATWG and W3C spec.
So, DOMString is correct type for those two attributes.

I&apos;ll correct the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485868</commentid>
    <comment_count>5</comment_count>
      <attachid>111397</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-18 00:09:27 -0700</bug_when>
    <thetext>Created attachment 111397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485870</commentid>
    <comment_count>6</comment_count>
      <attachid>111397</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-10-18 00:14:37 -0700</bug_when>
    <thetext>Comment on attachment 111397
Patch

Attachment 111397 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/10124150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485871</commentid>
    <comment_count>7</comment_count>
      <attachid>111397</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-18 00:17:22 -0700</bug_when>
    <thetext>Comment on attachment 111397
Patch

Attachment 111397 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10122157</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485882</commentid>
    <comment_count>8</comment_count>
      <attachid>111397</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-18 00:31:53 -0700</bug_when>
    <thetext>Comment on attachment 111397
Patch

Attachment 111397 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10126149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485888</commentid>
    <comment_count>9</comment_count>
      <attachid>111404</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-18 00:49:32 -0700</bug_when>
    <thetext>Created attachment 111404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485892</commentid>
    <comment_count>10</comment_count>
      <attachid>111405</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-18 01:00:27 -0700</bug_when>
    <thetext>Created attachment 111405
Patch

I re-upload patch, because previously uploaded file is wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486177</commentid>
    <comment_count>11</comment_count>
      <attachid>111405</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-10-18 11:10:24 -0700</bug_when>
    <thetext>Comment on attachment 111405
Patch

Please add additional tests:

- setting value to a string that&apos;s not a valid non-negative integer (perhaps &quot;5.5pt&quot;);
- setting value to a string representing a negative number specifically;
- changing width and height of non-image input elements (spec says that these attributes &quot;do not apply&quot; then, but what exactly does that mean?);
- how setting the value affects attributes (check node.getAttribute(&quot;width&quot;) in addition to node.width).

Please verify that these tests have matching results in WebKit an in other browsers implementing this.

Why this is not a [Reflect] attribute?

r- for test coverage. I don&apos;t know enough about this code to confidently review, but I suspect that this should use [Reflect].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486585</commentid>
    <comment_count>12</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-19 00:02:13 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 111405 [details])
&gt; Please add additional tests:
&gt; 
&gt; - setting value to a string that&apos;s not a valid non-negative integer (perhaps &quot;5.5pt&quot;);

I will add this kind of test case.

&gt; - setting value to a string representing a negative number specifically;

I will add this kind of test case.

&gt; - changing width and height of non-image input elements (spec says that these attributes &quot;do not apply&quot; then, but what exactly does that mean?);

I will add this kind of test case.
In setter function, setAttribute function only be called when the type of input element take care of width and height. (the result of shouldRespectHeightAndWidthAttributes() is true)

&gt; - how setting the value affects attributes (check node.getAttribute(&quot;width&quot;) in addition to node.width).

I will add this kind of test case.

&gt; 
&gt; Please verify that these tests have matching results in WebKit an in other browsers implementing this.

I will try.

&gt; 
&gt; Why this is not a [Reflect] attribute?

Regarding w3c spec (http://www.w3.org/TR/html5/the-map-element.html#attr-dim-width), width and height IDL attributes on the iframe, embed, object, and video elements must reflect the respective content attributes of the same name. 
But it does not say the width and height attributes of image and input element are reflect. And current implementation of the width and height attributes of image element are not [Reflect] attributes. 
And, some type of input element will not take care of the width and height attributes.
So, I think the width and height attributes of input element is not a [Reflect] attribute.

&gt; 
&gt; r- for test coverage. I don&apos;t know enough about this code to confidently review, but I suspect that this should use [Reflect].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486609</commentid>
    <comment_count>13</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-19 01:16:25 -0700</bug_when>
    <thetext>Dear Alexey.

Regarding your comments, 
- setting value to a string that&apos;s not a valid non-negative integer (perhaps &quot;5.5pt&quot;);
- setting value to a string representing a negative number specifically;

I tested the &quot;iframe&quot; and &quot;image&quot; element.

The width and height attributes of iframe element are DOMString.
The width and height attributes of image element are long.

And, the width and height attributes of input element are DOMString.
So, I think the result of the test of input element should be same as iframe element. 
Am I correct?


*** When I set &apos;5.5px&apos; as width, 
When node is iframe, 
   node.width is &apos;5.5px&apos;.
   node.getAttribute(&quot;width&quot;) is &apos;5.5px&apos;.

When node is image, 
   node.width is 0.
   node.getAttribute(&quot;width&quot;) is &apos;0&apos;.



*** When I set &apos;1.2&apos; as width, 
When node is iframe,
   node.width is &apos;1.2&apos;.
   node.getAttribute(&quot;width&quot;) is &apos;1.2&apos;.

*** And, when I set 1.2 as width, 
When node is image, 
   node.width is 1.
   node.getAttribute(&quot;width&quot;) is &apos;1&apos;.



*** When I set &apos;-10&apos; as width, 
When node is iframe,
   node.width is &apos;-10&apos;.
   node.getAttribute(&quot;width&quot;) is &apos;-10&apos;.

When node is image, 
   node.width is 0.
   node.getAttribute(&quot;width&quot;) is &apos;-10&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486927</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-10-19 12:42:16 -0700</bug_when>
    <thetext>As mentioned in above comment, I don&apos;t know enough about this code to confidently review. Another reviewer will need to work with you.

Please add the tests, and see how they work in IE and Firefox. If neither IE nor Firefox match the spec, then perhaps the spec needs to be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487345</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-19 23:13:40 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; - changing width and height of non-image input elements (spec says that these attributes &quot;do not apply&quot; then, but what exactly does that mean?);
&gt; 
&gt; I will add this kind of test case.
&gt; In setter function, setAttribute function only be called when the type of input element take care of width and height. (the result of shouldRespectHeightAndWidthAttributes() is true)

I&apos;d like to know the behavior of other browsers for this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488875</commentid>
    <comment_count>16</comment_count>
      <attachid>112072</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-21 22:03:20 -0700</bug_when>
    <thetext>Created attachment 112072
Test page

I&apos;ve tested this on FireFox 4.0.1, IE 8, and Opera 11.50.
If you have another browser, you can run this test page on that.

It seems that FireFox and Opera don&apos;t support this attribute yet.

IE 8 does partially support it.
It seems that IE 8 only works when the value of width is positive &quot;number&quot;, such as 100, or &quot;100&quot;.
It does not work when the value of width is &quot;100px&quot;, or &quot;-100&quot;.

I will try this on IE 9 soon.


And, you can see that the width and height are not changed by this way, if the type of input element is text.


I will revise the layout test, and upload patch again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488879</commentid>
    <comment_count>17</comment_count>
      <attachid>112075</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-10-21 22:21:17 -0700</bug_when>
    <thetext>Created attachment 112075
Patch

Layout test is revised.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489114</commentid>
    <comment_count>18</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-23 20:10:09 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; I&apos;ve tested this on FireFox 4.0.1, IE 8, and Opera 11.50.
&gt; If you have another browser, you can run this test page on that.
&gt; 
&gt; It seems that FireFox and Opera don&apos;t support this attribute yet.
&gt; 
&gt; IE 8 does partially support it.
&gt; It seems that IE 8 only works when the value of width is positive &quot;number&quot;, such as 100, or &quot;100&quot;.
&gt; It does not work when the value of width is &quot;100px&quot;, or &quot;-100&quot;.

IMO, we should not implement width and height now.
 - The standard is incomplete.
  The standard doesn&apos;t define behavior of width/height for non-image types.
 - The existing IE implementation isn&apos;t compliant.
  I confirmed IE&apos;s input.width and height were numbers, not strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489116</commentid>
    <comment_count>19</comment_count>
      <attachid>112075</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-23 20:12:21 -0700</bug_when>
    <thetext>Comment on attachment 112075
Patch

r- because the patch can&apos;t be applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494437</commentid>
    <comment_count>20</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-01 22:36:01 -0700</bug_when>
    <thetext>The specification was updated.

--------

          attribute unsigned long height;
          attribute unsigned long width;

--------
The IDL attributes width and height must return the rendered width and height of the image, in CSS pixels, if an image is being rendered, and is being rendered to a visual medium; or else the intrinsic width and height of the image, in CSS pixels, if an image is available but not being rendered to a visual medium; or else 0, if no image is available. When the input element&apos;s type attribute is not in the Image Button state, then no image is available. [CSS]
--------</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494461</commentid>
    <comment_count>21</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-11-02 00:13:59 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; The specification was updated.
&gt; 
&gt; --------
&gt; 
&gt;           attribute unsigned long height;
&gt;           attribute unsigned long width;
&gt; 
&gt; --------
&gt; The IDL attributes width and height must return the rendered width and height of the image, in CSS pixels, if an image is being rendered, and is being rendered to a visual medium; or else the intrinsic width and height of the image, in CSS pixels, if an image is available but not being rendered to a visual medium; or else 0, if no image is available. When the input element&apos;s type attribute is not in the Image Button state, then no image is available. [CSS]
&gt; --------

Thanks to inform this.


There is one more line below the paragraph which you quote.

&quot;On setting, they must act as if they reflected the respective content attributes of the same name.&quot;

IMO, Even though the line says &quot;reflect&quot;, I can&apos;t use [Reflect] for those two attributes, because width and height is valuable when the type is image.

I think I need to handle those attributes regarding the type of the input element.

Am I right?


I&apos;ll upload new patch with width and height attributes which are &quot;unsigned long&quot; type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494462</commentid>
    <comment_count>22</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-02 00:16:03 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; IMO, Even though the line says &quot;reflect&quot;, I can&apos;t use [Reflect] for those two attributes, because width and height is valuable when the type is image.
&gt; 
&gt; I think I need to handle those attributes regarding the type of the input element.
&gt; 
&gt; Am I right?

Right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495283</commentid>
    <comment_count>23</comment_count>
      <attachid>113445</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-11-03 02:33:10 -0700</bug_when>
    <thetext>Created attachment 113445
Patch

I changed the type of width and height attributes as &quot;unsigned long&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495287</commentid>
    <comment_count>24</comment_count>
      <attachid>113447</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-11-03 02:40:01 -0700</bug_when>
    <thetext>Created attachment 113447
Patch

patch with binary file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495327</commentid>
    <comment_count>25</comment_count>
      <attachid>113447</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-03 03:53:05 -0700</bug_when>
    <thetext>Comment on attachment 113447
Patch

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

&gt; LayoutTests/ChangeLog:14
&gt; +        * fast/forms/resources/samsung.gif: Added.

Are you sure that this image can be distributed in WebKit&apos;s license?

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:4
&gt; +    &lt;link rel=&quot;stylesheet&quot; href=&quot;../../fast/js/resources/js-test-style.css&quot;&gt;

This line is not needed.

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:42
&gt; +    &lt;div id=&quot;console&quot;&gt;&lt;/div&gt;

This line is not needed. js-test-pre.js automatically creates it.

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:45
&gt; +    &lt;script&gt;
&gt; +        description(&apos;width and height attributes of HTMLInputElement.&lt;br&gt;&apos;);

nit: Indenting all of the content is meaningless.

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:50
&gt; +        div1.innerHTML = &quot;&lt;b&gt;case #1.&lt;/b&gt; Image type. --- HTML inline setting as \&quot;160\&quot;, \&quot;80px\&quot;,&quot;
&gt; +                          + &quot; result is &quot; + image1.width + &quot;, &quot; + image1.height + &quot;&lt;br&gt;&quot; + div1.innerHTML;

We had better show &quot;PASS&quot; or &quot;FAIL&quot; in order to tell what is expected to other developers.

&gt; Source/WebCore/html/HTMLInputElement.cpp:1017
&gt; +int HTMLInputElement::height() const

Why is this &quot;int&quot;?

&gt; Source/WebCore/html/HTMLInputElement.cpp:1022
&gt; +    if (m_inputType-&gt;shouldRespectHeightAndWidthAttributes())

We prefer early exit. So, this function should be:

{
    if (!m_inputType-&gt;shouldRespectHeightAndWidthAttributes())
        return 0;
    :
    :

&gt; Source/WebCore/html/HTMLInputElement.cpp:1023
&gt; +        height = fastGetAttribute(heightAttr).toInt(&amp;ok);

We had better use parseHTMLNonNegativeInteger().

Also, this implementation is incorrect.  The specification says height/width returns the intrinsic size of the image.  Please refer to the implementation of HTMLImageElement::width() and height().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495388</commentid>
    <comment_count>26</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-03 05:51:10 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; The specification says height/width returns the intrinsic size of the image. 
... if height/width attribute is missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496104</commentid>
    <comment_count>27</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-11-04 01:25:00 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 113447 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113447&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:14
&gt; &gt; +        * fast/forms/resources/samsung.gif: Added.
&gt; 
&gt; Are you sure that this image can be distributed in WebKit&apos;s license?
 
I&apos;ve noticed that the CI images of Apple and Google are already included in the resource directory for the similar reasons (e.g., layout test purpose). Have you guys had any trouble with that (e.g., any sort of copyright violation)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496269</commentid>
    <comment_count>28</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-04 10:22:50 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (In reply to comment #25)
&gt; &gt; (From update of attachment 113447 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113447&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/ChangeLog:14
&gt; &gt; &gt; +        * fast/forms/resources/samsung.gif: Added.
&gt; &gt; 
&gt; &gt; Are you sure that this image can be distributed in WebKit&apos;s license?
&gt; 
&gt; I&apos;ve noticed that the CI images of Apple and Google are already included in the resource directory for the similar reasons (e.g., layout test purpose). Have you guys had any trouble with that (e.g., any sort of copyright violation)?

I suspect the apple and google logos were checked in by accident.  Seems like we can replace them with other images for these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496632</commentid>
    <comment_count>29</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-11-04 22:36:02 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 113447 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113447&amp;action=review

&gt; &gt; Source/WebCore/html/HTMLInputElement.cpp:1017
&gt; &gt; +int HTMLInputElement::height() const
&gt; 
&gt; Why is this &quot;int&quot;?

I need to use getAttribute(widthAttr) to get the width.
The return value is string type, so I need to change the type.

As I know, toInt, toDouble, and toFloat are supported by wtf/text.
There are no &apos;toLong&apos;, or &apos;toUnsignedLong&apos; functions.

That is the reason why the return type of width() function is int.


As you recommended, I refer the implementation of the HTMLImageElement.

The width attribute is &apos;long&apos; type in idl file,
but, in the header file, the return type of width() function is &apos;int.&apos;
And, the argument of setWidth() function is also &apos;int&apos;.

In the HTMLInputElement, size attribute is &apos;unsigned long&apos; type in idl file,
the return type of size() function in header file is &apos;int&apos;, as well.


IMHO, using &apos;int&apos; as return type of width() and height() is reasonable.


But if you worried about it, 
I will use &apos;unsigned&apos; as return type by casting the result of &apos;toInt&apos;.

Please let me know your opinion.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497009</commentid>
    <comment_count>30</comment_count>
      <attachid>113447</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-07 00:32:50 -0800</bug_when>
    <thetext>Comment on attachment 113447
Patch

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

&gt;&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1017
&gt;&gt;&gt; +int HTMLInputElement::height() const
&gt;&gt; 
&gt;&gt; Why is this &quot;int&quot;?
&gt; 
&gt; I need to use getAttribute(widthAttr) to get the width.
&gt; The return value is string type, so I need to change the type.
&gt; 
&gt; As I know, toInt, toDouble, and toFloat are supported by wtf/text.
&gt; There are no &apos;toLong&apos;, or &apos;toUnsignedLong&apos; functions.
&gt; 
&gt; That is the reason why the return type of width() function is int.
&gt; 
&gt; 
&gt; As you recommended, I refer the implementation of the HTMLImageElement.
&gt; 
&gt; The width attribute is &apos;long&apos; type in idl file,
&gt; but, in the header file, the return type of width() function is &apos;int.&apos;
&gt; And, the argument of setWidth() function is also &apos;int&apos;.
&gt; 
&gt; In the HTMLInputElement, size attribute is &apos;unsigned long&apos; type in idl file,
&gt; the return type of size() function in header file is &apos;int&apos;, as well.
&gt; 
&gt; 
&gt; IMHO, using &apos;int&apos; as return type of width() and height() is reasonable.
&gt; 
&gt; 
&gt; But if you worried about it, 
&gt; I will use &apos;unsigned&apos; as return type by casting the result of &apos;toInt&apos;.
&gt; 
&gt; Please let me know your opinion.
&gt; 
&gt; Thanks.

&quot;unsigned long&quot; of WebIDL is 32-bit unsigned integer, and we have parseHTMLNonNegativeInteger() and String::toUInt().

Please change it to &quot;unsigned&quot; unless you have any technical difficulties.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511490</commentid>
    <comment_count>31</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-11-30 01:07:33 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; (From update of attachment 113447 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113447&amp;action=review
&gt; 
&gt; &quot;unsigned long&quot; of WebIDL is 32-bit unsigned integer, and we have parseHTMLNonNegativeInteger() and String::toUInt().
&gt; 
&gt; Please change it to &quot;unsigned&quot; unless you have any technical difficulties.

I&apos;m trying to use unsigned rather than int.

Then, prototypes are defined like below.

unsigned height(bool ignorePendingStylesheets = false) const;
unsigned width(bool ignorePendingStylesheets = false) const;
void setHeight(unsigned);
void setWidth(unsigned);

When I&apos;ve tried to give a negative number to setWidth() and get width by width(),
some big positive number comes out.

So, which one is better choice?
 1. prototype : void setHeight(int);
    In the function, if the parameter is less than 0, just set 0 rather than the parameter.

 2.  prototype : void setHeight(unsigned);
    In the function, casting the parameter as int and check if it is less than 0 or not, and set 0 if it is less than 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511514</commentid>
    <comment_count>32</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-11-30 01:38:16 -0800</bug_when>
    <thetext>(In reply to comment #31)
&gt; When I&apos;ve tried to give a negative number to setWidth() and get width by width(),
&gt; some big positive number comes out.

The behavior of setting a negative value to a &quot;unsigned long&quot; property is defined by Web IDL specification.  If our binding code doesn&apos;t follow it, we should fix out binding code generator.

http://www.w3.org/TR/WebIDL/#es-unsigned-long</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511559</commentid>
    <comment_count>33</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-11-30 02:34:28 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #31)
&gt; &gt; When I&apos;ve tried to give a negative number to setWidth() and get width by width(),
&gt; &gt; some big positive number comes out.
&gt; 
&gt; The behavior of setting a negative value to a &quot;unsigned long&quot; property is defined by Web IDL specification.  If our binding code doesn&apos;t follow it, we should fix out binding code generator.
&gt; 
&gt; http://www.w3.org/TR/WebIDL/#es-unsigned-long


Then, we need to make another bug to take care of this exceptional case.

I think that bug doesn&apos;t need to block this bug, because that is not only for this bug but for general cases.



IMHO, we need to fix toUInt32 function to handle this exceptional case.

In JSHTMLInputElement.cpp file, setWidth() function calls impl&apos;s setWidth() using toUInt32().

  imp-&gt;setWidth(value.toUInt32(exec));


And, in JSValueInlineMethods.h file, toUInt32() function is define like this.

  inline uint32_t JSValue::toUInt32(ExecState* exec) const
  {
      // See comment on JSC::toUInt32, above.                                                           
      return toInt32(exec);
  }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511598</commentid>
    <comment_count>34</comment_count>
      <attachid>117162</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-11-30 03:20:13 -0800</bug_when>
    <thetext>Created attachment 117162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512597</commentid>
    <comment_count>35</comment_count>
      <attachid>117162</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-01 01:01:26 -0800</bug_when>
    <thetext>Comment on attachment 117162
Patch

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

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:11
&gt; +&lt;style&gt;
&gt; +    div {
&gt; +        border-style:solid;
&gt; +        border-width:1px;
&gt; +        width: 600px;
&gt; +    }
&gt; +&lt;/style&gt;

Indenting whole the content makes no sense.  Please write it like:
&lt;style&gt;
div {
    border-stylid: solid;
    border-width: 1px;
    width: 600px;
}
&lt;/style&gt;

BTW, this style looks not needed.

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:37
&gt; +&lt;script&gt;
&gt; +    description(&apos;width and height attributes of HTMLInputElement.&lt;br&gt;&apos;);

Indenting whole the content makes no sense.

&lt;br&gt; is not needed.

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:42
&gt; +    div1.innerHTML = &quot;&lt;b&gt;case #1.&lt;/b&gt; Image type. --- HTML inline setting as \&quot;160\&quot;, \&quot;80px\&quot;,&quot;
&gt; +                      + &quot; result is &quot; + image1.width + &quot;, &quot; + image1.height + &quot;&lt;br&gt;&quot; + div1.innerHTML;

You should print it by debug().

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:70
&gt; +&lt;/script&gt;

Test coverage is not good.  We should test height/image properties with non-image types.

&gt; Source/WebCore/html/HTMLInputElement.cpp:1022
&gt; +    if (!m_inputType-&gt;isImageButton())
&gt; +        return 0;
&gt; +

This type check is not needed. We can just call InputType::height().

&gt; Source/WebCore/html/HTMLInputElement.h:138
&gt; +    unsigned height(bool ignorePendingStylesheets = false) const;
&gt; +    unsigned width(bool ignorePendingStylesheets = false) const;

There are no call sites of ignorePendingStylesheets=true.  We should remove the ignorePendingStylesheets parameter.

The ignorePendingStylesheets parameter of HTMLImageElement::width() and height() was introduced by http://trac.webkit.org/changeset/7625. But it seems the parameter is not used now.

&gt; Source/WebCore/html/ImageInputType.cpp:187
&gt; +        // check the attribute first for an explicit pixel valuea

A comment should be like a normal English sentences. It should start with a capital letter, and should end with &apos;.&apos;

&gt; Source/WebCore/html/ImageInputType.h:69
&gt; +    virtual unsigned height(bool) const;
&gt; +    virtual unsigned width(bool) const;
&gt; +    virtual void setHeight(unsigned);
&gt; +    virtual void setWidth(unsigned);

We had better append OVERRIDE keyword to them.

&gt; Source/WebCore/html/InputType.cpp:747
&gt; +void InputType::setHeight(unsigned height)
&gt; +{
&gt; +}
&gt; +
&gt; +void InputType::setWidth(unsigned width)
&gt; +{
&gt; +}

The specification says:
&gt; On setting, they must act as if they reflected the respective content attributes of the same name.

and doesn&apos;t say setting depends on input type.  I think we should set the corresponding attribute value here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512624</commentid>
    <comment_count>36</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-01 01:39:50 -0800</bug_when>
    <thetext>(In reply to comment #35)
&gt; (From update of attachment 117162 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117162&amp;action=review

&gt; Test coverage is not good.  We should test height/image properties with non-image types.
&gt; 
I will add some more test cases which try to set/get width and height of textbox or something.

&gt; &gt; Source/WebCore/html/HTMLInputElement.cpp:1022
&gt; &gt; +    if (!m_inputType-&gt;isImageButton())
&gt; &gt; +        return 0;
&gt; &gt; +
&gt; 
&gt; This type check is not needed. We can just call InputType::height().
&gt; 
I think this kind of early return is preferred in WebKit.
I will remove this two lines.


&gt; &gt; Source/WebCore/html/HTMLInputElement.h:138
&gt; &gt; +    unsigned height(bool ignorePendingStylesheets = false) const;
&gt; &gt; +    unsigned width(bool ignorePendingStylesheets = false) const;
&gt; 
&gt; There are no call sites of ignorePendingStylesheets=true.  We should remove the ignorePendingStylesheets parameter.
&gt; 
&gt; The ignorePendingStylesheets parameter of HTMLImageElement::width() and height() was introduced by http://trac.webkit.org/changeset/7625. But it seems the parameter is not used now.
&gt; 
Oh. I see.

&gt; &gt; Source/WebCore/html/ImageInputType.cpp:187
&gt; &gt; +        // check the attribute first for an explicit pixel valuea
&gt; 
&gt; A comment should be like a normal English sentences. It should start with a capital letter, and should end with &apos;.&apos;
&gt; 
I didn&apos;t check the comments carefully.
I will re-write comments.

&gt; &gt; Source/WebCore/html/ImageInputType.h:69
&gt; &gt; +    virtual unsigned height(bool) const;
&gt; &gt; +    virtual unsigned width(bool) const;
&gt; &gt; +    virtual void setHeight(unsigned);
&gt; &gt; +    virtual void setWidth(unsigned);
&gt; 
&gt; We had better append OVERRIDE keyword to them.
&gt; 
Yes!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513520</commentid>
    <comment_count>37</comment_count>
      <attachid>117571</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-01 22:43:24 -0800</bug_when>
    <thetext>Created attachment 117571
Patch

I&apos;ve add some more test cases, and fix some codes regarding Kent&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513527</commentid>
    <comment_count>38</comment_count>
      <attachid>117571</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-01 22:51:27 -0800</bug_when>
    <thetext>Comment on attachment 117571
Patch

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

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:54
&gt; +var div1 = document.getElementById(&quot;div1&quot;);

The variable div1 - div8 are not needed.

&gt; LayoutTests/fast/forms/input-width-height-attributes.html:86
&gt; +text1.width = 100;
&gt; +text1.height = 50;
&gt; +debug(&apos;Test case #5 : Text, Setting by JavaScript API as \&quot;100\&quot;, \&quot;50\&quot;&apos;);
&gt; +shouldBe(&apos;text1.width,text1.height&apos;, &apos;0,0&apos;);
&gt; +

After this, we had better test:
 - text1 has width= and height= HTML attributes.
 - Changing the type to image, width/height values are not changed.

&gt; Source/WebCore/html/InputType.cpp:753
&gt; +void InputType::setHeight(unsigned height)
&gt; +{
&gt; +    element()-&gt;setAttribute(heightAttr, String::number(height));
&gt; +}
&gt; +
&gt; +void InputType::setWidth(unsigned width)
&gt; +{
&gt; +    element()-&gt;setAttribute(widthAttr, String::number(width));
&gt; +}
&gt; +

No other *InputType overrides setHeight() and setWidth().  We can remove them and move the code to HTMLInputElement::setHeight()/setWidth().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513547</commentid>
    <comment_count>39</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-01 23:21:43 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; (From update of attachment 117571 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117571&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes.html:54
&gt; &gt; +var div1 = document.getElementById(&quot;div1&quot;);
&gt; 
&gt; The variable div1 - div8 are not needed.
&gt; 
Yes. we can remove div2 ~ div8.
We can remove image2 ~ image4, as well.

&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes.html:86
&gt; &gt; +text1.width = 100;
&gt; &gt; +text1.height = 50;
&gt; &gt; +debug(&apos;Test case #5 : Text, Setting by JavaScript API as \&quot;100\&quot;, \&quot;50\&quot;&apos;);
&gt; &gt; +shouldBe(&apos;text1.width,text1.height&apos;, &apos;0,0&apos;);
&gt; &gt; +
&gt; 
&gt; After this, we had better test:
&gt;  - text1 has width= and height= HTML attributes.
&gt;  - Changing the type to image, width/height values are not changed.
&gt; 
I will try.

&gt; &gt; Source/WebCore/html/InputType.cpp:753
&gt; &gt; +void InputType::setHeight(unsigned height)
&gt; &gt; +{
&gt; &gt; +    element()-&gt;setAttribute(heightAttr, String::number(height));
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +void InputType::setWidth(unsigned width)
&gt; &gt; +{
&gt; &gt; +    element()-&gt;setAttribute(widthAttr, String::number(width));
&gt; &gt; +}
&gt; &gt; +
&gt; 
&gt; No other *InputType overrides setHeight() and setWidth().  We can remove them and move the code to HTMLInputElement::setHeight()/setWidth().

Yes, you are right!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513550</commentid>
    <comment_count>40</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-01 23:25:53 -0800</bug_when>
    <thetext>(In reply to comment #39)
&gt; (In reply to comment #38)
&gt; &gt; (From update of attachment 117571 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117571&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/fast/forms/input-width-height-attributes.html:54
&gt; &gt; &gt; +var div1 = document.getElementById(&quot;div1&quot;);
&gt; &gt; 
&gt; &gt; The variable div1 - div8 are not needed.
&gt; &gt; 
&gt; Yes. we can remove div2 ~ div8.
&gt; We can remove image2 ~ image4, as well.
&gt; 
I will remain the image2 ~ image4. That looks better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513558</commentid>
    <comment_count>41</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-01 23:35:16 -0800</bug_when>
    <thetext>(In reply to comment #39)
&gt; (In reply to comment #38)
&gt; &gt; (From update of attachment 117571 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117571&amp;action=review
 
&gt; &gt; &gt; LayoutTests/fast/forms/input-width-height-attributes.html:86
&gt; &gt; &gt; +text1.width = 100;
&gt; &gt; &gt; +text1.height = 50;
&gt; &gt; &gt; +debug(&apos;Test case #5 : Text, Setting by JavaScript API as \&quot;100\&quot;, \&quot;50\&quot;&apos;);
&gt; &gt; &gt; +shouldBe(&apos;text1.width,text1.height&apos;, &apos;0,0&apos;);
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; After this, we had better test:
&gt; &gt;  - text1 has width= and height= HTML attributes.
&gt; &gt;  - Changing the type to image, width/height values are not changed.
&gt; &gt; 
&gt; I will try.
&gt; 


IMO, if we want that width is 0 when we change text1 as image,
I think we should call setAttribute() when m_inputType is image.

Isn&apos;t it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513597</commentid>
    <comment_count>42</comment_count>
      <attachid>117586</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-02 01:00:36 -0800</bug_when>
    <thetext>Created attachment 117586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513619</commentid>
    <comment_count>43</comment_count>
      <attachid>117590</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-02 01:49:42 -0800</bug_when>
    <thetext>Created attachment 117590
Patch

Previous patch has some problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513626</commentid>
    <comment_count>44</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-02 02:11:49 -0800</bug_when>
    <thetext>Regarding the HTML5 spec,

1. Width and height attributes of input element are setted whatever the type of element is.
&quot;On setting, they must act as if they reflected the respective content attributes of the same name.&quot;

2. When user want to get the width and height, it returns 0 if the type of element is not image.
&quot;or else 0, if no image is available. When the input element&apos;s type attribute is not in the Image Button state, then no image is available.&quot;


I&apos;ve tried to implement the code and test cases regarding the HTML5 spec.

Please let me know if I miss something.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513822</commentid>
    <comment_count>45</comment_count>
      <attachid>117590</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-02 09:09:59 -0800</bug_when>
    <thetext>Comment on attachment 117590
Patch

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

Patch looks good. I am not sure that the test case covers all the cases that are different. From reading the height function we need:

    1) no renderer but with width attribute
    2) no renderer and no width attribute with a loaded image
    3) no renderer and no width attribute and no loaded image
    4) with renderer

And then for each of those, zoomed and not zoomed.

&gt; Source/WebCore/html/ImageInputType.cpp:189
&gt; +        if (parseHTMLNonNegativeInteger(element-&gt;getAttribute(heightAttr), height))

Should be fastGetAttribute here.

&gt; Source/WebCore/html/ImageInputType.cpp:192
&gt; +        // If the image is available, use its hieght.

Typo here. &quot;hieght&quot;.

&gt; Source/WebCore/html/ImageInputType.cpp:194
&gt; +        if (m_imageLoader-&gt;image())
&gt; +            return m_imageLoader-&gt;image()-&gt;imageSizeForRenderer(element-&gt;renderer(), 1.0f).height();

Normally we use just &quot;1&quot;, not &quot;1.0f&quot; in cases like this.

&gt; Source/WebCore/html/ImageInputType.cpp:210
&gt; +        if (parseHTMLNonNegativeInteger(element-&gt;getAttribute(widthAttr), width))

Same comment about fastGetAttribute.

&gt; Source/WebCore/html/InputType.h:266
&gt; +    // Sets and Gets width and height of the button if it is image button.

The word &quot;Gets&quot; should not be capitalized.

I’m also not sure this comment is needed or helpful. Comments that say “why” are helpful. Comments that state information that could become out of date are not as good.

The comment refers to the input element as “the button”, but many input elements are not buttons.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514884</commentid>
    <comment_count>46</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-04 21:20:41 -0800</bug_when>
    <thetext>(In reply to comment #35)
&gt; (From update of attachment 117162 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117162&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLInputElement.h:138
&gt; &gt; +    unsigned height(bool ignorePendingStylesheets = false) const;
&gt; &gt; +    unsigned width(bool ignorePendingStylesheets = false) const;
&gt; 
&gt; There are no call sites of ignorePendingStylesheets=true.  We should remove the ignorePendingStylesheets parameter.
&gt; 
&gt; The ignorePendingStylesheets parameter of HTMLImageElement::width() and height() was introduced by http://trac.webkit.org/changeset/7625. But it seems the parameter is not used now.

If so, why don&apos;t we remove that from WebKit?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514931</commentid>
    <comment_count>47</comment_count>
      <attachid>117848</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-04 23:18:13 -0800</bug_when>
    <thetext>Created attachment 117848
Patch

Dear Darin, 
I&apos;ve revised the patch regarding your comments, except the test case.

I don&apos;t fully understand how to make that kinds of test cases until now, 
so it will take much time.

If you are OK, I think I can make another patch for those things after this patch is landed.
Or, I will have some more time to make that kinds of test cases in this patch.

Please let me know your opinion.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517135</commentid>
    <comment_count>48</comment_count>
      <attachid>118317</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2011-12-07 20:04:00 -0800</bug_when>
    <thetext>Created attachment 118317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517138</commentid>
    <comment_count>49</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-07 20:09:07 -0800</bug_when>
    <thetext>(In reply to comment #46)
&gt; (In reply to comment #35)
&gt; &gt; (From update of attachment 117162 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117162&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/HTMLInputElement.h:138
&gt; &gt; &gt; +    unsigned height(bool ignorePendingStylesheets = false) const;
&gt; &gt; &gt; +    unsigned width(bool ignorePendingStylesheets = false) const;
&gt; &gt; 
&gt; &gt; There are no call sites of ignorePendingStylesheets=true.  We should remove the ignorePendingStylesheets parameter.
&gt; &gt; 
&gt; &gt; The ignorePendingStylesheets parameter of HTMLImageElement::width() and height() was introduced by http://trac.webkit.org/changeset/7625. But it seems the parameter is not used now.
&gt; 
&gt; If so, why don&apos;t we remove that from WebKit?

Yes, we should remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517139</commentid>
    <comment_count>50</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-07 20:09:58 -0800</bug_when>
    <thetext>Please take the time to write the tests. We have no reason to be in a hurry to land this change without sufficient tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517482</commentid>
    <comment_count>51</comment_count>
      <attachid>118317</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-12-08 09:39:41 -0800</bug_when>
    <thetext>Comment on attachment 118317
Patch

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

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by Darin Adler.

It sounds like Darin isn&apos;t happy with this patch due to some missing test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523991</commentid>
    <comment_count>52</comment_count>
      <attachid>117590</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-19 10:44:35 -0800</bug_when>
    <thetext>Comment on attachment 117590
Patch

Cleared Darin Adler&apos;s review+ from obsolete attachment 117590 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569346</commentid>
    <comment_count>53</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-02 00:03:29 -0800</bug_when>
    <thetext>*** Bug 80111 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569349</commentid>
    <comment_count>54</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-02 00:03:56 -0800</bug_when>
    <thetext>*** Bug 80114 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>583836</commentid>
    <comment_count>55</comment_count>
      <attachid>132977</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-03-20 22:59:08 -0700</bug_when>
    <thetext>Created attachment 132977
Test case - no renderer but with width attribute

Dear Darin Adler,
I create a test case which you requested.

Attached test case can cover the first one of your list below.
4th one is already included in the previous patch.

    1) no renderer but with width attribute
    2) no renderer and no width attribute with a loaded image
    3) no renderer and no width attribute and no loaded image
    4) with renderer


I have trouble with the 2nd and 3rd.
* How can I test &quot;no width&quot;? Does it mean, don&apos;t set a value to the width/height attribute?
* I think there might be no differences between loaded/not-loaded image case when we just access to the width/height attribute. What is your expectation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595122</commentid>
    <comment_count>56</comment_count>
      <attachid>135481</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-04-03 18:47:05 -0700</bug_when>
    <thetext>Created attachment 135481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595124</commentid>
    <comment_count>57</comment_count>
      <attachid>135482</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-04-03 18:47:54 -0700</bug_when>
    <thetext>Created attachment 135482
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606214</commentid>
    <comment_count>58</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-19 17:15:21 -0700</bug_when>
    <thetext>(In reply to comment #55)
&gt; Created an attachment (id=132977) [details]
&gt; Test case - no renderer but with width attribute
&gt; 
&gt; Dear Darin Adler,
&gt; I create a test case which you requested.
&gt; 
&gt; Attached test case can cover the first one of your list below.
&gt; 4th one is already included in the previous patch.
&gt; 
&gt;     1) no renderer but with width attribute
&gt;     2) no renderer and no width attribute with a loaded image
&gt;     3) no renderer and no width attribute and no loaded image
&gt;     4) with renderer
&gt; 
&gt; 
&gt; I have trouble with the 2nd and 3rd.
&gt; * How can I test &quot;no width&quot;? Does it mean, don&apos;t set a value to the width/height attribute?

It means just an image input without the width attribute.

&gt; * I think there might be no differences between loaded/not-loaded image case when we just access to the width/height attribute. What is your expectation?

Your code has different code paths for loaded case and not-loaded case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>606215</commentid>
    <comment_count>59</comment_count>
      <attachid>135482</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-04-19 17:15:56 -0700</bug_when>
    <thetext>Comment on attachment 135482
Patch

r- because tests are not enough yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>607303</commentid>
    <comment_count>60</comment_count>
      <attachid>135482</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-04-21 17:59:22 -0700</bug_when>
    <thetext>Comment on attachment 135482
Patch

cq- given r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>615060</commentid>
    <comment_count>61</comment_count>
      <attachid>139966</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-05-02 23:58:47 -0700</bug_when>
    <thetext>Created attachment 139966
Patch

I add more tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616867</commentid>
    <comment_count>62</comment_count>
      <attachid>139966</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-05-04 19:35:31 -0700</bug_when>
    <thetext>Comment on attachment 139966
Patch

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

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image-expected.txt:5
&gt; +TEST COMPLETE
&gt; +PASS (&apos;width&apos; in e) is true

&apos;TEST COMPLETE,&apos; then &apos;PASS&apos; looks confusing.  Please follow my comments below.

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:9
&gt; +if (window.layoutTestController) {
&gt; +    layoutTestController.waitUntilDone();
&gt; +    layoutTestController.dumpAsText();
&gt; +}

Replace these lines with:
  jsTestIsAsync = true;

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:16
&gt; +function log(text)
&gt; +{
&gt; +    var console = document.getElementById(&apos;console&apos;);
&gt; +    console.appendChild(document.createTextNode(text));
&gt; +    console.appendChild(document.createElement(&apos;br&apos;));
&gt; +}

Remove this function.  js-test-pre.js provides debug() function.

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:20
&gt; +&lt;input type=&quot;image&quot; id=&quot;imageSlow&quot; src=&quot;resources/image-slow.pl&quot;&gt;

This element has a renderer.  You need to specify style=&quot;display:none;&quot;

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:28
&gt; +            shouldBeTrue(&quot;(&apos;width&apos; in e)&quot;);
&gt; +            shouldBeTrue(&quot;(&apos;height&apos; in e)&quot;);

They are meaningless because HTMLInputElement always has width/height properties.
You should verify what values should width/height be.

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:29
&gt; +            log(&quot;Success&quot;)

This message is meaningless. We can remove it.

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:30
&gt; +            layoutTestController.notifyDone()

Replace this with:
  finishJSTest();

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:32
&gt; +        } else if (readyState == &apos;loading&apos; || readyState == &apos;interactive&apos;) {
&gt; +            setTimeout(&quot;runTest()&quot;, 50);

Polling readyState is not efficient.  You should use events such as &apos;load&apos; &apos;readystatechange&apos;.

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-not-loaded-image.html:20
&gt; +&lt;input type=&quot;image&quot; id=&quot;imageSlow&quot; src=&quot;resources/image-slow.pl&quot;&gt;

This has a renderer.

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-not-loaded-image.html:37
&gt; +    function runTest() {
&gt; +        readyState = document.readyState;
&gt; +        if (readyState == &apos;complete&apos;) {
&gt; +            log(&quot;Success&quot;)
&gt; +            layoutTestController.notifyDone()
&gt; +        } else if (readyState == &apos;loading&apos; || readyState == &apos;interactive&apos;) {
&gt; +            shouldBeTrue(&quot;(&apos;width&apos; in e)&quot;);
&gt; +            shouldBeTrue(&quot;(&apos;height&apos; in e)&quot;);
&gt; +
&gt; +            setTimeout(&quot;runTest()&quot;, 50);
&gt; +        }
&gt; +    }
&gt; +
&gt; +    runTest();

I don&apos;t think this test needs to be asynchronous.

var e = document.getELementById(&quot;ImageSlow&quot;);
shouldBe(...)

is enough.

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer.html:15
&gt; +&lt;input id=&quot;inputElement&quot; type=&quot;image&quot; width=&quot;50&quot; height=&quot;50&quot;&gt;

This element has a renderer.

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer.html:16
&gt; +No crash = test PASS

Why? 
We should verify what width/height should be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617424</commentid>
    <comment_count>63</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-05-06 23:52:13 -0700</bug_when>
    <thetext>(In reply to comment #62)
&gt; (From update of attachment 139966 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=139966&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image-expected.txt:5
&gt; &gt; +TEST COMPLETE
&gt; &gt; +PASS (&apos;width&apos; in e) is true
&gt; 

Done.

&gt; &apos;TEST COMPLETE,&apos; then &apos;PASS&apos; looks confusing.  Please follow my comments below.
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:9
&gt; &gt; +if (window.layoutTestController) {
&gt; &gt; +    layoutTestController.waitUntilDone();
&gt; &gt; +    layoutTestController.dumpAsText();
&gt; &gt; +}
&gt; 
&gt; Replace these lines with:
&gt;   jsTestIsAsync = true;
&gt; 

Done.

&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:16
&gt; &gt; +function log(text)
&gt; &gt; +{
&gt; &gt; +    var console = document.getElementById(&apos;console&apos;);
&gt; &gt; +    console.appendChild(document.createTextNode(text));
&gt; &gt; +    console.appendChild(document.createElement(&apos;br&apos;));
&gt; &gt; +}
&gt; 
&gt; Remove this function.  js-test-pre.js provides debug() function.
&gt; 

Done.

&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:20
&gt; &gt; +&lt;input type=&quot;image&quot; id=&quot;imageSlow&quot; src=&quot;resources/image-slow.pl&quot;&gt;
&gt; 
&gt; This element has a renderer.  You need to specify style=&quot;display:none;&quot;
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:28
&gt; &gt; +            shouldBeTrue(&quot;(&apos;width&apos; in e)&quot;);
&gt; &gt; +            shouldBeTrue(&quot;(&apos;height&apos; in e)&quot;);
&gt; 
&gt; They are meaningless because HTMLInputElement always has width/height properties.
&gt; You should verify what values should width/height be.
&gt; 

width/width should be 0 because it is not setted.
I will use shouldBe.

&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:29
&gt; &gt; +            log(&quot;Success&quot;)
&gt; 
&gt; This message is meaningless. We can remove it.
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:30
&gt; &gt; +            layoutTestController.notifyDone()
&gt; 
&gt; Replace this with:
&gt;   finishJSTest();
&gt; 

Done.

&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:32
&gt; &gt; +        } else if (readyState == &apos;loading&apos; || readyState == &apos;interactive&apos;) {
&gt; &gt; +            setTimeout(&quot;runTest()&quot;, 50);
&gt; 
&gt; Polling readyState is not efficient.  You should use events such as &apos;load&apos; &apos;readystatechange&apos;.
&gt; 

I use &apos;document.onreadystatechange = function() {...}&apos; rather than polling the state.

&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-not-loaded-image.html:20
&gt; &gt; +&lt;input type=&quot;image&quot; id=&quot;imageSlow&quot; src=&quot;resources/image-slow.pl&quot;&gt;
&gt; 
&gt; This has a renderer.
&gt; 

Fixed.

&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-not-loaded-image.html:37
&gt; &gt; +    function runTest() {
&gt; &gt; +        readyState = document.readyState;
&gt; &gt; +        if (readyState == &apos;complete&apos;) {
&gt; &gt; +            log(&quot;Success&quot;)
&gt; &gt; +            layoutTestController.notifyDone()
&gt; &gt; +        } else if (readyState == &apos;loading&apos; || readyState == &apos;interactive&apos;) {
&gt; &gt; +            shouldBeTrue(&quot;(&apos;width&apos; in e)&quot;);
&gt; &gt; +            shouldBeTrue(&quot;(&apos;height&apos; in e)&quot;);
&gt; &gt; +
&gt; &gt; +            setTimeout(&quot;runTest()&quot;, 50);
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    runTest();
&gt; 
&gt; I don&apos;t think this test needs to be asynchronous.
&gt; 
&gt; var e = document.getELementById(&quot;ImageSlow&quot;);
&gt; shouldBe(...)
&gt; 
&gt; is enough.
&gt; 

Fixed.

&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer.html:15
&gt; &gt; +&lt;input id=&quot;inputElement&quot; type=&quot;image&quot; width=&quot;50&quot; height=&quot;50&quot;&gt;
&gt; 
&gt; This element has a renderer.
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer.html:16
&gt; &gt; +No crash = test PASS
&gt; 
&gt; Why? 
&gt; We should verify what width/height should be.

Ok. I will use shouldBe here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617427</commentid>
    <comment_count>64</comment_count>
      <attachid>140485</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-05-07 00:04:56 -0700</bug_when>
    <thetext>Created attachment 140485
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617433</commentid>
    <comment_count>65</comment_count>
      <attachid>140485</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-05-07 00:26:07 -0700</bug_when>
    <thetext>Comment on attachment 140485
Patch

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

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:15
&gt; +&lt;input type=&quot;image&quot; id=&quot;imageInput&quot; src=&quot;resources/green.jpg&quot; style=&quot;display:none&quot;&gt;
&gt; +&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
&gt; +&lt;script language=&quot;JavaScript&quot;&gt;
&gt; +    var e = document.getElementById(&quot;imageInput&quot;);
&gt; +    shouldBe(&apos;e.width&apos;, &apos;0&apos;);
&gt; +    shouldBe(&apos;e.height&apos;, &apos;0&apos;);
&gt; +    finishJSTest();

This is a test for *loaded* image.  So the test should be asynchronous and need to wait for image loading.

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-not-loaded-image.html:20
&gt; +    var e = document.getElementById(&quot;imageSlow&quot;);
&gt; +
&gt; +    document.onreadystatechange = function() {
&gt; +        readyState = document.readyState;
&gt; +        if (readyState == &apos;complete&apos;) {
&gt; +            finishJSTest();
&gt; +        } else if (readyState == &apos;loading&apos; || readyState == &apos;interactive&apos;) {
&gt; +            shouldBe(&apos;e.width&apos;, &apos;0&apos;);
&gt; +            shouldBe(&apos;e.height&apos;, &apos;0&apos;);

This is a test for *not loaded* image.  So we don&apos;t need to make this asynchronous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617451</commentid>
    <comment_count>66</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-05-07 01:25:59 -0700</bug_when>
    <thetext>(In reply to comment #65)
&gt; (From update of attachment 140485 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=140485&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:15
&gt; &gt; +&lt;input type=&quot;image&quot; id=&quot;imageInput&quot; src=&quot;resources/green.jpg&quot; style=&quot;display:none&quot;&gt;
&gt; &gt; +&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
&gt; &gt; +&lt;script language=&quot;JavaScript&quot;&gt;
&gt; &gt; +    var e = document.getElementById(&quot;imageInput&quot;);
&gt; &gt; +    shouldBe(&apos;e.width&apos;, &apos;0&apos;);
&gt; &gt; +    shouldBe(&apos;e.height&apos;, &apos;0&apos;);
&gt; &gt; +    finishJSTest();
&gt; 
&gt; This is a test for *loaded* image.  So the test should be asynchronous and need to wait for image loading.
&gt; 

Then, I will test &apos;shouldBe&apos; if readyState == &apos;complete&apos;.

&gt; &gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-not-loaded-image.html:20
&gt; &gt; +    var e = document.getElementById(&quot;imageSlow&quot;);
&gt; &gt; +
&gt; &gt; +    document.onreadystatechange = function() {
&gt; &gt; +        readyState = document.readyState;
&gt; &gt; +        if (readyState == &apos;complete&apos;) {
&gt; &gt; +            finishJSTest();
&gt; &gt; +        } else if (readyState == &apos;loading&apos; || readyState == &apos;interactive&apos;) {
&gt; &gt; +            shouldBe(&apos;e.width&apos;, &apos;0&apos;);
&gt; &gt; +            shouldBe(&apos;e.height&apos;, &apos;0&apos;);
&gt; 
&gt; This is a test for *not loaded* image.  So we don&apos;t need to make this asynchronous.

I did this because I want to make sure to test &apos;shoudBe&apos; before readyState == &apos;complete&apos;.

I will fix this what you recommended at the previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617453</commentid>
    <comment_count>67</comment_count>
      <attachid>140493</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-05-07 01:32:08 -0700</bug_when>
    <thetext>Created attachment 140493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617456</commentid>
    <comment_count>68</comment_count>
      <attachid>140493</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-05-07 01:37:47 -0700</bug_when>
    <thetext>Comment on attachment 140493
Patch

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

&gt; LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image.html:18
&gt; +        if (readyState == &apos;complete&apos;) {
&gt; +            shouldBe(&apos;e.width&apos;, &apos;0&apos;);
&gt; +            shouldBe(&apos;e.height&apos;, &apos;0&apos;);

The code says:
     // If the image is available, use its width.
      if (m_imageLoader-&gt;image())
          return m_imageLoader-&gt;image()-&gt;imageSizeForRenderer(element-&gt;renderer(), 1).width();

e.width and e.height should not be 0, right?
You need to set display:none after completing the image loading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618108</commentid>
    <comment_count>69</comment_count>
      <attachid>140622</attachid>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-05-07 16:59:12 -0700</bug_when>
    <thetext>Created attachment 140622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618180</commentid>
    <comment_count>70</comment_count>
      <attachid>140622</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-05-07 17:55:15 -0700</bug_when>
    <thetext>Comment on attachment 140622
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618188</commentid>
    <comment_count>71</comment_count>
    <who name="Dongwoo Joshua Im (dwim)">dw.im</who>
    <bug_when>2012-05-07 18:14:03 -0700</bug_when>
    <thetext>(In reply to comment #70)
&gt; (From update of attachment 140622 [details])
&gt; Looks good.

Thanks for the review!

This is my very first patch to WebCore, 
I think I can&apos;t finish this patch without your kind review!! ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618262</commentid>
    <comment_count>72</comment_count>
      <attachid>140622</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-07 20:49:14 -0700</bug_when>
    <thetext>Comment on attachment 140622
Patch

Clearing flags on attachment: 140622

Committed r116389: &lt;http://trac.webkit.org/changeset/116389&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618263</commentid>
    <comment_count>73</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-07 20:49:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623024</commentid>
    <comment_count>74</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2012-05-14 08:56:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/11445434&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665755</commentid>
    <comment_count>75</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-07-10 07:32:33 -0700</bug_when>
    <thetext>*** Bug 90818 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111382</attachid>
            <date>2011-10-17 22:26:15 -0700</date>
            <delta_ts>2011-10-17 22:27:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthAndHeightAttributesOfInputElement.patch</filename>
            <type>text/plain</type>
            <size>10111</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZTY0ZmNjLi5lYTZkZmQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAt
MTQgIGR3IGltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlw
dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhl
IHR5cGUgb2YgaW5wdXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRy
aWJ1dGVzIHNob3VsZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJl
IGRlZmluZWQgaW4gSFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRt
bDUvdGhlLW1hcC1lbGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAgICAgICAqIGZhc3Qv
Zm9ybXMvaW5wdXQtaGVpZ2h0LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZm9ybXMvaW5wdXQtaGVpZ2h0LWF0dHJpYnV0ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLmh0bWw6IEFkZGVk
LgorCiAyMDExLTEwLTEzICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBJbXBsZW1lbnQgYW4gT3ZlcmZsb3dFdmVudCBjb25zdHJ1Y3RvciBmb3IgVjgKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtaGVpZ2h0LWF0dHJpYnV0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdodC1hdHRyaWJ1
dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwNDA4
YTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdo
dC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKKworSFRNTElucHV0RWxl
bWVudC5oZWlnaHQgYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
CitTZXQgaGVpZ2h0IGFzIDEwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4K
K1BBU1MgaW1hZ2VCdXR0b24uaGVpZ2h0IGlzIDEwCisKK1NldCBoZWlnaHQgYXMgMTAwLCBhbmQg
Y2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4KK1BBU1MgaW1hZ2VCdXR0b24uaGVpZ2h0
IGlzIDEwMAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0
cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdodC1hdHRyaWJ1
dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjFjMDgzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmli
dXRlLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFk
PgorICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDxmb3Jt
IGFjdGlvbj0iLyI+CisgICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlQnV0dG9uIiBz
cmM9InJlc291cmNlcy9sb2dvLmdpZiI+CisgIDwvZm9ybT4KKworICA8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKyAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDxzY3JpcHQ+CisgICAgZGVz
Y3JpcHRpb24oJ0hUTUxJbnB1dEVsZW1lbnQuaGVpZ2h0IGF0dHJpYnV0ZS48YnI+Jyk7CisKKyAg
ICB2YXIgaW1hZ2VCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2VCdXR0b24i
KTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnU2V0IGhlaWdodCBhcyAxMCwgYW5kIGNo
ZWNrIGl0IGlzIHN1Y2Nlc3NmdWxseSBzZXR0ZWQuJyk7CisgICAgdmFyIHZhbHVlID0gMTA7Cisg
ICAgaW1hZ2VCdXR0b24uaGVpZ2h0ID0gdmFsdWU7CisgICAgc2hvdWxkQmUoJ2ltYWdlQnV0dG9u
LmhlaWdodCcsICIxMCIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdTZXQgaGVpZ2h0
IGFzIDEwMCwgYW5kIGNoZWNrIGl0IGlzIHN1Y2Nlc3NmdWxseSBzZXR0ZWQuJyk7CisgICAgdmFs
dWUgPSAxMDA7CisgICAgaW1hZ2VCdXR0b24uaGVpZ2h0ID0gdmFsdWU7CisgICAgc2hvdWxkQmUo
J2ltYWdlQnV0dG9uLmhlaWdodCcsICIxMDAiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICB2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgPC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13
aWR0aC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjk2MTgwMGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXdpZHRoLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitI
VE1MSW5wdXRFbGVtZW50LndpZHRoIGF0dHJpYnV0ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKKworU2V0IHdpZHRoIGFzIDEwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5
IHNldHRlZC4KK1BBU1MgaW1hZ2VCdXR0b24ud2lkdGggaXMgMTAKKworU2V0IHdpZHRoIGFzIDEw
MCwgYW5kIGNoZWNrIGl0IGlzIHN1Y2Nlc3NmdWxseSBzZXR0ZWQuCitQQVNTIGltYWdlQnV0dG9u
LndpZHRoIGlzIDEwMAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtYXR0
cmlidXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ1MGZmYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtYXR0
cmlidXRlLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxo
ZWFkPgorICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+CisgIDxm
b3JtIGFjdGlvbj0iLyI+CisgICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlQnV0dG9u
IiBzcmM9InJlc291cmNlcy9hcHBsZS5naWYiPgorICA8L2Zvcm0+CisKKyAgPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+CisgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorICA8c2NyaXB0PgorICAg
IGRlc2NyaXB0aW9uKCdIVE1MSW5wdXRFbGVtZW50LndpZHRoIGF0dHJpYnV0ZS48YnI+Jyk7CisK
KyAgICB2YXIgaW1hZ2VCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2VCdXR0
b24iKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnU2V0IHdpZHRoIGFzIDEwLCBhbmQg
Y2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4nKTsKKyAgICB2YXIgdmFsdWUgPSAxMDsK
KyAgICBpbWFnZUJ1dHRvbi53aWR0aCA9IHZhbHVlOworICAgIHNob3VsZEJlKCdpbWFnZUJ1dHRv
bi53aWR0aCcsICIxMCIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdTZXQgd2lkdGgg
YXMgMTAwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4nKTsKKyAgICB2YWx1
ZSA9IDEwMDsKKyAgICBpbWFnZUJ1dHRvbi53aWR0aCA9IHZhbHVlOworICAgIHNob3VsZEJlKCdp
bWFnZUJ1dHRvbi53aWR0aCcsICIxMDAiKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICB2YXIgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgPC9zY3JpcHQ+CisgIDxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRiNTM0MGIuLmMwNzhkMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxMS0xMC0xNCAgRG9uZ3dvbyBJbSAgPGR3LmltQHNhbXN1bmcuY29tPgor
CisgICAgICAgIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzIG9mIGlucHV0IGVsZW1lbnQgY2Fubm90
IGJlIGFjY2Vzc2VkIGJ5IEphdmFTY3JpcHQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MDMwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIElmIHRoZSB0eXBlIG9mIGlucHV0IGVsZW1lbnQgaXMgaW1hZ2Ug
YnV0dG9uLCB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcyBzaG91bGQgYmUgc3VwcG9ydGVkLgorICAg
ICAgICBUaGVzZSBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkIGluIEhUTUw1IHNwZWMuCisgICAgICAg
IGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L3RoZS1tYXAtZWxlbWVudC5odG1sI2F0dHItZGlt
LXdpZHRoCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOiBBZGQgc2V0dGVy
L2dldHRlciBmdW5jdGlvbnMgdG8gcXVlcnkvc2V0IHdpZHRoL2hlaWdodCBvZiBpbnB1dCBlbGVt
ZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aGVpZ2h0KTogU2V0cyBo
ZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ6OndpZHRoKTogU2V0cyB3aWR0aCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6c2V0SGVpZ2h0KTogR2V0cyBoZWlnaHQgb2YgaW5wdXQgZWxl
bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFdpZHRoKTogR2V0
cyB3aWR0aCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5oOiBBZGQgcHVibGljIHByb3RvdHlwZS4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsOiBBZGQgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMuCisKIDIwMTEtMTAtMTMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlICNpbmNs
dWRlIG9mIDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4gaW4gYSB3aWRlbHktdXNlZCBoZWFkZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBhNTlmMGFlLi40
YzZhNWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTcs
NiArNyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtp
dC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChD
KSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTEwMTEsNiArMTAxMiw0MiBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6
OnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNpemUpIGNvbnN0CiAg
ICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oZGVmYXVs
dFNpemUsIHByZWZlcnJlZFNpemUpOwogfQogCitpbnQgSFRNTElucHV0RWxlbWVudDo6aGVpZ2h0
KCkKK3sKKyAgICBpZiAobV9pbnB1dFR5cGUtPnNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0
dHJpYnV0ZXMoKSkgeworICAgICAgICBib29sIG9rOworICAgICAgICBpbnQgd2lkdGggPSBnZXRB
dHRyaWJ1dGUoaGVpZ2h0QXR0cikudG9JbnQoJm9rKTsKKyAgICAgICAgaWYgKG9rKQorICAgICAg
ICAgICAgcmV0dXJuIHdpZHRoOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCitpbnQgSFRN
TElucHV0RWxlbWVudDo6d2lkdGgoKQoreworICAgIGlmIChtX2lucHV0VHlwZS0+c2hvdWxkUmVz
cGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpKSB7CisgICAgICAgIGJvb2wgb2s7CisgICAg
ICAgIGludCB3aWR0aCA9IGdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpLnRvSW50KCZvayk7CisgICAg
ICAgIGlmIChvaykKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKyAgICB9CisKKyAgICByZXR1
cm4gMDsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQoaW50IHZhbHVlKQor
eworICAgIGlmIChtX2lucHV0VHlwZS0+c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmli
dXRlcygpKQorICAgICAgICBzZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIo
dmFsdWUpKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aChpbnQgdmFsdWUp
Cit7CisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRy
aWJ1dGVzKCkpCisgICAgICAgIHNldEF0dHJpYnV0ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVy
KHZhbHVlKSk7Cit9CisKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVBy
b3BlcnRpZXMoY29uc3QgRWxlbWVudCogc291cmNlKQogewogICAgIGNvbnN0IEhUTUxJbnB1dEVs
ZW1lbnQqIHNvdXJjZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MSW5wdXRFbGVtZW50
Kj4oc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggYmEy
MWUzYy4uZWJmMzVhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAg
LTMsNiArMyw3IEBACiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTEzMyw2ICsxMzQsMTEgQEAgcHVibGljOgogICAgIGludCBzaXplKCkgY29uc3Q7CiAg
ICAgYm9vbCBzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50JiBwcmVmZXJyZWRTaXplKSBj
b25zdDsKIAorICAgIGludCBoZWlnaHQoKTsKKyAgICBpbnQgd2lkdGgoKTsKKyAgICB2b2lkIHNl
dEhlaWdodChpbnQpOworICAgIHZvaWQgc2V0V2lkdGgoaW50KTsKKwogICAgIHZvaWQgc2V0VHlw
ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggZDNhMWVkNy4uZmE0OGJjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC0xLDYgKzEsNyBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0Bn
bWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzgsNiArMzksNyBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkaXNhYmxl
ZDsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9mb2N1czsKICAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYXV0b2NvbXBsZXRlOworICAgICAgICBh
dHRyaWJ1dGUgbG9uZyBoZWlnaHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0
aW9uYWw9REFUQUxJU1RdIEhUTUxFbGVtZW50IGxpc3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gRE9NU3RyaW5nIG1heDsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgbWF4TGVuZ3RoIHNl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTYwLDYgKzYyLDcgQEAgbW9kdWxlIGh0bWwg
ewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcg
dHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCiAgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsKICAgICAgICAgYXR0cmlidXRl
IFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOworICAgICAgICBhdHRy
aWJ1dGUgbG9uZyB3aWR0aDsKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFH
RV9DUFAKICAgICAgICAgYXR0cmlidXRlIERhdGUgdmFsdWVBc0RhdGUgc2V0dGVyIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111383</attachid>
            <date>2011-10-17 22:27:47 -0700</date>
            <delta_ts>2011-10-18 00:09:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthAndHeightAttributesOfInputElement.patch</filename>
            <type>text/plain</type>
            <size>10116</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZTY0ZmNjLi44Zjc2OTNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAt
MTQgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmlidXRlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1hdHRyaWJ1dGUuaHRtbDog
QWRkZWQuCisKIDIwMTEtMTAtMTMgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEltcGxlbWVudCBhbiBPdmVyZmxvd0V2ZW50IGNvbnN0cnVjdG9yIGZvciBW
OApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmli
dXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtaGVpZ2h0LWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZjA0MDhhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
aGVpZ2h0LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitIVE1MSW5w
dXRFbGVtZW50LmhlaWdodCBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCisKK1NldCBoZWlnaHQgYXMgMTAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0
dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi5oZWlnaHQgaXMgMTAKKworU2V0IGhlaWdodCBhcyAxMDAs
IGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi5o
ZWlnaHQgaXMgMTAwCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdo
dC1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtaGVpZ2h0LWF0
dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyMWMwODMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdodC1h
dHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgor
PGhlYWQ+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAg
PGZvcm0gYWN0aW9uPSIvIj4KKyAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2VCdXR0
b24iIHNyYz0icmVzb3VyY2VzL2xvZ28uZ2lmIj4KKyAgPC9mb3JtPgorCisgIDxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbignSFRNTElucHV0RWxlbWVudC5oZWlnaHQgYXR0cmlidXRlLjxicj4nKTsK
KworICAgIHZhciBpbWFnZUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZUJ1
dHRvbiIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdTZXQgaGVpZ2h0IGFzIDEwLCBh
bmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4nKTsKKyAgICB2YXIgdmFsdWUgPSAx
MDsKKyAgICBpbWFnZUJ1dHRvbi5oZWlnaHQgPSB2YWx1ZTsKKyAgICBzaG91bGRCZSgnaW1hZ2VC
dXR0b24uaGVpZ2h0JywgIjEwIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ1NldCBo
ZWlnaHQgYXMgMTAwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4nKTsKKyAg
ICB2YWx1ZSA9IDEwMDsKKyAgICBpbWFnZUJ1dHRvbi5oZWlnaHQgPSB2YWx1ZTsKKyAgICBzaG91
bGRCZSgnaW1hZ2VCdXR0b24uaGVpZ2h0JywgIjEwMCIpOworCisgICAgZGVidWcoJycpOworICAg
IHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXdpZHRoLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXdpZHRoLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTYxODAwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBA
CisKK0hUTUxJbnB1dEVsZW1lbnQud2lkdGggYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworCitTZXQgd2lkdGggYXMgMTAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNz
ZnVsbHkgc2V0dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi53aWR0aCBpcyAxMAorCitTZXQgd2lkdGgg
YXMgMTAwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4KK1BBU1MgaW1hZ2VC
dXR0b24ud2lkdGggaXMgMTAwCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXdpZHRoLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDUw
ZmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1s
PgorPGhlYWQ+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4K
KyAgPGZvcm0gYWN0aW9uPSIvIj4KKyAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2VC
dXR0b24iIHNyYz0icmVzb3VyY2VzL2FwcGxlLmdpZiI+CisgIDwvZm9ybT4KKworICA8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKyAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oJ0hUTUxJbnB1dEVsZW1lbnQud2lkdGggYXR0cmlidXRlLjxicj4n
KTsKKworICAgIHZhciBpbWFnZUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFn
ZUJ1dHRvbiIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdTZXQgd2lkdGggYXMgMTAs
IGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLicpOworICAgIHZhciB2YWx1ZSA9
IDEwOworICAgIGltYWdlQnV0dG9uLndpZHRoID0gdmFsdWU7CisgICAgc2hvdWxkQmUoJ2ltYWdl
QnV0dG9uLndpZHRoJywgIjEwIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ1NldCB3
aWR0aCBhcyAxMDAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLicpOworICAg
IHZhbHVlID0gMTAwOworICAgIGltYWdlQnV0dG9uLndpZHRoID0gdmFsdWU7CisgICAgc2hvdWxk
QmUoJ2ltYWdlQnV0dG9uLndpZHRoJywgIjEwMCIpOworCisgICAgZGVidWcoJycpOworICAgIHZh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI1MzQwYi4uYzA3OGQzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDExLTEwLTE0ICBEb25nd29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5j
b20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBj
YW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlwdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHR5cGUgb2YgaW5wdXQgZWxlbWVudCBpcyBp
bWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBzdXBwb3J0ZWQu
CisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgaW4gSFRNTDUgc3BlYy4KKyAg
ICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvdGhlLW1hcC1lbGVtZW50Lmh0bWwjYXR0
ci1kaW0td2lkdGgKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6IEFkZCBz
ZXR0ZXIvZ2V0dGVyIGZ1bmN0aW9ucyB0byBxdWVyeS9zZXQgd2lkdGgvaGVpZ2h0IG9mIGlucHV0
IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQpOiBT
ZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6d2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1
dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgp
OiBHZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50Lmg6IEFkZCBwdWJsaWMgcHJvdG90eXBlLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5pZGw6IEFkZCB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcy4KKwogMjAxMS0xMC0xMyAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
I2luY2x1ZGUgb2YgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPiBpbiBhIHdpZGVseS11c2VkIGhl
YWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGE1OWYw
YWUuLjRjNmE1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApA
QCAtNyw2ICs3LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1A
d2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTAxMSw2ICsxMDEyLDQyIEBAIGJvb2wgSFRNTElucHV0RWxl
bWVudDo6c2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29u
c3QKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihk
ZWZhdWx0U2l6ZSwgcHJlZmVycmVkU2l6ZSk7CiB9CiAKK2ludCBIVE1MSW5wdXRFbGVtZW50Ojpo
ZWlnaHQoKQoreworICAgIGlmIChtX2lucHV0VHlwZS0+c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdp
ZHRoQXR0cmlidXRlcygpKSB7CisgICAgICAgIGJvb2wgb2s7CisgICAgICAgIGludCB3aWR0aCA9
IGdldEF0dHJpYnV0ZShoZWlnaHRBdHRyKS50b0ludCgmb2spOworICAgICAgICBpZiAob2spCisg
ICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2lu
dCBIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCgpCit7CisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91
bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpIHsKKyAgICAgICAgYm9vbCBvazsK
KyAgICAgICAgaW50IHdpZHRoID0gZ2V0QXR0cmlidXRlKHdpZHRoQXR0cikudG9JbnQoJm9rKTsK
KyAgICAgICAgaWYgKG9rKQorICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgIH0KKworICAg
IHJldHVybiAwOworfQorCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodChpbnQgdmFs
dWUpCit7CisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhB
dHRyaWJ1dGVzKCkpCisgICAgICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6Om51
bWJlcih2YWx1ZSkpOworfQorCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFdpZHRoKGludCB2
YWx1ZSkKK3sKKyAgICBpZiAobV9pbnB1dFR5cGUtPnNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0
aEF0dHJpYnV0ZXMoKSkKKyAgICAgICAgc2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpu
dW1iZXIodmFsdWUpKTsKK30KKwogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpjb3B5Tm9uQXR0cmli
dXRlUHJvcGVydGllcyhjb25zdCBFbGVtZW50KiBzb3VyY2UpCiB7CiAgICAgY29uc3QgSFRNTElu
cHV0RWxlbWVudCogc291cmNlRWxlbWVudCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxJbnB1dEVs
ZW1lbnQqPihzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRl
eCBiYTIxZTNjLi5lYmYzNWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aApAQCAtMyw2ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAo
a29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11
ZWxsZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMTMzLDYgKzEzNCwxMSBAQCBwdWJsaWM6CiAgICAgaW50IHNpemUoKSBjb25z
dDsKICAgICBib29sIHNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNp
emUpIGNvbnN0OwogCisgICAgaW50IGhlaWdodCgpOworICAgIGludCB3aWR0aCgpOworICAgIHZv
aWQgc2V0SGVpZ2h0KGludCk7CisgICAgdm9pZCBzZXRXaWR0aChpbnQpOworCiAgICAgdm9pZCBz
ZXRUeXBlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBkM2ExZWQ3Li5mYTQ4YmMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTEsNiArMSw3
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2Vp
bmlnQGdtYWlsLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zOCw2ICszOSw3
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRp
c2FibGVkOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3VzOwog
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhdXRvY29tcGxldGU7CisgICAg
ICAgIGF0dHJpYnV0ZSBsb25nIGhlaWdodDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1EQVRBTElTVF0gSFRNTEVsZW1lbnQgbGlzdDsKICAgICAgICAgYXR0cmlidXRl
IFtSZWZsZWN0XSBET01TdHJpbmcgbWF4OwogICAgICAgICBhdHRyaWJ1dGUgbG9uZyBtYXhMZW5n
dGggc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwpAQCAtNjAsNiArNjIsNyBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0
cmluZyB0eXBlOyAvLyByZWFkb25seSBkcm9wcGVkIGFzIHBhcnQgb2YgRE9NIGxldmVsIDIKICAg
ICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgdXNlTWFwOwogICAgICAgICBhdHRy
aWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdmFsdWU7CisgICAgICAg
IGF0dHJpYnV0ZSBsb25nIHdpZHRoOwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxB
TkdVQUdFX0NQUAogICAgICAgICBhdHRyaWJ1dGUgRGF0ZSB2YWx1ZUFzRGF0ZSBzZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111397</attachid>
            <date>2011-10-18 00:09:27 -0700</date>
            <delta_ts>2011-10-18 00:49:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthAndHeightAttributesOfInputElement_02.patch</filename>
            <type>text/plain</type>
            <size>10126</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZTY0ZmNjLi44Zjc2OTNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAt
MTQgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmlidXRlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1hdHRyaWJ1dGUuaHRtbDog
QWRkZWQuCisKIDIwMTEtMTAtMTMgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEltcGxlbWVudCBhbiBPdmVyZmxvd0V2ZW50IGNvbnN0cnVjdG9yIGZvciBW
OApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmli
dXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtaGVpZ2h0LWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZjA0MDhhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
aGVpZ2h0LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitIVE1MSW5w
dXRFbGVtZW50LmhlaWdodCBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCisKK1NldCBoZWlnaHQgYXMgMTAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0
dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi5oZWlnaHQgaXMgMTAKKworU2V0IGhlaWdodCBhcyAxMDAs
IGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi5o
ZWlnaHQgaXMgMTAwCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdo
dC1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtaGVpZ2h0LWF0
dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyMWMwODMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdodC1h
dHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgor
PGhlYWQ+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAg
PGZvcm0gYWN0aW9uPSIvIj4KKyAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2VCdXR0
b24iIHNyYz0icmVzb3VyY2VzL2xvZ28uZ2lmIj4KKyAgPC9mb3JtPgorCisgIDxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbignSFRNTElucHV0RWxlbWVudC5oZWlnaHQgYXR0cmlidXRlLjxicj4nKTsK
KworICAgIHZhciBpbWFnZUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZUJ1
dHRvbiIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdTZXQgaGVpZ2h0IGFzIDEwLCBh
bmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4nKTsKKyAgICB2YXIgdmFsdWUgPSAx
MDsKKyAgICBpbWFnZUJ1dHRvbi5oZWlnaHQgPSB2YWx1ZTsKKyAgICBzaG91bGRCZSgnaW1hZ2VC
dXR0b24uaGVpZ2h0JywgIjEwIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ1NldCBo
ZWlnaHQgYXMgMTAwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4nKTsKKyAg
ICB2YWx1ZSA9IDEwMDsKKyAgICBpbWFnZUJ1dHRvbi5oZWlnaHQgPSB2YWx1ZTsKKyAgICBzaG91
bGRCZSgnaW1hZ2VCdXR0b24uaGVpZ2h0JywgIjEwMCIpOworCisgICAgZGVidWcoJycpOworICAg
IHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXdpZHRoLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXdpZHRoLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTYxODAwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBA
CisKK0hUTUxJbnB1dEVsZW1lbnQud2lkdGggYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworCitTZXQgd2lkdGggYXMgMTAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNz
ZnVsbHkgc2V0dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi53aWR0aCBpcyAxMAorCitTZXQgd2lkdGgg
YXMgMTAwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4KK1BBU1MgaW1hZ2VC
dXR0b24ud2lkdGggaXMgMTAwCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXdpZHRoLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDUw
ZmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1s
PgorPGhlYWQ+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4K
KyAgPGZvcm0gYWN0aW9uPSIvIj4KKyAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2VC
dXR0b24iIHNyYz0icmVzb3VyY2VzL2FwcGxlLmdpZiI+CisgIDwvZm9ybT4KKworICA8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKyAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oJ0hUTUxJbnB1dEVsZW1lbnQud2lkdGggYXR0cmlidXRlLjxicj4n
KTsKKworICAgIHZhciBpbWFnZUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFn
ZUJ1dHRvbiIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdTZXQgd2lkdGggYXMgMTAs
IGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLicpOworICAgIHZhciB2YWx1ZSA9
IDEwOworICAgIGltYWdlQnV0dG9uLndpZHRoID0gdmFsdWU7CisgICAgc2hvdWxkQmUoJ2ltYWdl
QnV0dG9uLndpZHRoJywgIjEwIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ1NldCB3
aWR0aCBhcyAxMDAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLicpOworICAg
IHZhbHVlID0gMTAwOworICAgIGltYWdlQnV0dG9uLndpZHRoID0gdmFsdWU7CisgICAgc2hvdWxk
QmUoJ2ltYWdlQnV0dG9uLndpZHRoJywgIjEwMCIpOworCisgICAgZGVidWcoJycpOworICAgIHZh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI1MzQwYi4uYzA3OGQzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDExLTEwLTE0ICBEb25nd29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5j
b20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBj
YW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlwdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHR5cGUgb2YgaW5wdXQgZWxlbWVudCBpcyBp
bWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBzdXBwb3J0ZWQu
CisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgaW4gSFRNTDUgc3BlYy4KKyAg
ICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvdGhlLW1hcC1lbGVtZW50Lmh0bWwjYXR0
ci1kaW0td2lkdGgKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6IEFkZCBz
ZXR0ZXIvZ2V0dGVyIGZ1bmN0aW9ucyB0byBxdWVyeS9zZXQgd2lkdGgvaGVpZ2h0IG9mIGlucHV0
IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQpOiBT
ZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6d2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1
dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgp
OiBHZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50Lmg6IEFkZCBwdWJsaWMgcHJvdG90eXBlLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5pZGw6IEFkZCB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcy4KKwogMjAxMS0xMC0xMyAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
I2luY2x1ZGUgb2YgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPiBpbiBhIHdpZGVseS11c2VkIGhl
YWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGE1OWYw
YWUuLjRjNmE1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApA
QCAtNyw2ICs3LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1A
d2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTAxMSw2ICsxMDEyLDQyIEBAIGJvb2wgSFRNTElucHV0RWxl
bWVudDo6c2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29u
c3QKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihk
ZWZhdWx0U2l6ZSwgcHJlZmVycmVkU2l6ZSk7CiB9CiAKK2ludCBIVE1MSW5wdXRFbGVtZW50Ojpo
ZWlnaHQoKQoreworICAgIGlmIChtX2lucHV0VHlwZS0+c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdp
ZHRoQXR0cmlidXRlcygpKSB7CisgICAgICAgIGJvb2wgb2s7CisgICAgICAgIGludCB3aWR0aCA9
IGdldEF0dHJpYnV0ZShoZWlnaHRBdHRyKS50b0ludCgmb2spOworICAgICAgICBpZiAob2spCisg
ICAgICAgICAgICByZXR1cm4gd2lkdGg7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKK2lu
dCBIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCgpCit7CisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91
bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpIHsKKyAgICAgICAgYm9vbCBvazsK
KyAgICAgICAgaW50IHdpZHRoID0gZ2V0QXR0cmlidXRlKHdpZHRoQXR0cikudG9JbnQoJm9rKTsK
KyAgICAgICAgaWYgKG9rKQorICAgICAgICAgICAgcmV0dXJuIHdpZHRoOworICAgIH0KKworICAg
IHJldHVybiAwOworfQorCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodChpbnQgdmFs
dWUpCit7CisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhB
dHRyaWJ1dGVzKCkpCisgICAgICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6Om51
bWJlcih2YWx1ZSkpOworfQorCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFdpZHRoKGludCB2
YWx1ZSkKK3sKKyAgICBpZiAobV9pbnB1dFR5cGUtPnNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0
aEF0dHJpYnV0ZXMoKSkKKyAgICAgICAgc2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpu
dW1iZXIodmFsdWUpKTsKK30KKwogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpjb3B5Tm9uQXR0cmli
dXRlUHJvcGVydGllcyhjb25zdCBFbGVtZW50KiBzb3VyY2UpCiB7CiAgICAgY29uc3QgSFRNTElu
cHV0RWxlbWVudCogc291cmNlRWxlbWVudCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxJbnB1dEVs
ZW1lbnQqPihzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRl
eCBiYTIxZTNjLi5lYmYzNWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aApAQCAtMyw2ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAo
a29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11
ZWxsZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMTMzLDYgKzEzNCwxMSBAQCBwdWJsaWM6CiAgICAgaW50IHNpemUoKSBjb25z
dDsKICAgICBib29sIHNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNp
emUpIGNvbnN0OwogCisgICAgaW50IGhlaWdodCgpOworICAgIGludCB3aWR0aCgpOworICAgIHZv
aWQgc2V0SGVpZ2h0KGludCk7CisgICAgdm9pZCBzZXRXaWR0aChpbnQpOworCiAgICAgdm9pZCBz
ZXRUeXBlKGNvbnN0IFN0cmluZyYpOwogCiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCBkM2ExZWQ3Li41N2EyMzky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTEsNiArMSw3
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2Vp
bmlnQGdtYWlsLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNz
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zOCw2ICszOSw3
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRp
c2FibGVkOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3VzOwog
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBhdXRvY29tcGxldGU7CisgICAg
ICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgaGVpZ2h0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgW0NvbmRpdGlvbmFsPURBVEFMSVNUXSBIVE1MRWxlbWVudCBsaXN0OwogICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBtYXg7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIG1h
eExlbmd0aCBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC02MCw2ICs2Miw3IEBAIG1v
ZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10g
RE9NU3RyaW5nIHR5cGU7IC8vIHJlYWRvbmx5IGRyb3BwZWQgYXMgcGFydCBvZiBET00gbGV2ZWwg
MgogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAg
IGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyAg
ICAgICAgYXR0cmlidXRlIERPTVN0cmluZyB3aWR0aDsKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9D
UFApIHx8ICFMQU5HVUFHRV9DUFAKICAgICAgICAgYXR0cmlidXRlIERhdGUgdmFsdWVBc0RhdGUg
c2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCg==
</data>
<flag name="commit-queue"
          id="109220"
          type_id="3"
          status="-"
          setter="gyuyoung.kim"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111404</attachid>
            <date>2011-10-18 00:49:32 -0700</date>
            <delta_ts>2011-10-18 01:00:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthAndHeightAttributesOfInputElement_03.patch</filename>
            <type>text/plain</type>
            <size>10035</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZTY0ZmNjLi44Zjc2OTNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAt
MTQgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmlidXRlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1hdHRyaWJ1dGUuaHRtbDog
QWRkZWQuCisKIDIwMTEtMTAtMTMgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEltcGxlbWVudCBhbiBPdmVyZmxvd0V2ZW50IGNvbnN0cnVjdG9yIGZvciBW
OApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmli
dXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtaGVpZ2h0LWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZjA0MDhhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
aGVpZ2h0LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitIVE1MSW5w
dXRFbGVtZW50LmhlaWdodCBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCisKK1NldCBoZWlnaHQgYXMgMTAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0
dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi5oZWlnaHQgaXMgMTAKKworU2V0IGhlaWdodCBhcyAxMDAs
IGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi5o
ZWlnaHQgaXMgMTAwCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdo
dC1hdHRyaWJ1dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtaGVpZ2h0LWF0
dHJpYnV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIyMWMwODMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdodC1h
dHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgor
PGhlYWQ+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKyAg
PGZvcm0gYWN0aW9uPSIvIj4KKyAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2VCdXR0
b24iIHNyYz0icmVzb3VyY2VzL2xvZ28uZ2lmIj4KKyAgPC9mb3JtPgorCisgIDxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorICA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKyAgPHNjcmlwdD4KKyAg
ICBkZXNjcmlwdGlvbignSFRNTElucHV0RWxlbWVudC5oZWlnaHQgYXR0cmlidXRlLjxicj4nKTsK
KworICAgIHZhciBpbWFnZUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZUJ1
dHRvbiIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdTZXQgaGVpZ2h0IGFzIDEwLCBh
bmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4nKTsKKyAgICB2YXIgdmFsdWUgPSAx
MDsKKyAgICBpbWFnZUJ1dHRvbi5oZWlnaHQgPSB2YWx1ZTsKKyAgICBzaG91bGRCZSgnaW1hZ2VC
dXR0b24uaGVpZ2h0JywgIjEwIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ1NldCBo
ZWlnaHQgYXMgMTAwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4nKTsKKyAg
ICB2YWx1ZSA9IDEwMDsKKyAgICBpbWFnZUJ1dHRvbi5oZWlnaHQgPSB2YWx1ZTsKKyAgICBzaG91
bGRCZSgnaW1hZ2VCdXR0b24uaGVpZ2h0JywgIjEwMCIpOworCisgICAgZGVidWcoJycpOworICAg
IHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXdpZHRoLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXdpZHRoLWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTYxODAwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBA
CisKK0hUTUxJbnB1dEVsZW1lbnQud2lkdGggYXR0cmlidXRlLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworCitTZXQgd2lkdGggYXMgMTAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNz
ZnVsbHkgc2V0dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi53aWR0aCBpcyAxMAorCitTZXQgd2lkdGgg
YXMgMTAwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4KK1BBU1MgaW1hZ2VC
dXR0b24ud2lkdGggaXMgMTAwCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXdpZHRoLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNDUw
ZmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1s
PgorPGhlYWQ+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4K
KyAgPGZvcm0gYWN0aW9uPSIvIj4KKyAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2VC
dXR0b24iIHNyYz0icmVzb3VyY2VzL2FwcGxlLmdpZiI+CisgIDwvZm9ybT4KKworICA8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKyAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oJ0hUTUxJbnB1dEVsZW1lbnQud2lkdGggYXR0cmlidXRlLjxicj4n
KTsKKworICAgIHZhciBpbWFnZUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFn
ZUJ1dHRvbiIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdTZXQgd2lkdGggYXMgMTAs
IGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLicpOworICAgIHZhciB2YWx1ZSA9
IDEwOworICAgIGltYWdlQnV0dG9uLndpZHRoID0gdmFsdWU7CisgICAgc2hvdWxkQmUoJ2ltYWdl
QnV0dG9uLndpZHRoJywgIjEwIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWcoJ1NldCB3
aWR0aCBhcyAxMDAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLicpOworICAg
IHZhbHVlID0gMTAwOworICAgIGltYWdlQnV0dG9uLndpZHRoID0gdmFsdWU7CisgICAgc2hvdWxk
QmUoJ2ltYWdlQnV0dG9uLndpZHRoJywgIjEwMCIpOworCisgICAgZGVidWcoJycpOworICAgIHZh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI1MzQwYi4uYzA3OGQzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDExLTEwLTE0ICBEb25nd29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5j
b20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBj
YW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlwdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHR5cGUgb2YgaW5wdXQgZWxlbWVudCBpcyBp
bWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBzdXBwb3J0ZWQu
CisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgaW4gSFRNTDUgc3BlYy4KKyAg
ICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvdGhlLW1hcC1lbGVtZW50Lmh0bWwjYXR0
ci1kaW0td2lkdGgKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6IEFkZCBz
ZXR0ZXIvZ2V0dGVyIGZ1bmN0aW9ucyB0byBxdWVyeS9zZXQgd2lkdGgvaGVpZ2h0IG9mIGlucHV0
IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQpOiBT
ZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6d2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1
dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgp
OiBHZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRF
bGVtZW50Lmg6IEFkZCBwdWJsaWMgcHJvdG90eXBlLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5pZGw6IEFkZCB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcy4KKwogMjAxMS0xMC0xMyAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
I2luY2x1ZGUgb2YgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPiBpbiBhIHdpZGVseS11c2VkIGhl
YWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGE1OWYw
YWUuLjBkYWY0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApA
QCAtNyw2ICs3LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1A
d2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYwpAQCAtMTAxMSw2ICsxMDEyLDM2IEBAIGJvb2wgSFRNTElucHV0RWxl
bWVudDo6c2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29u
c3QKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihk
ZWZhdWx0U2l6ZSwgcHJlZmVycmVkU2l6ZSk7CiB9CiAKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50
OjpoZWlnaHQoKQoreworICAgIFN0cmluZyBoZWlnaHQ7CisgICAgaWYgKG1faW5wdXRUeXBlLT5z
aG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisgICAgICAgIGhlaWdodCA9
IGZhc3RHZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0cik7IAorCisgICAgcmV0dXJuIGhlaWdodDsKK30K
KworU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRoKCkKK3sKKyAgICBTdHJpbmcgd2lkdGg7
CisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1
dGVzKCkpCisgICAgICAgIHdpZHRoID0gZmFzdEdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpOyAKKwor
ICAgIHJldHVybiB3aWR0aDsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQo
Y29uc3QgU3RyaW5nJiBoZWlnaHQpCit7CisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91bGRSZXNw
ZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisgICAgICAgIHNldEF0dHJpYnV0ZShoZWln
aHRBdHRyLCBoZWlnaHQpOworfQorCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFdpZHRoKGNv
bnN0IFN0cmluZyYgd2lkdGgpCit7CisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0
SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisgICAgICAgIHNldEF0dHJpYnV0ZSh3aWR0aEF0
dHIsIHdpZHRoKTsKK30KKwogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpjb3B5Tm9uQXR0cmlidXRl
UHJvcGVydGllcyhjb25zdCBFbGVtZW50KiBzb3VyY2UpCiB7CiAgICAgY29uc3QgSFRNTElucHV0
RWxlbWVudCogc291cmNlRWxlbWVudCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxJbnB1dEVsZW1l
bnQqPihzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBi
YTIxZTNjLi4xNWRlYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApA
QCAtMyw2ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29p
dmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxs
ZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMTMzLDYgKzEzNCwxMSBAQCBwdWJsaWM6CiAgICAgaW50IHNpemUoKSBjb25zdDsK
ICAgICBib29sIHNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNpemUp
IGNvbnN0OwogCisgICAgU3RyaW5nIGhlaWdodCgpOworICAgIFN0cmluZyB3aWR0aCgpOworICAg
IHZvaWQgc2V0SGVpZ2h0KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgc2V0V2lkdGgoY29uc3Qg
U3RyaW5nJik7CisKICAgICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBTdHJp
bmcgdmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
CmluZGV4IGQzYTFlZDcuLjU3YTIzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmlkbApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2
IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAy
MDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKQEAgLTM4LDYgKzM5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVj
dF0gYm9vbGVhbiBhdXRvZm9jdXM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3Ry
aW5nIGF1dG9jb21wbGV0ZTsKKyAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBoZWlnaHQ7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFUQUxJU1RdIEhUTUxFbGVt
ZW50IGxpc3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1heDsKICAg
ICAgICAgYXR0cmlidXRlIGxvbmcgbWF4TGVuZ3RoIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKQEAgLTYwLDYgKzYyLDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW0Nv
bnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBl
ZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIHVzZU1hcDsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmlu
Z10gRE9NU3RyaW5nIHZhbHVlOworICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIHdpZHRoOwog
I2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdFX0NQUAogICAgICAgICBhdHRy
aWJ1dGUgRGF0ZSB2YWx1ZUFzRGF0ZSBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAjZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111405</attachid>
            <date>2011-10-18 01:00:27 -0700</date>
            <delta_ts>2011-10-21 22:21:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthAndHeightAttributesOfInputElement_04.patch</filename>
            <type>text/plain</type>
            <size>10051</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZTY0ZmNjLi44Zjc2OTNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAt
MTQgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmlidXRlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1hdHRyaWJ1dGUuaHRtbDog
QWRkZWQuCisKIDIwMTEtMTAtMTMgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEltcGxlbWVudCBhbiBPdmVyZmxvd0V2ZW50IGNvbnN0cnVjdG9yIGZvciBW
OApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1oZWlnaHQtYXR0cmli
dXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtaGVpZ2h0LWF0
dHJpYnV0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZDhmMGEwNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
aGVpZ2h0LWF0dHJpYnV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorCitIVE1MSW5w
dXRFbGVtZW50LmhlaWdodCBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCisKK1NldCBoZWlnaHQgYXMgMTAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0
dGVkLgorUEFTUyBpbWFnZUJ1dHRvbi5oZWlnaHQgaXMgJzEwJworCitTZXQgaGVpZ2h0IGFzIDEw
MCwgYW5kIGNoZWNrIGl0IGlzIHN1Y2Nlc3NmdWxseSBzZXR0ZWQuCitQQVNTIGltYWdlQnV0dG9u
LmhlaWdodCBpcyAnMTAwJworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1o
ZWlnaHQtYXR0cmlidXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LWhlaWdo
dC1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kODEx
NzNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1oZWln
aHQtYXR0cmlidXRlLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRt
bD4KKzxoZWFkPgorICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+
CisgIDxmb3JtIGFjdGlvbj0iLyI+CisgICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdl
QnV0dG9uIiBzcmM9InJlc291cmNlcy9sb2dvLmdpZiI+CisgIDwvZm9ybT4KKworICA8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKyAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisgIDxzY3JpcHQ+
CisgICAgZGVzY3JpcHRpb24oJ0hUTUxJbnB1dEVsZW1lbnQuaGVpZ2h0IGF0dHJpYnV0ZS48YnI+
Jyk7CisKKyAgICB2YXIgaW1hZ2VCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1h
Z2VCdXR0b24iKTsKKworICAgIGRlYnVnKCcnKTsKKyAgICBkZWJ1ZygnU2V0IGhlaWdodCBhcyAx
MCwgYW5kIGNoZWNrIGl0IGlzIHN1Y2Nlc3NmdWxseSBzZXR0ZWQuJyk7CisgICAgdmFyIHZhbHVl
ID0gMTA7CisgICAgaW1hZ2VCdXR0b24uaGVpZ2h0ID0gdmFsdWU7CisgICAgc2hvdWxkQmUoJ2lt
YWdlQnV0dG9uLmhlaWdodCcsICInMTAnIik7CisKKyAgICBkZWJ1ZygnJyk7CisgICAgZGVidWco
J1NldCBoZWlnaHQgYXMgMTAwLCBhbmQgY2hlY2sgaXQgaXMgc3VjY2Vzc2Z1bGx5IHNldHRlZC4n
KTsKKyAgICB2YWx1ZSA9IDEwMDsKKyAgICBpbWFnZUJ1dHRvbi5oZWlnaHQgPSB2YWx1ZTsKKyAg
ICBzaG91bGRCZSgnaW1hZ2VCdXR0b24uaGVpZ2h0JywgIicxMDAnIik7CisKKyAgICBkZWJ1Zygn
Jyk7CisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CisgIDwvc2NyaXB0PgorICA8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtd2lkdGgtYXR0cmlidXRlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi45NTg4MDhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1hdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTcgQEAKKworSFRNTElucHV0RWxlbWVudC53aWR0aCBhdHRyaWJ1dGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCisKK1NldCB3aWR0aCBhcyAxMCwgYW5kIGNoZWNrIGl0IGlz
IHN1Y2Nlc3NmdWxseSBzZXR0ZWQuCitQQVNTIGltYWdlQnV0dG9uLndpZHRoIGlzICcxMCcKKwor
U2V0IHdpZHRoIGFzIDEwMCwgYW5kIGNoZWNrIGl0IGlzIHN1Y2Nlc3NmdWxseSBzZXR0ZWQuCitQ
QVNTIGltYWdlQnV0dG9uLndpZHRoIGlzICcxMDAnCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LXdpZHRoLWF0dHJpYnV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1hdHRyaWJ1dGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jMDExM2Q1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1hdHRyaWJ1dGUuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUg
SFRNTD4KKzxodG1sPgorPGhlYWQ+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorICA8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorCis8Ym9keT4KKyAgPGZvcm0gYWN0aW9uPSIvIj4KKyAgICAgPGlucHV0IHR5cGU9ImltYWdl
IiBpZD0iaW1hZ2VCdXR0b24iIHNyYz0icmVzb3VyY2VzL2FwcGxlLmdpZiI+CisgIDwvZm9ybT4K
KworICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisgIDxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oJ0hUTUxJbnB1dEVsZW1lbnQud2lkdGggYXR0
cmlidXRlLjxicj4nKTsKKworICAgIHZhciBpbWFnZUJ1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpbWFnZUJ1dHRvbiIpOworCisgICAgZGVidWcoJycpOworICAgIGRlYnVnKCdTZXQg
d2lkdGggYXMgMTAsIGFuZCBjaGVjayBpdCBpcyBzdWNjZXNzZnVsbHkgc2V0dGVkLicpOworICAg
IHZhciB2YWx1ZSA9IDEwOworICAgIGltYWdlQnV0dG9uLndpZHRoID0gdmFsdWU7CisgICAgc2hv
dWxkQmUoJ2ltYWdlQnV0dG9uLndpZHRoJywgIicxMCciKTsKKworICAgIGRlYnVnKCcnKTsKKyAg
ICBkZWJ1ZygnU2V0IHdpZHRoIGFzIDEwMCwgYW5kIGNoZWNrIGl0IGlzIHN1Y2Nlc3NmdWxseSBz
ZXR0ZWQuJyk7CisgICAgdmFsdWUgPSAxMDA7CisgICAgaW1hZ2VCdXR0b24ud2lkdGggPSB2YWx1
ZTsKKyAgICBzaG91bGRCZSgnaW1hZ2VCdXR0b24ud2lkdGgnLCAiJzEwMCciKTsKKworICAgIGRl
YnVnKCcnKTsKKyAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKyAgPC9zY3JpcHQ+
CisgIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRiNTM0MGIuLmMwNzhk
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0xMC0xNCAgRG9uZ3dvbyBJbSAg
PGR3LmltQHNhbXN1bmcuY29tPgorCisgICAgICAgIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzIG9m
IGlucHV0IGVsZW1lbnQgY2Fubm90IGJlIGFjY2Vzc2VkIGJ5IEphdmFTY3JpcHQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDMwNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElmIHRoZSB0eXBlIG9mIGlu
cHV0IGVsZW1lbnQgaXMgaW1hZ2UgYnV0dG9uLCB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcyBzaG91
bGQgYmUgc3VwcG9ydGVkLgorICAgICAgICBUaGVzZSBhdHRyaWJ1dGVzIGFyZSBkZWZpbmVkIGlu
IEhUTUw1IHNwZWMuCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L3RoZS1tYXAt
ZWxlbWVudC5odG1sI2F0dHItZGltLXdpZHRoCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwOiBBZGQgc2V0dGVyL2dldHRlciBmdW5jdGlvbnMgdG8gcXVlcnkvc2V0IHdpZHRo
L2hlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6aGVpZ2h0KTogU2V0cyBoZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OndpZHRoKTogU2V0cyB3aWR0aCBvZiBpbnB1dCBlbGVt
ZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0SGVpZ2h0KTogR2V0
cyBoZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFdpZHRoKTogR2V0cyB3aWR0aCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAq
IGh0bWwvSFRNTElucHV0RWxlbWVudC5oOiBBZGQgcHVibGljIHByb3RvdHlwZS4KKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiBBZGQgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMu
CisKIDIwMTEtMTAtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlICNpbmNsdWRlIG9mIDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4gaW4g
YSB3aWRlbHktdXNlZCBoZWFkZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcAppbmRleCBhNTlmMGFlLi4wZGFmNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKQEAgLTcsNiArNyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2Ft
dWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBN
b2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5j
b20vKQorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEwMTEsNiArMTAxMiwzNiBAQCBi
b29sIEhUTUxJbnB1dEVsZW1lbnQ6OnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHBy
ZWZlcnJlZFNpemUpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zaXplU2hvdWxkSW5j
bHVkZURlY29yYXRpb24oZGVmYXVsdFNpemUsIHByZWZlcnJlZFNpemUpOwogfQogCitTdHJpbmcg
SFRNTElucHV0RWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBTdHJpbmcgaGVpZ2h0OworICAgIGlm
IChtX2lucHV0VHlwZS0+c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpKQor
ICAgICAgICBoZWlnaHQgPSBmYXN0R2V0QXR0cmlidXRlKGhlaWdodEF0dHIpOyAKKworICAgIHJl
dHVybiBoZWlnaHQ7Cit9CisKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCgpCit7Cisg
ICAgU3RyaW5nIHdpZHRoOworICAgIGlmIChtX2lucHV0VHlwZS0+c2hvdWxkUmVzcGVjdEhlaWdo
dEFuZFdpZHRoQXR0cmlidXRlcygpKQorICAgICAgICB3aWR0aCA9IGZhc3RHZXRBdHRyaWJ1dGUo
d2lkdGhBdHRyKTsgCisKKyAgICByZXR1cm4gd2lkdGg7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0SGVpZ2h0KGNvbnN0IFN0cmluZyYgaGVpZ2h0KQoreworICAgIGlmIChtX2lucHV0
VHlwZS0+c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpKQorICAgICAgICBz
ZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgaGVpZ2h0KTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjpzZXRXaWR0aChjb25zdCBTdHJpbmcmIHdpZHRoKQoreworICAgIGlmIChtX2lucHV0VHlw
ZS0+c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpKQorICAgICAgICBzZXRB
dHRyaWJ1dGUod2lkdGhBdHRyLCB3aWR0aCk7Cit9CisKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6
Y29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXMoY29uc3QgRWxlbWVudCogc291cmNlKQogewogICAg
IGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqIHNvdXJjZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxjb25z
dCBIVE1MSW5wdXRFbGVtZW50Kj4oc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKaW5kZXggYmEyMWUzYy4uMTVkZWE1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmgKQEAgLTMsNiArMyw3IEBACiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50
dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGly
ayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEzMyw2ICsxMzQsMTEgQEAgcHVibGljOgogICAgIGlu
dCBzaXplKCkgY29uc3Q7CiAgICAgYm9vbCBzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50
JiBwcmVmZXJyZWRTaXplKSBjb25zdDsKIAorICAgIFN0cmluZyBoZWlnaHQoKTsKKyAgICBTdHJp
bmcgd2lkdGgoKTsKKyAgICB2b2lkIHNldEhlaWdodChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lk
IHNldFdpZHRoKGNvbnN0IFN0cmluZyYpOworCiAgICAgdm9pZCBzZXRUeXBlKGNvbnN0IFN0cmlu
ZyYpOwogCiAgICAgU3RyaW5nIHZhbHVlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmlkbAppbmRleCBkM2ExZWQ3Li41N2EyMzkyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4KKyAq
IENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zOCw2ICszOSw3IEBAIG1vZHVsZSBodG1sIHsK
ICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGRpc2FibGVkOwogICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gYXV0b2ZvY3VzOwogICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBhdXRvY29tcGxldGU7CisgICAgICAgIGF0dHJpYnV0ZSBET01T
dHJpbmcgaGVpZ2h0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURB
VEFMSVNUXSBIVE1MRWxlbWVudCBsaXN0OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERP
TVN0cmluZyBtYXg7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIG1heExlbmd0aCBzZXR0ZXIgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CkBAIC02MCw2ICs2Miw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAg
ICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7IC8v
IHJlYWRvbmx5IGRyb3BwZWQgYXMgcGFydCBvZiBET00gbGV2ZWwgMgogICAgICAgICBhdHRyaWJ1
dGUgW1JlZmxlY3RdIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVy
dE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyAgICAgICAgYXR0cmlidXRlIERP
TVN0cmluZyB3aWR0aDsKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9D
UFAKICAgICAgICAgYXR0cmlidXRlIERhdGUgdmFsdWVBc0RhdGUgc2V0dGVyIHJhaXNlcyhET01F
eGNlcHRpb24pOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="109229"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="109230"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>112072</attachid>
            <date>2011-10-21 22:03:20 -0700</date>
            <delta_ts>2011-11-30 03:20:13 -0800</delta_ts>
            <desc>Test page</desc>
            <filename>width-height-test.html</filename>
            <type>text/html</type>
            <size>3768</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUw+DQo8aHRtbD4NCjxoZWFkPg0KICAgIDxzdHlsZT4NCiAgICAgICAgZGl2
IHsNCiAgICAgICAgICAgIGJvcmRlci1zdHlsZTpzb2xpZDsNCiAgICAgICAgICAgIGJvcmRlci13
aWR0aDoxcHg7DQogICAgICAgICAgICB3aWR0aDogNjAwcHg7DQogICAgICAgIH0NCiAgICA8L3N0
eWxlPg0KPC9oZWFkPg0KPGJvZHk+DQogICAgPGRpdiBpZD0iZGl2MSI+DQogICAgICAgIDxpbnB1
dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlMSIgc3JjPSJodHRwOi8vd3d3LnNhbXN1bmcuY29tL3Nl
Yy9pbWFnZXMvYWJvdXRzYW1zdW5nL2luZm9ybWF0aW9uL2ltZ19jaTAuZ2lmIiB3aWR0aD0iMTYw
IiBoZWlnaHQ9IjgwcHgiPg0KICAgIDwvZGl2Pg0KICAgIDxicj4NCg0KICAgIDxkaXYgaWQ9ImRp
djIiPg0KICAgICAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTIiIHNyYz0iaHR0cDov
L3d3dy5zYW1zdW5nLmNvbS9zZWMvaW1hZ2VzL2Fib3V0c2Ftc3VuZy9pbmZvcm1hdGlvbi9pbWdf
Y2kwLmdpZiI+DQogICAgPC9kaXY+DQogICAgPGJyPg0KDQogICAgPGRpdiBpZD0iZGl2MyI+DQog
ICAgICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlMyIgc3JjPSJodHRwOi8vd3d3LnNh
bXN1bmcuY29tL3NlYy9pbWFnZXMvYWJvdXRzYW1zdW5nL2luZm9ybWF0aW9uL2ltZ19jaTAuZ2lm
Ij4NCiAgICA8L2Rpdj4NCiAgICA8YnI+DQoNCiAgICA8ZGl2IGlkPSJkaXY0Ij4NCiAgICAgICAg
PGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2U0IiBzcmM9Imh0dHA6Ly93d3cuc2Ftc3VuZy5j
b20vc2VjL2ltYWdlcy9hYm91dHNhbXN1bmcvaW5mb3JtYXRpb24vaW1nX2NpMC5naWYiPg0KICAg
IDwvZGl2Pg0KICAgIDxicj4NCg0KICAgIDxkaXYgaWQ9ImRpdjUiPg0KICAgICAgICA8aW5wdXQg
dHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTUiIHNyYz0iaHR0cDovL3d3dy5zYW1zdW5nLmNvbS9zZWMv
aW1hZ2VzL2Fib3V0c2Ftc3VuZy9pbmZvcm1hdGlvbi9pbWdfY2kwLmdpZiI+DQogICAgPC9kaXY+
DQogICAgPGJyPg0KDQogICAgPGRpdiBpZD0iZGl2NiI+DQogICAgICAgIDxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0idGV4dDEiPg0KICAgIDwvZGl2Pg0KICAgIDxicj4NCg0KICAgIDxkaXYgaWQ9ImRp
djciPg0KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InRleHQyIj4NCiAgICA8L2Rpdj4N
CiAgICANCiAgICA8c2NyaXB0Pg0KICAgICAgICB2YXIgZGl2MSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkaXYxIik7DQogICAgICAgIHZhciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiaW1hZ2UxIik7DQogICAgICAgIGRpdjEuaW5uZXJIVE1MID0gIjxiPmNhc2UgIzEuPC9i
PiBJbWFnZSB0eXBlLiAtLS0gSW5saW5lIHNldCBhcyBcIjE2MFwiLCBcIjgwcHhcIiwiDQogICAg
ICAgICAgICAgICAgICAgICAgICAgICsgIiByZXN1bHQgaXMgIiArIGltYWdlMS53aWR0aCArICIs
ICIgKyBpbWFnZTEuaGVpZ2h0ICsgIjxicj4iICsgZGl2MS5pbm5lckhUTUw7DQoNCiAgICAgICAg
dmFyIGRpdjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MiIpOw0KICAgICAgICB2YXIg
aW1hZ2UyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlMiIpOw0KICAgICAgICBpbWFn
ZTIud2lkdGggPSAiMjYwIjsNCiAgICAgICAgaW1hZ2UyLmhlaWdodCA9ICIxMzAiOw0KICAgICAg
ICBkaXYyLmlubmVySFRNTCA9ICI8Yj5jYXNlICMyLjwvYj4gSW1hZ2UgdHlwZS4gLS0tIFNldCBh
cyBcIjI2MFwiLCBcIjEzMFwiLCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3Vs
dCBpcyAiICsgaW1hZ2UyLndpZHRoICsgIiwgIiArIGltYWdlMi5oZWlnaHQgKyAiPGJyPiIgKyBk
aXYyLmlubmVySFRNTDsNCg0KICAgICAgICB2YXIgZGl2MyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkaXYzIik7DQogICAgICAgIHZhciBpbWFnZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaW1hZ2UzIik7DQogICAgICAgIGltYWdlMy53aWR0aCA9ICIxMjBweCI7DQogICAgICAgIGlt
YWdlMy5oZWlnaHQgPSAiNjBweCI7DQogICAgICAgIGRpdjMuaW5uZXJIVE1MID0gIjxiPmNhc2Ug
IzMuPC9iPiBJbWFnZSB0eXBlLiAtLS0gU2V0IGFzIFwiMTIwcHhcIiwgXCI2MHB4XCIsIg0KICAg
ICAgICAgICAgICAgICAgICAgICAgICArICIgcmVzdWx0IGlzICIgKyBpbWFnZTMud2lkdGggKyAi
LCAiICsgaW1hZ2UzLmhlaWdodCArICI8YnI+IiArIGRpdjMuaW5uZXJIVE1MOw0KDQogICAgICAg
IHZhciBkaXY0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjQiKTsNCiAgICAgICAgdmFy
IGltYWdlNCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZTQiKTsNCiAgICAgICAgaW1h
Z2U0LndpZHRoID0gIjEyMC45OSI7DQogICAgICAgIGltYWdlNC5oZWlnaHQgPSAiNjAuOTkiOw0K
ICAgICAgICBkaXY0LmlubmVySFRNTCA9ICI8Yj5jYXNlICM0LjwvYj4gSW1hZ2UgdHlwZS4gLS0t
IFNldCBhcyBcIjEyMC45OVwiLCBcIjYwLjk5XCIsIg0KICAgICAgICAgICAgICAgICAgICAgICAg
ICArICIgcmVzdWx0IGlzICIgKyBpbWFnZTQud2lkdGggKyAiLCAiICsgaW1hZ2U0LmhlaWdodCAr
ICI8YnI+IiArIGRpdjQuaW5uZXJIVE1MOw0KDQogICAgICAgIHZhciBkaXY1ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjUiKTsNCiAgICAgICAgdmFyIGltYWdlNSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpbWFnZTUiKTsNCiAgICAgICAgaW1hZ2U1LndpZHRoID0gIi0xMDAiOw0K
ICAgICAgICBpbWFnZTUuaGVpZ2h0ID0gIi01MCI7DQogICAgICAgIGRpdjUuaW5uZXJIVE1MID0g
IjxiPmNhc2UgIzUuPC9iPiBJbWFnZSB0eXBlLiAtLS0gU2V0IGFzIFwiLTEwMFwiLCBcIi01MFwi
LCINCiAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3VsdCBpcyAiICsgaW1hZ2U1Lndp
ZHRoICsgIiwgIiArIGltYWdlNS5oZWlnaHQgKyAiPGJyPiIgKyBkaXY1LmlubmVySFRNTDsNCg0K
ICAgICAgICB2YXIgZGl2NiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY2Iik7DQogICAg
ICAgIHZhciB0ZXh0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXh0MSIpOw0KICAgICAg
ICB0ZXh0MS53aWR0aCA9ICI1MCI7DQogICAgICAgIHRleHQxLmhlaWdodCA9ICI1MCI7DQogICAg
ICAgIGRpdjYuaW5uZXJIVE1MID0gIjxiPmNhc2UgIzYuPC9iPiBUZXh0IHR5cGUuIC0tLSBTZXQg
YXMgXCI1MFwiLCBcIjUwXCIsIg0KICAgICAgICAgICAgICAgICAgICAgICAgICArICIgcmVzdWx0
IGlzICIgKyB0ZXh0MS53aWR0aCArICIsICIgKyB0ZXh0MS5oZWlnaHQgKyAiPGJyPiIgKyBkaXY2
LmlubmVySFRNTDsNCg0KICAgICAgICB2YXIgZGl2NyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkaXY3Iik7DQogICAgICAgIHZhciB0ZXh0MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0
ZXh0MiIpOw0KICAgICAgICB0ZXh0Mi53aWR0aCA9ICIxMDAiOw0KICAgICAgICB0ZXh0Mi5oZWln
aHQgPSAiMTAwIjsNCiAgICAgICAgZGl2Ny5pbm5lckhUTUwgPSAiPGI+Y2FzZSAjNy48L2I+IFRl
eHQgdHlwZS4gLS0tIFNldCBhcyBcIjEwMFwiLCBcIjEwMFwiLCINCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgKyAiIHJlc3VsdCBpcyAiICsgdGV4dDIud2lkdGggKyAiLCAiICsgdGV4dDIuaGVp
Z2h0ICsgIjxicj4iICsgZGl2Ny5pbm5lckhUTUw7DQogICAgPC9zY3JpcHQ+DQo8L2JvZHk+DQo8
L2h0bWw+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112075</attachid>
            <date>2011-10-21 22:21:17 -0700</date>
            <delta_ts>2011-11-03 02:33:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthAndHeightAttributesOfInputElement_05.patch</filename>
            <type>text/plain</type>
            <size>11076</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZTY0ZmNjLi43YjFjMjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAt
MTQgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC5wbmc6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhl
aWdodC1hdHRyaWJ1dGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvcmVzb3Vy
Y2VzL3NhbXN1bmcuZ2lmOiBBZGRlZC4KKwogMjAxMS0xMC0xMyAgS2VudGFybyBIYXJhICA8aGFy
YWtlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW1wbGVtZW50IGFuIE92ZXJmbG93RXZlbnQg
Y29uc3RydWN0b3IgZm9yIFY4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQucG5nCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwOTU3NGQKQmluYXJ5IGZpbGVzIC9kZXYv
bnVsbCBhbmQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRy
aWJ1dGVzLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODJhYmZiNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjQgQEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0
cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworY2FzZSAjMS4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyAiMTYwIiwgIjgwcHgiLCByZXN1
bHQgaXMgMTYwLCA4MHB4CisKKworY2FzZSAjMi4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyAiMjYw
IiwgIjEzMCIsIHJlc3VsdCBpcyAyNjAsIDEzMAorCisKK2Nhc2UgIzMuIEltYWdlIHR5cGUuIC0t
LSBTZXQgYXMgIjEyMHB4IiwgIjYwcHgiLCByZXN1bHQgaXMgMTIwcHgsIDYwcHgKKworCitjYXNl
ICM0LiBJbWFnZSB0eXBlLiAtLS0gU2V0IGFzICIxMjAuOTkiLCAiNjAuOTkiLCByZXN1bHQgaXMg
MTIwLjk5LCA2MC45OQorCisKK2Nhc2UgIzUuIEltYWdlIHR5cGUuIC0tLSBTZXQgYXMgIi0xMDAi
LCAiLTUwIiwgcmVzdWx0IGlzIC0xMDAsIC01MAorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmFhOGI5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbApAQCAt
MCwwICsxLDg0IEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCis8aGVhZD4NCisgICAgPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+DQorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorICAgIDxzdHlsZT4NCisgICAgICAgIGRpdiB7DQor
ICAgICAgICAgICAgYm9yZGVyLXN0eWxlOnNvbGlkOw0KKyAgICAgICAgICAgIGJvcmRlci13aWR0
aDoxcHg7DQorICAgICAgICAgICAgd2lkdGg6IDYwMHB4Ow0KKyAgICAgICAgfQ0KKyAgICA8L3N0
eWxlPg0KKzwvaGVhZD4NCis8Ym9keT4NCisgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+DQor
DQorICAgIDxkaXYgaWQ9ImRpdjEiPg0KKyAgICAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0i
aW1hZ2UxIiBzcmM9InJlc291cmNlcy9zYW1zdW5nLmdpZiIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4
MHB4Ij4NCisgICAgPC9kaXY+DQorICAgIDxicj4NCisNCisgICAgPGRpdiBpZD0iZGl2MiI+DQor
ICAgICAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTIiIHNyYz0icmVzb3VyY2VzL3Nh
bXN1bmcuZ2lmIj4NCisgICAgPC9kaXY+DQorICAgIDxicj4NCisNCisgICAgPGRpdiBpZD0iZGl2
MyI+DQorICAgICAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTMiIHNyYz0icmVzb3Vy
Y2VzL3NhbXN1bmcuZ2lmIj4NCisgICAgPC9kaXY+DQorICAgIDxicj4NCisNCisgICAgPGRpdiBp
ZD0iZGl2NCI+DQorICAgICAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTQiIHNyYz0i
cmVzb3VyY2VzL3NhbXN1bmcuZ2lmIj4NCisgICAgPC9kaXY+DQorICAgIDxicj4NCisNCisgICAg
PGRpdiBpZD0iZGl2NSI+DQorICAgICAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTUi
IHNyYz0icmVzb3VyY2VzL3NhbXN1bmcuZ2lmIj4NCisgICAgPC9kaXY+DQorICAgIDxicj4NCisN
CisgICAgPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+DQorDQorICAgIDxzY3JpcHQ+DQorICAgICAg
ICBkZXNjcmlwdGlvbignd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIEhUTUxJbnB1dEVs
ZW1lbnQuPGJyPicpOw0KKw0KKyAgICAgICAgdmFyIGRpdjEgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZGl2MSIpOw0KKyAgICAgICAgdmFyIGltYWdlMSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpbWFnZTEiKTsNCisgICAgICAgIGRpdjEuaW5uZXJIVE1MID0gIjxiPmNhc2UgIzEuPC9i
PiBJbWFnZSB0eXBlLiAtLS0gU2V0IGFzIFwiMTYwXCIsIFwiODBweFwiLCINCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICsgIiByZXN1bHQgaXMgIiArIGltYWdlMS53aWR0aCArICIsICIgKyBp
bWFnZTEuaGVpZ2h0ICsgIjxicj4iICsgZGl2MS5pbm5lckhUTUw7DQorDQorICAgICAgICB2YXIg
ZGl2MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYyIik7DQorICAgICAgICB2YXIgaW1h
Z2UyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlMiIpOw0KKyAgICAgICAgaW1hZ2Uy
LndpZHRoID0gIjI2MCI7DQorICAgICAgICBpbWFnZTIuaGVpZ2h0ID0gIjEzMCI7DQorICAgICAg
ICBkaXYyLmlubmVySFRNTCA9ICI8Yj5jYXNlICMyLjwvYj4gSW1hZ2UgdHlwZS4gLS0tIFNldCBh
cyBcIjI2MFwiLCBcIjEzMFwiLCINCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiByZXN1
bHQgaXMgIiArIGltYWdlMi53aWR0aCArICIsICIgKyBpbWFnZTIuaGVpZ2h0ICsgIjxicj4iICsg
ZGl2Mi5pbm5lckhUTUw7DQorDQorICAgICAgICB2YXIgZGl2MyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkaXYzIik7DQorICAgICAgICB2YXIgaW1hZ2UzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImltYWdlMyIpOw0KKyAgICAgICAgaW1hZ2UzLndpZHRoID0gIjEyMHB4IjsNCisgICAg
ICAgIGltYWdlMy5oZWlnaHQgPSAiNjBweCI7DQorICAgICAgICBkaXYzLmlubmVySFRNTCA9ICI8
Yj5jYXNlICMzLjwvYj4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyBcIjEyMHB4XCIsIFwiNjBweFwi
LCINCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiByZXN1bHQgaXMgIiArIGltYWdlMy53
aWR0aCArICIsICIgKyBpbWFnZTMuaGVpZ2h0ICsgIjxicj4iICsgZGl2My5pbm5lckhUTUw7DQor
DQorICAgICAgICB2YXIgZGl2NCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY0Iik7DQor
ICAgICAgICB2YXIgaW1hZ2U0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlNCIpOw0K
KyAgICAgICAgaW1hZ2U0LndpZHRoID0gIjEyMC45OSI7DQorICAgICAgICBpbWFnZTQuaGVpZ2h0
ID0gIjYwLjk5IjsNCisgICAgICAgIGRpdjQuaW5uZXJIVE1MID0gIjxiPmNhc2UgIzQuPC9iPiBJ
bWFnZSB0eXBlLiAtLS0gU2V0IGFzIFwiMTIwLjk5XCIsIFwiNjAuOTlcIiwiDQorICAgICAgICAg
ICAgICAgICAgICAgICAgICArICIgcmVzdWx0IGlzICIgKyBpbWFnZTQud2lkdGggKyAiLCAiICsg
aW1hZ2U0LmhlaWdodCArICI8YnI+IiArIGRpdjQuaW5uZXJIVE1MOw0KKw0KKyAgICAgICAgdmFy
IGRpdjUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2NSIpOw0KKyAgICAgICAgdmFyIGlt
YWdlNSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZTUiKTsNCisgICAgICAgIGltYWdl
NS53aWR0aCA9ICItMTAwIjsNCisgICAgICAgIGltYWdlNS5oZWlnaHQgPSAiLTUwIjsNCisgICAg
ICAgIGRpdjUuaW5uZXJIVE1MID0gIjxiPmNhc2UgIzUuPC9iPiBJbWFnZSB0eXBlLiAtLS0gU2V0
IGFzIFwiLTEwMFwiLCBcIi01MFwiLCINCisgICAgICAgICAgICAgICAgICAgICAgICAgICsgIiBy
ZXN1bHQgaXMgIiArIGltYWdlNS53aWR0aCArICIsICIgKyBpbWFnZTUuaGVpZ2h0ICsgIjxicj4i
ICsgZGl2NS5pbm5lckhUTUw7DQorDQorICAgICAgICB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsNCisgICAgPC9zY3JpcHQ+DQorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXNvdXJjZXMvc2Ftc3VuZy5naWYgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291
cmNlcy9zYW1zdW5nLmdpZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYmM3
MjYzCkJpbmFyeSBmaWxlcyAvZGV2L251bGwgYW5kIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9y
ZXNvdXJjZXMvc2Ftc3VuZy5naWYgZGlmZmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI1MzQwYi4uYzA3OGQz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDExLTEwLTE0ICBEb25nd29vIEltICA8
ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgb2Yg
aW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlwdC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHR5cGUgb2YgaW5w
dXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzIHNob3Vs
ZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgaW4g
SFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvdGhlLW1hcC1l
bGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxl
bWVudC5jcHA6IEFkZCBzZXR0ZXIvZ2V0dGVyIGZ1bmN0aW9ucyB0byBxdWVyeS9zZXQgd2lkdGgv
aGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpoZWlnaHQpOiBTZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6d2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQpOiBHZXRz
IGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6c2V0V2lkdGgpOiBHZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZCBwdWJsaWMgcHJvdG90eXBlLgorICAgICAgICAq
IGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6IEFkZCB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcy4K
KwogMjAxMS0xMC0xMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgI2luY2x1ZGUgb2YgPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPiBpbiBh
IHdpZGVseS11c2VkIGhlYWRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwCmluZGV4IGE1OWYwYWUuLjBkYWY0ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcApAQCAtNyw2ICs3LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11
ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1v
YmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNv
bS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTAxMSw2ICsxMDEyLDM2IEBAIGJv
b2wgSFRNTElucHV0RWxlbWVudDo6c2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCYgcHJl
ZmVycmVkU2l6ZSkgY29uc3QKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNpemVTaG91bGRJbmNs
dWRlRGVjb3JhdGlvbihkZWZhdWx0U2l6ZSwgcHJlZmVycmVkU2l6ZSk7CiB9CiAKK1N0cmluZyBI
VE1MSW5wdXRFbGVtZW50OjpoZWlnaHQoKQoreworICAgIFN0cmluZyBoZWlnaHQ7CisgICAgaWYg
KG1faW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisg
ICAgICAgIGhlaWdodCA9IGZhc3RHZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0cik7IAorCisgICAgcmV0
dXJuIGhlaWdodDsKK30KKworU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRoKCkKK3sKKyAg
ICBTdHJpbmcgd2lkdGg7CisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0
QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisgICAgICAgIHdpZHRoID0gZmFzdEdldEF0dHJpYnV0ZSh3
aWR0aEF0dHIpOyAKKworICAgIHJldHVybiB3aWR0aDsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVt
ZW50OjpzZXRIZWlnaHQoY29uc3QgU3RyaW5nJiBoZWlnaHQpCit7CisgICAgaWYgKG1faW5wdXRU
eXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisgICAgICAgIHNl
dEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBoZWlnaHQpOworfQorCit2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OnNldFdpZHRoKGNvbnN0IFN0cmluZyYgd2lkdGgpCit7CisgICAgaWYgKG1faW5wdXRUeXBl
LT5zaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisgICAgICAgIHNldEF0
dHJpYnV0ZSh3aWR0aEF0dHIsIHdpZHRoKTsKK30KKwogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpj
b3B5Tm9uQXR0cmlidXRlUHJvcGVydGllcyhjb25zdCBFbGVtZW50KiBzb3VyY2UpCiB7CiAgICAg
Y29uc3QgSFRNTElucHV0RWxlbWVudCogc291cmNlRWxlbWVudCA9IHN0YXRpY19jYXN0PGNvbnN0
IEhUTUxJbnB1dEVsZW1lbnQqPihzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaAppbmRleCBiYTIxZTNjLi4xNWRlYTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaApAQCAtMyw2ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0
aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJr
IE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwNiwgMjAwNywgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTMzLDYgKzEzNCwxMSBAQCBwdWJsaWM6CiAgICAgaW50
IHNpemUoKSBjb25zdDsKICAgICBib29sIHNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQm
IHByZWZlcnJlZFNpemUpIGNvbnN0OwogCisgICAgU3RyaW5nIGhlaWdodCgpOworICAgIFN0cmlu
ZyB3aWR0aCgpOworICAgIHZvaWQgc2V0SGVpZ2h0KGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQg
c2V0V2lkdGgoY29uc3QgU3RyaW5nJik7CisKICAgICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5n
Jik7CiAKICAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaWRsCmluZGV4IGQzYTFlZDcuLjU3YTIzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgorICog
Q29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM4LDYgKzM5LDcgQEAgbW9kdWxlIGh0bWwgewog
ICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7CiAgICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gRE9NU3RyaW5nIGF1dG9jb21wbGV0ZTsKKyAgICAgICAgYXR0cmlidXRlIERPTVN0
cmluZyBoZWlnaHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFU
QUxJU1RdIEhUTUxFbGVtZW50IGxpc3Q7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIG1heDsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgbWF4TGVuZ3RoIHNldHRlciByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTYwLDYgKzYyLDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAg
ICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBET01TdHJpbmcgdHlwZTsgLy8g
cmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCiAgICAgICAgIGF0dHJpYnV0
ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0
TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOworICAgICAgICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIHdpZHRoOwogI2lmICFkZWZpbmVkKExBTkdVQUdFX0NQUCkgfHwgIUxBTkdVQUdFX0NQ
UAogICAgICAgICBhdHRyaWJ1dGUgRGF0ZSB2YWx1ZUFzRGF0ZSBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAjZW5kaWYK
</data>
<flag name="review"
          id="110065"
          type_id="1"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113445</attachid>
            <date>2011-11-03 02:33:10 -0700</date>
            <delta_ts>2011-11-03 02:40:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-witdh_height_attributes_of_input_element_1103.patch</filename>
            <type>text/plain</type>
            <size>10820</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZmVlNTcxLi42ZTYzMTQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEt
MDIgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvc2Ftc3VuZy5naWY6
IEFkZGVkLgorCiAyMDExLTExLTAyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAocjk4NzU5LXI5ODc3Myk6IHBsYXRmb3JtL21hYy9mb250cy9j
b2xvci1iaXRtYXAuaHRtbCBmYWlsaW5nIG9uIExpb24gSW50ZWwgRGVidWcgKFRlc3RzKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhl
aWdodC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42YzcxNzZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
NCBAQAord2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIEhUTUxJbnB1dEVsZW1lbnQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitjYXNlICMxLiBJbWFnZSB0eXBlLiAtLS0g
SFRNTCBpbmxpbmUgc2V0dGluZyBhcyAiMTYwIiwgIjgwcHgiLCByZXN1bHQgaXMgMTYwLCA4MAor
CisKK2Nhc2UgIzIuIEltYWdlIHR5cGUuIC0tLSBTZXQgYXMgMjYwLCAxMzAsIHJlc3VsdCBpcyAy
NjAsIDEzMAorCisKK2Nhc2UgIzMuIEltYWdlIHR5cGUuIC0tLSBTZXQgYXMgIjEyMHB4IiwgIjYw
cHgiLCByZXN1bHQgaXMgMCwgMAorCisKK2Nhc2UgIzQuIEltYWdlIHR5cGUuIC0tLSBTZXQgYXMg
MTIwLjk5LCA2MC45OSwgcmVzdWx0IGlzIDEyMCwgNjAKKworCitjYXNlICM1LiBJbWFnZSB0eXBl
LiAtLS0gU2V0IGFzIC0xMDAsIC01MCwgcmVzdWx0IGlzIDAsIDAKKworCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVlMWY5ZmEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVz
Lmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIEhUTUw+DQorPGh0bWw+DQorPGhlYWQ+
DQorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPg0KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKyAgICA8c3R5bGU+DQorICAgICAg
ICBkaXYgew0KKyAgICAgICAgICAgIGJvcmRlci1zdHlsZTpzb2xpZDsNCisgICAgICAgICAgICBi
b3JkZXItd2lkdGg6MXB4Ow0KKyAgICAgICAgICAgIHdpZHRoOiA2MDBweDsNCisgICAgICAgIH0N
CisgICAgPC9zdHlsZT4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPg0KKw0KKyAgICA8ZGl2IGlkPSJkaXYxIj4NCisgICAgICAgIDxpbnB1dCB0eXBlPSJp
bWFnZSIgaWQ9ImltYWdlMSIgc3JjPSJyZXNvdXJjZXMvc2Ftc3VuZy5naWYiIHdpZHRoPSIxNjAi
IGhlaWdodD0iODBweCI+DQorICAgIDwvZGl2Pg0KKyAgICA8YnI+DQorDQorICAgIDxkaXYgaWQ9
ImRpdjIiPg0KKyAgICAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2UyIiBzcmM9InJl
c291cmNlcy9zYW1zdW5nLmdpZiI+DQorICAgIDwvZGl2Pg0KKyAgICA8YnI+DQorDQorICAgIDxk
aXYgaWQ9ImRpdjMiPg0KKyAgICAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2UzIiBz
cmM9InJlc291cmNlcy9zYW1zdW5nLmdpZiI+DQorICAgIDwvZGl2Pg0KKyAgICA8YnI+DQorDQor
ICAgIDxkaXYgaWQ9ImRpdjQiPg0KKyAgICAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1h
Z2U0IiBzcmM9InJlc291cmNlcy9zYW1zdW5nLmdpZiI+DQorICAgIDwvZGl2Pg0KKyAgICA8YnI+
DQorDQorICAgIDxkaXYgaWQ9ImRpdjUiPg0KKyAgICAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBp
ZD0iaW1hZ2U1IiBzcmM9InJlc291cmNlcy9zYW1zdW5nLmdpZiI+DQorICAgIDwvZGl2Pg0KKyAg
ICA8YnI+DQorDQorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pg0KKw0KKyAgICA8c2NyaXB0
Pg0KKyAgICAgICAgZGVzY3JpcHRpb24oJ3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBI
VE1MSW5wdXRFbGVtZW50Ljxicj4nKTsNCisNCisgICAgICAgIHZhciBkaXYxID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjEiKTsNCisgICAgICAgIHZhciBpbWFnZTEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiaW1hZ2UxIik7DQorICAgICAgICBkaXYxLmlubmVySFRNTCA9ICI8Yj5j
YXNlICMxLjwvYj4gSW1hZ2UgdHlwZS4gLS0tIEhUTUwgaW5saW5lIHNldHRpbmcgYXMgXCIxNjBc
IiwgXCI4MHB4XCIsIg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3VsdCBpcyAi
ICsgaW1hZ2UxLndpZHRoICsgIiwgIiArIGltYWdlMS5oZWlnaHQgKyAiPGJyPiIgKyBkaXYxLmlu
bmVySFRNTDsNCisNCisgICAgICAgIHZhciBkaXYyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRpdjIiKTsNCisgICAgICAgIHZhciBpbWFnZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aW1hZ2UyIik7DQorICAgICAgICBpbWFnZTIud2lkdGggPSAyNjA7DQorICAgICAgICBpbWFnZTIu
aGVpZ2h0ID0gMTMwOw0KKyAgICAgICAgZGl2Mi5pbm5lckhUTUwgPSAiPGI+Y2FzZSAjMi48L2I+
IEltYWdlIHR5cGUuIC0tLSBTZXQgYXMgMjYwLCAxMzAsIg0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKyAiIHJlc3VsdCBpcyAiICsgaW1hZ2UyLndpZHRoICsgIiwgIiArIGltYWdlMi5oZWln
aHQgKyAiPGJyPiIgKyBkaXYyLmlubmVySFRNTDsNCisNCisgICAgICAgIHZhciBkaXYzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjMiKTsNCisgICAgICAgIHZhciBpbWFnZTMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UzIik7DQorICAgICAgICBpbWFnZTMud2lkdGggPSAi
MTIwcHgiOw0KKyAgICAgICAgaW1hZ2UzLmhlaWdodCA9ICI2MHB4IjsNCisgICAgICAgIGRpdjMu
aW5uZXJIVE1MID0gIjxiPmNhc2UgIzMuPC9iPiBJbWFnZSB0eXBlLiAtLS0gU2V0IGFzIFwiMTIw
cHhcIiwgXCI2MHB4XCIsIg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3VsdCBp
cyAiICsgaW1hZ2UzLndpZHRoICsgIiwgIiArIGltYWdlMy5oZWlnaHQgKyAiPGJyPiIgKyBkaXYz
LmlubmVySFRNTDsNCisNCisgICAgICAgIHZhciBkaXY0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRpdjQiKTsNCisgICAgICAgIHZhciBpbWFnZTQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaW1hZ2U0Iik7DQorICAgICAgICBpbWFnZTQud2lkdGggPSAxMjAuOTk7DQorICAgICAgICBp
bWFnZTQuaGVpZ2h0ID0gNjAuOTk7DQorICAgICAgICBkaXY0LmlubmVySFRNTCA9ICI8Yj5jYXNl
ICM0LjwvYj4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyAxMjAuOTksIDYwLjk5LCINCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICsgIiByZXN1bHQgaXMgIiArIGltYWdlNC53aWR0aCArICIsICIg
KyBpbWFnZTQuaGVpZ2h0ICsgIjxicj4iICsgZGl2NC5pbm5lckhUTUw7DQorDQorICAgICAgICB2
YXIgZGl2NSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY1Iik7DQorICAgICAgICB2YXIg
aW1hZ2U1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlNSIpOw0KKyAgICAgICAgaW1h
Z2U1LndpZHRoID0gLTEwMDsNCisgICAgICAgIGltYWdlNS5oZWlnaHQgPSAtNTA7DQorICAgICAg
ICBkaXY1LmlubmVySFRNTCA9ICI8Yj5jYXNlICM1LjwvYj4gSW1hZ2UgdHlwZS4gLS0tIFNldCBh
cyAtMTAwLCAtNTAsIg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3VsdCBpcyAi
ICsgaW1hZ2U1LndpZHRoICsgIiwgIiArIGltYWdlNS5oZWlnaHQgKyAiPGJyPiIgKyBkaXY1Lmlu
bmVySFRNTDsNCisNCisgICAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOw0KKyAg
ICA8L3NjcmlwdD4NCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9zYW1zdW5nLmdpZiBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3NhbXN1bmcuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAuLmNiYzcyNjMKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBhbmQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9zYW1zdW5nLmdpZiBkaWZmZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAxODBmMzE2Li5jYWI1YmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEt
MTEtMDIgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9o
ZWlnaHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBK
YXZhU2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVp
Z2h0IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmli
dXRlcyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9y
Zy9UUi9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAg
ICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDogQWRkIHNldHRlci9nZXR0ZXIgZnVuY3Rpb25z
IHRvIHF1ZXJ5L3NldCB3aWR0aC9oZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmhlaWdodCk6IFNldHMgaGVpZ2h0IG9mIGlucHV0IGVs
ZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCk6IFNldHMg
d2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ6OnNldEhlaWdodCk6IEdldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQg
ZWxlbWVudC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDogQWRkIHB1YmxpYyBw
cm90b3R5cGUuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDogQWRkIHdpZHRo
L2hlaWdodCBhdHRyaWJ1dGVzLgorCiAyMDExLTExLTAyICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFo
bmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRGUtdmlydHVhbGl6ZSBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlOYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
aW5kZXggOWVmZDRkYi4uZTUwZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCkBAIC03LDYgKzcsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBX
ZWluaWcgKHNhbUB3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMDEzLDYgKzEwMTQsNDAgQEAgYm9vbCBI
VE1MSW5wdXRFbGVtZW50OjpzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50JiBwcmVmZXJy
ZWRTaXplKSBjb25zdAogICAgIHJldHVybiBtX2lucHV0VHlwZS0+c2l6ZVNob3VsZEluY2x1ZGVE
ZWNvcmF0aW9uKGRlZmF1bHRTaXplLCBwcmVmZXJyZWRTaXplKTsKIH0KIAoraW50IEhUTUxJbnB1
dEVsZW1lbnQ6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgYm9vbCBvayA9IGZhbHNlOworICAgIGlu
dCBoZWlnaHQgPSAwOworCisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0
QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisgICAgICAgIGhlaWdodCA9IGZhc3RHZXRBdHRyaWJ1dGUo
aGVpZ2h0QXR0cikudG9JbnQoJm9rKTsKKworICAgIHJldHVybiBvayAmJiBoZWlnaHQgPiAwID8g
aGVpZ2h0IDogMDsKK30KKworaW50IEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRoKCkgY29uc3QKK3sK
KyAgICBib29sIG9rID0gZmFsc2U7CisgICAgaW50IHdpZHRoID0gMDsKKworICAgIGlmIChtX2lu
cHV0VHlwZS0+c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpKQorICAgICAg
ICB3aWR0aCA9IGZhc3RHZXRBdHRyaWJ1dGUod2lkdGhBdHRyKS50b0ludCgmb2spOworCisgICAg
cmV0dXJuIG9rICYmIHdpZHRoID4gMCA/IHdpZHRoIDogMDsKK30KKwordm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgaGVpZ2h0KQoreworICAgIGlmIChtX2lucHV0VHlw
ZS0+c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpKQorICAgICAgICBzZXRB
dHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIoaGVpZ2h0KSk7Cit9CisKK3ZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgd2lkdGgpCit7CisgICAgaWYgKG1f
aW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisgICAg
ICAgIHNldEF0dHJpYnV0ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKHdpZHRoKSk7Cit9CisK
IHZvaWQgSFRNTElucHV0RWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXMoY29uc3Qg
RWxlbWVudCogc291cmNlKQogewogICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqIHNvdXJjZUVs
ZW1lbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MSW5wdXRFbGVtZW50Kj4oc291cmNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMDJjOGY4Zi4uMzFhODhjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTMsNiArMyw3IEBACiAg
KiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAg
KiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEzMyw2ICsx
MzQsMTEgQEAgcHVibGljOgogICAgIGludCBzaXplKCkgY29uc3Q7CiAgICAgYm9vbCBzaXplU2hv
dWxkSW5jbHVkZURlY29yYXRpb24oaW50JiBwcmVmZXJyZWRTaXplKSBjb25zdDsKIAorICAgIGlu
dCBoZWlnaHQoKSBjb25zdDsKKyAgICBpbnQgd2lkdGgoKSBjb25zdDsKKyAgICB2b2lkIHNldEhl
aWdodCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRXaWR0aCh1bnNpZ25lZCk7CisKICAgICB2b2lk
IHNldFR5cGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGQzYTFlZDcuLmM0OTk5
ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMSw2ICsx
LDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53
ZWluaWdAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25p
Y3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM4LDYgKzM5
LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4g
ZGlzYWJsZWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGF1dG9jb21wbGV0ZTsKKyAg
ICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgaGVpZ2h0OwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFMSVNUXSBIVE1MRWxlbWVudCBsaXN0OwogICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBtYXg7CiAgICAgICAgIGF0dHJpYnV0ZSBs
b25nIG1heExlbmd0aCBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC02MCw2ICs2Miw3
IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0
cmluZ10gRE9NU3RyaW5nIHR5cGU7IC8vIHJlYWRvbmx5IGRyb3BwZWQgYXMgcGFydCBvZiBET00g
bGV2ZWwgMgogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB1c2VNYXA7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1
ZTsKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2lkdGg7CiAjaWYgIWRlZmluZWQo
TEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAgICAgICAgIGF0dHJpYnV0ZSBEYXRlIHZh
bHVlQXNEYXRlIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113447</attachid>
            <date>2011-11-03 02:40:01 -0700</date>
            <delta_ts>2011-11-30 03:20:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-witdh_height_attributes_of_input_element_1103.patch</filename>
            <type>text/plain</type>
            <size>13829</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZmVlNTcxLi42ZTYzMTQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEt
MDIgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvc2Ftc3VuZy5naWY6
IEFkZGVkLgorCiAyMDExLTExLTAyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAocjk4NzU5LXI5ODc3Myk6IHBsYXRmb3JtL21hYy9mb250cy9j
b2xvci1iaXRtYXAuaHRtbCBmYWlsaW5nIG9uIExpb24gSW50ZWwgRGVidWcgKFRlc3RzKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmli
dXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhl
aWdodC1hdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42YzcxNzZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
NCBAQAord2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIEhUTUxJbnB1dEVsZW1lbnQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitjYXNlICMxLiBJbWFnZSB0eXBlLiAtLS0g
SFRNTCBpbmxpbmUgc2V0dGluZyBhcyAiMTYwIiwgIjgwcHgiLCByZXN1bHQgaXMgMTYwLCA4MAor
CisKK2Nhc2UgIzIuIEltYWdlIHR5cGUuIC0tLSBTZXQgYXMgMjYwLCAxMzAsIHJlc3VsdCBpcyAy
NjAsIDEzMAorCisKK2Nhc2UgIzMuIEltYWdlIHR5cGUuIC0tLSBTZXQgYXMgIjEyMHB4IiwgIjYw
cHgiLCByZXN1bHQgaXMgMCwgMAorCisKK2Nhc2UgIzQuIEltYWdlIHR5cGUuIC0tLSBTZXQgYXMg
MTIwLjk5LCA2MC45OSwgcmVzdWx0IGlzIDEyMCwgNjAKKworCitjYXNlICM1LiBJbWFnZSB0eXBl
LiAtLS0gU2V0IGFzIC0xMDAsIC01MCwgcmVzdWx0IGlzIDAsIDAKKworCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVlMWY5ZmEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVz
Lmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIEhUTUw+DQorPGh0bWw+DQorPGhlYWQ+
DQorICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPg0KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKyAgICA8c3R5bGU+DQorICAgICAg
ICBkaXYgew0KKyAgICAgICAgICAgIGJvcmRlci1zdHlsZTpzb2xpZDsNCisgICAgICAgICAgICBi
b3JkZXItd2lkdGg6MXB4Ow0KKyAgICAgICAgICAgIHdpZHRoOiA2MDBweDsNCisgICAgICAgIH0N
CisgICAgPC9zdHlsZT4NCis8L2hlYWQ+DQorPGJvZHk+DQorICAgIDxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPg0KKw0KKyAgICA8ZGl2IGlkPSJkaXYxIj4NCisgICAgICAgIDxpbnB1dCB0eXBlPSJp
bWFnZSIgaWQ9ImltYWdlMSIgc3JjPSJyZXNvdXJjZXMvc2Ftc3VuZy5naWYiIHdpZHRoPSIxNjAi
IGhlaWdodD0iODBweCI+DQorICAgIDwvZGl2Pg0KKyAgICA8YnI+DQorDQorICAgIDxkaXYgaWQ9
ImRpdjIiPg0KKyAgICAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2UyIiBzcmM9InJl
c291cmNlcy9zYW1zdW5nLmdpZiI+DQorICAgIDwvZGl2Pg0KKyAgICA8YnI+DQorDQorICAgIDxk
aXYgaWQ9ImRpdjMiPg0KKyAgICAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2UzIiBz
cmM9InJlc291cmNlcy9zYW1zdW5nLmdpZiI+DQorICAgIDwvZGl2Pg0KKyAgICA8YnI+DQorDQor
ICAgIDxkaXYgaWQ9ImRpdjQiPg0KKyAgICAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1h
Z2U0IiBzcmM9InJlc291cmNlcy9zYW1zdW5nLmdpZiI+DQorICAgIDwvZGl2Pg0KKyAgICA8YnI+
DQorDQorICAgIDxkaXYgaWQ9ImRpdjUiPg0KKyAgICAgICAgPGlucHV0IHR5cGU9ImltYWdlIiBp
ZD0iaW1hZ2U1IiBzcmM9InJlc291cmNlcy9zYW1zdW5nLmdpZiI+DQorICAgIDwvZGl2Pg0KKyAg
ICA8YnI+DQorDQorICAgIDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pg0KKw0KKyAgICA8c2NyaXB0
Pg0KKyAgICAgICAgZGVzY3JpcHRpb24oJ3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBI
VE1MSW5wdXRFbGVtZW50Ljxicj4nKTsNCisNCisgICAgICAgIHZhciBkaXYxID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjEiKTsNCisgICAgICAgIHZhciBpbWFnZTEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiaW1hZ2UxIik7DQorICAgICAgICBkaXYxLmlubmVySFRNTCA9ICI8Yj5j
YXNlICMxLjwvYj4gSW1hZ2UgdHlwZS4gLS0tIEhUTUwgaW5saW5lIHNldHRpbmcgYXMgXCIxNjBc
IiwgXCI4MHB4XCIsIg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3VsdCBpcyAi
ICsgaW1hZ2UxLndpZHRoICsgIiwgIiArIGltYWdlMS5oZWlnaHQgKyAiPGJyPiIgKyBkaXYxLmlu
bmVySFRNTDsNCisNCisgICAgICAgIHZhciBkaXYyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRpdjIiKTsNCisgICAgICAgIHZhciBpbWFnZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aW1hZ2UyIik7DQorICAgICAgICBpbWFnZTIud2lkdGggPSAyNjA7DQorICAgICAgICBpbWFnZTIu
aGVpZ2h0ID0gMTMwOw0KKyAgICAgICAgZGl2Mi5pbm5lckhUTUwgPSAiPGI+Y2FzZSAjMi48L2I+
IEltYWdlIHR5cGUuIC0tLSBTZXQgYXMgMjYwLCAxMzAsIg0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKyAiIHJlc3VsdCBpcyAiICsgaW1hZ2UyLndpZHRoICsgIiwgIiArIGltYWdlMi5oZWln
aHQgKyAiPGJyPiIgKyBkaXYyLmlubmVySFRNTDsNCisNCisgICAgICAgIHZhciBkaXYzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjMiKTsNCisgICAgICAgIHZhciBpbWFnZTMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UzIik7DQorICAgICAgICBpbWFnZTMud2lkdGggPSAi
MTIwcHgiOw0KKyAgICAgICAgaW1hZ2UzLmhlaWdodCA9ICI2MHB4IjsNCisgICAgICAgIGRpdjMu
aW5uZXJIVE1MID0gIjxiPmNhc2UgIzMuPC9iPiBJbWFnZSB0eXBlLiAtLS0gU2V0IGFzIFwiMTIw
cHhcIiwgXCI2MHB4XCIsIg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3VsdCBp
cyAiICsgaW1hZ2UzLndpZHRoICsgIiwgIiArIGltYWdlMy5oZWlnaHQgKyAiPGJyPiIgKyBkaXYz
LmlubmVySFRNTDsNCisNCisgICAgICAgIHZhciBkaXY0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRpdjQiKTsNCisgICAgICAgIHZhciBpbWFnZTQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaW1hZ2U0Iik7DQorICAgICAgICBpbWFnZTQud2lkdGggPSAxMjAuOTk7DQorICAgICAgICBp
bWFnZTQuaGVpZ2h0ID0gNjAuOTk7DQorICAgICAgICBkaXY0LmlubmVySFRNTCA9ICI8Yj5jYXNl
ICM0LjwvYj4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyAxMjAuOTksIDYwLjk5LCINCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICsgIiByZXN1bHQgaXMgIiArIGltYWdlNC53aWR0aCArICIsICIg
KyBpbWFnZTQuaGVpZ2h0ICsgIjxicj4iICsgZGl2NC5pbm5lckhUTUw7DQorDQorICAgICAgICB2
YXIgZGl2NSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY1Iik7DQorICAgICAgICB2YXIg
aW1hZ2U1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlNSIpOw0KKyAgICAgICAgaW1h
Z2U1LndpZHRoID0gLTEwMDsNCisgICAgICAgIGltYWdlNS5oZWlnaHQgPSAtNTA7DQorICAgICAg
ICBkaXY1LmlubmVySFRNTCA9ICI8Yj5jYXNlICM1LjwvYj4gSW1hZ2UgdHlwZS4gLS0tIFNldCBh
cyAtMTAwLCAtNTAsIg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3VsdCBpcyAi
ICsgaW1hZ2U1LndpZHRoICsgIiwgIiArIGltYWdlNS5oZWlnaHQgKyAiPGJyPiIgKyBkaXY1Lmlu
bmVySFRNTDsNCisNCisgICAgICAgIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOw0KKyAg
ICA8L3NjcmlwdD4NCisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9zYW1zdW5nLmdpZiBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3NhbXN1bmcuZ2lmCm5ldyBmaWxlIG1vZGUgMTAwNzU1
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiYzcyNjNh
NjlmMjgyNjM1YzFhZWMxYTRkY2ZjYzgwYzc3Mjk1MGQKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFs
IDIzMzUKemNtYl9iYCM7a1ExTzlIbG18QEsmNWprQFMkJDRgLVpsfXhVeF5kSzh4fTRBJUZ7YTJs
JHRrSGV3fXU9T009a2VsCnpXe1BhQTIqb3MtQSghUGNSQ0IqbjJQTDxaX3dAYl5AQUcqKyZ1YEUz
ZDQ2fnY1MWhNJFY9eGdRMCZCb2BZO1NNTgp6OWM5UlFtJWV8JHd6Izt5dmEtM2h3emE7I3dZSyk8
JWFeWlR6a1ZCXl8mN1FCWD0zdUBednVmQ15yelhtJm9pP3QKel45IXFVXlBkO3F0PEVvZT8mX0tF
P3d1YlFUWVVYP2RGOyo3eVo1VUw/Pj5Me1hSWkZKdGY2X2xOaWZtYUdBPE5OCnp3fko+d3k2MVcm
P3xTK2RgVWw+Pjh1fkNPe2J5a0shfD4/aHAhQ0RyQG56WT5eNVc5XiQ0e0hmQTIqaGsqWUF8ewp6
PHJWa1JPWiFTSTF7d0RVT0RoSzBSbH1UVz40VGIpYCNmbzc/UHdLJHdFRUZsXzJhUkprNDdJZ3pP
OC1vYGYtISYKek4lTUg0VjRfSmQtWWxHWV9JJmJiPnFKWjJSSV9saF5+SlFIZVgzMTdEfUZpRyhM
TE1VeDZuODZQV28/Vys0QVV7CnojWk4xbk5tKHlhWHJofXI7PyEoV1RDU0x5KH4pXyU+KC1zbHp2
eH1HZCk/WGpGTE1mZWEqS0wlaSticGNlbWJNQwp6a29+SGxPajE8LXMrY3B0dFE7ejw4WS1fSVc8
TU9OO0VpeSZRZn1RQ3VsfWBVPT42eF9GSHpUP01xaHMjbjxUaUQKekVRbWBIe0YlfnZJa2gjT2Bh
Ql9CY3MtLS1NckohWHY7REBjSGdhWkw2Nzl2IW9SMExvUFU0bHV1KihoTUByfFViCnpPJWRecGt5
bzN9QntXNmZjeUB2Tz5+fjdAQUJvS3VsVWh6KWM9VChgPEleI1omcz9uZ0V3LUw7c1hqUkZObDR0
Mgp6dnd0PW1DRGp+QHRub1FsPndDVnxGTipJVSZHKFB1cE5RdDR7QkMmXkBKQyhYI2shNW51a0s7
aFNZa0NVb2ErX0EKel5DczFKbFh5byRzKlZJI3ArbC1MQXJHQkhBM0MzWD1vKHNXOWRPPys9ejt5
MjJNJVcqSVF+fVleanFiajs0MVN8Cno5UF5YcTdRYj9TSlk4fCViY0l6d2ctemduK25AKT0kSnUq
TnV1Vl52bzFIMipKNlhRbHVUMG0hWXxwPitFN1NMOQp6Pi0oM1hqPFhGPHUjdEdDbmgjNmVobyRN
bSgoKztMQEA0N3htQkVpT1JQanZKVkB3MnxnfV5oUi1sY05oNERjdkoKejtUWkdabUh1ejd8N1M3
UzAzaVN7MzBRcDN7cig5NndoaFJeXnN3OSNLQHY+RUpXI3xmZVNRO1o8WE0yX0cxQFk7CnpaNmUx
K0ptIWxtbHVOb0V1Nz1mLVc5RH4xdSVvN3xeTiFfTmFSSUtELUpTMW5hYmN7WnchRWhwb2RuPEck
PjtQagp6dXtxe0pWdCQzQjlNNlJOVFFiU1ZsQEN+LUN2WU0xWCoqbUZuXns+OyFPflJKJjEyMUlh
RlYmd0M3UUBsJks9TTQKentAYX1yYShzV0RCfCM4N0UjQ1dKcHUrOFgwfmYtPks9M2YxM0I3ZFYk
VU4oNHNQJkZ2M2ojWDRUZHN4bFFlfnRUCnpBbDlPdWtZWGVOKyNvPWAmJHM9Rz9SLUJ3RCRCMDAo
Y2IhP2FZJSE5amw5TnhCSXxJVS1VUX5gRVJIZ2MlbnBBMgp6Umt2N1l6ckFvPzB3ME47NkV9YX1L
MmNQI0BuTzBARGp6V3xGb3FiQiY7MDIxRmt5M000IVkjRV9JQGoyXkZrcDYKemAkS3A8IVFpJkNn
UnltMl87akQqPjEkaDtScylqfXtpWT8hdnUtdiprS0xUI2FrayZBKT1RJGQrXzFxbi1lJTlyCnps
RXJAdWQ+e3dVdDdsI305QXQrT2NsbWsqclBKTlEmISFYeU5uRzVPNGpMI35uZnhfWmR+Sj8/Q3FJ
STUkVGF4Jgp6SiZJOVNDWDxgMENWdmlQaCMtdj4re1QmWU1sZn51LXk8YUFZKTEraEkxXl5GZ2w8
UmVqZDN4a3JgZT8mLXkhPkAKejh8UV44c0c4aE1GZyM8SEtQOG8jaGF4ZjAmRnJsc2xIQytVJVY8
Q2U3TW9OY3dfOzYkM2JGTzI9distM0pwNF40CnpUT09saG1McEJ8Zz41ZmtmVE9WezhFN2pEc3h4
cGspSnxDaSFydXcoXk4mfWN5OFMjMVJmKChDPnVqK3JFS34+Tgp6S0BnY3ZHeXN0PEt6MEhuM05U
QHJ4NDxBVm08KTgkKUMoOGo3Wn1uTl8jc3YrZ0J0YHh4JmM/dCQ1fCpwNEAzZXcKekdhRlJ1U3Eo
PndDJFdoaWhDUHNKWjFAKXN2VjtjZiliLVVgYlJvJUI5Y31PayVlVkNxWkp3ODU3TFgldEBLJiso
Cno1UGRYNihkN0VOb04mWk1rU3FaQmNoeGdVNkpjNSU1UklMKDdxO3g8OGk5YlJyTFYzb0J3Oyo2
bTZlNz5ANnJiYAp6RjJHTCM8Rn4/dFVfeSU0JntBRXJ4fiVmTkUwSmVtRE51cjdDKis8bjJKfSlh
aSg/WnpWX3pwPSlSWjE0WSVCaHYKekRAUWpkMmFkKE9eQUh1S1hhd3BUSjgrI3JEJWIqMF5PWnM8
WGd7bihJdDtEY3FKKG9uOEs5MzFJOUxsJXokS3Z9Cnp3M0lTIztmYz82dkRzSyY/WHN4I3d7YD1w
S19qJjc5cDQlcFV+JFRiPzRTK3lpZ3JVV1lNeXtSJTckIVR2b1puSwp6Z05FSWZqKFhNVzB4KV9D
QkZXTVZCKj17YVJ6JFlfRyttc25XMCVPYyZzSEArNU80cllUTFN5bXE9TlNmczNFdWsKekR6dUVy
NFB+XyhORyMlbjhuNlQ5MDw+Xlc4MFRnMF45WT8kZ3JGI1o5ZTViUkBgZ09HN290RFg9b1ZsSjAm
MzxnCnowWld1X188KUtAOHJlWGswWmxuQEpiNCgySFV5ejZmaVEzPHdBV28+OChLcEI2NU9vP2VV
YnVqMWE9Qn5SWGdkOQp6MXEmayNgSk9SemZZPDh8MlVgXztMWSt+KmNRTWN8MEwpOz9iZXpQdWpN
IXYoeEMmK2BUPyswUWx4MnA9JE95YGEKemB8ZGV6SSQ/YHxyfj0lUDJ9cVRtVk05PWxpY3p3dHI8
MWV8PCpnenh5S2I0MWdTVFhnbz5TblNMP2oxPU5DZjMhCnpmV1h8Qj9DUj8ySTBrRkNHUGZsY3tk
RHUtSzJIVHBlV0VAaldeJEtFKDRGOyo1eUFzK1YxJGxJejNzX28lbWsqbgp6ZDdmNmsqZTxDQnZL
NiN+QEIoKXNtcW9QMDl3R158R094IUxYPDh7SVVOJWRGSTg3V3pOb1FeUElARlIxWSo4YGoKekch
S2F5RXUzNlJiLSlBMDdHeCVnRnx9b00zNlchS3lVXnBMPS1NPyhIUFZXUXdJMT9OUGI4cl4/b1E0
LVh5U2B8CnpIPnMpR2JXMGFhYUA9anlJQEQhb3RvdXB7cFJzYlY7JjM2KXtlWmV2cysjRCtVTENT
NCFiSzwhUyozY341MilEMAp6UVEqIT8xb19FYTkzMFY/bVgpP3JQYDhvbGJtOzhmbmRDfEJyYCUt
eXR8Zn1mYUlvb2Q4M2tvcTNKKmFpPHIkUkcKemZTUGdUQVdwMDFwR1opM0UoVzRfJWk4UHxmdmxO
WUJEZWM4MWJJYXlYUS1Ze2VSfGs9JDJGMWp1RV5lME1Acz55Cnp5M18oP3dHT3ZDdEAzREBtNyU2
eVF0fDI0biFEWVZNRWckWiVsT3NXNjRqfio1M2lCX2QjaWtvY1U5IWMmWEtgfQpOKWtvYTBDXlB7
NHs5Z3RkRlp1dWcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxODBmMzE2
Li5jYWI1YmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTEtMDIgIERvbmd3
b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWlnaHQgYXR0cmli
dXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZhU2NyaXB0Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdHlw
ZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0
ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBhcmUgZGVm
aW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS90
aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcDogQWRkIHNldHRlci9nZXR0ZXIgZnVuY3Rpb25zIHRvIHF1ZXJ5L3Nl
dCB3aWR0aC9oZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bnB1dEVsZW1lbnQ6OmhlaWdodCk6IFNldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCk6IFNldHMgd2lkdGggb2YgaW5w
dXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdo
dCk6IEdldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpzZXRXaWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDogQWRkIHB1YmxpYyBwcm90b3R5cGUuCisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDogQWRkIHdpZHRoL2hlaWdodCBhdHRy
aWJ1dGVzLgorCiAyMDExLTExLTAyICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgRGUtdmlydHVhbGl6ZSBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlO
YW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggOWVmZDRk
Yi4uZTUwZTcxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBA
IC03LDYgKzcsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNhbUB3
ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0xMDEzLDYgKzEwMTQsNDAgQEAgYm9vbCBIVE1MSW5wdXRFbGVt
ZW50OjpzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50JiBwcmVmZXJyZWRTaXplKSBjb25z
dAogICAgIHJldHVybiBtX2lucHV0VHlwZS0+c2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGRl
ZmF1bHRTaXplLCBwcmVmZXJyZWRTaXplKTsKIH0KIAoraW50IEhUTUxJbnB1dEVsZW1lbnQ6Omhl
aWdodCgpIGNvbnN0Cit7CisgICAgYm9vbCBvayA9IGZhbHNlOworICAgIGludCBoZWlnaHQgPSAw
OworCisgICAgaWYgKG1faW5wdXRUeXBlLT5zaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRy
aWJ1dGVzKCkpCisgICAgICAgIGhlaWdodCA9IGZhc3RHZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciku
dG9JbnQoJm9rKTsKKworICAgIHJldHVybiBvayAmJiBoZWlnaHQgPiAwID8gaGVpZ2h0IDogMDsK
K30KKworaW50IEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRoKCkgY29uc3QKK3sKKyAgICBib29sIG9r
ID0gZmFsc2U7CisgICAgaW50IHdpZHRoID0gMDsKKworICAgIGlmIChtX2lucHV0VHlwZS0+c2hv
dWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpKQorICAgICAgICB3aWR0aCA9IGZh
c3RHZXRBdHRyaWJ1dGUod2lkdGhBdHRyKS50b0ludCgmb2spOworCisgICAgcmV0dXJuIG9rICYm
IHdpZHRoID4gMCA/IHdpZHRoIDogMDsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRI
ZWlnaHQodW5zaWduZWQgaGVpZ2h0KQoreworICAgIGlmIChtX2lucHV0VHlwZS0+c2hvdWxkUmVz
cGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpKQorICAgICAgICBzZXRBdHRyaWJ1dGUoaGVp
Z2h0QXR0ciwgU3RyaW5nOjpudW1iZXIoaGVpZ2h0KSk7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0V2lkdGgodW5zaWduZWQgd2lkdGgpCit7CisgICAgaWYgKG1faW5wdXRUeXBlLT5z
aG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkpCisgICAgICAgIHNldEF0dHJp
YnV0ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKHdpZHRoKSk7Cit9CisKIHZvaWQgSFRNTElu
cHV0RWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVByb3BlcnRpZXMoY29uc3QgRWxlbWVudCogc291
cmNlKQogewogICAgIGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqIHNvdXJjZUVsZW1lbnQgPSBzdGF0
aWNfY2FzdDxjb25zdCBIVE1MSW5wdXRFbGVtZW50Kj4oc291cmNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMDJjOGY4Zi4uMzFhODhjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTMsNiArMyw3IEBACiAgKiAgICAgICAgICAg
KEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAg
KEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEzMyw2ICsxMzQsMTEgQEAgcHVi
bGljOgogICAgIGludCBzaXplKCkgY29uc3Q7CiAgICAgYm9vbCBzaXplU2hvdWxkSW5jbHVkZURl
Y29yYXRpb24oaW50JiBwcmVmZXJyZWRTaXplKSBjb25zdDsKIAorICAgIGludCBoZWlnaHQoKSBj
b25zdDsKKyAgICBpbnQgd2lkdGgoKSBjb25zdDsKKyAgICB2b2lkIHNldEhlaWdodCh1bnNpZ25l
ZCk7CisgICAgdm9pZCBzZXRXaWR0aCh1bnNpZ25lZCk7CisKICAgICB2b2lkIHNldFR5cGUoY29u
c3QgU3RyaW5nJik7CiAKICAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGQzYTFlZDcuLmM0OTk5ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMSw2ICsxLDcgQEAKIC8qCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwu
Y29tPgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM4LDYgKzM5LDcgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CiAg
ICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7CiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGF1dG9jb21wbGV0ZTsKKyAgICAgICAgYXR0cmli
dXRlIHVuc2lnbmVkIGxvbmcgaGVpZ2h0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0Nv
bmRpdGlvbmFsPURBVEFMSVNUXSBIVE1MRWxlbWVudCBsaXN0OwogICAgICAgICBhdHRyaWJ1dGUg
W1JlZmxlY3RdIERPTVN0cmluZyBtYXg7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIG1heExlbmd0
aCBzZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC02MCw2ICs2Miw3IEBAIG1vZHVsZSBo
dG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3Ry
aW5nIHR5cGU7IC8vIHJlYWRvbmx5IGRyb3BwZWQgYXMgcGFydCBvZiBET00gbGV2ZWwgMgogICAg
ICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgIGF0dHJp
YnV0ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyAgICAgICAg
YXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgd2lkdGg7CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQ
KSB8fCAhTEFOR1VBR0VfQ1BQCiAgICAgICAgIGF0dHJpYnV0ZSBEYXRlIHZhbHVlQXNEYXRlIHNl
dHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgo=
</data>
<flag name="review"
          id="111819"
          type_id="1"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117162</attachid>
            <date>2011-11-30 03:20:13 -0800</date>
            <delta_ts>2011-12-01 22:43:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-witdh_height_attributes_of_input_element_1130_02.patch</filename>
            <type>text/plain</type>
            <size>17887</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNWY1MGMyLi42YjQ0MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEt
MzAgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnOiBB
ZGRlZC4KKwogMjAxMS0xMS0yNCAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CiAKICAg
ICAgICAgTWljcm9kYXRhOiBTdXBwb3J0IGZvciBwcm9wZXJ0aWVzIGF0dHJpYnV0ZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWln
aHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMmM1NjY4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUg
QEAKK1BBU1MgaW1hZ2UxLndpZHRoLGltYWdlMS5oZWlnaHQgaXMgMTYwLDgwCitQQVNTIGltYWdl
Mi53aWR0aCxpbWFnZTIuaGVpZ2h0IGlzIDI2MCwxMzAKK1BBU1MgaW1hZ2UzLndpZHRoLGltYWdl
My5oZWlnaHQgaXMgMCwwCitQQVNTIGltYWdlNC53aWR0aCxpbWFnZTQuaGVpZ2h0IGlzIDEyMCw2
MAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCit3aWR0
aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgSFRNTElucHV0RWxlbWVudC4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK2Nhc2UgIzEuIEltYWdlIHR5cGUuIC0tLSBIVE1MIGlubGlu
ZSBzZXR0aW5nIGFzICIxNjAiLCAiODBweCIsIHJlc3VsdCBpcyAxNjAsIDgwCisKKworY2FzZSAj
Mi4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyAyNjAsIDEzMCwgcmVzdWx0IGlzIDI2MCwgMTMwCisK
KworY2FzZSAjMy4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyAiMTIwcHgiLCAiNjBweCIsIHJlc3Vs
dCBpcyAwLCAwCisKKworY2FzZSAjNC4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyAxMjAuOTksIDYw
Ljk5LCByZXN1bHQgaXMgMTIwLCA2MAorCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5NmUzNTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwKQEAg
LTAsMCArMSw3MyBAQAorPCFET0NUWVBFIEhUTUw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4N
Cis8c3R5bGU+DQorICAgIGRpdiB7DQorICAgICAgICBib3JkZXItc3R5bGU6c29saWQ7DQorICAg
ICAgICBib3JkZXItd2lkdGg6MXB4Ow0KKyAgICAgICAgd2lkdGg6IDYwMHB4Ow0KKyAgICB9DQor
PC9zdHlsZT4NCis8L2hlYWQ+DQorPGJvZHk+DQorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+DQor
DQorPGRpdiBpZD0iZGl2MSI+DQorICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlMSIg
c3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwcHgiPg0KKzwv
ZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXYyIj4NCisgICAgPGlucHV0IHR5cGU9ImltYWdl
IiBpZD0iaW1hZ2UyIiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4N
CisNCis8ZGl2IGlkPSJkaXYzIj4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2Uz
IiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlk
PSJkaXY0Ij4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2U0IiBzcmM9InJlc291
cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8c2NyaXB0Pg0KKyAgICBkZXNj
cmlwdGlvbignd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIEhUTUxJbnB1dEVsZW1lbnQu
PGJyPicpOw0KKw0KKyAgICB2YXIgZGl2MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYx
Iik7DQorICAgIHZhciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIik7
DQorICAgIGRpdjEuaW5uZXJIVE1MID0gIjxiPmNhc2UgIzEuPC9iPiBJbWFnZSB0eXBlLiAtLS0g
SFRNTCBpbmxpbmUgc2V0dGluZyBhcyBcIjE2MFwiLCBcIjgwcHhcIiwiDQorICAgICAgICAgICAg
ICAgICAgICAgICsgIiByZXN1bHQgaXMgIiArIGltYWdlMS53aWR0aCArICIsICIgKyBpbWFnZTEu
aGVpZ2h0ICsgIjxicj4iICsgZGl2MS5pbm5lckhUTUw7DQorICAgIHNob3VsZEJlKCdpbWFnZTEu
d2lkdGgsaW1hZ2UxLmhlaWdodCcsICcxNjAsODAnKTsNCisNCisgICAgdmFyIGRpdjIgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MiIpOw0KKyAgICB2YXIgaW1hZ2UyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImltYWdlMiIpOw0KKyAgICBpbWFnZTIud2lkdGggPSAyNjA7DQorICAg
IGltYWdlMi5oZWlnaHQgPSAxMzA7DQorICAgIGRpdjIuaW5uZXJIVE1MID0gIjxiPmNhc2UgIzIu
PC9iPiBJbWFnZSB0eXBlLiAtLS0gU2V0IGFzIDI2MCwgMTMwLCINCisgICAgICAgICAgICAgICAg
ICAgICAgKyAiIHJlc3VsdCBpcyAiICsgaW1hZ2UyLndpZHRoICsgIiwgIiArIGltYWdlMi5oZWln
aHQgKyAiPGJyPiIgKyBkaXYyLmlubmVySFRNTDsNCisgICAgc2hvdWxkQmUoJ2ltYWdlMi53aWR0
aCxpbWFnZTIuaGVpZ2h0JywgJzI2MCwxMzAnKTsNCisNCisgICAgdmFyIGRpdjMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZGl2MyIpOw0KKyAgICB2YXIgaW1hZ2UzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImltYWdlMyIpOw0KKyAgICBpbWFnZTMud2lkdGggPSAiMTIwcHgiOw0KKyAg
ICBpbWFnZTMuaGVpZ2h0ID0gIjYwcHgiOw0KKyAgICBkaXYzLmlubmVySFRNTCA9ICI8Yj5jYXNl
ICMzLjwvYj4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyBcIjEyMHB4XCIsIFwiNjBweFwiLCINCisg
ICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3VsdCBpcyAiICsgaW1hZ2UzLndpZHRoICsgIiwg
IiArIGltYWdlMy5oZWlnaHQgKyAiPGJyPiIgKyBkaXYzLmlubmVySFRNTDsNCisgICAgc2hvdWxk
QmUoJ2ltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0JywgJzAsMCcpOw0KKw0KKyAgICB2YXIgZGl2
NCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY0Iik7DQorICAgIHZhciBpbWFnZTQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2U0Iik7DQorICAgIGltYWdlNC53aWR0aCA9IDEy
MC45OTsNCisgICAgaW1hZ2U0LmhlaWdodCA9IDYwLjk5Ow0KKyAgICBkaXY0LmlubmVySFRNTCA9
ICI8Yj5jYXNlICM0LjwvYj4gSW1hZ2UgdHlwZS4gLS0tIFNldCBhcyAxMjAuOTksIDYwLjk5LCIN
CisgICAgICAgICAgICAgICAgICAgICAgKyAiIHJlc3VsdCBpcyAiICsgaW1hZ2U0LndpZHRoICsg
IiwgIiArIGltYWdlNC5oZWlnaHQgKyAiPGJyPiIgKyBkaXY0LmlubmVySFRNTDsNCisgICAgc2hv
dWxkQmUoJ2ltYWdlNC53aWR0aCxpbWFnZTQuaGVpZ2h0JywgJzEyMCw2MCcpOw0KKw0KKyAgICB2
YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsNCis8L3NjcmlwdD4NCis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8L2Jv
ZHk+DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3Vy
Y2VzL2dyZWVuLmpwZyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2dyZWVuLmpw
ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mNWY3MDBiNjgwN2QxOTUzNTJlMWFiMDIxNGNlNGYxZWRmOTIwMzQwCkdJ
VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA3NjQKemNtZXg9PE5wSCYwV1VYQ0h3SCNWTXVyMytXY2RH
KHB+MUJ4R21VfTQqT3goeWZxe1g4ZnQ2OCtmZj5rUjFWUlF6CnpERiMrQm59TlpMUTV3ejtWJF5g
RFZQYXJ0JnR6Yk1zKSsqOUFkbXBXSzsyTjlYI28+bGd9PyU0MVJKUD07czAkMAp6WDlneGxNaTYy
R0F8UE85V2Q7RUA3OFloIWJ+YmkpYn5aTFBiYEVZJWJgQ0JNSGExUlBQQStiNDl2JldjUEZfQTwK
ejl6R3pHOClPSmJGRWR5I0Q+bnhsMlJGJiF7e2FSOzRoOGBSMGNKKWUxfH5zOVc8a2RQTTtQUlJL
NEFyaDdid1Z9CnpmUlR4cmclIylgcGdWdkh3aDkyOSYmPHBPYlN4X2lGZCFJZmYkfEoyZn4tUHto
S184KWZyOyEmZyg2MGM2Qmx3UQp6SjhlOEQ4ZyVpNGlnOGo9NkRPQ0x4UCt2WHMremlucmswN1Ju
WW8zZm05dllobzRiZG5TOHp5WlNhP0thUkJ9cGMKelQ2I3VpUiZoeWJTJFJjZVJkWSpnVFlFPW0q
UUNpKXJjUnFhVzlGPHlpPGN+Mnd0VTZQUmh1PyUqfTg0fWotOSY+Cno5WEBqTyp6cHI1UGhHbHY8
PzZOVEgqVmZ+X35gTUlyX1l8aGM9X3Qlcl9XISRlKjZDOD1QIWBJNyNXeCQtaCVySwp6JjBtNSpl
PXp+JGZRMjM4RkdpK3ZBWjhZMVZPMkNfNkxKaD5QYj9IeEdIVD15YWhrWXI8M1ViazxEZF9zTmt0
ZEEKeSM4Z1prcyh1N3s0ZVRAR0prfl4oJilePElgMEV3fTQ+S2IkQHxYbn4+PjBqJFgpTX5gYl5n
UGp8MkZ+Y19zdldJCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZjMzAw
MC4uYWI1ZmNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDExLTExLTMwICBEb25n
d29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0dHJp
YnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlwdC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHR5
cGUgb2YgaW5wdXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRyaWJ1
dGVzIHNob3VsZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRl
ZmluZWQgaW4gSFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUv
dGhlLW1hcC1lbGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAgICAgICAqIGh0bWwvSFRN
TElucHV0RWxlbWVudC5jcHA6IEFkZCBzZXR0ZXIvZ2V0dGVyIGZ1bmN0aW9ucyB0byBxdWVyeS9z
ZXQgd2lkdGgvaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6d2lkdGgpOiBHZXRzIHdpZHRoIG9mIGlu
cHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWln
aHQpOiBTZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c2V0V2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisg
ICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZCBwdWJsaWMgcHJvdG90eXBlLgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6IEFkZCB3aWR0aC9oZWlnaHQgYXR0
cmlidXRlcy4KKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDogQWRkIHNldHRlci9n
ZXR0ZXIgZnVuY3Rpb25zIGlmIHRoZSBlbGVtZW50IGlzIGFuIGltYWdlIGJ1dHRvbi4KKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1
dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoKTogR2V0
cyB3aWR0aCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5
cGU6OnNldEhlaWdodCk6IFNldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6c2V0V2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlucHV0IGVs
ZW1lbnQuCisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5oOiBBZGQgcHJvdG90eXBlLgor
ICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDogQWRkIHNldHRlci9nZXR0ZXIgZnVuY3Rpb25z
IGlmIHRoZSBlbGVtZW50IGlzIG5vdCBhbiBpbWFnZSBidXR0b24uCisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGU6OmhlaWdodCk6IFJldHVybnMgemVyby4KKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0VHlwZTo6d2lkdGgpOiBSZXR1cm5zIHplcm8uCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OnNldEhlaWdodCk6IERvZXMgbm90aGluZy4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZTo6c2V0V2lkdGgpOiBEb2VzIG5vdGhpbmcuCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDog
QWRkIHByb3RvdHlwZS4KKwogMjAxMS0xMS0yNCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgSW5pdGlhbGl6ZSBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBJ
RExQYXJzZXIgb2JqZWN0IGNyZWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAppbmRleCAwNWEwOWI5Li42YzExOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKQEAgLTcsNiArNyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcg
U2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3Jj
aCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmls
ZS5jb20vKQorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEwMTQsNiArMTAxNSwzOCBA
QCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQm
IHByZWZlcnJlZFNpemUpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zaXplU2hvdWxk
SW5jbHVkZURlY29yYXRpb24oZGVmYXVsdFNpemUsIHByZWZlcnJlZFNpemUpOwogfQogCit1bnNp
Z25lZCBIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMpIGNvbnN0Cit7CisgICAgaWYgKCFtX2lucHV0VHlwZS0+aXNJbWFnZUJ1dHRvbigpKQorICAg
ICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBtX2lucHV0VHlwZS0+aGVpZ2h0KGlnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cyk7Cit9CisKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRo
KGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKSBjb25zdAoreworICAgIGlmICghbV9pbnB1
dFR5cGUtPmlzSW1hZ2VCdXR0b24oKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4g
bV9pbnB1dFR5cGUtPndpZHRoKGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyk7Cit9CisKK3ZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKK3sKKyAgICBpZiAo
IW1faW5wdXRUeXBlLT5pc0ltYWdlQnV0dG9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
aW5wdXRUeXBlLT5zZXRIZWlnaHQoaGVpZ2h0KTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50
OjpzZXRXaWR0aCh1bnNpZ25lZCB3aWR0aCkKK3sKKyAgICBpZiAoIW1faW5wdXRUeXBlLT5pc0lt
YWdlQnV0dG9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faW5wdXRUeXBlLT5zZXRXaWR0
aCh3aWR0aCk7Cit9CisKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVBy
b3BlcnRpZXMoY29uc3QgRWxlbWVudCogc291cmNlKQogewogICAgIGNvbnN0IEhUTUxJbnB1dEVs
ZW1lbnQqIHNvdXJjZUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxjb25zdCBIVE1MSW5wdXRFbGVtZW50
Kj4oc291cmNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggOGVi
NmRmYy4uNGIyYzI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAg
LTMsNiArMyw3IEBACiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZp
c3RvQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVy
QGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTEzMyw2ICsxMzQsMTEgQEAgcHVibGljOgogICAgIGludCBzaXplKCkgY29uc3Q7CiAg
ICAgYm9vbCBzaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oaW50JiBwcmVmZXJyZWRTaXplKSBj
b25zdDsKIAorICAgIHVuc2lnbmVkIGhlaWdodChib29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyA9IGZhbHNlKSBjb25zdDsKKyAgICB1bnNpZ25lZCB3aWR0aChib29sIGlnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cyA9IGZhbHNlKSBjb25zdDsKKyAgICB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7
CisgICAgdm9pZCBzZXRXaWR0aCh1bnNpZ25lZCk7CisKICAgICB2b2lkIHNldFR5cGUoY29uc3Qg
U3RyaW5nJik7CiAKICAgICBTdHJpbmcgdmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDc0NjMzMzQuLjQyNDc5ZjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM4LDYgKzM5LDcgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CiAgICAg
ICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7CiAgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGF1dG9jb21wbGV0ZTsKKyAgICAgICAgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgaGVpZ2h0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRp
dGlvbmFsPURBVEFMSVNUXSBIVE1MRWxlbWVudCBsaXN0OwogICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyBtYXg7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIG1heExlbmd0aCBz
ZXR0ZXIgcmFpc2VzKERPTUV4Y2VwdGlvbik7CkBAIC02MCw2ICs2Miw3IEBAIG1vZHVsZSBodG1s
IHsKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5n
IHR5cGU7IC8vIHJlYWRvbmx5IGRyb3BwZWQgYXMgcGFydCBvZiBET00gbGV2ZWwgMgogICAgICAg
ICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgIGF0dHJpYnV0
ZSBbQ29udmVydE51bGxUb051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyAgICAgICAgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgd2lkdGg7CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8
fCAhTEFOR1VBR0VfQ1BQCiAgICAgICAgIGF0dHJpYnV0ZSBEYXRlIHZhbHVlQXNEYXRlIHNldHRl
ciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5w
dXRUeXBlLmNwcAppbmRleCA5MGQ3YmI5Li5hOTk0NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJv
bmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsMTIg
KzI3LDE2IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElt
YWdlTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJNb3Vz
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CisKIGlubGluZSBJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCkKICAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkKIHsKQEAg
LTE3NCw0ICsxNzksNjIgQEAgYm9vbCBJbWFnZUlucHV0VHlwZTo6c2hvdWxkUmVzcGVjdEhlaWdo
dEFuZFdpZHRoQXR0cmlidXRlcygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Vuc2lnbmVkIElt
YWdlSW5wdXRUeXBlOjpoZWlnaHQoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpIGNvbnN0
Cit7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50
KCk7CisKKyAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gY2hlY2sg
dGhlIGF0dHJpYnV0ZSBmaXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWVhCisgICAgICAg
IHVuc2lnbmVkIGhlaWdodDsKKyAgICAgICAgaWYgKHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdl
cihlbGVtZW50LT5nZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciksIGhlaWdodCkpCisgICAgICAgICAg
ICByZXR1cm4gaGVpZ2h0OworCisgICAgICAgIC8vIGlmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUs
IHVzZSBpdHMgaGllZ2h0CisgICAgICAgIGlmIChtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKQorICAg
ICAgICAgICAgcmV0dXJuIG1faW1hZ2VMb2FkZXItPmltYWdlKCktPmltYWdlU2l6ZUZvclJlbmRl
cmVyKGVsZW1lbnQtPnJlbmRlcmVyKCksIDEuMGYpLmhlaWdodCgpOworICAgIH0KKworICAgIGlm
IChpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCisgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkt
PnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGVsc2UKKyAgICAg
ICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisKKyAgICBSZW5kZXJCb3gq
IGJveCA9IGVsZW1lbnQtPnJlbmRlckJveCgpOworICAgIHJldHVybiBib3ggPyBhZGp1c3RGb3JB
YnNvbHV0ZVpvb20oYm94LT5jb250ZW50SGVpZ2h0KCksIGJveCkgOiAwOworfQorCit1bnNpZ25l
ZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpIGNv
bnN0Cit7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVt
ZW50KCk7CisKKyAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gY2hl
Y2sgdGhlIGF0dHJpYnV0ZSBmaXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWVhCisgICAg
ICAgIHVuc2lnbmVkIHdpZHRoOworICAgICAgICBpZiAocGFyc2VIVE1MTm9uTmVnYXRpdmVJbnRl
Z2VyKGVsZW1lbnQtPmdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpLCB3aWR0aCkpCisgICAgICAgICAg
ICByZXR1cm4gd2lkdGg7CisKKyAgICAgICAgLy8gaWYgdGhlIGltYWdlIGlzIGF2YWlsYWJsZSwg
dXNlIGl0cyB3aWR0aAorICAgICAgICBpZiAobV9pbWFnZUxvYWRlci0+aW1hZ2UoKSkKKyAgICAg
ICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVyLT5pbWFnZSgpLT5pbWFnZVNpemVGb3JSZW5kZXJl
cihlbGVtZW50LT5yZW5kZXJlcigpLCAxLjBmKS53aWR0aCgpOworICAgIH0KKworICAgIGlmIChp
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCisgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGVsc2UKKyAgICAgICAg
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisKKyAgICBSZW5kZXJCb3gqIGJv
eCA9IGVsZW1lbnQtPnJlbmRlckJveCgpOworICAgIHJldHVybiBib3ggPyBhZGp1c3RGb3JBYnNv
bHV0ZVpvb20oYm94LT5jb250ZW50V2lkdGgoKSwgYm94KSA6IDA7Cit9CisKK3ZvaWQgSW1hZ2VJ
bnB1dFR5cGU6OnNldEhlaWdodCh1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgZWxlbWVudCgpLT5z
ZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIoaGVpZ2h0KSk7Cit9CisKK3Zv
aWQgSW1hZ2VJbnB1dFR5cGU6OnNldFdpZHRoKHVuc2lnbmVkIHdpZHRoKQoreworICAgIGVsZW1l
bnQoKS0+c2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIod2lkdGgpKTsKK30g
ICAgICAgCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuaAppbmRleCA5Y2I2MDIxLi5mMTM5ZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5n
IEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQpAQCAtNjIsNiArNjMsMTEgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNFbnVtZXJhdGFibGUoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEhlaWdo
dEFuZFdpZHRoQXR0cmlidXRlcygpOwogCisgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQoYm9v
bCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aChib29sKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0SGVpZ2h0KHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2lk
dGgodW5zaWduZWQpOworCiAgICAgT3duUHRyPEhUTUxJbWFnZUxvYWRlcj4gbV9pbWFnZUxvYWRl
cjsKICAgICBJbnRQb2ludCBtX2NsaWNrTG9jYXRpb247IC8vIFZhbGlkIG9ubHkgZHVyaW5nIEhU
TUxGb3JtRWxlbWVudDo6cHJlcGFyZUZvclN1Ym1pc3Npb24oKS4KIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKaW5kZXggNTEwMjM5Mi4uMDVjYmI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcApAQCAtNiw2ICs2LDcgQEAKICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJv
c2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdl
aW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0
cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC03Mjcs
NiArNzI4LDI0IEBAIFN0cmluZyBJbnB1dFR5cGU6OmRlZmF1bHRUb29sVGlwKCkgY29uc3QKICAg
ICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKK3Vuc2lnbmVkIElucHV0VHlwZTo6aGVpZ2h0KGJvb2wg
aWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit1
bnNpZ25lZCBJbnB1dFR5cGU6OndpZHRoKGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKSBj
b25zdAoreworICAgIHJldHVybiAwOworfQorCit2b2lkIElucHV0VHlwZTo6c2V0SGVpZ2h0KHVu
c2lnbmVkIGhlaWdodCkKK3sKK30KKwordm9pZCBJbnB1dFR5cGU6OnNldFdpZHRoKHVuc2lnbmVk
IHdpZHRoKQoreworfQorCiBuYW1lc3BhY2UgSW5wdXRUeXBlTmFtZXMgewogCiAvLyBUaGUgdHlw
ZSBuYW1lcyBtdXN0IGJlIGxvd2VyY2FzZWQgYmVjYXVzZSB0aGV5IHdpbGwgYmUgdGhlIHJldHVy
biB2YWx1ZXMgb2YKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGMxM2ZhMDguLjhhNzE2MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI2Miw2ICsyNjMsMTIgQEAgcHVibGlj
OgogICAgIC8vIHN0cmluZy4gVGhpcyBzaG91bGQgbm90IGJlIGNhbGxlZCBmb3IgdHlwZXMgd2l0
aG91dCB2YWx1ZUFzTnVtYmVyLgogICAgIHZpcnR1YWwgU3RyaW5nIHNlcmlhbGl6ZShkb3VibGUp
IGNvbnN0OwogCisgICAgLy8gU2V0cyBhbmQgR2V0cyB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBi
dXR0b24gaWYgaXQgaXMgaW1hZ2UgYnV0dG9uLgorICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0
KGJvb2wpIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgoYm9vbCkgY29uc3Q7Cisg
ICAgdmlydHVhbCB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7CisgICAgdmlydHVhbCB2b2lkIHNl
dFdpZHRoKHVuc2lnbmVkKTsKKwogcHJvdGVjdGVkOgogICAgIElucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50KiBlbGVtZW50KSA6IG1fZWxlbWVudChlbGVtZW50KSB7IH0KICAgICBIVE1MSW5wdXRF
bGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50OyB9Cg==
</data>
<flag name="review"
          id="116505"
          type_id="1"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117571</attachid>
            <date>2011-12-01 22:43:24 -0800</date>
            <delta_ts>2011-12-02 01:00:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-witdh_height_attributes_of_input_element_1201.patch</filename>
            <type>text/plain</type>
            <size>18430</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNWY1MGMyLi42YjQ0MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEt
MzAgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnOiBB
ZGRlZC4KKwogMjAxMS0xMS0yNCAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CiAKICAg
ICAgICAgTWljcm9kYXRhOiBTdXBwb3J0IGZvciBwcm9wZXJ0aWVzIGF0dHJpYnV0ZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWln
aHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMmMyOGM3ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDEg
QEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBjYXNlICMxIDogSW1hZ2UsIEhUTUwg
aW5saW5lIHNldHRpbmcgYXMgIjE2MCIsICI4MCIKK1BBU1MgaW1hZ2UxLndpZHRoLGltYWdlMS5o
ZWlnaHQgaXMgMTYwLDgwCitUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2Ny
aXB0IEFQSSBhcyAiMjYwIiwgIjEzMCIKK1BBU1MgaW1hZ2UyLndpZHRoLGltYWdlMi5oZWlnaHQg
aXMgMjYwLDEzMAorVGVzdCBjYXNlICMzIDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBB
UEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQQVNTIGltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0IGlz
IDAsMAorVGVzdCBjYXNlICM0IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMg
IjEyMC45OSIsICI2MC41NSIKK1BBU1MgaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIw
LDYwCitUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIx
MDAiLCAiNTAiCitQQVNTIHRleHQxLndpZHRoLHRleHQxLmhlaWdodCBpcyAwLDAKK1Rlc3QgY2Fz
ZSAjNiA6IEZpbGUsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEwMCIsICI1MCIKK1BB
U1MgZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0IGlzIDAsMAorVGVzdCBjYXNlICM3IDogRGF0ZSwg
U2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyAiMTAwIiwgIjUwIgorUEFTUyBkYXRlMS53aWR0
aCxkYXRlMS5oZWlnaHQgaXMgMCwwCitUZXN0IGNhc2UgIzggOiBCdXR0b24sIFNldHRpbmcgYnkg
SmF2YVNjcmlwdCBBUEkgYXMgIjEwMCIsICI1MCIKK1BBU1MgYnV0dG9uMS53aWR0aCxidXR0b24x
LmhlaWdodCBpcyAwLDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCisKKworCisKKworCisKKworCisKKworCisKKworCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjllYmI4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmli
dXRlcy5odG1sCkBAIC0wLDAgKzEsMTEyIEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCis8
aGVhZD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keT4NCis8c2NyaXB0Pg0KK2Rlc2NyaXB0aW9u
KCd3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgSFRNTElucHV0RWxlbWVudC4nKTsNCis8
L3NjcmlwdD4NCisNCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4NCisNCis8ZGl2IGlkPSJkaXYx
Ij4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2UxIiBzcmM9InJlc291cmNlcy9n
cmVlbi5qcGciIHdpZHRoPSIxNjAiIGhlaWdodD0iODBweCI+DQorPC9kaXY+DQorPGJyPg0KKw0K
KzxkaXYgaWQ9ImRpdjIiPg0KKyAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTIiIHNy
Yz0icmVzb3VyY2VzL2dyZWVuLmpwZyI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRp
djMiPg0KKyAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTMiIHNyYz0icmVzb3VyY2Vz
L2dyZWVuLmpwZyI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjQiPg0KKyAgICA8
aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTQiIHNyYz0icmVzb3VyY2VzL2dyZWVuLmpwZyI+
DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjUiPg0KKyAgICA8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9InRleHQxIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2NiI+DQor
ICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZTEiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8
ZGl2IGlkPSJkaXY3Ij4NCisgICAgPGlucHV0IHR5cGU9ImRhdGUiIGlkPSJkYXRlMSI+DQorPC9k
aXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjgiPg0KKyAgICA8aW5wdXQgdHlwZT0iYnV0dG9u
IiBpZD0iYnV0dG9uMSI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxzY3JpcHQ+DQordmFyIGRpdjEg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIpOw0KK3ZhciBpbWFnZTEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjMSA6IEltYWdl
LCBIVE1MIGlubGluZSBzZXR0aW5nIGFzIFwiMTYwXCIsIFwiODBcIicpOw0KK3Nob3VsZEJlKCdp
bWFnZTEud2lkdGgsaW1hZ2UxLmhlaWdodCcsICcxNjAsODAnKTsNCisNCit2YXIgZGl2MiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYyIik7DQordmFyIGltYWdlMiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpbWFnZTIiKTsNCitpbWFnZTIud2lkdGggPSAyNjA7DQoraW1hZ2UyLmhl
aWdodCA9IDEzMDsNCitkZWJ1ZygnVGVzdCBjYXNlICMyIDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2
YVNjcmlwdCBBUEkgYXMgXCIyNjBcIiwgXCIxMzBcIicpOw0KK3Nob3VsZEJlKCdpbWFnZTIud2lk
dGgsaW1hZ2UyLmhlaWdodCcsICcyNjAsMTMwJyk7DQorDQordmFyIGRpdjMgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZGl2MyIpOw0KK3ZhciBpbWFnZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiaW1hZ2UzIik7DQoraW1hZ2UzLndpZHRoID0gIjEyMHB4IjsNCitpbWFnZTMuaGVpZ2h0
ID0gIjYwcHgiOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzMgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZh
U2NyaXB0IEFQSSBhcyBcIjEyMHB4XCIsIFwiNjBweFwiJyk7DQorc2hvdWxkQmUoJ2ltYWdlMy53
aWR0aCxpbWFnZTMuaGVpZ2h0JywgJzAsMCcpOw0KKw0KK3ZhciBkaXY0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRpdjQiKTsNCit2YXIgaW1hZ2U0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImltYWdlNCIpOw0KK2ltYWdlNC53aWR0aCA9IDEyMC45OTsNCitpbWFnZTQuaGVpZ2h0ID0g
NjAuOTk7DQorZGVidWcoJ1Rlc3QgY2FzZSAjNCA6IEltYWdlLCBTZXR0aW5nIGJ5IEphdmFTY3Jp
cHQgQVBJIGFzIFwiMTIwLjk5XCIsIFwiNjAuNTVcIicpOw0KK3Nob3VsZEJlKCdpbWFnZTQud2lk
dGgsaW1hZ2U0LmhlaWdodCcsICcxMjAsNjAnKTsNCisNCit2YXIgZGl2NSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkaXY1Iik7DQordmFyIHRleHQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInRleHQxIik7DQordGV4dDEud2lkdGggPSAxMDA7DQordGV4dDEuaGVpZ2h0ID0gNTA7DQor
ZGVidWcoJ1Rlc3QgY2FzZSAjNSA6IFRleHQsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMg
XCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmUoJ3RleHQxLndpZHRoLHRleHQxLmhlaWdodCcs
ICcwLDAnKTsNCisNCit2YXIgZGl2NiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY2Iik7
DQordmFyIGZpbGUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUxIik7DQorZmlsZTEu
d2lkdGggPSAxMDA7DQorZmlsZTEuaGVpZ2h0ID0gNTA7DQorZGVidWcoJ1Rlc3QgY2FzZSAjNiA6
IEZpbGUsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMDBcIiwgXCI1MFwiJyk7DQor
c2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCcsICcwLDAnKTsNCisNCit2YXIgZGl2
NyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY3Iik7DQordmFyIGRhdGUxID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImRhdGUxIik7DQorZGF0ZTEud2lkdGggPSAxMDA7DQorZGF0ZTEu
aGVpZ2h0ID0gNTA7DQorZGVidWcoJ1Rlc3QgY2FzZSAjNyA6IERhdGUsIFNldHRpbmcgYnkgSmF2
YVNjcmlwdCBBUEkgYXMgXCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmUoJ2RhdGUxLndpZHRo
LGRhdGUxLmhlaWdodCcsICcwLDAnKTsNCisNCit2YXIgZGl2OCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkaXY4Iik7DQordmFyIGJ1dHRvbjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
YnV0dG9uMSIpOw0KK2J1dHRvbjEud2lkdGggPSAxMDA7DQorYnV0dG9uMS5oZWlnaHQgPSA1MDsN
CitkZWJ1ZygnVGVzdCBjYXNlICM4IDogQnV0dG9uLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJ
IGFzIFwiMTAwXCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlKCdidXR0b24xLndpZHRoLGJ1dHRvbjEu
aGVpZ2h0JywgJzAsMCcpOw0KKw0KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOw0KKzwv
c2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZjcwMGI2ODA3ZDE5NTM1MmUx
YWIwMjE0Y2U0ZjFlZGY5MjAzNDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDc2NAp6Y21leD08
TnBIJjBXVVhDSHdII1ZNdXIzK1djZEcocH4xQnhHbVV9NCpPeCh5ZnF7WDhmdDY4K2ZmPmtSMVZS
UXoKekRGIytCbn1OWkxRNXd6O1YkXmBEVlBhcnQmdHpiTXMpKyo5QWRtcFdLOzJOOVgjbz5sZ30/
JTQxUkpQPTtzMCQwCnpYOWd4bE1pNjJHQXxQTzlXZDtFQDc4WWghYn5iaSliflpMUGJgRVklYmBD
Qk1IYTFSUFBBK2I0OXYmV2NQRl9BPAp6OXpHekc4KU9KYkZFZHkjRD5ueGwyUkYmIXt7YVI7NGg4
YFIwY0opZTF8fnM5VzxrZFBNO1BSUks0QXJoN2J3Vn0KemZSVHhyZyUjKWBwZ1Z2SHdoOTI5JiY8
cE9iU3hfaUZkIUlmZiR8SjJmfi1Qe2hLXzgpZnI7ISZnKDYwYzZCbHdRCnpKOGU4RDhnJWk0aWc4
aj02RE9DTHhQK3ZYcyt6aW5yazA3Um5ZbzNmbTl2WWhvNGJkblM4enlaU2E/S2FSQn1wYwp6VDYj
dWlSJmh5YlMkUmNlUmRZKmdUWUU9bSpRQ2kpcmNScWFXOUY8eWk8Y34yd3RVNlBSaHU/JSp9ODR9
ai05Jj4KejlYQGpPKnpwcjVQaEdsdjw/Nk5USCpWZn5ffmBNSXJfWXxoYz1fdCVyX1chJGUqNkM4
PVAhYEk3I1d4JC1oJXJLCnomMG01KmU9en4kZlEyMzhGR2krdkFaOFkxVk8yQ182TEpoPlBiP0h4
R0hUPXlhaGtZcjwzVWJrPERkX3NOa3RkQQp5IzhnWmtzKHU3ezRlVEBHSmt+XigmKV48SWAwRXd9
ND5LYiRAfFhufj4+MGokWClNfmBiXmdQanwyRn5jX3N2V0kKCmxpdGVyYWwgMApIY21WP2QwMDAw
MQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA1NmMzMDAwLi4xNWY0ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzIgQEAKKzIwMTEtMTEtMzAgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAg
ICAgICB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBh
Y2Nlc3NlZCBieSBKYXZhU2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRv
biwgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAg
VGhlc2UgYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRw
Oi8vd3d3LnczLm9yZy9UUi9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0
aAorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDogQWRkIHNldHRlci9nZXR0
ZXIgZnVuY3Rpb25zIHRvIHF1ZXJ5L3NldCB3aWR0aC9oZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmhlaWdodCk6IEdldHMgaGVpZ2h0
IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp3
aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodCk6IFNldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aCk6IFNldHMgd2lk
dGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDog
QWRkIHB1YmxpYyBwcm90b3R5cGUuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bDogQWRkIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1
dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucyBpZiB0aGUgZWxlbWVudCBpcyBhbiBpbWFn
ZSBidXR0b24uCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0KTogR2V0
cyBoZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRU
eXBlOjp3aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKiBodG1s
L0ltYWdlSW5wdXRUeXBlLmg6IEFkZCBwcm90b3R5cGUuCisgICAgICAgICogaHRtbC9JbnB1dFR5
cGUuY3BwOiBBZGQgc2V0dGVyL2dldHRlciBmdW5jdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpJ
bnB1dFR5cGU6OmhlaWdodCk6IFJldHVybnMgemVyby4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0
VHlwZTo6d2lkdGgpOiBSZXR1cm5zIHplcm8uCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6
OnNldEhlaWdodCk6IFNldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGU6OnNldFdpZHRoKTogU2V0cyBoZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4K
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOiBBZGQgcHJvdG90eXBlLgorCiAyMDExLTExLTI0
ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbml0aWFs
aXplIGdsb2JhbCB2YXJpYWJsZXMgZHVyaW5nIElETFBhcnNlciBvYmplY3QgY3JlYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDA1YTA5YjkuLjE1ODNh
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNyw2ICs3
LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9y
ZykKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwpAQCAtMTAxNCw2ICsxMDE1LDI2IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c2l6
ZVNob3VsZEluY2x1ZGVEZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3QKICAgICBy
ZXR1cm4gbV9pbnB1dFR5cGUtPnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihkZWZhdWx0U2l6
ZSwgcHJlZmVycmVkU2l6ZSk7CiB9CiAKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OmhlaWdo
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5oZWlnaHQoKTsKK30KKwordW5z
aWduZWQgSFRNTElucHV0RWxlbWVudDo6d2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX2lu
cHV0VHlwZS0+d2lkdGgoKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQo
dW5zaWduZWQgaGVpZ2h0KQoreworICAgIG1faW5wdXRUeXBlLT5zZXRIZWlnaHQoaGVpZ2h0KTsK
K30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB3aWR0aCkKK3sK
KyAgICBtX2lucHV0VHlwZS0+c2V0V2lkdGgod2lkdGgpOworfQorCiB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OmNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzKGNvbnN0IEVsZW1lbnQqIHNvdXJjZSkK
IHsKICAgICBjb25zdCBIVE1MSW5wdXRFbGVtZW50KiBzb3VyY2VFbGVtZW50ID0gc3RhdGljX2Nh
c3Q8Y29uc3QgSFRNTElucHV0RWxlbWVudCo+KHNvdXJjZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCmluZGV4IDhlYjZkZmMuLmU2NDk1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zLDYgKzMsNyBAQAogICogICAgICAgICAgIChDKSAx
OTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAgIChDKSAy
MDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMzMsNiArMTM0LDExIEBAIHB1YmxpYzoK
ICAgICBpbnQgc2l6ZSgpIGNvbnN0OwogICAgIGJvb2wgc2l6ZVNob3VsZEluY2x1ZGVEZWNvcmF0
aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBoZWlnaHQoKSBj
b25zdDsKKyAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OworICAgIHZvaWQgc2V0SGVpZ2h0KHVu
c2lnbmVkKTsKKyAgICB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsKKwogICAgIHZvaWQgc2V0VHlw
ZShjb25zdCBTdHJpbmcmKTsKIAogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggNzQ2MzMzNC4uNDI0NzlmNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC0xLDYgKzEsNyBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0Bn
bWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzgsNiArMzksNyBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBkaXNhYmxl
ZDsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9mb2N1czsKICAgICAg
ICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYXV0b2NvbXBsZXRlOworICAgICAgICBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBoZWlnaHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ29uZGl0aW9uYWw9REFUQUxJU1RdIEhUTUxFbGVtZW50IGxpc3Q7CiAgICAgICAgIGF0dHJp
YnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1heDsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgbWF4
TGVuZ3RoIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTYwLDYgKzYyLDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3RyaW5nXSBE
T01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAy
CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsKICAgICAgICAg
YXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVlOworICAg
ICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aWR0aDsKICNpZiAhZGVmaW5lZChMQU5HVUFH
RV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICAgICAgICAgYXR0cmlidXRlIERhdGUgdmFsdWVBc0Rh
dGUgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDkwZDdiYjkuLjFkNTAzNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5n
IEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yNiwxMiArMjcsMTYgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1
ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKKwogaW5saW5lIEltYWdlSW5wdXRUeXBlOjpJbWFnZUlucHV0VHlwZShIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50KQogICAgIDogQmFzZUJ1dHRvbklucHV0VHlwZShlbGVtZW50
KQogewpAQCAtMTc0LDQgKzE3OSw0NiBAQCBib29sIEltYWdlSW5wdXRUeXBlOjpzaG91bGRSZXNw
ZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordW5z
aWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgUmVmUHRyPEhUTUxJ
bnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7CisKKyAgICBpZiAoIWVsZW1l
bnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhlIGF0dHJpYnV0ZSBmaXJzdCBm
b3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWUuCisgICAgICAgIHVuc2lnbmVkIGhlaWdodDsKKyAg
ICAgICAgaWYgKHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihlbGVtZW50LT5nZXRBdHRyaWJ1
dGUoaGVpZ2h0QXR0ciksIGhlaWdodCkpCisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworCisg
ICAgICAgIC8vIElmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUsIHVzZSBpdHMgaGllZ2h0LgorICAg
ICAgICBpZiAobV9pbWFnZUxvYWRlci0+aW1hZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBtX2lt
YWdlTG9hZGVyLT5pbWFnZSgpLT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LT5yZW5kZXJl
cigpLCAxLjBmKS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51
cGRhdGVMYXlvdXQoKTsKKworICAgIFJlbmRlckJveCogYm94ID0gZWxlbWVudC0+cmVuZGVyQm94
KCk7CisgICAgcmV0dXJuIGJveCA/IGFkanVzdEZvckFic29sdXRlWm9vbShib3gtPmNvbnRlbnRI
ZWlnaHQoKSwgYm94KSA6IDA7Cit9CisKK3Vuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3aWR0aCgp
IGNvbnN0Cit7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5l
bGVtZW50KCk7CisKKyAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8g
Q2hlY2sgdGhlIGF0dHJpYnV0ZSBmaXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWUuCisg
ICAgICAgIHVuc2lnbmVkIHdpZHRoOworICAgICAgICBpZiAocGFyc2VIVE1MTm9uTmVnYXRpdmVJ
bnRlZ2VyKGVsZW1lbnQtPmdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpLCB3aWR0aCkpCisgICAgICAg
ICAgICByZXR1cm4gd2lkdGg7CisKKyAgICAgICAgLy8gSWYgdGhlIGltYWdlIGlzIGF2YWlsYWJs
ZSwgdXNlIGl0cyB3aWR0aC4KKyAgICAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmltYWdlKCkpCisg
ICAgICAgICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXplRm9yUmVu
ZGVyZXIoZWxlbWVudC0+cmVuZGVyZXIoKSwgMS4wZikud2lkdGgoKTsKKyAgICB9CisKKyAgICBl
bGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKKworICAgIFJlbmRlckJveCogYm94
ID0gZWxlbWVudC0+cmVuZGVyQm94KCk7CisgICAgcmV0dXJuIGJveCA/IGFkanVzdEZvckFic29s
dXRlWm9vbShib3gtPmNvbnRlbnRXaWR0aCgpLCBib3gpIDogMDsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IDljYjYwMjEu
LjU5YjcwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAgLTEsNiArMSw3
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC02Miw2
ICs2Myw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCk7CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKTsK
IAorICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgT1ZFUlJJREUgY29uc3Q7CisgICAgdmly
dHVhbCB1bnNpZ25lZCB3aWR0aCgpIE9WRVJSSURFIGNvbnN0OworCiAgICAgT3duUHRyPEhUTUxJ
bWFnZUxvYWRlcj4gbV9pbWFnZUxvYWRlcjsKICAgICBJbnRQb2ludCBtX2NsaWNrTG9jYXRpb247
IC8vIFZhbGlkIG9ubHkgZHVyaW5nIEhUTUxGb3JtRWxlbWVudDo6cHJlcGFyZUZvclN1Ym1pc3Np
b24oKS4KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNTEwMjM5Mi4uMWMzNzEx
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNiw2ICs2LDcgQEAKICAqICAgICAg
ICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC00MSw2ICs0Miw4IEBACiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0
LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlICJIaWRkZW5JbnB1dFR5cGUuaCIKICNpbmNsdWRlICJJbWFnZUlucHV0
VHlwZS5oIgogI2luY2x1ZGUgIklzSW5kZXhJbnB1dFR5cGUuaCIKQEAgLTcxLDYgKzc0LDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CiAKIHR5cGVkZWYgUGFzc093blB0cjxJbnB1dFR5cGU+ICgqSW5wdXRU
eXBlRmFjdG9yeUZ1bmN0aW9uKShIVE1MSW5wdXRFbGVtZW50Kik7CiB0eXBlZGVmIEhhc2hNYXA8
U3RyaW5nLCBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24sIENhc2VGb2xkaW5nSGFzaD4gSW5wdXRU
eXBlRmFjdG9yeU1hcDsKQEAgLTcyNyw2ICs3MzEsMjYgQEAgU3RyaW5nIElucHV0VHlwZTo6ZGVm
YXVsdFRvb2xUaXAoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAordW5zaWduZWQg
SW5wdXRUeXBlOjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit1bnNpZ25l
ZCBJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBJ
bnB1dFR5cGU6OnNldEhlaWdodCh1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgZWxlbWVudCgpLT5z
ZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIoaGVpZ2h0KSk7Cit9CisKK3Zv
aWQgSW5wdXRUeXBlOjpzZXRXaWR0aCh1bnNpZ25lZCB3aWR0aCkKK3sKKyAgICBlbGVtZW50KCkt
PnNldEF0dHJpYnV0ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKHdpZHRoKSk7Cit9CisKIG5h
bWVzcGFjZSBJbnB1dFR5cGVOYW1lcyB7CiAKIC8vIFRoZSB0eXBlIG5hbWVzIG11c3QgYmUgbG93
ZXJjYXNlZCBiZWNhdXNlIHRoZXkgd2lsbCBiZSB0aGUgcmV0dXJuIHZhbHVlcyBvZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmgKaW5kZXggYzEzZmEwOC4uNTBhMzI2OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0
VHlwZS5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVs
ZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtMjYyLDYgKzI2MywxMiBAQCBwdWJsaWM6CiAgICAgLy8gc3RyaW5nLiBU
aGlzIHNob3VsZCBub3QgYmUgY2FsbGVkIGZvciB0eXBlcyB3aXRob3V0IHZhbHVlQXNOdW1iZXIu
CiAgICAgdmlydHVhbCBTdHJpbmcgc2VyaWFsaXplKGRvdWJsZSkgY29uc3Q7CiAKKyAgICAvLyBT
ZXRzIGFuZCBHZXRzIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIGJ1dHRvbiBpZiBpdCBpcyBpbWFn
ZSBidXR0b24uCisgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEhlaWdodCh1
bnNpZ25lZCk7CisgICAgdmlydHVhbCB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsKKwogcHJvdGVj
dGVkOgogICAgIElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IG1fZWxlbWVu
dChlbGVtZW50KSB7IH0KICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyBy
ZXR1cm4gbV9lbGVtZW50OyB9Cg==
</data>
<flag name="review"
          id="117040"
          type_id="1"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117586</attachid>
            <date>2011-12-02 01:00:36 -0800</date>
            <delta_ts>2011-12-02 01:49:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-witdh_height_attributes_of_input_element_1201_01.patch</filename>
            <type>text/plain</type>
            <size>20350</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNWY1MGMyLi42YjQ0MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEt
MzAgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnOiBB
ZGRlZC4KKwogMjAxMS0xMS0yNCAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CiAKICAg
ICAgICAgTWljcm9kYXRhOiBTdXBwb3J0IGZvciBwcm9wZXJ0aWVzIGF0dHJpYnV0ZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWln
aHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjMwZDNmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUg
QEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBjYXNlICMxIDogSW1hZ2UsIEhUTUwg
aW5saW5lIHNldHRpbmcgYXMgIjE2MCIsICI4MCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBp
cyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UxLndp
ZHRoLGltYWdlMS5oZWlnaHQgaXMgMTYwLDgwCitUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGlu
ZyBieSBKYXZhU2NyaXB0IEFQSSBhcyAiMjYwIiwgIjEzMCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1h
Z2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1h
Z2UyLndpZHRoLGltYWdlMi5oZWlnaHQgaXMgMjYwLDEzMAorVGVzdCBjYXNlICMzIDogSW1hZ2Us
IFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQQVNTICgnd2lk
dGgnIGluIGltYWdlMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gaW1hZ2UxKSBpcyB0cnVl
CitQQVNTIGltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0IGlzIDAsMAorVGVzdCBjYXNlICM0IDog
SW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMC45OSIsICI2MC41NSIKK1BB
U1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEp
IGlzIHRydWUKK1BBU1MgaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIwLDYwCitUZXN0
IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAi
CitQQVNTICgnd2lkdGgnIGluIHRleHQxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiB0ZXh0
MSkgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQgaXMgMCwwCitQQVNTIHRl
eHQxLndpZHRoLHRleHQxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgdGV4dDEud2lkdGgsdGV4dDEu
aGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3Jp
cHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGZpbGUxKSBpcyB0cnVlCitQ
QVNTICgnaGVpZ2h0JyBpbiBmaWxlMSkgaXMgdHJ1ZQorUEFTUyBmaWxlMS53aWR0aCxmaWxlMS5o
ZWlnaHQgaXMgMCwwCitQQVNTIGZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCBpcyAxMDAsNTAKK1BB
U1MgZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzcgOiBEYXRl
LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgn
IGluIGRhdGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBkYXRlMSkgaXMgdHJ1ZQorUEFT
UyBkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGRhdGUxLndpZHRoLGRhdGUx
LmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0IGlzIDYwLDQw
CitUZXN0IGNhc2UgIzggOiBCdXR0b24sIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEw
MCIsICI1MCIKK1BBU1MgKCd3aWR0aCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdo
dCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0
IGlzIDAsMAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDEwMCw1MAorUEFT
UyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDYwLDQwCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKKworCisKKworCisKKworCisK
KworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRo
LWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdp
ZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDEzMzMxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbApAQCAtMCwwICsxLDE1NiBAQAorPCFE
T0NUWVBFIEhUTUw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+
DQorPHNjcmlwdD4NCitkZXNjcmlwdGlvbignd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9m
IEhUTUxJbnB1dEVsZW1lbnQuJyk7DQorPC9zY3JpcHQ+DQorDQorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+DQorDQorPGRpdiBpZD0iZGl2MSI+DQorICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9
ImltYWdlMSIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijgw
cHgiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXYyIj4NCisgICAgPGlucHV0IHR5
cGU9ImltYWdlIiBpZD0iaW1hZ2UyIiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2
Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXYzIj4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBp
ZD0iaW1hZ2UzIiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisN
Cis8ZGl2IGlkPSJkaXY0Ij4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2U0IiBz
cmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJk
aXY1Ij4NCisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ0ZXh0MSI+DQorPC9kaXY+DQorPGJy
Pg0KKw0KKzxkaXYgaWQ9ImRpdjYiPg0KKyAgICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUx
Ij4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2NyI+DQorICAgIDxpbnB1dCB0eXBl
PSJkYXRlIiBpZD0iZGF0ZTEiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY4Ij4N
CisgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImJ1dHRvbjEiPg0KKzwvZGl2Pg0KKzxicj4N
CisNCis8c2NyaXB0Pg0KK3ZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIp
Ow0KK3ZhciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIik7DQorZGVi
dWcoJ1Rlc3QgY2FzZSAjMSA6IEltYWdlLCBIVE1MIGlubGluZSBzZXR0aW5nIGFzIFwiMTYwXCIs
IFwiODBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3Vs
ZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZSgnaW1hZ2UxLndpZHRo
LGltYWdlMS5oZWlnaHQnLCAnMTYwLDgwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRpdjIiKTsNCit2YXIgaW1hZ2UyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlt
YWdlMiIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2Ny
aXB0IEFQSSBhcyBcIjI2MFwiLCBcIjEzMFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBp
biBpbWFnZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2UxKSIpOw0KK2lt
YWdlMi53aWR0aCA9IDI2MDsNCitpbWFnZTIuaGVpZ2h0ID0gMTMwOw0KK3Nob3VsZEJlKCdpbWFn
ZTIud2lkdGgsaW1hZ2UyLmhlaWdodCcsICcyNjAsMTMwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjMiKTsNCit2YXIgaW1hZ2UzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImltYWdlMyIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzMgOiBJbWFnZSwgU2V0dGluZyBi
eSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEyMHB4XCIsIFwiNjBweFwiJyk7DQorc2hvdWxkQmVUcnVl
KCIoJ3dpZHRoJyBpbiBpbWFnZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1h
Z2UxKSIpOw0KK2ltYWdlMy53aWR0aCA9ICIxMjBweCI7DQoraW1hZ2UzLmhlaWdodCA9ICI2MHB4
IjsNCitzaG91bGRCZSgnaW1hZ2UzLndpZHRoLGltYWdlMy5oZWlnaHQnLCAnMCwwJyk7DQorDQor
ZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjQiKTsNCit2YXIgaW1hZ2U0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlNCIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzQgOiBJ
bWFnZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEyMC45OVwiLCBcIjYwLjU1XCIn
KTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZVRydWUo
IignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQoraW1hZ2U0LndpZHRoID0gMTIwLjk5Ow0KK2ltYWdl
NC5oZWlnaHQgPSA2MC45OTsNCitzaG91bGRCZSgnaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQn
LCAnMTIwLDYwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjUiKTsN
Cit2YXIgdGV4dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dDEiKTsNCitkZWJ1Zygn
VGVzdCBjYXNlICM1IDogVGV4dCwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwi
LCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIHRleHQxKSIpOw0KK3Nob3Vs
ZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIHRleHQxKSIpOw0KK3RleHQxLndpZHRoID0gMTAwOw0KK3Rl
eHQxLmhlaWdodCA9IDUwOw0KK3Nob3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQnLCAn
MCwwJyk7DQorDQordGV4dDEudHlwZSA9ICdpbWFnZSc7DQordGV4dDEuc3JjID0gInJlc291cmNl
cy9ncmVlbi5qcGciOw0KK3Nob3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQnLCAnMTAw
LDUwJyk7DQordGV4dDEud2lkdGggPSA2MDsNCit0ZXh0MS5oZWlnaHQgPSA0MDsNCitzaG91bGRC
ZSgndGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0JywgJzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImRpdjYiKTsNCit2YXIgZmlsZTEgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZmlsZTEiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICM2IDogRmlsZSwgU2V0dGluZyBi
eSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUoIign
d2lkdGgnIGluIGZpbGUxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGZpbGUxKSIp
Ow0KK2ZpbGUxLndpZHRoID0gMTAwOw0KK2ZpbGUxLmhlaWdodCA9IDUwOw0KK3Nob3VsZEJlKCdm
aWxlMS53aWR0aCxmaWxlMS5oZWlnaHQnLCAnMCwwJyk7DQorDQorZmlsZTEudHlwZSA9ICdpbWFn
ZSc7DQorZmlsZTEuc3JjID0gInJlc291cmNlcy9ncmVlbi5qcGciOw0KK3Nob3VsZEJlKCdmaWxl
MS53aWR0aCxmaWxlMS5oZWlnaHQnLCAnMTAwLDUwJyk7DQorZmlsZTEud2lkdGggPSA2MDsNCitm
aWxlMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgnZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0Jywg
JzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjciKTsNCit2
YXIgZGF0ZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0ZTEiKTsNCitkZWJ1ZygnVGVz
dCBjYXNlICM3IDogRGF0ZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBc
IjUwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGRhdGUxKSIpOw0KK3Nob3VsZEJl
VHJ1ZSgiKCdoZWlnaHQnIGluIGRhdGUxKSIpOw0KK2RhdGUxLndpZHRoID0gMTAwOw0KK2RhdGUx
LmhlaWdodCA9IDUwOw0KK3Nob3VsZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAnMCww
Jyk7DQorDQorZGF0ZTEudHlwZSA9ICdpbWFnZSc7DQorZGF0ZTEuc3JjID0gInJlc291cmNlcy9n
cmVlbi5qcGciOw0KK3Nob3VsZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAnMTAwLDUw
Jyk7DQorZGF0ZTEud2lkdGggPSA2MDsNCitkYXRlMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgn
ZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0JywgJzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjgiKTsNCit2YXIgYnV0dG9uMSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJidXR0b24xIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjOCA6IEJ1dHRvbiwgU2V0dGlu
ZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUo
Iignd2lkdGgnIGluIGJ1dHRvbjEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gYnV0
dG9uMSkiKTsNCitidXR0b24xLndpZHRoID0gMTAwOw0KK2J1dHRvbjEuaGVpZ2h0ID0gNTA7DQor
c2hvdWxkQmUoJ2J1dHRvbjEud2lkdGgsYnV0dG9uMS5oZWlnaHQnLCAnMCwwJyk7DQorDQorYnV0
dG9uMS50eXBlID0gJ2ltYWdlJzsNCitidXR0b24xLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4uanBn
IjsNCitzaG91bGRCZSgnYnV0dG9uMS53aWR0aCxidXR0b24xLmhlaWdodCcsICcxMDAsNTAnKTsN
CitidXR0b24xLndpZHRoID0gNjA7DQorYnV0dG9uMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgn
YnV0dG9uMS53aWR0aCxidXR0b24xLmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOw0KKzwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0
bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4u
anBnIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY1ZjcwMGI2ODA3ZDE5NTM1MmUxYWIwMjE0Y2U0ZjFlZGY5MjAzNDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDc2NAp6Y21leD08TnBIJjBXVVhDSHdII1ZNdXIzK1djZEcocH4xQnhHbVV9
NCpPeCh5ZnF7WDhmdDY4K2ZmPmtSMVZSUXoKekRGIytCbn1OWkxRNXd6O1YkXmBEVlBhcnQmdHpi
TXMpKyo5QWRtcFdLOzJOOVgjbz5sZ30/JTQxUkpQPTtzMCQwCnpYOWd4bE1pNjJHQXxQTzlXZDtF
QDc4WWghYn5iaSliflpMUGJgRVklYmBDQk1IYTFSUFBBK2I0OXYmV2NQRl9BPAp6OXpHekc4KU9K
YkZFZHkjRD5ueGwyUkYmIXt7YVI7NGg4YFIwY0opZTF8fnM5VzxrZFBNO1BSUks0QXJoN2J3Vn0K
emZSVHhyZyUjKWBwZ1Z2SHdoOTI5JiY8cE9iU3hfaUZkIUlmZiR8SjJmfi1Qe2hLXzgpZnI7ISZn
KDYwYzZCbHdRCnpKOGU4RDhnJWk0aWc4aj02RE9DTHhQK3ZYcyt6aW5yazA3Um5ZbzNmbTl2WWhv
NGJkblM4enlaU2E/S2FSQn1wYwp6VDYjdWlSJmh5YlMkUmNlUmRZKmdUWUU9bSpRQ2kpcmNScWFX
OUY8eWk8Y34yd3RVNlBSaHU/JSp9ODR9ai05Jj4KejlYQGpPKnpwcjVQaEdsdjw/Nk5USCpWZn5f
fmBNSXJfWXxoYz1fdCVyX1chJGUqNkM4PVAhYEk3I1d4JC1oJXJLCnomMG01KmU9en4kZlEyMzhG
R2krdkFaOFkxVk8yQ182TEpoPlBiP0h4R0hUPXlhaGtZcjwzVWJrPERkX3NOa3RkQQp5IzhnWmtz
KHU3ezRlVEBHSmt+XigmKV48SWAwRXd9ND5LYiRAfFhufj4+MGokWClNfmBiXmdQanwyRn5jX3N2
V0kKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NmMzMDAwLi4xNWY0ZjVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMTEtMzAgIERvbmd3b28gSW0gIDxk
dy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcyBvZiBp
bnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZhU2NyaXB0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMDQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdHlwZSBvZiBpbnB1
dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgc2hvdWxk
IGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBpbiBI
VE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS90aGUtbWFwLWVs
ZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcDogQWRkIHNldHRlci9nZXR0ZXIgZnVuY3Rpb25zIHRvIHF1ZXJ5L3NldCB3aWR0aC9o
ZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ6OmhlaWdodCk6IEdldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodCk6IFNldHMg
aGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpzZXRXaWR0aCk6IFNldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaDogQWRkIHB1YmxpYyBwcm90b3R5cGUuCisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDogQWRkIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLgor
ICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucyBp
ZiB0aGUgZWxlbWVudCBpcyBhbiBpbWFnZSBidXR0b24uCisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUlucHV0VHlwZTo6aGVpZ2h0KTogR2V0cyBoZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQg
ZWxlbWVudC4KKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmg6IEFkZCBwcm90b3R5cGUu
CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aGVpZ2h0KTogUmV0dXJucyB6ZXJvLgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjp3aWR0aCk6IFJldHVybnMgemVyby4KKyAgICAgICAgKiBo
dG1sL0lucHV0VHlwZS5oOiBBZGQgcHJvdG90eXBlLgorCiAyMDExLTExLTI0ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbml0aWFsaXplIGdsb2JhbCB2
YXJpYWJsZXMgZHVyaW5nIElETFBhcnNlciBvYmplY3QgY3JlYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDA1YTA5YjkuLmU0ZjkwOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNyw2ICs3LDcgQEAKICAqIENv
cHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRw
Oi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MTAxNCw2ICsxMDE1LDI2IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c2l6ZVNob3VsZEluY2x1
ZGVEZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3QKICAgICByZXR1cm4gbV9pbnB1
dFR5cGUtPnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihkZWZhdWx0U2l6ZSwgcHJlZmVycmVk
U2l6ZSk7CiB9CiAKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OmhlaWdodCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5oZWlnaHQoKTsKK30KKwordW5zaWduZWQgSFRNTElu
cHV0RWxlbWVudDo6d2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX2lucHV0VHlwZS0+d2lk
dGgoKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgaGVp
Z2h0KQoreworICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6Om51bWJlcihoZWln
aHQpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK30KKwordm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB3aWR0aCkKK3sKKyAgICBzZXRBdHRy
aWJ1dGUod2lkdGhBdHRyLCBTdHJpbmc6Om51bWJlcih3aWR0aCkpOworfQorCiB2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OmNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzKGNvbnN0IEVsZW1lbnQqIHNv
dXJjZSkKIHsKICAgICBjb25zdCBIVE1MSW5wdXRFbGVtZW50KiBzb3VyY2VFbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgSFRNTElucHV0RWxlbWVudCo+KHNvdXJjZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhlYjZkZmMuLmU2NDk1ZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zLDYgKzMsNyBAQAogICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAg
IChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMzMsNiArMTM0LDExIEBAIHB1
YmxpYzoKICAgICBpbnQgc2l6ZSgpIGNvbnN0OwogICAgIGJvb2wgc2l6ZVNob3VsZEluY2x1ZGVE
ZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBoZWln
aHQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OworICAgIHZvaWQgc2V0SGVp
Z2h0KHVuc2lnbmVkKTsKKyAgICB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsKKwogICAgIHZvaWQg
c2V0VHlwZShjb25zdCBTdHJpbmcmKTsKIAogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggNzQ2MzMzNC4uNDI0Nzlm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC0xLDYgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndl
aW5pZ0BnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzgsNiArMzks
NyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBk
aXNhYmxlZDsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9mb2N1czsK
ICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYXV0b2NvbXBsZXRlOworICAg
ICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBoZWlnaHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFUQUxJU1RdIEhUTUxFbGVtZW50IGxpc3Q7CiAgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1heDsKICAgICAgICAgYXR0cmlidXRlIGxv
bmcgbWF4TGVuZ3RoIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTYwLDYgKzYyLDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBs
ZXZlbCAyCiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsKICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVl
OworICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aWR0aDsKICNpZiAhZGVmaW5lZChM
QU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICAgICAgICAgYXR0cmlidXRlIERhdGUgdmFs
dWVBc0RhdGUgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDkwZDdiYjkuLjFkNTAzNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBT
YW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yNiwxMiArMjcsMTYgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKKwogaW5saW5lIEltYWdlSW5wdXRUeXBlOjpJbWFnZUlucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogICAgIDogQmFzZUJ1dHRvbklucHV0VHlwZShl
bGVtZW50KQogewpAQCAtMTc0LDQgKzE3OSw0NiBAQCBib29sIEltYWdlSW5wdXRUeXBlOjpzaG91
bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgUmVmUHRy
PEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7CisKKyAgICBpZiAo
IWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhlIGF0dHJpYnV0ZSBm
aXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWUuCisgICAgICAgIHVuc2lnbmVkIGhlaWdo
dDsKKyAgICAgICAgaWYgKHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihlbGVtZW50LT5nZXRB
dHRyaWJ1dGUoaGVpZ2h0QXR0ciksIGhlaWdodCkpCisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0
OworCisgICAgICAgIC8vIElmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUsIHVzZSBpdHMgaGllZ2h0
LgorICAgICAgICBpZiAobV9pbWFnZUxvYWRlci0+aW1hZ2UoKSkKKyAgICAgICAgICAgIHJldHVy
biBtX2ltYWdlTG9hZGVyLT5pbWFnZSgpLT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LT5y
ZW5kZXJlcigpLCAxLjBmKS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICBlbGVtZW50LT5kb2N1bWVu
dCgpLT51cGRhdGVMYXlvdXQoKTsKKworICAgIFJlbmRlckJveCogYm94ID0gZWxlbWVudC0+cmVu
ZGVyQm94KCk7CisgICAgcmV0dXJuIGJveCA/IGFkanVzdEZvckFic29sdXRlWm9vbShib3gtPmNv
bnRlbnRIZWlnaHQoKSwgYm94KSA6IDA7Cit9CisKK3Vuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3
aWR0aCgpIGNvbnN0Cit7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0
aGlzLT5lbGVtZW50KCk7CisKKyAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAg
ICAgLy8gQ2hlY2sgdGhlIGF0dHJpYnV0ZSBmaXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFs
dWUuCisgICAgICAgIHVuc2lnbmVkIHdpZHRoOworICAgICAgICBpZiAocGFyc2VIVE1MTm9uTmVn
YXRpdmVJbnRlZ2VyKGVsZW1lbnQtPmdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpLCB3aWR0aCkpCisg
ICAgICAgICAgICByZXR1cm4gd2lkdGg7CisKKyAgICAgICAgLy8gSWYgdGhlIGltYWdlIGlzIGF2
YWlsYWJsZSwgdXNlIGl0cyB3aWR0aC4KKyAgICAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmltYWdl
KCkpCisgICAgICAgICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXpl
Rm9yUmVuZGVyZXIoZWxlbWVudC0+cmVuZGVyZXIoKSwgMS4wZikud2lkdGgoKTsKKyAgICB9CisK
KyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKKworICAgIFJlbmRlckJv
eCogYm94ID0gZWxlbWVudC0+cmVuZGVyQm94KCk7CisgICAgcmV0dXJuIGJveCA/IGFkanVzdEZv
ckFic29sdXRlWm9vbShib3gtPmNvbnRlbnRXaWR0aCgpLCBib3gpIDogMDsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IDlj
YjYwMjEuLjU5YjcwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC02Miw2ICs2Myw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxl
KCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0
ZXMoKTsKIAorICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgT1ZFUlJJREUgY29uc3Q7Cisg
ICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCgpIE9WRVJSSURFIGNvbnN0OworCiAgICAgT3duUHRy
PEhUTUxJbWFnZUxvYWRlcj4gbV9pbWFnZUxvYWRlcjsKICAgICBJbnRQb2ludCBtX2NsaWNrTG9j
YXRpb247IC8vIFZhbGlkIG9ubHkgZHVyaW5nIEhUTUxGb3JtRWxlbWVudDo6cHJlcGFyZUZvclN1
Ym1pc3Npb24oKS4KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNTEwMjM5Mi4u
NjY1YzIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNiw2ICs2LDcgQEAKICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MSw2ICs0Miw4IEBACiAjaW5jbHVkZSAiRm9ybURh
dGFMaXN0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIaWRkZW5JbnB1dFR5cGUuaCIKICNpbmNsdWRlICJJbWFn
ZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIklzSW5kZXhJbnB1dFR5cGUuaCIKQEAgLTcxLDYgKzc0
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHR5cGVkZWYgUGFzc093blB0cjxJbnB1dFR5cGU+ICgq
SW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uKShIVE1MSW5wdXRFbGVtZW50Kik7CiB0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24sIENhc2VGb2xkaW5nSGFzaD4g
SW5wdXRUeXBlRmFjdG9yeU1hcDsKQEAgLTcyNyw2ICs3MzEsMTYgQEAgU3RyaW5nIElucHV0VHlw
ZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAordW5z
aWduZWQgSW5wdXRUeXBlOjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit1
bnNpZ25lZCBJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwog
bmFtZXNwYWNlIElucHV0VHlwZU5hbWVzIHsKIAogLy8gVGhlIHR5cGUgbmFtZXMgbXVzdCBiZSBs
b3dlcmNhc2VkIGJlY2F1c2UgdGhleSB3aWxsIGJlIHRoZSByZXR1cm4gdmFsdWVzIG9mCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaAppbmRleCBjMTNmYTA4Li43MWQ3NjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCkBAIC0yNjIsNiArMjYzLDEwIEBAIHB1YmxpYzoKICAgICAvLyBzdHJpbmcu
IFRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIHR5cGVzIHdpdGhvdXQgdmFsdWVBc051bWJl
ci4KICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoZG91YmxlKSBjb25zdDsKIAorICAgIC8v
IFNldHMgYW5kIEdldHMgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgYnV0dG9uIGlmIGl0IGlzIGlt
YWdlIGJ1dHRvbi4KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OworICAgIHZp
cnR1YWwgdW5zaWduZWQgd2lkdGgoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIElucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IG1fZWxlbWVudChlbGVtZW50KSB7IH0KICAg
ICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50OyB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117590</attachid>
            <date>2011-12-02 01:49:42 -0800</date>
            <delta_ts>2011-12-19 10:44:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-witdh_height_attributes_of_input_element_1201_02.patch</filename>
            <type>text/plain</type>
            <size>20350</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNWY1MGMyLi42YjQ0MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEt
MzAgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
ZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0
IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRl
cyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9U
Ui9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICog
ZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnOiBB
ZGRlZC4KKwogMjAxMS0xMS0yNCAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CiAKICAg
ICAgICAgTWljcm9kYXRhOiBTdXBwb3J0IGZvciBwcm9wZXJ0aWVzIGF0dHJpYnV0ZS4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWln
aHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjMwZDNmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUg
QEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBjYXNlICMxIDogSW1hZ2UsIEhUTUwg
aW5saW5lIHNldHRpbmcgYXMgIjE2MCIsICI4MCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBp
cyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UxLndp
ZHRoLGltYWdlMS5oZWlnaHQgaXMgMTYwLDgwCitUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGlu
ZyBieSBKYXZhU2NyaXB0IEFQSSBhcyAiMjYwIiwgIjEzMCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1h
Z2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1h
Z2UyLndpZHRoLGltYWdlMi5oZWlnaHQgaXMgMjYwLDEzMAorVGVzdCBjYXNlICMzIDogSW1hZ2Us
IFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQQVNTICgnd2lk
dGgnIGluIGltYWdlMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gaW1hZ2UxKSBpcyB0cnVl
CitQQVNTIGltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0IGlzIDAsMAorVGVzdCBjYXNlICM0IDog
SW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMC45OSIsICI2MC41NSIKK1BB
U1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEp
IGlzIHRydWUKK1BBU1MgaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIwLDYwCitUZXN0
IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAi
CitQQVNTICgnd2lkdGgnIGluIHRleHQxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiB0ZXh0
MSkgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQgaXMgMCwwCitQQVNTIHRl
eHQxLndpZHRoLHRleHQxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgdGV4dDEud2lkdGgsdGV4dDEu
aGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3Jp
cHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGZpbGUxKSBpcyB0cnVlCitQ
QVNTICgnaGVpZ2h0JyBpbiBmaWxlMSkgaXMgdHJ1ZQorUEFTUyBmaWxlMS53aWR0aCxmaWxlMS5o
ZWlnaHQgaXMgMCwwCitQQVNTIGZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCBpcyAxMDAsNTAKK1BB
U1MgZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzcgOiBEYXRl
LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgn
IGluIGRhdGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBkYXRlMSkgaXMgdHJ1ZQorUEFT
UyBkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGRhdGUxLndpZHRoLGRhdGUx
LmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0IGlzIDYwLDQw
CitUZXN0IGNhc2UgIzggOiBCdXR0b24sIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEw
MCIsICI1MCIKK1BBU1MgKCd3aWR0aCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdo
dCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0
IGlzIDAsMAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDEwMCw1MAorUEFT
UyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDYwLDQwCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKKworCisKKworCisKKworCisK
KworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRo
LWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdp
ZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDEzMzMxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbApAQCAtMCwwICsxLDE1NiBAQAorPCFE
T0NUWVBFIEhUTUw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+
DQorPHNjcmlwdD4NCitkZXNjcmlwdGlvbignd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9m
IEhUTUxJbnB1dEVsZW1lbnQuJyk7DQorPC9zY3JpcHQ+DQorDQorPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+DQorDQorPGRpdiBpZD0iZGl2MSI+DQorICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9
ImltYWdlMSIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIiB3aWR0aD0iMTYwIiBoZWlnaHQ9Ijgw
cHgiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXYyIj4NCisgICAgPGlucHV0IHR5
cGU9ImltYWdlIiBpZD0iaW1hZ2UyIiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2
Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXYzIj4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBp
ZD0iaW1hZ2UzIiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisN
Cis8ZGl2IGlkPSJkaXY0Ij4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2U0IiBz
cmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJk
aXY1Ij4NCisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ0ZXh0MSI+DQorPC9kaXY+DQorPGJy
Pg0KKw0KKzxkaXYgaWQ9ImRpdjYiPg0KKyAgICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUx
Ij4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2NyI+DQorICAgIDxpbnB1dCB0eXBl
PSJkYXRlIiBpZD0iZGF0ZTEiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY4Ij4N
CisgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImJ1dHRvbjEiPg0KKzwvZGl2Pg0KKzxicj4N
CisNCis8c2NyaXB0Pg0KK3ZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIp
Ow0KK3ZhciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIik7DQorZGVi
dWcoJ1Rlc3QgY2FzZSAjMSA6IEltYWdlLCBIVE1MIGlubGluZSBzZXR0aW5nIGFzIFwiMTYwXCIs
IFwiODBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3Vs
ZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZSgnaW1hZ2UxLndpZHRo
LGltYWdlMS5oZWlnaHQnLCAnMTYwLDgwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRpdjIiKTsNCit2YXIgaW1hZ2UyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlt
YWdlMiIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2Ny
aXB0IEFQSSBhcyBcIjI2MFwiLCBcIjEzMFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBp
biBpbWFnZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2UxKSIpOw0KK2lt
YWdlMi53aWR0aCA9IDI2MDsNCitpbWFnZTIuaGVpZ2h0ID0gMTMwOw0KK3Nob3VsZEJlKCdpbWFn
ZTIud2lkdGgsaW1hZ2UyLmhlaWdodCcsICcyNjAsMTMwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjMiKTsNCit2YXIgaW1hZ2UzID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImltYWdlMyIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzMgOiBJbWFnZSwgU2V0dGluZyBi
eSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEyMHB4XCIsIFwiNjBweFwiJyk7DQorc2hvdWxkQmVUcnVl
KCIoJ3dpZHRoJyBpbiBpbWFnZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1h
Z2UxKSIpOw0KK2ltYWdlMy53aWR0aCA9ICIxMjBweCI7DQoraW1hZ2UzLmhlaWdodCA9ICI2MHB4
IjsNCitzaG91bGRCZSgnaW1hZ2UzLndpZHRoLGltYWdlMy5oZWlnaHQnLCAnMCwwJyk7DQorDQor
ZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjQiKTsNCit2YXIgaW1hZ2U0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlNCIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzQgOiBJ
bWFnZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEyMC45OVwiLCBcIjYwLjU1XCIn
KTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZVRydWUo
IignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQoraW1hZ2U0LndpZHRoID0gMTIwLjk5Ow0KK2ltYWdl
NC5oZWlnaHQgPSA2MC45OTsNCitzaG91bGRCZSgnaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQn
LCAnMTIwLDYwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjUiKTsN
Cit2YXIgdGV4dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dDEiKTsNCitkZWJ1Zygn
VGVzdCBjYXNlICM1IDogVGV4dCwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwi
LCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIHRleHQxKSIpOw0KK3Nob3Vs
ZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIHRleHQxKSIpOw0KK3RleHQxLndpZHRoID0gMTAwOw0KK3Rl
eHQxLmhlaWdodCA9IDUwOw0KK3Nob3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQnLCAn
MCwwJyk7DQorDQordGV4dDEudHlwZSA9ICdpbWFnZSc7DQordGV4dDEuc3JjID0gInJlc291cmNl
cy9ncmVlbi5qcGciOw0KK3Nob3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQnLCAnMTAw
LDUwJyk7DQordGV4dDEud2lkdGggPSA2MDsNCit0ZXh0MS5oZWlnaHQgPSA0MDsNCitzaG91bGRC
ZSgndGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0JywgJzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImRpdjYiKTsNCit2YXIgZmlsZTEgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZmlsZTEiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICM2IDogRmlsZSwgU2V0dGluZyBi
eSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUoIign
d2lkdGgnIGluIGZpbGUxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGZpbGUxKSIp
Ow0KK2ZpbGUxLndpZHRoID0gMTAwOw0KK2ZpbGUxLmhlaWdodCA9IDUwOw0KK3Nob3VsZEJlKCdm
aWxlMS53aWR0aCxmaWxlMS5oZWlnaHQnLCAnMCwwJyk7DQorDQorZmlsZTEudHlwZSA9ICdpbWFn
ZSc7DQorZmlsZTEuc3JjID0gInJlc291cmNlcy9ncmVlbi5qcGciOw0KK3Nob3VsZEJlKCdmaWxl
MS53aWR0aCxmaWxlMS5oZWlnaHQnLCAnMTAwLDUwJyk7DQorZmlsZTEud2lkdGggPSA2MDsNCitm
aWxlMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgnZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0Jywg
JzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjciKTsNCit2
YXIgZGF0ZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0ZTEiKTsNCitkZWJ1ZygnVGVz
dCBjYXNlICM3IDogRGF0ZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBc
IjUwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGRhdGUxKSIpOw0KK3Nob3VsZEJl
VHJ1ZSgiKCdoZWlnaHQnIGluIGRhdGUxKSIpOw0KK2RhdGUxLndpZHRoID0gMTAwOw0KK2RhdGUx
LmhlaWdodCA9IDUwOw0KK3Nob3VsZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAnMCww
Jyk7DQorDQorZGF0ZTEudHlwZSA9ICdpbWFnZSc7DQorZGF0ZTEuc3JjID0gInJlc291cmNlcy9n
cmVlbi5qcGciOw0KK3Nob3VsZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAnMTAwLDUw
Jyk7DQorZGF0ZTEud2lkdGggPSA2MDsNCitkYXRlMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgn
ZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0JywgJzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjgiKTsNCit2YXIgYnV0dG9uMSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJidXR0b24xIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjOCA6IEJ1dHRvbiwgU2V0dGlu
ZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUo
Iignd2lkdGgnIGluIGJ1dHRvbjEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gYnV0
dG9uMSkiKTsNCitidXR0b24xLndpZHRoID0gMTAwOw0KK2J1dHRvbjEuaGVpZ2h0ID0gNTA7DQor
c2hvdWxkQmUoJ2J1dHRvbjEud2lkdGgsYnV0dG9uMS5oZWlnaHQnLCAnMCwwJyk7DQorDQorYnV0
dG9uMS50eXBlID0gJ2ltYWdlJzsNCitidXR0b24xLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4uanBn
IjsNCitzaG91bGRCZSgnYnV0dG9uMS53aWR0aCxidXR0b24xLmhlaWdodCcsICcxMDAsNTAnKTsN
CitidXR0b24xLndpZHRoID0gNjA7DQorYnV0dG9uMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgn
YnV0dG9uMS53aWR0aCxidXR0b24xLmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOw0KKzwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0
bWw+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4u
anBnIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY1ZjcwMGI2ODA3ZDE5NTM1MmUxYWIwMjE0Y2U0ZjFlZGY5MjAzNDAKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDc2NAp6Y21leD08TnBIJjBXVVhDSHdII1ZNdXIzK1djZEcocH4xQnhHbVV9
NCpPeCh5ZnF7WDhmdDY4K2ZmPmtSMVZSUXoKekRGIytCbn1OWkxRNXd6O1YkXmBEVlBhcnQmdHpi
TXMpKyo5QWRtcFdLOzJOOVgjbz5sZ30/JTQxUkpQPTtzMCQwCnpYOWd4bE1pNjJHQXxQTzlXZDtF
QDc4WWghYn5iaSliflpMUGJgRVklYmBDQk1IYTFSUFBBK2I0OXYmV2NQRl9BPAp6OXpHekc4KU9K
YkZFZHkjRD5ueGwyUkYmIXt7YVI7NGg4YFIwY0opZTF8fnM5VzxrZFBNO1BSUks0QXJoN2J3Vn0K
emZSVHhyZyUjKWBwZ1Z2SHdoOTI5JiY8cE9iU3hfaUZkIUlmZiR8SjJmfi1Qe2hLXzgpZnI7ISZn
KDYwYzZCbHdRCnpKOGU4RDhnJWk0aWc4aj02RE9DTHhQK3ZYcyt6aW5yazA3Um5ZbzNmbTl2WWhv
NGJkblM4enlaU2E/S2FSQn1wYwp6VDYjdWlSJmh5YlMkUmNlUmRZKmdUWUU9bSpRQ2kpcmNScWFX
OUY8eWk8Y34yd3RVNlBSaHU/JSp9ODR9ai05Jj4KejlYQGpPKnpwcjVQaEdsdjw/Nk5USCpWZn5f
fmBNSXJfWXxoYz1fdCVyX1chJGUqNkM4PVAhYEk3I1d4JC1oJXJLCnomMG01KmU9en4kZlEyMzhG
R2krdkFaOFkxVk8yQ182TEpoPlBiP0h4R0hUPXlhaGtZcjwzVWJrPERkX3NOa3RkQQp5IzhnWmtz
KHU3ezRlVEBHSmt+XigmKV48SWAwRXd9ND5LYiRAfFhufj4+MGokWClNfmBiXmdQanwyRn5jX3N2
V0kKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NmMzMDAwLi5mMjdjYWI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMTEtMzAgIERvbmd3b28gSW0gIDxk
dy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcyBvZiBp
bnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZhU2NyaXB0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMDQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgdHlwZSBvZiBpbnB1
dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgc2hvdWxk
IGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBpbiBI
VE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS90aGUtbWFwLWVs
ZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcDogQWRkIHNldHRlci9nZXR0ZXIgZnVuY3Rpb25zIHRvIHF1ZXJ5L3NldCB3aWR0aC9o
ZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ6OmhlaWdodCk6IEdldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVu
dC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodCk6IFNldHMg
aGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpzZXRXaWR0aCk6IFNldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaDogQWRkIHB1YmxpYyBwcm90b3R5cGUuCisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDogQWRkIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLgor
ICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucyBp
ZiB0aGUgZWxlbWVudCBpcyBhbiBpbWFnZSBidXR0b24uCisgICAgICAgIChXZWJDb3JlOjpJbWFn
ZUlucHV0VHlwZTo6aGVpZ2h0KTogR2V0cyBoZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQg
ZWxlbWVudC4KKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmg6IEFkZCBwcm90b3R5cGUu
CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucy4KKyAg
ICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6aGVpZ2h0KTogUmV0dXJucyB6ZXJvLgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjp3aWR0aCk6IFJldHVybnMgemVyby4KKyAgICAgICAgKiBo
dG1sL0lucHV0VHlwZS5oOiBBZGQgcHJvdG90eXBlLgorCiAyMDExLTExLTI0ICBLZW50YXJvIEhh
cmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbml0aWFsaXplIGdsb2JhbCB2
YXJpYWJsZXMgZHVyaW5nIElETFBhcnNlciBvYmplY3QgY3JlYXRpb24KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDA1YTA5YjkuLmU0ZjkwOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtNyw2ICs3LDcgQEAKICAqIENv
cHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRw
Oi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MTAxNCw2ICsxMDE1LDI2IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6c2l6ZVNob3VsZEluY2x1
ZGVEZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3QKICAgICByZXR1cm4gbV9pbnB1
dFR5cGUtPnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihkZWZhdWx0U2l6ZSwgcHJlZmVycmVk
U2l6ZSk7CiB9CiAKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OmhlaWdodCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5oZWlnaHQoKTsKK30KKwordW5zaWduZWQgSFRNTElu
cHV0RWxlbWVudDo6d2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX2lucHV0VHlwZS0+d2lk
dGgoKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgaGVp
Z2h0KQoreworICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6Om51bWJlcihoZWln
aHQpKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKK30KKwordm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB3aWR0aCkKK3sKKyAgICBzZXRBdHRy
aWJ1dGUod2lkdGhBdHRyLCBTdHJpbmc6Om51bWJlcih3aWR0aCkpOworfQorCiB2b2lkIEhUTUxJ
bnB1dEVsZW1lbnQ6OmNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzKGNvbnN0IEVsZW1lbnQqIHNv
dXJjZSkKIHsKICAgICBjb25zdCBIVE1MSW5wdXRFbGVtZW50KiBzb3VyY2VFbGVtZW50ID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgSFRNTElucHV0RWxlbWVudCo+KHNvdXJjZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDhlYjZkZmMuLmU2NDk1ZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zLDYgKzMsNyBAQAogICogICAgICAgICAg
IChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQogICogICAgICAgICAg
IChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xMzMsNiArMTM0LDExIEBAIHB1
YmxpYzoKICAgICBpbnQgc2l6ZSgpIGNvbnN0OwogICAgIGJvb2wgc2l6ZVNob3VsZEluY2x1ZGVE
ZWNvcmF0aW9uKGludCYgcHJlZmVycmVkU2l6ZSkgY29uc3Q7CiAKKyAgICB1bnNpZ25lZCBoZWln
aHQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OworICAgIHZvaWQgc2V0SGVp
Z2h0KHVuc2lnbmVkKTsKKyAgICB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsKKwogICAgIHZvaWQg
c2V0VHlwZShjb25zdCBTdHJpbmcmKTsKIAogICAgIFN0cmluZyB2YWx1ZSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggNzQ2MzMzNC4uNDI0Nzlm
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBAIC0xLDYgKzEs
NyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndl
aW5pZ0BnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzgsNiArMzks
NyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBk
aXNhYmxlZDsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGF1dG9mb2N1czsK
ICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgYXV0b2NvbXBsZXRlOworICAg
ICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBoZWlnaHQ7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBbQ29uZGl0aW9uYWw9REFUQUxJU1RdIEhUTUxFbGVtZW50IGxpc3Q7CiAgICAgICAg
IGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1heDsKICAgICAgICAgYXR0cmlidXRlIGxv
bmcgbWF4TGVuZ3RoIHNldHRlciByYWlzZXMoRE9NRXhjZXB0aW9uKTsKQEAgLTYwLDYgKzYyLDcg
QEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsVG9OdWxsU3Ry
aW5nXSBET01TdHJpbmcgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBs
ZXZlbCAyCiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIHVzZU1hcDsKICAg
ICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHZhbHVl
OworICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aWR0aDsKICNpZiAhZGVmaW5lZChM
QU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKICAgICAgICAgYXR0cmlidXRlIERhdGUgdmFs
dWVBc0RhdGUgc2V0dGVyIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDkwZDdiYjkuLjFkNTAzNTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBT
YW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yNiwxMiArMjcsMTYgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKKwogaW5saW5lIEltYWdlSW5wdXRUeXBlOjpJbWFnZUlucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogICAgIDogQmFzZUJ1dHRvbklucHV0VHlwZShl
bGVtZW50KQogewpAQCAtMTc0LDQgKzE3OSw0NiBAQCBib29sIEltYWdlSW5wdXRUeXBlOjpzaG91
bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgUmVmUHRy
PEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7CisKKyAgICBpZiAo
IWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhlIGF0dHJpYnV0ZSBm
aXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWUuCisgICAgICAgIHVuc2lnbmVkIGhlaWdo
dDsKKyAgICAgICAgaWYgKHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihlbGVtZW50LT5nZXRB
dHRyaWJ1dGUoaGVpZ2h0QXR0ciksIGhlaWdodCkpCisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0
OworCisgICAgICAgIC8vIElmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUsIHVzZSBpdHMgaGllZ2h0
LgorICAgICAgICBpZiAobV9pbWFnZUxvYWRlci0+aW1hZ2UoKSkKKyAgICAgICAgICAgIHJldHVy
biBtX2ltYWdlTG9hZGVyLT5pbWFnZSgpLT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LT5y
ZW5kZXJlcigpLCAxLjBmKS5oZWlnaHQoKTsKKyAgICB9CisKKyAgICBlbGVtZW50LT5kb2N1bWVu
dCgpLT51cGRhdGVMYXlvdXQoKTsKKworICAgIFJlbmRlckJveCogYm94ID0gZWxlbWVudC0+cmVu
ZGVyQm94KCk7CisgICAgcmV0dXJuIGJveCA/IGFkanVzdEZvckFic29sdXRlWm9vbShib3gtPmNv
bnRlbnRIZWlnaHQoKSwgYm94KSA6IDA7Cit9CisKK3Vuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3
aWR0aCgpIGNvbnN0Cit7CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0
aGlzLT5lbGVtZW50KCk7CisKKyAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAg
ICAgLy8gQ2hlY2sgdGhlIGF0dHJpYnV0ZSBmaXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFs
dWUuCisgICAgICAgIHVuc2lnbmVkIHdpZHRoOworICAgICAgICBpZiAocGFyc2VIVE1MTm9uTmVn
YXRpdmVJbnRlZ2VyKGVsZW1lbnQtPmdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpLCB3aWR0aCkpCisg
ICAgICAgICAgICByZXR1cm4gd2lkdGg7CisKKyAgICAgICAgLy8gSWYgdGhlIGltYWdlIGlzIGF2
YWlsYWJsZSwgdXNlIGl0cyB3aWR0aC4KKyAgICAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmltYWdl
KCkpCisgICAgICAgICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXpl
Rm9yUmVuZGVyZXIoZWxlbWVudC0+cmVuZGVyZXIoKSwgMS4wZikud2lkdGgoKTsKKyAgICB9CisK
KyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKKworICAgIFJlbmRlckJv
eCogYm94ID0gZWxlbWVudC0+cmVuZGVyQm94KCk7CisgICAgcmV0dXJuIGJveCA/IGFkanVzdEZv
ckFic29sdXRlWm9vbShib3gtPmNvbnRlbnRXaWR0aCgpLCBib3gpIDogMDsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IDlj
YjYwMjEuLjU5YjcwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAgLTEs
NiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC02Miw2ICs2Myw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxl
KCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0
ZXMoKTsKIAorICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgT1ZFUlJJREUgY29uc3Q7Cisg
ICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCgpIE9WRVJSSURFIGNvbnN0OworCiAgICAgT3duUHRy
PEhUTUxJbWFnZUxvYWRlcj4gbV9pbWFnZUxvYWRlcjsKICAgICBJbnRQb2ludCBtX2NsaWNrTG9j
YXRpb247IC8vIFZhbGlkIG9ubHkgZHVyaW5nIEhUTUxGb3JtRWxlbWVudDo6cHJlcGFyZUZvclN1
Ym1pc3Npb24oKS4KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNTEwMjM5Mi4u
NjY1YzIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNiw2ICs2LDcgQEAKICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MSw2ICs0Miw4IEBACiAjaW5jbHVkZSAiRm9ybURh
dGFMaXN0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIaWRkZW5JbnB1dFR5cGUuaCIKICNpbmNsdWRlICJJbWFn
ZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIklzSW5kZXhJbnB1dFR5cGUuaCIKQEAgLTcxLDYgKzc0
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHR5cGVkZWYgUGFzc093blB0cjxJbnB1dFR5cGU+ICgq
SW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uKShIVE1MSW5wdXRFbGVtZW50Kik7CiB0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24sIENhc2VGb2xkaW5nSGFzaD4g
SW5wdXRUeXBlRmFjdG9yeU1hcDsKQEAgLTcyNyw2ICs3MzEsMTYgQEAgU3RyaW5nIElucHV0VHlw
ZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAordW5z
aWduZWQgSW5wdXRUeXBlOjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit1
bnNpZ25lZCBJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwog
bmFtZXNwYWNlIElucHV0VHlwZU5hbWVzIHsKIAogLy8gVGhlIHR5cGUgbmFtZXMgbXVzdCBiZSBs
b3dlcmNhc2VkIGJlY2F1c2UgdGhleSB3aWxsIGJlIHRoZSByZXR1cm4gdmFsdWVzIG9mCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaAppbmRleCBjMTNmYTA4Li43MWQ3NjEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCkBAIC0yNjIsNiArMjYzLDEwIEBAIHB1YmxpYzoKICAgICAvLyBzdHJpbmcu
IFRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIHR5cGVzIHdpdGhvdXQgdmFsdWVBc051bWJl
ci4KICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoZG91YmxlKSBjb25zdDsKIAorICAgIC8v
IFNldHMgYW5kIEdldHMgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgYnV0dG9uIGlmIGl0IGlzIGlt
YWdlIGJ1dHRvbi4KKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OworICAgIHZp
cnR1YWwgdW5zaWduZWQgd2lkdGgoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIElucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IG1fZWxlbWVudChlbGVtZW50KSB7IH0KICAg
ICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50OyB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117848</attachid>
            <date>2011-12-04 23:18:13 -0800</date>
            <delta_ts>2011-12-07 20:03:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch-witdh_height_attributes_of_input_element_1205.patch</filename>
            <type>text/plain</type>
            <size>19704</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNWY1MGMyLi5kZmZiZDU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTEt
MzAgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJZiB0
aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBh
cmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnOiBBZGRl
ZC4KKwogMjAxMS0xMS0yNCAgQXJrbyBTYWhhICA8YXJrb0Btb3Rvcm9sYS5jb20+CiAKICAgICAg
ICAgTWljcm9kYXRhOiBTdXBwb3J0IGZvciBwcm9wZXJ0aWVzIGF0dHJpYnV0ZS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZjMwZDNmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUgQEAK
K3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBjYXNlICMxIDogSW1hZ2UsIEhUTUwgaW5s
aW5lIHNldHRpbmcgYXMgIjE2MCIsICI4MCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0
cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UxLndpZHRo
LGltYWdlMS5oZWlnaHQgaXMgMTYwLDgwCitUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBi
eSBKYXZhU2NyaXB0IEFQSSBhcyAiMjYwIiwgIjEzMCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2Ux
KSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2Uy
LndpZHRoLGltYWdlMi5oZWlnaHQgaXMgMjYwLDEzMAorVGVzdCBjYXNlICMzIDogSW1hZ2UsIFNl
dHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQQVNTICgnd2lkdGgn
IGluIGltYWdlMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQ
QVNTIGltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0IGlzIDAsMAorVGVzdCBjYXNlICM0IDogSW1h
Z2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMC45OSIsICI2MC41NSIKK1BBU1Mg
KCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlz
IHRydWUKK1BBU1MgaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIwLDYwCitUZXN0IGNh
c2UgIzUgOiBUZXh0LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQ
QVNTICgnd2lkdGgnIGluIHRleHQxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiB0ZXh0MSkg
aXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQgaXMgMCwwCitQQVNTIHRleHQx
LndpZHRoLHRleHQxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgdGV4dDEud2lkdGgsdGV4dDEuaGVp
Z2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQg
QVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGZpbGUxKSBpcyB0cnVlCitQQVNT
ICgnaGVpZ2h0JyBpbiBmaWxlMSkgaXMgdHJ1ZQorUEFTUyBmaWxlMS53aWR0aCxmaWxlMS5oZWln
aHQgaXMgMCwwCitQQVNTIGZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1Mg
ZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzcgOiBEYXRlLCBT
ZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGlu
IGRhdGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBkYXRlMSkgaXMgdHJ1ZQorUEFTUyBk
YXRlMS53aWR0aCxkYXRlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGRhdGUxLndpZHRoLGRhdGUxLmhl
aWdodCBpcyAxMDAsNTAKK1BBU1MgZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0IGlzIDYwLDQwCitU
ZXN0IGNhc2UgIzggOiBCdXR0b24sIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEwMCIs
ICI1MCIKK1BBU1MgKCd3aWR0aCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcg
aW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlz
IDAsMAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDEwMCw1MAorUEFTUyBi
dXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDYwLDQwCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKKworCisKKworCisKKworCisKKwor
CisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhl
aWdodC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRo
LWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDEzMzMxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbApAQCAtMCwwICsxLDE1NiBAQAorPCFET0NU
WVBFIEhUTUw+DQorPGh0bWw+DQorPGhlYWQ+DQorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQor
PHNjcmlwdD4NCitkZXNjcmlwdGlvbignd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIEhU
TUxJbnB1dEVsZW1lbnQuJyk7DQorPC9zY3JpcHQ+DQorDQorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+DQorDQorPGRpdiBpZD0iZGl2MSI+DQorICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9Imlt
YWdlMSIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwcHgi
Pg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXYyIj4NCisgICAgPGlucHV0IHR5cGU9
ImltYWdlIiBpZD0iaW1hZ2UyIiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0K
Kzxicj4NCisNCis8ZGl2IGlkPSJkaXYzIj4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0i
aW1hZ2UzIiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8
ZGl2IGlkPSJkaXY0Ij4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2U0IiBzcmM9
InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY1
Ij4NCisgICAgPGlucHV0IHR5cGU9InRleHQiIGlkPSJ0ZXh0MSI+DQorPC9kaXY+DQorPGJyPg0K
Kw0KKzxkaXYgaWQ9ImRpdjYiPg0KKyAgICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUxIj4N
Cis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2NyI+DQorICAgIDxpbnB1dCB0eXBlPSJk
YXRlIiBpZD0iZGF0ZTEiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY4Ij4NCisg
ICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImJ1dHRvbjEiPg0KKzwvZGl2Pg0KKzxicj4NCisN
Cis8c2NyaXB0Pg0KK3ZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIpOw0K
K3ZhciBpbWFnZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIik7DQorZGVidWco
J1Rlc3QgY2FzZSAjMSA6IEltYWdlLCBIVE1MIGlubGluZSBzZXR0aW5nIGFzIFwiMTYwXCIsIFwi
ODBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJl
VHJ1ZSgiKCdoZWlnaHQnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZSgnaW1hZ2UxLndpZHRoLGlt
YWdlMS5oZWlnaHQnLCAnMTYwLDgwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImRpdjIiKTsNCit2YXIgaW1hZ2UyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdl
MiIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0
IEFQSSBhcyBcIjI2MFwiLCBcIjEzMFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBp
bWFnZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2UxKSIpOw0KK2ltYWdl
Mi53aWR0aCA9IDI2MDsNCitpbWFnZTIuaGVpZ2h0ID0gMTMwOw0KK3Nob3VsZEJlKCdpbWFnZTIu
d2lkdGgsaW1hZ2UyLmhlaWdodCcsICcyNjAsMTMwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRpdjMiKTsNCit2YXIgaW1hZ2UzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImltYWdlMyIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzMgOiBJbWFnZSwgU2V0dGluZyBieSBK
YXZhU2NyaXB0IEFQSSBhcyBcIjEyMHB4XCIsIFwiNjBweFwiJyk7DQorc2hvdWxkQmVUcnVlKCIo
J3dpZHRoJyBpbiBpbWFnZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2Ux
KSIpOw0KK2ltYWdlMy53aWR0aCA9ICIxMjBweCI7DQoraW1hZ2UzLmhlaWdodCA9ICI2MHB4IjsN
CitzaG91bGRCZSgnaW1hZ2UzLndpZHRoLGltYWdlMy5oZWlnaHQnLCAnMCwwJyk7DQorDQorZGl2
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjQiKTsNCit2YXIgaW1hZ2U0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlNCIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzQgOiBJbWFn
ZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEyMC45OVwiLCBcIjYwLjU1XCInKTsN
CitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZVRydWUoIign
aGVpZ2h0JyBpbiBpbWFnZTEpIik7DQoraW1hZ2U0LndpZHRoID0gMTIwLjk5Ow0KK2ltYWdlNC5o
ZWlnaHQgPSA2MC45OTsNCitzaG91bGRCZSgnaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQnLCAn
MTIwLDYwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjUiKTsNCit2
YXIgdGV4dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV4dDEiKTsNCitkZWJ1ZygnVGVz
dCBjYXNlICM1IDogVGV4dCwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBc
IjUwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIHRleHQxKSIpOw0KK3Nob3VsZEJl
VHJ1ZSgiKCdoZWlnaHQnIGluIHRleHQxKSIpOw0KK3RleHQxLndpZHRoID0gMTAwOw0KK3RleHQx
LmhlaWdodCA9IDUwOw0KK3Nob3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQnLCAnMCww
Jyk7DQorDQordGV4dDEudHlwZSA9ICdpbWFnZSc7DQordGV4dDEuc3JjID0gInJlc291cmNlcy9n
cmVlbi5qcGciOw0KK3Nob3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQnLCAnMTAwLDUw
Jyk7DQordGV4dDEud2lkdGggPSA2MDsNCit0ZXh0MS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgn
dGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0JywgJzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImRpdjYiKTsNCit2YXIgZmlsZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZmlsZTEiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICM2IDogRmlsZSwgU2V0dGluZyBieSBK
YXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lk
dGgnIGluIGZpbGUxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGZpbGUxKSIpOw0K
K2ZpbGUxLndpZHRoID0gMTAwOw0KK2ZpbGUxLmhlaWdodCA9IDUwOw0KK3Nob3VsZEJlKCdmaWxl
MS53aWR0aCxmaWxlMS5oZWlnaHQnLCAnMCwwJyk7DQorDQorZmlsZTEudHlwZSA9ICdpbWFnZSc7
DQorZmlsZTEuc3JjID0gInJlc291cmNlcy9ncmVlbi5qcGciOw0KK3Nob3VsZEJlKCdmaWxlMS53
aWR0aCxmaWxlMS5oZWlnaHQnLCAnMTAwLDUwJyk7DQorZmlsZTEud2lkdGggPSA2MDsNCitmaWxl
MS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgnZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0JywgJzYw
LDQwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjciKTsNCit2YXIg
ZGF0ZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGF0ZTEiKTsNCitkZWJ1ZygnVGVzdCBj
YXNlICM3IDogRGF0ZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBcIjUw
XCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGRhdGUxKSIpOw0KK3Nob3VsZEJlVHJ1
ZSgiKCdoZWlnaHQnIGluIGRhdGUxKSIpOw0KK2RhdGUxLndpZHRoID0gMTAwOw0KK2RhdGUxLmhl
aWdodCA9IDUwOw0KK3Nob3VsZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAnMCwwJyk7
DQorDQorZGF0ZTEudHlwZSA9ICdpbWFnZSc7DQorZGF0ZTEuc3JjID0gInJlc291cmNlcy9ncmVl
bi5qcGciOw0KK3Nob3VsZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAnMTAwLDUwJyk7
DQorZGF0ZTEud2lkdGggPSA2MDsNCitkYXRlMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgnZGF0
ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0JywgJzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRpdjgiKTsNCit2YXIgYnV0dG9uMSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJidXR0b24xIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjOCA6IEJ1dHRvbiwgU2V0dGluZyBi
eSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUoIign
d2lkdGgnIGluIGJ1dHRvbjEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gYnV0dG9u
MSkiKTsNCitidXR0b24xLndpZHRoID0gMTAwOw0KK2J1dHRvbjEuaGVpZ2h0ID0gNTA7DQorc2hv
dWxkQmUoJ2J1dHRvbjEud2lkdGgsYnV0dG9uMS5oZWlnaHQnLCAnMCwwJyk7DQorDQorYnV0dG9u
MS50eXBlID0gJ2ltYWdlJzsNCitidXR0b24xLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4uanBnIjsN
CitzaG91bGRCZSgnYnV0dG9uMS53aWR0aCxidXR0b24xLmhlaWdodCcsICcxMDAsNTAnKTsNCiti
dXR0b24xLndpZHRoID0gNjA7DQorYnV0dG9uMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgnYnV0
dG9uMS53aWR0aCxidXR0b24xLmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK3ZhciBzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOw0KKzwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+
DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBn
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1ZjcwMGIKQmluYXJ5IGZpbGVzIC9kZXYvbnVsbCBh
bmQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9ncmVlbi5qcGcgZGlmZmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNTZjMzAwMC4uNTQyZDRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBA
CisyMDExLTExLTMwICBEb25nd29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
d2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNz
ZWQgYnkgSmF2YVNjcmlwdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcwMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgSWYgdGhlIHR5cGUgb2YgaW5wdXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRo
L2hlaWdodCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0
dHJpYnV0ZXMgYXJlIGRlZmluZWQgaW4gSFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53
My5vcmcvVFIvaHRtbDUvdGhlLW1hcC1lbGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6IEFkZCBzZXR0ZXIvZ2V0dGVyIGZ1bmN0
aW9ucyB0byBxdWVyeS9zZXQgd2lkdGgvaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1
dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6d2lkdGgpOiBH
ZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRF
bGVtZW50OjpzZXRIZWlnaHQpOiBTZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlu
cHV0IGVsZW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZCBwdWJs
aWMgcHJvdG90eXBlLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6IEFkZCB3
aWR0aC9oZWlnaHQgYXR0cmlidXRlcy4KKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNw
cDogQWRkIGdldHRlciBmdW5jdGlvbnMgaWYgdGhlIGVsZW1lbnQgaXMgYW4gaW1hZ2UgYnV0dG9u
LgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OmhlaWdodCk6IEdldHMgaGVpZ2h0
IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6d2lk
dGgpOiBHZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgICogaHRtbC9JbWFnZUlu
cHV0VHlwZS5oOiBBZGQgcHJvdG90eXBlLgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDog
QWRkIGdldHRlciBmdW5jdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmhlaWdo
dCk6IFJldHVybnMgemVyby4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6d2lkdGgpOiBS
ZXR1cm5zIHplcm8uCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDogQWRkIHByb3RvdHlwZS4K
KwogMjAxMS0xMS0yNCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgSW5pdGlhbGl6ZSBnbG9iYWwgdmFyaWFibGVzIGR1cmluZyBJRExQYXJzZXIgb2JqZWN0
IGNyZWF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAw
NWEwOWI5Li5lNGY5MDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKQEAgLTcsNiArNyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAo
c2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29w
eXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTEwMTQsNiArMTAxNSwyNiBAQCBib29sIEhUTUxJbnB1
dEVsZW1lbnQ6OnNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNpemUp
IGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zaXplU2hvdWxkSW5jbHVkZURlY29yYXRp
b24oZGVmYXVsdFNpemUsIHByZWZlcnJlZFNpemUpOwogfQogCit1bnNpZ25lZCBIVE1MSW5wdXRF
bGVtZW50OjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lucHV0VHlwZS0+aGVpZ2h0
KCk7Cit9CisKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRoKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9pbnB1dFR5cGUtPndpZHRoKCk7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVu
dDo6c2V0SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKK3sKKyAgICBzZXRBdHRyaWJ1dGUoaGVpZ2h0
QXR0ciwgU3RyaW5nOjpudW1iZXIoaGVpZ2h0KSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgodW5zaWdu
ZWQgd2lkdGgpCit7CisgICAgc2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIo
d2lkdGgpKTsKK30KKwogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpjb3B5Tm9uQXR0cmlidXRlUHJv
cGVydGllcyhjb25zdCBFbGVtZW50KiBzb3VyY2UpCiB7CiAgICAgY29uc3QgSFRNTElucHV0RWxl
bWVudCogc291cmNlRWxlbWVudCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQq
Pihzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA4ZWI2
ZGZjLi5lNjQ5NWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAt
Myw2ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlz
dG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJA
a2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMTMzLDYgKzEzNCwxMSBAQCBwdWJsaWM6CiAgICAgaW50IHNpemUoKSBjb25zdDsKICAg
ICBib29sIHNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNpemUpIGNv
bnN0OwogCisgICAgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgd2lkdGgo
KSBjb25zdDsKKyAgICB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRXaWR0
aCh1bnNpZ25lZCk7CisKICAgICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBT
dHJpbmcgdmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aWRsCmluZGV4IDc0NjMzMzQuLjQyNDc5ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgorICogQ29weXJpZ2h0IChD
KSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTM4LDYgKzM5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRy
aWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVm
bGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9N
U3RyaW5nIGF1dG9jb21wbGV0ZTsKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgaGVp
Z2h0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFMSVNUXSBI
VE1MRWxlbWVudCBsaXN0OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBt
YXg7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIG1heExlbmd0aCBzZXR0ZXIgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CkBAIC02MCw2ICs2Miw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0cmli
dXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7IC8vIHJlYWRvbmx5
IGRyb3BwZWQgYXMgcGFydCBvZiBET00gbGV2ZWwgMgogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxl
Y3RdIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxUb051
bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgd2lkdGg7CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQCiAg
ICAgICAgIGF0dHJpYnV0ZSBEYXRlIHZhbHVlQXNEYXRlIHNldHRlciByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCA5
MGQ3YmI5Li5lM2Q1OTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcApA
QCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsMTIgKzI3LDE2IEBACiAjaW5jbHVk
ZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1
ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKIGlubGluZSBJbWFn
ZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKICAg
ICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkKIHsKQEAgLTE3NCw0ICsxNzksNDYgQEAg
Ym9vbCBJbWFnZUlucHV0VHlwZTo6c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRl
cygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Vuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjpoZWln
aHQoKSBjb25zdAoreworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50ID0gdGhp
cy0+ZWxlbWVudCgpOworCisgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKSB7CisgICAgICAg
IC8vIENoZWNrIHRoZSBhdHRyaWJ1dGUgZmlyc3QgZm9yIGFuIGV4cGxpY2l0IHBpeGVsIHZhbHVl
LgorICAgICAgICB1bnNpZ25lZCBoZWlnaHQ7CisgICAgICAgIGlmIChwYXJzZUhUTUxOb25OZWdh
dGl2ZUludGVnZXIoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShoZWlnaHRBdHRyKSwgaGVpZ2h0
KSkKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisKKyAgICAgICAgLy8gSWYgdGhlIGltYWdl
IGlzIGF2YWlsYWJsZSwgdXNlIGl0cyBoZWlnaHQuCisgICAgICAgIGlmIChtX2ltYWdlTG9hZGVy
LT5pbWFnZSgpKQorICAgICAgICAgICAgcmV0dXJuIG1faW1hZ2VMb2FkZXItPmltYWdlKCktPmlt
YWdlU2l6ZUZvclJlbmRlcmVyKGVsZW1lbnQtPnJlbmRlcmVyKCksIDEpLmhlaWdodCgpOworICAg
IH0KKworICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOworCisgICAgUmVu
ZGVyQm94KiBib3ggPSBlbGVtZW50LT5yZW5kZXJCb3goKTsKKyAgICByZXR1cm4gYm94ID8gYWRq
dXN0Rm9yQWJzb2x1dGVab29tKGJveC0+Y29udGVudEhlaWdodCgpLCBib3gpIDogMDsKK30KKwor
dW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKK3sKKyAgICBSZWZQdHI8SFRN
TElucHV0RWxlbWVudD4gZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKTsKKworICAgIGlmICghZWxl
bWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgICAvLyBDaGVjayB0aGUgYXR0cmlidXRlIGZpcnN0
IGZvciBhbiBleHBsaWNpdCBwaXhlbCB2YWx1ZS4KKyAgICAgICAgdW5zaWduZWQgd2lkdGg7Cisg
ICAgICAgIGlmIChwYXJzZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoZWxlbWVudC0+ZmFzdEdldEF0
dHJpYnV0ZSh3aWR0aEF0dHIpLCB3aWR0aCkpCisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisK
KyAgICAgICAgLy8gSWYgdGhlIGltYWdlIGlzIGF2YWlsYWJsZSwgdXNlIGl0cyB3aWR0aC4KKyAg
ICAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmltYWdlKCkpCisgICAgICAgICAgICByZXR1cm4gbV9p
bWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIoZWxlbWVudC0+cmVuZGVy
ZXIoKSwgMSkud2lkdGgoKTsKKyAgICB9CisKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRh
dGVMYXlvdXQoKTsKKworICAgIFJlbmRlckJveCogYm94ID0gZWxlbWVudC0+cmVuZGVyQm94KCk7
CisgICAgcmV0dXJuIGJveCA/IGFkanVzdEZvckFic29sdXRlWm9vbShib3gtPmNvbnRlbnRXaWR0
aCgpLCBib3gpIDogMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IDljYjYwMjEuLjU5YjcwODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC02Miw2ICs2Myw5IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJl
c3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKTsKIAorICAgIHZpcnR1YWwgdW5zaWduZWQg
aGVpZ2h0KCkgT1ZFUlJJREUgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCgpIE9W
RVJSSURFIGNvbnN0OworCiAgICAgT3duUHRyPEhUTUxJbWFnZUxvYWRlcj4gbV9pbWFnZUxvYWRl
cjsKICAgICBJbnRQb2ludCBtX2NsaWNrTG9jYXRpb247IC8vIFZhbGlkIG9ubHkgZHVyaW5nIEhU
TUxGb3JtRWxlbWVudDo6cHJlcGFyZUZvclN1Ym1pc3Npb24oKS4KIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKaW5kZXggNTEwMjM5Mi4uNjY1YzIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmNwcApAQCAtNiw2ICs2LDcgQEAKICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJv
c2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdl
aW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0
cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MSw2
ICs0Miw4IEBACiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1F
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIaWRkZW5J
bnB1dFR5cGUuaCIKICNpbmNsdWRlICJJbWFnZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIklzSW5k
ZXhJbnB1dFR5cGUuaCIKQEAgLTcxLDYgKzc0LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHR5cGVk
ZWYgUGFzc093blB0cjxJbnB1dFR5cGU+ICgqSW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uKShIVE1M
SW5wdXRFbGVtZW50Kik7CiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBJbnB1dFR5cGVGYWN0b3J5
RnVuY3Rpb24sIENhc2VGb2xkaW5nSGFzaD4gSW5wdXRUeXBlRmFjdG9yeU1hcDsKQEAgLTcyNyw2
ICs3MzEsMTYgQEAgU3RyaW5nIElucHV0VHlwZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KIAordW5zaWduZWQgSW5wdXRUeXBlOjpoZWlnaHQoKSBjb25z
dAoreworICAgIHJldHVybiAwOworfQorCit1bnNpZ25lZCBJbnB1dFR5cGU6OndpZHRoKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogbmFtZXNwYWNlIElucHV0VHlwZU5hbWVzIHsKIAog
Ly8gVGhlIHR5cGUgbmFtZXMgbXVzdCBiZSBsb3dlcmNhc2VkIGJlY2F1c2UgdGhleSB3aWxsIGJl
IHRoZSByZXR1cm4gdmFsdWVzIG9mCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCBjMTNmYTA4
Li5kMzc3M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTEsNiArMSw3IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yNjIsNiArMjYzLDEx
IEBAIHB1YmxpYzoKICAgICAvLyBzdHJpbmcuIFRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9y
IHR5cGVzIHdpdGhvdXQgdmFsdWVBc051bWJlci4KICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxp
emUoZG91YmxlKSBjb25zdDsKIAorICAgIC8vIEdldHMgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUg
aW5wdXQgZWxlbWVudCBpZiB0aGUgdHlwZSBvZiB0aGUgCisgICAgLy8gZWxlbWVudCBpcyBpbWFn
ZS4gSXQgcmV0dXJucyAwIGlmIHRoZSBlbGVtZW50IGlzIG5vdCBpbWFnZSB0eXBlLgorICAgIHZp
cnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0
aCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQpIDogbV9lbGVtZW50KGVsZW1lbnQpIHsgfQogICAgIEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQ7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118317</attachid>
            <date>2011-12-07 20:04:00 -0800</date>
            <delta_ts>2012-04-03 18:47:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70304-20111208130433.patch</filename>
            <type>text/plain</type>
            <size>21210</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzgxZjI0NmQ5ODY2ZjMw
ZTIxYjM5NTY3MTNmNTAzMTI3ZWExZWNhYy4uMTBkYWQ3ZWYzNTBkYzg4ODY3MGQ4Y2MzMzdhNmEy
OGU4ZGZlNDc2ZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTEyLTA3ICBEb25n
d29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0dHJp
YnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlwdC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSWYgdGhlIHR5cGUg
b2YgaW5wdXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVz
IHNob3VsZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRlZmlu
ZWQgaW4gSFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvdGhl
LW1hcC1lbGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHA6IEFkZCBzZXR0ZXIvZ2V0dGVyIGZ1bmN0aW9ucyB0byBxdWVyeS9zZXQg
d2lkdGgvaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6d2lkdGgpOiBHZXRzIHdpZHRoIG9mIGlucHV0
IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQp
OiBTZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElu
cHV0RWxlbWVudDo6c2V0V2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZCBwdWJsaWMgcHJvdG90eXBlLgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6IEFkZCB3aWR0aC9oZWlnaHQgYXR0cmli
dXRlcy4KKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDogQWRkIGdldHRlciBmdW5j
dGlvbnMgaWYgdGhlIGVsZW1lbnQgaXMgYW4gaW1hZ2UgYnV0dG9uLgorICAgICAgICAoV2ViQ29y
ZTo6SW1hZ2VJbnB1dFR5cGU6OmhlaWdodCk6IEdldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQu
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6d2lkdGgpOiBHZXRzIHdpZHRoIG9m
IGlucHV0IGVsZW1lbnQuCisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5oOiBBZGQgcHJv
dG90eXBlLgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDogQWRkIGdldHRlciBmdW5jdGlv
bnMuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmhlaWdodCk6IFJldHVybnMgemVyby4K
KyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6d2lkdGgpOiBSZXR1cm5zIHplcm8uCisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGUuaDogQWRkIHByb3RvdHlwZS4KKwogMjAxMS0xMi0wNyAgTGVv
IFlhbmcgIDxsZW8ueWFuZ0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgVXBzdHJlYW0g
dGhlIEJsYWNrQmVycnkgcG9ydGluZyBvZiBuZXR3b3JrIFJlc291cmNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCA0ODExM2I1N2RiZWNmYjQ4Y2Y2NzE5YmE3
MGQ2ZTE1MzAwODA0ZjM4Li42ZGIzNjhhYzI1ZWY5NzQ0NDhjY2FlNDNlNDA5Mzc1Yjg3Y2VkMzBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTcsNiArNyw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcp
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQorICogQ29weXJpZ2h0IChDKSAyMDEx
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTEwMTcsNiArMTAxOCwyNiBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnNpemVT
aG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNpemUpIGNvbnN0CiAgICAgcmV0
dXJuIG1faW5wdXRUeXBlLT5zaXplU2hvdWxkSW5jbHVkZURlY29yYXRpb24oZGVmYXVsdFNpemUs
IHByZWZlcnJlZFNpemUpOwogfQogCit1bnNpZ25lZCBIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQo
KSBjb25zdAoreworICAgIHJldHVybiBtX2lucHV0VHlwZS0+aGVpZ2h0KCk7Cit9CisKK3Vuc2ln
bmVkIEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnB1
dFR5cGUtPndpZHRoKCk7Cit9CisKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0SGVpZ2h0KHVu
c2lnbmVkIGhlaWdodCkKK3sKKyAgICBzZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpu
dW1iZXIoaGVpZ2h0KSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCit9
CisKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgd2lkdGgpCit7Cisg
ICAgc2V0QXR0cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIod2lkdGgpKTsKK30KKwog
dm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpjb3B5Tm9uQXR0cmlidXRlUHJvcGVydGllcyhjb25zdCBF
bGVtZW50KiBzb3VyY2UpCiB7CiAgICAgY29uc3QgSFRNTElucHV0RWxlbWVudCogc291cmNlRWxl
bWVudCA9IHN0YXRpY19jYXN0PGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQqPihzb3VyY2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBjZjlhYjVlMDlhYzljOGEwNTQx
MTY4NGE0MzJiZjdkMzViZDA5OGE1Li4yNDg1MjYxN2M2MmU1NzZlOGE5YWIzYzhmZWExZjg0ODA4
MjYwNzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMyw2ICsz
LDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2Rl
Lm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9y
ZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MTMzLDYgKzEzNCwxMSBAQCBwdWJsaWM6CiAgICAgaW50IHNpemUoKSBjb25zdDsKICAgICBib29s
IHNpemVTaG91bGRJbmNsdWRlRGVjb3JhdGlvbihpbnQmIHByZWZlcnJlZFNpemUpIGNvbnN0Owog
CisgICAgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgd2lkdGgoKSBjb25z
dDsKKyAgICB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRXaWR0aCh1bnNp
Z25lZCk7CisKICAgICB2b2lkIHNldFR5cGUoY29uc3QgU3RyaW5nJik7CiAKICAgICBTdHJpbmcg
dmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmlu
ZGV4IDc0NjMzMzRiYjFhZmIzNmQ5M2M2YTg3NjQxYjQyYzY1MjhiNWE1ZDQuLjQyNDc5ZjQzMjU3
NGNhMGZlNzA1MTQ3MmM1NzZhMTk3MGM0NzMxYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmlkbApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgorICogQ29weXJpZ2h0
IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKQEAgLTM4LDYgKzM5LDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBh
dHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZGlzYWJsZWQ7CiAgICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gYm9vbGVhbiBhdXRvZm9jdXM7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0g
RE9NU3RyaW5nIGF1dG9jb21wbGV0ZTsKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
aGVpZ2h0OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFMSVNU
XSBIVE1MRWxlbWVudCBsaXN0OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmlu
ZyBtYXg7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIG1heExlbmd0aCBzZXR0ZXIgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CkBAIC02MCw2ICs2Miw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFRvTnVsbFN0cmluZ10gRE9NU3RyaW5nIHR5cGU7IC8vIHJlYWRv
bmx5IGRyb3BwZWQgYXMgcGFydCBvZiBET00gbGV2ZWwgMgogICAgICAgICBhdHRyaWJ1dGUgW1Jl
ZmxlY3RdIERPTVN0cmluZyB1c2VNYXA7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ29udmVydE51bGxU
b051bGxTdHJpbmddIERPTVN0cmluZyB2YWx1ZTsKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgd2lkdGg7CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VBR0VfQ1BQ
CiAgICAgICAgIGF0dHJpYnV0ZSBEYXRlIHZhbHVlQXNEYXRlIHNldHRlciByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRl
eCA5MGQ3YmI5YWNhMjM4YWIyZTI3ZTIzNzQyOTVhOTgyYWU2ZWYxYTZhLi5lM2Q1OTkxOTM4ZGI0
MTA3ODBlMDE1ZTNkZjRlOTA5N2JlYmZiM2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5w
dXRUeXBlLmNwcApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDksIDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsMTIgKzI3LDE2
IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50
LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisK
IGlubGluZSBJbWFnZUlucHV0VHlwZTo6SW1hZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCog
ZWxlbWVudCkKICAgICA6IEJhc2VCdXR0b25JbnB1dFR5cGUoZWxlbWVudCkKIHsKQEAgLTE3NCw0
ICsxNzksNDYgQEAgYm9vbCBJbWFnZUlucHV0VHlwZTo6c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdp
ZHRoQXR0cmlidXRlcygpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3Vuc2lnbmVkIEltYWdlSW5w
dXRUeXBlOjpoZWlnaHQoKSBjb25zdAoreworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBl
bGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpOworCisgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigp
KSB7CisgICAgICAgIC8vIENoZWNrIHRoZSBhdHRyaWJ1dGUgZmlyc3QgZm9yIGFuIGV4cGxpY2l0
IHBpeGVsIHZhbHVlLgorICAgICAgICB1bnNpZ25lZCBoZWlnaHQ7CisgICAgICAgIGlmIChwYXJz
ZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShoZWlnaHRB
dHRyKSwgaGVpZ2h0KSkKKyAgICAgICAgICAgIHJldHVybiBoZWlnaHQ7CisKKyAgICAgICAgLy8g
SWYgdGhlIGltYWdlIGlzIGF2YWlsYWJsZSwgdXNlIGl0cyBoZWlnaHQuCisgICAgICAgIGlmICht
X2ltYWdlTG9hZGVyLT5pbWFnZSgpKQorICAgICAgICAgICAgcmV0dXJuIG1faW1hZ2VMb2FkZXIt
PmltYWdlKCktPmltYWdlU2l6ZUZvclJlbmRlcmVyKGVsZW1lbnQtPnJlbmRlcmVyKCksIDEpLmhl
aWdodCgpOworICAgIH0KKworICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgp
OworCisgICAgUmVuZGVyQm94KiBib3ggPSBlbGVtZW50LT5yZW5kZXJCb3goKTsKKyAgICByZXR1
cm4gYm94ID8gYWRqdXN0Rm9yQWJzb2x1dGVab29tKGJveC0+Y29udGVudEhlaWdodCgpLCBib3gp
IDogMDsKK30KKwordW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKK3sKKyAg
ICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKTsKKwor
ICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAgICAgICAvLyBDaGVjayB0aGUgYXR0
cmlidXRlIGZpcnN0IGZvciBhbiBleHBsaWNpdCBwaXhlbCB2YWx1ZS4KKyAgICAgICAgdW5zaWdu
ZWQgd2lkdGg7CisgICAgICAgIGlmIChwYXJzZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoZWxlbWVu
dC0+ZmFzdEdldEF0dHJpYnV0ZSh3aWR0aEF0dHIpLCB3aWR0aCkpCisgICAgICAgICAgICByZXR1
cm4gd2lkdGg7CisKKyAgICAgICAgLy8gSWYgdGhlIGltYWdlIGlzIGF2YWlsYWJsZSwgdXNlIGl0
cyB3aWR0aC4KKyAgICAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmltYWdlKCkpCisgICAgICAgICAg
ICByZXR1cm4gbV9pbWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIoZWxl
bWVudC0+cmVuZGVyZXIoKSwgMSkud2lkdGgoKTsKKyAgICB9CisKKyAgICBlbGVtZW50LT5kb2N1
bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKKworICAgIFJlbmRlckJveCogYm94ID0gZWxlbWVudC0+
cmVuZGVyQm94KCk7CisgICAgcmV0dXJuIGJveCA/IGFkanVzdEZvckFic29sdXRlWm9vbShib3gt
PmNvbnRlbnRXaWR0aCgpLCBib3gpIDogMDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCmluZGV4IDljYjYwMjE0NjZkNDFkZTNiOWJk
MDhlNjk5MzE3MDYwMGZlYzUxYmYuLjU5YjcwODRmZDA2MzdiZDM5MWY3YmI5ODFiNmNiYjY4ZmVl
NWZiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKQEAgLTEsNiArMSw3IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC02Miw2ICs2
Myw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCk7CiAgICAg
dmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKTsKIAor
ICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgT1ZFUlJJREUgY29uc3Q7CisgICAgdmlydHVh
bCB1bnNpZ25lZCB3aWR0aCgpIE9WRVJSSURFIGNvbnN0OworCiAgICAgT3duUHRyPEhUTUxJbWFn
ZUxvYWRlcj4gbV9pbWFnZUxvYWRlcjsKICAgICBJbnRQb2ludCBtX2NsaWNrTG9jYXRpb247IC8v
IFZhbGlkIG9ubHkgZHVyaW5nIEhUTUxGb3JtRWxlbWVudDo6cHJlcGFyZUZvclN1Ym1pc3Npb24o
KS4KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNTEwMjM5Mjc4ODhkNDM2NGY2
ZmI4MGY2ZTkxOWFhODc1YTQ2MDEwZS4uNjY1YzIyYjBiMjQxNDZmODJmYWQ1ODI0YmYwNGM4OGM1
NTI5ZmZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNiw2ICs2LDcgQEAKICAq
ICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MSw2ICs0Miw4IEBACiAjaW5jbHVkZSAiRm9ybURh
dGFMaXN0LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKICNpbmNsdWRlICJIaWRkZW5JbnB1dFR5cGUuaCIKICNpbmNsdWRlICJJbWFn
ZUlucHV0VHlwZS5oIgogI2luY2x1ZGUgIklzSW5kZXhJbnB1dFR5cGUuaCIKQEAgLTcxLDYgKzc0
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3VzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKIHR5cGVkZWYgUGFzc093blB0cjxJbnB1dFR5cGU+ICgq
SW5wdXRUeXBlRmFjdG9yeUZ1bmN0aW9uKShIVE1MSW5wdXRFbGVtZW50Kik7CiB0eXBlZGVmIEhh
c2hNYXA8U3RyaW5nLCBJbnB1dFR5cGVGYWN0b3J5RnVuY3Rpb24sIENhc2VGb2xkaW5nSGFzaD4g
SW5wdXRUeXBlRmFjdG9yeU1hcDsKQEAgLTcyNyw2ICs3MzEsMTYgQEAgU3RyaW5nIElucHV0VHlw
ZTo6ZGVmYXVsdFRvb2xUaXAoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAordW5z
aWduZWQgSW5wdXRUeXBlOjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit1
bnNpZ25lZCBJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwog
bmFtZXNwYWNlIElucHV0VHlwZU5hbWVzIHsKIAogLy8gVGhlIHR5cGUgbmFtZXMgbXVzdCBiZSBs
b3dlcmNhc2VkIGJlY2F1c2UgdGhleSB3aWxsIGJlIHRoZSByZXR1cm4gdmFsdWVzIG9mCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaAppbmRleCBjMTNmYTA4MzNmNWMzY2MyODkxMGQzNGM5ZWIzYmUxZWRi
YzJlZDM2Li5kMzc3M2YxMTAwZTkzYTlmMDllZjRiMmUwNjNlYTQwMzVhMjQ5ZGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEx
IFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0yNjIsNiArMjYzLDExIEBAIHB1YmxpYzoKICAgICAv
LyBzdHJpbmcuIFRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIHR5cGVzIHdpdGhvdXQgdmFs
dWVBc051bWJlci4KICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoZG91YmxlKSBjb25zdDsK
IAorICAgIC8vIEdldHMgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgaW5wdXQgZWxlbWVudCBpZiB0
aGUgdHlwZSBvZiB0aGUgCisgICAgLy8gZWxlbWVudCBpcyBpbWFnZS4gSXQgcmV0dXJucyAwIGlm
IHRoZSBlbGVtZW50IGlzIG5vdCBpbWFnZSB0eXBlLgorICAgIHZpcnR1YWwgdW5zaWduZWQgaGVp
Z2h0KCkgY29uc3Q7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OworCiBwcm90
ZWN0ZWQ6CiAgICAgSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogbV9lbGVt
ZW50KGVsZW1lbnQpIHsgfQogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiBtX2VsZW1lbnQ7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ODIwYzFlZmVkYjZhYTExNjQ4OTM2M2ExMjZh
OGI1OWRiNGI5YzRiLi40YzI4YTVhODJhZjFkMWIxODQ1YmU1OWI0ODY0ZTc5MGE4NzI2ZGI4IDEw
MDc1NQotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMTItMDcgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1z
dW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVt
ZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZhU2NyaXB0LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBJZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlz
IGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRl
ZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgor
ICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNh
dHRyLWRpbS13aWR0aAorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQt
YXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5w
dXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnOiBBZGRlZC4KKwogMjAxMS0xMi0wNyAgSmFtZXMgU2lt
b25zZW4gIDxzaW1vbmphbUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJl
dmlld2VkLCByZWJhc2VsaW5lIHdpZHRoLW92ZXJmbG93Lmh0bWwgYW5kIGZpeCB0ZXN0X2V4cGVj
dGF0aW9ucy50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lk
dGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZjMwZDNmMDRjYjkxYWI5MTllYTQwMzQ2ZGMxNDM3ZDdmNmQ0YmE0ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUgQEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRl
cyBvZiBIVE1MSW5wdXRFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
VGVzdCBjYXNlICMxIDogSW1hZ2UsIEhUTUwgaW5saW5lIHNldHRpbmcgYXMgIjE2MCIsICI4MCIK
K1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFn
ZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UxLndpZHRoLGltYWdlMS5oZWlnaHQgaXMgMTYwLDgwCitU
ZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyAiMjYwIiwg
IjEzMCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBp
biBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UyLndpZHRoLGltYWdlMi5oZWlnaHQgaXMgMjYw
LDEzMAorVGVzdCBjYXNlICMzIDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMg
IjEyMHB4IiwgIjYwcHgiCitQQVNTICgnd2lkdGgnIGluIGltYWdlMSkgaXMgdHJ1ZQorUEFTUyAo
J2hlaWdodCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTIGltYWdlMy53aWR0aCxpbWFnZTMuaGVp
Z2h0IGlzIDAsMAorVGVzdCBjYXNlICM0IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBB
UEkgYXMgIjEyMC45OSIsICI2MC41NSIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVl
CitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2U0LndpZHRoLGlt
YWdlNC5oZWlnaHQgaXMgMTIwLDYwCitUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5nIGJ5IEph
dmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIHRleHQxKSBpcyB0
cnVlCitQQVNTICgnaGVpZ2h0JyBpbiB0ZXh0MSkgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCx0
ZXh0MS5oZWlnaHQgaXMgMCwwCitQQVNTIHRleHQxLndpZHRoLHRleHQxLmhlaWdodCBpcyAxMDAs
NTAKK1BBU1MgdGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzYg
OiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgn
d2lkdGgnIGluIGZpbGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBmaWxlMSkgaXMgdHJ1
ZQorUEFTUyBmaWxlMS53aWR0aCxmaWxlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGZpbGUxLndpZHRo
LGZpbGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0IGlz
IDYwLDQwCitUZXN0IGNhc2UgIzcgOiBEYXRlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFz
ICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGRhdGUxKSBpcyB0cnVlCitQQVNTICgnaGVp
Z2h0JyBpbiBkYXRlMSkgaXMgdHJ1ZQorUEFTUyBkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQgaXMg
MCwwCitQQVNTIGRhdGUxLndpZHRoLGRhdGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZGF0ZTEu
d2lkdGgsZGF0ZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzggOiBCdXR0b24sIFNldHRp
bmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEwMCIsICI1MCIKK1BBU1MgKCd3aWR0aCcgaW4gYnV0
dG9uMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyBi
dXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDAsMAorUEFTUyBidXR0b24xLndpZHRoLGJ1
dHRvbjEuaGVpZ2h0IGlzIDEwMCw1MAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0
IGlzIDYwLDQwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKworCisKKworCisKKworCisKKworCisKKworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDEzMzMxODIwOGJkNTY0ZjM0OWNjMzdlMWU3NTcyYTY3YzcxNGJhNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0
dHJpYnV0ZXMuaHRtbApAQCAtMCwwICsxLDE1NiBAQAorPCFET0NUWVBFIEhUTUw+DQorPGh0bWw+
DQorPGhlYWQ+DQorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJvZHk+DQorPHNjcmlwdD4NCitkZXNjcmlw
dGlvbignd2lkdGggYW5kIGhlaWdodCBhdHRyaWJ1dGVzIG9mIEhUTUxJbnB1dEVsZW1lbnQuJyk7
DQorPC9zY3JpcHQ+DQorDQorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+DQorDQorPGRpdiBpZD0i
ZGl2MSI+DQorICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlMSIgc3JjPSJyZXNvdXJj
ZXMvZ3JlZW4uanBnIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjgwcHgiPg0KKzwvZGl2Pg0KKzxicj4N
CisNCis8ZGl2IGlkPSJkaXYyIj4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2Uy
IiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlk
PSJkaXYzIj4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2UzIiBzcmM9InJlc291
cmNlcy9ncmVlbi5qcGciPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY0Ij4NCisg
ICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2U0IiBzcmM9InJlc291cmNlcy9ncmVlbi5q
cGciPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY1Ij4NCisgICAgPGlucHV0IHR5
cGU9InRleHQiIGlkPSJ0ZXh0MSI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjYi
Pg0KKyAgICA8aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUxIj4NCis8L2Rpdj4NCis8YnI+DQor
DQorPGRpdiBpZD0iZGl2NyI+DQorICAgIDxpbnB1dCB0eXBlPSJkYXRlIiBpZD0iZGF0ZTEiPg0K
KzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY4Ij4NCisgICAgPGlucHV0IHR5cGU9ImJ1
dHRvbiIgaWQ9ImJ1dHRvbjEiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8c2NyaXB0Pg0KK3ZhciBk
aXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MSIpOw0KK3ZhciBpbWFnZTEgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UxIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjMSA6IElt
YWdlLCBIVE1MIGlubGluZSBzZXR0aW5nIGFzIFwiMTYwXCIsIFwiODBcIicpOw0KK3Nob3VsZEJl
VHJ1ZSgiKCd3aWR0aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGlu
IGltYWdlMSkiKTsNCitzaG91bGRCZSgnaW1hZ2UxLndpZHRoLGltYWdlMS5oZWlnaHQnLCAnMTYw
LDgwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjIiKTsNCit2YXIg
aW1hZ2UyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlMiIpOw0KK2RlYnVnKCdUZXN0
IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjI2MFwiLCBc
IjEzMFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBpbWFnZTEpIik7DQorc2hvdWxk
QmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2UxKSIpOw0KK2ltYWdlMi53aWR0aCA9IDI2MDsNCitp
bWFnZTIuaGVpZ2h0ID0gMTMwOw0KK3Nob3VsZEJlKCdpbWFnZTIud2lkdGgsaW1hZ2UyLmhlaWdo
dCcsICcyNjAsMTMwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjMi
KTsNCit2YXIgaW1hZ2UzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlMyIpOw0KK2Rl
YnVnKCdUZXN0IGNhc2UgIzMgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBc
IjEyMHB4XCIsIFwiNjBweFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBpbWFnZTEp
Iik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2UxKSIpOw0KK2ltYWdlMy53aWR0
aCA9ICIxMjBweCI7DQoraW1hZ2UzLmhlaWdodCA9ICI2MHB4IjsNCitzaG91bGRCZSgnaW1hZ2Uz
LndpZHRoLGltYWdlMy5oZWlnaHQnLCAnMCwwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImRpdjQiKTsNCit2YXIgaW1hZ2U0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImltYWdlNCIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzQgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZh
U2NyaXB0IEFQSSBhcyBcIjEyMC45OVwiLCBcIjYwLjU1XCInKTsNCitzaG91bGRCZVRydWUoIign
d2lkdGgnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBpbWFnZTEp
Iik7DQoraW1hZ2U0LndpZHRoID0gMTIwLjk5Ow0KK2ltYWdlNC5oZWlnaHQgPSA2MC45OTsNCitz
aG91bGRCZSgnaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQnLCAnMTIwLDYwJyk7DQorDQorZGl2
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjUiKTsNCit2YXIgdGV4dDEgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGV4dDEiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICM1IDogVGV4dCwg
U2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRC
ZVRydWUoIignd2lkdGgnIGluIHRleHQxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGlu
IHRleHQxKSIpOw0KK3RleHQxLndpZHRoID0gMTAwOw0KK3RleHQxLmhlaWdodCA9IDUwOw0KK3No
b3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQnLCAnMCwwJyk7DQorDQordGV4dDEudHlw
ZSA9ICdpbWFnZSc7DQordGV4dDEuc3JjID0gInJlc291cmNlcy9ncmVlbi5qcGciOw0KK3Nob3Vs
ZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQnLCAnMTAwLDUwJyk7DQordGV4dDEud2lkdGgg
PSA2MDsNCit0ZXh0MS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgndGV4dDEud2lkdGgsdGV4dDEu
aGVpZ2h0JywgJzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRp
djYiKTsNCit2YXIgZmlsZTEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZTEiKTsNCitk
ZWJ1ZygnVGVzdCBjYXNlICM2IDogRmlsZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBc
IjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGZpbGUxKSIpOw0K
K3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGZpbGUxKSIpOw0KK2ZpbGUxLndpZHRoID0gMTAw
Ow0KK2ZpbGUxLmhlaWdodCA9IDUwOw0KK3Nob3VsZEJlKCdmaWxlMS53aWR0aCxmaWxlMS5oZWln
aHQnLCAnMCwwJyk7DQorDQorZmlsZTEudHlwZSA9ICdpbWFnZSc7DQorZmlsZTEuc3JjID0gInJl
c291cmNlcy9ncmVlbi5qcGciOw0KK3Nob3VsZEJlKCdmaWxlMS53aWR0aCxmaWxlMS5oZWlnaHQn
LCAnMTAwLDUwJyk7DQorZmlsZTEud2lkdGggPSA2MDsNCitmaWxlMS5oZWlnaHQgPSA0MDsNCitz
aG91bGRCZSgnZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0JywgJzYwLDQwJyk7DQorDQorZGl2ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjciKTsNCit2YXIgZGF0ZTEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiZGF0ZTEiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICM3IDogRGF0ZSwgU2V0
dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyBcIjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRCZVRy
dWUoIignd2lkdGgnIGluIGRhdGUxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGRh
dGUxKSIpOw0KK2RhdGUxLndpZHRoID0gMTAwOw0KK2RhdGUxLmhlaWdodCA9IDUwOw0KK3Nob3Vs
ZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAnMCwwJyk7DQorDQorZGF0ZTEudHlwZSA9
ICdpbWFnZSc7DQorZGF0ZTEuc3JjID0gInJlc291cmNlcy9ncmVlbi5qcGciOw0KK3Nob3VsZEJl
KCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAnMTAwLDUwJyk7DQorZGF0ZTEud2lkdGggPSA2
MDsNCitkYXRlMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgnZGF0ZTEud2lkdGgsZGF0ZTEuaGVp
Z2h0JywgJzYwLDQwJyk7DQorDQorZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjgi
KTsNCit2YXIgYnV0dG9uMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJidXR0b24xIik7DQor
ZGVidWcoJ1Rlc3QgY2FzZSAjOCA6IEJ1dHRvbiwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBh
cyBcIjEwMFwiLCBcIjUwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGJ1dHRvbjEp
Iik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gYnV0dG9uMSkiKTsNCitidXR0b24xLndp
ZHRoID0gMTAwOw0KK2J1dHRvbjEuaGVpZ2h0ID0gNTA7DQorc2hvdWxkQmUoJ2J1dHRvbjEud2lk
dGgsYnV0dG9uMS5oZWlnaHQnLCAnMCwwJyk7DQorDQorYnV0dG9uMS50eXBlID0gJ2ltYWdlJzsN
CitidXR0b24xLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4uanBnIjsNCitzaG91bGRCZSgnYnV0dG9u
MS53aWR0aCxidXR0b24xLmhlaWdodCcsICcxMDAsNTAnKTsNCitidXR0b24xLndpZHRoID0gNjA7
DQorYnV0dG9uMS5oZWlnaHQgPSA0MDsNCitzaG91bGRCZSgnYnV0dG9uMS53aWR0aCxidXR0b24x
LmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOw0K
Kzwvc2NyaXB0Pg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0Pg0KKzwvYm9keT4NCis8L2h0bWw+DQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1ZjcwMGI2ODA3ZDE5NTM1
MmUxYWIwMjE0Y2U0ZjFlZGY5MjAzNDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDc2NAp6Y21l
eD08TnBIJjBXVVhDSHdII1ZNdXIzK1djZEcocH4xQnhHbVV9NCpPeCh5ZnF7WDhmdDY4K2ZmPmtS
MVZSUXoKekRGIytCbn1OWkxRNXd6O1YkXmBEVlBhcnQmdHpiTXMpKyo5QWRtcFdLOzJOOVgjbz5s
Z30/JTQxUkpQPTtzMCQwCnpYOWd4bE1pNjJHQXxQTzlXZDtFQDc4WWghYn5iaSliflpMUGJgRVkl
YmBDQk1IYTFSUFBBK2I0OXYmV2NQRl9BPAp6OXpHekc4KU9KYkZFZHkjRD5ueGwyUkYmIXt7YVI7
NGg4YFIwY0opZTF8fnM5VzxrZFBNO1BSUks0QXJoN2J3Vn0KemZSVHhyZyUjKWBwZ1Z2SHdoOTI5
JiY8cE9iU3hfaUZkIUlmZiR8SjJmfi1Qe2hLXzgpZnI7ISZnKDYwYzZCbHdRCnpKOGU4RDhnJWk0
aWc4aj02RE9DTHhQK3ZYcyt6aW5yazA3Um5ZbzNmbTl2WWhvNGJkblM4enlaU2E/S2FSQn1wYwp6
VDYjdWlSJmh5YlMkUmNlUmRZKmdUWUU9bSpRQ2kpcmNScWFXOUY8eWk8Y34yd3RVNlBSaHU/JSp9
ODR9ai05Jj4KejlYQGpPKnpwcjVQaEdsdjw/Nk5USCpWZn5ffmBNSXJfWXxoYz1fdCVyX1chJGUq
NkM4PVAhYEk3I1d4JC1oJXJLCnomMG01KmU9en4kZlEyMzhGR2krdkFaOFkxVk8yQ182TEpoPlBi
P0h4R0hUPXlhaGtZcjwzVWJrPERkX3NOa3RkQQp5IzhnWmtzKHU3ezRlVEBHSmt+XigmKV48SWAw
RXd9ND5LYiRAfFhufj4+MGokWClNfmBiXmdQanwyRn5jX3N2V0kKCmxpdGVyYWwgMApIY21WP2Qw
MDAwMQoK
</data>
<flag name="commit-queue"
          id="118021"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>132977</attachid>
            <date>2012-03-20 22:59:08 -0700</date>
            <delta_ts>2012-05-02 23:58:47 -0700</delta_ts>
            <desc>Test case - no renderer but with width attribute</desc>
            <filename>input-width-height-attributes-without-renderer.html</filename>
            <type>text/html</type>
            <size>353</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0PgpmdW5jdGlvbiB0ZXN0KCkKewogICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CiAgICB2YXIgaW5wdXRlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lu
cHV0ZWxlbWVudCcpOwogICAgaW5wdXRlbGVtZW50LndpZHRoOwogICAgaW5wdXRlbGVtZW50Lmhl
aWdodDsKfQo8L3NjcmlwdD4KPC9oZWFkPgo8Ym9keSBvbmxvYWQ9InRlc3QoKSI+CjxpbnB1dCBp
ZD0iaW5wdXRlbGVtZW50IiB0eXBlPSJpbWFnZSI+Ck5vIGNyYXNoID0gdGVzdCBQQVNTCjwvYm9k
eT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>135481</attachid>
            <date>2012-04-03 18:47:05 -0700</date>
            <delta_ts>2012-04-03 18:47:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>diff_0404</filename>
            <type>application/octet-stream</type>
            <size>21263</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZmM5NGJkLi44Mzg4YWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDQt
MDMgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJZiB0
aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBh
cmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0
aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA0LTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFu
bkByaW0uY29tPgogCiAgICAgICAgIEFuaW1hdGUgYW5pbWF0ZWRQb2ludHMgaW5zdGVhZCBvZiBw
b2ludHMgZm9yIFNWR1BvbHkqRWxlbWVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMwZDNmMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUgQEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0
cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworVGVzdCBjYXNlICMxIDogSW1hZ2UsIEhUTUwgaW5saW5lIHNldHRpbmcgYXMgIjE2MCIs
ICI4MCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBp
biBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UxLndpZHRoLGltYWdlMS5oZWlnaHQgaXMgMTYw
LDgwCitUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyAi
MjYwIiwgIjEzMCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVp
Z2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UyLndpZHRoLGltYWdlMi5oZWlnaHQg
aXMgMjYwLDEzMAorVGVzdCBjYXNlICMzIDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBB
UEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQQVNTICgnd2lkdGgnIGluIGltYWdlMSkgaXMgdHJ1ZQor
UEFTUyAoJ2hlaWdodCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTIGltYWdlMy53aWR0aCxpbWFn
ZTMuaGVpZ2h0IGlzIDAsMAorVGVzdCBjYXNlICM0IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNj
cmlwdCBBUEkgYXMgIjEyMC45OSIsICI2MC41NSIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBp
cyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2U0Lndp
ZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIwLDYwCitUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5n
IGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIHRleHQx
KSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiB0ZXh0MSkgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53
aWR0aCx0ZXh0MS5oZWlnaHQgaXMgMCwwCitQQVNTIHRleHQxLndpZHRoLHRleHQxLmhlaWdodCBp
cyAxMDAsNTAKK1BBU1MgdGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNh
c2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQ
QVNTICgnd2lkdGgnIGluIGZpbGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBmaWxlMSkg
aXMgdHJ1ZQorUEFTUyBmaWxlMS53aWR0aCxmaWxlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGZpbGUx
LndpZHRoLGZpbGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZmlsZTEud2lkdGgsZmlsZTEuaGVp
Z2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzcgOiBEYXRlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQg
QVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGRhdGUxKSBpcyB0cnVlCitQQVNT
ICgnaGVpZ2h0JyBpbiBkYXRlMSkgaXMgdHJ1ZQorUEFTUyBkYXRlMS53aWR0aCxkYXRlMS5oZWln
aHQgaXMgMCwwCitQQVNTIGRhdGUxLndpZHRoLGRhdGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1Mg
ZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzggOiBCdXR0b24s
IFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEwMCIsICI1MCIKK1BBU1MgKCd3aWR0aCcg
aW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQor
UEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDAsMAorUEFTUyBidXR0b24xLndp
ZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDEwMCw1MAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEu
aGVpZ2h0IGlzIDYwLDQwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKworCisKKworCisKKworCisKKworCisKKworCisKKworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhv
dXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13
aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzk2NmIzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13
aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisgTm8gY3Jhc2ggPSB0
ZXN0IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgt
aGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ3NWJlOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJp
YnV0ZXMtd2l0aG91dC1yZW5kZXJlci5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIHZhciBpbnB1dGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXRl
bGVtZW50Jyk7CisgICAgaW5wdXRlbGVtZW50LndpZHRoOworICAgIGlucHV0ZWxlbWVudC5oZWln
aHQ7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxpbnB1
dCBpZD0iaW5wdXRlbGVtZW50IiB0eXBlPSJpbWFnZSI+CitObyBjcmFzaCA9IHRlc3QgUEFTUwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjAxMzMzMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwKQEAgLTAsMCArMSwxNTYg
QEAKKzwhRE9DVFlQRSBIVE1MPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0K
Kzxib2R5Pg0KKzxzY3JpcHQ+DQorZGVzY3JpcHRpb24oJ3dpZHRoIGFuZCBoZWlnaHQgYXR0cmli
dXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LicpOw0KKzwvc2NyaXB0Pg0KKw0KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPg0KKw0KKzxkaXYgaWQ9ImRpdjEiPg0KKyAgICA8aW5wdXQgdHlwZT0iaW1h
Z2UiIGlkPSJpbWFnZTEiIHNyYz0icmVzb3VyY2VzL2dyZWVuLmpwZyIgd2lkdGg9IjE2MCIgaGVp
Z2h0PSI4MHB4Ij4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2MiI+DQorICAgIDxp
bnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlMiIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIj4N
Cis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2MyI+DQorICAgIDxpbnB1dCB0eXBlPSJp
bWFnZSIgaWQ9ImltYWdlMyIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIj4NCis8L2Rpdj4NCis8
YnI+DQorDQorPGRpdiBpZD0iZGl2NCI+DQorICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9Imlt
YWdlNCIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRp
diBpZD0iZGl2NSI+DQorICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGV4dDEiPg0KKzwvZGl2
Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY2Ij4NCisgICAgPGlucHV0IHR5cGU9ImZpbGUiIGlk
PSJmaWxlMSI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjciPg0KKyAgICA8aW5w
dXQgdHlwZT0iZGF0ZSIgaWQ9ImRhdGUxIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0i
ZGl2OCI+DQorICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJidXR0b24xIj4NCis8L2Rpdj4N
Cis8YnI+DQorDQorPHNjcmlwdD4NCit2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRpdjEiKTsNCit2YXIgaW1hZ2UxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlMSIp
Ow0KK2RlYnVnKCdUZXN0IGNhc2UgIzEgOiBJbWFnZSwgSFRNTCBpbmxpbmUgc2V0dGluZyBhcyBc
IjE2MFwiLCBcIjgwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsN
CitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQorc2hvdWxkQmUoJ2ltYWdl
MS53aWR0aCxpbWFnZTEuaGVpZ2h0JywgJzE2MCw4MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkaXYyIik7DQordmFyIGltYWdlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpbWFnZTIiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICMyIDogSW1hZ2UsIFNldHRpbmcgYnkg
SmF2YVNjcmlwdCBBUEkgYXMgXCIyNjBcIiwgXCIxMzBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3
aWR0aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGltYWdlMSki
KTsNCitpbWFnZTIud2lkdGggPSAyNjA7DQoraW1hZ2UyLmhlaWdodCA9IDEzMDsNCitzaG91bGRC
ZSgnaW1hZ2UyLndpZHRoLGltYWdlMi5oZWlnaHQnLCAnMjYwLDEzMCcpOw0KKw0KK2RpdiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYzIik7DQordmFyIGltYWdlMyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpbWFnZTMiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICMzIDogSW1hZ2UsIFNl
dHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMjBweFwiLCBcIjYwcHhcIicpOw0KK3Nob3Vs
ZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQn
IGluIGltYWdlMSkiKTsNCitpbWFnZTMud2lkdGggPSAiMTIwcHgiOw0KK2ltYWdlMy5oZWlnaHQg
PSAiNjBweCI7DQorc2hvdWxkQmUoJ2ltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0JywgJzAsMCcp
Ow0KKw0KK2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY0Iik7DQordmFyIGltYWdl
NCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZTQiKTsNCitkZWJ1ZygnVGVzdCBjYXNl
ICM0IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMjAuOTlcIiwgXCI2
MC41NVwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBpbWFnZTEpIik7DQorc2hvdWxk
QmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2UxKSIpOw0KK2ltYWdlNC53aWR0aCA9IDEyMC45OTsN
CitpbWFnZTQuaGVpZ2h0ID0gNjAuOTk7DQorc2hvdWxkQmUoJ2ltYWdlNC53aWR0aCxpbWFnZTQu
aGVpZ2h0JywgJzEyMCw2MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJk
aXY1Iik7DQordmFyIHRleHQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQxIik7DQor
ZGVidWcoJ1Rlc3QgY2FzZSAjNSA6IFRleHQsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMg
XCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiB0ZXh0MSkiKTsN
CitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiB0ZXh0MSkiKTsNCit0ZXh0MS53aWR0aCA9IDEw
MDsNCit0ZXh0MS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgndGV4dDEud2lkdGgsdGV4dDEuaGVp
Z2h0JywgJzAsMCcpOw0KKw0KK3RleHQxLnR5cGUgPSAnaW1hZ2UnOw0KK3RleHQxLnNyYyA9ICJy
ZXNvdXJjZXMvZ3JlZW4uanBnIjsNCitzaG91bGRCZSgndGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0
JywgJzEwMCw1MCcpOw0KK3RleHQxLndpZHRoID0gNjA7DQordGV4dDEuaGVpZ2h0ID0gNDA7DQor
c2hvdWxkQmUoJ3RleHQxLndpZHRoLHRleHQxLmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK2RpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY2Iik7DQordmFyIGZpbGUxID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZpbGUxIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjNiA6IEZpbGUsIFNl
dHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmVU
cnVlKCIoJ3dpZHRoJyBpbiBmaWxlMSkiKTsNCitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBm
aWxlMSkiKTsNCitmaWxlMS53aWR0aCA9IDEwMDsNCitmaWxlMS5oZWlnaHQgPSA1MDsNCitzaG91
bGRCZSgnZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0JywgJzAsMCcpOw0KKw0KK2ZpbGUxLnR5cGUg
PSAnaW1hZ2UnOw0KK2ZpbGUxLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4uanBnIjsNCitzaG91bGRC
ZSgnZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0JywgJzEwMCw1MCcpOw0KK2ZpbGUxLndpZHRoID0g
NjA7DQorZmlsZTEuaGVpZ2h0ID0gNDA7DQorc2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhl
aWdodCcsICc2MCw0MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY3
Iik7DQordmFyIGRhdGUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRhdGUxIik7DQorZGVi
dWcoJ1Rlc3QgY2FzZSAjNyA6IERhdGUsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIx
MDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBkYXRlMSkiKTsNCitz
aG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBkYXRlMSkiKTsNCitkYXRlMS53aWR0aCA9IDEwMDsN
CitkYXRlMS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgnZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0
JywgJzAsMCcpOw0KKw0KK2RhdGUxLnR5cGUgPSAnaW1hZ2UnOw0KK2RhdGUxLnNyYyA9ICJyZXNv
dXJjZXMvZ3JlZW4uanBnIjsNCitzaG91bGRCZSgnZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0Jywg
JzEwMCw1MCcpOw0KK2RhdGUxLndpZHRoID0gNjA7DQorZGF0ZTEuaGVpZ2h0ID0gNDA7DQorc2hv
dWxkQmUoJ2RhdGUxLndpZHRoLGRhdGUxLmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK2RpdiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY4Iik7DQordmFyIGJ1dHRvbjEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYnV0dG9uMSIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzggOiBCdXR0b24s
IFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxk
QmVUcnVlKCIoJ3dpZHRoJyBpbiBidXR0b24xKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQn
IGluIGJ1dHRvbjEpIik7DQorYnV0dG9uMS53aWR0aCA9IDEwMDsNCitidXR0b24xLmhlaWdodCA9
IDUwOw0KK3Nob3VsZEJlKCdidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0JywgJzAsMCcpOw0K
Kw0KK2J1dHRvbjEudHlwZSA9ICdpbWFnZSc7DQorYnV0dG9uMS5zcmMgPSAicmVzb3VyY2VzL2dy
ZWVuLmpwZyI7DQorc2hvdWxkQmUoJ2J1dHRvbjEud2lkdGgsYnV0dG9uMS5oZWlnaHQnLCAnMTAw
LDUwJyk7DQorYnV0dG9uMS53aWR0aCA9IDYwOw0KK2J1dHRvbjEuaGVpZ2h0ID0gNDA7DQorc2hv
dWxkQmUoJ2J1dHRvbjEud2lkdGgsYnV0dG9uMS5oZWlnaHQnLCAnNjAsNDAnKTsNCisNCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsNCis8L3NjcmlwdD4NCis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8L2JvZHk+
DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2Vz
L2dyZWVuLmpwZyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2dyZWVuLmpwZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNWY3MDBiNjgwN2QxOTUzNTJlMWFiMDIxNGNlNGYxZWRmOTIwMzQwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCA3NjQKemNtZXg9PE5wSCYwV1VYQ0h3SCNWTXVyMytXY2RHKHB+
MUJ4R21VfTQqT3goeWZxe1g4ZnQ2OCtmZj5rUjFWUlF6CnpERiMrQm59TlpMUTV3ejtWJF5gRFZQ
YXJ0JnR6Yk1zKSsqOUFkbXBXSzsyTjlYI28+bGd9PyU0MVJKUD07czAkMAp6WDlneGxNaTYyR0F8
UE85V2Q7RUA3OFloIWJ+YmkpYn5aTFBiYEVZJWJgQ0JNSGExUlBQQStiNDl2JldjUEZfQTwKejl6
R3pHOClPSmJGRWR5I0Q+bnhsMlJGJiF7e2FSOzRoOGBSMGNKKWUxfH5zOVc8a2RQTTtQUlJLNEFy
aDdid1Z9CnpmUlR4cmclIylgcGdWdkh3aDkyOSYmPHBPYlN4X2lGZCFJZmYkfEoyZn4tUHtoS184
KWZyOyEmZyg2MGM2Qmx3UQp6SjhlOEQ4ZyVpNGlnOGo9NkRPQ0x4UCt2WHMremlucmswN1JuWW8z
Zm05dllobzRiZG5TOHp5WlNhP0thUkJ9cGMKelQ2I3VpUiZoeWJTJFJjZVJkWSpnVFlFPW0qUUNp
KXJjUnFhVzlGPHlpPGN+Mnd0VTZQUmh1PyUqfTg0fWotOSY+Cno5WEBqTyp6cHI1UGhHbHY8PzZO
VEgqVmZ+X35gTUlyX1l8aGM9X3Qlcl9XISRlKjZDOD1QIWBJNyNXeCQtaCVySwp6JjBtNSplPXp+
JGZRMjM4RkdpK3ZBWjhZMVZPMkNfNkxKaD5QYj9IeEdIVD15YWhrWXI8M1ViazxEZF9zTmt0ZEEK
eSM4Z1prcyh1N3s0ZVRAR0prfl4oJilePElgMEV3fTQ+S2IkQHxYbn4+PjBqJFgpTX5gYl5nUGp8
MkZ+Y19zdldJCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0OGJhMC4u
ZWFkYzJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA0LTAzICBEb25nd29v
IEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0
ZXMgb2YgaW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlwdC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSWYgdGhlIHR5cGUgb2Yg
aW5wdXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzIHNo
b3VsZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQg
aW4gSFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvdGhlLW1h
cC1lbGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRt
bAorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDogQWRkIHNldHRlci9nZXR0
ZXIgZnVuY3Rpb25zIHRvIHF1ZXJ5L3NldCB3aWR0aC9oZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmhlaWdodCk6IEdldHMgaGVpZ2h0
IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp3
aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodCk6IFNldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aCk6IFNldHMgd2lk
dGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDog
QWRkIHB1YmxpYyBwcm90b3R5cGUuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bDogQWRkIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1
dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucyBpZiB0aGUgZWxlbWVudCBpcyBhbiBpbWFn
ZSBidXR0b24uCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0KTogR2V0
cyBoZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRU
eXBlOjp3aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKiBodG1s
L0ltYWdlSW5wdXRUeXBlLmg6IEFkZCBwcm90b3R5cGUuCisgICAgICAgICogaHRtbC9JbnB1dFR5
cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZTo6aGVpZ2h0KTogUmV0dXJucyB6ZXJvLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjp3
aWR0aCk6IFJldHVybnMgemVyby4KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOiBBZGQgcHJv
dG90eXBlLgorCiAyMDEyLTA0LTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBy
aW0uY29tPgogCiAgICAgICAgIEFuaW1hdGUgYW5pbWF0ZWRQb2ludHMgaW5zdGVhZCBvZiBwb2lu
dHMgZm9yIFNWR1BvbHkqRWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IDE4YzZjZjkuLmVlMzVhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcApAQCAtNyw2ICs3LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBT
YW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNo
IE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxl
LmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTg1Niw0ICsxODU3LDI0IEBA
IGlubGluZSB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnJlbW92ZUZyb21SYWRpb0J1dHRvbkdyb3Vw
KCkKICAgICAgICAgYnV0dG9ucy0+cmVtb3ZlQnV0dG9uKHRoaXMpOwogfQogCit1bnNpZ25lZCBI
VE1MSW5wdXRFbGVtZW50OjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lucHV0VHlw
ZS0+aGVpZ2h0KCk7Cit9CisKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRoKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPndpZHRoKCk7Cit9CisKK3ZvaWQgSFRNTElu
cHV0RWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKK3sKKyAgICBzZXRBdHRyaWJ1
dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIoaGVpZ2h0KSk7Cit9CisKK3ZvaWQgSFRNTElu
cHV0RWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgd2lkdGgpCit7CisgICAgc2V0QXR0cmlidXRl
KHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIod2lkdGgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZGMwMWYzNS4uYTY2YWNh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTMsNiArMyw3IEBA
CiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcp
CiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzNyw2
ICsyMzgsMTEgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGludCBtYXhpbXVtTGVuZ3Ro
OwogCisgICAgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgd2lkdGgoKSBj
b25zdDsKKyAgICB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRXaWR0aCh1
bnNpZ25lZCk7CisKIHByb3RlY3RlZDoKICAgICBIVE1MSW5wdXRFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKTsKICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGFkMWMzMTUuLmZhNmFiODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM2LDYgKzM3LDcgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyBmb3JtTWV0aG9kOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZm9ybU5v
VmFsaWRhdGU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1UYXJn
ZXQ7CisgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGhlaWdodDsKICAgICAgICAgYXR0
cmlidXRlIGJvb2xlYW4gaW5kZXRlcm1pbmF0ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1EQVRBTElTVF0gSFRNTEVsZW1lbnQgbGlzdDsKICAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWF4OwpAQCAtNjUsNiArNjcsNyBAQCBtb2R1bGUgaHRt
bCB7CiAgICAgICAgIHZvaWQgc3RlcFVwKGluIFtPcHRpb25hbF0gbG9uZyBuKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzdGVwRG93bihpbiBbT3B0aW9uYWxdIGxvbmcgbikg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
d2lkdGg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxpZGF0ZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGZjMzdlMjkuLjQ1NmYyMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0yNiwxMiArMjcsMTYgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwogaW5saW5lIEltYWdlSW5wdXRUeXBlOjpJbWFnZUlu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogICAgIDogQmFzZUJ1dHRvbklucHV0
VHlwZShlbGVtZW50KQogewpAQCAtMTc0LDQgKzE3OSw0NiBAQCBib29sIEltYWdlSW5wdXRUeXBl
OjpzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAordW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0Cit7CisgICAg
UmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7CisKKyAg
ICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhlIGF0dHJp
YnV0ZSBmaXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWUuCisgICAgICAgIHVuc2lnbmVk
IGhlaWdodDsKKyAgICAgICAgaWYgKHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihlbGVtZW50
LT5mYXN0R2V0QXR0cmlidXRlKGhlaWdodEF0dHIpLCBoZWlnaHQpKQorICAgICAgICAgICAgcmV0
dXJuIGhlaWdodDsKKworICAgICAgICAvLyBJZiB0aGUgaW1hZ2UgaXMgYXZhaWxhYmxlLCB1c2Ug
aXRzIGhlaWdodC4KKyAgICAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmltYWdlKCkpCisgICAgICAg
ICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIo
ZWxlbWVudC0+cmVuZGVyZXIoKSwgMSkuaGVpZ2h0KCk7CisgICAgfQorCisgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisKKyAgICBSZW5kZXJCb3gqIGJveCA9IGVsZW1l
bnQtPnJlbmRlckJveCgpOworICAgIHJldHVybiBib3ggPyBhZGp1c3RGb3JBYnNvbHV0ZVpvb20o
Ym94LT5jb250ZW50SGVpZ2h0KCksIGJveCkgOiAwOworfQorCit1bnNpZ25lZCBJbWFnZUlucHV0
VHlwZTo6d2lkdGgoKSBjb25zdAoreworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBlbGVt
ZW50ID0gdGhpcy0+ZWxlbWVudCgpOworCisgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKSB7
CisgICAgICAgIC8vIENoZWNrIHRoZSBhdHRyaWJ1dGUgZmlyc3QgZm9yIGFuIGV4cGxpY2l0IHBp
eGVsIHZhbHVlLgorICAgICAgICB1bnNpZ25lZCB3aWR0aDsKKyAgICAgICAgaWYgKHBhcnNlSFRN
TE5vbk5lZ2F0aXZlSW50ZWdlcihlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHdpZHRoQXR0ciks
IHdpZHRoKSkKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKworICAgICAgICAvLyBJZiB0aGUg
aW1hZ2UgaXMgYXZhaWxhYmxlLCB1c2UgaXRzIHdpZHRoLgorICAgICAgICBpZiAobV9pbWFnZUxv
YWRlci0+aW1hZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVyLT5pbWFnZSgp
LT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LT5yZW5kZXJlcigpLCAxKS53aWR0aCgpOwor
ICAgIH0KKworICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOworCisgICAg
UmVuZGVyQm94KiBib3ggPSBlbGVtZW50LT5yZW5kZXJCb3goKTsKKyAgICByZXR1cm4gYm94ID8g
YWRqdXN0Rm9yQWJzb2x1dGVab29tKGJveC0+Y29udGVudFdpZHRoKCksIGJveCkgOiAwOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgK
aW5kZXggOTNkYjA3NS4uNWVjOTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUu
aApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJv
bmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTYxLDYgKzYyLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFn
ZUJ1dHRvbigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJs
ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lk
dGhBdHRyaWJ1dGVzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgT1ZFUlJJ
REU7CiAKICAgICBPd25QdHI8SFRNTEltYWdlTG9hZGVyPiBtX2ltYWdlTG9hZGVyOwogICAgIElu
dFBvaW50IG1fY2xpY2tMb2NhdGlvbjsgLy8gVmFsaWQgb25seSBkdXJpbmcgSFRNTEZvcm1FbGVt
ZW50OjpwcmVwYXJlRm9yU3VibWlzc2lvbigpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmlu
ZGV4IGVlMjczNDYuLjNiMjk0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTYs
NiArNiw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBA
bnlwb3AuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJr
aXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDEsNiArNDIsOCBAQAogI2lu
Y2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNoYWRvd0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJIaWRkZW5JbnB1dFR5cGUuaCIKICNpbmNsdWRlICJJbWFnZUlucHV0VHlwZS5o
IgpAQCAtNzUyLDYgKzc1NSwxNiBAQCBib29sIElucHV0VHlwZTo6c3VwcG9ydHNJbmRldGVybWlu
YXRlQXBwZWFyYW5jZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit1bnNpZ25lZCBJ
bnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVk
IElucHV0VHlwZTo6d2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCiBuYW1lc3Bh
Y2UgSW5wdXRUeXBlTmFtZXMgewogCiAvLyBUaGUgdHlwZSBuYW1lcyBtdXN0IGJlIGxvd2VyY2Fz
ZWQgYmVjYXVzZSB0aGV5IHdpbGwgYmUgdGhlIHJldHVybiB2YWx1ZXMgb2YKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5oCmluZGV4IGQ3OWRiNmYuLjhhMjRhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
aApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJv
bmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTI2Niw2ICsyNjcsMTEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzSW5kZXRlcm1pbmF0ZUFwcGVhcmFuY2UoKSBjb25zdDsKIAorICAgIC8vIEdldHMgd2lk
dGggYW5kIGhlaWdodCBvZiB0aGUgaW5wdXQgZWxlbWVudCBpZiB0aGUgdHlwZSBvZiB0aGUKKyAg
ICAvLyBlbGVtZW50IGlzIGltYWdlLiBJdCByZXR1cm5zIDAgaWYgdGhlIGVsZW1lbnQgaXMgbm90
IGltYWdlIHR5cGUuCisgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBtX2VsZW1lbnQoZWxlbWVudCkgeyB9CiAg
ICAgSFRNTElucHV0RWxlbWVudCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudDsg
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135482</attachid>
            <date>2012-04-03 18:47:54 -0700</date>
            <delta_ts>2012-05-02 23:58:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>diff_0404</filename>
            <type>text/plain</type>
            <size>21263</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZmM5NGJkLi44Mzg4YWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDQt
MDMgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJZiB0
aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBh
cmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0
aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA0LTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFu
bkByaW0uY29tPgogCiAgICAgICAgIEFuaW1hdGUgYW5pbWF0ZWRQb2ludHMgaW5zdGVhZCBvZiBw
b2ludHMgZm9yIFNWR1BvbHkqRWxlbWVudHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMwZDNmMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUgQEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0
cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworVGVzdCBjYXNlICMxIDogSW1hZ2UsIEhUTUwgaW5saW5lIHNldHRpbmcgYXMgIjE2MCIs
ICI4MCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBp
biBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UxLndpZHRoLGltYWdlMS5oZWlnaHQgaXMgMTYw
LDgwCitUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyAi
MjYwIiwgIjEzMCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVp
Z2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UyLndpZHRoLGltYWdlMi5oZWlnaHQg
aXMgMjYwLDEzMAorVGVzdCBjYXNlICMzIDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBB
UEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQQVNTICgnd2lkdGgnIGluIGltYWdlMSkgaXMgdHJ1ZQor
UEFTUyAoJ2hlaWdodCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTIGltYWdlMy53aWR0aCxpbWFn
ZTMuaGVpZ2h0IGlzIDAsMAorVGVzdCBjYXNlICM0IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNj
cmlwdCBBUEkgYXMgIjEyMC45OSIsICI2MC41NSIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBp
cyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2U0Lndp
ZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIwLDYwCitUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5n
IGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIHRleHQx
KSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiB0ZXh0MSkgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53
aWR0aCx0ZXh0MS5oZWlnaHQgaXMgMCwwCitQQVNTIHRleHQxLndpZHRoLHRleHQxLmhlaWdodCBp
cyAxMDAsNTAKK1BBU1MgdGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNh
c2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQ
QVNTICgnd2lkdGgnIGluIGZpbGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBmaWxlMSkg
aXMgdHJ1ZQorUEFTUyBmaWxlMS53aWR0aCxmaWxlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGZpbGUx
LndpZHRoLGZpbGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZmlsZTEud2lkdGgsZmlsZTEuaGVp
Z2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzcgOiBEYXRlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQg
QVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGRhdGUxKSBpcyB0cnVlCitQQVNT
ICgnaGVpZ2h0JyBpbiBkYXRlMSkgaXMgdHJ1ZQorUEFTUyBkYXRlMS53aWR0aCxkYXRlMS5oZWln
aHQgaXMgMCwwCitQQVNTIGRhdGUxLndpZHRoLGRhdGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1Mg
ZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzggOiBCdXR0b24s
IFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEwMCIsICI1MCIKK1BBU1MgKCd3aWR0aCcg
aW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQor
UEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDAsMAorUEFTUyBidXR0b24xLndp
ZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDEwMCw1MAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEu
aGVpZ2h0IGlzIDYwLDQwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKworCisKKworCisKKworCisKKworCisKKworCisKKworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhv
dXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13
aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzk2NmIzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13
aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisgTm8gY3Jhc2ggPSB0
ZXN0IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgt
aGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmQ3NWJlOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJp
YnV0ZXMtd2l0aG91dC1yZW5kZXJlci5odG1sCkBAIC0wLDAgKzEsMTggQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIHZhciBpbnB1dGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXRl
bGVtZW50Jyk7CisgICAgaW5wdXRlbGVtZW50LndpZHRoOworICAgIGlucHV0ZWxlbWVudC5oZWln
aHQ7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxpbnB1
dCBpZD0iaW5wdXRlbGVtZW50IiB0eXBlPSJpbWFnZSI+CitObyBjcmFzaCA9IHRlc3QgUEFTUwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjAxMzMzMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwKQEAgLTAsMCArMSwxNTYg
QEAKKzwhRE9DVFlQRSBIVE1MPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQgc3JjPSIuLi8u
Li9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0K
Kzxib2R5Pg0KKzxzY3JpcHQ+DQorZGVzY3JpcHRpb24oJ3dpZHRoIGFuZCBoZWlnaHQgYXR0cmli
dXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LicpOw0KKzwvc2NyaXB0Pg0KKw0KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPg0KKw0KKzxkaXYgaWQ9ImRpdjEiPg0KKyAgICA8aW5wdXQgdHlwZT0iaW1h
Z2UiIGlkPSJpbWFnZTEiIHNyYz0icmVzb3VyY2VzL2dyZWVuLmpwZyIgd2lkdGg9IjE2MCIgaGVp
Z2h0PSI4MHB4Ij4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2MiI+DQorICAgIDxp
bnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlMiIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIj4N
Cis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2MyI+DQorICAgIDxpbnB1dCB0eXBlPSJp
bWFnZSIgaWQ9ImltYWdlMyIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIj4NCis8L2Rpdj4NCis8
YnI+DQorDQorPGRpdiBpZD0iZGl2NCI+DQorICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9Imlt
YWdlNCIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRp
diBpZD0iZGl2NSI+DQorICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGV4dDEiPg0KKzwvZGl2
Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY2Ij4NCisgICAgPGlucHV0IHR5cGU9ImZpbGUiIGlk
PSJmaWxlMSI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjciPg0KKyAgICA8aW5w
dXQgdHlwZT0iZGF0ZSIgaWQ9ImRhdGUxIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0i
ZGl2OCI+DQorICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJidXR0b24xIj4NCis8L2Rpdj4N
Cis8YnI+DQorDQorPHNjcmlwdD4NCit2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImRpdjEiKTsNCit2YXIgaW1hZ2UxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlMSIp
Ow0KK2RlYnVnKCdUZXN0IGNhc2UgIzEgOiBJbWFnZSwgSFRNTCBpbmxpbmUgc2V0dGluZyBhcyBc
IjE2MFwiLCBcIjgwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsN
CitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQorc2hvdWxkQmUoJ2ltYWdl
MS53aWR0aCxpbWFnZTEuaGVpZ2h0JywgJzE2MCw4MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkaXYyIik7DQordmFyIGltYWdlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpbWFnZTIiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICMyIDogSW1hZ2UsIFNldHRpbmcgYnkg
SmF2YVNjcmlwdCBBUEkgYXMgXCIyNjBcIiwgXCIxMzBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3
aWR0aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGltYWdlMSki
KTsNCitpbWFnZTIud2lkdGggPSAyNjA7DQoraW1hZ2UyLmhlaWdodCA9IDEzMDsNCitzaG91bGRC
ZSgnaW1hZ2UyLndpZHRoLGltYWdlMi5oZWlnaHQnLCAnMjYwLDEzMCcpOw0KKw0KK2RpdiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYzIik7DQordmFyIGltYWdlMyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpbWFnZTMiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICMzIDogSW1hZ2UsIFNl
dHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMjBweFwiLCBcIjYwcHhcIicpOw0KK3Nob3Vs
ZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQn
IGluIGltYWdlMSkiKTsNCitpbWFnZTMud2lkdGggPSAiMTIwcHgiOw0KK2ltYWdlMy5oZWlnaHQg
PSAiNjBweCI7DQorc2hvdWxkQmUoJ2ltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0JywgJzAsMCcp
Ow0KKw0KK2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY0Iik7DQordmFyIGltYWdl
NCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZTQiKTsNCitkZWJ1ZygnVGVzdCBjYXNl
ICM0IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMjAuOTlcIiwgXCI2
MC41NVwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBpbWFnZTEpIik7DQorc2hvdWxk
QmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2UxKSIpOw0KK2ltYWdlNC53aWR0aCA9IDEyMC45OTsN
CitpbWFnZTQuaGVpZ2h0ID0gNjAuOTk7DQorc2hvdWxkQmUoJ2ltYWdlNC53aWR0aCxpbWFnZTQu
aGVpZ2h0JywgJzEyMCw2MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJk
aXY1Iik7DQordmFyIHRleHQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQxIik7DQor
ZGVidWcoJ1Rlc3QgY2FzZSAjNSA6IFRleHQsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMg
XCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiB0ZXh0MSkiKTsN
CitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiB0ZXh0MSkiKTsNCit0ZXh0MS53aWR0aCA9IDEw
MDsNCit0ZXh0MS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgndGV4dDEud2lkdGgsdGV4dDEuaGVp
Z2h0JywgJzAsMCcpOw0KKw0KK3RleHQxLnR5cGUgPSAnaW1hZ2UnOw0KK3RleHQxLnNyYyA9ICJy
ZXNvdXJjZXMvZ3JlZW4uanBnIjsNCitzaG91bGRCZSgndGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0
JywgJzEwMCw1MCcpOw0KK3RleHQxLndpZHRoID0gNjA7DQordGV4dDEuaGVpZ2h0ID0gNDA7DQor
c2hvdWxkQmUoJ3RleHQxLndpZHRoLHRleHQxLmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK2RpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY2Iik7DQordmFyIGZpbGUxID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZpbGUxIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjNiA6IEZpbGUsIFNl
dHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmVU
cnVlKCIoJ3dpZHRoJyBpbiBmaWxlMSkiKTsNCitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBm
aWxlMSkiKTsNCitmaWxlMS53aWR0aCA9IDEwMDsNCitmaWxlMS5oZWlnaHQgPSA1MDsNCitzaG91
bGRCZSgnZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0JywgJzAsMCcpOw0KKw0KK2ZpbGUxLnR5cGUg
PSAnaW1hZ2UnOw0KK2ZpbGUxLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4uanBnIjsNCitzaG91bGRC
ZSgnZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0JywgJzEwMCw1MCcpOw0KK2ZpbGUxLndpZHRoID0g
NjA7DQorZmlsZTEuaGVpZ2h0ID0gNDA7DQorc2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhl
aWdodCcsICc2MCw0MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY3
Iik7DQordmFyIGRhdGUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRhdGUxIik7DQorZGVi
dWcoJ1Rlc3QgY2FzZSAjNyA6IERhdGUsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIx
MDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBkYXRlMSkiKTsNCitz
aG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBkYXRlMSkiKTsNCitkYXRlMS53aWR0aCA9IDEwMDsN
CitkYXRlMS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgnZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0
JywgJzAsMCcpOw0KKw0KK2RhdGUxLnR5cGUgPSAnaW1hZ2UnOw0KK2RhdGUxLnNyYyA9ICJyZXNv
dXJjZXMvZ3JlZW4uanBnIjsNCitzaG91bGRCZSgnZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0Jywg
JzEwMCw1MCcpOw0KK2RhdGUxLndpZHRoID0gNjA7DQorZGF0ZTEuaGVpZ2h0ID0gNDA7DQorc2hv
dWxkQmUoJ2RhdGUxLndpZHRoLGRhdGUxLmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK2RpdiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY4Iik7DQordmFyIGJ1dHRvbjEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYnV0dG9uMSIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzggOiBCdXR0b24s
IFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxk
QmVUcnVlKCIoJ3dpZHRoJyBpbiBidXR0b24xKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQn
IGluIGJ1dHRvbjEpIik7DQorYnV0dG9uMS53aWR0aCA9IDEwMDsNCitidXR0b24xLmhlaWdodCA9
IDUwOw0KK3Nob3VsZEJlKCdidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0JywgJzAsMCcpOw0K
Kw0KK2J1dHRvbjEudHlwZSA9ICdpbWFnZSc7DQorYnV0dG9uMS5zcmMgPSAicmVzb3VyY2VzL2dy
ZWVuLmpwZyI7DQorc2hvdWxkQmUoJ2J1dHRvbjEud2lkdGgsYnV0dG9uMS5oZWlnaHQnLCAnMTAw
LDUwJyk7DQorYnV0dG9uMS53aWR0aCA9IDYwOw0KK2J1dHRvbjEuaGVpZ2h0ID0gNDA7DQorc2hv
dWxkQmUoJ2J1dHRvbjEud2lkdGgsYnV0dG9uMS5oZWlnaHQnLCAnNjAsNDAnKTsNCisNCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsNCis8L3NjcmlwdD4NCis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8L2JvZHk+
DQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2Vz
L2dyZWVuLmpwZyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2dyZWVuLmpwZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNWY3MDBiNjgwN2QxOTUzNTJlMWFiMDIxNGNlNGYxZWRmOTIwMzQwCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCA3NjQKemNtZXg9PE5wSCYwV1VYQ0h3SCNWTXVyMytXY2RHKHB+
MUJ4R21VfTQqT3goeWZxe1g4ZnQ2OCtmZj5rUjFWUlF6CnpERiMrQm59TlpMUTV3ejtWJF5gRFZQ
YXJ0JnR6Yk1zKSsqOUFkbXBXSzsyTjlYI28+bGd9PyU0MVJKUD07czAkMAp6WDlneGxNaTYyR0F8
UE85V2Q7RUA3OFloIWJ+YmkpYn5aTFBiYEVZJWJgQ0JNSGExUlBQQStiNDl2JldjUEZfQTwKejl6
R3pHOClPSmJGRWR5I0Q+bnhsMlJGJiF7e2FSOzRoOGBSMGNKKWUxfH5zOVc8a2RQTTtQUlJLNEFy
aDdid1Z9CnpmUlR4cmclIylgcGdWdkh3aDkyOSYmPHBPYlN4X2lGZCFJZmYkfEoyZn4tUHtoS184
KWZyOyEmZyg2MGM2Qmx3UQp6SjhlOEQ4ZyVpNGlnOGo9NkRPQ0x4UCt2WHMremlucmswN1JuWW8z
Zm05dllobzRiZG5TOHp5WlNhP0thUkJ9cGMKelQ2I3VpUiZoeWJTJFJjZVJkWSpnVFlFPW0qUUNp
KXJjUnFhVzlGPHlpPGN+Mnd0VTZQUmh1PyUqfTg0fWotOSY+Cno5WEBqTyp6cHI1UGhHbHY8PzZO
VEgqVmZ+X35gTUlyX1l8aGM9X3Qlcl9XISRlKjZDOD1QIWBJNyNXeCQtaCVySwp6JjBtNSplPXp+
JGZRMjM4RkdpK3ZBWjhZMVZPMkNfNkxKaD5QYj9IeEdIVD15YWhrWXI8M1ViazxEZF9zTmt0ZEEK
eSM4Z1prcyh1N3s0ZVRAR0prfl4oJilePElgMEV3fTQ+S2IkQHxYbn4+PjBqJFgpTX5gYl5nUGp8
MkZ+Y19zdldJCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0OGJhMC4u
ZWFkYzJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA0LTAzICBEb25nd29v
IEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0
ZXMgb2YgaW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlwdC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSWYgdGhlIHR5cGUgb2Yg
aW5wdXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzIHNo
b3VsZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQg
aW4gSFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvdGhlLW1h
cC1lbGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAgICAgICBUZXN0czogZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRt
bAorCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDogQWRkIHNldHRlci9nZXR0
ZXIgZnVuY3Rpb25zIHRvIHF1ZXJ5L3NldCB3aWR0aC9oZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmhlaWdodCk6IEdldHMgaGVpZ2h0
IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp3
aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodCk6IFNldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aCk6IFNldHMgd2lk
dGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDog
QWRkIHB1YmxpYyBwcm90b3R5cGUuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bDogQWRkIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1
dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucyBpZiB0aGUgZWxlbWVudCBpcyBhbiBpbWFn
ZSBidXR0b24uCisgICAgICAgIChXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0KTogR2V0
cyBoZWlnaHQgb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRU
eXBlOjp3aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKiBodG1s
L0ltYWdlSW5wdXRUeXBlLmg6IEFkZCBwcm90b3R5cGUuCisgICAgICAgICogaHRtbC9JbnB1dFR5
cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlw
ZTo6aGVpZ2h0KTogUmV0dXJucyB6ZXJvLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjp3
aWR0aCk6IFJldHVybnMgemVyby4KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOiBBZGQgcHJv
dG90eXBlLgorCiAyMDEyLTA0LTAxICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBy
aW0uY29tPgogCiAgICAgICAgIEFuaW1hdGUgYW5pbWF0ZWRQb2ludHMgaW5zdGVhZCBvZiBwb2lu
dHMgZm9yIFNWR1BvbHkqRWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IDE4YzZjZjkuLmVlMzVhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcApAQCAtNyw2ICs3LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBT
YW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNo
IE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxl
LmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTg1Niw0ICsxODU3LDI0IEBA
IGlubGluZSB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnJlbW92ZUZyb21SYWRpb0J1dHRvbkdyb3Vw
KCkKICAgICAgICAgYnV0dG9ucy0+cmVtb3ZlQnV0dG9uKHRoaXMpOwogfQogCit1bnNpZ25lZCBI
VE1MSW5wdXRFbGVtZW50OjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lucHV0VHlw
ZS0+aGVpZ2h0KCk7Cit9CisKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRoKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPndpZHRoKCk7Cit9CisKK3ZvaWQgSFRNTElu
cHV0RWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKK3sKKyAgICBzZXRBdHRyaWJ1
dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIoaGVpZ2h0KSk7Cit9CisKK3ZvaWQgSFRNTElu
cHV0RWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgd2lkdGgpCit7CisgICAgc2V0QXR0cmlidXRl
KHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIod2lkdGgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggZGMwMWYzNS4uYTY2YWNh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTMsNiArMyw3IEBA
CiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcp
CiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ry
b25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIzNyw2
ICsyMzgsMTEgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGludCBtYXhpbXVtTGVuZ3Ro
OwogCisgICAgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgd2lkdGgoKSBj
b25zdDsKKyAgICB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRXaWR0aCh1
bnNpZ25lZCk7CisKIHByb3RlY3RlZDoKICAgICBIVE1MSW5wdXRFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFy
c2VyKTsKICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IGFkMWMzMTUuLmZhNmFiODAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29t
PgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM2LDYgKzM3LDcgQEAgbW9kdWxlIGh0
bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERPTVN0cmlu
ZyBmb3JtTWV0aG9kOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4gZm9ybU5v
VmFsaWRhdGU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZvcm1UYXJn
ZXQ7CisgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGhlaWdodDsKICAgICAgICAgYXR0
cmlidXRlIGJvb2xlYW4gaW5kZXRlcm1pbmF0ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFtDb25kaXRpb25hbD1EQVRBTElTVF0gSFRNTEVsZW1lbnQgbGlzdDsKICAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWF4OwpAQCAtNjUsNiArNjcsNyBAQCBtb2R1bGUgaHRt
bCB7CiAgICAgICAgIHZvaWQgc3RlcFVwKGluIFtPcHRpb25hbF0gbG9uZyBuKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzdGVwRG93bihpbiBbT3B0aW9uYWxdIGxvbmcgbikg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
d2lkdGg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxpZGF0ZTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGZjMzdlMjkuLjQ1NmYyMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC0yNiwxMiArMjcsMTYgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9t
cy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwogaW5saW5lIEltYWdlSW5wdXRUeXBlOjpJbWFnZUlu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogICAgIDogQmFzZUJ1dHRvbklucHV0
VHlwZShlbGVtZW50KQogewpAQCAtMTc0LDQgKzE3OSw0NiBAQCBib29sIEltYWdlSW5wdXRUeXBl
OjpzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAordW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0Cit7CisgICAg
UmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7CisKKyAg
ICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhlIGF0dHJp
YnV0ZSBmaXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWUuCisgICAgICAgIHVuc2lnbmVk
IGhlaWdodDsKKyAgICAgICAgaWYgKHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihlbGVtZW50
LT5mYXN0R2V0QXR0cmlidXRlKGhlaWdodEF0dHIpLCBoZWlnaHQpKQorICAgICAgICAgICAgcmV0
dXJuIGhlaWdodDsKKworICAgICAgICAvLyBJZiB0aGUgaW1hZ2UgaXMgYXZhaWxhYmxlLCB1c2Ug
aXRzIGhlaWdodC4KKyAgICAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmltYWdlKCkpCisgICAgICAg
ICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIo
ZWxlbWVudC0+cmVuZGVyZXIoKSwgMSkuaGVpZ2h0KCk7CisgICAgfQorCisgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisKKyAgICBSZW5kZXJCb3gqIGJveCA9IGVsZW1l
bnQtPnJlbmRlckJveCgpOworICAgIHJldHVybiBib3ggPyBhZGp1c3RGb3JBYnNvbHV0ZVpvb20o
Ym94LT5jb250ZW50SGVpZ2h0KCksIGJveCkgOiAwOworfQorCit1bnNpZ25lZCBJbWFnZUlucHV0
VHlwZTo6d2lkdGgoKSBjb25zdAoreworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBlbGVt
ZW50ID0gdGhpcy0+ZWxlbWVudCgpOworCisgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKSB7
CisgICAgICAgIC8vIENoZWNrIHRoZSBhdHRyaWJ1dGUgZmlyc3QgZm9yIGFuIGV4cGxpY2l0IHBp
eGVsIHZhbHVlLgorICAgICAgICB1bnNpZ25lZCB3aWR0aDsKKyAgICAgICAgaWYgKHBhcnNlSFRN
TE5vbk5lZ2F0aXZlSW50ZWdlcihlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHdpZHRoQXR0ciks
IHdpZHRoKSkKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKworICAgICAgICAvLyBJZiB0aGUg
aW1hZ2UgaXMgYXZhaWxhYmxlLCB1c2UgaXRzIHdpZHRoLgorICAgICAgICBpZiAobV9pbWFnZUxv
YWRlci0+aW1hZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVyLT5pbWFnZSgp
LT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LT5yZW5kZXJlcigpLCAxKS53aWR0aCgpOwor
ICAgIH0KKworICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOworCisgICAg
UmVuZGVyQm94KiBib3ggPSBlbGVtZW50LT5yZW5kZXJCb3goKTsKKyAgICByZXR1cm4gYm94ID8g
YWRqdXN0Rm9yQWJzb2x1dGVab29tKGJveC0+Y29udGVudFdpZHRoKCksIGJveCkgOiAwOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgK
aW5kZXggOTNkYjA3NS4uNWVjOTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUu
aApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJv
bmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTYxLDYgKzYyLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFn
ZUJ1dHRvbigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1lcmF0YWJs
ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lk
dGhBdHRyaWJ1dGVzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQoKSBj
b25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgT1ZFUlJJ
REU7CiAKICAgICBPd25QdHI8SFRNTEltYWdlTG9hZGVyPiBtX2ltYWdlTG9hZGVyOwogICAgIElu
dFBvaW50IG1fY2xpY2tMb2NhdGlvbjsgLy8gVmFsaWQgb25seSBkdXJpbmcgSFRNTEZvcm1FbGVt
ZW50OjpwcmVwYXJlRm9yU3VibWlzc2lvbigpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmlu
ZGV4IGVlMjczNDYuLjNiMjk0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTYs
NiArNiw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBA
bnlwb3AuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJr
aXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDEsNiArNDIsOCBAQAogI2lu
Y2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNoYWRvd0VsZW1lbnQuaCIK
ICNpbmNsdWRlICJIaWRkZW5JbnB1dFR5cGUuaCIKICNpbmNsdWRlICJJbWFnZUlucHV0VHlwZS5o
IgpAQCAtNzUyLDYgKzc1NSwxNiBAQCBib29sIElucHV0VHlwZTo6c3VwcG9ydHNJbmRldGVybWlu
YXRlQXBwZWFyYW5jZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit1bnNpZ25lZCBJ
bnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVk
IElucHV0VHlwZTo6d2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCiBuYW1lc3Bh
Y2UgSW5wdXRUeXBlTmFtZXMgewogCiAvLyBUaGUgdHlwZSBuYW1lcyBtdXN0IGJlIGxvd2VyY2Fz
ZWQgYmVjYXVzZSB0aGV5IHdpbGwgYmUgdGhlIHJldHVybiB2YWx1ZXMgb2YKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5oCmluZGV4IGQ3OWRiNmYuLjhhMjRhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
aApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJv
bmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKQEAgLTI2Niw2ICsyNjcsMTEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzSW5kZXRlcm1pbmF0ZUFwcGVhcmFuY2UoKSBjb25zdDsKIAorICAgIC8vIEdldHMgd2lk
dGggYW5kIGhlaWdodCBvZiB0aGUgaW5wdXQgZWxlbWVudCBpZiB0aGUgdHlwZSBvZiB0aGUKKyAg
ICAvLyBlbGVtZW50IGlzIGltYWdlLiBJdCByZXR1cm5zIDAgaWYgdGhlIGVsZW1lbnQgaXMgbm90
IGltYWdlIHR5cGUuCisgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBtX2VsZW1lbnQoZWxlbWVudCkgeyB9CiAg
ICAgSFRNTElucHV0RWxlbWVudCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudDsg
fQo=
</data>
<flag name="review"
          id="139992"
          type_id="1"
          status="-"
          setter="tkent"
    />
    <flag name="commit-queue"
          id="139993"
          type_id="3"
          status="-"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139966</attachid>
            <date>2012-05-02 23:58:47 -0700</date>
            <delta_ts>2012-05-07 00:04:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthheight_0503.patch</filename>
            <type>text/plain</type>
            <size>26855</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlOGJiMzZhLi4yMzNlNTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDUt
MDIgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJZiB0
aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBh
cmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0
aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1h
Z2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXdpZHRo
LWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMt
d2l0aG91dC1yZW5kZXJlci1ub3QtbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0
LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0
ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBn
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jlc291cmNlcy9pbWFnZS1zbG93LnBsOiBB
ZGRlZC4KKwogMjAxMi0wNS0wMiAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJlbW92ZSB3aW5kb3ctcHJvcGVydGllcy5odG1sIGFuZCBvdGhlciBpdGVyYXRl
IG92ZXIgYWxsIHBvc3NpYmxlIHByb3BlcnRpZXMgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjMwZDNmMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVp
Z2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNjUgQEAKK3dpZHRoIGFuZCBo
ZWlnaHQgYXR0cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVtZW50LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworVGVzdCBjYXNlICMxIDogSW1hZ2UsIEhUTUwgaW5saW5lIHNldHRpbmcg
YXMgIjE2MCIsICI4MCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgn
aGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UxLndpZHRoLGltYWdlMS5oZWln
aHQgaXMgMTYwLDgwCitUZXN0IGNhc2UgIzIgOiBJbWFnZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0
IEFQSSBhcyAiMjYwIiwgIjEzMCIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQ
QVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2UyLndpZHRoLGltYWdl
Mi5oZWlnaHQgaXMgMjYwLDEzMAorVGVzdCBjYXNlICMzIDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2
YVNjcmlwdCBBUEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQQVNTICgnd2lkdGgnIGluIGltYWdlMSkg
aXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTIGltYWdlMy53
aWR0aCxpbWFnZTMuaGVpZ2h0IGlzIDAsMAorVGVzdCBjYXNlICM0IDogSW1hZ2UsIFNldHRpbmcg
YnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMC45OSIsICI2MC41NSIKK1BBU1MgKCd3aWR0aCcgaW4g
aW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1Mg
aW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIwLDYwCitUZXN0IGNhc2UgIzUgOiBUZXh0
LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgn
IGluIHRleHQxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiB0ZXh0MSkgaXMgdHJ1ZQorUEFT
UyB0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQgaXMgMCwwCitQQVNTIHRleHQxLndpZHRoLHRleHQx
LmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgdGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0IGlzIDYwLDQw
CitUZXN0IGNhc2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAi
LCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGZpbGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBp
biBmaWxlMSkgaXMgdHJ1ZQorUEFTUyBmaWxlMS53aWR0aCxmaWxlMS5oZWlnaHQgaXMgMCwwCitQ
QVNTIGZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZmlsZTEud2lkdGgs
ZmlsZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzcgOiBEYXRlLCBTZXR0aW5nIGJ5IEph
dmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGRhdGUxKSBpcyB0
cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBkYXRlMSkgaXMgdHJ1ZQorUEFTUyBkYXRlMS53aWR0aCxk
YXRlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGRhdGUxLndpZHRoLGRhdGUxLmhlaWdodCBpcyAxMDAs
NTAKK1BBU1MgZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzgg
OiBCdXR0b24sIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEwMCIsICI1MCIKK1BBU1Mg
KCd3aWR0aCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gYnV0dG9uMSkg
aXMgdHJ1ZQorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDAsMAorUEFTUyBi
dXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDEwMCw1MAorUEFTUyBidXR0b24xLndpZHRo
LGJ1dHRvbjEuaGVpZ2h0IGlzIDYwLDQwCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKworCisKKworCisKKworCisKKworCisKKworCisKKworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1
dGVzLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzk2NmIzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0
cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisgTm8g
Y3Jhc2ggPSB0ZXN0IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1hZ2Ut
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQt
YXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWxvYWRlZC1pbWFnZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWQ2NTVjMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMt
d2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1hZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBA
QAorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1BB
U1MgKCd3aWR0aCcgaW4gZSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gZSkgaXMgdHJ1ZQor
U3VjY2VzcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRo
LWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhv
dXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMGNmOGVkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQt
aW1hZ2UuaHRtbApAQCAtMCwwICsxLDQxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworfQorCitmdW5jdGlvbiBsb2codGV4dCkKK3sKKyAgICB2YXIgY29uc29sZSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyk7CisgICAgY29uc29sZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0KSk7CisgICAgY29uc29sZS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdicicpKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZVNsb3ciIHNyYz0icmVzb3Vy
Y2VzL2ltYWdlLXNsb3cucGwiPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGxh
bmd1YWdlPSJKYXZhU2NyaXB0Ij4KKyAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJpbWFnZVNsb3ciKTsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICByZWFkeVN0
YXRlID0gZG9jdW1lbnQucmVhZHlTdGF0ZTsKKyAgICAgICAgaWYgKHJlYWR5U3RhdGUgPT0gJ2Nv
bXBsZXRlJykgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBlKSIpOwor
ICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gZSkiKTsKKyAgICAgICAgICAg
IGxvZygiU3VjY2VzcyIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCkKKyAgICAgICAgfSBlbHNlIGlmIChyZWFkeVN0YXRlID09ICdsb2FkaW5nJyB8fCByZWFk
eVN0YXRlID09ICdpbnRlcmFjdGl2ZScpIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoInJ1blRl
c3QoKSIsIDUwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJ1blRlc3QoKTsKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1u
b3QtbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5w
dXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1ub3QtbG9hZGVkLWlt
YWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWU4
NmFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorCitQQVNTICgnd2lkdGgnIGluIGUpIGlzIHRydWUK
K1BBU1MgKCdoZWlnaHQnIGluIGUpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorU3VjY2VzcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVy
ZXItbm90LWxvYWRlZC1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13
aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NTc5ZDIxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0
cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UuaHRtbApAQCAtMCwwICsx
LDQyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitmdW5j
dGlvbiBsb2codGV4dCkKK3sKKyAgICB2YXIgY29uc29sZSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJyk7CisgICAgY29uc29sZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSh0ZXh0KSk7CisgICAgY29uc29sZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdicicpKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgdHlw
ZT0iaW1hZ2UiIGlkPSJpbWFnZVNsb3ciIHNyYz0icmVzb3VyY2VzL2ltYWdlLXNsb3cucGwiPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4K
KyAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZVNsb3ciKTsKKyAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICByZWFkeVN0YXRlID0gZG9jdW1lbnQucmVhZHlT
dGF0ZTsKKyAgICAgICAgaWYgKHJlYWR5U3RhdGUgPT0gJ2NvbXBsZXRlJykgeworICAgICAgICAg
ICAgbG9nKCJTdWNjZXNzIikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKQorICAgICAgICB9IGVsc2UgaWYgKHJlYWR5U3RhdGUgPT0gJ2xvYWRpbmcnIHx8IHJl
YWR5U3RhdGUgPT0gJ2ludGVyYWN0aXZlJykgeworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCIo
J3dpZHRoJyBpbiBlKSIpOworICAgICAgICAgICAgc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4g
ZSkiKTsKKworICAgICAgICAgICAgc2V0VGltZW91dCgicnVuVGVzdCgpIiwgNTApOworICAgICAg
ICB9CisgICAgfQorCisgICAgcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTQwMDcxCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0
cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0bWwKQEAgLTAsMCArMSwxOCBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgdmFyIGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnB1
dEVsZW1lbnQnKTsKKyAgICBpbnB1dEVsZW1lbnQud2lkdGg7CisgICAgaW5wdXRFbGVtZW50Lmhl
aWdodDsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPGlu
cHV0IGlkPSJpbnB1dEVsZW1lbnQiIHR5cGU9ImltYWdlIiB3aWR0aD0iNTAiIGhlaWdodD0iNTAi
PgorTm8gY3Jhc2ggPSB0ZXN0IFBBU1MKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTMzMzE4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmli
dXRlcy5odG1sCkBAIC0wLDAgKzEsMTU2IEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCis8
aGVhZD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keT4NCis8c2NyaXB0Pg0KK2Rlc2NyaXB0aW9u
KCd3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgSFRNTElucHV0RWxlbWVudC4nKTsNCis8
L3NjcmlwdD4NCisNCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4NCisNCis8ZGl2IGlkPSJkaXYx
Ij4NCisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2UxIiBzcmM9InJlc291cmNlcy9n
cmVlbi5qcGciIHdpZHRoPSIxNjAiIGhlaWdodD0iODBweCI+DQorPC9kaXY+DQorPGJyPg0KKw0K
KzxkaXYgaWQ9ImRpdjIiPg0KKyAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTIiIHNy
Yz0icmVzb3VyY2VzL2dyZWVuLmpwZyI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRp
djMiPg0KKyAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTMiIHNyYz0icmVzb3VyY2Vz
L2dyZWVuLmpwZyI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjQiPg0KKyAgICA8
aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTQiIHNyYz0icmVzb3VyY2VzL2dyZWVuLmpwZyI+
DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjUiPg0KKyAgICA8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9InRleHQxIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2NiI+DQor
ICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZTEiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8
ZGl2IGlkPSJkaXY3Ij4NCisgICAgPGlucHV0IHR5cGU9ImRhdGUiIGlkPSJkYXRlMSI+DQorPC9k
aXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjgiPg0KKyAgICA8aW5wdXQgdHlwZT0iYnV0dG9u
IiBpZD0iYnV0dG9uMSI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxzY3JpcHQ+DQordmFyIGRpdiA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIik7DQordmFyIGltYWdlMSA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJpbWFnZTEiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICMxIDogSW1hZ2Us
IEhUTUwgaW5saW5lIHNldHRpbmcgYXMgXCIxNjBcIiwgXCI4MFwiJyk7DQorc2hvdWxkQmVUcnVl
KCIoJ3dpZHRoJyBpbiBpbWFnZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1h
Z2UxKSIpOw0KK3Nob3VsZEJlKCdpbWFnZTEud2lkdGgsaW1hZ2UxLmhlaWdodCcsICcxNjAsODAn
KTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MiIpOw0KK3ZhciBpbWFn
ZTIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UyIik7DQorZGVidWcoJ1Rlc3QgY2Fz
ZSAjMiA6IEltYWdlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMjYwXCIsIFwiMTMw
XCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZVRy
dWUoIignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQoraW1hZ2UyLndpZHRoID0gMjYwOw0KK2ltYWdl
Mi5oZWlnaHQgPSAxMzA7DQorc2hvdWxkQmUoJ2ltYWdlMi53aWR0aCxpbWFnZTIuaGVpZ2h0Jywg
JzI2MCwxMzAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MyIpOw0K
K3ZhciBpbWFnZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UzIik7DQorZGVidWco
J1Rlc3QgY2FzZSAjMyA6IEltYWdlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTIw
cHhcIiwgXCI2MHB4XCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsN
CitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQoraW1hZ2UzLndpZHRoID0g
IjEyMHB4IjsNCitpbWFnZTMuaGVpZ2h0ID0gIjYwcHgiOw0KK3Nob3VsZEJlKCdpbWFnZTMud2lk
dGgsaW1hZ2UzLmhlaWdodCcsICcwLDAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZGl2NCIpOw0KK3ZhciBpbWFnZTQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1h
Z2U0Iik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjNCA6IEltYWdlLCBTZXR0aW5nIGJ5IEphdmFTY3Jp
cHQgQVBJIGFzIFwiMTIwLjk5XCIsIFwiNjAuNTVcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0
aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGltYWdlMSkiKTsN
CitpbWFnZTQud2lkdGggPSAxMjAuOTk7DQoraW1hZ2U0LmhlaWdodCA9IDYwLjk5Ow0KK3Nob3Vs
ZEJlKCdpbWFnZTQud2lkdGgsaW1hZ2U0LmhlaWdodCcsICcxMjAsNjAnKTsNCisNCitkaXYgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2NSIpOw0KK3ZhciB0ZXh0MSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0ZXh0MSIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0
aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTAwXCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1
ZSgiKCd3aWR0aCcgaW4gdGV4dDEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gdGV4
dDEpIik7DQordGV4dDEud2lkdGggPSAxMDA7DQordGV4dDEuaGVpZ2h0ID0gNTA7DQorc2hvdWxk
QmUoJ3RleHQxLndpZHRoLHRleHQxLmhlaWdodCcsICcwLDAnKTsNCisNCit0ZXh0MS50eXBlID0g
J2ltYWdlJzsNCit0ZXh0MS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuLmpwZyI7DQorc2hvdWxkQmUo
J3RleHQxLndpZHRoLHRleHQxLmhlaWdodCcsICcxMDAsNTAnKTsNCit0ZXh0MS53aWR0aCA9IDYw
Ow0KK3RleHQxLmhlaWdodCA9IDQwOw0KK3Nob3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWln
aHQnLCAnNjAsNDAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2NiIp
Ow0KK3ZhciBmaWxlMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlMSIpOw0KK2RlYnVn
KCdUZXN0IGNhc2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTAw
XCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gZmlsZTEpIik7DQorc2hv
dWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gZmlsZTEpIik7DQorZmlsZTEud2lkdGggPSAxMDA7DQor
ZmlsZTEuaGVpZ2h0ID0gNTA7DQorc2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCcs
ICcwLDAnKTsNCisNCitmaWxlMS50eXBlID0gJ2ltYWdlJzsNCitmaWxlMS5zcmMgPSAicmVzb3Vy
Y2VzL2dyZWVuLmpwZyI7DQorc2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCcsICcx
MDAsNTAnKTsNCitmaWxlMS53aWR0aCA9IDYwOw0KK2ZpbGUxLmhlaWdodCA9IDQwOw0KK3Nob3Vs
ZEJlKCdmaWxlMS53aWR0aCxmaWxlMS5oZWlnaHQnLCAnNjAsNDAnKTsNCisNCitkaXYgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2NyIpOw0KK3ZhciBkYXRlMSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJkYXRlMSIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzcgOiBEYXRlLCBTZXR0aW5n
IGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTAwXCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgi
KCd3aWR0aCcgaW4gZGF0ZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gZGF0ZTEp
Iik7DQorZGF0ZTEud2lkdGggPSAxMDA7DQorZGF0ZTEuaGVpZ2h0ID0gNTA7DQorc2hvdWxkQmUo
J2RhdGUxLndpZHRoLGRhdGUxLmhlaWdodCcsICcwLDAnKTsNCisNCitkYXRlMS50eXBlID0gJ2lt
YWdlJzsNCitkYXRlMS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuLmpwZyI7DQorc2hvdWxkQmUoJ2Rh
dGUxLndpZHRoLGRhdGUxLmhlaWdodCcsICcxMDAsNTAnKTsNCitkYXRlMS53aWR0aCA9IDYwOw0K
K2RhdGUxLmhlaWdodCA9IDQwOw0KK3Nob3VsZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQn
LCAnNjAsNDAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2OCIpOw0K
K3ZhciBidXR0b24xID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbjEiKTsNCitkZWJ1
ZygnVGVzdCBjYXNlICM4IDogQnV0dG9uLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwi
MTAwXCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gYnV0dG9uMSkiKTsN
CitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBidXR0b24xKSIpOw0KK2J1dHRvbjEud2lkdGgg
PSAxMDA7DQorYnV0dG9uMS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgnYnV0dG9uMS53aWR0aCxi
dXR0b24xLmhlaWdodCcsICcwLDAnKTsNCisNCitidXR0b24xLnR5cGUgPSAnaW1hZ2UnOw0KK2J1
dHRvbjEuc3JjID0gInJlc291cmNlcy9ncmVlbi5qcGciOw0KK3Nob3VsZEJlKCdidXR0b24xLndp
ZHRoLGJ1dHRvbjEuaGVpZ2h0JywgJzEwMCw1MCcpOw0KK2J1dHRvbjEud2lkdGggPSA2MDsNCiti
dXR0b24xLmhlaWdodCA9IDQwOw0KK3Nob3VsZEJlKCdidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVp
Z2h0JywgJzYwLDQwJyk7DQorDQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7DQorPC9z
Y3JpcHQ+DQorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9ncmVlbi5qcGcgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3Jlc291cmNlcy9ncmVlbi5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVmNzAwYjY4MDdkMTk1MzUyZTFh
YjAyMTRjZTRmMWVkZjkyMDM0MApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzY0CnpjbWV4PTxO
cEgmMFdVWENId0gjVk11cjMrV2NkRyhwfjFCeEdtVX00Kk94KHlmcXtYOGZ0NjgrZmY+a1IxVlJR
egp6REYjK0JufU5aTFE1d3o7ViReYERWUGFydCZ0emJNcykrKjlBZG1wV0s7Mk45WCNvPmxnfT8l
NDFSSlA9O3MwJDAKelg5Z3hsTWk2MkdBfFBPOVdkO0VANzhZaCFifmJpKWJ+WkxQYmBFWSViYENC
TUhhMVJQUEErYjQ5diZXY1BGX0E8Cno5ekd6RzgpT0piRkVkeSNEPm54bDJSRiYhe3thUjs0aDhg
UjBjSillMXx+czlXPGtkUE07UFJSSzRBcmg3YndWfQp6ZlJUeHJnJSMpYHBnVnZId2g5MjkmJjxw
T2JTeF9pRmQhSWZmJHxKMmZ+LVB7aEtfOClmcjshJmcoNjBjNkJsd1EKeko4ZThEOGclaTRpZzhq
PTZET0NMeFArdlhzK3ppbnJrMDdSbllvM2ZtOXZZaG80YmRuUzh6eVpTYT9LYVJCfXBjCnpUNiN1
aVImaHliUyRSY2VSZFkqZ1RZRT1tKlFDaSlyY1JxYVc5Rjx5aTxjfjJ3dFU2UFJodT8lKn04NH1q
LTkmPgp6OVhAak8qenByNVBoR2x2PD82TlRIKlZmfl9+YE1Jcl9ZfGhjPV90JXJfVyEkZSo2Qzg9
UCFgSTcjV3gkLWglcksKeiYwbTUqZT16fiRmUTIzOEZHaSt2QVo4WTFWTzJDXzZMSmg+UGI/SHhH
SFQ9eWFoa1lyPDNVYms8RGRfc05rdGRBCnkjOGdaa3ModTd7NGVUQEdKa35eKCYpXjxJYDBFd300
PktiJEB8WG5+Pj4waiRYKU1+YGJeZ1BqfDJGfmNfc3ZXSQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW1hZ2Utc2xv
dy5wbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2ltYWdlLXNsb3cucGwKbmV3
IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTU5NmFiYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2ltYWdlLXNsb3cucGwKQEAgLTAs
MCArMSwxOSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisKKyMgZmx1c2ggdGhlIGJ1ZmZlcnMgYWZ0
ZXIgZWFjaCBwcmludAorc2VsZWN0IChTVERPVVQpOworJHwgPSAxOworCitwcmludCAiQ29udGVu
dC1UeXBlOiBpbWFnZS9qcGVnXHJcbiI7CitwcmludCAiRXhwaXJlczogVGh1LCAwMSBEZWMgMjAw
MyAxNjowMDowMCBHTVRcclxuIjsKK3ByaW50ICJDYWNoZS1Db250cm9sOiBuby1zdG9yZSwgbm8t
Y2FjaGUsIG11c3QtcmV2YWxpZGF0ZVxyXG4iOworcHJpbnQgIlByYWdtYTogbm8tY2FjaGVcclxu
IjsKK3ByaW50ICJcclxuIjsKKworc2xlZXAgMjsKKworb3BlbihGSUxFLCAiZ3JlZW4uanBnIik7
Cit3aGlsZSAoPEZJTEU+KSB7CisgIHByaW50ICRfOworfQorY2xvc2UoRklMRSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNzVkNTBjZi4uMzI1NmNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEy
LTA1LTAyICBEb25nd29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgd2lkdGgv
aGVpZ2h0IGF0dHJpYnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNzZWQgYnkg
SmF2YVNjcmlwdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcwMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
SWYgdGhlIHR5cGUgb2YgaW5wdXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRoL2hlaWdo
dCBhdHRyaWJ1dGVzIHNob3VsZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0dHJpYnV0
ZXMgYXJlIGRlZmluZWQgaW4gSFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcv
VFIvaHRtbDUvdGhlLW1hcC1lbGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAgICAgICBU
ZXN0czogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJl
bmRlcmVyLWxvYWRlZC1pbWFnZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0
LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbm90LWxvYWRlZC1pbWFn
ZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRy
aWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9p
bnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwOiBBZGQgc2V0dGVyL2dldHRlciBmdW5jdGlvbnMgdG8gcXVlcnkvc2V0
IHdpZHRoL2hlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBp
bnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6d2lkdGgp
OiBHZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzZXRIZWlnaHQpOiBTZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgpOiBTZXRzIHdpZHRoIG9m
IGlucHV0IGVsZW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZCBw
dWJsaWMgcHJvdG90eXBlLgorICAgICAgICAoSFRNTElucHV0RWxlbWVudCk6CisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDogQWRkIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLgor
ICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucyBp
ZiB0aGUgZWxlbWVudCBpcyBhbiBpbWFnZSBidXR0b24uCisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBp
bnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoKTog
R2V0cyB3aWR0aCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5
cGUuaDogQWRkIHByb3RvdHlwZS4KKyAgICAgICAgKEltYWdlSW5wdXRUeXBlKToKKyAgICAgICAg
KiBodG1sL0lucHV0VHlwZS5jcHA6IEFkZCBnZXR0ZXIgZnVuY3Rpb25zLgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlOjpoZWlnaHQpOiBSZXR1cm5zIHplcm8uCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6d2lkdGgpOiBSZXR1cm5zIHplcm8uCisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDogQWRkIHByb3RvdHlwZS4KKyAgICAgICAgKElucHV0
VHlwZSk6CisKIDIwMTItMDUtMDIgIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIENvbnZlcnQgRnJhY3Rpb25hbExheW91dFVuaXQgb3ZlcmZsb3cgYXNzZXJ0
aW9ucyB0byBzdGRlcnIgd2FybmluZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IGIzYjBhNzIuLjQ2MDFiYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcApAQCAtNyw2ICs3LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNyBT
YW11ZWwgV2VpbmlnIChzYW1Ad2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IFRvcmNo
IE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxl
LmNvbS8pCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTg0Myw0ICsxODQ0LDI1IEBA
IGlubGluZSB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnJlbW92ZUZyb21SYWRpb0J1dHRvbkdyb3Vw
KCkKICAgICBpZiAoQ2hlY2tlZFJhZGlvQnV0dG9ucyogYnV0dG9ucyA9IGNoZWNrZWRSYWRpb0J1
dHRvbnMoKSkKICAgICAgICAgYnV0dG9ucy0+cmVtb3ZlQnV0dG9uKHRoaXMpOwogfQorCit1bnNp
Z25lZCBIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiBtX2lu
cHV0VHlwZS0+aGVpZ2h0KCk7Cit9CisKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OndpZHRo
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPndpZHRoKCk7Cit9CisKK3ZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKK3sKKyAgICBzZXRB
dHRyaWJ1dGUoaGVpZ2h0QXR0ciwgU3RyaW5nOjpudW1iZXIoaGVpZ2h0KSk7Cit9CisKK3ZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgd2lkdGgpCit7CisgICAgc2V0QXR0
cmlidXRlKHdpZHRoQXR0ciwgU3RyaW5nOjpudW1iZXIod2lkdGgpKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggM2FiZjE5My4u
ZDQzNzljMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTMsNiAr
Myw3IEBACiAgKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtk
ZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5v
cmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAg
LTIzNiw2ICsyMzcsMTEgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGludCBtYXhpbXVt
TGVuZ3RoOwogCisgICAgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3Q7CisgICAgdW5zaWduZWQgd2lk
dGgoKSBjb25zdDsKKyAgICB2b2lkIHNldEhlaWdodCh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRX
aWR0aCh1bnNpZ25lZCk7CisKIHByb3RlY3RlZDoKICAgICBIVE1MSW5wdXRFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRl
ZEJ5UGFyc2VyKTsKICAgICB2b2lkIGNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCmluZGV4IDNjMTE5OTAuLjFlY2EyNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbApAQCAtMSw2ICsxLDcgQEAKIC8q
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21h
aWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM2LDYgKzM3LDcgQEAgbW9k
dWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgW1RyZWF0TnVsbEFzPU51bGxTdHJpbmddIERP
TVN0cmluZyBmb3JtTWV0aG9kOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIGJvb2xlYW4g
Zm9ybU5vVmFsaWRhdGU7CiAgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIGZv
cm1UYXJnZXQ7CisgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGhlaWdodDsKICAgICAg
ICAgYXR0cmlidXRlIGJvb2xlYW4gaW5kZXRlcm1pbmF0ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtDb25kaXRpb25hbD1EQVRBTElTVF0gSFRNTEVsZW1lbnQgbGlzdDsKICAgICAgICAg
YXR0cmlidXRlIFtSZWZsZWN0XSBET01TdHJpbmcgbWF4OwpAQCAtNjUsNiArNjcsNyBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIHZvaWQgc3RlcFVwKGluIFtPcHRpb25hbF0gbG9uZyBuKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzdGVwRG93bihpbiBbT3B0aW9uYWxdIGxv
bmcgbikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVk
IGxvbmcgd2lkdGg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHdpbGxWYWxp
ZGF0ZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFZhbGlkaXR5U3RhdGUgdmFsaWRpdHk7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGZjMzdlMjkuLjQ1NmYy
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xLDYgKzEsNyBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAw
OSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCkBAIC0yNiwxMiArMjcsMTYgQEAKICNpbmNsdWRlICJIVE1MRm9ybUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFBhcnNl
cklkaW9tcy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFn
ZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKwogaW5saW5lIEltYWdlSW5wdXRUeXBlOjpJ
bWFnZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogICAgIDogQmFzZUJ1dHRv
bklucHV0VHlwZShlbGVtZW50KQogewpAQCAtMTc0LDQgKzE3OSw0NiBAQCBib29sIEltYWdlSW5w
dXRUeXBlOjpzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAordW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0Cit7
CisgICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7
CisKKyAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhl
IGF0dHJpYnV0ZSBmaXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWUuCisgICAgICAgIHVu
c2lnbmVkIGhlaWdodDsKKyAgICAgICAgaWYgKHBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihl
bGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKGhlaWdodEF0dHIpLCBoZWlnaHQpKQorICAgICAgICAg
ICAgcmV0dXJuIGhlaWdodDsKKworICAgICAgICAvLyBJZiB0aGUgaW1hZ2UgaXMgYXZhaWxhYmxl
LCB1c2UgaXRzIGhlaWdodC4KKyAgICAgICAgaWYgKG1faW1hZ2VMb2FkZXItPmltYWdlKCkpCisg
ICAgICAgICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VTaXplRm9yUmVu
ZGVyZXIoZWxlbWVudC0+cmVuZGVyZXIoKSwgMSkuaGVpZ2h0KCk7CisgICAgfQorCisgICAgZWxl
bWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisKKyAgICBSZW5kZXJCb3gqIGJveCA9
IGVsZW1lbnQtPnJlbmRlckJveCgpOworICAgIHJldHVybiBib3ggPyBhZGp1c3RGb3JBYnNvbHV0
ZVpvb20oYm94LT5jb250ZW50SGVpZ2h0KCksIGJveCkgOiAwOworfQorCit1bnNpZ25lZCBJbWFn
ZUlucHV0VHlwZTo6d2lkdGgoKSBjb25zdAoreworICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50
PiBlbGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpOworCisgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJl
cigpKSB7CisgICAgICAgIC8vIENoZWNrIHRoZSBhdHRyaWJ1dGUgZmlyc3QgZm9yIGFuIGV4cGxp
Y2l0IHBpeGVsIHZhbHVlLgorICAgICAgICB1bnNpZ25lZCB3aWR0aDsKKyAgICAgICAgaWYgKHBh
cnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcihlbGVtZW50LT5mYXN0R2V0QXR0cmlidXRlKHdpZHRo
QXR0ciksIHdpZHRoKSkKKyAgICAgICAgICAgIHJldHVybiB3aWR0aDsKKworICAgICAgICAvLyBJ
ZiB0aGUgaW1hZ2UgaXMgYXZhaWxhYmxlLCB1c2UgaXRzIHdpZHRoLgorICAgICAgICBpZiAobV9p
bWFnZUxvYWRlci0+aW1hZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVyLT5p
bWFnZSgpLT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LT5yZW5kZXJlcigpLCAxKS53aWR0
aCgpOworICAgIH0KKworICAgIGVsZW1lbnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOwor
CisgICAgUmVuZGVyQm94KiBib3ggPSBlbGVtZW50LT5yZW5kZXJCb3goKTsKKyAgICByZXR1cm4g
Ym94ID8gYWRqdXN0Rm9yQWJzb2x1dGVab29tKGJveC0+Y29udGVudFdpZHRoKCksIGJveCkgOiAw
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ltYWdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmgKaW5kZXggOTNkYjA3NS4uNWVjOTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTYxLDYgKzYyLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
aXNJbWFnZUJ1dHRvbigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc0VudW1l
cmF0YWJsZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0
QW5kV2lkdGhBdHRyaWJ1dGVzKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1bnNpZ25lZCBoZWln
aHQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Qg
T1ZFUlJJREU7CiAKICAgICBPd25QdHI8SFRNTEltYWdlTG9hZGVyPiBtX2ltYWdlTG9hZGVyOwog
ICAgIEludFBvaW50IG1fY2xpY2tMb2NhdGlvbjsgLy8gVmFsaWQgb25seSBkdXJpbmcgSFRNTEZv
cm1FbGVtZW50OjpwcmVwYXJlRm9yU3VibWlzc2lvbigpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
Y3BwCmluZGV4IDEyOWZjNWUuLjIyYzA0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAK
QEAgLTYsNiArNiw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtv
diAoYXBAbnlwb3AuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNh
bUB3ZWJraXQub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDEsNiArNDIsOCBA
QAogI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFNoYWRvd0VsZW1l
bnQuaCIKICNpbmNsdWRlICJIaWRkZW5JbnB1dFR5cGUuaCIKICNpbmNsdWRlICJJbWFnZUlucHV0
VHlwZS5oIgpAQCAtNzcyLDYgKzc3NSwxNiBAQCBib29sIElucHV0VHlwZTo6c3VwcG9ydHNJbmRl
dGVybWluYXRlQXBwZWFyYW5jZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit1bnNp
Z25lZCBJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKK3Vu
c2lnbmVkIElucHV0VHlwZTo6d2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCiBu
YW1lc3BhY2UgSW5wdXRUeXBlTmFtZXMgewogCiAvLyBUaGUgdHlwZSBuYW1lcyBtdXN0IGJlIGxv
d2VyY2FzZWQgYmVjYXVzZSB0aGV5IHdpbGwgYmUgdGhlIHJldHVybiB2YWx1ZXMgb2YKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5oCmluZGV4IGU5MDMyYzAuLmFlODU2NWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKQEAgLTI3NSw2ICsyNzYsMTEgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzSW5kZXRlcm1pbmF0ZUFwcGVhcmFuY2UoKSBjb25zdDsKIAorICAgIC8vIEdl
dHMgd2lkdGggYW5kIGhlaWdodCBvZiB0aGUgaW5wdXQgZWxlbWVudCBpZiB0aGUgdHlwZSBvZiB0
aGUKKyAgICAvLyBlbGVtZW50IGlzIGltYWdlLiBJdCByZXR1cm5zIDAgaWYgdGhlIGVsZW1lbnQg
aXMgbm90IGltYWdlIHR5cGUuCisgICAgdmlydHVhbCB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBtX2VsZW1lbnQoZWxlbWVudCkg
eyB9CiAgICAgSFRNTElucHV0RWxlbWVudCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxl
bWVudDsgfQo=
</data>
<flag name="review"
          id="145706"
          type_id="1"
          status="-"
          setter="tkent"
    />
    <flag name="commit-queue"
          id="145707"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140485</attachid>
            <date>2012-05-07 00:04:56 -0700</date>
            <delta_ts>2012-05-07 01:32:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthheight_0507.patch</filename>
            <type>text/plain</type>
            <size>25960</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ZTMyMzc5Li4yZGVlNGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDUt
MDcgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJZiB0
aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBh
cmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0
aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1h
Z2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXdpZHRo
LWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMt
d2l0aG91dC1yZW5kZXJlci1ub3QtbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0
LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0
ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBn
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jlc291cmNlcy9pbWFnZS1zbG93LnBsOiBB
ZGRlZC4KKwogMjAxMi0wNS0wNiAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8cmFrdWNvQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW0VGTF0gR2FyZGVuaW5nLiBTa2lwIG1vcmUgZmFpbGluZyB0ZXN0
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13
aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZjMwZDNmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNjUgQEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVt
ZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBjYXNlICMxIDogSW1h
Z2UsIEhUTUwgaW5saW5lIHNldHRpbmcgYXMgIjE2MCIsICI4MCIKK1BBU1MgKCd3aWR0aCcgaW4g
aW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1Mg
aW1hZ2UxLndpZHRoLGltYWdlMS5oZWlnaHQgaXMgMTYwLDgwCitUZXN0IGNhc2UgIzIgOiBJbWFn
ZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyAiMjYwIiwgIjEzMCIKK1BBU1MgKCd3aWR0
aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUK
K1BBU1MgaW1hZ2UyLndpZHRoLGltYWdlMi5oZWlnaHQgaXMgMjYwLDEzMAorVGVzdCBjYXNlICMz
IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQ
QVNTICgnd2lkdGgnIGluIGltYWdlMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gaW1hZ2Ux
KSBpcyB0cnVlCitQQVNTIGltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0IGlzIDAsMAorVGVzdCBj
YXNlICM0IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMC45OSIsICI2
MC41NSIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBp
biBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIw
LDYwCitUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIx
MDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIHRleHQxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0
JyBpbiB0ZXh0MSkgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQgaXMgMCww
CitQQVNTIHRleHQxLndpZHRoLHRleHQxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgdGV4dDEud2lk
dGgsdGV4dDEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5
IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGZpbGUxKSBp
cyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBmaWxlMSkgaXMgdHJ1ZQorUEFTUyBmaWxlMS53aWR0
aCxmaWxlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCBpcyAx
MDAsNTAKK1BBU1MgZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2Ug
IzcgOiBEYXRlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNT
ICgnd2lkdGgnIGluIGRhdGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBkYXRlMSkgaXMg
dHJ1ZQorUEFTUyBkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGRhdGUxLndp
ZHRoLGRhdGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0
IGlzIDYwLDQwCitUZXN0IGNhc2UgIzggOiBCdXR0b24sIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBB
UEkgYXMgIjEwMCIsICI1MCIKK1BBU1MgKCd3aWR0aCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFT
UyAoJ2hlaWdodCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRv
bjEuaGVpZ2h0IGlzIDAsMAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDEw
MCw1MAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDYwLDQwCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKKworCisKKwor
CisKKworCisKKworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13
aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42NWQzOWYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgaW5wdXRFbGVtZW50LndpZHRoIGlzIDUwCitQQVNT
IGlucHV0RWxlbWVudC5oZWlnaHQgaXMgNTAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWlt
YWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVp
Z2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1hZ2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NjRmOTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1
dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYgQEAKK1BBU1MgZS53aWR0aCBpcyAwCitQQVNTIGUuaGVpZ2h0IGlzIDAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQt
cmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGY1OGZjZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJp
YnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1hZ2UuaHRtbApAQCAtMCwwICsxLDIwIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFn
ZUlucHV0IiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciIHN0eWxlPSJkaXNwbGF5Om5vbmUiPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4K
KyAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZUlucHV0Iik7CisgICAg
c2hvdWxkQmUoJ2Uud2lkdGgnLCAnMCcpOworICAgIHNob3VsZEJlKCdlLmhlaWdodCcsICcwJyk7
CisgICAgZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdo
dC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbm90LWxvYWRlZC1pbWFnZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVz
LXdpdGhvdXQtcmVuZGVyZXItbm90LWxvYWRlZC1pbWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzk2NGY5MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91
dC1yZW5kZXJlci1ub3QtbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAK
K1BBU1MgZS53aWR0aCBpcyAwCitQQVNTIGUuaGVpZ2h0IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVy
ZXItbm90LWxvYWRlZC1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13
aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2Uu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGE2YzE5Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0
cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UuaHRtbApAQCAtMCwwICsx
LDI3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgdHlwZT0iaW1hZ2UiIGlk
PSJpbWFnZVNsb3ciIHNyYz0icmVzb3VyY2VzL2ltYWdlLXNsb3cucGwiIHN0eWxlPSJkaXNwbGF5
Om5vbmUiPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGxhbmd1YWdlPSJKYXZh
U2NyaXB0Ij4KKyAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZVNsb3ci
KTsKKworICAgIGRvY3VtZW50Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICByZWFkeVN0YXRlID0gZG9jdW1lbnQucmVhZHlTdGF0ZTsKKyAgICAgICAgaWYgKHJlYWR5
U3RhdGUgPT0gJ2NvbXBsZXRlJykgeworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgIH0gZWxzZSBpZiAocmVhZHlTdGF0ZSA9PSAnbG9hZGluZycgfHwgcmVhZHlTdGF0ZSA9PSAn
aW50ZXJhY3RpdmUnKSB7CisgICAgICAgICAgICBzaG91bGRCZSgnZS53aWR0aCcsICcwJyk7Cisg
ICAgICAgICAgICBzaG91bGRCZSgnZS5oZWlnaHQnLCAnMCcpOworICAgICAgICB9CisgICAgfQor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJl
bmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1h
dHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hNzliZjkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0bWwK
QEAgLTAsMCArMSwyMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlucHV0RWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dEVsZW1lbnQiKTsKKyAgICBzaG91
bGRCZSgnaW5wdXRFbGVtZW50LndpZHRoJywgJzUwJyk7CisgICAgc2hvdWxkQmUoJ2lucHV0RWxl
bWVudC5oZWlnaHQnLCAnNTAnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKKworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8aW5wdXQgaWQ9ImlucHV0RWxlbWVu
dCIgdHlwZT0iaW1hZ2UiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgc3R5bGU9ImRpc3BsYXk6bm9u
ZSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTMzMzE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sCkBA
IC0wLDAgKzEsMTU2IEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCis8aGVhZD4NCis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
Pg0KKzwvaGVhZD4NCis8Ym9keT4NCis8c2NyaXB0Pg0KK2Rlc2NyaXB0aW9uKCd3aWR0aCBhbmQg
aGVpZ2h0IGF0dHJpYnV0ZXMgb2YgSFRNTElucHV0RWxlbWVudC4nKTsNCis8L3NjcmlwdD4NCisN
Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4NCisNCis8ZGl2IGlkPSJkaXYxIj4NCisgICAgPGlu
cHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2UxIiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciIHdp
ZHRoPSIxNjAiIGhlaWdodD0iODBweCI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRp
djIiPg0KKyAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTIiIHNyYz0icmVzb3VyY2Vz
L2dyZWVuLmpwZyI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjMiPg0KKyAgICA8
aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTMiIHNyYz0icmVzb3VyY2VzL2dyZWVuLmpwZyI+
DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjQiPg0KKyAgICA8aW5wdXQgdHlwZT0i
aW1hZ2UiIGlkPSJpbWFnZTQiIHNyYz0icmVzb3VyY2VzL2dyZWVuLmpwZyI+DQorPC9kaXY+DQor
PGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjUiPg0KKyAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InRl
eHQxIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2NiI+DQorICAgIDxpbnB1dCB0
eXBlPSJmaWxlIiBpZD0iZmlsZTEiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2IGlkPSJkaXY3
Ij4NCisgICAgPGlucHV0IHR5cGU9ImRhdGUiIGlkPSJkYXRlMSI+DQorPC9kaXY+DQorPGJyPg0K
Kw0KKzxkaXYgaWQ9ImRpdjgiPg0KKyAgICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBpZD0iYnV0dG9u
MSI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxzY3JpcHQ+DQordmFyIGRpdiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkaXYxIik7DQordmFyIGltYWdlMSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJpbWFnZTEiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICMxIDogSW1hZ2UsIEhUTUwgaW5saW5l
IHNldHRpbmcgYXMgXCIxNjBcIiwgXCI4MFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBp
biBpbWFnZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2UxKSIpOw0KK3No
b3VsZEJlKCdpbWFnZTEud2lkdGgsaW1hZ2UxLmhlaWdodCcsICcxNjAsODAnKTsNCisNCitkaXYg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MiIpOw0KK3ZhciBpbWFnZTIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UyIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjMiA6IEltYWdl
LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMjYwXCIsIFwiMTMwXCInKTsNCitzaG91
bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZVRydWUoIignaGVpZ2h0
JyBpbiBpbWFnZTEpIik7DQoraW1hZ2UyLndpZHRoID0gMjYwOw0KK2ltYWdlMi5oZWlnaHQgPSAx
MzA7DQorc2hvdWxkQmUoJ2ltYWdlMi53aWR0aCxpbWFnZTIuaGVpZ2h0JywgJzI2MCwxMzAnKTsN
CisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MyIpOw0KK3ZhciBpbWFnZTMg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UzIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAj
MyA6IEltYWdlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTIwcHhcIiwgXCI2MHB4
XCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZVRy
dWUoIignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQoraW1hZ2UzLndpZHRoID0gIjEyMHB4IjsNCitp
bWFnZTMuaGVpZ2h0ID0gIjYwcHgiOw0KK3Nob3VsZEJlKCdpbWFnZTMud2lkdGgsaW1hZ2UzLmhl
aWdodCcsICcwLDAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2NCIp
Ow0KK3ZhciBpbWFnZTQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2U0Iik7DQorZGVi
dWcoJ1Rlc3QgY2FzZSAjNCA6IEltYWdlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwi
MTIwLjk5XCIsIFwiNjAuNTVcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gaW1hZ2Ux
KSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGltYWdlMSkiKTsNCitpbWFnZTQud2lk
dGggPSAxMjAuOTk7DQoraW1hZ2U0LmhlaWdodCA9IDYwLjk5Ow0KK3Nob3VsZEJlKCdpbWFnZTQu
d2lkdGgsaW1hZ2U0LmhlaWdodCcsICcxMjAsNjAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiZGl2NSIpOw0KK3ZhciB0ZXh0MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJ0ZXh0MSIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5nIGJ5IEphdmFT
Y3JpcHQgQVBJIGFzIFwiMTAwXCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcg
aW4gdGV4dDEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gdGV4dDEpIik7DQordGV4
dDEud2lkdGggPSAxMDA7DQordGV4dDEuaGVpZ2h0ID0gNTA7DQorc2hvdWxkQmUoJ3RleHQxLndp
ZHRoLHRleHQxLmhlaWdodCcsICcwLDAnKTsNCisNCit0ZXh0MS50eXBlID0gJ2ltYWdlJzsNCit0
ZXh0MS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuLmpwZyI7DQorc2hvdWxkQmUoJ3RleHQxLndpZHRo
LHRleHQxLmhlaWdodCcsICcxMDAsNTAnKTsNCit0ZXh0MS53aWR0aCA9IDYwOw0KK3RleHQxLmhl
aWdodCA9IDQwOw0KK3Nob3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQnLCAnNjAsNDAn
KTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2NiIpOw0KK3ZhciBmaWxl
MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlMSIpOw0KK2RlYnVnKCdUZXN0IGNhc2Ug
IzYgOiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTAwXCIsIFwiNTBcIicp
Ow0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gZmlsZTEpIik7DQorc2hvdWxkQmVUcnVlKCIo
J2hlaWdodCcgaW4gZmlsZTEpIik7DQorZmlsZTEud2lkdGggPSAxMDA7DQorZmlsZTEuaGVpZ2h0
ID0gNTA7DQorc2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCcsICcwLDAnKTsNCisN
CitmaWxlMS50eXBlID0gJ2ltYWdlJzsNCitmaWxlMS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuLmpw
ZyI7DQorc2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCcsICcxMDAsNTAnKTsNCitm
aWxlMS53aWR0aCA9IDYwOw0KK2ZpbGUxLmhlaWdodCA9IDQwOw0KK3Nob3VsZEJlKCdmaWxlMS53
aWR0aCxmaWxlMS5oZWlnaHQnLCAnNjAsNDAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZGl2NyIpOw0KK3ZhciBkYXRlMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJk
YXRlMSIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzcgOiBEYXRlLCBTZXR0aW5nIGJ5IEphdmFTY3Jp
cHQgQVBJIGFzIFwiMTAwXCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4g
ZGF0ZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gZGF0ZTEpIik7DQorZGF0ZTEu
d2lkdGggPSAxMDA7DQorZGF0ZTEuaGVpZ2h0ID0gNTA7DQorc2hvdWxkQmUoJ2RhdGUxLndpZHRo
LGRhdGUxLmhlaWdodCcsICcwLDAnKTsNCisNCitkYXRlMS50eXBlID0gJ2ltYWdlJzsNCitkYXRl
MS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuLmpwZyI7DQorc2hvdWxkQmUoJ2RhdGUxLndpZHRoLGRh
dGUxLmhlaWdodCcsICcxMDAsNTAnKTsNCitkYXRlMS53aWR0aCA9IDYwOw0KK2RhdGUxLmhlaWdo
dCA9IDQwOw0KK3Nob3VsZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAnNjAsNDAnKTsN
CisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2OCIpOw0KK3ZhciBidXR0b24x
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbjEiKTsNCitkZWJ1ZygnVGVzdCBjYXNl
ICM4IDogQnV0dG9uLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTAwXCIsIFwiNTBc
IicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gYnV0dG9uMSkiKTsNCitzaG91bGRCZVRy
dWUoIignaGVpZ2h0JyBpbiBidXR0b24xKSIpOw0KK2J1dHRvbjEud2lkdGggPSAxMDA7DQorYnV0
dG9uMS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgnYnV0dG9uMS53aWR0aCxidXR0b24xLmhlaWdo
dCcsICcwLDAnKTsNCisNCitidXR0b24xLnR5cGUgPSAnaW1hZ2UnOw0KK2J1dHRvbjEuc3JjID0g
InJlc291cmNlcy9ncmVlbi5qcGciOw0KK3Nob3VsZEJlKCdidXR0b24xLndpZHRoLGJ1dHRvbjEu
aGVpZ2h0JywgJzEwMCw1MCcpOw0KK2J1dHRvbjEud2lkdGggPSA2MDsNCitidXR0b24xLmhlaWdo
dCA9IDQwOw0KK3Nob3VsZEJlKCdidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0JywgJzYwLDQw
Jyk7DQorDQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7DQorPC9zY3JpcHQ+DQorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3Jlc291cmNlcy9ncmVlbi5qcGcgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNl
cy9ncmVlbi5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVmNzAwYjY4MDdkMTk1MzUyZTFhYjAyMTRjZTRmMWVk
ZjkyMDM0MApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzY0CnpjbWV4PTxOcEgmMFdVWENId0gj
Vk11cjMrV2NkRyhwfjFCeEdtVX00Kk94KHlmcXtYOGZ0NjgrZmY+a1IxVlJRegp6REYjK0JufU5a
TFE1d3o7ViReYERWUGFydCZ0emJNcykrKjlBZG1wV0s7Mk45WCNvPmxnfT8lNDFSSlA9O3MwJDAK
elg5Z3hsTWk2MkdBfFBPOVdkO0VANzhZaCFifmJpKWJ+WkxQYmBFWSViYENCTUhhMVJQUEErYjQ5
diZXY1BGX0E8Cno5ekd6RzgpT0piRkVkeSNEPm54bDJSRiYhe3thUjs0aDhgUjBjSillMXx+czlX
PGtkUE07UFJSSzRBcmg3YndWfQp6ZlJUeHJnJSMpYHBnVnZId2g5MjkmJjxwT2JTeF9pRmQhSWZm
JHxKMmZ+LVB7aEtfOClmcjshJmcoNjBjNkJsd1EKeko4ZThEOGclaTRpZzhqPTZET0NMeFArdlhz
K3ppbnJrMDdSbllvM2ZtOXZZaG80YmRuUzh6eVpTYT9LYVJCfXBjCnpUNiN1aVImaHliUyRSY2VS
ZFkqZ1RZRT1tKlFDaSlyY1JxYVc5Rjx5aTxjfjJ3dFU2UFJodT8lKn04NH1qLTkmPgp6OVhAak8q
enByNVBoR2x2PD82TlRIKlZmfl9+YE1Jcl9ZfGhjPV90JXJfVyEkZSo2Qzg9UCFgSTcjV3gkLWgl
cksKeiYwbTUqZT16fiRmUTIzOEZHaSt2QVo4WTFWTzJDXzZMSmg+UGI/SHhHSFQ9eWFoa1lyPDNV
Yms8RGRfc05rdGRBCnkjOGdaa3ModTd7NGVUQEdKa35eKCYpXjxJYDBFd300PktiJEB8WG5+Pj4w
aiRYKU1+YGJeZ1BqfDJGfmNfc3ZXSQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW1hZ2Utc2xvdy5wbCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2ltYWdlLXNsb3cucGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOTU5NmFiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2ltYWdlLXNsb3cucGwKQEAgLTAsMCArMSwxOSBAQAor
IyEvdXNyL2Jpbi9wZXJsIC13CisKKyMgZmx1c2ggdGhlIGJ1ZmZlcnMgYWZ0ZXIgZWFjaCBwcmlu
dAorc2VsZWN0IChTVERPVVQpOworJHwgPSAxOworCitwcmludCAiQ29udGVudC1UeXBlOiBpbWFn
ZS9qcGVnXHJcbiI7CitwcmludCAiRXhwaXJlczogVGh1LCAwMSBEZWMgMjAwMyAxNjowMDowMCBH
TVRcclxuIjsKK3ByaW50ICJDYWNoZS1Db250cm9sOiBuby1zdG9yZSwgbm8tY2FjaGUsIG11c3Qt
cmV2YWxpZGF0ZVxyXG4iOworcHJpbnQgIlByYWdtYTogbm8tY2FjaGVcclxuIjsKK3ByaW50ICJc
clxuIjsKKworc2xlZXAgMjsKKworb3BlbihGSUxFLCAiZ3JlZW4uanBnIik7Cit3aGlsZSAoPEZJ
TEU+KSB7CisgIHByaW50ICRfOworfQorY2xvc2UoRklMRSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGU1NTc1
ZC4uYjM2YTQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA1LTA3ICBEb25n
d29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgd2lkdGgvaGVpZ2h0IGF0dHJp
YnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2YVNjcmlwdC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMzA0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSWYgdGhlIHR5cGUg
b2YgaW5wdXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVz
IHNob3VsZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMgYXJlIGRlZmlu
ZWQgaW4gSFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvdGhl
LW1hcC1lbGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAgICAgICBUZXN0czogZmFzdC9m
b3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWxvYWRl
ZC1pbWFnZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdo
dC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbm90LWxvYWRlZC1pbWFnZS5odG1sCisgICAg
ICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhv
dXQtcmVuZGVyZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1o
ZWlnaHQtYXR0cmlidXRlcy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOiBBZGQgc2V0dGVyL2dldHRlciBmdW5jdGlvbnMgdG8gcXVlcnkvc2V0IHdpZHRoL2hlaWdo
dCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6d2lkdGgpOiBHZXRzIHdpZHRo
IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRIZWlnaHQpOiBTZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1l
bnQuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZCBwdWJsaWMgcHJvdG90
eXBlLgorICAgICAgICAoSFRNTElucHV0RWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmlkbDogQWRkIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLgorICAgICAgICAqIGh0
bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucyBpZiB0aGUgZWxlbWVu
dCBpcyBhbiBpbWFnZSBidXR0b24uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50
LgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoKTogR2V0cyB3aWR0aCBv
ZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuaDogQWRkIHBy
b3RvdHlwZS4KKyAgICAgICAgKEltYWdlSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL0lucHV0
VHlwZS5jcHA6IEFkZCBnZXR0ZXIgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlOjpoZWlnaHQpOiBSZXR1cm5zIHplcm8uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OklucHV0VHlwZTo6d2lkdGgpOiBSZXR1cm5zIHplcm8uCisgICAgICAgICogaHRt
bC9JbnB1dFR5cGUuaDogQWRkIHByb3RvdHlwZS4KKyAgICAgICAgKElucHV0VHlwZSk6CisKIDIw
MTItMDUtMDYgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJha3Vjb0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvciByMTE2MjYwLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYjNiMGE3Mi4uNDYwMWJjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC03LDYgKzcsNyBAQAogICogQ29w
eXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJraXQub3JnKQogICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6
Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVs
ZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0x
ODQzLDQgKzE4NDQsMjUgQEAgaW5saW5lIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVtb3ZlRnJv
bVJhZGlvQnV0dG9uR3JvdXAoKQogICAgIGlmIChDaGVja2VkUmFkaW9CdXR0b25zKiBidXR0b25z
ID0gY2hlY2tlZFJhZGlvQnV0dG9ucygpKQogICAgICAgICBidXR0b25zLT5yZW1vdmVCdXR0b24o
dGhpcyk7CiB9CisKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OmhlaWdodCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5oZWlnaHQoKTsKK30KKwordW5zaWduZWQgSFRNTElu
cHV0RWxlbWVudDo6d2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX2lucHV0VHlwZS0+d2lk
dGgoKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQodW5zaWduZWQgaGVp
Z2h0KQoreworICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6Om51bWJlcihoZWln
aHQpKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB3aWR0
aCkKK3sKKyAgICBzZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCBTdHJpbmc6Om51bWJlcih3aWR0aCkp
OworfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAppbmRleCAzYWJmMTkzLi5kNDM3OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaApAQCAtMyw2ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2
aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBEaXJrIE11ZWxs
ZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNywgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjM2LDYgKzIzNywxMSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
Y29uc3QgaW50IG1heGltdW1MZW5ndGg7CiAKKyAgICB1bnNpZ25lZCBoZWlnaHQoKSBjb25zdDsK
KyAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OworICAgIHZvaWQgc2V0SGVpZ2h0KHVuc2lnbmVk
KTsKKyAgICB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxJ
bnB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRNTEZvcm1FbGVt
ZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJl
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5kZXggM2MxMTk5
MC4uMWVjYTI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCkBA
IC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5p
ZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAt
MzYsNiArMzcsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBbVHJlYXROdWxs
QXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1NZXRob2Q7CiAgICAgICAgIGF0dHJpYnV0ZSBb
UmVmbGVjdF0gYm9vbGVhbiBmb3JtTm9WYWxpZGF0ZTsKICAgICAgICAgYXR0cmlidXRlIFtSZWZs
ZWN0XSBET01TdHJpbmcgZm9ybVRhcmdldDsKKyAgICAgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgaGVpZ2h0OwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpbmRldGVybWluYXRlOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFMSVNUXSBIVE1MRWxlbWVu
dCBsaXN0OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBtYXg7CkBAIC02
NSw2ICs2Nyw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgdm9pZCBzdGVwVXAoaW4gW09wdGlv
bmFsXSBsb25nIG4pIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHN0ZXBEb3du
KGluIFtPcHRpb25hbF0gbG9uZyBuKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAorICAgICAgICBh
dHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aWR0aDsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gd2lsbFZhbGlkYXRlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgVmFsaWRp
dHlTdGF0ZSB2YWxpZGl0eTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5k
ZXggZmMzN2UyOS4uNDU2ZjIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5j
cHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDEyICsyNywxNiBAQAogI2lu
Y2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgog
I2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNp
bmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2lu
Y2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCiBpbmxpbmUg
SW1hZ2VJbnB1dFR5cGU6OkltYWdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQp
CiAgICAgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpCiB7CkBAIC0xNzQsNCArMTc5LDQ2
IEBAIGJvb2wgSW1hZ2VJbnB1dFR5cGU6OnNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJp
YnV0ZXMoKQogICAgIHJldHVybiB0cnVlOwogfQogCit1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6
aGVpZ2h0KCkgY29uc3QKK3sKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gZWxlbWVudCA9
IHRoaXMtPmVsZW1lbnQoKTsKKworICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKSkgeworICAg
ICAgICAvLyBDaGVjayB0aGUgYXR0cmlidXRlIGZpcnN0IGZvciBhbiBleHBsaWNpdCBwaXhlbCB2
YWx1ZS4KKyAgICAgICAgdW5zaWduZWQgaGVpZ2h0OworICAgICAgICBpZiAocGFyc2VIVE1MTm9u
TmVnYXRpdmVJbnRlZ2VyKGVsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoaGVpZ2h0QXR0ciksIGhl
aWdodCkpCisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworCisgICAgICAgIC8vIElmIHRoZSBp
bWFnZSBpcyBhdmFpbGFibGUsIHVzZSBpdHMgaGVpZ2h0LgorICAgICAgICBpZiAobV9pbWFnZUxv
YWRlci0+aW1hZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVyLT5pbWFnZSgp
LT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LT5yZW5kZXJlcigpLCAxKS5oZWlnaHQoKTsK
KyAgICB9CisKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKKworICAg
IFJlbmRlckJveCogYm94ID0gZWxlbWVudC0+cmVuZGVyQm94KCk7CisgICAgcmV0dXJuIGJveCA/
IGFkanVzdEZvckFic29sdXRlWm9vbShib3gtPmNvbnRlbnRIZWlnaHQoKSwgYm94KSA6IDA7Cit9
CisKK3Vuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3aWR0aCgpIGNvbnN0Cit7CisgICAgUmVmUHRy
PEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7CisKKyAgICBpZiAo
IWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhlIGF0dHJpYnV0ZSBm
aXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWUuCisgICAgICAgIHVuc2lnbmVkIHdpZHRo
OworICAgICAgICBpZiAocGFyc2VIVE1MTm9uTmVnYXRpdmVJbnRlZ2VyKGVsZW1lbnQtPmZhc3RH
ZXRBdHRyaWJ1dGUod2lkdGhBdHRyKSwgd2lkdGgpKQorICAgICAgICAgICAgcmV0dXJuIHdpZHRo
OworCisgICAgICAgIC8vIElmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUsIHVzZSBpdHMgd2lkdGgu
CisgICAgICAgIGlmIChtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKQorICAgICAgICAgICAgcmV0dXJu
IG1faW1hZ2VMb2FkZXItPmltYWdlKCktPmltYWdlU2l6ZUZvclJlbmRlcmVyKGVsZW1lbnQtPnJl
bmRlcmVyKCksIDEpLndpZHRoKCk7CisgICAgfQorCisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+
dXBkYXRlTGF5b3V0KCk7CisKKyAgICBSZW5kZXJCb3gqIGJveCA9IGVsZW1lbnQtPnJlbmRlckJv
eCgpOworICAgIHJldHVybiBib3ggPyBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oYm94LT5jb250ZW50
V2lkdGgoKSwgYm94KSA6IDA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAppbmRleCA5M2RiMDc1Li41ZWM5N2U0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNjEsNiArNjIsOCBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdW5zaWdu
ZWQgd2lkdGgoKSBjb25zdCBPVkVSUklERTsKIAogICAgIE93blB0cjxIVE1MSW1hZ2VMb2FkZXI+
IG1faW1hZ2VMb2FkZXI7CiAgICAgSW50UG9pbnQgbV9jbGlja0xvY2F0aW9uOyAvLyBWYWxpZCBv
bmx5IGR1cmluZyBIVE1MRm9ybUVsZW1lbnQ6OnByZXBhcmVGb3JTdWJtaXNzaW9uKCkuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggMTI5ZmM1ZS4uMjJjMDQ5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcApAQCAtNiw2ICs2LDcgQEAKICAqICAgICAgICAgICAoQykgMjAwNiBB
bGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcg
U2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC00MSw2ICs0Miw4IEBACiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRl
ICJIVE1MU2hhZG93RWxlbWVudC5oIgogI2luY2x1ZGUgIkhpZGRlbklucHV0VHlwZS5oIgogI2lu
Y2x1ZGUgIkltYWdlSW5wdXRUeXBlLmgiCkBAIC03NzIsNiArNzc1LDE2IEBAIGJvb2wgSW5wdXRU
eXBlOjpzdXBwb3J0c0luZGV0ZXJtaW5hdGVBcHBlYXJhbmNlKCkgY29uc3QKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK3Vuc2lnbmVkIElucHV0VHlwZTo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKwordW5zaWduZWQgSW5wdXRUeXBlOjp3aWR0aCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIDA7Cit9CisKIG5hbWVzcGFjZSBJbnB1dFR5cGVOYW1lcyB7CiAKIC8vIFRoZSB0eXBl
IG5hbWVzIG11c3QgYmUgbG93ZXJjYXNlZCBiZWNhdXNlIHRoZXkgd2lsbCBiZSB0aGUgcmV0dXJu
IHZhbHVlcyBvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggZTkwMzJjMC4uYWU4NTY1YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjc1LDYgKzI3NiwxMSBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbmRldGVybWluYXRlQXBwZWFyYW5jZSgpIGNv
bnN0OwogCisgICAgLy8gR2V0cyB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBpbnB1dCBlbGVtZW50
IGlmIHRoZSB0eXBlIG9mIHRoZQorICAgIC8vIGVsZW1lbnQgaXMgaW1hZ2UuIEl0IHJldHVybnMg
MCBpZiB0aGUgZWxlbWVudCBpcyBub3QgaW1hZ2UgdHlwZS4KKyAgICB2aXJ0dWFsIHVuc2lnbmVk
IGhlaWdodCgpIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgoKSBjb25zdDsKKwog
cHJvdGVjdGVkOgogICAgIElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IG1f
ZWxlbWVudChlbGVtZW50KSB7IH0KICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9lbGVtZW50OyB9Cg==
</data>
<flag name="review"
          id="146361"
          type_id="1"
          status="-"
          setter="tkent"
    />
    <flag name="commit-queue"
          id="146362"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140493</attachid>
            <date>2012-05-07 01:32:08 -0700</date>
            <delta_ts>2012-05-07 16:59:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthheight_0507_01.patch</filename>
            <type>text/plain</type>
            <size>25884</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ZTMyMzc5Li4yZGVlNGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDUt
MDcgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJZiB0
aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBh
cmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0
aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1h
Z2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXdpZHRo
LWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMt
d2l0aG91dC1yZW5kZXJlci1ub3QtbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0
LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0
ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBn
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jlc291cmNlcy9pbWFnZS1zbG93LnBsOiBB
ZGRlZC4KKwogMjAxMi0wNS0wNiAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8cmFrdWNvQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW0VGTF0gR2FyZGVuaW5nLiBTa2lwIG1vcmUgZmFpbGluZyB0ZXN0
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13
aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZjMwZDNmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNjUgQEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVt
ZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBjYXNlICMxIDogSW1h
Z2UsIEhUTUwgaW5saW5lIHNldHRpbmcgYXMgIjE2MCIsICI4MCIKK1BBU1MgKCd3aWR0aCcgaW4g
aW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1Mg
aW1hZ2UxLndpZHRoLGltYWdlMS5oZWlnaHQgaXMgMTYwLDgwCitUZXN0IGNhc2UgIzIgOiBJbWFn
ZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyAiMjYwIiwgIjEzMCIKK1BBU1MgKCd3aWR0
aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUK
K1BBU1MgaW1hZ2UyLndpZHRoLGltYWdlMi5oZWlnaHQgaXMgMjYwLDEzMAorVGVzdCBjYXNlICMz
IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQ
QVNTICgnd2lkdGgnIGluIGltYWdlMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gaW1hZ2Ux
KSBpcyB0cnVlCitQQVNTIGltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0IGlzIDAsMAorVGVzdCBj
YXNlICM0IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMC45OSIsICI2
MC41NSIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBp
biBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIw
LDYwCitUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIx
MDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIHRleHQxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0
JyBpbiB0ZXh0MSkgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQgaXMgMCww
CitQQVNTIHRleHQxLndpZHRoLHRleHQxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgdGV4dDEud2lk
dGgsdGV4dDEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5
IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGZpbGUxKSBp
cyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBmaWxlMSkgaXMgdHJ1ZQorUEFTUyBmaWxlMS53aWR0
aCxmaWxlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCBpcyAx
MDAsNTAKK1BBU1MgZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2Ug
IzcgOiBEYXRlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNT
ICgnd2lkdGgnIGluIGRhdGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBkYXRlMSkgaXMg
dHJ1ZQorUEFTUyBkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGRhdGUxLndp
ZHRoLGRhdGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0
IGlzIDYwLDQwCitUZXN0IGNhc2UgIzggOiBCdXR0b24sIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBB
UEkgYXMgIjEwMCIsICI1MCIKK1BBU1MgKCd3aWR0aCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFT
UyAoJ2hlaWdodCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRv
bjEuaGVpZ2h0IGlzIDAsMAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDEw
MCw1MAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDYwLDQwCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKKworCisKKwor
CisKKworCisKKworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13
aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42NWQzOWYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgaW5wdXRFbGVtZW50LndpZHRoIGlzIDUwCitQQVNT
IGlucHV0RWxlbWVudC5oZWlnaHQgaXMgNTAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWlt
YWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVp
Z2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1hZ2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NjRmOTAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1
dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDYgQEAKK1BBU1MgZS53aWR0aCBpcyAwCitQQVNTIGUuaGVpZ2h0IGlzIDAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQt
cmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTc3MjlhMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJp
YnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1hZ2UuaHRtbApAQCAtMCwwICsxLDI2IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFn
ZVNsb3ciIHNyYz0icmVzb3VyY2VzL2ltYWdlLXNsb3cucGwiIHN0eWxlPSJkaXNwbGF5Om5vbmUi
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0
Ij4KKyAgICB2YXIgZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZVNsb3ciKTsKKwor
ICAgIGRvY3VtZW50Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICBy
ZWFkeVN0YXRlID0gZG9jdW1lbnQucmVhZHlTdGF0ZTsKKyAgICAgICAgaWYgKHJlYWR5U3RhdGUg
PT0gJ2NvbXBsZXRlJykgeworICAgICAgICAgICAgc2hvdWxkQmUoJ2Uud2lkdGgnLCAnMCcpOwor
ICAgICAgICAgICAgc2hvdWxkQmUoJ2UuaGVpZ2h0JywgJzAnKTsKKyAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0
cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5NjRmOTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVz
LXdpdGhvdXQtcmVuZGVyZXItbm90LWxvYWRlZC1pbWFnZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2IEBACitQQVNTIGUud2lkdGggaXMgMAorUEFTUyBlLmhlaWdodCBpcyAwCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0
LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1ub3QtbG9hZGVk
LWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIxMTg2Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVp
Z2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1ub3QtbG9hZGVkLWltYWdlLmh0bWwKQEAg
LTAsMCArMSwyMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNB
c3luYyA9IHRydWU7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IHR5cGU9Imlt
YWdlIiBpZD0iaW1hZ2VTbG93IiBzcmM9InJlc291cmNlcy9pbWFnZS1zbG93LnBsIiBzdHlsZT0i
ZGlzcGxheTpub25lIj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBsYW5ndWFn
ZT0iSmF2YVNjcmlwdCI+CisgICAgdmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1h
Z2VTbG93Iik7CisgICAgc2hvdWxkQmUoJ2Uud2lkdGgnLCAnMCcpOworICAgIHNob3VsZEJlKCdl
LmhlaWdodCcsICcwJyk7CisgICAgZmluaXNoSlNUZXN0KCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXIuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1y
ZW5kZXJlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE3OWJmOTIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhl
aWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXIuaHRtbApAQCAtMCwwICsxLDIxIEBACis8
aHRtbD4KKzxoZWFkPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0
cnVlOworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImlucHV0RWxlbWVudCIpOworICAgIHNob3VsZEJlKCdpbnB1dEVsZW1lbnQu
d2lkdGgnLCAnNTAnKTsKKyAgICBzaG91bGRCZSgnaW5wdXRFbGVtZW50LmhlaWdodCcsICc1MCcp
OworICAgIGZpbmlzaEpTVGVzdCgpOworCit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0idGVzdCgpIj4KKzxpbnB1dCBpZD0iaW5wdXRFbGVtZW50IiB0eXBlPSJpbWFnZSIgd2lk
dGg9IjUwIiBoZWlnaHQ9IjUwIiBzdHlsZT0iZGlzcGxheTpub25lIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0
aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13
aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjAxMzMzMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0bWwKQEAgLTAsMCArMSwxNTYgQEAKKzwh
RE9DVFlQRSBIVE1MPg0KKzxodG1sPg0KKzxoZWFkPg0KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0KKzxib2R5
Pg0KKzxzY3JpcHQ+DQorZGVzY3JpcHRpb24oJ3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBv
ZiBIVE1MSW5wdXRFbGVtZW50LicpOw0KKzwvc2NyaXB0Pg0KKw0KKzxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPg0KKw0KKzxkaXYgaWQ9ImRpdjEiPg0KKyAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlk
PSJpbWFnZTEiIHNyYz0icmVzb3VyY2VzL2dyZWVuLmpwZyIgd2lkdGg9IjE2MCIgaGVpZ2h0PSI4
MHB4Ij4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2MiI+DQorICAgIDxpbnB1dCB0
eXBlPSJpbWFnZSIgaWQ9ImltYWdlMiIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIj4NCis8L2Rp
dj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2MyI+DQorICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIg
aWQ9ImltYWdlMyIgc3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIj4NCis8L2Rpdj4NCis8YnI+DQor
DQorPGRpdiBpZD0iZGl2NCI+DQorICAgIDxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlNCIg
c3JjPSJyZXNvdXJjZXMvZ3JlZW4uanBnIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0i
ZGl2NSI+DQorICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0idGV4dDEiPg0KKzwvZGl2Pg0KKzxi
cj4NCisNCis8ZGl2IGlkPSJkaXY2Ij4NCisgICAgPGlucHV0IHR5cGU9ImZpbGUiIGlkPSJmaWxl
MSI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjciPg0KKyAgICA8aW5wdXQgdHlw
ZT0iZGF0ZSIgaWQ9ImRhdGUxIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2OCI+
DQorICAgIDxpbnB1dCB0eXBlPSJidXR0b24iIGlkPSJidXR0b24xIj4NCis8L2Rpdj4NCis8YnI+
DQorDQorPHNjcmlwdD4NCit2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpdjEi
KTsNCit2YXIgaW1hZ2UxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlMSIpOw0KK2Rl
YnVnKCdUZXN0IGNhc2UgIzEgOiBJbWFnZSwgSFRNTCBpbmxpbmUgc2V0dGluZyBhcyBcIjE2MFwi
LCBcIjgwXCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsNCitzaG91
bGRCZVRydWUoIignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQorc2hvdWxkQmUoJ2ltYWdlMS53aWR0
aCxpbWFnZTEuaGVpZ2h0JywgJzE2MCw4MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkaXYyIik7DQordmFyIGltYWdlMiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJp
bWFnZTIiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICMyIDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNj
cmlwdCBBUEkgYXMgXCIyNjBcIiwgXCIxMzBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcg
aW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGltYWdlMSkiKTsNCitp
bWFnZTIud2lkdGggPSAyNjA7DQoraW1hZ2UyLmhlaWdodCA9IDEzMDsNCitzaG91bGRCZSgnaW1h
Z2UyLndpZHRoLGltYWdlMi5oZWlnaHQnLCAnMjYwLDEzMCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkaXYzIik7DQordmFyIGltYWdlMyA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpbWFnZTMiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICMzIDogSW1hZ2UsIFNldHRpbmcg
YnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMjBweFwiLCBcIjYwcHhcIicpOw0KK3Nob3VsZEJlVHJ1
ZSgiKCd3aWR0aCcgaW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGlt
YWdlMSkiKTsNCitpbWFnZTMud2lkdGggPSAiMTIwcHgiOw0KK2ltYWdlMy5oZWlnaHQgPSAiNjBw
eCI7DQorc2hvdWxkQmUoJ2ltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0JywgJzAsMCcpOw0KKw0K
K2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY0Iik7DQordmFyIGltYWdlNCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZTQiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICM0IDog
SW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMjAuOTlcIiwgXCI2MC41NVwi
Jyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBpbWFnZTEpIik7DQorc2hvdWxkQmVUcnVl
KCIoJ2hlaWdodCcgaW4gaW1hZ2UxKSIpOw0KK2ltYWdlNC53aWR0aCA9IDEyMC45OTsNCitpbWFn
ZTQuaGVpZ2h0ID0gNjAuOTk7DQorc2hvdWxkQmUoJ2ltYWdlNC53aWR0aCxpbWFnZTQuaGVpZ2h0
JywgJzEyMCw2MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY1Iik7
DQordmFyIHRleHQxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQxIik7DQorZGVidWco
J1Rlc3QgY2FzZSAjNSA6IFRleHQsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMDBc
IiwgXCI1MFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiB0ZXh0MSkiKTsNCitzaG91
bGRCZVRydWUoIignaGVpZ2h0JyBpbiB0ZXh0MSkiKTsNCit0ZXh0MS53aWR0aCA9IDEwMDsNCit0
ZXh0MS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgndGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0Jywg
JzAsMCcpOw0KKw0KK3RleHQxLnR5cGUgPSAnaW1hZ2UnOw0KK3RleHQxLnNyYyA9ICJyZXNvdXJj
ZXMvZ3JlZW4uanBnIjsNCitzaG91bGRCZSgndGV4dDEud2lkdGgsdGV4dDEuaGVpZ2h0JywgJzEw
MCw1MCcpOw0KK3RleHQxLndpZHRoID0gNjA7DQordGV4dDEuaGVpZ2h0ID0gNDA7DQorc2hvdWxk
QmUoJ3RleHQxLndpZHRoLHRleHQxLmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK2RpdiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJkaXY2Iik7DQordmFyIGZpbGUxID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImZpbGUxIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjNiA6IEZpbGUsIFNldHRpbmcg
YnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmVUcnVlKCIo
J3dpZHRoJyBpbiBmaWxlMSkiKTsNCitzaG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBmaWxlMSki
KTsNCitmaWxlMS53aWR0aCA9IDEwMDsNCitmaWxlMS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgn
ZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0JywgJzAsMCcpOw0KKw0KK2ZpbGUxLnR5cGUgPSAnaW1h
Z2UnOw0KK2ZpbGUxLnNyYyA9ICJyZXNvdXJjZXMvZ3JlZW4uanBnIjsNCitzaG91bGRCZSgnZmls
ZTEud2lkdGgsZmlsZTEuaGVpZ2h0JywgJzEwMCw1MCcpOw0KK2ZpbGUxLndpZHRoID0gNjA7DQor
ZmlsZTEuaGVpZ2h0ID0gNDA7DQorc2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCcs
ICc2MCw0MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXY3Iik7DQor
dmFyIGRhdGUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRhdGUxIik7DQorZGVidWcoJ1Rl
c3QgY2FzZSAjNyA6IERhdGUsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMDBcIiwg
XCI1MFwiJyk7DQorc2hvdWxkQmVUcnVlKCIoJ3dpZHRoJyBpbiBkYXRlMSkiKTsNCitzaG91bGRC
ZVRydWUoIignaGVpZ2h0JyBpbiBkYXRlMSkiKTsNCitkYXRlMS53aWR0aCA9IDEwMDsNCitkYXRl
MS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgnZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0JywgJzAs
MCcpOw0KKw0KK2RhdGUxLnR5cGUgPSAnaW1hZ2UnOw0KK2RhdGUxLnNyYyA9ICJyZXNvdXJjZXMv
Z3JlZW4uanBnIjsNCitzaG91bGRCZSgnZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0JywgJzEwMCw1
MCcpOw0KK2RhdGUxLndpZHRoID0gNjA7DQorZGF0ZTEuaGVpZ2h0ID0gNDA7DQorc2hvdWxkQmUo
J2RhdGUxLndpZHRoLGRhdGUxLmhlaWdodCcsICc2MCw0MCcpOw0KKw0KK2RpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkaXY4Iik7DQordmFyIGJ1dHRvbjEgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYnV0dG9uMSIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzggOiBCdXR0b24sIFNldHRp
bmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgXCIxMDBcIiwgXCI1MFwiJyk7DQorc2hvdWxkQmVUcnVl
KCIoJ3dpZHRoJyBpbiBidXR0b24xKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGJ1
dHRvbjEpIik7DQorYnV0dG9uMS53aWR0aCA9IDEwMDsNCitidXR0b24xLmhlaWdodCA9IDUwOw0K
K3Nob3VsZEJlKCdidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0JywgJzAsMCcpOw0KKw0KK2J1
dHRvbjEudHlwZSA9ICdpbWFnZSc7DQorYnV0dG9uMS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuLmpw
ZyI7DQorc2hvdWxkQmUoJ2J1dHRvbjEud2lkdGgsYnV0dG9uMS5oZWlnaHQnLCAnMTAwLDUwJyk7
DQorYnV0dG9uMS53aWR0aCA9IDYwOw0KK2J1dHRvbjEuaGVpZ2h0ID0gNDA7DQorc2hvdWxkQmUo
J2J1dHRvbjEud2lkdGgsYnV0dG9uMS5oZWlnaHQnLCAnNjAsNDAnKTsNCisNCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsNCis8L3NjcmlwdD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCis8L2JvZHk+DQorPC9o
dG1sPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2dyZWVu
LmpwZyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2dyZWVuLmpwZwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mNWY3MDBiNjgwN2QxOTUzNTJlMWFiMDIxNGNlNGYxZWRmOTIwMzQwCkdJVCBiaW5hcnkg
cGF0Y2gKbGl0ZXJhbCA3NjQKemNtZXg9PE5wSCYwV1VYQ0h3SCNWTXVyMytXY2RHKHB+MUJ4R21V
fTQqT3goeWZxe1g4ZnQ2OCtmZj5rUjFWUlF6CnpERiMrQm59TlpMUTV3ejtWJF5gRFZQYXJ0JnR6
Yk1zKSsqOUFkbXBXSzsyTjlYI28+bGd9PyU0MVJKUD07czAkMAp6WDlneGxNaTYyR0F8UE85V2Q7
RUA3OFloIWJ+YmkpYn5aTFBiYEVZJWJgQ0JNSGExUlBQQStiNDl2JldjUEZfQTwKejl6R3pHOClP
SmJGRWR5I0Q+bnhsMlJGJiF7e2FSOzRoOGBSMGNKKWUxfH5zOVc8a2RQTTtQUlJLNEFyaDdid1Z9
CnpmUlR4cmclIylgcGdWdkh3aDkyOSYmPHBPYlN4X2lGZCFJZmYkfEoyZn4tUHtoS184KWZyOyEm
Zyg2MGM2Qmx3UQp6SjhlOEQ4ZyVpNGlnOGo9NkRPQ0x4UCt2WHMremlucmswN1JuWW8zZm05dllo
bzRiZG5TOHp5WlNhP0thUkJ9cGMKelQ2I3VpUiZoeWJTJFJjZVJkWSpnVFlFPW0qUUNpKXJjUnFh
VzlGPHlpPGN+Mnd0VTZQUmh1PyUqfTg0fWotOSY+Cno5WEBqTyp6cHI1UGhHbHY8PzZOVEgqVmZ+
X35gTUlyX1l8aGM9X3Qlcl9XISRlKjZDOD1QIWBJNyNXeCQtaCVySwp6JjBtNSplPXp+JGZRMjM4
RkdpK3ZBWjhZMVZPMkNfNkxKaD5QYj9IeEdIVD15YWhrWXI8M1ViazxEZF9zTmt0ZEEKeSM4Z1pr
cyh1N3s0ZVRAR0prfl4oJilePElgMEV3fTQ+S2IkQHxYbn4+PjBqJFgpTX5gYl5nUGp8MkZ+Y19z
dldJCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3Jlc291cmNlcy9pbWFnZS1zbG93LnBsIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9y
ZXNvdXJjZXMvaW1hZ2Utc2xvdy5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li45NTk2YWJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNv
dXJjZXMvaW1hZ2Utc2xvdy5wbApAQCAtMCwwICsxLDE5IEBACisjIS91c3IvYmluL3BlcmwgLXcK
KworIyBmbHVzaCB0aGUgYnVmZmVycyBhZnRlciBlYWNoIHByaW50CitzZWxlY3QgKFNURE9VVCk7
CiskfCA9IDE7CisKK3ByaW50ICJDb250ZW50LVR5cGU6IGltYWdlL2pwZWdcclxuIjsKK3ByaW50
ICJFeHBpcmVzOiBUaHUsIDAxIERlYyAyMDAzIDE2OjAwOjAwIEdNVFxyXG4iOworcHJpbnQgIkNh
Y2hlLUNvbnRyb2w6IG5vLXN0b3JlLCBuby1jYWNoZSwgbXVzdC1yZXZhbGlkYXRlXHJcbiI7Citw
cmludCAiUHJhZ21hOiBuby1jYWNoZVxyXG4iOworcHJpbnQgIlxyXG4iOworCitzbGVlcCAyOwor
CitvcGVuKEZJTEUsICJncmVlbi5qcGciKTsKK3doaWxlICg8RklMRT4pIHsKKyAgcHJpbnQgJF87
Cit9CitjbG9zZShGSUxFKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZTU1NzVkLi5iMzZhNDE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTItMDUtMDcgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1z
dW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWlnaHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVt
ZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZhU2NyaXB0LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KKworICAgICAgICBJZiB0aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlz
IGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRl
ZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBhcmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgor
ICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNh
dHRyLWRpbS13aWR0aAorCisgICAgICAgIFRlc3RzOiBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhl
aWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91
dC1yZW5kZXJlci1ub3QtbG9hZGVkLWltYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9y
bXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLmh0
bWwKKworICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6IEFkZCBzZXR0ZXIvZ2V0
dGVyIGZ1bmN0aW9ucyB0byBxdWVyeS9zZXQgd2lkdGgvaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OmhlaWdodCk6IEdldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCk6IEdldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodCk6IFNldHMgaGVp
Z2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50
OjpzZXRXaWR0aCk6IFNldHMgd2lkdGggb2YgaW5wdXQgZWxlbWVudC4KKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaDogQWRkIHB1YmxpYyBwcm90b3R5cGUuCisgICAgICAgIChIVE1M
SW5wdXRFbGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsOiBBZGQg
d2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZXMuCisgICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5j
cHA6IEFkZCBnZXR0ZXIgZnVuY3Rpb25zIGlmIHRoZSBlbGVtZW50IGlzIGFuIGltYWdlIGJ1dHRv
bi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6
OmhlaWdodCk6IEdldHMgaGVpZ2h0IG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUlucHV0VHlwZTo6d2lkdGgpOiBHZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisg
ICAgICAgICogaHRtbC9JbWFnZUlucHV0VHlwZS5oOiBBZGQgcHJvdG90eXBlLgorICAgICAgICAo
SW1hZ2VJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDogQWRkIGdldHRl
ciBmdW5jdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmhlaWdodCk6IFJldHVy
bnMgemVyby4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
Ojp3aWR0aCk6IFJldHVybnMgemVyby4KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOiBBZGQg
cHJvdG90eXBlLgorICAgICAgICAoSW5wdXRUeXBlKToKKwogMjAxMi0wNS0wNiAgUmFwaGFlbCBL
dWJvIGRhIENvc3RhICA8cmFrdWNvQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXggZm9yIHIxMTYyNjAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcAppbmRleCBiM2IwYTcyLi40NjAxYmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHAKQEAgLTcsNiArNyw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2Ft
dWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBN
b2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5j
b20vKQorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE4NDMsNCArMTg0NCwyNSBAQCBp
bmxpbmUgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpyZW1vdmVGcm9tUmFkaW9CdXR0b25Hcm91cCgp
CiAgICAgaWYgKENoZWNrZWRSYWRpb0J1dHRvbnMqIGJ1dHRvbnMgPSBjaGVja2VkUmFkaW9CdXR0
b25zKCkpCiAgICAgICAgIGJ1dHRvbnMtPnJlbW92ZUJ1dHRvbih0aGlzKTsKIH0KKwordW5zaWdu
ZWQgSFRNTElucHV0RWxlbWVudDo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnB1
dFR5cGUtPmhlaWdodCgpOworfQorCit1bnNpZ25lZCBIVE1MSW5wdXRFbGVtZW50Ojp3aWR0aCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT53aWR0aCgpOworfQorCit2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnNldEhlaWdodCh1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgc2V0QXR0
cmlidXRlKGhlaWdodEF0dHIsIFN0cmluZzo6bnVtYmVyKGhlaWdodCkpOworfQorCit2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHdpZHRoKQoreworICAgIHNldEF0dHJp
YnV0ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKHdpZHRoKSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDNhYmYxOTMuLmQ0
Mzc5YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0zLDYgKzMs
NyBAQAogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUu
b3JnKQogICogICAgICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3Jn
KQogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVs
ZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0y
MzYsNiArMjM3LDExIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBjb25zdCBpbnQgbWF4aW11bUxl
bmd0aDsKIAorICAgIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OworICAgIHVuc2lnbmVkIHdpZHRo
KCkgY29uc3Q7CisgICAgdm9pZCBzZXRIZWlnaHQodW5zaWduZWQpOworICAgIHZvaWQgc2V0V2lk
dGgodW5zaWduZWQpOworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTElucHV0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBIVE1MRm9ybUVsZW1lbnQqLCBib29sIGNyZWF0ZWRC
eVBhcnNlcik7CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAppbmRleCAzYzExOTkwLi4xZWNhMjVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKQEAgLTEsNiArMSw3IEBACiAvKgog
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNiw2ICszNyw3IEBAIG1vZHVs
ZSBodG1sIHsKICAgICAgICAgYXR0cmlidXRlIFtUcmVhdE51bGxBcz1OdWxsU3RyaW5nXSBET01T
dHJpbmcgZm9ybU1ldGhvZDsKICAgICAgICAgYXR0cmlidXRlIFtSZWZsZWN0XSBib29sZWFuIGZv
cm1Ob1ZhbGlkYXRlOwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBmb3Jt
VGFyZ2V0OworICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBoZWlnaHQ7CiAgICAgICAg
IGF0dHJpYnV0ZSBib29sZWFuIGluZGV0ZXJtaW5hdGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ29uZGl0aW9uYWw9REFUQUxJU1RdIEhUTUxFbGVtZW50IGxpc3Q7CiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gRE9NU3RyaW5nIG1heDsKQEAgLTY1LDYgKzY3LDcgQEAgbW9kdWxl
IGh0bWwgewogICAgICAgICB2b2lkIHN0ZXBVcChpbiBbT3B0aW9uYWxdIGxvbmcgbikgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc3RlcERvd24oaW4gW09wdGlvbmFsXSBsb25n
IG4pIHJhaXNlcyhET01FeGNlcHRpb24pOwogCisgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIHdpZHRoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB3aWxsVmFsaWRh
dGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBWYWxpZGl0eVN0YXRlIHZhbGlkaXR5Owog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHZhbGlkYXRpb25NZXNzYWdlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCBmYzM3ZTI5Li40NTZmMjJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcApAQCAtMSw2ICsxLDcgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks
IDIwMTAsIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYwpAQCAtMjYsMTIgKzI3LDE2IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJ
ZGlvbXMuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2Uu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
K3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKIGlubGluZSBJbWFnZUlucHV0VHlwZTo6SW1h
Z2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKICAgICA6IEJhc2VCdXR0b25J
bnB1dFR5cGUoZWxlbWVudCkKIHsKQEAgLTE3NCw0ICsxNzksNDYgQEAgYm9vbCBJbWFnZUlucHV0
VHlwZTo6c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK3Vuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjpoZWlnaHQoKSBjb25zdAorewor
ICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50ID0gdGhpcy0+ZWxlbWVudCgpOwor
CisgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKSB7CisgICAgICAgIC8vIENoZWNrIHRoZSBh
dHRyaWJ1dGUgZmlyc3QgZm9yIGFuIGV4cGxpY2l0IHBpeGVsIHZhbHVlLgorICAgICAgICB1bnNp
Z25lZCBoZWlnaHQ7CisgICAgICAgIGlmIChwYXJzZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoZWxl
bWVudC0+ZmFzdEdldEF0dHJpYnV0ZShoZWlnaHRBdHRyKSwgaGVpZ2h0KSkKKyAgICAgICAgICAg
IHJldHVybiBoZWlnaHQ7CisKKyAgICAgICAgLy8gSWYgdGhlIGltYWdlIGlzIGF2YWlsYWJsZSwg
dXNlIGl0cyBoZWlnaHQuCisgICAgICAgIGlmIChtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKQorICAg
ICAgICAgICAgcmV0dXJuIG1faW1hZ2VMb2FkZXItPmltYWdlKCktPmltYWdlU2l6ZUZvclJlbmRl
cmVyKGVsZW1lbnQtPnJlbmRlcmVyKCksIDEpLmhlaWdodCgpOworICAgIH0KKworICAgIGVsZW1l
bnQtPmRvY3VtZW50KCktPnVwZGF0ZUxheW91dCgpOworCisgICAgUmVuZGVyQm94KiBib3ggPSBl
bGVtZW50LT5yZW5kZXJCb3goKTsKKyAgICByZXR1cm4gYm94ID8gYWRqdXN0Rm9yQWJzb2x1dGVa
b29tKGJveC0+Y29udGVudEhlaWdodCgpLCBib3gpIDogMDsKK30KKwordW5zaWduZWQgSW1hZ2VJ
bnB1dFR5cGU6OndpZHRoKCkgY29uc3QKK3sKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4g
ZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKTsKKworICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIo
KSkgeworICAgICAgICAvLyBDaGVjayB0aGUgYXR0cmlidXRlIGZpcnN0IGZvciBhbiBleHBsaWNp
dCBwaXhlbCB2YWx1ZS4KKyAgICAgICAgdW5zaWduZWQgd2lkdGg7CisgICAgICAgIGlmIChwYXJz
ZUhUTUxOb25OZWdhdGl2ZUludGVnZXIoZWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZSh3aWR0aEF0
dHIpLCB3aWR0aCkpCisgICAgICAgICAgICByZXR1cm4gd2lkdGg7CisKKyAgICAgICAgLy8gSWYg
dGhlIGltYWdlIGlzIGF2YWlsYWJsZSwgdXNlIGl0cyB3aWR0aC4KKyAgICAgICAgaWYgKG1faW1h
Z2VMb2FkZXItPmltYWdlKCkpCisgICAgICAgICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci0+aW1h
Z2UoKS0+aW1hZ2VTaXplRm9yUmVuZGVyZXIoZWxlbWVudC0+cmVuZGVyZXIoKSwgMSkud2lkdGgo
KTsKKyAgICB9CisKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQoKTsKKwor
ICAgIFJlbmRlckJveCogYm94ID0gZWxlbWVudC0+cmVuZGVyQm94KCk7CisgICAgcmV0dXJuIGJv
eCA/IGFkanVzdEZvckFic29sdXRlWm9vbShib3gtPmNvbnRlbnRXaWR0aCgpLCBib3gpIDogMDsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlw
ZS5oCmluZGV4IDkzZGIwNzUuLjVlYzk3ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC02MSw2ICs2Miw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlz
SW1hZ2VCdXR0b24oKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNFbnVtZXJh
dGFibGUoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzcGVjdEhlaWdodEFu
ZFdpZHRoQXR0cmlidXRlcygpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0
KCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0IE9W
RVJSSURFOwogCiAgICAgT3duUHRyPEhUTUxJbWFnZUxvYWRlcj4gbV9pbWFnZUxvYWRlcjsKICAg
ICBJbnRQb2ludCBtX2NsaWNrTG9jYXRpb247IC8vIFZhbGlkIG9ubHkgZHVyaW5nIEhUTUxGb3Jt
RWxlbWVudDo6cHJlcGFyZUZvclN1Ym1pc3Npb24oKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cAppbmRleCAxMjlmYzVlLi4yMmMwNDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBA
IC02LDYgKzYsNyBAQAogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3Yg
KGFwQG55cG9wLmNvbSkKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1A
d2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQxLDYgKzQyLDggQEAK
ICNpbmNsdWRlICJGb3JtRGF0YUxpc3QuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTaGFkb3dFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSGlkZGVuSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiSW1hZ2VJbnB1dFR5
cGUuaCIKQEAgLTc3Miw2ICs3NzUsMTYgQEAgYm9vbCBJbnB1dFR5cGU6OnN1cHBvcnRzSW5kZXRl
cm1pbmF0ZUFwcGVhcmFuY2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordW5zaWdu
ZWQgSW5wdXRUeXBlOjpoZWlnaHQoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCit1bnNp
Z25lZCBJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogbmFt
ZXNwYWNlIElucHV0VHlwZU5hbWVzIHsKIAogLy8gVGhlIHR5cGUgbmFtZXMgbXVzdCBiZSBsb3dl
cmNhc2VkIGJlY2F1c2UgdGhleSB3aWxsIGJlIHRoZSByZXR1cm4gdmFsdWVzIG9mCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuaAppbmRleCBlOTAzMmMwLi5hZTg1NjVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxl
Y3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCkBAIC0yNzUsNiArMjc2LDExIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0luZGV0ZXJtaW5hdGVBcHBlYXJhbmNlKCkgY29uc3Q7CiAKKyAgICAvLyBHZXRz
IHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIGlucHV0IGVsZW1lbnQgaWYgdGhlIHR5cGUgb2YgdGhl
CisgICAgLy8gZWxlbWVudCBpcyBpbWFnZS4gSXQgcmV0dXJucyAwIGlmIHRoZSBlbGVtZW50IGlz
IG5vdCBpbWFnZSB0eXBlLgorICAgIHZpcnR1YWwgdW5zaWduZWQgaGVpZ2h0KCkgY29uc3Q7Cisg
ICAgdmlydHVhbCB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogbV9lbGVtZW50KGVsZW1lbnQpIHsg
fQogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1l
bnQ7IH0K
</data>
<flag name="review"
          id="146371"
          type_id="1"
          status="-"
          setter="tkent"
    />
    <flag name="commit-queue"
          id="146372"
          type_id="3"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140622</attachid>
            <date>2012-05-07 16:59:12 -0700</date>
            <delta_ts>2012-05-07 20:49:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch_widthheight_0508.patch</filename>
            <type>text/plain</type>
            <size>25912</size>
            <attacher name="Dongwoo Joshua Im (dwim)">dw.im</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ZTMyMzc5Li4yZGVlNGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDUt
MDcgIERvbmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KKworICAgICAgICB3aWR0aC9oZWln
aHQgYXR0cmlidXRlcyBvZiBpbnB1dCBlbGVtZW50IGNhbm5vdCBiZSBhY2Nlc3NlZCBieSBKYXZh
U2NyaXB0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzAzMDQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJZiB0
aGUgdHlwZSBvZiBpbnB1dCBlbGVtZW50IGlzIGltYWdlIGJ1dHRvbiwgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZXMgc2hvdWxkIGJlIHN1cHBvcnRlZC4KKyAgICAgICAgVGhlc2UgYXR0cmlidXRlcyBh
cmUgZGVmaW5lZCBpbiBIVE1MNSBzcGVjLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9o
dG1sNS90aGUtbWFwLWVsZW1lbnQuaHRtbCNhdHRyLWRpbS13aWR0aAorCisgICAgICAgICogZmFz
dC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0
aG91dC1yZW5kZXJlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1h
Z2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXdpZHRo
LWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMt
d2l0aG91dC1yZW5kZXJlci1ub3QtbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0
LXJlbmRlcmVyLW5vdC1sb2FkZWQtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9m
b3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0
ZXMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvZ3JlZW4uanBn
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jlc291cmNlcy9pbWFnZS1zbG93LnBsOiBB
ZGRlZC4KKwogMjAxMi0wNS0wNiAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8cmFrdWNvQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgW0VGTF0gR2FyZGVuaW5nLiBTa2lwIG1vcmUgZmFpbGluZyB0ZXN0
cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0
LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13
aWR0aC1oZWlnaHQtYXR0cmlidXRlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZjMwZDNmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNjUgQEAKK3dpZHRoIGFuZCBoZWlnaHQgYXR0cmlidXRlcyBvZiBIVE1MSW5wdXRFbGVt
ZW50LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBjYXNlICMxIDogSW1h
Z2UsIEhUTUwgaW5saW5lIHNldHRpbmcgYXMgIjE2MCIsICI4MCIKK1BBU1MgKCd3aWR0aCcgaW4g
aW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUKK1BBU1Mg
aW1hZ2UxLndpZHRoLGltYWdlMS5oZWlnaHQgaXMgMTYwLDgwCitUZXN0IGNhc2UgIzIgOiBJbWFn
ZSwgU2V0dGluZyBieSBKYXZhU2NyaXB0IEFQSSBhcyAiMjYwIiwgIjEzMCIKK1BBU1MgKCd3aWR0
aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBpbWFnZTEpIGlzIHRydWUK
K1BBU1MgaW1hZ2UyLndpZHRoLGltYWdlMi5oZWlnaHQgaXMgMjYwLDEzMAorVGVzdCBjYXNlICMz
IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMHB4IiwgIjYwcHgiCitQ
QVNTICgnd2lkdGgnIGluIGltYWdlMSkgaXMgdHJ1ZQorUEFTUyAoJ2hlaWdodCcgaW4gaW1hZ2Ux
KSBpcyB0cnVlCitQQVNTIGltYWdlMy53aWR0aCxpbWFnZTMuaGVpZ2h0IGlzIDAsMAorVGVzdCBj
YXNlICM0IDogSW1hZ2UsIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBBUEkgYXMgIjEyMC45OSIsICI2
MC41NSIKK1BBU1MgKCd3aWR0aCcgaW4gaW1hZ2UxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBp
biBpbWFnZTEpIGlzIHRydWUKK1BBU1MgaW1hZ2U0LndpZHRoLGltYWdlNC5oZWlnaHQgaXMgMTIw
LDYwCitUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIx
MDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIHRleHQxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0
JyBpbiB0ZXh0MSkgaXMgdHJ1ZQorUEFTUyB0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQgaXMgMCww
CitQQVNTIHRleHQxLndpZHRoLHRleHQxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgdGV4dDEud2lk
dGgsdGV4dDEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5
IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNTICgnd2lkdGgnIGluIGZpbGUxKSBp
cyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBmaWxlMSkgaXMgdHJ1ZQorUEFTUyBmaWxlMS53aWR0
aCxmaWxlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCBpcyAx
MDAsNTAKK1BBU1MgZmlsZTEud2lkdGgsZmlsZTEuaGVpZ2h0IGlzIDYwLDQwCitUZXN0IGNhc2Ug
IzcgOiBEYXRlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzICIxMDAiLCAiNTAiCitQQVNT
ICgnd2lkdGgnIGluIGRhdGUxKSBpcyB0cnVlCitQQVNTICgnaGVpZ2h0JyBpbiBkYXRlMSkgaXMg
dHJ1ZQorUEFTUyBkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQgaXMgMCwwCitQQVNTIGRhdGUxLndp
ZHRoLGRhdGUxLmhlaWdodCBpcyAxMDAsNTAKK1BBU1MgZGF0ZTEud2lkdGgsZGF0ZTEuaGVpZ2h0
IGlzIDYwLDQwCitUZXN0IGNhc2UgIzggOiBCdXR0b24sIFNldHRpbmcgYnkgSmF2YVNjcmlwdCBB
UEkgYXMgIjEwMCIsICI1MCIKK1BBU1MgKCd3aWR0aCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFT
UyAoJ2hlaWdodCcgaW4gYnV0dG9uMSkgaXMgdHJ1ZQorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRv
bjEuaGVpZ2h0IGlzIDAsMAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDEw
MCw1MAorUEFTUyBidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0IGlzIDYwLDQwCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKworCisKKworCisKKwor
CisKKworCisKKworCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13
aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42NWQzOWYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgaW5wdXRFbGVtZW50LndpZHRoIGlzIDUwCitQQVNT
IGlucHV0RWxlbWVudC5oZWlnaHQgaXMgNTAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWlt
YWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVp
Z2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1sb2FkZWQtaW1hZ2UtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1MzA5NTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1
dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDcgQEAKKworUEFTUyBlLndpZHRoIGlzIDE2CitQQVNTIGUuaGVpZ2h0IGlzIDE2CitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRo
b3V0LXJlbmRlcmVyLWxvYWRlZC1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLWxvYWRlZC1pbWFn
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBkMDE0ZTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1h
dHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbG9hZGVkLWltYWdlLmh0bWwKQEAgLTAsMCArMSwy
NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRy
dWU7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IHR5cGU9ImltYWdlIiBpZD0i
aW1hZ2VFbGVtZW50IiBzcmM9InJlc291cmNlcy9ncmVlbi5qcGciPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Cis8c2NyaXB0IGxhbmd1YWdlPSJKYXZhU2NyaXB0Ij4KKyAgICBkb2N1bWVudC5v
bnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmVhZHlTdGF0ZSA9IGRv
Y3VtZW50LnJlYWR5U3RhdGU7CisgICAgICAgIGlmIChyZWFkeVN0YXRlID09ICdjb21wbGV0ZScp
IHsKKyAgICAgICAgICAgIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2VFbGVtZW50
Iik7CisgICAgICAgICAgICBlLnN0eWxlID0gImRpc3BsYXk6bm9uZSI7CisgICAgICAgICAgICBz
aG91bGRCZSgnZS53aWR0aCcsICcxNicpOworICAgICAgICAgICAgc2hvdWxkQmUoJ2UuaGVpZ2h0
JywgJzE2Jyk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIH0K
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1y
ZW5kZXJlci1ub3QtbG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1ub3Qt
bG9hZGVkLWltYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jOTY0ZjkwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
bnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRlcmVyLW5vdC1sb2FkZWQt
aW1hZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBlLndpZHRoIGlzIDAKK1BB
U1MgZS5oZWlnaHQgaXMgMAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lk
dGgtaGVpZ2h0LWF0dHJpYnV0ZXMtd2l0aG91dC1yZW5kZXJlci1ub3QtbG9hZGVkLWltYWdlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVz
LXdpdGhvdXQtcmVuZGVyZXItbm90LWxvYWRlZC1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjUyMTE4NjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVy
ZXItbm90LWxvYWRlZC1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxpbnB1dCB0eXBlPSJpbWFnZSIgaWQ9ImltYWdlU2xvdyIgc3JjPSJyZXNv
dXJjZXMvaW1hZ2Utc2xvdy5wbCIgc3R5bGU9ImRpc3BsYXk6bm9uZSI+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKzxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPgorICAgIHZhciBlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlU2xvdyIpOworICAgIHNob3VsZEJlKCdlLndp
ZHRoJywgJzAnKTsKKyAgICBzaG91bGRCZSgnZS5oZWlnaHQnLCAnMCcpOworICAgIGZpbmlzaEpT
VGVzdCgpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13
aXRob3V0LXJlbmRlcmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LXdpZHRo
LWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hNzliZjkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRl
cmVyLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPGh0bWw+Cis8aGVhZD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dEVsZW1lbnQiKTsK
KyAgICBzaG91bGRCZSgnaW5wdXRFbGVtZW50LndpZHRoJywgJzUwJyk7CisgICAgc2hvdWxkQmUo
J2lucHV0RWxlbWVudC5oZWlnaHQnLCAnNTAnKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKKworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8aW5wdXQgaWQ9Imlu
cHV0RWxlbWVudCIgdHlwZT0iaW1hZ2UiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgc3R5bGU9ImRp
c3BsYXk6bm9uZSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtd2lkdGgtaGVpZ2h0LWF0dHJpYnV0ZXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMTMzMzE4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRl
cy5odG1sCkBAIC0wLDAgKzEsMTU2IEBACis8IURPQ1RZUEUgSFRNTD4NCis8aHRtbD4NCis8aGVh
ZD4NCis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0Pg0KKzwvaGVhZD4NCis8Ym9keT4NCis8c2NyaXB0Pg0KK2Rlc2NyaXB0aW9uKCd3
aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZXMgb2YgSFRNTElucHV0RWxlbWVudC4nKTsNCis8L3Nj
cmlwdD4NCisNCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4NCisNCis8ZGl2IGlkPSJkaXYxIj4N
CisgICAgPGlucHV0IHR5cGU9ImltYWdlIiBpZD0iaW1hZ2UxIiBzcmM9InJlc291cmNlcy9ncmVl
bi5qcGciIHdpZHRoPSIxNjAiIGhlaWdodD0iODBweCI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxk
aXYgaWQ9ImRpdjIiPg0KKyAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTIiIHNyYz0i
cmVzb3VyY2VzL2dyZWVuLmpwZyI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjMi
Pg0KKyAgICA8aW5wdXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTMiIHNyYz0icmVzb3VyY2VzL2dy
ZWVuLmpwZyI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjQiPg0KKyAgICA8aW5w
dXQgdHlwZT0iaW1hZ2UiIGlkPSJpbWFnZTQiIHNyYz0icmVzb3VyY2VzL2dyZWVuLmpwZyI+DQor
PC9kaXY+DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjUiPg0KKyAgICA8aW5wdXQgdHlwZT0idGV4
dCIgaWQ9InRleHQxIj4NCis8L2Rpdj4NCis8YnI+DQorDQorPGRpdiBpZD0iZGl2NiI+DQorICAg
IDxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZTEiPg0KKzwvZGl2Pg0KKzxicj4NCisNCis8ZGl2
IGlkPSJkaXY3Ij4NCisgICAgPGlucHV0IHR5cGU9ImRhdGUiIGlkPSJkYXRlMSI+DQorPC9kaXY+
DQorPGJyPg0KKw0KKzxkaXYgaWQ9ImRpdjgiPg0KKyAgICA8aW5wdXQgdHlwZT0iYnV0dG9uIiBp
ZD0iYnV0dG9uMSI+DQorPC9kaXY+DQorPGJyPg0KKw0KKzxzY3JpcHQ+DQordmFyIGRpdiA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYxIik7DQordmFyIGltYWdlMSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJpbWFnZTEiKTsNCitkZWJ1ZygnVGVzdCBjYXNlICMxIDogSW1hZ2UsIEhU
TUwgaW5saW5lIHNldHRpbmcgYXMgXCIxNjBcIiwgXCI4MFwiJyk7DQorc2hvdWxkQmVUcnVlKCIo
J3dpZHRoJyBpbiBpbWFnZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gaW1hZ2Ux
KSIpOw0KK3Nob3VsZEJlKCdpbWFnZTEud2lkdGgsaW1hZ2UxLmhlaWdodCcsICcxNjAsODAnKTsN
CisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MiIpOw0KK3ZhciBpbWFnZTIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UyIik7DQorZGVidWcoJ1Rlc3QgY2FzZSAj
MiA6IEltYWdlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMjYwXCIsIFwiMTMwXCIn
KTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsNCitzaG91bGRCZVRydWUo
IignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQoraW1hZ2UyLndpZHRoID0gMjYwOw0KK2ltYWdlMi5o
ZWlnaHQgPSAxMzA7DQorc2hvdWxkQmUoJ2ltYWdlMi53aWR0aCxpbWFnZTIuaGVpZ2h0JywgJzI2
MCwxMzAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2MyIpOw0KK3Zh
ciBpbWFnZTMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2UzIik7DQorZGVidWcoJ1Rl
c3QgY2FzZSAjMyA6IEltYWdlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTIwcHhc
IiwgXCI2MHB4XCInKTsNCitzaG91bGRCZVRydWUoIignd2lkdGgnIGluIGltYWdlMSkiKTsNCitz
aG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBpbWFnZTEpIik7DQoraW1hZ2UzLndpZHRoID0gIjEy
MHB4IjsNCitpbWFnZTMuaGVpZ2h0ID0gIjYwcHgiOw0KK3Nob3VsZEJlKCdpbWFnZTMud2lkdGgs
aW1hZ2UzLmhlaWdodCcsICcwLDAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZGl2NCIpOw0KK3ZhciBpbWFnZTQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2U0
Iik7DQorZGVidWcoJ1Rlc3QgY2FzZSAjNCA6IEltYWdlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQg
QVBJIGFzIFwiMTIwLjk5XCIsIFwiNjAuNTVcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcg
aW4gaW1hZ2UxKSIpOw0KK3Nob3VsZEJlVHJ1ZSgiKCdoZWlnaHQnIGluIGltYWdlMSkiKTsNCitp
bWFnZTQud2lkdGggPSAxMjAuOTk7DQoraW1hZ2U0LmhlaWdodCA9IDYwLjk5Ow0KK3Nob3VsZEJl
KCdpbWFnZTQud2lkdGgsaW1hZ2U0LmhlaWdodCcsICcxMjAsNjAnKTsNCisNCitkaXYgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2NSIpOw0KK3ZhciB0ZXh0MSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXh0MSIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzUgOiBUZXh0LCBTZXR0aW5n
IGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTAwXCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgi
KCd3aWR0aCcgaW4gdGV4dDEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gdGV4dDEp
Iik7DQordGV4dDEud2lkdGggPSAxMDA7DQordGV4dDEuaGVpZ2h0ID0gNTA7DQorc2hvdWxkQmUo
J3RleHQxLndpZHRoLHRleHQxLmhlaWdodCcsICcwLDAnKTsNCisNCit0ZXh0MS50eXBlID0gJ2lt
YWdlJzsNCit0ZXh0MS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuLmpwZyI7DQorc2hvdWxkQmUoJ3Rl
eHQxLndpZHRoLHRleHQxLmhlaWdodCcsICcxMDAsNTAnKTsNCit0ZXh0MS53aWR0aCA9IDYwOw0K
K3RleHQxLmhlaWdodCA9IDQwOw0KK3Nob3VsZEJlKCd0ZXh0MS53aWR0aCx0ZXh0MS5oZWlnaHQn
LCAnNjAsNDAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2NiIpOw0K
K3ZhciBmaWxlMSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlMSIpOw0KK2RlYnVnKCdU
ZXN0IGNhc2UgIzYgOiBGaWxlLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTAwXCIs
IFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gZmlsZTEpIik7DQorc2hvdWxk
QmVUcnVlKCIoJ2hlaWdodCcgaW4gZmlsZTEpIik7DQorZmlsZTEud2lkdGggPSAxMDA7DQorZmls
ZTEuaGVpZ2h0ID0gNTA7DQorc2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCcsICcw
LDAnKTsNCisNCitmaWxlMS50eXBlID0gJ2ltYWdlJzsNCitmaWxlMS5zcmMgPSAicmVzb3VyY2Vz
L2dyZWVuLmpwZyI7DQorc2hvdWxkQmUoJ2ZpbGUxLndpZHRoLGZpbGUxLmhlaWdodCcsICcxMDAs
NTAnKTsNCitmaWxlMS53aWR0aCA9IDYwOw0KK2ZpbGUxLmhlaWdodCA9IDQwOw0KK3Nob3VsZEJl
KCdmaWxlMS53aWR0aCxmaWxlMS5oZWlnaHQnLCAnNjAsNDAnKTsNCisNCitkaXYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZGl2NyIpOw0KK3ZhciBkYXRlMSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJkYXRlMSIpOw0KK2RlYnVnKCdUZXN0IGNhc2UgIzcgOiBEYXRlLCBTZXR0aW5nIGJ5
IEphdmFTY3JpcHQgQVBJIGFzIFwiMTAwXCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3
aWR0aCcgaW4gZGF0ZTEpIik7DQorc2hvdWxkQmVUcnVlKCIoJ2hlaWdodCcgaW4gZGF0ZTEpIik7
DQorZGF0ZTEud2lkdGggPSAxMDA7DQorZGF0ZTEuaGVpZ2h0ID0gNTA7DQorc2hvdWxkQmUoJ2Rh
dGUxLndpZHRoLGRhdGUxLmhlaWdodCcsICcwLDAnKTsNCisNCitkYXRlMS50eXBlID0gJ2ltYWdl
JzsNCitkYXRlMS5zcmMgPSAicmVzb3VyY2VzL2dyZWVuLmpwZyI7DQorc2hvdWxkQmUoJ2RhdGUx
LndpZHRoLGRhdGUxLmhlaWdodCcsICcxMDAsNTAnKTsNCitkYXRlMS53aWR0aCA9IDYwOw0KK2Rh
dGUxLmhlaWdodCA9IDQwOw0KK3Nob3VsZEJlKCdkYXRlMS53aWR0aCxkYXRlMS5oZWlnaHQnLCAn
NjAsNDAnKTsNCisNCitkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2OCIpOw0KK3Zh
ciBidXR0b24xID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJ1dHRvbjEiKTsNCitkZWJ1Zygn
VGVzdCBjYXNlICM4IDogQnV0dG9uLCBTZXR0aW5nIGJ5IEphdmFTY3JpcHQgQVBJIGFzIFwiMTAw
XCIsIFwiNTBcIicpOw0KK3Nob3VsZEJlVHJ1ZSgiKCd3aWR0aCcgaW4gYnV0dG9uMSkiKTsNCitz
aG91bGRCZVRydWUoIignaGVpZ2h0JyBpbiBidXR0b24xKSIpOw0KK2J1dHRvbjEud2lkdGggPSAx
MDA7DQorYnV0dG9uMS5oZWlnaHQgPSA1MDsNCitzaG91bGRCZSgnYnV0dG9uMS53aWR0aCxidXR0
b24xLmhlaWdodCcsICcwLDAnKTsNCisNCitidXR0b24xLnR5cGUgPSAnaW1hZ2UnOw0KK2J1dHRv
bjEuc3JjID0gInJlc291cmNlcy9ncmVlbi5qcGciOw0KK3Nob3VsZEJlKCdidXR0b24xLndpZHRo
LGJ1dHRvbjEuaGVpZ2h0JywgJzEwMCw1MCcpOw0KK2J1dHRvbjEud2lkdGggPSA2MDsNCitidXR0
b24xLmhlaWdodCA9IDQwOw0KK3Nob3VsZEJlKCdidXR0b24xLndpZHRoLGJ1dHRvbjEuaGVpZ2h0
JywgJzYwLDQwJyk7DQorDQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7DQorPC9zY3Jp
cHQ+DQorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+DQorPC9ib2R5Pg0KKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9ncmVlbi5qcGcgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3Jlc291cmNlcy9ncmVlbi5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVmNzAwYjY4MDdkMTk1MzUyZTFhYjAy
MTRjZTRmMWVkZjkyMDM0MApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzY0CnpjbWV4PTxOcEgm
MFdVWENId0gjVk11cjMrV2NkRyhwfjFCeEdtVX00Kk94KHlmcXtYOGZ0NjgrZmY+a1IxVlJRegp6
REYjK0JufU5aTFE1d3o7ViReYERWUGFydCZ0emJNcykrKjlBZG1wV0s7Mk45WCNvPmxnfT8lNDFS
SlA9O3MwJDAKelg5Z3hsTWk2MkdBfFBPOVdkO0VANzhZaCFifmJpKWJ+WkxQYmBFWSViYENCTUhh
MVJQUEErYjQ5diZXY1BGX0E8Cno5ekd6RzgpT0piRkVkeSNEPm54bDJSRiYhe3thUjs0aDhgUjBj
SillMXx+czlXPGtkUE07UFJSSzRBcmg3YndWfQp6ZlJUeHJnJSMpYHBnVnZId2g5MjkmJjxwT2JT
eF9pRmQhSWZmJHxKMmZ+LVB7aEtfOClmcjshJmcoNjBjNkJsd1EKeko4ZThEOGclaTRpZzhqPTZE
T0NMeFArdlhzK3ppbnJrMDdSbllvM2ZtOXZZaG80YmRuUzh6eVpTYT9LYVJCfXBjCnpUNiN1aVIm
aHliUyRSY2VSZFkqZ1RZRT1tKlFDaSlyY1JxYVc5Rjx5aTxjfjJ3dFU2UFJodT8lKn04NH1qLTkm
Pgp6OVhAak8qenByNVBoR2x2PD82TlRIKlZmfl9+YE1Jcl9ZfGhjPV90JXJfVyEkZSo2Qzg9UCFg
STcjV3gkLWglcksKeiYwbTUqZT16fiRmUTIzOEZHaSt2QVo4WTFWTzJDXzZMSmg+UGI/SHhHSFQ9
eWFoa1lyPDNVYms8RGRfc05rdGRBCnkjOGdaa3ModTd7NGVUQEdKa35eKCYpXjxJYDBFd300Pkti
JEB8WG5+Pj4waiRYKU1+YGJeZ1BqfDJGfmNfc3ZXSQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvaW1hZ2Utc2xvdy5w
bCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2ltYWdlLXNsb3cucGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU5NmFiYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2ltYWdlLXNsb3cucGwKQEAgLTAsMCAr
MSwxOSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisKKyMgZmx1c2ggdGhlIGJ1ZmZlcnMgYWZ0ZXIg
ZWFjaCBwcmludAorc2VsZWN0IChTVERPVVQpOworJHwgPSAxOworCitwcmludCAiQ29udGVudC1U
eXBlOiBpbWFnZS9qcGVnXHJcbiI7CitwcmludCAiRXhwaXJlczogVGh1LCAwMSBEZWMgMjAwMyAx
NjowMDowMCBHTVRcclxuIjsKK3ByaW50ICJDYWNoZS1Db250cm9sOiBuby1zdG9yZSwgbm8tY2Fj
aGUsIG11c3QtcmV2YWxpZGF0ZVxyXG4iOworcHJpbnQgIlByYWdtYTogbm8tY2FjaGVcclxuIjsK
K3ByaW50ICJcclxuIjsKKworc2xlZXAgMjsKKworb3BlbihGSUxFLCAiZ3JlZW4uanBnIik7Cit3
aGlsZSAoPEZJTEU+KSB7CisgIHByaW50ICRfOworfQorY2xvc2UoRklMRSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNGU1NTc1ZC4uYjM2YTQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA1
LTA3ICBEb25nd29vIEltICA8ZHcuaW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgd2lkdGgvaGVp
Z2h0IGF0dHJpYnV0ZXMgb2YgaW5wdXQgZWxlbWVudCBjYW5ub3QgYmUgYWNjZXNzZWQgYnkgSmF2
YVNjcmlwdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwMzA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSWYg
dGhlIHR5cGUgb2YgaW5wdXQgZWxlbWVudCBpcyBpbWFnZSBidXR0b24sIHdpZHRoL2hlaWdodCBh
dHRyaWJ1dGVzIHNob3VsZCBiZSBzdXBwb3J0ZWQuCisgICAgICAgIFRoZXNlIGF0dHJpYnV0ZXMg
YXJlIGRlZmluZWQgaW4gSFRNTDUgc3BlYy4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIv
aHRtbDUvdGhlLW1hcC1lbGVtZW50Lmh0bWwjYXR0ci1kaW0td2lkdGgKKworICAgICAgICBUZXN0
czogZmFzdC9mb3Jtcy9pbnB1dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy13aXRob3V0LXJlbmRl
cmVyLWxvYWRlZC1pbWFnZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXdp
ZHRoLWhlaWdodC1hdHRyaWJ1dGVzLXdpdGhvdXQtcmVuZGVyZXItbm90LWxvYWRlZC1pbWFnZS5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL2lucHV0LXdpZHRoLWhlaWdodC1hdHRyaWJ1
dGVzLXdpdGhvdXQtcmVuZGVyZXIuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9mb3Jtcy9pbnB1
dC13aWR0aC1oZWlnaHQtYXR0cmlidXRlcy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwOiBBZGQgc2V0dGVyL2dldHRlciBmdW5jdGlvbnMgdG8gcXVlcnkvc2V0IHdp
ZHRoL2hlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1
dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6d2lkdGgpOiBH
ZXRzIHdpZHRoIG9mIGlucHV0IGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRF
bGVtZW50OjpzZXRIZWlnaHQpOiBTZXRzIGhlaWdodCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6c2V0V2lkdGgpOiBTZXRzIHdpZHRoIG9mIGlu
cHV0IGVsZW1lbnQuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6IEFkZCBwdWJs
aWMgcHJvdG90eXBlLgorICAgICAgICAoSFRNTElucHV0RWxlbWVudCk6CisgICAgICAgICogaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmlkbDogQWRkIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGVzLgorICAg
ICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOiBBZGQgZ2V0dGVyIGZ1bmN0aW9ucyBpZiB0
aGUgZWxlbWVudCBpcyBhbiBpbWFnZSBidXR0b24uCisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQpOiBHZXRzIGhlaWdodCBvZiBpbnB1
dCBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoKTogR2V0
cyB3aWR0aCBvZiBpbnB1dCBlbGVtZW50LgorICAgICAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUu
aDogQWRkIHByb3RvdHlwZS4KKyAgICAgICAgKEltYWdlSW5wdXRUeXBlKToKKyAgICAgICAgKiBo
dG1sL0lucHV0VHlwZS5jcHA6IEFkZCBnZXR0ZXIgZnVuY3Rpb25zLgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRUeXBlOjpoZWlnaHQpOiBSZXR1cm5zIHplcm8uCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6d2lkdGgpOiBSZXR1cm5zIHplcm8uCisgICAg
ICAgICogaHRtbC9JbnB1dFR5cGUuaDogQWRkIHByb3RvdHlwZS4KKyAgICAgICAgKElucHV0VHlw
ZSk6CisKIDIwMTItMDUtMDYgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJha3Vjb0B3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvciByMTE2MjYwLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYjNiMGE3Mi4uNDYwMWJjMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC03LDYgKzcsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJraXQub3JnKQog
ICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKKyAqIENvcHlyaWdodCAoQykgMjAxMiBT
YW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0xODQzLDQgKzE4NDQsMjUgQEAgaW5saW5lIHZvaWQgSFRNTElucHV0RWxlbWVudDo6
cmVtb3ZlRnJvbVJhZGlvQnV0dG9uR3JvdXAoKQogICAgIGlmIChDaGVja2VkUmFkaW9CdXR0b25z
KiBidXR0b25zID0gY2hlY2tlZFJhZGlvQnV0dG9ucygpKQogICAgICAgICBidXR0b25zLT5yZW1v
dmVCdXR0b24odGhpcyk7CiB9CisKK3Vuc2lnbmVkIEhUTUxJbnB1dEVsZW1lbnQ6OmhlaWdodCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5oZWlnaHQoKTsKK30KKwordW5zaWdu
ZWQgSFRNTElucHV0RWxlbWVudDo6d2lkdGgoKSBjb25zdAoreworICAgIHJldHVybiBtX2lucHV0
VHlwZS0+d2lkdGgoKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRIZWlnaHQodW5z
aWduZWQgaGVpZ2h0KQoreworICAgIHNldEF0dHJpYnV0ZShoZWlnaHRBdHRyLCBTdHJpbmc6Om51
bWJlcihoZWlnaHQpKTsKK30KKwordm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRXaWR0aCh1bnNp
Z25lZCB3aWR0aCkKK3sKKyAgICBzZXRBdHRyaWJ1dGUod2lkdGhBdHRyLCBTdHJpbmc6Om51bWJl
cih3aWR0aCkpOworfQorCiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaAppbmRleCAzYWJmMTkzLi5kNDM3OWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaApAQCAtMyw2ICszLDcgQEAKICAqICAgICAgICAgICAoQykgMTk5OSBB
bnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMCBE
aXJrIE11ZWxsZXIgKG11ZWxsZXJAa2RlLm9yZykKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwNywgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjM2LDYgKzIzNywxMSBAQCBwdWJsaWM6CiAKICAg
ICBzdGF0aWMgY29uc3QgaW50IG1heGltdW1MZW5ndGg7CiAKKyAgICB1bnNpZ25lZCBoZWlnaHQo
KSBjb25zdDsKKyAgICB1bnNpZ25lZCB3aWR0aCgpIGNvbnN0OworICAgIHZvaWQgc2V0SGVpZ2h0
KHVuc2lnbmVkKTsKKyAgICB2b2lkIHNldFdpZHRoKHVuc2lnbmVkKTsKKwogcHJvdGVjdGVkOgog
ICAgIEhUTUxJbnB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgSFRN
TEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgIHZvaWQgY3JlYXRlU2hh
ZG93U3VidHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKaW5k
ZXggM2MxMTk5MC4uMWVjYTI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2Ft
dWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAg
KiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYwpAQCAtMzYsNiArMzcsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBb
VHJlYXROdWxsQXM9TnVsbFN0cmluZ10gRE9NU3RyaW5nIGZvcm1NZXRob2Q7CiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdF0gYm9vbGVhbiBmb3JtTm9WYWxpZGF0ZTsKICAgICAgICAgYXR0cmli
dXRlIFtSZWZsZWN0XSBET01TdHJpbmcgZm9ybVRhcmdldDsKKyAgICAgICAgYXR0cmlidXRlIHVu
c2lnbmVkIGxvbmcgaGVpZ2h0OwogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpbmRldGVybWlu
YXRlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbmRpdGlvbmFsPURBVEFMSVNUXSBI
VE1MRWxlbWVudCBsaXN0OwogICAgICAgICBhdHRyaWJ1dGUgW1JlZmxlY3RdIERPTVN0cmluZyBt
YXg7CkBAIC02NSw2ICs2Nyw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgdm9pZCBzdGVwVXAo
aW4gW09wdGlvbmFsXSBsb25nIG4pIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lk
IHN0ZXBEb3duKGluIFtPcHRpb25hbF0gbG9uZyBuKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAor
ICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aWR0aDsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGJvb2xlYW4gd2lsbFZhbGlkYXRlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgVmFsaWRpdHlTdGF0ZSB2YWxpZGl0eTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlw
ZS5jcHAKaW5kZXggZmMzN2UyOS4uNDU2ZjIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAy
MDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3Mu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDEyICsyNywx
NiBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbWFnZUxv
YWRlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKKyNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVu
dC5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwor
CiBpbmxpbmUgSW1hZ2VJbnB1dFR5cGU6OkltYWdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQpCiAgICAgOiBCYXNlQnV0dG9uSW5wdXRUeXBlKGVsZW1lbnQpCiB7CkBAIC0xNzQs
NCArMTc5LDQ2IEBAIGJvb2wgSW1hZ2VJbnB1dFR5cGU6OnNob3VsZFJlc3BlY3RIZWlnaHRBbmRX
aWR0aEF0dHJpYnV0ZXMoKQogICAgIHJldHVybiB0cnVlOwogfQogCit1bnNpZ25lZCBJbWFnZUlu
cHV0VHlwZTo6aGVpZ2h0KCkgY29uc3QKK3sKKyAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4g
ZWxlbWVudCA9IHRoaXMtPmVsZW1lbnQoKTsKKworICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIo
KSkgeworICAgICAgICAvLyBDaGVjayB0aGUgYXR0cmlidXRlIGZpcnN0IGZvciBhbiBleHBsaWNp
dCBwaXhlbCB2YWx1ZS4KKyAgICAgICAgdW5zaWduZWQgaGVpZ2h0OworICAgICAgICBpZiAocGFy
c2VIVE1MTm9uTmVnYXRpdmVJbnRlZ2VyKGVsZW1lbnQtPmZhc3RHZXRBdHRyaWJ1dGUoaGVpZ2h0
QXR0ciksIGhlaWdodCkpCisgICAgICAgICAgICByZXR1cm4gaGVpZ2h0OworCisgICAgICAgIC8v
IElmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUsIHVzZSBpdHMgaGVpZ2h0LgorICAgICAgICBpZiAo
bV9pbWFnZUxvYWRlci0+aW1hZ2UoKSkKKyAgICAgICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVy
LT5pbWFnZSgpLT5pbWFnZVNpemVGb3JSZW5kZXJlcihlbGVtZW50LT5yZW5kZXJlcigpLCAxKS5o
ZWlnaHQoKTsKKyAgICB9CisKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXQo
KTsKKworICAgIFJlbmRlckJveCogYm94ID0gZWxlbWVudC0+cmVuZGVyQm94KCk7CisgICAgcmV0
dXJuIGJveCA/IGFkanVzdEZvckFic29sdXRlWm9vbShib3gtPmNvbnRlbnRIZWlnaHQoKSwgYm94
KSA6IDA7Cit9CisKK3Vuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3aWR0aCgpIGNvbnN0Cit7Cisg
ICAgUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQgPSB0aGlzLT5lbGVtZW50KCk7CisK
KyAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgLy8gQ2hlY2sgdGhlIGF0
dHJpYnV0ZSBmaXJzdCBmb3IgYW4gZXhwbGljaXQgcGl4ZWwgdmFsdWUuCisgICAgICAgIHVuc2ln
bmVkIHdpZHRoOworICAgICAgICBpZiAocGFyc2VIVE1MTm9uTmVnYXRpdmVJbnRlZ2VyKGVsZW1l
bnQtPmZhc3RHZXRBdHRyaWJ1dGUod2lkdGhBdHRyKSwgd2lkdGgpKQorICAgICAgICAgICAgcmV0
dXJuIHdpZHRoOworCisgICAgICAgIC8vIElmIHRoZSBpbWFnZSBpcyBhdmFpbGFibGUsIHVzZSBp
dHMgd2lkdGguCisgICAgICAgIGlmIChtX2ltYWdlTG9hZGVyLT5pbWFnZSgpKQorICAgICAgICAg
ICAgcmV0dXJuIG1faW1hZ2VMb2FkZXItPmltYWdlKCktPmltYWdlU2l6ZUZvclJlbmRlcmVyKGVs
ZW1lbnQtPnJlbmRlcmVyKCksIDEpLndpZHRoKCk7CisgICAgfQorCisgICAgZWxlbWVudC0+ZG9j
dW1lbnQoKS0+dXBkYXRlTGF5b3V0KCk7CisKKyAgICBSZW5kZXJCb3gqIGJveCA9IGVsZW1lbnQt
PnJlbmRlckJveCgpOworICAgIHJldHVybiBib3ggPyBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oYm94
LT5jb250ZW50V2lkdGgoKSwgYm94KSA6IDA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuaAppbmRleCA5M2RiMDc1Li41ZWM5N2U0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtNjEsNiArNjIsOCBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0ltYWdlQnV0dG9uKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBib29sIGlzRW51bWVyYXRhYmxlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZFJlc3BlY3RIZWlnaHRBbmRXaWR0aEF0dHJpYnV0ZXMoKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1
YWwgdW5zaWduZWQgd2lkdGgoKSBjb25zdCBPVkVSUklERTsKIAogICAgIE93blB0cjxIVE1MSW1h
Z2VMb2FkZXI+IG1faW1hZ2VMb2FkZXI7CiAgICAgSW50UG9pbnQgbV9jbGlja0xvY2F0aW9uOyAv
LyBWYWxpZCBvbmx5IGR1cmluZyBIVE1MRm9ybUVsZW1lbnQ6OnByZXBhcmVGb3JTdWJtaXNzaW9u
KCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggMTI5ZmM1ZS4uMjJjMDQ5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNiw2ICs2LDcgQEAKICAqICAgICAgICAgICAo
QykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDcgU2FtdWVsIFdlaW5pZyAoc2FtQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCkBAIC00MSw2ICs0Miw4IEBACiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCiAj
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIK
ICNpbmNsdWRlICJIVE1MU2hhZG93RWxlbWVudC5oIgogI2luY2x1ZGUgIkhpZGRlbklucHV0VHlw
ZS5oIgogI2luY2x1ZGUgIkltYWdlSW5wdXRUeXBlLmgiCkBAIC03NzIsNiArNzc1LDE2IEBAIGJv
b2wgSW5wdXRUeXBlOjpzdXBwb3J0c0luZGV0ZXJtaW5hdGVBcHBlYXJhbmNlKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK3Vuc2lnbmVkIElucHV0VHlwZTo6aGVpZ2h0KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gMDsKK30KKwordW5zaWduZWQgSW5wdXRUeXBlOjp3aWR0aCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIDA7Cit9CisKIG5hbWVzcGFjZSBJbnB1dFR5cGVOYW1lcyB7CiAKIC8v
IFRoZSB0eXBlIG5hbWVzIG11c3QgYmUgbG93ZXJjYXNlZCBiZWNhdXNlIHRoZXkgd2lsbCBiZSB0
aGUgcmV0dXJuIHZhbHVlcyBvZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggZTkwMzJjMC4u
YWU4NTY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjc1LDYgKzI3NiwxMSBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbmRldGVybWluYXRlQXBwZWFy
YW5jZSgpIGNvbnN0OwogCisgICAgLy8gR2V0cyB3aWR0aCBhbmQgaGVpZ2h0IG9mIHRoZSBpbnB1
dCBlbGVtZW50IGlmIHRoZSB0eXBlIG9mIHRoZQorICAgIC8vIGVsZW1lbnQgaXMgaW1hZ2UuIEl0
IHJldHVybnMgMCBpZiB0aGUgZWxlbWVudCBpcyBub3QgaW1hZ2UgdHlwZS4KKyAgICB2aXJ0dWFs
IHVuc2lnbmVkIGhlaWdodCgpIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQgd2lkdGgoKSBj
b25zdDsKKwogcHJvdGVjdGVkOgogICAgIElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KSA6IG1fZWxlbWVudChlbGVtZW50KSB7IH0KICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVtZW50OyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>