<?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>130250</bug_id>
          
          <creation_ts>2014-03-14 11:00:07 -0700</creation_ts>
          <short_desc>AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).</short_desc>
          <delta_ts>2014-03-26 12:26:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>OS X 10.9</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Samuel White">samuel_white</reporter>
          <assigned_to name="Samuel White">samuel_white</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>990566</commentid>
    <comment_count>0</comment_count>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-14 11:00:07 -0700</bug_when>
    <thetext>If selection hasn&apos;t yet been set, accessibility clients (VoiceOver) can&apos;t move selection around using arrow keys (works correctly AFTER initial selection has been set).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991296</commentid>
    <comment_count>1</comment_count>
      <attachid>226938</attachid>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-17 10:40:07 -0700</bug_when>
    <thetext>Created attachment 226938
Patch.

Possible we shouldn&apos;t expose the ability to toggle enhanced accessibility to every platform. Looks like iOS doesn&apos;t key off it for anything. Thoughts?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991316</commentid>
    <comment_count>2</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-03-17 11:20:40 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=226938) [details]
&gt; Patch.
&gt; 
&gt; Possible we shouldn&apos;t expose the ability to toggle enhanced accessibility to every platform. Looks like iOS doesn&apos;t key off it for anything. Thoughts?

Seems like iOS could key off of this in a future world</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991322</commentid>
    <comment_count>3</comment_count>
      <attachid>226938</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-03-17 11:32:56 -0700</bug_when>
    <thetext>Comment on attachment 226938
Patch.

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

&gt; LayoutTests/platform/mac/accessibility/selection-initial.html:33
&gt; +        // Enable enhanced accessibility (necessary for accessibility specific seleciton handling).

spelling
seleciton

&gt; LayoutTests/platform/mac/accessibility/selection-initial.html:67
&gt; +        accessibilityController.enableEnhancedAccessibility(false);

this should be disabled in the TestRunner code itself, much like we disable AX after each test

&gt; Source/WebCore/page/EventHandler.cpp:3063
&gt; +    

unnecessary whitespace change

&gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:83
&gt; +WK_EXPORT void WKAccessibilityEnableEnhancedAccessibility(bool enable);

&quot;enable&quot; not necessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991326</commentid>
    <comment_count>4</comment_count>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-17 11:48:57 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 226938 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226938&amp;action=review
&gt; 
&gt; &gt; LayoutTests/platform/mac/accessibility/selection-initial.html:33
&gt; &gt; +        // Enable enhanced accessibility (necessary for accessibility specific seleciton handling).
&gt; 
&gt; spelling
&gt; seleciton
&gt; 
&gt; &gt; LayoutTests/platform/mac/accessibility/selection-initial.html:67
&gt; &gt; +        accessibilityController.enableEnhancedAccessibility(false);
&gt; 
&gt; this should be disabled in the TestRunner code itself, much like we disable AX after each test

Good point. I&apos;m only seeing &apos;resetToConsistentState&apos; on the AX controller. Can you point me toward the area you&apos;re mentioning. Thanks.

&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:3063
&gt; &gt; +    
&gt; 
&gt; unnecessary whitespace change
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:83
&gt; &gt; +WK_EXPORT void WKAccessibilityEnableEnhancedAccessibility(bool enable);
&gt; 
&gt; &quot;enable&quot; not necessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991328</commentid>
    <comment_count>5</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-03-17 11:52:34 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 226938 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226938&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/platform/mac/accessibility/selection-initial.html:33
&gt; &gt; &gt; +        // Enable enhanced accessibility (necessary for accessibility specific seleciton handling).
&gt; &gt; 
&gt; &gt; spelling
&gt; &gt; seleciton
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/platform/mac/accessibility/selection-initial.html:67
&gt; &gt; &gt; +        accessibilityController.enableEnhancedAccessibility(false);
&gt; &gt; 
&gt; &gt; this should be disabled in the TestRunner code itself, much like we disable AX after each test
&gt; 
&gt; Good point. I&apos;m only seeing &apos;resetToConsistentState&apos; on the AX controller. Can you point me toward the area you&apos;re mentioning. Thanks.

https://bugs.webkit.org/attachment.cgi?id=222286&amp;action=review

&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/page/EventHandler.cpp:3063
&gt; &gt; &gt; +    
&gt; &gt; 
&gt; &gt; unnecessary whitespace change
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:83
&gt; &gt; &gt; +WK_EXPORT void WKAccessibilityEnableEnhancedAccessibility(bool enable);
&gt; &gt; 
&gt; &gt; &quot;enable&quot; not necessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991383</commentid>
    <comment_count>6</comment_count>
      <attachid>226961</attachid>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-17 14:06:53 -0700</bug_when>
    <thetext>Created attachment 226961
Updated patch.

Updates per feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991384</commentid>
    <comment_count>7</comment_count>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-17 14:08:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 226938 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226938&amp;action=review
&gt; 
&gt; &gt; LayoutTests/platform/mac/accessibility/selection-initial.html:33
&gt; &gt; +        // Enable enhanced accessibility (necessary for accessibility specific seleciton handling).
&gt; 
&gt; spelling
&gt; seleciton

Oops, fixed.

&gt; 
&gt; &gt; LayoutTests/platform/mac/accessibility/selection-initial.html:67
&gt; &gt; +        accessibilityController.enableEnhancedAccessibility(false);
&gt; 
&gt; this should be disabled in the TestRunner code itself, much like we disable AX after each test

Fixed.

&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:3063
&gt; &gt; +    
&gt; 
&gt; unnecessary whitespace change

This was me fixing the only non indented newline.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:83
&gt; &gt; +WK_EXPORT void WKAccessibilityEnableEnhancedAccessibility(bool enable);
&gt; 
&gt; &quot;enable&quot; not necessary

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991408</commentid>
    <comment_count>8</comment_count>
      <attachid>226969</attachid>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-17 14:54:44 -0700</bug_when>
    <thetext>Created attachment 226969
Updated patch.

Speculative fix to get win building.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991444</commentid>
    <comment_count>9</comment_count>
      <attachid>226969</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-03-17 16:16:02 -0700</bug_when>
    <thetext>Comment on attachment 226969
Updated patch.

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

&gt; Source/WebCore/page/EventHandler.cpp:3063
&gt; +    

superfluous line change should be removed

&gt; Source/WebCore/ChangeLog:8
&gt; +        If initial selection isn&apos;t set when we handle selection movement for accessibility we need to set it.

why do we need to set it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991445</commentid>
    <comment_count>10</comment_count>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-17 16:31:54 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 226969 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226969&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/EventHandler.cpp:3063
&gt; &gt; +    
&gt; 
&gt; superfluous line change should be removed

Can you elaborate on why this change should be removed? It was the only incorrectly indented line, fixing it seems helpful and related as this function was being reworked.

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        If initial selection isn&apos;t set when we handle selection movement for accessibility we need to set it.
&gt; 
&gt; why do we need to set it?

Are you insinuating that the comment should be more detailed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991447</commentid>
    <comment_count>11</comment_count>
      <attachid>226969</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-03-17 16:43:49 -0700</bug_when>
    <thetext>Comment on attachment 226969
Updated patch.

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

&gt;&gt;&gt; Source/WebCore/page/EventHandler.cpp:3063
&gt;&gt;&gt; +    
&gt;&gt; 
&gt;&gt; superfluous line change should be removed
&gt; 
&gt; Can you elaborate on why this change should be removed? It was the only incorrectly indented line, fixing it seems helpful and related as this function was being reworked.

it looks like (i might be incorrect), that you&apos;re adding a line with 4 empty spaces in it.
I think the preference in WebKit is to have lines with no empty spaces if possible

&gt;&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt;&gt; +        If initial selection isn&apos;t set when we handle selection movement for accessibility we need to set it.
&gt;&gt; 
&gt;&gt; why do we need to set it?
&gt; 
&gt; Are you insinuating that the comment should be more detailed?

Yes please</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991699</commentid>
    <comment_count>12</comment_count>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-18 09:49:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/16327812&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991726</commentid>
    <comment_count>13</comment_count>
      <attachid>227072</attachid>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-18 10:39:30 -0700</bug_when>
    <thetext>Created attachment 227072
Updated patch.

Should fix remaining other platform build issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991824</commentid>
    <comment_count>14</comment_count>
    <who name="Samuel White">samuel_white</who>
    <bug_when>2014-03-18 13:04:18 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 226969 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=226969&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/page/EventHandler.cpp:3063
&gt; &gt;&gt;&gt; +    
&gt; &gt;&gt; 
&gt; &gt;&gt; superfluous line change should be removed
&gt; &gt; 
&gt; &gt; Can you elaborate on why this change should be removed? It was the only incorrectly indented line, fixing it seems helpful and related as this function was being reworked.
&gt; 
&gt; it looks like (i might be incorrect), that you&apos;re adding a line with 4 empty spaces in it.
&gt; I think the preference in WebKit is to have lines with no empty spaces if possible
&gt; 

We should prob. consider adding this to the style guide.
https://bugs.webkit.org/show_bug.cgi?id=130415
Deleted the indents to make spacing uniform. Thanks.

&gt; &gt;&gt;&gt; Source/WebCore/ChangeLog:8
&gt; &gt;&gt;&gt; +        If initial selection isn&apos;t set when we handle selection movement for accessibility we need to set it.
&gt; &gt;&gt; 
&gt; &gt;&gt; why do we need to set it?
&gt; &gt; 
&gt; &gt; Are you insinuating that the comment should be more detailed?
&gt; 
&gt; Yes please

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992024</commentid>
    <comment_count>15</comment_count>
      <attachid>227072</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-18 23:18:09 -0700</bug_when>
    <thetext>Comment on attachment 227072
Updated patch.

Clearing flags on attachment: 227072

Committed r165870: &lt;http://trac.webkit.org/changeset/165870&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992025</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-18 23:19:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>994677</commentid>
    <comment_count>17</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-03-26 12:26:22 -0700</bug_when>
    <thetext>This change caused tests on Windows to start crashing. This is because of the weird way DRT on Windows links to the WebCore test stuff. We can wind up with multiple definitions for the symbols.

I checked in a correction in r166307 &lt;https://trac.webkit.org/r166307&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226938</attachid>
            <date>2014-03-17 10:40:07 -0700</date>
            <delta_ts>2014-03-17 14:06:53 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>selection.patch</filename>
            <type>text/plain</type>
            <size>26557</size>
            <attacher name="Samuel White">samuel_white</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi1pbml0aWFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kYWQyNzBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWluaXRpYWwtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjMgQEAKK1RoaXMgdGVzdHMgdGhhdCBpbml0aWFsIHNlbGVjdGlvbiBp
cyBzZXQgd2hlbiBhcnJvdyBrZXlzIGFyZSBwcmVzc2VkIGFuZCBubyBzZWxlY3Rpb24gZXhpc3Rz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpc1NlbGVjdGlvbkF0U3Rh
cnRPZkRvY3VtZW50KCkgaXMgZmFsc2UKK1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVu
dCgpIGlzIGZhbHNlCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNz
aWJpbGl0eUVuYWJsZWQgaXMgdHJ1ZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkgaXMgZmFsc2UKK1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIHRydWUK
K1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIGZhbHNlCitQQVNTIGlzU2Vs
ZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSBpcyB0cnVlCitQQVNTIGlzU2VsZWN0aW9uQXRTdGFy
dE9mRG9jdW1lbnQoKSBpcyBmYWxzZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkgaXMgdHJ1ZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkgaXMgZmFsc2UK
K1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIHRydWUKK1BBU1MgaXNTZWxl
Y3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIGZhbHNlCitQQVNTIGlzU2VsZWN0aW9uQXRTdGFy
dE9mRG9jdW1lbnQoKSBpcyBmYWxzZQorUEFTUyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmhh
bmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWluaXRpYWwuaHRtbCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjBiMGE3OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0
aWFsLmh0bWwKQEAgLTAsMCArMSw3NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8dGl0bGU+U2VsZWN0aW9uIEluaXRpYWw8L3RpdGxlPgorPC9oZWFkPgorPGJvZHk+CisK
KzxwIGlkPSJ0ZXh0Ij5UZXh0LjwvcD4KKworPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0cyB0aGF0IGluaXRpYWwgc2VsZWN0aW9uIGlzIHNldCB3aGVuIGFycm93IGtleXMgYXJlIHBy
ZXNzZWQgYW5kIG5vIHNlbGVjdGlvbiBleGlzdHMuIik7CisgICAgCisgICAgZnVuY3Rpb24gY2xl
YXJTZWxlY3Rpb24oKSB7CisgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxS
YW5nZXMoKTsKKyAgICB9CisgICAgCisgICAgZnVuY3Rpb24gaXNTZWxlY3Rpb25BdFN0YXJ0T2ZE
b2N1bWVudCgpIHsKKyAgICAgICAgdmFyIHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24o
KTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdGlvbi5yYW5nZUNvdW50ID49IDEgJiYgc2VsZWN0aW9u
LmdldFJhbmdlQXQoMCkuZW5kT2Zmc2V0ID09PSAwICYmIHNlbGVjdGlvbi5nZXRSYW5nZUF0KDAp
LnN0YXJ0T2Zmc2V0ID09PSAwOworICAgIH0KKyAgICAKKyAgICBpZiAod2luZG93LmFjY2Vzc2li
aWxpdHlDb250cm9sbGVyICYmIHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAvLyBEb3du
IGFycm93IGtleSAoc2hvdWxkIE5PVCBzZXQgaW5pdGlhbCBzZWxlY3Rpb24gYmVmb3JlIGVuaGFu
Y2VkIGFjY2Vzc2liaWxpdHkgaXMgZW5hYmxlZCkuCisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVj
dGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAiZmFsc2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3Rh
cnRPZkRvY3VtZW50KCkiLCAiZmFsc2UiKTsKKyAgICAgICAgY2xlYXJTZWxlY3Rpb24oKTsKKyAg
ICAgICAgCisgICAgICAgIC8vIEVuYWJsZSBlbmhhbmNlZCBhY2Nlc3NpYmlsaXR5IChuZWNlc3Nh
cnkgZm9yIGFjY2Vzc2liaWxpdHkgc3BlY2lmaWMgc2VsZWNpdG9uIGhhbmRsaW5nKS4KKyAgICAg
ICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KHRy
dWUpOworICAgICAgICBzaG91bGRCZSgiYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuZW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5RW5hYmxlZCIsICJ0cnVlIik7CisgICAgICAgIAorICAgICAgICAvLyBEb3du
IGFycm93IGtleS4KKyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1l
bnQoKSIsICJmYWxzZSIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ci
KTsKKyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSIsICJ0
cnVlIik7CisgICAgICAgIGNsZWFyU2VsZWN0aW9uKCk7CisgICAgICAgIAorICAgICAgICAvLyBM
ZWZ0IGFycm93IGtleS4KKyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9j
dW1lbnQoKSIsICJmYWxzZSIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJsZWZ0QXJy
b3ciKTsKKyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSIs
ICJ0cnVlIik7CisgICAgICAgIGNsZWFyU2VsZWN0aW9uKCk7CisgICAgICAgIAorICAgICAgICAv
LyBSaWdodCBhcnJvdyBrZXkuCisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRP
ZkRvY3VtZW50KCkiLCAiZmFsc2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigicmln
aHRBcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVu
dCgpIiwgInRydWUiKTsKKyAgICAgICAgY2xlYXJTZWxlY3Rpb24oKTsKKyAgICAgICAgCisgICAg
ICAgIC8vIFVwIGFycm93IGtleS4KKyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFy
dE9mRG9jdW1lbnQoKSIsICJmYWxzZSIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1
cEFycm93Iik7CisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkiLCAidHJ1ZSIpOworICAgICAgICBjbGVhclNlbGVjdGlvbigpOworICAgICAgICAKKyAgICAg
ICAgLy8gWiBrZXkgKG9ubHkgYXJyb3cga2V5cyBzaG91bGQgc2V0IGluaXRpYWwgc2VsZWN0aW9u
IGlmIG5vIHNlbGVjdGlvbiBleGlzdHMpLgorICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25B
dFN0YXJ0T2ZEb2N1bWVudCgpIiwgImZhbHNlIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURv
d24oIloiKTsKKyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQo
KSIsICJmYWxzZSIpOworICAgICAgICAKKyAgICAgICAgLy8gRGlzYWJsZSBlbmhhbmNlZCBhY2Nl
c3NpYmlsaXR5LgorICAgICAgICBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5lbmFibGVFbmhhbmNl
ZEFjY2Vzc2liaWxpdHkoZmFsc2UpOworICAgICAgICBzaG91bGRCZSgiYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCIsICJmYWxzZSIpOworICAgICAg
ICAKKyAgICAgICAgLy8gSGlkZSBzdXBlcmZsdW91cyB0ZXh0LgorICAgICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidGV4dCIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgfQorPC9z
Y3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAppbmRleCA3MTczZDliLi42YmU3YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCkBAIC05MSw2ICs5MSw3IEBACiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5j
bHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJVc2VyVHlwaW5nR2VzdHVy
ZUluZGljYXRvci5oIgorI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgIldoZWVs
RXZlbnQuaCIKICNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgPHd0
Zi9Bc3NlcnRpb25zLmg+CkBAIC0zMDQ1LDE3ICszMDQ2LDIxIEBAIHN0YXRpYyBGb2N1c0RpcmVj
dGlvbiBmb2N1c0RpcmVjdGlvbkZvcktleShjb25zdCBBdG9taWNTdHJpbmcmIGtleUlkZW50aWZp
ZXIpCiAgICAgcmV0dXJuIHJldFZhbDsKIH0KIAotc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRT
ZWxlY3Rpb25Nb3ZlbWVudChGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBLZXlib2FyZEV2ZW50
KiBldmVudCkKK3N0YXRpYyB2b2lkIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJh
bWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAoIWV2ZW50KQogICAg
ICAgICByZXR1cm47Ci0KLSAgICBib29sIGlzT3B0aW9uZWQgPSBldmVudC0+Z2V0TW9kaWZpZXJT
dGF0ZSgiQWx0Iik7CisgICAgCisgICAgRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiA9IGZyYW1l
LnNlbGVjdGlvbigpOworICAgIAogICAgIGJvb2wgaXNDb21tYW5kZWQgPSBldmVudC0+Z2V0TW9k
aWZpZXJTdGF0ZSgiTWV0YSIpOwotCisgICAgYm9vbCBpc09wdGlvbmVkID0gZXZlbnQtPmdldE1v
ZGlmaWVyU3RhdGUoIkFsdCIpOworICAgIGJvb2wgaXNTZWxlY3Rpb24gPSAhc2VsZWN0aW9uLmlz
Tm9uZSgpOworICAgIAorICAgIEZyYW1lU2VsZWN0aW9uOjpFQWx0ZXJhdGlvbiBhbHRlcm5hdGlv
biA9IGV2ZW50LT5nZXRNb2RpZmllclN0YXRlKCJTaGlmdCIpID8gRnJhbWVTZWxlY3Rpb246OkFs
dGVyYXRpb25FeHRlbmQgOiBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmU7CiAgICAgU2Vs
ZWN0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiA9IERpcmVjdGlvbkZvcndhcmQ7CiAgICAgVGV4dEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHk7Ci0KKyAgICAKICAg
ICBzd2l0Y2ggKGZvY3VzRGlyZWN0aW9uRm9yS2V5KGV2ZW50LT5rZXlJZGVudGlmaWVyKCkpKSB7
CiAgICAgY2FzZSBGb2N1c0RpcmVjdGlvbk5vbmU6CiAgICAgICAgIHJldHVybjsKQEAgLTMwODAs
OSArMzA4NSwxMiBAQCBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50
KEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIEtleWJvYXJkRQogICAgICAgICBncmFudWxhcml0
eSA9IChpc0NvbW1hbmRlZCkgPyBMaW5lQm91bmRhcnkgOiAoaXNPcHRpb25lZCkgPyBXb3JkR3Jh
bnVsYXJpdHkgOiBDaGFyYWN0ZXJHcmFudWxhcml0eTsKICAgICAgICAgYnJlYWs7CiAgICAgfQot
Ci0gICAgRnJhbWVTZWxlY3Rpb246OkVBbHRlcmF0aW9uIGFsdGVybmF0aW9uID0gZXZlbnQtPmdl
dE1vZGlmaWVyU3RhdGUoIlNoaWZ0IikgPyBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbkV4dGVu
ZCA6IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uTW92ZTsKLSAgICBzZWxlY3Rpb24ubW9kaWZ5
KGFsdGVybmF0aW9uLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBVc2VyVHJpZ2dlcmVkKTsKKyAg
ICAKKyAgICBpZiAoaXNTZWxlY3Rpb24pCisgICAgICAgIHNlbGVjdGlvbi5tb2RpZnkoYWx0ZXJu
YXRpb24sIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIFVzZXJUcmlnZ2VyZWQpOworICAgIGVsc2UK
KyAgICAgICAgc2VsZWN0aW9uLnNldFNlbGVjdGlvbihzdGFydE9mRG9jdW1lbnQoZnJhbWUuZG9j
dW1lbnQoKSkpOworICAgIAogICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCkBA
IC0zMDkwLDcgKzMwOTgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aGFuZGxlS2V5Ym9hcmRTZWxl
Y3Rpb25Nb3ZlbWVudEZvckFjY2Vzc2liaWxpdHkoS2V5Ym9hcmRFdmVudAogewogICAgIGlmIChl
dmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsKICAgICAgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVk
KCkpCi0gICAgICAgICAgICBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KG1fZnJhbWUu
c2VsZWN0aW9uKCksIGV2ZW50KTsKKyAgICAgICAgICAgIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9u
TW92ZW1lbnQobV9mcmFtZSwgZXZlbnQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUubW0KaW5kZXggY2Y4ZDcyMy4uNWM3MGEzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0yMTU3LDYgKzIxNTcsMjIgQEAgLSAodm9pZClzZXRBY2Nl
c3NpYmxlTmFtZTooTlNTdHJpbmcgKiluYW1lCiAjZW5kaWYKIH0KIAorLSAoQk9PTCllbmhhbmNl
ZEFjY2Vzc2liaWxpdHlFbmFibGVkCit7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorICAgIHJl
dHVybiBBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5h
YmxlZCgpOworI2Vsc2UKKyAgICByZXR1cm4gTk87CisjZW5kaWYKK30KKworLSAodm9pZClzZXRF
bmhhbmNlZEFjY2Vzc2liaWxpdHk6KEJPT0wpZW5hYmxlCit7CisjaWYgSEFWRShBQ0NFU1NJQklM
SVRZKQorICAgIEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2li
aWxpdHkoZW5hYmxlKTsKKyNlbmRpZgorfQorCiAtIChOU1N0cmluZyopX2xheWVyVHJlZUFzVGV4
dAogewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBfcHJpdmF0ZS0+Y29yZUZyYW1lOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKaW5kZXggYTE0ZGYxNS4uMGRk
OGUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCkBA
IC0yNjIsNiArMjYyLDEwIEBAIHR5cGVkZWYgZW51bSB7CiAvLyBTZXRzIHRoZSBuYW1lIHByZXNl
bnRlZCB0byBhY2Nlc3NpYmlsaXR5IGNsaWVudHMgZm9yIHRoZSB3ZWIgYXJlYSBvYmplY3QuCiAt
ICh2b2lkKXNldEFjY2Vzc2libGVOYW1lOihOU1N0cmluZyAqKW5hbWU7CiAKKy8vIEVuaGFuY2Vk
IGFjY2Vzc2liaWxpdHkuCistIChCT09MKWVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQ7Cist
ICh2b2lkKXNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eTooQk9PTCllbmFibGU7CisKIC0gKE5TU3Ry
aW5nKilfbGF5ZXJUcmVlQXNUZXh0OwogCiAvLyBUaGUgdG9wIG9mIHRoZSBhY2Nlc3NpYmlsaXR5
IHRyZWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXggZGUwZjAyMC4uNjcxY2I1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtMjY0LDYgKzI2NCwyMiBAQCB2
b2lkKiBXS0FjY2Vzc2liaWxpdHlGb2N1c2VkT2JqZWN0KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVm
KQogI2VuZGlmCiB9CiAKK3ZvaWQgV0tBY2Nlc3NpYmlsaXR5RW5hYmxlRW5oYW5jZWRBY2Nlc3Np
YmlsaXR5KGJvb2wgZW5hYmxlKQoreworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAgICBXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5
KGVuYWJsZSk7CisjZW5kaWYKK30KKworYm9vbCBXS0FjY2Vzc2liaWxpdHlFbmhhbmNlZEFjY2Vz
c2liaWxpdHlFbmFibGVkKCkKK3sKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgcmV0dXJu
IFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZh
Y2VFbmFibGVkKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB2b2lk
IFdLQnVuZGxlUGFnZVN0b3BMb2FkaW5nKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQogewogICAg
IHRvSW1wbChwYWdlUmVmKS0+c3RvcExvYWRpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VQcml2YXRlLmgKaW5kZXggMjQ2MWMzOC4uNjY1MWQxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VQcml2YXRlLmgKQEAgLTgwLDYgKzgwLDkgQEAgV0tfRVhQT1JUIGJvb2wg
V0tCdW5kbGVQYWdlQ2FuU2hvd01JTUVUeXBlKFdLQnVuZGxlUGFnZVJlZiwgV0tTdHJpbmdSZWYg
bWltZVR5cGUKIFdLX0VYUE9SVCB2b2lkKiBXS0FjY2Vzc2liaWxpdHlSb290T2JqZWN0KFdLQnVu
ZGxlUGFnZVJlZik7CiBXS19FWFBPUlQgdm9pZCogV0tBY2Nlc3NpYmlsaXR5Rm9jdXNlZE9iamVj
dChXS0J1bmRsZVBhZ2VSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS0FjY2Vzc2liaWxpdHlFbmFi
bGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCBlbmFibGUpOworV0tfRVhQT1JUIGJvb2wgV0tB
Y2Nlc3NpYmlsaXR5RW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOworCiBXS19FWFBPUlQg
V0tTdHJpbmdSZWYgV0tCdW5kbGVQYWdlQ29weUNvbnRleHRNZW51SXRlbVRpdGxlKFdLQ29udGV4
dE1lbnVJdGVtUmVmKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZUNsaWNrTWVudUl0ZW0o
V0tCdW5kbGVQYWdlUmVmLCBXS0NvbnRleHRNZW51SXRlbVJlZik7CiBXS19FWFBPUlQgV0tBcnJh
eVJlZiBXS0J1bmRsZVBhZ2VDb3B5Q29udGV4dE1lbnVJdGVtcyhXS0J1bmRsZVBhZ2VSZWYpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IGRkOTk5NmIuLmQwMzVkZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5jcHAKQEAgLTEzMCw2ICsxMzAsMjAgQEAgc3RhdGljIEpTVmFs
dWVSZWYgcmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXJDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmoKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9
CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eUNhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9
PSAxKQorICAgICAgICBjb250cm9sbGVyLT5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoSlNW
YWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKKyAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIGdldEVuaGFu
Y2VkQWNjZXNzaWJpbGl0eUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCit7CisgICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIg
PSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0
ZSh0aGlzT2JqZWN0KSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBj
b250cm9sbGVyLT5lbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkpOworfQorCiBzdGF0aWMg
SlNWYWx1ZVJlZiBnZXRQbGF0Zm9ybU5hbWVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCiB7CiAgICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJp
dmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0xNTAsMTIgKzE2NCwxNCBAQCBKU0NsYXNzUmVmIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpnZXRKU0NsYXNzKCkKICAgICAgICAgeyAiYWNjZXNzaWJsZUVs
ZW1lbnRCeUlkIiwgZ2V0QWNjZXNzaWJsZUVsZW1lbnRCeUlkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAiYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIiLCBhZGROb3RpZmljYXRpb25MaXN0ZW5l
ckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVy
IiwgcmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXJDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7
ICJlbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkiLCBlbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxp
dHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7IDAsIDAsIDAgfQogICAgIH07CiAKICAgICBz
dGF0aWMgSlNTdGF0aWNWYWx1ZSBzdGF0aWNWYWx1ZXNbXSA9IHsKICAgICAgICAgeyAiZm9jdXNl
ZEVsZW1lbnQiLCBnZXRGb2N1c2VkRWxlbWVudENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInJvb3RFbGVtZW50IiwgZ2V0Um9vdEVsZW1lbnRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAg
ICAgICB7ICJlbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkIiwgZ2V0RW5oYW5jZWRBY2Nlc3Np
YmlsaXR5RW5hYmxlZENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInBsYXRmb3JtTmFt
ZSIsIGdldFBsYXRmb3JtTmFtZUNhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgMCwgMCwg
MCwgMCB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oCmluZGV4IDJlNzQ5ZDEuLjdjMTg4MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaApAQCAtNjQsNiArNjQsMTAgQEAgcHVibGlj
OgogICAgIGJvb2wgYWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoSlNPYmplY3RSZWYgZnVuY3Rpb25D
YWxsYmFjayk7CiAgICAgdm9pZCByZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwogCisgICAg
Ly8gRW5oYW5jZWQgYWNjZXNzaWJpbGl0eS4KKyAgICB2b2lkIGVuYWJsZUVuaGFuY2VkQWNjZXNz
aWJpbGl0eShib29sKTsKKyAgICBib29sIGVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKTsK
KwogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoKSBjb25zdDsKIAog
I2lmIFBMQVRGT1JNKFdJTikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCmluZGV4IGQ4ZDBmYzkuLjc1N2M1MDkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ckF0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyQXRrLmNwcApAQCAtMTA2LDYgKzEwNiwxNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCiAgICAgbV9nbG9iYWxOb3RpZmlj
YXRpb25IYW5kbGVyID0gbnVsbHB0cjsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wpCit7CisgICAgLy8gRklYTUU6IGlt
cGxlbWVudAorfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vz
c2liaWxpdHlFbmFibGVkKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0CiB7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImF0
ayIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcklPUy5tbQppbmRleCA1ZjlhNTE2Li5hZTllZjc4IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCkBA
IC0xMjcsNiArMTI3LDE3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5v
dGlmaWNhdGlvbkxpc3RlbmVyKCkKIHsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wpCit7CisgICAgLy8gRklYTUU6IGlt
cGxlbWVudAorfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vz
c2liaWxpdHlFbmFibGVkKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJu
IGZhbHNlOworfQorCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0CiB7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImlv
cyIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlck1hYy5tbQppbmRleCBlMWIyMWMzLi5iZmI5ZDBkIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCkBA
IC0xNDUsNiArMTQ1LDE2IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5v
dGlmaWNhdGlvbkxpc3RlbmVyKCkKICAgICAvLyBObyBsb25nZXIgYSBuZWVkIHRvIGNsZWFudXAg
Zm9yIHRlc3RzLCBzaW5jZSByZXNldFRvQ29uc2lzdGVudFN0YXRlIHdpbGwgcmVtb3ZlIHRoZSBs
aXN0ZW5lci4KIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZW5hYmxlKQoreworICAgIFttYWluRnJhbWUgc2V0RW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5OmVuYWJsZV07Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQoreworICAgIHJldHVybiBbbWFpbkZy
YW1lIGVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWRdOworfQorCiBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0CiB7
CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIm1hYyIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCmluZGV4IGNkMWEy
ZTIuLjVhMGFiMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcApAQCAtMzk0LDYgKzM5NCwxNyBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjp3aW5BZGROb3RpZmljYXRpb25MaXN0ZW5lcihQbGF0Zm9y
bVVJRWxlbWVudCBlbGVtZQogICAgIG1fbm90aWZpY2F0aW9uTGlzdGVuZXJzLmFkZChlbGVtZW50
LCBmdW5jdGlvbkNhbGxiYWNrKTsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wpCit7CisgICAgLy8gRklYTUU6IGltcGxl
bWVudAorfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2li
aWxpdHlFbmFibGVkKCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZh
bHNlOworfQorCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0CiB7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIndpbiIp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKaW5kZXggZTQ2ZTdhNC4uNTY4YzJi
ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKQEAgLTkzLDYgKzkzLDggQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIo
KSB7IHJldHVybiBmYWxzZTsgfQogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVm
IGF0dHJpYnV0ZSkgeyByZXR1cm4gbnVsbHB0cjsgfQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6bG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpIHsgfQogdm9pZCBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpIHsgfQordm9pZCBBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wpIHsgfQorYm9vbCBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpIHsg
cmV0dXJuIGZhbHNlOyB9CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpIHsgcmV0dXJuIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PihBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIpKTsgfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCA2MGYzZTU2Li44ZDY2OGVlIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCkBAIC00NCw2ICs0NCwxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBtYWtlV2luZG93T2JqZWN0KEpTQ29udGV4dFJlZiwgSlNPYmplY3RSZWYgd2luZG93
T2JqZWN0LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pOwogICAgIHZpcnR1YWwgSlNDbGFzc1JlZiB3
cmFwcGVyQ2xhc3MoKTsKICAgICAKKyAgICAvLyBFbmhhbmNlZCBhY2Nlc3NpYmlsaXR5LgorICAg
IHZvaWQgZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wpOworICAgIGJvb2wgZW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOworICAgIAogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBwbGF0Zm9ybU5hbWUoKTsKIAogICAgIC8vIENvbnRyb2xsZXIgTWV0aG9kcyAtIHBsYXRm
b3JtLWluZGVwZW5kZW50IGltcGxlbWVudGF0aW9ucy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwKaW5kZXggYmY3YTZlNC4uMzgzMTE1NCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGwKQEAgLTI0LDYg
KzI0LDkgQEAKICAqLwogCiBpbnRlcmZhY2UgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIgeworICAg
IHZvaWQgZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2xlYW4gZW5hYmxlKTsKKyAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBlbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkOwor
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwbGF0Zm9ybU5hbWU7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgcm9vdEVsZW1lbnQ7CiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQgZm9jdXNlZEVsZW1lbnQ7
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2lvcy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCmluZGV4IGY4ZGFj
OGYuLmJkNWEwOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9T
Lm1tCkBAIC00OSw2ICs0OSwxNiBAQCBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZW1v
dmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2b2lkIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCkK
K3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQoreworICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKKyAgICByZXR1cm4gZmFsc2U7Cit9CiAKIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKCkKIHsKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9t
YWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KaW5kZXggMzQwM2I3MC4uODlhMGQ1ZSAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KQEAgLTExMiw2
ICsxMTIsMTYgQEAgUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUkKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3Np
YmlsaXR5KGJvb2wgZW5hYmxlKQoreworICAgIFdLQWNjZXNzaWJpbGl0eUVuYWJsZUVuaGFuY2Vk
QWNjZXNzaWJpbGl0eShlbmFibGUpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gV0tBY2Nlc3Np
YmlsaXR5RW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOworfQorCiBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpCiB7CiAg
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIm1hYyIpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYTQyOTEyLi4yZTgyNDVjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDMtMTcgIFNhbXVlbCBXaGl0ZSAgPHNhbXVlbF93
aGl0ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBhcnJvdyBrZXlz
IHRvIHJlYWQgdGV4dCB3aXRoIFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlzIHNldCBzb21l
cGxhY2UgKGFueXBsYWNlKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzMDI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGVkIHRlc3QgdG8gZW5zdXJlIHRoYXQgaW5pdGlhbCBzZWxlY3Rpb24gZ2V0
cyBzZXQgd2hlbiBlbmhhbmNlZCBhY2Nlc3NpYmlsaXR5IGlzIGVuYWJsZWQgYW5kIGFuIGFycm93
IGtleSBpcyBwcmVzc2VkLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkv
c2VsZWN0aW9uLWluaXRpYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24taW5pdGlhbC5odG1sOiBBZGRlZC4KKwogMjAx
NC0wMy0xMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN1YnBp
eGVsIHJlbmRlcmluZzogTmVzdGVkIGxheWVycyB3aXRoIHN1YnBpeGVsIGFjY3VtdWxhdGlvbiBw
YWludCB0byB3cm9uZyBwb3NpdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMGM0NTE4Li5mMDI4MTZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDMtMTcgIFNhbXVlbCBXaGl0ZSAgPHNh
bXVlbF93aGl0ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBhcnJv
dyBrZXlzIHRvIHJlYWQgdGV4dCB3aXRoIFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlzIHNl
dCBzb21lcGxhY2UgKGFueXBsYWNlKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMDI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIElmIGluaXRpYWwgc2VsZWN0aW9uIGlzbid0IHNldCB3aGVuIHdlIGhh
bmRsZSBzZWxlY3Rpb24gbW92ZW1lbnQgZm9yIGFjY2Vzc2liaWxpdHkgd2UgbmVlZCB0byBzZXQg
aXQuCisKKyAgICAgICAgVGVzdDogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9u
LWluaXRpYWwuaHRtbAorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnRGb3JB
Y2Nlc3NpYmlsaXR5KToKKwogMjAxNC0wMy0xMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCBpT1MgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggMmE1ZTc5YS4uYjY1MmQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDE0LTAzLTE3ICBTYW11ZWwgV2hpdGUgIDxzYW11ZWxfd2hpdGVAYXBwbGUuY29tPgorCisgICAg
ICAgIEFYOiBOb3QgYWJsZSB0byB1c2UgYXJyb3cga2V5cyB0byByZWFkIHRleHQgd2l0aCBWb2lj
ZU92ZXIgYmVmb3JlIHNlbGVjdGlvbiBpcyBzZXQgc29tZXBsYWNlIChhbnlwbGFjZSkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAyNTAKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhYmlsaXR5
IHRvIHRvZ2dsZSBlbmhhbmNlZCBhY2Nlc3NpYmlsaXR5IG9uIGFuZCBvZmYgdG8gc3VwcG9ydCB0
ZXN0cyB0aGF0IHJlcXVpcmUgaXQuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgor
ICAgICAgICAoLVtXZWJGcmFtZSBlbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkXSk6CisgICAg
ICAgICgtW1dlYkZyYW1lIHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eTpdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCiAyMDE0LTAzLTEyICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIFdlYktpdDEgKyBXZWJLaXQyIGlPUyBj
bGllbnRzIHNob3VsZCBjaGVjayBsb2FkIHBvbGljeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI5YmY1Y2QuLmZj
MTNmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wMy0xNyAgU2FtdWVsIFdo
aXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogTm90IGFibGUgdG8g
dXNlIGFycm93IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rp
b24gaXMgc2V0IHNvbWVwbGFjZSAoYW55cGxhY2UpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYWJpbGl0eSB0byB0b2dnbGUgZW5oYW5jZWQg
YWNjZXNzaWJpbGl0eSBvbiBhbmQgb2ZmIHRvIHN1cHBvcnQgdGVzdHMgdGhhdCByZXF1aXJlIGl0
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwOgorICAgICAgICAoV0tBY2Nlc3NpYmlsaXR5RW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmls
aXR5KToKKyAgICAgICAgKFdLQWNjZXNzaWJpbGl0eUVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlUHJpdmF0ZS5oOgorCiAyMDE0LTAzLTEzICBMYXN6bG8gVmlkYWNzICA8bHZpZGFjcy51LXN6
ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIEZpeCB0aGUgIUVOQUJMRShTUUxf
REFUQUJBU0UpIGJ1aWxkCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggMmU3NGU3NS4uNDAwZGZmMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE0LTAzLTE3ICBTYW11
ZWwgV2hpdGUgIDxzYW11ZWxfd2hpdGVAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBOb3QgYWJs
ZSB0byB1c2UgYXJyb3cga2V5cyB0byByZWFkIHRleHQgd2l0aCBWb2ljZU92ZXIgYmVmb3JlIHNl
bGVjdGlvbiBpcyBzZXQgc29tZXBsYWNlIChhbnlwbGFjZSkuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAyNTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhYmlsaXR5IHRvIHRvZ2dsZSBlbmhh
bmNlZCBhY2Nlc3NpYmlsaXR5IG9uIGFuZCBvZmYgdG8gc3VwcG9ydCB0ZXN0cyB0aGF0IHJlcXVp
cmUgaXQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChlbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHlDYWxsYmFjayk6Cisg
ICAgICAgIChnZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkQ2FsbGJhY2spOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmdldEpTQ2xhc3MpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcDoKKyAgICAgICAgKEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjplbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkpOgorICAgICAg
ICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklP
Uy5tbToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmFibGVFbmhhbmNlZEFj
Y2Vzc2liaWxpdHkpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuaGFuY2Vk
QWNjZXNzaWJpbGl0eUVuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjplbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkpOgorICAgICAgICAoQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAg
IChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KToK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlF
bmFibGVkKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKToKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW06CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmFibGVFbmhhbmNlZEFjY2Vzc2li
aWxpdHkpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5RW5hYmxlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6
OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmls
aXR5RW5hYmxlZCk6CisKIDIwMTQtMDMtMTMgIEpvenNlZiBCZXJ0YSAgPGpiZXJ0YS51LXN6ZWdl
ZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIGJ1aWxkLXdlYmtpdCBzaG91
bGRuJ3Qgc2hvdyBlcnJvciBtZXNzYWdlIHdoZW4gbmluamEgaXNuJ3QgaW5zdGFsbGVkCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226961</attachid>
            <date>2014-03-17 14:06:53 -0700</date>
            <delta_ts>2014-03-17 14:54:44 -0700</delta_ts>
            <desc>Updated patch.</desc>
            <filename>selection.patch</filename>
            <type>text/plain</type>
            <size>25298</size>
            <attacher name="Samuel White">samuel_white</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi1pbml0aWFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mNjA1YjZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWluaXRpYWwtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdHMgdGhhdCBpbml0aWFsIHNlbGVjdGlvbiBp
cyBzZXQgd2hlbiBhcnJvdyBrZXlzIGFyZSBwcmVzc2VkIGFuZCBubyBzZWxlY3Rpb24gZXhpc3Rz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpc1NlbGVjdGlvbkF0U3Rh
cnRPZkRvY3VtZW50KCkgaXMgZmFsc2UKK1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVu
dCgpIGlzIGZhbHNlCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNz
aWJpbGl0eUVuYWJsZWQgaXMgdHJ1ZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkgaXMgZmFsc2UKK1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIHRydWUK
K1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIGZhbHNlCitQQVNTIGlzU2Vs
ZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSBpcyB0cnVlCitQQVNTIGlzU2VsZWN0aW9uQXRTdGFy
dE9mRG9jdW1lbnQoKSBpcyBmYWxzZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkgaXMgdHJ1ZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkgaXMgZmFsc2UK
K1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIHRydWUKK1BBU1MgaXNTZWxl
Y3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIGZhbHNlCitQQVNTIGlzU2VsZWN0aW9uQXRTdGFy
dE9mRG9jdW1lbnQoKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24taW5pdGlhbC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0NmM0NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24taW5pdGlhbC5odG1sCkBA
IC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHRpdGxl
PlNlbGVjdGlvbiBJbml0aWFsPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8cCBpZD0idGV4
dCI+VGV4dC48L3A+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBp
bml0aWFsIHNlbGVjdGlvbiBpcyBzZXQgd2hlbiBhcnJvdyBrZXlzIGFyZSBwcmVzc2VkIGFuZCBu
byBzZWxlY3Rpb24gZXhpc3RzLiIpOworICAgIAorICAgIGZ1bmN0aW9uIGNsZWFyU2VsZWN0aW9u
KCkgeworICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7Cisg
ICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSB7
CisgICAgICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAg
IHJldHVybiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+PSAxICYmIHNlbGVjdGlvbi5nZXRSYW5nZUF0
KDApLmVuZE9mZnNldCA9PT0gMCAmJiBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5zdGFydE9mZnNl
dCA9PT0gMDsKKyAgICB9CisgICAgCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgLy8gRG93biBhcnJvdyBrZXkg
KHNob3VsZCBOT1Qgc2V0IGluaXRpYWwgc2VsZWN0aW9uIGJlZm9yZSBlbmhhbmNlZCBhY2Nlc3Np
YmlsaXR5IGlzIGVuYWJsZWQpLgorICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0
T2ZEb2N1bWVudCgpIiwgImZhbHNlIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRv
d25BcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVu
dCgpIiwgImZhbHNlIik7CisgICAgICAgIGNsZWFyU2VsZWN0aW9uKCk7CisgICAgICAgIAorICAg
ICAgICAvLyBFbmFibGUgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSAobmVjZXNzYXJ5IGZvciBhY2Nl
c3NpYmlsaXR5IHNwZWNpZmljIHNlbGVjdGlvbiBoYW5kbGluZykuCisgICAgICAgIGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKyAgICAg
ICAgc2hvdWxkQmUoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNzaWJpbGl0
eUVuYWJsZWQiLCAidHJ1ZSIpOworICAgICAgICAKKyAgICAgICAgLy8gRG93biBhcnJvdyBrZXku
CisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAiZmFs
c2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAg
IHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAidHJ1ZSIpOworICAg
ICAgICBjbGVhclNlbGVjdGlvbigpOworICAgICAgICAKKyAgICAgICAgLy8gTGVmdCBhcnJvdyBr
ZXkuCisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAi
ZmFsc2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAg
ICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAidHJ1ZSIpOwor
ICAgICAgICBjbGVhclNlbGVjdGlvbigpOworICAgICAgICAKKyAgICAgICAgLy8gUmlnaHQgYXJy
b3cga2V5LgorICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgp
IiwgImZhbHNlIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsK
KyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSIsICJ0cnVl
Iik7CisgICAgICAgIGNsZWFyU2VsZWN0aW9uKCk7CisgICAgICAgIAorICAgICAgICAvLyBVcCBh
cnJvdyBrZXkuCisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkiLCAiZmFsc2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIpOwor
ICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIiwgInRydWUi
KTsKKyAgICAgICAgY2xlYXJTZWxlY3Rpb24oKTsKKyAgICAgICAgCisgICAgICAgIC8vIFoga2V5
IChvbmx5IGFycm93IGtleXMgc2hvdWxkIHNldCBpbml0aWFsIHNlbGVjdGlvbiBpZiBubyBzZWxl
Y3Rpb24gZXhpc3RzKS4KKyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9j
dW1lbnQoKSIsICJmYWxzZSIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJaIik7Cisg
ICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAiZmFsc2Ui
KTsKKyAgICAgICAgCisgICAgICAgIC8vIEhpZGUgc3VwZXJmbHVvdXMgdGV4dC4KKyAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwor
ICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKaW5kZXggNzE3M2Q5Yi4uOTRjMmI4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtOTEsNiArOTEsNyBAQAogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVXNlclR5
cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNs
dWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtMzA0NSwxNyArMzA0NiwyMSBAQCBzdGF0aWMg
Rm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5nJiBr
ZXlJZGVudGlmaWVyKQogICAgIHJldHVybiByZXRWYWw7CiB9CiAKLXN0YXRpYyB2b2lkIGhhbmRs
ZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgS2V5
Ym9hcmRFdmVudCogZXZlbnQpCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1v
dmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKCFl
dmVudCkKICAgICAgICAgcmV0dXJuOwotCi0gICAgYm9vbCBpc09wdGlvbmVkID0gZXZlbnQtPmdl
dE1vZGlmaWVyU3RhdGUoIkFsdCIpOworICAgIAorICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rp
b24gPSBmcmFtZS5zZWxlY3Rpb24oKTsKKyAgICAKICAgICBib29sIGlzQ29tbWFuZGVkID0gZXZl
bnQtPmdldE1vZGlmaWVyU3RhdGUoIk1ldGEiKTsKLQorICAgIGJvb2wgaXNPcHRpb25lZCA9IGV2
ZW50LT5nZXRNb2RpZmllclN0YXRlKCJBbHQiKTsKKyAgICBib29sIGlzU2VsZWN0aW9uID0gIXNl
bGVjdGlvbi5pc05vbmUoKTsKKyAgICAKKyAgICBGcmFtZVNlbGVjdGlvbjo6RUFsdGVyYXRpb24g
YWx0ZXJuYXRpb24gPSBldmVudC0+Z2V0TW9kaWZpZXJTdGF0ZSgiU2hpZnQiKSA/IEZyYW1lU2Vs
ZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kIDogRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3Zl
OwogICAgIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBEaXJlY3Rpb25Gb3J3YXJkOwog
ICAgIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5Owot
CisgICAgCiAgICAgc3dpdGNoIChmb2N1c0RpcmVjdGlvbkZvcktleShldmVudC0+a2V5SWRlbnRp
ZmllcigpKSkgewogICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Ob25lOgogICAgICAgICByZXR1cm47
CkBAIC0zMDgwLDkgKzMwODUsMTIgQEAgc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rp
b25Nb3ZlbWVudChGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBLZXlib2FyZEUKICAgICAgICAg
Z3JhbnVsYXJpdHkgPSAoaXNDb21tYW5kZWQpID8gTGluZUJvdW5kYXJ5IDogKGlzT3B0aW9uZWQp
ID8gV29yZEdyYW51bGFyaXR5IDogQ2hhcmFjdGVyR3JhbnVsYXJpdHk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KLQotICAgIEZyYW1lU2VsZWN0aW9uOjpFQWx0ZXJhdGlvbiBhbHRlcm5hdGlvbiA9
IGV2ZW50LT5nZXRNb2RpZmllclN0YXRlKCJTaGlmdCIpID8gRnJhbWVTZWxlY3Rpb246OkFsdGVy
YXRpb25FeHRlbmQgOiBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmU7Ci0gICAgc2VsZWN0
aW9uLm1vZGlmeShhbHRlcm5hdGlvbiwgZGlyZWN0aW9uLCBncmFudWxhcml0eSwgVXNlclRyaWdn
ZXJlZCk7CisgICAgCisgICAgaWYgKGlzU2VsZWN0aW9uKQorICAgICAgICBzZWxlY3Rpb24ubW9k
aWZ5KGFsdGVybmF0aW9uLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBVc2VyVHJpZ2dlcmVkKTsK
KyAgICBlbHNlCisgICAgICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24oc3RhcnRPZkRvY3VtZW50
KGZyYW1lLmRvY3VtZW50KCkpLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoVXNlclRyaWdnZXJlZCkpOworICAgIAogICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogfQogCkBAIC0zMDkwLDcgKzMwOTgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aGFuZGxl
S2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudEZvckFjY2Vzc2liaWxpdHkoS2V5Ym9hcmRFdmVudAog
ewogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsK
ICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRl
cmZhY2VFbmFibGVkKCkpCi0gICAgICAgICAgICBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVt
ZW50KG1fZnJhbWUuc2VsZWN0aW9uKCksIGV2ZW50KTsKKyAgICAgICAgICAgIGhhbmRsZUtleWJv
YXJkU2VsZWN0aW9uTW92ZW1lbnQobV9mcmFtZSwgZXZlbnQpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU3N2ZlMDMuLjc4NzczMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI5Myw2ICsyOTMsNyBAQCB2b2lkIEludGVy
bmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKiBwYWdlKQogICAgIE1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZXNldFJlc3RyaWN0aW9ucygpOwogI2VuZGlmCiAj
aWYgSEFWRShBQ0NFU1NJQklMSVRZKQorICAgIEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNl
ckludGVyZmFjZUFjY2Vzc2liaWxpdHkoZmFsc2UpOwogICAgIEFYT2JqZWN0Q2FjaGU6OmRpc2Fi
bGVBY2Nlc3NpYmlsaXR5KCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lLm1tCmluZGV4IGNmOGQ3MjMuLjVjNzBhMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbQpAQCAtMjE1Nyw2ICsyMTU3LDIyIEBAIC0gKHZvaWQpc2V0QWNjZXNzaWJsZU5h
bWU6KE5TU3RyaW5nICopbmFtZQogI2VuZGlmCiB9CiAKKy0gKEJPT0wpZW5oYW5jZWRBY2Nlc3Np
YmlsaXR5RW5hYmxlZAoreworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAgICByZXR1cm4gQVhP
YmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKTsK
KyNlbHNlCisgICAgcmV0dXJuIE5POworI2VuZGlmCit9CisKKy0gKHZvaWQpc2V0RW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5OihCT09MKWVuYWJsZQoreworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAg
ICBBWE9iamVjdENhY2hlOjpzZXRFbmhhbmNlZFVzZXJJbnRlcmZhY2VBY2Nlc3NpYmlsaXR5KGVu
YWJsZSk7CisjZW5kaWYKK30KKwogLSAoTlNTdHJpbmcqKV9sYXllclRyZWVBc1RleHQKIHsKICAg
ICBGcmFtZSogY29yZUZyYW1lID0gX3ByaXZhdGUtPmNvcmVGcmFtZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCmluZGV4IGExNGRmMTUuLjBkZDhlMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaApAQCAtMjYyLDYg
KzI2MiwxMCBAQCB0eXBlZGVmIGVudW0gewogLy8gU2V0cyB0aGUgbmFtZSBwcmVzZW50ZWQgdG8g
YWNjZXNzaWJpbGl0eSBjbGllbnRzIGZvciB0aGUgd2ViIGFyZWEgb2JqZWN0LgogLSAodm9pZClz
ZXRBY2Nlc3NpYmxlTmFtZTooTlNTdHJpbmcgKiluYW1lOwogCisvLyBFbmhhbmNlZCBhY2Nlc3Np
YmlsaXR5LgorLSAoQk9PTCllbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkOworLSAodm9pZClz
ZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHk6KEJPT0wpZW5hYmxlOworCiAtIChOU1N0cmluZyopX2xh
eWVyVHJlZUFzVGV4dDsKIAogLy8gVGhlIHRvcCBvZiB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IGRlMGYwMjAuLjY3MWNiNWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTI2NCw2ICsyNjQsMjIgQEAgdm9pZCogV0tB
Y2Nlc3NpYmlsaXR5Rm9jdXNlZE9iamVjdChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKICNlbmRp
ZgogfQogCit2b2lkIFdLQWNjZXNzaWJpbGl0eUVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShi
b29sIGVuYWJsZSkKK3sKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShlbmFibGUp
OworI2VuZGlmCit9CisKK2Jvb2wgV0tBY2Nlc3NpYmlsaXR5RW5oYW5jZWRBY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpCit7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorICAgIHJldHVybiBXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxl
ZCgpOworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogdm9pZCBXS0J1bmRs
ZVBhZ2VTdG9wTG9hZGluZyhXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsKICAgICB0b0ltcGwo
cGFnZVJlZiktPnN0b3BMb2FkaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJp
dmF0ZS5oCmluZGV4IDI0NjFjMzguLjVmNGQ4NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlUHJpdmF0ZS5oCkBAIC04MCw2ICs4MCw5IEBAIFdLX0VYUE9SVCBib29sIFdLQnVuZGxl
UGFnZUNhblNob3dNSU1FVHlwZShXS0J1bmRsZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIG1pbWVUeXBl
CiBXS19FWFBPUlQgdm9pZCogV0tBY2Nlc3NpYmlsaXR5Um9vdE9iamVjdChXS0J1bmRsZVBhZ2VS
ZWYpOwogV0tfRVhQT1JUIHZvaWQqIFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3QoV0tCdW5k
bGVQYWdlUmVmKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tBY2Nlc3NpYmlsaXR5RW5hYmxlRW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5KGJvb2wpOworV0tfRVhQT1JUIGJvb2wgV0tBY2Nlc3NpYmlsaXR5RW5o
YW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOworCiBXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tC
dW5kbGVQYWdlQ29weUNvbnRleHRNZW51SXRlbVRpdGxlKFdLQ29udGV4dE1lbnVJdGVtUmVmKTsK
IFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZUNsaWNrTWVudUl0ZW0oV0tCdW5kbGVQYWdlUmVm
LCBXS0NvbnRleHRNZW51SXRlbVJlZik7CiBXS19FWFBPUlQgV0tBcnJheVJlZiBXS0J1bmRsZVBh
Z2VDb3B5Q29udGV4dE1lbnVJdGVtcyhXS0J1bmRsZVBhZ2VSZWYpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4IGRkOTk5NmIuLmQw
MzVkZWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5jcHAKQEAgLTEzMCw2ICsxMzAsMjAgQEAgc3RhdGljIEpTVmFsdWVSZWYgcmVtb3ZlTm90
aWZpY2F0aW9uTGlzdGVuZXJDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmoKICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1Zh
bHVlUmVmIGVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlciogY29udHJvbGxl
ciA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKKyAgICBpZiAoYXJndW1lbnRDb3VudCA9PSAxKQorICAgICAgICBj
b250cm9sbGVyLT5lbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoSlNWYWx1ZVRvQm9vbGVhbihj
b250ZXh0LCBhcmd1bWVudHNbMF0pKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Cit9CisKK3N0YXRpYyBKU1ZhbHVlUmVmIGdldEVuaGFuY2VkQWNjZXNzaWJpbGl0
eUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7
CisgICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7
CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlQm9vbGVhbihjb250ZXh0LCBjb250cm9sbGVyLT5lbmhh
bmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkpOworfQorCiBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRQ
bGF0Zm9ybU5hbWVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
CiB7CiAgICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2Fz
dDxBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0
KSk7CkBAIC0xNTAsMTIgKzE2NCwxNCBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpnZXRKU0NsYXNzKCkKICAgICAgICAgeyAiYWNjZXNzaWJsZUVsZW1lbnRCeUlkIiwgZ2V0
QWNjZXNzaWJsZUVsZW1lbnRCeUlkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiYWRkTm90
aWZpY2F0aW9uTGlzdGVuZXIiLCBhZGROb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyIiwgcmVtb3ZlTm90aWZp
Y2F0aW9uTGlzdGVuZXJDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJlbmFibGVFbmhhbmNl
ZEFjY2Vzc2liaWxpdHkiLCBlbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHlDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7IDAsIDAsIDAgfQogICAgIH07CiAKICAgICBzdGF0aWMgSlNTdGF0aWNW
YWx1ZSBzdGF0aWNWYWx1ZXNbXSA9IHsKICAgICAgICAgeyAiZm9jdXNlZEVsZW1lbnQiLCBnZXRG
b2N1c2VkRWxlbWVudENhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJvb3RFbGVtZW50
IiwgZ2V0Um9vdEVsZW1lbnRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJlbmhhbmNl
ZEFjY2Vzc2liaWxpdHlFbmFibGVkIiwgZ2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZENh
bGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInBsYXRmb3JtTmFtZSIsIGdldFBsYXRmb3Jt
TmFtZUNhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgMCwgMCwgMCwgMCB9CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCmluZGV4
IDJlNzQ5ZDEuLjdjMTg4MjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuaApAQCAtNjQsNiArNjQsMTAgQEAgcHVibGljOgogICAgIGJvb2wgYWRk
Tm90aWZpY2F0aW9uTGlzdGVuZXIoSlNPYmplY3RSZWYgZnVuY3Rpb25DYWxsYmFjayk7CiAgICAg
dm9pZCByZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpOwogCisgICAgLy8gRW5oYW5jZWQgYWNj
ZXNzaWJpbGl0eS4KKyAgICB2b2lkIGVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sKTsK
KyAgICBib29sIGVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKTsKKwogICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKFdJ
TikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlckF0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJBdGsuY3BwCmluZGV4IGQ4ZDBmYzkuLjc1N2M1MDkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcApA
QCAtMTA2LDYgKzEwNiwxNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZW1vdmVO
b3RpZmljYXRpb25MaXN0ZW5lcigpCiAgICAgbV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyID0g
bnVsbHB0cjsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5KGJvb2wpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCiti
b29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVk
KCkKK3sKKyAgICAvLyBGSVhNRTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3Jt
TmFtZSgpIGNvbnN0CiB7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFt
ZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImF0ayIpKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5t
bQppbmRleCA1ZjlhNTE2Li5jMWJhZTgwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCkBAIC0xMjcsNiArMTI3LDE2
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3Rl
bmVyKCkKIHsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZW5hYmxlKQoreworICAgIFttYWluRnJhbWUgc2V0RW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5OmVuYWJsZV07Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQoreworICAgIHJldHVybiBbbWFpbkZy
YW1lIGVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWRdOworfQorCiBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0CiB7
CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImlvcyIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbSBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQppbmRleCBlMWIyMWMz
Li5iZmI5ZDBkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyTWFjLm1tCkBAIC0xNDUsNiArMTQ1LDE2IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKICAgICAvLyBO
byBsb25nZXIgYSBuZWVkIHRvIGNsZWFudXAgZm9yIHRlc3RzLCBzaW5jZSByZXNldFRvQ29uc2lz
dGVudFN0YXRlIHdpbGwgcmVtb3ZlIHRoZSBsaXN0ZW5lci4KIH0KIAordm9pZCBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wgZW5hYmxlKQor
eworICAgIFttYWluRnJhbWUgc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5OmVuYWJsZV07Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKQoreworICAgIHJldHVybiBbbWFpbkZyYW1lIGVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJs
ZWRdOworfQorCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0CiB7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIm1hYyIp
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJXaW4uY3BwCmluZGV4IGNkMWEyZTIuLjVhMGFiMGUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcApA
QCAtMzk0LDYgKzM5NCwxNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjp3aW5BZGRO
b3RpZmljYXRpb25MaXN0ZW5lcihQbGF0Zm9ybVVJRWxlbWVudCBlbGVtZQogICAgIG1fbm90aWZp
Y2F0aW9uTGlzdGVuZXJzLmFkZChlbGVtZW50LCBmdW5jdGlvbkNhbGxiYWNrKTsKIH0KIAordm9p
ZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJv
b2wpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCitib29sIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKK3sKKyAgICAvLyBGSVhN
RTogaW1wbGVtZW50CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0CiB7CiAg
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIndpbiIpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5jcHAKaW5kZXggZTQ2ZTdhNC4uODFlNzA3NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5jcHAKQEAgLTYyLDYgKzYyLDE2IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OndyYXBwZXJDbGFzcygpCiB9CiAKICNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZP
Uk0oRUZMKQordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nl
c3NpYmlsaXR5KGJvb2wgZW5hYmxlKQoreworICAgIFdLQWNjZXNzaWJpbGl0eUVuYWJsZUVuaGFu
Y2VkQWNjZXNzaWJpbGl0eShlbmFibGUpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gV0tBY2Nl
c3NpYmlsaXR5RW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOworfQorCiBQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxl
bWVudCgpCiB7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2hh
cmVkKCkucGFnZSgpLT5wYWdlKCk7CkBAIC05Nyw2ICsxMDcsOCBAQCBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpIHsgcmV0dXJu
IEpTUmV0YQogI2VuZGlmCiAKICNpZiAhSEFWRShBQ0NFU1NJQklMSVRZKSAmJiAoUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShFRkwpKQordm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5h
YmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KGJvb2wpIHsgfQorYm9vbCBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpIHsgcmV0dXJuIGZhbHNlOyB9
CiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpyb290RWxlbWVudCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIFBhc3NSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmZvY3VzZWRFbGVtZW50
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmgKaW5kZXggNjBmM2U1Ni4uOGQ2NjhlZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aApAQCAtNDQsNiArNDQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgbWFrZVdpbmRvd09iamVjdChK
U0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIHdpbmRvd09iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKTsKICAgICB2aXJ0dWFsIEpTQ2xhc3NSZWYgd3JhcHBlckNsYXNzKCk7CiAgICAgCisgICAg
Ly8gRW5oYW5jZWQgYWNjZXNzaWJpbGl0eS4KKyAgICB2b2lkIGVuYWJsZUVuaGFuY2VkQWNjZXNz
aWJpbGl0eShib29sKTsKKyAgICBib29sIGVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKTsK
KyAgICAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKCk7CiAKICAg
ICAvLyBDb250cm9sbGVyIE1ldGhvZHMgLSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBpbXBsZW1lbnRh
dGlvbnMuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRs
CmluZGV4IGJmN2E2ZTQuLjM4MzExNTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaWRsCkBAIC0yNCw2ICsyNCw5IEBACiAgKi8KIAogaW50ZXJmYWNl
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIHsKKyAgICB2b2lkIGVuYWJsZUVuaGFuY2VkQWNjZXNz
aWJpbGl0eShib29sZWFuIGVuYWJsZSk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZDsKKwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgcGxhdGZvcm1OYW1lOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50IHJvb3RFbGVtZW50OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50IGZvY3VzZWRFbGVtZW50OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhNDI5MTIuLjJlODI0NWMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMy0xNyAgU2FtdWVsIFdoaXRlICA8c2FtdWVs
X3doaXRlQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogTm90IGFibGUgdG8gdXNlIGFycm93IGtl
eXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24gaXMgc2V0IHNv
bWVwbGFjZSAoYW55cGxhY2UpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMwMjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkZWQgdGVzdCB0byBlbnN1cmUgdGhhdCBpbml0aWFsIHNlbGVjdGlvbiBn
ZXRzIHNldCB3aGVuIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkgaXMgZW5hYmxlZCBhbmQgYW4gYXJy
b3cga2V5IGlzIHByZXNzZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24taW5pdGlhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLmh0bWw6IEFkZGVkLgorCiAy
MDE0LTAzLTEzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3Vi
cGl4ZWwgcmVuZGVyaW5nOiBOZXN0ZWQgbGF5ZXJzIHdpdGggc3VicGl4ZWwgYWNjdW11bGF0aW9u
IHBhaW50IHRvIHdyb25nIHBvc2l0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDAwYzQ1MTguLjA1MWY0ZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNC0wMy0xNyAgU2FtdWVsIFdoaXRlICA8
c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogTm90IGFibGUgdG8gdXNlIGFy
cm93IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24gaXMg
c2V0IHNvbWVwbGFjZSAoYW55cGxhY2UpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSWYgaW5pdGlhbCBzZWxlY3Rpb24gaXNuJ3Qgc2V0IHdoZW4gd2Ug
aGFuZGxlIHNlbGVjdGlvbiBtb3ZlbWVudCBmb3IgYWNjZXNzaWJpbGl0eSB3ZSBuZWVkIHRvIHNl
dCBpdC4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rp
b24taW5pdGlhbC5odG1sCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudEZv
ckFjY2Vzc2liaWxpdHkpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSk6CisKIDIwMTQt
MDMtMTMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0
byBmaXggaU9TIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDJhNWU3OWEuLmI2NTJkOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0wMy0xNyAgU2FtdWVsIFdoaXRl
ICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogTm90IGFibGUgdG8gdXNl
IGFycm93IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24g
aXMgc2V0IHNvbWVwbGFjZSAoYW55cGxhY2UpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYWJpbGl0eSB0byB0b2dnbGUgZW5oYW5jZWQgYWNj
ZXNzaWJpbGl0eSBvbiBhbmQgb2ZmIHRvIHN1cHBvcnQgdGVzdHMgdGhhdCByZXF1aXJlIGl0Lgor
CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgZW5o
YW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJGcmFtZSBzZXRFbmhh
bmNlZEFjY2Vzc2liaWxpdHk6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVByaXZhdGUu
aDoKKwogMjAxNC0wMy0xMiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dlYkdMXSBXZWJLaXQxICsgV2ViS2l0MiBpT1MgY2xpZW50cyBzaG91bGQgY2hlY2sgbG9h
ZCBwb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyOWJmNWNkLi5mYzEzZjEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTQtMDMtMTcgIFNhbXVlbCBXaGl0ZSAgPHNhbXVlbF93aGl0ZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBhcnJvdyBrZXlzIHRvIHJlYWQg
dGV4dCB3aXRoIFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlzIHNldCBzb21lcGxhY2UgKGFu
eXBsYWNlKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMDI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIGFiaWxpdHkgdG8gdG9nZ2xlIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkgb24gYW5kIG9m
ZiB0byBzdXBwb3J0IHRlc3RzIHRoYXQgcmVxdWlyZSBpdC4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdLQWNj
ZXNzaWJpbGl0eUVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChXS0FjY2Vz
c2liaWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaDoKKwogMjAxNC0w
My0xMyAgTGFzemxvIFZpZGFjcyAgPGx2aWRhY3MudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNv
bT4KIAogICAgICAgICBGaXggdGhlICFFTkFCTEUoU1FMX0RBVEFCQVNFKSBidWlsZApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDJlNzRlNzUuLjRi
ZDAwZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNSBAQAorMjAxNC0wMy0xNyAgU2FtdWVsIFdoaXRlICA8c2FtdWVsX3doaXRl
QGFwcGxlLmNvbT4KKworICAgICAgICBBWDogTm90IGFibGUgdG8gdXNlIGFycm93IGtleXMgdG8g
cmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24gaXMgc2V0IHNvbWVwbGFj
ZSAoYW55cGxhY2UpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMwMjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgYWJpbGl0eSB0byB0b2dnbGUgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSBvbiBh
bmQgb2ZmIHRvIHN1cHBvcnQgdGVzdHMgdGhhdCByZXF1aXJlIGl0LgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoZW5hYmxl
RW5oYW5jZWRBY2Nlc3NpYmlsaXR5Q2FsbGJhY2spOgorICAgICAgICAoZ2V0RW5oYW5jZWRBY2Nl
c3NpYmlsaXR5RW5hYmxlZENhbGxiYWNrKToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpnZXRKU0NsYXNzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlckF0ay5jcHA6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5h
YmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KToKKyAgICAgICAg
KEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMu
bW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nl
c3NpYmlsaXR5KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFj
Y2Vzc2liaWxpdHlFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmFibGVFbmhhbmNlZEFj
Y2Vzc2liaWxpdHkpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5o
YW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaWRsOgorCiAyMDE0LTAzLTEzICBKb3pzZWYgQmVydGEgIDxqYmVydGEudS1zemVnZWRAcGFy
dG5lci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBidWlsZC13ZWJraXQgc2hvdWxkbid0
IHNob3cgZXJyb3IgbWVzc2FnZSB3aGVuIG5pbmphIGlzbid0IGluc3RhbGxlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226969</attachid>
            <date>2014-03-17 14:54:44 -0700</date>
            <delta_ts>2014-03-18 10:39:30 -0700</delta_ts>
            <desc>Updated patch.</desc>
            <filename>selection.patch</filename>
            <type>text/plain</type>
            <size>27387</size>
            <attacher name="Samuel White">samuel_white</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi1pbml0aWFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mNjA1YjZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWluaXRpYWwtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdHMgdGhhdCBpbml0aWFsIHNlbGVjdGlvbiBp
cyBzZXQgd2hlbiBhcnJvdyBrZXlzIGFyZSBwcmVzc2VkIGFuZCBubyBzZWxlY3Rpb24gZXhpc3Rz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpc1NlbGVjdGlvbkF0U3Rh
cnRPZkRvY3VtZW50KCkgaXMgZmFsc2UKK1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVu
dCgpIGlzIGZhbHNlCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNz
aWJpbGl0eUVuYWJsZWQgaXMgdHJ1ZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkgaXMgZmFsc2UKK1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIHRydWUK
K1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIGZhbHNlCitQQVNTIGlzU2Vs
ZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSBpcyB0cnVlCitQQVNTIGlzU2VsZWN0aW9uQXRTdGFy
dE9mRG9jdW1lbnQoKSBpcyBmYWxzZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkgaXMgdHJ1ZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkgaXMgZmFsc2UK
K1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIHRydWUKK1BBU1MgaXNTZWxl
Y3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIGZhbHNlCitQQVNTIGlzU2VsZWN0aW9uQXRTdGFy
dE9mRG9jdW1lbnQoKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24taW5pdGlhbC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0NmM0NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24taW5pdGlhbC5odG1sCkBA
IC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHRpdGxl
PlNlbGVjdGlvbiBJbml0aWFsPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8cCBpZD0idGV4
dCI+VGV4dC48L3A+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBp
bml0aWFsIHNlbGVjdGlvbiBpcyBzZXQgd2hlbiBhcnJvdyBrZXlzIGFyZSBwcmVzc2VkIGFuZCBu
byBzZWxlY3Rpb24gZXhpc3RzLiIpOworICAgIAorICAgIGZ1bmN0aW9uIGNsZWFyU2VsZWN0aW9u
KCkgeworICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7Cisg
ICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSB7
CisgICAgICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAg
IHJldHVybiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+PSAxICYmIHNlbGVjdGlvbi5nZXRSYW5nZUF0
KDApLmVuZE9mZnNldCA9PT0gMCAmJiBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5zdGFydE9mZnNl
dCA9PT0gMDsKKyAgICB9CisgICAgCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgLy8gRG93biBhcnJvdyBrZXkg
KHNob3VsZCBOT1Qgc2V0IGluaXRpYWwgc2VsZWN0aW9uIGJlZm9yZSBlbmhhbmNlZCBhY2Nlc3Np
YmlsaXR5IGlzIGVuYWJsZWQpLgorICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0
T2ZEb2N1bWVudCgpIiwgImZhbHNlIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRv
d25BcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVu
dCgpIiwgImZhbHNlIik7CisgICAgICAgIGNsZWFyU2VsZWN0aW9uKCk7CisgICAgICAgIAorICAg
ICAgICAvLyBFbmFibGUgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSAobmVjZXNzYXJ5IGZvciBhY2Nl
c3NpYmlsaXR5IHNwZWNpZmljIHNlbGVjdGlvbiBoYW5kbGluZykuCisgICAgICAgIGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKyAgICAg
ICAgc2hvdWxkQmUoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNzaWJpbGl0
eUVuYWJsZWQiLCAidHJ1ZSIpOworICAgICAgICAKKyAgICAgICAgLy8gRG93biBhcnJvdyBrZXku
CisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAiZmFs
c2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAg
IHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAidHJ1ZSIpOworICAg
ICAgICBjbGVhclNlbGVjdGlvbigpOworICAgICAgICAKKyAgICAgICAgLy8gTGVmdCBhcnJvdyBr
ZXkuCisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAi
ZmFsc2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAg
ICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAidHJ1ZSIpOwor
ICAgICAgICBjbGVhclNlbGVjdGlvbigpOworICAgICAgICAKKyAgICAgICAgLy8gUmlnaHQgYXJy
b3cga2V5LgorICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgp
IiwgImZhbHNlIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsK
KyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSIsICJ0cnVl
Iik7CisgICAgICAgIGNsZWFyU2VsZWN0aW9uKCk7CisgICAgICAgIAorICAgICAgICAvLyBVcCBh
cnJvdyBrZXkuCisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkiLCAiZmFsc2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIpOwor
ICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIiwgInRydWUi
KTsKKyAgICAgICAgY2xlYXJTZWxlY3Rpb24oKTsKKyAgICAgICAgCisgICAgICAgIC8vIFoga2V5
IChvbmx5IGFycm93IGtleXMgc2hvdWxkIHNldCBpbml0aWFsIHNlbGVjdGlvbiBpZiBubyBzZWxl
Y3Rpb24gZXhpc3RzKS4KKyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9j
dW1lbnQoKSIsICJmYWxzZSIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJaIik7Cisg
ICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAiZmFsc2Ui
KTsKKyAgICAgICAgCisgICAgICAgIC8vIEhpZGUgc3VwZXJmbHVvdXMgdGV4dC4KKyAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwor
ICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKaW5kZXggNzE3M2Q5Yi4uOTRjMmI4OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtOTEsNiArOTEsNyBAQAogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVXNlclR5
cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNs
dWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtMzA0NSwxNyArMzA0NiwyMSBAQCBzdGF0aWMg
Rm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5nJiBr
ZXlJZGVudGlmaWVyKQogICAgIHJldHVybiByZXRWYWw7CiB9CiAKLXN0YXRpYyB2b2lkIGhhbmRs
ZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgS2V5
Ym9hcmRFdmVudCogZXZlbnQpCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1v
dmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKCFl
dmVudCkKICAgICAgICAgcmV0dXJuOwotCi0gICAgYm9vbCBpc09wdGlvbmVkID0gZXZlbnQtPmdl
dE1vZGlmaWVyU3RhdGUoIkFsdCIpOworICAgIAorICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rp
b24gPSBmcmFtZS5zZWxlY3Rpb24oKTsKKyAgICAKICAgICBib29sIGlzQ29tbWFuZGVkID0gZXZl
bnQtPmdldE1vZGlmaWVyU3RhdGUoIk1ldGEiKTsKLQorICAgIGJvb2wgaXNPcHRpb25lZCA9IGV2
ZW50LT5nZXRNb2RpZmllclN0YXRlKCJBbHQiKTsKKyAgICBib29sIGlzU2VsZWN0aW9uID0gIXNl
bGVjdGlvbi5pc05vbmUoKTsKKyAgICAKKyAgICBGcmFtZVNlbGVjdGlvbjo6RUFsdGVyYXRpb24g
YWx0ZXJuYXRpb24gPSBldmVudC0+Z2V0TW9kaWZpZXJTdGF0ZSgiU2hpZnQiKSA/IEZyYW1lU2Vs
ZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5kIDogRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3Zl
OwogICAgIFNlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBEaXJlY3Rpb25Gb3J3YXJkOwog
ICAgIFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSA9IENoYXJhY3RlckdyYW51bGFyaXR5Owot
CisgICAgCiAgICAgc3dpdGNoIChmb2N1c0RpcmVjdGlvbkZvcktleShldmVudC0+a2V5SWRlbnRp
ZmllcigpKSkgewogICAgIGNhc2UgRm9jdXNEaXJlY3Rpb25Ob25lOgogICAgICAgICByZXR1cm47
CkBAIC0zMDgwLDkgKzMwODUsMTIgQEAgc3RhdGljIHZvaWQgaGFuZGxlS2V5Ym9hcmRTZWxlY3Rp
b25Nb3ZlbWVudChGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBLZXlib2FyZEUKICAgICAgICAg
Z3JhbnVsYXJpdHkgPSAoaXNDb21tYW5kZWQpID8gTGluZUJvdW5kYXJ5IDogKGlzT3B0aW9uZWQp
ID8gV29yZEdyYW51bGFyaXR5IDogQ2hhcmFjdGVyR3JhbnVsYXJpdHk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KLQotICAgIEZyYW1lU2VsZWN0aW9uOjpFQWx0ZXJhdGlvbiBhbHRlcm5hdGlvbiA9
IGV2ZW50LT5nZXRNb2RpZmllclN0YXRlKCJTaGlmdCIpID8gRnJhbWVTZWxlY3Rpb246OkFsdGVy
YXRpb25FeHRlbmQgOiBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmU7Ci0gICAgc2VsZWN0
aW9uLm1vZGlmeShhbHRlcm5hdGlvbiwgZGlyZWN0aW9uLCBncmFudWxhcml0eSwgVXNlclRyaWdn
ZXJlZCk7CisgICAgCisgICAgaWYgKGlzU2VsZWN0aW9uKQorICAgICAgICBzZWxlY3Rpb24ubW9k
aWZ5KGFsdGVybmF0aW9uLCBkaXJlY3Rpb24sIGdyYW51bGFyaXR5LCBVc2VyVHJpZ2dlcmVkKTsK
KyAgICBlbHNlCisgICAgICAgIHNlbGVjdGlvbi5zZXRTZWxlY3Rpb24oc3RhcnRPZkRvY3VtZW50
KGZyYW1lLmRvY3VtZW50KCkpLCBGcmFtZVNlbGVjdGlvbjo6ZGVmYXVsdFNldFNlbGVjdGlvbk9w
dGlvbnMoVXNlclRyaWdnZXJlZCkpOworICAgIAogICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogfQogCkBAIC0zMDkwLDcgKzMwOTgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aGFuZGxl
S2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudEZvckFjY2Vzc2liaWxpdHkoS2V5Ym9hcmRFdmVudAog
ewogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsK
ICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRl
cmZhY2VFbmFibGVkKCkpCi0gICAgICAgICAgICBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVt
ZW50KG1fZnJhbWUuc2VsZWN0aW9uKCksIGV2ZW50KTsKKyAgICAgICAgICAgIGhhbmRsZUtleWJv
YXJkU2VsZWN0aW9uTW92ZW1lbnQobV9mcmFtZSwgZXZlbnQpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU3N2ZlMDMuLjc4NzczMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI5Myw2ICsyOTMsNyBAQCB2b2lkIEludGVy
bmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKiBwYWdlKQogICAgIE1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZXNldFJlc3RyaWN0aW9ucygpOwogI2VuZGlmCiAj
aWYgSEFWRShBQ0NFU1NJQklMSVRZKQorICAgIEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNl
ckludGVyZmFjZUFjY2Vzc2liaWxpdHkoZmFsc2UpOwogICAgIEFYT2JqZWN0Q2FjaGU6OmRpc2Fi
bGVBY2Nlc3NpYmlsaXR5KCk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmlu
IGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2Vi
S2l0RXhwb3J0cy5kZWYuaW4KaW5kZXggZWJiNDQ2YS4uMzU3MTQzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhw
b3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBv
cnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTQ3NSw2ICs0NzUsNyBAQCBFWFBP
UlRTCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9jb21wbGV0ZVVSTEBEb2N1bWVudEBXZWJD
b3JlQEBVQkU/QVZVUkxAMkBBQlZTdHJpbmdAV1RGQEBAWiwgP2NvbXBsZXRlVVJMQERvY3VtZW50
QFdlYkNvcmVAQFVFQkE/QVZVUkxAMkBBRUJWU3RyaW5nQFdURkBAQFopCiAgICAgICAgIHN5bWJv
bFdpdGhQb2ludGVyKD8/MURPTVdpbmRvd0BXZWJDb3JlQEBVQUVAWFosID8/MURPTVdpbmRvd0BX
ZWJDb3JlQEBVRUFBQFhaKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dmlzaWJsZUNvbnRl
bnRSZWN0QFNjcm9sbGFibGVBcmVhQFdlYkNvcmVAQFFCRT9BVkludFJlY3RAMkBXNFZpc2libGVD
b250ZW50UmVjdEJlaGF2aW9yQDEyQEBaLCA/dmlzaWJsZUNvbnRlbnRSZWN0QFNjcm9sbGFibGVB
cmVhQFdlYkNvcmVAQFFFQkE/QVZJbnRSZWN0QDJAVzRWaXNpYmxlQ29udGVudFJlY3RCZWhhdmlv
ckAxMkBAWikKKyAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP2dBY2Nlc3NpYmlsaXR5RW5oYW5j
ZWRVc2VySW50ZXJmYWNlRW5hYmxlZEBBWE9iamVjdENhY2hlQFdlYkNvcmVAQDBfTkEsID9nQWNj
ZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWRAQVhPYmplY3RDYWNoZUBXZWJD
b3JlQEAwX05BKQogICAgICAgICBzeW1ib2xXaXRoUG9pbnRlcig/ZGlzYWJsZUFjY2Vzc2liaWxp
dHlAQVhPYmplY3RDYWNoZUBXZWJDb3JlQEBTQVhYWiwgP2Rpc2FibGVBY2Nlc3NpYmlsaXR5QEFY
T2JqZWN0Q2FjaGVAV2ViQ29yZUBAU0FYWFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9z
ZXNzaW9uSURAUGFnZUBXZWJDb3JlQEBRQkU/QVZTZXNzaW9uSURAMkBYWiwgP3Nlc3Npb25JREBQ
YWdlQFdlYkNvcmVAQFFFQkE/QVZTZXNzaW9uSURAMkBYWikKICAgICAgICAgc3ltYm9sV2l0aFBv
aW50ZXIoP3Jlc291cmNlRm9yVVJMQE1lbW9yeUNhY2hlQFdlYkNvcmVAQFFBRVBBVkNhY2hlZFJl
c291cmNlQDJAQUJWVVJMQDJAVlNlc3Npb25JREAyQEBaLCA/cmVzb3VyY2VGb3JVUkxATWVtb3J5
Q2FjaGVAV2ViQ29yZUBAUUVBQVBFQVZDYWNoZWRSZXNvdXJjZUAyQEFFQlZVUkxAMkBWU2Vzc2lv
bklEQDJAQFopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBjZjhkNzIz
Li41YzcwYTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTIxNTcs
NiArMjE1NywyMiBAQCAtICh2b2lkKXNldEFjY2Vzc2libGVOYW1lOihOU1N0cmluZyAqKW5hbWUK
ICNlbmRpZgogfQogCistIChCT09MKWVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQKK3sKKyNp
ZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKCk7CisjZWxzZQorICAgIHJldHVybiBO
TzsKKyNlbmRpZgorfQorCistICh2b2lkKXNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eTooQk9PTCll
bmFibGUKK3sKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisgICAgQVhPYmplY3RDYWNoZTo6c2V0
RW5oYW5jZWRVc2VySW50ZXJmYWNlQWNjZXNzaWJpbGl0eShlbmFibGUpOworI2VuZGlmCit9CisK
IC0gKE5TU3RyaW5nKilfbGF5ZXJUcmVlQXNUZXh0CiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9
IF9wcml2YXRlLT5jb3JlRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZVByaXZhdGUuaAppbmRleCBhMTRkZjE1Li4wZGQ4ZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKQEAgLTI2Miw2ICsyNjIsMTAgQEAgdHlwZWRlZiBl
bnVtIHsKIC8vIFNldHMgdGhlIG5hbWUgcHJlc2VudGVkIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50
cyBmb3IgdGhlIHdlYiBhcmVhIG9iamVjdC4KIC0gKHZvaWQpc2V0QWNjZXNzaWJsZU5hbWU6KE5T
U3RyaW5nICopbmFtZTsKIAorLy8gRW5oYW5jZWQgYWNjZXNzaWJpbGl0eS4KKy0gKEJPT0wpZW5o
YW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZDsKKy0gKHZvaWQpc2V0RW5oYW5jZWRBY2Nlc3NpYmls
aXR5OihCT09MKWVuYWJsZTsKKwogLSAoTlNTdHJpbmcqKV9sYXllclRyZWVBc1RleHQ7CiAKIC8v
IFRoZSB0b3Agb2YgdGhlIGFjY2Vzc2liaWxpdHkgdHJlZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmNwcAppbmRleCBkZTBmMDIwLi42NzFjYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwCkBAIC0yNjQsNiArMjY0LDIyIEBAIHZvaWQqIFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRP
YmplY3QoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiAjZW5kaWYKIH0KIAordm9pZCBXS0FjY2Vz
c2liaWxpdHlFbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCBlbmFibGUpCit7CisjaWYg
SEFWRShBQ0NFU1NJQklMSVRZKQorICAgIFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldEVuaGFu
Y2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxpdHkoZW5hYmxlKTsKKyNlbmRpZgorfQorCitib29s
IFdLQWNjZXNzaWJpbGl0eUVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQoreworI2lmIEhB
VkUoQUNDRVNTSUJJTElUWSkKKyAgICByZXR1cm4gV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YWNj
ZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQoKTsKKyNlbHNlCisgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCit9CisKIHZvaWQgV0tCdW5kbGVQYWdlU3RvcExvYWRpbmcoV0tC
dW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiB7CiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5zdG9wTG9hZGlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaAppbmRleCAyNDYxYzM4
Li41ZjRkODZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaApAQCAt
ODAsNiArODAsOSBAQCBXS19FWFBPUlQgYm9vbCBXS0J1bmRsZVBhZ2VDYW5TaG93TUlNRVR5cGUo
V0tCdW5kbGVQYWdlUmVmLCBXS1N0cmluZ1JlZiBtaW1lVHlwZQogV0tfRVhQT1JUIHZvaWQqIFdL
QWNjZXNzaWJpbGl0eVJvb3RPYmplY3QoV0tCdW5kbGVQYWdlUmVmKTsKIFdLX0VYUE9SVCB2b2lk
KiBXS0FjY2Vzc2liaWxpdHlGb2N1c2VkT2JqZWN0KFdLQnVuZGxlUGFnZVJlZik7CiAKK1dLX0VY
UE9SVCB2b2lkIFdLQWNjZXNzaWJpbGl0eUVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29s
KTsKK1dLX0VYUE9SVCBib29sIFdLQWNjZXNzaWJpbGl0eUVuaGFuY2VkQWNjZXNzaWJpbGl0eUVu
YWJsZWQoKTsKKwogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxlUGFnZUNvcHlDb250ZXh0
TWVudUl0ZW1UaXRsZShXS0NvbnRleHRNZW51SXRlbVJlZik7CiBXS19FWFBPUlQgdm9pZCBXS0J1
bmRsZVBhZ2VDbGlja01lbnVJdGVtKFdLQnVuZGxlUGFnZVJlZiwgV0tDb250ZXh0TWVudUl0ZW1S
ZWYpOwogV0tfRVhQT1JUIFdLQXJyYXlSZWYgV0tCdW5kbGVQYWdlQ29weUNvbnRleHRNZW51SXRl
bXMoV0tCdW5kbGVQYWdlUmVmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmNwcAppbmRleCBkZDk5OTZiLi5kMDM1ZGVhIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC0xMzAsNiAr
MTMwLDIwIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBlbmFibGVFbmhhbmNl
ZEFjY2Vzc2liaWxpdHlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYg
ZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBj
b25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7Cisg
ICAgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Cisg
ICAgaWYgKGFyZ3VtZW50Q291bnQgPT0gMSkKKyAgICAgICAgY29udHJvbGxlci0+ZW5hYmxlRW5o
YW5jZWRBY2Nlc3NpYmlsaXR5KEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBd
KSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCitzdGF0
aWMgSlNWYWx1ZVJlZiBnZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkQ2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIHJldHVybiBKU1ZhbHVl
TWFrZUJvb2xlYW4oY29udGV4dCwgY29udHJvbGxlci0+ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5h
YmxlZCgpKTsKK30KKwogc3RhdGljIEpTVmFsdWVSZWYgZ2V0UGxhdGZvcm1OYW1lQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVm
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMTUwLDEyICsxNjQs
MTQgQEAgSlNDbGFzc1JlZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0SlNDbGFzcygpCiAg
ICAgICAgIHsgImFjY2Vzc2libGVFbGVtZW50QnlJZCIsIGdldEFjY2Vzc2libGVFbGVtZW50QnlJ
ZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyIiwg
YWRkTm90aWZpY2F0aW9uTGlzdGVuZXJDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJyZW1v
dmVOb3RpZmljYXRpb25MaXN0ZW5lciIsIHJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKKyAgICAgICAgeyAiZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5IiwgZW5h
YmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAwLCAw
LCAwIH0KICAgICB9OwogCiAgICAgc3RhdGljIEpTU3RhdGljVmFsdWUgc3RhdGljVmFsdWVzW10g
PSB7CiAgICAgICAgIHsgImZvY3VzZWRFbGVtZW50IiwgZ2V0Rm9jdXNlZEVsZW1lbnRDYWxsYmFj
aywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJyb290RWxlbWVudCIsIGdldFJvb3RFbGVtZW50Q2Fs
bGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxl
ZCIsIGdldEVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWRDYWxsYmFjaywgMCwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJwbGF0Zm9ybU5hbWUiLCBnZXRQbGF0Zm9ybU5hbWVDYWxsYmFjaywgMCwga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7IDAsIDAsIDAsIDAgfQogICAgIH07CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCAyZTc0OWQxLi43YzE4ODIyIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAg
LTY0LDYgKzY0LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGFkZE5vdGlmaWNhdGlvbkxpc3RlbmVy
KEpTT2JqZWN0UmVmIGZ1bmN0aW9uQ2FsbGJhY2spOwogICAgIHZvaWQgcmVtb3ZlTm90aWZpY2F0
aW9uTGlzdGVuZXIoKTsKIAorICAgIC8vIEVuaGFuY2VkIGFjY2Vzc2liaWxpdHkuCisgICAgdm9p
ZCBlbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCk7CisgICAgYm9vbCBlbmhhbmNlZEFj
Y2Vzc2liaWxpdHlFbmFibGVkKCk7CisKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxh
dGZvcm1OYW1lKCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcAppbmRl
eCBkOGQwZmM5Li43NTdjNTA5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKQEAgLTEwNiw2ICsxMDYsMTcgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIo
KQogICAgIG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlciA9IG51bGxwdHI7CiB9CiAKK3ZvaWQg
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29s
KQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpCit7CisgICAgLy8gRklYTUU6
IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUoKSBjb25zdAogewogICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJhdGsiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW0KaW5kZXggNWY5YTUxNi4uYzFi
YWU4MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlcklPUy5tbQpAQCAtMTI3LDYgKzEyNywxNiBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCiB7CiB9CiAKK3ZvaWQg
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29s
IGVuYWJsZSkKK3sKKyAgICBbbWFpbkZyYW1lIHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eTplbmFi
bGVdOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2li
aWxpdHlFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gW21haW5GcmFtZSBlbmhhbmNlZEFjY2Vzc2li
aWxpdHlFbmFibGVkXTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUoKSBjb25zdAogewogICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKCJpb3MiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KaW5kZXggZTFiMjFjMy4uYmZiOWQwZCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1t
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1h
Yy5tbQpAQCAtMTQ1LDYgKzE0NSwxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpy
ZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCiAgICAgLy8gTm8gbG9uZ2VyIGEgbmVlZCB0byBj
bGVhbnVwIGZvciB0ZXN0cywgc2luY2UgcmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSB3aWxsIHJlbW92
ZSB0aGUgbGlzdGVuZXIuCiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJs
ZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGVuYWJsZSkKK3sKKyAgICBbbWFpbkZyYW1lIHNl
dEVuaGFuY2VkQWNjZXNzaWJpbGl0eTplbmFibGVdOworfQorCitib29sIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKK3sKKyAgICByZXR1cm4g
W21haW5GcmFtZSBlbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkXTsKK30KKwogSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUoKSBj
b25zdAogewogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQs
IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJtYWMiKSk7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcAppbmRl
eCBjZDFhMmUyLi41YTBhYjBlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKQEAgLTM5NCw2ICszOTQsMTcgQEAg
dm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6d2luQWRkTm90aWZpY2F0aW9uTGlzdGVuZXIo
UGxhdGZvcm1VSUVsZW1lbnQgZWxlbWUKICAgICBtX25vdGlmaWNhdGlvbkxpc3RlbmVycy5hZGQo
ZWxlbWVudCwgZnVuY3Rpb25DYWxsYmFjayk7CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sKQoreworICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJl
dHVybiBmYWxzZTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpwbGF0Zm9ybU5hbWUoKSBjb25zdAogewogICAgIEpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KCJ3aW4iKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4IGU0NmU3YTQu
LjgxZTcwNzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC02Miw2ICs2
MiwxNiBAQCBKU0NsYXNzUmVmIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjp3cmFwcGVyQ2xhc3Mo
KQogfQogCiAjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkKK3ZvaWQgQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGVuYWJs
ZSkKK3sKKyAgICBXS0FjY2Vzc2liaWxpdHlFbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoZW5h
YmxlKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3Np
YmlsaXR5RW5hYmxlZCgpCit7CisgICAgcmV0dXJuIFdLQWNjZXNzaWJpbGl0eUVuaGFuY2VkQWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKTsKK30KKwogUGFzc1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQoKQogewogICAgIFdLQnVu
ZGxlUGFnZVJlZiBwYWdlID0gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2UoKS0+cGFnZSgp
OwpAQCAtOTcsNiArMTA3LDggQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUoKSB7IHJldHVybiBKU1JldGEKICNlbmRpZgogCiAj
aWYgIUhBVkUoQUNDRVNTSUJJTElUWSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZM
KSkKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJp
bGl0eShib29sKSB7IH0KK2Jvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuaGFuY2VkQWNj
ZXNzaWJpbGl0eUVuYWJsZWQoKSB7IHJldHVybiBmYWxzZTsgfQogUGFzc1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVsZW1lbnQoKSB7
IHJldHVybiBudWxscHRyOyB9CiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpIHsgcmV0dXJuIG51bGxwdHI7
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCmluZGV4IDYwZjNlNTYuLjhk
NjY4ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTQ0LDYgKzQ0LDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIG1ha2VXaW5kb3dPYmplY3QoSlNDb250ZXh0UmVmLCBKU09iamVj
dFJlZiB3aW5kb3dPYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CiAgICAgdmlydHVhbCBK
U0NsYXNzUmVmIHdyYXBwZXJDbGFzcygpOwogICAgIAorICAgIC8vIEVuaGFuY2VkIGFjY2Vzc2li
aWxpdHkuCisgICAgdm9pZCBlbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCk7CisgICAg
Ym9vbCBlbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CisgICAgCiAgICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpOwogCiAgICAgLy8gQ29udHJvbGxlciBNZXRo
b2RzIC0gcGxhdGZvcm0taW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbAppbmRleCBiZjdhNmU0Li4zODMx
MTU0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Jp
bmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlk
bApAQCAtMjQsNiArMjQsOSBAQAogICovCiAKIGludGVyZmFjZSBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlciB7CisgICAgdm9pZCBlbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbGVhbiBlbmFi
bGUpOworICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGVuaGFuY2VkQWNjZXNzaWJpbGl0
eUVuYWJsZWQ7CisKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtTmFt
ZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCByb290RWxl
bWVudDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBmb2N1
c2VkRWxlbWVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBjYTQyOTEyLi4yZTgyNDVjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTQtMDMtMTcgIFNhbXVlbCBXaGl0ZSAgPHNhbXVlbF93aGl0ZUBhcHBsZS5jb20+CisK
KyAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBhcnJvdyBrZXlzIHRvIHJlYWQgdGV4dCB3aXRo
IFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlzIHNldCBzb21lcGxhY2UgKGFueXBsYWNlKS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDI1MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRl
c3QgdG8gZW5zdXJlIHRoYXQgaW5pdGlhbCBzZWxlY3Rpb24gZ2V0cyBzZXQgd2hlbiBlbmhhbmNl
ZCBhY2Nlc3NpYmlsaXR5IGlzIGVuYWJsZWQgYW5kIGFuIGFycm93IGtleSBpcyBwcmVzc2VkLgor
CisgICAgICAgICogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWluaXRpYWwt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0
eS9zZWxlY3Rpb24taW5pdGlhbC5odG1sOiBBZGRlZC4KKwogMjAxNC0wMy0xMyAgWmFsYW4gQnVq
dGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFN1YnBpeGVsIHJlbmRlcmluZzogTmVz
dGVkIGxheWVycyB3aXRoIHN1YnBpeGVsIGFjY3VtdWxhdGlvbiBwYWludCB0byB3cm9uZyBwb3Np
dGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCAwMGM0NTE4Li4wNTFmNGYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTQtMDMtMTcgIFNhbXVlbCBXaGl0ZSAgPHNhbXVlbF93aGl0ZUBhcHBsZS5j
b20+CisKKyAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBhcnJvdyBrZXlzIHRvIHJlYWQgdGV4
dCB3aXRoIFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlzIHNldCBzb21lcGxhY2UgKGFueXBs
YWNlKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MDI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIElm
IGluaXRpYWwgc2VsZWN0aW9uIGlzbid0IHNldCB3aGVuIHdlIGhhbmRsZSBzZWxlY3Rpb24gbW92
ZW1lbnQgZm9yIGFjY2Vzc2liaWxpdHkgd2UgbmVlZCB0byBzZXQgaXQuCisKKyAgICAgICAgVGVz
dDogcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWluaXRpYWwuaHRtbAorCisg
ICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGFuZGxl
S2V5Ym9hcmRTZWxlY3Rpb25Nb3ZlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnRGb3JBY2Nlc3NpYmlsaXR5KToKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5h
bHM6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorCiAyMDE0LTAzLTEzICBBbnR0aSBLb2l2aXN0
byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IGlPUyBidWlsZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYzYxNmE5MC4uNDhkYjk5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAx
NC0wMy0xNyAgU2FtdWVsIFdoaXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KKworICAgICAg
ICBBWDogTm90IGFibGUgdG8gdXNlIGFycm93IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VP
dmVyIGJlZm9yZSBzZWxlY3Rpb24gaXMgc2V0IHNvbWVwbGFjZSAoYW55cGxhY2UpLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjUwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQudmN4cHJv
ai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW46CisKIDIwMTQtMDMt
MTIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTYzMDczNDY+IEFkZCBuZXcgV2ViS2l0TGVnYWN5LmZyYW1ld29yay4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCAyYTVlNzlhLi5iNjUyZDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTQtMDMtMTcgIFNhbXVlbCBXaGl0ZSAgPHNhbXVlbF93aGl0ZUBhcHBs
ZS5jb20+CisKKyAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBhcnJvdyBrZXlzIHRvIHJlYWQg
dGV4dCB3aXRoIFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlzIHNldCBzb21lcGxhY2UgKGFu
eXBsYWNlKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMDI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIGFiaWxpdHkgdG8gdG9nZ2xlIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkgb24gYW5kIG9m
ZiB0byBzdXBwb3J0IHRlc3RzIHRoYXQgcmVxdWlyZSBpdC4KKworICAgICAgICAqIFdlYlZpZXcv
V2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIGVuaGFuY2VkQWNjZXNzaWJpbGl0eUVu
YWJsZWRdKToKKyAgICAgICAgKC1bV2ViRnJhbWUgc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5Ol0p
OgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmg6CisKIDIwMTQtMDMtMTIgIERl
YW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHTF0gV2ViS2l0MSAr
IFdlYktpdDIgaU9TIGNsaWVudHMgc2hvdWxkIGNoZWNrIGxvYWQgcG9saWN5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMjliZjVjZC4uZmMxM2YxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTAz
LTE3ICBTYW11ZWwgV2hpdGUgIDxzYW11ZWxfd2hpdGVAYXBwbGUuY29tPgorCisgICAgICAgIEFY
OiBOb3QgYWJsZSB0byB1c2UgYXJyb3cga2V5cyB0byByZWFkIHRleHQgd2l0aCBWb2ljZU92ZXIg
YmVmb3JlIHNlbGVjdGlvbiBpcyBzZXQgc29tZXBsYWNlIChhbnlwbGFjZSkuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAyNTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBhYmlsaXR5IHRvIHRv
Z2dsZSBlbmhhbmNlZCBhY2Nlc3NpYmlsaXR5IG9uIGFuZCBvZmYgdG8gc3VwcG9ydCB0ZXN0cyB0
aGF0IHJlcXVpcmUgaXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0FjY2Vzc2liaWxpdHlFbmFibGVFbmhh
bmNlZEFjY2Vzc2liaWxpdHkpOgorICAgICAgICAoV0tBY2Nlc3NpYmlsaXR5RW5oYW5jZWRBY2Nl
c3NpYmlsaXR5RW5hYmxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmg6CisKIDIwMTQtMDMtMTMgIExhc3psbyBWaWRhY3Mg
IDxsdmlkYWNzLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAKICAgICAgICAgRml4IHRo
ZSAhRU5BQkxFKFNRTF9EQVRBQkFTRSkgYnVpbGQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyZTc0ZTc1Li40YmQwMGQzIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIw
MTQtMDMtMTcgIFNhbXVlbCBXaGl0ZSAgPHNhbXVlbF93aGl0ZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBhcnJvdyBrZXlzIHRvIHJlYWQgdGV4dCB3aXRoIFZvaWNl
T3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlzIHNldCBzb21lcGxhY2UgKGFueXBsYWNlKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDI1MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGFiaWxpdHkg
dG8gdG9nZ2xlIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkgb24gYW5kIG9mZiB0byBzdXBwb3J0IHRl
c3RzIHRoYXQgcmVxdWlyZSBpdC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKGVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0
eUNhbGxiYWNrKToKKyAgICAgICAgKGdldEVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWRDYWxs
YmFjayk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0SlNDbGFzcyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwOgor
ICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJp
bGl0eSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3Np
YmlsaXR5RW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVu
YWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6CisgICAgICAg
IChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2lu
LmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmFibGVFbmhhbmNlZEFj
Y2Vzc2liaWxpdHkpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuaGFuY2Vk
QWNjZXNzaWJpbGl0eUVuYWJsZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVu
YWJsZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbDoKKwogMjAxNC0wMy0x
MyAgSm96c2VmIEJlcnRhICA8amJlcnRhLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0dUS10gYnVpbGQtd2Via2l0IHNob3VsZG4ndCBzaG93IGVycm9yIG1lc3NhZ2Ug
d2hlbiBuaW5qYSBpc24ndCBpbnN0YWxsZWQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227072</attachid>
            <date>2014-03-18 10:39:30 -0700</date>
            <delta_ts>2014-03-18 23:17:08 -0700</delta_ts>
            <desc>Updated patch.</desc>
            <filename>selection.patch</filename>
            <type>text/plain</type>
            <size>26912</size>
            <attacher name="Samuel White">samuel_white</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVj
dGlvbi1pbml0aWFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9hY2Nl
c3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mNjA1YjZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2FjY2Vzc2liaWxpdHkvc2VsZWN0aW9uLWluaXRpYWwtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdHMgdGhhdCBpbml0aWFsIHNlbGVjdGlvbiBp
cyBzZXQgd2hlbiBhcnJvdyBrZXlzIGFyZSBwcmVzc2VkIGFuZCBubyBzZWxlY3Rpb24gZXhpc3Rz
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpc1NlbGVjdGlvbkF0U3Rh
cnRPZkRvY3VtZW50KCkgaXMgZmFsc2UKK1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVu
dCgpIGlzIGZhbHNlCitQQVNTIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNz
aWJpbGl0eUVuYWJsZWQgaXMgdHJ1ZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkgaXMgZmFsc2UKK1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIHRydWUK
K1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIGZhbHNlCitQQVNTIGlzU2Vs
ZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSBpcyB0cnVlCitQQVNTIGlzU2VsZWN0aW9uQXRTdGFy
dE9mRG9jdW1lbnQoKSBpcyBmYWxzZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkgaXMgdHJ1ZQorUEFTUyBpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkgaXMgZmFsc2UK
K1BBU1MgaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIHRydWUKK1BBU1MgaXNTZWxl
Y3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIGlzIGZhbHNlCitQQVNTIGlzU2VsZWN0aW9uQXRTdGFy
dE9mRG9jdW1lbnQoKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9h
Y2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24taW5pdGlhbC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc0NmM0NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvYWNjZXNzaWJpbGl0eS9zZWxlY3Rpb24taW5pdGlhbC5odG1sCkBA
IC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHRpdGxl
PlNlbGVjdGlvbiBJbml0aWFsPC90aXRsZT4KKzwvaGVhZD4KKzxib2R5PgorCis8cCBpZD0idGV4
dCI+VGV4dC48L3A+CisKKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBp
bml0aWFsIHNlbGVjdGlvbiBpcyBzZXQgd2hlbiBhcnJvdyBrZXlzIGFyZSBwcmVzc2VkIGFuZCBu
byBzZWxlY3Rpb24gZXhpc3RzLiIpOworICAgIAorICAgIGZ1bmN0aW9uIGNsZWFyU2VsZWN0aW9u
KCkgeworICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7Cisg
ICAgfQorICAgIAorICAgIGZ1bmN0aW9uIGlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSB7
CisgICAgICAgIHZhciBzZWxlY3Rpb24gPSB3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7CisgICAgICAg
IHJldHVybiBzZWxlY3Rpb24ucmFuZ2VDb3VudCA+PSAxICYmIHNlbGVjdGlvbi5nZXRSYW5nZUF0
KDApLmVuZE9mZnNldCA9PT0gMCAmJiBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5zdGFydE9mZnNl
dCA9PT0gMDsKKyAgICB9CisgICAgCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJv
bGxlciAmJiB3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgLy8gRG93biBhcnJvdyBrZXkg
KHNob3VsZCBOT1Qgc2V0IGluaXRpYWwgc2VsZWN0aW9uIGJlZm9yZSBlbmhhbmNlZCBhY2Nlc3Np
YmlsaXR5IGlzIGVuYWJsZWQpLgorICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0
T2ZEb2N1bWVudCgpIiwgImZhbHNlIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRv
d25BcnJvdyIpOworICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVu
dCgpIiwgImZhbHNlIik7CisgICAgICAgIGNsZWFyU2VsZWN0aW9uKCk7CisgICAgICAgIAorICAg
ICAgICAvLyBFbmFibGUgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSAobmVjZXNzYXJ5IGZvciBhY2Nl
c3NpYmlsaXR5IHNwZWNpZmljIHNlbGVjdGlvbiBoYW5kbGluZykuCisgICAgICAgIGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSh0cnVlKTsKKyAgICAg
ICAgc2hvdWxkQmUoImFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmVuaGFuY2VkQWNjZXNzaWJpbGl0
eUVuYWJsZWQiLCAidHJ1ZSIpOworICAgICAgICAKKyAgICAgICAgLy8gRG93biBhcnJvdyBrZXku
CisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAiZmFs
c2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAg
IHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAidHJ1ZSIpOworICAg
ICAgICBjbGVhclNlbGVjdGlvbigpOworICAgICAgICAKKyAgICAgICAgLy8gTGVmdCBhcnJvdyBr
ZXkuCisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAi
ZmFsc2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigibGVmdEFycm93Iik7CisgICAg
ICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAidHJ1ZSIpOwor
ICAgICAgICBjbGVhclNlbGVjdGlvbigpOworICAgICAgICAKKyAgICAgICAgLy8gUmlnaHQgYXJy
b3cga2V5LgorICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgp
IiwgImZhbHNlIik7CisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oInJpZ2h0QXJyb3ciKTsK
KyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9jdW1lbnQoKSIsICJ0cnVl
Iik7CisgICAgICAgIGNsZWFyU2VsZWN0aW9uKCk7CisgICAgICAgIAorICAgICAgICAvLyBVcCBh
cnJvdyBrZXkuCisgICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50
KCkiLCAiZmFsc2UiKTsKKyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigidXBBcnJvdyIpOwor
ICAgICAgICBzaG91bGRCZSgiaXNTZWxlY3Rpb25BdFN0YXJ0T2ZEb2N1bWVudCgpIiwgInRydWUi
KTsKKyAgICAgICAgY2xlYXJTZWxlY3Rpb24oKTsKKyAgICAgICAgCisgICAgICAgIC8vIFoga2V5
IChvbmx5IGFycm93IGtleXMgc2hvdWxkIHNldCBpbml0aWFsIHNlbGVjdGlvbiBpZiBubyBzZWxl
Y3Rpb24gZXhpc3RzKS4KKyAgICAgICAgc2hvdWxkQmUoImlzU2VsZWN0aW9uQXRTdGFydE9mRG9j
dW1lbnQoKSIsICJmYWxzZSIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJaIik7Cisg
ICAgICAgIHNob3VsZEJlKCJpc1NlbGVjdGlvbkF0U3RhcnRPZkRvY3VtZW50KCkiLCAiZmFsc2Ui
KTsKKyAgICAgICAgCisgICAgICAgIC8vIEhpZGUgc3VwZXJmbHVvdXMgdGV4dC4KKyAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRleHQiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwor
ICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKaW5kZXggNzE3M2Q5Yi4uY2E0YTc5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcApAQCAtOTEsNiArOTEsNyBAQAogI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVXNlclR5
cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNs
dWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIKICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgpAQCAtMzA0NSwxNCArMzA0NiwxOCBAQCBzdGF0aWMg
Rm9jdXNEaXJlY3Rpb24gZm9jdXNEaXJlY3Rpb25Gb3JLZXkoY29uc3QgQXRvbWljU3RyaW5nJiBr
ZXlJZGVudGlmaWVyKQogICAgIHJldHVybiByZXRWYWw7CiB9CiAKLXN0YXRpYyB2b2lkIGhhbmRs
ZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQoRnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgS2V5
Ym9hcmRFdmVudCogZXZlbnQpCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1v
dmVtZW50KEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKCFl
dmVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBpc09wdGlvbmVkID0gZXZlbnQtPmdl
dE1vZGlmaWVyU3RhdGUoIkFsdCIpOworICAgIEZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24gPSBm
cmFtZS5zZWxlY3Rpb24oKTsKKwogICAgIGJvb2wgaXNDb21tYW5kZWQgPSBldmVudC0+Z2V0TW9k
aWZpZXJTdGF0ZSgiTWV0YSIpOworICAgIGJvb2wgaXNPcHRpb25lZCA9IGV2ZW50LT5nZXRNb2Rp
ZmllclN0YXRlKCJBbHQiKTsKKyAgICBib29sIGlzU2VsZWN0aW9uID0gIXNlbGVjdGlvbi5pc05v
bmUoKTsKIAorICAgIEZyYW1lU2VsZWN0aW9uOjpFQWx0ZXJhdGlvbiBhbHRlcm5hdGlvbiA9IGV2
ZW50LT5nZXRNb2RpZmllclN0YXRlKCJTaGlmdCIpID8gRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRp
b25FeHRlbmQgOiBGcmFtZVNlbGVjdGlvbjo6QWx0ZXJhdGlvbk1vdmU7CiAgICAgU2VsZWN0aW9u
RGlyZWN0aW9uIGRpcmVjdGlvbiA9IERpcmVjdGlvbkZvcndhcmQ7CiAgICAgVGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5ID0gQ2hhcmFjdGVyR3JhbnVsYXJpdHk7CiAKQEAgLTMwODEsOCArMzA4
NiwxMSBAQCBzdGF0aWMgdm9pZCBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KEZyYW1l
U2VsZWN0aW9uJiBzZWxlY3Rpb24sIEtleWJvYXJkRQogICAgICAgICBicmVhazsKICAgICB9CiAK
LSAgICBGcmFtZVNlbGVjdGlvbjo6RUFsdGVyYXRpb24gYWx0ZXJuYXRpb24gPSBldmVudC0+Z2V0
TW9kaWZpZXJTdGF0ZSgiU2hpZnQiKSA/IEZyYW1lU2VsZWN0aW9uOjpBbHRlcmF0aW9uRXh0ZW5k
IDogRnJhbWVTZWxlY3Rpb246OkFsdGVyYXRpb25Nb3ZlOwotICAgIHNlbGVjdGlvbi5tb2RpZnko
YWx0ZXJuYXRpb24sIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHksIFVzZXJUcmlnZ2VyZWQpOworICAg
IGlmIChpc1NlbGVjdGlvbikKKyAgICAgICAgc2VsZWN0aW9uLm1vZGlmeShhbHRlcm5hdGlvbiwg
ZGlyZWN0aW9uLCBncmFudWxhcml0eSwgVXNlclRyaWdnZXJlZCk7CisgICAgZWxzZQorICAgICAg
ICBzZWxlY3Rpb24uc2V0U2VsZWN0aW9uKHN0YXJ0T2ZEb2N1bWVudChmcmFtZS5kb2N1bWVudCgp
KSwgRnJhbWVTZWxlY3Rpb246OmRlZmF1bHRTZXRTZWxlY3Rpb25PcHRpb25zKFVzZXJUcmlnZ2Vy
ZWQpKTsKKwogICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCkBAIC0zMDkwLDcg
KzMwOTgsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aGFuZGxlS2V5Ym9hcmRTZWxlY3Rpb25Nb3Zl
bWVudEZvckFjY2Vzc2liaWxpdHkoS2V5Ym9hcmRFdmVudAogewogICAgIGlmIChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsKICAgICAgICAgaWYgKEFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkKCkpCi0gICAg
ICAgICAgICBoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1vdmVtZW50KG1fZnJhbWUuc2VsZWN0aW9u
KCksIGV2ZW50KTsKKyAgICAgICAgICAgIGhhbmRsZUtleWJvYXJkU2VsZWN0aW9uTW92ZW1lbnQo
bV9mcmFtZSwgZXZlbnQpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCmluZGV4IGU3N2ZlMDMuLjc4NzczMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTI5Myw2ICsyOTMsNyBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZShQYWdlKiBwYWdlKQogICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5yZXNldFJlc3RyaWN0aW9ucygpOwogI2VuZGlmCiAjaWYgSEFWRShBQ0NFU1NJQklMSVRZ
KQorICAgIEFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vzc2liaWxp
dHkoZmFsc2UpOwogICAgIEFYT2JqZWN0Q2FjaGU6OmRpc2FibGVBY2Nlc3NpYmlsaXR5KCk7CiAj
ZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0
RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC9XZWJL
aXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5k
ZXggZWJiNDQ2YS4uMzU3MTQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4
cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhw
b3J0cy5kZWYuaW4KQEAgLTQ3NSw2ICs0NzUsNyBAQCBFWFBPUlRTCiAgICAgICAgIHN5bWJvbFdp
dGhQb2ludGVyKD9jb21wbGV0ZVVSTEBEb2N1bWVudEBXZWJDb3JlQEBVQkU/QVZVUkxAMkBBQlZT
dHJpbmdAV1RGQEBAWiwgP2NvbXBsZXRlVVJMQERvY3VtZW50QFdlYkNvcmVAQFVFQkE/QVZVUkxA
MkBBRUJWU3RyaW5nQFdURkBAQFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD8/MURPTVdp
bmRvd0BXZWJDb3JlQEBVQUVAWFosID8/MURPTVdpbmRvd0BXZWJDb3JlQEBVRUFBQFhaKQogICAg
ICAgICBzeW1ib2xXaXRoUG9pbnRlcig/dmlzaWJsZUNvbnRlbnRSZWN0QFNjcm9sbGFibGVBcmVh
QFdlYkNvcmVAQFFCRT9BVkludFJlY3RAMkBXNFZpc2libGVDb250ZW50UmVjdEJlaGF2aW9yQDEy
QEBaLCA/dmlzaWJsZUNvbnRlbnRSZWN0QFNjcm9sbGFibGVBcmVhQFdlYkNvcmVAQFFFQkE/QVZJ
bnRSZWN0QDJAVzRWaXNpYmxlQ29udGVudFJlY3RCZWhhdmlvckAxMkBAWikKKyAgICAgICAgc3lt
Ym9sV2l0aFBvaW50ZXIoP2dBY2Nlc3NpYmlsaXR5RW5oYW5jZWRVc2VySW50ZXJmYWNlRW5hYmxl
ZEBBWE9iamVjdENhY2hlQFdlYkNvcmVAQDBfTkEsID9nQWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNl
ckludGVyZmFjZUVuYWJsZWRAQVhPYmplY3RDYWNoZUBXZWJDb3JlQEAwX05BKQogICAgICAgICBz
eW1ib2xXaXRoUG9pbnRlcig/ZGlzYWJsZUFjY2Vzc2liaWxpdHlAQVhPYmplY3RDYWNoZUBXZWJD
b3JlQEBTQVhYWiwgP2Rpc2FibGVBY2Nlc3NpYmlsaXR5QEFYT2JqZWN0Q2FjaGVAV2ViQ29yZUBA
U0FYWFopCiAgICAgICAgIHN5bWJvbFdpdGhQb2ludGVyKD9zZXNzaW9uSURAUGFnZUBXZWJDb3Jl
QEBRQkU/QVZTZXNzaW9uSURAMkBYWiwgP3Nlc3Npb25JREBQYWdlQFdlYkNvcmVAQFFFQkE/QVZT
ZXNzaW9uSURAMkBYWikKICAgICAgICAgc3ltYm9sV2l0aFBvaW50ZXIoP3Jlc291cmNlRm9yVVJM
QE1lbW9yeUNhY2hlQFdlYkNvcmVAQFFBRVBBVkNhY2hlZFJlc291cmNlQDJAQUJWVVJMQDJAVlNl
c3Npb25JREAyQEBaLCA/cmVzb3VyY2VGb3JVUkxATWVtb3J5Q2FjaGVAV2ViQ29yZUBAUUVBQVBF
QVZDYWNoZWRSZXNvdXJjZUAyQEFFQlZVUkxAMkBWU2Vzc2lvbklEQDJAQFopCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBjZjhkNzIzLi41YzcwYTMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTIxNTcsNiArMjE1NywyMiBAQCAtICh2b2lk
KXNldEFjY2Vzc2libGVOYW1lOihOU1N0cmluZyAqKW5hbWUKICNlbmRpZgogfQogCistIChCT09M
KWVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQKK3sKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkp
CisgICAgcmV0dXJuIEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRl
cmZhY2VFbmFibGVkKCk7CisjZWxzZQorICAgIHJldHVybiBOTzsKKyNlbmRpZgorfQorCistICh2
b2lkKXNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eTooQk9PTCllbmFibGUKK3sKKyNpZiBIQVZFKEFD
Q0VTU0lCSUxJVFkpCisgICAgQVhPYmplY3RDYWNoZTo6c2V0RW5oYW5jZWRVc2VySW50ZXJmYWNl
QWNjZXNzaWJpbGl0eShlbmFibGUpOworI2VuZGlmCit9CisKIC0gKE5TU3RyaW5nKilfbGF5ZXJU
cmVlQXNUZXh0CiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IF9wcml2YXRlLT5jb3JlRnJhbWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAppbmRleCBhMTRk
ZjE1Li4wZGQ4ZTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2
YXRlLmgKQEAgLTI2Miw2ICsyNjIsMTAgQEAgdHlwZWRlZiBlbnVtIHsKIC8vIFNldHMgdGhlIG5h
bWUgcHJlc2VudGVkIHRvIGFjY2Vzc2liaWxpdHkgY2xpZW50cyBmb3IgdGhlIHdlYiBhcmVhIG9i
amVjdC4KIC0gKHZvaWQpc2V0QWNjZXNzaWJsZU5hbWU6KE5TU3RyaW5nICopbmFtZTsKIAorLy8g
RW5oYW5jZWQgYWNjZXNzaWJpbGl0eS4KKy0gKEJPT0wpZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5h
YmxlZDsKKy0gKHZvaWQpc2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5OihCT09MKWVuYWJsZTsKKwog
LSAoTlNTdHJpbmcqKV9sYXllclRyZWVBc1RleHQ7CiAKIC8vIFRoZSB0b3Agb2YgdGhlIGFjY2Vz
c2liaWxpdHkgdHJlZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBkZTBmMDIw
Li42NzFjYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0yNjQsNiArMjY0
LDIyIEBAIHZvaWQqIFdLQWNjZXNzaWJpbGl0eUZvY3VzZWRPYmplY3QoV0tCdW5kbGVQYWdlUmVm
IHBhZ2VSZWYpCiAjZW5kaWYKIH0KIAordm9pZCBXS0FjY2Vzc2liaWxpdHlFbmFibGVFbmhhbmNl
ZEFjY2Vzc2liaWxpdHkoYm9vbCBlbmFibGUpCit7CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQor
ICAgIFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnNldEVuaGFuY2VkVXNlckludGVyZmFjZUFjY2Vz
c2liaWxpdHkoZW5hYmxlKTsKKyNlbmRpZgorfQorCitib29sIFdLQWNjZXNzaWJpbGl0eUVuaGFu
Y2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQoreworI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKKyAg
ICByZXR1cm4gV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNl
ckludGVyZmFjZUVuYWJsZWQoKTsKKyNlbHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9
CisKIHZvaWQgV0tCdW5kbGVQYWdlU3RvcExvYWRpbmcoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYp
CiB7CiAgICAgdG9JbXBsKHBhZ2VSZWYpLT5zdG9wTG9hZGluZygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZVByaXZhdGUuaAppbmRleCAyNDYxYzM4Li41ZjRkODZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaApAQCAtODAsNiArODAsOSBAQCBXS19FWFBP
UlQgYm9vbCBXS0J1bmRsZVBhZ2VDYW5TaG93TUlNRVR5cGUoV0tCdW5kbGVQYWdlUmVmLCBXS1N0
cmluZ1JlZiBtaW1lVHlwZQogV0tfRVhQT1JUIHZvaWQqIFdLQWNjZXNzaWJpbGl0eVJvb3RPYmpl
Y3QoV0tCdW5kbGVQYWdlUmVmKTsKIFdLX0VYUE9SVCB2b2lkKiBXS0FjY2Vzc2liaWxpdHlGb2N1
c2VkT2JqZWN0KFdLQnVuZGxlUGFnZVJlZik7CiAKK1dLX0VYUE9SVCB2b2lkIFdLQWNjZXNzaWJp
bGl0eUVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sKTsKK1dLX0VYUE9SVCBib29sIFdL
QWNjZXNzaWJpbGl0eUVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKTsKKwogV0tfRVhQT1JU
IFdLU3RyaW5nUmVmIFdLQnVuZGxlUGFnZUNvcHlDb250ZXh0TWVudUl0ZW1UaXRsZShXS0NvbnRl
eHRNZW51SXRlbVJlZik7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VDbGlja01lbnVJdGVt
KFdLQnVuZGxlUGFnZVJlZiwgV0tDb250ZXh0TWVudUl0ZW1SZWYpOwogV0tfRVhQT1JUIFdLQXJy
YXlSZWYgV0tCdW5kbGVQYWdlQ29weUNvbnRleHRNZW51SXRlbXMoV0tCdW5kbGVQYWdlUmVmKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcApp
bmRleCBkZDk5OTZiLi5kMDM1ZGVhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC0xMzAsNiArMTMwLDIwIEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIHJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwog
fQogCitzdGF0aWMgSlNWYWx1ZVJlZiBlbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHlDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgaWYgKGFyZ3VtZW50Q291bnQg
PT0gMSkKKyAgICAgICAgY29udHJvbGxlci0+ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KEpT
VmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7CisgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCitzdGF0aWMgSlNWYWx1ZVJlZiBnZXRFbmhh
bmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQoreworICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBjb250cm9sbGVy
ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwg
Y29udHJvbGxlci0+ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKTsKK30KKwogc3RhdGlj
IEpTVmFsdWVSZWYgZ2V0UGxhdGZvcm1OYW1lQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQogewogICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBjb250cm9s
bGVyID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqPihKU09iamVjdEdldFBy
aXZhdGUodGhpc09iamVjdCkpOwpAQCAtMTUwLDEyICsxNjQsMTQgQEAgSlNDbGFzc1JlZiBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0SlNDbGFzcygpCiAgICAgICAgIHsgImFjY2Vzc2libGVF
bGVtZW50QnlJZCIsIGdldEFjY2Vzc2libGVFbGVtZW50QnlJZENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgImFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyIiwgYWRkTm90aWZpY2F0aW9uTGlzdGVu
ZXJDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5l
ciIsIHJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAg
eyAiZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5IiwgZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmls
aXR5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAwLCAwLCAwIH0KICAgICB9OwogCiAgICAg
c3RhdGljIEpTU3RhdGljVmFsdWUgc3RhdGljVmFsdWVzW10gPSB7CiAgICAgICAgIHsgImZvY3Vz
ZWRFbGVtZW50IiwgZ2V0Rm9jdXNlZEVsZW1lbnRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJyb290RWxlbWVudCIsIGdldFJvb3RFbGVtZW50Q2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAg
ICAgICAgeyAiZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCIsIGdldEVuaGFuY2VkQWNjZXNz
aWJpbGl0eUVuYWJsZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJwbGF0Zm9ybU5h
bWUiLCBnZXRQbGF0Zm9ybU5hbWVDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7IDAsIDAs
IDAsIDAgfQogICAgIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuaAppbmRleCAyZTc0OWQxLi43YzE4ODIyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTY0LDYgKzY0LDEwIEBAIHB1Ymxp
YzoKICAgICBib29sIGFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTT2JqZWN0UmVmIGZ1bmN0aW9u
Q2FsbGJhY2spOwogICAgIHZvaWQgcmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKTsKIAorICAg
IC8vIEVuaGFuY2VkIGFjY2Vzc2liaWxpdHkuCisgICAgdm9pZCBlbmFibGVFbmhhbmNlZEFjY2Vz
c2liaWxpdHkoYm9vbCk7CisgICAgYm9vbCBlbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7
CisKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKCkgY29uc3Q7CiAK
ICNpZiBQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRr
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcAppbmRleCBkOGQwZmM5Li43NTdjNTA5IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJBdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlckF0ay5jcHAKQEAgLTEwNiw2ICsxMDYsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQogICAgIG1fZ2xvYmFsTm90aWZp
Y2F0aW9uSGFuZGxlciA9IG51bGxwdHI7CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sKQoreworICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nl
c3NpYmlsaXR5RW5hYmxlZCgpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVy
biBmYWxzZTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpwbGF0Zm9ybU5hbWUoKSBjb25zdAogewogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJh
dGsiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJJT1MubW0KaW5kZXggNWY5YTUxNi4uYzFiYWU4MCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbQpA
QCAtMTI3LDYgKzEyNywxNiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZW1vdmVO
b3RpZmljYXRpb25MaXN0ZW5lcigpCiB7CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sIGVuYWJsZSkKK3sKKyAgICBbbWFp
bkZyYW1lIHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eTplbmFibGVdOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKK3sKKyAg
ICByZXR1cm4gW21haW5GcmFtZSBlbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkXTsKK30KKwog
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9y
bU5hbWUoKSBjb25zdAogewogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5h
bWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJpb3MiKSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMu
bW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMu
bW0KaW5kZXggZTFiMjFjMy4uYmZiOWQwZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQpAQCAtMTQ1LDYgKzE0NSwx
NiBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0
ZW5lcigpCiAgICAgLy8gTm8gbG9uZ2VyIGEgbmVlZCB0byBjbGVhbnVwIGZvciB0ZXN0cywgc2lu
Y2UgcmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSB3aWxsIHJlbW92ZSB0aGUgbGlzdGVuZXIuCiB9CiAK
K3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0
eShib29sIGVuYWJsZSkKK3sKKyAgICBbbWFpbkZyYW1lIHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0
eTplbmFibGVdOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFj
Y2Vzc2liaWxpdHlFbmFibGVkKCkKK3sKKyAgICByZXR1cm4gW21haW5GcmFtZSBlbmhhbmNlZEFj
Y2Vzc2liaWxpdHlFbmFibGVkXTsKK30KKwogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUoKSBjb25zdAogewogICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJtYWMiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcAppbmRleCBjZDFhMmUyLi41YTBhYjBlIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcldpbi5jcHAKQEAgLTM5NCw2ICszOTQsMTcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcjo6d2luQWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoUGxhdGZvcm1VSUVsZW1lbnQgZWxl
bWUKICAgICBtX25vdGlmaWNhdGlvbkxpc3RlbmVycy5hZGQoZWxlbWVudCwgZnVuY3Rpb25DYWxs
YmFjayk7CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2Vk
QWNjZXNzaWJpbGl0eShib29sKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KKworYm9v
bCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgp
Cit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorICAgIHJldHVybiBmYWxzZTsKK30KKwogSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9ybU5h
bWUoKSBjb25zdAogewogICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUo
QWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ3aW4iKSk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuY3BwCmluZGV4IGU0NmU3YTQuLjdmZGMyZGMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC02MSw2ICs2MSwxNiBAQCBKU0NsYXNzUmVmIEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjp3cmFwcGVyQ2xhc3MoKQogICAgIHJldHVybiBKU0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmlsaXR5Q29udHJvbGxlckNsYXNzKCk7CiB9CiAK
K3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0
eShib29sIGVuYWJsZSkKK3sKKyAgICBXS0FjY2Vzc2liaWxpdHlFbmFibGVFbmhhbmNlZEFjY2Vz
c2liaWxpdHkoZW5hYmxlKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5o
YW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpCit7CisgICAgcmV0dXJuIFdLQWNjZXNzaWJpbGl0
eUVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKTsKK30KKwogI2lmICFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShFRkwpCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmgKaW5kZXggNjBmM2U1Ni4uOGQ2NjhlZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuaApAQCAtNDQsNiArNDQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgbWFrZVdpbmRv
d09iamVjdChKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIHdpbmRvd09iamVjdCwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKTsKICAgICB2aXJ0dWFsIEpTQ2xhc3NSZWYgd3JhcHBlckNsYXNzKCk7CiAg
ICAgCisgICAgLy8gRW5oYW5jZWQgYWNjZXNzaWJpbGl0eS4KKyAgICB2b2lkIGVuYWJsZUVuaGFu
Y2VkQWNjZXNzaWJpbGl0eShib29sKTsKKyAgICBib29sIGVuaGFuY2VkQWNjZXNzaWJpbGl0eUVu
YWJsZWQoKTsKKyAgICAKICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1l
KCk7CiAKICAgICAvLyBDb250cm9sbGVyIE1ldGhvZHMgLSBwbGF0Zm9ybS1pbmRlcGVuZGVudCBp
bXBsZW1lbnRhdGlvbnMuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuaWRsCmluZGV4IGJmN2E2ZTQuLjM4MzExNTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsCkBAIC0yNCw2ICsyNCw5IEBACiAgKi8KIAog
aW50ZXJmYWNlIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIHsKKyAgICB2b2lkIGVuYWJsZUVuaGFu
Y2VkQWNjZXNzaWJpbGl0eShib29sZWFuIGVuYWJsZSk7CisgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZDsKKwogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgcGxhdGZvcm1OYW1lOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50IHJvb3RFbGVtZW50OwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGZvY3VzZWRFbGVtZW50OwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhNDI5MTIu
LjJlODI0NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxNC0wMy0xNyAgU2FtdWVsIFdoaXRl
ICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogTm90IGFibGUgdG8gdXNl
IGFycm93IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rpb24g
aXMgc2V0IHNvbWVwbGFjZSAoYW55cGxhY2UpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCB0byBlbnN1cmUgdGhhdCBpbml0aWFsIHNl
bGVjdGlvbiBnZXRzIHNldCB3aGVuIGVuaGFuY2VkIGFjY2Vzc2liaWxpdHkgaXMgZW5hYmxlZCBh
bmQgYW4gYXJyb3cga2V5IGlzIHByZXNzZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9zZWxlY3Rpb24taW5pdGlhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9hY2Nlc3NpYmlsaXR5L3NlbGVjdGlvbi1pbml0aWFsLmh0bWw6IEFk
ZGVkLgorCiAyMDE0LTAzLTEzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgU3VicGl4ZWwgcmVuZGVyaW5nOiBOZXN0ZWQgbGF5ZXJzIHdpdGggc3VicGl4ZWwgYWNj
dW11bGF0aW9uIHBhaW50IHRvIHdyb25nIHBvc2l0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDAwYzQ1MTgu
LjJjNmI5OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxNC0wMy0xNyAgU2FtdWVs
IFdoaXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogTm90IGFibGUg
dG8gdXNlIGFycm93IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxl
Y3Rpb24gaXMgc2V0IHNvbWVwbGFjZSAoYW55cGxhY2UpLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgaW5pdGlhbCBzZWxlY3Rpb24gaXNuJ3Qgc2V0
IHdoZW4gd2UgaGFuZGxlIHNlbGVjdGlvbiBtb3ZlbWVudCBmb3IgYWNjZXNzaWJpbGl0eSwgd2Ug
bmVlZCB0byBzZXQgaXQuIElmIHdlIGRvbid0LCB1c2luZyBhcnJvdworICAgICAgICBrZXlzIHRv
IHJlYWQgdGV4dCB3aXRoIFZvaWNlT3ZlciBkb2Vzbid0IHdvcmsgYXMgZXhwZWN0ZWQuIFRoaW5n
cyB3aWxsIG9ubHkgc3RhcnQgd29ya2luZyBhZnRlciB0aGUgdXNlciBob2xkcyBzaGlmdCBhbmQg
YXJyb3dzCisgICAgICAgIGFyb3VuZCB0byBzZWxlY3QgYW55IGFyYml0cmFyeSB0aGluZyB0byBm
b3JjZSBzZWxlY3Rpb24gdG8gZ2V0IHNldC4gVGhpcyBsb2dpYyBoYW5kbGVzIHRoYXQgc3BlY2lh
bCBjYXNlIG1vcmUgZ3JhY2VmdWxseS4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvYWNj
ZXNzaWJpbGl0eS9zZWxlY3Rpb24taW5pdGlhbC5odG1sCisKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpoYW5kbGVLZXlib2FyZFNlbGVjdGlvbk1v
dmVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlS2V5Ym9hcmRT
ZWxlY3Rpb25Nb3ZlbWVudEZvckFjY2Vzc2liaWxpdHkpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZSk6CisKIDIwMTQtMDMtMTMgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29t
PgogCiAgICAgICAgIFRyeSB0byBmaXggaU9TIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNjE2YTkwLi40
OGRiOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0LTAzLTE3ICBTYW11ZWwgV2hp
dGUgIDxzYW11ZWxfd2hpdGVAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBOb3QgYWJsZSB0byB1
c2UgYXJyb3cga2V5cyB0byByZWFkIHRleHQgd2l0aCBWb2ljZU92ZXIgYmVmb3JlIHNlbGVjdGlv
biBpcyBzZXQgc29tZXBsYWNlIChhbnlwbGFjZSkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAyNTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVy
YXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbjoKKwogMjAxNC0wMy0xMiAgQW5kZXJzIENhcmxzc29u
ICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjMwNzM0
Nj4gQWRkIG5ldyBXZWJLaXRMZWdhY3kuZnJhbWV3b3JrLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDJh
NWU3OWEuLmI2NTJkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNC0w
My0xNyAgU2FtdWVsIFdoaXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KKworICAgICAgICBB
WDogTm90IGFibGUgdG8gdXNlIGFycm93IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVy
IGJlZm9yZSBzZWxlY3Rpb24gaXMgc2V0IHNvbWVwbGFjZSAoYW55cGxhY2UpLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjUwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYWJpbGl0eSB0byB0
b2dnbGUgZW5oYW5jZWQgYWNjZXNzaWJpbGl0eSBvbiBhbmQgb2ZmIHRvIHN1cHBvcnQgdGVzdHMg
dGhhdCByZXF1aXJlIGl0LgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAg
ICAgKC1bV2ViRnJhbWUgZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZF0pOgorICAgICAgICAo
LVtXZWJGcmFtZSBzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHk6XSk6CisgICAgICAgICogV2ViVmll
dy9XZWJGcmFtZVByaXZhdGUuaDoKKwogMjAxNC0wMy0xMiAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBXZWJLaXQxICsgV2ViS2l0MiBpT1MgY2xpZW50
cyBzaG91bGQgY2hlY2sgbG9hZCBwb2xpY3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyOWJmNWNkLi5mYzEzZjEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDMtMTcgIFNhbXVlbCBXaGl0ZSAg
PHNhbXVlbF93aGl0ZUBhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IE5vdCBhYmxlIHRvIHVzZSBh
cnJvdyBrZXlzIHRvIHJlYWQgdGV4dCB3aXRoIFZvaWNlT3ZlciBiZWZvcmUgc2VsZWN0aW9uIGlz
IHNldCBzb21lcGxhY2UgKGFueXBsYWNlKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMDI1MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIGFiaWxpdHkgdG8gdG9nZ2xlIGVuaGFuY2VkIGFjY2Vz
c2liaWxpdHkgb24gYW5kIG9mZiB0byBzdXBwb3J0IHRlc3RzIHRoYXQgcmVxdWlyZSBpdC4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNw
cDoKKyAgICAgICAgKFdLQWNjZXNzaWJpbGl0eUVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6
CisgICAgICAgIChXS0FjY2Vzc2liaWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVBy
aXZhdGUuaDoKKwogMjAxNC0wMy0xMyAgTGFzemxvIFZpZGFjcyAgPGx2aWRhY3MudS1zemVnZWRA
cGFydG5lci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBGaXggdGhlICFFTkFCTEUoU1FMX0RBVEFC
QVNFKSBidWlsZApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDJlNzRlNzUuLjRiZDAwZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxNC0wMy0xNyAgU2FtdWVsIFdo
aXRlICA8c2FtdWVsX3doaXRlQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogTm90IGFibGUgdG8g
dXNlIGFycm93IGtleXMgdG8gcmVhZCB0ZXh0IHdpdGggVm9pY2VPdmVyIGJlZm9yZSBzZWxlY3Rp
b24gaXMgc2V0IHNvbWVwbGFjZSAoYW55cGxhY2UpLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMjUwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYWJpbGl0eSB0byB0b2dnbGUgZW5oYW5jZWQg
YWNjZXNzaWJpbGl0eSBvbiBhbmQgb2ZmIHRvIHN1cHBvcnQgdGVzdHMgdGhhdCByZXF1aXJlIGl0
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5Q2FsbGJhY2spOgorICAgICAg
ICAoZ2V0RW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZENhbGxiYWNrKToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjpnZXRKU0NsYXNzKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHA6CisgICAgICAgIChBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KToKKyAgICAgICAgKEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJJT1MubW06
CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5hYmxlRW5oYW5jZWRBY2Nlc3Np
YmlsaXR5KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNlZEFjY2Vz
c2liaWxpdHlFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
ZW5hYmxlRW5oYW5jZWRBY2Nlc3NpYmlsaXR5KToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmVuYWJsZUVuaGFuY2VkQWNjZXNzaWJpbGl0eSk6CisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxl
ZCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjplbmFibGVFbmhhbmNlZEFjY2Vzc2liaWxpdHkpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6ZW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsOgorCiAyMDE0LTAzLTEzICBKb3pzZWYgQmVydGEgIDxq
YmVydGEudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbR1RLXSBidWls
ZC13ZWJraXQgc2hvdWxkbid0IHNob3cgZXJyb3IgbWVzc2FnZSB3aGVuIG5pbmphIGlzbid0IGlu
c3RhbGxlZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>