<?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>108397</bug_id>
          
          <creation_ts>2013-01-30 15:59:38 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Add parsing for grid-auto-flow</short_desc>
          <delta_ts>2013-02-04 11:16:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>103316</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>820739</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-30 15:59:38 -0800</bug_when>
    <thetext>As a first step into supporting the auto-placement algorithm specified in the specification, we need to be able to parse and apply grid-auto-flow. See http://dev.w3.org/csswg/css3-grid-layout/#grid-auto-flow-property for the details.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820757</commentid>
    <comment_count>1</comment_count>
      <attachid>185610</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-30 16:12:42 -0800</bug_when>
    <thetext>Created attachment 185610
Proposed change I.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821606</commentid>
    <comment_count>2</comment_count>
      <attachid>185610</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-01-31 10:04:46 -0800</bug_when>
    <thetext>Comment on attachment 185610
Proposed change I.

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

&gt; Source/WebCore/css/CSSParser.cpp:2520
&gt; +    case CSSPropertyWebkitGridAutoFlow:
&gt; +        if (id == CSSValueNone || id == CSSValueRows || id == CSSValueColumns)
&gt; +            validPrimitive = true;
&gt; +        break;

I think this should go in isValidKeywordPropertyAndValue.

&gt; Source/WebCore/css/CSSPrimitiveValueMappings.h:4117
&gt; +

Remove this extra blank line.

&gt; Source/WebCore/css/CSSValueKeywords.in:1005
&gt; +// -webkit-grid-auto-flow
&gt; +// none
&gt; +columns
&gt; +rows

Can you ask on www-style if we can make these column/row to match flex-flow?  It&apos;s OK to check this in, but we shouldn&apos;t make web devs have to think whether the values need to be plural or not.

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:494
&gt; +enum GridAutoFlow {
&gt; +    AutoFlowNone,
&gt; +    AutoFlowColumns,
&gt; +    AutoFlowRows
&gt; +};

Nit: Should this be on one line like many of the other enums?

&gt; LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set.html:19
&gt; +.gridAutoFlowNone {
&gt; +    -webkit-grid-auto-flow: none;
&gt; +}
&gt; +.gridAutoFlowColumns {
&gt; +    -webkit-grid-auto-flow: columns;
&gt; +}
&gt; +.gridAutoFlowRows {
&gt; +    -webkit-grid-auto-flow: rows;
&gt; +}
&gt; +.gridAutoFlowInherit {

Can we move these into resources/grid.css?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>821737</commentid>
    <comment_count>3</comment_count>
      <attachid>185610</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-01-31 11:20:13 -0800</bug_when>
    <thetext>Comment on attachment 185610
Proposed change I.

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

&gt;&gt; Source/WebCore/css/CSSValueKeywords.in:1005
&gt;&gt; +rows
&gt; 
&gt; Can you ask on www-style if we can make these column/row to match flex-flow?  It&apos;s OK to check this in, but we shouldn&apos;t make web devs have to think whether the values need to be plural or not.

Asked on www-style: http://lists.w3.org/Archives/Public/www-style/2013Jan/0634.html

&gt;&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:494
&gt;&gt; +};
&gt; 
&gt; Nit: Should this be on one line like many of the other enums?

This is not our usual style to put everything on one line, but nothing matches our usual style in RenderStyleConstants :(

&gt;&gt; LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set.html:19
&gt;&gt; +.gridAutoFlowInherit {
&gt; 
&gt; Can we move these into resources/grid.css?

SGTM, only the valid values above though, I don&apos;t see much use in sharing the wrong values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822911</commentid>
    <comment_count>4</comment_count>
      <attachid>186071</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-01 10:11:34 -0800</bug_when>
    <thetext>Created attachment 186071
Proposed change II: won&apos;t commit it until next week to wait for some spec update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822964</commentid>
    <comment_count>5</comment_count>
      <attachid>186071</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-01 10:54:55 -0800</bug_when>
    <thetext>Comment on attachment 186071
Proposed change II: won&apos;t commit it until next week to wait for some spec update.

Seems fine. Don&apos;t think we need to block on the spec discussion. We can always change the names of the values later if the spec changes differently than how we expect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822994</commentid>
    <comment_count>6</comment_count>
      <attachid>186071</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-02-01 11:07:22 -0800</bug_when>
    <thetext>Comment on attachment 186071
Proposed change II: won&apos;t commit it until next week to wait for some spec update.

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

&gt; LayoutTests/fast/css-grid-layout/resources/grid-auto-flow-get-set.js:4
&gt; +description(&apos;Test that setting and getting grid-auto-flow works as expected&apos;);
&gt; +
&gt; +debug(&quot;Test getting -webkit-auto-flow set through CSS&quot;);
&gt; +var gridAutoFlowNone = document.getElementById(&quot;gridAutoFlowNone&quot;);

Nit: I would inline this in the test file. It seems unlikely that we&apos;re going to reuse this .js file and it&apos;s not a pure js test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823250</commentid>
    <comment_count>7</comment_count>
      <attachid>186071</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 14:08:18 -0800</bug_when>
    <thetext>Comment on attachment 186071
Proposed change II: won&apos;t commit it until next week to wait for some spec update.

Attachment 186071 did not pass win-ews (win):
Output: http://queues.webkit.org/results/16336087</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823536</commentid>
    <comment_count>8</comment_count>
      <attachid>186071</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2013-02-01 20:56:49 -0800</bug_when>
    <thetext>Comment on attachment 186071
Proposed change II: won&apos;t commit it until next week to wait for some spec update.

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

&gt;&gt; LayoutTests/fast/css-grid-layout/resources/grid-auto-flow-get-set.js:4
&gt;&gt; +var gridAutoFlowNone = document.getElementById(&quot;gridAutoFlowNone&quot;);
&gt; 
&gt; Nit: I would inline this in the test file. It seems unlikely that we&apos;re going to reuse this .js file and it&apos;s not a pure js test.

+1 external files in tests are always a pain to maintain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824503</commentid>
    <comment_count>9</comment_count>
      <attachid>186071</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-04 10:17:05 -0800</bug_when>
    <thetext>Comment on attachment 186071
Proposed change II: won&apos;t commit it until next week to wait for some spec update.

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

&gt; Don&apos;t think we need to block on the spec discussion. We can always change the names of the values later if the spec changes differently than how we expect.

That was because the W3C F2F is going on right now and grid layout will be discussed (also Tab / fantasai took over the editorship) so this week will be rocky.

&gt;&gt;&gt; LayoutTests/fast/css-grid-layout/resources/grid-auto-flow-get-set.js:4
&gt;&gt;&gt; +var gridAutoFlowNone = document.getElementById(&quot;gridAutoFlowNone&quot;);
&gt;&gt; 
&gt;&gt; Nit: I would inline this in the test file. It seems unlikely that we&apos;re going to reuse this .js file and it&apos;s not a pure js test.
&gt; 
&gt; +1 external files in tests are always a pain to maintain.

Fair enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824512</commentid>
    <comment_count>10</comment_count>
      <attachid>186413</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2013-02-04 10:21:30 -0800</bug_when>
    <thetext>Created attachment 186413
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824591</commentid>
    <comment_count>11</comment_count>
      <attachid>186413</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 11:15:55 -0800</bug_when>
    <thetext>Comment on attachment 186413
Patch for landing

Clearing flags on attachment: 186413

Committed r141787: &lt;http://trac.webkit.org/changeset/141787&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824592</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-04 11:16:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185610</attachid>
            <date>2013-01-30 16:12:42 -0800</date>
            <delta_ts>2013-02-01 10:11:32 -0800</delta_ts>
            <desc>Proposed change I.</desc>
            <filename>bug-108397-20130130160926.patch</filename>
            <type>text/plain</type>
            <size>20606</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMjk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYyOTA2MGNmZDU1Zjk2
NWVjYTUwMjRjNzYxOGI0YmM4ODBiYWM4Yy4uOTNlNDQ1ZmU1MDA3MWYyODQyM2VkNGM1YmRlMTM0
ZTU5NjMwYWNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEzLTAxLTMwICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEFkZCBwYXJzaW5nIGZvciBncmlkLWF1dG8tZmxvdworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mzk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1hdXRvLWZsb3ctZ2V0LXNldC5odG1sCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRk
cyB0aGUgcGFyc2luZywgYXBwbGljYXRpb24gYW5kIGNvbnZlcnNpb24gYmFjayB0aHJvdWdoIGdl
dENvbXB1dGVkU3R5bGUKKyAgICAgICAgZm9yIHRoZSBuZXcgcHJvcGVydHkgLXdlYmtpdC1ncmlk
LWF1dG8tZmxvdywgd2hpY2ggYWNjcGV0cyB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIC13ZWJr
aXQtZ3JpZC1hdXRvLWZsb3c6IG5vbmUgfCByb3dzIHwgY29sdW1ucworCisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICBB
ZGRlZCBjb2RlIHRvIGNvbnZlcnQgdGhlIFJlbmRlclN0eWxlIGluZm9ybWF0aW9uIGJhY2sgaW50
byBhIENTUyB2YWx1ZS4KKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgSW1wbGVtZW50ZWQgcGFy
c2luZyBmb3IgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdy4KKworICAgICAgICAqIGNzcy9DU1NQcmlt
aXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgR3JpZEF1dG9GbG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIEFkZGVkIHRoZSBjb252ZXJzaW9u
IG9wZXJhdG9ycywgdXNlZCBmb3IgcGFyc2luZyBhbmQgZ2V0Q29tcHV0ZWRTdHlsZS4KKworICAg
ICAgICAqIGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0
eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eSk6CisgICAgICAgIEFkZGVkIC13ZWJraXQtZ3JpZC1hdXRv
LWZsb3cgdG8gdGhlIGxpc3Qgb2YgdGhlIG5vdCBpbmhlcml0ZWQgcHJvcGVydGllcy4KKworICAg
ICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluOgorICAgICAgICBBZGRlZCB0aGUgbmV3IHZhbHVlIGFuZCBrZXl3b3Jkcy4KKwor
ICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVC
dWlsZGVyOjpTdHlsZUJ1aWxkZXIpOgorICAgICAgICBBZGRlZCBhIGhhbmRsZXIgZm9yIHRoZSBu
ZXcgQ1NTIHByb3BlcnR5LgorCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Lmg6CisgICAgICAgIEFkZGVkIHRoZSB1c3VhbCBnZXR0ZXIgLyBzZXR0ZXIgLyBpbml0aWFsIGZ1
bmN0aW9uLgorCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
Lmg6CisgICAgICAgIEFkZGVkIGEgbmV3IGVudW0gR3JpZEF1dG9GbG93IHRvIGhvbGQgdGhlIHBh
cnNlZCB2YWx1ZS4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlR3JpZERhdGE6OlN0eWxlR3JpZERhdGEpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmg6CisgICAgICAgIChXZWJDb3Jl
OjpTdHlsZUdyaWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFN0eWxlR3JpZERhdGEpOgor
ICAgICAgICBVcGRhdGVkIGFmdGVyIGFkZGluZyBhIG5ldyBmaWVsZCBmb3IgdGhlIEdyaWRBdXRv
RmxvdyB2YWx1ZS4KKwogMjAxMy0wMS0zMCAgRWxsaW90dCBTcHJlaG4gIDxlc3ByZWhuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgd2lsbEFkZEF1dGhvclNoYWRvd1Jvb3QgYW5kIHJl
cGxhY2Ugd2l0aCBhbHdheXNDcmVhdGVVc2VyQWdlbnRTaGFkb3dSb290CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGMyMGYz
MmQwODlkNDY0MmQ0MzM4ZTdmMWEwOWM4YjdjYzNiOWYyODUuLmNmZTE0MTk4N2QwMjNlNDBjMDdk
Y2JiMDFkMjY2YmRhYWNiMDJiNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNzUsNiArMjc1LDcgQEAgc3RhdGljIGNv
bnN0IENTU1Byb3BlcnR5SUQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVy
dHlXZWJraXRGb250S2VybmluZywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTbW9vdGhpbmcs
CiAgICAgQ1NTUHJvcGVydHlXZWJraXRGb250VmFyaWFudExpZ2F0dXJlcywKKyAgICBDU1NQcm9w
ZXJ0eVdlYmtpdEdyaWRBdXRvRmxvdywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5z
LAogICAgIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3MsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRH
cmlkQ29sdW1uLApAQCAtMTkwMSwxMiArMTkwMiwxMiBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBD
U1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUoQ1NTUHJvcGVy
dAogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGxpc3QucmVsZWFzZSgpOwogICAg
ICAgICB9Ci0gICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uczogeworICAg
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9GbG93OgorICAgICAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZVZhbHVlKHN0eWxlLT5ncmlkQXV0b0Zsb3coKSk7Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uczoKICAgICAgICAgICAgIHJl
dHVybiB2YWx1ZUZvckdyaWRUcmFja0xpc3Qoc3R5bGUtPmdyaWRDb2x1bW5zKCksIHN0eWxlLmdl
dCgpLCBtX25vZGUtPmRvY3VtZW50KCktPnJlbmRlclZpZXcoKSk7Ci0gICAgICAgIH0KLSAgICAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOiB7CisgICAgICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRHcmlkUm93czoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdyaWRUcmFj
a0xpc3Qoc3R5bGUtPmdyaWRSb3dzKCksIHN0eWxlLmdldCgpLCBtX25vZGUtPmRvY3VtZW50KCkt
PnJlbmRlclZpZXcoKSk7Ci0gICAgICAgIH0KIAogICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0R3JpZENvbHVtbjoKICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckdyaWRQb3NpdGlvbihz
dHlsZS0+Z3JpZEl0ZW1Db2x1bW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGU2
NjgwOGRhY2U1MjlmMjUzM2VhMzc3ZTQ5ODY3MmMzMGUxMzRmMzcuLjVkOGE0MGVjOTNiZGI1MTJk
NTU3ZGM0MjRmYzY2ZDljZWRmN2I2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0y
NTE0LDYgKzI1MTQsMTAgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJ
RCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IGlkID09
IENTU1ZhbHVlQXV0byB8fCB2YWxpZFVuaXQodmFsdWUsIEZJbnRlZ2VyKTsKICAgICAgICAgYnJl
YWs7CiAKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9GbG93OgorICAgICAgICBp
ZiAoaWQgPT0gQ1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlUm93cyB8fCBpZCA9PSBDU1NW
YWx1ZUNvbHVtbnMpCisgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJnaW5Db2xsYXBzZTogewogICAg
ICAgICBpZiAobnVtID09IDEpIHsKICAgICAgICAgICAgIFNob3J0aGFuZFNjb3BlIHNjb3BlKHRo
aXMsIENTU1Byb3BlcnR5V2Via2l0TWFyZ2luQ29sbGFwc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggM2EzYzYwMTY3OTA2NTBjM2E1
MTNjZWRjM2VjOWI5ZDMyOTFlMzczOC4uZjY2NDg4NWU5M2ZiYWMwZDBlNmYwZTI1YTExY2IzZjZl
M2Q4MTE0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBw
aW5ncy5oCkBAIC00MTAxLDYgKzQxMDEsMzkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6Om9wZXJhdG9yIFdyYXBUaHJvdWdoKCkgY29uc3QKICAgICByZXR1cm4gV3JhcFRo
cm91Z2hXcmFwOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3Bl
cmF0b3IgR3JpZEF1dG9GbG93KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQp
IHsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAgcmV0dXJuIEF1dG9GbG93Tm9uZTsK
KyAgICBjYXNlIENTU1ZhbHVlQ29sdW1uczoKKyAgICAgICAgcmV0dXJuIEF1dG9GbG93Q29sdW1u
czsKKyAgICBjYXNlIENTU1ZhbHVlUm93czoKKyAgICAgICAgcmV0dXJuIEF1dG9GbG93Um93czsK
KyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gQXV0b0Zsb3dO
b25lOworCit9CisKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmlt
aXRpdmVWYWx1ZShHcmlkQXV0b0Zsb3cgZmxvdykKKyAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNs
YXNzKQoreworICAgIG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CisgICAgc3dpdGNo
IChmbG93KSB7CisgICAgY2FzZSBBdXRvRmxvd05vbmU6CisgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZU5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQXV0b0Zsb3dDb2x1bW5z
OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVDb2x1bW5zOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEF1dG9GbG93Um93czoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlUm93czsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCiBlbnVtIExlbmd0aENvbnZlcnNp
b24gewogICAgIEFueUNvbnZlcnNpb24gPSB+MCwKICAgICBGaXhlZEludGVnZXJDb252ZXJzaW9u
ID0gMSA8PCAwLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggOGMzZGI1MGEwMDdl
ZDEzMTg2M2Q3OGRmMjc2MzczYzgyYmIzMjYwYS4uMWU2MzFiMTljNjIyNDgwMDk1NThmNzU2OGEw
MWYzZTgzMTU0YzU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCkBAIC01NzQsNiAr
NTc0LDcgQEAgYm9vbCBDU1NQcm9wZXJ0eTo6aXNJbmhlcml0ZWRQcm9wZXJ0eShDU1NQcm9wZXJ0
eUlEIHByb3BlcnR5SUQpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEp1c3RpZnlDb250ZW50
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRPcmRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0Rm9udFNpemVEZWx0YToKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9G
bG93OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uczoKICAgICBjYXNlIENT
U1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRD
b2x1bW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5p
biBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IDFiMzRlZGMy
NzQ1YTcyZGJlMDcyOTQyOGQzNWJkODJiN2I0YjBhOTEuLjA5OTk1NmM1YmEzNjc0YTgzNjcwN2Zm
YjA2Yjk1NjliYjU3ZjQ1YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
CkBAIC0yOTQsNiArMjk0LDcgQEAgei1pbmRleAogLXdlYmtpdC1ncmlkLXJvd3MKIC13ZWJraXQt
Z3JpZC1jb2x1bW4KIC13ZWJraXQtZ3JpZC1yb3cKKy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cKIC13
ZWJraXQtaGlnaGxpZ2h0CiAtd2Via2l0LWh5cGhlbmF0ZS1jaGFyYWN0ZXIKIC13ZWJraXQtaHlw
aGVuYXRlLWxpbWl0LWFmdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmlu
ZGV4IDc1OTI2ZjYyN2EzN2YyMDZmMTE0ZjE2YTc3NzI5ZThmZDkzNmU4MGIuLjg0NTg5MmUwODg1
Y2YyZGE4YjQ3NDZhZTUzNzg1NjAyYTUyNWM2ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCkBAIC05OTgsMyArOTk4LDggQEAgc25hcAogZHJhZwogbm8tZHJhZwogI2Vu
ZGlmCisKKy8vIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3cKKy8vIG5vbmUKK2NvbHVtbnMKK3Jvd3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKaW5kZXggNmQ3OGM2ODQ0NDJjYzdlMjRlYmY5
YTYyODY3YmQ4ODk5ZmU3OThlNi4uMDI3MWY5YjM0NjZlNDliMWU2ZmQ5M2NkZmRiMzRkNDZjM2I1
YTYzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKQEAgLTE5OTAsNiArMTk5MCw3
IEBAIFN0eWxlQnVpbGRlcjo6U3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIo
Q1NTUHJvcGVydHlXZWJraXRGbGV4R3JvdywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8ZmxvYXQsICZS
ZW5kZXJTdHlsZTo6ZmxleEdyb3csIGZsb2F0LCAmUmVuZGVyU3R5bGU6OnNldEZsZXhHcm93LCBm
bG9hdCwgJlJlbmRlclN0eWxlOjppbml0aWFsRmxleEdyb3c+OjpjcmVhdGVIYW5kbGVyKCkpOwog
ICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEZsZXhTaHJpbmssIEFwcGx5
UHJvcGVydHlEZWZhdWx0PGZsb2F0LCAmUmVuZGVyU3R5bGU6OmZsZXhTaHJpbmssIGZsb2F0LCAm
UmVuZGVyU3R5bGU6OnNldEZsZXhTaHJpbmssIGZsb2F0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxG
bGV4U2hyaW5rPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NT
UHJvcGVydHlXZWJraXRGbGV4V3JhcCwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8RUZsZXhXcmFwLCAm
UmVuZGVyU3R5bGU6OmZsZXhXcmFwLCBFRmxleFdyYXAsICZSZW5kZXJTdHlsZTo6c2V0RmxleFdy
YXAsIEVGbGV4V3JhcCwgJlJlbmRlclN0eWxlOjppbml0aWFsRmxleFdyYXA+OjpjcmVhdGVIYW5k
bGVyKCkpOworICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRv
RmxvdywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8R3JpZEF1dG9GbG93LCAmUmVuZGVyU3R5bGU6Omdy
aWRBdXRvRmxvdywgR3JpZEF1dG9GbG93LCAmUmVuZGVyU3R5bGU6OnNldEdyaWRBdXRvRmxvdywg
R3JpZEF1dG9GbG93LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkQXV0b0Zsb3c+OjpjcmVhdGVI
YW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEp1c3Rp
ZnlDb250ZW50LCBBcHBseVByb3BlcnR5RGVmYXVsdDxFSnVzdGlmeUNvbnRlbnQsICZSZW5kZXJT
dHlsZTo6anVzdGlmeUNvbnRlbnQsIEVKdXN0aWZ5Q29udGVudCwgJlJlbmRlclN0eWxlOjpzZXRK
dXN0aWZ5Q29udGVudCwgRUp1c3RpZnlDb250ZW50LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxKdXN0
aWZ5Q29udGVudD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5V2Via2l0T3JkZXIsIEFwcGx5UHJvcGVydHlEZWZhdWx0PGludCwgJlJlbmRlclN0
eWxlOjpvcmRlciwgaW50LCAmUmVuZGVyU3R5bGU6OnNldE9yZGVyLCBpbnQsICZSZW5kZXJTdHls
ZTo6aW5pdGlhbE9yZGVyPjo6Y3JlYXRlSGFuZGxlcigpKTsKICNpZiBFTkFCTEUoQ1NTX1JFR0lP
TlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4
IGQwOWE1NTE1ZDgzMDVjZTdhZTYwOGE5MGRmN2Y4ODRmNDVkNGU1MGQuLmY1ZTVjZDM3Y2JmZDlm
ZTgzOGQxMDQyOTc0NGFiMzVjOWNkZDhlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC03NjQsNiArNzY0LDcgQEAgcHVibGljOgogCiAgICAg
Y29uc3QgVmVjdG9yPEdyaWRUcmFja1NpemU+JiBncmlkQ29sdW1ucygpIGNvbnN0IHsgcmV0dXJu
IHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQtPm1fZ3JpZENvbHVtbnM7IH0KICAgICBjb25z
dCBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4mIGdyaWRSb3dzKCkgY29uc3QgeyByZXR1cm4gcmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkUm93czsgfQorICAgIEdyaWRBdXRvRmxvdyBn
cmlkQXV0b0Zsb3coKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlk
LT5tX2dyaWRBdXRvRmxvdzsgfQogCiAgICAgY29uc3QgR3JpZFBvc2l0aW9uJiBncmlkSXRlbUNv
bHVtbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWRJdGVtLT5t
X2dyaWRDb2x1bW47IH0KICAgICBjb25zdCBHcmlkUG9zaXRpb24mIGdyaWRJdGVtUm93KCkgY29u
c3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0tPm1fZ3JpZFJvdzsg
fQpAQCAtMTI1Miw2ICsxMjUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SnVzdGlmeUNvbnRl
bnQoRUp1c3RpZnlDb250ZW50IHApIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YSwgbV9q
dXN0aWZ5Q29udGVudCwgcCk7IH0KICAgICB2b2lkIHNldEdyaWRDb2x1bW5zKGNvbnN0IFZlY3Rv
cjxHcmlkVHJhY2tTaXplPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRh
LmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZENvbHVtbnMsIGxlbmd0aHMpOyB9CiAgICAgdm9pZCBz
ZXRHcmlkUm93cyhjb25zdCBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4mIGxlbmd0aHMpIHsgU0VUX1ZB
UihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRSb3dzLCBsZW5n
dGhzKTsgfQorICAgIHZvaWQgc2V0R3JpZEF1dG9GbG93KEdyaWRBdXRvRmxvdyBmbG93KSB7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZCwgbV9ncmlkQXV0b0Zs
b3csIGZsb3cpOyB9CiAgICAgdm9pZCBzZXRHcmlkSXRlbUNvbHVtbihjb25zdCBHcmlkUG9zaXRp
b24mIGNvbHVtblBvc2l0aW9uKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNz
KCktPm1fZ3JpZEl0ZW0sIG1fZ3JpZENvbHVtbiwgY29sdW1uUG9zaXRpb24pOyB9CiAgICAgdm9p
ZCBzZXRHcmlkSXRlbVJvdyhjb25zdCBHcmlkUG9zaXRpb24mIHJvd1Bvc2l0aW9uKSB7IFNFVF9W
QVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZEl0ZW0sIG1fZ3JpZFJvdywg
cm93UG9zaXRpb24pOyB9CiAKQEAgLTE2NTMsNiArMTY1NSw4IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgVmVjdG9yPEdyaWRUcmFja1NpemU+IGluaXRpYWxHcmlkQ29sdW1ucygpIHsgcmV0dXJuIFZl
Y3RvcjxHcmlkVHJhY2tTaXplPigpOyB9CiAgICAgc3RhdGljIFZlY3RvcjxHcmlkVHJhY2tTaXpl
PiBpbml0aWFsR3JpZFJvd3MoKSB7IHJldHVybiBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4oKTsgfQog
CisgICAgc3RhdGljIEdyaWRBdXRvRmxvdyBpbml0aWFsR3JpZEF1dG9GbG93KCkgeyByZXR1cm4g
QXV0b0Zsb3dOb25lOyB9CisKICAgICAvLyAnYXV0bycgaXMgdGhlIGRlZmF1bHQuCiAgICAgc3Rh
dGljIEdyaWRQb3NpdGlvbiBpbml0aWFsR3JpZEl0ZW1Db2x1bW4oKSB7IHJldHVybiBHcmlkUG9z
aXRpb24oKTsgfQogICAgIHN0YXRpYyBHcmlkUG9zaXRpb24gaW5pdGlhbEdyaWRJdGVtUm93KCkg
eyByZXR1cm4gR3JpZFBvc2l0aW9uKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggZTdjMTA4ZjQ4MmIyZTNj
MTk4NWRkYTliZDA3MDcwOGY3OTk5MjJkYi4uMGE3NjAzYTcwM2MwNjkzMjlhZmZmZGFmM2Y3MmNh
ZDBjYjAyZDQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTQ4Nyw2ICs0ODcsMTIgQEAgZW51bSBXcmFwVGhy
b3VnaCB7IFdyYXBUaHJvdWdoV3JhcCwgV3JhcFRocm91Z2hOb25lIH07CiAKIGVudW0gUnVieVBv
c2l0aW9uIHsgUnVieVBvc2l0aW9uQmVmb3JlLCBSdWJ5UG9zaXRpb25BZnRlciB9OwogCitlbnVt
IEdyaWRBdXRvRmxvdyB7CisgICAgQXV0b0Zsb3dOb25lLAorICAgIEF1dG9GbG93Q29sdW1ucywK
KyAgICBBdXRvRmxvd1Jvd3MKK307CisKICNpZiBFTkFCTEUoRFJBR0dBQkxFX1JFR0lPTikKIGVu
dW0gRHJhZ2dhYmxlUmVnaW9uTW9kZSB7IERyYWdnYWJsZVJlZ2lvbk5vbmUsIERyYWdnYWJsZVJl
Z2lvbkRyYWcsIERyYWdnYWJsZVJlZ2lvbk5vRHJhZyB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHAKaW5kZXggN2I2YmMwYTM3
MGJmNGE5ZDhhNmJlMzA1ZGVmNDY0ZjMzMjQ1ZjZmZi4uOWE4MTBkZWU4ODIzYjYwM2U2NWEyN2Ri
YTU2YzVjNmE1ZGY3MzUwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUdyaWREYXRhLmNwcApAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWREYXRhKCkKICAgICA6IG1fZ3JpZENvbHVtbnMoUmVu
ZGVyU3R5bGU6OmluaXRpYWxHcmlkQ29sdW1ucygpKQogICAgICwgbV9ncmlkUm93cyhSZW5kZXJT
dHlsZTo6aW5pdGlhbEdyaWRSb3dzKCkpCisgICAgLCBtX2dyaWRBdXRvRmxvdyhSZW5kZXJTdHls
ZTo6aW5pdGlhbEdyaWRBdXRvRmxvdygpKQogewogfQogCkBAIC00MCw2ICs0MSw3IEBAIFN0eWxl
R3JpZERhdGE6OlN0eWxlR3JpZERhdGEoY29uc3QgU3R5bGVHcmlkRGF0YSYgbykKICAgICA6IFJl
ZkNvdW50ZWQ8U3R5bGVHcmlkRGF0YT4oKQogICAgICwgbV9ncmlkQ29sdW1ucyhvLm1fZ3JpZENv
bHVtbnMpCiAgICAgLCBtX2dyaWRSb3dzKG8ubV9ncmlkUm93cykKKyAgICAsIG1fZ3JpZEF1dG9G
bG93KG8ubV9ncmlkQXV0b0Zsb3cpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oCmluZGV4IDE4ZmZjYWJhNjFiZGZmYTliOTEzMzlkMDkz
Y2E1Y2MyZDU1MTNmYmUuLjNmODEwZGM4NzMyMWU5MjMyZDhmMDAxMGJkZTg5ZWQ3NTY0ZGIyNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaApA
QCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBTdHlsZUdyaWREYXRhX2gKIAogI2luY2x1ZGUgIkdy
aWRUcmFja1NpemUuaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00MCw3ICs0MSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBTdHlsZUdyaWREYXRhJiBvKSBjb25zdAogICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fZ3JpZENvbHVtbnMgPT0gby5tX2dyaWRDb2x1bW5zICYmIG1fZ3JpZFJvd3MgPT0g
by5tX2dyaWRSb3dzOworICAgICAgICByZXR1cm4gbV9ncmlkQ29sdW1ucyA9PSBvLm1fZ3JpZENv
bHVtbnMgJiYgbV9ncmlkUm93cyA9PSBvLm1fZ3JpZFJvd3MgJiYgbV9ncmlkQXV0b0Zsb3cgIT0g
by5tX2dyaWRBdXRvRmxvdzsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3R5
bGVHcmlkRGF0YSYgbykgY29uc3QKQEAgLTUyLDYgKzUzLDggQEAgcHVibGljOgogICAgIFZlY3Rv
cjxHcmlkVHJhY2tTaXplPiBtX2dyaWRDb2x1bW5zOwogICAgIFZlY3RvcjxHcmlkVHJhY2tTaXpl
PiBtX2dyaWRSb3dzOwogCisgICAgR3JpZEF1dG9GbG93IG1fZ3JpZEF1dG9GbG93OworCiBwcml2
YXRlOgogICAgIFN0eWxlR3JpZERhdGEoKTsKICAgICBTdHlsZUdyaWREYXRhKGNvbnN0IFN0eWxl
R3JpZERhdGEmKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA2NzRiYzNmYTc5NmQ0ZTY4MGUxMGE4ZTE2NWMzMzliMzNhZGIx
OTM2Li5mYzU4ZjMxMDE2ZWY2NTg0MjJiYTkzODgxZGQyZThkZWI4ZjI3MmMzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTQgQEAKKzIwMTMtMDEtMzAgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdl
YmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBHcmlkIExheW91dF0gQWRkIHBhcnNpbmcgZm9yIGdy
aWQtYXV0by1mbG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDgzOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LWdldC1zZXQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8t
Zmxvdy1nZXQtc2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0
L3Jlc291cmNlcy9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0LmpzOiBBZGRlZC4KKwogMjAxMy0wMS0z
MCAgSnVzc2kgS3Vra29uZW4gIDxqdXNzaS5rdWtrb25lbkBpbnRlbC5jb20+CiAKICAgICAgICAg
W0VGTF0gR2FyZGVuaW5nOiBBZGQgZXhwZWN0YXRpb25zIGZvciBmbGFreSBjcmFzaGVycwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ct
Z2V0LXNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9n
cmlkLWF1dG8tZmxvdy1nZXQtc2V0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40N2IyZDFlM2Vi
NjM1ZTVkM2QzMzdkNzI5N2NiMGVjZDU2MTBmYjNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctZ2V0LXNldC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyNiBAQAorVGVzdCB0aGF0IHNldHRpbmcgYW5kIGdldHRpbmcgZ3Jp
ZC1hdXRvLWZsb3cgd29ya3MgYXMgZXhwZWN0ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1Rlc3QgZ2V0dGluZyAtd2Via2l0LWF1dG8tZmxvdyBzZXQgdGhyb3VnaCBDU1MKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93Tm9uZSwgJycpLmdldFByb3Bl
cnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSBpcyAnbm9uZScKK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93Q29sdW1ucywgJycpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSBpcyAnY29sdW1ucycKK1BBU1Mgd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93Um93cywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSBpcyAncm93cycKK1BBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZ3JpZEF1dG9GbG93Q29sdW1uLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWF1dG8tZmxvdycpIGlzICdub25lJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShn
cmlkQXV0b0Zsb3dSb3csICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1m
bG93JykgaXMgJ25vbmUnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvRmxv
d0luaGVyaXQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1mbG93Jykg
aXMgJ25vbmUnCisKK1Rlc3QgdGhlIGluaXRpYWwgdmFsdWUKK1BBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRv
LWZsb3cnKSBpcyAnbm9uZScKKworVGVzdCBnZXR0aW5nIGFuZCBzZXR0aW5nIC13ZWJraXQtZ3Jp
ZC1hdXRvLWZsb3cgdGhyb3VnaCBKUworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVt
ZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIGlzICdj
b2x1bW5zJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIGlzICdyb3dzJworCitUZXN0IGdl
dHRpbmcgYW5kIHNldHRpbmcgYmFkIHZhbHVlcyBmb3IgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdyB0
aHJvdWdoIEpTCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQ
cm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1mbG93JykgaXMgJ3Jvd3MnCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctZ2V0LXNldC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctZ2V0
LXNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4MmRjOWFlNmFhZGYwZjAzZjNjYTQ0ZThlMDIwMmFiYzVl
NDE4NzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0Lmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBF
IEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxs
aW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzdHlsZT4K
Ky5ncmlkQXV0b0Zsb3dOb25lIHsKKyAgICAtd2Via2l0LWdyaWQtYXV0by1mbG93OiBub25lOwor
fQorLmdyaWRBdXRvRmxvd0NvbHVtbnMgeworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6IGNv
bHVtbnM7Cit9CisuZ3JpZEF1dG9GbG93Um93cyB7CisgICAgLXdlYmtpdC1ncmlkLWF1dG8tZmxv
dzogcm93czsKK30KKy5ncmlkQXV0b0Zsb3dJbmhlcml0IHsKKyAgICAtd2Via2l0LWdyaWQtYXV0
by1mbG93OiBpbmhlcml0OworfQorLyogQmFkIHZhbHVlcy4gKi8KKy5ncmlkQXV0b0Zsb3dSb3cg
eworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6IHJvdzsKK30KKy5ncmlkQXV0b0Zsb3dDb2x1
bW4geworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjsKK30KKzwvc3R5bGU+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGRpdiBjbGFzcz0iZ3JpZCIgaWQ9ImdyaWRJbml0aWFsIj48L2Rpdj4K
KzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93Tm9uZSIgaWQ9ImdyaWRBdXRvRmxvd05vbmUi
PjwvZGl2PgorPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXV0b0Zsb3dDb2x1bW5zIiBpZD0iZ3JpZEF1
dG9GbG93Q29sdW1ucyI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd1Jvd3Mi
IGlkPSJncmlkQXV0b0Zsb3dSb3dzIj48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9G
bG93Q29sdW1ucyI+CisgICAgPGRpdj48ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd0luaGVy
aXQiIGlkPSJncmlkQXV0b0Zsb3dJbmhlcml0Ij48L2Rpdj48L2Rpdj4KKzwvZGl2PgorPGRpdiBj
bGFzcz0iZ3JpZCBncmlkQXV0b0Zsb3dDb2x1bW4iIGlkPSJncmlkQXV0b0Zsb3dDb2x1bW4iPjwv
ZGl2PgorPGRpdiBjbGFzcz0iZ3JpZCBncmlkQXV0b0Zsb3dSb3ciIGlkPSJncmlkQXV0b0Zsb3dS
b3ciPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0Lmpz
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQtYXV0by1m
bG93LWdldC1zZXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGVhOWVkOWYxM2M2NjMyZjkyYmQ2YWUyMzEzYmQ2
MDI3MWQ5M2E2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L3Jlc291cmNlcy9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0LmpzCkBAIC0wLDAgKzEsNDIg
QEAKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWF1dG8t
ZmxvdyB3b3JrcyBhcyBleHBlY3RlZCcpOworCitkZWJ1ZygiVGVzdCBnZXR0aW5nIC13ZWJraXQt
YXV0by1mbG93IHNldCB0aHJvdWdoIENTUyIpOwordmFyIGdyaWRBdXRvRmxvd05vbmUgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEF1dG9GbG93Tm9uZSIpOworc2hvdWxkQmUoIndpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvRmxvd05vbmUsICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtYXV0by1mbG93JykiLCAiJ25vbmUnIik7CisKK3ZhciBncmlkQXV0b0Zs
b3dDb2x1bW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRBdXRvRmxvd0NvbHVtbnMi
KTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0Zsb3dDb2x1bW5z
LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIiwgIidjb2x1
bW5zJyIpOworCit2YXIgZ3JpZEF1dG9GbG93Um93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJncmlkQXV0b0Zsb3dSb3dzIik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUo
Z3JpZEF1dG9GbG93Um93cywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRv
LWZsb3cnKSIsICIncm93cyciKTsKKwordmFyIGdyaWRBdXRvRmxvd0NvbHVtbiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJncmlkQXV0b0Zsb3dDb2x1bW4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0Zsb3dDb2x1bW4sICcnKS5nZXRQcm9wZXJ0eVZhbHVl
KCctd2Via2l0LWdyaWQtYXV0by1mbG93JykiLCAiJ25vbmUnIik7CisKK3ZhciBncmlkQXV0b0Zs
b3dSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEF1dG9GbG93Um93Iik7CitzaG91
bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93Um93LCAnJykuZ2V0UHJv
cGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIiwgIidub25lJyIpOworCit2YXIg
Z3JpZEF1dG9GbG93SW5oZXJpdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkQXV0b0Zs
b3dJbmhlcml0Iik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9G
bG93SW5oZXJpdCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cn
KSIsICInbm9uZSciKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgdGhlIGluaXRpYWwgdmFs
dWUiKTsKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVk
U3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZs
b3cnKSIsICInbm9uZSciKTsKKworZGVidWcoIiIpOworZGVidWcoIlRlc3QgZ2V0dGluZyBhbmQg
c2V0dGluZyAtd2Via2l0LWdyaWQtYXV0by1mbG93IHRocm91Z2ggSlMiKTsKK2VsZW1lbnQuc3R5
bGUud2Via2l0R3JpZEF1dG9GbG93ID0gImNvbHVtbnMiOworc2hvdWxkQmUoIndpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQt
YXV0by1mbG93JykiLCAiJ2NvbHVtbnMnIik7CisKK2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CitlbGVt
ZW50LnN0eWxlLndlYmtpdEdyaWRBdXRvRmxvdyA9ICJyb3dzIjsKK3Nob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWF1dG8tZmxvdycpIiwgIidyb3dzJyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBn
ZXR0aW5nIGFuZCBzZXR0aW5nIGJhZCB2YWx1ZXMgZm9yIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3cg
dGhyb3VnaCBKUyIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK2VsZW1l
bnQuc3R5bGUud2Via2l0R3JpZEF1dG9GbG93ID0gIm5vb25lIjsKK3Nob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWF1dG8tZmxvdycpIiwgIidyb3dzJyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186071</attachid>
            <date>2013-02-01 10:11:34 -0800</date>
            <delta_ts>2013-02-04 10:21:26 -0800</delta_ts>
            <desc>Proposed change II: won&apos;t commit it until next week to wait for some spec update.</desc>
            <filename>bug-108397-20130201100817.patch</filename>
            <type>text/plain</type>
            <size>21172</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmI4ZWQzOTM5MjI1MDNk
OTI4YjQ2Yzg3OTgwNzFmMTJlYmJmZjI5Mi4uZjliZmUwYTNjM2UzOWVlMTMzMzc0MTk1ZWFhMzc2
NzQwNWM0N2YyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTAxICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEFkZCBwYXJzaW5nIGZvciBncmlkLWF1dG8tZmxvdworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mzk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1hdXRvLWZsb3ctZ2V0LXNldC5odG1sCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRk
cyB0aGUgcGFyc2luZywgYXBwbGljYXRpb24gYW5kIGNvbnZlcnNpb24gYmFjayB0aHJvdWdoIGdl
dENvbXB1dGVkU3R5bGUKKyAgICAgICAgZm9yIHRoZSBuZXcgcHJvcGVydHkgLXdlYmtpdC1ncmlk
LWF1dG8tZmxvdywgd2hpY2ggYWNjcGV0cyB0aGUgZm9sbG93aW5nOgorCisgICAgICAgIC13ZWJr
aXQtZ3JpZC1hdXRvLWZsb3c6IG5vbmUgfCByb3dzIHwgY29sdW1ucworCisgICAgICAgICogY3Nz
L0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOgorICAgICAgICBB
ZGRlZCBjb2RlIHRvIGNvbnZlcnQgdGhlIFJlbmRlclN0eWxlIGluZm9ybWF0aW9uIGJhY2sgaW50
byBhIENTUyB2YWx1ZS4KKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OmlzS2V5d29yZFByb3BlcnR5SUQpOgorICAgICAgICBJbXBsZW1lbnRlZCBwYXJzaW5nIGZv
ciAtd2Via2l0LWdyaWQtYXV0by1mbG93LgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVy
YXRvciBHcmlkQXV0b0Zsb3cpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgQWRkZWQgdGhlIGNvbnZlcnNpb24gb3BlcmF0
b3JzLCB1c2VkIGZvciBwYXJzaW5nIGFuZCBnZXRDb21wdXRlZFN0eWxlLgorCisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5Ojppc0lu
aGVyaXRlZFByb3BlcnR5KToKKyAgICAgICAgQWRkZWQgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdyB0
byB0aGUgbGlzdCBvZiB0aGUgbm90IGluaGVyaXRlZCBwcm9wZXJ0aWVzLgorCisgICAgICAgICog
Y3NzL0NTU1Byb3BlcnR5TmFtZXMuaW46CisgICAgICAgIEFkZGVkIHRoZSBuZXcgdmFsdWUgYW5k
IGtleXdvcmRzLgorCisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZUJ1aWxkZXI6OlN0eWxlQnVpbGRlcik6CisgICAgICAgIEFkZGVkIGEgaGFu
ZGxlciBmb3IgdGhlIG5ldyBDU1MgcHJvcGVydHkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgQWRkZWQgdGhlIHVzdWFsIGdldHRlciAvIHNldHRl
ciAvIGluaXRpYWwgZnVuY3Rpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgQWRkZWQgYSBuZXcgZW51bSBHcmlkQXV0b0Zsb3cg
dG8gaG9sZCB0aGUgcGFyc2VkIHZhbHVlLgorCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlR3JpZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVHcmlkRGF0YTo6U3R5bGVH
cmlkRGF0YSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlR3JpZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICBVcGRh
dGVkIGFmdGVyIGFkZGluZyBhIG5ldyBmaWVsZCBmb3IgdGhlIEdyaWRBdXRvRmxvdyB2YWx1ZS4K
KwogMjAxMy0wMi0wMSAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZGVkIFRyaVN0YXRlIHRvIFdURiBhbmQgc3RhcnRlZCB1c2luZyBpdCBpbiBvbmUgcGxh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKaW5kZXggZTFkNWFlZDgzMTljMDVjZWViZTFlYjM4MzVmNzU3ZmE1M2RhOTJjZC4uYTgz
ZTZjNWYzNTc2ODQ4MmQxMjMxMzNmM2FjYjk0MjRjMTBiYjVjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI3NSw2ICsy
NzUsNyBAQCBzdGF0aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBjb21wdXRlZFByb3BlcnRpZXNbXSA9
IHsKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRLZXJuaW5nLAogICAgIENTU1Byb3BlcnR5V2Vi
a2l0Rm9udFNtb290aGluZywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRWYXJpYW50TGlnYXR1
cmVzLAorICAgIENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9GbG93LAogICAgIENTU1Byb3BlcnR5
V2Via2l0R3JpZENvbHVtbnMsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRHcmlkUm93cywKICAgICBD
U1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW4sCkBAIC0xOTAxLDEyICsxOTAyLDEyIEBAIFBhc3NS
ZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlD
U1NWYWx1ZShDU1NQcm9wZXJ0CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gbGlz
dC5yZWxlYXNlKCk7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdy
aWRDb2x1bW5zOiB7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQXV0b0Zsb3c6
CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUoc3R5bGUtPmdy
aWRBdXRvRmxvdygpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5z
OgogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRyYWNrTGlzdChzdHlsZS0+Z3JpZENv
bHVtbnMoKSwgc3R5bGUuZ2V0KCksIG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsK
LSAgICAgICAgfQotICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd3M6IHsKKyAg
ICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgogICAgICAgICAgICAgcmV0dXJu
IHZhbHVlRm9yR3JpZFRyYWNrTGlzdChzdHlsZS0+Z3JpZFJvd3MoKSwgc3R5bGUuZ2V0KCksIG1f
bm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKLSAgICAgICAgfQogCiAgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uOgogICAgICAgICAgICAgcmV0dXJuIHZhbHVl
Rm9yR3JpZFBvc2l0aW9uKHN0eWxlLT5ncmlkSXRlbUNvbHVtbigpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKaW5kZXggMTdjZWE5YjcwMTRmNGNjMDBiYzZkMzI5ZTU5YjFiOTBhNzEzOGNmZi4u
M2M0ODRkOWJkMzhjMDg2ZWY1ZTg2ZDRjMDM5ZTRkY2I1NjEzYmQ4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKQEAgLTgzNiw2ICs4MzYsMTAgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFs
aWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5SWQsIGludAog
ICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZU1hbnVhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXV0bykKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9G
bG93OgorICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUgfHwgdmFsdWVJRCA9PSBD
U1NWYWx1ZVJvdyB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQ29sdW1uKQorICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMaW5l
QWxpZ246CiAgICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVlTm9uZSB8fCB2YWx1ZUlEID09
IENTU1ZhbHVlRWRnZXMpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEwNDksNiArMTA1
Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleXdvcmRQcm9wZXJ0eUlEKENTU1Byb3BlcnR5
SUQgcHJvcGVydHlJZCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rm9udEtlcm5pbmc6CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTbW9vdGhpbmc6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdEh5cGhlbnM6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvRmxv
dzoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TGluZUFsaWduOgogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRMaW5lQnJlYWs6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdExpbmVTbmFw
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5k
ZXggM2EzYzYwMTY3OTA2NTBjM2E1MTNjZWRjM2VjOWI5ZDMyOTFlMzczOC4uNTMyZTk5YzI3ZmU3
ZDgzN2U4MzYwNGNjYmJhMGJhYWVmZGNjNWY5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC00MTAxLDYgKzQxMDEsMzkgQEAgdGVtcGxh
dGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9yIFdyYXBUaHJvdWdoKCkgY29u
c3QKICAgICByZXR1cm4gV3JhcFRocm91Z2hXcmFwOwogfQogCit0ZW1wbGF0ZTw+IGlubGluZSBD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgR3JpZEF1dG9GbG93KCkgY29uc3QKK3sKKyAgICBz
d2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBjYXNlIENTU1ZhbHVlTm9uZToKKyAgICAgICAg
cmV0dXJuIEF1dG9GbG93Tm9uZTsKKyAgICBjYXNlIENTU1ZhbHVlQ29sdW1uOgorICAgICAgICBy
ZXR1cm4gQXV0b0Zsb3dDb2x1bW47CisgICAgY2FzZSBDU1NWYWx1ZVJvdzoKKyAgICAgICAgcmV0
dXJuIEF1dG9GbG93Um93OworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBBdXRvRmxvd05vbmU7CisKK30KKwordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEdyaWRBdXRvRmxvdyBmbG93KQorICAgIDogQ1NT
VmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRpdmVVbml0VHlwZSA9IENTU19J
REVOVDsKKyAgICBzd2l0Y2ggKGZsb3cpIHsKKyAgICBjYXNlIEF1dG9GbG93Tm9uZToKKyAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBBdXRvRmxvd0NvbHVtbjoKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlQ29sdW1u
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEF1dG9GbG93Um93OgorICAgICAgICBtX3ZhbHVl
LmlkZW50ID0gQ1NTVmFsdWVSb3c7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwogZW51bSBM
ZW5ndGhDb252ZXJzaW9uIHsKICAgICBBbnlDb252ZXJzaW9uID0gfjAsCiAgICAgRml4ZWRJbnRl
Z2VyQ29udmVyc2lvbiA9IDEgPDwgMCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCmluZGV4
IGEwMmRiMTRiYjkxN2Y2MjU3NWEyNTU1NzU1ZGIwOTRjZDAyNzM0OTEuLmE3YWE5OTFlMDRiYjkx
OGYxZTM0YzM1Yjc2MDJhY2EzYWE1Y2UzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5LmNw
cApAQCAtNTc0LDYgKzU3NCw3IEBAIGJvb2wgQ1NTUHJvcGVydHk6OmlzSW5oZXJpdGVkUHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRK
dXN0aWZ5Q29udGVudDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0T3JkZXI6CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTaXplRGVsdGE6CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdEdyaWRBdXRvRmxvdzoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnM6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgogICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRHcmlkQ29sdW1uOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpp
bmRleCA3ODdkY2JjNGYzMWYxMDU5NzE3ZmQyNTE2Mjg3MzFjMDU0M2FmYWExLi5hYTFmOWRlZDlj
MGQxZTA5NmJlM2MxM2Y5OGMwN2NiZTQ2NjdiMzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJv
cGVydHlOYW1lcy5pbgpAQCAtMjkzLDYgKzI5Myw3IEBAIHotaW5kZXgKIC13ZWJraXQtZ3JpZC1y
b3dzCiAtd2Via2l0LWdyaWQtY29sdW1uCiAtd2Via2l0LWdyaWQtcm93Cistd2Via2l0LWdyaWQt
YXV0by1mbG93CiAtd2Via2l0LWhpZ2hsaWdodAogLXdlYmtpdC1oeXBoZW5hdGUtY2hhcmFjdGVy
CiAtd2Via2l0LWh5cGhlbmF0ZS1saW1pdC1hZnRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVy
LmNwcAppbmRleCA2ZDc4YzY4NDQ0MmNjN2UyNGViZjlhNjI4NjdiZDg4OTlmZTc5OGU2Li4wMjcx
ZjliMzQ2NmU0OWIxZTZmZDkzY2RmZGIzNGQ0NmMzYjVhNjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVCdWlsZGVyLmNwcApAQCAtMTk5MCw2ICsxOTkwLDcgQEAgU3R5bGVCdWlsZGVyOjpTdHlsZUJ1
aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEZsZXhHcm93
LCBBcHBseVByb3BlcnR5RGVmYXVsdDxmbG9hdCwgJlJlbmRlclN0eWxlOjpmbGV4R3JvdywgZmxv
YXQsICZSZW5kZXJTdHlsZTo6c2V0RmxleEdyb3csIGZsb2F0LCAmUmVuZGVyU3R5bGU6OmluaXRp
YWxGbGV4R3Jvdz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5V2Via2l0RmxleFNocmluaywgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8ZmxvYXQsICZS
ZW5kZXJTdHlsZTo6ZmxleFNocmluaywgZmxvYXQsICZSZW5kZXJTdHlsZTo6c2V0RmxleFNocmlu
aywgZmxvYXQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEZsZXhTaHJpbms+OjpjcmVhdGVIYW5kbGVy
KCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEZsZXhXcmFwLCBB
cHBseVByb3BlcnR5RGVmYXVsdDxFRmxleFdyYXAsICZSZW5kZXJTdHlsZTo6ZmxleFdyYXAsIEVG
bGV4V3JhcCwgJlJlbmRlclN0eWxlOjpzZXRGbGV4V3JhcCwgRUZsZXhXcmFwLCAmUmVuZGVyU3R5
bGU6OmluaXRpYWxGbGV4V3JhcD46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0UHJvcGVydHlI
YW5kbGVyKENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9GbG93LCBBcHBseVByb3BlcnR5RGVmYXVs
dDxHcmlkQXV0b0Zsb3csICZSZW5kZXJTdHlsZTo6Z3JpZEF1dG9GbG93LCBHcmlkQXV0b0Zsb3cs
ICZSZW5kZXJTdHlsZTo6c2V0R3JpZEF1dG9GbG93LCBHcmlkQXV0b0Zsb3csICZSZW5kZXJTdHls
ZTo6aW5pdGlhbEdyaWRBdXRvRmxvdz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVy
dHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0SnVzdGlmeUNvbnRlbnQsIEFwcGx5UHJvcGVydHlE
ZWZhdWx0PEVKdXN0aWZ5Q29udGVudCwgJlJlbmRlclN0eWxlOjpqdXN0aWZ5Q29udGVudCwgRUp1
c3RpZnlDb250ZW50LCAmUmVuZGVyU3R5bGU6OnNldEp1c3RpZnlDb250ZW50LCBFSnVzdGlmeUNv
bnRlbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEp1c3RpZnlDb250ZW50Pjo6Y3JlYXRlSGFuZGxl
cigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRPcmRlciwgQXBw
bHlQcm9wZXJ0eURlZmF1bHQ8aW50LCAmUmVuZGVyU3R5bGU6Om9yZGVyLCBpbnQsICZSZW5kZXJT
dHlsZTo6c2V0T3JkZXIsIGludCwgJlJlbmRlclN0eWxlOjppbml0aWFsT3JkZXI+OjpjcmVhdGVI
YW5kbGVyKCkpOwogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZDA5YTU1MTVkODMwNWNlN2FlNjA4YTkw
ZGY3Zjg4NGY0NWQ0ZTUwZC4uZjVlNWNkMzdjYmZkOWZlODM4ZDEwNDI5NzQ0YWIzNWM5Y2RkOGVi
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAg
LTc2NCw2ICs3NjQsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8R3JpZFRyYWNrU2l6
ZT4mIGdyaWRDb2x1bW5zKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
Z3JpZC0+bV9ncmlkQ29sdW1uczsgfQogICAgIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYg
Z3JpZFJvd3MoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkLT5t
X2dyaWRSb3dzOyB9CisgICAgR3JpZEF1dG9GbG93IGdyaWRBdXRvRmxvdygpIGNvbnN0IHsgcmV0
dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQtPm1fZ3JpZEF1dG9GbG93OyB9CiAKICAg
ICBjb25zdCBHcmlkUG9zaXRpb24mIGdyaWRJdGVtQ29sdW1uKCkgY29uc3QgeyByZXR1cm4gcmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0tPm1fZ3JpZENvbHVtbjsgfQogICAgIGNvbnN0
IEdyaWRQb3NpdGlvbiYgZ3JpZEl0ZW1Sb3coKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9ncmlkSXRlbS0+bV9ncmlkUm93OyB9CkBAIC0xMjUyLDYgKzEyNTMsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRKdXN0aWZ5Q29udGVudChFSnVzdGlmeUNvbnRlbnQgcCkgeyBT
RVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX2p1c3RpZnlDb250ZW50LCBwKTsgfQogICAg
IHZvaWQgc2V0R3JpZENvbHVtbnMoY29uc3QgVmVjdG9yPEdyaWRUcmFja1NpemU+JiBsZW5ndGhz
KSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZ3JpZCwgbV9ncmlk
Q29sdW1ucywgbGVuZ3Rocyk7IH0KICAgICB2b2lkIHNldEdyaWRSb3dzKGNvbnN0IFZlY3RvcjxH
cmlkVHJhY2tTaXplPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFj
Y2VzcygpLT5tX2dyaWQsIG1fZ3JpZFJvd3MsIGxlbmd0aHMpOyB9CisgICAgdm9pZCBzZXRHcmlk
QXV0b0Zsb3coR3JpZEF1dG9GbG93IGZsb3cpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRBdXRvRmxvdywgZmxvdyk7IH0KICAgICB2b2lkIHNl
dEdyaWRJdGVtQ29sdW1uKGNvbnN0IEdyaWRQb3NpdGlvbiYgY29sdW1uUG9zaXRpb24pIHsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkSXRlbSwgbV9ncmlkQ29s
dW1uLCBjb2x1bW5Qb3NpdGlvbik7IH0KICAgICB2b2lkIHNldEdyaWRJdGVtUm93KGNvbnN0IEdy
aWRQb3NpdGlvbiYgcm93UG9zaXRpb24pIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5h
Y2Nlc3MoKS0+bV9ncmlkSXRlbSwgbV9ncmlkUm93LCByb3dQb3NpdGlvbik7IH0KIApAQCAtMTY1
Myw2ICsxNjU1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4g
aW5pdGlhbEdyaWRDb2x1bW5zKCkgeyByZXR1cm4gVmVjdG9yPEdyaWRUcmFja1NpemU+KCk7IH0K
ICAgICBzdGF0aWMgVmVjdG9yPEdyaWRUcmFja1NpemU+IGluaXRpYWxHcmlkUm93cygpIHsgcmV0
dXJuIFZlY3RvcjxHcmlkVHJhY2tTaXplPigpOyB9CiAKKyAgICBzdGF0aWMgR3JpZEF1dG9GbG93
IGluaXRpYWxHcmlkQXV0b0Zsb3coKSB7IHJldHVybiBBdXRvRmxvd05vbmU7IH0KKwogICAgIC8v
ICdhdXRvJyBpcyB0aGUgZGVmYXVsdC4KICAgICBzdGF0aWMgR3JpZFBvc2l0aW9uIGluaXRpYWxH
cmlkSXRlbUNvbHVtbigpIHsgcmV0dXJuIEdyaWRQb3NpdGlvbigpOyB9CiAgICAgc3RhdGljIEdy
aWRQb3NpdGlvbiBpbml0aWFsR3JpZEl0ZW1Sb3coKSB7IHJldHVybiBHcmlkUG9zaXRpb24oKTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVD
b25zdGFudHMuaAppbmRleCBlN2MxMDhmNDgyYjJlM2MxOTg1ZGRhOWJkMDcwNzA4Zjc5OTkyMmRi
Li44YzJjMGI1ODZmNGI0OGVhOWFkNDJkMDJhY2JjMjQ0MjVlMWQ3MTM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApA
QCAtNDg3LDYgKzQ4Nyw4IEBAIGVudW0gV3JhcFRocm91Z2ggeyBXcmFwVGhyb3VnaFdyYXAsIFdy
YXBUaHJvdWdoTm9uZSB9OwogCiBlbnVtIFJ1YnlQb3NpdGlvbiB7IFJ1YnlQb3NpdGlvbkJlZm9y
ZSwgUnVieVBvc2l0aW9uQWZ0ZXIgfTsKIAorZW51bSBHcmlkQXV0b0Zsb3cgeyBBdXRvRmxvd05v
bmUsIEF1dG9GbG93Q29sdW1uLCBBdXRvRmxvd1JvdyB9OworCiAjaWYgRU5BQkxFKERSQUdHQUJM
RV9SRUdJT04pCiBlbnVtIERyYWdnYWJsZVJlZ2lvbk1vZGUgeyBEcmFnZ2FibGVSZWdpb25Ob25l
LCBEcmFnZ2FibGVSZWdpb25EcmFnLCBEcmFnZ2FibGVSZWdpb25Ob0RyYWcgfTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuY3BwCmlu
ZGV4IDdiNmJjMGEzNzBiZjRhOWQ4YTZiZTMwNWRlZjQ2NGYzMzI0NWY2ZmYuLjlhODEwZGVlODgy
M2I2MDNlNjVhMjdkYmE1NmM1YzZhNWRmNzM1MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogU3R5bGVHcmlkRGF0YTo6U3R5bGVHcmlkRGF0YSgpCiAgICAgOiBtX2dy
aWRDb2x1bW5zKFJlbmRlclN0eWxlOjppbml0aWFsR3JpZENvbHVtbnMoKSkKICAgICAsIG1fZ3Jp
ZFJvd3MoUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkUm93cygpKQorICAgICwgbV9ncmlkQXV0b0Zs
b3coUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkQXV0b0Zsb3coKSkKIHsKIH0KIApAQCAtNDAsNiAr
NDEsNyBAQCBTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWREYXRhKGNvbnN0IFN0eWxlR3JpZERhdGEm
IG8pCiAgICAgOiBSZWZDb3VudGVkPFN0eWxlR3JpZERhdGE+KCkKICAgICAsIG1fZ3JpZENvbHVt
bnMoby5tX2dyaWRDb2x1bW5zKQogICAgICwgbV9ncmlkUm93cyhvLm1fZ3JpZFJvd3MpCisgICAg
LCBtX2dyaWRBdXRvRmxvdyhvLm1fZ3JpZEF1dG9GbG93KQogewogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaAppbmRleCAxOGZmY2FiYTYxYmRm
ZmE5YjkxMzM5ZDA5M2NhNWNjMmQ1NTEzZmJlLi4zZjgxMGRjODczMjFlOTIzMmQ4ZjAwMTBiZGU4
OWVkNzU2NGRiMjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVHcmlkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUdyaWREYXRhLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgU3R5bGVHcmlkRGF0YV9oCiAK
ICNpbmNsdWRlICJHcmlkVHJhY2tTaXplLmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFu
dHMuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDAsNyArNDEsNyBAQCBwdWJsaWM6
CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVHcmlkRGF0YSYgbykgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiBtX2dyaWRDb2x1bW5zID09IG8ubV9ncmlkQ29sdW1ucyAmJiBt
X2dyaWRSb3dzID09IG8ubV9ncmlkUm93czsKKyAgICAgICAgcmV0dXJuIG1fZ3JpZENvbHVtbnMg
PT0gby5tX2dyaWRDb2x1bW5zICYmIG1fZ3JpZFJvd3MgPT0gby5tX2dyaWRSb3dzICYmIG1fZ3Jp
ZEF1dG9GbG93ICE9IG8ubV9ncmlkQXV0b0Zsb3c7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRv
ciE9KGNvbnN0IFN0eWxlR3JpZERhdGEmIG8pIGNvbnN0CkBAIC01Miw2ICs1Myw4IEBAIHB1Ymxp
YzoKICAgICBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4gbV9ncmlkQ29sdW1uczsKICAgICBWZWN0b3I8
R3JpZFRyYWNrU2l6ZT4gbV9ncmlkUm93czsKIAorICAgIEdyaWRBdXRvRmxvdyBtX2dyaWRBdXRv
RmxvdzsKKwogcHJpdmF0ZToKICAgICBTdHlsZUdyaWREYXRhKCk7CiAgICAgU3R5bGVHcmlkRGF0
YShjb25zdCBTdHlsZUdyaWREYXRhJik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODI4MTBmMzdhNTdlNjg5ZGQ5ZjU2ZjNj
OTQ2NDE2ZjBhNDQ2ZTEwYy4uMGJhZDUwZmRiMThmZDk1YmFlYTcwNjA2OGRhM2JiOTUwY2UwZGEy
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAyLTAxICBKdWxpZW4gQ2hhZmZyYWl4ICA8
amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIEFkZCBw
YXJzaW5nIGZvciBncmlkLWF1dG8tZmxvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1n
ZXQtc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1hdXRvLWZsb3ctZ2V0LXNldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
cy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC1hdXRvLWZsb3ctZ2V0LXNldC5qczogQWRkZWQu
CisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQuY3NzOgorICAg
ICAgICAoLmdyaWRBdXRvRmxvd05vbmUpOgorICAgICAgICAoLmdyaWRBdXRvRmxvd0NvbHVtbik6
CisgICAgICAgICguZ3JpZEF1dG9GbG93Um93KToKKyAgICAgICAgQWRkZWQgdGhlc2UgbmV3IGNs
YXNzZXMgdG8gb3VyIGNvbW1vbiBzdHlsZS4KKwogMjAxMy0wMi0wMSAgU3VkYXJzYW5hIE5hZ2lu
ZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGludGVsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IEVGTCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LWdldC1zZXQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjlmZTVhODM3NTM2MjUxOGFhYjRkNjk4YmExMTQ2NTE2NmEzMDA1MTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8t
Zmxvdy1nZXQtc2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2IEBACitUZXN0IHRoYXQgc2V0
dGluZyBhbmQgZ2V0dGluZyBncmlkLWF1dG8tZmxvdyB3b3JrcyBhcyBleHBlY3RlZAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBnZXR0aW5nIC13ZWJraXQtYXV0by1mbG93
IHNldCB0aHJvdWdoIENTUworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0Zs
b3dOb25lLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIGlz
ICdub25lJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0Zsb3dDb2x1bW4s
ICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1mbG93JykgaXMgJ2NvbHVt
bicKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93Um93LCAnJykuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIGlzICdyb3cnCitQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvRmxvd0NvbHVtbnMsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1mbG93JykgaXMgJ25vbmUnCitQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvRmxvd1Jvd3MsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCct
d2Via2l0LWdyaWQtYXV0by1mbG93JykgaXMgJ25vbmUnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGdyaWRBdXRvRmxvd0luaGVyaXQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtYXV0by1mbG93JykgaXMgJ25vbmUnCisKK1Rlc3QgdGhlIGluaXRpYWwgdmFsdWUKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSBpcyAnbm9uZScKKworVGVzdCBnZXR0aW5nIGFuZCBz
ZXR0aW5nIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3cgdGhyb3VnaCBKUworUEFTUyB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlk
LWF1dG8tZmxvdycpIGlzICdjb2x1bW4nCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVs
ZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1mbG93JykgaXMg
J3JvdycKKworVGVzdCBnZXR0aW5nIGFuZCBzZXR0aW5nIGJhZCB2YWx1ZXMgZm9yIC13ZWJraXQt
Z3JpZC1hdXRvLWZsb3cgdGhyb3VnaCBKUworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShl
bGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIGlz
ICdyb3cnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRv
LWZsb3ctZ2V0LXNldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1hdXRvLWZsb3ctZ2V0LXNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIxMDA5MjE5MjRjNGU0MjMzNzUz
ZmM1ZTk3NzE0OGY5OTNmNDk0ZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0Lmh0bWwKQEAgLTAsMCArMSwz
NiBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7
Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNo
ZWV0Ij4KKzxzdHlsZT4KKy5ncmlkQXV0b0Zsb3dJbmhlcml0IHsKKyAgICAtd2Via2l0LWdyaWQt
YXV0by1mbG93OiBpbmhlcml0OworfQorLyogQmFkIHZhbHVlcy4gKi8KKy5ncmlkQXV0b0Zsb3dS
b3dzIHsKKyAgICAtd2Via2l0LWdyaWQtYXV0by1mbG93OiByb3dzOworfQorLmdyaWRBdXRvRmxv
d0NvbHVtbnMgeworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbnM7Cit9Cis8L3N0
eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImdyaWQiIGlkPSJncmlkSW5pdGlhbCI+
PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd05vbmUiIGlkPSJncmlkQXV0b0Zs
b3dOb25lIj48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93Q29sdW1uIiBpZD0i
Z3JpZEF1dG9GbG93Q29sdW1uIj48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93
Um93IiBpZD0iZ3JpZEF1dG9GbG93Um93Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1
dG9GbG93Q29sdW1uIj4KKyAgICA8ZGl2PjxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93SW5o
ZXJpdCIgaWQ9ImdyaWRBdXRvRmxvd0luaGVyaXQiPjwvZGl2PjwvZGl2PgorPC9kaXY+Cis8ZGl2
IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd0NvbHVtbnMiIGlkPSJncmlkQXV0b0Zsb3dDb2x1bW5z
Ij48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93Um93cyIgaWQ9ImdyaWRBdXRv
Rmxvd1Jvd3MiPjwvZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9ncmlkLWF1dG8tZmxvdy1n
ZXQtc2V0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLWF1dG8tZmxvdy1nZXQt
c2V0LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQt
YXV0by1mbG93LWdldC1zZXQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E5YmY3MjAwMWJlZmI3Y2M2NDM3YjZm
MTExMjE1NjdmYzhhYzdjYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0LmpzCkBAIC0wLDAg
KzEsNDIgQEAKK2Rlc2NyaXB0aW9uKCdUZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlk
LWF1dG8tZmxvdyB3b3JrcyBhcyBleHBlY3RlZCcpOworCitkZWJ1ZygiVGVzdCBnZXR0aW5nIC13
ZWJraXQtYXV0by1mbG93IHNldCB0aHJvdWdoIENTUyIpOwordmFyIGdyaWRBdXRvRmxvd05vbmUg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEF1dG9GbG93Tm9uZSIpOworc2hvdWxkQmUo
IndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvRmxvd05vbmUsICcnKS5nZXRQcm9wZXJ0
eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1mbG93JykiLCAiJ25vbmUnIik7CisKK3ZhciBncmlk
QXV0b0Zsb3dDb2x1bW4gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEF1dG9GbG93Q29s
dW1uIik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93Q29s
dW1uLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIiwgIidj
b2x1bW4nIik7CisKK3ZhciBncmlkQXV0b0Zsb3dSb3cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZ3JpZEF1dG9GbG93Um93Iik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUo
Z3JpZEF1dG9GbG93Um93LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8t
ZmxvdycpIiwgIidyb3cnIik7CisKK3ZhciBncmlkQXV0b0Zsb3dDb2x1bW5zID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImdyaWRBdXRvRmxvd0NvbHVtbnMiKTsKK3Nob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0Zsb3dDb2x1bW5zLCAnJykuZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIiwgIidub25lJyIpOworCit2YXIgZ3JpZEF1dG9G
bG93Um93cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkQXV0b0Zsb3dSb3dzIik7Citz
aG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93Um93cywgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSIsICInbm9uZSciKTsKKwor
dmFyIGdyaWRBdXRvRmxvd0luaGVyaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZ3JpZEF1
dG9GbG93SW5oZXJpdCIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRB
dXRvRmxvd0luaGVyaXQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1m
bG93JykiLCAiJ25vbmUnIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IHRoZSBpbml0aWFs
IHZhbHVlIik7CitlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Citkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0
by1mbG93JykiLCAiJ25vbmUnIik7CisKK2RlYnVnKCIiKTsKK2RlYnVnKCJUZXN0IGdldHRpbmcg
YW5kIHNldHRpbmcgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdyB0aHJvdWdoIEpTIik7CitlbGVtZW50
LnN0eWxlLndlYmtpdEdyaWRBdXRvRmxvdyA9ICJjb2x1bW4iOworc2hvdWxkQmUoIndpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtYXV0by1mbG93JykiLCAiJ2NvbHVtbiciKTsKKworZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK2Vs
ZW1lbnQuc3R5bGUud2Via2l0R3JpZEF1dG9GbG93ID0gInJvdyI7CitzaG91bGRCZSgid2luZG93
LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQt
Z3JpZC1hdXRvLWZsb3cnKSIsICIncm93JyIpOworCitkZWJ1ZygiIik7CitkZWJ1ZygiVGVzdCBn
ZXR0aW5nIGFuZCBzZXR0aW5nIGJhZCB2YWx1ZXMgZm9yIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3cg
dGhyb3VnaCBKUyIpOworZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKK2VsZW1l
bnQuc3R5bGUud2Via2l0R3JpZEF1dG9GbG93ID0gIm5vb25lIjsKK3Nob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWF1dG8tZmxvdycpIiwgIidyb3cnIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC5jc3MgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC5jc3MKaW5kZXggYjQ4ODYyZDdhMTlmY2Y2MTlm
MzYzYTI4YzUxNGVlNzNkYWIyYjg4OS4uZDAzYzQ4ZGJhZWJiMWUyMWYxM2U3Y2RlNDI3YzdiNGM2
M2EzYjc1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVz
b3VyY2VzL2dyaWQuY3NzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3Jl
c291cmNlcy9ncmlkLmNzcwpAQCAtMzIsNiArMzIsMTggQEAKICAgICAtd2Via2l0LWdyaWQtcm93
OiAyOwogfQogCisuZ3JpZEF1dG9GbG93Tm9uZSB7CisgICAgLXdlYmtpdC1ncmlkLWF1dG8tZmxv
dzogbm9uZTsKK30KKworLmdyaWRBdXRvRmxvd0NvbHVtbiB7CisgICAgLXdlYmtpdC1ncmlkLWF1
dG8tZmxvdzogY29sdW1uOworfQorCisuZ3JpZEF1dG9GbG93Um93IHsKKyAgICAtd2Via2l0LWdy
aWQtYXV0by1mbG93OiByb3c7Cit9CisKIC52ZXJ0aWNhbFJMIHsKICAgICAtd2Via2l0LXdyaXRp
bmctbW9kZTogdmVydGljYWwtcmw7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186413</attachid>
            <date>2013-02-04 10:21:30 -0800</date>
            <delta_ts>2013-02-04 11:15:55 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108397-20130204101809.patch</filename>
            <type>text/plain</type>
            <size>20852</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNiNTUwMWZiZWU1ZmM0
NzQ1N2UzNzU0YzNmOWExNTJkODQxNmYxMy4uOTY1ZDk5ZGRkNDhlYzJhODM1MWM4ZTBhNDA1MWY5
ZDhhNWZlMjNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAyLTA0ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEFkZCBwYXJzaW5nIGZvciBncmlkLWF1dG8tZmxvdworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mzk3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgT2phbiBWYWZhaS4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy1ncmlkLWxheW91dC9n
cmlkLWF1dG8tZmxvdy1nZXQtc2V0Lmh0bWwKKworICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIHRo
ZSBwYXJzaW5nLCBhcHBsaWNhdGlvbiBhbmQgY29udmVyc2lvbiBiYWNrIHRocm91Z2ggZ2V0Q29t
cHV0ZWRTdHlsZQorICAgICAgICBmb3IgdGhlIG5ldyBwcm9wZXJ0eSAtd2Via2l0LWdyaWQtYXV0
by1mbG93LCB3aGljaCBhY2NwZXRzIHRoZSBmb2xsb3dpbmc6CisKKyAgICAgICAgLXdlYmtpdC1n
cmlkLWF1dG8tZmxvdzogbm9uZSB8IHJvd3MgfCBjb2x1bW5zCisKKyAgICAgICAgKiBjc3MvQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZSk6CisgICAgICAgIEFkZGVk
IGNvZGUgdG8gY29udmVydCB0aGUgUmVuZGVyU3R5bGUgaW5mb3JtYXRpb24gYmFjayBpbnRvIGEg
Q1NTIHZhbHVlLgorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppc1ZhbGlkS2V5d29yZFByb3BlcnR5QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
aXNLZXl3b3JkUHJvcGVydHlJRCk6CisgICAgICAgIEltcGxlbWVudGVkIHBhcnNpbmcgZm9yIC13
ZWJraXQtZ3JpZC1hdXRvLWZsb3cuCisKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEdyaWRBdXRvRmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUpOgorICAgICAgICBBZGRlZCB0aGUgY29udmVyc2lvbiBvcGVyYXRvcnMs
IHVzZWQgZm9yIHBhcnNpbmcgYW5kIGdldENvbXB1dGVkU3R5bGUuCisKKyAgICAgICAgKiBjc3Mv
Q1NTUHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHk6OmlzSW5oZXJp
dGVkUHJvcGVydHkpOgorICAgICAgICBBZGRlZCAtd2Via2l0LWdyaWQtYXV0by1mbG93IHRvIHRo
ZSBsaXN0IG9mIHRoZSBub3QgaW5oZXJpdGVkIHByb3BlcnRpZXMuCisKKyAgICAgICAgKiBjc3Mv
Q1NTUHJvcGVydHlOYW1lcy5pbjoKKyAgICAgICAgQWRkZWQgdGhlIG5ldyB2YWx1ZSBhbmQga2V5
d29yZHMuCisKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlN0eWxlQnVpbGRlcjo6U3R5bGVCdWlsZGVyKToKKyAgICAgICAgQWRkZWQgYSBoYW5kbGVy
IGZvciB0aGUgbmV3IENTUyBwcm9wZXJ0eS4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oOgorICAgICAgICBBZGRlZCB0aGUgdXN1YWwgZ2V0dGVyIC8gc2V0dGVyIC8g
aW5pdGlhbCBmdW5jdGlvbi4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oOgorICAgICAgICBBZGRlZCBhIG5ldyBlbnVtIEdyaWRBdXRvRmxvdyB0byBo
b2xkIHRoZSBwYXJzZWQgdmFsdWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVH
cmlkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWRE
YXRhKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVHcmlkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgIFVwZGF0ZWQg
YWZ0ZXIgYWRkaW5nIGEgbmV3IGZpZWxkIGZvciB0aGUgR3JpZEF1dG9GbG93IHZhbHVlLgorCiAy
MDEzLTAyLTA0ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IHRha2UgcGFnZSBzY2FsZSBmYWN0b3IgaW50byBhY2NvdW50IHdo
ZW4gdXBkYXRpbmcgb3ZlcmxheS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1ND
b21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1
dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZTFkNWFlZDgzMTljMDVjZWViZTFlYjM4MzVm
NzU3ZmE1M2RhOTJjZC4uYTgzZTZjNWYzNTc2ODQ4MmQxMjMxMzNmM2FjYjk0MjRjMTBiYjVjYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5jcHAKQEAgLTI3NSw2ICsyNzUsNyBAQCBzdGF0aWMgY29uc3QgQ1NTUHJvcGVydHlJRCBjb21w
dXRlZFByb3BlcnRpZXNbXSA9IHsKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRLZXJuaW5nLAog
ICAgIENTU1Byb3BlcnR5V2Via2l0Rm9udFNtb290aGluZywKICAgICBDU1NQcm9wZXJ0eVdlYmtp
dEZvbnRWYXJpYW50TGlnYXR1cmVzLAorICAgIENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9GbG93
LAogICAgIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnMsCiAgICAgQ1NTUHJvcGVydHlXZWJr
aXRHcmlkUm93cywKICAgICBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW4sCkBAIC0xOTAxLDEy
ICsxOTAyLDEyIEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiAgICAgICAgIH0KLSAgICAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEdyaWRDb2x1bW5zOiB7CisgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRHcmlkQXV0b0Zsb3c6CisgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3Jl
YXRlVmFsdWUoc3R5bGUtPmdyaWRBdXRvRmxvdygpKTsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEdyaWRDb2x1bW5zOgogICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRyYWNr
TGlzdChzdHlsZS0+Z3JpZENvbHVtbnMoKSwgc3R5bGUuZ2V0KCksIG1fbm9kZS0+ZG9jdW1lbnQo
KS0+cmVuZGVyVmlldygpKTsKLSAgICAgICAgfQotICAgICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0R3JpZFJvd3M6IHsKKyAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgog
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFRyYWNrTGlzdChzdHlsZS0+Z3JpZFJvd3Mo
KSwgc3R5bGUuZ2V0KCksIG1fbm9kZS0+ZG9jdW1lbnQoKS0+cmVuZGVyVmlldygpKTsKLSAgICAg
ICAgfQogCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uOgogICAgICAg
ICAgICAgcmV0dXJuIHZhbHVlRm9yR3JpZFBvc2l0aW9uKHN0eWxlLT5ncmlkSXRlbUNvbHVtbigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZTg2MWU1ZTNmOWYwNjc5NDg1N2IxZmU5
OWM2ZmRhOTdkYWNlOTczOS4uODJlZWQzMmI2N2Q4M2FlZTYwMGE5MzU1MGZjMzA5YWZjMTMzYWQ5
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTgzNiw2ICs4MzYsMTAgQEAgc3RhdGlj
IGlubGluZSBib29sIGlzVmFsaWRLZXl3b3JkUHJvcGVydHlBbmRWYWx1ZShDU1NQcm9wZXJ0eUlE
IHByb3BlcnR5SWQsIGludAogICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZU5vbmUgfHwg
dmFsdWVJRCA9PSBDU1NWYWx1ZU1hbnVhbCB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXV0bykKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0R3JpZEF1dG9GbG93OgorICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZU5v
bmUgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJvdyB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQ29sdW1u
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRMaW5lQWxpZ246CiAgICAgICAgIGlmICh2YWx1ZUlEID09IENTU1ZhbHVl
Tm9uZSB8fCB2YWx1ZUlEID09IENTU1ZhbHVlRWRnZXMpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKQEAgLTEwNDksNiArMTA1Myw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0tleXdvcmRQcm9w
ZXJ0eUlEKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0Rm9udEtlcm5pbmc6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTbW9vdGhpbmc6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEh5cGhlbnM6CisgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEdyaWRBdXRvRmxvdzoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TGluZUFsaWdu
OgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRMaW5lQnJlYWs6CiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdExpbmVTbmFwOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgKaW5kZXggM2EzYzYwMTY3OTA2NTBjM2E1MTNjZWRjM2VjOWI5ZDMyOTFl
MzczOC4uNTMyZTk5YzI3ZmU3ZDgzN2U4MzYwNGNjYmJhMGJhYWVmZGNjNWY5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC00MTAxLDYg
KzQxMDEsMzkgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IFdyYXBUaHJvdWdoKCkgY29uc3QKICAgICByZXR1cm4gV3JhcFRocm91Z2hXcmFwOwogfQogCit0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgR3JpZEF1dG9GbG93
KCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKG1fdmFsdWUuaWRlbnQpIHsKKyAgICBjYXNlIENTU1Zh
bHVlTm9uZToKKyAgICAgICAgcmV0dXJuIEF1dG9GbG93Tm9uZTsKKyAgICBjYXNlIENTU1ZhbHVl
Q29sdW1uOgorICAgICAgICByZXR1cm4gQXV0b0Zsb3dDb2x1bW47CisgICAgY2FzZSBDU1NWYWx1
ZVJvdzoKKyAgICAgICAgcmV0dXJuIEF1dG9GbG93Um93OworICAgIH0KKworICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBBdXRvRmxvd05vbmU7CisKK30KKwordGVtcGxhdGU8
PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEdyaWRBdXRvRmxv
dyBmbG93KQorICAgIDogQ1NTVmFsdWUoUHJpbWl0aXZlQ2xhc3MpCit7CisgICAgbV9wcmltaXRp
dmVVbml0VHlwZSA9IENTU19JREVOVDsKKyAgICBzd2l0Y2ggKGZsb3cpIHsKKyAgICBjYXNlIEF1
dG9GbG93Tm9uZToKKyAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTm9uZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBBdXRvRmxvd0NvbHVtbjoKKyAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlQ29sdW1uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEF1dG9GbG93Um93
OgorICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVSb3c7CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KKwogZW51bSBMZW5ndGhDb252ZXJzaW9uIHsKICAgICBBbnlDb252ZXJzaW9uID0g
fjAsCiAgICAgRml4ZWRJbnRlZ2VyQ29udmVyc2lvbiA9IDEgPDwgMCwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydHkuY3BwCmluZGV4IGEwMmRiMTRiYjkxN2Y2MjU3NWEyNTU1NzU1ZGIwOTRjZDAyNzM0
OTEuLmE3YWE5OTFlMDRiYjkxOGYxZTM0YzM1Yjc2MDJhY2EzYWE1Y2UzN2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5LmNwcApAQCAtNTc0LDYgKzU3NCw3IEBAIGJvb2wgQ1NTUHJvcGVydHk6
OmlzSW5oZXJpdGVkUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEKQogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRKdXN0aWZ5Q29udGVudDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0T3JkZXI6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZvbnRTaXplRGVsdGE6CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRBdXRvRmxvdzoKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0R3JpZENvbHVtbnM6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEdyaWRSb3dzOgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRHcmlkQ29sdW1uOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydHlOYW1lcy5pbgppbmRleCA3ODdkY2JjNGYzMWYxMDU5NzE3ZmQyNTE2Mjg3MzFjMDU0
M2FmYWExLi5hYTFmOWRlZDljMGQxZTA5NmJlM2MxM2Y5OGMwN2NiZTQ2NjdiMzU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgpAQCAtMjkzLDYgKzI5Myw3IEBAIHotaW5k
ZXgKIC13ZWJraXQtZ3JpZC1yb3dzCiAtd2Via2l0LWdyaWQtY29sdW1uCiAtd2Via2l0LWdyaWQt
cm93Cistd2Via2l0LWdyaWQtYXV0by1mbG93CiAtd2Via2l0LWhpZ2hsaWdodAogLXdlYmtpdC1o
eXBoZW5hdGUtY2hhcmFjdGVyCiAtd2Via2l0LWh5cGhlbmF0ZS1saW1pdC1hZnRlcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCA2ZDc4YzY4NDQ0MmNjN2UyNGViZjlhNjI4Njdi
ZDg4OTlmZTc5OGU2Li4wMjcxZjliMzQ2NmU0OWIxZTZmZDkzY2RmZGIzNGQ0NmMzYjVhNjNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAtMTk5MCw2ICsxOTkwLDcgQEAgU3R5
bGVCdWlsZGVyOjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eVdlYmtpdEZsZXhHcm93LCBBcHBseVByb3BlcnR5RGVmYXVsdDxmbG9hdCwgJlJlbmRlclN0
eWxlOjpmbGV4R3JvdywgZmxvYXQsICZSZW5kZXJTdHlsZTo6c2V0RmxleEdyb3csIGZsb2F0LCAm
UmVuZGVyU3R5bGU6OmluaXRpYWxGbGV4R3Jvdz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0RmxleFNocmluaywgQXBwbHlQcm9wZXJ0
eURlZmF1bHQ8ZmxvYXQsICZSZW5kZXJTdHlsZTo6ZmxleFNocmluaywgZmxvYXQsICZSZW5kZXJT
dHlsZTo6c2V0RmxleFNocmluaywgZmxvYXQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEZsZXhTaHJp
bms+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0
eVdlYmtpdEZsZXhXcmFwLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFRmxleFdyYXAsICZSZW5kZXJT
dHlsZTo6ZmxleFdyYXAsIEVGbGV4V3JhcCwgJlJlbmRlclN0eWxlOjpzZXRGbGV4V3JhcCwgRUZs
ZXhXcmFwLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxGbGV4V3JhcD46OmNyZWF0ZUhhbmRsZXIoKSk7
CisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0R3JpZEF1dG9GbG93LCBB
cHBseVByb3BlcnR5RGVmYXVsdDxHcmlkQXV0b0Zsb3csICZSZW5kZXJTdHlsZTo6Z3JpZEF1dG9G
bG93LCBHcmlkQXV0b0Zsb3csICZSZW5kZXJTdHlsZTo6c2V0R3JpZEF1dG9GbG93LCBHcmlkQXV0
b0Zsb3csICZSZW5kZXJTdHlsZTo6aW5pdGlhbEdyaWRBdXRvRmxvdz46OmNyZWF0ZUhhbmRsZXIo
KSk7CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0SnVzdGlmeUNvbnRl
bnQsIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVKdXN0aWZ5Q29udGVudCwgJlJlbmRlclN0eWxlOjpq
dXN0aWZ5Q29udGVudCwgRUp1c3RpZnlDb250ZW50LCAmUmVuZGVyU3R5bGU6OnNldEp1c3RpZnlD
b250ZW50LCBFSnVzdGlmeUNvbnRlbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEp1c3RpZnlDb250
ZW50Pjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVy
dHlXZWJraXRPcmRlciwgQXBwbHlQcm9wZXJ0eURlZmF1bHQ8aW50LCAmUmVuZGVyU3R5bGU6Om9y
ZGVyLCBpbnQsICZSZW5kZXJTdHlsZTo6c2V0T3JkZXIsIGludCwgJlJlbmRlclN0eWxlOjppbml0
aWFsT3JkZXI+OjpjcmVhdGVIYW5kbGVyKCkpOwogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZDA5YTU1
MTVkODMwNWNlN2FlNjA4YTkwZGY3Zjg4NGY0NWQ0ZTUwZC4uZjVlNWNkMzdjYmZkOWZlODM4ZDEw
NDI5NzQ0YWIzNWM5Y2RkOGViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmgKQEAgLTc2NCw2ICs3NjQsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBW
ZWN0b3I8R3JpZFRyYWNrU2l6ZT4mIGdyaWRDb2x1bW5zKCkgY29uc3QgeyByZXR1cm4gcmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fZ3JpZC0+bV9ncmlkQ29sdW1uczsgfQogICAgIGNvbnN0IFZlY3Rv
cjxHcmlkVHJhY2tTaXplPiYgZ3JpZFJvd3MoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJp
dGVkRGF0YS0+bV9ncmlkLT5tX2dyaWRSb3dzOyB9CisgICAgR3JpZEF1dG9GbG93IGdyaWRBdXRv
RmxvdygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2dyaWQtPm1fZ3Jp
ZEF1dG9GbG93OyB9CiAKICAgICBjb25zdCBHcmlkUG9zaXRpb24mIGdyaWRJdGVtQ29sdW1uKCkg
Y29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZ3JpZEl0ZW0tPm1fZ3JpZENv
bHVtbjsgfQogICAgIGNvbnN0IEdyaWRQb3NpdGlvbiYgZ3JpZEl0ZW1Sb3coKSBjb25zdCB7IHJl
dHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ncmlkSXRlbS0+bV9ncmlkUm93OyB9CkBAIC0x
MjUyLDYgKzEyNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRKdXN0aWZ5Q29udGVudChFSnVz
dGlmeUNvbnRlbnQgcCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLCBtX2p1c3RpZnlD
b250ZW50LCBwKTsgfQogICAgIHZvaWQgc2V0R3JpZENvbHVtbnMoY29uc3QgVmVjdG9yPEdyaWRU
cmFja1NpemU+JiBsZW5ndGhzKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNz
KCktPm1fZ3JpZCwgbV9ncmlkQ29sdW1ucywgbGVuZ3Rocyk7IH0KICAgICB2b2lkIHNldEdyaWRS
b3dzKGNvbnN0IFZlY3RvcjxHcmlkVHJhY2tTaXplPiYgbGVuZ3RocykgeyBTRVRfVkFSKHJhcmVO
b25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2dyaWQsIG1fZ3JpZFJvd3MsIGxlbmd0aHMpOyB9
CisgICAgdm9pZCBzZXRHcmlkQXV0b0Zsb3coR3JpZEF1dG9GbG93IGZsb3cpIHsgU0VUX1ZBUihy
YXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRBdXRvRmxvdywgZmxv
dyk7IH0KICAgICB2b2lkIHNldEdyaWRJdGVtQ29sdW1uKGNvbnN0IEdyaWRQb3NpdGlvbiYgY29s
dW1uUG9zaXRpb24pIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9n
cmlkSXRlbSwgbV9ncmlkQ29sdW1uLCBjb2x1bW5Qb3NpdGlvbik7IH0KICAgICB2b2lkIHNldEdy
aWRJdGVtUm93KGNvbnN0IEdyaWRQb3NpdGlvbiYgcm93UG9zaXRpb24pIHsgU0VUX1ZBUihyYXJl
Tm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkSXRlbSwgbV9ncmlkUm93LCByb3dQb3Np
dGlvbik7IH0KIApAQCAtMTY1Myw2ICsxNjU1LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBWZWN0
b3I8R3JpZFRyYWNrU2l6ZT4gaW5pdGlhbEdyaWRDb2x1bW5zKCkgeyByZXR1cm4gVmVjdG9yPEdy
aWRUcmFja1NpemU+KCk7IH0KICAgICBzdGF0aWMgVmVjdG9yPEdyaWRUcmFja1NpemU+IGluaXRp
YWxHcmlkUm93cygpIHsgcmV0dXJuIFZlY3RvcjxHcmlkVHJhY2tTaXplPigpOyB9CiAKKyAgICBz
dGF0aWMgR3JpZEF1dG9GbG93IGluaXRpYWxHcmlkQXV0b0Zsb3coKSB7IHJldHVybiBBdXRvRmxv
d05vbmU7IH0KKwogICAgIC8vICdhdXRvJyBpcyB0aGUgZGVmYXVsdC4KICAgICBzdGF0aWMgR3Jp
ZFBvc2l0aW9uIGluaXRpYWxHcmlkSXRlbUNvbHVtbigpIHsgcmV0dXJuIEdyaWRQb3NpdGlvbigp
OyB9CiAgICAgc3RhdGljIEdyaWRQb3NpdGlvbiBpbml0aWFsR3JpZEl0ZW1Sb3coKSB7IHJldHVy
biBHcmlkUG9zaXRpb24oKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCBlN2MxMDhmNDgyYjJlM2MxOTg1ZGRh
OWJkMDcwNzA4Zjc5OTkyMmRiLi44YzJjMGI1ODZmNGI0OGVhOWFkNDJkMDJhY2JjMjQ0MjVlMWQ3
MTM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaApAQCAtNDg3LDYgKzQ4Nyw4IEBAIGVudW0gV3JhcFRocm91Z2ggeyBX
cmFwVGhyb3VnaFdyYXAsIFdyYXBUaHJvdWdoTm9uZSB9OwogCiBlbnVtIFJ1YnlQb3NpdGlvbiB7
IFJ1YnlQb3NpdGlvbkJlZm9yZSwgUnVieVBvc2l0aW9uQWZ0ZXIgfTsKIAorZW51bSBHcmlkQXV0
b0Zsb3cgeyBBdXRvRmxvd05vbmUsIEF1dG9GbG93Q29sdW1uLCBBdXRvRmxvd1JvdyB9OworCiAj
aWYgRU5BQkxFKERSQUdHQUJMRV9SRUdJT04pCiBlbnVtIERyYWdnYWJsZVJlZ2lvbk1vZGUgeyBE
cmFnZ2FibGVSZWdpb25Ob25lLCBEcmFnZ2FibGVSZWdpb25EcmFnLCBEcmFnZ2FibGVSZWdpb25O
b0RyYWcgfTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlR3JpZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlR3JpZERhdGEuY3BwCmluZGV4IDdiNmJjMGEzNzBiZjRhOWQ4YTZiZTMwNWRlZjQ2NGYzMzI0
NWY2ZmYuLjlhODEwZGVlODgyM2I2MDNlNjVhMjdkYmE1NmM1YzZhNWRmNzM1MDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogU3R5bGVHcmlkRGF0YTo6U3R5bGVHcmlk
RGF0YSgpCiAgICAgOiBtX2dyaWRDb2x1bW5zKFJlbmRlclN0eWxlOjppbml0aWFsR3JpZENvbHVt
bnMoKSkKICAgICAsIG1fZ3JpZFJvd3MoUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkUm93cygpKQor
ICAgICwgbV9ncmlkQXV0b0Zsb3coUmVuZGVyU3R5bGU6OmluaXRpYWxHcmlkQXV0b0Zsb3coKSkK
IHsKIH0KIApAQCAtNDAsNiArNDEsNyBAQCBTdHlsZUdyaWREYXRhOjpTdHlsZUdyaWREYXRhKGNv
bnN0IFN0eWxlR3JpZERhdGEmIG8pCiAgICAgOiBSZWZDb3VudGVkPFN0eWxlR3JpZERhdGE+KCkK
ICAgICAsIG1fZ3JpZENvbHVtbnMoby5tX2dyaWRDb2x1bW5zKQogICAgICwgbV9ncmlkUm93cyhv
Lm1fZ3JpZFJvd3MpCisgICAgLCBtX2dyaWRBdXRvRmxvdyhvLm1fZ3JpZEF1dG9GbG93KQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlk
RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR3JpZERhdGEuaApp
bmRleCAxOGZmY2FiYTYxYmRmZmE5YjkxMzM5ZDA5M2NhNWNjMmQ1NTEzZmJlLi4zZjgxMGRjODcz
MjFlOTIzMmQ4ZjAwMTBiZGU4OWVkNzU2NGRiMjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHcmlkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUdyaWREYXRhLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUg
U3R5bGVHcmlkRGF0YV9oCiAKICNpbmNsdWRlICJHcmlkVHJhY2tTaXplLmgiCisjaW5jbHVkZSAi
UmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNDAs
NyArNDEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVHcmlk
RGF0YSYgbykgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2dyaWRDb2x1bW5zID09IG8u
bV9ncmlkQ29sdW1ucyAmJiBtX2dyaWRSb3dzID09IG8ubV9ncmlkUm93czsKKyAgICAgICAgcmV0
dXJuIG1fZ3JpZENvbHVtbnMgPT0gby5tX2dyaWRDb2x1bW5zICYmIG1fZ3JpZFJvd3MgPT0gby5t
X2dyaWRSb3dzICYmIG1fZ3JpZEF1dG9GbG93ICE9IG8ubV9ncmlkQXV0b0Zsb3c7CiAgICAgfQog
CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFN0eWxlR3JpZERhdGEmIG8pIGNvbnN0CkBAIC01
Miw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4gbV9ncmlkQ29s
dW1uczsKICAgICBWZWN0b3I8R3JpZFRyYWNrU2l6ZT4gbV9ncmlkUm93czsKIAorICAgIEdyaWRB
dXRvRmxvdyBtX2dyaWRBdXRvRmxvdzsKKwogcHJpdmF0ZToKICAgICBTdHlsZUdyaWREYXRhKCk7
CiAgICAgU3R5bGVHcmlkRGF0YShjb25zdCBTdHlsZUdyaWREYXRhJik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGUwZTQz
NDJkZDg3ZjA1OWJlNzA4ZjY4OWFjYjY4ZGJmNTAwZGUzNy4uOWZkYTJlMDBkODE3ZGUyYmM3YTky
ZmI1NWExNzEzYmJjNzU5ZjIzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAyLTA0ICBK
dWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1Mg
R3JpZCBMYXlvdXRdIEFkZCBwYXJzaW5nIGZvciBncmlkLWF1dG8tZmxvdworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4Mzk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgT2phbiBWYWZhaS4KKworICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtYXV0by1mbG93LWdldC1zZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLmNzczoKKyAgICAgICAg
KC5ncmlkQXV0b0Zsb3dOb25lKToKKyAgICAgICAgKC5ncmlkQXV0b0Zsb3dDb2x1bW4pOgorICAg
ICAgICAoLmdyaWRBdXRvRmxvd1Jvdyk6CisgICAgICAgIEFkZGVkIHRoZXNlIG5ldyBjbGFzc2Vz
IHRvIG91ciBjb21tb24gc3R5bGUuCisKIDIwMTMtMDItMDQgIFNhbWkgS3lvc3RpbGEgIDxza3lv
c3RpbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRGlzYWJsZSAtd2Via2l0LW92ZXJmbG93LXNj
cm9sbGluZyBDU1MgYXR0cmlidXRlIG9uIENocm9taXVtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtYXV0by1mbG93LWdldC1z
ZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmZTVhODM3NTM2MjUxOGFhYjRkNjk4YmExMTQ2
NTE2NmEzMDA1MTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI2
IEBACitUZXN0IHRoYXQgc2V0dGluZyBhbmQgZ2V0dGluZyBncmlkLWF1dG8tZmxvdyB3b3JrcyBh
cyBleHBlY3RlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBnZXR0aW5n
IC13ZWJraXQtYXV0by1mbG93IHNldCB0aHJvdWdoIENTUworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShncmlkQXV0b0Zsb3dOb25lLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWF1dG8tZmxvdycpIGlzICdub25lJworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShn
cmlkQXV0b0Zsb3dDb2x1bW4sICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0
by1mbG93JykgaXMgJ2NvbHVtbicKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1
dG9GbG93Um93LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycp
IGlzICdyb3cnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvRmxvd0NvbHVt
bnMsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1mbG93JykgaXMgJ25v
bmUnCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvRmxvd1Jvd3MsICcnKS5n
ZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1mbG93JykgaXMgJ25vbmUnCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGdyaWRBdXRvRmxvd0luaGVyaXQsICcnKS5nZXRQcm9w
ZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0by1mbG93JykgaXMgJ25vbmUnCisKK1Rlc3QgdGhl
IGluaXRpYWwgdmFsdWUKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycp
LmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSBpcyAnbm9uZScKKwor
VGVzdCBnZXR0aW5nIGFuZCBzZXR0aW5nIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3cgdGhyb3VnaCBK
UworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIGlzICdjb2x1bW4nCitQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdy
aWQtYXV0by1mbG93JykgaXMgJ3JvdycKKworVGVzdCBnZXR0aW5nIGFuZCBzZXR0aW5nIGJhZCB2
YWx1ZXMgZm9yIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3cgdGhyb3VnaCBKUworUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1n
cmlkLWF1dG8tZmxvdycpIGlzICdyb3cnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctZ2V0LXNldC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MtZ3JpZC1sYXlvdXQvZ3JpZC1hdXRvLWZsb3ctZ2V0LXNldC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYx
ZjJhOTIzNmQ3OGFlMzg0NDFhMmI0YzM1ODVlZGVjZWU1MWNmNDIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWF1dG8tZmxvdy1nZXQtc2V0
Lmh0bWwKQEAgLTAsMCArMSw3OSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9E
VEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRM
YXlvdXRFbmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlk
LmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzdHlsZT4KKy5ncmlkQXV0b0Zsb3dJbmhlcml0IHsK
KyAgICAtd2Via2l0LWdyaWQtYXV0by1mbG93OiBpbmhlcml0OworfQorLyogQmFkIHZhbHVlcy4g
Ki8KKy5ncmlkQXV0b0Zsb3dSb3dzIHsKKyAgICAtd2Via2l0LWdyaWQtYXV0by1mbG93OiByb3dz
OworfQorLmdyaWRBdXRvRmxvd0NvbHVtbnMgeworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6
IGNvbHVtbnM7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImdyaWQi
IGlkPSJncmlkSW5pdGlhbCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd05v
bmUiIGlkPSJncmlkQXV0b0Zsb3dOb25lIj48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1
dG9GbG93Q29sdW1uIiBpZD0iZ3JpZEF1dG9GbG93Q29sdW1uIj48L2Rpdj4KKzxkaXYgY2xhc3M9
ImdyaWQgZ3JpZEF1dG9GbG93Um93IiBpZD0iZ3JpZEF1dG9GbG93Um93Ij48L2Rpdj4KKzxkaXYg
Y2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93Q29sdW1uIj4KKyAgICA8ZGl2PjxkaXYgY2xhc3M9Imdy
aWQgZ3JpZEF1dG9GbG93SW5oZXJpdCIgaWQ9ImdyaWRBdXRvRmxvd0luaGVyaXQiPjwvZGl2Pjwv
ZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJncmlkIGdyaWRBdXRvRmxvd0NvbHVtbnMiIGlkPSJn
cmlkQXV0b0Zsb3dDb2x1bW5zIj48L2Rpdj4KKzxkaXYgY2xhc3M9ImdyaWQgZ3JpZEF1dG9GbG93
Um93cyIgaWQ9ImdyaWRBdXRvRmxvd1Jvd3MiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbignVGVzdCB0aGF0IHNldHRpbmcgYW5kIGdldHRpbmcgZ3JpZC1hdXRvLWZsb3cgd29ya3Mg
YXMgZXhwZWN0ZWQnKTsKKworICAgIGRlYnVnKCJUZXN0IGdldHRpbmcgLXdlYmtpdC1hdXRvLWZs
b3cgc2V0IHRocm91Z2ggQ1NTIik7CisgICAgdmFyIGdyaWRBdXRvRmxvd05vbmUgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZ3JpZEF1dG9GbG93Tm9uZSIpOworICAgIHNob3VsZEJlKCJ3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShncmlkQXV0b0Zsb3dOb25lLCAnJykuZ2V0UHJvcGVydHlWYWx1
ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIiwgIidub25lJyIpOworCisgICAgdmFyIGdyaWRB
dXRvRmxvd0NvbHVtbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmlkQXV0b0Zsb3dDb2x1
bW4iKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93
Q29sdW1uLCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8tZmxvdycpIiwg
Iidjb2x1bW4nIik7CisKKyAgICB2YXIgZ3JpZEF1dG9GbG93Um93ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImdyaWRBdXRvRmxvd1JvdyIpOworICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShncmlkQXV0b0Zsb3dSb3csICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0
LWdyaWQtYXV0by1mbG93JykiLCAiJ3JvdyciKTsKKworICAgIHZhciBncmlkQXV0b0Zsb3dDb2x1
bW5zID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRBdXRvRmxvd0NvbHVtbnMiKTsKKyAg
ICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93Q29sdW1ucywg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSIsICInbm9uZSci
KTsKKworICAgIHZhciBncmlkQXV0b0Zsb3dSb3dzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImdyaWRBdXRvRmxvd1Jvd3MiKTsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5
bGUoZ3JpZEF1dG9GbG93Um93cywgJycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1h
dXRvLWZsb3cnKSIsICInbm9uZSciKTsKKworICAgIHZhciBncmlkQXV0b0Zsb3dJbmhlcml0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyaWRBdXRvRmxvd0luaGVyaXQiKTsKKyAgICBzaG91
bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZ3JpZEF1dG9GbG93SW5oZXJpdCwgJycpLmdl
dFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSIsICInbm9uZSciKTsKKwor
ICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiVGVzdCB0aGUgaW5pdGlhbCB2YWx1ZSIpOworICAg
IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShlbGVtZW50LCAnJykuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1ncmlkLWF1dG8t
ZmxvdycpIiwgIidub25lJyIpOworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGdl
dHRpbmcgYW5kIHNldHRpbmcgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdyB0aHJvdWdoIEpTIik7Cisg
ICAgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQXV0b0Zsb3cgPSAiY29sdW1uIjsKKyAgICBzaG91
bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwgJycpLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSIsICInY29sdW1uJyIpOworCisgICAgZWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgZWxlbWVudC5zdHlsZS53ZWJraXRHcmlkQXV0b0Zsb3cg
PSAicm93IjsKKyAgICBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCwg
JycpLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZ3JpZC1hdXRvLWZsb3cnKSIsICIncm93JyIp
OworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJUZXN0IGdldHRpbmcgYW5kIHNldHRpbmcg
YmFkIHZhbHVlcyBmb3IgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdyB0aHJvdWdoIEpTIik7CisgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICBlbGVtZW50LnN0eWxlLndl
YmtpdEdyaWRBdXRvRmxvdyA9ICJub29uZSI7CisgICAgc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGVsZW1lbnQsICcnKS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWdyaWQtYXV0
by1mbG93JykiLCAiJ3JvdyciKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQuY3Nz
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcmVzb3VyY2VzL2dyaWQuY3NzCmlu
ZGV4IGI0ODg2MmQ3YTE5ZmNmNjE5ZjM2M2EyOGM1MTRlZTczZGFiMmI4ODkuLmQwM2M0OGRiYWVi
YjFlMjFmMTNlN2NkZTQyN2M3YjRjNjNhM2I3NTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzLWdyaWQtbGF5b3V0L3Jlc291cmNlcy9ncmlkLmNzcworKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy1ncmlkLWxheW91dC9yZXNvdXJjZXMvZ3JpZC5jc3MKQEAgLTMyLDYgKzMyLDE4IEBA
CiAgICAgLXdlYmtpdC1ncmlkLXJvdzogMjsKIH0KIAorLmdyaWRBdXRvRmxvd05vbmUgeworICAg
IC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6IG5vbmU7Cit9CisKKy5ncmlkQXV0b0Zsb3dDb2x1bW4g
eworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6IGNvbHVtbjsKK30KKworLmdyaWRBdXRvRmxv
d1JvdyB7CisgICAgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdzogcm93OworfQorCiAudmVydGljYWxS
TCB7CiAgICAgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLXJsOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>