<?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>233869</bug_id>
          
          <creation_ts>2021-12-06 02:12:15 -0800</creation_ts>
          <short_desc>[Web Animations] Add a way to run scripted animations</short_desc>
          <delta_ts>2021-12-06 11:31:10 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Animations</component>
          <version>WebKit 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>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>233868</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820557</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-06 02:12:15 -0800</bug_when>
    <thetext>[Web Animations] Add a way to run scripted animations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820560</commentid>
    <comment_count>1</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-06 02:29:50 -0800</bug_when>
    <thetext>rdar://85983542</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820561</commentid>
    <comment_count>2</comment_count>
      <attachid>446016</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-06 02:31:05 -0800</bug_when>
    <thetext>Created attachment 446016
Patch

This patch is expected not to build until the patch for bug 233868 lands but can already be reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820568</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-06 02:58:08 -0800</bug_when>
    <thetext>I filed https://github.com/w3c/csswg-drafts/issues/6861 to propose to revive the discussion of custom effects in Web Animations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820647</commentid>
    <comment_count>4</comment_count>
      <attachid>446016</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2021-12-06 10:07:33 -0800</bug_when>
    <thetext>Comment on attachment 446016
Patch

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

&gt; LayoutTests/ChangeLog:19
&gt; +2021-12-06  Antoine Quint  &lt;graouts@webkit.org&gt;
&gt; +
&gt; +        [Web Animations] Add a way to run scripted animations
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=233869
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * webanimations/custom-effect/custom-effect-expected.txt: Added.
&gt; +        * webanimations/custom-effect/custom-effect.html: Added.
&gt; +        * webanimations/custom-effect/document-timeline-animate-expected.txt: Added.
&gt; +        * webanimations/custom-effect/document-timeline-animate.html: Added.
&gt; +
&gt; +2021-12-06  Antoine Quint  &lt;graouts@webkit.org&gt;
&gt; +
&gt; +        [Web Animations] Add a way to run scripted animations
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=233869
&gt; +        rdar://85983542
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

oops

&gt; LayoutTests/webanimations/custom-effect/custom-effect.html:30
&gt; +    assert_not_equals(customEffectProgress, 1, &quot;Callback is first fired with progress = 0.&quot;);

Did you want to change this message?

&gt; Source/WTF/ChangeLog:12
&gt; +2021-12-06  Antoine Quint  &lt;graouts@webkit.org&gt;
&gt; +
&gt; +        [Web Animations] Add a way to run scripted animations
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=233869
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * Scripts/Preferences/WebPreferencesExperimental.yaml:
&gt; +
&gt; +2021-12-06  Antoine Quint  &lt;graouts@webkit.org&gt;
&gt; +
&gt; +        [Web Animations] Add a way to run scripted animations

oops

&gt; Source/WebCore/ChangeLog:39
&gt; +2021-12-06  Antoine Quint  &lt;graouts@webkit.org&gt;
&gt; +
&gt; +        [Web Animations] Add a way to run scripted animations
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=233869
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Tests: webanimations/custom-effect/custom-effect.html
&gt; +               webanimations/custom-effect/document-timeline-animate.html
&gt; +
&gt; +        * CMakeLists.txt:
&gt; +        * DerivedSources-input.xcfilelist:
&gt; +        * DerivedSources-output.xcfilelist:
&gt; +        * DerivedSources.make:
&gt; +        * Headers.cmake:
&gt; +        * Sources.txt:
&gt; +        * WebCore.xcodeproj/project.pbxproj:
&gt; +        * animation/AnimationEffect.h:
&gt; +        (WebCore::AnimationEffect::isCustomEffect const):
&gt; +        * animation/CustomAnimationOptions.h: Copied from Source/WebCore/animation/DocumentTimeline.idl.
&gt; +        * animation/CustomAnimationOptions.idl: Copied from Source/WebCore/animation/DocumentTimeline.idl.
&gt; +        * animation/CustomEffect.cpp: Added.
&gt; +        (WebCore::CustomEffect::create):
&gt; +        (WebCore::CustomEffect::CustomEffect):
&gt; +        (WebCore::CustomEffect::animationDidTick):
&gt; +        * animation/CustomEffect.h: Copied from Source/WebCore/animation/DocumentTimeline.idl.
&gt; +        (WebCore::CustomEffect::~CustomEffect):
&gt; +        * animation/CustomEffect.idl: Copied from Source/WebCore/animation/DocumentTimeline.idl.
&gt; +        * animation/CustomEffectCallback.h: Copied from Source/WebCore/animation/DocumentTimeline.idl.
&gt; +        * animation/CustomEffectCallback.idl: Copied from Source/WebCore/animation/DocumentTimeline.idl.
&gt; +        * animation/DocumentTimeline.cpp:
&gt; +        (WebCore::DocumentTimeline::animate):
&gt; +        * animation/DocumentTimeline.h:
&gt; +        * animation/DocumentTimeline.idl:
&gt; +        * bindings/js/WebCoreBuiltinNames.h:
&gt; +
&gt; +2021-12-06  Antoine Quint  &lt;graouts@webkit.org&gt;
&gt; +
&gt; +        [Web Animations] Add a way to run scripted animations

oops

&gt; Source/WebCore/animation/CustomEffect.cpp:43
&gt; +            std::variant&lt;double, String&gt; duration = std::get&lt;double&gt;(optionsValue);

We don&apos;t have a type for duration?

&gt; Source/WebCore/animation/DocumentTimeline.cpp:516
&gt; +        std::variant&lt;double, EffectTiming&gt; customEffectOptionsVariant;
&gt; +        if (std::holds_alternative&lt;double&gt;(*options))
&gt; +            customEffectOptionsVariant = std::get&lt;double&gt;(*options);
&gt; +        else {
&gt; +            auto customEffectOptions = std::get&lt;CustomAnimationOptions&gt;(*options);
&gt; +            id = customEffectOptions.id;
&gt; +            customEffectOptionsVariant = WTFMove(customEffectOptions);
&gt; +        }
&gt; +        customEffectOptions = customEffectOptionsVariant;

This might be nicer as a function that returns the variant directly into customEffectOptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820688</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-06 11:28:36 -0800</bug_when>
    <thetext>Will fix Windows failures in https://bugs.webkit.org/show_bug.cgi?id=233887.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820690</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2021-12-06 11:31:10 -0800</bug_when>
    <thetext>Committed r286555 (244885@main): &lt;https://commits.webkit.org/244885@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446016</attachid>
            <date>2021-12-06 02:31:05 -0800</date>
            <delta_ts>2021-12-06 11:17:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>47303</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4NTllZGM4NmNiNjguLjZkY2Y3MzYzN2QyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBA
CisyMDIxLTEyLTA2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFtXZWIgQW5pbWF0aW9uc10gQWRkIGEgd2F5IHRvIHJ1biBzY3JpcHRlZCBhbmltYXRpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4NjkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmFu
aW1hdGlvbnMvY3VzdG9tLWVmZmVjdC9jdXN0b20tZWZmZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogd2ViYW5pbWF0aW9ucy9jdXN0b20tZWZmZWN0L2N1c3RvbS1lZmZlY3QuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9jdXN0b20tZWZmZWN0L2RvY3VtZW50
LXRpbWVsaW5lLWFuaW1hdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmlt
YXRpb25zL2N1c3RvbS1lZmZlY3QvZG9jdW1lbnQtdGltZWxpbmUtYW5pbWF0ZS5odG1sOiBBZGRl
ZC4KKworMjAyMS0xMi0wNiAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFkZCBhIHdheSB0byBydW4gc2NyaXB0ZWQgYW5pbWF0
aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMz
ODY5CisgICAgICAgIHJkYXI6Ly84NTk4MzU0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyBmb3IgdGhlIG5ldyBDdXN0b21FZmZlY3Qg
aW50ZXJmYWNlIGFuZCB0aGUgZG9jdW1lbnQudGltZWxpbmUuYW5pbWF0ZSgpIG1ldGhvZC4KKyAg
ICAgICAgVGhlc2UgYXJlIHdyaXR0ZW4gdXNpbmcgV1BUIGxpYnJhcmllcyBzdWNoIHRoYXQgdGhl
eSBtYXkgYmUgdXBzdHJlYW1lZCB0byB0aGUgV1BUIHJlcG9zaXRvcnkKKyAgICAgICAgaW4gdGhl
IGZ1dHVyZSBpZiBhbmQgd2hlbiB0aGUgQ3VzdG9tRWZmZWN0IGludGVyZmFjZSBpcyBzdGFuZGFy
ZGl6ZWQuCisKKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL2N1c3RvbS1lZmZlY3QvY3VzdG9tLWVm
ZmVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvY3VzdG9t
LWVmZmVjdC9jdXN0b20tZWZmZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlv
bnMvY3VzdG9tLWVmZmVjdC9kb2N1bWVudC10aW1lbGluZS1hbmltYXRlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9jdXN0b20tZWZmZWN0L2RvY3VtZW50LXRp
bWVsaW5lLWFuaW1hdGUuaHRtbDogQWRkZWQuCisKIDIwMjEtMTItMDQgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTIGFuaW1hdGlvbiBzb3J0aW5nIG1h
eSBjcmFzaCBkdWUgdG8gQW5pbWF0aW9uTGlzdCBjb3B5IHVwb24gQ1NTIEFuaW1hdGlvbiByZW1v
dmFsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2N1c3RvbS1lZmZlY3Qv
Y3VzdG9tLWVmZmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2N1
c3RvbS1lZmZlY3QvY3VzdG9tLWVmZmVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yMzI0MTI5OWI3ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2N1c3RvbS1lZmZlY3QvY3VzdG9tLWVmZmVjdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKK1BBU1MgQ3VzdG9tIGVmZmVjdHMgd2l0aCBubyBm
aWxsIGRvIG5vdCBmaXJlIHdpdGggcHJvZ3Jlc3MgPSAxLgorUEFTUyBGb3J3YXJkLWZpbGxpbmcg
Y3VzdG9tIGVmZmVjdHMgZmlyZSBvbmNlIHdpdGggcHJvZ3Jlc3MgPSAxLgorUEFTUyBCYWNrd2Fy
ZC1maWxsaW5nIGN1c3RvbSBlZmZlY3RzIGZpcmUgb25seSBvbmNlIHdpdGggcHJvZ3Jlc3MgPSAw
IGR1cmluZyB0aGUgYmVmb3JlIHBoYXNlLgorUEFTUyBDdXN0b20gZWZmZWN0cyBhcmUgY2FsbGVk
IHdoZW4gdGhlIGFzc29jaWF0ZWQgYW5pbWF0b3VuIGlzIHBhdXNlZCBhbmQgc2Vla2VkLgorUEFT
UyBDdXN0b20gZWZmZWN0cyBmaXJlIGNhbGxiYWNrcyB3aXRoIG5vIG90aGVyIHJlYXNvbiB0byB1
cGRhdGUgdGhlIHBhZ2UgcmVuZGVyaW5nLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJh
bmltYXRpb25zL2N1c3RvbS1lZmZlY3QvY3VzdG9tLWVmZmVjdC5odG1sIGIvTGF5b3V0VGVzdHMv
d2ViYW5pbWF0aW9ucy9jdXN0b20tZWZmZWN0L2N1c3RvbS1lZmZlY3QuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNhNTRjYjFlZjkyZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3VzdG9tLWVmZmVjdC9jdXN0b20tZWZm
ZWN0Lmh0bWwKQEAgLTAsMCArMSwxMDggQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzx0aXRsZT5DdXN0b21FZmZlY3Q8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL3Rlc3Rj
b21tb24uanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgbGV0IG51bWJlck9mQ2FsbHMgPSAwOworICAg
IGxldCBjdXN0b21FZmZlY3RQcm9ncmVzcyA9IG51bGw7CisKKyAgICBjb25zdCBhbmltYXRpb24g
PSBkb2N1bWVudC50aW1lbGluZS5hbmltYXRlKHByb2dyZXNzID0+IHsKKyAgICAgICAgY3VzdG9t
RWZmZWN0UHJvZ3Jlc3MgPSBwcm9ncmVzczsKKyAgICAgICAgbnVtYmVyT2ZDYWxscysrOworICAg
IH0sIHsgZHVyYXRpb246IDEgfSk7CisKKyAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVmZmVjdFBy
b2dyZXNzLCBudWxsLCAiQ2FsbGJhY2sgZG9lcyBub3QgZmlyZSB1cG9uIGNyZWF0aW9uLiIpOwor
CisgICAgYXdhaXQgd2FpdEZvckFuaW1hdGlvbkZyYW1lcygxKTsKKyAgICBhc3NlcnRfZXF1YWxz
KGN1c3RvbUVmZmVjdFByb2dyZXNzLCAwLCAiQ2FsbGJhY2sgaXMgZmlyc3QgZmlyZWQgd2l0aCBw
cm9ncmVzcyA9IDAuIik7CisKKyAgICBhd2FpdCBhbmltYXRpb24uZmluaXNoZWQ7CisgICAgY29u
c3QgbnVtYmVyT2ZDYWxsc0FmdGVyRWZmZWN0RW5kZWQgPSBudW1iZXJPZkNhbGxzOworCisgICAg
YXdhaXQgd2FpdEZvckFuaW1hdGlvbkZyYW1lcygxKTsKKyAgICBhc3NlcnRfZXF1YWxzKG51bWJl
ck9mQ2FsbHNBZnRlckVmZmVjdEVuZGVkLCBudW1iZXJPZkNhbGxzLCAiQ2FsbGJhY2sgaXMgbm8g
bG9uZ2VyIGZpcmVkIGFmdGVyIGN1c3RvbSBlZmZlY3QgZW50ZXJlZCB0aGUgYWZ0ZXIgcGhhc2Uu
Iik7CisgICAgYXNzZXJ0X25vdF9lcXVhbHMoY3VzdG9tRWZmZWN0UHJvZ3Jlc3MsIDEsICJDYWxs
YmFjayBpcyBmaXJzdCBmaXJlZCB3aXRoIHByb2dyZXNzID0gMC4iKTsKK30sICJDdXN0b20gZWZm
ZWN0cyB3aXRoIG5vIGZpbGwgZG8gbm90IGZpcmUgd2l0aCBwcm9ncmVzcyA9IDEuIik7CisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBsZXQgbnVtYmVyT2ZDYWxscyA9IDA7CisgICAg
bGV0IGN1c3RvbUVmZmVjdFByb2dyZXNzID0gbnVsbDsKKworICAgIGNvbnN0IGFuaW1hdGlvbiA9
IGRvY3VtZW50LnRpbWVsaW5lLmFuaW1hdGUocHJvZ3Jlc3MgPT4geworICAgICAgICBjdXN0b21F
ZmZlY3RQcm9ncmVzcyA9IHByb2dyZXNzOworICAgICAgICBudW1iZXJPZkNhbGxzKys7CisgICAg
fSwgeyBmaWxsOiAiZm9yd2FyZHMiLCBkdXJhdGlvbjogMX0pOworCisgICAgYXNzZXJ0X2VxdWFs
cyhjdXN0b21FZmZlY3RQcm9ncmVzcywgbnVsbCwgIkNhbGxiYWNrIGRvZXMgbm90IGZpcmUgdXBv
biBjcmVhdGlvbi4iKTsKKworICAgIGF3YWl0IGFuaW1hdGlvbi5maW5pc2hlZDsKKyAgICBhc3Nl
cnRfZXF1YWxzKGN1c3RvbUVmZmVjdFByb2dyZXNzLCAxLCAiQ2FsbGJhY2sgaXMgZmluYWxseSBm
aXJlZCB3aXRoIHByb2dyZXNzID0gMS4iKTsKKworICAgIGNvbnN0IG51bWJlck9mQ2FsbHNBZnRl
ckVmZmVjdEVuZGVkID0gbnVtYmVyT2ZDYWxsczsKKworICAgIGF3YWl0IHdhaXRGb3JBbmltYXRp
b25GcmFtZXMoMSk7CisgICAgYXNzZXJ0X2VxdWFscyhudW1iZXJPZkNhbGxzQWZ0ZXJFZmZlY3RF
bmRlZCwgbnVtYmVyT2ZDYWxscywgIkNhbGxiYWNrIGlzIG5vIGxvbmdlciBmaXJlZCBhZnRlciBj
dXN0b20gZWZmZWN0IGVudGVyZWQgdGhlIGFmdGVyIHBoYXNlLiIpOworfSwgIkZvcndhcmQtZmls
bGluZyBjdXN0b20gZWZmZWN0cyBmaXJlIG9uY2Ugd2l0aCBwcm9ncmVzcyA9IDEuIik7CisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBsZXQgbnVtYmVyT2ZDYWxscyA9IDA7CisgICAg
bGV0IGN1c3RvbUVmZmVjdFByb2dyZXNzID0gbnVsbDsKKworICAgIC8vIENyZWF0ZSBhbiBhbmlt
YXRpb24gdGhhdCB3b24ndCBzdGFydCB1bnRpbCBsb25nIGludG8gdGhlIGZ1dHVyZS4KKyAgICBj
b25zdCBhbmltYXRpb24gPSBuZXcgQW5pbWF0aW9uOworICAgIGFuaW1hdGlvbi5zdGFydFRpbWUg
PSBkb2N1bWVudC50aW1lbGluZS5jdXJyZW50VGltZSArICgxMDAgKiAxMDAwKTsKKyAgICBhbmlt
YXRpb24uZWZmZWN0ID0gbmV3IEN1c3RvbUVmZmVjdChwcm9ncmVzcyA9PiB7CisgICAgICAgIGN1
c3RvbUVmZmVjdFByb2dyZXNzID0gcHJvZ3Jlc3M7CisgICAgICAgIG51bWJlck9mQ2FsbHMrKzsK
KyAgICB9LCB7IGZpbGw6ICJiYWNrd2FyZHMiLCBkdXJhdGlvbjogMX0pOworCisgICAgYXNzZXJ0
X2VxdWFscyhjdXN0b21FZmZlY3RQcm9ncmVzcywgbnVsbCwgIkNhbGxiYWNrIGRvZXMgbm90IGZp
cmUgdXBvbiBjcmVhdGlvbi4iKTsKKworICAgIGF3YWl0IHdhaXRGb3JBbmltYXRpb25GcmFtZXMo
MSk7CisgICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FZmZlY3RQcm9ncmVzcywgMCwgIkNhbGxiYWNr
IGlzIGZpcnN0IGZpcmVkIHdpdGggcHJvZ3Jlc3MgPSAwLiIpOworCisgICAgYXdhaXQgd2FpdEZv
ckFuaW1hdGlvbkZyYW1lcygxKTsKKyAgICBhc3NlcnRfZXF1YWxzKG51bWJlck9mQ2FsbHMsIDEs
ICJDYWxsYmFjayBpcyBub3QgZmlyZWQgYWZ0ZXIgdGhlIGZpcnN0IGZyYW1lIGFzIGl0J3Mgc3Rp
bGwgaW4gdGhlIGJlZm9yZSBwaGFzZSBhbmQgaXRzIHByb2dyZXNzIGhhc24ndCBjaGFuZ2VkLiIp
OworfSwgIkJhY2t3YXJkLWZpbGxpbmcgY3VzdG9tIGVmZmVjdHMgZmlyZSBvbmx5IG9uY2Ugd2l0
aCBwcm9ncmVzcyA9IDAgZHVyaW5nIHRoZSBiZWZvcmUgcGhhc2UuIik7CisKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBsZXQgbnVtYmVyT2ZDYWxscyA9IDA7CisgICAgbGV0IGN1c3Rv
bUVmZmVjdFByb2dyZXNzID0gbnVsbDsKKworICAgIGNvbnN0IGR1cmF0aW9uID0gMTAwMDsKKyAg
ICBjb25zdCBhbmltYXRpb24gPSBkb2N1bWVudC50aW1lbGluZS5hbmltYXRlKHByb2dyZXNzID0+
IHsKKyAgICAgICAgY3VzdG9tRWZmZWN0UHJvZ3Jlc3MgPSBwcm9ncmVzczsKKyAgICAgICAgbnVt
YmVyT2ZDYWxscysrOworICAgIH0sIGR1cmF0aW9uKTsKKworICAgIGFuaW1hdGlvbi5wYXVzZSgp
OworICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWZmZWN0UHJvZ3Jlc3MsIG51bGwsICJDYWxsYmFj
ayBkb2VzIG5vdCBmaXJlIHVwb24gY3JlYXRpb24uIik7CisKKyAgICBhd2FpdCB3YWl0Rm9yQW5p
bWF0aW9uRnJhbWVzKDEpOworICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWZmZWN0UHJvZ3Jlc3Ms
IDAsICJDYWxsYmFjayBpcyBmaXJzdCBmaXJlZCB3aXRoIHByb2dyZXNzID0gMC4iKTsKKworICAg
IGF3YWl0IHdhaXRGb3JBbmltYXRpb25GcmFtZXMoMSk7CisgICAgYXNzZXJ0X2VxdWFscyhudW1i
ZXJPZkNhbGxzLCAxLCAiQ2FsbGJhY2sgaXMgbm90IGNhbGxlZCB3aGlsZSBhbmltYXRpb24gaXMg
cGF1c2VkLiIpOworCisgICAgYW5pbWF0aW9uLmN1cnJlbnRUaW1lID0gYW5pbWF0aW9uLnN0YXJ0
VGltZSArIChkdXJhdGlvbiAqIDAuMik7CisgICAgYW5pbWF0aW9uLmN1cnJlbnRUaW1lID0gYW5p
bWF0aW9uLnN0YXJ0VGltZSArIChkdXJhdGlvbiAqIDAuMSk7CisKKyAgICBhd2FpdCB3YWl0Rm9y
QW5pbWF0aW9uRnJhbWVzKDEpOworICAgIGFzc2VydF9lcXVhbHMobnVtYmVyT2ZDYWxscywgMiwg
IkNhbGxiYWNrIGlzIG9ubHkgY2FsbGVkIG9uY2UgaWYgY2hhbmdpbmcgdGhlIGN1cnJlbnQgdGlt
ZSBzZXZlcmFsIHRpbWVzIGJldHdlZW4gZnJhbWVzLiIpOworICAgIGFzc2VydF9lcXVhbHMoY3Vz
dG9tRWZmZWN0UHJvZ3Jlc3MsIDAuMSwgIkNhbGxiYWNrIGlzIGNhbGxlZCB3aXRoIHRoZSB1cGRh
dGUgcHJvZ3Jlc3Mgd2hlbiBzZWVraW5nIHRoZSBhbmltYXRpb24uIik7Cit9LCAiQ3VzdG9tIGVm
ZmVjdHMgYXJlIGNhbGxlZCB3aGVuIHRoZSBhc3NvY2lhdGVkIGFuaW1hdG91biBpcyBwYXVzZWQg
YW5kIHNlZWtlZC4iKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBkb2N1bWVudC50aW1lbGluZS5hbmltYXRl
KHByb2dyZXNzID0+IHJlc29sdmUoKSwgMTAwICogMTAwMCk7CisgICAgfSk7Cit9LCAiQ3VzdG9t
IGVmZmVjdHMgZmlyZSBjYWxsYmFja3Mgd2l0aCBubyBvdGhlciByZWFzb24gdG8gdXBkYXRlIHRo
ZSBwYWdlIHJlbmRlcmluZy4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2N1c3RvbS1lZmZlY3QvZG9jdW1lbnQtdGltZWxpbmUt
YW5pbWF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2N1c3RvbS1l
ZmZlY3QvZG9jdW1lbnQtdGltZWxpbmUtYW5pbWF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lMjI3N2U2ZGJjODEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2N1c3RvbS1lZmZlY3QvZG9jdW1lbnQtdGlt
ZWxpbmUtYW5pbWF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgZG9jdW1l
bnQudGltZWxpbmUuYW5pbWF0ZSgpIGFsbG93cyB0byBzZXQgdGhlIGFuaW1hdGlvbidzIGlkLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL2N1c3RvbS1lZmZlY3QvZG9j
dW1lbnQtdGltZWxpbmUtYW5pbWF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9j
dXN0b20tZWZmZWN0L2RvY3VtZW50LXRpbWVsaW5lLWFuaW1hdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjkwMzFmZTRjN2ViMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvY3VzdG9tLWVmZmVjdC9kb2N1bWVudC10aW1l
bGluZS1hbmltYXRlLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPkN1c3RvbUVmZmVjdDwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGJvZHk+
Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCit0ZXN0KHQgPT4geworICAgIGNvbnN0IGlkID0g
ImN1c3RvbS1hbmltYXRpb24taWQiOworICAgIGNvbnN0IGFuaW1hdGlvbiA9IGRvY3VtZW50LnRp
bWVsaW5lLmFuaW1hdGUocHJvZ3Jlc3MgPT4geyB9LCB7IGR1cmF0aW9uOiAxLCBpZCB9KTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGFuaW1hdGlvbi5pZCwgaWQpOworfSwgImRvY3VtZW50LnRpbWVsaW5l
LmFuaW1hdGUoKSBhbGxvd3MgdG8gc2V0IHRoZSBhbmltYXRpb24ncyBpZC4iKTsKKworPC9zY3Jp
cHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCmluZGV4IDIzOGVjY2ZhZDQ3Mi4uMDZkOWRmZjkyZGVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI0IEBACisyMDIxLTEyLTA2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gQWRkIGEgd2F5IHRvIHJ1biBzY3JpcHRlZCBh
bmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM4NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbDoK
KworMjAyMS0xMi0wNiAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAg
ICAgICBbV2ViIEFuaW1hdGlvbnNdIEFkZCBhIHdheSB0byBydW4gc2NyaXB0ZWQgYW5pbWF0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzODY5
CisgICAgICAgIHJkYXI6Ly84NTk4MzU0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBleHBlcmltZW50YWwgZmVhdHVyZSBmb3IgdGhl
IEN1c3RvbUVmZmVjdCBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWw6CisKIDIwMjEtMTItMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBUdXJuIG9uIFdlYiBMb2Nr
cyBBUEkgc3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2Vz
L1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCBmYTE2NzRmNTQx
MDYuLjQwMDFiN2JlM2U3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVu
Y2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKKysrIGIvU291cmNlL1dURi9TY3Jp
cHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKQEAgLTE0OTMs
NiArMTQ5MywxOSBAQCBXZWJBbmltYXRpb25zQ29tcG9zaXRlT3BlcmF0aW9uc0VuYWJsZWQ6CiAg
ICAgV2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1dlYkFuaW1hdGlvbnNDdXN0b21F
ZmZlY3RzRW5hYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJlYWRhYmxlTmFtZTogIldlYiBB
bmltYXRpb25zIGN1c3RvbSBlZmZlY3RzIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJT
dXBwb3J0IGZvciB0aGUgQ3VzdG9tRWZmZWN0IGludGVyZmFjZSIKKyAgZGVmYXVsdFZhbHVlOgor
ICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAg
ICAgIkVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRVMpIiA6IHRydWUKKyAgICAgIGRlZmF1bHQ6
IGZhbHNlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKICMgRklYTUU6IFRo
aXMgaXMgZW5hYmxlZCB3aGVuIEVOQUJMRShFWFBFUklNRU5UQUxfRkVBVFVSRVMpIGlzIHRydWUg
aW4gV2ViS2l0Mi4gUGVyaGFwcyB3ZSBzaG91bGQgY29uc2lkZXIgdXNpbmcgdGhhdCBmb3IgV2Vi
S2l0TGVnYWN5IGFzIHdlbGwuCiBXZWJBbmltYXRpb25zTXV0YWJsZVRpbWVsaW5lc0VuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0
IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMmExOWVkZjY5ZmEwLi43NjI0
MzI0ZDk1ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC02NzksNyArNjc5LDYgQEAgc2V0KFdl
YkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBhbmltYXRpb24vQW5pbWF0YWJsZS5pZGwKICAg
ICBhbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmlkbAogICAgIGFuaW1hdGlvbi9BbmltYXRpb25G
cmFtZVByb3ZpZGVyLmlkbAotICAgIGFuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaWRsCiAgICAgYW5p
bWF0aW9uL0FuaW1hdGlvblBsYXliYWNrRXZlbnQuaWRsCiAgICAgYW5pbWF0aW9uL0FuaW1hdGlv
blBsYXliYWNrRXZlbnRJbml0LmlkbAogICAgIGFuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5p
ZGwKQEAgLTY4OCwxMCArNjg3LDE0IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgYW5pbWF0aW9uL0NvbXBvc2l0ZU9wZXJhdGlvbi5pZGwKICAgICBhbmltYXRpb24vQ29tcG9z
aXRlT3BlcmF0aW9uT3JBdXRvLmlkbAogICAgIGFuaW1hdGlvbi9Db21wdXRlZEVmZmVjdFRpbWlu
Zy5pZGwKKyAgICBhbmltYXRpb24vQ3VzdG9tQW5pbWF0aW9uT3B0aW9ucy5pZGwKKyAgICBhbmlt
YXRpb24vQ3VzdG9tRWZmZWN0LmlkbAorICAgIGFuaW1hdGlvbi9DdXN0b21FZmZlY3RDYWxsYmFj
ay5pZGwKICAgICBhbmltYXRpb24vRG9jdW1lbnQrV2ViQW5pbWF0aW9ucy5pZGwKICAgICBhbmlt
YXRpb24vRG9jdW1lbnRPclNoYWRvd1Jvb3QrV2ViQW5pbWF0aW9ucy5pZGwKICAgICBhbmltYXRp
b24vRG9jdW1lbnRUaW1lbGluZS5pZGwKICAgICBhbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZU9w
dGlvbnMuaWRsCisgICAgYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5pZGwKICAgICBhbmltYXRpb24v
RmlsbE1vZGUuaWRsCiAgICAgYW5pbWF0aW9uL0dldEFuaW1hdGlvbnNPcHRpb25zLmlkbAogICAg
IGFuaW1hdGlvbi9HbG9iYWxFdmVudEhhbmRsZXJzK0NTU0FuaW1hdGlvbnMuaWRsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggMmYzNDUxZjJlZjJkLi41OGQ5OTdlMmRiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MDUgQEAKKzIwMjEtMTItMDYgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBBZGQgYSB3YXkgdG8gcnVuIHNjcmlwdGVkIGFuaW1h
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
Mzg2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3RzOiB3ZWJhbmltYXRpb25zL2N1c3RvbS1lZmZlY3QvY3VzdG9tLWVmZmVjdC5odG1sCisgICAg
ICAgICAgICAgICB3ZWJhbmltYXRpb25zL2N1c3RvbS1lZmZlY3QvZG9jdW1lbnQtdGltZWxpbmUt
YW5pbWF0ZS5odG1sCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91
dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1h
dGlvbkVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRWZmZWN0Ojppc0N1c3Rv
bUVmZmVjdCBjb25zdCk6CisgICAgICAgICogYW5pbWF0aW9uL0N1c3RvbUFuaW1hdGlvbk9wdGlv
bnMuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxp
bmUuaWRsLgorICAgICAgICAqIGFuaW1hdGlvbi9DdXN0b21BbmltYXRpb25PcHRpb25zLmlkbDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaWRs
LgorICAgICAgICAqIGFuaW1hdGlvbi9DdXN0b21FZmZlY3QuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkN1c3RvbUVmZmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3Rv
bUVmZmVjdDo6Q3VzdG9tRWZmZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUVmZmVjdDo6
YW5pbWF0aW9uRGlkVGljayk6CisgICAgICAgICogYW5pbWF0aW9uL0N1c3RvbUVmZmVjdC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5pZGwu
CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21FZmZlY3Q6On5DdXN0b21FZmZlY3QpOgorICAgICAg
ICAqIGFuaW1hdGlvbi9DdXN0b21FZmZlY3QuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5pZGwuCisgICAgICAgICogYW5pbWF0aW9uL0N1
c3RvbUVmZmVjdENhbGxiYWNrLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lLmlkbC4KKyAgICAgICAgKiBhbmltYXRpb24vQ3VzdG9tRWZmZWN0
Q2FsbGJhY2suaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1l
bnRUaW1lbGluZS5pZGwuCisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0ZSk6CisgICAgICAg
ICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaDoKKyAgICAgICAgKiBhbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5pZGw6CisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5O
YW1lcy5oOgorCisyMDIxLTEyLTA2ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgorCisgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gQWRkIGEgd2F5IHRvIHJ1biBzY3JpcHRlZCBh
bmltYXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM4NjkKKyAgICAgICAgcmRhcjovLzg1OTgzNTQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IHdlYmFuaW1hdGlvbnMvY3VzdG9tLWVm
ZmVjdC9jdXN0b20tZWZmZWN0Lmh0bWwKKyAgICAgICAgICAgICAgIHdlYmFuaW1hdGlvbnMvY3Vz
dG9tLWVmZmVjdC9kb2N1bWVudC10aW1lbGluZS1hbmltYXRlLmh0bWwKKworICAgICAgICBUaGlz
IHBhdGNoIGFkZHMgdHdvIG5ldyBXZWItZXhwb3NlZCBmZWF0dXJlcyB0byBhbGxvdyBhdXRob3Jz
IHRvIHdyaXRlIGNhbGxiYWNrLWJhc2VkIGFuaW1hdGlvbnMKKyAgICAgICAgbGV2ZXJhZ2luZyB0
aGUgZnVsbCBwb3dlciBvZiB0aGUgV2ViIEFuaW1hdGlvbnMgbW9kZWwuCisKKyAgICAgICAgRmly
c3QsIHdlIGFkZCBhIG5ldyBBbmltYXRpb25FZmZlY3Qgc3ViY2xhc3Mgd2hpY2ggd3JhcHMgYSBj
YWxsYmFjayB0byBiZSBleGVjdXRlZCBvbiBldmVyeSB0aWNrCisgICAgICAgIG9mIHRoZSBhc3Nv
Y2lhdGVkIGFuaW1hdGlvbidzIHRpbWVsaW5lOiBDdXN0b21FZmZlY3QuIEl0IGNhbiBiZSBjb25z
dHJ1Y3RlZCBieSBwcm92aWRpbmcgYSBKUyBmdW5jdGlvbgorICAgICAgICBhcyBpdHMgZmlyc3Qg
cGFyYW1ldGVyLCBhbmQgZWl0aGVyIGEgbnVtYmVyIG9yIGEgZGljdGlvbmFyeSB0byBwcm92aWRl
IHRpbWluZyBwcm9wZXJ0aWVzIGZvciB0aGUgZWZmZWN0LgorICAgICAgICBUaGlzIGlzIHNpbWls
YXIgdG8gaG93IEtleWZyYW1lRWZmZWN0IHdpbGwgYWNjZXB0IGEga2V5ZnJhbWVzIG9iamVjdCBh
bmQgdGhlbiB0aW1pbmcgZGF0YS4gVGhlIGNhbGxiYWNrCisgICAgICAgIGlzIHByb3ZpZGVkIHRo
ZSBlZmZlY3QgcHJvZ3Jlc3MgYXMgaXRzIHNvbGUgcGFyYW1ldGVyLiBXZWIgYXV0aG9ycyBjYW4g
dXNlIHRoaXMgbmV3IGludGVyZmFjZSBhcyBmb2xsb3dzOgorCisgICAgICAgICAgICBjb25zdCBh
bmltYXRpb24gPSBuZXcgQW5pbWF0aW9uOworICAgICAgICAgICAgYW5pbWF0aW9uLmVmZmVjdCA9
IG5ldyBDdXN0b21FZmZlY3QocHJvZ3Jlc3MgPT4geyDigKYgfSwgMTAwMCk7CisgICAgICAgICAg
ICBhbmltYXRpb24ucGxheSgpOworCisgICAgICAgIFNlY29uZCwgdG8gbWFrZSBzdGFydGluZyBj
YWxsYmFjay1iYXNlZCBhbmltYXRpb25zIG1vcmUgc3RyYWlnaHRmb3J3YXJkIGFuZCBpbiBhIHZl
cnkgc2ltaWxhciBmYXNoaW9uCisgICAgICAgIHRvIGhvdyBrZXlmcmFtZSBhbmltYXRpb25zIGNh
biBiZSBpbml0aWF0ZWQgb24gYW4gZWxlbWVudCB1c2luZyBFbGVtZW50LmFuaW1hdGUoKSwgd2Ug
aW50cm9kdWNlIGEgbmV3CisgICAgICAgIGFuaW1hdGUoKSBtZXRob2Qgb24gRG9jdW1lbnRUaW1l
bGluZSwgYWxsb3dpbmcgdGhlIHByZXZpb3VzIGV4bWFwbGUgdG8gYmUgd3JpdHRlbiBhczoKKwor
ICAgICAgICAgICAgY29uc3QgYW5pbWF0aW9uID0gZG9jdW1lbnQudGltZWxpbmUuYW5pbWF0ZShw
cm9ncmVzcyA9PiB7IOKApiB9LCAxMDAwKTsKKworICAgICAgICBUaGlzIHNpbXBsZSBhcHByb2Fj
aCBhbGxvd3MgV2ViIGF1dGhvcnMgdG8gbW92ZSBwYXN0IHRoZSBzaW1wbGUgdXNlIG9mIHJlcXVl
c3RBbmltYXRpb25GcmFtZSgpIGFuZCBoYXJuZXNzCisgICAgICAgIHRoZSBXZWIgQW5pbWF0aW9u
cyB0aW1pbmcgbW9kZWwgd2hpY2ggd2lsbCBsZXQgdGhlbSBwYXVzZSBhbmQgcmVzdW1lIGFuaW1h
dGlvbnMsIHNlZWsgdGhlbSwgY29udHJvbCB0aGVpcgorICAgICAgICBwbGF5YmFjayByYXRlLCBh
cHBseSBlYXNpbmcsIHJlc3BvbmQgdG8gdGhlICJmaW5pc2hlZCIgcHJvbWlzZSwgZXRjLgorCisg
ICAgICAgIFRoZSBjb2RlIGl0c2VsZiBpcyB2ZXJ5IHNpbXBsZSwgQ3VzdG9tRWZmZWN0IGlzIHNp
bXBseSBhbiBBbmltYXRpb25FZmZlY3Qgc3ViY2xhc3MgdGhhdCBpbmRpY2F0ZXMgdGhhdCBpdCdz
CisgICAgICAgIGFsd2F5cyBpbnRlcmVzdGVkIGluIHNjaGVkdWxpbmcgdXBkYXRlcyB3aGlsZSBh
Y3RpdmUgdXNpbmcgdGhlIHRpY2tzQ29udGlub3VzbHlXaGlsZUFjdGl2ZSgpIG1ldGhvZC4gVGhp
cworICAgICAgICBtZWFucyB0aGF0IGFsbCB0aGUgc2NoZWR1bGluZyBsb2dpYyBjb250YWluZWQg
aW4gV2ViQW5pbWF0aW9uIGFuZCBBbmltYXRpb25FZmZlY3QgYXBwbGllcywgYWxsb3dpbmcgY2Fs
bGJhY2tzCisgICAgICAgIHRvIG5vdCBiZSBmaXJlZCB3aGVuIHRoZSBhbmltYXRpb24gaXMgcGF1
c2VkIG9yIHdoZW4gdGhlIHBhZ2UgaXMgc3VzcGVuZGVkLCBvciBmaXJlZCBzcGFyaW5nbHkgd2hl
biBhIHN0ZXBzKCkKKyAgICAgICAgdGltaW5nIGZ1bmN0aW9uIGlzIHNwZWNpZmllZC4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgor
ICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBhbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpBbmltYXRpb25FZmZlY3Q6OmlzQ3VzdG9tRWZmZWN0IGNvbnN0KToKKyAg
ICAgICAgKiBhbmltYXRpb24vQ3VzdG9tQW5pbWF0aW9uT3B0aW9ucy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBhbmltYXRpb24vQ3VzdG9tQW5pbWF0aW9uT3B0aW9ucy5pZGw6IEFkZGVkLgorICAgICAg
ICAqIGFuaW1hdGlvbi9DdXN0b21FZmZlY3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkN1c3RvbUVmZmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUVmZmVjdDo6
Q3VzdG9tRWZmZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUVmZmVjdDo6YW5pbWF0aW9u
RGlkVGljayk6CisgICAgICAgICogYW5pbWF0aW9uL0N1c3RvbUVmZmVjdC5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkN1c3RvbUVmZmVjdDo6fkN1c3RvbUVmZmVjdCk6CisgICAgICAgICog
YW5pbWF0aW9uL0N1c3RvbUVmZmVjdC5pZGw6IEFkZGVkLgorICAgICAgICAqIGFuaW1hdGlvbi9D
dXN0b21FZmZlY3RDYWxsYmFjay5oOiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb24vQ3VzdG9t
RWZmZWN0Q2FsbGJhY2suaWRsOiBBZGRlZC4KKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRU
aW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjphbmltYXRl
KToKKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oOgorICAgICAgICAqIGFu
aW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmg6CisKIDIwMjEtMTItMDQgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gQ29tcHV0ZSBpc0ZpcnN0Qm94L2lzTGFzdEJv
eCBmb3IgdGV4dCBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCBjYTYyMWUzYmY2MWUuLjRmZjhlM2YyMGIyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC04MTQsNiAr
ODE0LDkgQEAgJChQUk9KRUNUX0RJUikvYW5pbWF0aW9uL0NTU1RyYW5zaXRpb24uaWRsCiAkKFBS
T0pFQ1RfRElSKS9hbmltYXRpb24vQ29tcG9zaXRlT3BlcmF0aW9uLmlkbAogJChQUk9KRUNUX0RJ
UikvYW5pbWF0aW9uL0NvbXBvc2l0ZU9wZXJhdGlvbk9yQXV0by5pZGwKICQoUFJPSkVDVF9ESVIp
L2FuaW1hdGlvbi9Db21wdXRlZEVmZmVjdFRpbWluZy5pZGwKKyQoUFJPSkVDVF9ESVIpL2FuaW1h
dGlvbi9DdXN0b21BbmltYXRpb25PcHRpb25zLmlkbAorJChQUk9KRUNUX0RJUikvYW5pbWF0aW9u
L0N1c3RvbUVmZmVjdC5pZGwKKyQoUFJPSkVDVF9ESVIpL2FuaW1hdGlvbi9DdXN0b21FZmZlY3RD
YWxsYmFjay5pZGwKICQoUFJPSkVDVF9ESVIpL2FuaW1hdGlvbi9Eb2N1bWVudCtXZWJBbmltYXRp
b25zLmlkbAogJChQUk9KRUNUX0RJUikvYW5pbWF0aW9uL0RvY3VtZW50T3JTaGFkb3dSb290K1dl
YkFuaW1hdGlvbnMuaWRsCiAkKFBST0pFQ1RfRElSKS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKaW5kZXggOWJkNDg0MTE1NTZjLi5kMjdmNmU0NjYwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC01MzAsNiArNTMwLDEyIEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3J5cHRvUnNh
SGFzaGVkS2V5QWxnb3JpdGhtLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNDcnlwdG9Sc2FIYXNoZWRLZXlBbGdvcml0aG0uaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDcnlwdG9Sc2FLZXlBbGdvcml0aG0u
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NyeXB0
b1JzYUtleUFsZ29yaXRobS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0N1c3RvbUFuaW1hdGlvbk9wdGlvbnMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0N1c3RvbUFuaW1hdGlvbk9wdGlvbnMuaAorJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDdXN0b21FZmZlY3Qu
Y3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0N1c3Rv
bUVmZmVjdC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0N1c3RvbUVmZmVjdENhbGxiYWNrLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNDdXN0b21FZmZlY3RDYWxsYmFjay5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ3VzdG9tRWxl
bWVudFJlZ2lzdHJ5LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQ3VzdG9tRXZlbnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAz
NTA1ZjAzYmViOWEuLmE0ZmY0NTFmMmYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC03MDMsNiArNzAzLDkgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUp
L2FuaW1hdGlvbi9Db21wb3NpdGVPcGVyYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL2FuaW1h
dGlvbi9Db21wb3NpdGVPcGVyYXRpb25PckF1dG8uaWRsIFwKICAgICAkKFdlYkNvcmUpL2FuaW1h
dGlvbi9Db21wdXRlZEVmZmVjdFRpbWluZy5pZGwgXAorICAgICQoV2ViQ29yZSkvYW5pbWF0aW9u
L0N1c3RvbUFuaW1hdGlvbk9wdGlvbnMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9D
dXN0b21FZmZlY3QuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9DdXN0b21FZmZlY3RD
YWxsYmFjay5pZGwgXAogICAgICQoV2ViQ29yZSkvYW5pbWF0aW9uL0RvY3VtZW50K1dlYkFuaW1h
dGlvbnMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2FuaW1hdGlvbi9Eb2N1bWVudE9yU2hhZG93Um9v
dCtXZWJBbmltYXRpb25zLmlkbCBcCiAgICAgJChXZWJDb3JlKS9hbmltYXRpb24vRG9jdW1lbnRU
aW1lbGluZS5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNDE1YjRmYzZhMmM4Li41MmQyYmQ3
N2ZiMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMzg0LDYgKzM4NCw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkVHJlZS5oCiAKICAgICBhbmltYXRpb24vQ1NTUHJvcGVydHlCbGVuZGluZ0Ns
aWVudC5oCisgICAgYW5pbWF0aW9uL0N1c3RvbUFuaW1hdGlvbk9wdGlvbnMuaAogICAgIGFuaW1h
dGlvbi9Db21wb3NpdGVPcGVyYXRpb24uaAogICAgIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5l
c0NvbnRyb2xsZXIuaAogICAgIGFuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCBlYjM2OGJkMGEzNDMuLjVjMDNiNTI0NDliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQ2OSw2
ICs0NjksNyBAQCBhbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwCiBhbmltYXRpb24vQ1NT
QW5pbWF0aW9uLmNwcAogYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAogYW5pbWF0
aW9uL0NTU1RyYW5zaXRpb24uY3BwCithbmltYXRpb24vQ3VzdG9tRWZmZWN0LmNwcAogYW5pbWF0
aW9uL0RlY2xhcmF0aXZlQW5pbWF0aW9uLmNwcAogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUu
Y3BwCiBhbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmNwcApAQCAtMzAwNSw2
ICszMDA2LDkgQEAgSlNDcnlwdG9LZXlQYWlyLmNwcAogSlNDcnlwdG9LZXlVc2FnZS5jcHAKIEpT
Q3J5cHRvUnNhSGFzaGVkS2V5QWxnb3JpdGhtLmNwcAogSlNDcnlwdG9Sc2FLZXlBbGdvcml0aG0u
Y3BwCitKU0N1c3RvbUFuaW1hdGlvbk9wdGlvbnMuY3BwCitKU0N1c3RvbUVmZmVjdC5jcHAKK0pT
Q3VzdG9tRWZmZWN0Q2FsbGJhY2suY3BwCiBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAKIEpT
Q3VzdG9tRXZlbnQuY3BwCiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTVhMDkwYjYy
OWNmLi4yNTg5NWY2NTg3ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyNzksNiArMjI3OSw5IEBACiAJCTcxNUFENzIxMjA1
MDUxM0YwMEQ1OTJEQyAvKiBDU1NUcmFuc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTIzQzE4NjIwNDczOUJBMDA3ODkzOTIgLyogQ1NTVHJh
bnNpdGlvbi5oICovOyB9OwogCQk3MTcyOUY3QjIwRjNCQTQ5MDA4MDFDRTYgLyogRG9jdW1lbnRU
aW1lbGluZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcxNzI5RjdBMjBGM0JBM0EwMDgwMUNFNiAvKiBEb2N1bWVudFRpbWVsaW5lT3B0aW9u
cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcx
NzI5RjdFMjBGM0JCNDcwMDgwMUNFNiAvKiBKU0RvY3VtZW50VGltZWxpbmVPcHRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTcyOUY3QzIwRjNC
QUI5MDA4MDFDRTYgLyogSlNEb2N1bWVudFRpbWVsaW5lT3B0aW9ucy5oICovOyB9OworCQk3MTcz
Njk0QTI3NUUwQjVFMDAzQURBOUIgLyogQ3VzdG9tRWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUE3NEIwODI3NTkyOTM2MDBERTgwQkEgLyog
Q3VzdG9tRWZmZWN0LmggKi87IH07CisJCTcxNzM2OTRCMjc1RTBCNkEwMDNBREE5QiAvKiBDdXN0
b21FZmZlY3RDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNzFBNzRCMEEyNzU5MkIzNTAwREU4MEJBIC8qIEN1c3RvbUVmZmVjdENhbGxiYWNr
LmggKi87IH07CisJCTcxNzM2OTRDMjc1RTBCQUIwMDNBREE5QiAvKiBDdXN0b21BbmltYXRpb25P
cHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
MTczNjk0NzI3NUUwQjRCMDAzQURBOUIgLyogQ3VzdG9tQW5pbWF0aW9uT3B0aW9ucy5oICovOyB9
OwogCQk3MTc3QUQ1NzI3NDI5NUQxMDAyRjEwM0IgLyogSFRNTE1vZGVsRWxlbWVudENhbWVyYS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzE3N0FENTYy
NzQyOTU5MDAwMkYxMDNCIC8qIEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MTgxQTE2QzI0NEYwRjQwMDA3
RDhBMjQgLyogRG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MTgxQTE2OTI0NEYwRjJDMDA3RDhBMjQgLyog
RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzFBMUI2MDgxREVFNUFENzAwNzNCQ0ZCIC8qIG1vZGVy
bi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFBMUI2MDYxREVFNUE4MjAwNzNCQ0ZCIC8q
IG1vZGVybi1tZWRpYS1jb250cm9scy1sb2NhbGl6ZWQtc3RyaW5ncy5qcyAqLzsgfTsKQEAgLTEx
MDczLDYgKzExMDc2LDggQEAKIAkJNzE3MjlGN0EyMEYzQkEzQTAwODAxQ0U2IC8qIERvY3VtZW50
VGltZWxpbmVPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3Vt
ZW50VGltZWxpbmVPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxNzI5
RjdDMjBGM0JBQjkwMDgwMUNFNiAvKiBKU0RvY3VtZW50VGltZWxpbmVPcHRpb25zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRG9jdW1lbnRUaW1lbGluZU9wdGlvbnMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzE3MjlGN0QyMEYzQkFCQTAwODAxQ0U2IC8q
IEpTRG9jdW1lbnRUaW1lbGluZU9wdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNEb2N1bWVudFRpbWVsaW5lT3B0aW9ucy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTcxNzM2OTQ3Mjc1RTBCNEIwMDNBREE5QiAvKiBDdXN0b21BbmltYXRp
b25PcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEN1c3RvbUFuaW1h
dGlvbk9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzE3MzY5NDkyNzVF
MEI0QzAwM0FEQTlCIC8qIEN1c3RvbUFuaW1hdGlvbk9wdGlvbnMuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEN1c3RvbUFuaW1hdGlvbk9wdGlvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk3MTczREVCRDI2MTRERjA0MDA5N0RGMzIgLyogU3R5bGVhYmxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlYWJsZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxNzdBRDU0Mjc0Mjk1MkYwMDJGMTAzQiAvKiBIVE1MTW9k
ZWxFbGVtZW50Q2FtZXJhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MTW9kZWxFbGVt
ZW50Q2FtZXJhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzE3N0FENTYyNzQy
OTU5MDAwMkYxMDNCIC8qIEhUTUxNb2RlbEVsZW1lbnRDYW1lcmEuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSFRNTE1vZGVsRWxlbWVudENhbWVyYS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTExMDksNiArMTExMTQsMTEgQEAKIAkJNzFBNTdERjAxNTRCRTI1
QzAwMDlEMTIwIC8qIFNWR1BhdGhVdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHUGF0aFV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3MUE1ODE5MzIzNkY0NjY0MDBEODFBMjQgLyogS2V5ZnJhbWVFZmZlY3RTdGFjay5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLZXlmcmFtZUVmZmVjdFN0YWNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxQTU4MTk1MjM2RjQ2NjUwMEQ4MUEyNCAvKiBLZXlm
cmFtZUVmZmVjdFN0YWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEtleWZyYW1lRWZmZWN0U3RhY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
MUE3NEIwNTI3NTkyOTM2MDBERTgwQkEgLyogQ3VzdG9tRWZmZWN0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBDdXN0b21FZmZlY3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk3MUE3NEIwNzI3NTkyOTM2MDBERTgwQkEgLyogQ3VzdG9tRWZmZWN0LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEN1c3RvbUVmZmVjdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTcxQTc0QjA4Mjc1OTI5MzYwMERFODBCQSAvKiBDdXN0b21FZmZl
Y3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tRWZmZWN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcxQTc0QjA5Mjc1OTJBNTMwMERFODBCQSAvKiBD
dXN0b21FZmZlY3RDYWxsYmFjay5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ3VzdG9tRWZm
ZWN0Q2FsbGJhY2suaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MUE3NEIwQTI3
NTkyQjM1MDBERTgwQkEgLyogQ3VzdG9tRWZmZWN0Q2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3VzdG9tRWZmZWN0Q2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNzFBRUU0RUIyMUI1QTQ5QzAwRERCMDM2IC8qIFRvdWNoQWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRvdWNoQWN0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxQjA0NjBBMUREM0MyRUUwMEVFMTlDRiAvKiBzdGF0dXMt
c3VwcG9ydC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgcGF0aCA9ICJzdGF0
dXMtc3VwcG9ydC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcxQjI4NDI0MjAz
Q0VDMEIwMDM2QUE1RCAvKiBKU0NTU0FuaW1hdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0NTU0FuaW1hdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yNDI1NCw2ICsyNDI2NCwxMyBAQAogCQkJCTcxMjNDMTg3MjA0NzM5QkIwMDc4
OTM5MiAvKiBDU1NUcmFuc2l0aW9uLmNwcCAqLywKIAkJCQk3MTIzQzE4NjIwNDczOUJBMDA3ODkz
OTIgLyogQ1NTVHJhbnNpdGlvbi5oICovLAogCQkJCTcxMjNDMTg1MjA0NzM5QjkwMDc4OTM5MiAv
KiBDU1NUcmFuc2l0aW9uLmlkbCAqLywKKwkJCQk3MTczNjk0NzI3NUUwQjRCMDAzQURBOUIgLyog
Q3VzdG9tQW5pbWF0aW9uT3B0aW9ucy5oICovLAorCQkJCTcxNzM2OTQ5Mjc1RTBCNEMwMDNBREE5
QiAvKiBDdXN0b21BbmltYXRpb25PcHRpb25zLmlkbCAqLywKKwkJCQk3MUE3NEIwNzI3NTkyOTM2
MDBERTgwQkEgLyogQ3VzdG9tRWZmZWN0LmNwcCAqLywKKwkJCQk3MUE3NEIwODI3NTkyOTM2MDBE
RTgwQkEgLyogQ3VzdG9tRWZmZWN0LmggKi8sCisJCQkJNzFBNzRCMDUyNzU5MjkzNjAwREU4MEJB
IC8qIEN1c3RvbUVmZmVjdC5pZGwgKi8sCisJCQkJNzFBNzRCMEEyNzU5MkIzNTAwREU4MEJBIC8q
IEN1c3RvbUVmZmVjdENhbGxiYWNrLmggKi8sCisJCQkJNzFBNzRCMDkyNzU5MkE1MzAwREU4MEJB
IC8qIEN1c3RvbUVmZmVjdENhbGxiYWNrLmlkbCAqLywKIAkJCQk3MTVBRDcxRjIwNTA1MTI0MDBE
NTkyREMgLyogRGVjbGFyYXRpdmVBbmltYXRpb24uY3BwICovLAogCQkJCTcxNUFENzFEMjA1MDUx
MjQwMEQ1OTJEQyAvKiBEZWNsYXJhdGl2ZUFuaW1hdGlvbi5oICovLAogCQkJCTdDM0E4QUMwMjUw
OUE2MDIwMDhDNDc3RiAvKiBEb2N1bWVudCtXZWJBbmltYXRpb25zLmlkbCAqLywKQEAgLTMzODA0
LDYgKzMzODIxLDkgQEAKIAkJCQk5M0YxOTkyRjA4MjQ1RTU5MDAxRTlBQkMgLyogQ3Vyc29yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzIyNzJBMjBFODJFODdDMDBFN0Y5NzUgLyogQ3Vyc29yRGF0
YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMjcyQUQwRTgyRThGMzAwRTdGOTc1IC8qIEN1cnNv
ckxpc3QuaCBpbiBIZWFkZXJzICovLAorCQkJCTcxNzM2OTRDMjc1RTBCQUIwMDNBREE5QiAvKiBD
dXN0b21BbmltYXRpb25PcHRpb25zLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MTczNjk0QTI3NUUw
QjVFMDAzQURBOUIgLyogQ3VzdG9tRWZmZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk3MTczNjk0
QjI3NUUwQjZBMDAzQURBOUIgLyogQ3VzdG9tRWZmZWN0Q2FsbGJhY2suaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzRDQzN0EwMUQ1N0IxOUEwMEFCODVFQSAvKiBDdXN0b21FbGVtZW50UmVhY3Rpb25R
dWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUJENEU5MUIxQzQ2MkNGQzAwNTA2NUJDIC8qIEN1
c3RvbUVsZW1lbnRSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjJDRDMyNUExMTU3RTU3
QzAwNjNCMEE3IC8qIEN1c3RvbUV2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaAppbmRleCBiYzMyNjc5NDdmNDkuLjkzZWIyMTlh
NjhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaApAQCAt
NTEsNiArNTEsNyBAQCBjbGFzcyBBbmltYXRpb25FZmZlY3QgOiBwdWJsaWMgUmVmQ291bnRlZDxB
bmltYXRpb25FZmZlY3Q+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdAogcHVibGljOgogICAgIHZpcnR1
YWwgfkFuaW1hdGlvbkVmZmVjdCgpOwogCisgICAgdmlydHVhbCBib29sIGlzQ3VzdG9tRWZmZWN0
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNLZXlmcmFtZUVm
ZmVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBFZmZlY3RUaW1pbmcgZ2V0Qmlu
ZGluZ3NUaW1pbmcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9DdXN0b21BbmltYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ3Vz
dG9tQW5pbWF0aW9uT3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uODk3MDQyZTM3ZWVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0N1c3RvbUFuaW1hdGlvbk9wdGlvbnMuaApAQCAtMCwwICsxLDM3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJFZmZlY3RUaW1pbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
Q3VzdG9tQW5pbWF0aW9uT3B0aW9ucyA6IEVmZmVjdFRpbWluZyB7CisgICAgU3RyaW5nIGlkOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQ3VzdG9tQW5pbWF0aW9uT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQ3VzdG9tQW5pbWF0aW9uT3B0aW9ucy5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi4yNWE3NDJmYTc1NjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ3VzdG9tQW5pbWF0aW9uT3B0aW9ucy5pZGwKQEAgLTAsMCAr
MSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK2Rp
Y3Rpb25hcnkgQ3VzdG9tQW5pbWF0aW9uT3B0aW9ucyA6IEVmZmVjdFRpbWluZyB7CisgICAgRE9N
U3RyaW5nIGlkID0gIiI7Cit9OworCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vQ3VzdG9tRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DdXN0b21FZmZl
Y3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uN2QyMTBlNzI5
NDdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0N1c3RvbUVm
ZmVjdC5jcHAKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXN0b21FZmZl
Y3QuaCIKKworI2luY2x1ZGUgIkN1c3RvbUVmZmVjdENhbGxiYWNrLmgiCisjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvRXhjZXB0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3VzaW5nIG5h
bWVzcGFjZSBKU0M7CisKK0V4Y2VwdGlvbk9yPFJlZjxDdXN0b21FZmZlY3Q+PiBDdXN0b21FZmZl
Y3Q6OmNyZWF0ZShSZWY8Q3VzdG9tRWZmZWN0Q2FsbGJhY2s+JiYgY2FsbGJhY2ssIHN0ZDo6b3B0
aW9uYWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgRWZmZWN0VGltaW5nPj4mJiBvcHRpb25zKQorewor
ICAgIGF1dG8gY3VzdG9tRWZmZWN0ID0gYWRvcHRSZWYoKm5ldyBDdXN0b21FZmZlY3QoV1RGTW92
ZShjYWxsYmFjaykpKTsKKworICAgIGlmIChvcHRpb25zKSB7CisgICAgICAgIE9wdGlvbmFsRWZm
ZWN0VGltaW5nIHRpbWluZzsKKyAgICAgICAgYXV0byBvcHRpb25zVmFsdWUgPSBvcHRpb25zLnZh
bHVlKCk7CisgICAgICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPGRvdWJsZT4ob3B0aW9u
c1ZhbHVlKSkgeworICAgICAgICAgICAgc3RkOjp2YXJpYW50PGRvdWJsZSwgU3RyaW5nPiBkdXJh
dGlvbiA9IHN0ZDo6Z2V0PGRvdWJsZT4ob3B0aW9uc1ZhbHVlKTsKKyAgICAgICAgICAgIHRpbWlu
Zy5kdXJhdGlvbiA9IGR1cmF0aW9uOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYXV0
byBlZmZlY3RUaW1pbmdPcHRpb25zID0gc3RkOjpnZXQ8RWZmZWN0VGltaW5nPihvcHRpb25zVmFs
dWUpOworCisgICAgICAgICAgICB0aW1pbmcgPSB7CisgICAgICAgICAgICAgICAgZWZmZWN0VGlt
aW5nT3B0aW9ucy5kdXJhdGlvbiwKKyAgICAgICAgICAgICAgICBlZmZlY3RUaW1pbmdPcHRpb25z
Lml0ZXJhdGlvbnMsCisgICAgICAgICAgICAgICAgZWZmZWN0VGltaW5nT3B0aW9ucy5kZWxheSwK
KyAgICAgICAgICAgICAgICBlZmZlY3RUaW1pbmdPcHRpb25zLmVuZERlbGF5LAorICAgICAgICAg
ICAgICAgIGVmZmVjdFRpbWluZ09wdGlvbnMuaXRlcmF0aW9uU3RhcnQsCisgICAgICAgICAgICAg
ICAgZWZmZWN0VGltaW5nT3B0aW9ucy5lYXNpbmcsCisgICAgICAgICAgICAgICAgZWZmZWN0VGlt
aW5nT3B0aW9ucy5maWxsLAorICAgICAgICAgICAgICAgIGVmZmVjdFRpbWluZ09wdGlvbnMuZGly
ZWN0aW9uCisgICAgICAgICAgICB9OworICAgICAgICB9CisgICAgICAgIGF1dG8gdXBkYXRlVGlt
aW5nUmVzdWx0ID0gY3VzdG9tRWZmZWN0LT51cGRhdGVUaW1pbmcodGltaW5nKTsKKyAgICAgICAg
aWYgKHVwZGF0ZVRpbWluZ1Jlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHJldHVy
biB1cGRhdGVUaW1pbmdSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIH0KKworICAgIHJl
dHVybiBjdXN0b21FZmZlY3Q7Cit9CisKK0N1c3RvbUVmZmVjdDo6Q3VzdG9tRWZmZWN0KFJlZjxD
dXN0b21FZmZlY3RDYWxsYmFjaz4mJiBjYWxsYmFjaykKKyAgICA6IG1fY2FsbGJhY2soV1RGTW92
ZShjYWxsYmFjaykpCit7Cit9CisKK3ZvaWQgQ3VzdG9tRWZmZWN0OjphbmltYXRpb25EaWRUaWNr
KCkKK3sKKyAgICBhdXRvIGNvbXB1dGVkVGltaW5nID0gZ2V0Q29tcHV0ZWRUaW1pbmcoKTsKKyAg
ICBpZiAoIWNvbXB1dGVkVGltaW5nLnByb2dyZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2NhbGxiYWNrLT5oYW5kbGVFdmVudCgqY29tcHV0ZWRUaW1pbmcucHJvZ3Jlc3MpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vQ3VzdG9tRWZmZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ3VzdG9tRWZmZWN0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xZTBhYTAzYTQ5N2YK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ3VzdG9tRWZmZWN0
LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQW5pbWF0aW9uRWZmZWN0LmgiCisj
aW5jbHVkZSAiQ3VzdG9tRWZmZWN0Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJFZmZlY3RUaW1pbmcu
aCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
Q3VzdG9tRWZmZWN0IDogcHVibGljIEFuaW1hdGlvbkVmZmVjdCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIEV4Y2VwdGlvbk9yPFJlZjxDdXN0b21FZmZlY3Q+PiBjcmVhdGUoUmVmPEN1c3RvbUVmZmVj
dENhbGxiYWNrPiYmLCBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxkb3VibGUsIEVmZmVjdFRp
bWluZz4+JiYpOworICAgIH5DdXN0b21FZmZlY3QoKSB7IH0KKworcHJpdmF0ZToKKyAgICBDdXN0
b21FZmZlY3QoUmVmPEN1c3RvbUVmZmVjdENhbGxiYWNrPiYmKTsKKworICAgIC8vIEFuaW1hdGlv
bkVmZmVjdAorICAgIGJvb2wgaXNDdXN0b21FZmZlY3QoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CisgICAgdm9pZCBhbmltYXRpb25EaWRUaWNrKCkgZmluYWw7CisgICAgYm9vbCB0aWNr
c0NvbnRpbm91c2x5V2hpbGVBY3RpdmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisK
KyAgICBSZWY8Q3VzdG9tRWZmZWN0Q2FsbGJhY2s+IG1fY2FsbGJhY2s7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQU5JTUFUSU9OX0VGRkVD
VChDdXN0b21FZmZlY3QsIGlzQ3VzdG9tRWZmZWN0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0N1c3RvbUVmZmVjdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vQ3VzdG9tRWZmZWN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmE1NTM5MDI2MjY5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9DdXN0b21FZmZlY3QuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEJ5U2V0dGluZz1XZWJB
bmltYXRpb25zQ3VzdG9tRWZmZWN0c0VuYWJsZWQsCisgICAgRXhwb3NlZD1XaW5kb3csCisgICAg
SlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0LAorXSBpbnRlcmZhY2UgQ3VzdG9tRWZmZWN0IDogQW5p
bWF0aW9uRWZmZWN0IHsKKyAgICBjb25zdHJ1Y3RvcihDdXN0b21FZmZlY3RDYWxsYmFjayBjYWxs
YmFjaywgb3B0aW9uYWwgKHVucmVzdHJpY3RlZCBkb3VibGUgb3IgRWZmZWN0VGltaW5nKSBvcHRp
b25zKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ3VzdG9tRWZm
ZWN0Q2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DdXN0b21FZmZlY3RDYWxs
YmFjay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNWM4YzdkMjM2
OTQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0N1c3RvbUVm
ZmVjdENhbGxiYWNrLmgKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQWN0aXZlRE9N
Q2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBDdXN0b21FZmZlY3RDYWxsYmFjayA6IHB1YmxpYyBSZWZDb3VudGVkPEN1
c3RvbUVmZmVjdENhbGxiYWNrPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoK
KyAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAgICB2
aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KGRvdWJsZSBwcm9ncmVzcykg
PSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0N1c3RvbUVmZmVjdENhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9DdXN0b21FZmZlY3RDYWxsYmFjay5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi4wOThhMTE1MjZmMWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hbmltYXRpb24vQ3VzdG9tRWZmZWN0Q2FsbGJhY2suaWRsCkBAIC0wLDAgKzEs
MjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitjYWxs
YmFjayBDdXN0b21FZmZlY3RDYWxsYmFjayA9IHVuZGVmaW5lZCAoZG91YmxlIHByb2dyZXNzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAppbmRleCA1
NDU1Y2E1YjU2ZjcuLjUxYWMxNzdjN2QyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAtMjgsNiArMjgsOSBAQAogCiAjaW5jbHVkZSAiQW5p
bWF0aW9uRXZlbnRCYXNlLmgiCiAjaW5jbHVkZSAiQ1NTVHJhbnNpdGlvbi5oIgorI2luY2x1ZGUg
IkN1c3RvbUFuaW1hdGlvbk9wdGlvbnMuaCIKKyNpbmNsdWRlICJDdXN0b21FZmZlY3QuaCIKKyNp
bmNsdWRlICJDdXN0b21FZmZlY3RDYWxsYmFjay5oIgogI2luY2x1ZGUgIkRlY2xhcmF0aXZlQW5p
bWF0aW9uLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFRpbWVs
aW5lc0NvbnRyb2xsZXIuaCIKQEAgLTQ5NCw0ICs0OTcsMzcgQEAgdW5zaWduZWQgRG9jdW1lbnRU
aW1lbGluZTo6bnVtYmVyT2ZBbmltYXRpb25UaW1lbGluZUludmFsaWRhdGlvbnNGb3JUZXN0aW5n
KCkgY28KICAgICByZXR1cm4gbV9udW1iZXJPZkFuaW1hdGlvblRpbWVsaW5lSW52YWxpZGF0aW9u
c0ZvclRlc3Rpbmc7CiB9CiAKK0V4Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBEb2N1bWVu
dFRpbWVsaW5lOjphbmltYXRlKFJlZjxDdXN0b21FZmZlY3RDYWxsYmFjaz4mJiBjYWxsYmFjaywg
c3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBDdXN0b21BbmltYXRpb25PcHRpb25z
Pj4mJiBvcHRpb25zKQoreworICAgIEFTU0VSVChtX2RvY3VtZW50KTsKKworICAgIFN0cmluZyBp
ZCA9ICIiOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgRWZmZWN0VGlt
aW5nPj4gY3VzdG9tRWZmZWN0T3B0aW9uczsKKworICAgIGlmIChvcHRpb25zKSB7CisgICAgICAg
IHN0ZDo6dmFyaWFudDxkb3VibGUsIEVmZmVjdFRpbWluZz4gY3VzdG9tRWZmZWN0T3B0aW9uc1Zh
cmlhbnQ7CisgICAgICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPGRvdWJsZT4oKm9wdGlv
bnMpKQorICAgICAgICAgICAgY3VzdG9tRWZmZWN0T3B0aW9uc1ZhcmlhbnQgPSBzdGQ6OmdldDxk
b3VibGU+KCpvcHRpb25zKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhdXRvIGN1c3Rv
bUVmZmVjdE9wdGlvbnMgPSBzdGQ6OmdldDxDdXN0b21BbmltYXRpb25PcHRpb25zPigqb3B0aW9u
cyk7CisgICAgICAgICAgICBpZCA9IGN1c3RvbUVmZmVjdE9wdGlvbnMuaWQ7CisgICAgICAgICAg
ICBjdXN0b21FZmZlY3RPcHRpb25zVmFyaWFudCA9IFdURk1vdmUoY3VzdG9tRWZmZWN0T3B0aW9u
cyk7CisgICAgICAgIH0KKyAgICAgICAgY3VzdG9tRWZmZWN0T3B0aW9ucyA9IGN1c3RvbUVmZmVj
dE9wdGlvbnNWYXJpYW50OworICAgIH0KKworICAgIGF1dG8gY3VzdG9tRWZmZWN0UmVzdWx0ID0g
Q3VzdG9tRWZmZWN0OjpjcmVhdGUoV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoY3VzdG9tRWZm
ZWN0T3B0aW9ucykpOworICAgIGlmIChjdXN0b21FZmZlY3RSZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CisgICAgICAgIHJldHVybiBjdXN0b21FZmZlY3RSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwor
CisgICAgYXV0byBhbmltYXRpb24gPSBXZWJBbmltYXRpb246OmNyZWF0ZSgqZG9jdW1lbnQoKSwg
JmN1c3RvbUVmZmVjdFJlc3VsdC5yZXR1cm5WYWx1ZSgpLmdldCgpKTsKKyAgICBhbmltYXRpb24t
PnNldElkKGlkKTsKKworICAgIGF1dG8gYW5pbWF0aW9uUGxheVJlc3VsdCA9IGFuaW1hdGlvbi0+
cGxheSgpOworICAgIGlmIChhbmltYXRpb25QbGF5UmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICByZXR1cm4gYW5pbWF0aW9uUGxheVJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAg
ICByZXR1cm4gYW5pbWF0aW9uOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5oIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaAppbmRleCBhNDJkNjE0ZmNkNjgu
LjBiZmRkNTUzNGQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1l
bGluZS5oCkBAIC0zNCwxMCArMzQsMTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
QW5pbWF0aW9uRXZlbnRCYXNlOworY2xhc3MgQ3VzdG9tRWZmZWN0Q2FsbGJhY2s7CiBjbGFzcyBE
b2N1bWVudFRpbWVsaW5lc0NvbnRyb2xsZXI7CiBjbGFzcyBSZW5kZXJCb3hNb2RlbE9iamVjdDsK
IGNsYXNzIFJlbmRlckVsZW1lbnQ7CiAKK3N0cnVjdCBDdXN0b21BbmltYXRpb25PcHRpb25zOwor
CiBjbGFzcyBEb2N1bWVudFRpbWVsaW5lIGZpbmFsIDogcHVibGljIEFuaW1hdGlvblRpbWVsaW5l
CiB7CiBwdWJsaWM6CkBAIC01MCw2ICs1Myw3IEBAIHB1YmxpYzoKICAgICBEb2N1bWVudCogZG9j
dW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50LmdldCgpOyB9CiAKICAgICBzdGQ6Om9w
dGlvbmFsPFNlY29uZHM+IGN1cnJlbnRUaW1lKCkgb3ZlcnJpZGU7CisgICAgRXhjZXB0aW9uT3I8
UmVmPFdlYkFuaW1hdGlvbj4+IGFuaW1hdGUoUmVmPEN1c3RvbUVmZmVjdENhbGxiYWNrPiYmLCBz
dGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxkb3VibGUsIEN1c3RvbUFuaW1hdGlvbk9wdGlvbnM+
PiYmKTsKIAogICAgIHZvaWQgYW5pbWF0aW9uVGltaW5nRGlkQ2hhbmdlKFdlYkFuaW1hdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgcmVtb3ZlQW5pbWF0aW9uKFdlYkFuaW1hdGlvbiYpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxp
bmUuaWRsIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaWRsCmlu
ZGV4IGIwMjM1NWYzN2Q1NS4uZjJiZTEzZWU3ZDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmUuaWRsCkBAIC0yNyw0ICsyNyw1IEBACiAgICAgRXhwb3Nl
ZD1XaW5kb3cKIF0gaW50ZXJmYWNlIERvY3VtZW50VGltZWxpbmUgOiBBbmltYXRpb25UaW1lbGlu
ZSB7CiAgICAgW0NhbGxXaXRoPURvY3VtZW50XSBjb25zdHJ1Y3RvcihvcHRpb25hbCBEb2N1bWVu
dFRpbWVsaW5lT3B0aW9ucyBvcHRpb25zKTsKKyAgICBbRW5hYmxlZEJ5U2V0dGluZz1XZWJBbmlt
YXRpb25zQ3VzdG9tRWZmZWN0c0VuYWJsZWRdIFdlYkFuaW1hdGlvbiBhbmltYXRlKEN1c3RvbUVm
ZmVjdENhbGxiYWNrIGNhbGxiYWNrLCBvcHRpb25hbCAodW5yZXN0cmljdGVkIGRvdWJsZSBvciBD
dXN0b21BbmltYXRpb25PcHRpb25zKSBvcHRpb25zKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZjE5YTA4OGJkM2M0Li5m
YTM1ZTFiZDhjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
QnVpbHRpbk5hbWVzLmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgbWFjcm8oQ1NTVW5wYXJzZWRWYWx1ZSkgXAogICAgIG1hY3JvKENTU1ZhcmlhYmxlUmVmZXJl
bmNlVmFsdWUpIFwKICAgICBtYWNybyhDdXN0b21FbGVtZW50UmVnaXN0cnkpIFwKKyAgICBtYWNy
byhDdXN0b21FZmZlY3QpIFwKICAgICBtYWNybyhEYXRhYmFzZSkgXAogICAgIG1hY3JvKERhdGFU
cmFuc2Zlckl0ZW0pIFwKICAgICBtYWNybyhEYXRhVHJhbnNmZXJJdGVtTGlzdCkgXAo=
</data>
<flag name="review"
          id="471335"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="471383"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>