<?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>100826</bug_id>
          
          <creation_ts>2012-10-31 01:06:35 -0700</creation_ts>
          <short_desc>[Shadow] Using isUnknownPseudoElement() for shadow pseudo id seems confusing</short_desc>
          <delta_ts>2012-11-06 02:44:19 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</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>100919</blocked>
    
    <blocked>101170</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>tasak</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>755034</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-10-31 01:06:35 -0700</bug_when>
    <thetext>We would like to have more descriptive name for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755445</commentid>
    <comment_count>1</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-10-31 10:34:22 -0700</bug_when>
    <thetext>Not sure I agree. The name is pretty clear in that the pseudo element is unknown at the time of parsing the selector. It could be either a custom pseudo element (starts with &quot;x-&quot;, a WebKit-specific custom pseudo element (starts with &quot;-webkit-&quot;), or some totally unknown thing.

Ohhh... I think I understand what you&apos;re saying. Since we have these three choices and they are knowable at the time of parsing, we might distinguish between them. Right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755790</commentid>
    <comment_count>2</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-10-31 18:45:56 -0700</bug_when>
    <thetext>Yeah.. Actually it is actually used for shadowPseudoId, etc.
We can distinguish some specific types, so we should use some good name instead of UNKNOWN.
It&apos;s sometimes known.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756820</commentid>
    <comment_count>3</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-01 19:03:17 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Yeah.. Actually it is actually used for shadowPseudoId, etc.
&gt; We can distinguish some specific types, so we should use some good name instead of UNKNOWN.
&gt; It&apos;s sometimes known.

I&apos;m not sure what to do. However, I would like to ask one question. If we use some pseudo type for shadow pseudo ids or custom pseudo, i.e. -webkit or x-, we need unknown ids, e.g. -UNKNOWN-UNKNOWN?

I have to check CSS spec. However I&apos;m just interested in your idea about such completely unknown ids.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756837</commentid>
    <comment_count>4</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-01 19:35:09 -0700</bug_when>
    <thetext>For completely UNKNOWN ids, we can skip using that CSS rule, right? It&apos;s because it won&apos;t match anything.
When parsing succeeded, we should already know the type of id.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756855</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-01 19:50:22 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; For completely UNKNOWN ids, we can skip using that CSS rule, right? It&apos;s because it won&apos;t match anything.
&gt; When parsing succeeded, we should already know the type of id.

Yes, that&apos;s the win I see.

In terms of naming, I see three types of &quot;unknown&quot; pseudo-elements:

1) CustomPseudoElement --&gt; CUSTOM
2) WebKitPseudoElement --&gt; WEBKIT_CUSTOM
3) UnknownPseudoElement --&gt; UNKNOWN

The interesting bit is that WebKitCustomElement should only match attributes that were set by the UA. We should _not_ allow any random Bob set &quot;-webkit-slider-thumb&quot; on their div and have it matched. That would be bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758227</commentid>
    <comment_count>6</comment_count>
      <attachid>172267</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-04 21:35:39 -0800</bug_when>
    <thetext>Created attachment 172267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758314</commentid>
    <comment_count>7</comment_count>
      <attachid>172267</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 01:01:41 -0800</bug_when>
    <thetext>Comment on attachment 172267
Patch

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

New failing tests:
css3/selectors3/html/css3-modsel-161.html
fast/box-sizing/percentage-height.html
css3/selectors3/xhtml/css3-modsel-177b.xml
css3/selectors3/html/css3-modsel-177b.html
fast/dom/shadow/shadow-pseudo-id.html
css3/selectors3/xml/css3-modsel-161.xml
css3/selectors3/xml/css3-modsel-177b.xml
fast/selectors/177b.html
css3/selectors3/xhtml/css3-modsel-161.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758537</commentid>
    <comment_count>8</comment_count>
      <attachid>172267</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-05 07:59:53 -0800</bug_when>
    <thetext>Comment on attachment 172267
Patch

Attachment 172267 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14745151

New failing tests:
css3/selectors3/html/css3-modsel-161.html
fast/box-sizing/percentage-height.html
css3/selectors3/xhtml/css3-modsel-177b.xml
css3/selectors3/html/css3-modsel-177b.html
css3/selectors3/xml/css3-modsel-161.xml
css3/selectors3/xml/css3-modsel-177b.xml
fast/selectors/177b.html
css3/selectors3/xhtml/css3-modsel-161.xml</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759088</commentid>
    <comment_count>9</comment_count>
      <attachid>172454</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 17:47:42 -0800</bug_when>
    <thetext>Created attachment 172454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759104</commentid>
    <comment_count>10</comment_count>
      <attachid>172267</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-05 17:55:49 -0800</bug_when>
    <thetext>Comment on attachment 172267
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        We used isUnknownPseudoElement() for these 3 meanings: 1) an element is custom pseudo element (starting with &apos;x-&apos;),

s/a element is/the element is an/
By the way, what is &quot;custom pseudo element&quot;? Is it a standard-mentioned name?

&gt; Source/WebCore/css/CSSParser.cpp:10111
&gt; +    if (specifiers-&gt;isCustomPseudoElement() || specifiers-&gt;isWebKitCustomPseudoElement()) {

Looks like this combination is frequently used and better to have a shortcut method.
Otherwise this change makes the code more complex instead of less-confusing.

&gt; Source/WebCore/css/CSSSelectorList.cpp:204
&gt; +        return selector-&gt;isUnknownPseudoElement() || selector-&gt;isWebKitCustomPseudoElement() || selector-&gt;isCustomPseudoElement();

Let&apos;s define a CSSSelector method instead of scattering this kind of named logic here and there.

&gt; LayoutTests/fast/dom/shadow/shadow-pseudo-id.html:30
&gt; +&lt;/script&gt;

Can we make this test code more descriptive? It&apos;s unclear what this test is trying to exercise,
which will make it hard to diagnose future regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759106</commentid>
    <comment_count>11</comment_count>
      <attachid>172454</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-05 17:56:43 -0800</bug_when>
    <thetext>Comment on attachment 172454
Patch

unknown -&gt; invalid?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759114</commentid>
    <comment_count>12</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 18:02:30 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; By the way, what is &quot;custom pseudo element&quot;? Is it a standard-mentioned name?

I&apos;ve taken it from ShadowDOM spec.
https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#custom-pseudo-elements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759120</commentid>
    <comment_count>13</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 18:13:49 -0800</bug_when>
    <thetext>I would like to use &apos;AuthorCustomPseudoElement&apos; instead of &apos;CustomPseudoElement&apos;,
and use &apos;CustomPseudoElement&apos; as (AuthorCustomPseudoElement or WebKitCustomPseudoElement)...

Someone can come up with a better name?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759123</commentid>
    <comment_count>14</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-05 18:17:23 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; I would like to use &apos;AuthorCustomPseudoElement&apos; instead of &apos;CustomPseudoElement&apos;,
&gt; and use &apos;CustomPseudoElement&apos; as (AuthorCustomPseudoElement or WebKitCustomPseudoElement)...
&gt; 
&gt; Someone can come up with a better name?

I don&apos;t think prefixing the name with Author makes it less clear. The fact that there are WebKit-specific custom pseudo elements is where we need to dig, not the other way around.

UserAgentPseudoElement?

Also, I really like the &quot;invalid&quot; name. It makes a lot more sense than &quot;unqueriable&quot;. It&apos;s un-queriable because it&apos;s invalid. Better statement of purpose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759130</commentid>
    <comment_count>15</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 18:24:25 -0800</bug_when>
    <thetext>Hmm... But we have :invalid pseudo-class already :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759138</commentid>
    <comment_count>16</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-05 18:33:59 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Hmm... But we have :invalid pseudo-class already :-(

That&apos;s ok. That&apos;s different. Look here: http://dev.w3.org/csswg/selectors4/#invalid</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759196</commentid>
    <comment_count>17</comment_count>
      <attachid>172474</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 20:03:42 -0800</bug_when>
    <thetext>Created attachment 172474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759198</commentid>
    <comment_count>18</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-05 20:04:58 -0800</bug_when>
    <thetext>Another try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759249</commentid>
    <comment_count>19</comment_count>
      <attachid>172474</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-05 22:18:50 -0800</bug_when>
    <thetext>Comment on attachment 172474
Patch

Looks fine. wait test green being show up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759457</commentid>
    <comment_count>20</comment_count>
      <attachid>172474</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 02:44:14 -0800</bug_when>
    <thetext>Comment on attachment 172474
Patch

Clearing flags on attachment: 172474

Committed r133577: &lt;http://trac.webkit.org/changeset/133577&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759458</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 02:44:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172267</attachid>
            <date>2012-11-04 21:35:39 -0800</date>
            <delta_ts>2012-11-05 20:03:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100826-20121105143354.patch</filename>
            <type>text/plain</type>
            <size>17552</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzQxMTFjNzdkNzkwYzVi
NDYyYmYzNmRhMDdjN2M2MDUxOGFkZDU4OS4uYmUwNDNlZDIwNjFjZWI5NzZlNDI2Y2EwMGRhM2U4
MjAyNzcxOTcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTExLTA0ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBV
c2luZyBpc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkgZm9yIHNoYWRvdyBwc2V1ZG8gaWQgc2VlbXMg
Y29uZnVzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDA4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXZSB1c2VkIGlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSBmb3IgdGhlc2UgMyBtZWFuaW5nczog
MSkgYW4gZWxlbWVudCBpcyBjdXN0b20gcHNldWRvIGVsZW1lbnQgKHN0YXJ0aW5nIHdpdGggJ3gt
JyksCisgICAgICAgIDIpIGFuIGVsZW1lbnQgaXMgd2Via2l0IGN1c3RvbSBwc2V1ZG8gZWxlbWVu
dCAoc3RhcnRpbmcgd2l0aCAnLXdlYmtpdC0nKSwgYW5kIDMpIGFuIGVsZW1lbnQgaXMgYSBjb21w
bGV0ZWx5IHVua25vd24gdHlwZS4KKyAgICAgICAgV2Ugd291bGQgbGlrZSB0byBkaXN0aW5ndWlz
aCB0aGVtIHdoZW4gcGFyc2luZyBDU1NTZWxlY3RvciB0eXBlcy4gQWxzbywgd2UgZGlzYWJsZSB1
c2luZyAoMykgdHlwZSBmb3IgdXNpbmcKKyAgICAgICAgc2hhZG93UHNldWRvSWQuCisKKyAgICAg
ICAgSW4gdGhpcyBwYXRjaCwgd2UgYWxsb3cgdXNpbmcgV2ViS2l0Q3VzdG9tUHNldWRvRWxlbWVu
dCBpbiBBdXRob3JTaGFkb3dSb290LCBhbmQgQ3VzdG9tUHNldWRvRWxlbWVudCBpbgorICAgICAg
ICBVQVNoYWRvd1Jvb3QuIEhvd2V2ZXIsIHdlIHdpbGwgZGlzYWJsZSB0aGVtIGxhdGVyLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlkLmh0bWwKKworICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp1
cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6dXBkYXRlU3BlY2lmaWVycyk6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5o
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyU2VsZWN0b3I6OmlzQ3VzdG9tUHNldWRvRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXJTZWxlY3Rvcjo6aXNXZWJLaXRDdXN0
b21Qc2V1ZG9FbGVtZW50KToKKyAgICAgICAgKENTU1BhcnNlclNlbGVjdG9yKToKKyAgICAgICAg
KiBjc3MvQ1NTU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBz
ZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpwYXJzZVBzZXVkb1R5cGUp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6aXNX
ZWJLaXRDdXN0b21Qc2V1ZG9UeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpp
c0N1c3RvbVBzZXVkb1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJh
Y3RQc2V1ZG9UeXBlKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKENT
U1NlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjppc0N1c3RvbVBzZXVk
b0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6aXNXZWJLaXRDdXN0b21Qc2V1ZG9FbGVtZW50KToKKyAgICAgICAgKiBjc3MvQ1NTU2Vs
ZWN0b3JMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9ySGFzVW5xdWVyeWFibGVT
ZWxlY3RvckZ1bmN0b3I6Om9wZXJhdG9yKCkpOiBXZSB3aWxsIHJlamVjdCBhbGwgc2VsZWN0b3Jz
IHdoaWNoIHdlcmUganVkZ2VkIGFzCisgICAgICAgIFVOS05PV04gYmVmb3JlLiBpLmUuIEl0IGNv
bnRpYW5zIGFsbCB0aHJlZSB0eXBlcyBmb3Igbm93LgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2Vs
ZWN0b3JMaXN0OjpoYXNOb25xdWVyeWFibGVTZWxlY3Rvcik6CisgICAgICAgICogY3NzL0NTU1Nl
bGVjdG9yTGlzdC5oOgorICAgICAgICAoQ1NTU2VsZWN0b3JMaXN0KToKKyAgICAgICAgKiBjc3Mv
UnVsZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjphZGRSdWxlKToKKyAgICAg
ICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
Q2hlY2tlcjo6Y2hlY2tTZWxlY3Rvcik6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0U2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGRv
bS9TZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yUXVlcnlDYWNo
ZTo6YWRkKToKKwogMjAxMi0xMS0wNCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNv
bT4KIAogICAgICAgICBTaGFkb3cgRE9NIHNob3VsZCBiZSBhYmxlIHRvIGJlIGRpc2FibGVkIHBl
ciBjb250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCA1YTI5ZDJmYTI2MmM5ZGMw
NGFjYzJmZmNkM2M5NTk1M2E0MDdlMDY1Li44YzlkMDZjYWQ0MDY1NjcwNTlhYzdlNzBiMzdmMWY5
NjM2MTY4MmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTAwNzUsNyArMTAwNzUs
NyBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVByZQogewogICAgIEF0b21pY1N0cmluZyBkZXRlcm1p
bmVkTmFtZXNwYWNlID0gbmFtZXNwYWNlUHJlZml4ICE9IG51bGxBdG9tICYmIG1fc3R5bGVTaGVl
dCA/IG1fc3R5bGVTaGVldC0+ZGV0ZXJtaW5lTmFtZXNwYWNlKG5hbWVzcGFjZVByZWZpeCkgOiBt
X2RlZmF1bHROYW1lc3BhY2U7CiAgICAgUXVhbGlmaWVkTmFtZSB0YWcgPSBRdWFsaWZpZWROYW1l
KG5hbWVzcGFjZVByZWZpeCwgZWxlbWVudE5hbWUsIGRldGVybWluZWROYW1lc3BhY2UpOwotICAg
IGlmICghc3BlY2lmaWVycy0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpKSB7CisgICAgaWYgKCFz
cGVjaWZpZXJzLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSAmJiAhc3BlY2lmaWVycy0+aXNXZWJL
aXRDdXN0b21Qc2V1ZG9FbGVtZW50KCkpIHsKICAgICAgICAgc3BlY2lmaWVycy0+c2V0VGFnKHRh
Zyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDA4NCw3ICsxMDA4NCw3IEBAIHZvaWQg
Q1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZXNwYWNlUHJlCiAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGhpc3RvcnkgPSBzcGVj
aWZpZXJzOwogICAgIHdoaWxlIChoaXN0b3J5LT50YWdIaXN0b3J5KCkpIHsKICAgICAgICAgaGlz
dG9yeSA9IGhpc3RvcnktPnRhZ0hpc3RvcnkoKTsKLSAgICAgICAgaWYgKGhpc3RvcnktPmlzVW5r
bm93blBzZXVkb0VsZW1lbnQoKSB8fCBoaXN0b3J5LT5oYXNTaGFkb3dEZXNjZW5kYW50KCkpCisg
ICAgICAgIGlmIChoaXN0b3J5LT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBoaXN0b3J5LT5p
c1dlYktpdEN1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBoaXN0b3J5LT5oYXNTaGFkb3dEZXNjZW5k
YW50KCkpCiAgICAgICAgICAgICBsYXN0U2hhZG93RGVzY2VuZGFudCA9IGhpc3Rvcnk7CiAgICAg
fQogCkBAIC0xMDEwMywxMiArMTAxMDMsMTIgQEAgdm9pZCBDU1NQYXJzZXI6OnVwZGF0ZVNwZWNp
ZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VQcmUKIAog
Q1NTUGFyc2VyU2VsZWN0b3IqIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVycyhDU1NQYXJzZXJT
ZWxlY3Rvciogc3BlY2lmaWVycywgQ1NTUGFyc2VyU2VsZWN0b3IqIG5ld1NwZWNpZmllcikKIHsK
LSAgICBpZiAobmV3U3BlY2lmaWVyLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkpIHsKKyAgICBp
ZiAobmV3U3BlY2lmaWVyLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBuZXdTcGVjaWZpZXIt
PmlzV2ViS2l0Q3VzdG9tUHNldWRvRWxlbWVudCgpKSB7CiAgICAgICAgIC8vIFVua25vd24gcHNl
dWRvIGVsZW1lbnQgYWx3YXlzIGdvZXMgYXQgdGhlIHRvcCBvZiBzZWxlY3RvciBjaGFpbi4KICAg
ICAgICAgbmV3U3BlY2lmaWVyLT5hcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpTaGFkb3dE
ZXNjZW5kYW50LCBzaW5rRmxvYXRpbmdTZWxlY3RvcihzcGVjaWZpZXJzKSk7CiAgICAgICAgIHJl
dHVybiBuZXdTcGVjaWZpZXI7CiAgICAgfQotICAgIGlmIChzcGVjaWZpZXJzLT5pc1Vua25vd25Q
c2V1ZG9FbGVtZW50KCkpIHsKKyAgICBpZiAoc3BlY2lmaWVycy0+aXNDdXN0b21Qc2V1ZG9FbGVt
ZW50KCkgfHwgc3BlY2lmaWVycy0+aXNXZWJLaXRDdXN0b21Qc2V1ZG9FbGVtZW50KCkpIHsKICAg
ICAgICAgLy8gU3BlY2lmaWVycyBmb3IgdW5rbm93biBwc2V1ZG8gZWxlbWVudCBnbyByaWdodCBi
ZWhpbmQgaXQgaW4gdGhlIGNoYWluLgogICAgICAgICBzcGVjaWZpZXJzLT5pbnNlcnRUYWdIaXN0
b3J5KENTU1NlbGVjdG9yOjpTdWJTZWxlY3Rvciwgc2lua0Zsb2F0aW5nU2VsZWN0b3IobmV3U3Bl
Y2lmaWVyKSwgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQpOwogICAgICAgICByZXR1cm4g
c3BlY2lmaWVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAppbmRleCBkM2ZjNDAz
NTMwMjlmZjBhMjdkOWFlNWI5ZDRjMDZhOWM3ZTkyMjgyLi5lZmZkZTViOTQ5NTc3MDM2NTgwZWNm
NWNhNzdmMmU3YzE4MmFmOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCkBA
IC0xOTIsNiArMTkyLDkgQEAgcHVibGljOgogCiAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUg
cHNldWRvVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3ItPnBzZXVkb1R5cGUoKTsgfQog
ICAgIGJvb2wgaXNVbmtub3duUHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0
b3ItPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKTsgfQorICAgIGJvb2wgaXNDdXN0b21Qc2V1ZG9F
bGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvci0+aXNDdXN0b21Qc2V1ZG9FbGVtZW50
KCk7IH0KKyAgICBib29sIGlzV2ViS2l0Q3VzdG9tUHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2VsZWN0b3ItPmlzV2ViS2l0Q3VzdG9tUHNldWRvRWxlbWVudCgpOyB9CisKICAgICBi
b29sIGlzU2ltcGxlKCkgY29uc3QgeyByZXR1cm4gIW1fdGFnSGlzdG9yeSAmJiBtX3NlbGVjdG9y
LT5pc1NpbXBsZSgpOyB9CiAgICAgYm9vbCBoYXNTaGFkb3dEZXNjZW5kYW50KCkgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IGQyYmE3NTY3NzcyMjNlY2I1ZmZjZWVi
MWY2OGE1NDFjMzI3ZTJmMWYuLjIwMWExNTE4MTkzMTM5ZTFhMzIyZDAzNGM5YWYzY2E2YWFhNDI5
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMjE4LDYgKzIxOCw4IEBAIFBz
ZXVkb0lkIENTU1NlbGVjdG9yOjpwc2V1ZG9JZChQc2V1ZG9UeXBlIHR5cGUpCiAgICAgY2FzZSBQ
c2V1ZG9SaWdodFBhZ2U6CiAgICAgY2FzZSBQc2V1ZG9JblJhbmdlOgogICAgIGNhc2UgUHNldWRv
T3V0T2ZSYW5nZToKKyAgICBjYXNlIFBzZXVkb0N1c3RvbUVsZW1lbnQ6CisgICAgY2FzZSBQc2V1
ZG9XZWJLaXRDdXN0b21FbGVtZW50OgogICAgICAgICByZXR1cm4gTk9QU0VVRE87CiAgICAgY2Fz
ZSBQc2V1ZG9Ob3RQYXJzZWQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzg3
LDEyICszODksMjYgQEAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgQ1NTU2VsZWN0b3I6OnBhcnNl
UHNldWRvVHlwZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiAgICAgICAgIHJldHVybiBQc2V1
ZG9Vbmtub3duOwogICAgIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVjdG9yOjpQ
c2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZSA9IG5hbWVUb1BzZXVkb1R5cGVNYXAoKTsKICAg
ICBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZT46Oml0
ZXJhdG9yIHNsb3QgPSBuYW1lVG9Qc2V1ZG9UeXBlLT5maW5kKG5hbWUuaW1wbCgpKTsKLSAgICBy
ZXR1cm4gc2xvdCA9PSBuYW1lVG9Qc2V1ZG9UeXBlLT5lbmQoKSA/IFBzZXVkb1Vua25vd24gOiBz
bG90LT52YWx1ZTsKKworICAgIGlmIChzbG90ICE9IG5hbWVUb1BzZXVkb1R5cGUtPmVuZCgpKQor
ICAgICAgICByZXR1cm4gc2xvdC0+dmFsdWU7CisKKyAgICBpZiAobmFtZS5zdGFydHNXaXRoKCIt
d2Via2l0LSIpKQorICAgICAgICByZXR1cm4gUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudDsKKyAg
ICBpZiAobmFtZS5zdGFydHNXaXRoKCJ4LSIpKQorICAgICAgICByZXR1cm4gUHNldWRvQ3VzdG9t
RWxlbWVudDsKKworICAgIHJldHVybiBQc2V1ZG9Vbmtub3duOworfQorCitib29sIENTU1NlbGVj
dG9yOjppc1dlYktpdEN1c3RvbVBzZXVkb1R5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQor
eworICAgIHJldHVybiBwYXJzZVBzZXVkb1R5cGUobmFtZSkgPT0gUHNldWRvV2ViS2l0Q3VzdG9t
RWxlbWVudDsKIH0KIAotYm9vbCBDU1NTZWxlY3Rvcjo6aXNVbmtub3duUHNldWRvVHlwZShjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUpCitib29sIENTU1NlbGVjdG9yOjppc0N1c3RvbVBzZXVkb1R5
cGUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQogewotICAgIHJldHVybiBwYXJzZVBzZXVkb1R5
cGUobmFtZSkgPT0gUHNldWRvVW5rbm93bjsKKyAgICByZXR1cm4gcGFyc2VQc2V1ZG9UeXBlKG5h
bWUpID09IFBzZXVkb0N1c3RvbUVsZW1lbnQ7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3I6OmV4dHJh
Y3RQc2V1ZG9UeXBlKCkgY29uc3QKQEAgLTQyMCw2ICs0MzYsOCBAQCB2b2lkIENTU1NlbGVjdG9y
OjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXJUcmFj
azoKICAgICBjYXNlIFBzZXVkb1Njcm9sbGJhclRyYWNrUGllY2U6CiAgICAgY2FzZSBQc2V1ZG9T
ZWxlY3Rpb246CisgICAgY2FzZSBQc2V1ZG9DdXN0b21FbGVtZW50OgorICAgIGNhc2UgUHNldWRv
V2ViS2l0Q3VzdG9tRWxlbWVudDoKICAgICAgICAgZWxlbWVudCA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUHNldWRvVW5rbm93bjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKaW5k
ZXggNWNhMjRmNGUwMzFkZjUzYjEyZTEyY2MyNTFiZDM5NDM5NGM4ODJkZC4uZDA1NmVmOTkzZjM0
OWYzZDQ3OWJmZGQyMzUwZTQ2OGFhMDYyYWVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgK
QEAgLTE1NCw2ICsxNTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICAgICAgICAg
ICAgIFBzZXVkb0luUmFuZ2UsCiAgICAgICAgICAgICBQc2V1ZG9PdXRPZlJhbmdlLAorICAgICAg
ICAgICAgUHNldWRvQ3VzdG9tRWxlbWVudCwKKyAgICAgICAgICAgIFBzZXVkb1dlYktpdEN1c3Rv
bUVsZW1lbnQsCiAgICAgICAgIH07CiAKICAgICAgICAgZW51bSBNYXJnaW5Cb3hUeXBlIHsKQEAg
LTE4Myw3ICsxODUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH0KIAogICAgICAg
ICBzdGF0aWMgUHNldWRvVHlwZSBwYXJzZVBzZXVkb1R5cGUoY29uc3QgQXRvbWljU3RyaW5nJik7
Ci0gICAgICAgIHN0YXRpYyBib29sIGlzVW5rbm93blBzZXVkb1R5cGUoY29uc3QgQXRvbWljU3Ry
aW5nJik7CisgICAgICAgIHN0YXRpYyBib29sIGlzV2ViS2l0Q3VzdG9tUHNldWRvVHlwZShjb25z
dCBBdG9taWNTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgaXNDdXN0b21Qc2V1ZG9UeXBl
KGNvbnN0IEF0b21pY1N0cmluZyYpOyAgICAgICAgCiAgICAgICAgIHN0YXRpYyBQc2V1ZG9JZCBw
c2V1ZG9JZChQc2V1ZG9UeXBlKTsKIAogICAgICAgICAvLyBTZWxlY3RvcnMgYXJlIGtlcHQgaW4g
YW4gYXJyYXkgYnkgQ1NTU2VsZWN0b3JMaXN0LiBUaGUgbmV4dCBjb21wb25lbnQgb2YgdGhlIHNl
bGVjdG9yIGlzCkBAIC0yMTEsNiArMjE0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIGJvb2wgbWF0Y2hlc1BzZXVkb0VsZW1lbnQoKSBjb25zdDsKICAgICAgICAgYm9vbCBpc1Vu
a25vd25Qc2V1ZG9FbGVtZW50KCkgY29uc3Q7CisgICAgICAgIGJvb2wgaXNDdXN0b21Qc2V1ZG9F
bGVtZW50KCkgY29uc3Q7CisgICAgICAgIGJvb2wgaXNXZWJLaXRDdXN0b21Qc2V1ZG9FbGVtZW50
KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNTaWJsaW5nU2VsZWN0b3IoKSBjb25zdDsKICAgICAg
ICAgYm9vbCBpc0F0dHJpYnV0ZVNlbGVjdG9yKCkgY29uc3Q7CiAKQEAgLTI5MSw2ICsyOTYsMTYg
QEAgaW5saW5lIGJvb2wgQ1NTU2VsZWN0b3I6OmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSBjb25z
dAogICAgIHJldHVybiBtX21hdGNoID09IFBzZXVkb0VsZW1lbnQgJiYgbV9wc2V1ZG9UeXBlID09
IFBzZXVkb1Vua25vd247CiB9CiAKK2lubGluZSBib29sIENTU1NlbGVjdG9yOjppc0N1c3RvbVBz
ZXVkb0VsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX21hdGNoID09IFBzZXVkb0VsZW1l
bnQgJiYgbV9wc2V1ZG9UeXBlID09IFBzZXVkb0N1c3RvbUVsZW1lbnQ7Cit9CisKK2lubGluZSBi
b29sIENTU1NlbGVjdG9yOjppc1dlYktpdEN1c3RvbVBzZXVkb0VsZW1lbnQoKSBjb25zdAorewor
ICAgIHJldHVybiBtX21hdGNoID09IFBzZXVkb0VsZW1lbnQgJiYgbV9wc2V1ZG9UeXBlID09IFBz
ZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ7Cit9CisKIGlubGluZSBib29sIENTU1NlbGVjdG9yOjpp
c1NpYmxpbmdTZWxlY3RvcigpIGNvbnN0CiB7CiAgICAgUHNldWRvVHlwZSB0eXBlID0gcHNldWRv
VHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAppbmRleCA1NmQyODU5
ZDJkZDg1ZmZlNTE5ZDA1NzM0ZTkzN2RhZGM5MGY1NDIxLi5hZGNkZDliOTYyNjViZWM0Y2RjZGRi
Nzg5YmI0ZWFhNGFjZTFmYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2Vs
ZWN0b3JMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNw
cApAQCAtMTk3LDE3ICsxOTcsMTcgQEAgYm9vbCBDU1NTZWxlY3Rvckxpc3Q6OnNlbGVjdG9yc05l
ZWROYW1lc3BhY2VSZXNvbHV0aW9uKCkKICAgICByZXR1cm4gZm9yRWFjaFNlbGVjdG9yKGZ1bmN0
b3IsIHRoaXMpOwogfQogCi1jbGFzcyBTZWxlY3Rvckhhc1Vua25vd25Qc2V1ZG9FbGVtZW50RnVu
Y3RvciB7CitjbGFzcyBTZWxlY3Rvckhhc1VucXVlcnlhYmxlU2VsZWN0b3JGdW5jdG9yIHsKIHB1
YmxpYzoKICAgICBib29sIG9wZXJhdG9yKCkoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIHNlbGVjdG9yLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCk7CisgICAg
ICAgIHJldHVybiBzZWxlY3Rvci0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpIHx8IHNlbGVjdG9y
LT5pc1dlYktpdEN1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBzZWxlY3Rvci0+aXNDdXN0b21Qc2V1
ZG9FbGVtZW50KCk7CiAgICAgfQogfTsKIAotYm9vbCBDU1NTZWxlY3Rvckxpc3Q6Omhhc1Vua25v
d25Qc2V1ZG9FbGVtZW50cygpIGNvbnN0Citib29sIENTU1NlbGVjdG9yTGlzdDo6aGFzTm9ucXVl
cnlhYmxlU2VsZWN0b3IoKSBjb25zdAogewotICAgIFNlbGVjdG9ySGFzVW5rbm93blBzZXVkb0Vs
ZW1lbnRGdW5jdG9yIGZ1bmN0b3I7CisgICAgU2VsZWN0b3JIYXNVbnF1ZXJ5YWJsZVNlbGVjdG9y
RnVuY3RvciBmdW5jdG9yOwogICAgIHJldHVybiBmb3JFYWNoU2VsZWN0b3IoZnVuY3RvciwgdGhp
cyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuaAppbmRleCBkMmNlMTEzNGM2
M2Y5ZjY3NjFkN2JjZTZiMzBiN2QxOTY2ZmRiOGJkLi4zMWMxMjA1OTI4YTA3Y2QwYmE3ODk1OTUy
NzhlNWZiZWE4NjFkMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3JMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5oCkBAIC01
OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBib29sIHNlbGVjdG9yc05lZWROYW1l
c3BhY2VSZXNvbHV0aW9uKCk7Ci0gICAgYm9vbCBoYXNVbmtub3duUHNldWRvRWxlbWVudHMoKSBj
b25zdDsKKyAgICBib29sIGhhc05vbnF1ZXJ5YWJsZVNlbGVjdG9yKCkgY29uc3Q7CiAKICAgICBT
dHJpbmcgc2VsZWN0b3JzVGV4dCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXgg
Zjc1ZjRmNDI1YmRmZjEwMWNmNzY5NDFkNmEyY2M1OWVlMTIxZjJjMS4uMzgzOTg3YzhmNmJlYzRm
Mzc3YzdjOTI1ZTkzZTM4N2Q2ZDIyZmM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMjI5
LDcgKzIyOSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2ln
bmVkIHNlbGVjdG9ySW5kZXgsIEFkZFJ1bGVGbGFncyBhZGRSCiAgICAgICAgIGFkZFRvUnVsZVNl
dChzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCksIG1fY2xhc3NSdWxlcywgcnVsZURhdGEpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChzZWxlY3Rvci0+aXNVbmtub3duUHNldWRvRWxl
bWVudCgpKSB7CisgICAgaWYgKHNlbGVjdG9yLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBz
ZWxlY3Rvci0+aXNXZWJLaXRDdXN0b21Qc2V1ZG9FbGVtZW50KCkpIHsKICAgICAgICAgYWRkVG9S
dWxlU2V0KHNlbGVjdG9yLT52YWx1ZSgpLmltcGwoKSwgbV9zaGFkb3dQc2V1ZG9FbGVtZW50UnVs
ZXMsIHJ1bGVEYXRhKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggYjY2MDUwZmU0NzUwNzIzZDcxNGFjNTk2MGQ4ODMyZmRk
OGI1MzA2ZC4uNTg4MTU0MTIwN2QzNDlkNDJhZjFjNTZjNTUyODVhZTMyZmYxYjgxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTQ0Niw3ICs0NDYsNyBAQCBTZWxl
Y3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVjdG9y
KGNvbnN0IFNlbGVjdG9yQ2hlYwogICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xvY2FsbHk7
CiAKICAgICBpZiAoY29udGV4dC5zZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNl
dWRvRWxlbWVudCkgewotICAgICAgICBpZiAoY29udGV4dC5zZWxlY3Rvci0+aXNVbmtub3duUHNl
dWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5pc0N1c3RvbVBz
ZXVkb0VsZW1lbnQoKSB8fCBjb250ZXh0LnNlbGVjdG9yLT5pc1dlYktpdEN1c3RvbVBzZXVkb0Vs
ZW1lbnQoKSkgewogICAgICAgICAgICAgaWYgKGNvbnRleHQuZWxlbWVudC0+c2hhZG93UHNldWRv
SWQoKSAhPSBjb250ZXh0LnNlbGVjdG9yLT52YWx1ZSgpKQogICAgICAgICAgICAgICAgIHJldHVy
biBTZWxlY3RvckZhaWxzTG9jYWxseTsKICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAppbmRleCA4YTY3MmVhNjhkZDI2OTQ2MjIzM2I0ZDJmZDUwNzZjOTZmYzc2NjQ4Li43ZmUz
YjAyMGIwNDM4YjUyNmNjMTdiMTE4NmExYWU1NTA4MDg2N2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCkBAIC0xMzU5LDcgKzEzNTksNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIAogdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dQc2V1ZG9JZChj
b25zdCBBdG9taWNTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBpZiAoIUNT
U1NlbGVjdG9yOjppc1Vua25vd25Qc2V1ZG9UeXBlKGlkKSkgeworICAgIGlmICghQ1NTU2VsZWN0
b3I6OmlzV2ViS2l0Q3VzdG9tUHNldWRvVHlwZShpZCkgJiYgIUNTU1NlbGVjdG9yOjppc0N1c3Rv
bVBzZXVkb1R5cGUoaWQpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAppbmRleCA0NDQ5MzAz
ODJmZTFjNDc4YTQ5YmZjNWNkMGIyZTFlYzdkYjlhNzhkLi4wZTgyMTYxOTdhYjFjYzFmNGIwMGNm
MDgyOWJkNGNiMjZjMDIzZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0
b3JRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCkBA
IC0xODAsNyArMTgwLDcgQEAgU2VsZWN0b3JRdWVyeSogU2VsZWN0b3JRdWVyeUNhY2hlOjphZGQo
Y29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3RvcnMsIERvY3VtZW50KgogICAgIENTU1NlbGVjdG9y
TGlzdCBzZWxlY3Rvckxpc3Q7CiAgICAgcGFyc2VyLnBhcnNlU2VsZWN0b3Ioc2VsZWN0b3JzLCBz
ZWxlY3Rvckxpc3QpOwogCi0gICAgaWYgKCFzZWxlY3Rvckxpc3QuZmlyc3QoKSB8fCBzZWxlY3Rv
ckxpc3QuaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKCkpIHsKKyAgICBpZiAoIXNlbGVjdG9yTGlz
dC5maXJzdCgpIHx8IHNlbGVjdG9yTGlzdC5oYXNOb25xdWVyeWFibGVTZWxlY3RvcigpKSB7CiAg
ICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGExNzVjYmI0ZjVmN2YxZmM3MTVlZjYzODE2NzA0ZWExZTViYTdmNDkuLmYzOTVlMmEyN2EzNTk0
OTExMWZiMjE5ZWVmZGUyNDZiMmM4NjkxMzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0x
MS0wNCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+IAorCisgICAgICAg
IFtTaGFkb3ddIFVzaW5nIGlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSBmb3Igc2hhZG93IHBzZXVk
byBpZCBzZWVtcyBjb25mdXNpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMDgyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLmh0
bWw6IEZpeGVkIGEgdGVzdGNhc2Ugc28gdGhhdCBzaGFkb3dQc2V1ZG9JZCBzdGFydHMgd2l0aCAn
eC0nLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlkLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlk
Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTA0ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbU2hhZG93XSBJbXBsZW1lbnQgY3VzdG9tIHBzZXVkby1l
bGVtZW50cyBzdHlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LW5lc3RlZC1wc2V1ZG8taWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC5odG1sCmluZGV4IDRkYzJmYjA0YWMzNDdkZTE3NDhj
NmMzZjgwODI4ZDU0YzIyZmMxMjkuLjM2ZTA1ZjRhMTY0MDZkMDE5M2E0MGJiM2ZjMjA0MTZhMjJl
ZjE2YWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVz
dGVkLXBzZXVkby1pZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctbmVzdGVkLXBzZXVkby1pZC5odG1sCkBAIC00LDE1ICs0LDE1IEBACiA8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDxzdHlsZT4KIAot
cDo6LXNoYWRvdy1jaGlsZCB7CitwOjp4LXNoYWRvdy1jaGlsZCB7CiAgIGNvbG9yOiByZWQ7CiB9
CiAKLWE6Oi1uZXN0ZWQtc2hhZG93LWNoaWxkIHsKK2E6OngtbmVzdGVkLXNoYWRvdy1jaGlsZCB7
CiAgIGNvbG9yOiBibHVlOwogfQogCi1wOjotc2hhZG93LWNoaWxkOjotbmVzdGVkLXNoYWRvdy1j
aGlsZCB7CitwOjp4LXNoYWRvdy1jaGlsZDo6eC1uZXN0ZWQtc2hhZG93LWNoaWxkIHsKICAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47CiB9CiAKQEAgLTM5LDkgKzM5LDkgQEAgaWYgKCF3aW5kb3cu
aW50ZXJuYWxzKQogICAgIGZhaWwoIllvdSBuZWVkIHdpbmRvdy5pbnRlcm5hbHMgdG8gcnVuIHRo
aXMgdGVzdCIpOwogICAgIAogdmFyIGhvc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaG9z
dCIpOwotdmFyIHR1cGxlID0gYnVpbGRTaGFkb3dXaXRoT25lQ2hpbGQoaG9zdCwgImEiLCAiLXNo
YWRvdy1jaGlsZCIpOwordmFyIHR1cGxlID0gYnVpbGRTaGFkb3dXaXRoT25lQ2hpbGQoaG9zdCwg
ImEiLCAieC1zaGFkb3ctY2hpbGQiKTsKIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0dXBsZS5zaGFkb3dDaGlsZCkuY29sb3IiLCAiJ3JnYigyNTUsIDAsIDApJyIpOwotdmFyIHNo
YWRvd1R1cGxlID0gYnVpbGRTaGFkb3dXaXRoT25lQ2hpbGQodHVwbGUuc2hhZG93Q2hpbGQsICJi
IiwgIi1uZXN0ZWQtc2hhZG93LWNoaWxkIik7Cit2YXIgc2hhZG93VHVwbGUgPSBidWlsZFNoYWRv
d1dpdGhPbmVDaGlsZCh0dXBsZS5zaGFkb3dDaGlsZCwgImIiLCAieC1uZXN0ZWQtc2hhZG93LWNo
aWxkIik7CiBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhZG93VHVwbGUuc2hh
ZG93Q2hpbGQpLmNvbG9yIiwgIidyZ2IoMCwgMCwgMjU1KSciKTsKIHNob3VsZEJlKCJ3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShzaGFkb3dUdXBsZS5zaGFkb3dDaGlsZCkuYmFja2dyb3VuZENvbG9y
IiwgIidyZ2IoMCwgMTI4LCAwKSciKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1wc2V1ZG8taWQtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlkLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWQzOWY4NDY3NzM2Y2FmYTAxN2I2ZjhlZDUyMmY3YjRkZjYyN2M1NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlkLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwxMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PC9oZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGRpdiBpZD0iaG9z
dDEiPjxkaXYgc3R5bGU9ImNvbG9yOnJlZCI+U0hBRE9XIDE8L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9
Imhvc3QyIj48ZGl2PlNIQURPVyAyPC9kaXY+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlkLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1pZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjE4ZjE2NzkyMjAzZWE1YjI2NWQyMzljNmQ1M2ZjZjY0NzkzM2U4YTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1p
ZC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzdHlsZT4KK2Rpdjo6eC1zaGFkb3cgeworICAgIGNvbG9yOiByZWQ7Cit9CisKK2Rpdjo6LXRl
c3QgeworICAgIGNvbG9yOiBibHVlOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxkaXYgaWQ9Imhvc3QxIj48L2Rpdj4KKzxkaXYgaWQ9
Imhvc3QyIj48L2Rpdj4KKworPHNjcmlwdD4KK3ZhciBzaGFkb3dSb290MSA9IG5ldyBXZWJLaXRT
aGFkb3dSb290KGhvc3QxKTsKK3ZhciBkaXYxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CitkaXYxLmlubmVySFRNTCA9ICJTSEFET1cgMSI7CitpbnRlcm5hbHMuc2V0U2hhZG93UHNl
dWRvSWQoZGl2MSwgIngtc2hhZG93Iik7CisKK3ZhciBzaGFkb3dSb290MiA9IG5ldyBXZWJLaXRT
aGFkb3dSb290KGhvc3QyKTsKK3ZhciBkaXYyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CitkaXYyLmlubmVySFRNTCA9ICJTSEFET1cgMiI7CitpbnRlcm5hbHMuc2V0U2hhZG93UHNl
dWRvSWQoZGl2MSwgIi10ZXN0Iik7Cis8L3NjcmlwdD4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172454</attachid>
            <date>2012-11-05 17:47:42 -0800</date>
            <delta_ts>2012-11-05 20:03:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100826-20121106104556.patch</filename>
            <type>text/plain</type>
            <size>18370</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODExYjNjZmI5YWVkMzQx
Y2FiNjVlYzhiMTdkODA2Yjg3ZWMwOGJhOS4uZDYyNjNjNDA3YzhhNzFiMDk0ZjdiNjU0YjU5YTU4
ZDkxZjY5MGI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTExLTA1ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBV
c2luZyBpc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkgZm9yIHNoYWRvdyBwc2V1ZG8gaWQgc2VlbXMg
Y29uZnVzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDA4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXZSB1c2VkIGlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSBmb3IgdGhlc2UgMyBtZWFuaW5nczog
MSkgYW4gZWxlbWVudCBpcyBjdXN0b20gcHNldWRvIGVsZW1lbnQgKHN0YXJ0aW5nIHdpdGggJ3gt
JyksCisgICAgICAgIDIpIGFuIGVsZW1lbnQgaXMgd2Via2l0IGN1c3RvbSBwc2V1ZG8gZWxlbWVu
dCAoc3RhcnRpbmcgd2l0aCAnLXdlYmtpdC0nKSwgYW5kIDMpIGFuIGVsZW1lbnQgaXMgYSBjb21w
bGV0ZWx5IHVua25vd24gdHlwZS4KKyAgICAgICAgV2Ugd291bGQgbGlrZSB0byBkaXN0aW5ndWlz
aCB0aGVtIHdoZW4gcGFyc2luZyBDU1NTZWxlY3RvciB0eXBlcy4gQWxzbywgd2UgZGlzYWJsZSB1
c2luZyAoMykgdHlwZSBmb3IgdXNpbmcKKyAgICAgICAgc2hhZG93UHNldWRvSWQuCisKKyAgICAg
ICAgSW4gdGhpcyBwYXRjaCwgd2UgYWxsb3cgdXNpbmcgV2ViS2l0Q3VzdG9tUHNldWRvRWxlbWVu
dCBpbiBBdXRob3JTaGFkb3dSb290LCBhbmQgQ3VzdG9tUHNldWRvRWxlbWVudCBpbgorICAgICAg
ICBVQVNoYWRvd1Jvb3QuIEhvd2V2ZXIsIHdlIHdpbGwgZGlzYWJsZSB0aGVtIGxhdGVyLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlkLmh0bWwKKworICAg
ICAgICAqIGNzcy9DU1NHcmFtbWFyLnkuaW46IE5vdyB3ZSBjYW4gZGlzY2FyZCBVTktOT1dOIHR5
cGUuIEl0IHNob3VsZCBub3QgbWF0Y2ggYW55dGhpbmcuCisgICAgICAgICogY3NzL0NTU1BhcnNl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnVwZGF0ZVNwZWNpZmllcnNXaXRo
RWxlbWVudE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZp
ZXJzKToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyVmFsdWVzLmg6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NQYXJzZXJTZWxlY3Rvcjo6aXNDdXN0b21Qc2V1ZG9FbGVtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjppc1dlYktpdEN1c3RvbVBzZXVkb0VsZW1lbnQpOgor
ICAgICAgICAoQ1NTUGFyc2VyU2VsZWN0b3IpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6cHNldWRvSWQpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBhcnNlUHNldWRvVHlwZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjppc1dlYktpdEN1c3RvbVBzZXVkb1R5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmlzQ3VzdG9tUHNldWRvVHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUpOgorICAg
ICAgICAqIGNzcy9DU1NTZWxlY3Rvci5oOgorICAgICAgICAoQ1NTU2VsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmlzQ3VzdG9tUHNldWRvRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjppc1dlYktpdEN1c3Rv
bVBzZXVkb0VsZW1lbnQpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvckxpc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0b3JIYXNVbnF1ZXJ5YWJsZVNlbGVjdG9yRnVuY3Rvcjo6b3Bl
cmF0b3IoKSk6IFdlIHdpbGwgcmVqZWN0IGFsbCBzZWxlY3RvcnMgd2hpY2ggd2VyZSBqdWRnZWQg
YXMKKyAgICAgICAgVU5LTk9XTiBiZWZvcmUuIGkuZS4gSXQgY29udGlhbnMgYWxsIHRocmVlIHR5
cGVzIGZvciBub3cuCisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvckxpc3Q6Omhhc05vbnF1
ZXJ5YWJsZVNlbGVjdG9yKToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3JMaXN0Lmg6CisgICAg
ICAgIChDU1NTZWxlY3Rvckxpc3QpOgorICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICAqIGNzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjpjaGVja1NlbGVj
dG9yKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjpzZXRTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgICogZG9tL1NlbGVjdG9yUXVlcnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JRdWVyeUNhY2hlOjphZGQpOgorCiAyMDEyLTEx
LTA1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1h
a2UgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKSBub24tdmlydHVhbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggMjI5NTdjNjg5NmVhZWZhOWYxM2MxYjViNGY1OWU5MTZk
YmFjYzA0Zi4uOWVlZGNjMzk0ODVjNTRmYzNkMTcwY2RlODFiODlmZTdjOTE5MWE0ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC0xMzA3LDcgKzEzMDcsOSBAQCBwc2V1ZG86CiAg
ICAgICAgICQzLmxvd2VyKCk7CiAgICAgICAgICQkLT5zZXRWYWx1ZSgkMyk7CiAgICAgICAgIC8v
IEZJWE1FOiBUaGlzIGNhbGwgaXMgbmVlZGVkIHRvIGZvcmNlIHNlbGVjdG9yIHRvIGNvbXB1dGUg
dGhlIHBzZXVkb1R5cGUgZWFybHkgZW5vdWdoLgotICAgICAgICAkJC0+cHNldWRvVHlwZSgpOwor
ICAgICAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSB0eXBlID0gJCQtPnBzZXVkb1R5cGUoKTsK
KyAgICAgICAgaWYgKHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pCisgICAgICAg
ICAgICAkJCA9IDA7CiAgICAgfQogICAgIC8vIHVzZSBieSA6LXdlYmtpdC1hbnkuCiAgICAgLy8g
RklYTUU6IHNob3VsZCB3ZSBzdXBwb3J0IGdlbmVyaWMgc2VsZWN0b3JzIGhlcmUgb3IganVzdCBz
aW1wbGVfc2VsZWN0b3JzPwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBiMTYxYWVjYWMy
Mzg4MjcyNzAwMzE4N2IwNjgwYmNlYmMwN2YxY2ViLi4yZjY1MjYwYjZlNDI4ZTgwMzk4NWMyYTM2
OWY2NTdjYjkxZmExMWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTAwOTIsNyAr
MTAwOTIsNyBAQCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFt
ZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWVzcGFjZVByZQogewogICAgIEF0b21pY1N0cmluZyBk
ZXRlcm1pbmVkTmFtZXNwYWNlID0gbmFtZXNwYWNlUHJlZml4ICE9IG51bGxBdG9tICYmIG1fc3R5
bGVTaGVldCA/IG1fc3R5bGVTaGVldC0+ZGV0ZXJtaW5lTmFtZXNwYWNlKG5hbWVzcGFjZVByZWZp
eCkgOiBtX2RlZmF1bHROYW1lc3BhY2U7CiAgICAgUXVhbGlmaWVkTmFtZSB0YWcgPSBRdWFsaWZp
ZWROYW1lKG5hbWVzcGFjZVByZWZpeCwgZWxlbWVudE5hbWUsIGRldGVybWluZWROYW1lc3BhY2Up
OwotICAgIGlmICghc3BlY2lmaWVycy0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpKSB7CisgICAg
aWYgKCFzcGVjaWZpZXJzLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSAmJiAhc3BlY2lmaWVycy0+
aXNXZWJLaXRDdXN0b21Qc2V1ZG9FbGVtZW50KCkpIHsKICAgICAgICAgc3BlY2lmaWVycy0+c2V0
VGFnKHRhZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMDEwMSw3ICsxMDEwMSw3IEBA
IHZvaWQgQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZXNwYWNlUHJlCiAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGhpc3Rvcnkg
PSBzcGVjaWZpZXJzOwogICAgIHdoaWxlIChoaXN0b3J5LT50YWdIaXN0b3J5KCkpIHsKICAgICAg
ICAgaGlzdG9yeSA9IGhpc3RvcnktPnRhZ0hpc3RvcnkoKTsKLSAgICAgICAgaWYgKGhpc3Rvcnkt
PmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSB8fCBoaXN0b3J5LT5oYXNTaGFkb3dEZXNjZW5kYW50
KCkpCisgICAgICAgIGlmIChoaXN0b3J5LT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBoaXN0
b3J5LT5pc1dlYktpdEN1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBoaXN0b3J5LT5oYXNTaGFkb3dE
ZXNjZW5kYW50KCkpCiAgICAgICAgICAgICBsYXN0U2hhZG93RGVzY2VuZGFudCA9IGhpc3Rvcnk7
CiAgICAgfQogCkBAIC0xMDEyMCwxMiArMTAxMjAsMTIgQEAgdm9pZCBDU1NQYXJzZXI6OnVwZGF0
ZVNwZWNpZmllcnNXaXRoRWxlbWVudE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3BhY2VQ
cmUKIAogQ1NTUGFyc2VyU2VsZWN0b3IqIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVycyhDU1NQ
YXJzZXJTZWxlY3Rvciogc3BlY2lmaWVycywgQ1NTUGFyc2VyU2VsZWN0b3IqIG5ld1NwZWNpZmll
cikKIHsKLSAgICBpZiAobmV3U3BlY2lmaWVyLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkpIHsK
KyAgICBpZiAobmV3U3BlY2lmaWVyLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBuZXdTcGVj
aWZpZXItPmlzV2ViS2l0Q3VzdG9tUHNldWRvRWxlbWVudCgpKSB7CiAgICAgICAgIC8vIFVua25v
d24gcHNldWRvIGVsZW1lbnQgYWx3YXlzIGdvZXMgYXQgdGhlIHRvcCBvZiBzZWxlY3RvciBjaGFp
bi4KICAgICAgICAgbmV3U3BlY2lmaWVyLT5hcHBlbmRUYWdIaXN0b3J5KENTU1NlbGVjdG9yOjpT
aGFkb3dEZXNjZW5kYW50LCBzaW5rRmxvYXRpbmdTZWxlY3RvcihzcGVjaWZpZXJzKSk7CiAgICAg
ICAgIHJldHVybiBuZXdTcGVjaWZpZXI7CiAgICAgfQotICAgIGlmIChzcGVjaWZpZXJzLT5pc1Vu
a25vd25Qc2V1ZG9FbGVtZW50KCkpIHsKKyAgICBpZiAoc3BlY2lmaWVycy0+aXNDdXN0b21Qc2V1
ZG9FbGVtZW50KCkgfHwgc3BlY2lmaWVycy0+aXNXZWJLaXRDdXN0b21Qc2V1ZG9FbGVtZW50KCkp
IHsKICAgICAgICAgLy8gU3BlY2lmaWVycyBmb3IgdW5rbm93biBwc2V1ZG8gZWxlbWVudCBnbyBy
aWdodCBiZWhpbmQgaXQgaW4gdGhlIGNoYWluLgogICAgICAgICBzcGVjaWZpZXJzLT5pbnNlcnRU
YWdIaXN0b3J5KENTU1NlbGVjdG9yOjpTdWJTZWxlY3Rvciwgc2lua0Zsb2F0aW5nU2VsZWN0b3Io
bmV3U3BlY2lmaWVyKSwgQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQpOwogICAgICAgICBy
ZXR1cm4gc3BlY2lmaWVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXJWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAppbmRleCBk
M2ZjNDAzNTMwMjlmZjBhMjdkOWFlNWI5ZDRjMDZhOWM3ZTkyMjgyLi5lZmZkZTViOTQ5NTc3MDM2
NTgwZWNmNWNhNzdmMmU3YzE4MmFmOGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVl
cy5oCkBAIC0xOTIsNiArMTkyLDkgQEAgcHVibGljOgogCiAgICAgQ1NTU2VsZWN0b3I6OlBzZXVk
b1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3ItPnBzZXVkb1R5cGUo
KTsgfQogICAgIGJvb2wgaXNVbmtub3duUHNldWRvRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2VsZWN0b3ItPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKTsgfQorICAgIGJvb2wgaXNDdXN0b21Q
c2V1ZG9FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvci0+aXNDdXN0b21Qc2V1ZG9F
bGVtZW50KCk7IH0KKyAgICBib29sIGlzV2ViS2l0Q3VzdG9tUHNldWRvRWxlbWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2VsZWN0b3ItPmlzV2ViS2l0Q3VzdG9tUHNldWRvRWxlbWVudCgpOyB9CisK
ICAgICBib29sIGlzU2ltcGxlKCkgY29uc3QgeyByZXR1cm4gIW1fdGFnSGlzdG9yeSAmJiBtX3Nl
bGVjdG9yLT5pc1NpbXBsZSgpOyB9CiAgICAgYm9vbCBoYXNTaGFkb3dEZXNjZW5kYW50KCkgY29u
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4IGQyYmE3NTY3NzcyMjNlY2I1
ZmZjZWViMWY2OGE1NDFjMzI3ZTJmMWYuLjIwMWExNTE4MTkzMTM5ZTFhMzIyZDAzNGM5YWYzY2E2
YWFhNDI5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtMjE4LDYgKzIxOCw4
IEBAIFBzZXVkb0lkIENTU1NlbGVjdG9yOjpwc2V1ZG9JZChQc2V1ZG9UeXBlIHR5cGUpCiAgICAg
Y2FzZSBQc2V1ZG9SaWdodFBhZ2U6CiAgICAgY2FzZSBQc2V1ZG9JblJhbmdlOgogICAgIGNhc2Ug
UHNldWRvT3V0T2ZSYW5nZToKKyAgICBjYXNlIFBzZXVkb0N1c3RvbUVsZW1lbnQ6CisgICAgY2Fz
ZSBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50OgogICAgICAgICByZXR1cm4gTk9QU0VVRE87CiAg
ICAgY2FzZSBQc2V1ZG9Ob3RQYXJzZWQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtMzg3LDEyICszODksMjYgQEAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgQ1NTU2VsZWN0b3I6
OnBhcnNlUHNldWRvVHlwZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiAgICAgICAgIHJldHVy
biBQc2V1ZG9Vbmtub3duOwogICAgIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIENTU1NlbGVj
dG9yOjpQc2V1ZG9UeXBlPiogbmFtZVRvUHNldWRvVHlwZSA9IG5hbWVUb1BzZXVkb1R5cGVNYXAo
KTsKICAgICBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlw
ZT46Oml0ZXJhdG9yIHNsb3QgPSBuYW1lVG9Qc2V1ZG9UeXBlLT5maW5kKG5hbWUuaW1wbCgpKTsK
LSAgICByZXR1cm4gc2xvdCA9PSBuYW1lVG9Qc2V1ZG9UeXBlLT5lbmQoKSA/IFBzZXVkb1Vua25v
d24gOiBzbG90LT52YWx1ZTsKKworICAgIGlmIChzbG90ICE9IG5hbWVUb1BzZXVkb1R5cGUtPmVu
ZCgpKQorICAgICAgICByZXR1cm4gc2xvdC0+dmFsdWU7CisKKyAgICBpZiAobmFtZS5zdGFydHNX
aXRoKCItd2Via2l0LSIpKQorICAgICAgICByZXR1cm4gUHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVu
dDsKKyAgICBpZiAobmFtZS5zdGFydHNXaXRoKCJ4LSIpKQorICAgICAgICByZXR1cm4gUHNldWRv
Q3VzdG9tRWxlbWVudDsKKworICAgIHJldHVybiBQc2V1ZG9Vbmtub3duOworfQorCitib29sIENT
U1NlbGVjdG9yOjppc1dlYktpdEN1c3RvbVBzZXVkb1R5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKQoreworICAgIHJldHVybiBwYXJzZVBzZXVkb1R5cGUobmFtZSkgPT0gUHNldWRvV2ViS2l0
Q3VzdG9tRWxlbWVudDsKIH0KIAotYm9vbCBDU1NTZWxlY3Rvcjo6aXNVbmtub3duUHNldWRvVHlw
ZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCitib29sIENTU1NlbGVjdG9yOjppc0N1c3RvbVBz
ZXVkb1R5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQogewotICAgIHJldHVybiBwYXJzZVBz
ZXVkb1R5cGUobmFtZSkgPT0gUHNldWRvVW5rbm93bjsKKyAgICByZXR1cm4gcGFyc2VQc2V1ZG9U
eXBlKG5hbWUpID09IFBzZXVkb0N1c3RvbUVsZW1lbnQ7CiB9CiAKIHZvaWQgQ1NTU2VsZWN0b3I6
OmV4dHJhY3RQc2V1ZG9UeXBlKCkgY29uc3QKQEAgLTQyMCw2ICs0MzYsOCBAQCB2b2lkIENTU1Nl
bGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CiAgICAgY2FzZSBQc2V1ZG9TY3JvbGxi
YXJUcmFjazoKICAgICBjYXNlIFBzZXVkb1Njcm9sbGJhclRyYWNrUGllY2U6CiAgICAgY2FzZSBQ
c2V1ZG9TZWxlY3Rpb246CisgICAgY2FzZSBQc2V1ZG9DdXN0b21FbGVtZW50OgorICAgIGNhc2Ug
UHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudDoKICAgICAgICAgZWxlbWVudCA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgUHNldWRvVW5rbm93bjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
LmgKaW5kZXggNWNhMjRmNGUwMzFkZjUzYjEyZTEyY2MyNTFiZDM5NDM5NGM4ODJkZC4uZDA1NmVm
OTkzZjM0OWYzZDQ3OWJmZGQyMzUwZTQ2OGFhMDYyYWVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1NlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVj
dG9yLmgKQEAgLTE1NCw2ICsxNTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICAg
ICAgICAgICAgIFBzZXVkb0luUmFuZ2UsCiAgICAgICAgICAgICBQc2V1ZG9PdXRPZlJhbmdlLAor
ICAgICAgICAgICAgUHNldWRvQ3VzdG9tRWxlbWVudCwKKyAgICAgICAgICAgIFBzZXVkb1dlYktp
dEN1c3RvbUVsZW1lbnQsCiAgICAgICAgIH07CiAKICAgICAgICAgZW51bSBNYXJnaW5Cb3hUeXBl
IHsKQEAgLTE4Myw3ICsxODUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH0KIAog
ICAgICAgICBzdGF0aWMgUHNldWRvVHlwZSBwYXJzZVBzZXVkb1R5cGUoY29uc3QgQXRvbWljU3Ry
aW5nJik7Ci0gICAgICAgIHN0YXRpYyBib29sIGlzVW5rbm93blBzZXVkb1R5cGUoY29uc3QgQXRv
bWljU3RyaW5nJik7CisgICAgICAgIHN0YXRpYyBib29sIGlzV2ViS2l0Q3VzdG9tUHNldWRvVHlw
ZShjb25zdCBBdG9taWNTdHJpbmcmKTsKKyAgICAgICAgc3RhdGljIGJvb2wgaXNDdXN0b21Qc2V1
ZG9UeXBlKGNvbnN0IEF0b21pY1N0cmluZyYpOyAgICAgICAgCiAgICAgICAgIHN0YXRpYyBQc2V1
ZG9JZCBwc2V1ZG9JZChQc2V1ZG9UeXBlKTsKIAogICAgICAgICAvLyBTZWxlY3RvcnMgYXJlIGtl
cHQgaW4gYW4gYXJyYXkgYnkgQ1NTU2VsZWN0b3JMaXN0LiBUaGUgbmV4dCBjb21wb25lbnQgb2Yg
dGhlIHNlbGVjdG9yIGlzCkBAIC0yMTEsNiArMjE0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIGJvb2wgbWF0Y2hlc1BzZXVkb0VsZW1lbnQoKSBjb25zdDsKICAgICAgICAgYm9v
bCBpc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkgY29uc3Q7CisgICAgICAgIGJvb2wgaXNDdXN0b21Q
c2V1ZG9FbGVtZW50KCkgY29uc3Q7CisgICAgICAgIGJvb2wgaXNXZWJLaXRDdXN0b21Qc2V1ZG9F
bGVtZW50KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNTaWJsaW5nU2VsZWN0b3IoKSBjb25zdDsK
ICAgICAgICAgYm9vbCBpc0F0dHJpYnV0ZVNlbGVjdG9yKCkgY29uc3Q7CiAKQEAgLTI5MSw2ICsy
OTYsMTYgQEAgaW5saW5lIGJvb2wgQ1NTU2VsZWN0b3I6OmlzVW5rbm93blBzZXVkb0VsZW1lbnQo
KSBjb25zdAogICAgIHJldHVybiBtX21hdGNoID09IFBzZXVkb0VsZW1lbnQgJiYgbV9wc2V1ZG9U
eXBlID09IFBzZXVkb1Vua25vd247CiB9CiAKK2lubGluZSBib29sIENTU1NlbGVjdG9yOjppc0N1
c3RvbVBzZXVkb0VsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX21hdGNoID09IFBzZXVk
b0VsZW1lbnQgJiYgbV9wc2V1ZG9UeXBlID09IFBzZXVkb0N1c3RvbUVsZW1lbnQ7Cit9CisKK2lu
bGluZSBib29sIENTU1NlbGVjdG9yOjppc1dlYktpdEN1c3RvbVBzZXVkb0VsZW1lbnQoKSBjb25z
dAoreworICAgIHJldHVybiBtX21hdGNoID09IFBzZXVkb0VsZW1lbnQgJiYgbV9wc2V1ZG9UeXBl
ID09IFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ7Cit9CisKIGlubGluZSBib29sIENTU1NlbGVj
dG9yOjppc1NpYmxpbmdTZWxlY3RvcigpIGNvbnN0CiB7CiAgICAgUHNldWRvVHlwZSB0eXBlID0g
cHNldWRvVHlwZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAppbmRleCA1
NmQyODU5ZDJkZDg1ZmZlNTE5ZDA1NzM0ZTkzN2RhZGM5MGY1NDIxLi5hZGNkZDliOTYyNjViZWM0
Y2RjZGRiNzg5YmI0ZWFhNGFjZTFmYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU2VsZWN0b3JMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JM
aXN0LmNwcApAQCAtMTk3LDE3ICsxOTcsMTcgQEAgYm9vbCBDU1NTZWxlY3Rvckxpc3Q6OnNlbGVj
dG9yc05lZWROYW1lc3BhY2VSZXNvbHV0aW9uKCkKICAgICByZXR1cm4gZm9yRWFjaFNlbGVjdG9y
KGZ1bmN0b3IsIHRoaXMpOwogfQogCi1jbGFzcyBTZWxlY3Rvckhhc1Vua25vd25Qc2V1ZG9FbGVt
ZW50RnVuY3RvciB7CitjbGFzcyBTZWxlY3Rvckhhc1VucXVlcnlhYmxlU2VsZWN0b3JGdW5jdG9y
IHsKIHB1YmxpYzoKICAgICBib29sIG9wZXJhdG9yKCkoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIHNlbGVjdG9yLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCk7
CisgICAgICAgIHJldHVybiBzZWxlY3Rvci0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpIHx8IHNl
bGVjdG9yLT5pc1dlYktpdEN1c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBzZWxlY3Rvci0+aXNDdXN0
b21Qc2V1ZG9FbGVtZW50KCk7CiAgICAgfQogfTsKIAotYm9vbCBDU1NTZWxlY3Rvckxpc3Q6Omhh
c1Vua25vd25Qc2V1ZG9FbGVtZW50cygpIGNvbnN0Citib29sIENTU1NlbGVjdG9yTGlzdDo6aGFz
Tm9ucXVlcnlhYmxlU2VsZWN0b3IoKSBjb25zdAogewotICAgIFNlbGVjdG9ySGFzVW5rbm93blBz
ZXVkb0VsZW1lbnRGdW5jdG9yIGZ1bmN0b3I7CisgICAgU2VsZWN0b3JIYXNVbnF1ZXJ5YWJsZVNl
bGVjdG9yRnVuY3RvciBmdW5jdG9yOwogICAgIHJldHVybiBmb3JFYWNoU2VsZWN0b3IoZnVuY3Rv
ciwgdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuaAppbmRleCBkMmNl
MTEzNGM2M2Y5ZjY3NjFkN2JjZTZiMzBiN2QxOTY2ZmRiOGJkLi4zMWMxMjA1OTI4YTA3Y2QwYmE3
ODk1OTUyNzhlNWZiZWE4NjFkMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3JMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5o
CkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBib29sIHNlbGVjdG9yc05l
ZWROYW1lc3BhY2VSZXNvbHV0aW9uKCk7Ci0gICAgYm9vbCBoYXNVbmtub3duUHNldWRvRWxlbWVu
dHMoKSBjb25zdDsKKyAgICBib29sIGhhc05vbnF1ZXJ5YWJsZVNlbGVjdG9yKCkgY29uc3Q7CiAK
ICAgICBTdHJpbmcgc2VsZWN0b3JzVGV4dCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAK
aW5kZXggZjc1ZjRmNDI1YmRmZjEwMWNmNzY5NDFkNmEyY2M1OWVlMTIxZjJjMS4uMzgzOTg3Yzhm
NmJlYzRmMzc3YzdjOTI1ZTkzZTM4N2Q2ZDIyZmM0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApA
QCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUqIHJ1bGUs
IHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgsIEFkZFJ1bGVGbGFncyBhZGRSCiAgICAgICAgIGFkZFRv
UnVsZVNldChzZWxlY3Rvci0+dmFsdWUoKS5pbXBsKCksIG1fY2xhc3NSdWxlcywgcnVsZURhdGEp
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChzZWxlY3Rvci0+aXNVbmtub3duUHNl
dWRvRWxlbWVudCgpKSB7CisgICAgaWYgKHNlbGVjdG9yLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQo
KSB8fCBzZWxlY3Rvci0+aXNXZWJLaXRDdXN0b21Qc2V1ZG9FbGVtZW50KCkpIHsKICAgICAgICAg
YWRkVG9SdWxlU2V0KHNlbGVjdG9yLT52YWx1ZSgpLmltcGwoKSwgbV9zaGFkb3dQc2V1ZG9FbGVt
ZW50UnVsZXMsIHJ1bGVEYXRhKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggYjY2MDUwZmU0NzUwNzIzZDcxNGFjNTk2MGQ4
ODMyZmRkOGI1MzA2ZC4uNTg4MTU0MTIwN2QzNDlkNDJhZjFjNTZjNTUyODVhZTMyZmYxYjgxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTQ0Niw3ICs0NDYsNyBA
QCBTZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yTWF0Y2ggU2VsZWN0b3JDaGVja2VyOjpjaGVja1Nl
bGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlYwogICAgICAgICByZXR1cm4gU2VsZWN0b3JGYWlsc0xv
Y2FsbHk7CiAKICAgICBpZiAoY29udGV4dC5zZWxlY3Rvci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvRWxlbWVudCkgewotICAgICAgICBpZiAoY29udGV4dC5zZWxlY3Rvci0+aXNVbmtu
b3duUHNldWRvRWxlbWVudCgpKSB7CisgICAgICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5pc0N1
c3RvbVBzZXVkb0VsZW1lbnQoKSB8fCBjb250ZXh0LnNlbGVjdG9yLT5pc1dlYktpdEN1c3RvbVBz
ZXVkb0VsZW1lbnQoKSkgewogICAgICAgICAgICAgaWYgKGNvbnRleHQuZWxlbWVudC0+c2hhZG93
UHNldWRvSWQoKSAhPSBjb250ZXh0LnNlbGVjdG9yLT52YWx1ZSgpKQogICAgICAgICAgICAgICAg
IHJldHVybiBTZWxlY3RvckZhaWxzTG9jYWxseTsKICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCA0ZDkzODMwZWQxYTMwMDNiODYyMmUyZWVlZDUxMGU2MTQ5ZWIyN2Iz
Li5lMGVjZTg1NjY0YTVkNmEyYmRhYzFmMmQ2MDNjYzk4MjcwNTkyOTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCkBAIC0xMzU5LDcgKzEzNTksNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIAogdm9pZCBFbGVtZW50OjpzZXRTaGFkb3dQc2V1
ZG9JZChjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBp
ZiAoIUNTU1NlbGVjdG9yOjppc1Vua25vd25Qc2V1ZG9UeXBlKGlkKSkgeworICAgIGlmICghQ1NT
U2VsZWN0b3I6OmlzV2ViS2l0Q3VzdG9tUHNldWRvVHlwZShpZCkgJiYgIUNTU1NlbGVjdG9yOjpp
c0N1c3RvbVBzZXVkb1R5cGUoaWQpKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3Rv
clF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAppbmRleCA0
NDQ5MzAzODJmZTFjNDc4YTQ5YmZjNWNkMGIyZTFlYzdkYjlhNzhkLi4wZTgyMTYxOTdhYjFjYzFm
NGIwMGNmMDgyOWJkNGNiMjZjMDIzZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnku
Y3BwCkBAIC0xODAsNyArMTgwLDcgQEAgU2VsZWN0b3JRdWVyeSogU2VsZWN0b3JRdWVyeUNhY2hl
OjphZGQoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3RvcnMsIERvY3VtZW50KgogICAgIENTU1Nl
bGVjdG9yTGlzdCBzZWxlY3Rvckxpc3Q7CiAgICAgcGFyc2VyLnBhcnNlU2VsZWN0b3Ioc2VsZWN0
b3JzLCBzZWxlY3Rvckxpc3QpOwogCi0gICAgaWYgKCFzZWxlY3Rvckxpc3QuZmlyc3QoKSB8fCBz
ZWxlY3Rvckxpc3QuaGFzVW5rbm93blBzZXVkb0VsZW1lbnRzKCkpIHsKKyAgICBpZiAoIXNlbGVj
dG9yTGlzdC5maXJzdCgpIHx8IHNlbGVjdG9yTGlzdC5oYXNOb25xdWVyeWFibGVTZWxlY3Rvcigp
KSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDc5MDA2M2Q4MjE1NTRhODBmMTU1ZTZmZDU1MTg3ZTljN2Q2MTUzNTIuLjE1YTcyNTlm
NDZiYjNmYTc1NzFkNWFmNDc5ZWMxMjI1YTAwYjMzMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMi0xMS0wNSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW1NoYWRvd10gVXNpbmcgaXNVbmtub3duUHNldWRvRWxlbWVudCgpIGZvciBzaGFkb3cg
cHNldWRvIGlkIHNlZW1zIGNvbmZ1c2luZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTAwODI2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LW5lc3RlZC1wc2V1ZG8t
aWQuaHRtbDogRml4ZWQgYSB0ZXN0Y2FzZSBzbyB0aGF0IHNoYWRvd1BzZXVkb0lkIHN0YXJ0cyB3
aXRoICd4LScuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1wc2V1ZG8taWQtZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1wc2V1
ZG8taWQuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMDUgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeGVkIGZsYWt5IGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0
cHJlcXVlc3QtcmVjdXJzaXZlLXN5bmMtZXZlbnQuaHRtbC4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBzZXVkby1pZC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLmh0bWwKaW5kZXgg
NGRjMmZiMDRhYzM0N2RlMTc0OGM2YzNmODA4MjhkNTRjMjJmYzEyOS4uMzZlMDVmNGExNjQwNmQw
MTkzYTQwYmIzZmMyMDQxNmEyMmVmMTZhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLmh0bWwKQEAgLTQsMTUgKzQs
MTUgQEAKIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgogPHN0eWxlPgogCi1wOjotc2hhZG93LWNoaWxkIHsKK3A6Ongtc2hhZG93LWNoaWxk
IHsKICAgY29sb3I6IHJlZDsKIH0KIAotYTo6LW5lc3RlZC1zaGFkb3ctY2hpbGQgeworYTo6eC1u
ZXN0ZWQtc2hhZG93LWNoaWxkIHsKICAgY29sb3I6IGJsdWU7CiB9CiAKLXA6Oi1zaGFkb3ctY2hp
bGQ6Oi1uZXN0ZWQtc2hhZG93LWNoaWxkIHsKK3A6Ongtc2hhZG93LWNoaWxkOjp4LW5lc3RlZC1z
aGFkb3ctY2hpbGQgewogICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKIH0KIApAQCAtMzksOSAr
MzksOSBAQCBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgZmFpbCgiWW91IG5lZWQgd2luZG93
LmludGVybmFscyB0byBydW4gdGhpcyB0ZXN0Iik7CiAgICAgCiB2YXIgaG9zdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJob3N0Iik7Ci12YXIgdHVwbGUgPSBidWlsZFNoYWRvd1dpdGhPbmVD
aGlsZChob3N0LCAiYSIsICItc2hhZG93LWNoaWxkIik7Cit2YXIgdHVwbGUgPSBidWlsZFNoYWRv
d1dpdGhPbmVDaGlsZChob3N0LCAiYSIsICJ4LXNoYWRvdy1jaGlsZCIpOwogc2hvdWxkQmUoIndp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHR1cGxlLnNoYWRvd0NoaWxkKS5jb2xvciIsICIncmdiKDI1
NSwgMCwgMCknIik7Ci12YXIgc2hhZG93VHVwbGUgPSBidWlsZFNoYWRvd1dpdGhPbmVDaGlsZCh0
dXBsZS5zaGFkb3dDaGlsZCwgImIiLCAiLW5lc3RlZC1zaGFkb3ctY2hpbGQiKTsKK3ZhciBzaGFk
b3dUdXBsZSA9IGJ1aWxkU2hhZG93V2l0aE9uZUNoaWxkKHR1cGxlLnNoYWRvd0NoaWxkLCAiYiIs
ICJ4LW5lc3RlZC1zaGFkb3ctY2hpbGQiKTsKIHNob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShzaGFkb3dUdXBsZS5zaGFkb3dDaGlsZCkuY29sb3IiLCAiJ3JnYigwLCAwLCAyNTUpJyIp
Owogc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHNoYWRvd1R1cGxlLnNoYWRvd0No
aWxkKS5iYWNrZ3JvdW5kQ29sb3IiLCAiJ3JnYigwLCAxMjgsIDApJyIpOwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1pZC1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1wc2V1ZG8taWQtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZDM5Zjg0Njc3MzZjYWZhMDE3YjZmOGVkNTIyZjdiNGRmNjI3
YzU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1wc2V1ZG8taWQtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8ZGl2IGlkPSJob3N0MSI+PGRpdiBzdHlsZT0iY29sb3I6cmVkIj5TSEFET1cgMTwv
ZGl2PjwvZGl2PgorPGRpdiBpZD0iaG9zdDIiPjxkaXY+U0hBRE9XIDI8L2Rpdj48L2Rpdj4KKwor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1wc2V1ZG8taWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctcHNldWRvLWlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMThmMTY3OTIyMDNlYTViMjY1ZDIzOWM2ZDUz
ZmNmNjQ3OTMzZThhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3No
YWRvdy9zaGFkb3ctcHNldWRvLWlkLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorZGl2Ojp4LXNoYWRvdyB7CisgICAgY29sb3I6
IHJlZDsKK30KKworZGl2OjotdGVzdCB7CisgICAgY29sb3I6IGJsdWU7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPGRpdiBpZD0iaG9z
dDEiPjwvZGl2PgorPGRpdiBpZD0iaG9zdDIiPjwvZGl2PgorCis8c2NyaXB0PgordmFyIHNoYWRv
d1Jvb3QxID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdDEpOwordmFyIGRpdjEgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2RpdjEuaW5uZXJIVE1MID0gIlNIQURPVyAxIjsKK2lu
dGVybmFscy5zZXRTaGFkb3dQc2V1ZG9JZChkaXYxLCAieC1zaGFkb3ciKTsKKwordmFyIHNoYWRv
d1Jvb3QyID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdDIpOwordmFyIGRpdjIgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2RpdjIuaW5uZXJIVE1MID0gIlNIQURPVyAyIjsKK2lu
dGVybmFscy5zZXRTaGFkb3dQc2V1ZG9JZChkaXYxLCAiLXRlc3QiKTsKKzwvc2NyaXB0PgorCis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172474</attachid>
            <date>2012-11-05 20:03:42 -0800</date>
            <delta_ts>2012-11-06 02:44:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100826-20121106130155.patch</filename>
            <type>text/plain</type>
            <size>18268</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODExYjNjZmI5YWVkMzQx
Y2FiNjVlYzhiMTdkODA2Yjg3ZWMwOGJhOS4uOGZhZGNhNWQxYzI1ZGUzYjkzNzc3NDE4ZTVjMWE3
Y2YyZDU1OTY3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDEyLTExLTA1ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBV
c2luZyBpc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkgZm9yIHNoYWRvdyBwc2V1ZG8gaWQgc2VlbXMg
Y29uZnVzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDA4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBXZSB1c2VkIGlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSBmb3IgdGhlc2UgMyBtZWFuaW5nczog
MSkgdGhlIGVsZW1lbnQgaXMgYSBjdXN0b20gcHNldWRvLWVsZW1lbnQgKHN0YXJ0aW5nIHdpdGgg
J3gtJyksCisgICAgICAgIDIpIHRoZSBlbGVtZW50IGlzIGEgd2Via2l0IGN1c3RvbSBwc2V1ZG8t
ZWxlbWVudCAoc3RhcnRpbmcgd2l0aCAnLXdlYmtpdC0nKSwgYW5kIDMpIHRoZSBlbGVtZW50IGhh
cyBhbiB1bmtub3duIHR5cGUuCisgICAgICAgIFdlIHdvdWxkIGxpa2UgdG8gZGlzdGluZ3Vpc2gg
dGhlbSB3aGVuIHBhcnNpbmcgQ1NTU2VsZWN0b3IgdHlwZXMuIEFsc28sIHdlIGRpc2FibGUgdXNp
bmcgKDMpIHR5cGUgZm9yIHVzaW5nCisgICAgICAgIHNoYWRvd1BzZXVkb0lkLgorCisgICAgICAg
IEluIHRoaXMgcGF0Y2gsIHdlIGFsbG93IHVzaW5nIFdlYktpdEN1c3RvbVBzZXVkb0VsZW1lbnQg
aW4gQXV0aG9yU2hhZG93Um9vdCwgYW5kIEN1c3RvbVBzZXVkb0VsZW1lbnQgaW4KKyAgICAgICAg
VUFTaGFkb3dSb290LiBIb3dldmVyLCB3ZSB3aWxsIGRpc2FibGUgdGhlbSBsYXRlci4KKworICAg
ICAgICBUZXN0OiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1pZC5odG1sCisKKyAgICAg
ICAgKiBjc3MvQ1NTR3JhbW1hci55LmluOiBOb3cgd2UgY2FuIGRpc2NhcmQgVU5LTk9XTiB0eXBl
LiBJdCBzaG91bGQgbm90IG1hdGNoIGFueXRoaW5nLgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVs
ZW1lbnROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVy
cyk6CisgICAgICAgICogY3NzL0NTU1BhcnNlclZhbHVlcy5oOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyU2VsZWN0b3I6OmlzQ3VzdG9tUHNldWRvRWxlbWVudCk6CisgICAgICAgIChDU1NQ
YXJzZXJTZWxlY3Rvcik6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpwc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
ZWxlY3Rvcjo6cGFyc2VQc2V1ZG9UeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9y
Ojppc0N1c3RvbVBzZXVkb1R5cGUpOiBSZXR1cm5zIHRydWUgaWYgdGhlIHR5cGUgaXMgUHNldWRv
VXNlckFnZW50Q3VzdG9tRWxlbWVudCBvciBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50LgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OmV4dHJhY3RQc2V1ZG9UeXBlKToKKyAgICAgICAg
KiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKENTU1NlbGVjdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1NlbGVjdG9yOjppc0N1c3RvbVBzZXVkb0VsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3Rvckhhc0ludmFsaWRTZWxlY3RvckZ1bmN0b3I6Om9wZXJhdG9yKCkpOiBXZSB3
aWxsIHJlamVjdCBhbGwgc2VsZWN0b3JzIHdoaWNoIHdlcmUganVkZ2VkIGFzCisgICAgICAgIFVO
S05PV04gYmVmb3JlLiBpLmUuIEl0IGNvbnRpYW5zIGFsbCB0aHJlZSB0eXBlcyBmb3Igbm93Lgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JMaXN0OjpoYXNJbnZhbGlkU2VsZWN0b3IpOiBS
ZW5hbWVkLgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvckxpc3QuaDoKKyAgICAgICAgKENTU1Nl
bGVjdG9yTGlzdCk6CisgICAgICAgICogY3NzL1J1bGVTZXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UnVsZVNldDo6YWRkUnVsZSk6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3IpOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldFNo
YWRvd1BzZXVkb0lkKToKKyAgICAgICAgKiBkb20vU2VsZWN0b3JRdWVyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3RvclF1ZXJ5Q2FjaGU6OmFkZCk6CisKIDIwMTItMTEtMDUgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBEb2N1bWVu
dDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpIG5vbi12aXJ0dWFsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1t
YXIueS5pbgppbmRleCAyMjk1N2M2ODk2ZWFlZmE5ZjEzYzFiNWI0ZjU5ZTkxNmRiYWNjMDRmLi45
ZWVkY2MzOTQ4NWM1NGZjM2QxNzBjZGU4MWI4OWZlN2M5MTkxYTRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NHcmFtbWFyLnkuaW4KQEAgLTEzMDcsNyArMTMwNyw5IEBAIHBzZXVkbzoKICAgICAgICAgJDMu
bG93ZXIoKTsKICAgICAgICAgJCQtPnNldFZhbHVlKCQzKTsKICAgICAgICAgLy8gRklYTUU6IFRo
aXMgY2FsbCBpcyBuZWVkZWQgdG8gZm9yY2Ugc2VsZWN0b3IgdG8gY29tcHV0ZSB0aGUgcHNldWRv
VHlwZSBlYXJseSBlbm91Z2guCi0gICAgICAgICQkLT5wc2V1ZG9UeXBlKCk7CisgICAgICAgIENT
U1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHR5cGUgPSAkJC0+cHNldWRvVHlwZSgpOworICAgICAgICBp
ZiAodHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bikKKyAgICAgICAgICAgICQkID0g
MDsKICAgICB9CiAgICAgLy8gdXNlIGJ5IDotd2Via2l0LWFueS4KICAgICAvLyBGSVhNRTogc2hv
dWxkIHdlIHN1cHBvcnQgZ2VuZXJpYyBzZWxlY3RvcnMgaGVyZSBvciBqdXN0IHNpbXBsZV9zZWxl
Y3RvcnM/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGIxNjFhZWNhYzIzODgyNzI3MDAz
MTg3YjA2ODBiY2ViYzA3ZjFjZWIuLmFkNDI3OGU3ZTIxNThiYTVlYTc1OWUzZmRlYjFkMTI1MmUz
YmYwMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0xMDA5Miw3ICsxMDA5Miw3IEBA
IHZvaWQgQ1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0
b21pY1N0cmluZyYgbmFtZXNwYWNlUHJlCiB7CiAgICAgQXRvbWljU3RyaW5nIGRldGVybWluZWRO
YW1lc3BhY2UgPSBuYW1lc3BhY2VQcmVmaXggIT0gbnVsbEF0b20gJiYgbV9zdHlsZVNoZWV0ID8g
bV9zdHlsZVNoZWV0LT5kZXRlcm1pbmVOYW1lc3BhY2UobmFtZXNwYWNlUHJlZml4KSA6IG1fZGVm
YXVsdE5hbWVzcGFjZTsKICAgICBRdWFsaWZpZWROYW1lIHRhZyA9IFF1YWxpZmllZE5hbWUobmFt
ZXNwYWNlUHJlZml4LCBlbGVtZW50TmFtZSwgZGV0ZXJtaW5lZE5hbWVzcGFjZSk7Ci0gICAgaWYg
KCFzcGVjaWZpZXJzLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkpIHsKKyAgICBpZiAoIXNwZWNp
ZmllcnMtPmlzQ3VzdG9tUHNldWRvRWxlbWVudCgpKSB7CiAgICAgICAgIHNwZWNpZmllcnMtPnNl
dFRhZyh0YWcpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTAxMDEsNyArMTAxMDEsNyBA
QCB2b2lkIENTU1BhcnNlcjo6dXBkYXRlU3BlY2lmaWVyc1dpdGhFbGVtZW50TmFtZShjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWVzcGFjZVByZQogICAgIENTU1BhcnNlclNlbGVjdG9yKiBoaXN0b3J5
ID0gc3BlY2lmaWVyczsKICAgICB3aGlsZSAoaGlzdG9yeS0+dGFnSGlzdG9yeSgpKSB7CiAgICAg
ICAgIGhpc3RvcnkgPSBoaXN0b3J5LT50YWdIaXN0b3J5KCk7Ci0gICAgICAgIGlmIChoaXN0b3J5
LT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkgfHwgaGlzdG9yeS0+aGFzU2hhZG93RGVzY2VuZGFu
dCgpKQorICAgICAgICBpZiAoaGlzdG9yeS0+aXNDdXN0b21Qc2V1ZG9FbGVtZW50KCkgfHwgaGlz
dG9yeS0+aGFzU2hhZG93RGVzY2VuZGFudCgpKQogICAgICAgICAgICAgbGFzdFNoYWRvd0Rlc2Nl
bmRhbnQgPSBoaXN0b3J5OwogICAgIH0KIApAQCAtMTAxMjAsMTIgKzEwMTIwLDEyIEBAIHZvaWQg
Q1NTUGFyc2VyOjp1cGRhdGVTcGVjaWZpZXJzV2l0aEVsZW1lbnROYW1lKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZXNwYWNlUHJlCiAKIENTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXI6OnVwZGF0
ZVNwZWNpZmllcnMoQ1NTUGFyc2VyU2VsZWN0b3IqIHNwZWNpZmllcnMsIENTU1BhcnNlclNlbGVj
dG9yKiBuZXdTcGVjaWZpZXIpCiB7Ci0gICAgaWYgKG5ld1NwZWNpZmllci0+aXNVbmtub3duUHNl
dWRvRWxlbWVudCgpKSB7CisgICAgaWYgKG5ld1NwZWNpZmllci0+aXNDdXN0b21Qc2V1ZG9FbGVt
ZW50KCkpIHsKICAgICAgICAgLy8gVW5rbm93biBwc2V1ZG8gZWxlbWVudCBhbHdheXMgZ29lcyBh
dCB0aGUgdG9wIG9mIHNlbGVjdG9yIGNoYWluLgogICAgICAgICBuZXdTcGVjaWZpZXItPmFwcGVu
ZFRhZ0hpc3RvcnkoQ1NTU2VsZWN0b3I6OlNoYWRvd0Rlc2NlbmRhbnQsIHNpbmtGbG9hdGluZ1Nl
bGVjdG9yKHNwZWNpZmllcnMpKTsKICAgICAgICAgcmV0dXJuIG5ld1NwZWNpZmllcjsKICAgICB9
Ci0gICAgaWYgKHNwZWNpZmllcnMtPmlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSkgeworICAgIGlm
IChzcGVjaWZpZXJzLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSkgewogICAgICAgICAvLyBTcGVj
aWZpZXJzIGZvciB1bmtub3duIHBzZXVkbyBlbGVtZW50IGdvIHJpZ2h0IGJlaGluZCBpdCBpbiB0
aGUgY2hhaW4uCiAgICAgICAgIHNwZWNpZmllcnMtPmluc2VydFRhZ0hpc3RvcnkoQ1NTU2VsZWN0
b3I6OlN1YlNlbGVjdG9yLCBzaW5rRmxvYXRpbmdTZWxlY3RvcihuZXdTcGVjaWZpZXIpLCBDU1NT
ZWxlY3Rvcjo6U2hhZG93RGVzY2VuZGFudCk7CiAgICAgICAgIHJldHVybiBzcGVjaWZpZXJzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCmluZGV4IGQzZmM0MDM1MzAyOWZmMGEyN2Q5
YWU1YjlkNGMwNmE5YzdlOTIyODIuLjYwOTg2YTgzMGNlOGRmMTQ2OGVlMWYwNzRmMDM1NGQxMzUz
M2YzNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKQEAgLTE5MSw3ICsxOTEs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVjdG9yKENTU1NlbGVjdG9yVmVj
dG9yJik7CiAKICAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwc2V1ZG9UeXBlKCkgY29uc3Qg
eyByZXR1cm4gbV9zZWxlY3Rvci0+cHNldWRvVHlwZSgpOyB9Ci0gICAgYm9vbCBpc1Vua25vd25Q
c2V1ZG9FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvci0+aXNVbmtub3duUHNldWRv
RWxlbWVudCgpOyB9CisgICAgYm9vbCBpc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBtX3NlbGVjdG9yLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKTsgfQorCiAgICAgYm9vbCBp
c1NpbXBsZSgpIGNvbnN0IHsgcmV0dXJuICFtX3RhZ0hpc3RvcnkgJiYgbV9zZWxlY3Rvci0+aXNT
aW1wbGUoKTsgfQogICAgIGJvb2wgaGFzU2hhZG93RGVzY2VuZGFudCgpIGNvbnN0OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCBkMmJhNzU2Nzc3MjIzZWNiNWZmY2VlYjFmNjhh
NTQxYzMyN2UyZjFmLi5iYTNhMzUyZDk3Y2YzMWQ2ZTBlNWYxOTU0OTU3Zjk3MTE1ZDNmMDZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTIxOCw2ICsyMTgsOCBAQCBQc2V1ZG9J
ZCBDU1NTZWxlY3Rvcjo6cHNldWRvSWQoUHNldWRvVHlwZSB0eXBlKQogICAgIGNhc2UgUHNldWRv
UmlnaHRQYWdlOgogICAgIGNhc2UgUHNldWRvSW5SYW5nZToKICAgICBjYXNlIFBzZXVkb091dE9m
UmFuZ2U6CisgICAgY2FzZSBQc2V1ZG9Vc2VyQWdlbnRDdXN0b21FbGVtZW50OgorICAgIGNhc2Ug
UHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudDoKICAgICAgICAgcmV0dXJuIE5PUFNFVURPOwogICAg
IGNhc2UgUHNldWRvTm90UGFyc2VkOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTM4NywxMiArMzg5LDIyIEBAIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIENTU1NlbGVjdG9yOjpw
YXJzZVBzZXVkb1R5cGUoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQogICAgICAgICByZXR1cm4g
UHNldWRvVW5rbm93bjsKICAgICBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBDU1NTZWxlY3Rv
cjo6UHNldWRvVHlwZT4qIG5hbWVUb1BzZXVkb1R5cGUgPSBuYW1lVG9Qc2V1ZG9UeXBlTWFwKCk7
CiAgICAgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGU+
OjppdGVyYXRvciBzbG90ID0gbmFtZVRvUHNldWRvVHlwZS0+ZmluZChuYW1lLmltcGwoKSk7Ci0g
ICAgcmV0dXJuIHNsb3QgPT0gbmFtZVRvUHNldWRvVHlwZS0+ZW5kKCkgPyBQc2V1ZG9Vbmtub3du
IDogc2xvdC0+dmFsdWU7CisKKyAgICBpZiAoc2xvdCAhPSBuYW1lVG9Qc2V1ZG9UeXBlLT5lbmQo
KSkKKyAgICAgICAgcmV0dXJuIHNsb3QtPnZhbHVlOworCisgICAgaWYgKG5hbWUuc3RhcnRzV2l0
aCgiLXdlYmtpdC0iKSkKKyAgICAgICAgcmV0dXJuIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ7
CisgICAgaWYgKG5hbWUuc3RhcnRzV2l0aCgieC0iKSkKKyAgICAgICAgcmV0dXJuIFBzZXVkb1Vz
ZXJBZ2VudEN1c3RvbUVsZW1lbnQ7CisKKyAgICByZXR1cm4gUHNldWRvVW5rbm93bjsKIH0KIAot
Ym9vbCBDU1NTZWxlY3Rvcjo6aXNVbmtub3duUHNldWRvVHlwZShjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpCitib29sIENTU1NlbGVjdG9yOjppc0N1c3RvbVBzZXVkb1R5cGUoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lKQogewotICAgIHJldHVybiBwYXJzZVBzZXVkb1R5cGUobmFtZSkgPT0gUHNl
dWRvVW5rbm93bjsKKyAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSB0eXBlID0gcGFyc2VQc2V1
ZG9UeXBlKG5hbWUpOworICAgIHJldHVybiB0eXBlID09IFBzZXVkb1VzZXJBZ2VudEN1c3RvbUVs
ZW1lbnQgfHwgdHlwZSA9PSBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50OwogfQogCiB2b2lkIENT
U1NlbGVjdG9yOjpleHRyYWN0UHNldWRvVHlwZSgpIGNvbnN0CkBAIC00MjAsNiArNDMyLDggQEAg
dm9pZCBDU1NTZWxlY3Rvcjo6ZXh0cmFjdFBzZXVkb1R5cGUoKSBjb25zdAogICAgIGNhc2UgUHNl
dWRvU2Nyb2xsYmFyVHJhY2s6CiAgICAgY2FzZSBQc2V1ZG9TY3JvbGxiYXJUcmFja1BpZWNlOgog
ICAgIGNhc2UgUHNldWRvU2VsZWN0aW9uOgorICAgIGNhc2UgUHNldWRvVXNlckFnZW50Q3VzdG9t
RWxlbWVudDoKKyAgICBjYXNlIFBzZXVkb1dlYktpdEN1c3RvbUVsZW1lbnQ6CiAgICAgICAgIGVs
ZW1lbnQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFBzZXVkb1Vua25vd246CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDVjYTI0ZjRlMDMxZGY1M2IxMmUxMmNjMjUxYmQz
OTQzOTRjODgyZGQuLmFlZTUwNzRkNzVmN2JiM2Y2ZTQxMjk1ZGQxYmFhYzA5NzYzMDg0NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0xNTQsNiArMTU0LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogI2VuZGlmCiAgICAgICAgICAgICBQc2V1ZG9JblJhbmdlLAogICAgICAgICAgICAg
UHNldWRvT3V0T2ZSYW5nZSwKKyAgICAgICAgICAgIFBzZXVkb1VzZXJBZ2VudEN1c3RvbUVsZW1l
bnQsCisgICAgICAgICAgICBQc2V1ZG9XZWJLaXRDdXN0b21FbGVtZW50LAogICAgICAgICB9Owog
CiAgICAgICAgIGVudW0gTWFyZ2luQm94VHlwZSB7CkBAIC0xODMsNyArMTg1LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB9CiAKICAgICAgICAgc3RhdGljIFBzZXVkb1R5cGUgcGFy
c2VQc2V1ZG9UeXBlKGNvbnN0IEF0b21pY1N0cmluZyYpOwotICAgICAgICBzdGF0aWMgYm9vbCBp
c1Vua25vd25Qc2V1ZG9UeXBlKGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgICAgICBzdGF0aWMg
Ym9vbCBpc0N1c3RvbVBzZXVkb1R5cGUoY29uc3QgQXRvbWljU3RyaW5nJik7ICAgICAgICAKICAg
ICAgICAgc3RhdGljIFBzZXVkb0lkIHBzZXVkb0lkKFBzZXVkb1R5cGUpOwogCiAgICAgICAgIC8v
IFNlbGVjdG9ycyBhcmUga2VwdCBpbiBhbiBhcnJheSBieSBDU1NTZWxlY3Rvckxpc3QuIFRoZSBu
ZXh0IGNvbXBvbmVudCBvZiB0aGUgc2VsZWN0b3IgaXMKQEAgLTIxMSw2ICsyMTMsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBtYXRjaGVzUHNldWRvRWxlbWVudCgpIGNv
bnN0OwogICAgICAgICBib29sIGlzVW5rbm93blBzZXVkb0VsZW1lbnQoKSBjb25zdDsKKyAgICAg
ICAgYm9vbCBpc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSBjb25zdDsKICAgICAgICAgYm9vbCBpc1Np
YmxpbmdTZWxlY3RvcigpIGNvbnN0OwogICAgICAgICBib29sIGlzQXR0cmlidXRlU2VsZWN0b3Io
KSBjb25zdDsKIApAQCAtMjkxLDYgKzI5NCwxMSBAQCBpbmxpbmUgYm9vbCBDU1NTZWxlY3Rvcjo6
aXNVbmtub3duUHNldWRvRWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbWF0Y2ggPT0gUHNl
dWRvRWxlbWVudCAmJiBtX3BzZXVkb1R5cGUgPT0gUHNldWRvVW5rbm93bjsKIH0KIAoraW5saW5l
IGJvb2wgQ1NTU2VsZWN0b3I6OmlzQ3VzdG9tUHNldWRvRWxlbWVudCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fbWF0Y2ggPT0gUHNldWRvRWxlbWVudCAmJiAobV9wc2V1ZG9UeXBlID09IFBzZXVk
b1VzZXJBZ2VudEN1c3RvbUVsZW1lbnQgfHwgbV9wc2V1ZG9UeXBlID09IFBzZXVkb1dlYktpdEN1
c3RvbUVsZW1lbnQpOworfQorCiBpbmxpbmUgYm9vbCBDU1NTZWxlY3Rvcjo6aXNTaWJsaW5nU2Vs
ZWN0b3IoKSBjb25zdAogewogICAgIFBzZXVkb1R5cGUgdHlwZSA9IHBzZXVkb1R5cGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKaW5kZXggNTZkMjg1OWQyZGQ4NWZmZTUx
OWQwNTczNGU5MzdkYWRjOTBmNTQyMS4uNmE4ZGI0ZjNhMjBjYmEwMGVlMThlMmFhMmViZTY5YjQ2
ZmZiN2RjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAKQEAgLTE5Nywx
NyArMTk3LDE3IEBAIGJvb2wgQ1NTU2VsZWN0b3JMaXN0OjpzZWxlY3RvcnNOZWVkTmFtZXNwYWNl
UmVzb2x1dGlvbigpCiAgICAgcmV0dXJuIGZvckVhY2hTZWxlY3RvcihmdW5jdG9yLCB0aGlzKTsK
IH0KIAotY2xhc3MgU2VsZWN0b3JIYXNVbmtub3duUHNldWRvRWxlbWVudEZ1bmN0b3IgeworY2xh
c3MgU2VsZWN0b3JIYXNJbnZhbGlkU2VsZWN0b3JGdW5jdG9yIHsKIHB1YmxpYzoKICAgICBib29s
IG9wZXJhdG9yKCkoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IHNlbGVjdG9yLT5pc1Vua25vd25Qc2V1ZG9FbGVtZW50KCk7CisgICAgICAgIHJldHVybiBzZWxl
Y3Rvci0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpIHx8IHNlbGVjdG9yLT5pc0N1c3RvbVBzZXVk
b0VsZW1lbnQoKTsKICAgICB9CiB9OwogCi1ib29sIENTU1NlbGVjdG9yTGlzdDo6aGFzVW5rbm93
blBzZXVkb0VsZW1lbnRzKCkgY29uc3QKK2Jvb2wgQ1NTU2VsZWN0b3JMaXN0OjpoYXNJbnZhbGlk
U2VsZWN0b3IoKSBjb25zdAogewotICAgIFNlbGVjdG9ySGFzVW5rbm93blBzZXVkb0VsZW1lbnRG
dW5jdG9yIGZ1bmN0b3I7CisgICAgU2VsZWN0b3JIYXNJbnZhbGlkU2VsZWN0b3JGdW5jdG9yIGZ1
bmN0b3I7CiAgICAgcmV0dXJuIGZvckVhY2hTZWxlY3RvcihmdW5jdG9yLCB0aGlzKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5oCmluZGV4IGQyY2UxMTM0YzYzZjlmNjc2MWQ3
YmNlNmIzMGI3ZDE5NjZmZGI4YmQuLjgzZWNmOWIzZjBkYmU3NWE3MjU1YWZiZjYxNjU1MTExMDhi
MjViMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmgKQEAgLTU5LDcgKzU5LDcg
QEAgcHVibGljOgogICAgIH0KIAogICAgIGJvb2wgc2VsZWN0b3JzTmVlZE5hbWVzcGFjZVJlc29s
dXRpb24oKTsKLSAgICBib29sIGhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cygpIGNvbnN0OworICAg
IGJvb2wgaGFzSW52YWxpZFNlbGVjdG9yKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgc2VsZWN0b3Jz
VGV4dCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggZjc1ZjRmNDI1YmRmZjEw
MWNmNzY5NDFkNmEyY2M1OWVlMTIxZjJjMS4uZTkyZDE3NjhiMjk4ZDdhZTg5NmMwN2JlMjg4N2Fh
NzQxYzVhNmQzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMjI5LDcgKzIyOSw3IEBAIHZv
aWQgUnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5k
ZXgsIEFkZFJ1bGVGbGFncyBhZGRSCiAgICAgICAgIGFkZFRvUnVsZVNldChzZWxlY3Rvci0+dmFs
dWUoKS5pbXBsKCksIG1fY2xhc3NSdWxlcywgcnVsZURhdGEpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIGlmIChzZWxlY3Rvci0+aXNVbmtub3duUHNldWRvRWxlbWVudCgpKSB7CisgICAg
aWYgKHNlbGVjdG9yLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSkgewogICAgICAgICBhZGRUb1J1
bGVTZXQoc2VsZWN0b3ItPnZhbHVlKCkuaW1wbCgpLCBtX3NoYWRvd1BzZXVkb0VsZW1lbnRSdWxl
cywgcnVsZURhdGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcAppbmRleCBiNjYwNTBmZTQ3NTA3MjNkNzE0YWM1OTYwZDg4MzJmZGQ4
YjUzMDZkLi5mMWE0OGVmMGUxZWM1OTk1ZmFhN2IzN2NiNWUxYTliYTA3MjdkZGVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcApAQCAtNDQ2LDcgKzQ0Niw3IEBAIFNlbGVj
dG9yQ2hlY2tlcjo6U2VsZWN0b3JNYXRjaCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2VsZWN0b3Io
Y29uc3QgU2VsZWN0b3JDaGVjCiAgICAgICAgIHJldHVybiBTZWxlY3RvckZhaWxzTG9jYWxseTsK
IAogICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9FbGVtZW50KSB7Ci0gICAgICAgIGlmIChjb250ZXh0LnNlbGVjdG9yLT5pc1Vua25vd25Qc2V1
ZG9FbGVtZW50KCkpIHsKKyAgICAgICAgaWYgKGNvbnRleHQuc2VsZWN0b3ItPmlzQ3VzdG9tUHNl
dWRvRWxlbWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoY29udGV4dC5lbGVtZW50LT5zaGFkb3dQ
c2V1ZG9JZCgpICE9IGNvbnRleHQuc2VsZWN0b3ItPnZhbHVlKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIFNlbGVjdG9yRmFpbHNMb2NhbGx5OwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IDRkOTM4MzBlZDFhMzAwM2I4NjIyZTJlZWVkNTEwZTYxNDllYjI3YjMu
LmQzYzEwNTA5ODhjMmEzYzRkNzFiMTAxMDQ1NTM0ODA5MGFlNTVhNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudC5jcHAKQEAgLTEzNTksNyArMTM1OSw3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogCiB2b2lkIEVsZW1lbnQ6OnNldFNoYWRvd1BzZXVk
b0lkKGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlm
ICghQ1NTU2VsZWN0b3I6OmlzVW5rbm93blBzZXVkb1R5cGUoaWQpKSB7CisgICAgaWYgKCFDU1NT
ZWxlY3Rvcjo6aXNDdXN0b21Qc2V1ZG9UeXBlKGlkKSkgewogICAgICAgICBlYyA9IFNZTlRBWF9F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5j
cHAKaW5kZXggNDQ0OTMwMzgyZmUxYzQ3OGE0OWJmYzVjZDBiMmUxZWM3ZGI5YTc4ZC4uZmExNDlj
MDdhMzdjOGQyYTAzOGFlMjUxMTE3NTRjYWMzYWU1ZDI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxl
Y3RvclF1ZXJ5LmNwcApAQCAtMTgwLDcgKzE4MCw3IEBAIFNlbGVjdG9yUXVlcnkqIFNlbGVjdG9y
UXVlcnlDYWNoZTo6YWRkKGNvbnN0IEF0b21pY1N0cmluZyYgc2VsZWN0b3JzLCBEb2N1bWVudCoK
ICAgICBDU1NTZWxlY3Rvckxpc3Qgc2VsZWN0b3JMaXN0OwogICAgIHBhcnNlci5wYXJzZVNlbGVj
dG9yKHNlbGVjdG9ycywgc2VsZWN0b3JMaXN0KTsKIAotICAgIGlmICghc2VsZWN0b3JMaXN0LmZp
cnN0KCkgfHwgc2VsZWN0b3JMaXN0Lmhhc1Vua25vd25Qc2V1ZG9FbGVtZW50cygpKSB7CisgICAg
aWYgKCFzZWxlY3Rvckxpc3QuZmlyc3QoKSB8fCBzZWxlY3Rvckxpc3QuaGFzSW52YWxpZFNlbGVj
dG9yKCkpIHsKICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNzkwMDYzZDgyMTU1NGE4MGYxNTVlNmZkNTUxODdlOWM3ZDYxNTM1Mi4uMTVh
NzI1OWY0NmJiM2ZhNzU3MWQ1YWY0NzllYzEyMjVhMDBiMzMwYSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEyLTExLTA1ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4K
KworICAgICAgICBbU2hhZG93XSBVc2luZyBpc1Vua25vd25Qc2V1ZG9FbGVtZW50KCkgZm9yIHNo
YWRvdyBwc2V1ZG8gaWQgc2VlbXMgY29uZnVzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDA4MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctbmVzdGVkLXBz
ZXVkby1pZC5odG1sOiBGaXhlZCBhIHRlc3RjYXNlIHNvIHRoYXQgc2hhZG93UHNldWRvSWQgc3Rh
cnRzIHdpdGggJ3gtJy4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1p
ZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LXBzZXVkby1pZC5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wNSAgTWFyayBMYW0gIDxtYXJrLmxh
bUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4ZWQgZmxha3kgZmFzdC94bWxodHRwcmVxdWVzdC94
bWxodHRwcmVxdWVzdC1yZWN1cnNpdmUtc3luYy1ldmVudC5odG1sLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1uZXN0ZWQtcHNldWRvLWlkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LW5lc3RlZC1wc2V1ZG8taWQuaHRtbApp
bmRleCA0ZGMyZmIwNGFjMzQ3ZGUxNzQ4YzZjM2Y4MDgyOGQ1NGMyMmZjMTI5Li4zNmUwNWY0YTE2
NDA2ZDAxOTNhNDBiYjNmYzIwNDE2YTIyZWYxNmFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LW5lc3RlZC1wc2V1ZG8taWQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LW5lc3RlZC1wc2V1ZG8taWQuaHRtbApAQCAtNCwx
NSArNCwxNSBAQAogPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CiA8c3R5bGU+CiAKLXA6Oi1zaGFkb3ctY2hpbGQgeworcDo6eC1zaGFkb3ct
Y2hpbGQgewogICBjb2xvcjogcmVkOwogfQogCi1hOjotbmVzdGVkLXNoYWRvdy1jaGlsZCB7Cith
Ojp4LW5lc3RlZC1zaGFkb3ctY2hpbGQgewogICBjb2xvcjogYmx1ZTsKIH0KIAotcDo6LXNoYWRv
dy1jaGlsZDo6LW5lc3RlZC1zaGFkb3ctY2hpbGQgeworcDo6eC1zaGFkb3ctY2hpbGQ6OngtbmVz
dGVkLXNoYWRvdy1jaGlsZCB7CiAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOwogfQogCkBAIC0z
OSw5ICszOSw5IEBAIGlmICghd2luZG93LmludGVybmFscykKICAgICBmYWlsKCJZb3UgbmVlZCB3
aW5kb3cuaW50ZXJuYWxzIHRvIHJ1biB0aGlzIHRlc3QiKTsKICAgICAKIHZhciBob3N0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QiKTsKLXZhciB0dXBsZSA9IGJ1aWxkU2hhZG93V2l0
aE9uZUNoaWxkKGhvc3QsICJhIiwgIi1zaGFkb3ctY2hpbGQiKTsKK3ZhciB0dXBsZSA9IGJ1aWxk
U2hhZG93V2l0aE9uZUNoaWxkKGhvc3QsICJhIiwgIngtc2hhZG93LWNoaWxkIik7CiBzaG91bGRC
ZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodHVwbGUuc2hhZG93Q2hpbGQpLmNvbG9yIiwgIidy
Z2IoMjU1LCAwLCAwKSciKTsKLXZhciBzaGFkb3dUdXBsZSA9IGJ1aWxkU2hhZG93V2l0aE9uZUNo
aWxkKHR1cGxlLnNoYWRvd0NoaWxkLCAiYiIsICItbmVzdGVkLXNoYWRvdy1jaGlsZCIpOwordmFy
IHNoYWRvd1R1cGxlID0gYnVpbGRTaGFkb3dXaXRoT25lQ2hpbGQodHVwbGUuc2hhZG93Q2hpbGQs
ICJiIiwgIngtbmVzdGVkLXNoYWRvdy1jaGlsZCIpOwogc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHNoYWRvd1R1cGxlLnNoYWRvd0NoaWxkKS5jb2xvciIsICIncmdiKDAsIDAsIDI1
NSknIik7CiBzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUoc2hhZG93VHVwbGUuc2hh
ZG93Q2hpbGQpLmJhY2tncm91bmRDb2xvciIsICIncmdiKDAsIDEyOCwgMCknIik7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlkLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1pZC1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ZmNlNzRhMGI5MDgzMmVkMDNhMGZhZDBkNGIyMmE1
NGFiNDU1NDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LXBzZXVkby1pZC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5PgorCis8cD5UaGlzIHRlc3Qg
Y2hlY2tzIGEgY3VzdG9tIHBzZXVkbyBlbGVtZW50IHNlbGVjdG9yIGlzIHZhbGlkIG9ubHkgaWYg
aXQgc3RhcnRzIHdpdGggJ3gtJzwvcD4KKworPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2
IGlkPSJob3N0MSI+PGRpdiBzdHlsZT0iY29sb3I6cmVkIj5wc2V1ZG8gaXMgeC1zaGFkb3c6IFRo
aXMgc2hvdWxkIGJlIHJlZC48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9Imhvc3QyIj48ZGl2PnBzZXVk
byBpcyAtdGVzdDogVGhpcyBzaG91bGQgbm90IGJlIHJlZC48L2Rpdj48L2Rpdj4KKzxkaXYgaWQ9
Imhvc3QyIj48ZGl2PnBzZXVkbyBpcyBmb29iYXI6IFRoaXMgc2hvdWxkIG5vdCBiZSByZWQuPC9k
aXY+PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3NoYWRvdy9zaGFkb3ctcHNldWRvLWlkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvc2hhZG93LXBzZXVkby1pZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YzRiZmZiZGYzMDE3
YzJkOWFkOTJlMmViYjQ5YWYxYTRmMWY2MWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LXBzZXVkby1pZC5odG1sCkBAIC0wLDAgKzEsNDggQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2Rpdjo6eC1zaGFkb3cg
eworICAgIGNvbG9yOiByZWQ7Cit9CisKK2Rpdjo6LXRlc3QgeworICAgIGNvbG9yOiByZWQ7Cit9
CisKK2Rpdjo6Zm9vYmFyIHsKKyAgICBjb2xvcjogcmVkOworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorCis8cD5UaGlzIHRlc3QgY2hlY2tzIGEgY3VzdG9tIHBzZXVkbyBlbGVtZW50IHNl
bGVjdG9yIGlzIHZhbGlkIG9ubHkgaWYgaXQgc3RhcnRzIHdpdGggJ3gtJzwvcD4KKworPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8ZGl2IGlkPSJob3N0MSI+PC9kaXY+Cis8ZGl2IGlkPSJob3N0
MiI+PC9kaXY+Cis8ZGl2IGlkPSJob3N0MyI+PC9kaXY+CisKKzxzY3JpcHQ+Cit2YXIgc2hhZG93
Um9vdDEgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0MSk7Cit2YXIgZGl2MSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworZGl2MS5pbm5lckhUTUwgPSAicHNldWRvIGlzIHgtc2hh
ZG93OiBUaGlzIHNob3VsZCBiZSByZWQuIjsKK2RpdjEucHNldWRvID0gIngtc2hhZG93IjsKK3No
YWRvd1Jvb3QxLmFwcGVuZENoaWxkKGRpdjEpOworCit2YXIgc2hhZG93Um9vdDIgPSBuZXcgV2Vi
S2l0U2hhZG93Um9vdChob3N0Mik7Cit2YXIgZGl2MiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworZGl2Mi5pbm5lckhUTUwgPSAicHNldWRvIGlzIC10ZXN0OiBUaGlzIHNob3VsZCBu
b3QgYmUgcmVkLiI7CitkaXYyLnBzZXVkbyA9ICItdGVzdCI7CitzaGFkb3dSb290Mi5hcHBlbmRD
aGlsZChkaXYyKTsKKwordmFyIHNoYWRvd1Jvb3QzID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9z
dDMpOwordmFyIGRpdjMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKK2RpdjMuaW5u
ZXJIVE1MID0gInBzZXVkbyBpcyBmb29iYXI6IFRoaXMgc2hvdWxkIG5vdCBiZSByZWQuIjsKK2Rp
djMucHNldWRvID0gImZvb2JhciI7CitzaGFkb3dSb290My5hcHBlbmRDaGlsZChkaXYzKTsKKzwv
c2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>