<?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>31650</bug_id>
          
          <creation_ts>2009-11-18 15:19:41 -0800</creation_ts>
          <short_desc>Make chromium/webkit/glue/FormFieldValues use the WebKit API</short_desc>
          <delta_ts>2009-11-19 17:10:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yaar Schnitman">yaar</reporter>
          <assigned_to name="Yaar Schnitman">yaar</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fishd</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>164754</commentid>
    <comment_count>0</comment_count>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-11-18 15:19:41 -0800</bug_when>
    <thetext>Do some WebKit API changes to help FormFieldValues not used WebCore directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164758</commentid>
    <comment_count>1</comment_count>
      <attachid>43467</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-11-18 15:21:48 -0800</bug_when>
    <thetext>Created attachment 43467
form_field_value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164779</commentid>
    <comment_count>2</comment_count>
      <attachid>43467</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-11-18 15:39:41 -0800</bug_when>
    <thetext>Comment on attachment 43467
form_field_value

&gt; +++ b/WebKit/chromium/public/WebFormElement.h

&gt; +        WEBKIT_API void getNamedElements(const WebString&amp;, WebVector&lt;WebNode&gt;&amp;);
&gt; +        WEBKIT_API void getInputElements(WebVector&lt;WebInputElement&gt;&amp;) const;

not relevant to this patch, but...

getNamedElements seems unfortunately named.  at least, it seems like the output
type should be WebVector&lt;WebElement&gt; instead of WebVector&lt;WebNode&gt;.  also, it
seems that getNamedElements should be const.  perhaps we can make some changes
in a follow-up patch.


&gt; +++ b/WebKit/chromium/public/WebInputElement.h
...
&gt; +        enum InputType {
...
&gt; +            Url,

s/Url/URL/

each letter of an acronym should be uniformly capitalized.


&gt; +        WEBKIT_API bool isEnabledFormControl() const;




&gt; +        WEBKIT_API InputType inputType() const;

nit: can we just use &quot;type&quot; as the name of this method and Type instead
of InputType as the name of the enum?  Since the enum is defined within
a class named WebInputElement, it seems redundant for its name to include
the term &quot;Input&quot;.


i don&apos;t see the implementation of a number of these methods:

&gt; +        WEBKIT_API WebString formControlType() const;
&gt; +        WEBKIT_API void setActivatedSubmit(bool);

can you add some comment explaining what setActivatedSubmit does?


&gt; +        WEBKIT_API void setValue(const WebString&amp; value);
&gt; +        WEBKIT_API WebString value() const;
&gt; +        WEBKIT_API void setAutofilled(bool);
&gt; +        WEBKIT_API void dispatchFormControlChangeEvent();
&gt; +        WEBKIT_API void setSelectionRange(size_t, size_t);

WebRange uses int instead of size_t for ranges.  perhaps these should
use int as well.


&gt; +        WEBKIT_API WebString name() const;

nit: please insert a new line above the comment block.


&gt; +        // Returns the name that should be used for the specified |element| when
&gt; +        // storing autofill data.  This is either the field name or its id, an empty
&gt; +        // string if it has no name and no id.
&gt; +        WEBKIT_API WebString nameForAutofill() const;


&gt; +++ b/WebKit/chromium/public/WebNode.h

&gt; -    WebFrame* frame();
&gt; +    WebFrame* frame() const;

^^^ you should sync, i&apos;ve already landed this change


&gt; +++ b/WebKit/chromium/src/DOMUtilitiesPrivate.cpp


&gt; -String nameOfInputElement(HTMLInputElement* element)

it looks like this is still referenced by the chromium repository.  i wouldn&apos;t
get rid of it until the chromium repository stops referencing this method.

how about just adding a comment indicating that it is deprecated for now?

that way the two-sided patching is simpler.


&gt; +WebString WebInputElement::nameForAutofill() const
&gt; +{
&gt; +    

^^^ nit: remove the extra new line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164856</commentid>
    <comment_count>3</comment_count>
      <attachid>43476</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-11-18 17:59:03 -0800</bug_when>
    <thetext>Created attachment 43476
form_field_value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164857</commentid>
    <comment_count>4</comment_count>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-11-18 18:00:06 -0800</bug_when>
    <thetext>Feedback incorporated. Except:

In reply to comment #2)
&gt; getNamedElements seems unfortunately named.  at least, it seems like the output
&gt; type should be WebVector&lt;WebElement&gt; instead of WebVector&lt;WebNode&gt;.  also, it
&gt; seems that getNamedElements should be const.  perhaps we can make some changes
&gt; in a follow-up patch.
&gt; 

Its a thin wrapper around HTMLInputElement-&gt;getNamedElements, which by itself returns a vector of nodes, not elements. That getNamedElements is also not const. So the fix should be done in webcore too.

&gt; &gt; +        WEBKIT_API InputType inputType() const;
&gt; 
&gt; nit: can we just use &quot;type&quot; as the name of this method and Type instead
&gt; of InputType as the name of the enum?  Since the enum is defined within
&gt; a class named WebInputElement, it seems redundant for its name to include
&gt; the term &quot;Input&quot;.

I don&apos;t want to diverge from webcore which uses inputType too. There might one day also be Node::NodeTypes so I think it will be better if we stick with InputType and inputType to prevent collisions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165135</commentid>
    <comment_count>5</comment_count>
      <attachid>43476</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-11-19 16:07:46 -0800</bug_when>
    <thetext>Comment on attachment 43476
form_field_value

&gt; +++ b/WebKit/chromium/src/WebInputElement.cpp
...
&gt; +}
&gt; +    
&gt; +
&gt;  } // namespace WebKit

^^^ nit: one too many new lines there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165136</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-11-19 16:08:02 -0800</bug_when>
    <thetext>R=me w/ that nit fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165148</commentid>
    <comment_count>7</comment_count>
      <attachid>43534</attachid>
    <who name="Yaar Schnitman">yaar</who>
    <bug_when>2009-11-19 16:46:00 -0800</bug_when>
    <thetext>Created attachment 43534
form_field_value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165157</commentid>
    <comment_count>8</comment_count>
      <attachid>43534</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-19 17:09:59 -0800</bug_when>
    <thetext>Comment on attachment 43534
form_field_value

Clearing flags on attachment: 43534

Committed r51224: &lt;http://trac.webkit.org/changeset/51224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165159</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-11-19 17:10:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43467</attachid>
            <date>2009-11-18 15:21:48 -0800</date>
            <delta_ts>2009-11-18 17:59:00 -0800</delta_ts>
            <desc>form_field_value</desc>
            <filename>bug-31650-20091118152146.patch</filename>
            <type>text/plain</type>
            <size>12352</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDk3NjU1YjYuLjNjMWNmODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM1IEBACisyMDA5LTExLTE4ICBZYWFyIFNjaG5pdG1hbiAgPHlhYXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0aW5n
IG5ldyBtZXRob2RzIHRvIGVsaW1pbmF0ZSBDaHJvbWl1bSBkZXBlbmRlbmNpZXMgb24gV2ViQ29y
ZS4KKyAgICAgICAgU29tZSBtaXNzaW5nIFdFQktJVF9BUEkgYW5kIGNvbnN0IGRlY2xhcmF0aW9u
cyB3ZXJlIGFkZGVkIHRvby4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzE2NTAKKworICAgICAgICAqIHB1YmxpYy9XZWJFbGVtZW50Lmg6CisgICAg
ICAgICogcHVibGljL1dlYkZvcm1FbGVtZW50Lmg6CisgICAgICAgICogcHVibGljL1dlYklucHV0
RWxlbWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEVsZW1lbnQ6Oik6CisgICAgICAg
ICogcHVibGljL1dlYk5vZGUuaDoKKyAgICAgICAgKiBzcmMvRE9NVXRpbGl0aWVzUHJpdmF0ZS5j
cHA6CisgICAgICAgICogc3JjL0RPTVV0aWxpdGllc1ByaXZhdGUuaDoKKyAgICAgICAgKiBzcmMv
RWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6
OmF1dG9maWxsKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6ZG9BdXRvZmls
bCk6CisgICAgICAgICogc3JjL1dlYkZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRm9ybUVsZW1lbnQ6OmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZvcm1FbGVtZW50
OjpuYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViRm9ybUVsZW1lbnQ6Om1ldGhvZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZvcm1FbGVtZW50OjpnZXROYW1lZEVsZW1lbnRzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViRm9ybUVsZW1lbnQ6OmdldElucHV0RWxlbWVudHMpOgorICAgICAgICAqIHNy
Yy9XZWJJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEVsZW1lbnQ6
OnZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFbGVtZW50OjpuYW1lKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5wdXRFbGVtZW50OjpuYW1lRm9yQXV0b2ZpbGwpOgorICAgICAgICAq
IHNyYy9XZWJOb2RlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTm9kZTo6ZnJhbWUpOgorCiAy
MDA5LTExLTE3ICBOaWNvbGFzIFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIsIERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRWxlbWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJFbGVtZW50LmgKaW5kZXggYmZkYzA4MS4uZDdhMmNiZiAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJFbGVtZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJFbGVtZW50LmgKQEAgLTU0LDcgKzU0LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAg
ICAgIFdlYkVsZW1lbnQmIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6
RWxlbWVudD4mKTsKICAgICAgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkVs
ZW1lbnQ+KCkgY29uc3Q7CiAjZW5kaWYKLQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGb3JtRWxlbWVudC5oIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGb3JtRWxlbWVudC5oCmluZGV4IDY5M2ExZTkuLjlk
OGVlNjkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRm9ybUVsZW1lbnQu
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZvcm1FbGVtZW50LmgKQEAgLTMyLDYg
KzMyLDcgQEAKICNkZWZpbmUgV2ViRm9ybUVsZW1lbnRfaAogCiAjaW5jbHVkZSAiV2ViRWxlbWVu
dC5oIgorI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIldlYlZlY3Rvci5o
IgogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCkBAIC01OCwxMCArNTksMTMgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAgICAgICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpI
VE1MRm9ybUVsZW1lbnQ+KCkgY29uc3Q7CiAjZW5kaWYKIAotICAgICAgICBib29sIGF1dG9Db21w
bGV0ZSgpIGNvbnN0OwotICAgICAgICBXZWJTdHJpbmcgYWN0aW9uKCk7Ci0gICAgICAgIHZvaWQg
c3VibWl0KCk7Ci0gICAgICAgIHZvaWQgZ2V0TmFtZWRFbGVtZW50cyhjb25zdCBXZWJTdHJpbmcm
LCBXZWJWZWN0b3I8V2ViTm9kZT4mKTsKKyAgICAgICAgV0VCS0lUX0FQSSBib29sIGF1dG9Db21w
bGV0ZSgpIGNvbnN0OworICAgICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBhY3Rpb24oKSBjb25z
dDsKKyAgICAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgbmFtZSgpIGNvbnN0OworICAgICAgICBX
RUJLSVRfQVBJIFdlYlN0cmluZyBtZXRob2QoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0FQSSB2
b2lkIHN1Ym1pdCgpOworICAgICAgICBXRUJLSVRfQVBJIHZvaWQgZ2V0TmFtZWRFbGVtZW50cyhj
b25zdCBXZWJTdHJpbmcmLCBXZWJWZWN0b3I8V2ViTm9kZT4mKTsKKyAgICAgICAgV0VCS0lUX0FQ
SSB2b2lkIGdldElucHV0RWxlbWVudHMoV2ViVmVjdG9yPFdlYklucHV0RWxlbWVudD4mKSBjb25z
dDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklucHV0RWxlbWVudC5oCmluZGV4IDVkODZhMzkuLjA0ODM5OTUgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJbnB1dEVsZW1lbnQuaApAQCAtNTUsMTIgKzU1LDQ4IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgICAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudD4oKSBjb25zdDsKICNlbmRpZgogCi0gICAgICAgIHZvaWQgc2V0QWN0aXZh
dGVkU3VibWl0KGJvb2wpOwotICAgICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFdlYlN0cmluZyYg
dmFsdWUpOwotICAgICAgICBXZWJTdHJpbmcgdmFsdWUoKTsKLSAgICAgICAgdm9pZCBzZXRBdXRv
ZmlsbGVkKGJvb2wpOwotICAgICAgICB2b2lkIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVu
dCgpOwotICAgICAgICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKHNpemVfdCwgc2l6ZV90KTsKKyAg
ICAgICAgZW51bSBJbnB1dFR5cGUgeworICAgICAgICAgICAgVGV4dCA9IDAsCisgICAgICAgICAg
ICBQYXNzd29yZCwKKyAgICAgICAgICAgIElzSW5kZXgsCisgICAgICAgICAgICBDaGVja0JveCwK
KyAgICAgICAgICAgIFJhZGlvLAorICAgICAgICAgICAgU3VibWl0LAorICAgICAgICAgICAgUmVz
ZXQsCisgICAgICAgICAgICBGaWxlLAorICAgICAgICAgICAgSGlkZGVuLAorICAgICAgICAgICAg
SW1hZ2UsCisgICAgICAgICAgICBCdXR0b24sCisgICAgICAgICAgICBTZWFyY2gsCisgICAgICAg
ICAgICBSYW5nZSwKKyAgICAgICAgICAgIEVtYWlsLAorICAgICAgICAgICAgTnVtYmVyLAorICAg
ICAgICAgICAgVGVsZXBob25lLAorICAgICAgICAgICAgVXJsLAorICAgICAgICAgICAgQ29sb3Is
CisgICAgICAgICAgICBEYXRlLAorICAgICAgICAgICAgRGF0ZVRpbWUsCisgICAgICAgICAgICBE
YXRlVGltZUxvY2FsLAorICAgICAgICAgICAgTW9udGgsCisgICAgICAgICAgICBUaW1lLAorICAg
ICAgICAgICAgV2VlaworICAgICAgICB9OworICAgICAgICAKKyAgICAgICAgV0VCS0lUX0FQSSBi
b29sIGlzRW5hYmxlZEZvcm1Db250cm9sKCkgY29uc3Q7CisgICAgICAgIFdFQktJVF9BUEkgSW5w
dXRUeXBlIGlucHV0VHlwZSgpIGNvbnN0OworICAgICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBm
b3JtQ29udHJvbFR5cGUoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0FQSSB2b2lkIHNldEFjdGl2
YXRlZFN1Ym1pdChib29sKTsKKyAgICAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFZhbHVlKGNvbnN0
IFdlYlN0cmluZyYgdmFsdWUpOworICAgICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyB2YWx1ZSgp
IGNvbnN0OworICAgICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0QXV0b2ZpbGxlZChib29sKTsKKyAg
ICAgICAgV0VCS0lUX0FQSSB2b2lkIGRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwor
ICAgICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2Uoc2l6ZV90LCBzaXplX3Qp
OworICAgICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBuYW1lKCkgY29uc3Q7CisgICAgICAgIC8v
IFJldHVybnMgdGhlIG5hbWUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHNwZWNpZmllZCB8
ZWxlbWVudHwgd2hlbgorICAgICAgICAvLyBzdG9yaW5nIGF1dG9maWxsIGRhdGEuICBUaGlzIGlz
IGVpdGhlciB0aGUgZmllbGQgbmFtZSBvciBpdHMgaWQsIGFuIGVtcHR5CisgICAgICAgIC8vIHN0
cmluZyBpZiBpdCBoYXMgbm8gbmFtZSBhbmQgbm8gaWQuCisgICAgICAgIFdFQktJVF9BUEkgV2Vi
U3RyaW5nIG5hbWVGb3JBdXRvZmlsbCgpIGNvbnN0OworICAgICAgICAKICAgICB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Tm9kZS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgKaW5kZXggNGM0ODkxNS4u
YWEwYWU0NyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHVi
bGljOgogCiAgICAgV0VCS0lUX0FQSSBXZWJOb2RlIHBhcmVudE5vZGUoKSBjb25zdDsKICAgICBX
RUJLSVRfQVBJIFdlYlN0cmluZyBub2RlTmFtZSgpIGNvbnN0OwotICAgIFdlYkZyYW1lKiBmcmFt
ZSgpOworICAgIFdlYkZyYW1lKiBmcmFtZSgpIGNvbnN0OwogCiAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gVCB0b0VsZW1lbnQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvRE9NVXRpbGl0aWVzUHJpdmF0ZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0RPTVV0aWxp
dGllc1ByaXZhdGUuY3BwCmluZGV4IGU4NGQ0ZmIuLjFjMDMyNTcgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvRE9NVXRpbGl0aWVzUHJpdmF0ZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9ET01VdGlsaXRpZXNQcml2YXRlLmNwcApAQCAtNzcsMTkgKzc3LDQgQEAgSFRNTE9w
dGlvbkVsZW1lbnQqIHRvSFRNTE9wdGlvbkVsZW1lbnQoTm9kZSogbm9kZSkKICAgICByZXR1cm4g
dG9IVE1MRWxlbWVudDxIVE1MT3B0aW9uRWxlbWVudD4obm9kZSwgSFRNTE5hbWVzOjpvcHRpb25U
YWcpOwogfQogCi1TdHJpbmcgbmFtZU9mSW5wdXRFbGVtZW50KEhUTUxJbnB1dEVsZW1lbnQqIGVs
ZW1lbnQpCi17Ci0gICAgU3RyaW5nIG5hbWUgPSBlbGVtZW50LT5uYW1lKCk7Ci0gICAgU3RyaW5n
IHRyaW1tZWROYW1lID0gbmFtZS5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICBpZiAoIXRyaW1tZWRO
YW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHRyaW1tZWROYW1lOwotCi0gICAgbmFtZSA9
IGVsZW1lbnQtPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmlkQXR0cik7Ci0gICAgdHJpbW1lZE5h
bWUgPSBuYW1lLnN0cmlwV2hpdGVTcGFjZSgpOwotICAgIGlmICghdHJpbW1lZE5hbWUuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gdHJpbW1lZE5hbWU7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9ET01VdGlsaXRpZXNQcml2YXRlLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0RPTVV0aWxp
dGllc1ByaXZhdGUuaAppbmRleCBjNzAxZDBhLi42OTQ0ZTg5IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0RPTVV0aWxpdGllc1ByaXZhdGUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0RPTVV0aWxpdGllc1ByaXZhdGUuaApAQCAtNTAsMTEgKzUwLDYgQEAgV2ViQ29yZTo6SFRN
TExpbmtFbGVtZW50KiB0b0hUTUxMaW5rRWxlbWVudChXZWJDb3JlOjpOb2RlKik7CiBXZWJDb3Jl
OjpIVE1MTWV0YUVsZW1lbnQqIHRvSFRNTE1ldGFFbGVtZW50KFdlYkNvcmU6Ok5vZGUqKTsKIFdl
YkNvcmU6OkhUTUxPcHRpb25FbGVtZW50KiB0b0hUTUxPcHRpb25FbGVtZW50KFdlYkNvcmU6Ok5v
ZGUqKTsKIAotLy8gUmV0dXJucyB0aGUgbmFtZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUg
c3BlY2lmaWVkIHxlbGVtZW50fCB3aGVuCi0vLyBzdG9yaW5nIGF1dG9maWxsIGRhdGEuICBUaGlz
IGlzIGVpdGhlciB0aGUgZmllbGQgbmFtZSBvciBpdHMgaWQsIGFuIGVtcHR5Ci0vLyBzdHJpbmcg
aWYgaXQgaGFzIG5vIG5hbWUgYW5kIG5vIGlkLgotV2ViQ29yZTo6U3RyaW5nIG5hbWVPZklucHV0
RWxlbWVudChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Kik7Ci0KIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xp
ZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmlu
ZGV4IGQ4NGNlMTIuLjVkYjhmZjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRp
dG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIK
ICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJLaXQuaCIKKyNpbmNsdWRl
ICJXZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJOb2RlLmgiCiAjaW5jbHVkZSAiV2Vi
UGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lci5oIgogI2luY2x1ZGUgIldlYlJhbmdlLmgiCkBA
IC03MDYsNyArNzA3LDcgQEAgYm9vbCBFZGl0b3JDbGllbnRJbXBsOjphdXRvZmlsbChIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dEVsZW1lbnQsCiAgICAgICAgIHx8ICFpbnB1dEVsZW1lbnQtPmF1dG9D
b21wbGV0ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBXZWJTdHJpbmcgbmFtZSA9
IFdlYktpdDo6bmFtZU9mSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCk7CisgICAgV2ViU3RyaW5n
IG5hbWUgPSBXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KS5uYW1lRm9yQXV0b2ZpbGwoKTsK
ICAgICBpZiAobmFtZS5pc0VtcHR5KCkpIC8vIElmIHRoZSBmaWVsZCBoYXMgbm8gbmFtZSwgdGhl
biB3ZSB3b24ndCBoYXZlIHZhbHVlcy4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC03Njks
NyArNzcwLDcgQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKFRpbWVyPEVkaXRv
ckNsaWVudEltcGw+KiB0aW1lcikKICAgICB9CiAKICAgICAvLyBUaGVuIHRyaWdnZXIgZm9ybSBh
dXRvZmlsbC4KLSAgICBXZWJTdHJpbmcgbmFtZSA9IFdlYktpdDo6bmFtZU9mSW5wdXRFbGVtZW50
KGlucHV0RWxlbWVudCk7CisgICAgV2ViU3RyaW5nIG5hbWUgPSBXZWJJbnB1dEVsZW1lbnQoaW5w
dXRFbGVtZW50KS5uYW1lRm9yQXV0b2ZpbGwoKTsKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8aW50
PihuYW1lLmxlbmd0aCgpKSA+IDApOwogCiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZvcm1FbGVtZW50LmNwcCBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRm9ybUVsZW1lbnQuY3BwCmluZGV4IGZlY2QwNWMuLjI1NDRkYmEg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRm9ybUVsZW1lbnQuY3BwCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRm9ybUVsZW1lbnQuY3BwCkBAIC0zMSw3ICszMSwxMCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkZvcm1FbGVtZW50LmgiCiAKKyNp
bmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVt
ZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC02NCwxMSArNjcsMjEgQEAgYm9vbCBXZWJGb3JtRWxl
bWVudDo6YXV0b0NvbXBsZXRlKCkgY29uc3QKICAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTEZv
cm1FbGVtZW50PigpLT5hdXRvQ29tcGxldGUoKTsKIH0KIAotV2ViU3RyaW5nIFdlYkZvcm1FbGVt
ZW50OjphY3Rpb24oKQorV2ViU3RyaW5nIFdlYkZvcm1FbGVtZW50OjphY3Rpb24oKSBjb25zdCAK
IHsKLSAgICByZXR1cm4gdW53cmFwPEhUTUxGb3JtRWxlbWVudD4oKS0+YWN0aW9uKCk7CisgICAg
cmV0dXJuIGNvbnN0VW53cmFwPEhUTUxGb3JtRWxlbWVudD4oKS0+YWN0aW9uKCk7CiB9CiAKK1dl
YlN0cmluZyBXZWJGb3JtRWxlbWVudDo6bmFtZSgpIGNvbnN0IAoreworICAgIHJldHVybiBjb25z
dFVud3JhcDxIVE1MRm9ybUVsZW1lbnQ+KCktPm5hbWUoKTsKK30KKworV2ViU3RyaW5nIFdlYkZv
cm1FbGVtZW50OjptZXRob2QoKSBjb25zdCAKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRN
TEZvcm1FbGVtZW50PigpLT5tZXRob2QoKTsKK30KKyAgICAKIHZvaWQgV2ViRm9ybUVsZW1lbnQ6
OnN1Ym1pdCgpCiB7CiAgICAgdW53cmFwPEhUTUxGb3JtRWxlbWVudD4oKS0+c3VibWl0KCk7CkBA
IC03Nyw5ICs5MCwyMSBAQCB2b2lkIFdlYkZvcm1FbGVtZW50OjpzdWJtaXQoKQogdm9pZCBXZWJG
b3JtRWxlbWVudDo6Z2V0TmFtZWRFbGVtZW50cyhjb25zdCBXZWJTdHJpbmcmIG5hbWUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlZlY3RvcjxXZWJOb2RlPiYgcmVz
dWx0KQogewotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiB0ZW1wX3ZlY3RvcjsKLSAgICB1bndy
YXA8SFRNTEZvcm1FbGVtZW50PigpLT5nZXROYW1lZEVsZW1lbnRzKG5hbWUsIHRlbXBfdmVjdG9y
KTsKLSAgICByZXN1bHQuYXNzaWduKHRlbXBfdmVjdG9yKTsKKyAgICBWZWN0b3I8UmVmUHRyPE5v
ZGU+ID4gdGVtcFZlY3RvcjsKKyAgICB1bndyYXA8SFRNTEZvcm1FbGVtZW50PigpLT5nZXROYW1l
ZEVsZW1lbnRzKG5hbWUsIHRlbXBWZWN0b3IpOworICAgIHJlc3VsdC5hc3NpZ24odGVtcFZlY3Rv
cik7Cit9CisKK3ZvaWQgV2ViRm9ybUVsZW1lbnQ6OmdldElucHV0RWxlbWVudHMoV2ViVmVjdG9y
PFdlYklucHV0RWxlbWVudD4mIHJlc3VsdCkgY29uc3QKK3sKKyAgICBjb25zdCBIVE1MRm9ybUVs
ZW1lbnQqIGZvcm0gPSBjb25zdFVud3JhcDxIVE1MRm9ybUVsZW1lbnQ+KCk7CisgICAgVmVjdG9y
PFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiA+IHRlbXBWZWN0b3I7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBmb3JtLT5mb3JtRWxlbWVudHMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgaWYg
KGZvcm0tPmZvcm1FbGVtZW50c1tpXS0+aGFzTG9jYWxOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcp
KQorICAgICAgICAgICAgdGVtcFZlY3Rvci5hcHBlbmQoc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KAorICAgICAgICAgICAgICAgIGZvcm0tPmZvcm1FbGVtZW50c1tpXSkpOworICAgIH0K
KyAgICByZXN1bHQuYXNzaWduKHRlbXBWZWN0b3IpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVtZW50LmNwcCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVtZW50LmNwcAppbmRleCA5NDdlNGNjLi5h
ZWEyMThiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5j
cHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEVsZW1lbnQuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50LmgiCiAKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiV2ViU3Ry
aW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApAQCAtNjYsMTIgKzY3LDExIEBA
IHZvaWQgV2ViSW5wdXRFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBXZWJTdHJpbmcmIHZhbHVlKQog
ICAgIHVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5zZXRWYWx1ZSh2YWx1ZSk7CiB9CiAKLVdl
YlN0cmluZyBXZWJJbnB1dEVsZW1lbnQ6OnZhbHVlKCkKK1dlYlN0cmluZyBXZWJJbnB1dEVsZW1l
bnQ6OnZhbHVlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+
KCktPnZhbHVlKCk7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCkt
PnZhbHVlKCk7CiB9CiAKLQogdm9pZCBXZWJJbnB1dEVsZW1lbnQ6OnNldEF1dG9maWxsZWQoYm9v
bCBhdXRvRmlsbGVkKQogewogICAgIHVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5zZXRBdXRv
ZmlsbGVkKGF1dG9GaWxsZWQpOwpAQCAtODYsNCArODYsMjcgQEAgdm9pZCBXZWJJbnB1dEVsZW1l
bnQ6OnNldFNlbGVjdGlvblJhbmdlKHNpemVfdCBzdGFydCwgc2l6ZV90IGVuZCkKIHsKICAgICB1
bndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+c2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7
CiB9CisgICAgCitXZWJTdHJpbmcgV2ViSW5wdXRFbGVtZW50OjpuYW1lKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gY29uc3RVbndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+bmFtZSgpOworfQorICAg
IAorV2ViU3RyaW5nIFdlYklucHV0RWxlbWVudDo6bmFtZUZvckF1dG9maWxsKCkgY29uc3QKK3sK
KyAgICAKKyAgICBTdHJpbmcgbmFtZSA9IGNvbnN0VW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCkt
Pm5hbWUoKTsKKyAgICBTdHJpbmcgdHJpbW1lZE5hbWUgPSBuYW1lLnN0cmlwV2hpdGVTcGFjZSgp
OworICAgIGlmICghdHJpbW1lZE5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJpbW1l
ZE5hbWU7CisgICAgCisgICAgbmFtZSA9IGNvbnN0VW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCkt
PmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmlkQXR0cik7CisgICAgdHJpbW1lZE5hbWUgPSBuYW1l
LnN0cmlwV2hpdGVTcGFjZSgpOworICAgIGlmICghdHJpbW1lZE5hbWUuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gdHJpbW1lZE5hbWU7CisgICAgCisgICAgcmV0dXJuIFN0cmluZygpOworfQor
ICAgIAorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViTm9kZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCmluZGV4
IGRlNjc2YzMuLjk2NWM0MTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9k
ZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJOb2RlLmNwcApAQCAtOTUsMTIgKzk1
LDkgQEAgdm9pZCBXZWJOb2RlOjphc3NpZ24oV2ViTm9kZVByaXZhdGUqIHApCiAgICAgbV9wcml2
YXRlID0gcDsKIH0KIAotV2ViRnJhbWUqIFdlYk5vZGU6OmZyYW1lKCkKK1dlYkZyYW1lKiBXZWJO
b2RlOjpmcmFtZSgpIGNvbnN0CiB7Ci0gICAgRnJhbWVMb2FkZXJDbGllbnRJbXBsKiBmcmFtZV9s
b2FkZXJfY2xpZW50ID0KLSAgICAgICAgc3RhdGljX2Nhc3Q8RnJhbWVMb2FkZXJDbGllbnRJbXBs
Kj4obV9wcml2YXRlLT5kb2N1bWVudCgpLT4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZnJhbWUoKS0+bG9hZGVyKCktPmNsaWVudCgpKTsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8V2ViRnJhbWUqPihmcmFtZV9sb2FkZXJfY2xpZW50LT53ZWJGcmFtZSgpKTsK
KyAgICByZXR1cm4gV2ViRnJhbWVJbXBsOjpmcm9tRnJhbWUobV9wcml2YXRlLT5kb2N1bWVudCgp
LT5mcmFtZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43476</attachid>
            <date>2009-11-18 17:59:03 -0800</date>
            <delta_ts>2009-11-19 16:45:55 -0800</delta_ts>
            <desc>form_field_value</desc>
            <filename>bug-31650-20091118175902.patch</filename>
            <type>text/plain</type>
            <size>15837</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDk3NjU1YjYuLjFmNjQxNDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDM5IEBACisyMDA5LTExLTE4ICBZYWFyIFNjaG5pdG1hbiAgPHlhYXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENyZWF0aW5n
IG5ldyBtZXRob2RzIHRvIGVsaW1pbmF0ZSBDaHJvbWl1bSBkZXBlbmRlbmNpZXMgb24gV2ViQ29y
ZS4KKyAgICAgICAgU29tZSBtaXNzaW5nIFdFQktJVF9BUEkgYW5kIGNvbnN0IGRlY2xhcmF0aW9u
cyB3ZXJlIGFkZGVkIHRvby4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzE2NTAKKworICAgICAgICAqIHB1YmxpYy9XZWJFbGVtZW50Lmg6CisgICAg
ICAgICogcHVibGljL1dlYkZvcm1FbGVtZW50Lmg6CisgICAgICAgICogcHVibGljL1dlYklucHV0
RWxlbWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEVsZW1lbnQ6Oik6CisgICAgICAg
ICogc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwOgorICAgICAgICAqIHNyYy9ET01VdGlsaXRp
ZXNQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bmFtZU9mSW5wdXRFbGVtZW50KToKKyAg
ICAgICAgKiBzcmMvRE9NVXRpbGl0aWVzUHJpdmF0ZS5oOgorICAgICAgICAqIHNyYy9FZGl0b3JD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6YXV0b2Zp
bGwpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9maWxsKToKKyAg
ICAgICAgKiBzcmMvV2ViRm9ybUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3Jt
RWxlbWVudDo6YWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViRm9ybUVsZW1lbnQ6Om5hbWUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJGb3JtRWxlbWVudDo6bWV0aG9kKToKKyAgICAgICAgKFdl
YktpdDo6V2ViRm9ybUVsZW1lbnQ6OmdldE5hbWVkRWxlbWVudHMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGb3JtRWxlbWVudDo6Z2V0SW5wdXRFbGVtZW50cyk6CisgICAgICAgICogc3JjL1dlYklu
cHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6aXNFbmFi
bGVkRm9ybUNvbnRyb2wpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnB1dEVsZW1lbnQ6OmlucHV0
VHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6Zm9ybUNvbnRyb2xUeXBl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFbGVtZW50Ojp2YWx1ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklucHV0RWxlbWVudDo6ZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6bmFtZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYklucHV0RWxlbWVudDo6bmFtZUZvckF1dG9maWxsKToKKwogMjAwOS0xMS0xNyAgTmljb2xh
cyBXZWJlciAgPHRoYWtpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gRmlzaGVyLCBEbWl0cnkgVGl0b3YuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYkVsZW1lbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRWxlbWVudC5oCmlu
ZGV4IGJmZGMwODEuLmQ3YTJjYmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViRWxlbWVudC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRWxlbWVudC5oCkBA
IC01NCw3ICs1NCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICBXZWJFbGVtZW50JiBv
cGVyYXRvcj0oY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+Jik7CiAgICAg
ICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpFbGVtZW50PigpIGNvbnN0Owog
I2VuZGlmCi0KICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRm9ybUVsZW1lbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViRm9ybUVsZW1lbnQuaAppbmRleCA2OTNhMWU5Li4yN2ExZWRiIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZvcm1FbGVtZW50LmgKKysrIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJGb3JtRWxlbWVudC5oCkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5l
IFdlYkZvcm1FbGVtZW50X2gKIAogI2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKKyNpbmNsdWRlICJX
ZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIKIAogI2lmIFdFQktJVF9J
TVBMRU1FTlRBVElPTgpAQCAtNTgsMTAgKzU5LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAg
ICAgICBvcGVyYXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50Pigp
IGNvbnN0OwogI2VuZGlmCiAKLSAgICAgICAgYm9vbCBhdXRvQ29tcGxldGUoKSBjb25zdDsKLSAg
ICAgICAgV2ViU3RyaW5nIGFjdGlvbigpOwotICAgICAgICB2b2lkIHN1Ym1pdCgpOwotICAgICAg
ICB2b2lkIGdldE5hbWVkRWxlbWVudHMoY29uc3QgV2ViU3RyaW5nJiwgV2ViVmVjdG9yPFdlYk5v
ZGU+Jik7CisgICAgICAgIFdFQktJVF9BUEkgYm9vbCBhdXRvQ29tcGxldGUoKSBjb25zdDsKKyAg
ICAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgYWN0aW9uKCkgY29uc3Q7CisgICAgICAgIFdFQktJ
VF9BUEkgV2ViU3RyaW5nIG5hbWUoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0FQSSBXZWJTdHJp
bmcgbWV0aG9kKCkgY29uc3Q7CisgICAgICAgIFdFQktJVF9BUEkgdm9pZCBzdWJtaXQoKTsKKyAg
ICAgICAgLy8gRklYTUU6IERlcHJlY2F0ZSBhbmQgcmVwbGFjZSB3aXRoIFdlYlZlY3RvcjxXZWJF
bGVtZW50Pi4KKyAgICAgICAgV0VCS0lUX0FQSSB2b2lkIGdldE5hbWVkRWxlbWVudHMoY29uc3Qg
V2ViU3RyaW5nJiwgV2ViVmVjdG9yPFdlYk5vZGU+Jik7CisgICAgICAgIFdFQktJVF9BUEkgdm9p
ZCBnZXRJbnB1dEVsZW1lbnRzKFdlYlZlY3RvcjxXZWJJbnB1dEVsZW1lbnQ+JikgY29uc3Q7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklucHV0RWxlbWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJ
bnB1dEVsZW1lbnQuaAppbmRleCA1ZDg2YTM5Li43NWU0NGI5IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklucHV0RWxlbWVudC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViSW5wdXRFbGVtZW50LmgKQEAgLTU1LDEyICs1NSw0OCBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKICAgICAgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ+KCkgY29uc3Q7CiAjZW5kaWYKIAotICAgICAgICB2b2lkIHNldEFjdGl2YXRlZFN1
Ym1pdChib29sKTsKLSAgICAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBXZWJTdHJpbmcmIHZhbHVl
KTsKLSAgICAgICAgV2ViU3RyaW5nIHZhbHVlKCk7Ci0gICAgICAgIHZvaWQgc2V0QXV0b2ZpbGxl
ZChib29sKTsKLSAgICAgICAgdm9pZCBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsK
LSAgICAgICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShzaXplX3QsIHNpemVfdCk7CisgICAgICAg
IGVudW0gSW5wdXRUeXBlIHsKKyAgICAgICAgICAgIFRleHQgPSAwLAorICAgICAgICAgICAgUGFz
c3dvcmQsCisgICAgICAgICAgICBJc0luZGV4LAorICAgICAgICAgICAgQ2hlY2tCb3gsCisgICAg
ICAgICAgICBSYWRpbywKKyAgICAgICAgICAgIFN1Ym1pdCwKKyAgICAgICAgICAgIFJlc2V0LAor
ICAgICAgICAgICAgRmlsZSwKKyAgICAgICAgICAgIEhpZGRlbiwKKyAgICAgICAgICAgIEltYWdl
LAorICAgICAgICAgICAgQnV0dG9uLAorICAgICAgICAgICAgU2VhcmNoLAorICAgICAgICAgICAg
UmFuZ2UsCisgICAgICAgICAgICBFbWFpbCwKKyAgICAgICAgICAgIE51bWJlciwKKyAgICAgICAg
ICAgIFRlbGVwaG9uZSwKKyAgICAgICAgICAgIFVSTCwKKyAgICAgICAgICAgIENvbG9yLAorICAg
ICAgICAgICAgRGF0ZSwKKyAgICAgICAgICAgIERhdGVUaW1lLAorICAgICAgICAgICAgRGF0ZVRp
bWVMb2NhbCwKKyAgICAgICAgICAgIE1vbnRoLAorICAgICAgICAgICAgVGltZSwKKyAgICAgICAg
ICAgIFdlZWsKKyAgICAgICAgfTsKKyAgICAgICAgCisgICAgICAgIFdFQktJVF9BUEkgYm9vbCBp
c0VuYWJsZWRGb3JtQ29udHJvbCgpIGNvbnN0OworICAgICAgICBXRUJLSVRfQVBJIElucHV0VHlw
ZSBpbnB1dFR5cGUoKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3Q7CisgICAgICAgIFdFQktJVF9BUEkgdm9pZCBzZXRBY3RpdmF0ZWRT
dWJtaXQoYm9vbCk7CisgICAgICAgIFdFQktJVF9BUEkgdm9pZCBzZXRWYWx1ZShjb25zdCBXZWJT
dHJpbmcmIHZhbHVlKTsKKyAgICAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgdmFsdWUoKSBjb25z
dDsKKyAgICAgICAgV0VCS0lUX0FQSSB2b2lkIHNldEF1dG9maWxsZWQoYm9vbCk7CisgICAgICAg
IFdFQktJVF9BUEkgdm9pZCBkaXNwYXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKKyAgICAg
ICAgV0VCS0lUX0FQSSB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCwgaW50KTsKKyAgICAgICAg
V0VCS0lUX0FQSSBXZWJTdHJpbmcgbmFtZSgpIGNvbnN0OworICAgICAgICAvLyBSZXR1cm5zIHRo
ZSBuYW1lIHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBzcGVjaWZpZWQgfGVsZW1lbnR8IHdo
ZW4KKyAgICAgICAgLy8gc3RvcmluZyBhdXRvZmlsbCBkYXRhLiAgVGhpcyBpcyBlaXRoZXIgdGhl
IGZpZWxkIG5hbWUgb3IgaXRzIGlkLCBhbiBlbXB0eQorICAgICAgICAvLyBzdHJpbmcgaWYgaXQg
aGFzIG5vIG5hbWUgYW5kIG5vIGlkLgorICAgICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBuYW1l
Rm9yQXV0b2ZpbGwoKSBjb25zdDsKKyAgICAgICAgCiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRl
eCBkYWU4YjdhLi40M2U2YjNhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2Vy
dE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hp
bmdFbnVtcy5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZUhvc3QuaCIKICNpbmNsdWRlICJFZGl0
b3JJbnNlcnRBY3Rpb24uaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKICNp
bmNsdWRlICJQYXN0ZWJvYXJkUHJpdmF0ZS5oIgpAQCAtNDYsNiArNDcsNyBAQAogI2luY2x1ZGUg
IldlYkNsaXBib2FyZC5oIgogI2luY2x1ZGUgIldlYkN1cnNvckluZm8uaCIKICNpbmNsdWRlICJX
ZWJFZGl0aW5nQWN0aW9uLmgiCisjaW5jbHVkZSAiV2ViSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiV2ViTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIu
aCIKICNpbmNsdWRlICJXZWJUZXh0QWZmaW5pdHkuaCIKQEAgLTIxNSw2ICsyMTcsMzEgQEAgQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJFZGl0aW5nQWN0aW9uVHlwZWQsIEVkaXRvcklu
c2VydEFjdGlvblR5cGVkKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViRWRpdGlu
Z0FjdGlvblBhc3RlZCwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVkKTsKIENPTVBJTEVfQVNTRVJU
X01BVENISU5HX0VOVU0oV2ViRWRpdGluZ0FjdGlvbkRyb3BwZWQsIEVkaXRvckluc2VydEFjdGlv
bkRyb3BwZWQpOwogCitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklucHV0RWxlbWVu
dDo6VGV4dCwgSFRNTElucHV0RWxlbWVudDo6VEVYVCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElO
R19FTlVNKFdlYklucHV0RWxlbWVudDo6UGFzc3dvcmQsIEhUTUxJbnB1dEVsZW1lbnQ6OlBBU1NX
T1JEKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpJc0lu
ZGV4LCBIVE1MSW5wdXRFbGVtZW50OjpJU0lOREVYKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViSW5wdXRFbGVtZW50OjpDaGVja0JveCwgSFRNTElucHV0RWxlbWVudDo6Q0hFQ0tC
T1gpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OlJhZGlv
LCBIVE1MSW5wdXRFbGVtZW50OjpSQURJTyk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdlYklucHV0RWxlbWVudDo6U3VibWl0LCBIVE1MSW5wdXRFbGVtZW50OjpTVUJNSVQpOworQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OlJlc2V0LCBIVE1MSW5w
dXRFbGVtZW50OjpSRVNFVCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklucHV0
RWxlbWVudDo6RmlsZSwgSFRNTElucHV0RWxlbWVudDo6RklMRSk7CitDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYklucHV0RWxlbWVudDo6SGlkZGVuLCBIVE1MSW5wdXRFbGVtZW50OjpI
SURERU4pOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6Oklt
YWdlLCBIVE1MSW5wdXRFbGVtZW50OjpJTUFHRSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYklucHV0RWxlbWVudDo6QnV0dG9uLCBIVE1MSW5wdXRFbGVtZW50OjpCVVRUT04pOwor
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OlNlYXJjaCwgSFRN
TElucHV0RWxlbWVudDo6U0VBUkNIKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
SW5wdXRFbGVtZW50OjpSYW5nZSwgSFRNTElucHV0RWxlbWVudDo6UkFOR0UpOworQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OkVtYWlsLCBIVE1MSW5wdXRFbGVt
ZW50OjpFTUFJTCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklucHV0RWxlbWVu
dDo6TnVtYmVyLCBIVE1MSW5wdXRFbGVtZW50OjpOVU1CRVIpOworQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OlRlbGVwaG9uZSwgSFRNTElucHV0RWxlbWVudDo6
VEVMRVBIT05FKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50
OjpVUkwsIEhUTUxJbnB1dEVsZW1lbnQ6OlVSTCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYklucHV0RWxlbWVudDo6Q29sb3IsIEhUTUxJbnB1dEVsZW1lbnQ6OkNPTE9SKTsKK0NP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpEYXRlLCBIVE1MSW5w
dXRFbGVtZW50OjpEQVRFKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRF
bGVtZW50OjpEYXRlVGltZSwgSFRNTElucHV0RWxlbWVudDo6REFURVRJTUUpOworQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OkRhdGVUaW1lTG9jYWwsIEhUTUxJ
bnB1dEVsZW1lbnQ6OkRBVEVUSU1FTE9DQUwpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJJbnB1dEVsZW1lbnQ6Ok1vbnRoLCBIVE1MSW5wdXRFbGVtZW50OjpNT05USCk7CitDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklucHV0RWxlbWVudDo6VGltZSwgSFRNTElucHV0
RWxlbWVudDo6VElNRSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklucHV0RWxl
bWVudDo6V2VlaywgSFRNTElucHV0RWxlbWVudDo6V0VFSyk7CisKICNpZiBFTkFCTEUoVklERU8p
CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1lZGlhUGxheWVyOjpFbXB0eSwgTWVk
aWFQbGF5ZXI6OkVtcHR5KTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVkaWFQ
bGF5ZXI6OklkbGUsIE1lZGlhUGxheWVyOjpJZGxlKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvRE9NVXRpbGl0aWVzUHJpdmF0ZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0RP
TVV0aWxpdGllc1ByaXZhdGUuY3BwCmluZGV4IGU4NGQ0ZmIuLmZmZGQ4NWQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvRE9NVXRpbGl0aWVzUHJpdmF0ZS5jcHAKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9ET01VdGlsaXRpZXNQcml2YXRlLmNwcApAQCAtMzksNiArMzksOCBAQAog
I2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogCisjaW5j
bHVkZSAiV2ViSW5wdXRFbGVtZW50LmgiCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBu
YW1lc3BhY2UgewpAQCAtNzksMTcgKzgxLDcgQEAgSFRNTE9wdGlvbkVsZW1lbnQqIHRvSFRNTE9w
dGlvbkVsZW1lbnQoTm9kZSogbm9kZSkKIAogU3RyaW5nIG5hbWVPZklucHV0RWxlbWVudChIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50KQogewotICAgIFN0cmluZyBuYW1lID0gZWxlbWVudC0+bmFt
ZSgpOwotICAgIFN0cmluZyB0cmltbWVkTmFtZSA9IG5hbWUuc3RyaXBXaGl0ZVNwYWNlKCk7Ci0g
ICAgaWYgKCF0cmltbWVkTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiB0cmltbWVkTmFt
ZTsKLQotICAgIG5hbWUgPSBlbGVtZW50LT5nZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjppZEF0dHIp
OwotICAgIHRyaW1tZWROYW1lID0gbmFtZS5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICBpZiAoIXRy
aW1tZWROYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIHRyaW1tZWROYW1lOwotCi0gICAg
cmV0dXJuIFN0cmluZygpOworICAgIHJldHVybiBXZWJJbnB1dEVsZW1lbnQoZWxlbWVudCkubmFt
ZUZvckF1dG9maWxsKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9ET01VdGlsaXRpZXNQcml2YXRlLmggYi9XZWJLaXQvY2hyb21p
dW0vc3JjL0RPTVV0aWxpdGllc1ByaXZhdGUuaAppbmRleCBjNzAxZDBhLi5jMDJiZjg0IDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0RPTVV0aWxpdGllc1ByaXZhdGUuaAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL0RPTVV0aWxpdGllc1ByaXZhdGUuaApAQCAtNTAsOSArNTAsNyBA
QCBXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQqIHRvSFRNTExpbmtFbGVtZW50KFdlYkNvcmU6Ok5v
ZGUqKTsKIFdlYkNvcmU6OkhUTUxNZXRhRWxlbWVudCogdG9IVE1MTWV0YUVsZW1lbnQoV2ViQ29y
ZTo6Tm9kZSopOwogV2ViQ29yZTo6SFRNTE9wdGlvbkVsZW1lbnQqIHRvSFRNTE9wdGlvbkVsZW1l
bnQoV2ViQ29yZTo6Tm9kZSopOwogCi0vLyBSZXR1cm5zIHRoZSBuYW1lIHRoYXQgc2hvdWxkIGJl
IHVzZWQgZm9yIHRoZSBzcGVjaWZpZWQgfGVsZW1lbnR8IHdoZW4KLS8vIHN0b3JpbmcgYXV0b2Zp
bGwgZGF0YS4gIFRoaXMgaXMgZWl0aGVyIHRoZSBmaWVsZCBuYW1lIG9yIGl0cyBpZCwgYW4gZW1w
dHkKLS8vIHN0cmluZyBpZiBpdCBoYXMgbm8gbmFtZSBhbmQgbm8gaWQuCisvLyBGSVhNRTogRGVw
cmVjYXRlLiBVc2UgV2ViSW5wdXRFbGVtZW50OjpuYW1lRm9yQXV0b2ZpbGwgaW5zdGVhZC4KIFdl
YkNvcmU6OlN0cmluZyBuYW1lT2ZJbnB1dEVsZW1lbnQoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dCopOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuY3BwCmluZGV4IGQ4NGNlMTIuLjVkYjhmZjcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIldlYkVk
aXRpbmdBY3Rpb24uaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJL
aXQuaCIKKyNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJOb2RlLmgi
CiAjaW5jbHVkZSAiV2ViUGFzc3dvcmRBdXRvY29tcGxldGVMaXN0ZW5lci5oIgogI2luY2x1ZGUg
IldlYlJhbmdlLmgiCkBAIC03MDYsNyArNzA3LDcgQEAgYm9vbCBFZGl0b3JDbGllbnRJbXBsOjph
dXRvZmlsbChIVE1MSW5wdXRFbGVtZW50KiBpbnB1dEVsZW1lbnQsCiAgICAgICAgIHx8ICFpbnB1
dEVsZW1lbnQtPmF1dG9Db21wbGV0ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBX
ZWJTdHJpbmcgbmFtZSA9IFdlYktpdDo6bmFtZU9mSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCk7
CisgICAgV2ViU3RyaW5nIG5hbWUgPSBXZWJJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KS5uYW1l
Rm9yQXV0b2ZpbGwoKTsKICAgICBpZiAobmFtZS5pc0VtcHR5KCkpIC8vIElmIHRoZSBmaWVsZCBo
YXMgbm8gbmFtZSwgdGhlbiB3ZSB3b24ndCBoYXZlIHZhbHVlcy4KICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCkBAIC03NjksNyArNzcwLDcgQEAgdm9pZCBFZGl0b3JDbGllbnRJbXBsOjpkb0F1dG9m
aWxsKFRpbWVyPEVkaXRvckNsaWVudEltcGw+KiB0aW1lcikKICAgICB9CiAKICAgICAvLyBUaGVu
IHRyaWdnZXIgZm9ybSBhdXRvZmlsbC4KLSAgICBXZWJTdHJpbmcgbmFtZSA9IFdlYktpdDo6bmFt
ZU9mSW5wdXRFbGVtZW50KGlucHV0RWxlbWVudCk7CisgICAgV2ViU3RyaW5nIG5hbWUgPSBXZWJJ
bnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KS5uYW1lRm9yQXV0b2ZpbGwoKTsKICAgICBBU1NFUlQo
c3RhdGljX2Nhc3Q8aW50PihuYW1lLmxlbmd0aCgpKSA+IDApOwogCiAgICAgaWYgKG1fd2ViVmll
dy0+Y2xpZW50KCkpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZvcm1FbGVt
ZW50LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRm9ybUVsZW1lbnQuY3BwCmluZGV4IGZl
Y2QwNWMuLmZhYmJkMWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRm9ybUVs
ZW1lbnQuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRm9ybUVsZW1lbnQuY3BwCkBA
IC0zMSw3ICszMSwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkZvcm1F
bGVtZW50LmgiCiAKKyNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTEZvcm1FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldl
YlVSTC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC02NCwxMSArNjcsMjEgQEAg
Ym9vbCBXZWJGb3JtRWxlbWVudDo6YXV0b0NvbXBsZXRlKCkgY29uc3QKICAgICByZXR1cm4gY29u
c3RVbndyYXA8SFRNTEZvcm1FbGVtZW50PigpLT5hdXRvQ29tcGxldGUoKTsKIH0KIAotV2ViU3Ry
aW5nIFdlYkZvcm1FbGVtZW50OjphY3Rpb24oKQorV2ViU3RyaW5nIFdlYkZvcm1FbGVtZW50Ojph
Y3Rpb24oKSBjb25zdCAKIHsKLSAgICByZXR1cm4gdW53cmFwPEhUTUxGb3JtRWxlbWVudD4oKS0+
YWN0aW9uKCk7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhUTUxGb3JtRWxlbWVudD4oKS0+YWN0
aW9uKCk7CiB9CiAKK1dlYlN0cmluZyBXZWJGb3JtRWxlbWVudDo6bmFtZSgpIGNvbnN0IAorewor
ICAgIHJldHVybiBjb25zdFVud3JhcDxIVE1MRm9ybUVsZW1lbnQ+KCktPm5hbWUoKTsKK30KKwor
V2ViU3RyaW5nIFdlYkZvcm1FbGVtZW50OjptZXRob2QoKSBjb25zdCAKK3sKKyAgICByZXR1cm4g
Y29uc3RVbndyYXA8SFRNTEZvcm1FbGVtZW50PigpLT5tZXRob2QoKTsKK30KKyAgICAKIHZvaWQg
V2ViRm9ybUVsZW1lbnQ6OnN1Ym1pdCgpCiB7CiAgICAgdW53cmFwPEhUTUxGb3JtRWxlbWVudD4o
KS0+c3VibWl0KCk7CkBAIC03Nyw5ICs5MCwyMSBAQCB2b2lkIFdlYkZvcm1FbGVtZW50OjpzdWJt
aXQoKQogdm9pZCBXZWJGb3JtRWxlbWVudDo6Z2V0TmFtZWRFbGVtZW50cyhjb25zdCBXZWJTdHJp
bmcmIG5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlZlY3Rv
cjxXZWJOb2RlPiYgcmVzdWx0KQogewotICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiB0ZW1wX3Zl
Y3RvcjsKLSAgICB1bndyYXA8SFRNTEZvcm1FbGVtZW50PigpLT5nZXROYW1lZEVsZW1lbnRzKG5h
bWUsIHRlbXBfdmVjdG9yKTsKLSAgICByZXN1bHQuYXNzaWduKHRlbXBfdmVjdG9yKTsKKyAgICBW
ZWN0b3I8UmVmUHRyPE5vZGU+ID4gdGVtcFZlY3RvcjsKKyAgICB1bndyYXA8SFRNTEZvcm1FbGVt
ZW50PigpLT5nZXROYW1lZEVsZW1lbnRzKG5hbWUsIHRlbXBWZWN0b3IpOworICAgIHJlc3VsdC5h
c3NpZ24odGVtcFZlY3Rvcik7Cit9CisgICAgCit2b2lkIFdlYkZvcm1FbGVtZW50OjpnZXRJbnB1
dEVsZW1lbnRzKFdlYlZlY3RvcjxXZWJJbnB1dEVsZW1lbnQ+JiByZXN1bHQpIGNvbnN0Cit7Cisg
ICAgY29uc3QgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gY29uc3RVbndyYXA8SFRNTEZvcm1FbGVt
ZW50PigpOworICAgIFZlY3RvcjxSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gPiB0ZW1wVmVjdG9y
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZm9ybS0+Zm9ybUVsZW1lbnRzLnNpemUoKTsg
aSsrKSB7CisgICAgICAgIGlmIChmb3JtLT5mb3JtRWxlbWVudHNbaV0tPmhhc0xvY2FsTmFtZShI
VE1MTmFtZXM6OmlucHV0VGFnKSkKKyAgICAgICAgICAgIHRlbXBWZWN0b3IuYXBwZW5kKHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPigKKyAgICAgICAgICAgICAgICBmb3JtLT5mb3JtRWxl
bWVudHNbaV0pKTsKKyAgICB9CisgICAgcmVzdWx0LmFzc2lnbih0ZW1wVmVjdG9yKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklucHV0RWxlbWVudC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RWxlbWVudC5j
cHAKaW5kZXggOTQ3ZTRjYy4uMGFhOTMyNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRF
bGVtZW50LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5o
IgogCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAK
QEAgLTU1LDIzICs1NiwzNiBAQCBXZWJJbnB1dEVsZW1lbnQ6Om9wZXJhdG9yIFdURjo6UGFzc1Jl
ZlB0cjxIVE1MSW5wdXRFbGVtZW50PigpIGNvbnN0CiAgICAgcmV0dXJuIFBhc3NSZWZQdHI8SFRN
TElucHV0RWxlbWVudD4oc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG1fcHJpdmF0ZSkp
OwogfQogCitib29sIFdlYklucHV0RWxlbWVudDo6aXNFbmFibGVkRm9ybUNvbnRyb2woKSBjb25z
dAoreworICAgIHJldHVybiBjb25zdFVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5pc0VuYWJs
ZWRGb3JtQ29udHJvbCgpOworfQorCitXZWJJbnB1dEVsZW1lbnQ6OklucHV0VHlwZSBXZWJJbnB1
dEVsZW1lbnQ6OmlucHV0VHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PElu
cHV0VHlwZT4oY29uc3RVbndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+aW5wdXRUeXBlKCkpOwor
fQorCitXZWJTdHJpbmcgV2ViSW5wdXRFbGVtZW50Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAor
eworICAgIHJldHVybiBjb25zdFVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5mb3JtQ29udHJv
bFR5cGUoKTsKK30KKyAgICAKIHZvaWQgV2ViSW5wdXRFbGVtZW50OjpzZXRBY3RpdmF0ZWRTdWJt
aXQoYm9vbCBhY3RpdmF0ZWQpCiB7CiAgICAgdW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCktPnNl
dEFjdGl2YXRlZFN1Ym1pdChhY3RpdmF0ZWQpOwogfQogCi0KIHZvaWQgV2ViSW5wdXRFbGVtZW50
OjpzZXRWYWx1ZShjb25zdCBXZWJTdHJpbmcmIHZhbHVlKQogewogICAgIHVud3JhcDxIVE1MSW5w
dXRFbGVtZW50PigpLT5zZXRWYWx1ZSh2YWx1ZSk7CiB9CiAKLVdlYlN0cmluZyBXZWJJbnB1dEVs
ZW1lbnQ6OnZhbHVlKCkKK1dlYlN0cmluZyBXZWJJbnB1dEVsZW1lbnQ6OnZhbHVlKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gdW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCktPnZhbHVlKCk7CisgICAg
cmV0dXJuIGNvbnN0VW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCktPnZhbHVlKCk7CiB9CiAKLQog
dm9pZCBXZWJJbnB1dEVsZW1lbnQ6OnNldEF1dG9maWxsZWQoYm9vbCBhdXRvRmlsbGVkKQogewog
ICAgIHVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5zZXRBdXRvZmlsbGVkKGF1dG9GaWxsZWQp
OwpAQCAtODAsMTAgKzk0LDMyIEBAIHZvaWQgV2ViSW5wdXRFbGVtZW50OjpzZXRBdXRvZmlsbGVk
KGJvb2wgYXV0b0ZpbGxlZCkKIHZvaWQgV2ViSW5wdXRFbGVtZW50OjpkaXNwYXRjaEZvcm1Db250
cm9sQ2hhbmdlRXZlbnQoKQogewogICAgIHVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5kaXNw
YXRjaEZvcm1Db250cm9sQ2hhbmdlRXZlbnQoKTsKLX0gLy8gbmFtZXNwYWNlIFdlYktpdAorfQog
Ci12b2lkIFdlYklucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2Uoc2l6ZV90IHN0YXJ0LCBz
aXplX3QgZW5kKQordm9pZCBXZWJJbnB1dEVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlKGludCBz
dGFydCwgaW50IGVuZCkKIHsKICAgICB1bndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+c2V0U2Vs
ZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7CiB9CisgICAgCitXZWJTdHJpbmcgV2ViSW5wdXRFbGVt
ZW50OjpuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTElucHV0RWxl
bWVudD4oKS0+bmFtZSgpOworfQorICAgIAorV2ViU3RyaW5nIFdlYklucHV0RWxlbWVudDo6bmFt
ZUZvckF1dG9maWxsKCkgY29uc3QKK3sKKyAgICBTdHJpbmcgbmFtZSA9IGNvbnN0VW53cmFwPEhU
TUxJbnB1dEVsZW1lbnQ+KCktPm5hbWUoKTsKKyAgICBTdHJpbmcgdHJpbW1lZE5hbWUgPSBuYW1l
LnN0cmlwV2hpdGVTcGFjZSgpOworICAgIGlmICghdHJpbW1lZE5hbWUuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gdHJpbW1lZE5hbWU7CisgICAgCisgICAgbmFtZSA9IGNvbnN0VW53cmFwPEhU
TUxJbnB1dEVsZW1lbnQ+KCktPmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmlkQXR0cik7CisgICAg
dHJpbW1lZE5hbWUgPSBuYW1lLnN0cmlwV2hpdGVTcGFjZSgpOworICAgIGlmICghdHJpbW1lZE5h
bWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdHJpbW1lZE5hbWU7CisgICAgCisgICAgcmV0
dXJuIFN0cmluZygpOworfQorICAgIAorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43534</attachid>
            <date>2009-11-19 16:46:00 -0800</date>
            <delta_ts>2009-11-19 17:09:58 -0800</delta_ts>
            <desc>form_field_value</desc>
            <filename>bug-31650-20091119164559.patch</filename>
            <type>text/plain</type>
            <size>16172</size>
            <attacher name="Yaar Schnitman">yaar</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDBhYWZkMmIuLmE2ZjBiNTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQwIEBACisyMDA5LTExLTE5ICBZYWFyIFNjaG5pdG1hbiAgPHlhYXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgY2hy
b21pdW0vd2Via2l0L2dsdWUvRm9ybUZpZWxkVmFsdWVzIHVzZSB0aGUgV2ViS2l0IEFQSQorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTY1MAorCisg
ICAgICAgICogcHVibGljL1dlYkVsZW1lbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViRm9ybUVs
ZW1lbnQuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYklucHV0RWxlbWVudDo6KToKKyAgICAgICAgKiBwdWJsaWMvV2ViTm9kZS5oOgor
ICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvRE9N
VXRpbGl0aWVzUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om5hbWVPZklucHV0RWxlbWVu
dCk6CisgICAgICAgICogc3JjL0RPTVV0aWxpdGllc1ByaXZhdGUuaDoKKyAgICAgICAgKiBzcmMv
RWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6
OmF1dG9maWxsKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50SW1wbDo6ZG9BdXRvZmls
bCk6CisgICAgICAgICogc3JjL1dlYkZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRm9ybUVsZW1lbnQ6Om5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3JtRWxlbWVudDo6
bWV0aG9kKToKKyAgICAgICAgKFdlYktpdDo6V2ViRm9ybUVsZW1lbnQ6OmdldE5hbWVkRWxlbWVu
dHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJGb3JtRWxlbWVudDo6Z2V0SW5wdXRFbGVtZW50cyk6
CisgICAgICAgICogc3JjL1dlYklucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YklucHV0RWxlbWVudDo6aXNFbmFibGVkRm9ybUNvbnRyb2wpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnB1dEVsZW1lbnQ6OmlucHV0VHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxl
bWVudDo6Zm9ybUNvbnRyb2xUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFbGVtZW50
Ojp2YWx1ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6ZGlzcGF0Y2hGb3Jt
Q29udHJvbENoYW5nZUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5wdXRFbGVtZW50Ojpz
ZXRTZWxlY3Rpb25SYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6bmFt
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYklucHV0RWxlbWVudDo6bmFtZUZvckF1dG9maWxsKToK
KyAgICAgICAgKiBzcmMvV2ViTm9kZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vZGU6OmZy
YW1lKToKKwogMjAwOS0xMS0xNyAgRGFyaW4gRmlzaGVyICA8ZGFyaW5AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERtaXRyeSBUaXRvdi4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViRWxlbWVudC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJF
bGVtZW50LmgKaW5kZXggYmZkYzA4MS4uZDdhMmNiZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJFbGVtZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJF
bGVtZW50LmgKQEAgLTU0LDcgKzU0LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIFdl
YkVsZW1lbnQmIG9wZXJhdG9yPShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6RWxlbWVu
dD4mKTsKICAgICAgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkVsZW1lbnQ+
KCkgY29uc3Q7CiAjZW5kaWYKLQogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGb3JtRWxlbWVudC5oIGIvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJGb3JtRWxlbWVudC5oCmluZGV4IDk5MjNiYjkuLjI3YTFlZGIg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViRm9ybUVsZW1lbnQuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZvcm1FbGVtZW50LmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNkZWZpbmUgV2ViRm9ybUVsZW1lbnRfaAogCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgor
I2luY2x1ZGUgIldlYklucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIldlYlZlY3Rvci5oIgogCiAj
aWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCkBAIC02MCw4ICs2MSwxMiBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogICAgICAgICBXRUJLSVRfQVBJIGJvb2wgYXV0b0NvbXBsZXRlKCkgY29uc3Q7CiAg
ICAgICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGFjdGlvbigpIGNvbnN0OworICAgICAgICBXRUJL
SVRfQVBJIFdlYlN0cmluZyBuYW1lKCkgY29uc3Q7CisgICAgICAgIFdFQktJVF9BUEkgV2ViU3Ry
aW5nIG1ldGhvZCgpIGNvbnN0OwogICAgICAgICBXRUJLSVRfQVBJIHZvaWQgc3VibWl0KCk7Cisg
ICAgICAgIC8vIEZJWE1FOiBEZXByZWNhdGUgYW5kIHJlcGxhY2Ugd2l0aCBXZWJWZWN0b3I8V2Vi
RWxlbWVudD4uCiAgICAgICAgIFdFQktJVF9BUEkgdm9pZCBnZXROYW1lZEVsZW1lbnRzKGNvbnN0
IFdlYlN0cmluZyYsIFdlYlZlY3RvcjxXZWJOb2RlPiYpOworICAgICAgICBXRUJLSVRfQVBJIHZv
aWQgZ2V0SW5wdXRFbGVtZW50cyhXZWJWZWN0b3I8V2ViSW5wdXRFbGVtZW50PiYpIGNvbnN0Owog
ICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJJbnB1dEVsZW1lbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
SW5wdXRFbGVtZW50LmgKaW5kZXggNWQ4NmEzOS4uNzVlNDRiOSAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYklucHV0RWxlbWVudC5oCkBAIC01NSwxMiArNTUsNDggQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAgICAgICAgIG9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50PigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICAgICAgdm9pZCBzZXRBY3RpdmF0ZWRT
dWJtaXQoYm9vbCk7Ci0gICAgICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgV2ViU3RyaW5nJiB2YWx1
ZSk7Ci0gICAgICAgIFdlYlN0cmluZyB2YWx1ZSgpOwotICAgICAgICB2b2lkIHNldEF1dG9maWxs
ZWQoYm9vbCk7Ci0gICAgICAgIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7
Ci0gICAgICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2Uoc2l6ZV90LCBzaXplX3QpOworICAgICAg
ICBlbnVtIElucHV0VHlwZSB7CisgICAgICAgICAgICBUZXh0ID0gMCwKKyAgICAgICAgICAgIFBh
c3N3b3JkLAorICAgICAgICAgICAgSXNJbmRleCwKKyAgICAgICAgICAgIENoZWNrQm94LAorICAg
ICAgICAgICAgUmFkaW8sCisgICAgICAgICAgICBTdWJtaXQsCisgICAgICAgICAgICBSZXNldCwK
KyAgICAgICAgICAgIEZpbGUsCisgICAgICAgICAgICBIaWRkZW4sCisgICAgICAgICAgICBJbWFn
ZSwKKyAgICAgICAgICAgIEJ1dHRvbiwKKyAgICAgICAgICAgIFNlYXJjaCwKKyAgICAgICAgICAg
IFJhbmdlLAorICAgICAgICAgICAgRW1haWwsCisgICAgICAgICAgICBOdW1iZXIsCisgICAgICAg
ICAgICBUZWxlcGhvbmUsCisgICAgICAgICAgICBVUkwsCisgICAgICAgICAgICBDb2xvciwKKyAg
ICAgICAgICAgIERhdGUsCisgICAgICAgICAgICBEYXRlVGltZSwKKyAgICAgICAgICAgIERhdGVU
aW1lTG9jYWwsCisgICAgICAgICAgICBNb250aCwKKyAgICAgICAgICAgIFRpbWUsCisgICAgICAg
ICAgICBXZWVrCisgICAgICAgIH07CisgICAgICAgIAorICAgICAgICBXRUJLSVRfQVBJIGJvb2wg
aXNFbmFibGVkRm9ybUNvbnRyb2woKSBjb25zdDsKKyAgICAgICAgV0VCS0lUX0FQSSBJbnB1dFR5
cGUgaW5wdXRUeXBlKCkgY29uc3Q7CisgICAgICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0OworICAgICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0QWN0aXZhdGVk
U3VibWl0KGJvb2wpOworICAgICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0VmFsdWUoY29uc3QgV2Vi
U3RyaW5nJiB2YWx1ZSk7CisgICAgICAgIFdFQktJVF9BUEkgV2ViU3RyaW5nIHZhbHVlKCkgY29u
c3Q7CisgICAgICAgIFdFQktJVF9BUEkgdm9pZCBzZXRBdXRvZmlsbGVkKGJvb2wpOworICAgICAg
ICBXRUJLSVRfQVBJIHZvaWQgZGlzcGF0Y2hGb3JtQ29udHJvbENoYW5nZUV2ZW50KCk7CisgICAg
ICAgIFdFQktJVF9BUEkgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShpbnQsIGludCk7CisgICAgICAg
IFdFQktJVF9BUEkgV2ViU3RyaW5nIG5hbWUoKSBjb25zdDsKKyAgICAgICAgLy8gUmV0dXJucyB0
aGUgbmFtZSB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciB0aGUgc3BlY2lmaWVkIHxlbGVtZW50fCB3
aGVuCisgICAgICAgIC8vIHN0b3JpbmcgYXV0b2ZpbGwgZGF0YS4gIFRoaXMgaXMgZWl0aGVyIHRo
ZSBmaWVsZCBuYW1lIG9yIGl0cyBpZCwgYW4gZW1wdHkKKyAgICAgICAgLy8gc3RyaW5nIGlmIGl0
IGhhcyBubyBuYW1lIGFuZCBubyBpZC4KKyAgICAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgbmFt
ZUZvckF1dG9maWxsKCkgY29uc3Q7CisgICAgICAgIAogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJOb2RlLmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5vZGUuaAppbmRleCBhMzEyYzlmLi4wM2FmYTkwIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYk5vZGUuaAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYk5vZGUuaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAKICAg
ICBXRUJLSVRfQVBJIFdlYk5vZGUgcGFyZW50Tm9kZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkg
V2ViU3RyaW5nIG5vZGVOYW1lKCkgY29uc3Q7Ci0gICAgV0VCS0lUX0FQSSBXZWJGcmFtZSogZnJh
bWUoKTsKKyAgICBXRUJLSVRfQVBJIFdlYkZyYW1lKiBmcmFtZSgpIGNvbnN0OwogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gVCB0b0VsZW1lbnQoKQogICAgIHsKZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCmluZGV4IGRhZThiN2EuLjQzZTZiM2EgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcApAQCAtMzYsNiArMzYs
NyBAQAogI2luY2x1ZGUgIkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKICNpbmNsdWRlICJBcHBsaWNh
dGlvbkNhY2hlSG9zdC5oIgogI2luY2x1ZGUgIkVkaXRvckluc2VydEFjdGlvbi5oIgorI2luY2x1
ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1
ZGUgIk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRQcml2YXRl
LmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiV2ViQ2xpcGJvYXJkLmgiCiAjaW5jbHVk
ZSAiV2ViQ3Vyc29ySW5mby5oIgogI2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIKKyNpbmNs
dWRlICJXZWJJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllci5oIgogI2lu
Y2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIldlYlRleHRBZmZp
bml0eS5oIgpAQCAtMjE1LDYgKzIxNywzMSBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdlYkVkaXRpbmdBY3Rpb25UeXBlZCwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQpOwogQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJFZGl0aW5nQWN0aW9uUGFzdGVkLCBFZGl0b3JJbnNl
cnRBY3Rpb25QYXN0ZWQpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJFZGl0aW5n
QWN0aW9uRHJvcHBlZCwgRWRpdG9ySW5zZXJ0QWN0aW9uRHJvcHBlZCk7CiAKK0NPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpUZXh0LCBIVE1MSW5wdXRFbGVtZW50
OjpURVhUKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpQ
YXNzd29yZCwgSFRNTElucHV0RWxlbWVudDo6UEFTU1dPUkQpOworQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OklzSW5kZXgsIEhUTUxJbnB1dEVsZW1lbnQ6OklT
SU5ERVgpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OkNo
ZWNrQm94LCBIVE1MSW5wdXRFbGVtZW50OjpDSEVDS0JPWCk7CitDT01QSUxFX0FTU0VSVF9NQVRD
SElOR19FTlVNKFdlYklucHV0RWxlbWVudDo6UmFkaW8sIEhUTUxJbnB1dEVsZW1lbnQ6OlJBRElP
KTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpTdWJtaXQs
IEhUTUxJbnB1dEVsZW1lbnQ6OlNVQk1JVCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVN
KFdlYklucHV0RWxlbWVudDo6UmVzZXQsIEhUTUxJbnB1dEVsZW1lbnQ6OlJFU0VUKTsKK0NPTVBJ
TEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpGaWxlLCBIVE1MSW5wdXRF
bGVtZW50OjpGSUxFKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVt
ZW50OjpIaWRkZW4sIEhUTUxJbnB1dEVsZW1lbnQ6OkhJRERFTik7CitDT01QSUxFX0FTU0VSVF9N
QVRDSElOR19FTlVNKFdlYklucHV0RWxlbWVudDo6SW1hZ2UsIEhUTUxJbnB1dEVsZW1lbnQ6OklN
QUdFKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpCdXR0
b24sIEhUTUxJbnB1dEVsZW1lbnQ6OkJVVFRPTik7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYklucHV0RWxlbWVudDo6U2VhcmNoLCBIVE1MSW5wdXRFbGVtZW50OjpTRUFSQ0gpOwor
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OlJhbmdlLCBIVE1M
SW5wdXRFbGVtZW50OjpSQU5HRSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklu
cHV0RWxlbWVudDo6RW1haWwsIEhUTUxJbnB1dEVsZW1lbnQ6OkVNQUlMKTsKK0NPTVBJTEVfQVNT
RVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpOdW1iZXIsIEhUTUxJbnB1dEVsZW1l
bnQ6Ok5VTUJFUik7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklucHV0RWxlbWVu
dDo6VGVsZXBob25lLCBIVE1MSW5wdXRFbGVtZW50OjpURUxFUEhPTkUpOworQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OlVSTCwgSFRNTElucHV0RWxlbWVudDo6
VVJMKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpDb2xv
ciwgSFRNTElucHV0RWxlbWVudDo6Q09MT1IpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5V
TShXZWJJbnB1dEVsZW1lbnQ6OkRhdGUsIEhUTUxJbnB1dEVsZW1lbnQ6OkRBVEUpOworQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJbnB1dEVsZW1lbnQ6OkRhdGVUaW1lLCBIVE1MSW5w
dXRFbGVtZW50OjpEQVRFVElNRSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklu
cHV0RWxlbWVudDo6RGF0ZVRpbWVMb2NhbCwgSFRNTElucHV0RWxlbWVudDo6REFURVRJTUVMT0NB
TCk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklucHV0RWxlbWVudDo6TW9udGgs
IEhUTUxJbnB1dEVsZW1lbnQ6Ok1PTlRIKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0o
V2ViSW5wdXRFbGVtZW50OjpUaW1lLCBIVE1MSW5wdXRFbGVtZW50OjpUSU1FKTsKK0NPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViSW5wdXRFbGVtZW50OjpXZWVrLCBIVE1MSW5wdXRFbGVt
ZW50OjpXRUVLKTsKKwogI2lmIEVOQUJMRShWSURFTykKIENPTVBJTEVfQVNTRVJUX01BVENISU5H
X0VOVU0oV2ViTWVkaWFQbGF5ZXI6OkVtcHR5LCBNZWRpYVBsYXllcjo6RW1wdHkpOwogQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJNZWRpYVBsYXllcjo6SWRsZSwgTWVkaWFQbGF5ZXI6
OklkbGUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9ET01VdGlsaXRpZXNQcml2
YXRlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRE9NVXRpbGl0aWVzUHJpdmF0ZS5jcHAKaW5k
ZXggZTg0ZDRmYi4uZmZkZDg1ZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9ET01V
dGlsaXRpZXNQcml2YXRlLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0RPTVV0aWxpdGll
c1ByaXZhdGUuY3BwCkBAIC0zOSw2ICszOSw4IEBACiAjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1l
bnQuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAKKyNpbmNsdWRlICJXZWJJbnB1dEVsZW1lbnQuaCIK
KwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSB7CkBAIC03OSwxNyArODEs
NyBAQCBIVE1MT3B0aW9uRWxlbWVudCogdG9IVE1MT3B0aW9uRWxlbWVudChOb2RlKiBub2RlKQog
CiBTdHJpbmcgbmFtZU9mSW5wdXRFbGVtZW50KEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7
Ci0gICAgU3RyaW5nIG5hbWUgPSBlbGVtZW50LT5uYW1lKCk7Ci0gICAgU3RyaW5nIHRyaW1tZWRO
YW1lID0gbmFtZS5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICBpZiAoIXRyaW1tZWROYW1lLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIHRyaW1tZWROYW1lOwotCi0gICAgbmFtZSA9IGVsZW1lbnQt
PmdldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmlkQXR0cik7Ci0gICAgdHJpbW1lZE5hbWUgPSBuYW1l
LnN0cmlwV2hpdGVTcGFjZSgpOwotICAgIGlmICghdHJpbW1lZE5hbWUuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm4gdHJpbW1lZE5hbWU7Ci0KLSAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgcmV0
dXJuIFdlYklucHV0RWxlbWVudChlbGVtZW50KS5uYW1lRm9yQXV0b2ZpbGwoKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0RPTVV0
aWxpdGllc1ByaXZhdGUuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRE9NVXRpbGl0aWVzUHJpdmF0
ZS5oCmluZGV4IGM3MDFkMGEuLmMwMmJmODQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvRE9NVXRpbGl0aWVzUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRE9NVXRp
bGl0aWVzUHJpdmF0ZS5oCkBAIC01MCw5ICs1MCw3IEBAIFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVu
dCogdG9IVE1MTGlua0VsZW1lbnQoV2ViQ29yZTo6Tm9kZSopOwogV2ViQ29yZTo6SFRNTE1ldGFF
bGVtZW50KiB0b0hUTUxNZXRhRWxlbWVudChXZWJDb3JlOjpOb2RlKik7CiBXZWJDb3JlOjpIVE1M
T3B0aW9uRWxlbWVudCogdG9IVE1MT3B0aW9uRWxlbWVudChXZWJDb3JlOjpOb2RlKik7CiAKLS8v
IFJldHVybnMgdGhlIG5hbWUgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgdGhlIHNwZWNpZmllZCB8
ZWxlbWVudHwgd2hlbgotLy8gc3RvcmluZyBhdXRvZmlsbCBkYXRhLiAgVGhpcyBpcyBlaXRoZXIg
dGhlIGZpZWxkIG5hbWUgb3IgaXRzIGlkLCBhbiBlbXB0eQotLy8gc3RyaW5nIGlmIGl0IGhhcyBu
byBuYW1lIGFuZCBubyBpZC4KKy8vIEZJWE1FOiBEZXByZWNhdGUuIFVzZSBXZWJJbnB1dEVsZW1l
bnQ6Om5hbWVGb3JBdXRvZmlsbCBpbnN0ZWFkLgogV2ViQ29yZTo6U3RyaW5nIG5hbWVPZklucHV0
RWxlbWVudChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Kik7CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKaW5kZXggZDg0Y2Ux
Mi4uNWRiOGZmNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBA
IC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiV2ViRWRpdGluZ0FjdGlvbi5oIgogI2luY2x1ZGUg
IldlYkZyYW1lSW1wbC5oIgogI2luY2x1ZGUgIldlYktpdC5oIgorI2luY2x1ZGUgIldlYklucHV0
RWxlbWVudC5oIgogI2luY2x1ZGUgIldlYk5vZGUuaCIKICNpbmNsdWRlICJXZWJQYXNzd29yZEF1
dG9jb21wbGV0ZUxpc3RlbmVyLmgiCiAjaW5jbHVkZSAiV2ViUmFuZ2UuaCIKQEAgLTcwNiw3ICs3
MDcsNyBAQCBib29sIEVkaXRvckNsaWVudEltcGw6OmF1dG9maWxsKEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0RWxlbWVudCwKICAgICAgICAgfHwgIWlucHV0RWxlbWVudC0+YXV0b0NvbXBsZXRlKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFdlYlN0cmluZyBuYW1lID0gV2ViS2l0Ojpu
YW1lT2ZJbnB1dEVsZW1lbnQoaW5wdXRFbGVtZW50KTsKKyAgICBXZWJTdHJpbmcgbmFtZSA9IFdl
YklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQpLm5hbWVGb3JBdXRvZmlsbCgpOwogICAgIGlmIChu
YW1lLmlzRW1wdHkoKSkgLy8gSWYgdGhlIGZpZWxkIGhhcyBubyBuYW1lLCB0aGVuIHdlIHdvbid0
IGhhdmUgdmFsdWVzLgogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTc2OSw3ICs3NzAsNyBA
QCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmRvQXV0b2ZpbGwoVGltZXI8RWRpdG9yQ2xpZW50SW1w
bD4qIHRpbWVyKQogICAgIH0KIAogICAgIC8vIFRoZW4gdHJpZ2dlciBmb3JtIGF1dG9maWxsLgot
ICAgIFdlYlN0cmluZyBuYW1lID0gV2ViS2l0OjpuYW1lT2ZJbnB1dEVsZW1lbnQoaW5wdXRFbGVt
ZW50KTsKKyAgICBXZWJTdHJpbmcgbmFtZSA9IFdlYklucHV0RWxlbWVudChpbnB1dEVsZW1lbnQp
Lm5hbWVGb3JBdXRvZmlsbCgpOwogICAgIEFTU0VSVChzdGF0aWNfY2FzdDxpbnQ+KG5hbWUubGVu
Z3RoKCkpID4gMCk7CiAKICAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRm9ybUVsZW1lbnQuY3BwIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJGb3JtRWxlbWVudC5jcHAKaW5kZXggNDdmZTc2MC4uNTQ3MTYwOCAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGb3JtRWxlbWVudC5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGb3JtRWxlbWVudC5jcHAKQEAgLTMxLDcgKzMxLDEwIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViRm9ybUVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIkhU
TUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKKyNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiV2ViVVJMLmgiCiAjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KQEAgLTY5LDYgKzcyLDE2IEBAIFdlYlN0cmluZyBXZWJGb3JtRWxlbWVudDo6
YWN0aW9uKCkgY29uc3QKICAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTEZvcm1FbGVtZW50Pigp
LT5hY3Rpb24oKTsKIH0KIAorV2ViU3RyaW5nIFdlYkZvcm1FbGVtZW50OjpuYW1lKCkgY29uc3Qg
Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhUTUxGb3JtRWxlbWVudD4oKS0+bmFtZSgpOwor
fQorCitXZWJTdHJpbmcgV2ViRm9ybUVsZW1lbnQ6Om1ldGhvZCgpIGNvbnN0IAoreworICAgIHJl
dHVybiBjb25zdFVud3JhcDxIVE1MRm9ybUVsZW1lbnQ+KCktPm1ldGhvZCgpOworfQorICAgIAog
dm9pZCBXZWJGb3JtRWxlbWVudDo6c3VibWl0KCkKIHsKICAgICB1bndyYXA8SFRNTEZvcm1FbGVt
ZW50PigpLT5zdWJtaXQoKTsKQEAgLTc3LDkgKzkwLDIxIEBAIHZvaWQgV2ViRm9ybUVsZW1lbnQ6
OnN1Ym1pdCgpCiB2b2lkIFdlYkZvcm1FbGVtZW50OjpnZXROYW1lZEVsZW1lbnRzKGNvbnN0IFdl
YlN0cmluZyYgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2Vi
VmVjdG9yPFdlYk5vZGU+JiByZXN1bHQpCiB7Ci0gICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IHRl
bXBfdmVjdG9yOwotICAgIHVud3JhcDxIVE1MRm9ybUVsZW1lbnQ+KCktPmdldE5hbWVkRWxlbWVu
dHMobmFtZSwgdGVtcF92ZWN0b3IpOwotICAgIHJlc3VsdC5hc3NpZ24odGVtcF92ZWN0b3IpOwor
ICAgIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiB0ZW1wVmVjdG9yOworICAgIHVud3JhcDxIVE1MRm9y
bUVsZW1lbnQ+KCktPmdldE5hbWVkRWxlbWVudHMobmFtZSwgdGVtcFZlY3Rvcik7CisgICAgcmVz
dWx0LmFzc2lnbih0ZW1wVmVjdG9yKTsKK30KKyAgICAKK3ZvaWQgV2ViRm9ybUVsZW1lbnQ6Omdl
dElucHV0RWxlbWVudHMoV2ViVmVjdG9yPFdlYklucHV0RWxlbWVudD4mIHJlc3VsdCkgY29uc3QK
K3sKKyAgICBjb25zdCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBjb25zdFVud3JhcDxIVE1MRm9y
bUVsZW1lbnQ+KCk7CisgICAgVmVjdG9yPFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiA+IHRlbXBW
ZWN0b3I7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmb3JtLT5mb3JtRWxlbWVudHMuc2l6
ZSgpOyBpKyspIHsKKyAgICAgICAgaWYgKGZvcm0tPmZvcm1FbGVtZW50c1tpXS0+aGFzTG9jYWxO
YW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKQorICAgICAgICAgICAgdGVtcFZlY3Rvci5hcHBlbmQo
c3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KAorICAgICAgICAgICAgICAgIGZvcm0tPmZv
cm1FbGVtZW50c1tpXSkpOworICAgIH0KKyAgICByZXN1bHQuYXNzaWduKHRlbXBWZWN0b3IpOwog
fQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSW5wdXRFbGVtZW50LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFbGVt
ZW50LmNwcAppbmRleCA5NDdlNGNjLi5kNDAzMTIwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bnB1dEVsZW1lbnQuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViSW5wdXRFbGVt
ZW50LmgiCiAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCiAjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIApAQCAtNTUsMjMgKzU2LDM2IEBAIFdlYklucHV0RWxlbWVudDo6b3BlcmF0b3IgV1RGOjpQ
YXNzUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+KCkgY29uc3QKICAgICByZXR1cm4gUGFzc1JlZlB0
cjxIVE1MSW5wdXRFbGVtZW50PihzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obV9wcml2
YXRlKSk7CiB9CiAKK2Jvb2wgV2ViSW5wdXRFbGVtZW50Ojppc0VuYWJsZWRGb3JtQ29udHJvbCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCktPmlz
RW5hYmxlZEZvcm1Db250cm9sKCk7Cit9CisKK1dlYklucHV0RWxlbWVudDo6SW5wdXRUeXBlIFdl
YklucHV0RWxlbWVudDo6aW5wdXRUeXBlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SW5wdXRUeXBlPihjb25zdFVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5pbnB1dFR5cGUo
KSk7Cit9CisKK1dlYlN0cmluZyBXZWJJbnB1dEVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGNvbnN0VW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCktPmZvcm1D
b250cm9sVHlwZSgpOworfQorICAgIAogdm9pZCBXZWJJbnB1dEVsZW1lbnQ6OnNldEFjdGl2YXRl
ZFN1Ym1pdChib29sIGFjdGl2YXRlZCkKIHsKICAgICB1bndyYXA8SFRNTElucHV0RWxlbWVudD4o
KS0+c2V0QWN0aXZhdGVkU3VibWl0KGFjdGl2YXRlZCk7CiB9CiAKLQogdm9pZCBXZWJJbnB1dEVs
ZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpCiB7CiAgICAgdW53cmFwPEhU
TUxJbnB1dEVsZW1lbnQ+KCktPnNldFZhbHVlKHZhbHVlKTsKIH0KIAotV2ViU3RyaW5nIFdlYklu
cHV0RWxlbWVudDo6dmFsdWUoKQorV2ViU3RyaW5nIFdlYklucHV0RWxlbWVudDo6dmFsdWUoKSBj
b25zdAogewotICAgIHJldHVybiB1bndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+dmFsdWUoKTsK
KyAgICByZXR1cm4gY29uc3RVbndyYXA8SFRNTElucHV0RWxlbWVudD4oKS0+dmFsdWUoKTsKIH0K
IAotCiB2b2lkIFdlYklucHV0RWxlbWVudDo6c2V0QXV0b2ZpbGxlZChib29sIGF1dG9GaWxsZWQp
CiB7CiAgICAgdW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCktPnNldEF1dG9maWxsZWQoYXV0b0Zp
bGxlZCk7CkBAIC04MCwxMCArOTQsMjkgQEAgdm9pZCBXZWJJbnB1dEVsZW1lbnQ6OnNldEF1dG9m
aWxsZWQoYm9vbCBhdXRvRmlsbGVkKQogdm9pZCBXZWJJbnB1dEVsZW1lbnQ6OmRpc3BhdGNoRm9y
bUNvbnRyb2xDaGFuZ2VFdmVudCgpCiB7CiAgICAgdW53cmFwPEhUTUxJbnB1dEVsZW1lbnQ+KCkt
PmRpc3BhdGNoRm9ybUNvbnRyb2xDaGFuZ2VFdmVudCgpOwotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
Cit9CiAKLXZvaWQgV2ViSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25SYW5nZShzaXplX3Qgc3Rh
cnQsIHNpemVfdCBlbmQpCit2b2lkIFdlYklucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uUmFuZ2Uo
aW50IHN0YXJ0LCBpbnQgZW5kKQogewogICAgIHVud3JhcDxIVE1MSW5wdXRFbGVtZW50PigpLT5z
ZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgZW5kKTsKIH0KKyAgICAKK1dlYlN0cmluZyBXZWJJbnB1
dEVsZW1lbnQ6Om5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBjb25zdFVud3JhcDxIVE1MSW5w
dXRFbGVtZW50PigpLT5uYW1lKCk7Cit9CisgICAgCitXZWJTdHJpbmcgV2ViSW5wdXRFbGVtZW50
OjpuYW1lRm9yQXV0b2ZpbGwoKSBjb25zdAoreworICAgIFN0cmluZyBuYW1lID0gY29uc3RVbndy
YXA8SFRNTElucHV0RWxlbWVudD4oKS0+bmFtZSgpOworICAgIFN0cmluZyB0cmltbWVkTmFtZSA9
IG5hbWUuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgaWYgKCF0cmltbWVkTmFtZS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiB0cmltbWVkTmFtZTsKKyAgICBuYW1lID0gY29uc3RVbndyYXA8SFRN
TElucHV0RWxlbWVudD4oKS0+Z2V0QXR0cmlidXRlKEhUTUxOYW1lczo6aWRBdHRyKTsKKyAgICB0
cmltbWVkTmFtZSA9IG5hbWUuc3RyaXBXaGl0ZVNwYWNlKCk7CisgICAgaWYgKCF0cmltbWVkTmFt
ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB0cmltbWVkTmFtZTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJOb2RlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTm9kZS5jcHAK
aW5kZXggMDdlYzliNi4uOTY1YzQxMiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJOb2RlLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYk5vZGUuY3BwCkBAIC05NSw3
ICs5NSw3IEBAIHZvaWQgV2ViTm9kZTo6YXNzaWduKFdlYk5vZGVQcml2YXRlKiBwKQogICAgIG1f
cHJpdmF0ZSA9IHA7CiB9CiAKLVdlYkZyYW1lKiBXZWJOb2RlOjpmcmFtZSgpCitXZWJGcmFtZSog
V2ViTm9kZTo6ZnJhbWUoKSBjb25zdAogewogICAgIHJldHVybiBXZWJGcmFtZUltcGw6OmZyb21G
cmFtZShtX3ByaXZhdGUtPmRvY3VtZW50KCktPmZyYW1lKCkpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>