<?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>86063</bug_id>
          
          <creation_ts>2012-05-10 00:21:39 -0700</creation_ts>
          <short_desc>Move resumeAnimations to use Internals interface</short_desc>
          <delta_ts>2012-07-17 17:08:06 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>rakuco</cc>
    
    <cc>roger_fong</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>620314</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-10 00:21:39 -0700</bug_when>
    <thetext>Adjust resumeAnimations() tests to use Internals instead of LayoutTestController interface. It seems to me that resumeAnimations() is able to be supported by Internals. Because, it looks this function is implemented by WebCore layer, not WebKit layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620370</commentid>
    <comment_count>1</comment_count>
      <attachid>141106</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-10 01:26:21 -0700</bug_when>
    <thetext>Created attachment 141106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620391</commentid>
    <comment_count>2</comment_count>
      <attachid>141106</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-10 02:10:55 -0700</bug_when>
    <thetext>Comment on attachment 141106
Patch

Attachment 141106 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12664261</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620424</commentid>
    <comment_count>3</comment_count>
      <attachid>141128</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-10 03:21:05 -0700</bug_when>
    <thetext>Created attachment 141128
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>620811</commentid>
    <comment_count>4</comment_count>
      <attachid>141128</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-10 11:50:54 -0700</bug_when>
    <thetext>Comment on attachment 141128
Patch

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

&gt; Source/WebKit/mac/WebKit.order:-1224
&gt; --[WebFrame(WebPrivate) _resumeAnimations]

There is no need to update these order files. No harm either.

&gt; Source/WebKit/mac/WebView/WebFramePrivate.h:-111
&gt; -// Suspend and resume animations (includes both CSS transitions and CSS animations).
&gt; -- (void)_resumeAnimations;

It&apos;s always scary to remove anything from *Private.h files - functions in these can be used by Apple software. I verified that this change is OK to the extent possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621268</commentid>
    <comment_count>5</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-10 22:22:36 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 141128 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=141128&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/mac/WebKit.order:-1224
&gt; &gt; --[WebFrame(WebPrivate) _resumeAnimations]
&gt; 
&gt; There is no need to update these order files. No harm either.
&gt; 
&gt; &gt; Source/WebKit/mac/WebView/WebFramePrivate.h:-111
&gt; &gt; -// Suspend and resume animations (includes both CSS transitions and CSS animations).
&gt; &gt; -- (void)_resumeAnimations;
&gt; 
&gt; It&apos;s always scary to remove anything from *Private.h files - functions in these can be used by Apple software. I verified that this change is OK to the extent possible.

I will take care it when submitting patch further. Thank you for your review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621271</commentid>
    <comment_count>6</comment_count>
      <attachid>141128</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-10 22:30:52 -0700</bug_when>
    <thetext>Comment on attachment 141128
Patch

Clearing flags on attachment: 141128

Committed r116729: &lt;http://trac.webkit.org/changeset/116729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>621272</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-10 22:30:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671768</commentid>
    <comment_count>8</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2012-07-17 17:08:06 -0700</bug_when>
    <thetext>This patch changed API that was being used by other apps, which consequently now causes these other apps to fail. Please be more careful in the future when making such changes.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141106</attachid>
            <date>2012-05-10 01:26:21 -0700</date>
            <delta_ts>2012-05-10 03:20:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86063-20120510172619.patch</filename>
            <type>text/plain</type>
            <size>37440</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWM3YTE1YTYxOGJhYjUx
NWE4MTFiNmUzN2JmOWNiYzhlNzg2MzAwYy4uMmI5YzRkZjAwNTJlZGJlZTZiNTgzYjI4OGZhNWZm
MTA4Mzk1MTFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA1LTEwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSByZXN1
bWVBbmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA2MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCByZXN1bWVBbmltYXRpb25zIGZ1bmN0
aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBv
cnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBzaW5jZSB3ZSBhcmUgaW1wcm92aW5nIGhlcmUgdGhlIGluZnJhLXN0cnVjdHVyZSBm
b3IgdGVzdGluZworICAgICAgICBhIHNwZWNpZmljIG1ldGhvZC4KKworICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzdW1lQW5p
bWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMTItMDUtMDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIENhbGVuZGFyIFBpY2tlcjogRml4IGEgY3Jhc2ggYnkgY2hhbmdpbmcgaW5wdXQgdHlw
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZwppbmRleCA0NjNkM2Q3YTk3OGVkZjcxZmRkY2U5YTU1MTBhNGQ3OWFl
ODYzNDA1Li4zMjdlYTk5OWYwYTY2YWQ4NjliODFmN2VlYTBhZTgwNTFkN2U5YTJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMTAgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHJlc3VtZUFuaW1hdGlvbnMg
dG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2MDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHJlc3VtZUFuaW1hdGlvbnMgZnVuY3Rpb25zLCBiZWNh
dXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRo
cm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oOgorCiAyMDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0g
IDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0
aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3NWMy
NDkwMDhkODA2YmRhNGU5OGIzMjlmZWQxMmJiNTE3OGFiZDQzLi5mMTQ4ODU1YWJmYTE4ODQ0YTQ1
MDdkMGMwNzNiMzM4Njk1YzMyZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTItMDUtMTAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBNb3ZlIHJlc3VtZUFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDYzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHJl
c3VtZUFuaW1hdGlvbnMgZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0
aGUgCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZh
Y2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
OgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKKwogMjAxMi0wNS0wOSAgR3l1
eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgc3Vz
cGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggMThmYWQ4YTJhMDE1MDYzODI5NGYxNTM1MDRlYjU5Y2FmYmEyMGM4My4uZjhjOTA2OGE2
ZDZjOGRmOTUzM2NiNTlmZTgwYjdlODAxODAxOGFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDEyLTA1LTEwICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3Vu
Zy5jb20+CisKKyAgICAgICAgTW92ZSByZXN1bWVBbmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMg
aW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NjA2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSByZXN1bWVBbmltYXRpb25zIGZ1bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRv
IHdvcmsgaW4gdGhlIAorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5h
bHMgaW50ZXJmYWNlLgorCisgICAgICAgICogV2ViS2l0Lm9yZGVyOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViRnJhbWUubW06CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaDoKKwog
MjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2Uu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCmluZGV4IGJkNjMwNjc1MGEyZDZkMzkyZmU5ZWY0YmE0YzQ3MWIyNmIwNGE1
MWUuLmRhZjFhOTc2MWNiMDRhY2Y1ZmQ1MmI1NmY2ZDA0ZDUxN2NjN2I5OTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMTAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5n
LmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHJlc3VtZUFuaW1hdGlvbnMgdG8gdXNl
IEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlIHJlc3VtZUFuaW1hdGlvbnMgZnVuY3Rpb25zLCBiZWNhdXNlIGl0
IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91Z2gg
dGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuaDoKKwogMjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91
bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8g
dXNlIEludGVybmFscyBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYTA1OWVkNmM4NGYy
NzNmYmRkZGJjMGI2ZjgzN2YyOGUxMTg5ZWYxOC4uNDQ5MDQzZTg4MDM2OGU0N2Q4N2FhYzg0ZTM2
NDMyMzY0MmNmZGMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA1
LTEwICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
TW92ZSByZXN1bWVBbmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA2MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSByZXN1bWVBbmlt
YXRpb25zIGZ1bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlIAorICAg
ICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorCisg
ICAgICAgICogSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbDoKKyAgICAgICAgKiBXZWJG
cmFtZS5jcHA6CisgICAgICAgICogV2ViRnJhbWUuaDoKKwogMjAxMi0wNS0wOSAgR3l1eW91bmcg
S2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgc3VzcGVuZEFu
aW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDJhYzA0
MmFjOTg2MWJhMDM3ZGY4YjQ4MmRiYzM3MDI5ZTBjNmQyOS4uM2E2ZjIyOTk2ZjE3OGZhNWU4ZjRj
ZDU3ODQ2MjgwMTFkMWVkZjEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA1
LTEwICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAg
TW92ZSByZXN1bWVBbmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA2MworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVm
OiBBZGQgYSBzeW1ib2wgZmlsdGVyIGZvciByZXN1bWVBbmltYXRpb25zLgorCiAyMDEyLTA1LTA5
ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgTW92
ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3NzQyMDMyNTVjMGM5YzdkYmIzYmMyYWM2Y2Ew
ZjkzMzRlYmY5YzIxLi5mZDZkNzU5MDRmNmNkNDMyMTk4YjYwODA2MmQyZmMxMTFkMGRjODM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMDIyLDYgKzEwMjIsMjEgQEAg
dm9pZCBJbnRlcm5hbHM6OnN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50KiBkb2N1bWVudCwgRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgY29udHJvbGxlci0+c3VzcGVuZEFuaW1hdGlvbnMo
KTsKIH0KIAordm9pZCBJbnRlcm5hbHM6OnJlc3VtZUFuaW1hdGlvbnMoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFk
b2N1bWVudC0+ZnJhbWUoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xs
ZXIgPSBkb2N1bWVudC0+ZnJhbWUoKS0+YW5pbWF0aW9uKCk7CisgICAgaWYgKCFjb250cm9sbGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBjb250cm9sbGVyLT5yZXN1bWVBbmltYXRpb25zKCk7
Cit9CisKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIHZvaWQgSW50ZXJuYWxzOjp3ZWJr
aXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIEVsZW1l
bnQqIGVsZW1lbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlMDdmNGJj
NTJkZTViODljNmQxNGQ0OWJhOThhNzgyMmFjNWU1NDc5Li5iYWVmYmE2MzkzYTYyMGM5MDQyZTIz
YmRhNmQzMGNhYzM5ZjYzYTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE2
NCw2ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZXR3b3JrSW5mb3JtYXRpb24oRG9j
dW1lbnQqLCBjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgbG9uZyBiYW5kd2lkdGgsIGJvb2wgbWV0
ZXJlZCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhEb2N1
bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMo
RG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9S
KQogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2ZU5vZGVzKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggMzQ3NjU3MWFiMjRlNGFlOTU2MjNlODA5NGRjOGFkMGY1
MTI5MjFjOC4uMWZhNmZhZTM3M2ZiMDRkODgzMzM1MGIzOWNmZmVjYzYzNThlZGVmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTMzLDYgKzEzMyw3IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBzZXR0
aW5nczsKIAogICAgICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGluIERvY3VtZW50IGRvY3Vt
ZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9u
cyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCiAjaWYgZGVm
aW5lZChFTkFCTEVfQkFUVEVSWV9TVEFUVVMpICYmIEVOQUJMRV9CQVRURVJZX1NUQVRVUwogICAg
ICAgICB2b2lkIHNldEJhdHRlcnlTdGF0dXMoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIERPTVN0
cmluZyBldmVudFR5cGUsIGluIGJvb2xlYW4gY2hhcmdpbmcsIGluIGRvdWJsZSBjaGFyZ2luZ1Rp
bWUsIGluIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWUsIGluIGRvdWJsZSBsZXZlbCkgcmFpc2VzIChE
T01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggZDVhNjZhZTEwZmFl
NDVlMjJiMDFmOTg0MGVhNDBkNjUwNWM1NjU5Yy4uMjRmN2NmYTM0N2ZiODBjMzM1OGNmMzFkZTk4
YTEzOTE2ZmFkZTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC0yNzgsMTggKzI3
OCw2IEBAIFN0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnJlc3BvbnNlTWltZVR5cGUo
Y29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgIHJldHVybiBkb2N1bWVudExvYWRlci0+
cmVzcG9uc2VNSU1FVHlwZSgpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
cmVzdW1lQW5pbWF0aW9ucyhFdmFzX09iamVjdCogZXdrRnJhbWUpCi17Ci0gICAgV2ViQ29yZTo6
RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0ZyYW1lKTsKLQotICAgIGlm
ICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRy
b2xsZXIgKmFuaW1hdGlvbkNvbnRyb2xsZXIgPSBmcmFtZS0+YW5pbWF0aW9uKCk7Ci0gICAgaWYg
KGFuaW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIGFuaW1hdGlvbkNvbnRyb2xsZXItPnJlc3Vt
ZUFuaW1hdGlvbnMoKTsKLX0KLQogV2ViQ29yZTo6SW50UmVjdCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnNlbGVjdGlvblJlY3RhbmdsZShjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7
CiAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0Zy
YW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggZjM0MjBlMDIzYTE5YTMzNmFjMWM0NDY1
ZDE3NDk4N2VmNjg2NTQ3OS4uMTQ3ZWM5MDYzY2NmNGVhOTRjNDBhZmY4ZDIxYjdmZWNiOGI0NDdi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTYyLDcgKzYyLDYgQEAgcHVibGljOgogICAg
IHN0YXRpYyB1bnNpZ25lZCBwZW5kaW5nVW5sb2FkRXZlbnRDb3VudChjb25zdCBFdmFzX09iamVj
dCogZXdrRnJhbWUpOwogICAgIHN0YXRpYyBTdHJpbmcgcmVuZGVyVHJlZUR1bXAoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKTsKICAgICBzdGF0aWMgU3RyaW5nIHJlc3BvbnNlTWltZVR5cGUoY29uc3Qg
RXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKLSAgICBzdGF0aWMgdm9pZCByZXN1bWVBbmltYXRpb25z
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAgICAgc3RhdGljIFdlYkNvcmU6OkludFJlY3Qgc2Vs
ZWN0aW9uUmVjdGFuZ2xlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAgICAgc3RhdGlj
IFN0cmluZyBzdWl0YWJsZURSVEZyYW1lTmFtZShjb25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUp
OwogICAgIHN0YXRpYyB2b2lkIHNldFZhbHVlRm9yVXNlcihKU0NvbnRleHRSZWYsIEpTVmFsdWVS
ZWYgbm9kZU9iamVjdCwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcAppbmRleCA1ZWI1ZTRmNzE2YmQ1YzAxZmMxNTNiZmQ2NDYxNTU5YTEwOGZkZGVlLi4wMzgy
N2I0YjcxOTQ5ZDY1Yzk4YjQ1MjhlNjg2NmRlNmYwN2IwYTRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHAKQEAgLTM2MywxNSArMzYzLDYgQEAgdW5zaWduZWQgaW50IER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKFdlYktpdFdlYkZyYW1lKgogICAg
IHJldHVybiBjb3JlRnJhbWUtPmFuaW1hdGlvbigpLT5udW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMo
Y29yZUZyYW1lLT5kb2N1bWVudCgpKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnJlc3VtZUFuaW1hdGlvbnMoV2ViS2l0V2ViRnJhbWUqIGZyYW1lKQotewotICAgIEZyYW1l
KiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKLSAgICBpZiAoIWNvcmVGcmFtZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgcmV0dXJuIGNvcmVGcmFtZS0+YW5pbWF0aW9uKCktPnJlc3VtZUFuaW1h
dGlvbnMoKTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNsZWFyTWFpbkZy
YW1lTmFtZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4IDIw
ZDgzN2VhMWUzZjdmZjA2NjI0MTU1NGZkYmM4OWMxNTJlM2M2NzUuLmEwZmQxYTU2N2RkY2M5MjE3
YTg1NGE1OTc0NTJmYWM3MGZjZDNmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC03Miw3
ICs3Miw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBwYXVzZVRyYW5zaXRpb24oV2ViS2l0
V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBuYW1lLCBkb3VibGUgdGltZSwgY29uc3QgY2hhciogZWxl
bWVudCk7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBtYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oV2Vi
S2l0V2ViRnJhbWUqLCBKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYgbm9kZU9iamVjdCk7CiAgICAg
c3RhdGljIHVuc2lnbmVkIGludCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoV2ViS2l0V2ViRnJh
bWUqKTsKLSAgICBzdGF0aWMgdm9pZCByZXN1bWVBbmltYXRpb25zKFdlYktpdFdlYkZyYW1lKik7
CiAgICAgc3RhdGljIHZvaWQgY2xlYXJNYWluRnJhbWVOYW1lKFdlYktpdFdlYkZyYW1lKik7CiAg
ICAgc3RhdGljIEF0a09iamVjdCogZ2V0Rm9jdXNlZEFjY2Vzc2libGVFbGVtZW50KFdlYktpdFdl
YkZyYW1lKik7CiAgICAgc3RhdGljIEF0a09iamVjdCogZ2V0Um9vdEFjY2Vzc2libGVFbGVtZW50
KFdlYktpdFdlYkZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQu
b3JkZXIgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKaW5kZXggMjFkOTZkODI0MDk1
NDhlOTczYTk3NmJiOWE1NzIwNTRkNjc0Yzg2Ny4uMWExZWIwYzcyYjMwYTk5MDk4MGRmMTU5NzFl
MmZiZTllN2MwZWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVy
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgpAQCAtMTIyMSw3ICsxMjIxLDYg
QEAgX1dLRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVvcGFyZAogX19aTks3V2Vi
Q29yZTEyQ2hyb21lQ2xpZW50MjlkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZUVSS05TXzE3
Vmlld3BvcnRBcmd1bWVudHNFCiAtW1dlYlZpZXcoV2ViUHJpdmF0ZSkgc2V0RnJhbWVTaXplOl0K
IC1bV2ViRnJhbWUoV2ViS2l0RGVidWcpIHJlbmRlclRyZWVBc0V4dGVybmFsUmVwcmVzZW50YXRp
b25Gb3JQcmludGluZzpdCi0tW1dlYkZyYW1lKFdlYlByaXZhdGUpIF9yZXN1bWVBbmltYXRpb25z
XQogK1tXZWJWaWV3KFdlYlByaXZhdGUpIF9wb2ludGluZ0hhbmRDdXJzb3JdCiBfV0tHZXRDRlVS
TFJlc3BvbnNlVVJMCiBfV0tHZXRDRlVSTFJlc3BvbnNlSFRUUFJlc3BvbnNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBhZDQzNjQzN2RhYzI0YzNlOWEwN2FhNWJiN2My
YjU5NGEwYTZhYjk5Li40MTZiZDdkZmU3OGJmM2RjYTYzZGI5OGVmYzQ3OWJiZDZkYjg2YzJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk5OCwxNSArOTk4LDYgQEAg
c3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9hZGVyKiBs
b2FkZXIpCiAgICAgcmV0dXJuIGNvbnRyb2xsZXItPm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhm
cmFtZS0+ZG9jdW1lbnQoKSk7CiB9CiAKLS0gKHZvaWQpIF9yZXN1bWVBbmltYXRpb25zCi17Ci0g
ICAgRnJhbWUqIGZyYW1lID0gY29yZShzZWxmKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBmcmFtZS0+YW5pbWF0aW9uKCktPnJlc3VtZUFuaW1hdGlvbnMoKTsKLX0K
LQogLSAodm9pZClfcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudDooRE9NRG9jdW1lbnRGcmFn
bWVudCAqKWZyYWdtZW50IHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVjdFJlcGxhY2VtZW50
IHNtYXJ0UmVwbGFjZTooQk9PTClzbWFydFJlcGxhY2UgbWF0Y2hTdHlsZTooQk9PTCltYXRjaFN0
eWxlCiB7CiAgICAgaWYgKF9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVjdGlvbigpLT5pc05vbmUo
KSB8fCAhZnJhZ21lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZh
dGUuaAppbmRleCA0YjdjNzU5MDRjNzczOTZmOGFkNWMxODNjMTM3NDcwNzE5MWUyM2RhLi45ZGVh
N2UxYjRmOWNkZDhhYTNiZmQ5MDI2NzY4ZTk1M2ZjMGNmYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKQEAgLTEwNyw5ICsxMDcsNiBAQCB0eXBlZGVm
IGVudW0gewogLy8gUmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIGN1cnJlbnRseSBydW5uaW5n
IGFuaW1hdGlvbnMgKGluY2x1ZGVzIGJvdGggQ1NTIHRyYW5zaXRpb25zIGFuZCBDU1MgYW5pbWF0
aW9ucykuCiAtICh1bnNpZ25lZClfbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zOwogCi0vLyBTdXNw
ZW5kIGFuZCByZXN1bWUgYW5pbWF0aW9ucyAoaW5jbHVkZXMgYm90aCBDU1MgdHJhbnNpdGlvbnMg
YW5kIENTUyBhbmltYXRpb25zKS4KLS0gKHZvaWQpX3Jlc3VtZUFuaW1hdGlvbnM7Ci0KIC0gKHZv
aWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQ6KERPTURvY3VtZW50RnJhZ21lbnQgKilm
cmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJl
cGxhY2U6KEJPT0wpc21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6KEJPT0wpbWF0Y2hTdHlsZTsKIC0g
KHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0IHNlbGVjdFJl
cGxhY2VtZW50OihCT09MKXNlbGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFjZTooQk9PTClzbWFy
dFJlcGxhY2U7CiAtICh2b2lkKV9yZXBsYWNlU2VsZWN0aW9uV2l0aE1hcmt1cFN0cmluZzooTlNT
dHJpbmcgKiltYXJrdXBTdHJpbmcgYmFzZVVSTFN0cmluZzooTlNTdHJpbmcgKiliYXNlVVJMU3Ry
aW5nIHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFj
ZTooQk9PTClzbWFydFJlcGxhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDQ0NWU2ODQ4
OGJhODNhOWU5MmJjOWY2ZDhhNzY1NzVhOTFmMzdhZmEuLjJkNGZiNTA1N2QyZGFiNWYzMDQ5OTlj
NjIxZDIxYWJiMDNhZTcwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC0zODQsMTkgKzM4
NCw2IEBAIGludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6bnVtYmVyT2ZBY3RpdmVBbmltYXRp
b25zKFFXZWJGcmFtZSAqZnJhbWUpCiAgICAgcmV0dXJuIGNvbnRyb2xsZXItPm51bWJlck9mQWN0
aXZlQW5pbWF0aW9ucyhjb3JlRnJhbWUtPmRvY3VtZW50KCkpOwogfQogCi12b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OjpyZXN1bWVBbmltYXRpb25zKFFXZWJGcmFtZSAqZnJhbWUpCi17Ci0g
ICAgRnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJGcmFtZVByaXZhdGU6OmNvcmUoZnJhbWUpOwotICAg
IGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBbmltYXRpb25Db250cm9s
bGVyKiBjb250cm9sbGVyID0gY29yZUZyYW1lLT5hbmltYXRpb24oKTsKLSAgICBpZiAoIWNvbnRy
b2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnRyb2xsZXItPnJlc3VtZUFuaW1hdGlv
bnMoKTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6Y2xlYXJGcmFtZU5hbWUo
UVdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICBGcmFtZSogY29yZUZyYW1lID0gUVdlYkZyYW1lUHJp
dmF0ZTo6Y29yZShmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggZDg1YTMzNmM5NjM2NDE4
ZGRkMjQ4OTk2ZWE2NTM5N2UyODY5MmQ0Ni4uMzczZjYwZTcwY2Q4YTc3NTBhZTI4M2U0NTI4MDE3
YTU4OTg1OGQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTQxLDcgKzE0MSw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCBjbGVhckZyYW1lTmFtZShRV2ViRnJhbWUqIGZyYW1lKTsKICAg
ICBzdGF0aWMgdm9pZCBvdmVyd3JpdGVQbHVnaW5EaXJlY3RvcmllcygpOwogICAgIHN0YXRpYyBp
bnQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKFFXZWJGcmFtZSopOwotICAgIHN0YXRpYyB2b2lk
IHJlc3VtZUFuaW1hdGlvbnMoUVdlYkZyYW1lKik7CiAgICAgc3RhdGljIGludCBudW1iZXJPZlBh
Z2VzKFFXZWJGcmFtZSogZnJhbWUsIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpOwogICAgIHN0
YXRpYyBpbnQgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkKFFXZWJGcmFtZSogZnJhbWUsIGNvbnN0
IFFTdHJpbmcmIGlkLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsKICAgICBzdGF0aWMgYm9v
bCBoYXNEb2N1bWVudEVsZW1lbnQoUVdlYkZyYW1lKiBmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRsIGIvU291cmNlL1dl
YktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbAppbmRleCBiY2E2NWU0MjUz
ZTBkYmI5ZDFlN2Q1OTQyYjc4MGU1NjBlY2IyZDM3Li5kZWExMTIzYjBlNjk5NWZlNjg5ZGQ4YTY3
MmVhMjBlMDk2NTdmMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2Vz
L0lXZWJGcmFtZVByaXZhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0ludGVyZmFjZXMv
SVdlYkZyYW1lUHJpdmF0ZS5pZGwKQEAgLTExMCw4ICsxMTAsNiBAQCBpbnRlcmZhY2UgSVdlYkZy
YW1lUHJpdmF0ZSA6IElVbmtub3duCiAKICAgICBIUkVTVUxUIHJlbmRlclRyZWVBc0V4dGVybmFs
UmVwcmVzZW50YXRpb24oW2luXSBCT09MIGZvclByaW50aW5nLCBbb3V0LCByZXR2YWxdIEJTVFIq
IHJlc3VsdCk7CiAKLSAgICBIUkVTVUxUIHJlc3VtZUFuaW1hdGlvbnMoKTsKLQogICAgIEhSRVNV
TFQgbG9hZFBsYWluVGV4dFN0cmluZyhbaW5dIEJTVFIgc3RyaW5nLCBbaW5dIEJTVFIgdXJsKTsK
IAogICAgIEhSRVNVTFQgY2xlYXJPcGVuZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcAppbmRleCBj
MGVhNTMzMTMyYzY4YTAzMDJmZWZjNDRkMGQwMDJmZDUwYzA1ZDU1Li4zYTM3MTViM2JlY2E0NmZl
MGU3MjZmNDE1OTUwZjYwNzFjYzFmNWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuY3BwCkBAIC0xMzEx
LDE2ICsxMzExLDYgQEAgSFJFU1VMVCBXZWJGcmFtZTo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25z
KFVJTlQqIG51bWJlcikKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBXZWJGcmFtZTo6
cmVzdW1lQW5pbWF0aW9ucygpCi17Ci0gICAgRnJhbWUqIGZyYW1lID0gY29yZSh0aGlzKTsKLSAg
ICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gRV9GQUlMOwotCi0gICAgZnJhbWUtPmFuaW1h
dGlvbigpLT5yZXN1bWVBbmltYXRpb25zKCk7Ci0gICAgcmV0dXJuIFNfT0s7Ci19Ci0KIEhSRVNV
TFQgV2ViRnJhbWU6OmlzRGlzcGxheWluZ1N0YW5kYWxvbmVJbWFnZShCT09MKiByZXN1bHQpCiB7
CiAgICAgaWYgKCFyZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFt
ZS5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuaAppbmRleCBmYWUyYWMzNjAwZDdmNmQ2
MWYzM2VhZWU2NTAwNzBhYWEzNDlkZDI2Li5iNjM0MzhiNTA0OWMzOGJkNDdmMjcwNWVkYWY4MTZi
ODU5YThkNjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmgKQEAgLTI2MCw3ICsyNjAsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHBhdXNlQW5pbWF0aW9uKEJT
VFIgYW5pbWF0aW9uTmFtZSwgSURPTU5vZGUqLCBkb3VibGUgc2Vjb25kc0Zyb21Ob3csIEJPT0wq
IGFuaW1hdGlvbldhc1J1bm5pbmcpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBwYXVzZVRyYW5zaXRpb24oQlNUUiBwcm9wZXJ0eU5hbWUsIElET01Ob2RlKiwgZG91Ymxl
IHNlY29uZHNGcm9tTm93LCBCT09MKiB0cmFuc2l0aW9uV2FzUnVubmluZyk7CiAgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhVSU5U
Kik7Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlc3VtZUFuaW1hdGlv
bnMoKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgbG9hZFBsYWluVGV4
dFN0cmluZyhCU1RSIHN0cmluZywgQlNUUiB1cmwpOwogCiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIGlzRGlzcGxheWluZ1N0YW5kYWxvbmVJbWFnZShCT09MKik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYKaW5kZXggNmUxYzUyYzY1ZjhjNjJhYmU1OGIyZWJmYjhmMGNhMmY5ZTE3
YWI0ZS4uYTAzZmI4MDdlOTkxODUwM2YxMGZmOTRmNjc2ZGQzZmI3YjJmOWM4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLmRlZgpAQCAtMjU2LDMgKzI1Niw0IEBAIEVYUE9SVFMKICAgICAgICAgP3dlYmtp
dERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxl
bWVudEAyQEBaCiAgICAgICAgID9pc1BhZ2VCb3hWaXNpYmxlQERvY3VtZW50QFdlYkNvcmVAQFFB
RV9OSEBaCiAgICAgICAgID9zdXNwZW5kQW5pbWF0aW9uc0BBbmltYXRpb25Db250cm9sbGVyQFdl
YkNvcmVAQFFBRVhYWgorICAgICAgICA/cmVzdW1lQW5pbWF0aW9uc0BBbmltYXRpb25Db250cm9s
bGVyQFdlYkNvcmVAQFFBRVhYWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggNDU0OGFlMGVj
NDNkNGE0OTljN2E1YzM4NWQzMjA4NzM1YzI5M2VmMS4uYmQ5MTAyZDc3NzlkMDIzOTk3M2Q2MjNm
NjE5OTBiNWRjMWM2MjRmMSAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC0xMDgsNiArMTA4
LDcgQEAgX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5SWRFUktOM1dURjEyQXRv
bWljU3RyaW5nRTsKIF9aTks3V2ViQ29yZTE0RG9jdW1lbnRNYXJrZXIxMWRlc2NyaXB0aW9uRXY7
CiBfWk43V2ViQ29yZThEb2N1bWVudDE2aXNQYWdlQm94VmlzaWJsZUVpOwogX1pON1dlYkNvcmUx
OUFuaW1hdGlvbkNvbnRyb2xsZXIxN3N1c3BlbmRBbmltYXRpb25zRXY7CitfWk43V2ViQ29yZTE5
QW5pbWF0aW9uQ29udHJvbGxlcjE2cmVzdW1lQW5pbWF0aW9uc0V2OwogX1pOSzdXZWJDb3JlMTlJ
bnNwZWN0b3JDb250cm9sbGVyMTJnZXRIaWdobGlnaHRFUE5TXzlIaWdobGlnaHRFOwogX1pON1dl
YkNvcmUyNEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjI2aW5zdHJ1bWVudGluZ0FnZW50c0ZvclBh
Z2VFUE5TXzRQYWdlRTsKIF9aTjdXZWJDb3JlMjRJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24xN3Nf
ZnJvbnRlbmRDb3VudGVyRTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCA5YjM5ODBkNzZiN2E0NGIwY2Y4MTEwNDQ3YTY3NjUwYTljNjU2ZTFmLi5m
OTc4NmNmMTc0NGUzMTQwOGFmYTA4ODJmODkyZjdiZmE0YjllMjRlIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTIt
MDUtMTAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBNb3ZlIHJlc3VtZUFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDYzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHJlc3VtZUFu
aW1hdGlvbnMgZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCisg
ICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0
VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9s
bGVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29u
dHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0Lmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKwogMjAxMi0w
NS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNTM3OGYw
N2M1NTdhOTIyYTY1YWZkZjNkN2Y0YmE1ZGExY2FhY2UyMS4uODM2ZGRlZmY4YTJlNmQ1MmZmOWQ3
YjNkNTgzZDRiOTM2MWI5YTM4MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcApAQCAtMTg2MSwxMyArMTg2MSw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVm
IG51bWJlck9mQWN0aXZlQW5pbWF0aW9uc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsIGNvbnRyb2xsZXIt
Pm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpKTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgcmVz
dW1lQW5pbWF0aW9uc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAg
ICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRl
c3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250
cm9sbGVyLT5yZXN1bWVBbmltYXRpb25zKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiB3YWl0Rm9yUG9saWN5RGVsZWdh
dGVDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCwgY29uc3QgSlNWYWx1ZVJlZltdLCBKU1ZhbHVlUmVmKikKIHsK
ICAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91
dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIz
NDMsNyArMjMzNiw2IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpz
dGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJtYXJrZXJUZXh0Rm9yTGlzdEl0ZW0iLCBtYXJr
ZXJUZXh0Rm9yTGlzdEl0ZW1DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJub3RpZnlEb25l
Iiwgbm90aWZ5RG9uZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgIm51bWJlck9mQWN0aXZl
QW5pbWF0aW9ucyIsIG51bWJlck9mQWN0aXZlQW5pbWF0aW9uc0NhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0g
ICAgICAgIHsgInJlc3VtZUFuaW1hdGlvbnMiLCByZXN1bWVBbmltYXRpb25zQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAib3ZlcnJpZGVQcmVmZXJlbmNlIiwgb3ZlcnJpZGVQcmVmZXJlbmNl
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicGFnZU51bWJlckZvckVsZW1lbnRCeUlkIiwg
cGFnZU51bWJlckZvckVsZW1lbnRCeUlkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicGFn
ZVNpemVBbmRNYXJnaW5zSW5QaXhlbHMiLCBwYWdlU2l6ZUFuZE1hcmdpbnNJblBpeGVsc0NhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aAppbmRleCAzODc4NGZkOWM3MThiZDdkNWEzYWMxMDI4OTZmZTExYmU0ZmFkOWQzLi5lM2QzMTgy
ZGRiNDYyZTE4ZTBhYjgyODkxMWEwZDhjZmU3NWYyMDA1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTI5MCw3ICsyOTAsNiBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChKU1N0cmluZ1JlZiBh
bmltYXRpb25OYW1lLCBkb3VibGUgdGltZSwgSlNTdHJpbmdSZWYgZWxlbWVudElkKTsKICAgICBi
b29sIHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChKU1N0cmluZ1JlZiBwcm9w
ZXJ0eU5hbWUsIGRvdWJsZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpOwogICAgIHVuc2ln
bmVkIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0OwotICAgIHZvaWQgcmVzdW1lQW5p
bWF0aW9ucygpIGNvbnN0OwogCiAgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CiAgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0
cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpT
U3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
cyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91dFRl
c3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKaW5kZXggZWI4NmJkZWUwYTRi
NmNhZmMzYjAwZjNiMThlMjQ0NjUzNDMyN2QyNi4uYTc5OWIwNDE0NWMwODZkNGNiMDlkMDdjYmNj
Y2JiYThiNzUyZTIyNiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcApAQCAt
NzA1LDEyICs3MDUsNiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRWaWV3TW9kZU1l
ZGlhRmVhdHVyZShjb25zdCBKU1N0cmluZ1JlZiBtb2RlKQogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoKSBjb25z
dAotewotICAgIGlmIChtYWluRnJhbWUgJiYgbWFpbkZyYW1lLT5hbmltYXRpb24oKSkKLSAgICAg
ICAgbWFpbkZyYW1lLT5hbmltYXRpb24oKS0+cmVzdW1lQW5pbWF0aW9ucygpOwotfQotCiB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoYm9vbCkKIHsKICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IGlmIG5lZWRlZCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwNzU4LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDkzMzIyOGU4OTVkY2M4
ZWY0OWIwYzYyODQ4Y2JiNjlmZTYzOWVlMTkuLmE1NmY0YzM1YjQwZTAxMDEwYmYyZmE1ZjczZWNj
NDNhYmU3YmQ0ODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE2NSw3ICsxNjUsNiBAQCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBi
aW5kTWV0aG9kKCJyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOwogICAgIGJpbmRN
ZXRob2QoInJlcGFpbnRTd2VlcEhvcml6b250YWxseSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
cmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5KTsKICAgICBiaW5kTWV0aG9kKCJyZXNldFBhZ2VWaXNp
YmlsaXR5IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpyZXNldFBhZ2VWaXNpYmlsaXR5KTsKLSAg
ICBiaW5kTWV0aG9kKCJyZXN1bWVBbmltYXRpb25zIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpy
ZXN1bWVBbmltYXRpb25zKTsKICAgICBiaW5kTWV0aG9kKCJzZXRBY2NlcHRzRWRpdGluZyIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWNjZXB0c0VkaXRpbmcpOwogICAgIGJpbmRNZXRob2Qo
InNldEFsbG93RGlzcGxheU9mSW5zZWN1cmVDb250ZW50IiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpzZXRBbGxvd0Rpc3BsYXlPZkluc2VjdXJlQ29udGVudCk7CiAgICAgYmluZE1ldGhvZCgic2V0
QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRB
bGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMpOwpAQCAtMTA2NCwxOSArMTA2Myw2IEBAIGludCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkKICAgICByZXR1
cm4gY29udHJvbGxlci0+bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CiB9CiAKLXZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoKQotewotICAgIFdlYkZyYW1lKiB3
ZWJGcmFtZSA9IG1fc2hlbGwtPndlYlZpZXcoKS0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCF3ZWJG
cmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgV2ViQW5pbWF0aW9uQ29udHJvbGxlciogY29u
dHJvbGxlciA9IHdlYkZyYW1lLT5hbmltYXRpb25Db250cm9sbGVyKCk7Ci0gICAgaWYgKCFjb250
cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjb250cm9sbGVyLT5yZXN1bWVBbmltYXRp
b25zKCk7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnBhdXNlQW5pbWF0aW9uQXRU
aW1lT25FbGVtZW50V2l0aElkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBW
YXJpYW50KiByZXN1bHQpCiB7CiAgICAgcmVzdWx0LT5zZXQoZmFsc2UpOwpAQCAtMTE0OCwxMiAr
MTEzNCw2IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0
aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWCiAgICAgcmVzdWx0LT5zZXQobnVtYmVy
T2ZBY3RpdmVBbmltYXRpb25zKCkpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpy
ZXN1bWVBbmltYXRpb25zKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3Vs
dCkKLXsKLSAgICByZXN1bWVBbmltYXRpb25zKCk7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19
Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc2FibGVJbWFnZUxvYWRpbmcoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIG1fc2hlbGwtPnBy
ZWZlcmVuY2VzKCktPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5k
ZXggZTQ5MzFjOTg2MmU4NDUxZDc3YzkyMTc4M2JkNjIyMjI3YTRmNjk3ZC4uN2JkYjRlMTQzNjNj
Y2YyOTIzZjQ4ZTJiNTNjM2Q3Nzc0NTNmM2YyZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0yNDMsNyArMjQzLDYg
QEAgcHVibGljOgogICAgIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGlzYWJsZUF1dG9SZXNpemVNb2RlKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIG51bWJlck9mQWN0
aXZlQW5pbWF0aW9ucyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAg
dm9pZCByZXN1bWVBbmltYXRpb25zKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKICAgICB2b2lkIGRpc2FibGVJbWFnZUxvYWRpbmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZChjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBkdW1wU2VsZWN0aW9uUmVjdChj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkBAIC01NzMsNyArNTcyLDYgQEAg
cHJpdmF0ZToKICAgICBib29sIHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChj
b25zdCBXZWJLaXQ6OldlYlN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwgY29uc3Qg
V2ViS2l0OjpXZWJTdHJpbmcmIGVsZW1lbnRJZCk7CiAgICAgYm9vbCBlbGVtZW50RG9lc0F1dG9D
b21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICBp
bnQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7Ci0gICAgdm9pZCByZXN1bWVBbmltYXRpb25z
KCk7CiAKICAgICAvLyBVc2VkIGZvciB0ZXN0IHRpbWVvdXRzLgogICAgIFRhc2tMaXN0IG1fdGFz
a0xpc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENv
bnRyb2xsZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250
cm9sbGVyRWZsLmNwcAppbmRleCBhNDUzMmYzYzQ4NGNmMGFmNmQ3ZGI5ODNmMWYxYzg0ZTQ3MzM3
NTQ5Li4yOTgzOGJmNDVkMzY1OWEyODM3ZTUxZjA0M2FmZjQyMjg2YjlmNzViIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAK
QEAgLTY0OCwxMSArNjQ4LDYgQEAgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJl
ck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6YWN0aXZlQW5pbWF0aW9uc0NvdW50KGJyb3dzZXItPm1haW5GcmFtZSgpKTsKIH0K
IAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucygpIGNvbnN0Ci17
Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpyZXN1bWVBbmltYXRpb25zKGJyb3dzZXIt
Pm1haW5GcmFtZSgpKTsKLX0KLQogc3RhdGljIGlubGluZSBib29sIHRvQm9vbChKU1N0cmluZ1Jl
ZiB2YWx1ZSkKIHsKICAgICByZXR1cm4gZXF1YWxzKHZhbHVlLCAidHJ1ZSIpIHx8IGVxdWFscyh2
YWx1ZSwgIjEiKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVz
dENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDlmNTUzMTQ5YzJmYTNmMTQ5NjU5NTBhNjAyZjAwMTIw
ODRmOTU2MGYuLjVlYjdmYmVkNDJiZGJhMWYxYjQxZDhjYjExZjcxNDdhOWY4ZDUxMDYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcApAQCAtNzg3LDExICs3ODcsNiBAQCB1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKICAgICByZXR1cm4gRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMobWFpbkZyYW1lKTsKIH0KIAot
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucygpIGNvbnN0Ci17Ci0g
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZXN1bWVBbmltYXRpb25zKG1haW5GcmFtZSk7
Ci19Ci0KIHN0YXRpYyBnYm9vbGVhbiBib29sZWFuRnJvbVZhbHVlKGdjaGFyKiB2YWx1ZSkKIHsK
ICAgICByZXR1cm4gIWdfYXNjaWlfc3RyY2FzZWNtcCh2YWx1ZSwgInRydWUiKSB8fCAhZ19hc2Np
aV9zdHJjYXNlY21wKHZhbHVlLCAiMSIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IDY3ZTdiZTE5MjdlMzExZTk4M2M1
YzY4NTgxNzM1ZGU1NDUzYmMzMDcuLmI4MzU2YzkzNTVmODIwYTE0NTIzMjNmNzgzNmQ0YWQ4YmM2
ODliMDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29u
dHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0KQEAgLTg0NCwxMSArODQ0LDYgQEAgdW5zaWduZWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJuIFtt
YWluRnJhbWUgX251bWJlck9mQWN0aXZlQW5pbWF0aW9uc107CiB9CiAKLXZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdAotewotICAgIHJldHVybiBbbWFp
bkZyYW1lIF9yZXN1bWVBbmltYXRpb25zXTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6d2FpdEZvclBvbGljeURlbGVnYXRlKCkKIHsKICAgICBzZXRXYWl0VG9EdW1wKHRydWUpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNw
cAppbmRleCA2YjkxMTRiNDkwMDJkYTZhNmEwY2MzNjg5NmZmMjkzNzQ0NmNhNTcwLi4zZTg3NWQx
YzVmYmRmM2FkYmQ5ZGE5ZTU5MDViZDE4Njc4ODViMDUwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtNTY5LDEzICs1Njks
NiBAQCB1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRp
b25zKCkgY29uc3QKICAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om51bWJlck9m
QWN0aXZlQW5pbWF0aW9ucyhmcmFtZSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdAotewotICAgIFFXZWJGcmFtZSogZnJhbWUgPSBtX2Ry
dC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICBRX0FTU0VSVChmcmFtZSk7Ci0gICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlc3VtZUFuaW1hdGlvbnMoZnJhbWUpOwotfQotCiB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpkaXNhYmxlSW1hZ2VMb2FkaW5nKCkKIHsKICAgICBtX2Ry
dC0+d2ViUGFnZSgpLT5zZXR0aW5ncygpLT5zZXRBdHRyaWJ1dGUoUVdlYlNldHRpbmdzOjpBdXRv
TG9hZEltYWdlcywgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDU2YTg4MTk3NWE1MzdlYmJiYWIzNjZlNjhiY2YyZjM5
YjUzYzA4MTUuLjI0YWIwOTdkMTE2OTIzN2I5M2FkNDc5ZjRiZjI1NGFlOGM1NGU4ZmQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAg
LTE4Nyw3ICsxODcsNiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgYm9vbCBlbGVtZW50RG9lc0F1dG9D
b21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoY29uc3QgUVN0cmluZyYgZWxlbWVudElkKTsKIAogICAg
IHVuc2lnbmVkIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0OwotICAgIHZvaWQgcmVz
dW1lQW5pbWF0aW9ucygpIGNvbnN0OwogCiAgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeShjb25zdCBRU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFFTdHJpbmcmIGRlc3Rp
bmF0aW9uUHJvdG9jb2wsIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeShjb25zdCBRU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFFTdHJpbmcmIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCA2N2JjNGE3MTFiY2Q5YTdj
Njk3NDEwODliYWIwZjdiMGM4ODU0ZjY5Li5mYjIzN2IxMTU3NmJhZWI3NmJmYjVhMmZhYjk1NDZj
ODBjMjRjMTgwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVz
dENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRU
ZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTExMjIsMTUgKzExMjIsNiBAQCB1bnNpZ25lZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKICAgICBy
ZXR1cm4gbnVtYmVyOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXN1bWVBbmlt
YXRpb25zKCkgY29uc3QKLXsKLSAgICBDT01QdHI8SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2
YXRlKFF1ZXJ5LCBmcmFtZSk7Ci0gICAgaWYgKCFmcmFtZVByaXZhdGUpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGZyYW1lUHJpdmF0ZS0+cmVzdW1lQW5pbWF0aW9ucygpOwotfQotCiBzdGF0aWMg
X2JzdHJfdCBic3RyVChKU1N0cmluZ1JlZiBqc1N0cmluZykKIHsKICAgICAvLyBUaGUgZmFsc2Ug
cGFyYW1ldGVyIHRlbGxzIHRoZSBfYnN0cl90IGNvbnN0cnVjdG9yIHRvIGFkb3B0IHRoZSBCU1RS
IHdlIHBhc3MgaXQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRU
ZXN0Q29udHJvbGxlcld4LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RD
b250cm9sbGVyV3guY3BwCmluZGV4IDBhYjg4NWRkMmU3ZDBmODdmYTBjZjc5MGU4MjgyZWQwZGY4
YmZmYjMuLjIxMzllN2MwMTY4NjRjYTRmNTE2OGViMzlhMDc0NjEzMGRlNmUyYjggMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCkBA
IC0zMTMsMTEgKzMxMyw2IEBAIHVuc2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJP
ZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkgY29uc3QKLXsKLSAgICAvLyBGSVhN
RTogaW1wbGVtZW50Ci19Ci0KIHVuc2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjp3b3JrZXJU
aHJlYWRDb3VudCgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVudApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU1
Y2RhNTFlMTgwYTM5NTE3M2Y0NTdlYmI0MThkZGJkMmU5M2Y5NDcuLjQ0YWY4MWE0NWViYTVhZjk0
ZjZmYTZmNGY0NDk0MTk0NGQyNmU3ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wNS0x
MCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIE1v
dmUgcmVzdW1lQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwNjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsIHJlc3VtZUFuaW1hdGlv
bnMgZnVuY3Rpb25zIGZyb20gaW50ZXJuYWxzLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBp
biB0aGUKKyAgICAgICAgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxzIGludGVy
ZmFjZS4KKworICAgICAgICAqIGFuaW1hdGlvbnMvcGxheS1zdGF0ZS1zdXNwZW5kLmh0bWw6Cisg
ICAgICAgICogYW5pbWF0aW9ucy9zdG9wLWFuaW1hdGlvbi1vbi1zdXNwZW5kLmh0bWw6CisgICAg
ICAgICogYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24tZXZlbnRzLmh0bWw6Cisg
ICAgICAgICogYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24uaHRtbDoKKwogMjAx
Mi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3BsYXktc3RhdGUtc3VzcGVuZC5odG1s
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9wbGF5LXN0YXRlLXN1c3BlbmQuaHRtbAppbmRleCBj
MDk0OTkzODE1ZDUwMjNhZmM3ZDZmZjQ4NmE5MzQ2ZjU2NWMxMjM1Li5lMjVmOTFmNDIzMjBiYzZi
Zjg1YTc2OWU4YjEzZjNiNTZlN2FmMzUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRp
b25zL3BsYXktc3RhdGUtc3VzcGVuZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
cGxheS1zdGF0ZS1zdXNwZW5kLmh0bWwKQEAgLTY4LDggKzY4LDggQEAKIAogICAgIGZ1bmN0aW9u
IHJlc3VtZSgpCiAgICAgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucmVzdW1lQW5pbWF0aW9ucygpOwor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5yZXN1
bWVBbmltYXRpb25zKGRvY3VtZW50KTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBzZXRUaW1lcnMo
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdG9wLWFuaW1hdGlvbi1vbi1z
dXNwZW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N0b3AtYW5pbWF0aW9uLW9uLXN1
c3BlbmQuaHRtbAppbmRleCAwMDRhMmUzOTdkZTc4YTRhMThlZTNkZmVmNzkzYmFkNjVmNDk0YzJi
Li40NzhjZGI0ZjRlMzg4ZjM2YjAxZmVjNTExNmQ4YzY2OTVhOTg2NDBkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL3N0b3AtYW5pbWF0aW9uLW9uLXN1c3BlbmQuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N0b3AtYW5pbWF0aW9uLW9uLXN1c3BlbmQuaHRtbApA
QCAtNDYsOCArNDYsOCBAQAogICAgIAogICAgIGZ1bmN0aW9uIHJlc3VtZSgpCiAgICAgewotICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIucmVzdW1lQW5pbWF0aW9ucygpOworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5yZXN1bWVBbmltYXRpb25zKGRvY3VtZW50
KTsKICAgICB9CiAgICAgCiAgICAgZnVuY3Rpb24gc2V0VGltZXJzKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLWV2ZW50cy5odG1s
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24tZXZlbnRz
Lmh0bWwKaW5kZXggZmE5ZjAwYjcyMWIyODczZjYzZDY0ZDUwY2NkZmU5NzA3MmZiNDZlMy4uYzFh
YmU1NmY1NzRkYjAyYzhiOWVhOWFhOWRkOTM2MWQwOGVhYWY5MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24tZXZlbnRzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24tZXZlbnRz
Lmh0bWwKQEAgLTM2LDggKzM2LDggQEAKICAgICAKICAgICBmdW5jdGlvbiByZXN1bWUoKQogICAg
IHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnJlc3VtZUFuaW1hdGlvbnMoKTsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMucmVzdW1lQW5pbWF0aW9ucyhk
b2N1bWVudCk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFuaW1hdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmltYXRpb24uaHRtbApp
bmRleCBhZDY2MjJkZTBiYTExMjEyM2UyZWI3NGRjMzQwYTU2YTFiZGYzMThhLi41NmNhOTYwODA1
NTFhMGI0ODg2Yzc4ZGM0NGI0ZTVmNWZiN2Y3MjBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFuaW1hdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLmh0bWwKQEAgLTM1LDggKzM1LDgg
QEAKICAgICAKICAgICBmdW5jdGlvbiByZXN1bWUoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LnJlc3VtZUFuaW1hdGlvbnMoKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICBpbnRlcm5hbHMucmVzdW1lQW5pbWF0aW9ucyhkb2N1bWVudCk7CiAgICAgfQogICAg
IAogICAgIGZ1bmN0aW9uIHNldFRpbWVycygpCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFu
Z2VMb2cKaW5kZXggNmJhYjg5ZTk1NWMzNDczODkxMDgyMDUwMzlkNmNjYmM5MWFhNjQwMi4uNWMw
NzRiNjVjODk3YzA3OTU1NjE2MzY2NTU5NWU5NmMxODRiYjQ4OSAxMDA2NDQKLS0tIGEvQ2hhbmdl
TG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA1LTEwICBHeXV5b3Vu
ZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSByZXN1bWVB
bmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA2MworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcjogQWRkIGEgc3ltYm9sIGZpbHRlciBmb3IgcmVzdW1lQW5pbWF0aW9ucy4gCisKIDIwMTIt
MDUtMDkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENhbGVu
ZGFyIFBpY2tlcjogRml4IGEgY3Jhc2ggYnkgY2hhbmdpbmcgaW5wdXQgdHlwZS4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141128</attachid>
            <date>2012-05-10 03:21:05 -0700</date>
            <delta_ts>2012-05-10 22:30:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86063-20120510192104.patch</filename>
            <type>text/plain</type>
            <size>40261</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2NjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhmMTU3NGQ3Yjk2OGQx
MDg2OGU1MjEwOTkwYWFlZDFmNWRmZDU5Ny4uNjJiYTc5MDYyMWU1NzBlZjNhYWU1Mjk4ZDU3MTZh
MWQxNzAyMmZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA1LTEwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSByZXN1
bWVBbmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjA2MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCByZXN1bWVBbmltYXRpb25zIGZ1bmN0
aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlCisgICAgICAgIGNyb3NzLXBv
cnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBzaW5jZSB3ZSBhcmUgaW1wcm92aW5nIGhlcmUgdGhlIGluZnJhLXN0cnVjdHVyZSBm
b3IgdGVzdGluZworICAgICAgICBhIHNwZWNpZmljIG1ldGhvZC4KKworICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzdW1lQW5p
bWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMTItMDUtMTAgIEtpbnVrbyBZYXN1ZGEgIDxraW51a29AY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIENoYW5nZSB0aGUgcmV0dXJuIHR5cGUgb2YgRW50cnkudG9VUkwoKSBiYWNrIHRv
IFN0cmluZyBmcm9tIEtVUkwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCA0NjNkM2Q3YTk3OGVkZjcxZmRk
Y2U5YTU1MTBhNGQ3OWFlODYzNDA1Li4zMjdlYTk5OWYwYTY2YWQ4NjliODFmN2VlYTBhZTgwNTFk
N2U5YTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMTAgIEd5
dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHJl
c3VtZUFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHJlc3VtZUFuaW1hdGlvbnMg
ZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCisgICAgICAgIGNy
b3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwOgorICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oOgorCiAyMDEyLTA1LTA5
ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgTW92
ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwppbmRleCA3NWMyNDkwMDhkODA2YmRhNGU5OGIzMjlmZWQxMmJiNTE3OGFiZDQzLi5mMTQ4
ODU1YWJmYTE4ODQ0YTQ1MDdkMGMwNzNiMzM4Njk1YzMyZTc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDUtMTAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBz
YW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHJlc3VtZUFuaW1hdGlvbnMgdG8gdXNlIEludGVy
bmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg2MDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZlIHJlc3VtZUFuaW1hdGlvbnMgZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFi
bGUgdG8gd29yayBpbiB0aGUgCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIElu
dGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKKwog
MjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2Uu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggMThmYWQ4YTJhMDE1MDYzODI5NGYxNTM1MDRlYjU5Y2FmYmEy
MGM4My4uZjhjOTA2OGE2ZDZjOGRmOTUzM2NiNTlmZTgwYjdlODAxODAxOGFhYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA1LTEwICBHeXV5b3VuZyBLaW0gIDxneXV5
b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgTW92ZSByZXN1bWVBbmltYXRpb25zIHRv
IHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NjA2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbW92ZSByZXN1bWVBbmltYXRpb25zIGZ1bmN0aW9ucywgYmVjYXVz
ZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhlIAorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJv
dWdoIHRoZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgorCisgICAgICAgICogV2ViS2l0Lm9yZGVyOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICogV2ViVmlldy9XZWJGcmFt
ZVByaXZhdGUuaDoKKwogMjAxMi0wNS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVy
bmFscyBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGJkNjMwNjc1MGEyZDZkMzkyZmU5ZWY0
YmE0YzQ3MWIyNmIwNGE1MWUuLmRhZjFhOTc2MWNiMDRhY2Y1ZmQ1MmI1NmY2ZDA0ZDUxN2NjN2I5
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDUtMTAgIEd5dXlvdW5n
IEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHJlc3VtZUFu
aW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHJlc3VtZUFuaW1hdGlvbnMgZnVuY3Rp
b25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8gd29yayBpbiB0aGUgCisgICAgICAgIGNyb3NzLXBv
cnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKwogMjAxMi0wNS0wOSAgR3l1eW91
bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIE1vdmUgc3VzcGVu
ZEFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5k
ZXggYTA1OWVkNmM4NGYyNzNmYmRkZGJjMGI2ZjgzN2YyOGUxMTg5ZWYxOC4uNDQ5MDQzZTg4MDM2
OGU0N2Q4N2FhYzg0ZTM2NDMyMzY0MmNmZGMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA1LTEwICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5j
b20+CisKKyAgICAgICAgTW92ZSByZXN1bWVBbmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50
ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjA2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSByZXN1bWVBbmltYXRpb25zIGZ1bmN0aW9ucywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdv
cmsgaW4gdGhlIAorICAgICAgICBjcm9zcy1wb3J0IHdheSB0aHJvdWdoIHRoZSBJbnRlcm5hbHMg
aW50ZXJmYWNlLgorCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbDoK
KyAgICAgICAgKiBXZWJGcmFtZS5jcHA6CisgICAgICAgICogV2ViRnJhbWUuaDoKKwogMjAxMi0w
NS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAg
IE1vdmUgc3VzcGVuZEFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggNDJhYzA0MmFjOTg2MWJhMDM3ZGY4YjQ4MmRiYzM3MDI5ZTBjNmQyOS4uM2E2ZjIy
OTk2ZjE3OGZhNWU4ZjRjZDU3ODQ2MjgwMTFkMWVkZjEyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDEyLTA1LTEwICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5j
b20+CisKKyAgICAgICAgTW92ZSByZXN1bWVBbmltYXRpb25zIHRvIHVzZSBJbnRlcm5hbHMgaW50
ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjA2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d2luL1dlYktpdDIuZGVmOiBBZGQgYSBzeW1ib2wgZmlsdGVyIGZvciByZXN1bWVBbmltYXRpb25z
LgorCiAyMDEyLTA1LTA5ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+
CiAKICAgICAgICAgTW92ZSBzdXNwZW5kQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGludGVy
ZmFjZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA3NzQyMDMyNTVjMGM5
YzdkYmIzYmMyYWM2Y2EwZjkzMzRlYmY5YzIxLi5mZDZkNzU5MDRmNmNkNDMyMTk4YjYwODA2MmQy
ZmMxMTFkMGRjODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xMDIy
LDYgKzEwMjIsMjEgQEAgdm9pZCBJbnRlcm5hbHM6OnN1c3BlbmRBbmltYXRpb25zKERvY3VtZW50
KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiAgICAgY29udHJvbGxlci0+c3Vz
cGVuZEFuaW1hdGlvbnMoKTsKIH0KIAordm9pZCBJbnRlcm5hbHM6OnJlc3VtZUFuaW1hdGlvbnMo
RG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKK3sKKyAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIEFuaW1hdGlvbkNvbnRy
b2xsZXIqIGNvbnRyb2xsZXIgPSBkb2N1bWVudC0+ZnJhbWUoKS0+YW5pbWF0aW9uKCk7CisgICAg
aWYgKCFjb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250cm9sbGVyLT5yZXN1
bWVBbmltYXRpb25zKCk7Cit9CisKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIHZvaWQg
SW50ZXJuYWxzOjp3ZWJraXRXaWxsRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChEb2N1bWVudCog
ZG9jdW1lbnQsIEVsZW1lbnQqIGVsZW1lbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAppbmRleCBlMDdmNGJjNTJkZTViODljNmQxNGQ0OWJhOThhNzgyMmFjNWU1NDc5Li5iYWVmYmE2
MzkzYTYyMGM5MDQyZTIzYmRhNmQzMGNhYzM5ZjYzYTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKQEAgLTE2NCw2ICsxNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZXR3b3Jr
SW5mb3JtYXRpb24oRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIGV2ZW50VHlwZSwgbG9uZyBiYW5k
d2lkdGgsIGJvb2wgbWV0ZXJlZCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzdXNwZW5k
QW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICB2b2lkIHJl
c3VtZUFuaW1hdGlvbnMoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIHVuc2lnbmVkIG51bWJlck9mTGl2ZU5vZGVzKCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMzQ3NjU3MWFiMjRlNGFlOTU2
MjNlODA5NGRjOGFkMGY1MTI5MjFjOC4uMWZhNmZhZTM3M2ZiMDRkODgzMzM1MGIzOWNmZmVjYzYz
NThlZGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMTMzLDYgKzEz
Myw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJu
YWxTZXR0aW5ncyBzZXR0aW5nczsKIAogICAgICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25zKGlu
IERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQg
cmVzdW1lQW5pbWF0aW9ucyhpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRp
b24pOwogCiAjaWYgZGVmaW5lZChFTkFCTEVfQkFUVEVSWV9TVEFUVVMpICYmIEVOQUJMRV9CQVRU
RVJZX1NUQVRVUwogICAgICAgICB2b2lkIHNldEJhdHRlcnlTdGF0dXMoaW4gRG9jdW1lbnQgZG9j
dW1lbnQsIGluIERPTVN0cmluZyBldmVudFR5cGUsIGluIGJvb2xlYW4gY2hhcmdpbmcsIGluIGRv
dWJsZSBjaGFyZ2luZ1RpbWUsIGluIGRvdWJsZSBkaXNjaGFyZ2luZ1RpbWUsIGluIGRvdWJsZSBs
ZXZlbCkgcmFpc2VzIChET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5k
ZXggZDVhNjZhZTEwZmFlNDVlMjJiMDFmOTg0MGVhNDBkNjUwNWM1NjU5Yy4uMjRmN2NmYTM0N2Zi
ODBjMzM1OGNmMzFkZTk4YTEzOTE2ZmFkZTdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3Bw
CkBAIC0yNzgsMTggKzI3OCw2IEBAIFN0cmluZyBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnJl
c3BvbnNlTWltZVR5cGUoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgIHJldHVybiBk
b2N1bWVudExvYWRlci0+cmVzcG9uc2VNSU1FVHlwZSgpOwogfQogCi12b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6cmVzdW1lQW5pbWF0aW9ucyhFdmFzX09iamVjdCogZXdrRnJhbWUpCi17
Ci0gICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6Y29yZUZyYW1lKGV3a0Zy
YW1lKTsKLQotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXIgKmFuaW1hdGlvbkNvbnRyb2xsZXIgPSBmcmFtZS0+YW5pbWF0
aW9uKCk7Ci0gICAgaWYgKGFuaW1hdGlvbkNvbnRyb2xsZXIpCi0gICAgICAgIGFuaW1hdGlvbkNv
bnRyb2xsZXItPnJlc3VtZUFuaW1hdGlvbnMoKTsKLX0KLQogV2ViQ29yZTo6SW50UmVjdCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNlbGVjdGlvblJlY3RhbmdsZShjb25zdCBFdmFzX09iamVj
dCogZXdrRnJhbWUpCiB7CiAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRVdLUHJpdmF0ZTo6
Y29yZUZyYW1lKGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggZjM0MjBlMDIz
YTE5YTMzNmFjMWM0NDY1ZDE3NDk4N2VmNjg2NTQ3OS4uMTQ3ZWM5MDYzY2NmNGVhOTRjNDBhZmY4
ZDIxYjdmZWNiOGI0NDdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTYyLDcgKzYyLDYg
QEAgcHVibGljOgogICAgIHN0YXRpYyB1bnNpZ25lZCBwZW5kaW5nVW5sb2FkRXZlbnRDb3VudChj
b25zdCBFdmFzX09iamVjdCogZXdrRnJhbWUpOwogICAgIHN0YXRpYyBTdHJpbmcgcmVuZGVyVHJl
ZUR1bXAoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKICAgICBzdGF0aWMgU3RyaW5nIHJlc3BvbnNl
TWltZVR5cGUoY29uc3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKLSAgICBzdGF0aWMgdm9pZCBy
ZXN1bWVBbmltYXRpb25zKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAgICAgc3RhdGljIFdlYkNv
cmU6OkludFJlY3Qgc2VsZWN0aW9uUmVjdGFuZ2xlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSk7CiAgICAgc3RhdGljIFN0cmluZyBzdWl0YWJsZURSVEZyYW1lTmFtZShjb25zdCBFdmFzX09i
amVjdCogZXdrRnJhbWUpOwogICAgIHN0YXRpYyB2b2lkIHNldFZhbHVlRm9yVXNlcihKU0NvbnRl
eHRSZWYsIEpTVmFsdWVSZWYgbm9kZU9iamVjdCwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA1ZWI1ZTRmNzE2YmQ1YzAxZmMxNTNiZmQ2NDYxNTU5
YTEwOGZkZGVlLi4wMzgyN2I0YjcxOTQ5ZDY1Yzk4YjQ1MjhlNjg2NmRlNmYwN2IwYTRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTM2MywxNSArMzYzLDYgQEAgdW5zaWduZWQgaW50
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKFdlYktp
dFdlYkZyYW1lKgogICAgIHJldHVybiBjb3JlRnJhbWUtPmFuaW1hdGlvbigpLT5udW1iZXJPZkFj
dGl2ZUFuaW1hdGlvbnMoY29yZUZyYW1lLT5kb2N1bWVudCgpKTsKIH0KIAotdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnJlc3VtZUFuaW1hdGlvbnMoV2ViS2l0V2ViRnJhbWUqIGZyYW1l
KQotewotICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKLSAgICBpZiAoIWNvcmVG
cmFtZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcmV0dXJuIGNvcmVGcmFtZS0+YW5pbWF0aW9u
KCktPnJlc3VtZUFuaW1hdGlvbnMoKTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OmNsZWFyTWFpbkZyYW1lTmFtZShXZWJLaXRXZWJGcmFtZSogZnJhbWUpCiB7CiAgICAgZ19y
ZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0ZSQU1FKGZyYW1lKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
aCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oCmluZGV4IDIwZDgzN2VhMWUzZjdmZjA2NjI0MTU1NGZkYmM4OWMxNTJlM2M2NzUuLmEw
ZmQxYTU2N2RkY2M5MjE3YTg1NGE1OTc0NTJmYWM3MGZjZDNmN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oCkBAIC03Miw3ICs3Miw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBwYXVzZVRy
YW5zaXRpb24oV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBuYW1lLCBkb3VibGUgdGltZSwg
Y29uc3QgY2hhciogZWxlbWVudCk7CiAgICAgc3RhdGljIFdURjo6Q1N0cmluZyBtYXJrZXJUZXh0
Rm9yTGlzdEl0ZW0oV2ViS2l0V2ViRnJhbWUqLCBKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYgbm9k
ZU9iamVjdCk7CiAgICAgc3RhdGljIHVuc2lnbmVkIGludCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlv
bnMoV2ViS2l0V2ViRnJhbWUqKTsKLSAgICBzdGF0aWMgdm9pZCByZXN1bWVBbmltYXRpb25zKFdl
YktpdFdlYkZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgY2xlYXJNYWluRnJhbWVOYW1lKFdlYktp
dFdlYkZyYW1lKik7CiAgICAgc3RhdGljIEF0a09iamVjdCogZ2V0Rm9jdXNlZEFjY2Vzc2libGVF
bGVtZW50KFdlYktpdFdlYkZyYW1lKik7CiAgICAgc3RhdGljIEF0a09iamVjdCogZ2V0Um9vdEFj
Y2Vzc2libGVFbGVtZW50KFdlYktpdFdlYkZyYW1lKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJLaXQub3JkZXIgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKaW5k
ZXggMjFkOTZkODI0MDk1NDhlOTczYTk3NmJiOWE1NzIwNTRkNjc0Yzg2Ny4uMWExZWIwYzcyYjMw
YTk5MDk4MGRmMTU5NzFlMmZiZTllN2MwZWZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViS2l0Lm9yZGVyCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlcgpAQCAt
MTIyMSw3ICsxMjIxLDYgQEAgX1dLRXhlY3V0YWJsZVdhc0xpbmtlZE9uT3JCZWZvcmVTbm93TGVv
cGFyZAogX19aTks3V2ViQ29yZTEyQ2hyb21lQ2xpZW50MjlkaXNwYXRjaFZpZXdwb3J0RGF0YURp
ZENoYW5nZUVSS05TXzE3Vmlld3BvcnRBcmd1bWVudHNFCiAtW1dlYlZpZXcoV2ViUHJpdmF0ZSkg
c2V0RnJhbWVTaXplOl0KIC1bV2ViRnJhbWUoV2ViS2l0RGVidWcpIHJlbmRlclRyZWVBc0V4dGVy
bmFsUmVwcmVzZW50YXRpb25Gb3JQcmludGluZzpdCi0tW1dlYkZyYW1lKFdlYlByaXZhdGUpIF9y
ZXN1bWVBbmltYXRpb25zXQogK1tXZWJWaWV3KFdlYlByaXZhdGUpIF9wb2ludGluZ0hhbmRDdXJz
b3JdCiBfV0tHZXRDRlVSTFJlc3BvbnNlVVJMCiBfV0tHZXRDRlVSTFJlc3BvbnNlSFRUUFJlc3Bv
bnNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBhZDQzNjQzN2RhYzI0
YzNlOWEwN2FhNWJiN2MyYjU5NGEwYTZhYjk5Li40MTZiZDdkZmU3OGJmM2RjYTYzZGI5OGVmYzQ3
OWJiZDZkYjg2YzJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk5
OCwxNSArOTk4LDYgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgcmV0dXJuIGNvbnRyb2xsZXItPm51bWJlck9mQWN0
aXZlQW5pbWF0aW9ucyhmcmFtZS0+ZG9jdW1lbnQoKSk7CiB9CiAKLS0gKHZvaWQpIF9yZXN1bWVB
bmltYXRpb25zCi17Ci0gICAgRnJhbWUqIGZyYW1lID0gY29yZShzZWxmKTsKLSAgICBpZiAoIWZy
YW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmcmFtZS0+YW5pbWF0aW9uKCktPnJlc3VtZUFu
aW1hdGlvbnMoKTsKLX0KLQogLSAodm9pZClfcmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudDoo
RE9NRG9jdW1lbnRGcmFnbWVudCAqKWZyYWdtZW50IHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNl
bGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFjZTooQk9PTClzbWFydFJlcGxhY2UgbWF0Y2hTdHls
ZTooQk9PTCltYXRjaFN0eWxlCiB7CiAgICAgaWYgKF9wcml2YXRlLT5jb3JlRnJhbWUtPnNlbGVj
dGlvbigpLT5pc05vbmUoKSB8fCAhZnJhZ21lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZVByaXZhdGUuaAppbmRleCA0YjdjNzU5MDRjNzczOTZmOGFkNWMxODNjMTM3NDcw
NzE5MWUyM2RhLi45ZGVhN2UxYjRmOWNkZDhhYTNiZmQ5MDI2NzY4ZTk1M2ZjMGNmYjc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQcml2YXRlLmgKQEAgLTEwNyw5ICsx
MDcsNiBAQCB0eXBlZGVmIGVudW0gewogLy8gUmV0dXJucyB0aGUgdG90YWwgbnVtYmVyIG9mIGN1
cnJlbnRseSBydW5uaW5nIGFuaW1hdGlvbnMgKGluY2x1ZGVzIGJvdGggQ1NTIHRyYW5zaXRpb25z
IGFuZCBDU1MgYW5pbWF0aW9ucykuCiAtICh1bnNpZ25lZClfbnVtYmVyT2ZBY3RpdmVBbmltYXRp
b25zOwogCi0vLyBTdXNwZW5kIGFuZCByZXN1bWUgYW5pbWF0aW9ucyAoaW5jbHVkZXMgYm90aCBD
U1MgdHJhbnNpdGlvbnMgYW5kIENTUyBhbmltYXRpb25zKS4KLS0gKHZvaWQpX3Jlc3VtZUFuaW1h
dGlvbnM7Ci0KIC0gKHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQ6KERPTURvY3Vt
ZW50RnJhZ21lbnQgKilmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBs
YWNlbWVudCBzbWFydFJlcGxhY2U6KEJPT0wpc21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6KEJPT0wp
bWF0Y2hTdHlsZTsKIC0gKHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dDooTlNTdHJpbmcg
Kil0ZXh0IHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVw
bGFjZTooQk9PTClzbWFydFJlcGxhY2U7CiAtICh2b2lkKV9yZXBsYWNlU2VsZWN0aW9uV2l0aE1h
cmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHJpbmcgYmFzZVVSTFN0cmluZzooTlNTdHJp
bmcgKiliYXNlVVJMU3RyaW5nIHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVjdFJlcGxhY2Vt
ZW50IHNtYXJ0UmVwbGFjZTooQk9PTClzbWFydFJlcGxhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CmluZGV4IDQ0NWU2ODQ4OGJhODNhOWU5MmJjOWY2ZDhhNzY1NzVhOTFmMzdhZmEuLjJkNGZiNTA1
N2QyZGFiNWYzMDQ5OTljNjIxZDIxYWJiMDNhZTcwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
CkBAIC0zODQsMTkgKzM4NCw2IEBAIGludCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6bnVtYmVy
T2ZBY3RpdmVBbmltYXRpb25zKFFXZWJGcmFtZSAqZnJhbWUpCiAgICAgcmV0dXJuIGNvbnRyb2xs
ZXItPm51bWJlck9mQWN0aXZlQW5pbWF0aW9ucyhjb3JlRnJhbWUtPmRvY3VtZW50KCkpOwogfQog
Ci12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpyZXN1bWVBbmltYXRpb25zKFFXZWJGcmFt
ZSAqZnJhbWUpCi17Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IFFXZWJGcmFtZVByaXZhdGU6OmNv
cmUoZnJhbWUpOwotICAgIGlmICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBB
bmltYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gY29yZUZyYW1lLT5hbmltYXRpb24oKTsK
LSAgICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGNvbnRyb2xsZXIt
PnJlc3VtZUFuaW1hdGlvbnMoKTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
Y2xlYXJGcmFtZU5hbWUoUVdlYkZyYW1lKiBmcmFtZSkKIHsKICAgICBGcmFtZSogY29yZUZyYW1l
ID0gUVdlYkZyYW1lUHJpdmF0ZTo6Y29yZShmcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXgg
ZDg1YTMzNmM5NjM2NDE4ZGRkMjQ4OTk2ZWE2NTM5N2UyODY5MmQ0Ni4uMzczZjYwZTcwY2Q4YTc3
NTBhZTI4M2U0NTI4MDE3YTU4OTg1OGQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTQxLDcg
KzE0MSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjbGVhckZyYW1lTmFtZShRV2ViRnJh
bWUqIGZyYW1lKTsKICAgICBzdGF0aWMgdm9pZCBvdmVyd3JpdGVQbHVnaW5EaXJlY3Rvcmllcygp
OwogICAgIHN0YXRpYyBpbnQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKFFXZWJGcmFtZSopOwot
ICAgIHN0YXRpYyB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoUVdlYkZyYW1lKik7CiAgICAgc3RhdGlj
IGludCBudW1iZXJPZlBhZ2VzKFFXZWJGcmFtZSogZnJhbWUsIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQpOwogICAgIHN0YXRpYyBpbnQgcGFnZU51bWJlckZvckVsZW1lbnRCeUlkKFFXZWJGcmFt
ZSogZnJhbWUsIGNvbnN0IFFTdHJpbmcmIGlkLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KTsK
ICAgICBzdGF0aWMgYm9vbCBoYXNEb2N1bWVudEVsZW1lbnQoUVdlYkZyYW1lKiBmcmFtZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUu
aWRsIGIvU291cmNlL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViRnJhbWVQcml2YXRlLmlkbApp
bmRleCBiY2E2NWU0MjUzZTBkYmI5ZDFlN2Q1OTQyYjc4MGU1NjBlY2IyZDM3Li5kZWExMTIzYjBl
Njk5NWZlNjg5ZGQ4YTY3MmVhMjBlMDk2NTdmMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJGcmFtZVByaXZhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL0ludGVyZmFjZXMvSVdlYkZyYW1lUHJpdmF0ZS5pZGwKQEAgLTExMCw4ICsxMTAsNiBAQCBp
bnRlcmZhY2UgSVdlYkZyYW1lUHJpdmF0ZSA6IElVbmtub3duCiAKICAgICBIUkVTVUxUIHJlbmRl
clRyZWVBc0V4dGVybmFsUmVwcmVzZW50YXRpb24oW2luXSBCT09MIGZvclByaW50aW5nLCBbb3V0
LCByZXR2YWxdIEJTVFIqIHJlc3VsdCk7CiAKLSAgICBIUkVTVUxUIHJlc3VtZUFuaW1hdGlvbnMo
KTsKLQogICAgIEhSRVNVTFQgbG9hZFBsYWluVGV4dFN0cmluZyhbaW5dIEJTVFIgc3RyaW5nLCBb
aW5dIEJTVFIgdXJsKTsKIAogICAgIEhSRVNVTFQgY2xlYXJPcGVuZXIoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZy
YW1lLmNwcAppbmRleCBjMGVhNTMzMTMyYzY4YTAzMDJmZWZjNDRkMGQwMDJmZDUwYzA1ZDU1Li4z
YTM3MTViM2JlY2E0NmZlMGU3MjZmNDE1OTUwZjYwNzFjYzFmNWIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJh
bWUuY3BwCkBAIC0xMzExLDE2ICsxMzExLDYgQEAgSFJFU1VMVCBXZWJGcmFtZTo6bnVtYmVyT2ZB
Y3RpdmVBbmltYXRpb25zKFVJTlQqIG51bWJlcikKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJF
U1VMVCBXZWJGcmFtZTo6cmVzdW1lQW5pbWF0aW9ucygpCi17Ci0gICAgRnJhbWUqIGZyYW1lID0g
Y29yZSh0aGlzKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gRV9GQUlMOwotCi0g
ICAgZnJhbWUtPmFuaW1hdGlvbigpLT5yZXN1bWVBbmltYXRpb25zKCk7Ci0gICAgcmV0dXJuIFNf
T0s7Ci19Ci0KIEhSRVNVTFQgV2ViRnJhbWU6OmlzRGlzcGxheWluZ1N0YW5kYWxvbmVJbWFnZShC
T09MKiByZXN1bHQpCiB7CiAgICAgaWYgKCFyZXN1bHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViRnJhbWUuaAppbmRleCBm
YWUyYWMzNjAwZDdmNmQ2MWYzM2VhZWU2NTAwNzBhYWEzNDlkZDI2Li5iNjM0MzhiNTA0OWMzOGJk
NDdmMjcwNWVkYWY4MTZiODU5YThkNjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkZyYW1lLmgKQEAgLTI2MCw3ICsy
NjAsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHBh
dXNlQW5pbWF0aW9uKEJTVFIgYW5pbWF0aW9uTmFtZSwgSURPTU5vZGUqLCBkb3VibGUgc2Vjb25k
c0Zyb21Ob3csIEJPT0wqIGFuaW1hdGlvbldhc1J1bm5pbmcpOwogICAgIHZpcnR1YWwgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBwYXVzZVRyYW5zaXRpb24oQlNUUiBwcm9wZXJ0eU5hbWUsIElE
T01Ob2RlKiwgZG91YmxlIHNlY29uZHNGcm9tTm93LCBCT09MKiB0cmFuc2l0aW9uV2FzUnVubmlu
Zyk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIG51bWJlck9mQWN0aXZl
QW5pbWF0aW9ucyhVSU5UKik7Ci0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHJlc3VtZUFuaW1hdGlvbnMoKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgbG9hZFBsYWluVGV4dFN0cmluZyhCU1RSIHN0cmluZywgQlNUUiB1cmwpOwogCiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGlzRGlzcGxheWluZ1N0YW5kYWxvbmVJbWFn
ZShCT09MKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggNmUxYzUyYzY1ZjhjNjJhYmU1OGIy
ZWJmYjhmMGNhMmY5ZTE3YWI0ZS4uYTAzZmI4MDdlOTkxODUwM2YxMGZmOTRmNjc2ZGQzZmI3YjJm
OWM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMjU2LDMgKzI1Niw0IEBAIEVYUE9SVFMK
ICAgICAgICAgP3dlYmtpdERpZEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1bWVudEBXZWJD
b3JlQEBRQUVYUEFWRWxlbWVudEAyQEBaCiAgICAgICAgID9pc1BhZ2VCb3hWaXNpYmxlQERvY3Vt
ZW50QFdlYkNvcmVAQFFBRV9OSEBaCiAgICAgICAgID9zdXNwZW5kQW5pbWF0aW9uc0BBbmltYXRp
b25Db250cm9sbGVyQFdlYkNvcmVAQFFBRVhYWgorICAgICAgICA/cmVzdW1lQW5pbWF0aW9uc0BB
bmltYXRpb25Db250cm9sbGVyQFdlYkNvcmVAQFFBRVhYWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
aW5kZXggNDU0OGFlMGVjNDNkNGE0OTljN2E1YzM4NWQzMjA4NzM1YzI5M2VmMS4uYmQ5MTAyZDc3
NzlkMDIzOTk3M2Q2MjNmNjE5OTBiNWRjMWM2MjRmMSAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CkBAIC0xMDgsNiArMTA4LDcgQEAgX1pOSzdXZWJDb3JlOVRyZWVTY29wZTE0Z2V0RWxlbWVudEJ5
SWRFUktOM1dURjEyQXRvbWljU3RyaW5nRTsKIF9aTks3V2ViQ29yZTE0RG9jdW1lbnRNYXJrZXIx
MWRlc2NyaXB0aW9uRXY7CiBfWk43V2ViQ29yZThEb2N1bWVudDE2aXNQYWdlQm94VmlzaWJsZUVp
OwogX1pON1dlYkNvcmUxOUFuaW1hdGlvbkNvbnRyb2xsZXIxN3N1c3BlbmRBbmltYXRpb25zRXY7
CitfWk43V2ViQ29yZTE5QW5pbWF0aW9uQ29udHJvbGxlcjE2cmVzdW1lQW5pbWF0aW9uc0V2Owog
X1pOSzdXZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMTJnZXRIaWdobGlnaHRFUE5TXzlIaWdo
bGlnaHRFOwogX1pON1dlYkNvcmUyNEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjI2aW5zdHJ1bWVu
dGluZ0FnZW50c0ZvclBhZ2VFUE5TXzRQYWdlRTsKIF9aTjdXZWJDb3JlMjRJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24xN3NfZnJvbnRlbmRDb3VudGVyRTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5YjM5ODBkNzZiN2E0NGIwY2Y4MTEwNDQ3YTY3
NjUwYTljNjU2ZTFmLi43YWM0M2ZkZmQ2ODlmZjczNDg3NWRhMDZjZTM1MzM0YzBhMGIyZDVhIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzUgQEAKKzIwMTItMDUtMTAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5n
LmNvbT4KKworICAgICAgICBNb3ZlIHJlc3VtZUFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBp
bnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg2MDYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVtb3ZlIHJlc3VtZUFuaW1hdGlvbnMgZnVuY3Rpb25zLCBiZWNhdXNlIGl0IGlzIGFibGUgdG8g
d29yayBpbiB0aGUgCisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFs
cyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25z
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0xh
eW91dFRlc3RDb250cm9sbGVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21h
Yy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9x
dC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxl
cik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L0xheW91dFRlc3RDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisKIDIwMTItMDUtMDkgIEd5dXlvdW5nIEtpbSAgPGd5
dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBNb3ZlIHN1c3BlbmRBbmltYXRpb25z
IHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDUzNzhmMDdjNTU3YTkyMmE2NWFmZGYzZDdmNGJh
NWRhMWNhYWNlMjEuLjgzNmRkZWZmOGEyZTZkNTJmZjlkN2IzZDU4M2Q0YjkzNjFiOWEzODMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE4
NjEsMTMgKzE4NjEsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBudW1iZXJPZkFjdGl2ZUFuaW1hdGlv
bnNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplYwogICAgIHJldHVybiBKU1Zh
bHVlTWFrZU51bWJlcihjb250ZXh0LCBjb250cm9sbGVyLT5udW1iZXJPZkFjdGl2ZUFuaW1hdGlv
bnMoKSk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHJlc3VtZUFuaW1hdGlvbnNDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgTGF5b3V0VGVzdENvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0
R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+cmVzdW1lQW5pbWF0aW9u
cygpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3Rh
dGljIEpTVmFsdWVSZWYgd2FpdEZvclBvbGljeURlbGVnYXRlQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QsIGNv
bnN0IEpTVmFsdWVSZWZbXSwgSlNWYWx1ZVJlZiopCiB7CiAgICAgTGF5b3V0VGVzdENvbnRyb2xs
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0yMzQzLDcgKzIzMzYsNiBAQCBKU1N0YXRp
Y0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAg
ICAgeyAibWFya2VyVGV4dEZvckxpc3RJdGVtIiwgbWFya2VyVGV4dEZvckxpc3RJdGVtQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAibm90aWZ5RG9uZSIsIG5vdGlmeURvbmVDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMiLCBudW1iZXJPZkFj
dGl2ZUFuaW1hdGlvbnNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJyZXN1bWVBbmltYXRp
b25zIiwgcmVzdW1lQW5pbWF0aW9uc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgIm92ZXJy
aWRlUHJlZmVyZW5jZSIsIG92ZXJyaWRlUHJlZmVyZW5jZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgInBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJZCIsIHBhZ2VOdW1iZXJGb3JFbGVtZW50QnlJ
ZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInBhZ2VTaXplQW5kTWFyZ2luc0luUGl4ZWxz
IiwgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhlbHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggMzg3ODRmZDljNzE4YmQ3
ZDVhM2FjMTAyODk2ZmUxMWJlNGZhZDlkMy4uZTNkMzE4MmRkYjQ2MmUxOGUwYWI4Mjg5MTFhMGQ4
Y2ZlNzVmMjAwNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCkBAIC0yOTAsNyArMjkwLDYgQEAgcHVibGljOgogICAgIGJvb2wgcGF1c2VBbmltYXRpb25B
dFRpbWVPbkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRp
bWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJZCk7CiAgICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRp
bWVPbkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwg
SlNTdHJpbmdSZWYgZWxlbWVudElkKTsKICAgICB1bnNpZ25lZCBudW1iZXJPZkFjdGl2ZUFuaW1h
dGlvbnMoKSBjb25zdDsKLSAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdDsKIAogICAg
IHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3Jp
Z2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5h
dGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgcmVt
b3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBK
U1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhv
c3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVycnku
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxl
ckJsYWNrQmVycnkuY3BwCmluZGV4IGViODZiZGVlMGE0YjZjYWZjM2IwMGYzYjE4ZTI0NDY1MzQz
MjdkMjYuLmE3OTliMDQxNDVjMDg2ZDRjYjA5ZDA3Y2JjY2NiYmE4Yjc1MmUyMjYgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJC
bGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0xheW91
dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKQEAgLTcwNSwxMiArNzA1LDYgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3QgSlNTdHJp
bmdSZWYgbW9kZSkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkgY29uc3QKLXsKLSAgICBpZiAobWFpbkZyYW1l
ICYmIG1haW5GcmFtZS0+YW5pbWF0aW9uKCkpCi0gICAgICAgIG1haW5GcmFtZS0+YW5pbWF0aW9u
KCktPnJlc3VtZUFuaW1hdGlvbnMoKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0U2VyaWFsaXplSFRUUExvYWRzKGJvb2wpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBp
ZiBuZWVkZWQgZm9yIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDc1
OC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAppbmRleCA5MzMyMjhlODk1ZGNjOGVmNDliMGM2Mjg0OGNiYjY5ZmU2Mzll
ZTE5Li5hNTZmNGMzNWI0MGUwMTAxMGJmMmZhNWY3M2VjYzQzYWJlN2JkNDg1IDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCkBAIC0xNjUsNyArMTY1LDYgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RD
b250cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgicmVtb3ZlT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZU9yaWdp
bkFjY2Vzc1doaXRlbGlzdEVudHJ5KTsKICAgICBiaW5kTWV0aG9kKCJyZXBhaW50U3dlZXBIb3Jp
em9udGFsbHkiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlcGFpbnRTd2VlcEhvcml6b250YWxs
eSk7CiAgICAgYmluZE1ldGhvZCgicmVzZXRQYWdlVmlzaWJpbGl0eSIsICZMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6cmVzZXRQYWdlVmlzaWJpbGl0eSk7Ci0gICAgYmluZE1ldGhvZCgicmVzdW1lQW5p
bWF0aW9ucyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucyk7CiAgICAg
YmluZE1ldGhvZCgic2V0QWNjZXB0c0VkaXRpbmciLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEFjY2VwdHNFZGl0aW5nKTsKICAgICBiaW5kTWV0aG9kKCJzZXRBbGxvd0Rpc3BsYXlPZkluc2Vj
dXJlQ29udGVudCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dEaXNwbGF5T2ZJbnNl
Y3VyZUNvbnRlbnQpOwogICAgIGJpbmRNZXRob2QoInNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzKTsKQEAgLTEwNjQsMTkgKzEwNjMsNiBAQCBpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51
bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpCiAgICAgcmV0dXJuIGNvbnRyb2xsZXItPm51bWJlck9m
QWN0aXZlQW5pbWF0aW9ucygpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXN1
bWVBbmltYXRpb25zKCkKLXsKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBtX3NoZWxsLT53ZWJW
aWV3KCktPm1haW5GcmFtZSgpOwotICAgIGlmICghd2ViRnJhbWUpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFdlYkFuaW1hdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJGcmFtZS0+YW5p
bWF0aW9uQ29udHJvbGxlcigpOwotICAgIGlmICghY29udHJvbGxlcikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgY29udHJvbGxlci0+cmVzdW1lQW5pbWF0aW9ucygpOwotfQotCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAg
IHJlc3VsdC0+c2V0KGZhbHNlKTsKQEAgLTExNDgsMTIgKzExMzQsNiBAQCB2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVgogICAgIHJlc3VsdC0+c2V0KG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpKTsK
IH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucyhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgcmVzdW1lQW5pbWF0
aW9ucygpOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpkaXNhYmxlSW1hZ2VMb2FkaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqIHJlc3VsdCkKIHsKICAgICBtX3NoZWxsLT5wcmVmZXJlbmNlcygpLT5sb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGU0OTMxYzk4NjJlODQ1MWQ3N2M5
MjE3ODNiZDYyMjIyN2E0ZjY5N2QuLjdiZGI0ZTE0MzYzY2NmMjkyM2Y0OGUyYjUzYzNkNzc3NDUz
ZjNmMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuaApAQCAtMjQzLDcgKzI0Myw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGVu
YWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
ICAgICB2b2lkIGRpc2FibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAgICAgdm9pZCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucyhj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBkaXNhYmxlSW1h
Z2VMb2FkaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lk
IHNldEljb25EYXRhYmFzZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwogICAgIHZvaWQgZHVtcFNlbGVjdGlvblJlY3QoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwpAQCAtNTczLDcgKzU3Miw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXVz
ZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcm
IHByb3BlcnR5TmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBlbGVt
ZW50SWQpOwogICAgIGJvb2wgZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElk
KGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CiAgICAgaW50IG51bWJlck9mQWN0aXZlQW5pbWF0
aW9ucygpOwotICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpOwogCiAgICAgLy8gVXNlZCBmb3Ig
dGVzdCB0aW1lb3V0cy4KICAgICBUYXNrTGlzdCBtX3Rhc2tMaXN0OwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKaW5kZXggYTQ1
MzJmM2M0ODRjZjBhZjZkN2RiOTgzZjFmMWM4NGU0NzMzNzU0OS4uMjk4MzhiZjQ1ZDM2NTlhMjgz
N2U1MWYwNDNhZmY0MjI4NmI5Zjc1YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCkBAIC02NDgsMTEgKzY0OCw2IEBAIHVu
c2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBj
b25zdAogICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmFjdGl2ZUFuaW1hdGlv
bnNDb3VudChicm93c2VyLT5tYWluRnJhbWUoKSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdAotewotICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6cmVzdW1lQW5pbWF0aW9ucyhicm93c2VyLT5tYWluRnJhbWUoKSk7Ci19Ci0KIHN0
YXRpYyBpbmxpbmUgYm9vbCB0b0Jvb2woSlNTdHJpbmdSZWYgdmFsdWUpCiB7CiAgICAgcmV0dXJu
IGVxdWFscyh2YWx1ZSwgInRydWUiKSB8fCBlcXVhbHModmFsdWUsICIxIik7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRl
eCA5ZjU1MzE0OWMyZmEzZjE0OTY1OTUwYTYwMmYwMDEyMDg0Zjk1NjBmLi41ZWI3ZmJlZDQyYmRi
YTFmMWI0MWQ4Y2IxMWY3MTQ3YTlmOGQ1MTA2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTc4NywxMSArNzg3LDYg
QEAgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9u
cygpIGNvbnN0CiAgICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bnVtYmVyT2ZB
Y3RpdmVBbmltYXRpb25zKG1haW5GcmFtZSk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdAotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6cmVzdW1lQW5pbWF0aW9ucyhtYWluRnJhbWUpOwotfQotCiBzdGF0aWMgZ2Jvb2xlYW4g
Ym9vbGVhbkZyb21WYWx1ZShnY2hhciogdmFsdWUpCiB7CiAgICAgcmV0dXJuICFnX2FzY2lpX3N0
cmNhc2VjbXAodmFsdWUsICJ0cnVlIikgfHwgIWdfYXNjaWlfc3RyY2FzZWNtcCh2YWx1ZSwgIjEi
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbQppbmRleCA2N2U3YmUxOTI3ZTMxMWU5ODNjNWM2ODU4MTczNWRlNTQ1M2JjMzA3Li5i
ODM1NmM5MzU1ZjgyMGExNDUyMzIzZjc4MzZkNGFkOGJjNjg5YjA4IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC04NDQs
MTEgKzg0NCw2IEBAIHVuc2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZkFjdGl2
ZUFuaW1hdGlvbnMoKSBjb25zdAogICAgIHJldHVybiBbbWFpbkZyYW1lIF9udW1iZXJPZkFjdGl2
ZUFuaW1hdGlvbnNdOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXN1bWVBbmlt
YXRpb25zKCkgY29uc3QKLXsKLSAgICByZXR1cm4gW21haW5GcmFtZSBfcmVzdW1lQW5pbWF0aW9u
c107Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRGb3JQb2xpY3lEZWxlZ2F0
ZSgpCiB7CiAgICAgc2V0V2FpdFRvRHVtcCh0cnVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggNmI5MTE0YjQ5MDAyZGE2
YTZhMGNjMzY4OTZmZjI5Mzc0NDZjYTU3MC4uM2U4NzVkMWM1ZmJkZjNhZGJkOWRhOWU1OTA1YmQx
ODY3ODg1YjA1MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5jcHAKQEAgLTU2OSwxMyArNTY5LDYgQEAgdW5zaWduZWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJu
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoZnJhbWUp
OwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkgY29u
c3QKLXsKLSAgICBRV2ViRnJhbWUqIGZyYW1lID0gbV9kcnQtPndlYlBhZ2UoKS0+bWFpbkZyYW1l
KCk7Ci0gICAgUV9BU1NFUlQoZnJhbWUpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpy
ZXN1bWVBbmltYXRpb25zKGZyYW1lKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
ZGlzYWJsZUltYWdlTG9hZGluZygpCiB7CiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0dGluZ3Mo
KS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6QXV0b0xvYWRJbWFnZXMsIGZhbHNlKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRl
eCA1NmE4ODE5NzVhNTM3ZWJiYmFiMzY2ZTY4YmNmMmYzOWI1M2MwODE1Li4yNGFiMDk3ZDExNjky
MzdiOTNhZDQ3OWY0YmYyNTRhZThjNTRlOGZkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xODcsNyArMTg3LDYgQEAgcHVibGlj
IHNsb3RzOgogICAgIGJvb2wgZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElk
KGNvbnN0IFFTdHJpbmcmIGVsZW1lbnRJZCk7CiAKICAgICB1bnNpZ25lZCBudW1iZXJPZkFjdGl2
ZUFuaW1hdGlvbnMoKSBjb25zdDsKLSAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKSBjb25zdDsK
IAogICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgUVN0cmluZyYg
c291cmNlT3JpZ2luLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBR
U3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMp
OwogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgUVN0cmlu
ZyYgc291cmNlT3JpZ2luLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25z
dCBRU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJv
bGxlcldpbi5jcHAKaW5kZXggNjdiYzRhNzExYmNkOWE3YzY5NzQxMDg5YmFiMGY3YjBjODg1NGY2
OS4uZmIyMzdiMTE1NzZiYWViNzZiZmI1YTJmYWI5NTQ2YzgwYzI0YzE4MCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBA
IC0xMTIyLDE1ICsxMTIyLDYgQEAgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJl
ck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJuIG51bWJlcjsKIH0KIAotdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1lQW5pbWF0aW9ucygpIGNvbnN0Ci17Ci0gICAg
Q09NUHRyPElXZWJGcmFtZVByaXZhdGU+IGZyYW1lUHJpdmF0ZShRdWVyeSwgZnJhbWUpOwotICAg
IGlmICghZnJhbWVQcml2YXRlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmcmFtZVByaXZhdGUt
PnJlc3VtZUFuaW1hdGlvbnMoKTsKLX0KLQogc3RhdGljIF9ic3RyX3QgYnN0clQoSlNTdHJpbmdS
ZWYganNTdHJpbmcpCiB7CiAgICAgLy8gVGhlIGZhbHNlIHBhcmFtZXRlciB0ZWxscyB0aGUgX2Jz
dHJfdCBjb25zdHJ1Y3RvciB0byBhZG9wdCB0aGUgQlNUUiB3ZSBwYXNzIGl0LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCAw
YWI4ODVkZDJlN2QwZjg3ZmEwY2Y3OTBlODI4MmVkMGRmOGJmZmIzLi4yMTM5ZTdjMDE2ODY0Y2E0
ZjUxNjhlYjM5YTA3NDYxMzBkZTZlMmI4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAtMzEzLDExICszMTMsNiBAQCB1bnNp
Z25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29u
c3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVzdW1l
QW5pbWF0aW9ucygpIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB1bnNp
Z25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d29ya2VyVGhyZWFkQ291bnQoKSBjb25zdAogewog
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29u
dHJvbGxlci5pZGwKaW5kZXggMGRlY2QxZmQwYjZhZjc3MTgwMzVlMmRiOTU2MTgwMmY5NjhkMjhm
YS4uYzdhYzI2OWE3M2U1ZmUzZGMwNWUxZDc5YmM3MWQwNmVjMTk2YTE2MSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0
Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKQEAgLTkxLDcgKzkxLDYgQEAgbW9k
dWxlIFdUUiB7CiAgICAgICAgIGJvb2xlYW4gcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRX
aXRoSWQoaW4gRE9NU3RyaW5nIGFuaW1hdGlvbk5hbWUsIGluIGRvdWJsZSB0aW1lLCBpbiBET01T
dHJpbmcgZWxlbWVudElkKTsKICAgICAgICAgYm9vbGVhbiBwYXVzZVRyYW5zaXRpb25BdFRpbWVP
bkVsZW1lbnRXaXRoSWQoaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSwgaW4gZG91YmxlIHRpbWUs
IGluIERPTVN0cmluZyBlbGVtZW50SWQpOwogICAgICAgICB2b2lkIHN1c3BlbmRBbmltYXRpb25z
KCk7Ci0gICAgICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9ucygpOwogCiAgICAgICAgIC8vIFVzZXJD
b250ZW50IHRlc3RpbmcuCiAgICAgICAgIHZvaWQgYWRkVXNlclNjcmlwdChpbiBET01TdHJpbmcg
c291cmNlLCBpbiBib29sZWFuIHJ1bkF0U3RhcnQsIGluIGJvb2xlYW4gYWxsRnJhbWVzKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNzA5OTg4YjdjNGRmNGM4YTA0NDMxNDFmM2Jk
ZDdjNzQ5ZmRiNGJiYy4uNmIyNjVmMzc1MTQwNzZiZGYzMjNiMTgzOTZkMjgxYTM3OTg0ODhmZCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTIwOSwxMiArMjA5LDYgQEAgdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c3VzcGVuZEFuaW1hdGlvbnMoKQogICAgIFdLQnVuZGxlRnJh
bWVTdXNwZW5kQW5pbWF0aW9ucyhtYWluRnJhbWUpOwogfQogCi12b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpyZXN1bWVBbmltYXRpb25zKCkKLXsKLSAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5G
cmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
cGFnZSgpLT5wYWdlKCkpOwotICAgIFdLQnVuZGxlRnJhbWVSZXN1bWVBbmltYXRpb25zKG1haW5G
cmFtZSk7Ci19Ci0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6bGF5ZXJUcmVlQXNUZXh0KCkgY29uc3QKIHsKICAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5G
cmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
cGFnZSgpLT5wYWdlKCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGQwNDA3OTA2MGM2
NDEzYjRiYjVhNzY0MWE2Y2M2MDE4ZWNjMWFjZDIuLmU1ODFjZmFjNGNhNzYyNzIxZTAyNjRlMmY0
NjQxMDlmN2Q1ZTY1NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTExNCw3ICsxMTQs
NiBAQCBwdWJsaWM6CiAgICAgYm9vbCBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJ
ZChKU1N0cmluZ1JlZiBhbmltYXRpb25OYW1lLCBkb3VibGUgdGltZSwgSlNTdHJpbmdSZWYgZWxl
bWVudElkKTsKICAgICBib29sIHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChK
U1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50
SWQpOwogICAgIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoKTsKLSAgICB2b2lkIHJlc3VtZUFuaW1h
dGlvbnMoKTsKICAgICAKICAgICAvLyBDb21wb3NpdGluZyB0ZXN0aW5nLgogICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBsYXllclRyZWVBc1RleHQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1YTJkYTAz
Y2M4YjFlZGIyNzg0NDA2NjRiNzg3MjViNjJkMGM4NDFiLi42NGE0MGJiYWE1NzZkYWE3MmM5ZWFh
NGY2ZjQxZjY4MGRkMDM5ZmMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDUtMTAgIEd5
dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHJl
c3VtZUFuaW1hdGlvbnMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FsbCByZXN1bWVBbmltYXRpb25zIGZ1
bmN0aW9ucyBmcm9tIGludGVybmFscywgYmVjYXVzZSBpdCBpcyBhYmxlIHRvIHdvcmsgaW4gdGhl
CisgICAgICAgIGNyb3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2Uu
CisKKyAgICAgICAgKiBhbmltYXRpb25zL3BsYXktc3RhdGUtc3VzcGVuZC5odG1sOgorICAgICAg
ICAqIGFuaW1hdGlvbnMvc3RvcC1hbmltYXRpb24tb24tc3VzcGVuZC5odG1sOgorICAgICAgICAq
IGFuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLWV2ZW50cy5odG1sOgorICAgICAg
ICAqIGFuaW1hdGlvbnMvc3VzcGVuZC1yZXN1bWUtYW5pbWF0aW9uLmh0bWw6CisKIDIwMTItMDUt
MTAgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAK
ICAgICAgICAgW0VGTF1bRFJUXSBmYXN0L2V2ZW50cy9qcy1rZXlib2FyZC1ldmVudC1jcmVhdGlv
bi5odG1sIG5lZWRzIHJlYmFzZWxpbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0
aW9ucy9wbGF5LXN0YXRlLXN1c3BlbmQuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvcGxh
eS1zdGF0ZS1zdXNwZW5kLmh0bWwKaW5kZXggYzA5NDk5MzgxNWQ1MDIzYWZjN2Q2ZmY0ODZhOTM0
NmY1NjVjMTIzNS4uZTI1ZjkxZjQyMzIwYmM2YmY4NWE3NjllOGIxM2YzYjU2ZTdhZjM1MiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9wbGF5LXN0YXRlLXN1c3BlbmQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3BsYXktc3RhdGUtc3VzcGVuZC5odG1sCkBAIC02
OCw4ICs2OCw4IEBACiAKICAgICBmdW5jdGlvbiByZXN1bWUoKQogICAgIHsKLSAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnJlc3VtZUFuaW1hdGlvbnMoKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgICAgICBpbnRlcm5hbHMucmVzdW1lQW5pbWF0aW9ucyhkb2N1bWVudCk7CiAgICAg
fQogCiAgICAgZnVuY3Rpb24gc2V0VGltZXJzKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvc3RvcC1hbmltYXRpb24tb24tc3VzcGVuZC5odG1sIGIvTGF5b3V0VGVzdHMvYW5p
bWF0aW9ucy9zdG9wLWFuaW1hdGlvbi1vbi1zdXNwZW5kLmh0bWwKaW5kZXggMDA0YTJlMzk3ZGU3
OGE0YTE4ZWUzZGZlZjc5M2JhZDY1ZjQ5NGMyYi4uNDc4Y2RiNGY0ZTM4OGYzNmIwMWZlYzUxMTZk
OGM2Njk1YTk4NjQwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdG9wLWFu
aW1hdGlvbi1vbi1zdXNwZW5kLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdG9w
LWFuaW1hdGlvbi1vbi1zdXNwZW5kLmh0bWwKQEAgLTQ2LDggKzQ2LDggQEAKICAgICAKICAgICBm
dW5jdGlvbiByZXN1bWUoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnJlc3VtZUFuaW1hdGlv
bnMoKTsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5h
bHMucmVzdW1lQW5pbWF0aW9ucyhkb2N1bWVudCk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9u
IHNldFRpbWVycygpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N1c3BlbmQt
cmVzdW1lLWFuaW1hdGlvbi1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3Vz
cGVuZC1yZXN1bWUtYW5pbWF0aW9uLWV2ZW50cy5odG1sCmluZGV4IGZhOWYwMGI3MjFiMjg3M2Y2
M2Q2NGQ1MGNjZGZlOTcwNzJmYjQ2ZTMuLmMxYWJlNTZmNTc0ZGIwMmM4YjllYTlhYTlkZDkzNjFk
MDhlYWFmOTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3VzcGVuZC1yZXN1
bWUtYW5pbWF0aW9uLWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3Vz
cGVuZC1yZXN1bWUtYW5pbWF0aW9uLWV2ZW50cy5odG1sCkBAIC0zNiw4ICszNiw4IEBACiAgICAg
CiAgICAgZnVuY3Rpb24gcmVzdW1lKCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZXN1bWVB
bmltYXRpb25zKCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAg
aW50ZXJuYWxzLnJlc3VtZUFuaW1hdGlvbnMoZG9jdW1lbnQpOwogICAgIH0KICAgICAKICAgICBm
dW5jdGlvbiBzdGFydFRlc3QoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9z
dXNwZW5kLXJlc3VtZS1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvc3Vz
cGVuZC1yZXN1bWUtYW5pbWF0aW9uLmh0bWwKaW5kZXggYWQ2NjIyZGUwYmExMTIxMjNlMmViNzRk
YzM0MGE1NmExYmRmMzE4YS4uNTZjYTk2MDgwNTUxYTBiNDg4NmM3OGRjNDRiNGU1ZjVmYjdmNzIw
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9zdXNwZW5kLXJlc3VtZS1hbmlt
YXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL3N1c3BlbmQtcmVzdW1lLWFu
aW1hdGlvbi5odG1sCkBAIC0zNSw4ICszNSw4IEBACiAgICAgCiAgICAgZnVuY3Rpb24gcmVzdW1l
KCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5yZXN1bWVBbmltYXRpb25zKCk7CisgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnJlc3VtZUFuaW1h
dGlvbnMoZG9jdW1lbnQpOwogICAgIH0KICAgICAKICAgICBmdW5jdGlvbiBzZXRUaW1lcnMoKQpk
aWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDZiYWI4OWU5NTVjMzQ3Mzg5
MTA4MjA1MDM5ZDZjY2JjOTFhYTY0MDIuLjVjMDc0YjY1Yzg5N2MwNzk1NTYxNjM2NjU1OTVlOTZj
MTg0YmI0ODkgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMiBAQAorMjAxMi0wNS0xMCAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIE1vdmUgcmVzdW1lQW5pbWF0aW9ucyB0byB1c2UgSW50ZXJuYWxzIGlu
dGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODYwNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6IEFkZCBhIHN5bWJvbCBmaWx0ZXIgZm9y
IHJlc3VtZUFuaW1hdGlvbnMuIAorCiAyMDEyLTA1LTA5ICBLZW50IFRhbXVyYSAgPHRrZW50QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBDYWxlbmRhciBQaWNrZXI6IEZpeCBhIGNyYXNoIGJ5IGNo
YW5naW5nIGlucHV0IHR5cGUuCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>