<?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>47676</bug_id>
          
          <creation_ts>2010-10-14 10:12:05 -0700</creation_ts>
          <short_desc>Missing support for document.createTouch and document.createTouchList</short_desc>
          <delta_ts>2010-10-19 05:53:26 -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>WebCore Misc.</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Murdoch">benm</reporter>
          <assigned_to name="Ben Murdoch">benm</assigned_to>
          <cc>abarth</cc>
    
    <cc>andreip</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>gmak</cc>
    
    <cc>hausmann</cc>
    
    <cc>steveblock</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>294167</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-10-14 10:12:05 -0700</bug_when>
    <thetext>The Document object is missing support for the createTouch and createTouchList APIs, as defined here: http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/DocumentAdditionsReference/DocumentAdditions/DocumentAdditions.html

Many sites (including New York Times) use these APIs (especially createTouch) to determine if the browser has support for touch events.

Patch and layout test to follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294786</commentid>
    <comment_count>1</comment_count>
      <attachid>70877</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-10-15 09:40:07 -0700</bug_when>
    <thetext>Created attachment 70877
Patch and layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>294814</commentid>
    <comment_count>2</comment_count>
      <attachid>70877</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-10-15 10:57:16 -0700</bug_when>
    <thetext>Comment on attachment 70877
Patch and layout tests.

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

&gt; WebCore/dom/Document.cpp:4775
&gt; +    Frame* frame = window ? window-&gt;frame() : this-&gt;frame();

Why &apos;this&apos;?

&gt; WebCore/dom/Document.idl:326
&gt; +                                       in Node target,

Shouldn&apos;t this be of type EventTarget?

&gt; WebCore/dom/Document.idl:332
&gt; +            raises (DOMException);

Should perhaps be on the line above?

&gt; WebCore/dom/Document.idl:334
&gt; +            raises (DOMException);

Can be on one line?

&gt; LayoutTests/fast/events/touch/script-tests/document-create-touch.js:12
&gt; +var touch = document.createTouch(window, target, 1, 100, 101, 102, 103);

When should the method throw an exception? Can you add some test cases for this? We should also be sure to test passing the wrong argument types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295228</commentid>
    <comment_count>3</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-10-17 10:07:03 -0700</bug_when>
    <thetext>&gt; &gt; WebCore/dom/Document.cpp:4775
&gt; &gt; +    Frame* frame = window ? window-&gt;frame() : this-&gt;frame();
&gt; 
&gt; Why &apos;this&apos;?
&gt; 

The compiler didn&apos;t like using a local that had the same name as a member function, and &apos;this&apos; resolved the ambiguity. I did think about changing the name of the local first, but frame seemed most suitable. However I can use a different name if you&apos;d prefer that over using &apos;this&apos;.

&gt; &gt; WebCore/dom/Document.idl:326
&gt; &gt; +                                       in Node target,
&gt; 
&gt; Shouldn&apos;t this be of type EventTarget?
&gt; 

Yes, you&apos;re right. I&apos;ll correct that and send a new patch.

&gt; &gt; WebCore/dom/Document.idl:332
&gt; &gt; +            raises (DOMException);
&gt; 
&gt; Should perhaps be on the line above?
&gt; 
&gt; &gt; WebCore/dom/Document.idl:334
&gt; &gt; +            raises (DOMException);
&gt; 
&gt; Can be on one line?

Judging by the style of the rest of the file, raises(...) seems to always go on the next line indented by 4 spaces.

&gt; 
&gt; &gt; LayoutTests/fast/events/touch/script-tests/document-create-touch.js:12
&gt; &gt; +var touch = document.createTouch(window, target, 1, 100, 101, 102, 103);
&gt; 
&gt; When should the method throw an exception? Can you add some test cases for this? We should also be sure to test passing the wrong argument types.

The documentation doesn&apos;t mention when the methods would throw. I tried a few things on the iPod Touch, but couldn&apos;t get it to throw. I can add an extra test to pass incorrect argument types, but I think that type checking is taken care of by the generated portion of the bindings so I would&apos;ve thought it was already quite well tested?

Thanks, Ben</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295493</commentid>
    <comment_count>4</comment_count>
      <attachid>71035</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-10-18 07:41:10 -0700</bug_when>
    <thetext>Created attachment 71035
Patch and layout tests v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>295496</commentid>
    <comment_count>5</comment_count>
      <attachid>71035</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-10-18 07:53:52 -0700</bug_when>
    <thetext>Comment on attachment 71035
Patch and layout tests v2

Looks good to me. Simon, do you have any comments before this is submitted?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296102</commentid>
    <comment_count>6</comment_count>
      <attachid>71035</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-10-19 04:17:13 -0700</bug_when>
    <thetext>Comment on attachment 71035
Patch and layout tests v2

I think we can submit now, given that we have https://bugs.webkit.org/show_bug.cgi?id=47819 to track any changes required to get the required exception behaviour.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296110</commentid>
    <comment_count>7</comment_count>
      <attachid>71035</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-19 04:50:14 -0700</bug_when>
    <thetext>Comment on attachment 71035
Patch and layout tests v2

Clearing flags on attachment: 71035

Committed r70047: &lt;http://trac.webkit.org/changeset/70047&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296111</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-19 04:50:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296123</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-10-19 05:26:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70047 might have broken Qt Linux Release
The following tests are not passing:
fast/dom/Window/window-properties.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296124</commentid>
    <comment_count>10</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-10-19 05:29:19 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; http://trac.webkit.org/changeset/70047 might have broken Qt Linux Release
&gt; The following tests are not passing:
&gt; fast/dom/Window/window-properties.html

Oops, forgot the update to the expected output. Patch on the way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>296136</commentid>
    <comment_count>11</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-10-19 05:53:26 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/70052 should take care of it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>70877</attachid>
            <date>2010-10-15 09:40:07 -0700</date>
            <delta_ts>2010-10-18 07:41:10 -0700</delta_ts>
            <desc>Patch and layout tests.</desc>
            <filename>47676.txt</filename>
            <type>text/plain</type>
            <size>19992</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTg1MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMTAtMTUgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pc3Np
bmcgc3VwcG9ydCBmb3IgZG9jdW1lbnQuY3JlYXRlVG91Y2ggYW5kIGRvY3VtZW50LmNyZWF0ZVRv
dWNoTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDc2NzYKKworICAgICAgICBUaGVzZSBBUElzIGFyZSB1c2VkIGJ5IG1hbnkgc2l0ZXMgdG8gZGV0
ZWN0IHN1cHBvcnQgZm9yIHRvdWNoIGV2ZW50cy4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIEFQ
SXMgYWNjb3JkaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9uIGF0OgorICAgICAgICBodHRwOi8vZGV2
ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L3NhZmFyaS8jZG9jdW1lbnRhdGlvbi9Vc2VyRXhwZXJp
ZW5jZS9SZWZlcmVuY2UvRG9jdW1lbnRBZGRpdGlvbnNSZWZlcmVuY2UvRG9jdW1lbnRBZGRpdGlv
bnMvRG9jdW1lbnRBZGRpdGlvbnMuaHRtbAorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy90
b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2guaHRtbAorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDogQWRkIG5ldyBmaWxlcyB0byBsaXN0Lgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVG91Y2hDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVG91
Y2hMaXN0Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVh
dGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZVRvdWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVUb3VjaExpc3Qp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6
IEFkZCBjcmVhdGVUb3VjaCBhbmQgY3JlYXRlVG91Y2hMaXN0IGZ1bmN0aW9ucy4KKyAgICAgICAg
KiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOiBVcGRhdGUgbWFrZWZpbGVzLgorICAgICAgICAqIENN
YWtlTGlzdHMudHh0OiBEaXR0by4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnBybzogRGl0
dG8uCisKKwogMjAxMC0xMC0xNSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTmlrb2xhcyBaaW1tZXJtYW5uLgpJbmRleDogV2ViQ29y
ZS9BbmRyb2lkLmpzY2JpbmRpbmdzLm1rCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQW5kcm9pZC5q
c2NiaW5kaW5ncy5tawkocmV2aXNpb24gNjk3NzEpCisrKyBXZWJDb3JlL0FuZHJvaWQuanNjYmlu
ZGluZ3MubWsJKHdvcmtpbmcgY29weSkKQEAgLTE1MSw2ICsxNTEsOCBAQCBMT0NBTF9TUkNfRklM
RVMgKz0gXAogCWJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldEN1c3RvbS5jcHAgXAogCWJpbmRpbmdz
L2pzL0pTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1RleHRDdXN0
b20uY3BwIFwKKwliaW5kaW5ncy9qcy9KU1RvdWNoQ3VzdG9tLmNwcCBcCisJYmluZGluZ3MvanMv
SlNUb3VjaExpc3RDdXN0b20uY3BwIFwKIAliaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20u
Y3BwIFwKIAliaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgXAogCWJpbmRp
bmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKSW5kZXg6IFdlYkNvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gNjk3
NzEpCisrKyBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NjksNiAr
NjY5LDggQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVl
dEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcAog
ICAgIGJpbmRpbmdzL2pzL0pTVGV4dEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU1RvdWNo
Q3VzdG9tLmNwcAorICAgIGJpbmRpbmdzL2pzL0pTVG91Y2hMaXN0Q3VzdG9tLmNwcAogICAgIGJp
bmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktp
dENTU01hdHJpeEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9t
LmNwcApJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiA2OTc3MSkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUu
YW0JKHdvcmtpbmcgY29weSkKQEAgLTc5NSw2ICs3OTUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVdlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdQT0RMaXN0Q3VzdG9tLmggXAogCVdlYkNvcmUv
YmluZGluZ3MvanMvSlNTVkdQT0RUeXBlV3JhcHBlci5oIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVGV4dEN1c3RvbS5jcHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNUb3VjaEN1c3RvbS5j
cHAgXAorCVdlYkNvcmUvYmluZGluZ3MvanMvSlNUb3VjaExpc3RDdXN0b20uY3BwIFwKIAlXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAgXAogCVdlYkNvcmUvYmluZGlu
Z3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA2OTc3MSkKKysrIFdl
YkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC02NzgsNiArNjc4LDggQEAKICAg
ICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1NWR1BPRExpc3RDdXN0b20uaCcsCiAgICAgICAgICAg
ICAnYmluZGluZ3MvanMvSlNTVkdQT0RUeXBlV3JhcHBlci5oJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU1RleHRDdXN0b20uY3BwJywKKyAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1Rv
dWNoQ3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNUb3VjaExpc3RDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAn
LAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwJywKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBy
bwkocmV2aXNpb24gNjk3NzEpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkp
CkBAIC01NTEsNiArNTUxLDggQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1N0eWxlU2hl
ZXRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlzdEN1c3Rv
bS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwIFwKKyAgICAgICAg
YmluZGluZ3MvanMvSlNUb3VjaEN1c3RvbS5jcHAgXAorICAgICAgICBiaW5kaW5ncy9qcy9KU1Rv
dWNoTGlzdEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0
b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3Bw
IFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgXApJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkocmV2aXNpb24gNjk3
NzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEyNCw2ICsxMjQsOCBAQAogI2luY2x1ZGUgIkpTU3R5bGVTaGVldEN1c3Rv
bS5jcHAiCiAjaW5jbHVkZSAiSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAi
SlNUZXh0Q3VzdG9tLmNwcCIKKyNpbmNsdWRlICJKU1RvdWNoQ3VzdG9tLmNwcCIKKyNpbmNsdWRl
ICJKU1RvdWNoTGlzdEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNUcmVlV2Fsa2VyQ3VzdG9tLmNw
cCIKICNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNX
ZWJLaXRQb2ludEN1c3RvbS5jcHAiCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTVG91Y2hD
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNUb3VjaEN1c3Rv
bS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTVG91Y2hDdXN0b20u
Y3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IDIwMTAs
IFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkpTVG91Y2guaCIKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCisK
KyNpbmNsdWRlICJUb3VjaC5oIgorCit1c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0pTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRvdWNoKiB0b3VjaCkKK3sKKyAgICBpZiAo
IXRvdWNoKQorICAgICAgICByZXR1cm4ganNOdWxsKCk7CisKKyAgICByZXR1cm4gQ1JFQVRFX0RP
TV9PQkpFQ1RfV1JBUFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFRvdWNoLCB0b3VjaCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVG91Y2hMaXN0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTVG91Y2hMaXN0Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNUb3VjaExpc3RDdXN0b20uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ3IEBA
CisvKgorICogQ29weXJpZ2h0IDIwMTAsIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY3QK
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTVG91Y2hMaXN0LmgiCisK
KyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorCisjaW5jbHVkZSAiVG91Y2hMaXN0LmgiCisKK3Vz
aW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSlNWYWx1ZSB0b0pT
TmV3bHlDcmVhdGVkKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgVG91Y2hMaXN0KiB0b3VjaExpc3QpCit7CisgICAgaWYgKCF0b3VjaExpc3QpCisgICAg
ICAgIHJldHVybiBqc051bGwoKTsKKworICAgIHJldHVybiBDUkVBVEVfRE9NX09CSkVDVF9XUkFQ
UEVSKGV4ZWMsIGdsb2JhbE9iamVjdCwgVG91Y2hMaXN0LCB0b3VjaExpc3QpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiA2OTc3MSkKKysrIFdlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTYxMCw2
ICs2MTAsMTUgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250ZW50SGVhZGVyCiAgICAg
cmV0dXJuIEBpbXBsQ29udGVudEhlYWRlcjsKIH0KIAorbXkgJXVzZXNUb0pTTmV3bHlDcmVhdGVk
ID0gKAorICAgICJDREFUQVNlY3Rpb24iID0+IDEsCisgICAgIkVsZW1lbnQiID0+IDEsCisgICAg
Ik5vZGUiID0+IDEsCisgICAgIlRleHQiID0+IDEsCisgICAgIlRvdWNoIiA9PiAxLAorICAgICJU
b3VjaExpc3QiID0+IDEKKyk7CisKIHN1YiBHZW5lcmF0ZUhlYWRlcgogewogICAgIG15ICRvYmpl
Y3QgPSBzaGlmdDsKQEAgLTk0Myw3ICs5NTIsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIkaW1wbENsYXNzTmFtZSogdG8ke2ludGVyZmFj
ZU5hbWV9KEpTQzo6SlNWYWx1ZSk7XG4iKTsKICAgICAgICAgfQogICAgIH0KLSAgICBpZiAoJGlu
dGVyZmFjZU5hbWUgZXEgIk5vZGUiIG9yICRpbnRlcmZhY2VOYW1lIGVxICJFbGVtZW50IiBvciAk
aW50ZXJmYWNlTmFtZSBlcSAiVGV4dCIgb3IgJGludGVyZmFjZU5hbWUgZXEgIkNEQVRBU2VjdGlv
biIpIHsKKyAgICBpZiAoJHVzZXNUb0pTTmV3bHlDcmVhdGVkeyRpbnRlcmZhY2VOYW1lfSkgewog
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0
ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosICRpbnRlcmZhY2VOYW1lKik7
XG4iKTsKICAgICB9CiAgICAgCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA2OTc3MSkKKysrIFdl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDc2OSw0ICs0NzY5LDE3
IEBAIHZvaWQgRG9jdW1lbnQ6OmxvYWRFdmVudERlbGF5VGltZXJGaXJlZCgKICAgICAgICAgZnJh
bWUoKS0+bG9hZGVyKCktPmNoZWNrQ29tcGxldGVkKCk7CiB9CiAKKyNpZiBFTkFCTEUoVE9VQ0hf
RVZFTlRTKQorUGFzc1JlZlB0cjxUb3VjaD4gRG9jdW1lbnQ6OmNyZWF0ZVRvdWNoKERPTVdpbmRv
dyogd2luZG93LCBOb2RlKiB0YXJnZXQsIGludCBpZGVudGlmaWVyLCBpbnQgcGFnZVgsIGludCBw
YWdlWSwgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBFeGNlcHRpb25Db2RlJikgY29uc3QKK3sK
KyAgICBGcmFtZSogZnJhbWUgPSB3aW5kb3cgPyB3aW5kb3ctPmZyYW1lKCkgOiB0aGlzLT5mcmFt
ZSgpOworICAgIHJldHVybiBUb3VjaDo6Y3JlYXRlKGZyYW1lLCB0YXJnZXQsIGlkZW50aWZpZXIs
IHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSk7Cit9CisKK1Bhc3NSZWZQdHI8VG91Y2hM
aXN0PiBEb2N1bWVudDo6Y3JlYXRlVG91Y2hMaXN0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdAorewor
ICAgIHJldHVybiBUb3VjaExpc3Q6OmNyZWF0ZSgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gNjk3NzEpCisrKyBXZWJDb3JlL2RvbS9E
b2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNiArMTM2LDExIEBAIGNsYXNzIFhQYXRo
UmVzdWx0Owogc3RydWN0IERhc2hib2FyZFJlZ2lvblZhbHVlOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQorY2xhc3MgVG91Y2g7CitjbGFzcyBUb3VjaExpc3Q7CisjZW5kaWYK
KwogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKIAogY2xhc3MgRm9ybUVsZW1lbnRLZXkgewpA
QCAtMTAzMyw2ICsxMDM4LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIGRlY3JlbWVudExvYWRFdmVu
dERlbGF5Q291bnQoKTsKICAgICBib29sIGlzRGVsYXlpbmdMb2FkRXZlbnQoKSBjb25zdCB7IHJl
dHVybiBtX2xvYWRFdmVudERlbGF5Q291bnQ7IH0KIAorI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CisgICAgUGFzc1JlZlB0cjxUb3VjaD4gY3JlYXRlVG91Y2goRE9NV2luZG93KiwgTm9kZSosIGlu
dCBpZGVudGlmaWVyLCBpbnQgcGFnZVgsIGludCBwYWdlWSwgaW50IHNjcmVlblgsIGludCBzY3Jl
ZW5ZLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxUb3VjaExpc3Q+IGNy
ZWF0ZVRvdWNoTGlzdChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVk
OgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJv
b2wgaXNIVE1MLCBjb25zdCBLVVJMJiBiYXNlVVJMID0gS1VSTCgpKTsKIApJbmRleDogV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50Lmlk
bAkocmV2aXNpb24gNjk3NzEpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTMyMSw2ICszMjEsMTggQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBhdHRyaWJ1
dGUgW0RvbnRFbnVtLENvbmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxFbmFibGVkQXRSdW50aW1lXSBF
dmVudExpc3RlbmVyIG9udG91Y2htb3ZlOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtLENv
bmRpdGlvbmFsPVRPVUNIX0VWRU5UUyxFbmFibGVkQXRSdW50aW1lXSBFdmVudExpc3RlbmVyIG9u
dG91Y2hlbmQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbRG9udEVudW0sQ29uZGl0aW9uYWw9VE9VQ0hf
RVZFTlRTLEVuYWJsZWRBdFJ1bnRpbWVdIEV2ZW50TGlzdGVuZXIgb250b3VjaGNhbmNlbDsKKyNp
ZiBkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpICYmIEVOQUJMRV9UT1VDSF9FVkVOVFMKKyAg
ICAgICAgW1JldHVybnNOZXddIFRvdWNoIGNyZWF0ZVRvdWNoKGluIERPTVdpbmRvdyB3aW5kb3cs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBOb2RlIHRhcmdldCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgaWRlbnRpZmll
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgcGFnZVgs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHBhZ2VZLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBTY3JlZW5YLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5ZKQor
ICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbUmV0dXJuc05ld10g
VG91Y2hMaXN0IGNyZWF0ZVRvdWNoTGlzdCgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisjZW5kaWYKICAgICAgICAgYXR0cmlidXRlIFtEb250RW51bSwgQ29uZGl0aW9uYWw9
RlVMTFNDUkVFTl9BUEldIEV2ZW50TGlzdGVuZXIgb253ZWJraXRmdWxsc2NyZWVuY2hhbmdlOwog
I2VuZGlmCiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY5ODUwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAtMTUgIEJlbiBNdXJk
b2NoICA8YmVubUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1pc3Npbmcgc3VwcG9ydCBmb3IgZG9jdW1lbnQuY3JlYXRlVG91Y2gg
YW5kIGRvY3VtZW50LmNyZWF0ZVRvdWNoTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc2NzYKKworICAgICAgICBBZGQgdGVzdHMgdG8gdmVyaWZ5
IHRoZSBwcmVzZW5jZSBvZiB0aGUgQVBJcyBhbmQgdGhhdCB0aGV5IHdvcmsgY29ycmVjdGx5Lgor
CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3Jl
YXRlLXRvdWNoLWxpc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2guaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10
b3VjaC1saXN0LmpzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQt
dGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLmpzOiBBZGRlZC4KKwogMjAxMC0xMC0xNSAgQWxl
amFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZWJhc2VsaW5l
IHNvbWUgZmFpbGluZyB0ZXN0cyB0byB0aGUgZm9ybWVyIHJlc3VsdHMsIGFwcGFyZW50bHkKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
ZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjQgQEAKK1RoaXMgdGVzdHMgc3VwcG9ydCBmb3Ig
dGhlIGRvY3VtZW50LmNyZWF0ZVRvdWNoIEFQSS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgImNyZWF0ZVRvdWNoIiBpbiBkb2N1bWVudCBpcyB0cnVlCitQQVNTIHRvdWNo
IGlzIG5vbi1udWxsLgorUEFTUyB0b3VjaC50YXJnZXQgaXMgYm94CitQQVNTIHRvdWNoLmlkZW50
aWZpZXIgaXMgMQorUEFTUyB0b3VjaC5wYWdlWCBpcyAxMDAKK1BBU1MgdG91Y2gucGFnZVkgaXMg
MTAxCitQQVNTIHRvdWNoLnNjcmVlblggaXMgMTAyCitQQVNTIHRvdWNoLnNjcmVlblkgaXMgMTAz
CitQQVNTIGVtcHR5VG91Y2ggaXMgbm9uLW51bGwuCitQQVNTIGVtcHR5VG91Y2gudGFyZ2V0IGlz
IG51bGwKK1BBU1MgZW1wdHlUb3VjaC5pZGVudGlmaWVyIGlzIDAKK1BBU1MgZW1wdHlUb3VjaC5w
YWdlWCBpcyAwCitQQVNTIGVtcHR5VG91Y2gucGFnZVkgaXMgMAorUEFTUyBlbXB0eVRvdWNoLnNj
cmVlblggaXMgMAorUEFTUyBlbXB0eVRvdWNoLnNjcmVlblkgaXMgMAorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVh
dGUtdG91Y2gtbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdHMgc3VwcG9ydCBmb3IgdGhl
IGRvY3VtZW50LmNyZWF0ZVRvdWNoTGlzdCBBUEkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTICJjcmVhdGVUb3VjaExpc3QiIGluIGRvY3VtZW50IGlzIHRydWUKK1BBU1Mg
dG91Y2hMaXN0IGlzIG5vbi1udWxsLgorUEFTUyB0b3VjaExpc3QubGVuZ3RoIGlzIDAKK1BBU1Mg
dG91Y2hMaXN0Lml0ZW0oMCkgaXMgbnVsbAorUEFTUyB0b3VjaExpc3QuaXRlbSgxKSBpcyBudWxs
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxp
c3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1
bWVudC1jcmVhdGUtdG91Y2gtbGlzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJl
Zj0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0Pgor
PCEtLQorICBUb3VjaCB0ZXN0cyB0aGF0IGludm9sdmUgdGhlIG9udG91Y2hzdGFydCwgb250b3Vj
aG1vdmUsIG9udG91Y2hlbmQgb3Igb250b3VjaGNhbmNlbCBjYWxsYmFja3MKKyAgc2hvdWxkIGJl
IHdyaXR0ZW4gaW4gYW4gYXN5bmNocm9ub3VzIGZhc2hpb24gc28gdGhleSBjYW4gYmUgcnVuIG9u
IG1vYmlsZSBwbGF0Zm9ybXMgbGlrZSBBbmRyb2lkLgorICBUaGlzIHRlbXBsYXRlIHdpbGwgZ2Vu
ZXJhdGUgYW4gYXN5bmNocm9ub3VzIHN0eWxlIHRlc3QgYnkgdXNpbmcgdGhlIGpzLXRlc3QtcG9z
dC1mdW5jdGlvbiBzY3JpcHQuCisgIFlvdSB3aWxsIG5lZWQgdG8gaW52b2tlIGlzU3VjY2Vzc2Z1
bGx5UGFyc2VkKCkgaW4geW91ciB0ZXN0IHNjcmlwdCB3aGVuIHRoZSB0ZXN0IGNvbXBsZXRlcy4K
Ky0tPgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVh
dGUtdG91Y2gtbGlzdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2guaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUt
dG91Y2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNo
L2RvY3VtZW50LWNyZWF0ZS10b3VjaC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8IS0tCisgIFRvdWNoIHRlc3RzIHRo
YXQgaW52b2x2ZSB0aGUgb250b3VjaHN0YXJ0LCBvbnRvdWNobW92ZSwgb250b3VjaGVuZCBvciBv
bnRvdWNoY2FuY2VsIGNhbGxiYWNrcworICBzaG91bGQgYmUgd3JpdHRlbiBpbiBhbiBhc3luY2hy
b25vdXMgZmFzaGlvbiBzbyB0aGV5IGNhbiBiZSBydW4gb24gbW9iaWxlIHBsYXRmb3JtcyBsaWtl
IEFuZHJvaWQuCisgIFRoaXMgdGVtcGxhdGUgd2lsbCBnZW5lcmF0ZSBhbiBhc3luY2hyb25vdXMg
c3R5bGUgdGVzdCBieSB1c2luZyB0aGUganMtdGVzdC1wb3N0LWZ1bmN0aW9uIHNjcmlwdC4KKyAg
WW91IHdpbGwgbmVlZCB0byBpbnZva2UgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKSBpbiB5b3VyIHRl
c3Qgc2NyaXB0IHdoZW4gdGhlIHRlc3QgY29tcGxldGVzLgorLS0+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3VjaC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9z
Y3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0
ZS10b3VjaC1saXN0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvc2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LmpzCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDEyIEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzdXBwb3J0IGZv
ciB0aGUgZG9jdW1lbnQuY3JlYXRlVG91Y2hMaXN0IEFQSS4iKTsKKworc2hvdWxkQmVUcnVlKCci
Y3JlYXRlVG91Y2hMaXN0IiBpbiBkb2N1bWVudCcpOworCit2YXIgdG91Y2hMaXN0ID0gZG9jdW1l
bnQuY3JlYXRlVG91Y2hMaXN0KCk7CitzaG91bGRCZU5vbk51bGwoInRvdWNoTGlzdCIpOworc2hv
dWxkQmUoInRvdWNoTGlzdC5sZW5ndGgiLCAiMCIpOworc2hvdWxkQmVOdWxsKCJ0b3VjaExpc3Qu
aXRlbSgwKSIpOworc2hvdWxkQmVOdWxsKCJ0b3VjaExpc3QuaXRlbSgxKSIpOworCitzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVhdGUtdG91
Y2guanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0
LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3VjaC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVhdGUtdG91Y2gu
anMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3Rz
IHN1cHBvcnQgZm9yIHRoZSBkb2N1bWVudC5jcmVhdGVUb3VjaCBBUEkuIik7CisKK3Nob3VsZEJl
VHJ1ZSgnImNyZWF0ZVRvdWNoIiBpbiBkb2N1bWVudCcpOworCit2YXIgYm94ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7Citib3guaWQgPSAiYm94IjsKK2JveC5zdHlsZS53aWR0aCA9
ICIxMDBweCI7Citib3guc3R5bGUuaGVpZ2h0ID0gIjEwMHB4IjsKK2RvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoYm94KTsKKwordmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJi
b3giKTsKK3ZhciB0b3VjaCA9IGRvY3VtZW50LmNyZWF0ZVRvdWNoKHdpbmRvdywgdGFyZ2V0LCAx
LCAxMDAsIDEwMSwgMTAyLCAxMDMpOworc2hvdWxkQmVOb25OdWxsKCJ0b3VjaCIpOworc2hvdWxk
QmUoInRvdWNoLnRhcmdldCIsICJib3giKTsKK3Nob3VsZEJlKCJ0b3VjaC5pZGVudGlmaWVyIiwg
IjEiKTsKK3Nob3VsZEJlKCJ0b3VjaC5wYWdlWCIsICIxMDAiKTsKK3Nob3VsZEJlKCJ0b3VjaC5w
YWdlWSIsICIxMDEiKTsKK3Nob3VsZEJlKCJ0b3VjaC5zY3JlZW5YIiwgIjEwMiIpOworc2hvdWxk
QmUoInRvdWNoLnNjcmVlblkiLCAiMTAzIik7CisKK3ZhciBlbXB0eVRvdWNoID0gZG9jdW1lbnQu
Y3JlYXRlVG91Y2goKTsKK3Nob3VsZEJlTm9uTnVsbCgiZW1wdHlUb3VjaCIpOworc2hvdWxkQmVO
dWxsKCJlbXB0eVRvdWNoLnRhcmdldCIpOworc2hvdWxkQmUoImVtcHR5VG91Y2guaWRlbnRpZmll
ciIsICIwIik7CitzaG91bGRCZSgiZW1wdHlUb3VjaC5wYWdlWCIsICIwIik7CitzaG91bGRCZSgi
ZW1wdHlUb3VjaC5wYWdlWSIsICIwIik7CitzaG91bGRCZSgiZW1wdHlUb3VjaC5zY3JlZW5YIiwg
IjAiKTsKK3Nob3VsZEJlKCJlbXB0eVRvdWNoLnNjcmVlblkiLCAiMCIpOworCitzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71035</attachid>
            <date>2010-10-18 07:41:10 -0700</date>
            <delta_ts>2010-10-19 04:50:14 -0700</delta_ts>
            <desc>Patch and layout tests v2</desc>
            <filename>47676-1.txt</filename>
            <type>text/plain</type>
            <size>21073</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2OTk1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTAtMTAtMTUgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pc3Np
bmcgc3VwcG9ydCBmb3IgZG9jdW1lbnQuY3JlYXRlVG91Y2ggYW5kIGRvY3VtZW50LmNyZWF0ZVRv
dWNoTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDc2NzYKKworICAgICAgICBUaGVzZSBBUElzIGFyZSB1c2VkIGJ5IG1hbnkgc2l0ZXMgdG8gZGV0
ZWN0IHN1cHBvcnQgZm9yIHRvdWNoIGV2ZW50cy4KKworICAgICAgICBJbXBsZW1lbnQgdGhlIEFQ
SXMgYWNjb3JkaW5nIHRvIHRoZSBkb2N1bWVudGF0aW9uIGF0OgorICAgICAgICBodHRwOi8vZGV2
ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L3NhZmFyaS8jZG9jdW1lbnRhdGlvbi9Vc2VyRXhwZXJp
ZW5jZS9SZWZlcmVuY2UvRG9jdW1lbnRBZGRpdGlvbnNSZWZlcmVuY2UvRG9jdW1lbnRBZGRpdGlv
bnMvRG9jdW1lbnRBZGRpdGlvbnMuaHRtbAorCisgICAgICAgIFRlc3RzOiBmYXN0L2V2ZW50cy90
b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC5odG1sCisgICAgICAgICAgICAgICBmYXN0
L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2guaHRtbAorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDogQWRkIG5ldyBmaWxlcyB0byBsaXN0Lgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVG91Y2hDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnRvSlNOZXdseUNyZWF0ZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVG91
Y2hMaXN0Q3VzdG9tLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp0b0pTTmV3bHlDcmVh
dGVkKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAg
ICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNy
ZWF0ZVRvdWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVUb3VjaExpc3Qp
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5pZGw6
IEFkZCBjcmVhdGVUb3VjaCBhbmQgY3JlYXRlVG91Y2hMaXN0IGZ1bmN0aW9ucy4KKyAgICAgICAg
KiBBbmRyb2lkLmpzY2JpbmRpbmdzLm1rOiBVcGRhdGUgbWFrZWZpbGVzLgorICAgICAgICAqIENN
YWtlTGlzdHMudHh0OiBEaXR0by4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnBybzogRGl0
dG8uCisKKwogMjAxMC0xMC0xOCAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KSW5kZXg6IFdlYkNv
cmUvQW5kcm9pZC5qc2NiaW5kaW5ncy5tawo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0FuZHJvaWQu
anNjYmluZGluZ3MubWsJKHJldmlzaW9uIDY5OTU4KQorKysgV2ViQ29yZS9BbmRyb2lkLmpzY2Jp
bmRpbmdzLm1rCSh3b3JraW5nIGNvcHkpCkBAIC0xNTEsNiArMTUxLDggQEAgTE9DQUxfU1JDX0ZJ
TEVTICs9IFwKIAliaW5kaW5ncy9qcy9KU1N0eWxlU2hlZXRDdXN0b20uY3BwIFwKIAliaW5kaW5n
cy9qcy9KU1N0eWxlU2hlZXRMaXN0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNUZXh0Q3Vz
dG9tLmNwcCBcCisJYmluZGluZ3MvanMvSlNUb3VjaEN1c3RvbS5jcHAgXAorCWJpbmRpbmdzL2pz
L0pTVG91Y2hMaXN0Q3VzdG9tLmNwcCBcCiAJYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9t
LmNwcCBcCiAJYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIFwKIAliaW5k
aW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCkluZGV4OiBXZWJDb3JlL0NNYWtlTGlz
dHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDY5
OTU4KQorKysgV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjcwLDYg
KzY3MCw4IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1N0eWxlU2hl
ZXRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNTdHlsZVNoZWV0TGlzdEN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU1RleHRDdXN0b20uY3BwCisgICAgYmluZGluZ3MvanMvSlNUb3Vj
aEN1c3RvbS5jcHAKKyAgICBiaW5kaW5ncy9qcy9KU1RvdWNoTGlzdEN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJL
aXRDU1NNYXRyaXhDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3Rv
bS5jcHAKSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNjk5NTgpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxl
LmFtCSh3b3JraW5nIGNvcHkpCkBAIC03OTYsNiArNzk2LDggQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1ZHUE9ETGlzdEN1c3RvbS5oIFwKIAlXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU1ZHUE9EVHlwZVdyYXBwZXIuaCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1RleHRDdXN0b20uY3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTVG91Y2hDdXN0b20u
Y3BwIFwKKwlXZWJDb3JlL2JpbmRpbmdzL2pzL0pTVG91Y2hMaXN0Q3VzdG9tLmNwcCBcCiAJV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0b20uY3BwIFwKIAlXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCiAJV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuZ3lwaQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2aXNpb24gNjk5NTgpCisrKyBX
ZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtNjc4LDYgKzY3OCw4IEBACiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNTVkdQT0RMaXN0Q3VzdG9tLmgnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTU1ZHUE9EVHlwZVdyYXBwZXIuaCcsCiAgICAgICAgICAgICAnYmlu
ZGluZ3MvanMvSlNUZXh0Q3VzdG9tLmNwcCcsCisgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNU
b3VjaEN1c3RvbS5jcHAnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTVG91Y2hMaXN0Q3Vz
dG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3VzdG9tLmNw
cCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCcsCklu
ZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5w
cm8JKHJldmlzaW9uIDY5OTU4KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5
KQpAQCAtNTUxLDYgKzU1MSw4IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNTdHlsZVNo
ZWV0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTU3R5bGVTaGVldExpc3RDdXN0
b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNUZXh0Q3VzdG9tLmNwcCBcCisgICAgICAg
IGJpbmRpbmdzL2pzL0pTVG91Y2hDdXN0b20uY3BwIFwKKyAgICAgICAgYmluZGluZ3MvanMvSlNU
b3VjaExpc3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNUcmVlV2Fsa2VyQ3Vz
dG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNw
cCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKSW5kZXg6
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDY5
OTU4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMjQsNiArMTI0LDggQEAKICNpbmNsdWRlICJKU1N0eWxlU2hlZXRDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwIgogI2luY2x1ZGUg
IkpTVGV4dEN1c3RvbS5jcHAiCisjaW5jbHVkZSAiSlNUb3VjaEN1c3RvbS5jcHAiCisjaW5jbHVk
ZSAiSlNUb3VjaExpc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTVHJlZVdhbGtlckN1c3RvbS5j
cHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpT
V2ViS2l0UG9pbnRDdXN0b20uY3BwIgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RvdWNo
Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTVG91Y2hDdXN0
b20uY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RvdWNoQ3VzdG9t
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEw
LCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0CisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJKU1RvdWNoLmgiCisKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQor
CisjaW5jbHVkZSAiVG91Y2guaCIKKwordXNpbmcgbmFtZXNwYWNlIEpTQzsKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoRXhlY1N0YXRlKiBleGVjLCBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUb3VjaCogdG91Y2gpCit7CisgICAgaWYg
KCF0b3VjaCkKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOworCisgICAgcmV0dXJuIENSRUFURV9E
T01fT0JKRUNUX1dSQVBQRVIoZXhlYywgZ2xvYmFsT2JqZWN0LCBUb3VjaCwgdG91Y2gpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1RvdWNoTGlzdEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1RvdWNoTGlzdEN1c3RvbS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTVG91Y2hMaXN0Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NyBA
QAorLyoKKyAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1RvdWNoTGlzdC5oIgor
CisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKworI2luY2x1ZGUgIlRvdWNoTGlzdC5oIgorCit1
c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFsdWUgdG9K
U05ld2x5Q3JlYXRlZChFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRvdWNoTGlzdCogdG91Y2hMaXN0KQoreworICAgIGlmICghdG91Y2hMaXN0KQorICAg
ICAgICByZXR1cm4ganNOdWxsKCk7CisKKyAgICByZXR1cm4gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JB
UFBFUihleGVjLCBnbG9iYWxPYmplY3QsIFRvdWNoTGlzdCwgdG91Y2hMaXN0KTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gNjk5NTgpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC02MTAs
NiArNjEwLDE1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcgogICAg
IHJldHVybiBAaW1wbENvbnRlbnRIZWFkZXI7CiB9CiAKK215ICV1c2VzVG9KU05ld2x5Q3JlYXRl
ZCA9ICgKKyAgICAiQ0RBVEFTZWN0aW9uIiA9PiAxLAorICAgICJFbGVtZW50IiA9PiAxLAorICAg
ICJOb2RlIiA9PiAxLAorICAgICJUZXh0IiA9PiAxLAorICAgICJUb3VjaCIgPT4gMSwKKyAgICAi
VG91Y2hMaXN0IiA9PiAxCispOworCiBzdWIgR2VuZXJhdGVIZWFkZXIKIHsKICAgICBteSAkb2Jq
ZWN0ID0gc2hpZnQ7CkBAIC05NDMsNyArOTUyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAg
ICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiJGltcGxDbGFzc05hbWUqIHRvJHtpbnRlcmZh
Y2VOYW1lfShKU0M6OkpTVmFsdWUpO1xuIik7CiAgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKCRp
bnRlcmZhY2VOYW1lIGVxICJOb2RlIiBvciAkaW50ZXJmYWNlTmFtZSBlcSAiRWxlbWVudCIgb3Ig
JGludGVyZmFjZU5hbWUgZXEgIlRleHQiIG9yICRpbnRlcmZhY2VOYW1lIGVxICJDREFUQVNlY3Rp
b24iKSB7CisgICAgaWYgKCR1c2VzVG9KU05ld2x5Q3JlYXRlZHskaW50ZXJmYWNlTmFtZX0pIHsK
ICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIkpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVh
dGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCAkaW50ZXJmYWNlTmFtZSop
O1xuIik7CiAgICAgfQogICAgIApJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNjk5NTgpCisrKyBX
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3NjksNCArNDc2OSwy
MiBAQCB2b2lkIERvY3VtZW50Ojpsb2FkRXZlbnREZWxheVRpbWVyRmlyZWQoCiAgICAgICAgIGZy
YW1lKCktPmxvYWRlcigpLT5jaGVja0NvbXBsZXRlZCgpOwogfQogCisjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykKK1Bhc3NSZWZQdHI8VG91Y2g+IERvY3VtZW50OjpjcmVhdGVUb3VjaChET01XaW5k
b3cqIHdpbmRvdywgRXZlbnRUYXJnZXQqIHRhcmdldCwgaW50IGlkZW50aWZpZXIsIGludCBwYWdl
WCwgaW50IHBhZ2VZLCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIEV4Y2VwdGlvbkNvZGUmKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBJdCdzIG5vdCBjbGVhciBmcm9tIHRoZSBkb2N1bWVudGF0
aW9uIGF0CisgICAgLy8gaHR0cDovL2RldmVsb3Blci5hcHBsZS5jb20vbGlicmFyeS9zYWZhcmkv
I2RvY3VtZW50YXRpb24vVXNlckV4cGVyaWVuY2UvUmVmZXJlbmNlL0RvY3VtZW50QWRkaXRpb25z
UmVmZXJlbmNlL0RvY3VtZW50QWRkaXRpb25zL0RvY3VtZW50QWRkaXRpb25zLmh0bWwKKyAgICAv
LyB3aGVuIHRoaXMgbWV0aG9kIHNob3VsZCB0aHJvdyBhbmQgbm9yIGlzIGl0IGJ5IGluc3BlY3Rp
b24gb2YgaU9TIGJlaGF2aW9yLiBJdCB3b3VsZCBiZSBuaWNlIHRvIHZlcmlmeSBhbnkgY2FzZXMg
d2hlcmUgaXQgdGhyb3dzIHVuZGVyIGlPUworICAgIC8vIGFuZCBpbXBsZW1lbnQgdGhlbSBoZXJl
LiBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ3ODE5CisgICAg
Ly8gRGl0dG8gZm9yIHRoZSBjcmVhdGVUb3VjaExpc3QgbWV0aG9kIGJlbG93LgorICAgIEZyYW1l
KiBmcmFtZSA9IHdpbmRvdyA/IHdpbmRvdy0+ZnJhbWUoKSA6IHRoaXMtPmZyYW1lKCk7CisgICAg
cmV0dXJuIFRvdWNoOjpjcmVhdGUoZnJhbWUsIHRhcmdldCwgaWRlbnRpZmllciwgc2NyZWVuWCwg
c2NyZWVuWSwgcGFnZVgsIHBhZ2VZKTsKK30KKworUGFzc1JlZlB0cjxUb3VjaExpc3Q+IERvY3Vt
ZW50OjpjcmVhdGVUb3VjaExpc3QoRXhjZXB0aW9uQ29kZSYpIGNvbnN0Cit7CisgICAgcmV0dXJu
IFRvdWNoTGlzdDo6Y3JlYXRlKCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCShyZXZpc2lvbiA2OTk1OCkKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTEzNiw2ICsxMzYsMTEgQEAgY2xhc3MgWFBhdGhSZXN1bHQ7CiBz
dHJ1Y3QgRGFzaGJvYXJkUmVnaW9uVmFsdWU7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShUT1VDSF9F
VkVOVFMpCitjbGFzcyBUb3VjaDsKK2NsYXNzIFRvdWNoTGlzdDsKKyNlbmRpZgorCiB0eXBlZGVm
IGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBGb3JtRWxlbWVudEtleSB7CkBAIC0xMDMzLDYg
KzEwMzgsMTEgQEAgcHVibGljOgogICAgIHZvaWQgZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3Vu
dCgpOwogICAgIGJvb2wgaXNEZWxheWluZ0xvYWRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbG9h
ZEV2ZW50RGVsYXlDb3VudDsgfQogCisjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyAgICBQYXNz
UmVmUHRyPFRvdWNoPiBjcmVhdGVUb3VjaChET01XaW5kb3cqLCBFdmVudFRhcmdldCosIGludCBp
ZGVudGlmaWVyLCBpbnQgcGFnZVgsIGludCBwYWdlWSwgaW50IHNjcmVlblgsIGludCBzY3JlZW5Z
LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxUb3VjaExpc3Q+IGNyZWF0
ZVRvdWNoTGlzdChFeGNlcHRpb25Db2RlJikgY29uc3Q7CisjZW5kaWYKKwogcHJvdGVjdGVkOgog
ICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYgdXJsLCBib29sIGlzWEhUTUwsIGJvb2wg
aXNIVE1MLCBjb25zdCBLVVJMJiBiYXNlVVJMID0gS1VSTCgpKTsKIApJbmRleDogV2ViQ29yZS9k
b20vRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAko
cmV2aXNpb24gNjk5NTgpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTMyNCw2ICszMjQsMTkgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBhdHRyaWJ1dGUg
W0RvbnRFbnVtLCBDb25kaXRpb25hbD1GVUxMU0NSRUVOX0FQSV0gRXZlbnRMaXN0ZW5lciBvbndl
YmtpdGZ1bGxzY3JlZW5jaGFuZ2U7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoRU5BQkxFX1RPVUNI
X0VWRU5UUykgJiYgRU5BQkxFX1RPVUNIX0VWRU5UUworICAgICAgICBbUmV0dXJuc05ld10gVG91
Y2ggY3JlYXRlVG91Y2goaW4gRE9NV2luZG93IHdpbmRvdywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIEV2ZW50VGFyZ2V0IHRhcmdldCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgaWRlbnRpZmllciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGxvbmcgcGFnZVgsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIHBhZ2VZLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBTY3JlZW5YLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBzY3JlZW5ZKQorICAgICAgICAgICAgcmFp
c2VzIChET01FeGNlcHRpb24pOworICAgICAgICBbUmV0dXJuc05ld10gVG91Y2hMaXN0IGNyZWF0
ZVRvdWNoTGlzdCgpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisjZW5kaWYK
KwogI2lmIGRlZmluZWQoTEFOR1VBR0VfQ1BQKSAmJiBMQU5HVUFHRV9DUFAKICAgICAgICAgLy8g
RXh0cmEgV2ViQ29yZSBtZXRob2RzIGV4cG9zZWQgdG8gYWxsb3cgY29tcGlsZS10aW1lIGNhc3Rp
bmcgaW4gQysrCiAgICAgICAgIGJvb2xlYW4gaXNIVE1MRG9jdW1lbnQoKTsKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDY5OTU4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMTAtMTUgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pc3Np
bmcgc3VwcG9ydCBmb3IgZG9jdW1lbnQuY3JlYXRlVG91Y2ggYW5kIGRvY3VtZW50LmNyZWF0ZVRv
dWNoTGlzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDc2NzYKKworICAgICAgICBBZGQgdGVzdHMgdG8gdmVyaWZ5IHRoZSBwcmVzZW5jZSBvZiB0aGUg
QVBJcyBhbmQgdGhhdCB0aGV5IHdvcmsgY29ycmVjdGx5LgorCisgICAgICAgICogZmFzdC9ldmVu
dHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVh
dGUtdG91Y2gtbGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9k
b2N1bWVudC1jcmVhdGUtdG91Y2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMv
dG91Y2gvc2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LmpzOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtY3JlYXRl
LXRvdWNoLmpzOiBBZGRlZC4KKwogMjAxMC0xMC0xOCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3Nz
eUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gQWRkIHBsYXRmb3JtIHNwZWNpZmljIGV4cGVj
dGVkIHJlc3VsdHMgZm9yIG5ldyBwYXNzaW5nIHRlc3RzLgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91
Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
dG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwzMSBAQAorVGhpcyB0ZXN0cyBzdXBwb3J0IGZvciB0aGUgZG9jdW1lbnQuY3JlYXRl
VG91Y2ggQVBJLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyAiY3JlYXRl
VG91Y2giIGluIGRvY3VtZW50IGlzIHRydWUKK1BBU1MgdG91Y2ggaXMgbm9uLW51bGwuCitQQVNT
IHRvdWNoLnRhcmdldCBpcyBib3gKK1BBU1MgdG91Y2guaWRlbnRpZmllciBpcyAxCitQQVNTIHRv
dWNoLnBhZ2VYIGlzIDEwMAorUEFTUyB0b3VjaC5wYWdlWSBpcyAxMDEKK1BBU1MgdG91Y2guc2Ny
ZWVuWCBpcyAxMDIKK1BBU1MgdG91Y2guc2NyZWVuWSBpcyAxMDMKK1BBU1MgZW1wdHlUb3VjaCBp
cyBub24tbnVsbC4KK1BBU1MgZW1wdHlUb3VjaC50YXJnZXQgaXMgbnVsbAorUEFTUyBlbXB0eVRv
dWNoLmlkZW50aWZpZXIgaXMgMAorUEFTUyBlbXB0eVRvdWNoLnBhZ2VYIGlzIDAKK1BBU1MgZW1w
dHlUb3VjaC5wYWdlWSBpcyAwCitQQVNTIGVtcHR5VG91Y2guc2NyZWVuWCBpcyAwCitQQVNTIGVt
cHR5VG91Y2guc2NyZWVuWSBpcyAwCitQQVNTIGJhZFBhcmFtc1RvdWNoIGlzIG5vbi1udWxsLgor
UEFTUyBiYWRQYXJhbXNUb3VjaC50YXJnZXQgaXMgbnVsbAorUEFTUyBiYWRQYXJhbXNUb3VjaC5p
ZGVudGlmaWVyIGlzIDAKK1BBU1MgYmFkUGFyYW1zVG91Y2gucGFnZVggaXMgMAorUEFTUyBiYWRQ
YXJhbXNUb3VjaC5wYWdlWSBpcyAwCitQQVNTIGJhZFBhcmFtc1RvdWNoLnNjcmVlblggaXMgMAor
UEFTUyBiYWRQYXJhbXNUb3VjaC5zY3JlZW5ZIGlzIDEwNAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91
Y2gtbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gtbGlzdC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMTQgQEAKK1RoaXMgdGVzdHMgc3VwcG9ydCBmb3IgdGhlIGRvY3Vt
ZW50LmNyZWF0ZVRvdWNoTGlzdCBBUEkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTICJjcmVhdGVUb3VjaExpc3QiIGluIGRvY3VtZW50IGlzIHRydWUKK1BBU1MgdG91Y2hM
aXN0IGlzIG5vbi1udWxsLgorUEFTUyB0b3VjaExpc3QubGVuZ3RoIGlzIDAKK1BBU1MgdG91Y2hM
aXN0Lml0ZW0oMCkgaXMgbnVsbAorUEFTUyB0b3VjaExpc3QuaXRlbSgxKSBpcyBudWxsCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1j
cmVhdGUtdG91Y2gtbGlzdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMiPjwvc2NyaXB0PgorPCEtLQor
ICBUb3VjaCB0ZXN0cyB0aGF0IGludm9sdmUgdGhlIG9udG91Y2hzdGFydCwgb250b3VjaG1vdmUs
IG9udG91Y2hlbmQgb3Igb250b3VjaGNhbmNlbCBjYWxsYmFja3MKKyAgc2hvdWxkIGJlIHdyaXR0
ZW4gaW4gYW4gYXN5bmNocm9ub3VzIGZhc2hpb24gc28gdGhleSBjYW4gYmUgcnVuIG9uIG1vYmls
ZSBwbGF0Zm9ybXMgbGlrZSBBbmRyb2lkLgorICBUaGlzIHRlbXBsYXRlIHdpbGwgZ2VuZXJhdGUg
YW4gYXN5bmNocm9ub3VzIHN0eWxlIHRlc3QgYnkgdXNpbmcgdGhlIGpzLXRlc3QtcG9zdC1mdW5j
dGlvbiBzY3JpcHQuCisgIFlvdSB3aWxsIG5lZWQgdG8gaW52b2tlIGlzU3VjY2Vzc2Z1bGx5UGFy
c2VkKCkgaW4geW91ciB0ZXN0IHNjcmlwdCB3aGVuIHRoZSB0ZXN0IGNvbXBsZXRlcy4KKy0tPgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVhdGUtdG91
Y2gtbGlzdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9kb2N1bWVudC1jcmVhdGUtdG91Y2gu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2RvY3Vt
ZW50LWNyZWF0ZS10b3VjaC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8IURP
Q1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC1mdW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8IS0tCisgIFRvdWNoIHRlc3RzIHRoYXQgaW52
b2x2ZSB0aGUgb250b3VjaHN0YXJ0LCBvbnRvdWNobW92ZSwgb250b3VjaGVuZCBvciBvbnRvdWNo
Y2FuY2VsIGNhbGxiYWNrcworICBzaG91bGQgYmUgd3JpdHRlbiBpbiBhbiBhc3luY2hyb25vdXMg
ZmFzaGlvbiBzbyB0aGV5IGNhbiBiZSBydW4gb24gbW9iaWxlIHBsYXRmb3JtcyBsaWtlIEFuZHJv
aWQuCisgIFRoaXMgdGVtcGxhdGUgd2lsbCBnZW5lcmF0ZSBhbiBhc3luY2hyb25vdXMgc3R5bGUg
dGVzdCBieSB1c2luZyB0aGUganMtdGVzdC1wb3N0LWZ1bmN0aW9uIHNjcmlwdC4KKyAgWW91IHdp
bGwgbmVlZCB0byBpbnZva2UgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKSBpbiB5b3VyIHRlc3Qgc2Ny
aXB0IHdoZW4gdGhlIHRlc3QgY29tcGxldGVzLgorLS0+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNy
Yz0ic2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3VjaC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9zY3JpcHQt
dGVzdHMvZG9jdW1lbnQtY3JlYXRlLXRvdWNoLWxpc3QuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3Vj
aC1saXN0LmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
c2NyaXB0LXRlc3RzL2RvY3VtZW50LWNyZWF0ZS10b3VjaC1saXN0LmpzCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDEyIEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBzdXBwb3J0IGZvciB0aGUg
ZG9jdW1lbnQuY3JlYXRlVG91Y2hMaXN0IEFQSS4iKTsKKworc2hvdWxkQmVUcnVlKCciY3JlYXRl
VG91Y2hMaXN0IiBpbiBkb2N1bWVudCcpOworCit2YXIgdG91Y2hMaXN0ID0gZG9jdW1lbnQuY3Jl
YXRlVG91Y2hMaXN0KCk7CitzaG91bGRCZU5vbk51bGwoInRvdWNoTGlzdCIpOworc2hvdWxkQmUo
InRvdWNoTGlzdC5sZW5ndGgiLCAiMCIpOworc2hvdWxkQmVOdWxsKCJ0b3VjaExpc3QuaXRlbSgw
KSIpOworc2hvdWxkQmVOdWxsKCJ0b3VjaExpc3QuaXRlbSgxKSIpOworCitzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVhdGUtdG91Y2guanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvc2NyaXB0LXRlc3Rz
L2RvY3VtZW50LWNyZWF0ZS10b3VjaC5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1jcmVhdGUtdG91Y2guanMJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHN1cHBv
cnQgZm9yIHRoZSBkb2N1bWVudC5jcmVhdGVUb3VjaCBBUEkuIik7CisKK3Nob3VsZEJlVHJ1ZSgn
ImNyZWF0ZVRvdWNoIiBpbiBkb2N1bWVudCcpOworCit2YXIgYm94ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7Citib3guaWQgPSAiYm94IjsKK2JveC5zdHlsZS53aWR0aCA9ICIxMDBw
eCI7Citib3guc3R5bGUuaGVpZ2h0ID0gIjEwMHB4IjsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoYm94KTsKKwordmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJib3giKTsK
K3ZhciB0b3VjaCA9IGRvY3VtZW50LmNyZWF0ZVRvdWNoKHdpbmRvdywgdGFyZ2V0LCAxLCAxMDAs
IDEwMSwgMTAyLCAxMDMpOworc2hvdWxkQmVOb25OdWxsKCJ0b3VjaCIpOworc2hvdWxkQmUoInRv
dWNoLnRhcmdldCIsICJib3giKTsKK3Nob3VsZEJlKCJ0b3VjaC5pZGVudGlmaWVyIiwgIjEiKTsK
K3Nob3VsZEJlKCJ0b3VjaC5wYWdlWCIsICIxMDAiKTsKK3Nob3VsZEJlKCJ0b3VjaC5wYWdlWSIs
ICIxMDEiKTsKK3Nob3VsZEJlKCJ0b3VjaC5zY3JlZW5YIiwgIjEwMiIpOworc2hvdWxkQmUoInRv
dWNoLnNjcmVlblkiLCAiMTAzIik7CisKK3ZhciBlbXB0eVRvdWNoID0gZG9jdW1lbnQuY3JlYXRl
VG91Y2goKTsKK3Nob3VsZEJlTm9uTnVsbCgiZW1wdHlUb3VjaCIpOworc2hvdWxkQmVOdWxsKCJl
bXB0eVRvdWNoLnRhcmdldCIpOworc2hvdWxkQmUoImVtcHR5VG91Y2guaWRlbnRpZmllciIsICIw
Iik7CitzaG91bGRCZSgiZW1wdHlUb3VjaC5wYWdlWCIsICIwIik7CitzaG91bGRCZSgiZW1wdHlU
b3VjaC5wYWdlWSIsICIwIik7CitzaG91bGRCZSgiZW1wdHlUb3VjaC5zY3JlZW5YIiwgIjAiKTsK
K3Nob3VsZEJlKCJlbXB0eVRvdWNoLnNjcmVlblkiLCAiMCIpOworCisvLyBUcnkgaW52b2tpbmcg
d2l0aCBpbmNvcnJlY3QgcGFyYW1ldGVyIHR5cGVzLgordmFyIGJhZFBhcmFtc1RvdWNoID0gZG9j
dW1lbnQuY3JlYXRlVG91Y2goZnVuY3Rpb24oeCkgeyByZXR1cm4geDsgfSwgMTIsICdhJywgJ2In
LCAnYycsIGZ1bmN0aW9uKHgpIHsgcmV0dXJuIHg7IH0sIDEwNCk7CitzaG91bGRCZU5vbk51bGwo
ImJhZFBhcmFtc1RvdWNoIik7CitzaG91bGRCZU51bGwoImJhZFBhcmFtc1RvdWNoLnRhcmdldCIp
Oworc2hvdWxkQmUoImJhZFBhcmFtc1RvdWNoLmlkZW50aWZpZXIiLCAiMCIpOworc2hvdWxkQmUo
ImJhZFBhcmFtc1RvdWNoLnBhZ2VYIiwgIjAiKTsKK3Nob3VsZEJlKCJiYWRQYXJhbXNUb3VjaC5w
YWdlWSIsICIwIik7CitzaG91bGRCZSgiYmFkUGFyYW1zVG91Y2guc2NyZWVuWCIsICIwIik7Citz
aG91bGRCZSgiYmFkUGFyYW1zVG91Y2guc2NyZWVuWSIsICIxMDQiKTsKKworc3VjY2Vzc2Z1bGx5
UGFyc2VkID0gdHJ1ZTsKK2lzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>