<?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>70799</bug_id>
          
          <creation_ts>2011-10-24 23:11:41 -0700</creation_ts>
          <short_desc>The copy and paste result in nested scrollbars on http://dojotoolkit.org/widgets</short_desc>
          <delta_ts>2011-10-28 22:27:18 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://dojotoolkit.org/widgets</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>alex</cc>
    
    <cc>cshu</cc>
    
    <cc>darin</cc>
    
    <cc>dcheng</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>kenneth</cc>
    
    <cc>ojan</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>489878</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-24 23:11:41 -0700</bug_when>
    <thetext>Reproductions steps (copied from http://code.google.com/p/chromium/issues/detail?id=97104):
1.Go to http://dojotoolkit.org/widgets
2.Click the Editor tab.
3.In the Enabled editor, add multiple lines to the end of the content so the scrollbar shows.
4.Press Ctrl+A to select all contents and then Ctrl+C and copy them into the clipboard.
5.Press Ctrl+V.

http://crbug.com/97104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490338</commentid>
    <comment_count>1</comment_count>
      <attachid>112398</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-25 14:04:35 -0700</bug_when>
    <thetext>Created attachment 112398
fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490349</commentid>
    <comment_count>2</comment_count>
      <attachid>112398</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-10-25 14:13:54 -0700</bug_when>
    <thetext>Comment on attachment 112398
fixes the bug

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

&gt; Source/WebCore/ChangeLog:5
&gt; +

It would be nice to have a description of the issue and the relevant fix.
It is not clear at all from the bug what is happening. Could you please provide more details? The patch seems to be adding handling of the CSSPropertyTextDecoration property, but I don&apos;t understand at all how this is related to the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490366</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-25 14:35:13 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 112398 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=112398&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:5
&gt; &gt; +
&gt; 
&gt; It would be nice to have a description of the issue and the relevant fix.
&gt; It is not clear at all from the bug what is happening. Could you please provide more details? The patch seems to be adding handling of the CSSPropertyTextDecoration property, but I don&apos;t understand at all how this is related to the bug.

Oops, apparently I forgot to add that. Will do in a minute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490380</commentid>
    <comment_count>4</comment_count>
      <attachid>112398</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-25 14:51:28 -0700</bug_when>
    <thetext>Comment on attachment 112398
fixes the bug

Attachment 112398 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10211358

New failing tests:
editing/pasteboard/5134759.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490384</commentid>
    <comment_count>5</comment_count>
      <attachid>112410</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-25 14:54:36 -0700</bug_when>
    <thetext>Created attachment 112410
Added change log entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490416</commentid>
    <comment_count>6</comment_count>
      <attachid>112410</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-25 15:33:43 -0700</bug_when>
    <thetext>Comment on attachment 112410
Added change log entry

Attachment 112410 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10208498

New failing tests:
editing/pasteboard/5134759.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491052</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-26 11:40:49 -0700</bug_when>
    <thetext>Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491061</commentid>
    <comment_count>8</comment_count>
      <attachid>112410</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-10-26 11:48:42 -0700</bug_when>
    <thetext>Comment on attachment 112410
Added change log entry

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

&gt; Source/WebCore/editing/markup.cpp:188
&gt; +    ASSERT(propertyMissingOrEqualToNone(style, CSSPropertyWebkitTextDecorationsInEffect));

It would be nice to have a comment about the new assert.

&gt; Source/WebCore/editing/markup.cpp:-526
&gt; -    return style &amp;&amp; style-&gt;style() &amp;&amp; !propertyMissingOrEqualToNone(style-&gt;style(), CSSPropertyTextDecoration);

This has been removed because we don&apos;t expect to have this property anymore, correct?

&gt; LayoutTests/editing/pasteboard/19644-2-expected.txt:1
&gt; +&lt;span style=&quot;background-color: rgb(187, 187, 187); &quot;&gt;This tests to make sure that we wrap copied markup in a div to hold a fully selected body&apos;s attributes and style when the that body has a background-color. If you copy and paste this text into Mail, it should have a grey background.&lt;/span&gt;

Why is having a span now equivalent to the div before?

&gt; LayoutTests/platform/mac/editing/pasteboard/5134759-expected.txt:21
&gt; +              text run at (39,0) width 45: &quot;World!&quot;

similar question: why is it ok not to have a div anymore?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491087</commentid>
    <comment_count>9</comment_count>
      <attachid>112410</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-26 12:11:47 -0700</bug_when>
    <thetext>Comment on attachment 112410
Added change log entry

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

&gt;&gt; Source/WebCore/editing/markup.cpp:188
&gt;&gt; +    ASSERT(propertyMissingOrEqualToNone(style, CSSPropertyWebkitTextDecorationsInEffect));
&gt; 
&gt; It would be nice to have a comment about the new assert.

How about &quot;wrappingStyleForSerialization should have removed -webkit-text-decorations-in-effect&quot;?

&gt;&gt; Source/WebCore/editing/markup.cpp:-526
&gt;&gt; -    return style &amp;&amp; style-&gt;style() &amp;&amp; !propertyMissingOrEqualToNone(style-&gt;style(), CSSPropertyTextDecoration);
&gt; 
&gt; This has been removed because we don&apos;t expect to have this property anymore, correct?

No, we expect it to be there but we&apos;ll include the effective value in wrappingStyleForSerialization instead of cloning all ancestors up to an element with text-decoration property.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491130</commentid>
    <comment_count>10</comment_count>
      <attachid>112410</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-26 13:15:42 -0700</bug_when>
    <thetext>Comment on attachment 112410
Added change log entry

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

&gt;&gt; LayoutTests/editing/pasteboard/19644-2-expected.txt:1
&gt;&gt; +&lt;span style=&quot;background-color: rgb(187, 187, 187); &quot;&gt;This tests to make sure that we wrap copied markup in a div to hold a fully selected body&apos;s attributes and style when the that body has a background-color. If you copy and paste this text into Mail, it should have a grey background.&lt;/span&gt;
&gt; 
&gt; Why is having a span now equivalent to the div before?

It&apos;s okay because this is the only content in body. This is a bit tricky case because div will change the background color of the entire block as supposed to span which changes the background color of the inline text. Even div  doesn&apos;t occupy the entire body so it&apos;ll have a different background color below the div anyway.

Also, I think most of users expect text color to be applied as inline style as done in TextEdit, Microsoft Word, etc..., not as a block style.

&gt;&gt; LayoutTests/platform/mac/editing/pasteboard/5134759-expected.txt:21
&gt;&gt; +              text run at (39,0) width 45: &quot;World!&quot;
&gt; 
&gt; similar question: why is it ok not to have a div anymore?

This was a redundant div. I guess I can clarify that in the change log. Or convert this to a dump-as-markup first so that the rebaseline is clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492675</commentid>
    <comment_count>11</comment_count>
      <attachid>112910</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-28 14:23:45 -0700</bug_when>
    <thetext>Created attachment 112910
Updated per comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492705</commentid>
    <comment_count>12</comment_count>
      <attachid>112910</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 14:58:48 -0700</bug_when>
    <thetext>Comment on attachment 112910
Updated per comment

Attachment 112910 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10240158

New failing tests:
editing/pasteboard/5134759.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492773</commentid>
    <comment_count>13</comment_count>
      <attachid>112910</attachid>
    <who name="Enrica Casucci">enrica</who>
    <bug_when>2011-10-28 16:27:08 -0700</bug_when>
    <thetext>Comment on attachment 112910
Updated per comment

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492893</commentid>
    <comment_count>14</comment_count>
      <attachid>112910</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-28 22:27:12 -0700</bug_when>
    <thetext>Comment on attachment 112910
Updated per comment

Clearing flags on attachment: 112910

Committed r98794: &lt;http://trac.webkit.org/changeset/98794&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492894</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-28 22:27:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112398</attachid>
            <date>2011-10-25 14:04:35 -0700</date>
            <delta_ts>2011-10-25 14:54:32 -0700</delta_ts>
            <desc>fixes the bug</desc>
            <filename>bug-70799-20111025140434.patch</filename>
            <type>text/plain</type>
            <size>19062</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTEtMTAtMjUgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVGhlIGNvcHkgYW5kIHBhc3RlIHJl
c3VsdCBpbiBuZXN0ZWQgc2Nyb2xsYmFycyBvbiBodHRwOi8vZG9qb3Rvb2xraXQub3JnL3dpZGdl
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzk5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDog
ZWRpdGluZy9wYXN0ZWJvYXJkL2F2b2lkLWNvcHlpbmctYm9keS13aXRoLWJhY2tncm91bmQuaHRt
bAorCisgICAgICAgICogZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwOiBBZGRlZCBDU1NQcm9wZXJ0
eVRleHREZWNvcmF0aW9uIHRvIHRoZSBsaXN0IG9mIGVkaXRpbmcgcHJvcGVydGllcy4KKyAgICAg
ICAgKFdlYkNvcmU6OmNvcHlFZGl0aW5nUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0aW5nU3R5bGU6OmluaXQpOiBDb21wdXRlIHRoZSBlZmZlY3RpdmUgdGV4dCBkZWNvcmF0aW9u
IHdoZW4gcHJvcGVydGllc1RvSW5jbHVkZSBpcworICAgICAgICBFZGl0aW5nUHJvcGVydGllc0lu
RWZmZWN0LgorICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpwcmVwYXJlVG9BcHBseUF0
KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6bWVyZ2VJbmxpbmVTdHlsZU9mRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OndyYXBwaW5nU3R5bGVGb3JT
ZXJpYWxpemF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5
bGVGcm9tUnVsZXNBbmRDb250ZXh0KToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRpbmdTdHlsZS5o
OiBSZW5hbWVkIEVkaXRpbmdJbmhlcml0YWJsZVByb3BlcnRpZXNBbmRCYWNrZ3JvdW5kQ29sb3JJ
bkVmZmVjdCB0bworICAgICAgICBFZGl0aW5nUHJvcGVydGllc0luRWZmZWN0LgorICAgICAgICAq
IGVkaXRpbmcvbWFya3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZE1hcmt1cEFjY3Vt
dWxhdG9yOjphcHBlbmRTdHlsZU5vZGVPcGVuVGFnKTogUmVtb3ZlZCBhbiBhc3NlcnRpb24gdGhh
dCdzIG5vIGxvbmdlciB2YWxpZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzRWxlbWVudFByZXNlbnRh
dGlvbmFsKTogRG9uJ3QgY29uc2lkZXIgYW55IGVsZW1lbnQgd2l0aCB0ZXh0LWRlY29yYXRpb24g
cHJvcGVydHkgYXMKKyAgICAgICAgYSBwcmVzZW50YXRpb25hbCBlbGVtZW50LgorICAgICAgICAo
V2ViQ29yZTo6aGlnaGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwKTogRG9uJ3QgY29uc2lkZXIgZnVs
bHkgc2VsZWN0ZWQgcm9vdCBhcyBhIHNwZWNpYWwgY29tbW9uIGFuY2VzdG9yIGV2ZXIuCisgICAg
ICAgIEJhY2tncm91bmQgY29sb3IgaXMgY29tcHV0ZWQgcHJvcGVydHkgd2hlbiB3ZSBjb21wdXRl
IHRoZSB3cmFwcGluZyBzdHlsZS4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU1hcmt1cCk6CisK
IDIwMTEtMTAtMjUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OKDk3ODIxKTogSGlzdG9yeUNvbnRyb2xsZXI6Oml0ZW1zQXJlQ2xvbmVz
IGNyYXNoZXMgYSBsb3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5j
cHAJKHJldmlzaW9uIDk4MzU4KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIC8vIGUuZy4gd2hlbiBhIHVzZXIgaW5zZXJ0cyBhIG5ldyBwYXJhZ3JhcGgsIGFsbCBwcm9w
ZXJ0aWVzIGxpc3RlZCBoZXJlIG11c3QgYmUgY29waWVkIHRvIHRoZSBuZXcgcGFyYWdyYXBoLgog
c3RhdGljIGNvbnN0IGludCBlZGl0aW5nUHJvcGVydGllc1tdID0gewogICAgIENTU1Byb3BlcnR5
QmFja2dyb3VuZENvbG9yLAorICAgIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24sCiAKICAgICAv
LyBDU1MgaW5oZXJpdGFibGUgcHJvcGVydGllcwogICAgIENTU1Byb3BlcnR5Q29sb3IsCkBAIC03
OSwxMSArODAsMTEgQEAgc3RhdGljIGNvbnN0IGludCBlZGl0aW5nUHJvcGVydGllc1tdID0gewog
ICAgIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZVdpZHRoLAogfTsKIAotc3RhdGljIFBhc3NS
ZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGNvcHlFZGl0aW5nUHJvcGVydGllcyhD
U1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgYm9vbCBpbmNsdWRlQmFja2dyb3VuZENvbG9yID0g
ZmFsc2UpCitzdGF0aWMgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gY29w
eUVkaXRpbmdQcm9wZXJ0aWVzKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBib29sIGluY2x1
ZGVOb25Jbmhlcml0YWJsZVByb3BlcnRpZXMgPSBmYWxzZSkKIHsKLSAgICBpZiAoaW5jbHVkZUJh
Y2tncm91bmRDb2xvcikKKyAgICBpZiAoaW5jbHVkZU5vbkluaGVyaXRhYmxlUHJvcGVydGllcykK
ICAgICAgICAgcmV0dXJuIHN0eWxlLT5jb3B5UHJvcGVydGllc0luU2V0KGVkaXRpbmdQcm9wZXJ0
aWVzLCBXVEZfQVJSQVlfTEVOR1RIKGVkaXRpbmdQcm9wZXJ0aWVzKSk7Ci0gICAgcmV0dXJuIHN0
eWxlLT5jb3B5UHJvcGVydGllc0luU2V0KGVkaXRpbmdQcm9wZXJ0aWVzICsgMSwgV1RGX0FSUkFZ
X0xFTkdUSChlZGl0aW5nUHJvcGVydGllcykgLSAxKTsKKyAgICByZXR1cm4gc3R5bGUtPmNvcHlQ
cm9wZXJ0aWVzSW5TZXQoZWRpdGluZ1Byb3BlcnRpZXMgKyAyLCBXVEZfQVJSQVlfTEVOR1RIKGVk
aXRpbmdQcm9wZXJ0aWVzKSAtIDIpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNFZGl0aW5n
UHJvcGVydHkoaW50IGlkKQpAQCAtMzYyLDkgKzM2MywxMSBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6
aW5pdChOb2RlKiBub2RlLCBQcm9wCiAgICAgUmVmUHRyPENTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbj4gY29tcHV0ZWRTdHlsZUF0UG9zaXRpb24gPSBjb21wdXRlZFN0eWxlKG5vZGUpOwogICAg
IG1fbXV0YWJsZVN0eWxlID0gcHJvcGVydGllc1RvSW5jbHVkZSA9PSBBbGxQcm9wZXJ0aWVzICYm
IGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9uID8gY29tcHV0ZWRTdHlsZUF0UG9zaXRpb24tPmNvcHko
KSA6IGVkaXRpbmdTdHlsZUZyb21Db21wdXRlZFN0eWxlKGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9u
KTsKIAotICAgIGlmIChwcm9wZXJ0aWVzVG9JbmNsdWRlID09IEVkaXRpbmdJbmhlcml0YWJsZVBy
b3BlcnRpZXNBbmRCYWNrZ3JvdW5kQ29sb3JJbkVmZmVjdCkgeworICAgIGlmIChwcm9wZXJ0aWVz
VG9JbmNsdWRlID09IEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QpIHsKICAgICAgICAgaWYgKFJl
ZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBiYWNrZ3JvdW5kQ29sb3JJbkVmZmVjdChub2RlKSkKICAg
ICAgICAgICAgIG1fbXV0YWJsZVN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJhY2tncm91
bmRDb2xvciwgdmFsdWUtPmNzc1RleHQoKSk7CisgICAgICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+
IHZhbHVlID0gY29tcHV0ZWRTdHlsZUF0UG9zaXRpb24tPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NT
UHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCkpCisgICAgICAgICAgICBtX211
dGFibGVTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbiwgdmFsdWUt
PmNzc1RleHQoKSk7CiAgICAgfQogCiAgICAgaWYgKG5vZGUgJiYgbm9kZS0+Y29tcHV0ZWRTdHls
ZSgpKSB7CkBAIC04NTQsNyArODU3LDcgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OnByZXBhcmVUb0Fw
cGx5QXQoY29ucwogICAgIC8vIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpoYW5kbGVTdHlsZVNw
YW5zKCkgcmVxdWlyZXMgdGhhdCB0aGlzIGZ1bmN0aW9uIG9ubHkgcmVtb3ZlcyB0aGUgZWRpdGlu
ZyBzdHlsZS4KICAgICAvLyBJZiB0aGlzIGZ1bmN0aW9uIHdhcyBtb2RpZmllZCBpbiB0aGUgZnV0
dXJlIHRvIGRlbGV0ZSBhbGwgcmVkdW5kYW50IHByb3BlcnRpZXMsIHRoZW4gYWRkIGEgYm9vbGVh
biB2YWx1ZSB0byBpbmRpY2F0ZQogICAgIC8vIHdoaWNoIG9uZSBvZiBlZGl0aW5nU3R5bGVBdFBv
c2l0aW9uIG9yIGNvbXB1dGVkU3R5bGUgaXMgY2FsbGVkLgotICAgIFJlZlB0cjxFZGl0aW5nU3R5
bGU+IHN0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUocG9zaXRpb24sIEVkaXRpbmdJbmhlcml0
YWJsZVByb3BlcnRpZXNBbmRCYWNrZ3JvdW5kQ29sb3JJbkVmZmVjdCk7CisgICAgUmVmUHRyPEVk
aXRpbmdTdHlsZT4gc3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShwb3NpdGlvbiwgRWRpdGlu
Z1Byb3BlcnRpZXNJbkVmZmVjdCk7CiAKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHVuaWNvZGVCaWRp
OwogICAgIFJlZlB0cjxDU1NWYWx1ZT4gZGlyZWN0aW9uOwpAQCAtOTAwLDggKzkwMyw4IEBAIHZv
aWQgRWRpdGluZ1N0eWxlOjptZXJnZUlubGluZVN0eWxlT2ZFbGUKICAgICAgICAgbWVyZ2VTdHls
ZShlbGVtZW50LT5pbmxpbmVTdHlsZURlY2woKSwgbW9kZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICBjYXNlIE9ubHlFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzOgotICAgIGNhc2UgRWRpdGlu
Z0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvckluRWZmZWN0OgotICAgICAg
ICBtZXJnZVN0eWxlKGNvcHlFZGl0aW5nUHJvcGVydGllcyhlbGVtZW50LT5pbmxpbmVTdHlsZURl
Y2woKSwgcHJvcGVydGllc1RvSW5jbHVkZSA9PSBFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVz
QW5kQmFja2dyb3VuZENvbG9ySW5FZmZlY3QpLmdldCgpLCBtb2RlKTsKKyAgICBjYXNlIEVkaXRp
bmdQcm9wZXJ0aWVzSW5FZmZlY3Q6CisgICAgICAgIG1lcmdlU3R5bGUoY29weUVkaXRpbmdQcm9w
ZXJ0aWVzKGVsZW1lbnQtPmlubGluZVN0eWxlRGVjbCgpLCBwcm9wZXJ0aWVzVG9JbmNsdWRlID09
IEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QpLmdldCgpLCBtb2RlKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIH0KQEAgLTkzNiw3ICs5MzksNyBAQCBQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4g
RWRpdGluZ1N0eWxlOjp3CiB7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gd3JhcHBpbmdTdHls
ZTsKICAgICBpZiAoc2hvdWxkQW5ub3RhdGUpIHsKLSAgICAgICAgd3JhcHBpbmdTdHlsZSA9IEVk
aXRpbmdTdHlsZTo6Y3JlYXRlKGNvbnRleHQsIEVkaXRpbmdTdHlsZTo6RWRpdGluZ0luaGVyaXRh
YmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvckluRWZmZWN0KTsKKyAgICAgICAgd3JhcHBp
bmdTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKGNvbnRleHQsIEVkaXRpbmdTdHlsZTo6RWRp
dGluZ1Byb3BlcnRpZXNJbkVmZmVjdCk7CiAKICAgICAgICAgLy8gU3R5bGVzIHRoYXQgTWFpbCBi
bG9ja3F1b3RlcyBjb250cmlidXRlIHNob3VsZCBvbmx5IGJlIHBsYWNlZCBvbiB0aGUgTWFpbCBi
bG9ja3F1b3RlLAogICAgICAgICAvLyB0byBoZWxwIHVzIGRpZmZlcmVudGlhdGUgdGhvc2Ugc3R5
bGVzIGZyb20gb25lcyB0aGF0IHRoZSB1c2VyIGhhcyBhcHBsaWVkLgpAQCAtOTU1LDcgKzk1OCw3
IEBAIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBFZGl0aW5nU3R5bGU6OncKICAgICBmb3IgKE5v
ZGUqIG5vZGUgPSBjb250ZXh0OyBub2RlICYmICFub2RlLT5pc0RvY3VtZW50Tm9kZSgpOyBub2Rl
ID0gbm9kZS0+cGFyZW50Tm9kZSgpKSB7CiAgICAgICAgIGlmIChub2RlLT5pc1N0eWxlZEVsZW1l
bnQoKSkgewogICAgICAgICAgICAgd3JhcHBpbmdTdHlsZS0+bWVyZ2VJbmxpbmVBbmRJbXBsaWNp
dFN0eWxlT2ZFbGVtZW50KHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihub2RlKSwgRWRpdGlu
Z1N0eWxlOjpEb05vdE92ZXJyaWRlVmFsdWVzLAotICAgICAgICAgICAgICAgIEVkaXRpbmdTdHls
ZTo6RWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvckluRWZmZWN0
KTsKKyAgICAgICAgICAgICAgICBFZGl0aW5nU3R5bGU6OkVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZl
Y3QpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDY4LDcgKzEwNzEsNyBAQCB2b2lkIEVkaXRp
bmdTdHlsZTo6cmVtb3ZlU3R5bGVGcm9tUnVsZXNBCiAgICAgICAgIG1fbXV0YWJsZVN0eWxlID0g
Z2V0UHJvcGVydGllc05vdEluKG1fbXV0YWJsZVN0eWxlLmdldCgpLCBzdHlsZUZyb21NYXRjaGVk
UnVsZXMuZ2V0KCkpOwogCiAgICAgLy8gMi4gUmVtb3ZlIHN0eWxlIHByZXNlbnQgaW4gY29udGV4
dCBhbmQgbm90IG92ZXJyaWRlbiBieSBtYXRjaGVkIHJ1bGVzLgotICAgIFJlZlB0cjxFZGl0aW5n
U3R5bGU+IGNvbXB1dGVkU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShjb250ZXh0LCBFZGl0
aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzQW5kQmFja2dyb3VuZENvbG9ySW5FZmZlY3QpOworICAg
IFJlZlB0cjxFZGl0aW5nU3R5bGU+IGNvbXB1dGVkU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0
ZShjb250ZXh0LCBFZGl0aW5nUHJvcGVydGllc0luRWZmZWN0KTsKICAgICBpZiAoY29tcHV0ZWRT
dHlsZS0+bV9tdXRhYmxlU3R5bGUpIHsKICAgICAgICAgY29tcHV0ZWRTdHlsZS0+cmVtb3ZlUHJv
cGVydGllc0luRWxlbWVudERlZmF1bHRTdHlsZShlbGVtZW50KTsKICAgICAgICAgbV9tdXRhYmxl
U3R5bGUgPSBnZXRQcm9wZXJ0aWVzTm90SW4obV9tdXRhYmxlU3R5bGUuZ2V0KCksIGNvbXB1dGVk
U3R5bGUtPm1fbXV0YWJsZVN0eWxlLmdldCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdGluZ1N0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0aW5nU3R5bGUuaAkocmV2aXNpb24gOTgzNTgpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRpbmdTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIGVudW0gVHJp
U3RhdGUgeyBGYWxzZVRyaVN0YXRlLCBUcnVlVHJpU3QKIGNsYXNzIEVkaXRpbmdTdHlsZSA6IHB1
YmxpYyBSZWZDb3VudGVkPEVkaXRpbmdTdHlsZT4gewogcHVibGljOgogCi0gICAgZW51bSBQcm9w
ZXJ0aWVzVG9JbmNsdWRlIHsgQWxsUHJvcGVydGllcywgT25seUVkaXRpbmdJbmhlcml0YWJsZVBy
b3BlcnRpZXMsIEVkaXRpbmdJbmhlcml0YWJsZVByb3BlcnRpZXNBbmRCYWNrZ3JvdW5kQ29sb3JJ
bkVmZmVjdCB9OworICAgIGVudW0gUHJvcGVydGllc1RvSW5jbHVkZSB7IEFsbFByb3BlcnRpZXMs
IE9ubHlFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzLCBFZGl0aW5nUHJvcGVydGllc0luRWZm
ZWN0IH07CiAgICAgZW51bSBTaG91bGRQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24geyBQcmVzZXJ2
ZVdyaXRpbmdEaXJlY3Rpb24sIERvTm90UHJlc2VydmVXcml0aW5nRGlyZWN0aW9uIH07CiAgICAg
ZW51bSBTaG91bGRFeHRyYWN0TWF0Y2hpbmdTdHlsZSB7IEV4dHJhY3RNYXRjaGluZ1N0eWxlLCBE
b05vdEV4dHJhY3RNYXRjaGluZ1N0eWxlIH07CiAgICAgc3RhdGljIGZsb2F0IE5vRm9udERlbHRh
OwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkocmV2aXNpb24gOTgzNTgpCisrKyBT
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NSw5
ICsxODUsNyBAQCB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aFN0CiAKIHZv
aWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFN0eWxlTm9kZU9wZW5UYWcoU3RyaW5n
QnVpbGRlciYgb3V0LCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50LCBib29sIGlzQmxvY2spCiB7Ci0gICAgLy8gQWxsIHRleHQtZGVjb3JhdGlvbi1yZWxhdGVk
IGVsZW1lbnRzIHNob3VsZCBoYXZlIGJlZW4gdHJlYXRlZCBhcyBzcGVjaWFsIGFuY2VzdG9ycwot
ICAgIC8vIElmIHdlIGV2ZXIgaGl0IHRoaXMgQVNTRVJULCB3ZSBzaG91bGQgZXhwb3J0IFN0eWxl
Q2hhbmdlIGluIEFwcGx5U3R5bGVDb21tYW5kIGFuZCB1c2UgaXQgaGVyZQotICAgIEFTU0VSVChw
cm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHREZWNvcmF0
aW9uKSAmJiBwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLCBDU1NQcm9wZXJ0eVdl
YmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0KSk7CisgICAgQVNTRVJUKHByb3BlcnR5TWlzc2lu
Z09yRXF1YWxUb05vbmUoc3R5bGUsIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5F
ZmZlY3QpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGl2U3R5bGUs
ICgiPGRpdiBzdHlsZT1cIiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
Zywgc3R5bGVTcGFuT3BlbiwgKCI8c3BhbiBzdHlsZT1cIiIpKTsKICAgICBvdXQuYXBwZW5kKGlz
QmxvY2sgPyBkaXZTdHlsZSA6IHN0eWxlU3Bhbk9wZW4pOwpAQCAtNTIyLDIzICs1MjAsMTAgQEAg
c3RhdGljIGJvb2wgaXNFbGVtZW50UHJlc2VudGF0aW9uYWwoY29ucwogICAgIGlmIChub2RlLT5o
YXNUYWdOYW1lKHVUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc1RhZykgfHwgbm9kZS0+aGFzVGFn
TmFtZShzdHJpa2VUYWcpCiAgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoaVRhZykgfHwgbm9k
ZS0+aGFzVGFnTmFtZShlbVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShiVGFnKSB8fCBub2RlLT5o
YXNUYWdOYW1lKHN0cm9uZ1RhZykpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIFJlZlB0cjxF
ZGl0aW5nU3R5bGU+IHN0eWxlID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzQW5kSW5saW5lRGVjbChu
b2RlKTsKLSAgICByZXR1cm4gc3R5bGUgJiYgc3R5bGUtPnN0eWxlKCkgJiYgIXByb3BlcnR5TWlz
c2luZ09yRXF1YWxUb05vbmUoc3R5bGUtPnN0eWxlKCksIENTU1Byb3BlcnR5VGV4dERlY29yYXRp
b24pOwotfQotCi1zdGF0aWMgYm9vbCBzaG91bGRJbmNsdWRlV3JhcHBlckZvckZ1bGx5U2VsZWN0
ZWRSb290KE5vZGUqIGZ1bGx5U2VsZWN0ZWRSb290KQotewotICAgIGlmIChmdWxseVNlbGVjdGVk
Um9vdC0+aXNFbGVtZW50Tm9kZSgpICYmIHN0YXRpY19jYXN0PEVsZW1lbnQqPihmdWxseVNlbGVj
dGVkUm9vdCktPmhhc0F0dHJpYnV0ZShiYWNrZ3JvdW5kQXR0cikpCi0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIAotICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlID0gc3R5bGVGcm9tTWF0
Y2hlZFJ1bGVzQW5kSW5saW5lRGVjbChmdWxseVNlbGVjdGVkUm9vdCk7Ci0gICAgaWYgKCFzdHls
ZSB8fCAhc3R5bGUtPnN0eWxlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVy
biBzdHlsZS0+c3R5bGUoKS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUJhY2tncm91
bmRJbWFnZSkgfHwgc3R5bGUtPnN0eWxlKCktPmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVy
dHlCYWNrZ3JvdW5kQ29sb3IpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAotc3RhdGljIE5vZGUq
IGhpZ2hlc3RBbmNlc3RvclRvV3JhcE1hcmt1cChjb25zdCBSYW5nZSogcmFuZ2UsIE5vZGUqIGZ1
bGx5U2VsZWN0ZWRSb290LCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSBzaG91bGRBbm5vdGF0ZSkK
K3N0YXRpYyBOb2RlKiBoaWdoZXN0QW5jZXN0b3JUb1dyYXBNYXJrdXAoY29uc3QgUmFuZ2UqIHJh
bmdlLCBFQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSBzaG91bGRBbm5vdGF0ZSkKIHsKICAgICBFeGNl
cHRpb25Db2RlIGVjOwogICAgIE5vZGUqIGNvbW1vbkFuY2VzdG9yID0gcmFuZ2UtPmNvbW1vbkFu
Y2VzdG9yQ29udGFpbmVyKGVjKTsKQEAgLTU3Myw5ICs1NTgsNiBAQCBzdGF0aWMgTm9kZSogaGln
aGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwCiAgICAgaWYgKE5vZGUgKmVuY2xvc2luZ0FuY2hvciA9
IGVuY2xvc2luZ05vZGVXaXRoVGFnKGZpcnN0UG9zaXRpb25Jbk5vZGUoc3BlY2lhbENvbW1vbkFu
Y2VzdG9yID8gc3BlY2lhbENvbW1vbkFuY2VzdG9yIDogY29tbW9uQW5jZXN0b3IpLCBhVGFnKSkK
ICAgICAgICAgc3BlY2lhbENvbW1vbkFuY2VzdG9yID0gZW5jbG9zaW5nQW5jaG9yOwogCi0gICAg
aWYgKHNob3VsZEFubm90YXRlID09IEFubm90YXRlRm9ySW50ZXJjaGFuZ2UgJiYgZnVsbHlTZWxl
Y3RlZFJvb3QgJiYgc2hvdWxkSW5jbHVkZVdyYXBwZXJGb3JGdWxseVNlbGVjdGVkUm9vdChmdWxs
eVNlbGVjdGVkUm9vdCkpCi0gICAgICAgIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IGZ1bGx5U2Vs
ZWN0ZWRSb290OwotCiAgICAgcmV0dXJuIHNwZWNpYWxDb21tb25BbmNlc3RvcjsKIH0KIApAQCAt
NjIwLDcgKzYwMiw3IEBAIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UqIHJhbmdlLCAK
ICAgICAvLyBGSVhNRTogRG8gdGhpcyBmb3IgYWxsIGZ1bGx5IHNlbGVjdGVkIGJsb2Nrcywgbm90
IGp1c3QgdGhlIGJvZHkuCiAgICAgaWYgKGJvZHkgJiYgYXJlUmFuZ2VzRXF1YWwoVmlzaWJsZVNl
bGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKGJvZHkpLnRvTm9ybWFsaXplZFJh
bmdlKCkuZ2V0KCksIHJhbmdlKSkKICAgICAgICAgZnVsbHlTZWxlY3RlZFJvb3QgPSBib2R5Owot
ICAgIE5vZGUqIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IGhpZ2hlc3RBbmNlc3RvclRvV3JhcE1h
cmt1cCh1cGRhdGVkUmFuZ2UuZ2V0KCksIGZ1bGx5U2VsZWN0ZWRSb290LCBzaG91bGRBbm5vdGF0
ZSk7CisgICAgTm9kZSogc3BlY2lhbENvbW1vbkFuY2VzdG9yID0gaGlnaGVzdEFuY2VzdG9yVG9X
cmFwTWFya3VwKHVwZGF0ZWRSYW5nZS5nZXQoKSwgc2hvdWxkQW5ub3RhdGUpOwogICAgIFN0eWxl
ZE1hcmt1cEFjY3VtdWxhdG9yIGFjY3VtdWxhdG9yKG5vZGVzLCBzaG91bGRSZXNvbHZlVVJMcywg
c2hvdWxkQW5ub3RhdGUsIHVwZGF0ZWRSYW5nZS5nZXQoKSwgc3BlY2lhbENvbW1vbkFuY2VzdG9y
KTsKICAgICBOb2RlKiBwYXN0RW5kID0gdXBkYXRlZFJhbmdlLT5wYXN0TGFzdE5vZGUoKTsKIApJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gOTgzODkpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0xMC0yNSAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KKworICAgICAgICBUaGUgY29weSBhbmQgcGFzdGUgcmVzdWx0IGluIG5l
c3RlZCBzY3JvbGxiYXJzIG9uIGh0dHA6Ly9kb2pvdG9vbGtpdC5vcmcvd2lkZ2V0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA3OTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhIHRlc3QgdG8g
Y29weSBjb250ZW50cyBpbnNpZGUgYSBib2R5IHdpdGggYmFja2dyb3VuZCBhbmQgdGV4dC1kZWNv
cmF0aW9uIHByb3BlcnRpZXMuCisKKyAgICAgICAgV2ViS2l0IHNob3VsZCBub3QgY29weSBib2R5
IGVsZW1lbnQuCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saW5lLWJyZWFr
LWJlZm9yZS11bmRlcmxpbmVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGVkaXRp
bmcvZGVsZXRpbmcvZGVsZXRpbmctbGluZS1icmVhay1wcmVzZXJ2ZXMtdW5kZXJsaW5lLWNvbG9y
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvMTk2NDQtMi1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2F2b2lkLWNvcHlpbmctYm9k
eS13aXRoLWJhY2tncm91bmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5n
L3Bhc3RlYm9hcmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvcHJlc2VydmUtdW5kZXJsaW5lLWNvbG9y
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJk
LzUxMzQ3NTktZXhwZWN0ZWQudHh0OgorCiAyMDExLTEwLTI1ICBMZWFuZHJvIFBlcmVpcmEgIDxs
ZWFuZHJvQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQuIEFkZCBD
U1MxIHBpeGVsIGJhc2VsaW5lcy4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcv
ZGVsZXRlLWxpbmUtYnJlYWstYmVmb3JlLXVuZGVybGluZWQtY29udGVudC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGluZS1i
cmVhay1iZWZvcmUtdW5kZXJsaW5lZC1jb250ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTgz
NTgpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saW5lLWJyZWFrLWJl
Zm9yZS11bmRlcmxpbmVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDYgKzEsNSBAQAogVGhpcyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgdW5kZXJsaW5lZCBjb250ZW50
IHdvdWxkIGxvc2UgaXRzIHVuZGVybGluaW5nd2hlbiBkZWxldGluZyB0aGUgbGluZSBicmVhayBi
ZWZvcmUgdGhlIHBhcmFncmFwaCB0aGF0IGNvbnRhaW5lZCBpdC4KIHwgIlRoaXMgc2hvdWxkbid0
IGJlIHVuZGVybGluZWQuPCNzZWxlY3Rpb24tY2FyZXQ+IgotfCA8ZGl2PgotfCAgIGlkPSJkaXYi
Ci18ICAgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBkaXNwbGF5OiBpbmxpbmUg
IWltcG9ydGFudDsgIgorfCA8c3Bhbj4KK3wgICBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRl
cmxpbmU7ICIKIHwgICAiVGhpcyBzaG91bGQgYmUgdW5kZXJsaW5lZC4iCkluZGV4OiBMYXlvdXRU
ZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW5nLWxpbmUtYnJlYWstcHJlc2VydmVzLXVuZGVy
bGluZS1jb2xvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGlu
Zy9kZWxldGluZy9kZWxldGluZy1saW5lLWJyZWFrLXByZXNlcnZlcy11bmRlcmxpbmUtY29sb3It
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5ODM1OCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvZGVsZXRpbmctbGluZS1icmVhay1wcmVzZXJ2ZXMtdW5kZXJsaW5lLWNvbG9yLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTMsNyArMTMsNSBAQCBBZnRlcjoKIHwgPGRpdj4K
IHwgICAiVGhpcyBzaG91bGQgbm90IGJlIHVuZGVybGluZWQuPCNzZWxlY3Rpb24tY2FyZXQ+Igog
fCAgIDxzcGFuPgotfCAgICAgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBjb2xv
cjogYmx1ZTsiCi18ICAgICA8c3Bhbj4KLXwgICAgICAgc3R5bGU9ImNvbG9yOnJlZDsiCi18ICAg
ICAgICJUaGlzIHNob3VsZCBiZSB1bmRlcmxpbmVkLiIKK3wgICAgIHN0eWxlPSJjb2xvcjogcmVk
OyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgIgorfCAgICAgIlRoaXMgc2hvdWxkIGJlIHVu
ZGVybGluZWQuIgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzE5NjQ0LTIt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC8xOTY0NC0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTgzNTgpCisrKyBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvMTk2NDQtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEgKzEgQEAKLTxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigxODcsIDE4NywgMTg3
KTsgIj5UaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIHdyYXAgY29waWVkIG1hcmt1cCBp
biBhIGRpdiB0byBob2xkIGEgZnVsbHkgc2VsZWN0ZWQgYm9keSdzIGF0dHJpYnV0ZXMgYW5kIHN0
eWxlIHdoZW4gdGhlIHRoYXQgYm9keSBoYXMgYSBiYWNrZ3JvdW5kLWNvbG9yLiBJZiB5b3UgY29w
eSBhbmQgcGFzdGUgdGhpcyB0ZXh0IGludG8gTWFpbCwgaXQgc2hvdWxkIGhhdmUgYSBncmV5IGJh
Y2tncm91bmQuPC9kaXY+Cis8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4Nywg
MTg3LCAxODcpOyAiPlRoaXMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgd2Ugd3JhcCBjb3BpZWQg
bWFya3VwIGluIGEgZGl2IHRvIGhvbGQgYSBmdWxseSBzZWxlY3RlZCBib2R5J3MgYXR0cmlidXRl
cyBhbmQgc3R5bGUgd2hlbiB0aGUgdGhhdCBib2R5IGhhcyBhIGJhY2tncm91bmQtY29sb3IuIElm
IHlvdSBjb3B5IGFuZCBwYXN0ZSB0aGlzIHRleHQgaW50byBNYWlsLCBpdCBzaG91bGQgaGF2ZSBh
IGdyZXkgYmFja2dyb3VuZC48L3NwYW4+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2F2b2lkLWNvcHlpbmct
Ym9keS13aXRoLWJhY2tncm91bmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2F2b2lkLWNvcHlpbmctYm9keS13aXRoLWJhY2tncm91
bmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI5IEBACitUaGlzIHRlc3Qg
Y29waWVzIGFuZCBwYXN0ZXMgY29udGVudCBpbnNpZGUgYSBib2R5IHdpdGggYmFja2dyb3VuZCBh
bmQgdGV4dC1kZWNvcmF0aW9uIHByb3BlcnRpZXMuIFdlYktpdCBzaG91bGQgbm90IG5lc3QgYm9k
eS4KK3wgIgorIgorfCA8dWw+Cit8ICAgIgorIgorfCAgIDxsaT4KK3wgICAgICJoZWxsbywgd29y
bGQgIgorfCAgICAgPGE+Cit8ICAgICAgIGhyZWY9Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iCit8
ICAgICAgICJXZWJLaXQiCit8ICAgIgorIgorfCAgIDxsaT4KK3wgICAgICJDb3BpZWQgY29udGVu
dCIKK3wgICA8bGk+Cit8ICAgICAiaGVsbG8sIHdvcmxkIgorfCAgICAgIsKgIgorfCAgICAgPGE+
Cit8ICAgICAgIGhyZWY9Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iCit8ICAgICAgICJXZWJLaXQi
Cit8ICAgPGxpPgorfCAgICAgIkNvcGllZCBjb250ZW50PCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAg
ICIKKyIKK3wgIgorIgorfCAiCisiCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9hdm9pZC1jb3B5aW5nLWJvZHktd2l0aC1i
YWNrZ3JvdW5kLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+Citib2R5IHsKKyAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKKyAgICB3aWR0aDogNTAw
cHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBvdmVyZmxvdy14OiBhdXRvOyBvdmVyZmxvdy15
OmF1dG87CisgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cit9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHkgc3R5bGU9ImNvbG9yOiByZ2IoNTEsIDUxLCA1MSk7ICIgY29udGVudGVkaXRh
YmxlPSJ0cnVlIj4KKzx1bD4KKzxsaT5oZWxsbywgd29ybGQgPGEgaHJlZj0iaHR0cDovL3d3dy53
ZWJraXQub3JnLyI+V2ViS2l0PC9hPjwvbGk+Cis8bGk+Q29waWVkIGNvbnRlbnQ8L2xpPgorPC91
bD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKworZG9jdW1lbnQuYm9keS5mb2N1cygpOworZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoJ1NlbGVjdEFsbCcsIGZhbHNlLCBudWxsKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdD
b3B5JywgZmFsc2UsIG51bGwpOworZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdNb3ZlJywgJ0Zvcndh
cmQnLCAnQ2hhcmFjdGVyJyk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnLCBmYWxzZSwg
bnVsbCk7CisKK3doaWxlIChzY3JpcHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHQn
KSkKKyAgICBzY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHQpOworCitNYXJrdXAu
ZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBjb3BpZXMgYW5kIHBhc3RlcyBjb250ZW50IGluc2lkZSBh
IGJvZHkgd2l0aCBiYWNrZ3JvdW5kIGFuZCB0ZXh0LWRlY29yYXRpb24gcHJvcGVydGllcy4gV2Vi
S2l0IHNob3VsZCBub3QgbmVzdCBib2R5LicpOworTWFya3VwLmR1bXAoZG9jdW1lbnQuYm9keSk7
CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL3ByZXNlcnZlLXVuZGVybGluZS1jb2xvci1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3ByZXNlcnZlLXVuZGVybGlu
ZS1jb2xvci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk4MzU4KQorKysgTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL3ByZXNlcnZlLXVuZGVybGluZS1jb2xvci1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsNyArMSw1IEBACiBUaGlzIHRlc3QgZm9yIGEgYnVnIGNvcHkvcGFz
dGluZyB1bmRlcmxpbmVkIHRleHQuIFRoZSBjb2xvciBvZiB0aGUgdW5kZXJsaW5lIHNob3VsZCBi
ZSB0aGUgY29sb3Igb2YgdGhlIGVsZW1lbnQgdGhhdCBoYXMgdGhlIHRleHQtZGVjb3JhdGlvbiBw
cm9wZXJ0eS4KIHwgPHNwYW4+Ci18ICAgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5l
OyBjb2xvcjogYmx1ZTsgIgotfCAgIDxzcGFuPgotfCAgICAgc3R5bGU9ImNvbG9yOiByZWQ7ICIK
LXwgICAgICJUaGlzIHNob3VsZCBiZSB1bmRlcmxpbmVkLjwjc2VsZWN0aW9uLWNhcmV0PiIKK3wg
ICBzdHlsZT0iY29sb3I6IHJnYigyNTUsIDAsIDApOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGlu
ZTsgIgorfCAgICJUaGlzIHNob3VsZCBiZSB1bmRlcmxpbmVkLjwjc2VsZWN0aW9uLWNhcmV0PiIK
IHwgPGJyPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvcGFzdGVib2Fy
ZC81MTM0NzU5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkLzUxMzQ3NTktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5
ODM1OCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvNTEz
NDc1OS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3LDggKzE3LDcgQEAgbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMzl4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5OiAi
SGVsbG8gIgogICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0NXgx
OAotICAgICAgICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgNDV4MTgKLSAg
ICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzOSwwKSBzaXplIDQ1eDE4Ci0gICAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM5LDApIHdpZHRoIDQ1OiAiV29ybGQhIgorICAgICAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzOSwwKSBzaXplIDQ1eDE4CisgICAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICgzOSwwKSB3aWR0aCA0NTogIldvcmxkISIKICAgICAgICAgUmVuZGVy
QmxvY2sgKGFub255bW91cykgYXQgKDAsMTgpIHNpemUgNzg0eDAKLWNhcmV0OiBwb3NpdGlvbiA2
IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDEge1NQQU59IG9m
IGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CitjYXJldDogcG9zaXRpb24g
NiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMCB7RElWfSBv
ZiBjaGlsZCAyIHtESVZ9IG9mIGJvZHkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112410</attachid>
            <date>2011-10-25 14:54:36 -0700</date>
            <delta_ts>2011-10-28 14:23:41 -0700</delta_ts>
            <desc>Added change log entry</desc>
            <filename>bug-70799-20111025145435.patch</filename>
            <type>text/plain</type>
            <size>20021</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4Mzg5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAKKzIwMTEtMTAtMjUgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVGhlIGNvcHkgYW5kIHBhc3RlIHJl
c3VsdCBpbiBuZXN0ZWQgc2Nyb2xsYmFycyBvbiBodHRwOi8vZG9qb3Rvb2xraXQub3JnL3dpZGdl
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzk5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1
ZyB3YXMgY2F1c2VkIGJ5IFdlYktpdCdzIHRyZWF0aW5nIGEgZnVsbHkgc2VsZWN0ZWQgcm9vdCB3
aXRoIGJhY2tncm91bmQgcHJvcGVydHkgYXMgYSBzcGVjaWFsIGNvbW1vbiBhbmNlc3Rvci4KKyAg
ICAgICAgQSB2YXJpYW50IG9mIHRoaXMgYnVnIHdhcyBjYXVzZWQgYnkgdHJlYXRpbmcgYW55IGVs
ZW1lbnQgd2l0aCB0ZXh0LWRlY29yYXRpb24gcHJvcGVydHkgYXMgYSBwcmVzZW50YXRpb25hbCBl
bGVtZW50LgorCisgICAgICAgIEZpeGVkIHRoZSBhYm92ZSB0d28gYnVncyBieSBub3Qgc2VyaWFs
aXppbmcgdGhlIHNhaWQgbm9kZXMuIFRoZSBlZmZlY3RpdmUgYmFja2dyb3VuZCBjb2xvciB3YXMg
YWxyZWFkeSBzZXJpYWxpemVkCisgICAgICAgIGJ5IHdyYXBwaW5nU3R5bGVGb3JTZXJpYWxpemF0
aW9uLCB0aGVyZSB3YXMgbm90aGluZyB0byBiZSBkb25lIGJlc2lkZXMgc3RvcCBpbmNsdWRpbmcg
aXQgaW4gaGlnaGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwLgorCisgICAgICAgIEZvciB0ZXh0LWRl
Y29yYXRpb24gcHJvcGVydHksIGFkZGVkIHRoZSBsb2dpYyB0byBjb21wdXRlIHRoZSBlZmZlY3Rp
dmUgdmFsdWUgaW4gRWRpdGluZ1N0eWxlOjppbml0LiBBbHNvIHRyZWF0IGl0CisgICAgICAgIGFz
IGEgbm9uLWluaGVyaXRhYmxlIGVkaXRpbmcgcHJvcGVydHkgc28gdGhhdCB0aGUgcmVzdCBvZiBF
ZGl0aW5nU3R5bGUganVzdCB3b3Jrcy4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Bhc3RlYm9h
cmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC5odG1sCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6IEFkZGVkIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24g
dG8gdGhlIGxpc3Qgb2YgZWRpdGluZyBwcm9wZXJ0aWVzLgorICAgICAgICAoV2ViQ29yZTo6Y29w
eUVkaXRpbmdQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6aW5p
dCk6IENvbXB1dGUgdGhlIGVmZmVjdGl2ZSB0ZXh0IGRlY29yYXRpb24gd2hlbiBwcm9wZXJ0aWVz
VG9JbmNsdWRlIGlzCisgICAgICAgIEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QuCisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OnByZXBhcmVUb0FwcGx5QXQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdGluZ1N0eWxlOjptZXJnZUlubGluZVN0eWxlT2ZFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6d3JhcHBpbmdTdHlsZUZvclNlcmlhbGl6YXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpyZW1vdmVTdHlsZUZyb21SdWxlc0FuZENv
bnRleHQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmg6IFJlbmFtZWQgRWRpdGlu
Z0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvckluRWZmZWN0IHRvCisgICAg
ICAgIEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QuCisgICAgICAgICogZWRpdGluZy9tYXJrdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFN0
eWxlTm9kZU9wZW5UYWcpOiBSZW1vdmVkIGFuIGFzc2VydGlvbiB0aGF0J3Mgbm8gbG9uZ2VyIHZh
bGlkLgorICAgICAgICAoV2ViQ29yZTo6aXNFbGVtZW50UHJlc2VudGF0aW9uYWwpOiBEb24ndCBj
b25zaWRlciBhbiBlbGVtZW50IHdpdGggdGV4dC1kZWNvcmF0aW9uIGFzIGEgcHJlc2VudGF0aW9u
YWwgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OmhpZ2hlc3RBbmNlc3RvclRvV3JhcE1hcmt1
cCk6IERvbid0IGNvbnNpZGVyIGZ1bGx5IHNlbGVjdGVkIHJvb3QgYXMgYSBzcGVjaWFsIGNvbW1v
biBhbmNlc3RvciBldmVyLgorICAgICAgICBCYWNrZ3JvdW5kIGNvbG9yIGlzIGNvbXB1dGVkIHBy
b3BlcnR5IHdoZW4gd2UgY29tcHV0ZSB0aGUgd3JhcHBpbmcgc3R5bGUuCisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVNYXJrdXApOgorCiAyMDExLTEwLTI1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTig5NzgyMSk6IEhpc3RvcnlDb250
cm9sbGVyOjppdGVtc0FyZUNsb25lcyBjcmFzaGVzIGEgbG90CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0aW5nU3R5bGUuY3BwCShyZXZpc2lvbiA5ODM1OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBlLmcuIHdoZW4gYSB1c2VyIGluc2VydHMgYSBu
ZXcgcGFyYWdyYXBoLCBhbGwgcHJvcGVydGllcyBsaXN0ZWQgaGVyZSBtdXN0IGJlIGNvcGllZCB0
byB0aGUgbmV3IHBhcmFncmFwaC4KIHN0YXRpYyBjb25zdCBpbnQgZWRpdGluZ1Byb3BlcnRpZXNb
XSA9IHsKICAgICBDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciwKKyAgICBDU1NQcm9wZXJ0eVRl
eHREZWNvcmF0aW9uLAogCiAgICAgLy8gQ1NTIGluaGVyaXRhYmxlIHByb3BlcnRpZXMKICAgICBD
U1NQcm9wZXJ0eUNvbG9yLApAQCAtNzksMTEgKzgwLDExIEBAIHN0YXRpYyBjb25zdCBpbnQgZWRp
dGluZ1Byb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eVdlYmtpdFRleHRTdHJva2VXaWR0
aCwKIH07CiAKLXN0YXRpYyBQYXNzUmVmUHRyPENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uPiBj
b3B5RWRpdGluZ1Byb3BlcnRpZXMoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUsIGJvb2wgaW5j
bHVkZUJhY2tncm91bmRDb2xvciA9IGZhbHNlKQorc3RhdGljIFBhc3NSZWZQdHI8Q1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24+IGNvcHlFZGl0aW5nUHJvcGVydGllcyhDU1NTdHlsZURlY2xhcmF0
aW9uKiBzdHlsZSwgYm9vbCBpbmNsdWRlTm9uSW5oZXJpdGFibGVQcm9wZXJ0aWVzID0gZmFsc2Up
CiB7Ci0gICAgaWYgKGluY2x1ZGVCYWNrZ3JvdW5kQ29sb3IpCisgICAgaWYgKGluY2x1ZGVOb25J
bmhlcml0YWJsZVByb3BlcnRpZXMpCiAgICAgICAgIHJldHVybiBzdHlsZS0+Y29weVByb3BlcnRp
ZXNJblNldChlZGl0aW5nUHJvcGVydGllcywgV1RGX0FSUkFZX0xFTkdUSChlZGl0aW5nUHJvcGVy
dGllcykpOwotICAgIHJldHVybiBzdHlsZS0+Y29weVByb3BlcnRpZXNJblNldChlZGl0aW5nUHJv
cGVydGllcyArIDEsIFdURl9BUlJBWV9MRU5HVEgoZWRpdGluZ1Byb3BlcnRpZXMpIC0gMSk7Cisg
ICAgcmV0dXJuIHN0eWxlLT5jb3B5UHJvcGVydGllc0luU2V0KGVkaXRpbmdQcm9wZXJ0aWVzICsg
MiwgV1RGX0FSUkFZX0xFTkdUSChlZGl0aW5nUHJvcGVydGllcykgLSAyKTsKIH0KIAogc3RhdGlj
IGlubGluZSBib29sIGlzRWRpdGluZ1Byb3BlcnR5KGludCBpZCkKQEAgLTM2Miw5ICszNjMsMTEg
QEAgdm9pZCBFZGl0aW5nU3R5bGU6OmluaXQoTm9kZSogbm9kZSwgUHJvcAogICAgIFJlZlB0cjxD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24+IGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9uID0gY29t
cHV0ZWRTdHlsZShub2RlKTsKICAgICBtX211dGFibGVTdHlsZSA9IHByb3BlcnRpZXNUb0luY2x1
ZGUgPT0gQWxsUHJvcGVydGllcyAmJiBjb21wdXRlZFN0eWxlQXRQb3NpdGlvbiA/IGNvbXB1dGVk
U3R5bGVBdFBvc2l0aW9uLT5jb3B5KCkgOiBlZGl0aW5nU3R5bGVGcm9tQ29tcHV0ZWRTdHlsZShj
b21wdXRlZFN0eWxlQXRQb3NpdGlvbik7CiAKLSAgICBpZiAocHJvcGVydGllc1RvSW5jbHVkZSA9
PSBFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzQW5kQmFja2dyb3VuZENvbG9ySW5FZmZlY3Qp
IHsKKyAgICBpZiAocHJvcGVydGllc1RvSW5jbHVkZSA9PSBFZGl0aW5nUHJvcGVydGllc0luRWZm
ZWN0KSB7CiAgICAgICAgIGlmIChSZWZQdHI8Q1NTVmFsdWU+IHZhbHVlID0gYmFja2dyb3VuZENv
bG9ySW5FZmZlY3Qobm9kZSkpCiAgICAgICAgICAgICBtX211dGFibGVTdHlsZS0+c2V0UHJvcGVy
dHkoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsIHZhbHVlLT5jc3NUZXh0KCkpOworICAgICAg
ICBpZiAoUmVmUHRyPENTU1ZhbHVlPiB2YWx1ZSA9IGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9uLT5n
ZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZl
Y3QpKQorICAgICAgICAgICAgbV9tdXRhYmxlU3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5
VGV4dERlY29yYXRpb24sIHZhbHVlLT5jc3NUZXh0KCkpOwogICAgIH0KIAogICAgIGlmIChub2Rl
ICYmIG5vZGUtPmNvbXB1dGVkU3R5bGUoKSkgewpAQCAtODU0LDcgKzg1Nyw3IEBAIHZvaWQgRWRp
dGluZ1N0eWxlOjpwcmVwYXJlVG9BcHBseUF0KGNvbnMKICAgICAvLyBSZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZDo6aGFuZGxlU3R5bGVTcGFucygpIHJlcXVpcmVzIHRoYXQgdGhpcyBmdW5jdGlvbiBv
bmx5IHJlbW92ZXMgdGhlIGVkaXRpbmcgc3R5bGUuCiAgICAgLy8gSWYgdGhpcyBmdW5jdGlvbiB3
YXMgbW9kaWZpZWQgaW4gdGhlIGZ1dHVyZSB0byBkZWxldGUgYWxsIHJlZHVuZGFudCBwcm9wZXJ0
aWVzLCB0aGVuIGFkZCBhIGJvb2xlYW4gdmFsdWUgdG8gaW5kaWNhdGUKICAgICAvLyB3aGljaCBv
bmUgb2YgZWRpdGluZ1N0eWxlQXRQb3NpdGlvbiBvciBjb21wdXRlZFN0eWxlIGlzIGNhbGxlZC4K
LSAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKHBv
c2l0aW9uLCBFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzQW5kQmFja2dyb3VuZENvbG9ySW5F
ZmZlY3QpOworICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlID0gRWRpdGluZ1N0eWxlOjpj
cmVhdGUocG9zaXRpb24sIEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QpOwogCiAgICAgUmVmUHRy
PENTU1ZhbHVlPiB1bmljb2RlQmlkaTsKICAgICBSZWZQdHI8Q1NTVmFsdWU+IGRpcmVjdGlvbjsK
QEAgLTkwMCw4ICs5MDMsOCBAQCB2b2lkIEVkaXRpbmdTdHlsZTo6bWVyZ2VJbmxpbmVTdHlsZU9m
RWxlCiAgICAgICAgIG1lcmdlU3R5bGUoZWxlbWVudC0+aW5saW5lU3R5bGVEZWNsKCksIG1vZGUp
OwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBPbmx5RWRpdGluZ0luaGVyaXRhYmxlUHJvcGVy
dGllczoKLSAgICBjYXNlIEVkaXRpbmdJbmhlcml0YWJsZVByb3BlcnRpZXNBbmRCYWNrZ3JvdW5k
Q29sb3JJbkVmZmVjdDoKLSAgICAgICAgbWVyZ2VTdHlsZShjb3B5RWRpdGluZ1Byb3BlcnRpZXMo
ZWxlbWVudC0+aW5saW5lU3R5bGVEZWNsKCksIHByb3BlcnRpZXNUb0luY2x1ZGUgPT0gRWRpdGlu
Z0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvckluRWZmZWN0KS5nZXQoKSwg
bW9kZSk7CisgICAgY2FzZSBFZGl0aW5nUHJvcGVydGllc0luRWZmZWN0OgorICAgICAgICBtZXJn
ZVN0eWxlKGNvcHlFZGl0aW5nUHJvcGVydGllcyhlbGVtZW50LT5pbmxpbmVTdHlsZURlY2woKSwg
cHJvcGVydGllc1RvSW5jbHVkZSA9PSBFZGl0aW5nUHJvcGVydGllc0luRWZmZWN0KS5nZXQoKSwg
bW9kZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiB9CkBAIC05MzYsNyArOTM5LDcgQEAgUGFz
c1JlZlB0cjxFZGl0aW5nU3R5bGU+IEVkaXRpbmdTdHlsZTo6dwogewogICAgIFJlZlB0cjxFZGl0
aW5nU3R5bGU+IHdyYXBwaW5nU3R5bGU7CiAgICAgaWYgKHNob3VsZEFubm90YXRlKSB7Ci0gICAg
ICAgIHdyYXBwaW5nU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShjb250ZXh0LCBFZGl0aW5n
U3R5bGU6OkVkaXRpbmdJbmhlcml0YWJsZVByb3BlcnRpZXNBbmRCYWNrZ3JvdW5kQ29sb3JJbkVm
ZmVjdCk7CisgICAgICAgIHdyYXBwaW5nU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShjb250
ZXh0LCBFZGl0aW5nU3R5bGU6OkVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QpOwogCiAgICAgICAg
IC8vIFN0eWxlcyB0aGF0IE1haWwgYmxvY2txdW90ZXMgY29udHJpYnV0ZSBzaG91bGQgb25seSBi
ZSBwbGFjZWQgb24gdGhlIE1haWwgYmxvY2txdW90ZSwKICAgICAgICAgLy8gdG8gaGVscCB1cyBk
aWZmZXJlbnRpYXRlIHRob3NlIHN0eWxlcyBmcm9tIG9uZXMgdGhhdCB0aGUgdXNlciBoYXMgYXBw
bGllZC4KQEAgLTk1NSw3ICs5NTgsNyBAQCBQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gRWRpdGlu
Z1N0eWxlOjp3CiAgICAgZm9yIChOb2RlKiBub2RlID0gY29udGV4dDsgbm9kZSAmJiAhbm9kZS0+
aXNEb2N1bWVudE5vZGUoKTsgbm9kZSA9IG5vZGUtPnBhcmVudE5vZGUoKSkgewogICAgICAgICBp
ZiAobm9kZS0+aXNTdHlsZWRFbGVtZW50KCkpIHsKICAgICAgICAgICAgIHdyYXBwaW5nU3R5bGUt
Pm1lcmdlSW5saW5lQW5kSW1wbGljaXRTdHlsZU9mRWxlbWVudChzdGF0aWNfY2FzdDxTdHlsZWRF
bGVtZW50Kj4obm9kZSksIEVkaXRpbmdTdHlsZTo6RG9Ob3RPdmVycmlkZVZhbHVlcywKLSAgICAg
ICAgICAgICAgICBFZGl0aW5nU3R5bGU6OkVkaXRpbmdJbmhlcml0YWJsZVByb3BlcnRpZXNBbmRC
YWNrZ3JvdW5kQ29sb3JJbkVmZmVjdCk7CisgICAgICAgICAgICAgICAgRWRpdGluZ1N0eWxlOjpF
ZGl0aW5nUHJvcGVydGllc0luRWZmZWN0KTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTA2OCw3
ICsxMDcxLDcgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OnJlbW92ZVN0eWxlRnJvbVJ1bGVzQQogICAg
ICAgICBtX211dGFibGVTdHlsZSA9IGdldFByb3BlcnRpZXNOb3RJbihtX211dGFibGVTdHlsZS5n
ZXQoKSwgc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzLmdldCgpKTsKIAogICAgIC8vIDIuIFJlbW92ZSBz
dHlsZSBwcmVzZW50IGluIGNvbnRleHQgYW5kIG5vdCBvdmVycmlkZW4gYnkgbWF0Y2hlZCBydWxl
cy4KLSAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBjb21wdXRlZFN0eWxlID0gRWRpdGluZ1N0eWxl
OjpjcmVhdGUoY29udGV4dCwgRWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91
bmRDb2xvckluRWZmZWN0KTsKKyAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBjb21wdXRlZFN0eWxl
ID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUoY29udGV4dCwgRWRpdGluZ1Byb3BlcnRpZXNJbkVmZmVj
dCk7CiAgICAgaWYgKGNvbXB1dGVkU3R5bGUtPm1fbXV0YWJsZVN0eWxlKSB7CiAgICAgICAgIGNv
bXB1dGVkU3R5bGUtPnJlbW92ZVByb3BlcnRpZXNJbkVsZW1lbnREZWZhdWx0U3R5bGUoZWxlbWVu
dCk7CiAgICAgICAgIG1fbXV0YWJsZVN0eWxlID0gZ2V0UHJvcGVydGllc05vdEluKG1fbXV0YWJs
ZVN0eWxlLmdldCgpLCBjb21wdXRlZFN0eWxlLT5tX211dGFibGVTdHlsZS5nZXQoKSk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdTdHlsZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgJKHJldmlzaW9uIDk4MzU4KQorKysg
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0aW5nU3R5bGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NjEsNyArNjEsNyBAQCBlbnVtIFRyaVN0YXRlIHsgRmFsc2VUcmlTdGF0ZSwgVHJ1ZVRyaVN0CiBj
bGFzcyBFZGl0aW5nU3R5bGUgOiBwdWJsaWMgUmVmQ291bnRlZDxFZGl0aW5nU3R5bGU+IHsKIHB1
YmxpYzoKIAotICAgIGVudW0gUHJvcGVydGllc1RvSW5jbHVkZSB7IEFsbFByb3BlcnRpZXMsIE9u
bHlFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzLCBFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0
aWVzQW5kQmFja2dyb3VuZENvbG9ySW5FZmZlY3QgfTsKKyAgICBlbnVtIFByb3BlcnRpZXNUb0lu
Y2x1ZGUgeyBBbGxQcm9wZXJ0aWVzLCBPbmx5RWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllcywg
RWRpdGluZ1Byb3BlcnRpZXNJbkVmZmVjdCB9OwogICAgIGVudW0gU2hvdWxkUHJlc2VydmVXcml0
aW5nRGlyZWN0aW9uIHsgUHJlc2VydmVXcml0aW5nRGlyZWN0aW9uLCBEb05vdFByZXNlcnZlV3Jp
dGluZ0RpcmVjdGlvbiB9OwogICAgIGVudW0gU2hvdWxkRXh0cmFjdE1hdGNoaW5nU3R5bGUgeyBF
eHRyYWN0TWF0Y2hpbmdTdHlsZSwgRG9Ob3RFeHRyYWN0TWF0Y2hpbmdTdHlsZSB9OwogICAgIHN0
YXRpYyBmbG9hdCBOb0ZvbnREZWx0YTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFy
a3VwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJ
KHJldmlzaW9uIDk4MzU4KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xODUsOSArMTg1LDcgQEAgdm9pZCBTdHlsZWRNYXJrdXBBY2N1bXVs
YXRvcjo6d3JhcFdpdGhTdAogCiB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRT
dHlsZU5vZGVPcGVuVGFnKFN0cmluZ0J1aWxkZXImIG91dCwgQ1NTU3R5bGVEZWNsYXJhdGlvbiog
c3R5bGUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBpc0Jsb2NrKQogewotICAgIC8vIEFsbCB0
ZXh0LWRlY29yYXRpb24tcmVsYXRlZCBlbGVtZW50cyBzaG91bGQgaGF2ZSBiZWVuIHRyZWF0ZWQg
YXMgc3BlY2lhbCBhbmNlc3RvcnMKLSAgICAvLyBJZiB3ZSBldmVyIGhpdCB0aGlzIEFTU0VSVCwg
d2Ugc2hvdWxkIGV4cG9ydCBTdHlsZUNoYW5nZSBpbiBBcHBseVN0eWxlQ29tbWFuZCBhbmQgdXNl
IGl0IGhlcmUKLSAgICBBU1NFUlQocHJvcGVydHlNaXNzaW5nT3JFcXVhbFRvTm9uZShzdHlsZSwg
Q1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbikgJiYgcHJvcGVydHlNaXNzaW5nT3JFcXVhbFRvTm9u
ZShzdHlsZSwgQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCkpOworICAg
IEFTU0VSVChwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLCBDU1NQcm9wZXJ0eVdl
YmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0KSk7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChj
b25zdCBTdHJpbmcsIGRpdlN0eWxlLCAoIjxkaXYgc3R5bGU9XCIiKSk7CiAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHN0eWxlU3Bhbk9wZW4sICgiPHNwYW4gc3R5bGU9XCIi
KSk7CiAgICAgb3V0LmFwcGVuZChpc0Jsb2NrID8gZGl2U3R5bGUgOiBzdHlsZVNwYW5PcGVuKTsK
QEAgLTUxOSwyNiArNTE3LDExIEBAIHN0YXRpYyBQYXNzUmVmUHRyPEVkaXRpbmdTdHlsZT4gc3R5
bGVGcm8KIAogc3RhdGljIGJvb2wgaXNFbGVtZW50UHJlc2VudGF0aW9uYWwoY29uc3QgTm9kZSog
bm9kZSkKIHsKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh1VGFnKSB8fCBub2RlLT5oYXNUYWdO
YW1lKHNUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc3RyaWtlVGFnKQotICAgICAgICB8fCBub2Rl
LT5oYXNUYWdOYW1lKGlUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZW1UYWcpIHx8IG5vZGUtPmhh
c1RhZ05hbWUoYlRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShzdHJvbmdUYWcpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBzdHlsZSA9IHN0eWxlRnJvbU1h
dGNoZWRSdWxlc0FuZElubGluZURlY2wobm9kZSk7Ci0gICAgcmV0dXJuIHN0eWxlICYmIHN0eWxl
LT5zdHlsZSgpICYmICFwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLT5zdHlsZSgp
LCBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uKTsKKyAgICByZXR1cm4gbm9kZS0+aGFzVGFnTmFt
ZSh1VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHNUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc3Ry
aWtlVGFnKQorICAgICAgICB8fCBub2RlLT5oYXNUYWdOYW1lKGlUYWcpIHx8IG5vZGUtPmhhc1Rh
Z05hbWUoZW1UYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoYlRhZykgfHwgbm9kZS0+aGFzVGFnTmFt
ZShzdHJvbmdUYWcpOwogfQogCi1zdGF0aWMgYm9vbCBzaG91bGRJbmNsdWRlV3JhcHBlckZvckZ1
bGx5U2VsZWN0ZWRSb290KE5vZGUqIGZ1bGx5U2VsZWN0ZWRSb290KQotewotICAgIGlmIChmdWxs
eVNlbGVjdGVkUm9vdC0+aXNFbGVtZW50Tm9kZSgpICYmIHN0YXRpY19jYXN0PEVsZW1lbnQqPihm
dWxseVNlbGVjdGVkUm9vdCktPmhhc0F0dHJpYnV0ZShiYWNrZ3JvdW5kQXR0cikpCi0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIAotICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IHN0eWxlID0gc3R5
bGVGcm9tTWF0Y2hlZFJ1bGVzQW5kSW5saW5lRGVjbChmdWxseVNlbGVjdGVkUm9vdCk7Ci0gICAg
aWYgKCFzdHlsZSB8fCAhc3R5bGUtPnN0eWxlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHJldHVybiBzdHlsZS0+c3R5bGUoKS0+Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0
eUJhY2tncm91bmRJbWFnZSkgfHwgc3R5bGUtPnN0eWxlKCktPmdldFByb3BlcnR5Q1NTVmFsdWUo
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpOwotfQotCi1zdGF0aWMgTm9kZSogaGlnaGVzdEFu
Y2VzdG9yVG9XcmFwTWFya3VwKGNvbnN0IFJhbmdlKiByYW5nZSwgTm9kZSogZnVsbHlTZWxlY3Rl
ZFJvb3QsIEVBbm5vdGF0ZUZvckludGVyY2hhbmdlIHNob3VsZEFubm90YXRlKQorc3RhdGljIE5v
ZGUqIGhpZ2hlc3RBbmNlc3RvclRvV3JhcE1hcmt1cChjb25zdCBSYW5nZSogcmFuZ2UsIEVBbm5v
dGF0ZUZvckludGVyY2hhbmdlIHNob3VsZEFubm90YXRlKQogewogICAgIEV4Y2VwdGlvbkNvZGUg
ZWM7CiAgICAgTm9kZSogY29tbW9uQW5jZXN0b3IgPSByYW5nZS0+Y29tbW9uQW5jZXN0b3JDb250
YWluZXIoZWMpOwpAQCAtNTczLDkgKzU1Niw2IEBAIHN0YXRpYyBOb2RlKiBoaWdoZXN0QW5jZXN0
b3JUb1dyYXBNYXJrdXAKICAgICBpZiAoTm9kZSAqZW5jbG9zaW5nQW5jaG9yID0gZW5jbG9zaW5n
Tm9kZVdpdGhUYWcoZmlyc3RQb3NpdGlvbkluTm9kZShzcGVjaWFsQ29tbW9uQW5jZXN0b3IgPyBz
cGVjaWFsQ29tbW9uQW5jZXN0b3IgOiBjb21tb25BbmNlc3RvciksIGFUYWcpKQogICAgICAgICBz
cGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBlbmNsb3NpbmdBbmNob3I7CiAKLSAgICBpZiAoc2hvdWxk
QW5ub3RhdGUgPT0gQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSAmJiBmdWxseVNlbGVjdGVkUm9vdCAm
JiBzaG91bGRJbmNsdWRlV3JhcHBlckZvckZ1bGx5U2VsZWN0ZWRSb290KGZ1bGx5U2VsZWN0ZWRS
b290KSkKLSAgICAgICAgc3BlY2lhbENvbW1vbkFuY2VzdG9yID0gZnVsbHlTZWxlY3RlZFJvb3Q7
Ci0KICAgICByZXR1cm4gc3BlY2lhbENvbW1vbkFuY2VzdG9yOwogfQogCkBAIC02MjAsNyArNjAw
LDcgQEAgU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBSYW5nZSogcmFuZ2UsIAogICAgIC8vIEZJ
WE1FOiBEbyB0aGlzIGZvciBhbGwgZnVsbHkgc2VsZWN0ZWQgYmxvY2tzLCBub3QganVzdCB0aGUg
Ym9keS4KICAgICBpZiAoYm9keSAmJiBhcmVSYW5nZXNFcXVhbChWaXNpYmxlU2VsZWN0aW9uOjpz
ZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUoYm9keSkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQo
KSwgcmFuZ2UpKQogICAgICAgICBmdWxseVNlbGVjdGVkUm9vdCA9IGJvZHk7Ci0gICAgTm9kZSog
c3BlY2lhbENvbW1vbkFuY2VzdG9yID0gaGlnaGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwKHVwZGF0
ZWRSYW5nZS5nZXQoKSwgZnVsbHlTZWxlY3RlZFJvb3QsIHNob3VsZEFubm90YXRlKTsKKyAgICBO
b2RlKiBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBoaWdoZXN0QW5jZXN0b3JUb1dyYXBNYXJrdXAo
dXBkYXRlZFJhbmdlLmdldCgpLCBzaG91bGRBbm5vdGF0ZSk7CiAgICAgU3R5bGVkTWFya3VwQWNj
dW11bGF0b3IgYWNjdW11bGF0b3Iobm9kZXMsIHNob3VsZFJlc29sdmVVUkxzLCBzaG91bGRBbm5v
dGF0ZSwgdXBkYXRlZFJhbmdlLmdldCgpLCBzcGVjaWFsQ29tbW9uQW5jZXN0b3IpOwogICAgIE5v
ZGUqIHBhc3RFbmQgPSB1cGRhdGVkUmFuZ2UtPnBhc3RMYXN0Tm9kZSgpOwogCkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiA5ODM4OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIyIEBACisyMDExLTEwLTI1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFRoZSBjb3B5IGFuZCBwYXN0ZSByZXN1bHQgaW4gbmVzdGVkIHNjcm9s
bGJhcnMgb24gaHR0cDovL2Rvam90b29sa2l0Lm9yZy93aWRnZXRzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc5OQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0byBjb3B5IGNvbnRl
bnRzIGluc2lkZSBhIGJvZHkgd2l0aCBiYWNrZ3JvdW5kIGFuZCB0ZXh0LWRlY29yYXRpb24gcHJv
cGVydGllcy4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIG5vdCBjb3B5IGJvZHkgZWxlbWVudC4K
KworICAgICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpbmUtYnJlYWstYmVmb3JlLXVu
ZGVybGluZWQtY29udGVudC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZWRpdGluZy9kZWxldGlu
Zy9kZWxldGluZy1saW5lLWJyZWFrLXByZXNlcnZlcy11bmRlcmxpbmUtY29sb3ItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC8xOTY0NC0yLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFj
a2dyb3VuZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2Fy
ZC9hdm9pZC1jb3B5aW5nLWJvZHktd2l0aC1iYWNrZ3JvdW5kLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvcGFzdGVib2FyZC9wcmVzZXJ2ZS11bmRlcmxpbmUtY29sb3ItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQvNTEzNDc1OS1l
eHBlY3RlZC50eHQ6CisKIDIwMTEtMTAtMjUgIExlYW5kcm8gUGVyZWlyYSAgPGxlYW5kcm9AcHJv
ZnVzaW9uLm1vYmk+CiAKICAgICAgICAgW0VGTF0gVW5yZXZpZXdlZC4gQWRkIENTUzEgcGl4ZWwg
YmFzZWxpbmVzLgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlu
ZS1icmVhay1iZWZvcmUtdW5kZXJsaW5lZC1jb250ZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saW5lLWJyZWFrLWJlZm9y
ZS11bmRlcmxpbmVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5ODM1OCkKKysrIExh
eW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWxpbmUtYnJlYWstYmVmb3JlLXVuZGVy
bGluZWQtY29udGVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw1IEBA
CiBUaGlzIHRlc3RzIGZvciBhIGJ1ZyB3aGVyZSB1bmRlcmxpbmVkIGNvbnRlbnQgd291bGQgbG9z
ZSBpdHMgdW5kZXJsaW5pbmd3aGVuIGRlbGV0aW5nIHRoZSBsaW5lIGJyZWFrIGJlZm9yZSB0aGUg
cGFyYWdyYXBoIHRoYXQgY29udGFpbmVkIGl0LgogfCAiVGhpcyBzaG91bGRuJ3QgYmUgdW5kZXJs
aW5lZC48I3NlbGVjdGlvbi1jYXJldD4iCi18IDxkaXY+Ci18ICAgaWQ9ImRpdiIKLXwgICBzdHls
ZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGRpc3BsYXk6IGlubGluZSAhaW1wb3J0YW50
OyAiCit8IDxzcGFuPgorfCAgIHN0eWxlPSJ0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgIgog
fCAgICJUaGlzIHNob3VsZCBiZSB1bmRlcmxpbmVkLiIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvZGVsZXRpbmctbGluZS1icmVhay1wcmVzZXJ2ZXMtdW5kZXJsaW5lLWNvbG9y
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L2RlbGV0aW5nLWxpbmUtYnJlYWstcHJlc2VydmVzLXVuZGVybGluZS1jb2xvci1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDk4MzU4KQorKysgTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxl
dGluZy1saW5lLWJyZWFrLXByZXNlcnZlcy11bmRlcmxpbmUtY29sb3ItZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xMyw3ICsxMyw1IEBAIEFmdGVyOgogfCA8ZGl2PgogfCAgICJUaGlz
IHNob3VsZCBub3QgYmUgdW5kZXJsaW5lZC48I3NlbGVjdGlvbi1jYXJldD4iCiB8ICAgPHNwYW4+
Ci18ICAgICBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGNvbG9yOiBibHVlOyIK
LXwgICAgIDxzcGFuPgotfCAgICAgICBzdHlsZT0iY29sb3I6cmVkOyIKLXwgICAgICAgIlRoaXMg
c2hvdWxkIGJlIHVuZGVybGluZWQuIgorfCAgICAgc3R5bGU9ImNvbG9yOiByZWQ7IHRleHQtZGVj
b3JhdGlvbjogdW5kZXJsaW5lOyAiCit8ICAgICAiVGhpcyBzaG91bGQgYmUgdW5kZXJsaW5lZC4i
CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvMTk2NDQtMi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzE5NjQ0LTIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5ODM1OCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC8xOTY0NC0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAot
PGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4NywgMTg3LCAxODcpOyAiPlRoaXMg
dGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgd2Ugd3JhcCBjb3BpZWQgbWFya3VwIGluIGEgZGl2IHRv
IGhvbGQgYSBmdWxseSBzZWxlY3RlZCBib2R5J3MgYXR0cmlidXRlcyBhbmQgc3R5bGUgd2hlbiB0
aGUgdGhhdCBib2R5IGhhcyBhIGJhY2tncm91bmQtY29sb3IuIElmIHlvdSBjb3B5IGFuZCBwYXN0
ZSB0aGlzIHRleHQgaW50byBNYWlsLCBpdCBzaG91bGQgaGF2ZSBhIGdyZXkgYmFja2dyb3VuZC48
L2Rpdj4KKzxzcGFuIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMTg3LCAxODcsIDE4Nyk7
ICI+VGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCB3ZSB3cmFwIGNvcGllZCBtYXJrdXAgaW4g
YSBkaXYgdG8gaG9sZCBhIGZ1bGx5IHNlbGVjdGVkIGJvZHkncyBhdHRyaWJ1dGVzIGFuZCBzdHls
ZSB3aGVuIHRoZSB0aGF0IGJvZHkgaGFzIGEgYmFja2dyb3VuZC1jb2xvci4gSWYgeW91IGNvcHkg
YW5kIHBhc3RlIHRoaXMgdGV4dCBpbnRvIE1haWwsIGl0IHNob3VsZCBoYXZlIGEgZ3JleSBiYWNr
Z3JvdW5kLjwvc3Bhbj4KSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9hdm9p
ZC1jb3B5aW5nLWJvZHktd2l0aC1iYWNrZ3JvdW5kLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgt
YmFja2dyb3VuZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjkgQEAKK1RoaXMgdGVzdCBjb3BpZXMgYW5k
IHBhc3RlcyBjb250ZW50IGluc2lkZSBhIGJvZHkgd2l0aCBiYWNrZ3JvdW5kIGFuZCB0ZXh0LWRl
Y29yYXRpb24gcHJvcGVydGllcy4gV2ViS2l0IHNob3VsZCBub3QgbmVzdCBib2R5LgorfCAiCisi
Cit8IDx1bD4KK3wgICAiCisiCit8ICAgPGxpPgorfCAgICAgImhlbGxvLCB3b3JsZCAiCit8ICAg
ICA8YT4KK3wgICAgICAgaHJlZj0iaHR0cDovL3d3dy53ZWJraXQub3JnLyIKK3wgICAgICAgIldl
YktpdCIKK3wgICAiCisiCit8ICAgPGxpPgorfCAgICAgIkNvcGllZCBjb250ZW50IgorfCAgIDxs
aT4KK3wgICAgICJoZWxsbywgd29ybGQiCit8ICAgICAiwqAiCit8ICAgICA8YT4KK3wgICAgICAg
aHJlZj0iaHR0cDovL3d3dy53ZWJraXQub3JnLyIKK3wgICAgICAgIldlYktpdCIKK3wgICA8bGk+
Cit8ICAgICAiQ29waWVkIGNvbnRlbnQ8I3NlbGVjdGlvbi1jYXJldD4iCit8ICAgIgorIgorfCAi
CisiCit8ICIKKyIKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9hdm9pZC1j
b3B5aW5nLWJvZHktd2l0aC1iYWNrZ3JvdW5kLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZWRpdGluZy9wYXN0ZWJvYXJkL2F2b2lkLWNvcHlpbmctYm9keS13aXRoLWJhY2tncm91bmQu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9hdm9p
ZC1jb3B5aW5nLWJvZHktd2l0aC1iYWNrZ3JvdW5kLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHkg
eworICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OworICAgIHdpZHRoOiA1MDBweDsKKyAgICBo
ZWlnaHQ6IDIwMHB4OworICAgIG92ZXJmbG93LXg6IGF1dG87IG92ZXJmbG93LXk6YXV0bzsKKyAg
ICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eSBzdHlsZT0iY29sb3I6IHJnYig1MSwgNTEsIDUxKTsgIiBjb250ZW50ZWRpdGFibGU9InRydWUi
PgorPHVsPgorPGxpPmhlbGxvLCB3b3JsZCA8YSBocmVmPSJodHRwOi8vd3d3LndlYmtpdC5vcmcv
Ij5XZWJLaXQ8L2E+PC9saT4KKzxsaT5Db3BpZWQgY29udGVudDwvbGk+Cis8L3VsPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFzLW1hcmt1cC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCitkb2N1bWVudC5ib2R5LmZvY3VzKCk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnU2Vs
ZWN0QWxsJywgZmFsc2UsIG51bGwpOworZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknLCBmYWxz
ZSwgbnVsbCk7CitnZXRTZWxlY3Rpb24oKS5tb2RpZnkoJ01vdmUnLCAnRm9yd2FyZCcsICdDaGFy
YWN0ZXInKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScsIGZhbHNlLCBudWxsKTsKKwor
d2hpbGUgKHNjcmlwdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdCcpKQorICAgIHNj
cmlwdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHNjcmlwdCk7CisKK01hcmt1cC5kZXNjcmlwdGlv
bignVGhpcyB0ZXN0IGNvcGllcyBhbmQgcGFzdGVzIGNvbnRlbnQgaW5zaWRlIGEgYm9keSB3aXRo
IGJhY2tncm91bmQgYW5kIHRleHQtZGVjb3JhdGlvbiBwcm9wZXJ0aWVzLiBXZWJLaXQgc2hvdWxk
IG5vdCBuZXN0IGJvZHkuJyk7CitNYXJrdXAuZHVtcChkb2N1bWVudC5ib2R5KTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvcHJlc2VydmUtdW5kZXJsaW5lLWNvbG9yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvcHJlc2VydmUtdW5kZXJsaW5lLWNvbG9yLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gOTgzNTgpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvcHJlc2VydmUtdW5kZXJsaW5lLWNvbG9yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMSw3ICsxLDUgQEAKIFRoaXMgdGVzdCBmb3IgYSBidWcgY29weS9wYXN0aW5nIHVuZGVy
bGluZWQgdGV4dC4gVGhlIGNvbG9yIG9mIHRoZSB1bmRlcmxpbmUgc2hvdWxkIGJlIHRoZSBjb2xv
ciBvZiB0aGUgZWxlbWVudCB0aGF0IGhhcyB0aGUgdGV4dC1kZWNvcmF0aW9uIHByb3BlcnR5Lgog
fCA8c3Bhbj4KLXwgICBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IGNvbG9yOiBi
bHVlOyAiCi18ICAgPHNwYW4+Ci18ICAgICBzdHlsZT0iY29sb3I6IHJlZDsgIgotfCAgICAgIlRo
aXMgc2hvdWxkIGJlIHVuZGVybGluZWQuPCNzZWxlY3Rpb24tY2FyZXQ+IgorfCAgIHN0eWxlPSJj
b2xvcjogcmdiKDI1NSwgMCwgMCk7IHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyAiCit8ICAg
IlRoaXMgc2hvdWxkIGJlIHVuZGVybGluZWQuPCNzZWxlY3Rpb24tY2FyZXQ+IgogfCA8YnI+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkLzUxMzQ3NTkt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0
aW5nL3Bhc3RlYm9hcmQvNTEzNDc1OS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk4MzU4KQorKysg
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvcGFzdGVib2FyZC81MTM0NzU5LWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTcsOCArMTcsNyBAQCBsYXllciBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAz
OXgxOAogICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzk6ICJIZWxsbyAiCiAg
ICAgICAgICAgUmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDQ1eDE4Ci0gICAgICAg
ICAgICBSZW5kZXJJbmxpbmUge0RJVn0gYXQgKDAsMCkgc2l6ZSA0NXgxOAotICAgICAgICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDM5LDApIHNpemUgNDV4MTgKLSAgICAgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMzksMCkgd2lkdGggNDU6ICJXb3JsZCEiCisgICAgICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDM5LDApIHNpemUgNDV4MTgKKyAgICAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDM5LDApIHdpZHRoIDQ1OiAiV29ybGQhIgogICAgICAgICBSZW5kZXJCbG9jayAoYW5v
bnltb3VzKSBhdCAoMCwxOCkgc2l6ZSA3ODR4MAotY2FyZXQ6IHBvc2l0aW9uIDYgb2YgY2hpbGQg
MCB7I3RleHR9IG9mIGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMCB7
RElWfSBvZiBjaGlsZCAyIHtESVZ9IG9mIGJvZHkKK2NhcmV0OiBwb3NpdGlvbiA2IG9mIGNoaWxk
IDAgeyN0ZXh0fSBvZiBjaGlsZCAxIHtTUEFOfSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDIg
e0RJVn0gb2YgYm9keQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112910</attachid>
            <date>2011-10-28 14:23:45 -0700</date>
            <delta_ts>2011-10-28 22:27:12 -0700</delta_ts>
            <desc>Updated per comment</desc>
            <filename>bug-70799-20111028142344.patch</filename>
            <type>text/plain</type>
            <size>20490</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4NzM3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzggQEAKKzIwMTEtMTAtMjggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVGhlIGNvcHkgYW5kIHBhc3RlIHJl
c3VsdCBpbiBuZXN0ZWQgc2Nyb2xsYmFycyBvbiBodHRwOi8vZG9qb3Rvb2xraXQub3JnL3dpZGdl
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzk5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGJ1
ZyB3YXMgY2F1c2VkIGJ5IFdlYktpdCdzIHRyZWF0aW5nIGEgZnVsbHkgc2VsZWN0ZWQgcm9vdCB3
aXRoIGJhY2tncm91bmQgcHJvcGVydHkgYXMgYSBzcGVjaWFsIGNvbW1vbiBhbmNlc3Rvci4KKyAg
ICAgICAgQSB2YXJpYW50IG9mIHRoaXMgYnVnIHdhcyBjYXVzZWQgYnkgdHJlYXRpbmcgYW55IGVs
ZW1lbnQgd2l0aCB0ZXh0LWRlY29yYXRpb24gcHJvcGVydHkgYXMgYSBwcmVzZW50YXRpb25hbCBl
bGVtZW50LgorCisgICAgICAgIEZpeGVkIHRoZSBhYm92ZSB0d28gYnVncyBieSBub3Qgc2VyaWFs
aXppbmcgdGhlIHNhaWQgbm9kZXMuIFRoZSBlZmZlY3RpdmUgYmFja2dyb3VuZCBjb2xvciB3YXMg
YWxyZWFkeSBzZXJpYWxpemVkCisgICAgICAgIGJ5IHdyYXBwaW5nU3R5bGVGb3JTZXJpYWxpemF0
aW9uLCB0aGVyZSB3YXMgbm90aGluZyB0byBiZSBkb25lIGJlc2lkZXMgc3RvcCBpbmNsdWRpbmcg
aXQgaW4gaGlnaGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwLgorCisgICAgICAgIEZvciB0ZXh0LWRl
Y29yYXRpb24gcHJvcGVydHksIGFkZGVkIHRoZSBsb2dpYyB0byBjb21wdXRlIHRoZSBlZmZlY3Rp
dmUgdmFsdWUgaW4gRWRpdGluZ1N0eWxlOjppbml0LiBBbHNvIHRyZWF0IGl0CisgICAgICAgIGFz
IGEgbm9uLWluaGVyaXRhYmxlIGVkaXRpbmcgcHJvcGVydHkgc28gdGhhdCB0aGUgcmVzdCBvZiBF
ZGl0aW5nU3R5bGUganVzdCB3b3Jrcy4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Bhc3RlYm9h
cmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC5odG1sCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRpbmdTdHlsZS5jcHA6IEFkZGVkIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24g
dG8gdGhlIGxpc3Qgb2YgZWRpdGluZyBwcm9wZXJ0aWVzLgorICAgICAgICAoV2ViQ29yZTo6Y29w
eUVkaXRpbmdQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6aW5p
dCk6IENvbXB1dGUgdGhlIGVmZmVjdGl2ZSB0ZXh0IGRlY29yYXRpb24gd2hlbiBwcm9wZXJ0aWVz
VG9JbmNsdWRlIGlzCisgICAgICAgIEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QuCisgICAgICAg
IChXZWJDb3JlOjpFZGl0aW5nU3R5bGU6OnByZXBhcmVUb0FwcGx5QXQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdGluZ1N0eWxlOjptZXJnZUlubGluZVN0eWxlT2ZFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRpbmdTdHlsZTo6d3JhcHBpbmdTdHlsZUZvclNlcmlhbGl6YXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdGluZ1N0eWxlOjpyZW1vdmVTdHlsZUZyb21SdWxlc0FuZENv
bnRleHQpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdGluZ1N0eWxlLmg6IFJlbmFtZWQgRWRpdGlu
Z0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvckluRWZmZWN0IHRvCisgICAg
ICAgIEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QuCisgICAgICAgICogZWRpdGluZy9tYXJrdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFN0
eWxlTm9kZU9wZW5UYWcpOiBSZW1vdmVkIGFuIGFzc2VydGlvbiB0aGF0J3Mgbm8gbG9uZ2VyIHZh
bGlkLgorICAgICAgICAoV2ViQ29yZTo6aXNFbGVtZW50UHJlc2VudGF0aW9uYWwpOiBEb24ndCBj
b25zaWRlciBhbiBlbGVtZW50IHdpdGggdGV4dC1kZWNvcmF0aW9uIGFzIGEgcHJlc2VudGF0aW9u
YWwgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6OmhpZ2hlc3RBbmNlc3RvclRvV3JhcE1hcmt1
cCk6IERvbid0IGNvbnNpZGVyIGZ1bGx5IHNlbGVjdGVkIHJvb3QgYXMgYSBzcGVjaWFsIGNvbW1v
biBhbmNlc3RvciBldmVyLgorICAgICAgICBCYWNrZ3JvdW5kIGNvbG9yIGlzIGNvbXB1dGVkIHBy
b3BlcnR5IHdoZW4gd2UgY29tcHV0ZSB0aGUgd3JhcHBpbmcgc3R5bGUuCisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVNYXJrdXApOgorCiAyMDExLTEwLTI4ICBBbm5hIENhdmVuZGVyICA8YW5uYWNj
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbXBsZW1lbnQgbG9hZCBub3RpZmljYXRpb24gYW5k
IGV2ZW50cyBmb3IgPHRyYWNrPi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdGlu
Z1N0eWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRpbmdT
dHlsZS5jcHAJKHJldmlzaW9uIDk4NzM3KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
aW5nU3R5bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIC8vIGUuZy4gd2hlbiBhIHVzZXIgaW5zZXJ0cyBhIG5ldyBwYXJhZ3JhcGgsIGFs
bCBwcm9wZXJ0aWVzIGxpc3RlZCBoZXJlIG11c3QgYmUgY29waWVkIHRvIHRoZSBuZXcgcGFyYWdy
YXBoLgogc3RhdGljIGNvbnN0IGludCBlZGl0aW5nUHJvcGVydGllc1tdID0gewogICAgIENTU1By
b3BlcnR5QmFja2dyb3VuZENvbG9yLAorICAgIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24sCiAK
ICAgICAvLyBDU1MgaW5oZXJpdGFibGUgcHJvcGVydGllcwogICAgIENTU1Byb3BlcnR5Q29sb3Is
CkBAIC03OSwxMSArODAsMTEgQEAgc3RhdGljIGNvbnN0IGludCBlZGl0aW5nUHJvcGVydGllc1td
ID0gewogICAgIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZVdpZHRoLAogfTsKIAotc3RhdGlj
IFBhc3NSZWZQdHI8Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24+IGNvcHlFZGl0aW5nUHJvcGVy
dGllcyhDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgYm9vbCBpbmNsdWRlQmFja2dyb3VuZENv
bG9yID0gZmFsc2UpCitzdGF0aWMgUGFzc1JlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlv
bj4gY29weUVkaXRpbmdQcm9wZXJ0aWVzKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBib29s
IGluY2x1ZGVOb25Jbmhlcml0YWJsZVByb3BlcnRpZXMgPSBmYWxzZSkKIHsKLSAgICBpZiAoaW5j
bHVkZUJhY2tncm91bmRDb2xvcikKKyAgICBpZiAoaW5jbHVkZU5vbkluaGVyaXRhYmxlUHJvcGVy
dGllcykKICAgICAgICAgcmV0dXJuIHN0eWxlLT5jb3B5UHJvcGVydGllc0luU2V0KGVkaXRpbmdQ
cm9wZXJ0aWVzLCBXVEZfQVJSQVlfTEVOR1RIKGVkaXRpbmdQcm9wZXJ0aWVzKSk7Ci0gICAgcmV0
dXJuIHN0eWxlLT5jb3B5UHJvcGVydGllc0luU2V0KGVkaXRpbmdQcm9wZXJ0aWVzICsgMSwgV1RG
X0FSUkFZX0xFTkdUSChlZGl0aW5nUHJvcGVydGllcykgLSAxKTsKKyAgICByZXR1cm4gc3R5bGUt
PmNvcHlQcm9wZXJ0aWVzSW5TZXQoZWRpdGluZ1Byb3BlcnRpZXMgKyAyLCBXVEZfQVJSQVlfTEVO
R1RIKGVkaXRpbmdQcm9wZXJ0aWVzKSAtIDIpOwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgaXNF
ZGl0aW5nUHJvcGVydHkoaW50IGlkKQpAQCAtMzYyLDkgKzM2MywxMSBAQCB2b2lkIEVkaXRpbmdT
dHlsZTo6aW5pdChOb2RlKiBub2RlLCBQcm9wCiAgICAgUmVmUHRyPENTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbj4gY29tcHV0ZWRTdHlsZUF0UG9zaXRpb24gPSBjb21wdXRlZFN0eWxlKG5vZGUp
OwogICAgIG1fbXV0YWJsZVN0eWxlID0gcHJvcGVydGllc1RvSW5jbHVkZSA9PSBBbGxQcm9wZXJ0
aWVzICYmIGNvbXB1dGVkU3R5bGVBdFBvc2l0aW9uID8gY29tcHV0ZWRTdHlsZUF0UG9zaXRpb24t
PmNvcHkoKSA6IGVkaXRpbmdTdHlsZUZyb21Db21wdXRlZFN0eWxlKGNvbXB1dGVkU3R5bGVBdFBv
c2l0aW9uKTsKIAotICAgIGlmIChwcm9wZXJ0aWVzVG9JbmNsdWRlID09IEVkaXRpbmdJbmhlcml0
YWJsZVByb3BlcnRpZXNBbmRCYWNrZ3JvdW5kQ29sb3JJbkVmZmVjdCkgeworICAgIGlmIChwcm9w
ZXJ0aWVzVG9JbmNsdWRlID09IEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QpIHsKICAgICAgICAg
aWYgKFJlZlB0cjxDU1NWYWx1ZT4gdmFsdWUgPSBiYWNrZ3JvdW5kQ29sb3JJbkVmZmVjdChub2Rl
KSkKICAgICAgICAgICAgIG1fbXV0YWJsZVN0eWxlLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eUJh
Y2tncm91bmRDb2xvciwgdmFsdWUtPmNzc1RleHQoKSk7CisgICAgICAgIGlmIChSZWZQdHI8Q1NT
VmFsdWU+IHZhbHVlID0gY29tcHV0ZWRTdHlsZUF0UG9zaXRpb24tPmdldFByb3BlcnR5Q1NTVmFs
dWUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCkpCisgICAgICAgICAg
ICBtX211dGFibGVTdHlsZS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbiwg
dmFsdWUtPmNzc1RleHQoKSk7CiAgICAgfQogCiAgICAgaWYgKG5vZGUgJiYgbm9kZS0+Y29tcHV0
ZWRTdHlsZSgpKSB7CkBAIC04NTQsNyArODU3LDcgQEAgdm9pZCBFZGl0aW5nU3R5bGU6OnByZXBh
cmVUb0FwcGx5QXQoY29ucwogICAgIC8vIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpoYW5kbGVT
dHlsZVNwYW5zKCkgcmVxdWlyZXMgdGhhdCB0aGlzIGZ1bmN0aW9uIG9ubHkgcmVtb3ZlcyB0aGUg
ZWRpdGluZyBzdHlsZS4KICAgICAvLyBJZiB0aGlzIGZ1bmN0aW9uIHdhcyBtb2RpZmllZCBpbiB0
aGUgZnV0dXJlIHRvIGRlbGV0ZSBhbGwgcmVkdW5kYW50IHByb3BlcnRpZXMsIHRoZW4gYWRkIGEg
Ym9vbGVhbiB2YWx1ZSB0byBpbmRpY2F0ZQogICAgIC8vIHdoaWNoIG9uZSBvZiBlZGl0aW5nU3R5
bGVBdFBvc2l0aW9uIG9yIGNvbXB1dGVkU3R5bGUgaXMgY2FsbGVkLgotICAgIFJlZlB0cjxFZGl0
aW5nU3R5bGU+IHN0eWxlID0gRWRpdGluZ1N0eWxlOjpjcmVhdGUocG9zaXRpb24sIEVkaXRpbmdJ
bmhlcml0YWJsZVByb3BlcnRpZXNBbmRCYWNrZ3JvdW5kQ29sb3JJbkVmZmVjdCk7CisgICAgUmVm
UHRyPEVkaXRpbmdTdHlsZT4gc3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShwb3NpdGlvbiwg
RWRpdGluZ1Byb3BlcnRpZXNJbkVmZmVjdCk7CiAKICAgICBSZWZQdHI8Q1NTVmFsdWU+IHVuaWNv
ZGVCaWRpOwogICAgIFJlZlB0cjxDU1NWYWx1ZT4gZGlyZWN0aW9uOwpAQCAtOTAwLDggKzkwMyw4
IEBAIHZvaWQgRWRpdGluZ1N0eWxlOjptZXJnZUlubGluZVN0eWxlT2ZFbGUKICAgICAgICAgbWVy
Z2VTdHlsZShlbGVtZW50LT5pbmxpbmVTdHlsZURlY2woKSwgbW9kZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICBjYXNlIE9ubHlFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzOgotICAgIGNhc2Ug
RWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvckluRWZmZWN0Ogot
ICAgICAgICBtZXJnZVN0eWxlKGNvcHlFZGl0aW5nUHJvcGVydGllcyhlbGVtZW50LT5pbmxpbmVT
dHlsZURlY2woKSwgcHJvcGVydGllc1RvSW5jbHVkZSA9PSBFZGl0aW5nSW5oZXJpdGFibGVQcm9w
ZXJ0aWVzQW5kQmFja2dyb3VuZENvbG9ySW5FZmZlY3QpLmdldCgpLCBtb2RlKTsKKyAgICBjYXNl
IEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3Q6CisgICAgICAgIG1lcmdlU3R5bGUoY29weUVkaXRp
bmdQcm9wZXJ0aWVzKGVsZW1lbnQtPmlubGluZVN0eWxlRGVjbCgpLCBwcm9wZXJ0aWVzVG9JbmNs
dWRlID09IEVkaXRpbmdQcm9wZXJ0aWVzSW5FZmZlY3QpLmdldCgpLCBtb2RlKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIH0KQEAgLTkzNiw3ICs5MzksNyBAQCBQYXNzUmVmUHRyPEVkaXRpbmdT
dHlsZT4gRWRpdGluZ1N0eWxlOjp3CiB7CiAgICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gd3JhcHBp
bmdTdHlsZTsKICAgICBpZiAoc2hvdWxkQW5ub3RhdGUpIHsKLSAgICAgICAgd3JhcHBpbmdTdHls
ZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKGNvbnRleHQsIEVkaXRpbmdTdHlsZTo6RWRpdGluZ0lu
aGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvckluRWZmZWN0KTsKKyAgICAgICAg
d3JhcHBpbmdTdHlsZSA9IEVkaXRpbmdTdHlsZTo6Y3JlYXRlKGNvbnRleHQsIEVkaXRpbmdTdHls
ZTo6RWRpdGluZ1Byb3BlcnRpZXNJbkVmZmVjdCk7CiAKICAgICAgICAgLy8gU3R5bGVzIHRoYXQg
TWFpbCBibG9ja3F1b3RlcyBjb250cmlidXRlIHNob3VsZCBvbmx5IGJlIHBsYWNlZCBvbiB0aGUg
TWFpbCBibG9ja3F1b3RlLAogICAgICAgICAvLyB0byBoZWxwIHVzIGRpZmZlcmVudGlhdGUgdGhv
c2Ugc3R5bGVzIGZyb20gb25lcyB0aGF0IHRoZSB1c2VyIGhhcyBhcHBsaWVkLgpAQCAtOTU1LDcg
Kzk1OCw3IEBAIFBhc3NSZWZQdHI8RWRpdGluZ1N0eWxlPiBFZGl0aW5nU3R5bGU6OncKICAgICBm
b3IgKE5vZGUqIG5vZGUgPSBjb250ZXh0OyBub2RlICYmICFub2RlLT5pc0RvY3VtZW50Tm9kZSgp
OyBub2RlID0gbm9kZS0+cGFyZW50Tm9kZSgpKSB7CiAgICAgICAgIGlmIChub2RlLT5pc1N0eWxl
ZEVsZW1lbnQoKSkgewogICAgICAgICAgICAgd3JhcHBpbmdTdHlsZS0+bWVyZ2VJbmxpbmVBbmRJ
bXBsaWNpdFN0eWxlT2ZFbGVtZW50KHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihub2RlKSwg
RWRpdGluZ1N0eWxlOjpEb05vdE92ZXJyaWRlVmFsdWVzLAotICAgICAgICAgICAgICAgIEVkaXRp
bmdTdHlsZTo6RWRpdGluZ0luaGVyaXRhYmxlUHJvcGVydGllc0FuZEJhY2tncm91bmRDb2xvcklu
RWZmZWN0KTsKKyAgICAgICAgICAgICAgICBFZGl0aW5nU3R5bGU6OkVkaXRpbmdQcm9wZXJ0aWVz
SW5FZmZlY3QpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDY4LDcgKzEwNzEsNyBAQCB2b2lk
IEVkaXRpbmdTdHlsZTo6cmVtb3ZlU3R5bGVGcm9tUnVsZXNBCiAgICAgICAgIG1fbXV0YWJsZVN0
eWxlID0gZ2V0UHJvcGVydGllc05vdEluKG1fbXV0YWJsZVN0eWxlLmdldCgpLCBzdHlsZUZyb21N
YXRjaGVkUnVsZXMuZ2V0KCkpOwogCiAgICAgLy8gMi4gUmVtb3ZlIHN0eWxlIHByZXNlbnQgaW4g
Y29udGV4dCBhbmQgbm90IG92ZXJyaWRlbiBieSBtYXRjaGVkIHJ1bGVzLgotICAgIFJlZlB0cjxF
ZGl0aW5nU3R5bGU+IGNvbXB1dGVkU3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShjb250ZXh0
LCBFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzQW5kQmFja2dyb3VuZENvbG9ySW5FZmZlY3Qp
OworICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+IGNvbXB1dGVkU3R5bGUgPSBFZGl0aW5nU3R5bGU6
OmNyZWF0ZShjb250ZXh0LCBFZGl0aW5nUHJvcGVydGllc0luRWZmZWN0KTsKICAgICBpZiAoY29t
cHV0ZWRTdHlsZS0+bV9tdXRhYmxlU3R5bGUpIHsKICAgICAgICAgY29tcHV0ZWRTdHlsZS0+cmVt
b3ZlUHJvcGVydGllc0luRWxlbWVudERlZmF1bHRTdHlsZShlbGVtZW50KTsKICAgICAgICAgbV9t
dXRhYmxlU3R5bGUgPSBnZXRQcm9wZXJ0aWVzTm90SW4obV9tdXRhYmxlU3R5bGUuZ2V0KCksIGNv
bXB1dGVkU3R5bGUtPm1fbXV0YWJsZVN0eWxlLmdldCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdGluZ1N0eWxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0aW5nU3R5bGUuaAkocmV2aXNpb24gOTg3MzcpCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRpbmdTdHlsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIGVu
dW0gVHJpU3RhdGUgeyBGYWxzZVRyaVN0YXRlLCBUcnVlVHJpU3QKIGNsYXNzIEVkaXRpbmdTdHls
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEVkaXRpbmdTdHlsZT4gewogcHVibGljOgogCi0gICAgZW51
bSBQcm9wZXJ0aWVzVG9JbmNsdWRlIHsgQWxsUHJvcGVydGllcywgT25seUVkaXRpbmdJbmhlcml0
YWJsZVByb3BlcnRpZXMsIEVkaXRpbmdJbmhlcml0YWJsZVByb3BlcnRpZXNBbmRCYWNrZ3JvdW5k
Q29sb3JJbkVmZmVjdCB9OworICAgIGVudW0gUHJvcGVydGllc1RvSW5jbHVkZSB7IEFsbFByb3Bl
cnRpZXMsIE9ubHlFZGl0aW5nSW5oZXJpdGFibGVQcm9wZXJ0aWVzLCBFZGl0aW5nUHJvcGVydGll
c0luRWZmZWN0IH07CiAgICAgZW51bSBTaG91bGRQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24geyBQ
cmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24sIERvTm90UHJlc2VydmVXcml0aW5nRGlyZWN0aW9uIH07
CiAgICAgZW51bSBTaG91bGRFeHRyYWN0TWF0Y2hpbmdTdHlsZSB7IEV4dHJhY3RNYXRjaGluZ1N0
eWxlLCBEb05vdEV4dHJhY3RNYXRjaGluZ1N0eWxlIH07CiAgICAgc3RhdGljIGZsb2F0IE5vRm9u
dERlbHRhOwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAkocmV2aXNpb24gOTg3Mzcp
CisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4NSw5ICsxODUsOCBAQCB2b2lkIFN0eWxlZE1hcmt1cEFjY3VtdWxhdG9yOjp3cmFwV2l0aFN0
CiAKIHZvaWQgU3R5bGVkTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFN0eWxlTm9kZU9wZW5UYWco
U3RyaW5nQnVpbGRlciYgb3V0LCBDU1NTdHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgRG9jdW1lbnQq
IGRvY3VtZW50LCBib29sIGlzQmxvY2spCiB7Ci0gICAgLy8gQWxsIHRleHQtZGVjb3JhdGlvbi1y
ZWxhdGVkIGVsZW1lbnRzIHNob3VsZCBoYXZlIGJlZW4gdHJlYXRlZCBhcyBzcGVjaWFsIGFuY2Vz
dG9ycwotICAgIC8vIElmIHdlIGV2ZXIgaGl0IHRoaXMgQVNTRVJULCB3ZSBzaG91bGQgZXhwb3J0
IFN0eWxlQ2hhbmdlIGluIEFwcGx5U3R5bGVDb21tYW5kIGFuZCB1c2UgaXQgaGVyZQotICAgIEFT
U0VSVChwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLCBDU1NQcm9wZXJ0eVRleHRE
ZWNvcmF0aW9uKSAmJiBwcm9wZXJ0eU1pc3NpbmdPckVxdWFsVG9Ob25lKHN0eWxlLCBDU1NQcm9w
ZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0KSk7CisgICAgLy8gd3JhcHBpbmdTdHls
ZUZvclNlcmlhbGl6YXRpb24gc2hvdWxkIGhhdmUgcmVtb3ZlZCAtd2Via2l0LXRleHQtZGVjb3Jh
dGlvbnMtaW4tZWZmZWN0CisgICAgQVNTRVJUKHByb3BlcnR5TWlzc2luZ09yRXF1YWxUb05vbmUo
c3R5bGUsIENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QpKTsKICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgZGl2U3R5bGUsICgiPGRpdiBzdHlsZT1c
IiIpKTsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3R5bGVTcGFuT3Bl
biwgKCI8c3BhbiBzdHlsZT1cIiIpKTsKICAgICBvdXQuYXBwZW5kKGlzQmxvY2sgPyBkaXZTdHls
ZSA6IHN0eWxlU3Bhbk9wZW4pOwpAQCAtNTE5LDI2ICs1MTgsMTEgQEAgc3RhdGljIFBhc3NSZWZQ
dHI8RWRpdGluZ1N0eWxlPiBzdHlsZUZybwogCiBzdGF0aWMgYm9vbCBpc0VsZW1lbnRQcmVzZW50
YXRpb25hbChjb25zdCBOb2RlKiBub2RlKQogewotICAgIGlmIChub2RlLT5oYXNUYWdOYW1lKHVU
YWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc1RhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShzdHJpa2VU
YWcpCi0gICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUoaVRhZykgfHwgbm9kZS0+aGFzVGFnTmFt
ZShlbVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShiVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHN0
cm9uZ1RhZykpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIFJlZlB0cjxFZGl0aW5nU3R5bGU+
IHN0eWxlID0gc3R5bGVGcm9tTWF0Y2hlZFJ1bGVzQW5kSW5saW5lRGVjbChub2RlKTsKLSAgICBy
ZXR1cm4gc3R5bGUgJiYgc3R5bGUtPnN0eWxlKCkgJiYgIXByb3BlcnR5TWlzc2luZ09yRXF1YWxU
b05vbmUoc3R5bGUtPnN0eWxlKCksIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb24pOworICAgIHJl
dHVybiBub2RlLT5oYXNUYWdOYW1lKHVUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoc1RhZykgfHwg
bm9kZS0+aGFzVGFnTmFtZShzdHJpa2VUYWcpCisgICAgICAgIHx8IG5vZGUtPmhhc1RhZ05hbWUo
aVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShlbVRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShiVGFn
KSB8fCBub2RlLT5oYXNUYWdOYW1lKHN0cm9uZ1RhZyk7CiB9CiAKLXN0YXRpYyBib29sIHNob3Vs
ZEluY2x1ZGVXcmFwcGVyRm9yRnVsbHlTZWxlY3RlZFJvb3QoTm9kZSogZnVsbHlTZWxlY3RlZFJv
b3QpCi17Ci0gICAgaWYgKGZ1bGx5U2VsZWN0ZWRSb290LT5pc0VsZW1lbnROb2RlKCkgJiYgc3Rh
dGljX2Nhc3Q8RWxlbWVudCo+KGZ1bGx5U2VsZWN0ZWRSb290KS0+aGFzQXR0cmlidXRlKGJhY2tn
cm91bmRBdHRyKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgUmVmUHRyPEVkaXRp
bmdTdHlsZT4gc3R5bGUgPSBzdHlsZUZyb21NYXRjaGVkUnVsZXNBbmRJbmxpbmVEZWNsKGZ1bGx5
U2VsZWN0ZWRSb290KTsKLSAgICBpZiAoIXN0eWxlIHx8ICFzdHlsZS0+c3R5bGUoKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHN0eWxlLT5zdHlsZSgpLT5nZXRQcm9wZXJ0
eUNTU1ZhbHVlKENTU1Byb3BlcnR5QmFja2dyb3VuZEltYWdlKSB8fCBzdHlsZS0+c3R5bGUoKS0+
Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvcik7Ci19Ci0KLXN0
YXRpYyBOb2RlKiBoaWdoZXN0QW5jZXN0b3JUb1dyYXBNYXJrdXAoY29uc3QgUmFuZ2UqIHJhbmdl
LCBOb2RlKiBmdWxseVNlbGVjdGVkUm9vdCwgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxk
QW5ub3RhdGUpCitzdGF0aWMgTm9kZSogaGlnaGVzdEFuY2VzdG9yVG9XcmFwTWFya3VwKGNvbnN0
IFJhbmdlKiByYW5nZSwgRUFubm90YXRlRm9ySW50ZXJjaGFuZ2Ugc2hvdWxkQW5ub3RhdGUpCiB7
CiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICBOb2RlKiBjb21tb25BbmNlc3RvciA9IHJhbmdl
LT5jb21tb25BbmNlc3RvckNvbnRhaW5lcihlYyk7CkBAIC01NzMsOSArNTU3LDYgQEAgc3RhdGlj
IE5vZGUqIGhpZ2hlc3RBbmNlc3RvclRvV3JhcE1hcmt1cAogICAgIGlmIChOb2RlICplbmNsb3Np
bmdBbmNob3IgPSBlbmNsb3NpbmdOb2RlV2l0aFRhZyhmaXJzdFBvc2l0aW9uSW5Ob2RlKHNwZWNp
YWxDb21tb25BbmNlc3RvciA/IHNwZWNpYWxDb21tb25BbmNlc3RvciA6IGNvbW1vbkFuY2VzdG9y
KSwgYVRhZykpCiAgICAgICAgIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IGVuY2xvc2luZ0FuY2hv
cjsKIAotICAgIGlmIChzaG91bGRBbm5vdGF0ZSA9PSBBbm5vdGF0ZUZvckludGVyY2hhbmdlICYm
IGZ1bGx5U2VsZWN0ZWRSb290ICYmIHNob3VsZEluY2x1ZGVXcmFwcGVyRm9yRnVsbHlTZWxlY3Rl
ZFJvb3QoZnVsbHlTZWxlY3RlZFJvb3QpKQotICAgICAgICBzcGVjaWFsQ29tbW9uQW5jZXN0b3Ig
PSBmdWxseVNlbGVjdGVkUm9vdDsKLQogICAgIHJldHVybiBzcGVjaWFsQ29tbW9uQW5jZXN0b3I7
CiB9CiAKQEAgLTYyMCw3ICs2MDEsNyBAQCBTdHJpbmcgY3JlYXRlTWFya3VwKGNvbnN0IFJhbmdl
KiByYW5nZSwgCiAgICAgLy8gRklYTUU6IERvIHRoaXMgZm9yIGFsbCBmdWxseSBzZWxlY3RlZCBi
bG9ja3MsIG5vdCBqdXN0IHRoZSBib2R5LgogICAgIGlmIChib2R5ICYmIGFyZVJhbmdlc0VxdWFs
KFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21Db250ZW50c09mTm9kZShib2R5KS50b05v
cm1hbGl6ZWRSYW5nZSgpLmdldCgpLCByYW5nZSkpCiAgICAgICAgIGZ1bGx5U2VsZWN0ZWRSb290
ID0gYm9keTsKLSAgICBOb2RlKiBzcGVjaWFsQ29tbW9uQW5jZXN0b3IgPSBoaWdoZXN0QW5jZXN0
b3JUb1dyYXBNYXJrdXAodXBkYXRlZFJhbmdlLmdldCgpLCBmdWxseVNlbGVjdGVkUm9vdCwgc2hv
dWxkQW5ub3RhdGUpOworICAgIE5vZGUqIHNwZWNpYWxDb21tb25BbmNlc3RvciA9IGhpZ2hlc3RB
bmNlc3RvclRvV3JhcE1hcmt1cCh1cGRhdGVkUmFuZ2UuZ2V0KCksIHNob3VsZEFubm90YXRlKTsK
ICAgICBTdHlsZWRNYXJrdXBBY2N1bXVsYXRvciBhY2N1bXVsYXRvcihub2Rlcywgc2hvdWxkUmVz
b2x2ZVVSTHMsIHNob3VsZEFubm90YXRlLCB1cGRhdGVkUmFuZ2UuZ2V0KCksIHNwZWNpYWxDb21t
b25BbmNlc3Rvcik7CiAgICAgTm9kZSogcGFzdEVuZCA9IHVwZGF0ZWRSYW5nZS0+cGFzdExhc3RO
b2RlKCk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4NzQzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMTAtMjggIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVGhlIGNvcHkgYW5kIHBhc3RlIHJl
c3VsdCBpbiBuZXN0ZWQgc2Nyb2xsYmFycyBvbiBodHRwOi8vZG9qb3Rvb2xraXQub3JnL3dpZGdl
dHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNzk5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQg
YSB0ZXN0IHRvIGNvcHkgY29udGVudHMgaW5zaWRlIGEgYm9keSB3aXRoIGJhY2tncm91bmQgYW5k
IHRleHQtZGVjb3JhdGlvbiBwcm9wZXJ0aWVzLgorCisgICAgICAgIFdlYktpdCBzaG91bGQgbm90
IGNvcHkgYm9keSBlbGVtZW50LgorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9kZWxldGUt
bGluZS1icmVhay1iZWZvcmUtdW5kZXJsaW5lZC1jb250ZW50LWV4cGVjdGVkLnR4dDogYW4gZXJy
b25lb3VzIGlubGluZSBkaXYKKyAgICAgICAgaXMgcmVwbGFjZWQgYnkgYSBzcGFuLgorICAgICAg
ICAqIGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRpbmctbGluZS1icmVhay1wcmVzZXJ2ZXMtdW5kZXJs
aW5lLWNvbG9yLWV4cGVjdGVkLnR4dDogdHdvIHN0eWxlIHNwYW5zIGFyZQorICAgICAgICBtZXJn
ZWQgaW50byBvbmUuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkLzE5NjQ0LTItZXhwZWN0
ZWQudHh0OiBkaXYgaXMgcmVwbGFjZWQgYnkgc3Bhbi4gVGhpcyBpcyBva2F5IGJlY2F1c2UgaXQn
cyB0aGUgb25seQorICAgICAgICBjb250ZW50IGluIHRoZSBib2R5LiBFdmVuIHRob3VnaCB3ZSBu
b3cgb25seSBwdXQgdGhlIGdyYXkgYmFja2dyb3VuZCB1bmRlciB0ZXh0IGFzIGlubGluZSBzdHls
ZSBhcworICAgICAgICBvcHBvc2VkIHRvIGFwcGx5IGF0IHRoZSBibG9jayBsZXZlbCwgdGhhdCdz
IHdoYXQgZXhlY0NvbW1hbmQoJ0JhY2tDb2xvcicuLi4pIGRvZXMgYW5kIHdoYXQgdXNlciBleHBl
Y3RzLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9hdm9pZC1jb3B5aW5nLWJvZHktd2l0
aC1iYWNrZ3JvdW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0
ZWJvYXJkL2F2b2lkLWNvcHlpbmctYm9keS13aXRoLWJhY2tncm91bmQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3ByZXNlcnZlLXVuZGVybGluZS1jb2xvci1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2VkaXRpbmcvcGFzdGVib2FyZC81MTM0
NzU5LWV4cGVjdGVkLnR4dDoKKwogMjAxMS0xMC0yOCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnNraXAgdGFibGVzL21vemlsbGFfZXhwZWN0ZWRfZmFpbHVy
ZXMvYnVncy9idWcxNDAwNy0yLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvZGVsZXRlLWxpbmUtYnJlYWstYmVmb3JlLXVuZGVybGluZWQtY29udGVudC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9kZWxldGUtbGlu
ZS1icmVhay1iZWZvcmUtdW5kZXJsaW5lZC1jb250ZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
OTg3MzcpCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS1saW5lLWJyZWFr
LWJlZm9yZS11bmRlcmxpbmVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNSBAQAogVGhpcyB0ZXN0cyBmb3IgYSBidWcgd2hlcmUgdW5kZXJsaW5lZCBjb250
ZW50IHdvdWxkIGxvc2UgaXRzIHVuZGVybGluaW5nd2hlbiBkZWxldGluZyB0aGUgbGluZSBicmVh
ayBiZWZvcmUgdGhlIHBhcmFncmFwaCB0aGF0IGNvbnRhaW5lZCBpdC4KIHwgIlRoaXMgc2hvdWxk
bid0IGJlIHVuZGVybGluZWQuPCNzZWxlY3Rpb24tY2FyZXQ+IgotfCA8ZGl2PgotfCAgIGlkPSJk
aXYiCi18ICAgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBkaXNwbGF5OiBpbmxp
bmUgIWltcG9ydGFudDsgIgorfCA8c3Bhbj4KK3wgICBzdHlsZT0idGV4dC1kZWNvcmF0aW9uOiB1
bmRlcmxpbmU7ICIKIHwgICAiVGhpcyBzaG91bGQgYmUgdW5kZXJsaW5lZC4iCkluZGV4OiBMYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL2RlbGV0aW5nLWxpbmUtYnJlYWstcHJlc2VydmVzLXVu
ZGVybGluZS1jb2xvci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRp
dGluZy9kZWxldGluZy9kZWxldGluZy1saW5lLWJyZWFrLXByZXNlcnZlcy11bmRlcmxpbmUtY29s
b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA5ODczNykKKysrIExheW91dFRlc3RzL2VkaXRpbmcv
ZGVsZXRpbmcvZGVsZXRpbmctbGluZS1icmVhay1wcmVzZXJ2ZXMtdW5kZXJsaW5lLWNvbG9yLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTMsNyArMTMsNSBAQCBBZnRlcjoKIHwgPGRp
dj4KIHwgICAiVGhpcyBzaG91bGQgbm90IGJlIHVuZGVybGluZWQuPCNzZWxlY3Rpb24tY2FyZXQ+
IgogfCAgIDxzcGFuPgotfCAgICAgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyBj
b2xvcjogYmx1ZTsiCi18ICAgICA8c3Bhbj4KLXwgICAgICAgc3R5bGU9ImNvbG9yOnJlZDsiCi18
ICAgICAgICJUaGlzIHNob3VsZCBiZSB1bmRlcmxpbmVkLiIKK3wgICAgIHN0eWxlPSJjb2xvcjog
cmVkOyB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgIgorfCAgICAgIlRoaXMgc2hvdWxkIGJl
IHVuZGVybGluZWQuIgpJbmRleDogTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzE5NjQ0
LTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC8xOTY0NC0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gOTg3MzcpCisrKyBMYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvMTk2NDQtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTEgKzEgQEAKLTxkaXYgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigxODcsIDE4Nywg
MTg3KTsgIj5UaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIHdyYXAgY29waWVkIG1hcmt1
cCBpbiBhIGRpdiB0byBob2xkIGEgZnVsbHkgc2VsZWN0ZWQgYm9keSdzIGF0dHJpYnV0ZXMgYW5k
IHN0eWxlIHdoZW4gdGhlIHRoYXQgYm9keSBoYXMgYSBiYWNrZ3JvdW5kLWNvbG9yLiBJZiB5b3Ug
Y29weSBhbmQgcGFzdGUgdGhpcyB0ZXh0IGludG8gTWFpbCwgaXQgc2hvdWxkIGhhdmUgYSBncmV5
IGJhY2tncm91bmQuPC9kaXY+Cis8c3BhbiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmdiKDE4
NywgMTg3LCAxODcpOyAiPlRoaXMgdGVzdHMgdG8gbWFrZSBzdXJlIHRoYXQgd2Ugd3JhcCBjb3Bp
ZWQgbWFya3VwIGluIGEgZGl2IHRvIGhvbGQgYSBmdWxseSBzZWxlY3RlZCBib2R5J3MgYXR0cmli
dXRlcyBhbmQgc3R5bGUgd2hlbiB0aGUgdGhhdCBib2R5IGhhcyBhIGJhY2tncm91bmQtY29sb3Iu
IElmIHlvdSBjb3B5IGFuZCBwYXN0ZSB0aGlzIHRleHQgaW50byBNYWlsLCBpdCBzaG91bGQgaGF2
ZSBhIGdyZXkgYmFja2dyb3VuZC48L3NwYW4+CkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2F2b2lkLWNvcHlp
bmctYm9keS13aXRoLWJhY2tncm91bmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2F2b2lkLWNvcHlpbmctYm9keS13aXRoLWJhY2tn
cm91bmQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI5IEBACitUaGlzIHRl
c3QgY29waWVzIGFuZCBwYXN0ZXMgY29udGVudCBpbnNpZGUgYSBib2R5IHdpdGggYmFja2dyb3Vu
ZCBhbmQgdGV4dC1kZWNvcmF0aW9uIHByb3BlcnRpZXMuIFdlYktpdCBzaG91bGQgbm90IG5lc3Qg
Ym9keS4KK3wgIgorIgorfCA8dWw+Cit8ICAgIgorIgorfCAgIDxsaT4KK3wgICAgICJoZWxsbywg
d29ybGQgIgorfCAgICAgPGE+Cit8ICAgICAgIGhyZWY9Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8i
Cit8ICAgICAgICJXZWJLaXQiCit8ICAgIgorIgorfCAgIDxsaT4KK3wgICAgICJDb3BpZWQgY29u
dGVudCIKK3wgICA8bGk+Cit8ICAgICAiaGVsbG8sIHdvcmxkIgorfCAgICAgIsKgIgorfCAgICAg
PGE+Cit8ICAgICAgIGhyZWY9Imh0dHA6Ly93d3cud2Via2l0Lm9yZy8iCit8ICAgICAgICJXZWJL
aXQiCit8ICAgPGxpPgorfCAgICAgIkNvcGllZCBjb250ZW50PCNzZWxlY3Rpb24tY2FyZXQ+Igor
fCAgICIKKyIKK3wgIgorIgorfCAiCisiCkluZGV4OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9hdm9pZC1jb3B5aW5nLWJvZHktd2l0
aC1iYWNrZ3JvdW5kLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvYXZvaWQtY29weWluZy1ib2R5LXdpdGgtYmFja2dyb3VuZC5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+Citib2R5IHsKKyAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKKyAgICB3aWR0aDog
NTAwcHg7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICBvdmVyZmxvdy14OiBhdXRvOyBvdmVyZmxv
dy15OmF1dG87CisgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHkgc3R5bGU9ImNvbG9yOiByZ2IoNTEsIDUxLCA1MSk7ICIgY29udGVudGVk
aXRhYmxlPSJ0cnVlIj4KKzx1bD4KKzxsaT5oZWxsbywgd29ybGQgPGEgaHJlZj0iaHR0cDovL3d3
dy53ZWJraXQub3JnLyI+V2ViS2l0PC9hPjwvbGk+Cis8bGk+Q29waWVkIGNvbnRlbnQ8L2xpPgor
PC91bD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZHVtcC1hcy1tYXJrdXAuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworZG9jdW1lbnQuYm9keS5mb2N1cygpOworZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ1NlbGVjdEFsbCcsIGZhbHNlLCBudWxsKTsKK2RvY3VtZW50LmV4ZWNDb21tYW5k
KCdDb3B5JywgZmFsc2UsIG51bGwpOworZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCdNb3ZlJywgJ0Zv
cndhcmQnLCAnQ2hhcmFjdGVyJyk7Citkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnLCBmYWxz
ZSwgbnVsbCk7CisKK3doaWxlIChzY3JpcHQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3Jp
cHQnKSkKKyAgICBzY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHQpOworCitNYXJr
dXAuZGVzY3JpcHRpb24oJ1RoaXMgdGVzdCBjb3BpZXMgYW5kIHBhc3RlcyBjb250ZW50IGluc2lk
ZSBhIGJvZHkgd2l0aCBiYWNrZ3JvdW5kIGFuZCB0ZXh0LWRlY29yYXRpb24gcHJvcGVydGllcy4g
V2ViS2l0IHNob3VsZCBub3QgbmVzdCBib2R5LicpOworTWFya3VwLmR1bXAoZG9jdW1lbnQuYm9k
eSk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL3ByZXNlcnZlLXVuZGVybGluZS1jb2xvci1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3ByZXNlcnZlLXVuZGVy
bGluZS1jb2xvci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk4NzM3KQorKysgTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL3ByZXNlcnZlLXVuZGVybGluZS1jb2xvci1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw1IEBACiBUaGlzIHRlc3QgZm9yIGEgYnVnIGNvcHkv
cGFzdGluZyB1bmRlcmxpbmVkIHRleHQuIFRoZSBjb2xvciBvZiB0aGUgdW5kZXJsaW5lIHNob3Vs
ZCBiZSB0aGUgY29sb3Igb2YgdGhlIGVsZW1lbnQgdGhhdCBoYXMgdGhlIHRleHQtZGVjb3JhdGlv
biBwcm9wZXJ0eS4KIHwgPHNwYW4+Ci18ICAgc3R5bGU9InRleHQtZGVjb3JhdGlvbjogdW5kZXJs
aW5lOyBjb2xvcjogYmx1ZTsgIgotfCAgIDxzcGFuPgotfCAgICAgc3R5bGU9ImNvbG9yOiByZWQ7
ICIKLXwgICAgICJUaGlzIHNob3VsZCBiZSB1bmRlcmxpbmVkLjwjc2VsZWN0aW9uLWNhcmV0PiIK
K3wgICBzdHlsZT0iY29sb3I6IHJnYigyNTUsIDAsIDApOyB0ZXh0LWRlY29yYXRpb246IHVuZGVy
bGluZTsgIgorfCAgICJUaGlzIHNob3VsZCBiZSB1bmRlcmxpbmVkLjwjc2VsZWN0aW9uLWNhcmV0
PiIKIHwgPGJyPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvcGFzdGVi
b2FyZC81MTM0NzU5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZWRpdGluZy9wYXN0ZWJvYXJkLzUxMzQ3NTktZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA5ODczNykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL3Bhc3RlYm9hcmQv
NTEzNDc1OS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE3LDggKzE3LDcgQEAgbGF5
ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMzl4MTgKICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5
OiAiSGVsbG8gIgogICAgICAgICAgIFJlbmRlcklubGluZSB7U1BBTn0gYXQgKDAsMCkgc2l6ZSA0
NXgxOAotICAgICAgICAgICAgUmVuZGVySW5saW5lIHtESVZ9IGF0ICgwLDApIHNpemUgNDV4MTgK
LSAgICAgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzOSwwKSBzaXplIDQ1eDE4Ci0g
ICAgICAgICAgICAgICAgdGV4dCBydW4gYXQgKDM5LDApIHdpZHRoIDQ1OiAiV29ybGQhIgorICAg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgzOSwwKSBzaXplIDQ1eDE4CisgICAgICAg
ICAgICAgIHRleHQgcnVuIGF0ICgzOSwwKSB3aWR0aCA0NTogIldvcmxkISIKICAgICAgICAgUmVu
ZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMTgpIHNpemUgNzg0eDAKLWNhcmV0OiBwb3NpdGlv
biA2IG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtESVZ9IG9mIGNoaWxkIDEge1NQQU59
IG9mIGNoaWxkIDAge0RJVn0gb2YgY2hpbGQgMiB7RElWfSBvZiBib2R5CitjYXJldDogcG9zaXRp
b24gNiBvZiBjaGlsZCAwIHsjdGV4dH0gb2YgY2hpbGQgMSB7U1BBTn0gb2YgY2hpbGQgMCB7RElW
fSBvZiBjaGlsZCAyIHtESVZ9IG9mIGJvZHkK
</data>

          </attachment>
      

    </bug>

</bugzilla>