<?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>75946</bug_id>
          
          <creation_ts>2012-01-10 01:21:19 -0800</creation_ts>
          <short_desc>The query selector for HTMLContentElement should follow the shadow dom spec.</short_desc>
          <delta_ts>2012-01-30 02:41:54 -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>DOM</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>75301</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>532880</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-10 01:21:19 -0800</bug_when>
    <thetext>The &apos;select&apos; attribute introduced in the patch for Bug 75302 will accept wider query than shadow dom spec.
The query format should obey the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537675</commentid>
    <comment_count>1</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-18 00:31:58 -0800</bug_when>
    <thetext>Spec is here. http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539299</commentid>
    <comment_count>2</comment_count>
      <attachid>123257</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-19 23:23:46 -0800</bug_when>
    <thetext>Created attachment 123257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539520</commentid>
    <comment_count>3</comment_count>
      <attachid>123257</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-20 08:18:21 -0800</bug_when>
    <thetext>Comment on attachment 123257
Patch

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

The approach looks OK. Added some comments inline.

&gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:48
&gt;      parser.parseSelector(element-&gt;select(), element-&gt;document(), m_selectorList);

Is there any way to detect syntax error?

&gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:57
&gt; +    if (m_contentElement-&gt;select().isNull() || m_contentElement-&gt;select().isEmpty())

It looks we don&apos;t need this - this check was done in the constructor.

&gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:118
&gt; +    for (size_t i = 0; i &lt; sizeof(allowedPseudoType) / sizeof(allowedPseudoType[0]); ++i) {

Why not switch?

&gt; Source/WebCore/html/shadow/ContentSelectorQuery.h:60
&gt; +    bool m_isValidSelector;

Looks something is wrong.... This should be a property of SelectorDataList or CSSSelectorList?
or should validateSelectorList() be a method of SelectorDataList?
I&apos;m not sure. but ownership around this class looks strange.

&gt; Source/WebCore/html/shadow/HTMLContentElement.h:65
&gt; +    virtual bool hasValidSelect() const;

isSelectValid?

&gt; Source/WebCore/testing/Internals.cpp:153
&gt; +    if (!contentElement-&gt;isContentElement()) {

Please check null-ity of contentElement

&gt; LayoutTests/fast/dom/shadow/content-selector-query.html:44
&gt; +var dataOfInvalidCases = [

Could you add some syntactically invalid cases?
There are, for example, forbidden symbols.
We also need partially valid case which has both syntactically valid and invalid selectors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540382</commentid>
    <comment_count>4</comment_count>
      <attachid>123519</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-22 21:53:59 -0800</bug_when>
    <thetext>Created attachment 123519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540383</commentid>
    <comment_count>5</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-22 21:58:35 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 123257 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=123257&amp;action=review
&gt; 
&gt; The approach looks OK. Added some comments inline.
&gt; 
&gt; &gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:48
&gt; &gt;      parser.parseSelector(element-&gt;select(), element-&gt;document(), m_selectorList);
&gt; 
&gt; Is there any way to detect syntax error?

Ah... I have added a code to check m_selectorList-&gt;first() is empty or not.
Empty means the CSSSelector fails parsing it.

&gt; 
&gt; &gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:57
&gt; &gt; +    if (m_contentElement-&gt;select().isNull() || m_contentElement-&gt;select().isEmpty())
&gt; 
&gt; It looks we don&apos;t need this - this check was done in the constructor.

Done.

&gt; 
&gt; &gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:118
&gt; &gt; +    for (size_t i = 0; i &lt; sizeof(allowedPseudoType) / sizeof(allowedPseudoType[0]); ++i) {
&gt; 
&gt; Why not switch?

Done.

&gt; 
&gt; &gt; Source/WebCore/html/shadow/ContentSelectorQuery.h:60
&gt; &gt; +    bool m_isValidSelector;
&gt; 
&gt; Looks something is wrong.... This should be a property of SelectorDataList or CSSSelectorList?
&gt; or should validateSelectorList() be a method of SelectorDataList?
&gt; I&apos;m not sure. but ownership around this class looks strange.

Hmm...
Since SelectorDataList and CSSSelectorList are borrowed from CSSParser.
The selector query is specific for HTMLContentElement, I don&apos;t think CSSParser related objects have it.
So I&apos;ve added m_isValidSelector there.

I leave this code as is in Patch 2.

&gt; 
&gt; &gt; Source/WebCore/html/shadow/HTMLContentElement.h:65
&gt; &gt; +    virtual bool hasValidSelect() const;
&gt; 
&gt; isSelectValid?

Done.

&gt; 
&gt; &gt; Source/WebCore/testing/Internals.cpp:153
&gt; &gt; +    if (!contentElement-&gt;isContentElement()) {
&gt; 
&gt; Please check null-ity of contentElement

Done.
&gt; 
&gt; &gt; LayoutTests/fast/dom/shadow/content-selector-query.html:44
&gt; &gt; +var dataOfInvalidCases = [
&gt; 
&gt; Could you add some syntactically invalid cases?
&gt; There are, for example, forbidden symbols.
&gt; We also need partially valid case which has both syntactically valid and invalid selectors.

Yes. I&apos;ve added several (mainly syntax-check) test cases, which contains failing cases in my previous patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540384</commentid>
    <comment_count>6</comment_count>
      <attachid>123519</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-01-22 22:09:01 -0800</bug_when>
    <thetext>Comment on attachment 123519
Patch

Attachment 123519 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11253823</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540393</commentid>
    <comment_count>7</comment_count>
      <attachid>123519</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-22 22:52:09 -0800</bug_when>
    <thetext>Comment on attachment 123519
Patch

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

New failing tests:
fast/dom/shadow/shadow-contents-fallback.html
fast/html/details-add-child-2.html
fast/html/details-replace-text.html
fast/dom/shadow/content-selector-query.html
fast/html/details-open2.html
fast/html/details-remove-child-2.html
fast/dom/shadow/shadow-contents-select.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540396</commentid>
    <comment_count>8</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-22 23:09:33 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 123519 [details])
&gt; Attachment 123519 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/11253828
&gt; 
&gt; New failing tests:
&gt; fast/dom/shadow/shadow-contents-fallback.html
&gt; fast/html/details-add-child-2.html
&gt; fast/html/details-replace-text.html
&gt; fast/dom/shadow/content-selector-query.html
&gt; fast/html/details-open2.html
&gt; fast/html/details-remove-child-2.html
&gt; fast/dom/shadow/shadow-contents-select.html

Hmm... Let me try fix them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540398</commentid>
    <comment_count>9</comment_count>
      <attachid>123524</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-22 23:37:36 -0800</bug_when>
    <thetext>Created attachment 123524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540399</commentid>
    <comment_count>10</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-22 23:38:15 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 123519 [details] [details])
&gt; &gt; Attachment 123519 [details] [details] did not pass chromium-ews (chromium-xvfb):
&gt; &gt; Output: http://queues.webkit.org/results/11253828
&gt; &gt; 
&gt; &gt; New failing tests:
&gt; &gt; fast/dom/shadow/shadow-contents-fallback.html
&gt; &gt; fast/html/details-add-child-2.html
&gt; &gt; fast/html/details-replace-text.html
&gt; &gt; fast/dom/shadow/content-selector-query.html
&gt; &gt; fast/html/details-open2.html
&gt; &gt; fast/html/details-remove-child-2.html
&gt; &gt; fast/dom/shadow/shadow-contents-select.html
&gt; 
&gt; Hmm... Let me try fix them.

Sorry, I did a very stupid mistake. Fixed it in the latest patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540780</commentid>
    <comment_count>11</comment_count>
      <attachid>123524</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-23 13:23:10 -0800</bug_when>
    <thetext>Comment on attachment 123524
Patch

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

Basically looks OK. Regarding to m_isValidSelector, I feel it as symptom of missing &quot;optional&quot; class like boost::optional. Could you consider to add it to WTF when you have time? Of couse it&apos;s a different topic from this bug.

&gt; Source/WebCore/html/shadow/ContentSelectorQuery.cpp:99
&gt; +    default:

Don&apos;t use default clause if we have all enums in the case statements. 
Then compilers can catch possible missing case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541108</commentid>
    <comment_count>12</comment_count>
      <attachid>123694</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-23 20:44:45 -0800</bug_when>
    <thetext>Created attachment 123694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544972</commentid>
    <comment_count>13</comment_count>
      <attachid>123694</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 02:41:49 -0800</bug_when>
    <thetext>Comment on attachment 123694
Patch

Clearing flags on attachment: 123694

Committed r106225: &lt;http://trac.webkit.org/changeset/106225&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544973</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-30 02:41:54 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123257</attachid>
            <date>2012-01-19 23:23:46 -0800</date>
            <delta_ts>2012-01-22 21:53:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75946-20120120162344.patch</filename>
            <type>text/plain</type>
            <size>18976</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjEzZTEwYzc2NzYxM2Fm
OTcwYTBmOWRlMTgxOGQ4YzA3N2Q1NzY0My4uNDM4Y2U3NTMzN2Y5ZmQzMGJkY2UyZjQ5Yjc1MGZk
MDRhYzQzMWJiMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAxLTE5ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVGhlIHF1ZXJ5IHNl
bGVjdG9yIGZvciBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIGZvbGxvdyB0aGUgc2hhZG93IGRv
bSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzU5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
aGVja3MgdGhlIHF1ZXJ5IHNlbGVjdG9yIG9mIEhUTUxDb250ZW50RWxlbWVudCBpcyB2YWxpZC4K
KyAgICAgICAgSWYgbm90IHZhbGlkLCB0aGUgc2VsZWN0b3Igd29uJ3QgbWF0Y2ggYW55dGhpbmcs
IGFuZCBzaG93cyBmYWxsYmFjayBlbGVtZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3No
YWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5Lmh0bWwKKworICAgICAgICAqIGh0bWwvc2hhZG93
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxl
Y3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VsZWN0b3JRdWVyeTo6aXNWYWxpZFNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgICBXaGVuIGEgc2VsZWN0IHF1
ZXJ5IGlzIG5vdCB2YWxpZCwgYW55IGVsZW1lbnQgd29uJ3QgYmUgbWF0Y2hlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRlU3ViU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6dmFs
aWRhdGVTZWxlY3Rvckxpc3QpOgorICAgICAgICAgIFZhbGlkYXRlIHNlbGVjdG9ycy4KKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6Omhhc1ZhbGlkU2VsZWN0KToKKyAgICAgICAgICBSZXR1cm5zIHRydWUgaWYg
c2VsZWN0IGF0dHJpYnV0ZSBpcyB2YWxpZC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6Omhhc1ZhbGlkQ29udGVudFNlbGVjdCk6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisK
IDIwMTItMDEtMTkgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVncmVzc2lvbiAocjk4NzM1KTogVmlkZW8gY2hhdCBtb2xlcyBpbiBHbWFpbCByZW5k
ZXIgaW5jb3JyZWN0bHkgb24gTWFjIE9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKaW5kZXggMmJmOGU1MTcxMDdkOThmNTVmZDAz
YTIzOTNlNTkwOGJiYTdlNGY5YS4uMDhkYTU1MTkzMGMxNTA4ZjhiYThjYjkyOWY0Zjc3YjcxNzA2
YWVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVj
dG9yUXVlcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxl
Y3RvclF1ZXJ5LmNwcApAQCAtMzMsMTkgKzMzLDMxIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotQ29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KEhUTUxDb250ZW50
RWxlbWVudCogZWxlbWVudCkKK0NvbnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JR
dWVyeShjb25zdCBIVE1MQ29udGVudEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgOiBtX2NvbnRlbnRF
bGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX3NlbGVjdG9yQ2hlY2tlcihlbGVtZW50LT5kb2N1bWVu
dCgpLCAhZWxlbWVudC0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCiB7CiAgICAgbV9zZWxl
Y3RvckNoZWNrZXIuc2V0Q29sbGVjdGluZ1J1bGVzT25seSh0cnVlKTsKIAotICAgIGlmIChlbGVt
ZW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBlbGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpCisg
ICAgaWYgKGVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IGVsZW1lbnQtPnNlbGVjdCgpLmlz
RW1wdHkoKSkgeworICAgICAgICBtX2lzVmFsaWRTZWxlY3RvciA9IHRydWU7CiAgICAgICAgIHJl
dHVybjsKKyAgICB9CiAKICAgICBDU1NQYXJzZXIgcGFyc2VyKHRydWUpOwogICAgIHBhcnNlci5w
YXJzZVNlbGVjdG9yKGVsZW1lbnQtPnNlbGVjdCgpLCBlbGVtZW50LT5kb2N1bWVudCgpLCBtX3Nl
bGVjdG9yTGlzdCk7CiAKLSAgICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JMaXN0
KTsKKyAgICBtX2lzVmFsaWRTZWxlY3RvciA9IENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojp2YWxpZGF0
ZVNlbGVjdG9yTGlzdCgpOworICAgIGlmIChtX2lzVmFsaWRTZWxlY3RvcikKKyAgICAgICAgbV9z
ZWxlY3RvcnMuaW5pdGlhbGl6ZShtX3NlbGVjdG9yTGlzdCk7Cit9CisKK2Jvb2wgQ29udGVudFNl
bGVjdG9yUXVlcnk6OmlzVmFsaWRTZWxlY3RvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fY29udGVu
dEVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgp
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gbV9pc1ZhbGlk
U2VsZWN0b3I7CiB9CiAKIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNoZXMoTm9kZSog
bm9kZSkgY29uc3QKQEAgLTU5LDEwICs3MSw5MyBAQCBib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5
OjptYXRjaGVzKE5vZGUqIG5vZGUpIGNvbnN0CiAgICAgaWYgKG1fY29udGVudEVsZW1lbnQtPnNl
bGVjdCgpLmlzTnVsbCgpIHx8IG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBpZiAoIW1faXNWYWxpZFNlbGVjdG9yKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIG1fc2VsZWN0b3JzLm1hdGNoZXMobV9z
ZWxlY3RvckNoZWNrZXIsIHRvRWxlbWVudChub2RlKSk7CiB9CiAKK3N0YXRpYyBjb25zdCBDU1NT
ZWxlY3Rvcjo6UHNldWRvVHlwZSBhbGxvd2VkUHNldWRvVHlwZVtdID0geworICAgIENTU1NlbGVj
dG9yOjpQc2V1ZG9FbXB0eSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbmssIENTU1NlbGVjdG9yOjpQ
c2V1ZG9WaXNpdGVkLAorICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UYXJnZXQsIENTU1NlbGVjdG9y
OjpQc2V1ZG9FbmFibGVkLAorICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9EaXNhYmxlZCwgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NoZWNrZWQsIENTU1NlbGVjdG9yOjpQc2V1ZG9JbmRldGVybWluYXRlLAor
ICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZCwgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExh
c3RDaGlsZCwgQ1NTU2VsZWN0b3I6OlBzZXVkb050aE9mVHlwZSwKKyAgICBDU1NTZWxlY3Rvcjo6
UHNldWRvTnRoTGFzdE9mVHlwZSwgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQsIENTU1Nl
bGVjdG9yOjpQc2V1ZG9MYXN0Q2hpbGQsCisgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0T2ZU
eXBlLCBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdE9mVHlwZSwgQ1NTU2VsZWN0b3I6OlBzZXVkb09u
bHlPZlR5cGUKK307CisKK3N0YXRpYyBib29sIHZhbGlkYXRlU3ViU2VsZWN0b3IoQ1NTU2VsZWN0
b3IqIHNlbGVjdG9yKQoreworICAgIHN3aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpOb25lOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OklkOgorICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OkNsYXNzOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkV4YWN0OgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlNldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0OgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6Okh5cGhlbjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpDb250YWlu
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkJlZ2luOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkVu
ZDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxl
bWVudDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBhZ2VQ
c2V1ZG9DbGFzczoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzczoKKyAgICAgICAg
YnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBib29sIGZvdW5kID0gZmFsc2U7CisgICAg
Q1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcHNldWRvVHlwZSA9IHNlbGVjdG9yLT5wc2V1ZG9UeXBl
KCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplb2YoYWxsb3dlZFBzZXVkb1R5cGUp
IC8gc2l6ZW9mKGFsbG93ZWRQc2V1ZG9UeXBlWzBdKTsgKytpKSB7CisgICAgICAgIGlmIChwc2V1
ZG9UeXBlID09IGFsbG93ZWRQc2V1ZG9UeXBlW2ldKSB7CisgICAgICAgICAgICBmb3VuZCA9IHRy
dWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiAoIWZvdW5k
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGlj
IGJvb2wgdmFsaWRhdGVTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsZWN0b3IpCit7CisgICAgQVNT
RVJUKHNlbGVjdG9yKTsKKworICAgIGlmICghdmFsaWRhdGVTdWJTZWxlY3RvcihzZWxlY3Rvcikp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIENTU1NlbGVjdG9yKiBwcmV2U3ViU2VsZWN0
b3IgPSBzZWxlY3RvcjsKKyAgICBDU1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBzZWxlY3Rvci0+
dGFnSGlzdG9yeSgpOworCisgICAgd2hpbGUgKHN1YlNlbGVjdG9yKSB7CisgICAgICAgIGlmIChw
cmV2U3ViU2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIXZhbGlkYXRlU3ViU2VsZWN0
b3Ioc3ViU2VsZWN0b3IpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHBy
ZXZTdWJTZWxlY3RvciA9IHN1YlNlbGVjdG9yOworICAgICAgICBzdWJTZWxlY3RvciA9IHN1YlNl
bGVjdG9yLT50YWdIaXN0b3J5KCk7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jv
b2wgQ29udGVudFNlbGVjdG9yUXVlcnk6OnZhbGlkYXRlU2VsZWN0b3JMaXN0KCkKK3sKKyAgICBm
b3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0LmZpcnN0KCk7IHNlbGVj
dG9yOyBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0Lm5leHQoc2VsZWN0b3IpKSB7CisgICAgICAg
IGlmICghdmFsaWRhdGVTZWxlY3RvcihzZWxlY3RvcikpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCmluZGV4IGJkYWZiOTkzYmFj
ZjljNzBkYTM4MGYzMzY3ZWZhNjhkMWI4OTVmMTIuLjUyN2FhNDkwNTJjOGNiMjhkOWEyMzg5YTM0
OTU0ZDM2NmUyMTZjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudFNlbGVjdG9yUXVlcnkuaApAQCAtNDYsMTUgKzQ2LDE4IEBAIGNsYXNzIEhUTUxDb250ZW50
RWxlbWVudDsKIGNsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShDb250ZW50U2VsZWN0b3JRdWVyeSk7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29u
dGVudFNlbGVjdG9yUXVlcnkoSFRNTENvbnRlbnRFbGVtZW50Kik7CisgICAgZXhwbGljaXQgQ29u
dGVudFNlbGVjdG9yUXVlcnkoY29uc3QgSFRNTENvbnRlbnRFbGVtZW50Kik7CiAKKyAgICBib29s
IGlzVmFsaWRTZWxlY3RvcigpIGNvbnN0OwogICAgIGJvb2wgbWF0Y2hlcyhOb2RlKikgY29uc3Q7
Ci0KIHByaXZhdGU6Ci0gICAgSFRNTENvbnRlbnRFbGVtZW50KiBtX2NvbnRlbnRFbGVtZW50Owor
ICAgIGJvb2wgdmFsaWRhdGVTZWxlY3Rvckxpc3QoKTsKKworICAgIGNvbnN0IEhUTUxDb250ZW50
RWxlbWVudCogbV9jb250ZW50RWxlbWVudDsKICAgICBTZWxlY3RvckRhdGFMaXN0IG1fc2VsZWN0
b3JzOwogICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKICAgICBTZWxlY3RvckNo
ZWNrZXIgbV9zZWxlY3RvckNoZWNrZXI7CisgICAgYm9vbCBtX2lzVmFsaWRTZWxlY3RvcjsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1l
bnQuY3BwCmluZGV4IGQ0MTY1MmYwZjI0MzgyM2Y2NGI2NzQxY2QxZWM1MzE0OGZlMjFlZWYuLjlh
ZGUyYTU5NDc4Mjk0NzRhMDZlZjlkMTZiNWNhNmMzNTMyOTkyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtOTEsNiArOTEs
MTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNv
bnN0CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKIH0KIAorYm9vbCBIVE1M
Q29udGVudEVsZW1lbnQ6Omhhc1ZhbGlkU2VsZWN0KCkgY29uc3QKK3sKKyAgICBDb250ZW50U2Vs
ZWN0b3JRdWVyeSBxdWVyeSh0aGlzKTsKKyAgICByZXR1cm4gcXVlcnkuaXNWYWxpZFNlbGVjdG9y
KCk7Cit9CisKIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWlj
U3RyaW5nJiBzZWxlY3RWYWx1ZSkKIHsKICAgICBzZXRBdHRyaWJ1dGUoc2VsZWN0QXR0ciwgc2Vs
ZWN0VmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENv
bnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVs
ZW1lbnQuaAppbmRleCBhMTE3YTQ4MWNmMWU0ODI1YzcxNDE3ZDQ0Nzg3OTg2ZWI2MWQxZmU1Li5h
YjZmNDdiZGJhOWE0ZTBlNzhlNGViYmU1ZGY0OTZmYjdjNjQ1M2E3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAtNjIsNiArNjIsOCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCogaW5jbHVzaW9ucygpIGNv
bnN0IHsgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsgfQogICAgIGJvb2wgaGFzSW5jbHVzaW9u
KCkgY29uc3QgeyByZXR1cm4gaW5jbHVzaW9ucygpLT5maXJzdCgpOyB9CiAKKyAgICB2aXJ0dWFs
IGJvb2wgaGFzVmFsaWRTZWxlY3QoKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIEhUTUxDb250
ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDhjMzE4NWEzMjRkZDI0ZmJlNjE2MzU1NmRiZTE1
OWIxZmE5ZmY4ODIuLjQ0MDNmYmZiYzI3YzY0MzI2OWQ1OTRhNTViOGI2NDdkNTYxMmE1NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE0OCw2ICsxNDgsMTYgQEAgRWxl
bWVudCogSW50ZXJuYWxzOjpnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChOb2RlKiBzaGFkb3dS
b290LCBjb25zdCBTdHJpbmcmIGkKICAgICByZXR1cm4gdG9TaGFkb3dSb290KHNoYWRvd1Jvb3Qp
LT5nZXRFbGVtZW50QnlJZChpZCk7CiB9CiAKK2Jvb2wgSW50ZXJuYWxzOjpoYXNWYWxpZENvbnRl
bnRTZWxlY3QoRWxlbWVudCogY29udGVudEVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIGlmICghY29udGVudEVsZW1lbnQtPmlzQ29udGVudEVsZW1lbnQoKSkgeworICAgICAgICBl
YyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIHJldHVybiB0b0hUTUxDb250ZW50RWxlbWVudChjb250ZW50RWxlbWVudCktPmhhc1ZhbGlk
U2VsZWN0KCk7Cit9CisKIFN0cmluZyBJbnRlcm5hbHM6OmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0
KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghZWxlbWVu
dCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZjU4Y2M0YzE3MGM3NTM4YjVj
ZjdjYzk1MjlhNzcxMDE0YzhlM2IzZi4uMjQ2MmM1YjRjMmJkZDViNWIxNzU5YjkxZTM3YzA1NDk4
YWYwYWY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC02MSw2ICs2MSw3IEBA
IHB1YmxpYzoKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxlbWVudCosIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUNvbnRlbnRFbGVtZW50KERvY3Vt
ZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIEVsZW1lbnQqIGdldEVsZW1lbnRCeUlkSW5TaGFk
b3dSb290KE5vZGUqIHNoYWRvd1Jvb3QsIGNvbnN0IFN0cmluZyYgaWQsIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBib29sIGhhc1ZhbGlkQ29udGVudFNlbGVjdChFbGVtZW50KiBjb250ZW50RWxlbWVu
dCwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5BQkxFKElOUFVUX0NPTE9SKQogICAgIHZvaWQg
c2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihFbGVtZW50KiwgY29uc3QgU3RyaW5nJiBjb2xvclZh
bHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA2NmM5ZWE1MTk5Yzhj
YmZmODc4MmU1YzVkYzI1OGY5NWE3ODU2MTAzLi45ZGE5NDQzZDY3ZDk1Y2QyMDM5ZmQ0NzgzOWU3
YWFmYWIyZjU4NjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNyw2
ICszNyw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBET01TdHJpbmcgc2hhZG93UHNldWRv
SWQoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEVs
ZW1lbnQgY3JlYXRlQ29udGVudEVsZW1lbnQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgICAgICBFbGVtZW50IGdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290
KGluIE5vZGUgc2hhZG93Um9vdCwgaW4gRE9NU3RyaW5nIGlkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgYm9vbGVhbiBoYXNWYWxpZENvbnRlbnRTZWxlY3QoaW4gRWxlbWVudCBjb250
ZW50RWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9J
TlBVVF9DT0xPUikgJiYgRU5BQkxFX0lOUFVUX0NPTE9SCiAgICAgICAgIHZvaWQgc2VsZWN0Q29s
b3JJbkNvbG9yQ2hvb3NlcihpbiBFbGVtZW50IGVsZW1lbnQsIGluIERPTVN0cmluZyBjb2xvclZh
bHVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCBmZTQ4NDVlMDhiNTFhZDE5MjM5NWQ1Njc4ZGEyZjllZjJhZDgwNmQzLi5h
Y2FjYzc4YTZmZmViYjBmNmUxOTkxM2RjMjg3YzIyMDY0ZmI3OGVmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTMgQEAKKzIwMTItMDEtMTkgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4K
KworICAgICAgICBUaGUgcXVlcnkgc2VsZWN0b3IgZm9yIEhUTUxDb250ZW50RWxlbWVudCBzaG91
bGQgZm9sbG93IHRoZSBzaGFkb3cgZG9tIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTk0NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtc2VsZWN0b3It
cXVlcnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvY29u
dGVudC1zZWxlY3Rvci1xdWVyeS5odG1sOiBBZGRlZC4KKwogMjAxMi0wMS0xOSAgU2ltb24gRnJh
c2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uIChyOTg3
MzUpOiBWaWRlbyBjaGF0IG1vbGVzIGluIEdtYWlsIHJlbmRlciBpbmNvcnJlY3RseSBvbiBNYWMg
T1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXNlbGVj
dG9yLXF1ZXJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250
ZW50LXNlbGVjdG9yLXF1ZXJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzU1ZTcyM2QwMTMz
N2MwYjAwZmFmZWZiOTNhMmFlYjdlZjQ2ZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtc2VsZWN0b3ItcXVlcnktZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTM0IEBACitUaGlzIHRlc3QgY2hlY2tzIHNlbGVjdCBhdHRyaWJ1dGUgb2YgY29u
dGVudCBlbGVtZW50IGlzIHZhbGlkLgorCitudWxsCitQQVNTIGludGVybmFscy5oYXNWYWxpZENv
bnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorCitQQVNTIGludGVybmFscy5oYXNWYWxpZENv
bnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorbnN8ZGl2CitQQVNTIGludGVybmFscy5oYXNW
YWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorKnxkaXYKK1BBU1MgaW50ZXJuYWxz
Lmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCit8ZGl2CitQQVNTIGludGVy
bmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2CitQQVNTIGlu
dGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorbnN8KgorUEFT
UyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKKyp8Kgor
UEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK3wq
CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQor
KgorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUK
Ky5lbGVtCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMg
dHJ1ZQorcC5lbGVtCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkgaXMgdHJ1ZQorZm9vLmVsZW0KK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyB0cnVlCisqLnJpZ2h0CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorI2VsZW0KK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlk
Q29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitwI2VsZW0KK1BBU1MgaW50ZXJuYWxzLmhh
c1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitmb28jZWxlbQorUEFTUyBpbnRl
cm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKKyojc29tZXRoaW5n
CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQor
ZGl2W3RpdGxlXQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQp
IGlzIHRydWUKK2RpdltjbGFzcz0iZXhhbXBsZSJdCitQQVNTIGludGVybmFscy5oYXNWYWxpZENv
bnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2W2hlbGxvPSJDbGV2ZWxhbmQiXVtnb29k
YnllPSJDb2x1bWJ1cyJdCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29u
dGVudCkgaXMgdHJ1ZQorZGl2W3JlbH49ImNvcHlyaWdodCJdCitQQVNTIGludGVybmFscy5oYXNW
YWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2W2hyZWY9Imh0dHA6Ly93d3cu
ZXhhbXBsZS5jb20vIl0KK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250
ZW50KSBpcyB0cnVlCitkaXZbaHJlZmxhbmd8PSJlbiJdCitQQVNTIGludGVybmFscy5oYXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2W2NoYXJhY3Rlcj1yb21lb10KK1BB
U1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6
bGluaworUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRy
dWUKK2Rpdjp2aXNpdGVkCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29u
dGVudCkgaXMgdHJ1ZQorZGl2OnRhcmdldAorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50
U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjplbmFibGVkCitQQVNTIGludGVybmFscy5oYXNW
YWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2OmNoZWNrZWQKK1BBU1MgaW50
ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6aW5kZXRl
cm1pbmF0ZQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlz
IHRydWUKK2RpdjpudGgtY2hpbGQoMSkKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNl
bGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6bnRoLWxhc3QtY2hpbGQoMSkKK1BBU1MgaW50ZXJu
YWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6bnRoLW9mLXR5
cGUoMSkKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0
cnVlCitkaXY6bnRoLW9mLWxhc3QtdHlwZSgxKQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250
ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpmaXJzdC1jaGlsZAorUEFTUyBpbnRlcm5h
bHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpsYXN0LWNoaWxk
CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQor
ZGl2OmZpcnN0LW9mLXR5cGUKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChj
b250ZW50KSBpcyB0cnVlCitkaXY6bGFzdC1vZi10eXBlCitQQVNTIGludGVybmFscy5oYXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2Om9ubHktb2YtdHlwZQorUEFTUyBp
bnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpmaXJz
dC1vZi10eXBlOmxhc3Qtb2YtdHlwZQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIHRydWUKK2Rpdi5lbGVtOnZpc2l0ZWQKK1BBU1MgaW50ZXJuYWxzLmhh
c1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisqOnZpc2l0ZWQKK1BBU1MgaW50
ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXYsIGRpdgor
UEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2Rp
djpmaXJzdC1vZi10eXBlLCBkaXYKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyB0cnVlCitkaXYsIGRpdjpmaXJzdC1vZi10eXBlCitQQVNTIGludGVybmFs
cy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2OmZpcnN0LW9mLXR5
cGUsIGRpdjpsYXN0LW9mLXR5cGUKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyB0cnVlCitkaXYgZGl2CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK2RpdiA+IGRpdgorUEFTUyBpbnRlcm5hbHMuaGFz
VmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXYgKyBkaXYKK1BBU1MgaW50
ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2IH4gZGl2
CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UK
K2Rpdjpub3QoZGl2KQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRl
bnQpIGlzIGZhbHNlCitkaXY6cm9vdAorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6bGFuZyhlbikKK1BBU1MgaW50ZXJuYWxzLmhhc1Zh
bGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2OjpiZWZvcmUKK1BBU1MgaW50
ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2OjphZnRl
cgorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNl
CitkaXY6OmZpcnN0LWxpbmUKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChj
b250ZW50KSBpcyBmYWxzZQorZGl2OjpmaXJzdC1sZXR0ZXIKK1BBU1MgaW50ZXJuYWxzLmhhc1Zh
bGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2OmFjdGl2ZQorUEFTUyBpbnRl
cm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6aG92ZXIK
K1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQor
ZGl2OmZvY3VzCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkg
aXMgZmFsc2UKK2RpdiBkaXY6bm90KGRpdikKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVu
dFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2Om5vdChkaXYpIGRpdgorUEFTUyBpbnRlcm5h
bHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXYgc3BhbiBkaXYK
K1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVy
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjQzZTZkNTAzMDM3NjA5ZGQ1ODYzNmJlYzI3MWFmNTAyM2QxYWM3
ODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVu
dC1zZWxlY3Rvci1xdWVyeS5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIHNl
bGVjdCBhdHRyaWJ1dGUgb2YgY29udGVudCBlbGVtZW50IGlzIHZhbGlkLjwvcD4KKzxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKworPHNjcmlwdD4K
K3ZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisK
K3ZhciBjb250ZW50OworZnVuY3Rpb24gdGVzdChzZWxlY3QsIHZhbGlkKSB7CisgICAgY29udGVu
dCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7CisgICAgaWYgKHNl
bGVjdCAhPSBudWxsKQorICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2Vs
ZWN0KTsKKworICAgIGRlYnVnKHNlbGVjdCk7CisgICAgaWYgKHZhbGlkKQorICAgICAgICBzaG91
bGRCZSgiaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSIsICJ0cnVlIik7
CisgICAgZWxzZQorICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNl
bGVjdChjb250ZW50KSIsICJmYWxzZSIpOworfQorCit2YXIgZGF0YU9mVmFsaWRDYXNlcyA9IFsK
KyAgICBudWxsLCAnJywKKyAgICAnbnN8ZGl2JywgJyp8ZGl2JywgJ3xkaXYnLCAnZGl2JywKKyAg
ICAnbnN8KicsICcqfConLCAnfConLCAnKicsCisgICAgJy5lbGVtJywgJ3AuZWxlbScsICdmb28u
ZWxlbScsICcqLnJpZ2h0JywKKyAgICAnI2VsZW0nLCAncCNlbGVtJywgJ2ZvbyNlbGVtJywgJyoj
c29tZXRoaW5nJywKKyAgICAnZGl2W3RpdGxlXScsICdkaXZbY2xhc3M9ImV4YW1wbGUiXScsICdk
aXZbaGVsbG89IkNsZXZlbGFuZCJdW2dvb2RieWU9IkNvbHVtYnVzIl0nLAorICAgICdkaXZbcmVs
fj0iY29weXJpZ2h0Il0nLCAnZGl2W2hyZWY9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIl0nLAor
ICAgICdkaXZbaHJlZmxhbmd8PSJlbiJdJywgJ2RpdltjaGFyYWN0ZXI9cm9tZW9dJywKKyAgICAn
ZGl2OmxpbmsnLCAnZGl2OnZpc2l0ZWQnLCAnZGl2OnRhcmdldCcsICdkaXY6ZW5hYmxlZCcsICdk
aXY6Y2hlY2tlZCcsCisgICAgJ2RpdjppbmRldGVybWluYXRlJywgJ2RpdjpudGgtY2hpbGQoMSkn
LCAnZGl2Om50aC1sYXN0LWNoaWxkKDEpJywgJ2RpdjpudGgtb2YtdHlwZSgxKScsCisgICAgJ2Rp
djpudGgtb2YtbGFzdC10eXBlKDEpJywgJ2RpdjpmaXJzdC1jaGlsZCcsICdkaXY6bGFzdC1jaGls
ZCcsICdkaXY6Zmlyc3Qtb2YtdHlwZScsCisgICAgJ2RpdjpsYXN0LW9mLXR5cGUnLCAnZGl2Om9u
bHktb2YtdHlwZScsCisgICAgJ2RpdjpmaXJzdC1vZi10eXBlOmxhc3Qtb2YtdHlwZScsICdkaXYu
ZWxlbTp2aXNpdGVkJywgJyo6dmlzaXRlZCcsCisgICAgJ2RpdiwgZGl2JywgJ2RpdjpmaXJzdC1v
Zi10eXBlLCBkaXYnLCAnZGl2LCBkaXY6Zmlyc3Qtb2YtdHlwZScsICdkaXY6Zmlyc3Qtb2YtdHlw
ZSwgZGl2Omxhc3Qtb2YtdHlwZScKK107CisKK3ZhciBkYXRhT2ZJbnZhbGlkQ2FzZXMgPSBbCisg
ICAgJ2RpdiBkaXYnLCAnZGl2ID4gZGl2JywgJ2RpdiArIGRpdicsICdkaXYgfiBkaXYnLAorICAg
ICdkaXY6bm90KGRpdiknLCAnZGl2OnJvb3QnLCAnZGl2OmxhbmcoZW4pJywKKyAgICAnZGl2Ojpi
ZWZvcmUnLCAnZGl2OjphZnRlcicsICdkaXY6OmZpcnN0LWxpbmUnLCAnZGl2OjpmaXJzdC1sZXR0
ZXInLAorICAgICdkaXY6YWN0aXZlJywgJ2Rpdjpob3ZlcicsICdkaXY6Zm9jdXMnLAorICAgICdk
aXYgZGl2Om5vdChkaXYpJywgJ2Rpdjpub3QoZGl2KSBkaXYnLCAnZGl2IHNwYW4gZGl2JworXQor
CitmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZGF0YU9mVmFsaWRDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgdGVzdChkYXRh
T2ZWYWxpZENhc2VzW2ldLCB0cnVlKTsKKyAgICB9CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBk
YXRhT2ZJbnZhbGlkQ2FzZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgIHRlc3QoZGF0YU9mSW52
YWxpZENhc2VzW2ldLCBmYWxzZSk7CisgICAgfQorfQorCitkb1Rlc3QoKTsKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123519</attachid>
            <date>2012-01-22 21:53:59 -0800</date>
            <delta_ts>2012-01-22 23:37:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75946-20120123145357.patch</filename>
            <type>text/plain</type>
            <size>19194</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZiNDI0ZDk3NmNhYzcw
YTU2NTQ0NzIxYTEwZWE4ODMxOTM2OWU0Yy4uNzUwZTk0MmUxODQ3ODFmMGY4YWQyYTZkMzI2NmUw
NDc2NTlmMzYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAxLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVGhlIHF1ZXJ5IHNl
bGVjdG9yIGZvciBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIGZvbGxvdyB0aGUgc2hhZG93IGRv
bSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzU5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
aGVja3MgdGhlIHF1ZXJ5IHNlbGVjdG9yIG9mIEhUTUxDb250ZW50RWxlbWVudCBpcyB2YWxpZC4K
KyAgICAgICAgSWYgbm90IHZhbGlkLCB0aGUgc2VsZWN0b3Igd29uJ3QgbWF0Y2ggYW55dGhpbmcs
IGFuZCBzaG93cyBmYWxsYmFjayBlbGVtZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3No
YWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5Lmh0bWwKKworICAgICAgICAqIGh0bWwvc2hhZG93
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxl
Y3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VsZWN0b3JRdWVyeTo6aXNWYWxpZFNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgICBXaGVuIGEgc2VsZWN0IHF1
ZXJ5IGlzIG5vdCB2YWxpZCwgYW55IGVsZW1lbnQgd29uJ3QgYmUgbWF0Y2hlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRlU3ViU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6dmFs
aWRhdGVTZWxlY3Rvckxpc3QpOgorICAgICAgICAgIFZhbGlkYXRlIHNlbGVjdG9ycy4KKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQpOgorICAgICAgICAgIFJldHVybnMgdHJ1ZSBpZiBz
ZWxlY3QgYXR0cmlidXRlIGlzIHZhbGlkLgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6aXNWYWxpZENvbnRlbnRTZWxlY3QpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDEyLTAxLTIyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBBVEsgdGV4dC1jYXJldC1tb3ZlZCBhbmQgdGV4dC1zZWxlY3Rpb24tY2hh
bmdlZCBldmVudHMgbm90IGJlaW5nIGVtaXR0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAppbmRleCAyYmY4ZTUxNzEwN2Q5OGY1
NWZkMDNhMjM5M2U1OTA4YmJhN2U0ZjlhLi41MGU4Y2MzYWI3Y2JiODNlNjE0MzAzMGJjMzY1Yzkx
M2M3NThlYjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50
U2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVu
dFNlbGVjdG9yUXVlcnkuY3BwCkBAIC0zMywxOSArMzMsMjggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1Db250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkoSFRNTENv
bnRlbnRFbGVtZW50KiBlbGVtZW50KQorQ29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRlbnRTZWxl
Y3RvclF1ZXJ5KGNvbnN0IEhUTUxDb250ZW50RWxlbWVudCogZWxlbWVudCkKICAgICA6IG1fY29u
dGVudEVsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fc2VsZWN0b3JDaGVja2VyKGVsZW1lbnQtPmRv
Y3VtZW50KCksICFlbGVtZW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKIHsKICAgICBt
X3NlbGVjdG9yQ2hlY2tlci5zZXRDb2xsZWN0aW5nUnVsZXNPbmx5KHRydWUpOwogCi0gICAgaWYg
KGVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IGVsZW1lbnQtPnNlbGVjdCgpLmlzRW1wdHko
KSkKKyAgICBpZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0
KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIG1faXNWYWxpZFNlbGVjdG9yID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIENTU1BhcnNlciBwYXJzZXIodHJ1ZSk7CiAgICAgcGFy
c2VyLnBhcnNlU2VsZWN0b3IoZWxlbWVudC0+c2VsZWN0KCksIGVsZW1lbnQtPmRvY3VtZW50KCks
IG1fc2VsZWN0b3JMaXN0KTsKIAotICAgIG1fc2VsZWN0b3JzLmluaXRpYWxpemUobV9zZWxlY3Rv
ckxpc3QpOworICAgIG1faXNWYWxpZFNlbGVjdG9yID0gQ29udGVudFNlbGVjdG9yUXVlcnk6OnZh
bGlkYXRlU2VsZWN0b3JMaXN0KCk7CisgICAgaWYgKG1faXNWYWxpZFNlbGVjdG9yKQorICAgICAg
ICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JMaXN0KTsKK30KKworYm9vbCBDb250
ZW50U2VsZWN0b3JRdWVyeTo6aXNWYWxpZFNlbGVjdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9pc1ZhbGlkU2VsZWN0b3I7CiB9CiAKIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNo
ZXMoTm9kZSogbm9kZSkgY29uc3QKQEAgLTU2LDEzICs2NSwxMDAgQEAgYm9vbCBDb250ZW50U2Vs
ZWN0b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBub2RlKSBjb25zdAogCiAgICAgQVNTRVJUKG5vZGUt
PnBhcmVudE5vZGUoKSA9PSBtX2NvbnRlbnRFbGVtZW50LT5zaGFkb3dUcmVlUm9vdE5vZGUoKS0+
c2hhZG93SG9zdCgpKTsKIAotICAgIGlmIChtX2NvbnRlbnRFbGVtZW50LT5zZWxlY3QoKS5pc051
bGwoKSB8fCBtX2NvbnRlbnRFbGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpCisgICAgaWYgKG1f
Y29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1fY29udGVudEVsZW1lbnQtPnNl
bGVjdCgpLmlzRW1wdHkoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgaWYgKCFtX2lz
VmFsaWRTZWxlY3RvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFub2RlLT5p
c0VsZW1lbnROb2RlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBtX3Nl
bGVjdG9ycy5tYXRjaGVzKG1fc2VsZWN0b3JDaGVja2VyLCB0b0VsZW1lbnQobm9kZSkpOwogfQog
CitzdGF0aWMgYm9vbCB2YWxpZGF0ZVN1YlNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxlY3RvcikK
K3sKKyAgICBzd2l0Y2ggKHNlbGVjdG9yLT5tX21hdGNoKSB7CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6Tm9uZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpJZDoKKyAgICBjYXNlIENTU1NlbGVjdG9y
OjpDbGFzczoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpFeGFjdDoKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpTZXQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6TGlzdDoKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpIeXBoZW46CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6Q29udGFpbjoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpCZWdpbjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpFbmQ6CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ6CisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQYWdlUHNldWRvQ2xhc3M6Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3M6CisgICAgICAgIGJyZWFrOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW1wdHk6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvTGluazoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkOgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb1RhcmdldDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9F
bmFibGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVkOgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0NoZWNrZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
SW5kZXRlcm1pbmF0ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvTnRoT2ZUeXBlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExh
c3RPZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RDaGlsZDoKKyAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRmlyc3RPZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdE9mVHlw
ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlOgorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQor
CitzdGF0aWMgYm9vbCB2YWxpZGF0ZVNlbGVjdG9yKENTU1NlbGVjdG9yKiBzZWxlY3RvcikKK3sK
KyAgICBBU1NFUlQoc2VsZWN0b3IpOworCisgICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVjdG9yKHNl
bGVjdG9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ1NTU2VsZWN0b3IqIHByZXZT
dWJTZWxlY3RvciA9IHNlbGVjdG9yOworICAgIENTU1NlbGVjdG9yKiBzdWJTZWxlY3RvciA9IHNl
bGVjdG9yLT50YWdIaXN0b3J5KCk7CisKKyAgICB3aGlsZSAoc3ViU2VsZWN0b3IpIHsKKyAgICAg
ICAgaWYgKHByZXZTdWJTZWxlY3Rvci0+cmVsYXRpb24oKSAhPSBDU1NTZWxlY3Rvcjo6U3ViU2Vs
ZWN0b3IpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghdmFsaWRhdGVT
dWJTZWxlY3RvcihzdWJTZWxlY3RvcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgcHJldlN1YlNlbGVjdG9yID0gc3ViU2VsZWN0b3I7CisgICAgICAgIHN1YlNlbGVjdG9y
ID0gc3ViU2VsZWN0b3ItPnRhZ0hpc3RvcnkoKTsKKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBDb250ZW50U2VsZWN0b3JRdWVyeTo6dmFsaWRhdGVTZWxlY3Rvckxpc3QoKQor
eworICAgIGlmICghbV9zZWxlY3Rvckxpc3QuZmlyc3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgZm9yIChDU1NTZWxlY3Rvciogc2VsZWN0b3IgPSBtX3NlbGVjdG9yTGlzdC5maXJz
dCgpOyBzZWxlY3Rvcjsgc2VsZWN0b3IgPSBtX3NlbGVjdG9yTGlzdC5uZXh0KHNlbGVjdG9yKSkg
eworICAgICAgICBpZiAoIXZhbGlkYXRlU2VsZWN0b3Ioc2VsZWN0b3IpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuaAppbmRleCBi
ZGFmYjk5M2JhY2Y5YzcwZGEzODBmMzM2N2VmYTY4ZDFiODk1ZjEyLi41MjdhYTQ5MDUyYzhjYjI4
ZDlhMjM4OWEzNDk1NGQzNjZlMjE2Y2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKQEAgLTQ2LDE1ICs0NiwxOCBAQCBjbGFzcyBI
VE1MQ29udGVudEVsZW1lbnQ7CiBjbGFzcyBDb250ZW50U2VsZWN0b3JRdWVyeSB7CiAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoQ29udGVudFNlbGVjdG9yUXVlcnkpOwogcHVibGljOgotICAgIGV4
cGxpY2l0IENvbnRlbnRTZWxlY3RvclF1ZXJ5KEhUTUxDb250ZW50RWxlbWVudCopOworICAgIGV4
cGxpY2l0IENvbnRlbnRTZWxlY3RvclF1ZXJ5KGNvbnN0IEhUTUxDb250ZW50RWxlbWVudCopOwog
CisgICAgYm9vbCBpc1ZhbGlkU2VsZWN0b3IoKSBjb25zdDsKICAgICBib29sIG1hdGNoZXMoTm9k
ZSopIGNvbnN0OwotCiBwcml2YXRlOgotICAgIEhUTUxDb250ZW50RWxlbWVudCogbV9jb250ZW50
RWxlbWVudDsKKyAgICBib29sIHZhbGlkYXRlU2VsZWN0b3JMaXN0KCk7CisKKyAgICBjb25zdCBI
VE1MQ29udGVudEVsZW1lbnQqIG1fY29udGVudEVsZW1lbnQ7CiAgICAgU2VsZWN0b3JEYXRhTGlz
dCBtX3NlbGVjdG9yczsKICAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rvckxpc3Q7CiAgICAg
U2VsZWN0b3JDaGVja2VyIG1fc2VsZWN0b3JDaGVja2VyOworICAgIGJvb2wgbV9pc1ZhbGlkU2Vs
ZWN0b3I7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9I
VE1MQ29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENv
bnRlbnRFbGVtZW50LmNwcAppbmRleCBkNDE2NTJmMGYyNDM4MjNmNjRiNjc0MWNkMWVjNTMxNDhm
ZTIxZWVmLi42NzJiYjU5NGU1YmZlNTkzYzA3Yjk4YzAyMWJiMmZmMmVhYzZlNzA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAg
LTkxLDYgKzkxLDEyIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgSFRNTENvbnRlbnRFbGVtZW50Ojpz
ZWxlY3QoKSBjb25zdAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoc2VsZWN0QXR0cik7CiB9CiAK
K2Jvb2wgSFRNTENvbnRlbnRFbGVtZW50Ojppc1NlbGVjdFZhbGlkKCkgY29uc3QKK3sKKyAgICBD
b250ZW50U2VsZWN0b3JRdWVyeSBxdWVyeSh0aGlzKTsKKyAgICByZXR1cm4gcXVlcnkuaXNWYWxp
ZFNlbGVjdG9yKCk7Cit9CisKIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpzZXRTZWxlY3QoY29u
c3QgQXRvbWljU3RyaW5nJiBzZWxlY3RWYWx1ZSkKIHsKICAgICBzZXRBdHRyaWJ1dGUoc2VsZWN0
QXR0ciwgc2VsZWN0VmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvSFRNTENvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuaAppbmRleCBhMTE3YTQ4MWNmMWU0ODI1YzcxNDE3ZDQ0Nzg3OTg2ZWI2
MWQxZmU1Li5jZDkxN2MwNGU2YzE2ZjRhZTY1NjZkNDUxZDRhYTVjMDcwYjk5NDQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAtNjIs
NiArNjIsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCogaW5jbHVz
aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsgfQogICAgIGJvb2wgaGFz
SW5jbHVzaW9uKCkgY29uc3QgeyByZXR1cm4gaW5jbHVzaW9ucygpLT5maXJzdCgpOyB9CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RWYWxpZCgpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAg
SFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggN2U0ODFjYTU3YjJiMDc2YTkwODAx
ZmQwYzQ5YjhiMGM0YWNjOWQ5NS4uOWZlNmNlNTM0YzM2YzVlYzI1YTZiZjM2MTY1MDViYmE5MzBk
MTI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTQ4LDYgKzE0OCwx
NiBAQCBFbGVtZW50KiBJbnRlcm5hbHM6OmdldEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KE5vZGUq
IHNoYWRvd1Jvb3QsIGNvbnN0IFN0cmluZyYgaQogICAgIHJldHVybiB0b1NoYWRvd1Jvb3Qoc2hh
ZG93Um9vdCktPmdldEVsZW1lbnRCeUlkKGlkKTsKIH0KIAorYm9vbCBJbnRlcm5hbHM6OmlzVmFs
aWRDb250ZW50U2VsZWN0KEVsZW1lbnQqIGNvbnRlbnRFbGVtZW50LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWNvbnRlbnRFbGVtZW50IHx8ICFjb250ZW50RWxlbWVudC0+aXNDb250
ZW50RWxlbWVudCgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRvSFRNTENvbnRlbnRFbGVtZW50
KGNvbnRlbnRFbGVtZW50KS0+aXNTZWxlY3RWYWxpZCgpOworfQorCiBTdHJpbmcgSW50ZXJuYWxz
OjplbGVtZW50UmVuZGVyVHJlZUFzVGV4dChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2Rl
JiBlYykKIHsKICAgICBpZiAoIWVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDNlMjgxYmRlMTI5OTllYTM5NzkyNzUwYjc3MzIyNDE3NDg5M2RjZjIuLjU3ZTE0MWRi
ODdkMjcyNDZmYzBlYzI3Y2M1ZjM5ZWY5NDEwMzY4ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtNjcsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHNoYWRvd1BzZXVk
b0lkKEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxFbGVtZW50PiBj
cmVhdGVDb250ZW50RWxlbWVudChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBFbGVt
ZW50KiBnZXRFbGVtZW50QnlJZEluU2hhZG93Um9vdChOb2RlKiBzaGFkb3dSb290LCBjb25zdCBT
dHJpbmcmIGlkLCBFeGNlcHRpb25Db2RlJik7CisgICAgYm9vbCBpc1ZhbGlkQ29udGVudFNlbGVj
dChFbGVtZW50KiBjb250ZW50RWxlbWVudCwgRXhjZXB0aW9uQ29kZSYpOwogCiAjaWYgRU5BQkxF
KElOUFVUX0NPTE9SKQogICAgIHZvaWQgc2VsZWN0Q29sb3JJbkNvbG9yQ2hvb3NlcihFbGVtZW50
KiwgY29uc3QgU3RyaW5nJiBjb2xvclZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAppbmRleCA4NzQ4NTc5MmRkNjIzODA3MzMxODRkMWU2NDQ3YzdhMDkxN2UxMjhhLi45NzVl
YmE5MTgyMTQwM2E4OGEyYWUyOGE2YWE5ZmEwODIxMWVhMjEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCkBAIC00Myw2ICs0Myw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAg
ICBET01TdHJpbmcgc2hhZG93UHNldWRvSWQoaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIEVsZW1lbnQgY3JlYXRlQ29udGVudEVsZW1lbnQoaW4gRG9j
dW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICBFbGVtZW50IGdl
dEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KGluIE5vZGUgc2hhZG93Um9vdCwgaW4gRE9NU3RyaW5n
IGlkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgYm9vbGVhbiBpc1ZhbGlkQ29udGVu
dFNlbGVjdChpbiBFbGVtZW50IGNvbnRlbnRFbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
IAogI2lmIGRlZmluZWQoRU5BQkxFX0lOUFVUX0NPTE9SKSAmJiBFTkFCTEVfSU5QVVRfQ09MT1IK
ICAgICAgICAgdm9pZCBzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKGluIEVsZW1lbnQgZWxlbWVu
dCwgaW4gRE9NU3RyaW5nIGNvbG9yVmFsdWUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDRlNGIzNTU0YzNkODNlY2VlZjdh
MTAwMDVhZWM1MmFmYWMzYmYwN2EuLmE5MzViOWE4NDc3ZWJiNWE3YWMxYzk1YTZmZmVmOGZlNjk1
MTY0MDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMS0yMiAgU2hpbnlhIEthd2FuYWth
ICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIFRoZSBxdWVyeSBzZWxlY3RvciBmb3Ig
SFRNTENvbnRlbnRFbGVtZW50IHNob3VsZCBmb2xsb3cgdGhlIHNoYWRvdyBkb20gc3BlYy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1OTQ2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9z
aGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVyeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvZG9tL3NoYWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5Lmh0bWw6IEFkZGVkLgor
CiAyMDEyLTAxLTIyICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgog
CiAgICAgICAgIE5vdCByZXZpZXdlZC4gRml4IHR5cG8sIHdoaWNoIG1ha2VzIHRoZSBzdHlsZSBi
b3Qgd2FybiBvbiBldmVyeSBwYXRjaC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNzU1ZTcyM2QwMTMzN2MwYjAwZmFmZWZiOTNhMmFlYjdlZjQ2ZTE1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQtc2VsZWN0b3It
cXVlcnktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTM0IEBACitUaGlzIHRlc3QgY2hlY2tzIHNl
bGVjdCBhdHRyaWJ1dGUgb2YgY29udGVudCBlbGVtZW50IGlzIHZhbGlkLgorCitudWxsCitQQVNT
IGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorCitQQVNT
IGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorbnN8ZGl2
CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQor
KnxkaXYKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0
cnVlCit8ZGl2CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkg
aXMgdHJ1ZQorZGl2CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkgaXMgdHJ1ZQorbnN8KgorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNv
bnRlbnQpIGlzIHRydWUKKyp8KgorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0
KGNvbnRlbnQpIGlzIHRydWUKK3wqCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgdHJ1ZQorKgorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIHRydWUKKy5lbGVtCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorcC5lbGVtCitQQVNTIGludGVybmFscy5oYXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZm9vLmVsZW0KK1BBU1MgaW50ZXJuYWxz
Lmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisqLnJpZ2h0CitQQVNTIGlu
dGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorI2VsZW0KK1BB
U1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitwI2Vs
ZW0KK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
Citmb28jZWxlbQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQp
IGlzIHRydWUKKyojc29tZXRoaW5nCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgdHJ1ZQorZGl2W3RpdGxlXQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRD
b250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdltjbGFzcz0iZXhhbXBsZSJdCitQQVNT
IGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2W2hl
bGxvPSJDbGV2ZWxhbmQiXVtnb29kYnllPSJDb2x1bWJ1cyJdCitQQVNTIGludGVybmFscy5oYXNW
YWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2W3JlbH49ImNvcHlyaWdodCJd
CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQor
ZGl2W2hyZWY9Imh0dHA6Ly93d3cuZXhhbXBsZS5jb20vIl0KK1BBU1MgaW50ZXJuYWxzLmhhc1Zh
bGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXZbaHJlZmxhbmd8PSJlbiJdCitQ
QVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2
W2NoYXJhY3Rlcj1yb21lb10KK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChj
b250ZW50KSBpcyB0cnVlCitkaXY6bGluaworUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50
U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2Rpdjp2aXNpdGVkCitQQVNTIGludGVybmFscy5oYXNW
YWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2OnRhcmdldAorUEFTUyBpbnRl
cm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjplbmFibGVk
CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQor
ZGl2OmNoZWNrZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyB0cnVlCitkaXY6aW5kZXRlcm1pbmF0ZQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250
ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpudGgtY2hpbGQoMSkKK1BBU1MgaW50ZXJu
YWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6bnRoLWxhc3Qt
Y2hpbGQoMSkKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCitkaXY6bnRoLW9mLXR5cGUoMSkKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVu
dFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6bnRoLW9mLWxhc3QtdHlwZSgxKQorUEFTUyBp
bnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpmaXJz
dC1jaGlsZAorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlz
IHRydWUKK2RpdjpsYXN0LWNoaWxkCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgdHJ1ZQorZGl2OmZpcnN0LW9mLXR5cGUKK1BBU1MgaW50ZXJuYWxzLmhh
c1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6bGFzdC1vZi10eXBlCitQ
QVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2
Om9ubHktb2YtdHlwZQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRl
bnQpIGlzIHRydWUKK2RpdjpmaXJzdC1vZi10eXBlOmxhc3Qtb2YtdHlwZQorUEFTUyBpbnRlcm5h
bHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2Rpdi5lbGVtOnZpc2l0
ZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
CisqOnZpc2l0ZWQKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyB0cnVlCitkaXYsIGRpdgorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0
KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpmaXJzdC1vZi10eXBlLCBkaXYKK1BBU1MgaW50ZXJuYWxz
Lmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXYsIGRpdjpmaXJzdC1v
Zi10eXBlCitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMg
dHJ1ZQorZGl2OmZpcnN0LW9mLXR5cGUsIGRpdjpsYXN0LW9mLXR5cGUKK1BBU1MgaW50ZXJuYWxz
Lmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXYgZGl2CitQQVNTIGlu
dGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK2RpdiA+IGRp
dgorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNl
CitkaXYgKyBkaXYKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyBmYWxzZQorZGl2IH4gZGl2CitQQVNTIGludGVybmFscy5oYXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgZmFsc2UKK2Rpdjpub3QoZGl2KQorUEFTUyBpbnRlcm5hbHMuaGFzVmFs
aWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6cm9vdAorUEFTUyBpbnRlcm5h
bHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6bGFuZyhlbikK
K1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQor
ZGl2OjpiZWZvcmUKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyBmYWxzZQorZGl2OjphZnRlcgorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6OmZpcnN0LWxpbmUKK1BBU1MgaW50ZXJuYWxzLmhh
c1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2OjpmaXJzdC1sZXR0ZXIK
K1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQor
ZGl2OmFjdGl2ZQorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQp
IGlzIGZhbHNlCitkaXY6aG92ZXIKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyBmYWxzZQorZGl2OmZvY3VzCitQQVNTIGludGVybmFscy5oYXNWYWxpZENv
bnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK2RpdiBkaXY6bm90KGRpdikKK1BBU1MgaW50
ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2Om5vdChk
aXYpIGRpdgorUEFTUyBpbnRlcm5hbHMuaGFzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlz
IGZhbHNlCitkaXYgc3BhbiBkaXYKK1BBU1MgaW50ZXJuYWxzLmhhc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9j
b250ZW50LXNlbGVjdG9yLXF1ZXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
Y29udGVudC1zZWxlY3Rvci1xdWVyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmYmMzNmRiYzM5ZDY4MzE5
NDIyMjUyOWM1NGQ3YjkwNWI3ZWQ0MDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVyeS5odG1sCkBAIC0wLDAgKzEsNzYg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGlzIHRlc3QgY2hlY2tzIHNlbGVjdCBhdHRyaWJ1dGUgb2YgY29udGVudCBlbGVtZW50IGlz
IHZhbGlkLjwvcD4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVy
Ij48L2Rpdj4KKworPHNjcmlwdD4KK3ZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29udGFpbmVyIik7CisKK3ZhciBjb250ZW50OworZnVuY3Rpb24gdGVzdChzZWxlY3Qs
IHZhbGlkKSB7CisgICAgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChk
b2N1bWVudCk7CisgICAgaWYgKHNlbGVjdCAhPSBudWxsKQorICAgICAgICBjb250ZW50LnNldEF0
dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKKworICAgIGRlYnVnKHNlbGVjdCk7CisgICAgaWYg
KHZhbGlkKQorICAgICAgICBzaG91bGRCZSgiaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0
KGNvbnRlbnQpIiwgInRydWUiKTsKKyAgICBlbHNlCisgICAgICAgIHNob3VsZEJlKCJpbnRlcm5h
bHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkiLCAiZmFsc2UiKTsKK30KKwordmFyIGRh
dGFPZlZhbGlkQ2FzZXMgPSBbCisgICAgbnVsbCwgJycsCisgICAgJ25zfGRpdicsICcqfGRpdics
ICd8ZGl2JywgJ2RpdicsCisgICAgJ25zfConLCAnKnwqJywgJ3wqJywgJyonLAorICAgICcuZWxl
bScsICdwLmVsZW0nLCAnZm9vLmVsZW0nLCAnKi5yaWdodCcsCisgICAgJyNlbGVtJywgJ3AjZWxl
bScsICdmb28jZWxlbScsICcqI3NvbWV0aGluZycsCisgICAgJ2Rpdlt0aXRsZV0nLCAnZGl2W2Ns
YXNzPSJleGFtcGxlIl0nLCAnZGl2W2hlbGxvPSJDbGV2ZWxhbmQiXVtnb29kYnllPSJDb2x1bWJ1
cyJdJywKKyAgICAnZGl2W3JlbH49ImNvcHlyaWdodCJdJywgJ2RpdltocmVmPSJodHRwOi8vd3d3
LmV4YW1wbGUuY29tLyJdJywKKyAgICAnZGl2W2hyZWZsYW5nfD0iZW4iXScsICdkaXZbY2hhcmFj
dGVyPXJvbWVvXScsCisgICAgJ2RpdjpsaW5rJywgJ2Rpdjp2aXNpdGVkJywgJ2Rpdjp0YXJnZXQn
LCAnZGl2OmVuYWJsZWQnLCAnZGl2OmNoZWNrZWQnLAorICAgICdkaXY6aW5kZXRlcm1pbmF0ZScs
ICdkaXY6bnRoLWNoaWxkKDEpJywgJ2RpdjpudGgtbGFzdC1jaGlsZCgxKScsICdkaXY6bnRoLW9m
LXR5cGUoMSknLAorICAgICdkaXY6bnRoLWxhc3Qtb2YtdHlwZSgxKScsICdkaXY6Zmlyc3QtY2hp
bGQnLCAnZGl2Omxhc3QtY2hpbGQnLCAnZGl2OmZpcnN0LW9mLXR5cGUnLAorICAgICdkaXY6bGFz
dC1vZi10eXBlJywgJ2Rpdjpvbmx5LW9mLXR5cGUnLAorICAgICdkaXY6Zmlyc3Qtb2YtdHlwZTps
YXN0LW9mLXR5cGUnLCAnZGl2LmVsZW06dmlzaXRlZCcsICcqOnZpc2l0ZWQnLAorICAgICdkaXYs
IGRpdicsICdkaXY6Zmlyc3Qtb2YtdHlwZSwgZGl2JywgJ2RpdiwgZGl2OmZpcnN0LW9mLXR5cGUn
LCAnZGl2OmZpcnN0LW9mLXR5cGUsIGRpdjpsYXN0LW9mLXR5cGUnLAorICAgICcgZGl2LCAgICAg
IGRpdiAgICAgJywKK107CisKK3ZhciBkYXRhT2ZJbnZhbGlkQ2FzZXMgPSBbCisgICAgJ2RpdiBk
aXYnLCAnZGl2ID4gZGl2JywgJ2RpdiArIGRpdicsICdkaXYgfiBkaXYnLAorICAgICdkaXY6bm90
KGRpdiknLCAnZGl2OnJvb3QnLCAnZGl2OmxhbmcoZW4pJywKKyAgICAnZGl2OjpiZWZvcmUnLCAn
ZGl2OjphZnRlcicsICdkaXY6OmZpcnN0LWxpbmUnLCAnZGl2OjpmaXJzdC1sZXR0ZXInLAorICAg
ICdkaXY6YWN0aXZlJywgJ2Rpdjpob3ZlcicsICdkaXY6Zm9jdXMnLAorICAgICdkaXYgZGl2Om5v
dChkaXYpJywgJ2Rpdjpub3QoZGl2KSBkaXYnLCAnZGl2IHNwYW4gZGl2JywKKyAgICAnZGl2IDwg
ZGl2JywgJ2RpdiAtIGR2aScsICc8IGRpdicsICcrZGl2JywgJ35kaXYnLCAnZGl2OiEnLCAnIToh
JywgJ2Rpdjo6IScsICdkaXY6OmZpcnN0X29mX3R5cGUnLAorICAgICdwZTtybycsICdAc2NyZWVu
JywgJ0BpbXBvcnQgInN0eWxlLmNzcyInLCAnZGl2IDpmaXJzdC1vZi10eXBlJywgJ2Rpdjo6Zmly
c3Qtb2YtdHlwZScsCisgICAgJyBkaXYsICxkaXYnLCAnZGl2IFwnXCcnCitdCisKK2Z1bmN0aW9u
IGRvVGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciB8fCAhd2lu
ZG93LmludGVybmFscykgeworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRh
T2ZWYWxpZENhc2VzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICB0ZXN0KGRhdGFPZlZhbGlkQ2Fz
ZXNbaV0sIHRydWUpOworICAgIH0KKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFPZkludmFs
aWRDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAgICAgdGVzdChkYXRhT2ZJbnZhbGlkQ2FzZXNb
aV0sIGZhbHNlKTsKKyAgICB9Cit9CisKK2RvVGVzdCgpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123524</attachid>
            <date>2012-01-22 23:37:36 -0800</date>
            <delta_ts>2012-01-23 20:44:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75946-20120123163734.patch</filename>
            <type>text/plain</type>
            <size>20082</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZiNDI0ZDk3NmNhYzcw
YTU2NTQ0NzIxYTEwZWE4ODMxOTM2OWU0Yy4uNzUwZTk0MmUxODQ3ODFmMGY4YWQyYTZkMzI2NmUw
NDc2NTlmMzYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAxLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVGhlIHF1ZXJ5IHNl
bGVjdG9yIGZvciBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIGZvbGxvdyB0aGUgc2hhZG93IGRv
bSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzU5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
aGVja3MgdGhlIHF1ZXJ5IHNlbGVjdG9yIG9mIEhUTUxDb250ZW50RWxlbWVudCBpcyB2YWxpZC4K
KyAgICAgICAgSWYgbm90IHZhbGlkLCB0aGUgc2VsZWN0b3Igd29uJ3QgbWF0Y2ggYW55dGhpbmcs
IGFuZCBzaG93cyBmYWxsYmFjayBlbGVtZW50LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3No
YWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5Lmh0bWwKKworICAgICAgICAqIGh0bWwvc2hhZG93
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxl
Y3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0b3JRdWVyeSk6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50U2VsZWN0b3JRdWVyeTo6aXNWYWxpZFNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRTZWxlY3RvclF1ZXJ5OjptYXRjaGVzKToKKyAgICAgICAgICBXaGVuIGEgc2VsZWN0IHF1
ZXJ5IGlzIG5vdCB2YWxpZCwgYW55IGVsZW1lbnQgd29uJ3QgYmUgbWF0Y2hlZC4KKyAgICAgICAg
KFdlYkNvcmU6OnZhbGlkYXRlU3ViU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRh
dGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VsZWN0b3JRdWVyeTo6dmFs
aWRhdGVTZWxlY3Rvckxpc3QpOgorICAgICAgICAgIFZhbGlkYXRlIHNlbGVjdG9ycy4KKyAgICAg
ICAgKiBodG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29u
dGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQpOgorICAgICAgICAgIFJldHVybnMgdHJ1ZSBpZiBz
ZWxlY3QgYXR0cmlidXRlIGlzIHZhbGlkLgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6aXNWYWxpZENvbnRlbnRTZWxlY3QpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDEyLTAxLTIyICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBBVEsgdGV4dC1jYXJldC1tb3ZlZCBhbmQgdGV4dC1zZWxlY3Rpb24tY2hh
bmdlZCBldmVudHMgbm90IGJlaW5nIGVtaXR0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAppbmRleCAyYmY4ZTUxNzEwN2Q5OGY1
NWZkMDNhMjM5M2U1OTA4YmJhN2U0ZjlhLi5jNGExMjJiYjZlOTkxYzAyNTAwZTIzODdmMzZkZDg2
OGE1YzU2NDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50
U2VsZWN0b3JRdWVyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVu
dFNlbGVjdG9yUXVlcnkuY3BwCkBAIC0zMywxOSArMzMsMjggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1Db250ZW50U2VsZWN0b3JRdWVyeTo6Q29udGVudFNlbGVjdG9yUXVlcnkoSFRNTENv
bnRlbnRFbGVtZW50KiBlbGVtZW50KQorQ29udGVudFNlbGVjdG9yUXVlcnk6OkNvbnRlbnRTZWxl
Y3RvclF1ZXJ5KGNvbnN0IEhUTUxDb250ZW50RWxlbWVudCogZWxlbWVudCkKICAgICA6IG1fY29u
dGVudEVsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fc2VsZWN0b3JDaGVja2VyKGVsZW1lbnQtPmRv
Y3VtZW50KCksICFlbGVtZW50LT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKIHsKICAgICBt
X3NlbGVjdG9yQ2hlY2tlci5zZXRDb2xsZWN0aW5nUnVsZXNPbmx5KHRydWUpOwogCi0gICAgaWYg
KGVsZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IGVsZW1lbnQtPnNlbGVjdCgpLmlzRW1wdHko
KSkKKyAgICBpZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2VsZWN0
KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIG1faXNWYWxpZFNlbGVjdG9yID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIENTU1BhcnNlciBwYXJzZXIodHJ1ZSk7CiAgICAgcGFy
c2VyLnBhcnNlU2VsZWN0b3IoZWxlbWVudC0+c2VsZWN0KCksIGVsZW1lbnQtPmRvY3VtZW50KCks
IG1fc2VsZWN0b3JMaXN0KTsKIAotICAgIG1fc2VsZWN0b3JzLmluaXRpYWxpemUobV9zZWxlY3Rv
ckxpc3QpOworICAgIG1faXNWYWxpZFNlbGVjdG9yID0gQ29udGVudFNlbGVjdG9yUXVlcnk6OnZh
bGlkYXRlU2VsZWN0b3JMaXN0KCk7CisgICAgaWYgKG1faXNWYWxpZFNlbGVjdG9yKQorICAgICAg
ICBtX3NlbGVjdG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JMaXN0KTsKK30KKworYm9vbCBDb250
ZW50U2VsZWN0b3JRdWVyeTo6aXNWYWxpZFNlbGVjdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9pc1ZhbGlkU2VsZWN0b3I7CiB9CiAKIGJvb2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNo
ZXMoTm9kZSogbm9kZSkgY29uc3QKQEAgLTU5LDEwICs2OCw5NyBAQCBib29sIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5OjptYXRjaGVzKE5vZGUqIG5vZGUpIGNvbnN0CiAgICAgaWYgKG1fY29udGVudEVs
ZW1lbnQtPnNlbGVjdCgpLmlzTnVsbCgpIHx8IG1fY29udGVudEVsZW1lbnQtPnNlbGVjdCgpLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBpZiAoIW1faXNWYWxpZFNlbGVj
dG9yKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5v
ZGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIG1fc2VsZWN0b3JzLm1h
dGNoZXMobV9zZWxlY3RvckNoZWNrZXIsIHRvRWxlbWVudChub2RlKSk7CiB9CiAKK3N0YXRpYyBi
b29sIHZhbGlkYXRlU3ViU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQoreworICAgIHN3
aXRjaCAoc2VsZWN0b3ItPm1fbWF0Y2gpIHsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpOb25lOgor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OklkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNsYXNzOgor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkV4YWN0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlNldDoK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpMaXN0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6Okh5cGhl
bjoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpDb250YWluOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OkJlZ2luOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkVuZDoKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudDoKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBhZ2VQc2V1ZG9DbGFzczoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzczoKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisKKyAgICBzd2l0Y2ggKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsKKyAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9FbXB0eToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rOgor
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvVGFyZ2V0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuYWJsZWQ6Cisg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGlzYWJsZWQ6CisgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2hlY2tlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbmRldGVybWlu
YXRlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkOgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb050aExhc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9OdGhPZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdE9mVHlwZToK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkOgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0xhc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJz
dE9mVHlwZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0T2ZUeXBlOgorICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlPZlR5cGU6CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0YXRpYyBi
b29sIHZhbGlkYXRlU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQoreworICAgIEFTU0VS
VChzZWxlY3Rvcik7CisKKyAgICBpZiAoIXZhbGlkYXRlU3ViU2VsZWN0b3Ioc2VsZWN0b3IpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDU1NTZWxlY3RvciogcHJldlN1YlNlbGVjdG9y
ID0gc2VsZWN0b3I7CisgICAgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gc2VsZWN0b3ItPnRh
Z0hpc3RvcnkoKTsKKworICAgIHdoaWxlIChzdWJTZWxlY3RvcikgeworICAgICAgICBpZiAocHJl
dlN1YlNlbGVjdG9yLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcikKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVjdG9y
KHN1YlNlbGVjdG9yKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBwcmV2
U3ViU2VsZWN0b3IgPSBzdWJTZWxlY3RvcjsKKyAgICAgICAgc3ViU2VsZWN0b3IgPSBzdWJTZWxl
Y3Rvci0+dGFnSGlzdG9yeSgpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCitib29s
IENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojp2YWxpZGF0ZVNlbGVjdG9yTGlzdCgpCit7CisgICAgaWYg
KCFtX3NlbGVjdG9yTGlzdC5maXJzdCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBm
b3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0LmZpcnN0KCk7IHNlbGVj
dG9yOyBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0Lm5leHQoc2VsZWN0b3IpKSB7CisgICAgICAg
IGlmICghdmFsaWRhdGVTZWxlY3RvcihzZWxlY3RvcikpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCmluZGV4IGJkYWZiOTkzYmFj
ZjljNzBkYTM4MGYzMzY3ZWZhNjhkMWI4OTVmMTIuLjUyN2FhNDkwNTJjOGNiMjhkOWEyMzg5YTM0
OTU0ZDM2NmUyMTZjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0Nv
bnRlbnRTZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudFNlbGVjdG9yUXVlcnkuaApAQCAtNDYsMTUgKzQ2LDE4IEBAIGNsYXNzIEhUTUxDb250ZW50
RWxlbWVudDsKIGNsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShDb250ZW50U2VsZWN0b3JRdWVyeSk7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29u
dGVudFNlbGVjdG9yUXVlcnkoSFRNTENvbnRlbnRFbGVtZW50Kik7CisgICAgZXhwbGljaXQgQ29u
dGVudFNlbGVjdG9yUXVlcnkoY29uc3QgSFRNTENvbnRlbnRFbGVtZW50Kik7CiAKKyAgICBib29s
IGlzVmFsaWRTZWxlY3RvcigpIGNvbnN0OwogICAgIGJvb2wgbWF0Y2hlcyhOb2RlKikgY29uc3Q7
Ci0KIHByaXZhdGU6Ci0gICAgSFRNTENvbnRlbnRFbGVtZW50KiBtX2NvbnRlbnRFbGVtZW50Owor
ICAgIGJvb2wgdmFsaWRhdGVTZWxlY3Rvckxpc3QoKTsKKworICAgIGNvbnN0IEhUTUxDb250ZW50
RWxlbWVudCogbV9jb250ZW50RWxlbWVudDsKICAgICBTZWxlY3RvckRhdGFMaXN0IG1fc2VsZWN0
b3JzOwogICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKICAgICBTZWxlY3RvckNo
ZWNrZXIgbV9zZWxlY3RvckNoZWNrZXI7CisgICAgYm9vbCBtX2lzVmFsaWRTZWxlY3RvcjsKIH07
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1l
bnQuY3BwCmluZGV4IGQ0MTY1MmYwZjI0MzgyM2Y2NGI2NzQxY2QxZWM1MzE0OGZlMjFlZWYuLjY3
MmJiNTk0ZTViZmU1OTNjMDdiOThjMDIxYmIyZmYyZWFjNmU3MDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtOTEsNiArOTEs
MTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdCgpIGNv
bnN0CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKIH0KIAorYm9vbCBIVE1M
Q29udGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQoKSBjb25zdAoreworICAgIENvbnRlbnRTZWxl
Y3RvclF1ZXJ5IHF1ZXJ5KHRoaXMpOworICAgIHJldHVybiBxdWVyeS5pc1ZhbGlkU2VsZWN0b3Io
KTsKK30KKwogdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnNldFNlbGVjdChjb25zdCBBdG9taWNT
dHJpbmcmIHNlbGVjdFZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZShzZWxlY3RBdHRyLCBzZWxl
Y3RWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5oCmluZGV4IGExMTdhNDgxY2YxZTQ4MjVjNzE0MTdkNDQ3ODc5ODZlYjYxZDFmZTUuLmNk
OTE3YzA0ZTZjMTZmNGFlNjU2NmQ0NTFkNGFhNWMwNzBiOTk0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC02Miw2ICs2Miw4IEBA
IHB1YmxpYzoKICAgICBjb25zdCBTaGFkb3dJbmNsdXNpb25MaXN0KiBpbmNsdXNpb25zKCkgY29u
c3QgeyByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOyB9CiAgICAgYm9vbCBoYXNJbmNsdXNpb24o
KSBjb25zdCB7IHJldHVybiBpbmNsdXNpb25zKCktPmZpcnN0KCk7IH0KIAorICAgIHZpcnR1YWwg
Ym9vbCBpc1NlbGVjdFZhbGlkKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBIVE1MQ29udGVu
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3ZTQ4MWNhNTdiMmIwNzZhOTA4MDFmZDBjNDliOGIw
YzRhY2M5ZDk1Li45ZmU2Y2U1MzRjMzZjNWVjMjVhNmJmMzYxNjUwNWJiYTkzMGQxMjljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNDgsNiArMTQ4LDE2IEBAIEVsZW1l
bnQqIEludGVybmFsczo6Z2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoTm9kZSogc2hhZG93Um9v
dCwgY29uc3QgU3RyaW5nJiBpCiAgICAgcmV0dXJuIHRvU2hhZG93Um9vdChzaGFkb3dSb290KS0+
Z2V0RWxlbWVudEJ5SWQoaWQpOwogfQogCitib29sIEludGVybmFsczo6aXNWYWxpZENvbnRlbnRT
ZWxlY3QoRWxlbWVudCogY29udGVudEVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGlmICghY29udGVudEVsZW1lbnQgfHwgIWNvbnRlbnRFbGVtZW50LT5pc0NvbnRlbnRFbGVtZW50
KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9IVE1MQ29udGVudEVsZW1lbnQoY29udGVudEVs
ZW1lbnQpLT5pc1NlbGVjdFZhbGlkKCk7Cit9CisKIFN0cmluZyBJbnRlcm5hbHM6OmVsZW1lbnRS
ZW5kZXJUcmVlQXNUZXh0KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIGlmICghZWxlbWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggM2Uy
ODFiZGUxMjk5OWVhMzk3OTI3NTBiNzczMjI0MTc0ODkzZGNmMi4uNTdlMTQxZGI4N2QyNzI0NmZj
MGVjMjdjYzVmMzllZjk0MTAzNjhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBA
IC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxlbWVu
dCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUNvbnRl
bnRFbGVtZW50KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIEVsZW1lbnQqIGdldEVs
ZW1lbnRCeUlkSW5TaGFkb3dSb290KE5vZGUqIHNoYWRvd1Jvb3QsIGNvbnN0IFN0cmluZyYgaWQs
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIGlzVmFsaWRDb250ZW50U2VsZWN0KEVsZW1lbnQq
IGNvbnRlbnRFbGVtZW50LCBFeGNlcHRpb25Db2RlJik7CiAKICNpZiBFTkFCTEUoSU5QVVRfQ09M
T1IpCiAgICAgdm9pZCBzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKEVsZW1lbnQqLCBjb25zdCBT
dHJpbmcmIGNvbG9yVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4
IDg3NDg1NzkyZGQ2MjM4MDczMzE4NGQxZTY0NDdjN2EwOTE3ZTEyOGEuLjk3NWViYTkxODIxNDAz
YTg4YTJhZTI4YTZhYTlmYTA4MjExZWEyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKQEAgLTQzLDYgKzQzLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIERPTVN0cmlu
ZyBzaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKICAgICAgICAgRWxlbWVudCBjcmVhdGVDb250ZW50RWxlbWVudChpbiBEb2N1bWVudCBkb2N1
bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVudEJ5
SWRJblNoYWRvd1Jvb3QoaW4gTm9kZSBzaGFkb3dSb290LCBpbiBET01TdHJpbmcgaWQpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgICAgICBib29sZWFuIGlzVmFsaWRDb250ZW50U2VsZWN0KGlu
IEVsZW1lbnQgY29udGVudEVsZW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAjaWYgZGVm
aW5lZChFTkFCTEVfSU5QVVRfQ09MT1IpICYmIEVOQUJMRV9JTlBVVF9DT0xPUgogICAgICAgICB2
b2lkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoaW4gRWxlbWVudCBlbGVtZW50LCBpbiBET01T
dHJpbmcgY29sb3JWYWx1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGU0YjM1NTRjM2Q4M2VjZWVmN2ExMDAwNWFlYzUy
YWZhYzNiZjA3YS4uYTkzNWI5YTg0NzdlYmI1YTdhYzFjOTVhNmZmZWY4ZmU2OTUxNjQwMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFr
QGdvb2dsZS5jb20+CisKKyAgICAgICAgVGhlIHF1ZXJ5IHNlbGVjdG9yIGZvciBIVE1MQ29udGVu
dEVsZW1lbnQgc2hvdWxkIGZvbGxvdyB0aGUgc2hhZG93IGRvbSBzcGVjLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9jb250
ZW50LXNlbGVjdG9yLXF1ZXJ5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vc2hhZG93L2NvbnRlbnQtc2VsZWN0b3ItcXVlcnkuaHRtbDogQWRkZWQuCisKIDIwMTItMDEt
MjIgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAg
Tm90IHJldmlld2VkLiBGaXggdHlwbywgd2hpY2ggbWFrZXMgdGhlIHN0eWxlIGJvdCB3YXJuIG9u
IGV2ZXJ5IHBhdGNoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2Nv
bnRlbnQtc2VsZWN0b3ItcXVlcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
c2hhZG93L2NvbnRlbnQtc2VsZWN0b3ItcXVlcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNi
MjYyMjNkMTA1YzM3ODllMzZmNWI0ZWE5YzZlNzc3MmU4OTcwNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVyeS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNjggQEAKK1RoaXMgdGVzdCBjaGVja3Mgc2VsZWN0IGF0dHJp
YnV0ZSBvZiBjb250ZW50IGVsZW1lbnQgaXMgdmFsaWQuCisKK251bGwKK1BBU1MgaW50ZXJuYWxz
LmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKKworUEFTUyBpbnRlcm5hbHMu
aXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorbnN8ZGl2CitQQVNTIGludGVy
bmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisqfGRpdgorUEFTUyBp
bnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorfGRpdgorUEFT
UyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2CitQ
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCituc3wq
CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisq
fCoKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUK
K3wqCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
CisqCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
CisuZWxlbQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMg
dHJ1ZQorcC5lbGVtCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyB0cnVlCitmb28uZWxlbQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3Qo
Y29udGVudCkgaXMgdHJ1ZQorKi5yaWdodAorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRT
ZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorI2VsZW0KK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250
ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK3AjZWxlbQorUEFTUyBpbnRlcm5hbHMuaXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZm9vI2VsZW0KK1BBU1MgaW50ZXJuYWxz
LmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKKyojc29tZXRoaW5nCitQQVNT
IGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXZbdGl0
bGVdCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
CitkaXZbY2xhc3M9ImV4YW1wbGUiXQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgdHJ1ZQorZGl2W2hlbGxvPSJDbGV2ZWxhbmQiXVtnb29kYnllPSJDb2x1
bWJ1cyJdCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0
cnVlCitkaXZbcmVsfj0iY29weXJpZ2h0Il0KK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50
U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdltocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29t
LyJdCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
CitkaXZbaHJlZmxhbmd8PSJlbiJdCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyB0cnVlCitkaXZbY2hhcmFjdGVyPXJvbWVvXQorUEFTUyBpbnRlcm5hbHMu
aXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2OmxpbmsKK1BBU1MgaW50
ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2Rpdjp2aXNpdGVk
CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitk
aXY6dGFyZ2V0CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyB0cnVlCitkaXY6ZW5hYmxlZAorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3Qo
Y29udGVudCkgaXMgdHJ1ZQorZGl2OmNoZWNrZWQKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250
ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjppbmRldGVybWluYXRlCitQQVNTIGludGVy
bmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6bnRoLWNoaWxk
KDEpCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
CitkaXY6bnRoLWxhc3QtY2hpbGQoMSkKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpudGgtb2YtdHlwZSgxKQorUEFTUyBpbnRlcm5hbHMu
aXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2Om50aC1sYXN0LW9mLXR5
cGUoMSkKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRy
dWUKK2RpdjpmaXJzdC1jaGlsZAorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3Qo
Y29udGVudCkgaXMgdHJ1ZQorZGl2Omxhc3QtY2hpbGQKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRD
b250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpmaXJzdC1vZi10eXBlCitQQVNTIGlu
dGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6bGFzdC1v
Zi10eXBlCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0
cnVlCitkaXY6b25seS1vZi10eXBlCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyB0cnVlCitkaXY6Zmlyc3Qtb2YtdHlwZTpsYXN0LW9mLXR5cGUKK1BBU1Mg
aW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2Rpdi5lbGVt
OnZpc2l0ZWQKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlz
IHRydWUKKyo6dmlzaXRlZAorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29u
dGVudCkgaXMgdHJ1ZQorZGl2LCBkaXYKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpmaXJzdC1vZi10eXBlLCBkaXYKK1BBU1MgaW50ZXJu
YWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdiwgZGl2OmZpcnN0
LW9mLXR5cGUKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlz
IHRydWUKK2RpdjpmaXJzdC1vZi10eXBlLCBkaXY6bGFzdC1vZi10eXBlCitQQVNTIGludGVybmFs
cy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisgZGl2LCAgICAgIGRpdiAg
ICAgCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
CitkaXYgZGl2CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBp
cyBmYWxzZQorZGl2ID4gZGl2CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChj
b250ZW50KSBpcyBmYWxzZQorZGl2ICsgZGl2CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVu
dFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2IH4gZGl2CitQQVNTIGludGVybmFscy5pc1Zh
bGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2Om5vdChkaXYpCitQQVNTIGlu
dGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2OnJvb3QK
K1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitk
aXY6bGFuZyhlbikKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQp
IGlzIGZhbHNlCitkaXY6OmJlZm9yZQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgZmFsc2UKK2Rpdjo6YWZ0ZXIKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRD
b250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6OmZpcnN0LWxpbmUKK1BBU1MgaW50
ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6OmZpcnN0
LWxldHRlcgorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMg
ZmFsc2UKK2RpdjphY3RpdmUKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNv
bnRlbnQpIGlzIGZhbHNlCitkaXY6aG92ZXIKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50
U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6Zm9jdXMKK1BBU1MgaW50ZXJuYWxzLmlzVmFs
aWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXYgZGl2Om5vdChkaXYpCitQQVNT
IGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2Om5v
dChkaXYpIGRpdgorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkg
aXMgZmFsc2UKK2RpdiBzcGFuIGRpdgorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgZmFsc2UKK2RpdiA8IGRpdgorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENv
bnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK2RpdiAtIGR2aQorUEFTUyBpbnRlcm5hbHMu
aXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKKzwgZGl2CitQQVNTIGludGVy
bmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorK2RpdgorUEFTUyBp
bnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK35kaXYKK1BB
U1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6
IQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UK
KyE6IQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFs
c2UKK2Rpdjo6IQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkg
aXMgZmFsc2UKK2Rpdjo6Zmlyc3Rfb2ZfdHlwZQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK3BlO3JvCitQQVNTIGludGVybmFscy5pc1ZhbGlk
Q29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorQHNjcmVlbgorUEFTUyBpbnRlcm5hbHMu
aXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK0BpbXBvcnQgInN0eWxlLmNz
cyIKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNl
CitkaXYgOmZpcnN0LW9mLXR5cGUKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0
KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6OmZpcnN0LW9mLXR5cGUKK1BBU1MgaW50ZXJuYWxzLmlz
VmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCisgZGl2LCAsZGl2CitQQVNTIGlu
dGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2ICcnCitQ
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVyeS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVmYmMzNmRiYzM5ZDY4MzE5NDIyMjUyOWM1NGQ3YjkwNWI3ZWQ0MDMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1z
ZWxlY3Rvci1xdWVyeS5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIHNlbGVj
dCBhdHRyaWJ1dGUgb2YgY29udGVudCBlbGVtZW50IGlzIHZhbGlkLjwvcD4KKzxwcmUgaWQ9ImNv
bnNvbGUiPjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKworPHNjcmlwdD4KK3Zh
ciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisKK3Zh
ciBjb250ZW50OworZnVuY3Rpb24gdGVzdChzZWxlY3QsIHZhbGlkKSB7CisgICAgY29udGVudCA9
IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7CisgICAgaWYgKHNlbGVj
dCAhPSBudWxsKQorICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0
KTsKKworICAgIGRlYnVnKHNlbGVjdCk7CisgICAgaWYgKHZhbGlkKQorICAgICAgICBzaG91bGRC
ZSgiaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIiwgInRydWUiKTsKKyAg
ICBlbHNlCisgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3Qo
Y29udGVudCkiLCAiZmFsc2UiKTsKK30KKwordmFyIGRhdGFPZlZhbGlkQ2FzZXMgPSBbCisgICAg
bnVsbCwgJycsCisgICAgJ25zfGRpdicsICcqfGRpdicsICd8ZGl2JywgJ2RpdicsCisgICAgJ25z
fConLCAnKnwqJywgJ3wqJywgJyonLAorICAgICcuZWxlbScsICdwLmVsZW0nLCAnZm9vLmVsZW0n
LCAnKi5yaWdodCcsCisgICAgJyNlbGVtJywgJ3AjZWxlbScsICdmb28jZWxlbScsICcqI3NvbWV0
aGluZycsCisgICAgJ2Rpdlt0aXRsZV0nLCAnZGl2W2NsYXNzPSJleGFtcGxlIl0nLCAnZGl2W2hl
bGxvPSJDbGV2ZWxhbmQiXVtnb29kYnllPSJDb2x1bWJ1cyJdJywKKyAgICAnZGl2W3JlbH49ImNv
cHlyaWdodCJdJywgJ2RpdltocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyJdJywKKyAgICAn
ZGl2W2hyZWZsYW5nfD0iZW4iXScsICdkaXZbY2hhcmFjdGVyPXJvbWVvXScsCisgICAgJ2Rpdjps
aW5rJywgJ2Rpdjp2aXNpdGVkJywgJ2Rpdjp0YXJnZXQnLCAnZGl2OmVuYWJsZWQnLCAnZGl2OmNo
ZWNrZWQnLAorICAgICdkaXY6aW5kZXRlcm1pbmF0ZScsICdkaXY6bnRoLWNoaWxkKDEpJywgJ2Rp
djpudGgtbGFzdC1jaGlsZCgxKScsICdkaXY6bnRoLW9mLXR5cGUoMSknLAorICAgICdkaXY6bnRo
LWxhc3Qtb2YtdHlwZSgxKScsICdkaXY6Zmlyc3QtY2hpbGQnLCAnZGl2Omxhc3QtY2hpbGQnLCAn
ZGl2OmZpcnN0LW9mLXR5cGUnLAorICAgICdkaXY6bGFzdC1vZi10eXBlJywgJ2Rpdjpvbmx5LW9m
LXR5cGUnLAorICAgICdkaXY6Zmlyc3Qtb2YtdHlwZTpsYXN0LW9mLXR5cGUnLCAnZGl2LmVsZW06
dmlzaXRlZCcsICcqOnZpc2l0ZWQnLAorICAgICdkaXYsIGRpdicsICdkaXY6Zmlyc3Qtb2YtdHlw
ZSwgZGl2JywgJ2RpdiwgZGl2OmZpcnN0LW9mLXR5cGUnLCAnZGl2OmZpcnN0LW9mLXR5cGUsIGRp
djpsYXN0LW9mLXR5cGUnLAorICAgICcgZGl2LCAgICAgIGRpdiAgICAgJywKK107CisKK3ZhciBk
YXRhT2ZJbnZhbGlkQ2FzZXMgPSBbCisgICAgJ2RpdiBkaXYnLCAnZGl2ID4gZGl2JywgJ2RpdiAr
IGRpdicsICdkaXYgfiBkaXYnLAorICAgICdkaXY6bm90KGRpdiknLCAnZGl2OnJvb3QnLCAnZGl2
OmxhbmcoZW4pJywKKyAgICAnZGl2OjpiZWZvcmUnLCAnZGl2OjphZnRlcicsICdkaXY6OmZpcnN0
LWxpbmUnLCAnZGl2OjpmaXJzdC1sZXR0ZXInLAorICAgICdkaXY6YWN0aXZlJywgJ2Rpdjpob3Zl
cicsICdkaXY6Zm9jdXMnLAorICAgICdkaXYgZGl2Om5vdChkaXYpJywgJ2Rpdjpub3QoZGl2KSBk
aXYnLCAnZGl2IHNwYW4gZGl2JywKKyAgICAnZGl2IDwgZGl2JywgJ2RpdiAtIGR2aScsICc8IGRp
dicsICcrZGl2JywgJ35kaXYnLCAnZGl2OiEnLCAnITohJywgJ2Rpdjo6IScsICdkaXY6OmZpcnN0
X29mX3R5cGUnLAorICAgICdwZTtybycsICdAc2NyZWVuJywgJ0BpbXBvcnQgInN0eWxlLmNzcyIn
LCAnZGl2IDpmaXJzdC1vZi10eXBlJywgJ2Rpdjo6Zmlyc3Qtb2YtdHlwZScsCisgICAgJyBkaXYs
ICxkaXYnLCAnZGl2IFwnXCcnCitdCisKK2Z1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAoIXdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciB8fCAhd2luZG93LmludGVybmFscykgeworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhT2ZWYWxpZENhc2VzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgICB0ZXN0KGRhdGFPZlZhbGlkQ2FzZXNbaV0sIHRydWUpOworICAgIH0KKyAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGFPZkludmFsaWRDYXNlcy5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgdGVzdChkYXRhT2ZJbnZhbGlkQ2FzZXNbaV0sIGZhbHNlKTsKKyAgICB9Cit9CisK
K2RvVGVzdCgpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123694</attachid>
            <date>2012-01-23 20:44:45 -0800</date>
            <delta_ts>2012-01-30 02:41:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75946-20120124134442.patch</filename>
            <type>text/plain</type>
            <size>19962</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1Njc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRiOTY3M2IyOTRmMTg1
YzFlZWQwOTgyZTgzNWJiMTdjNzNhYzNhOS4uMzEwMjVhMDFlNzgwNDNiNTg4ZWM4ZGYwYzYyMGU1
NGEzMGZhZmNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAxLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVGhlIHF1ZXJ5IHNl
bGVjdG9yIGZvciBIVE1MQ29udGVudEVsZW1lbnQgc2hvdWxkIGZvbGxvdyB0aGUgc2hhZG93IGRv
bSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzU5NDYKKworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgIENo
ZWNrcyB0aGUgcXVlcnkgc2VsZWN0b3Igb2YgSFRNTENvbnRlbnRFbGVtZW50IGlzIHZhbGlkLgor
ICAgICAgICBJZiBub3QgdmFsaWQsIHRoZSBzZWxlY3RvciB3b24ndCBtYXRjaCBhbnl0aGluZywg
YW5kIHNob3dzIGZhbGxiYWNrIGVsZW1lbnQuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hh
ZG93L2NvbnRlbnQtc2VsZWN0b3ItcXVlcnkuaHRtbAorCisgICAgICAgICogaHRtbC9zaGFkb3cv
Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlbGVj
dG9yUXVlcnk6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRTZWxlY3RvclF1ZXJ5Ojppc1ZhbGlkU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudFNlbGVjdG9yUXVlcnk6Om1hdGNoZXMpOgorICAgICAgICAgIFdoZW4gYSBzZWxlY3QgcXVl
cnkgaXMgbm90IHZhbGlkLCBhbnkgZWxlbWVudCB3b24ndCBiZSBtYXRjaGVkLgorICAgICAgICAo
V2ViQ29yZTo6dmFsaWRhdGVTdWJTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0
ZVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWxlY3RvclF1ZXJ5Ojp2YWxp
ZGF0ZVNlbGVjdG9yTGlzdCk6CisgICAgICAgICAgVmFsaWRhdGUgc2VsZWN0b3JzLgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5Lmg6CisgICAgICAgICogaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6aXNTZWxlY3RWYWxpZCk6CisgICAgICAgICAgUmV0dXJucyB0cnVlIGlmIHNl
bGVjdCBhdHRyaWJ1dGUgaXMgdmFsaWQuCisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRl
bnRFbGVtZW50Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjppc1ZhbGlkQ29udGVudFNlbGVjdCk6CisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIw
MTItMDEtMjMgIFByaWl0IExhZXMgIDxwbGFlc0BwbGFlcy5vcmc+CiAKICAgICAgICAgW0dUS11b
UEFUQ0hdIE1vcmUgYnVpbGQgc2lsZW5jaW5nIHdpdGggKEFNX1ZfLi4uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudFNlbGVjdG9yUXVlcnkuY3BwCmluZGV4IDJi
ZjhlNTE3MTA3ZDk4ZjU1ZmQwM2EyMzkzZTU5MDhiYmE3ZTRmOWEuLmUzNDZkNzcyYTE4ZjQ4NDAx
NzZjNjczY2UzMThlZTFjYzZjNjVlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5jcHAKQEAgLTMzLDE5ICszMywyOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNvbnRlbnRTZWxlY3RvclF1ZXJ5OjpDb250ZW50U2VsZWN0
b3JRdWVyeShIVE1MQ29udGVudEVsZW1lbnQqIGVsZW1lbnQpCitDb250ZW50U2VsZWN0b3JRdWVy
eTo6Q29udGVudFNlbGVjdG9yUXVlcnkoY29uc3QgSFRNTENvbnRlbnRFbGVtZW50KiBlbGVtZW50
KQogICAgIDogbV9jb250ZW50RWxlbWVudChlbGVtZW50KQogICAgICwgbV9zZWxlY3RvckNoZWNr
ZXIoZWxlbWVudC0+ZG9jdW1lbnQoKSwgIWVsZW1lbnQtPmRvY3VtZW50KCktPmluUXVpcmtzTW9k
ZSgpKQogewogICAgIG1fc2VsZWN0b3JDaGVja2VyLnNldENvbGxlY3RpbmdSdWxlc09ubHkodHJ1
ZSk7CiAKLSAgICBpZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxlbWVudC0+c2Vs
ZWN0KCkuaXNFbXB0eSgpKQorICAgIGlmIChlbGVtZW50LT5zZWxlY3QoKS5pc051bGwoKSB8fCBl
bGVtZW50LT5zZWxlY3QoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9pc1ZhbGlkU2VsZWN0b3Ig
PSB0cnVlOwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgQ1NTUGFyc2VyIHBhcnNlcih0
cnVlKTsKICAgICBwYXJzZXIucGFyc2VTZWxlY3RvcihlbGVtZW50LT5zZWxlY3QoKSwgZWxlbWVu
dC0+ZG9jdW1lbnQoKSwgbV9zZWxlY3Rvckxpc3QpOwogCi0gICAgbV9zZWxlY3RvcnMuaW5pdGlh
bGl6ZShtX3NlbGVjdG9yTGlzdCk7CisgICAgbV9pc1ZhbGlkU2VsZWN0b3IgPSBDb250ZW50U2Vs
ZWN0b3JRdWVyeTo6dmFsaWRhdGVTZWxlY3Rvckxpc3QoKTsKKyAgICBpZiAobV9pc1ZhbGlkU2Vs
ZWN0b3IpCisgICAgICAgIG1fc2VsZWN0b3JzLmluaXRpYWxpemUobV9zZWxlY3Rvckxpc3QpOwor
fQorCitib29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojppc1ZhbGlkU2VsZWN0b3IoKSBjb25zdAor
eworICAgIHJldHVybiBtX2lzVmFsaWRTZWxlY3RvcjsKIH0KIAogYm9vbCBDb250ZW50U2VsZWN0
b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBub2RlKSBjb25zdApAQCAtNTksMTAgKzY4LDk0IEBAIGJv
b2wgQ29udGVudFNlbGVjdG9yUXVlcnk6Om1hdGNoZXMoTm9kZSogbm9kZSkgY29uc3QKICAgICBp
ZiAobV9jb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgbV9jb250ZW50RWxlbWVu
dC0+c2VsZWN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIGlmICgh
bV9pc1ZhbGlkU2VsZWN0b3IpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghbm9k
ZS0+aXNFbGVtZW50Tm9kZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4g
bV9zZWxlY3RvcnMubWF0Y2hlcyhtX3NlbGVjdG9yQ2hlY2tlciwgdG9FbGVtZW50KG5vZGUpKTsK
IH0KIAorc3RhdGljIGJvb2wgdmFsaWRhdGVTdWJTZWxlY3RvcihDU1NTZWxlY3Rvciogc2VsZWN0
b3IpCit7CisgICAgc3dpdGNoIChzZWxlY3Rvci0+bV9tYXRjaCkgeworICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6Ok5vbmU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6SWQ6CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6Q2xhc3M6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RXhhY3Q6CisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6U2V0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6Okxpc3Q6CisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6SHlwaGVuOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OkNvbnRhaW46CisgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6QmVnaW46CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6RW5kOgorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50OgorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UGFnZVBzZXVkb0NsYXNz
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzOgorICAgICAgICBicmVhazsKKyAg
ICB9CisKKyAgICBzd2l0Y2ggKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9FbXB0eToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5r
OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvVGFyZ2V0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuYWJsZWQ6
CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGlzYWJsZWQ6CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2hlY2tlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbmRldGVy
bWluYXRlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkOgorICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9OdGhPZlR5cGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdE9mVHlw
ZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkOgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0xhc3RDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9G
aXJzdE9mVHlwZToKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0T2ZUeXBlOgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlPZlR5cGU6CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0YXRp
YyBib29sIHZhbGlkYXRlU2VsZWN0b3IoQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQoreworICAgIEFT
U0VSVChzZWxlY3Rvcik7CisKKyAgICBpZiAoIXZhbGlkYXRlU3ViU2VsZWN0b3Ioc2VsZWN0b3Ip
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBDU1NTZWxlY3RvciogcHJldlN1YlNlbGVj
dG9yID0gc2VsZWN0b3I7CisgICAgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gc2VsZWN0b3It
PnRhZ0hpc3RvcnkoKTsKKworICAgIHdoaWxlIChzdWJTZWxlY3RvcikgeworICAgICAgICBpZiAo
cHJldlN1YlNlbGVjdG9yLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvcikK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCF2YWxpZGF0ZVN1YlNlbGVj
dG9yKHN1YlNlbGVjdG9yKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBw
cmV2U3ViU2VsZWN0b3IgPSBzdWJTZWxlY3RvcjsKKyAgICAgICAgc3ViU2VsZWN0b3IgPSBzdWJT
ZWxlY3Rvci0+dGFnSGlzdG9yeSgpOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiti
b29sIENvbnRlbnRTZWxlY3RvclF1ZXJ5Ojp2YWxpZGF0ZVNlbGVjdG9yTGlzdCgpCit7CisgICAg
aWYgKCFtX3NlbGVjdG9yTGlzdC5maXJzdCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBmb3IgKENTU1NlbGVjdG9yKiBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0LmZpcnN0KCk7IHNl
bGVjdG9yOyBzZWxlY3RvciA9IG1fc2VsZWN0b3JMaXN0Lm5leHQoc2VsZWN0b3IpKSB7CisgICAg
ICAgIGlmICghdmFsaWRhdGVTZWxlY3RvcihzZWxlY3RvcikpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50U2VsZWN0b3JRdWVyeS5oCmluZGV4IGJkYWZiOTkz
YmFjZjljNzBkYTM4MGYzMzY3ZWZhNjhkMWI4OTVmMTIuLjUyN2FhNDkwNTJjOGNiMjhkOWEyMzg5
YTM0OTU0ZDM2NmUyMTZjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
Q29udGVudFNlbGVjdG9yUXVlcnkuaApAQCAtNDYsMTUgKzQ2LDE4IEBAIGNsYXNzIEhUTUxDb250
ZW50RWxlbWVudDsKIGNsYXNzIENvbnRlbnRTZWxlY3RvclF1ZXJ5IHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShDb250ZW50U2VsZWN0b3JRdWVyeSk7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQg
Q29udGVudFNlbGVjdG9yUXVlcnkoSFRNTENvbnRlbnRFbGVtZW50Kik7CisgICAgZXhwbGljaXQg
Q29udGVudFNlbGVjdG9yUXVlcnkoY29uc3QgSFRNTENvbnRlbnRFbGVtZW50Kik7CiAKKyAgICBi
b29sIGlzVmFsaWRTZWxlY3RvcigpIGNvbnN0OwogICAgIGJvb2wgbWF0Y2hlcyhOb2RlKikgY29u
c3Q7Ci0KIHByaXZhdGU6Ci0gICAgSFRNTENvbnRlbnRFbGVtZW50KiBtX2NvbnRlbnRFbGVtZW50
OworICAgIGJvb2wgdmFsaWRhdGVTZWxlY3Rvckxpc3QoKTsKKworICAgIGNvbnN0IEhUTUxDb250
ZW50RWxlbWVudCogbV9jb250ZW50RWxlbWVudDsKICAgICBTZWxlY3RvckRhdGFMaXN0IG1fc2Vs
ZWN0b3JzOwogICAgIENTU1NlbGVjdG9yTGlzdCBtX3NlbGVjdG9yTGlzdDsKICAgICBTZWxlY3Rv
ckNoZWNrZXIgbV9zZWxlY3RvckNoZWNrZXI7CisgICAgYm9vbCBtX2lzVmFsaWRTZWxlY3RvcjsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVs
ZW1lbnQuY3BwCmluZGV4IGQ0MTY1MmYwZjI0MzgyM2Y2NGI2NzQxY2QxZWM1MzE0OGZlMjFlZWYu
LjY3MmJiNTk0ZTViZmU1OTNjMDdiOThjMDIxYmIyZmYyZWFjNmU3MDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtOTEsNiAr
OTEsMTIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBIVE1MQ29udGVudEVsZW1lbnQ6OnNlbGVjdCgp
IGNvbnN0CiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShzZWxlY3RBdHRyKTsKIH0KIAorYm9vbCBI
VE1MQ29udGVudEVsZW1lbnQ6OmlzU2VsZWN0VmFsaWQoKSBjb25zdAoreworICAgIENvbnRlbnRT
ZWxlY3RvclF1ZXJ5IHF1ZXJ5KHRoaXMpOworICAgIHJldHVybiBxdWVyeS5pc1ZhbGlkU2VsZWN0
b3IoKTsKK30KKwogdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnNldFNlbGVjdChjb25zdCBBdG9t
aWNTdHJpbmcmIHNlbGVjdFZhbHVlKQogewogICAgIHNldEF0dHJpYnV0ZShzZWxlY3RBdHRyLCBz
ZWxlY3RWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5oCmluZGV4IGExMTdhNDgxY2YxZTQ4MjVjNzE0MTdkNDQ3ODc5ODZlYjYxZDFmZTUu
LmNkOTE3YzA0ZTZjMTZmNGFlNjU2NmQ0NTFkNGFhNWMwNzBiOTk0NDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC02Miw2ICs2Miw4
IEBAIHB1YmxpYzoKICAgICBjb25zdCBTaGFkb3dJbmNsdXNpb25MaXN0KiBpbmNsdXNpb25zKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOyB9CiAgICAgYm9vbCBoYXNJbmNsdXNp
b24oKSBjb25zdCB7IHJldHVybiBpbmNsdXNpb25zKCktPmZpcnN0KCk7IH0KIAorICAgIHZpcnR1
YWwgYm9vbCBpc1NlbGVjdFZhbGlkKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBIVE1MQ29u
dGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3ZTQ4MWNhNTdiMmIwNzZhOTA4MDFmZDBjNDli
OGIwYzRhY2M5ZDk1Li45ZmU2Y2U1MzRjMzZjNWVjMjVhNmJmMzYxNjUwNWJiYTkzMGQxMjljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNDgsNiArMTQ4LDE2IEBAIEVs
ZW1lbnQqIEludGVybmFsczo6Z2V0RWxlbWVudEJ5SWRJblNoYWRvd1Jvb3QoTm9kZSogc2hhZG93
Um9vdCwgY29uc3QgU3RyaW5nJiBpCiAgICAgcmV0dXJuIHRvU2hhZG93Um9vdChzaGFkb3dSb290
KS0+Z2V0RWxlbWVudEJ5SWQoaWQpOwogfQogCitib29sIEludGVybmFsczo6aXNWYWxpZENvbnRl
bnRTZWxlY3QoRWxlbWVudCogY29udGVudEVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIGlmICghY29udGVudEVsZW1lbnQgfHwgIWNvbnRlbnRFbGVtZW50LT5pc0NvbnRlbnRFbGVt
ZW50KCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gdG9IVE1MQ29udGVudEVsZW1lbnQoY29udGVu
dEVsZW1lbnQpLT5pc1NlbGVjdFZhbGlkKCk7Cit9CisKIFN0cmluZyBJbnRlcm5hbHM6OmVsZW1l
bnRSZW5kZXJUcmVlQXNUZXh0KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIGlmICghZWxlbWVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXgg
M2UyODFiZGUxMjk5OWVhMzk3OTI3NTBiNzczMjI0MTc0ODkzZGNmMi4uNTdlMTQxZGI4N2QyNzI0
NmZjMGVjMjdjYzVmMzllZjk0MTAzNjhkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgc2hhZG93UHNldWRvSWQoRWxl
bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUNv
bnRlbnRFbGVtZW50KERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIEVsZW1lbnQqIGdl
dEVsZW1lbnRCeUlkSW5TaGFkb3dSb290KE5vZGUqIHNoYWRvd1Jvb3QsIGNvbnN0IFN0cmluZyYg
aWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIGlzVmFsaWRDb250ZW50U2VsZWN0KEVsZW1l
bnQqIGNvbnRlbnRFbGVtZW50LCBFeGNlcHRpb25Db2RlJik7CiAKICNpZiBFTkFCTEUoSU5QVVRf
Q09MT1IpCiAgICAgdm9pZCBzZWxlY3RDb2xvckluQ29sb3JDaG9vc2VyKEVsZW1lbnQqLCBjb25z
dCBTdHJpbmcmIGNvbG9yVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmlu
ZGV4IDg3NDg1NzkyZGQ2MjM4MDczMzE4NGQxZTY0NDdjN2EwOTE3ZTEyOGEuLjk3NWViYTkxODIx
NDAzYTg4YTJhZTI4YTZhYTlmYTA4MjExZWEyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKQEAgLTQzLDYgKzQzLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIERPTVN0
cmluZyBzaGFkb3dQc2V1ZG9JZChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKICAgICAgICAgRWxlbWVudCBjcmVhdGVDb250ZW50RWxlbWVudChpbiBEb2N1bWVudCBk
b2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIEVsZW1lbnQgZ2V0RWxlbWVu
dEJ5SWRJblNoYWRvd1Jvb3QoaW4gTm9kZSBzaGFkb3dSb290LCBpbiBET01TdHJpbmcgaWQpIHJh
aXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBib29sZWFuIGlzVmFsaWRDb250ZW50U2VsZWN0
KGluIEVsZW1lbnQgY29udGVudEVsZW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAjaWYg
ZGVmaW5lZChFTkFCTEVfSU5QVVRfQ09MT1IpICYmIEVOQUJMRV9JTlBVVF9DT0xPUgogICAgICAg
ICB2b2lkIHNlbGVjdENvbG9ySW5Db2xvckNob29zZXIoaW4gRWxlbWVudCBlbGVtZW50LCBpbiBE
T01TdHJpbmcgY29sb3JWYWx1ZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTFjOGVhNGIzNjExMDFlMDdjNTExOTc2NGJi
ZDBlYzA0YTk2NDQzZi4uNDI0MWViOWE0YzA4YWIyNTE1MWJlNjhkYjhmYzNmMDYxY2EwM2QyOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTIyICBTaGlueWEgS2F3YW5ha2EgIDxzaGlu
eWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgVGhlIHF1ZXJ5IHNlbGVjdG9yIGZvciBIVE1MQ29u
dGVudEVsZW1lbnQgc2hvdWxkIGZvbGxvdyB0aGUgc2hhZG93IGRvbSBzcGVjLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU5NDYKKworICAgICAgICBS
ZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L2Nv
bnRlbnQtc2VsZWN0b3ItcXVlcnktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVyeS5odG1sOiBBZGRlZC4KKwogMjAxMi0w
MS0yMyAgRW1pbCBBIEVrbHVuZCAgPGVhZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCB0ZXN0IGV4cGVjdGF0aW9ucyBmaXhlcyBmb3IgYSBjb3VwbGUgb2Ygd2luZG93L2ZyYW1l
IHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L2NvbnRlbnQt
c2VsZWN0b3ItcXVlcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93
L2NvbnRlbnQtc2VsZWN0b3ItcXVlcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiMjYyMjNk
MTA1YzM3ODllMzZmNWI0ZWE5YzZlNzc3MmU4OTcwNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVyeS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxNjggQEAKK1RoaXMgdGVzdCBjaGVja3Mgc2VsZWN0IGF0dHJpYnV0ZSBv
ZiBjb250ZW50IGVsZW1lbnQgaXMgdmFsaWQuCisKK251bGwKK1BBU1MgaW50ZXJuYWxzLmlzVmFs
aWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKKworUEFTUyBpbnRlcm5hbHMuaXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorbnN8ZGl2CitQQVNTIGludGVybmFscy5p
c1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisqfGRpdgorUEFTUyBpbnRlcm5h
bHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorfGRpdgorUEFTUyBpbnRl
cm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2CitQQVNTIGlu
dGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCituc3wqCitQQVNT
IGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisqfCoKK1BB
U1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK3wqCitQ
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisqCitQ
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisuZWxl
bQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQor
cC5lbGVtCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0
cnVlCitmb28uZWxlbQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkgaXMgdHJ1ZQorKi5yaWdodAorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3Qo
Y29udGVudCkgaXMgdHJ1ZQorI2VsZW0KK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIHRydWUKK3AjZWxlbQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRl
bnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZm9vI2VsZW0KK1BBU1MgaW50ZXJuYWxzLmlzVmFs
aWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKKyojc29tZXRoaW5nCitQQVNTIGludGVy
bmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXZbdGl0bGVdCitQ
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXZb
Y2xhc3M9ImV4YW1wbGUiXQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29u
dGVudCkgaXMgdHJ1ZQorZGl2W2hlbGxvPSJDbGV2ZWxhbmQiXVtnb29kYnllPSJDb2x1bWJ1cyJd
CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitk
aXZbcmVsfj0iY29weXJpZ2h0Il0KK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0
KGNvbnRlbnQpIGlzIHRydWUKK2RpdltocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyJdCitQ
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXZb
aHJlZmxhbmd8PSJlbiJdCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250
ZW50KSBpcyB0cnVlCitkaXZbY2hhcmFjdGVyPXJvbWVvXQorUEFTUyBpbnRlcm5hbHMuaXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2OmxpbmsKK1BBU1MgaW50ZXJuYWxz
LmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2Rpdjp2aXNpdGVkCitQQVNT
IGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6dGFy
Z2V0CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVl
CitkaXY6ZW5hYmxlZAorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkgaXMgdHJ1ZQorZGl2OmNoZWNrZWQKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2Vs
ZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjppbmRldGVybWluYXRlCitQQVNTIGludGVybmFscy5p
c1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6bnRoLWNoaWxkKDEpCitQ
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6
bnRoLWxhc3QtY2hpbGQoMSkKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNv
bnRlbnQpIGlzIHRydWUKK2RpdjpudGgtb2YtdHlwZSgxKQorUEFTUyBpbnRlcm5hbHMuaXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgdHJ1ZQorZGl2Om50aC1sYXN0LW9mLXR5cGUoMSkK
K1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2Rp
djpmaXJzdC1jaGlsZAorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkgaXMgdHJ1ZQorZGl2Omxhc3QtY2hpbGQKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50
U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdjpmaXJzdC1vZi10eXBlCitQQVNTIGludGVybmFs
cy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXY6bGFzdC1vZi10eXBl
CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitk
aXY6b25seS1vZi10eXBlCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250
ZW50KSBpcyB0cnVlCitkaXY6Zmlyc3Qtb2YtdHlwZTpsYXN0LW9mLXR5cGUKK1BBU1MgaW50ZXJu
YWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2Rpdi5lbGVtOnZpc2l0
ZWQKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUK
Kyo6dmlzaXRlZAorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkg
aXMgdHJ1ZQorZGl2LCBkaXYKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNv
bnRlbnQpIGlzIHRydWUKK2RpdjpmaXJzdC1vZi10eXBlLCBkaXYKK1BBU1MgaW50ZXJuYWxzLmlz
VmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUKK2RpdiwgZGl2OmZpcnN0LW9mLXR5
cGUKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIHRydWUK
K2RpdjpmaXJzdC1vZi10eXBlLCBkaXY6bGFzdC1vZi10eXBlCitQQVNTIGludGVybmFscy5pc1Zh
bGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCisgZGl2LCAgICAgIGRpdiAgICAgCitQ
QVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyB0cnVlCitkaXYg
ZGl2CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxz
ZQorZGl2ID4gZGl2CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50
KSBpcyBmYWxzZQorZGl2ICsgZGl2CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVj
dChjb250ZW50KSBpcyBmYWxzZQorZGl2IH4gZGl2CitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29u
dGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2Om5vdChkaXYpCitQQVNTIGludGVybmFs
cy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2OnJvb3QKK1BBU1Mg
aW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6bGFu
ZyhlbikKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZh
bHNlCitkaXY6OmJlZm9yZQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29u
dGVudCkgaXMgZmFsc2UKK2Rpdjo6YWZ0ZXIKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50
U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6OmZpcnN0LWxpbmUKK1BBU1MgaW50ZXJuYWxz
LmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6OmZpcnN0LWxldHRl
cgorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UK
K2RpdjphY3RpdmUKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQp
IGlzIGZhbHNlCitkaXY6aG92ZXIKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0
KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6Zm9jdXMKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250
ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXYgZGl2Om5vdChkaXYpCitQQVNTIGludGVy
bmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2Om5vdChkaXYp
IGRpdgorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFs
c2UKK2RpdiBzcGFuIGRpdgorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29u
dGVudCkgaXMgZmFsc2UKK2RpdiA8IGRpdgorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRT
ZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK2RpdiAtIGR2aQorUEFTUyBpbnRlcm5hbHMuaXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKKzwgZGl2CitQQVNTIGludGVybmFscy5p
c1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorK2RpdgorUEFTUyBpbnRlcm5h
bHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK35kaXYKK1BBU1MgaW50
ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXY6IQorUEFT
UyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKKyE6IQor
UEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK2Rp
djo6IQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFs
c2UKK2Rpdjo6Zmlyc3Rfb2ZfdHlwZQorUEFTUyBpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxl
Y3QoY29udGVudCkgaXMgZmFsc2UKK3BlO3JvCitQQVNTIGludGVybmFscy5pc1ZhbGlkQ29udGVu
dFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorQHNjcmVlbgorUEFTUyBpbnRlcm5hbHMuaXNWYWxp
ZENvbnRlbnRTZWxlY3QoY29udGVudCkgaXMgZmFsc2UKK0BpbXBvcnQgInN0eWxlLmNzcyIKK1BB
U1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCitkaXYg
OmZpcnN0LW9mLXR5cGUKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRl
bnQpIGlzIGZhbHNlCitkaXY6OmZpcnN0LW9mLXR5cGUKK1BBU1MgaW50ZXJuYWxzLmlzVmFsaWRD
b250ZW50U2VsZWN0KGNvbnRlbnQpIGlzIGZhbHNlCisgZGl2LCAsZGl2CitQQVNTIGludGVybmFs
cy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorZGl2ICcnCitQQVNTIGlu
dGVybmFscy5pc1ZhbGlkQ29udGVudFNlbGVjdChjb250ZW50KSBpcyBmYWxzZQorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9jb250ZW50LXNlbGVjdG9yLXF1ZXJ5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rvci1xdWVyeS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVmYmMzNmRiYzM5ZDY4MzE5NDIyMjUyOWM1NGQ3YjkwNWI3ZWQ0MDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvY29udGVudC1zZWxlY3Rv
ci1xdWVyeS5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3QgY2hlY2tzIHNlbGVjdCBhdHRy
aWJ1dGUgb2YgY29udGVudCBlbGVtZW50IGlzIHZhbGlkLjwvcD4KKzxwcmUgaWQ9ImNvbnNvbGUi
PjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKworPHNjcmlwdD4KK3ZhciBjb250
YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisKK3ZhciBjb250
ZW50OworZnVuY3Rpb24gdGVzdChzZWxlY3QsIHZhbGlkKSB7CisgICAgY29udGVudCA9IGludGVy
bmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7CisgICAgaWYgKHNlbGVjdCAhPSBu
dWxsKQorICAgICAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywgc2VsZWN0KTsKKwor
ICAgIGRlYnVnKHNlbGVjdCk7CisgICAgaWYgKHZhbGlkKQorICAgICAgICBzaG91bGRCZSgiaW50
ZXJuYWxzLmlzVmFsaWRDb250ZW50U2VsZWN0KGNvbnRlbnQpIiwgInRydWUiKTsKKyAgICBlbHNl
CisgICAgICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuaXNWYWxpZENvbnRlbnRTZWxlY3QoY29udGVu
dCkiLCAiZmFsc2UiKTsKK30KKwordmFyIGRhdGFPZlZhbGlkQ2FzZXMgPSBbCisgICAgbnVsbCwg
JycsCisgICAgJ25zfGRpdicsICcqfGRpdicsICd8ZGl2JywgJ2RpdicsCisgICAgJ25zfConLCAn
KnwqJywgJ3wqJywgJyonLAorICAgICcuZWxlbScsICdwLmVsZW0nLCAnZm9vLmVsZW0nLCAnKi5y
aWdodCcsCisgICAgJyNlbGVtJywgJ3AjZWxlbScsICdmb28jZWxlbScsICcqI3NvbWV0aGluZycs
CisgICAgJ2Rpdlt0aXRsZV0nLCAnZGl2W2NsYXNzPSJleGFtcGxlIl0nLCAnZGl2W2hlbGxvPSJD
bGV2ZWxhbmQiXVtnb29kYnllPSJDb2x1bWJ1cyJdJywKKyAgICAnZGl2W3JlbH49ImNvcHlyaWdo
dCJdJywgJ2RpdltocmVmPSJodHRwOi8vd3d3LmV4YW1wbGUuY29tLyJdJywKKyAgICAnZGl2W2hy
ZWZsYW5nfD0iZW4iXScsICdkaXZbY2hhcmFjdGVyPXJvbWVvXScsCisgICAgJ2RpdjpsaW5rJywg
J2Rpdjp2aXNpdGVkJywgJ2Rpdjp0YXJnZXQnLCAnZGl2OmVuYWJsZWQnLCAnZGl2OmNoZWNrZWQn
LAorICAgICdkaXY6aW5kZXRlcm1pbmF0ZScsICdkaXY6bnRoLWNoaWxkKDEpJywgJ2RpdjpudGgt
bGFzdC1jaGlsZCgxKScsICdkaXY6bnRoLW9mLXR5cGUoMSknLAorICAgICdkaXY6bnRoLWxhc3Qt
b2YtdHlwZSgxKScsICdkaXY6Zmlyc3QtY2hpbGQnLCAnZGl2Omxhc3QtY2hpbGQnLCAnZGl2OmZp
cnN0LW9mLXR5cGUnLAorICAgICdkaXY6bGFzdC1vZi10eXBlJywgJ2Rpdjpvbmx5LW9mLXR5cGUn
LAorICAgICdkaXY6Zmlyc3Qtb2YtdHlwZTpsYXN0LW9mLXR5cGUnLCAnZGl2LmVsZW06dmlzaXRl
ZCcsICcqOnZpc2l0ZWQnLAorICAgICdkaXYsIGRpdicsICdkaXY6Zmlyc3Qtb2YtdHlwZSwgZGl2
JywgJ2RpdiwgZGl2OmZpcnN0LW9mLXR5cGUnLCAnZGl2OmZpcnN0LW9mLXR5cGUsIGRpdjpsYXN0
LW9mLXR5cGUnLAorICAgICcgZGl2LCAgICAgIGRpdiAgICAgJywKK107CisKK3ZhciBkYXRhT2ZJ
bnZhbGlkQ2FzZXMgPSBbCisgICAgJ2RpdiBkaXYnLCAnZGl2ID4gZGl2JywgJ2RpdiArIGRpdics
ICdkaXYgfiBkaXYnLAorICAgICdkaXY6bm90KGRpdiknLCAnZGl2OnJvb3QnLCAnZGl2Omxhbmco
ZW4pJywKKyAgICAnZGl2OjpiZWZvcmUnLCAnZGl2OjphZnRlcicsICdkaXY6OmZpcnN0LWxpbmUn
LCAnZGl2OjpmaXJzdC1sZXR0ZXInLAorICAgICdkaXY6YWN0aXZlJywgJ2Rpdjpob3ZlcicsICdk
aXY6Zm9jdXMnLAorICAgICdkaXYgZGl2Om5vdChkaXYpJywgJ2Rpdjpub3QoZGl2KSBkaXYnLCAn
ZGl2IHNwYW4gZGl2JywKKyAgICAnZGl2IDwgZGl2JywgJ2RpdiAtIGR2aScsICc8IGRpdicsICcr
ZGl2JywgJ35kaXYnLCAnZGl2OiEnLCAnITohJywgJ2Rpdjo6IScsICdkaXY6OmZpcnN0X29mX3R5
cGUnLAorICAgICdwZTtybycsICdAc2NyZWVuJywgJ0BpbXBvcnQgInN0eWxlLmNzcyInLCAnZGl2
IDpmaXJzdC1vZi10eXBlJywgJ2Rpdjo6Zmlyc3Qtb2YtdHlwZScsCisgICAgJyBkaXYsICxkaXYn
LCAnZGl2IFwnXCcnCitdCisKK2Z1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBpZiAoIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlciB8fCAhd2luZG93LmludGVybmFscykgeworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhT2ZWYWxpZENhc2VzLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgICB0ZXN0KGRhdGFPZlZhbGlkQ2FzZXNbaV0sIHRydWUpOworICAgIH0KKyAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGRhdGFPZkludmFsaWRDYXNlcy5sZW5ndGg7ICsraSkgeworICAgICAg
ICAgdGVzdChkYXRhT2ZJbnZhbGlkQ2FzZXNbaV0sIGZhbHNlKTsKKyAgICB9Cit9CisKK2RvVGVz
dCgpOwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>