<?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>154407</bug_id>
          
          <creation_ts>2016-02-18 12:50:13 -0800</creation_ts>
          <short_desc>Web Inspector: We should have a way to capture heap snapshots programatically.</short_desc>
          <delta_ts>2016-03-29 11:58:13 -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>Web Inspector</component>
          <version>WebKit Local Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>10930</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ggaren</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1166145</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-02-18 12:50:13 -0800</bug_when>
    <thetext>This will come in handy for web devs who need to profile memory usage or detect leaks as a result of executing a certain section of script code.

We should also be able to provide a description string to label the snapshot being taken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166146</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-02-18 12:50:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/24726292&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166156</commentid>
    <comment_count>2</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-02-18 13:04:03 -0800</bug_when>
    <thetext>I&apos;d suggest something like:

    console.heapSnapshot(name);

Which is similar to how we do programmatic JavaScript profiles:

    console.profile(name)
    console.profileEnd(name)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167213</commentid>
    <comment_count>3</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-02-22 15:11:24 -0800</bug_when>
    <thetext>Looks like Microsoft already has:
&lt;https://msdn.microsoft.com/en-us/library/windows/apps/jj819176(v=vs.120).aspx#SnapshotDetails&gt;

    console.takeHeapSnapshot

So we can use that to be consistent!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176015</commentid>
    <comment_count>4</comment_count>
      <attachid>274364</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-17 20:42:03 -0700</bug_when>
    <thetext>Created attachment 274364
[PATCH] Proposed Fix

This adds console.takeHeapSnapshot. It will only work if:

1. The inspector is open
2. The inspector&apos;s Timeline tab has the Heap Allocations timeline (currently this is always)
NOTE: You do not need to be recording.

We may want to provide an alternative, like a Console Message that you can click on to show the snapshot Content View.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176019</commentid>
    <comment_count>5</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-17 21:00:35 -0700</bug_when>
    <thetext>Mozilla bug for this:
Implement console.takeHeapSnapshot
https://bugzilla.mozilla.org/show_bug.cgi?id=960662

Chrome bug for this:
No JavaScript call to trigger a heap snapshot
https://bugs.chromium.org/p/chromium/issues/detail?id=31516</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1176021</commentid>
    <comment_count>6</comment_count>
      <attachid>274366</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-17 21:06:01 -0700</bug_when>
    <thetext>Created attachment 274366
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178723</commentid>
    <comment_count>7</comment_count>
      <attachid>275109</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-03-29 11:00:48 -0700</bug_when>
    <thetext>Created attachment 275109
[PATCH] For Landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178738</commentid>
    <comment_count>8</comment_count>
      <attachid>275109</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-03-29 11:51:34 -0700</bug_when>
    <thetext>Comment on attachment 275109
[PATCH] For Landing

Clearing flags on attachment: 275109

Committed r198786: &lt;http://trac.webkit.org/changeset/198786&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274364</attachid>
            <date>2016-03-17 20:42:03 -0700</date>
            <delta_ts>2016-03-17 21:06:01 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>takeHeapSnapshot.patch</filename>
            <type>text/plain</type>
            <size>33932</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2hlYXBTbmFwc2hvdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9oZWFwU25hcHNob3Qt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyYzJlY2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9oZWFwU25h
cHNob3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Rlc3QgZm9yIHRoZSBDb25zb2xl
LmhlYXBTbmFwc2hvdCBldmVudCB0cmlnZ2VyZWQgYnkgY29uc29sZS50YWtlSGVhcFNuYXBzaG90
LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ29uc29sZS5oZWFwU25hcHNob3QKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBUcmlnZ2VySGVhcFNuYXBzaG90Tm9UaXRsZQorQ29uc29sZS5oZWFw
U25hcHNob3QKK1BBU1M6IFNob3VsZCBoYXZlIGEgdGltZXN0YW1wLgorUEFTUzogU2hvdWxkIGhh
dmUgc25hcHNob3REYXRhLgorUEFTUzogU2hvdWxkIG5vdCBoYXZlIGEgdGl0bGUuCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBUcmlnZ2VySGVhcFNuYXBzaG90V2l0aFRpdGxlCitDb25zb2xlLmhl
YXBTbmFwc2hvdAorUEFTUzogU2hvdWxkIGhhdmUgYSB0aW1lc3RhbXAuCitQQVNTOiBTaG91bGQg
aGF2ZSBzbmFwc2hvdERhdGEuCitQQVNTOiBTaG91bGQgaGF2ZSBleHBlY3RlZCB0aXRsZS4KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvaGVhcFNuYXBzaG90Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9oZWFwU25hcHNob3QuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MTFjNDQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvaGVhcFNuYXBzaG90Lmh0bWwKQEAgLTAs
MCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0cmlnZ2VySGVhcFNuYXBzaG90Tm9UaXRsZSgp
IHsKKyAgICBjb25zb2xlLnRha2VIZWFwU25hcHNob3QoKTsKK30KKworZnVuY3Rpb24gdHJpZ2dl
ckhlYXBTbmFwc2hvdFdpdGhUaXRsZSgpIHsKKyAgICBjb25zb2xlLnRha2VIZWFwU25hcHNob3Qo
IlNuYXBzaG90IFRpdGxlIik7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0
ZSA9IFByb3RvY29sVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDb25zb2xlLmhlYXBTbmFwc2hvdCIp
OworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiVHJpZ2dlckhlYXBT
bmFwc2hvdE5vVGl0bGUiLAorICAgICAgICB0ZXN0OiBmdW5jdGlvbihyZXNvbHZlLCByZWplY3Qp
IHsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmF3YWl0RXZlbnQoe2V2ZW50OiAiQ29u
c29sZS5oZWFwU25hcHNob3QifSkudGhlbigobWVzc2FnZU9iamVjdCkgPT4geworICAgICAgICAg
ICAgICAgIFByb3RvY29sVGVzdC5sb2coIkNvbnNvbGUuaGVhcFNuYXBzaG90Iik7CisgICAgICAg
ICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQodHlwZW9mIG1lc3NhZ2VPYmplY3QucGFy
YW1zLnRpbWVzdGFtcCA9PT0gIm51bWJlciIsICJTaG91bGQgaGF2ZSBhIHRpbWVzdGFtcC4iKTsK
KyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdCh0eXBlb2YgbWVzc2FnZU9i
amVjdC5wYXJhbXMuc25hcHNob3REYXRhID09PSAic3RyaW5nIiwgIlNob3VsZCBoYXZlIHNuYXBz
aG90RGF0YS4iKTsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdCghbWVz
c2FnZU9iamVjdC5wYXJhbXMudGl0bGUsICJTaG91bGQgbm90IGhhdmUgYSB0aXRsZS4iKTsKKyAg
ICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg
UHJvdG9jb2xUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2VySGVhcFNuYXBzaG90Tm9UaXRsZSgp
Iik7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIlRyaWdnZXJIZWFwU25hcHNob3RXaXRoVGl0bGUiLAorICAgICAgICB0ZXN0OiBm
dW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29s
LmF3YWl0RXZlbnQoe2V2ZW50OiAiQ29uc29sZS5oZWFwU25hcHNob3QifSkudGhlbigobWVzc2Fn
ZU9iamVjdCkgPT4geworICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5sb2coIkNvbnNvbGUu
aGVhcFNuYXBzaG90Iik7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQo
dHlwZW9mIG1lc3NhZ2VPYmplY3QucGFyYW1zLnRpbWVzdGFtcCA9PT0gIm51bWJlciIsICJTaG91
bGQgaGF2ZSBhIHRpbWVzdGFtcC4iKTsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhw
ZWN0VGhhdCh0eXBlb2YgbWVzc2FnZU9iamVjdC5wYXJhbXMuc25hcHNob3REYXRhID09PSAic3Ry
aW5nIiwgIlNob3VsZCBoYXZlIHNuYXBzaG90RGF0YS4iKTsKKyAgICAgICAgICAgICAgICBQcm90
b2NvbFRlc3QuZXhwZWN0VGhhdChtZXNzYWdlT2JqZWN0LnBhcmFtcy50aXRsZSA9PT0gIlNuYXBz
aG90IFRpdGxlIiwgIlNob3VsZCBoYXZlIGV4cGVjdGVkIHRpdGxlLiIpOworICAgICAgICAgICAg
ICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBQcm90b2NvbFRl
c3QuZXZhbHVhdGVJblBhZ2UoInRyaWdnZXJIZWFwU25hcHNob3RXaXRoVGl0bGUoKSIpOworICAg
ICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBm
b3IgdGhlIENvbnNvbGUuaGVhcFNuYXBzaG90IGV2ZW50IHRyaWdnZXJlZCBieSBjb25zb2xlLnRh
a2VIZWFwU25hcHNob3QuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVD
bGllbnQuY3BwCmluZGV4IGY0YTE1NWQuLmUzNjg1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNs
aWVudC5jcHAKQEAgLTgzLDYgKzgzLDExIEBAIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xp
ZW50Ojpwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikKICAgICAvLyBG
SVhNRTogc3VwcG9ydCB8Y29uc29sZS5wcm9maWxlfCBmb3IgSlNDb250ZXh0cy4gPGh0dHBzOi8v
d2Via2l0Lm9yZy9iLzEzNjQ2Nj4KIH0KIAordm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGll
bnQ6OnRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxl
KQoreworICAgIG1fY29uc29sZUFnZW50LT50YWtlSGVhcFNuYXBzaG90KHRpdGxlKTsKK30KKwog
dm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnRpbWUoRXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSkKIHsKICAgICBtX2NvbnNvbGVBZ2VudC0+c3RhcnRUaW1pbmcodGl0bGUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9i
amVjdENvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgKaW5kZXggMzIyMDE5OS4uZjM2ODdmNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNv
bGVDbGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFs
T2JqZWN0Q29uc29sZUNsaWVudC5oCkBAIC00Niw2ICs0Niw3IEBAIHByb3RlY3RlZDoKICAgICB2
b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CisgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0
aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAg
dm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJn
dW1lbnRzPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVy
LmNwcAppbmRleCBmZDdmODY5Li5mMGZmYzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCkBAIC04NSw3ICs4NSw4IEBAIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9y
Q29udHJvbGxlcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKEpTR2xvYmFsT2Jq
CiAKICAgICBhdXRvIGluc3BlY3RvckFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JB
Z2VudD4oY29udGV4dCk7CiAgICAgYXV0byBydW50aW1lQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PEpTR2xvYmFsT2JqZWN0UnVudGltZUFnZW50Pihjb250ZXh0KTsKLSAgICBhdXRvIGNvbnNvbGVB
Z2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQ+KGNvbnRl
eHQpOworICAgIGF1dG8gaGVhcEFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JIZWFw
QWdlbnQ+KGNvbnRleHQpOworICAgIGF1dG8gY29uc29sZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudD4oY29udGV4dCwgaGVhcEFnZW50LmdldCgpKTsK
ICAgICBhdXRvIGRlYnVnZ2VyQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFsT2JqZWN0
RGVidWdnZXJBZ2VudD4oY29udGV4dCwgY29uc29sZUFnZW50LmdldCgpKTsKIAogICAgIG1faW5z
cGVjdG9yQWdlbnQgPSBpbnNwZWN0b3JBZ2VudC5nZXQoKTsKQEAgLTk3LDcgKzk4LDcgQEAgSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNv
bnRyb2xsZXIoSlNHbG9iYWxPYmoKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShydW50aW1l
QWdlbnQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShjb25zb2xlQWdlbnQpKTsKICAg
ICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShkZWJ1Z2dlckFnZW50KSk7Ci0gICAgbV9hZ2VudHMu
YXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9ySGVhcEFnZW50Pihjb250ZXh0KSk7Cisg
ICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUoaGVhcEFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBw
ZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudD4oY29udGV4
dCkpOwogCiAgICAgbV9leGVjdXRpb25TdG9wd2F0Y2gtPnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcAppbmRleCBlNTE4ZjdmLi4zMTE2YjA2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNvbnNvbGVBZ2VudC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb25zb2xlTWVz
c2FnZS5oIgogI2luY2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgogI2luY2x1ZGUgIklu
c3BlY3RvckZyb250ZW5kUm91dGVyLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySGVhcEFnZW50Lmgi
CiAjaW5jbHVkZSAiU2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbEZyYW1l
LmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC00MywxMSArNDQsMTIgQEAgbmFt
ZXNwYWNlIEluc3BlY3RvciB7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bUNvbnNvbGVN
ZXNzYWdlcyA9IDEwMDsKIHN0YXRpYyBjb25zdCBpbnQgZXhwaXJlQ29uc29sZU1lc3NhZ2VzU3Rl
cCA9IDEwOwogCi1JbnNwZWN0b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudChB
Z2VudENvbnRleHQmIGNvbnRleHQpCitJbnNwZWN0b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNv
bnNvbGVBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQsIEluc3BlY3RvckhlYXBBZ2VudCogaGVh
cEFnZW50KQogICAgIDogSW5zcGVjdG9yQWdlbnRCYXNlKEFTQ0lJTGl0ZXJhbCgiQ29uc29sZSIp
KQogICAgICwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIoY29udGV4dC5pbmplY3RlZFNjcmlwdE1h
bmFnZXIpCiAgICAgLCBtX2Zyb250ZW5kRGlzcGF0Y2hlcihzdGQ6Om1ha2VfdW5pcXVlPENvbnNv
bGVGcm9udGVuZERpc3BhdGNoZXI+KGNvbnRleHQuZnJvbnRlbmRSb3V0ZXIpKQogICAgICwgbV9i
YWNrZW5kRGlzcGF0Y2hlcihDb25zb2xlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShjb250ZXh0
LmJhY2tlbmREaXNwYXRjaGVyLCB0aGlzKSkKKyAgICAsIG1faGVhcEFnZW50KGhlYXBBZ2VudCkK
IHsKIH0KIApAQCAtMTUzLDYgKzE1NSwxOSBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6
c3RvcFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbAogICAg
IGFkZE1lc3NhZ2VUb0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVz
c2FnZVNvdXJjZTo6Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWluZywgTWVzc2FnZUxldmVs
OjpEZWJ1ZywgbWVzc2FnZSwgY2FsbFN0YWNrKSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29uc29s
ZUFnZW50Ojp0YWtlSGVhcFNuYXBzaG90KGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgaWYg
KCFtX2luamVjdGVkU2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3Bl
ckV4dHJhc0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRXJyb3JTdHJpbmcgaWdu
b3JlZDsKKyAgICBkb3VibGUgdGltZXN0YW1wOworICAgIFN0cmluZyBzbmFwc2hvdERhdGE7Cisg
ICAgbV9oZWFwQWdlbnQtPnNuYXBzaG90KGlnbm9yZWQsICZ0aW1lc3RhbXAsICZzbmFwc2hvdERh
dGEpOworCisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPmhlYXBTbmFwc2hvdCh0aW1lc3RhbXAs
IHNuYXBzaG90RGF0YSwgdGl0bGUuaXNFbXB0eSgpID8gbnVsbHB0ciA6ICZ0aXRsZSk7Cit9CisK
IHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IFBhc3NSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUo
c3RhdGUsIFNjcmlwdENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JDb25zb2xlQWdlbnQuaAppbmRleCA4NzNmNmQzLi45NDUxZWM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xl
QWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuaApAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9y
IHsKIAogY2xhc3MgQ29uc29sZU1lc3NhZ2U7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7
CitjbGFzcyBJbnNwZWN0b3JIZWFwQWdlbnQ7CiBjbGFzcyBTY3JpcHRBcmd1bWVudHM7CiBjbGFz
cyBTY3JpcHRDYWxsU3RhY2s7CiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKQEAgLTUyLDcg
KzUzLDcgQEAgY2xhc3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yQ29uc29sZUFnZW50IDog
cHVibGljIEluc3BlY3RvckFnZW50QmFzZSwgcHVibGkKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShJbnNwZWN0b3JDb25zb2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgotICAgIEluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmKTsKKyAgICBJ
bnNwZWN0b3JDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9ySGVhcEFnZW50Kik7
CiAgICAgdmlydHVhbCB+SW5zcGVjdG9yQ29uc29sZUFnZW50KCk7CiAKICAgICB2b2lkIGRpZENy
ZWF0ZUZyb250ZW5kQW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVy
Kikgb3ZlcnJpZGU7CkBAIC03MSw2ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnRU
aW1pbmcoY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCBzdG9wVGltaW5nKGNvbnN0IFN0
cmluZyYgdGl0bGUsIFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgdm9pZCB0YWtl
SGVhcFNuYXBzaG90KGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgY291bnQoSlNDOjpF
eGVjU3RhdGUqLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogCiBwcm90ZWN0ZWQ6CkBA
IC03OSw2ICs4MSw3IEBAIHByb3RlY3RlZDoKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1f
aW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb25zb2xlRnJvbnRl
bmREaXNwYXRjaGVyPiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8Q29uc29sZUJh
Y2tlbmREaXNwYXRjaGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOworICAgIEluc3BlY3RvckhlYXBB
Z2VudCogbV9oZWFwQWdlbnQ7CiAKICAgICBDb25zb2xlTWVzc2FnZSogbV9wcmV2aW91c01lc3Nh
Z2UgeyBudWxscHRyIH07CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDb25zb2xlTWVzc2Fn
ZT4+IG1fY29uc29sZU1lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDAyMTdkYzYuLjQwMTE2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudC5jcHAKQEAgLTI4LDggKzI4LDggQEAKIAogbmFtZXNwYWNlIEluc3BlY3Rv
ciB7CiAKLUpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50OjpKU0dsb2JhbE9iamVjdENvbnNvbGVB
Z2VudChBZ2VudENvbnRleHQmIGNvbnRleHQpCi0gICAgOiBJbnNwZWN0b3JDb25zb2xlQWdlbnQo
Y29udGV4dCkKK0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50OjpKU0dsb2JhbE9iamVjdENvbnNv
bGVBZ2VudChBZ2VudENvbnRleHQmIGNvbnRleHQsIEluc3BlY3RvckhlYXBBZ2VudCogaGVhcEFn
ZW50KQorICAgIDogSW5zcGVjdG9yQ29uc29sZUFnZW50KGNvbnRleHQsIGhlYXBBZ2VudCkKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmgKaW5kZXggYjFkYWU0Yy4u
YzA2OWM4MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50IGZpbmFsIDogcHVibGlj
IEluc3BlY3RvckNvbnNvbGVBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNHbG9i
YWxPYmplY3RDb25zb2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50KEFnZW50Q29udGV4dCYpOworICAg
IEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50KEFnZW50Q29udGV4dCYsIEluc3BlY3RvckhlYXBB
Z2VudCopOwogICAgIHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50KCkgeyB9CiAK
ICAgICAvLyBGSVhNRTogWEhScyBhbmQgTm9kZXMgb25seSBtYWtlcyBzZW5zZSBkZWJ1Z2dpbmcg
YSBXZWIgY29udGV4dC4gQ2FuIHRoaXMgYmUgbW92ZWQgdG8gYSBkaWZmZXJlbnQgYWdlbnQ/CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNv
bGUuanNvbiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29s
ZS5qc29uCmluZGV4IGEyNTUzNjIuLmJlYzFkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCkBAIC04NCw2ICs4NCwx
NSBAQAogICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJtZXNzYWdlc0NsZWFyZWQiLAog
ICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIklzc3VlZCB3aGVuIGNvbnNvbGUgaXMgY2xlYXJl
ZC4gVGhpcyBoYXBwZW5zIGVpdGhlciB1cG9uIDxjb2RlPmNsZWFyTWVzc2FnZXM8L2NvZGU+IGNv
bW1hbmQgb3IgYWZ0ZXIgcGFnZSBuYXZpZ2F0aW9uLiIKKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAiaGVhcFNuYXBzaG90IiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJJc3N1ZWQgZnJvbSBjb25zb2xlLnRha2VIZWFwU25hcHNob3QuIiwKKyAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZXN0YW1w
IiwgInR5cGUiOiAibnVtYmVyIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic25hcHNo
b3REYXRhIiwgIiRyZWYiOiAiSGVhcC5IZWFwU25hcHNob3REYXRhIiwgImRlc2NyaXB0aW9uIjog
IlNuYXBzaG90IGF0IHRoZSBlbmQgb2YgdHJhY2tpbmcuIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidGl0bGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiT3B0aW9uYWwgdGl0bGUgcHJvdmlkZWQgdG8gY29uc29sZS50YWtlSGVhcFNu
YXBzaG90LiIgfQorICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oCmluZGV4IGExNmI4NWIuLmE5
ZmFhNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVD
bGllbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50
LmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb3VudChFeGVj
U3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgcHJvZmlsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHByb2ZpbGVFbmQoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGltZShFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRpbWVFbmQo
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0
aW1lU3RhbXAoRXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYm
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xl
UHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVQcm90
b3R5cGUuY3BwCmluZGV4IGM4ZGIwNjguLmYxODVmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVQcm90b3R5cGUuY3BwCkBAIC01Miw2ICs1Miw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNBc3Nl
cnQoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
b2xlUHJvdG9GdW5jQ291bnQoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEV4
ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVBy
b3RvRnVuY1Rha2VIZWFwU25hcHNob3QoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZShFeGVjU3RhdGUqKTsKIHN0YXRp
YyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKEV4
ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVBy
b3RvRnVuY1RpbWVTdGFtcChFeGVjU3RhdGUqKTsKQEAgLTg2LDYgKzg3LDcgQEAgdm9pZCBDb25z
b2xlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QpCiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRp
bWUiLCBjb25zb2xlUHJvdG9GdW5jVGltZSwgTm9uZSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5D
VElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRpbWVFbmQiLCBjb25zb2xlUHJvdG9GdW5jVGltZUVu
ZCwgTm9uZSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
InRpbWVTdGFtcCIsIGNvbnNvbGVQcm90b0Z1bmNUaW1lU3RhbXAsIE5vbmUsIDApOworICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0YWtlSGVhcFNuYXBzaG90Iiwg
Y29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25hcHNob3QsIE5vbmUsIDApOwogICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJncm91cCIsIGNvbnNvbGVQcm90b0Z1bmNH
cm91cCwgTm9uZSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04oImdyb3VwQ29sbGFwc2VkIiwgY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkLCBOb25l
LCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZ3JvdXBF
bmQiLCBjb25zb2xlUHJvdG9GdW5jR3JvdXBFbmQsIE5vbmUsIDApOwpAQCAtMjU4LDcgKzI2MCw3
IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQ
cm9maWxlKEV4ZWNTdGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKIAogICAgIHNpemVfdCBhcmdzQ291bnQgPSBleGVjLT5hcmd1bWVudENv
dW50KCk7Ci0gICAgaWYgKGFyZ3NDb3VudCA8PSAwKSB7CisgICAgaWYgKCFhcmdzQ291bnQpIHsK
ICAgICAgICAgY2xpZW50LT5wcm9maWxlKGV4ZWMsIFN0cmluZygpKTsKICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9CkBAIC0yODIsNyArMjg0LDcg
QEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1By
b2ZpbGVFbmQoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzVW5kZWZpbmVkKCkpOwogCiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50
Q291bnQoKTsKLSAgICBpZiAoYXJnc0NvdW50IDw9IDApIHsKKyAgICBpZiAoIWFyZ3NDb3VudCkg
ewogICAgICAgICBjbGllbnQtPnByb2ZpbGVFbmQoZXhlYywgU3RyaW5nKCkpOwogICAgICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIH0KQEAgLTI5NSw2ICsy
OTcsMzAgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY1Byb2ZpbGVFbmQoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90KEV4ZWNTdGF0ZSogZXhlYykKK3sK
KyAgICBKU0NvbnNvbGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4
ZWMtPnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAoIWNhc3RlZFRoaXMpCisgICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKGV4ZWMpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2Fz
dGVkVGhpcywgSlNDb25zb2xlOjppbmZvKCkpOworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9
IGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgaWYgKCFj
bGllbnQpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisK
KyAgICBzaXplX3QgYXJnc0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOworICAgIGlmICgh
YXJnc0NvdW50KSB7CisgICAgICAgIGNsaWVudC0+dGFrZUhlYXBTbmFwc2hvdChleGVjLCBTdHJp
bmcoKSk7CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Cisg
ICAgfQorCisgICAgY29uc3QgU3RyaW5nJiB0aXRsZSh2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5l
ZE9yTnVsbENoZWNrKGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgaWYgKGV4ZWMtPmhh
ZEV4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOworCisgICAgY2xpZW50LT50YWtlSGVhcFNuYXBzaG90KGV4ZWMsIHRpdGxlKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBzdGF0aWMgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZShFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgSlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNv
bGUqPihleGVjLT50aGlzVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAppbmRleCA2YTA1YzJm
Li40ODQ5MjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29uc29sZUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTU0LDYgKzU0LDEzIEBAIGlubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFBhZ2UmIHBhZ2Us
IEpTQzo6RXhlY1N0YXRlKiBzCiAgICAgY29uc29sZUNvdW50SW1wbChpbnN0cnVtZW50aW5nQWdl
bnRzRm9yUGFnZShwYWdlKSwgc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKK2lubGlu
ZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGFrZUhlYXBTbmFwc2hvdChGcmFtZSYg
ZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJP
TlRFTkRTKHZvaWQoKSk7CisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRp
bmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICB0
YWtlSGVhcFNuYXBzaG90SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdGl0bGUpOworfQorCiBp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZyhG
cmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgaWYgKEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJh
bWUoZnJhbWUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRy
b2xsZXIuY3BwCmluZGV4IGE4NDExYWMuLmNiNDJlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTE2Miw3ICsxNjIsMTEgQEAg
SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlJiBwYWdlLCBJbnNw
ZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBtX3RpbWVsaW5lQWdlbnQgPSB0aW1lbGluZUFn
ZW50UHRyLmdldCgpOwogICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKHRpbWVsaW5lQWdlbnRQ
dHIpKTsKIAotICAgIGF1dG8gY29uc29sZUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdl
Q29uc29sZUFnZW50PihwYWdlQ29udGV4dCwgbV9kb21BZ2VudCk7CisgICAgYXV0byBoZWFwQWdl
bnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckhlYXBBZ2VudD4ocGFnZUNvbnRleHQp
OworICAgIEluc3BlY3RvckhlYXBBZ2VudCogaGVhcEFnZW50ID0gaGVhcEFnZW50UHRyLmdldCgp
OworICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKGhlYXBBZ2VudFB0cikpOworCisgICAgYXV0
byBjb25zb2xlQWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDb25zb2xlQWdlbnQ+KHBh
Z2VDb250ZXh0LCBoZWFwQWdlbnQsIG1fZG9tQWdlbnQpOwogICAgIFdlYkNvbnNvbGVBZ2VudCog
Y29uc29sZUFnZW50ID0gY29uc29sZUFnZW50UHRyLmdldCgpOwogICAgIG1faW5zdHJ1bWVudGlu
Z0FnZW50cy0+c2V0V2ViQ29uc29sZUFnZW50KGNvbnNvbGVBZ2VudFB0ci5nZXQoKSk7CiAgICAg
bV9hZ2VudHMuYXBwZW5kKFdURk1vdmUoY29uc29sZUFnZW50UHRyKSk7CkBAIC0xNzIsNyArMTc2
LDYgQEAgSW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlJiBwYWdl
LCBJbnNwZWN0b3JDbGllbnQqIGluc3BlY3RvckMKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92
ZShkZWJ1Z2dlckFnZW50UHRyKSk7CiAKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3Vu
aXF1ZTxJbnNwZWN0b3JET01EZWJ1Z2dlckFnZW50PihwYWdlQ29udGV4dCwgbV9kb21BZ2VudCwg
ZGVidWdnZXJBZ2VudCkpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPElu
c3BlY3RvckhlYXBBZ2VudD4ocGFnZUNvbnRleHQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoc3Rk
OjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50PihwYWdlQ29udGV4dCkp
OwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckFwcGxpY2F0
aW9uQ2FjaGVBZ2VudD4ocGFnZUNvbnRleHQsIHBhZ2VBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFw
cGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckxheWVyVHJlZUFnZW50PihwYWdlQ29udGV4
dCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcAppbmRleCAwMTUzOTQ2Li43Y2JkNTk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtODU1
LDYgKzg1NSwxMiBAQCB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aQogICAgICAgICBjb25zb2xlQWdl
bnQtPmNvdW50KHN0YXRlLCBhcmd1bWVudHMpOwogfQogCit2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6dGFrZUhlYXBTbmFwc2hvdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1
bWVudGluZ0FnZW50cywgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBpZiAoV2ViQ29uc29s
ZUFnZW50KiBjb25zb2xlQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2Vu
dCgpKQorICAgICAgICBjb25zb2xlQWdlbnQtPnRha2VIZWFwU25hcHNob3QodGl0bGUpOworfQor
CiB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSYgZnJhbWUsIGNv
bnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRp
bWVsaW5lQWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvclRpbWVsaW5lQWdlbnQo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaAppbmRleCA5M2RmMTg0Li5kYmFmY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0yMDksNiArMjA5LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyR2xv
YmFsU2NvcGUqLCBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4pOwog
CiAgICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50KFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIFJl
ZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgc3RhdGljIHZvaWQgdGFr
ZUhlYXBTbmFwc2hvdChGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2
b2lkIHN0YXJ0Q29uc29sZVRpbWluZyhGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAg
IHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nKEZyYW1lJiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKICAgICBzdGF0aWMgdm9p
ZCBjb25zb2xlVGltZVN0YW1wKEZyYW1lJiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1l
bnRzPiYmKTsKQEAgLTM4Miw2ICszODMsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGFk
ZE1lc3NhZ2VUb0NvbnNvbGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBzdGQ6OnVuaXF1ZV9w
dHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4pOwogCiAgICAgc3RhdGljIHZvaWQgY29uc29s
ZUNvdW50SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8
SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOworICAgIHN0YXRpYyB2b2lkIHRha2VIZWFw
U25hcHNob3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsK
ICAgICBzdGF0aWMgdm9pZCBzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2Vu
dHMmLCBGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0b3BD
b25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwogICAgIHN0
YXRpYyB2b2lkIGNvbnNvbGVUaW1lU3RhbXBJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBGcmFt
ZSYsIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAKaW5kZXggMDE0OWEwZi4uNmRjOTBk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmNwcApA
QCAtNDEsOCArNDEsOCBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVBhZ2VDb25zb2xlQWdlbnQ6OlBhZ2VDb25zb2xlQWdlbnQoV2ViQWdlbnRD
b250ZXh0JiBjb250ZXh0LCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCi0gICAgOiBXZWJD
b25zb2xlQWdlbnQoY29udGV4dCkKK1BhZ2VDb25zb2xlQWdlbnQ6OlBhZ2VDb25zb2xlQWdlbnQo
V2ViQWdlbnRDb250ZXh0JiBjb250ZXh0LCBJbnNwZWN0b3JIZWFwQWdlbnQqIGhlYXBBZ2VudCwg
SW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50KQorICAgIDogV2ViQ29uc29sZUFnZW50KGNvbnRl
eHQsIGhlYXBBZ2VudCkKICAgICAsIG1faW5zcGVjdG9yRE9NQWdlbnQoZG9tQWdlbnQpCiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaAppbmRleCA1NWM2
ZWZjLi41ZWRkNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNv
bnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFn
ZW50LmgKQEAgLTQzLDcgKzQzLDcgQEAgY2xhc3MgUGFnZUNvbnNvbGVBZ2VudCBmaW5hbCA6IHB1
YmxpYyBXZWJDb25zb2xlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25z
b2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFBh
Z2VDb25zb2xlQWdlbnQoV2ViQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yRE9NQWdlbnQqKTsKKyAg
ICBQYWdlQ29uc29sZUFnZW50KFdlYkFnZW50Q29udGV4dCYsIEluc3BlY3Rvcjo6SW5zcGVjdG9y
SGVhcEFnZW50KiwgSW5zcGVjdG9yRE9NQWdlbnQqKTsKICAgICB2aXJ0dWFsIH5QYWdlQ29uc29s
ZUFnZW50KCkgeyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvV2ViQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJD
b25zb2xlQWdlbnQuY3BwCmluZGV4IDMzZWMwYjcuLjg5MDUyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuY3BwCkBAIC00MSw4ICs0MSw4IEBAIHVzaW5n
IG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViQ29uc29s
ZUFnZW50OjpXZWJDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0KQotICAgIDogSW5z
cGVjdG9yQ29uc29sZUFnZW50KGNvbnRleHQpCitXZWJDb25zb2xlQWdlbnQ6OldlYkNvbnNvbGVB
Z2VudChBZ2VudENvbnRleHQmIGNvbnRleHQsIEluc3BlY3RvckhlYXBBZ2VudCogaGVhcEFnZW50
KQorICAgIDogSW5zcGVjdG9yQ29uc29sZUFnZW50KGNvbnRleHQsIGhlYXBBZ2VudCkKIHsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oCmluZGV4IGQ1NjRk
ZWQuLmIwYTZjZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJDb25z
b2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50
LmgKQEAgLTM5LDcgKzM5LDcgQEAgY2xhc3MgV2ViQ29uc29sZUFnZW50IDogcHVibGljIEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
ZWJDb25zb2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgot
ICAgIFdlYkNvbnNvbGVBZ2VudChJbnNwZWN0b3I6OkFnZW50Q29udGV4dCYpOworICAgIFdlYkNv
bnNvbGVBZ2VudChJbnNwZWN0b3I6OkFnZW50Q29udGV4dCYsIEluc3BlY3Rvcjo6SW5zcGVjdG9y
SGVhcEFnZW50Kik7CiAgICAgdmlydHVhbCB+V2ViQ29uc29sZUFnZW50KCkgeyB9CiAKICAgICB2
b2lkIHNldE1vbml0b3JpbmdYSFJFbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVkKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKaW5kZXggMTE2
NGUwMC4uNWNmYTk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5j
cHAKQEAgLTE5NSw2ICsxOTUsMTEgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZUVu
ZChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICAgICAgbV9w
cm9maWxlcy5hcHBlbmQoV1RGTW92ZShwcm9maWxlKSk7CiB9CiAKK3ZvaWQgUGFnZUNvbnNvbGVD
bGllbnQ6OnRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKQoreworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGFrZUhlYXBTbmFwc2hvdCht
X3BhZ2UubWFpbkZyYW1lKCksIHRpdGxlKTsKK30KKwogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6
dGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpzdGFydENvbnNvbGVUaW1pbmcobV9wYWdlLm1haW5GcmFtZSgp
LCB0aXRsZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKaW5kZXggNDY4
MWFhMS4uY2U1YzUxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29s
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApA
QCAtNjksNiArNjksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0
ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgb3ZlcnJpZGU7CisgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lRW5k
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1
bWVudHM+JiYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29u
c29sZUNsaWVudC5jcHAKaW5kZXggZjk4YTliYi4uYjNlZGQ0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3BwCkBAIC01Niw2ICs1Niw3IEBAIHZv
aWQgV29ya2VyQ29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0
IFN0cmluZyYpIHsgfQogCiAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNzYzND4g
V2ViIEluc3BlY3Rvcjogc3VwcG9ydCBkZWJ1Z2dpbmcgd2ViIHdvcmtlcnMKIHZvaWQgV29ya2Vy
Q29uc29sZUNsaWVudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1l
bnRzPiYmKSB7IH0KK3ZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6dGFrZUhlYXBTbmFwc2hvdChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpIHsgfQogdm9pZCBXb3JrZXJDb25zb2xlQ2xp
ZW50Ojp0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFdvcmtl
ckNvbnNvbGVDbGllbnQ6OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKSB7
IH0KIHZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6dGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwg
UmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyQ29uc29sZUNsaWVudC5oCmluZGV4IDhiZTQ1MGQuLjM2MTEyMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oCkBAIC00Nyw2ICs0Nyw3IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGUoSlND
OjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHBy
b2ZpbGVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsK
KyAgICB2b2lkIHRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWVTdGFtcChKU0M6
OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5s
cHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXph
dGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5ncy5qcwppbmRleCA2MGY1NDUyMTJkMDI2Yzhj
MTg1OGM1ZDgxMzllMTUxNGFjMWNlZWEzLi44MTA2NTQ0ZmY3YThhOWFjYTkxYWQ2YTU1NTRiYTAw
YmY4YTU1MTVhIDEwMDY0NApHSVQgYmluYXJ5IHBhdGNoCmRlbHRhIDQzCnVjbWJQbmdMVG5PKWBs
Jk4/ZlEoV2xsTlZlb2N1bjRZcjN4aXFZIyt1STkobWMrenluU1hhZkwlITRNaCUKCmRlbHRhIDIy
CmVjbVoyPGxYYj1vKWBsJk4/ZlRRQjRIKSZkK1ohK0ArVy1KK195X21eCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ29uc29sZU9ic2Vy
dmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ29u
c29sZU9ic2VydmVyLmpzCmluZGV4IGNmYzJmYzAuLmM0MmRjODAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0NvbnNvbGVPYnNlcnZlci5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9Db25z
b2xlT2JzZXJ2ZXIuanMKQEAgLTUyLDQgKzUyLDEzIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlT2Jz
ZXJ2ZXIgPSBjbGFzcyBDb25zb2xlT2JzZXJ2ZXIKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rv
ci5sb2dNYW5hZ2VyLm1lc3NhZ2VzQ2xlYXJlZCgpOwogICAgIH0KKworICAgIGhlYXBTbmFwc2hv
dCh0aW1lc3RhbXAsIHNuYXBzaG90U3RyaW5nRGF0YSwgdGl0bGUpCisgICAgeworICAgICAgICBs
ZXQgd29ya2VyUHJveHkgPSBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90V29ya2VyUHJveHkuc2lu
Z2xldG9uKCk7CisgICAgICAgIHdvcmtlclByb3h5LmNyZWF0ZVNuYXBzaG90KHNuYXBzaG90U3Ry
aW5nRGF0YSwgdGl0bGUgfHwgbnVsbCwgKHtvYmplY3RJZCwgc25hcHNob3Q6IHNlcmlhbGl6ZWRT
bmFwc2hvdH0pID0+IHsKKyAgICAgICAgICAgIGxldCBzbmFwc2hvdCA9IFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RQcm94eS5kZXNlcmlhbGl6ZShvYmplY3RJZCwgc2VyaWFsaXplZFNuYXBzaG90
KTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuaGVhcFNuYXBzaG90
QWRkZWQodGltZXN0YW1wLCBzbmFwc2hvdCk7CisgICAgICAgIH0pOworICAgIH0KIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzL0hlYXBT
bmFwc2hvdFByb3h5LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJv
eGllcy9IZWFwU25hcHNob3RQcm94eS5qcwppbmRleCA4ZWU2NjMzLi43OWY4MzEzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzL0hlYXBTbmFw
c2hvdFByb3h5LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3hpZXMvSGVhcFNuYXBzaG90UHJveHkuanMKQEAgLTI1LDEzICsyNSwxNCBAQAogCiBXZWJJbnNw
ZWN0b3IuSGVhcFNuYXBzaG90UHJveHkgPSBjbGFzcyBIZWFwU25hcHNob3RQcm94eSBleHRlbmRz
IFdlYkluc3BlY3Rvci5PYmplY3QKIHsKLSAgICBjb25zdHJ1Y3RvcihzbmFwc2hvdE9iamVjdElk
LCBpZGVudGlmaWVyLCB0b3RhbFNpemUsIHRvdGFsT2JqZWN0Q291bnQsIGNhdGVnb3JpZXMpCisg
ICAgY29uc3RydWN0b3Ioc25hcHNob3RPYmplY3RJZCwgaWRlbnRpZmllciwgdGl0bGUsIHRvdGFs
U2l6ZSwgdG90YWxPYmplY3RDb3VudCwgY2F0ZWdvcmllcykKICAgICB7CiAgICAgICAgIHN1cGVy
KCk7CiAKICAgICAgICAgdGhpcy5fcHJveHlPYmplY3RJZCA9IHNuYXBzaG90T2JqZWN0SWQ7CiAK
ICAgICAgICAgdGhpcy5faWRlbnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgICAgIHRoaXMuX3Rp
dGxlID0gdGl0bGU7CiAgICAgICAgIHRoaXMuX3RvdGFsU2l6ZSA9IHRvdGFsU2l6ZTsKICAgICAg
ICAgdGhpcy5fdG90YWxPYmplY3RDb3VudCA9IHRvdGFsT2JqZWN0Q291bnQ7CiAgICAgICAgIHRo
aXMuX2NhdGVnb3JpZXMgPSBNYXAuZnJvbU9iamVjdChjYXRlZ29yaWVzKTsKQEAgLTQxLDE0ICs0
MiwxNSBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJveHkgPSBjbGFzcyBIZWFwU25hcHNo
b3RQcm94eSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYgogCiAgICAgc3RhdGljIGRlc2VyaWFsaXpl
KG9iamVjdElkLCBzZXJpYWxpemVkU25hcHNob3QpCiAgICAgewotICAgICAgICBsZXQge2lkZW50
aWZpZXIsIHRvdGFsU2l6ZSwgdG90YWxPYmplY3RDb3VudCwgY2F0ZWdvcmllc30gPSBzZXJpYWxp
emVkU25hcHNob3Q7Ci0gICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hv
dFByb3h5KG9iamVjdElkLCBpZGVudGlmaWVyLCB0b3RhbFNpemUsIHRvdGFsT2JqZWN0Q291bnQs
IGNhdGVnb3JpZXMpOworICAgICAgICBsZXQge2lkZW50aWZpZXIsIHRpdGxlLCB0b3RhbFNpemUs
IHRvdGFsT2JqZWN0Q291bnQsIGNhdGVnb3JpZXN9ID0gc2VyaWFsaXplZFNuYXBzaG90OworICAg
ICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eShvYmplY3RJZCwg
aWRlbnRpZmllciwgdGl0bGUsIHRvdGFsU2l6ZSwgdG90YWxPYmplY3RDb3VudCwgY2F0ZWdvcmll
cyk7CiAgICAgfQogCiAgICAgLy8gUHVibGljCiAKICAgICBnZXQgcHJveHlPYmplY3RJZCgpIHsg
cmV0dXJuIHRoaXMuX3Byb3h5T2JqZWN0SWQ7IH0KICAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0
dXJuIHRoaXMuX2lkZW50aWZpZXI7IH0KKyAgICBnZXQgdGl0bGUoKSB7IHJldHVybiB0aGlzLl90
aXRsZTsgfQogICAgIGdldCB0b3RhbFNpemUoKSB7IHJldHVybiB0aGlzLl90b3RhbFNpemU7IH0K
ICAgICBnZXQgdG90YWxPYmplY3RDb3VudCgpIHsgcmV0dXJuIHRoaXMuX3RvdGFsT2JqZWN0Q291
bnQ7IH0KICAgICBnZXQgY2F0ZWdvcmllcygpIHsgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXM7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hl
YXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5v
ZGUuanMKaW5kZXggNmYzN2EyMi4uOTViZmFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3Jp
ZE5vZGUuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
SGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKQEAgLTMzLDcgKzMzLDcgQEAg
V2ViSW5zcGVjdG9yLkhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlID0gY2xhc3Mg
SGVhcEFsbG9jYXRpb25zVGltZWxpbmUKICAgICAgICAgdGhpcy5faGVhcEFsbG9jYXRpb25zVmll
dyA9IGhlYXBBbGxvY2F0aW9uc1ZpZXc7CiAKICAgICAgICAgdGhpcy5fZGF0YSA9IHsKLSAgICAg
ICAgICAgIG5hbWU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU25hcHNob3QgJWQiKS5mb3JtYXQo
dGhpcy5fcmVjb3JkLmhlYXBTbmFwc2hvdC5pZGVudGlmaWVyKSwKKyAgICAgICAgICAgIG5hbWU6
IFdlYkluc3BlY3Rvci5UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmRpc3BsYXlOYW1lRm9yUmVjb3Jk
KGhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3JkKSwKICAgICAgICAgICAgIHRpbWVzdGFtcDog
dGhpcy5fcmVjb3JkLnRpbWVzdGFtcCAtIHplcm9UaW1lLAogICAgICAgICAgICAgc2l6ZTogdGhp
cy5fcmVjb3JkLmhlYXBTbmFwc2hvdC50b3RhbFNpemUsCiAgICAgICAgIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRhYkNv
bnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
VGltZWxpbmVUYWJDb250ZW50Vmlldy5qcwppbmRleCBjZjcyMGRmLi5hNWFlOWUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRh
YkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1RpbWVsaW5lVGFiQ29udGVudFZpZXcuanMKQEAgLTI1Miw2ICsyNTIsOCBAQCBXZWJJ
bnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lVGFiQ29udGVu
dFZpZXcgZXh0ZW5kcyBXZWJJbgogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJl
Y29yZC5UeXBlLlJlbmRlcmluZ0ZyYW1lOgogICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiRnJhbWUgJWQiKS5mb3JtYXQodGltZWxpbmVSZWNvcmQuZnJhbWVOdW1iZXIp
OwogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLkhlYXBBbGxv
Y2F0aW9uczoKKyAgICAgICAgICAgIGlmICh0aW1lbGluZVJlY29yZC5oZWFwU25hcHNob3QudGl0
bGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU25hcHNo
b3QgJWQgXHUyMDE0ICVzIikuZm9ybWF0KHRpbWVsaW5lUmVjb3JkLmhlYXBTbmFwc2hvdC5pZGVu
dGlmaWVyLCB0aW1lbGluZVJlY29yZC5oZWFwU25hcHNob3QudGl0bGUpOwogICAgICAgICAgICAg
cmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU25hcHNob3QgJWQiKS5mb3JtYXQodGltZWxp
bmVSZWNvcmQuaGVhcFNuYXBzaG90LmlkZW50aWZpZXIpOwogICAgICAgICBjYXNlIFdlYkluc3Bl
Y3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLk1lbW9yeToKICAgICAgICAgICAgIC8vIE5vdCB1c2Vk
LiBGYWxsIHRocm91Z2ggdG8gZXJyb3IganVzdCBpbiBjYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNu
YXBzaG90LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9I
ZWFwU25hcHNob3QvSGVhcFNuYXBzaG90LmpzCmluZGV4IGEwM2E0MjkuLjMwOWVjNjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNu
YXBzaG90L0hlYXBTbmFwc2hvdC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3QuanMKQEAgLTcyLDEwICs3
MiwxMSBAQCBsZXQgbmV4dFNuYXBzaG90SWRlbnRpZmllciA9IDE7CiAKIEhlYXBTbmFwc2hvdCA9
IGNsYXNzIEhlYXBTbmFwc2hvdAogewotICAgIGNvbnN0cnVjdG9yKG9iamVjdElkLCBzbmFwc2hv
dERhdGFTdHJpbmcpCisgICAgY29uc3RydWN0b3Iob2JqZWN0SWQsIHNuYXBzaG90RGF0YVN0cmlu
ZywgdGl0bGUgPSBudWxsKQogICAgIHsKICAgICAgICAgdGhpcy5faWRlbnRpZmllciA9IG5leHRT
bmFwc2hvdElkZW50aWZpZXIrKzsKICAgICAgICAgdGhpcy5fb2JqZWN0SWQgPSBvYmplY3RJZDsK
KyAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTsKIAogICAgICAgICBsZXQganNvbiA9IEpTT04u
cGFyc2Uoc25hcHNob3REYXRhU3RyaW5nKTsKICAgICAgICAgc25hcHNob3REYXRhU3RyaW5nID0g
bnVsbDsKQEAgLTMwOSw2ICszMTAsNyBAQCBIZWFwU25hcHNob3QgPSBjbGFzcyBIZWFwU25hcHNo
b3QKICAgICB7CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICBpZGVudGlmaWVyOiB0aGlz
Ll9pZGVudGlmaWVyLAorICAgICAgICAgICAgdGl0bGU6IHRoaXMuX3RpdGxlLAogICAgICAgICAg
ICAgdG90YWxTaXplOiB0aGlzLl90b3RhbFNpemUsCiAgICAgICAgICAgICB0b3RhbE9iamVjdENv
dW50OiB0aGlzLl9ub2RlQ291bnQgLSAxLCAvLyA8cm9vdD4uCiAgICAgICAgICAgICBjYXRlZ29y
aWVzOiB0aGlzLl9jYXRlZ29yaWVzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90V29ya2VyLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNo
b3QvSGVhcFNuYXBzaG90V29ya2VyLmpzCmluZGV4IGI1MWI1NmMuLmNhYWI1NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBz
aG90L0hlYXBTbmFwc2hvdFdvcmtlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3RXb3JrZXIuanMKQEAg
LTM5LDEwICszOSwxMCBAQCBIZWFwU25hcHNob3RXb3JrZXIgPSBjbGFzcyBIZWFwU25hcHNob3RX
b3JrZXIKIAogICAgIC8vIEFjdGlvbnMKIAotICAgIGNyZWF0ZVNuYXBzaG90KHNuYXBzaG90U3Ry
aW5nKQorICAgIGNyZWF0ZVNuYXBzaG90KHNuYXBzaG90U3RyaW5nLCB0aXRsZSkKICAgICB7CiAg
ICAgICAgIGxldCBvYmplY3RJZCA9IHRoaXMuX25leHRPYmplY3RJZCsrOwotICAgICAgICBsZXQg
c25hcHNob3QgPSBuZXcgSGVhcFNuYXBzaG90KG9iamVjdElkLCBzbmFwc2hvdFN0cmluZyk7Cisg
ICAgICAgIGxldCBzbmFwc2hvdCA9IG5ldyBIZWFwU25hcHNob3Qob2JqZWN0SWQsIHNuYXBzaG90
U3RyaW5nLCB0aXRsZSk7CiAgICAgICAgIHRoaXMuX29iamVjdHMuc2V0KG9iamVjdElkLCBzbmFw
c2hvdCk7CiAgICAgICAgIHJldHVybiB7b2JqZWN0SWQsIHNuYXBzaG90OiBzbmFwc2hvdC5zZXJp
YWxpemUoKX07CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274366</attachid>
            <date>2016-03-17 21:06:01 -0700</date>
            <delta_ts>2016-03-17 21:53:29 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>takeHeapSnapshot-2.patch</filename>
            <type>text/plain</type>
            <size>40400</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YWM2NjllLi43MjA0MjAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDMt
MTcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBXZSBzaG91bGQgaGF2ZSBhIHdheSB0byBjYXB0dXJlIGhlYXAgc25hcHNob3Rz
IHByb2dyYW1hdGljYWxseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NDQwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQ3MjYyOTI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
Y29uc29sZS9oZWFwU25hcHNob3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY29uc29sZS9oZWFwU25hcHNob3QuaHRtbDogQWRkZWQuCisgICAgICAgIFRlc3QgdGhh
dCB3ZSBnZXQgZXhwZWN0ZWQgZGF0YSBhbmQgZXZlbnRzIGFmdGVyIGNhbGxpbmcKKyAgICAgICAg
Y29uc29sZS50YWtlSGVhcFNuYXBzaG90IHdoZW4gdGhlIGluc3BlY3RvciBpcyBvcGVuLgorCiAy
MDE2LTAzLTE3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBE
b24ndCB0cnkgdG8gcmVzdG9yZSBkZWxldGVkIE1lbW9yeUluZGV4ZXMgaWYgdGhlaXIgb3duaW5n
IG9iamVjdCBzdG9yZSBpcyBub3QgcmVzdG9yZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS9oZWFwU25hcHNob3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvaGVhcFNuYXBzaG90LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmMyZWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvaGVhcFNuYXBzaG90LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE2IEBACitUZXN0IGZvciB0aGUgQ29uc29sZS5oZWFwU25hcHNob3QgZXZlbnQgdHJpZ2dl
cmVkIGJ5IGNvbnNvbGUudGFrZUhlYXBTbmFwc2hvdC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IENvbnNvbGUuaGVhcFNuYXBzaG90CistLSBSdW5uaW5nIHRlc3QgY2FzZTogVHJpZ2dlckhl
YXBTbmFwc2hvdE5vVGl0bGUKK0NvbnNvbGUuaGVhcFNuYXBzaG90CitQQVNTOiBTaG91bGQgaGF2
ZSBhIHRpbWVzdGFtcC4KK1BBU1M6IFNob3VsZCBoYXZlIHNuYXBzaG90RGF0YS4KK1BBU1M6IFNo
b3VsZCBub3QgaGF2ZSBhIHRpdGxlLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogVHJpZ2dlckhl
YXBTbmFwc2hvdFdpdGhUaXRsZQorQ29uc29sZS5oZWFwU25hcHNob3QKK1BBU1M6IFNob3VsZCBo
YXZlIGEgdGltZXN0YW1wLgorUEFTUzogU2hvdWxkIGhhdmUgc25hcHNob3REYXRhLgorUEFTUzog
U2hvdWxkIGhhdmUgZXhwZWN0ZWQgdGl0bGUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jb25zb2xlL2hlYXBTbmFwc2hvdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2NvbnNvbGUvaGVhcFNuYXBzaG90Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOTExYzQ0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2hlYXBTbmFwc2hvdC5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rp
b24gdHJpZ2dlckhlYXBTbmFwc2hvdE5vVGl0bGUoKSB7CisgICAgY29uc29sZS50YWtlSGVhcFNu
YXBzaG90KCk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJIZWFwU25hcHNob3RXaXRoVGl0bGUoKSB7
CisgICAgY29uc29sZS50YWtlSGVhcFNuYXBzaG90KCJTbmFwc2hvdCBUaXRsZSIpOworfQorCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBQcm90b2NvbFRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiQ29uc29sZS5oZWFwU25hcHNob3QiKTsKKworICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIlRyaWdnZXJIZWFwU25hcHNob3ROb1RpdGxlIiwKKyAgICAgICAg
dGVzdDogZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JQ
cm90b2NvbC5hd2FpdEV2ZW50KHtldmVudDogIkNvbnNvbGUuaGVhcFNuYXBzaG90In0pLnRoZW4o
KG1lc3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJD
b25zb2xlLmhlYXBTbmFwc2hvdCIpOworICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBl
Y3RUaGF0KHR5cGVvZiBtZXNzYWdlT2JqZWN0LnBhcmFtcy50aW1lc3RhbXAgPT09ICJudW1iZXIi
LCAiU2hvdWxkIGhhdmUgYSB0aW1lc3RhbXAuIik7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xU
ZXN0LmV4cGVjdFRoYXQodHlwZW9mIG1lc3NhZ2VPYmplY3QucGFyYW1zLnNuYXBzaG90RGF0YSA9
PT0gInN0cmluZyIsICJTaG91bGQgaGF2ZSBzbmFwc2hvdERhdGEuIik7CisgICAgICAgICAgICAg
ICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQoIW1lc3NhZ2VPYmplY3QucGFyYW1zLnRpdGxlLCAi
U2hvdWxkIG5vdCBoYXZlIGEgdGl0bGUuIik7CisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5ldmFsdWF0ZUluUGFn
ZSgidHJpZ2dlckhlYXBTbmFwc2hvdE5vVGl0bGUoKSIpOworICAgICAgICB9CisgICAgfSk7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJUcmlnZ2VySGVhcFNuYXBz
aG90V2l0aFRpdGxlIiwKKyAgICAgICAgdGVzdDogZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5hd2FpdEV2ZW50KHtldmVudDogIkNvbnNv
bGUuaGVhcFNuYXBzaG90In0pLnRoZW4oKG1lc3NhZ2VPYmplY3QpID0+IHsKKyAgICAgICAgICAg
ICAgICBQcm90b2NvbFRlc3QubG9nKCJDb25zb2xlLmhlYXBTbmFwc2hvdCIpOworICAgICAgICAg
ICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KHR5cGVvZiBtZXNzYWdlT2JqZWN0LnBhcmFt
cy50aW1lc3RhbXAgPT09ICJudW1iZXIiLCAiU2hvdWxkIGhhdmUgYSB0aW1lc3RhbXAuIik7Cisg
ICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQodHlwZW9mIG1lc3NhZ2VPYmpl
Y3QucGFyYW1zLnNuYXBzaG90RGF0YSA9PT0gInN0cmluZyIsICJTaG91bGQgaGF2ZSBzbmFwc2hv
dERhdGEuIik7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV4cGVjdFRoYXQobWVzc2Fn
ZU9iamVjdC5wYXJhbXMudGl0bGUgPT09ICJTbmFwc2hvdCBUaXRsZSIsICJTaG91bGQgaGF2ZSBl
eHBlY3RlZCB0aXRsZS4iKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmlnZ2Vy
SGVhcFNuYXBzaG90V2l0aFRpdGxlKCkiKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3Vp
dGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIHRoZSBDb25zb2xlLmhlYXBTbmFwc2hv
dCBldmVudCB0cmlnZ2VyZWQgYnkgY29uc29sZS50YWtlSGVhcFNuYXBzaG90LjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDczODk1ZGQuLjI0MDgyMTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE2LTAzLTE3ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogV2Ugc2hvdWxkIGhhdmUgYSB3YXkgdG8gY2FwdHVyZSBoZWFwIHNuYXBzaG90cyBwcm9n
cmFtYXRpY2FsbHkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNTQ0MDcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI0NzI2MjkyPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3Rv
Y29sL0NvbnNvbGUuanNvbjoKKyAgICAgICAgQWRkIGEgbmV3IENvbnNvbGUuaGVhcFNuYXBzaG90
IGV2ZW50IGZvciB3aGVuIGEgaGVhcCBzbmFwc2hvdCBpcyB0YWtlbi4KKworICAgICAgICAqIHJ1
bnRpbWUvQ29uc29sZVByb3RvdHlwZS5jcHA6CisgICAgICAgIChKU0M6OkNvbnNvbGVQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1Byb2Zp
bGUpOgorICAgICAgICAoSlNDOjpjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZCk6CisgICAgICAg
IChKU0M6OmNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAgKiBydW50
aW1lL0NvbnNvbGVDbGllbnQuaDoKKyAgICAgICAgQWRkIHRoZSBjb25zb2xlLnRha2VIZWFwU25h
cHNob3QgbWV0aG9kIGFuZCBkaXNwYXRjaCB0byB0aGUgQ29uc29sZUNsaWVudC4KKworICAgICAg
ICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnRha2VIZWFwU25hcHNob3Qp
OgorICAgICAgICAqIGluc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaDoKKyAg
ICAgICAgSGF2ZSB0aGUgSW5zcGVjdG9yQ29uc29sZUFnZW50IGhhbmRsZSB0aGlzLgorCisgICAg
ICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6SlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3Bl
Y3RvckNvbnNvbGVBZ2VudDo6SW5zcGVjdG9yQ29uc29sZUFnZW50KToKKyAgICAgICAgKEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50Ojp0YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwOgorICAgICAgICAo
SW5zcGVjdG9yOjpKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudDo6SlNHbG9iYWxPYmplY3RDb25z
b2xlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25z
b2xlQWdlbnQuaDoKKyAgICAgICAgR2l2ZSB0aGUgQ29uc29sZUFnZW50IGEgSGVhcEFnZW50IHBv
aW50ZXIgc28gdGhhdCBpdCBjYW4gaGF2ZSB0aGUgSGVhcEFnZW50CisgICAgICAgIHBlcmZvcm0g
dGhlIHNuYXBzaG90IGJ1aWxkaW5nIHdvcmsgbGlrZSBpdCBub3JtYWxseSBkb2VzLgorCiAyMDE2
LTAzLTE3ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIEZ1
bmN0aW9uTW9kZSBhbiBlbnVtIGNsYXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwCmlu
ZGV4IGY0YTE1NWQuLmUzNjg1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAKQEAg
LTgzLDYgKzgzLDExIEBAIHZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojpwcm9maWxl
RW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikKICAgICAvLyBGSVhNRTogc3VwcG9y
dCB8Y29uc29sZS5wcm9maWxlfCBmb3IgSlNDb250ZXh0cy4gPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzEzNjQ2Nj4KIH0KIAordm9pZCBKU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQ6OnRha2VIZWFw
U25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIG1f
Y29uc29sZUFnZW50LT50YWtlSGVhcFNuYXBzaG90KHRpdGxlKTsKK30KKwogdm9pZCBKU0dsb2Jh
bE9iamVjdENvbnNvbGVDbGllbnQ6OnRpbWUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkKIHsKICAgICBtX2NvbnNvbGVBZ2VudC0+c3RhcnRUaW1pbmcodGl0bGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVD
bGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RD
b25zb2xlQ2xpZW50LmgKaW5kZXggMzIyMDE5OS4uZjM2ODdmNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29s
ZUNsaWVudC5oCkBAIC00Niw2ICs0Niw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGNvdW50KEpT
Qzo6RXhlY1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBwcm9maWxlKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0
aXRsZSkgb3ZlcnJpZGU7CisgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lKEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lRW5k
KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCB0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNH
bG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBm
ZDdmODY5Li5mMGZmYzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIu
Y3BwCkBAIC04NSw3ICs4NSw4IEBAIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6
SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKEpTR2xvYmFsT2JqCiAKICAgICBhdXRv
IGluc3BlY3RvckFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JBZ2VudD4oY29udGV4
dCk7CiAgICAgYXV0byBydW50aW1lQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFsT2Jq
ZWN0UnVudGltZUFnZW50Pihjb250ZXh0KTsKLSAgICBhdXRvIGNvbnNvbGVBZ2VudCA9IHN0ZDo6
bWFrZV91bmlxdWU8SlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQ+KGNvbnRleHQpOworICAgIGF1
dG8gaGVhcEFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JIZWFwQWdlbnQ+KGNvbnRl
eHQpOworICAgIGF1dG8gY29uc29sZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0dsb2JhbE9i
amVjdENvbnNvbGVBZ2VudD4oY29udGV4dCwgaGVhcEFnZW50LmdldCgpKTsKICAgICBhdXRvIGRl
YnVnZ2VyQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPEpTR2xvYmFsT2JqZWN0RGVidWdnZXJBZ2Vu
dD4oY29udGV4dCwgY29uc29sZUFnZW50LmdldCgpKTsKIAogICAgIG1faW5zcGVjdG9yQWdlbnQg
PSBpbnNwZWN0b3JBZ2VudC5nZXQoKTsKQEAgLTk3LDcgKzk4LDcgQEAgSlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIoSlNH
bG9iYWxPYmoKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShydW50aW1lQWdlbnQpKTsKICAg
ICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShjb25zb2xlQWdlbnQpKTsKICAgICBtX2FnZW50cy5h
cHBlbmQoV1RGTW92ZShkZWJ1Z2dlckFnZW50KSk7Ci0gICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6
bWFrZV91bmlxdWU8SW5zcGVjdG9ySGVhcEFnZW50Pihjb250ZXh0KSk7CisgICAgbV9hZ2VudHMu
YXBwZW5kKFdURk1vdmUoaGVhcEFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFr
ZV91bmlxdWU8SW5zcGVjdG9yU2NyaXB0UHJvZmlsZXJBZ2VudD4oY29udGV4dCkpOwogCiAgICAg
bV9leGVjdXRpb25TdG9wd2F0Y2gtPnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmNwcAppbmRleCBlNTE4ZjdmLi4zMTE2YjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2Vu
dC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDb25zb2xlTWVzc2FnZS5oIgogI2lu
Y2x1ZGUgIkluamVjdGVkU2NyaXB0TWFuYWdlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250
ZW5kUm91dGVyLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySGVhcEFnZW50LmgiCiAjaW5jbHVkZSAi
U2NyaXB0QXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC00MywxMSArNDQsMTIgQEAgbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4aW11bUNvbnNvbGVNZXNzYWdlcyA9IDEw
MDsKIHN0YXRpYyBjb25zdCBpbnQgZXhwaXJlQ29uc29sZU1lc3NhZ2VzU3RlcCA9IDEwOwogCi1J
bnNwZWN0b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQm
IGNvbnRleHQpCitJbnNwZWN0b3JDb25zb2xlQWdlbnQ6Okluc3BlY3RvckNvbnNvbGVBZ2VudChB
Z2VudENvbnRleHQmIGNvbnRleHQsIEluc3BlY3RvckhlYXBBZ2VudCogaGVhcEFnZW50KQogICAg
IDogSW5zcGVjdG9yQWdlbnRCYXNlKEFTQ0lJTGl0ZXJhbCgiQ29uc29sZSIpKQogICAgICwgbV9p
bmplY3RlZFNjcmlwdE1hbmFnZXIoY29udGV4dC5pbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAg
LCBtX2Zyb250ZW5kRGlzcGF0Y2hlcihzdGQ6Om1ha2VfdW5pcXVlPENvbnNvbGVGcm9udGVuZERp
c3BhdGNoZXI+KGNvbnRleHQuZnJvbnRlbmRSb3V0ZXIpKQogICAgICwgbV9iYWNrZW5kRGlzcGF0
Y2hlcihDb25zb2xlQmFja2VuZERpc3BhdGNoZXI6OmNyZWF0ZShjb250ZXh0LmJhY2tlbmREaXNw
YXRjaGVyLCB0aGlzKSkKKyAgICAsIG1faGVhcEFnZW50KGhlYXBBZ2VudCkKIHsKIH0KIApAQCAt
MTUzLDYgKzE1NSwxOSBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6c3RvcFRpbWluZyhj
b25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRyPFNjcmlwdENhbAogICAgIGFkZE1lc3NhZ2VU
b0NvbnNvbGUoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlTWVzc2FnZT4oTWVzc2FnZVNvdXJjZTo6
Q29uc29sZUFQSSwgTWVzc2FnZVR5cGU6OlRpbWluZywgTWVzc2FnZUxldmVsOjpEZWJ1ZywgbWVz
c2FnZSwgY2FsbFN0YWNrKSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50Ojp0YWtl
SGVhcFNuYXBzaG90KGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgaWYgKCFtX2luamVjdGVk
U2NyaXB0TWFuYWdlci5pbnNwZWN0b3JFbnZpcm9ubWVudCgpLmRldmVsb3BlckV4dHJhc0VuYWJs
ZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRXJyb3JTdHJpbmcgaWdub3JlZDsKKyAgICBk
b3VibGUgdGltZXN0YW1wOworICAgIFN0cmluZyBzbmFwc2hvdERhdGE7CisgICAgbV9oZWFwQWdl
bnQtPnNuYXBzaG90KGlnbm9yZWQsICZ0aW1lc3RhbXAsICZzbmFwc2hvdERhdGEpOworCisgICAg
bV9mcm9udGVuZERpc3BhdGNoZXItPmhlYXBTbmFwc2hvdCh0aW1lc3RhbXAsIHNuYXBzaG90RGF0
YSwgdGl0bGUuaXNFbXB0eSgpID8gbnVsbHB0ciA6ICZ0aXRsZSk7Cit9CisKIHZvaWQgSW5zcGVj
dG9yQ29uc29sZUFnZW50Ojpjb3VudChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIFBhc3NSZWZQdHI8
U2NyaXB0QXJndW1lbnRzPiBhcmd1bWVudHMpCiB7CiAgICAgUmVmUHRyPFNjcmlwdENhbGxTdGFj
az4gY2FsbFN0YWNrKGNyZWF0ZVNjcmlwdENhbGxTdGFja0ZvckNvbnNvbGUoc3RhdGUsIFNjcmlw
dENhbGxTdGFjazo6bWF4Q2FsbFN0YWNrU2l6ZVRvQ2FwdHVyZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25z
b2xlQWdlbnQuaAppbmRleCA4NzNmNmQzLi45NDUxZWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xl
QWdlbnQuaApAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIAogY2xhc3Mg
Q29uc29sZU1lc3NhZ2U7CiBjbGFzcyBJbmplY3RlZFNjcmlwdE1hbmFnZXI7CitjbGFzcyBJbnNw
ZWN0b3JIZWFwQWdlbnQ7CiBjbGFzcyBTY3JpcHRBcmd1bWVudHM7CiBjbGFzcyBTY3JpcHRDYWxs
U3RhY2s7CiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKQEAgLTUyLDcgKzUzLDcgQEAgY2xh
c3MgSlNfRVhQT1JUX1BSSVZBVEUgSW5zcGVjdG9yQ29uc29sZUFnZW50IDogcHVibGljIEluc3Bl
Y3RvckFnZW50QmFzZSwgcHVibGkKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JD
b25zb2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IEluc3BlY3RvckNvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmKTsKKyAgICBJbnNwZWN0b3JDb25z
b2xlQWdlbnQoQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9ySGVhcEFnZW50Kik7CiAgICAgdmlydHVh
bCB+SW5zcGVjdG9yQ29uc29sZUFnZW50KCk7CiAKICAgICB2b2lkIGRpZENyZWF0ZUZyb250ZW5k
QW5kQmFja2VuZChGcm9udGVuZFJvdXRlciosIEJhY2tlbmREaXNwYXRjaGVyKikgb3ZlcnJpZGU7
CkBAIC03MSw2ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnRUaW1pbmcoY29uc3Qg
U3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCBzdG9wVGltaW5nKGNvbnN0IFN0cmluZyYgdGl0bGUs
IFBhc3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CisgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90
KGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgY291bnQoSlNDOjpFeGVjU3RhdGUqLCBQ
YXNzUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4pOwogCiBwcm90ZWN0ZWQ6CkBAIC03OSw2ICs4MSw3
IEBAIHByb3RlY3RlZDoKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXImIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxDb25zb2xlRnJvbnRlbmREaXNwYXRjaGVy
PiBtX2Zyb250ZW5kRGlzcGF0Y2hlcjsKICAgICBSZWZQdHI8Q29uc29sZUJhY2tlbmREaXNwYXRj
aGVyPiBtX2JhY2tlbmREaXNwYXRjaGVyOworICAgIEluc3BlY3RvckhlYXBBZ2VudCogbV9oZWFw
QWdlbnQ7CiAKICAgICBDb25zb2xlTWVzc2FnZSogbV9wcmV2aW91c01lc3NhZ2UgeyBudWxscHRy
IH07CiAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDb25zb2xlTWVzc2FnZT4+IG1fY29uc29s
ZU1lc3NhZ2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwCmluZGV4
IDAyMTdkYzYuLjQwMTE2MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2Vu
dC5jcHAKQEAgLTI4LDggKzI4LDggQEAKIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKLUpTR2xv
YmFsT2JqZWN0Q29uc29sZUFnZW50OjpKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudChBZ2VudENv
bnRleHQmIGNvbnRleHQpCi0gICAgOiBJbnNwZWN0b3JDb25zb2xlQWdlbnQoY29udGV4dCkKK0pT
R2xvYmFsT2JqZWN0Q29uc29sZUFnZW50OjpKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudChBZ2Vu
dENvbnRleHQmIGNvbnRleHQsIEluc3BlY3RvckhlYXBBZ2VudCogaGVhcEFnZW50KQorICAgIDog
SW5zcGVjdG9yQ29uc29sZUFnZW50KGNvbnRleHQsIGhlYXBBZ2VudCkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQWdlbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRz
L0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmgKaW5kZXggYjFkYWU0Yy4uYzA2OWM4MiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxP
YmplY3RDb25zb2xlQWdlbnQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oCkBAIC0zNSw3ICszNSw3IEBAIGNs
YXNzIEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50IGZpbmFsIDogcHVibGljIEluc3BlY3RvckNv
bnNvbGVBZ2VudCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSlNHbG9iYWxPYmplY3RDb25z
b2xlQWdlbnQpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIEpT
R2xvYmFsT2JqZWN0Q29uc29sZUFnZW50KEFnZW50Q29udGV4dCYpOworICAgIEpTR2xvYmFsT2Jq
ZWN0Q29uc29sZUFnZW50KEFnZW50Q29udGV4dCYsIEluc3BlY3RvckhlYXBBZ2VudCopOwogICAg
IHZpcnR1YWwgfkpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50KCkgeyB9CiAKICAgICAvLyBGSVhN
RTogWEhScyBhbmQgTm9kZXMgb25seSBtYWtlcyBzZW5zZSBkZWJ1Z2dpbmcgYSBXZWIgY29udGV4
dC4gQ2FuIHRoaXMgYmUgbW92ZWQgdG8gYSBkaWZmZXJlbnQgYWdlbnQ/CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCmluZGV4
IGEyNTUzNjIuLmJlYzFkZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uCkBAIC04NCw2ICs4NCwxNSBAQAogICAgICAg
ICB7CiAgICAgICAgICAgICAibmFtZSI6ICJtZXNzYWdlc0NsZWFyZWQiLAogICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIklzc3VlZCB3aGVuIGNvbnNvbGUgaXMgY2xlYXJlZC4gVGhpcyBoYXBw
ZW5zIGVpdGhlciB1cG9uIDxjb2RlPmNsZWFyTWVzc2FnZXM8L2NvZGU+IGNvbW1hbmQgb3IgYWZ0
ZXIgcGFnZSBuYXZpZ2F0aW9uLiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
Im5hbWUiOiAiaGVhcFNuYXBzaG90IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJJc3N1
ZWQgZnJvbSBjb25zb2xlLnRha2VIZWFwU25hcHNob3QuIiwKKyAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGltZXN0YW1wIiwgInR5cGUiOiAi
bnVtYmVyIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic25hcHNob3REYXRhIiwgIiRy
ZWYiOiAiSGVhcC5IZWFwU25hcHNob3REYXRhIiwgImRlc2NyaXB0aW9uIjogIlNuYXBzaG90IGF0
IHRoZSBlbmQgb2YgdHJhY2tpbmcuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGl0
bGUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAi
T3B0aW9uYWwgdGl0bGUgcHJvdmlkZWQgdG8gY29uc29sZS50YWtlSGVhcFNuYXBzaG90LiIgfQor
ICAgICAgICAgICAgXQogICAgICAgICB9CiAgICAgXQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oCmluZGV4IGExNmI4NWIuLmE5ZmFhNTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmgKQEAgLTU5LDYg
KzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb3VudChFeGVjU3RhdGUqLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cHJvZmlsZShFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHByb2ZpbGVFbmQoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGltZShFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRpbWVFbmQoRXhlY1N0YXRlKiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0aW1lU3RhbXAoRXhl
Y1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbnNvbGVQcm90b3R5cGUuY3BwCmlu
ZGV4IGM4ZGIwNjguLmYxODVmZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnNvbGVQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbnNvbGVQcm90b3R5cGUuY3BwCkBAIC01Miw2ICs1Miw3IEBAIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNBc3NlcnQoRXhlY1N0YXRl
Kik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5j
Q291bnQoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBj
b25zb2xlUHJvdG9GdW5jUHJvZmlsZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEV4ZWNTdGF0ZSopOwor
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Rha2VI
ZWFwU25hcHNob3QoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lRW5kKEV4ZWNTdGF0ZSopOwog
c3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1RpbWVT
dGFtcChFeGVjU3RhdGUqKTsKQEAgLTg2LDYgKzg3LDcgQEAgdm9pZCBDb25zb2xlUHJvdG90eXBl
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCiAg
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRpbWUiLCBjb25zb2xl
UHJvdG9GdW5jVGltZSwgTm9uZSwgMCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oInRpbWVFbmQiLCBjb25zb2xlUHJvdG9GdW5jVGltZUVuZCwgTm9uZSwgMCk7
CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oInRpbWVTdGFtcCIs
IGNvbnNvbGVQcm90b0Z1bmNUaW1lU3RhbXAsIE5vbmUsIDApOworICAgIEpTQ19OQVRJVkVfRlVO
Q1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0YWtlSGVhcFNuYXBzaG90IiwgY29uc29sZVByb3Rv
RnVuY1Rha2VIZWFwU25hcHNob3QsIE5vbmUsIDApOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05f
V0lUSE9VVF9UUkFOU0lUSU9OKCJncm91cCIsIGNvbnNvbGVQcm90b0Z1bmNHcm91cCwgTm9uZSwg
MCk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdyb3VwQ29s
bGFwc2VkIiwgY29uc29sZVByb3RvRnVuY0dyb3VwQ29sbGFwc2VkLCBOb25lLCAwKTsKICAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiZ3JvdXBFbmQiLCBjb25zb2xl
UHJvdG9GdW5jR3JvdXBFbmQsIE5vbmUsIDApOwpAQCAtMjU4LDcgKzI2MCw3IEBAIHN0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlKEV4ZWNT
dGF0ZSogZXhlYykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgp
KTsKIAogICAgIHNpemVfdCBhcmdzQ291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7Ci0gICAg
aWYgKGFyZ3NDb3VudCA8PSAwKSB7CisgICAgaWYgKCFhcmdzQ291bnQpIHsKICAgICAgICAgY2xp
ZW50LT5wcm9maWxlKGV4ZWMsIFN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9CkBAIC0yODIsNyArMjg0LDcgQEAgc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGVFbmQoRXhl
Y1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVk
KCkpOwogCiAgICAgc2l6ZV90IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKLSAg
ICBpZiAoYXJnc0NvdW50IDw9IDApIHsKKyAgICBpZiAoIWFyZ3NDb3VudCkgewogICAgICAgICBj
bGllbnQtPnByb2ZpbGVFbmQoZXhlYywgU3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogICAgIH0KQEAgLTI5NSw2ICsyOTcsMzAgQEAgc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY1Byb2ZpbGVF
bmQoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmlu
ZWQoKSk7CiB9CiAKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQ
cm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0NvbnNv
bGUqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTQ29uc29sZSo+KGV4ZWMtPnRoaXNWYWx1
ZSgpKTsKKyAgICBpZiAoIWNhc3RlZFRoaXMpCisgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVy
cm9yKGV4ZWMpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlND
b25zb2xlOjppbmZvKCkpOworICAgIENvbnNvbGVDbGllbnQqIGNsaWVudCA9IGNhc3RlZFRoaXMt
Pmdsb2JhbE9iamVjdCgpLT5jb25zb2xlQ2xpZW50KCk7CisgICAgaWYgKCFjbGllbnQpCisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisKKyAgICBzaXplX3Qg
YXJnc0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOworICAgIGlmICghYXJnc0NvdW50KSB7
CisgICAgICAgIGNsaWVudC0+dGFrZUhlYXBTbmFwc2hvdChleGVjLCBTdHJpbmcoKSk7CisgICAg
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CisgICAgfQorCisgICAg
Y29uc3QgU3RyaW5nJiB0aXRsZSh2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNr
KGV4ZWMsIGV4ZWMtPmFyZ3VtZW50KDApKSk7CisgICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigp
KQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworCisgICAg
Y2xpZW50LT50YWtlSGVhcFNuYXBzaG90KGV4ZWMsIHRpdGxlKTsKKyAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworfQorCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAg
SlNDb25zb2xlKiBjYXN0ZWRUaGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50
aGlzVmFsdWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Y1YWYwN2UuLjE5Zjk0MWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzOCBAQAorMjAxNi0wMy0xNyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlIHNob3VsZCBoYXZlIGEgd2F5
IHRvIGNhcHR1cmUgaGVhcCBzbmFwc2hvdHMgcHJvZ3JhbWF0aWNhbGx5LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NDA3CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yNDcyNjI5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3IvY29uc29sZS9oZWFwU25hcHNob3QuaHRtbAor
CisgICAgICAgICogcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlQ29uc29sZUNsaWVudDo6dGFrZUhlYXBTbmFwc2hvdCk6CisgICAgICAgICogcGFnZS9Q
YWdlQ29uc29sZUNsaWVudC5oOgorICAgICAgICBQYXNzIHRocm91Z2ggdG8gSW5zcGVjdG9yIElu
c3RydW1lbnRhdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5z
dHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OnRha2VIZWFwU25hcHNob3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp0YWtlSGVhcFNuYXBzaG90SW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICBQYXNzIHRocm91Z2ggdG8gSW5zcGVjdG9yQ29u
c29sZUFnZW50LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJv
bGxlcik6CisgICAgICAgICogaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZUNvbnNvbGVBZ2VudDo6UGFnZUNvbnNvbGVBZ2VudCk6CisgICAgICAg
ICogaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvV2Vi
Q29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvbnNvbGVBZ2VudDo6V2Vi
Q29uc29sZUFnZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50Lmg6Cisg
ICAgICAgICogd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldvcmtlckNvbnNvbGVDbGllbnQ6OnRha2VIZWFwU25hcHNob3QpOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oOgorICAgICAgICBQcm92aWRlIGEgSGVhcEFnZW50
IHRvIHRoZSBDb25zb2xlQWdlbnQuCisKIDIwMTYtMDMtMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IHRyeSB0byByZXN0b3JlIGRlbGV0ZWQgTWVt
b3J5SW5kZXhlcyBpZiB0aGVpciBvd25pbmcgb2JqZWN0IHN0b3JlIGlzIG5vdCByZXN0b3JlZC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5z
dHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29s
ZUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDZhMDVjMmYuLjQ4NDkyMzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xlSW5zdHJ1bWVudGF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnNvbGVJbnN0cnVtZW50
YXRpb24uaApAQCAtNTQsNiArNTQsMTMgQEAgaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpjb25zb2xlQ291bnQoUGFnZSYgcGFnZSwgSlNDOjpFeGVjU3RhdGUqIHMKICAgICBj
b25zb2xlQ291bnRJbXBsKGluc3RydW1lbnRpbmdBZ2VudHNGb3JQYWdlKHBhZ2UpLCBzdGF0ZSwg
V1RGTW92ZShhcmd1bWVudHMpKTsKIH0KIAoraW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp0YWtlSGVhcFNuYXBzaG90KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkKK3sKKyAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKKyAgICBpZiAo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cyA9IGluc3RydW1lbnRpbmdB
Z2VudHNGb3JGcmFtZShmcmFtZSkpCisgICAgICAgIHRha2VIZWFwU25hcHNob3RJbXBsKCppbnN0
cnVtZW50aW5nQWdlbnRzLCB0aXRsZSk7Cit9CisKIGlubGluZSB2b2lkIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5n
JiB0aXRsZSkKIHsKICAgICBpZiAoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0Fn
ZW50cyA9IGluc3RydW1lbnRpbmdBZ2VudHNGb3JGcmFtZShmcmFtZSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggYTg0MTFhYy4u
Y2I0MmVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcApAQCAtMTYyLDcgKzE2MiwxMSBAQCBJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNw
ZWN0b3JDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVjdG9yQwog
ICAgIG1fdGltZWxpbmVBZ2VudCA9IHRpbWVsaW5lQWdlbnRQdHIuZ2V0KCk7CiAgICAgbV9hZ2Vu
dHMuYXBwZW5kKFdURk1vdmUodGltZWxpbmVBZ2VudFB0cikpOwogCi0gICAgYXV0byBjb25zb2xl
QWdlbnRQdHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDb25zb2xlQWdlbnQ+KHBhZ2VDb250ZXh0
LCBtX2RvbUFnZW50KTsKKyAgICBhdXRvIGhlYXBBZ2VudFB0ciA9IHN0ZDo6bWFrZV91bmlxdWU8
SW5zcGVjdG9ySGVhcEFnZW50PihwYWdlQ29udGV4dCk7CisgICAgSW5zcGVjdG9ySGVhcEFnZW50
KiBoZWFwQWdlbnQgPSBoZWFwQWdlbnRQdHIuZ2V0KCk7CisgICAgbV9hZ2VudHMuYXBwZW5kKFdU
Rk1vdmUoaGVhcEFnZW50UHRyKSk7CisKKyAgICBhdXRvIGNvbnNvbGVBZ2VudFB0ciA9IHN0ZDo6
bWFrZV91bmlxdWU8UGFnZUNvbnNvbGVBZ2VudD4ocGFnZUNvbnRleHQsIGhlYXBBZ2VudCwgbV9k
b21BZ2VudCk7CiAgICAgV2ViQ29uc29sZUFnZW50KiBjb25zb2xlQWdlbnQgPSBjb25zb2xlQWdl
bnRQdHIuZ2V0KCk7CiAgICAgbV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRXZWJDb25zb2xlQWdl
bnQoY29uc29sZUFnZW50UHRyLmdldCgpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShj
b25zb2xlQWdlbnRQdHIpKTsKQEAgLTE3Miw3ICsxNzYsNiBAQCBJbnNwZWN0b3JDb250cm9sbGVy
OjpJbnNwZWN0b3JDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEluc3BlY3RvckNsaWVudCogaW5zcGVj
dG9yQwogICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKGRlYnVnZ2VyQWdlbnRQdHIpKTsKIAog
ICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckRPTURlYnVnZ2Vy
QWdlbnQ+KHBhZ2VDb250ZXh0LCBtX2RvbUFnZW50LCBkZWJ1Z2dlckFnZW50KSk7Ci0gICAgbV9h
Z2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9ySGVhcEFnZW50PihwYWdlQ29u
dGV4dCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvclNj
cmlwdFByb2ZpbGVyQWdlbnQ+KHBhZ2VDb250ZXh0KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0
ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50PihwYWdlQ29udGV4
dCwgcGFnZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKHN0ZDo6bWFrZV91bmlxdWU8SW5z
cGVjdG9yTGF5ZXJUcmVlQWdlbnQ+KHBhZ2VDb250ZXh0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDAxNTM5
NDYuLjdjYmQ1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC04NTUsNiArODU1LDEyIEBAIHZvaWQgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMm
IGluc3RydW1lbnRpCiAgICAgICAgIGNvbnNvbGVBZ2VudC0+Y291bnQoc3RhdGUsIGFyZ3VtZW50
cyk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp0YWtlSGVhcFNuYXBzaG90
SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBjb25zdCBTdHJp
bmcmIHRpdGxlKQoreworICAgIGlmIChXZWJDb25zb2xlQWdlbnQqIGNvbnNvbGVBZ2VudCA9IGlu
c3RydW1lbnRpbmdBZ2VudHMud2ViQ29uc29sZUFnZW50KCkpCisgICAgICAgIGNvbnNvbGVBZ2Vu
dC0+dGFrZUhlYXBTbmFwc2hvdCh0aXRsZSk7Cit9CisKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB0aXRsZSkKIHsKICAg
ICBpZiAoSW5zcGVjdG9yVGltZWxpbmVBZ2VudCogdGltZWxpbmVBZ2VudCA9IGluc3RydW1lbnRp
bmdBZ2VudHMuaW5zcGVjdG9yVGltZWxpbmVBZ2VudCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDkzZGYxODQuLmRi
YWZjZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgKQEAgLTIwOSw2ICsyMDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgYWRkTWVzc2FnZVRvQ29uc29sZShXb3JrZXJHbG9iYWxTY29wZSosIHN0ZDo6dW5pcXVlX3B0
cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNzYWdlPik7CiAKICAgICBzdGF0aWMgdm9pZCBjb25zb2xl
Q291bnQoUGFnZSYsIEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJn
dW1lbnRzPiYmKTsKKyAgICBzdGF0aWMgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEZyYW1lJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgc3RhdGljIHZvaWQgc3RhcnRDb25zb2xlVGltaW5nKEZy
YW1lJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVU
aW1pbmcoRnJhbWUmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3Jp
cHRDYWxsU3RhY2s+JiYpOwogICAgIHN0YXRpYyB2b2lkIGNvbnNvbGVUaW1lU3RhbXAoRnJhbWUm
LCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpOwpAQCAtMzgyLDYgKzM4Myw3
IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZUltcGwoSW5z
dHJ1bWVudGluZ0FnZW50cyYsIHN0ZDo6dW5pcXVlX3B0cjxJbnNwZWN0b3I6OkNvbnNvbGVNZXNz
YWdlPik7CiAKICAgICBzdGF0aWMgdm9pZCBjb25zb2xlQ291bnRJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMmLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50
cz4mJik7CisgICAgc3RhdGljIHZvaWQgdGFrZUhlYXBTbmFwc2hvdEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29u
c29sZVRpbWluZ0ltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgY29uc3QgU3RyaW5n
JiB0aXRsZSk7CiAgICAgc3RhdGljIHZvaWQgc3RvcENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1l
bnRpbmdBZ2VudHMmLCBGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUsIFJlZlB0cjxJbnNwZWN0
b3I6OlNjcmlwdENhbGxTdGFjaz4mJik7CiAgICAgc3RhdGljIHZvaWQgY29uc29sZVRpbWVTdGFt
cEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYsIEZyYW1lJiwgUmVmUHRyPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Q
YWdlQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29s
ZUFnZW50LmNwcAppbmRleCAwMTQ5YTBmLi42ZGM5MGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3BwCkBAIC00MSw4ICs0MSw4IEBAIHVzaW5nIG5h
bWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFnZUNvbnNvbGVB
Z2VudDo6UGFnZUNvbnNvbGVBZ2VudChXZWJBZ2VudENvbnRleHQmIGNvbnRleHQsIEluc3BlY3Rv
ckRPTUFnZW50KiBkb21BZ2VudCkKLSAgICA6IFdlYkNvbnNvbGVBZ2VudChjb250ZXh0KQorUGFn
ZUNvbnNvbGVBZ2VudDo6UGFnZUNvbnNvbGVBZ2VudChXZWJBZ2VudENvbnRleHQmIGNvbnRleHQs
IEluc3BlY3RvckhlYXBBZ2VudCogaGVhcEFnZW50LCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdl
bnQpCisgICAgOiBXZWJDb25zb2xlQWdlbnQoY29udGV4dCwgaGVhcEFnZW50KQogICAgICwgbV9p
bnNwZWN0b3JET01BZ2VudChkb21BZ2VudCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvUGFnZUNvbnNvbGVBZ2VudC5oCmluZGV4IDU1YzZlZmMuLjVlZGQ0OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaApAQCAtNDMsNyArNDMsNyBAQCBj
bGFzcyBQYWdlQ29uc29sZUFnZW50IGZpbmFsIDogcHVibGljIFdlYkNvbnNvbGVBZ2VudCB7CiAg
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZUNvbnNvbGVBZ2VudCk7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgUGFnZUNvbnNvbGVBZ2VudChXZWJBZ2VudENv
bnRleHQmLCBJbnNwZWN0b3JET01BZ2VudCopOworICAgIFBhZ2VDb25zb2xlQWdlbnQoV2ViQWdl
bnRDb250ZXh0JiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JIZWFwQWdlbnQqLCBJbnNwZWN0b3JET01B
Z2VudCopOwogICAgIHZpcnR1YWwgflBhZ2VDb25zb2xlQWdlbnQoKSB7IH0KIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5jcHAKaW5kZXggMzNl
YzBiNy4uODkwNTI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNv
bnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVB
Z2VudC5jcHAKQEAgLTQxLDggKzQxLDggQEAgdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1XZWJDb25zb2xlQWdlbnQ6OldlYkNvbnNvbGVBZ2VudChB
Z2VudENvbnRleHQmIGNvbnRleHQpCi0gICAgOiBJbnNwZWN0b3JDb25zb2xlQWdlbnQoY29udGV4
dCkKK1dlYkNvbnNvbGVBZ2VudDo6V2ViQ29uc29sZUFnZW50KEFnZW50Q29udGV4dCYgY29udGV4
dCwgSW5zcGVjdG9ySGVhcEFnZW50KiBoZWFwQWdlbnQpCisgICAgOiBJbnNwZWN0b3JDb25zb2xl
QWdlbnQoY29udGV4dCwgaGVhcEFnZW50KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvV2ViQ29uc29sZUFnZW50LmgKaW5kZXggZDU2NGRlZC4uYjBhNmNmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuaApAQCAtMzksNyArMzksNyBAQCBjbGFz
cyBXZWJDb25zb2xlQWdlbnQgOiBwdWJsaWMgSW5zcGVjdG9yOjpJbnNwZWN0b3JDb25zb2xlQWdl
bnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYkNvbnNvbGVBZ2VudCk7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV2ViQ29uc29sZUFnZW50KEluc3Bl
Y3Rvcjo6QWdlbnRDb250ZXh0Jik7CisgICAgV2ViQ29uc29sZUFnZW50KEluc3BlY3Rvcjo6QWdl
bnRDb250ZXh0JiwgSW5zcGVjdG9yOjpJbnNwZWN0b3JIZWFwQWdlbnQqKTsKICAgICB2aXJ0dWFs
IH5XZWJDb25zb2xlQWdlbnQoKSB7IH0KIAogICAgIHZvaWQgc2V0TW9uaXRvcmluZ1hIUkVuYWJs
ZWQoRXJyb3JTdHJpbmcmLCBib29sIGVuYWJsZWQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VDb25zb2xlQ2xpZW50LmNwcAppbmRleCAxMTY0ZTAwLi41Y2ZhOTdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmNwcApAQCAtMTk1LDYgKzE5NSwxMSBAQCB2
b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojpwcm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBj
b25zdCBTdHJpbmcmIHRpdGxlKQogICAgICAgICBtX3Byb2ZpbGVzLmFwcGVuZChXVEZNb3ZlKHBy
b2ZpbGUpKTsKIH0KIAordm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGFrZUhlYXBTbmFwc2hvdChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCit7CisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp0YWtlSGVhcFNuYXBzaG90KG1fcGFnZS5tYWluRnJhbWUoKSwgdGl0bGUp
OworfQorCiB2b2lkIFBhZ2VDb25zb2xlQ2xpZW50Ojp0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29u
c3QgU3RyaW5nJiB0aXRsZSkKIHsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0
Q29uc29sZVRpbWluZyhtX3BhZ2UubWFpbkZyYW1lKCksIHRpdGxlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZUNvbnNvbGVDbGllbnQuaAppbmRleCA0NjgxYWExLi5jZTVjNTE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCkBAIC02OSw2ICs2OSw3IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2Ny
aXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3Rh
dGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGVFbmQo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKKyAgICB2b2lk
IHRha2VIZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBv
dmVycmlkZTsKICAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRp
dGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBT
dHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0
ZSosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnNvbGVDbGllbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAppbmRleCBmOThh
OWJiLi5iM2VkZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNv
bnNvbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29s
ZUNsaWVudC5jcHAKQEAgLTU2LDYgKzU2LDcgQEAgdm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojpw
cm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikgeyB9CiAKIC8vIEZJWE1F
OiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTI3NjM0PiBXZWIgSW5zcGVjdG9yOiBzdXBwb3J0IGRl
YnVnZ2luZyB3ZWIgd29ya2Vycwogdm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojpjb3VudChKU0M6
OkV4ZWNTdGF0ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYpIHsgfQordm9pZCBXb3JrZXJD
b25zb2xlQ2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJikgeyB9CiB2b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6OnRpbWUoSlNDOjpFeGVjU3RhdGUq
LCBjb25zdCBTdHJpbmcmKSB7IH0KIHZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6dGltZUVuZChK
U0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpIHsgfQogdm9pZCBXb3JrZXJDb25zb2xlQ2xp
ZW50Ojp0aW1lU3RhbXAoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYm
KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmgKaW5k
ZXggOGJlNDUwZC4uMzYxMTIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJD
b25zb2xlQ2xpZW50LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY291
bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmlsZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOworICAgIHZvaWQgdGFrZUhlYXBTbmFwc2hv
dChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZv
aWQgdGltZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwog
ICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92
ZXJyaWRlOwogICAgIHZvaWQgdGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3Bl
Y3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9n
CmluZGV4IGY4ODE0Y2YuLjcwNTk1YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDM2IEBACiAyMDE2LTAzLTE3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5j
b20+CiAKKyAgICAgICAgV2ViIEluc3BlY3RvcjogV2Ugc2hvdWxkIGhhdmUgYSB3YXkgdG8gY2Fw
dHVyZSBoZWFwIHNuYXBzaG90cyBwcm9ncmFtYXRpY2FsbHkuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTQ0MDcKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzI0NzI2MjkyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzOgorICAg
ICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ29uc29sZU9ic2VydmVyLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVPYnNlcnZlci5wcm90b3R5cGUuaGVhcFNuYXBzaG90KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5Db25zb2xlT2JzZXJ2ZXIpOgorICAgICAgICBDcmVhdGUg
YSBIZWFwU25hcHNob3Qgd2l0aCBhbiBvcHRpb25hbCB0aXRsZSBhbmQgYWRkIHRvIHRoZSB0aW1l
bGluZS4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0
YUdyaWROb2RlKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVGFiQ29u
dGVudFZpZXcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50Vmll
dy5kaXNwbGF5TmFtZUZvclJlY29yZCk6CisgICAgICAgIFNoYXJlIGNvZGUgZm9yIHNuYXBzaG90
IGRpc3BsYXkgbmFtZXMgd2hpY2ggbWF5IG5vdyBpbmNsdWRlIGEgdGl0bGUuCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1Byb3hpZXMvSGVhcFNuYXBzaG90UHJveHkuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJveHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhl
YXBTbmFwc2hvdFByb3h5LmRlc2VyaWFsaXplKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFw
U25hcHNob3RQcm94eS5wcm90b3R5cGUuZ2V0IHRpdGxlKToKKyAgICAgICAgKiBVc2VySW50ZXJm
YWNlL1ZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlLmpzOgorICAgICAg
ICAqIFVzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90LmpzOgor
ICAgICAgICAoSGVhcFNuYXBzaG90KToKKyAgICAgICAgKEhlYXBTbmFwc2hvdC5wcm90b3R5cGUu
c2VyaWFsaXplKToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90
L0hlYXBTbmFwc2hvdFdvcmtlci5qczoKKyAgICAgICAgKEhlYXBTbmFwc2hvdFdvcmtlci5wcm90
b3R5cGUuY3JlYXRlU25hcHNob3QpOgorICAgICAgICBJbmNsdWRlIGFuIG9wdGlvbmFsIHRpdGxl
IGluIGEgSGVhcFNuYXBzaG90LgorCisyMDE2LTAzLTE3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogUHJlZmVyIHJldGFpbmVk
IHNpemUgdG8gdGhlIHNoYWxsb3cgc2l6ZSBpbiBIZWFwIFNuYXBzaG90IGRhdGEgZ3JpZHMKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTU5NwogICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMjUyMjUwODc+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0xvY2FsaXphdGlvbnMvZW4ubHByb2ovbG9jYWxpemVkU3RyaW5n
cy5qcwppbmRleCA2MGY1NDUyMTJkMDI2YzhjMTg1OGM1ZDgxMzllMTUxNGFjMWNlZWEzLi44MTA2
NTQ0ZmY3YThhOWFjYTkxYWQ2YTU1NTRiYTAwYmY4YTU1MTVhIDEwMDY0NApHSVQgYmluYXJ5IHBh
dGNoCmRlbHRhIDQzCnVjbWJQbmdMVG5PKWBsJk4/ZlEoV2xsTlZlb2N1bjRZcjN4aXFZIyt1STko
bWMrenluU1hhZkwlITRNaCUKCmRlbHRhIDIyCmVjbVoyPGxYYj1vKWBsJk4/ZlRRQjRIKSZkK1oh
K0ArVy1KK195X21eCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvQ29uc29sZU9ic2VydmVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ29uc29sZU9ic2VydmVyLmpzCmluZGV4IGNmYzJmYzAu
LmM0MmRjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Byb3RvY29sL0NvbnNvbGVPYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm90b2NvbC9Db25zb2xlT2JzZXJ2ZXIuanMKQEAgLTUyLDQgKzUyLDEz
IEBAIFdlYkluc3BlY3Rvci5Db25zb2xlT2JzZXJ2ZXIgPSBjbGFzcyBDb25zb2xlT2JzZXJ2ZXIK
ICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLm1lc3NhZ2VzQ2xlYXJlZCgp
OwogICAgIH0KKworICAgIGhlYXBTbmFwc2hvdCh0aW1lc3RhbXAsIHNuYXBzaG90U3RyaW5nRGF0
YSwgdGl0bGUpCisgICAgeworICAgICAgICBsZXQgd29ya2VyUHJveHkgPSBXZWJJbnNwZWN0b3Iu
SGVhcFNuYXBzaG90V29ya2VyUHJveHkuc2luZ2xldG9uKCk7CisgICAgICAgIHdvcmtlclByb3h5
LmNyZWF0ZVNuYXBzaG90KHNuYXBzaG90U3RyaW5nRGF0YSwgdGl0bGUgfHwgbnVsbCwgKHtvYmpl
Y3RJZCwgc25hcHNob3Q6IHNlcmlhbGl6ZWRTbmFwc2hvdH0pID0+IHsKKyAgICAgICAgICAgIGxl
dCBzbmFwc2hvdCA9IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eS5kZXNlcmlhbGl6ZShv
YmplY3RJZCwgc2VyaWFsaXplZFNuYXBzaG90KTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci50
aW1lbGluZU1hbmFnZXIuaGVhcFNuYXBzaG90QWRkZWQodGltZXN0YW1wLCBzbmFwc2hvdCk7Cisg
ICAgICAgIH0pOworICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm94aWVzL0hlYXBTbmFwc2hvdFByb3h5LmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJveGllcy9IZWFwU25hcHNob3RQcm94eS5qcwppbmRl
eCA4ZWU2NjMzLi43OWY4MzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm94aWVzL0hlYXBTbmFwc2hvdFByb3h5LmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMvSGVhcFNuYXBzaG90UHJveHkuanMKQEAg
LTI1LDEzICsyNSwxNCBAQAogCiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90UHJveHkgPSBjbGFz
cyBIZWFwU25hcHNob3RQcm94eSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmplY3QKIHsKLSAgICBj
b25zdHJ1Y3RvcihzbmFwc2hvdE9iamVjdElkLCBpZGVudGlmaWVyLCB0b3RhbFNpemUsIHRvdGFs
T2JqZWN0Q291bnQsIGNhdGVnb3JpZXMpCisgICAgY29uc3RydWN0b3Ioc25hcHNob3RPYmplY3RJ
ZCwgaWRlbnRpZmllciwgdGl0bGUsIHRvdGFsU2l6ZSwgdG90YWxPYmplY3RDb3VudCwgY2F0ZWdv
cmllcykKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAgdGhpcy5fcHJveHlPYmpl
Y3RJZCA9IHNuYXBzaG90T2JqZWN0SWQ7CiAKICAgICAgICAgdGhpcy5faWRlbnRpZmllciA9IGlk
ZW50aWZpZXI7CisgICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7CiAgICAgICAgIHRoaXMuX3Rv
dGFsU2l6ZSA9IHRvdGFsU2l6ZTsKICAgICAgICAgdGhpcy5fdG90YWxPYmplY3RDb3VudCA9IHRv
dGFsT2JqZWN0Q291bnQ7CiAgICAgICAgIHRoaXMuX2NhdGVnb3JpZXMgPSBNYXAuZnJvbU9iamVj
dChjYXRlZ29yaWVzKTsKQEAgLTQxLDE0ICs0MiwxNSBAQCBXZWJJbnNwZWN0b3IuSGVhcFNuYXBz
aG90UHJveHkgPSBjbGFzcyBIZWFwU25hcHNob3RQcm94eSBleHRlbmRzIFdlYkluc3BlY3Rvci5P
YgogCiAgICAgc3RhdGljIGRlc2VyaWFsaXplKG9iamVjdElkLCBzZXJpYWxpemVkU25hcHNob3Qp
CiAgICAgewotICAgICAgICBsZXQge2lkZW50aWZpZXIsIHRvdGFsU2l6ZSwgdG90YWxPYmplY3RD
b3VudCwgY2F0ZWdvcmllc30gPSBzZXJpYWxpemVkU25hcHNob3Q7Ci0gICAgICAgIHJldHVybiBu
ZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3h5KG9iamVjdElkLCBpZGVudGlmaWVyLCB0
b3RhbFNpemUsIHRvdGFsT2JqZWN0Q291bnQsIGNhdGVnb3JpZXMpOworICAgICAgICBsZXQge2lk
ZW50aWZpZXIsIHRpdGxlLCB0b3RhbFNpemUsIHRvdGFsT2JqZWN0Q291bnQsIGNhdGVnb3JpZXN9
ID0gc2VyaWFsaXplZFNuYXBzaG90OworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RQcm94eShvYmplY3RJZCwgaWRlbnRpZmllciwgdGl0bGUsIHRvdGFsU2l6ZSwg
dG90YWxPYmplY3RDb3VudCwgY2F0ZWdvcmllcyk7CiAgICAgfQogCiAgICAgLy8gUHVibGljCiAK
ICAgICBnZXQgcHJveHlPYmplY3RJZCgpIHsgcmV0dXJuIHRoaXMuX3Byb3h5T2JqZWN0SWQ7IH0K
ICAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX2lkZW50aWZpZXI7IH0KKyAgICBn
ZXQgdGl0bGUoKSB7IHJldHVybiB0aGlzLl90aXRsZTsgfQogICAgIGdldCB0b3RhbFNpemUoKSB7
IHJldHVybiB0aGlzLl90b3RhbFNpemU7IH0KICAgICBnZXQgdG90YWxPYmplY3RDb3VudCgpIHsg
cmV0dXJuIHRoaXMuX3RvdGFsT2JqZWN0Q291bnQ7IH0KICAgICBnZXQgY2F0ZWdvcmllcygpIHsg
cmV0dXJuIHRoaXMuX2NhdGVnb3JpZXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWRO
b2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFs
bG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKaW5kZXggNmYzN2EyMi4uOTViZmFkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVh
cEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKKysrIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3Jp
ZE5vZGUuanMKQEAgLTMzLDcgKzMzLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBBbGxvY2F0aW9uc1Rp
bWVsaW5lRGF0YUdyaWROb2RlID0gY2xhc3MgSGVhcEFsbG9jYXRpb25zVGltZWxpbmUKICAgICAg
ICAgdGhpcy5faGVhcEFsbG9jYXRpb25zVmlldyA9IGhlYXBBbGxvY2F0aW9uc1ZpZXc7CiAKICAg
ICAgICAgdGhpcy5fZGF0YSA9IHsKLSAgICAgICAgICAgIG5hbWU6IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU25hcHNob3QgJWQiKS5mb3JtYXQodGhpcy5fcmVjb3JkLmhlYXBTbmFwc2hvdC5pZGVu
dGlmaWVyKSwKKyAgICAgICAgICAgIG5hbWU6IFdlYkluc3BlY3Rvci5UaW1lbGluZVRhYkNvbnRl
bnRWaWV3LmRpc3BsYXlOYW1lRm9yUmVjb3JkKGhlYXBBbGxvY2F0aW9uc1RpbWVsaW5lUmVjb3Jk
KSwKICAgICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy5fcmVjb3JkLnRpbWVzdGFtcCAtIHplcm9U
aW1lLAogICAgICAgICAgICAgc2l6ZTogdGhpcy5fcmVjb3JkLmhlYXBTbmFwc2hvdC50b3RhbFNp
emUsCiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVUYWJDb250ZW50Vmlldy5qcwppbmRl
eCBjZjcyMGRmLi5hNWFlOWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVGFiQ29udGVudFZpZXcu
anMKQEAgLTI1Miw2ICsyNTIsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVUYWJDb250ZW50Vmll
dyA9IGNsYXNzIFRpbWVsaW5lVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJbgogICAgICAgICBj
YXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLlJlbmRlcmluZ0ZyYW1lOgogICAg
ICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnJhbWUgJWQiKS5mb3JtYXQo
dGltZWxpbmVSZWNvcmQuZnJhbWVOdW1iZXIpOwogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5U
aW1lbGluZVJlY29yZC5UeXBlLkhlYXBBbGxvY2F0aW9uczoKKyAgICAgICAgICAgIGlmICh0aW1l
bGluZVJlY29yZC5oZWFwU25hcHNob3QudGl0bGUpCisgICAgICAgICAgICAgICAgcmV0dXJuIFdl
Ykluc3BlY3Rvci5VSVN0cmluZygiU25hcHNob3QgJWQgXHUyMDE0ICVzIikuZm9ybWF0KHRpbWVs
aW5lUmVjb3JkLmhlYXBTbmFwc2hvdC5pZGVudGlmaWVyLCB0aW1lbGluZVJlY29yZC5oZWFwU25h
cHNob3QudGl0bGUpOwogICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygi
U25hcHNob3QgJWQiKS5mb3JtYXQodGltZWxpbmVSZWNvcmQuaGVhcFNuYXBzaG90LmlkZW50aWZp
ZXIpOwogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLk1lbW9y
eToKICAgICAgICAgICAgIC8vIE5vdCB1c2VkLiBGYWxsIHRocm91Z2ggdG8gZXJyb3IganVzdCBp
biBjYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
V29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90LmpzCmlu
ZGV4IGEwM2E0MjkuLjMwOWVjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90L0hlYXBTbmFwc2hvdC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9I
ZWFwU25hcHNob3QuanMKQEAgLTcyLDEwICs3MiwxMSBAQCBsZXQgbmV4dFNuYXBzaG90SWRlbnRp
ZmllciA9IDE7CiAKIEhlYXBTbmFwc2hvdCA9IGNsYXNzIEhlYXBTbmFwc2hvdAogewotICAgIGNv
bnN0cnVjdG9yKG9iamVjdElkLCBzbmFwc2hvdERhdGFTdHJpbmcpCisgICAgY29uc3RydWN0b3Io
b2JqZWN0SWQsIHNuYXBzaG90RGF0YVN0cmluZywgdGl0bGUgPSBudWxsKQogICAgIHsKICAgICAg
ICAgdGhpcy5faWRlbnRpZmllciA9IG5leHRTbmFwc2hvdElkZW50aWZpZXIrKzsKICAgICAgICAg
dGhpcy5fb2JqZWN0SWQgPSBvYmplY3RJZDsKKyAgICAgICAgdGhpcy5fdGl0bGUgPSB0aXRsZTsK
IAogICAgICAgICBsZXQganNvbiA9IEpTT04ucGFyc2Uoc25hcHNob3REYXRhU3RyaW5nKTsKICAg
ICAgICAgc25hcHNob3REYXRhU3RyaW5nID0gbnVsbDsKQEAgLTMwOSw2ICszMTAsNyBAQCBIZWFw
U25hcHNob3QgPSBjbGFzcyBIZWFwU25hcHNob3QKICAgICB7CiAgICAgICAgIHJldHVybiB7CiAg
ICAgICAgICAgICBpZGVudGlmaWVyOiB0aGlzLl9pZGVudGlmaWVyLAorICAgICAgICAgICAgdGl0
bGU6IHRoaXMuX3RpdGxlLAogICAgICAgICAgICAgdG90YWxTaXplOiB0aGlzLl90b3RhbFNpemUs
CiAgICAgICAgICAgICB0b3RhbE9iamVjdENvdW50OiB0aGlzLl9ub2RlQ291bnQgLSAxLCAvLyA8
cm9vdD4uCiAgICAgICAgICAgICBjYXRlZ29yaWVzOiB0aGlzLl9jYXRlZ29yaWVzLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25h
cHNob3QvSGVhcFNuYXBzaG90V29ya2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90V29ya2VyLmpzCmluZGV4
IGI1MWI1NmMuLmNhYWI1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90L0hlYXBTbmFwc2hvdFdvcmtlci5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hv
dC9IZWFwU25hcHNob3RXb3JrZXIuanMKQEAgLTM5LDEwICszOSwxMCBAQCBIZWFwU25hcHNob3RX
b3JrZXIgPSBjbGFzcyBIZWFwU25hcHNob3RXb3JrZXIKIAogICAgIC8vIEFjdGlvbnMKIAotICAg
IGNyZWF0ZVNuYXBzaG90KHNuYXBzaG90U3RyaW5nKQorICAgIGNyZWF0ZVNuYXBzaG90KHNuYXBz
aG90U3RyaW5nLCB0aXRsZSkKICAgICB7CiAgICAgICAgIGxldCBvYmplY3RJZCA9IHRoaXMuX25l
eHRPYmplY3RJZCsrOwotICAgICAgICBsZXQgc25hcHNob3QgPSBuZXcgSGVhcFNuYXBzaG90KG9i
amVjdElkLCBzbmFwc2hvdFN0cmluZyk7CisgICAgICAgIGxldCBzbmFwc2hvdCA9IG5ldyBIZWFw
U25hcHNob3Qob2JqZWN0SWQsIHNuYXBzaG90U3RyaW5nLCB0aXRsZSk7CiAgICAgICAgIHRoaXMu
X29iamVjdHMuc2V0KG9iamVjdElkLCBzbmFwc2hvdCk7CiAgICAgICAgIHJldHVybiB7b2JqZWN0
SWQsIHNuYXBzaG90OiBzbmFwc2hvdC5zZXJpYWxpemUoKX07CiAgICAgfQo=
</data>
<flag name="review"
          id="298831"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275109</attachid>
            <date>2016-03-29 11:00:48 -0700</date>
            <delta_ts>2016-03-29 11:51:34 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>rebaselined-console.patch</filename>
            <type>text/plain</type>
            <size>40241</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYzQ1MDcwLi5lZTVjM2ViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTYtMDMt
MjkgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBXZSBzaG91bGQgaGF2ZSBhIHdheSB0byBjYXB0dXJlIGhlYXAgc25hcHNob3Rz
IHByb2dyYW1hdGljYWxseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1NDQwNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjQ3MjYyOTI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogaW5zcGVjdG9y
L2NvbnNvbGUvaGVhcFNuYXBzaG90LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5z
cGVjdG9yL2NvbnNvbGUvaGVhcFNuYXBzaG90Lmh0bWw6IEFkZGVkLgorICAgICAgICBUZXN0IHRo
YXQgd2UgZ2V0IGV4cGVjdGVkIGRhdGEgYW5kIGV2ZW50cyBhZnRlciBjYWxsaW5nCisgICAgICAg
IGNvbnNvbGUudGFrZUhlYXBTbmFwc2hvdCB3aGVuIHRoZSBpbnNwZWN0b3IgaXMgb3Blbi4KKwog
MjAxNi0wMy0yOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIEF1ZGl0IFdlYkNvcmUgYnVpbHRpbnMgZm9yIHVzZXIgb3ZlcnJpZGFibGUgY29kZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvaGVhcFNuYXBzaG90LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2hlYXBTbmFwc2hvdC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDJjMmVjYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2hlYXBTbmFwc2hv
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNiBAQAorVGVzdCBmb3IgdGhlIENvbnNvbGUuaGVh
cFNuYXBzaG90IGV2ZW50IHRyaWdnZXJlZCBieSBjb25zb2xlLnRha2VIZWFwU25hcHNob3QuCisK
KworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDb25zb2xlLmhlYXBTbmFwc2hvdAorLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFRyaWdnZXJIZWFwU25hcHNob3ROb1RpdGxlCitDb25zb2xlLmhlYXBTbmFw
c2hvdAorUEFTUzogU2hvdWxkIGhhdmUgYSB0aW1lc3RhbXAuCitQQVNTOiBTaG91bGQgaGF2ZSBz
bmFwc2hvdERhdGEuCitQQVNTOiBTaG91bGQgbm90IGhhdmUgYSB0aXRsZS4KKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFRyaWdnZXJIZWFwU25hcHNob3RXaXRoVGl0bGUKK0NvbnNvbGUuaGVhcFNu
YXBzaG90CitQQVNTOiBTaG91bGQgaGF2ZSBhIHRpbWVzdGFtcC4KK1BBU1M6IFNob3VsZCBoYXZl
IHNuYXBzaG90RGF0YS4KK1BBU1M6IFNob3VsZCBoYXZlIGV4cGVjdGVkIHRpdGxlLgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9oZWFwU25hcHNob3QuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2hlYXBTbmFwc2hvdC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkxMWM0NDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9oZWFwU25hcHNob3QuaHRtbApAQCAtMCwwICsx
LDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRyaWdnZXJIZWFwU25hcHNob3ROb1RpdGxlKCkgewor
ICAgIGNvbnNvbGUudGFrZUhlYXBTbmFwc2hvdCgpOworfQorCitmdW5jdGlvbiB0cmlnZ2VySGVh
cFNuYXBzaG90V2l0aFRpdGxlKCkgeworICAgIGNvbnNvbGUudGFrZUhlYXBTbmFwc2hvdCgiU25h
cHNob3QgVGl0bGUiKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0g
UHJvdG9jb2xUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNvbnNvbGUuaGVhcFNuYXBzaG90Iik7CisK
KyAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJUcmlnZ2VySGVhcFNuYXBz
aG90Tm9UaXRsZSIsCisgICAgICAgIHRlc3Q6IGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuYXdhaXRFdmVudCh7ZXZlbnQ6ICJDb25zb2xl
LmhlYXBTbmFwc2hvdCJ9KS50aGVuKChtZXNzYWdlT2JqZWN0KSA9PiB7CisgICAgICAgICAgICAg
ICAgUHJvdG9jb2xUZXN0LmxvZygiQ29uc29sZS5oZWFwU25hcHNob3QiKTsKKyAgICAgICAgICAg
ICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdCh0eXBlb2YgbWVzc2FnZU9iamVjdC5wYXJhbXMu
dGltZXN0YW1wID09PSAibnVtYmVyIiwgIlNob3VsZCBoYXZlIGEgdGltZXN0YW1wLiIpOworICAg
ICAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KHR5cGVvZiBtZXNzYWdlT2JqZWN0
LnBhcmFtcy5zbmFwc2hvdERhdGEgPT09ICJzdHJpbmciLCAiU2hvdWxkIGhhdmUgc25hcHNob3RE
YXRhLiIpOworICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RUaGF0KCFtZXNzYWdl
T2JqZWN0LnBhcmFtcy50aXRsZSwgIlNob3VsZCBub3QgaGF2ZSBhIHRpdGxlLiIpOworICAgICAg
ICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBQcm90
b2NvbFRlc3QuZXZhbHVhdGVJblBhZ2UoInRyaWdnZXJIZWFwU25hcHNob3ROb1RpdGxlKCkiKTsK
KyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBu
YW1lOiAiVHJpZ2dlckhlYXBTbmFwc2hvdFdpdGhUaXRsZSIsCisgICAgICAgIHRlc3Q6IGZ1bmN0
aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuYXdh
aXRFdmVudCh7ZXZlbnQ6ICJDb25zb2xlLmhlYXBTbmFwc2hvdCJ9KS50aGVuKChtZXNzYWdlT2Jq
ZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmxvZygiQ29uc29sZS5oZWFw
U25hcHNob3QiKTsKKyAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXhwZWN0VGhhdCh0eXBl
b2YgbWVzc2FnZU9iamVjdC5wYXJhbXMudGltZXN0YW1wID09PSAibnVtYmVyIiwgIlNob3VsZCBo
YXZlIGEgdGltZXN0YW1wLiIpOworICAgICAgICAgICAgICAgIFByb3RvY29sVGVzdC5leHBlY3RU
aGF0KHR5cGVvZiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zbmFwc2hvdERhdGEgPT09ICJzdHJpbmci
LCAiU2hvdWxkIGhhdmUgc25hcHNob3REYXRhLiIpOworICAgICAgICAgICAgICAgIFByb3RvY29s
VGVzdC5leHBlY3RUaGF0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnRpdGxlID09PSAiU25hcHNob3Qg
VGl0bGUiLCAiU2hvdWxkIGhhdmUgZXhwZWN0ZWQgdGl0bGUuIik7CisgICAgICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIFByb3RvY29sVGVzdC5l
dmFsdWF0ZUluUGFnZSgidHJpZ2dlckhlYXBTbmFwc2hvdFdpdGhUaXRsZSgpIik7CisgICAgICAg
IH0KKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciB0
aGUgQ29uc29sZS5oZWFwU25hcHNob3QgZXZlbnQgdHJpZ2dlcmVkIGJ5IGNvbnNvbGUudGFrZUhl
YXBTbmFwc2hvdC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpp
bmRleCA2ZmIwMTVkLi4zZDEyZDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOSBAQAorMjAxNi0wMy0yOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlIHNob3VsZCBoYXZlIGEgd2F5IHRvIGNhcHR1
cmUgaGVhcCBzbmFwc2hvdHMgcHJvZ3JhbWF0aWNhbGx5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NDA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yNDcyNjI5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvQ29uc29sZS5qc29uOgorICAgICAgICBBZGQgYSBu
ZXcgQ29uc29sZS5oZWFwU25hcHNob3QgZXZlbnQgZm9yIHdoZW4gYSBoZWFwIHNuYXBzaG90IGlz
IHRha2VuLgorCisgICAgICAgICogcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmNwcDoKKyAgICAg
ICAgKEpTQzo6Q29uc29sZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24pOgorICAgICAgICAoSlND
Ojpjb25zb2xlUHJvdG9GdW5jUHJvZmlsZSk6CisgICAgICAgIChKU0M6OmNvbnNvbGVQcm90b0Z1
bmNQcm9maWxlRW5kKToKKyAgICAgICAgKEpTQzo6Y29uc29sZVByb3RvRnVuY1Rha2VIZWFwU25h
cHNob3QpOgorICAgICAgICAqIHJ1bnRpbWUvQ29uc29sZUNsaWVudC5oOgorICAgICAgICBBZGQg
dGhlIGNvbnNvbGUudGFrZUhlYXBTbmFwc2hvdCBtZXRob2QgYW5kIGRpc3BhdGNoIHRvIHRoZSBD
b25zb2xlQ2xpZW50LgorCisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29s
ZUNsaWVudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUNs
aWVudDo6dGFrZUhlYXBTbmFwc2hvdCk6CisgICAgICAgICogaW5zcGVjdG9yL0pTR2xvYmFsT2Jq
ZWN0Q29uc29sZUNsaWVudC5oOgorICAgICAgICBIYXZlIHRoZSBJbnNwZWN0b3JDb25zb2xlQWdl
bnQgaGFuZGxlIHRoaXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNw
ZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SlNHbG9iYWxPYmplY3RJ
bnNwZWN0b3JDb250cm9sbGVyOjpKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIpOgor
ICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcDoKKyAg
ICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yQ29uc29sZUFnZW50OjpJbnNwZWN0b3JDb25zb2xl
QWdlbnQpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnRha2VI
ZWFwU25hcHNob3QpOgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29s
ZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9iamVjdENvbnNv
bGVBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6OkpTR2xvYmFsT2JqZWN0Q29uc29sZUFn
ZW50OjpKU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5oOgorICAgICAgICBHaXZlIHRoZSBDb25z
b2xlQWdlbnQgYSBIZWFwQWdlbnQgcG9pbnRlciBzbyB0aGF0IGl0IGNhbiBoYXZlIHRoZSBIZWFw
QWdlbnQKKyAgICAgICAgcGVyZm9ybSB0aGUgc25hcHNob3QgYnVpbGRpbmcgd29yayBsaWtlIGl0
IG5vcm1hbGx5IGRvZXMuCisKIDIwMTYtMDMtMjggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBBdWRpdCBXZWJDb3JlIGJ1aWx0aW5zIGZvciB1c2VyIG92
ZXJyaWRhYmxlIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmNwcAppbmRleCBmNGExNTVk
Li5lMzY4NTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuY3BwCkBAIC04Myw2ICs4Mywx
MSBAQCB2b2lkIEpTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpCiAgICAgLy8gRklYTUU6IHN1cHBvcnQgfGNvbnNvbGUu
cHJvZmlsZXwgZm9yIEpTQ29udGV4dHMuIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzY0NjY+CiB9
CiAKK3ZvaWQgSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90KEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBtX2NvbnNvbGVBZ2Vu
dC0+dGFrZUhlYXBTbmFwc2hvdCh0aXRsZSk7Cit9CisKIHZvaWQgSlNHbG9iYWxPYmplY3RDb25z
b2xlQ2xpZW50Ojp0aW1lKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAg
bV9jb25zb2xlQWdlbnQtPnN0YXJ0VGltaW5nKHRpdGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0Q29uc29sZUNsaWVu
dC5oCmluZGV4IDMyMjAxOTkuLmYzNjg3ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RDb25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdENvbnNvbGVDbGllbnQuaApA
QCAtNDYsNiArNDYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0
ZSosIFJlZlB0cjxTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcHJvZmls
ZShKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZv
aWQgcHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJy
aWRlOworICAgIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0
cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZShKU0M6OkV4ZWNTdGF0ZSosIGNv
bnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZUVuZChKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdGltZVN0YW1w
KEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTR2xvYmFsT2JqZWN0
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0pTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggZmQ3Zjg2OS4uZjBm
ZmMxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2Jh
bE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtODUs
NyArODUsOCBAQCBKU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXI6OkpTR2xvYmFsT2Jq
ZWN0SW5zcGVjdG9yQ29udHJvbGxlcihKU0dsb2JhbE9iagogCiAgICAgYXV0byBpbnNwZWN0b3JB
Z2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9yQWdlbnQ+KGNvbnRleHQpOwogICAgIGF1
dG8gcnVudGltZUFnZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0dsb2JhbE9iamVjdFJ1bnRpbWVB
Z2VudD4oY29udGV4dCk7Ci0gICAgYXV0byBjb25zb2xlQWdlbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50Pihjb250ZXh0KTsKKyAgICBhdXRvIGhlYXBBZ2Vu
dCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5zcGVjdG9ySGVhcEFnZW50Pihjb250ZXh0KTsKKyAgICBh
dXRvIGNvbnNvbGVBZ2VudCA9IHN0ZDo6bWFrZV91bmlxdWU8SlNHbG9iYWxPYmplY3RDb25zb2xl
QWdlbnQ+KGNvbnRleHQsIGhlYXBBZ2VudC5nZXQoKSk7CiAgICAgYXV0byBkZWJ1Z2dlckFnZW50
ID0gc3RkOjptYWtlX3VuaXF1ZTxKU0dsb2JhbE9iamVjdERlYnVnZ2VyQWdlbnQ+KGNvbnRleHQs
IGNvbnNvbGVBZ2VudC5nZXQoKSk7CiAKICAgICBtX2luc3BlY3RvckFnZW50ID0gaW5zcGVjdG9y
QWdlbnQuZ2V0KCk7CkBAIC05Nyw3ICs5OCw3IEBAIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29u
dHJvbGxlcjo6SlNHbG9iYWxPYmplY3RJbnNwZWN0b3JDb250cm9sbGVyKEpTR2xvYmFsT2JqCiAg
ICAgbV9hZ2VudHMuYXBwZW5kKFdURk1vdmUocnVudGltZUFnZW50KSk7CiAgICAgbV9hZ2VudHMu
YXBwZW5kKFdURk1vdmUoY29uc29sZUFnZW50KSk7CiAgICAgbV9hZ2VudHMuYXBwZW5kKFdURk1v
dmUoZGVidWdnZXJBZ2VudCkpOwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVl
PEluc3BlY3RvckhlYXBBZ2VudD4oY29udGV4dCkpOworICAgIG1fYWdlbnRzLmFwcGVuZChXVEZN
b3ZlKGhlYXBBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPElu
c3BlY3RvclNjcmlwdFByb2ZpbGVyQWdlbnQ+KGNvbnRleHQpKTsKIAogICAgIG1fZXhlY3V0aW9u
U3RvcHdhdGNoLT5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXgg
ZTUxOGY3Zi4uMzExNmIwNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29uc29sZU1lc3NhZ2UuaCIKICNpbmNsdWRlICJJbmpl
Y3RlZFNjcmlwdE1hbmFnZXIuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZFJvdXRlci5o
IgorI2luY2x1ZGUgIkluc3BlY3RvckhlYXBBZ2VudC5oIgogI2luY2x1ZGUgIlNjcmlwdEFyZ3Vt
ZW50cy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIlNjcmlwdENh
bGxTdGFjay5oIgpAQCAtNDMsMTEgKzQ0LDEyIEBAIG5hbWVzcGFjZSBJbnNwZWN0b3Igewogc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG1heGltdW1Db25zb2xlTWVzc2FnZXMgPSAxMDA7CiBzdGF0aWMg
Y29uc3QgaW50IGV4cGlyZUNvbnNvbGVNZXNzYWdlc1N0ZXAgPSAxMDsKIAotSW5zcGVjdG9yQ29u
c29sZUFnZW50OjpJbnNwZWN0b3JDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0KQor
SW5zcGVjdG9yQ29uc29sZUFnZW50OjpJbnNwZWN0b3JDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0
JiBjb250ZXh0LCBJbnNwZWN0b3JIZWFwQWdlbnQqIGhlYXBBZ2VudCkKICAgICA6IEluc3BlY3Rv
ckFnZW50QmFzZShBU0NJSUxpdGVyYWwoIkNvbnNvbGUiKSkKICAgICAsIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyKGNvbnRleHQuaW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKQogICAgICwgbV9mcm9udGVu
ZERpc3BhdGNoZXIoc3RkOjptYWtlX3VuaXF1ZTxDb25zb2xlRnJvbnRlbmREaXNwYXRjaGVyPihj
b250ZXh0LmZyb250ZW5kUm91dGVyKSkKICAgICAsIG1fYmFja2VuZERpc3BhdGNoZXIoQ29uc29s
ZUJhY2tlbmREaXNwYXRjaGVyOjpjcmVhdGUoY29udGV4dC5iYWNrZW5kRGlzcGF0Y2hlciwgdGhp
cykpCisgICAgLCBtX2hlYXBBZ2VudChoZWFwQWdlbnQpCiB7CiB9CiAKQEAgLTE1Myw2ICsxNTUs
MTkgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OnN0b3BUaW1pbmcoY29uc3QgU3RyaW5n
JiB0aXRsZSwgUGFzc1JlZlB0cjxTY3JpcHRDYWwKICAgICBhZGRNZXNzYWdlVG9Db25zb2xlKHN0
ZDo6bWFrZV91bmlxdWU8Q29uc29sZU1lc3NhZ2U+KE1lc3NhZ2VTb3VyY2U6OkNvbnNvbGVBUEks
IE1lc3NhZ2VUeXBlOjpUaW1pbmcsIE1lc3NhZ2VMZXZlbDo6RGVidWcsIG1lc3NhZ2UsIGNhbGxT
dGFjaykpOwogfQogCit2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2VudDo6dGFrZUhlYXBTbmFwc2hv
dChjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIGlmICghbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXIuaW5zcGVjdG9yRW52aXJvbm1lbnQoKS5kZXZlbG9wZXJFeHRyYXNFbmFibGVkKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIEVycm9yU3RyaW5nIGlnbm9yZWQ7CisgICAgZG91YmxlIHRpbWVz
dGFtcDsKKyAgICBTdHJpbmcgc25hcHNob3REYXRhOworICAgIG1faGVhcEFnZW50LT5zbmFwc2hv
dChpZ25vcmVkLCAmdGltZXN0YW1wLCAmc25hcHNob3REYXRhKTsKKworICAgIG1fZnJvbnRlbmRE
aXNwYXRjaGVyLT5oZWFwU25hcHNob3QodGltZXN0YW1wLCBzbmFwc2hvdERhdGEsIHRpdGxlLmlz
RW1wdHkoKSA/IG51bGxwdHIgOiAmdGl0bGUpOworfQorCiB2b2lkIEluc3BlY3RvckNvbnNvbGVB
Z2VudDo6Y291bnQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBQYXNzUmVmUHRyPFNjcmlwdEFyZ3Vt
ZW50cz4gYXJndW1lbnRzKQogewogICAgIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IGNhbGxTdGFj
ayhjcmVhdGVTY3JpcHRDYWxsU3RhY2tGb3JDb25zb2xlKHN0YXRlLCBTY3JpcHRDYWxsU3RhY2s6
Om1heENhbGxTdGFja1NpemVUb0NhcHR1cmUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgK
aW5kZXggODczZjZkMy4uOTQ1MWVjNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmgKQEAg
LTQ0LDYgKzQ0LDcgQEAgbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKIGNsYXNzIENvbnNvbGVNZXNz
YWdlOwogY2xhc3MgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyOworY2xhc3MgSW5zcGVjdG9ySGVhcEFn
ZW50OwogY2xhc3MgU2NyaXB0QXJndW1lbnRzOwogY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwogdHlw
ZWRlZiBTdHJpbmcgRXJyb3JTdHJpbmc7CkBAIC01Miw3ICs1Myw3IEBAIGNsYXNzIEpTX0VYUE9S
VF9QUklWQVRFIEluc3BlY3RvckNvbnNvbGVBZ2VudCA6IHB1YmxpYyBJbnNwZWN0b3JBZ2VudEJh
c2UsIHB1YmxpCiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zcGVjdG9yQ29uc29sZUFnZW50
KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBJbnNwZWN0b3JD
b25zb2xlQWdlbnQoQWdlbnRDb250ZXh0Jik7CisgICAgSW5zcGVjdG9yQ29uc29sZUFnZW50KEFn
ZW50Q29udGV4dCYsIEluc3BlY3RvckhlYXBBZ2VudCopOwogICAgIHZpcnR1YWwgfkluc3BlY3Rv
ckNvbnNvbGVBZ2VudCgpOwogCiAgICAgdm9pZCBkaWRDcmVhdGVGcm9udGVuZEFuZEJhY2tlbmQo
RnJvbnRlbmRSb3V0ZXIqLCBCYWNrZW5kRGlzcGF0Y2hlciopIG92ZXJyaWRlOwpAQCAtNzEsNiAr
NzIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0YXJ0VGltaW5nKGNvbnN0IFN0cmluZyYgdGl0
bGUpOwogICAgIHZvaWQgc3RvcFRpbWluZyhjb25zdCBTdHJpbmcmIHRpdGxlLCBQYXNzUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4pOworICAgIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChjb25zdCBTdHJp
bmcmIHRpdGxlKTsKICAgICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxT
Y3JpcHRBcmd1bWVudHM+KTsKIAogcHJvdGVjdGVkOgpAQCAtNzksNiArODEsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyJiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29uc29sZUZyb250ZW5kRGlzcGF0Y2hlcj4gbV9mcm9udGVu
ZERpc3BhdGNoZXI7CiAgICAgUmVmUHRyPENvbnNvbGVCYWNrZW5kRGlzcGF0Y2hlcj4gbV9iYWNr
ZW5kRGlzcGF0Y2hlcjsKKyAgICBJbnNwZWN0b3JIZWFwQWdlbnQqIG1faGVhcEFnZW50OwogCiAg
ICAgQ29uc29sZU1lc3NhZ2UqIG1fcHJldmlvdXNNZXNzYWdlIHsgbnVsbHB0ciB9OwogICAgIFZl
Y3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q29uc29sZU1lc3NhZ2U+PiBtX2NvbnNvbGVNZXNzYWdlczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xv
YmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0
b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50LmNwcAppbmRleCAwMjE3ZGM2Li40
MDExNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50
cy9KU0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQuY3BwCkBAIC0y
OCw4ICsyOCw4IEBACiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCi1KU0dsb2JhbE9iamVjdENv
bnNvbGVBZ2VudDo6SlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiBjb250
ZXh0KQotICAgIDogSW5zcGVjdG9yQ29uc29sZUFnZW50KGNvbnRleHQpCitKU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudDo6SlNHbG9iYWxPYmplY3RDb25zb2xlQWdlbnQoQWdlbnRDb250ZXh0JiBj
b250ZXh0LCBJbnNwZWN0b3JIZWFwQWdlbnQqIGhlYXBBZ2VudCkKKyAgICA6IEluc3BlY3RvckNv
bnNvbGVBZ2VudChjb250ZXh0LCBoZWFwQWdlbnQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29sZUFn
ZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9KU0dsb2JhbE9i
amVjdENvbnNvbGVBZ2VudC5oCmluZGV4IGIxZGFlNGMuLmMwNjljODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0pTR2xvYmFsT2JqZWN0Q29uc29s
ZUFnZW50LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSlNH
bG9iYWxPYmplY3RDb25zb2xlQWdlbnQuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBKU0dsb2Jh
bE9iamVjdENvbnNvbGVBZ2VudCBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JDb25zb2xlQWdlbnQg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEpTR2xvYmFsT2JqZWN0Q29uc29sZUFnZW50KTsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBKU0dsb2JhbE9iamVj
dENvbnNvbGVBZ2VudChBZ2VudENvbnRleHQmKTsKKyAgICBKU0dsb2JhbE9iamVjdENvbnNvbGVB
Z2VudChBZ2VudENvbnRleHQmLCBJbnNwZWN0b3JIZWFwQWdlbnQqKTsKICAgICB2aXJ0dWFsIH5K
U0dsb2JhbE9iamVjdENvbnNvbGVBZ2VudCgpIHsgfQogCiAgICAgLy8gRklYTUU6IFhIUnMgYW5k
IE5vZGVzIG9ubHkgbWFrZXMgc2Vuc2UgZGVidWdnaW5nIGEgV2ViIGNvbnRleHQuIENhbiB0aGlz
IGJlIG1vdmVkIHRvIGEgZGlmZmVyZW50IGFnZW50PwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9Db25zb2xlLmpzb24gYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0NvbnNvbGUuanNvbgppbmRleCBhMjU1MzYyLi5i
ZWMxZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3Rv
Y29sL0NvbnNvbGUuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3By
b3RvY29sL0NvbnNvbGUuanNvbgpAQCAtODQsNiArODQsMTUgQEAKICAgICAgICAgewogICAgICAg
ICAgICAgIm5hbWUiOiAibWVzc2FnZXNDbGVhcmVkIiwKICAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJJc3N1ZWQgd2hlbiBjb25zb2xlIGlzIGNsZWFyZWQuIFRoaXMgaGFwcGVucyBlaXRoZXIg
dXBvbiA8Y29kZT5jbGVhck1lc3NhZ2VzPC9jb2RlPiBjb21tYW5kIG9yIGFmdGVyIHBhZ2UgbmF2
aWdhdGlvbi4iCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImhl
YXBTbmFwc2hvdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiSXNzdWVkIGZyb20gY29u
c29sZS50YWtlSGVhcFNuYXBzaG90LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInRpbWVzdGFtcCIsICJ0eXBlIjogIm51bWJlciIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNuYXBzaG90RGF0YSIsICIkcmVmIjogIkhlYXAu
SGVhcFNuYXBzaG90RGF0YSIsICJkZXNjcmlwdGlvbiI6ICJTbmFwc2hvdCBhdCB0aGUgZW5kIG9m
IHRyYWNraW5nLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRpdGxlIiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIk9wdGlvbmFsIHRp
dGxlIHByb3ZpZGVkIHRvIGNvbnNvbGUudGFrZUhlYXBTbmFwc2hvdC4iIH0KKyAgICAgICAgICAg
IF0KICAgICAgICAgfQogICAgIF0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0NvbnNvbGVDbGllbnQuaAppbmRleCBhMTZiODViLi5hOWZhYTU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlQ2xpZW50LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZUNsaWVudC5oCkBAIC01OSw2ICs1OSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY291bnQoRXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rv
cjo6U2NyaXB0QXJndW1lbnRzPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHByb2ZpbGUoRXhl
Y1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwcm9m
aWxlRW5kKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdGFrZUhlYXBTbmFwc2hvdChFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHRpbWUoRXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0aW1lRW5kKEV4ZWNTdGF0ZSosIGNvbnN0IFN0cmlu
ZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdGltZVN0YW1wKEV4ZWNTdGF0ZSosIFJl
ZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29uc29sZVByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlUHJvdG90eXBlLmNwcAppbmRleCBjOGRiMDY4
Li5mMTg1ZmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25z
b2xlUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25z
b2xlUHJvdG90eXBlLmNwcApAQCAtNTIsNiArNTIsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jQXNzZXJ0KEV4ZWNTdGF0ZSopOwogc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3RvRnVuY0NvdW50KEV4ZWNT
dGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29sZVByb3Rv
RnVuY1Byb2ZpbGUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZUVuZChFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVhcFNuYXBzaG90
KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY29uc29s
ZVByb3RvRnVuY1RpbWUoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGltZUVuZChFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNUaW1lU3RhbXAoRXhlY1N0
YXRlKik7CkBAIC04Niw2ICs4Nyw3IEBAIHZvaWQgQ29uc29sZVByb3RvdHlwZTo6ZmluaXNoQ3Jl
YXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQogICAgIEpTQ19OQVRJ
VkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1lIiwgY29uc29sZVByb3RvRnVuY1Rp
bWUsIE5vbmUsIDApOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9O
KCJ0aW1lRW5kIiwgY29uc29sZVByb3RvRnVuY1RpbWVFbmQsIE5vbmUsIDApOwogICAgIEpTQ19O
QVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJ0aW1lU3RhbXAiLCBjb25zb2xlUHJv
dG9GdW5jVGltZVN0YW1wLCBOb25lLCAwKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhP
VVRfVFJBTlNJVElPTigidGFrZUhlYXBTbmFwc2hvdCIsIGNvbnNvbGVQcm90b0Z1bmNUYWtlSGVh
cFNuYXBzaG90LCBOb25lLCAwKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigiZ3JvdXAiLCBjb25zb2xlUHJvdG9GdW5jR3JvdXAsIE5vbmUsIDApOwogICAgIEpT
Q19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJncm91cENvbGxhcHNlZCIsIGNv
bnNvbGVQcm90b0Z1bmNHcm91cENvbGxhcHNlZCwgTm9uZSwgMCk7CiAgICAgSlNDX05BVElWRV9G
VU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImdyb3VwRW5kIiwgY29uc29sZVByb3RvRnVuY0dy
b3VwRW5kLCBOb25lLCAwKTsKQEAgLTI1OCw3ICsyNjAsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jUHJvZmlsZShFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7CiAKICAgICBz
aXplX3QgYXJnc0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpOwotICAgIGlmIChhcmdzQ291
bnQgPD0gMCkgeworICAgIGlmICghYXJnc0NvdW50KSB7CiAgICAgICAgIGNsaWVudC0+cHJvZmls
ZShleGVjLCBTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAgICAgfQpAQCAtMjgyLDcgKzI4NCw3IEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIAogICAg
IHNpemVfdCBhcmdzQ291bnQgPSBleGVjLT5hcmd1bWVudENvdW50KCk7Ci0gICAgaWYgKGFyZ3ND
b3VudCA8PSAwKSB7CisgICAgaWYgKCFhcmdzQ291bnQpIHsKICAgICAgICAgY2xpZW50LT5wcm9m
aWxlRW5kKGV4ZWMsIFN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKICAgICB9CkBAIC0yOTUsNiArMjk3LDMwIEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNvbnNvbGVQcm90b0Z1bmNQcm9maWxlRW5kKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQog
CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25zb2xlUHJvdG9GdW5jVGFr
ZUhlYXBTbmFwc2hvdChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNDb25zb2xlKiBjYXN0ZWRU
aGlzID0ganNEeW5hbWljQ2FzdDxKU0NvbnNvbGUqPihleGVjLT50aGlzVmFsdWUoKSk7CisgICAg
aWYgKCFjYXN0ZWRUaGlzKQorICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjKTsK
KyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKGNhc3RlZFRoaXMsIEpTQ29uc29sZTo6aW5m
bygpKTsKKyAgICBDb25zb2xlQ2xpZW50KiBjbGllbnQgPSBjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKS0+Y29uc29sZUNsaWVudCgpOworICAgIGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworCisgICAgc2l6ZV90IGFyZ3NDb3VudCA9
IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsKKyAgICBpZiAoIWFyZ3NDb3VudCkgeworICAgICAgICBj
bGllbnQtPnRha2VIZWFwU25hcHNob3QoZXhlYywgU3RyaW5nKCkpOworICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOworICAgIH0KKworICAgIGNvbnN0IFN0cmlu
ZyYgdGl0bGUodmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjayhleGVjLCBleGVj
LT5hcmd1bWVudCgwKSkpOworICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKKworICAgIGNsaWVudC0+dGFr
ZUhlYXBTbmFwc2hvdChleGVjLCB0aXRsZSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c1VuZGVmaW5lZCgpKTsKK30KKwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
Y29uc29sZVByb3RvRnVuY1RpbWUoRXhlY1N0YXRlKiBleGVjKQogewogICAgIEpTQ29uc29sZSog
Y2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8SlNDb25zb2xlKj4oZXhlYy0+dGhpc1ZhbHVlKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDdmMDc2MWYuLmNlMDlkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
OCBAQAorMjAxNi0wMy0yOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlIHNob3VsZCBoYXZlIGEgd2F5IHRvIGNhcHR1cmUg
aGVhcCBzbmFwc2hvdHMgcHJvZ3JhbWF0aWNhbGx5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NDA3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8y
NDcyNjI5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAg
ICAgVGVzdDogaW5zcGVjdG9yL2NvbnNvbGUvaGVhcFNuYXBzaG90Lmh0bWwKKworICAgICAgICAq
IHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUNvbnNv
bGVDbGllbnQ6OnRha2VIZWFwU25hcHNob3QpOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGVD
bGllbnQuaDoKKyAgICAgICAgUGFzcyB0aHJvdWdoIHRvIEluc3BlY3RvciBJbnN0cnVtZW50YXRp
b24uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp0YWtlSGVh
cFNuYXBzaG90KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGFrZUhl
YXBTbmFwc2hvdEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaDoKKyAgICAgICAgUGFzcyB0aHJvdWdoIHRvIEluc3BlY3RvckNvbnNvbGVBZ2VudC4K
KworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Okluc3BlY3RvckNvbnRyb2xsZXIpOgorICAg
ICAgICAqIGluc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VDb25zb2xlQWdlbnQ6OlBhZ2VDb25zb2xlQWdlbnQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9QYWdlQ29uc29sZUFnZW50Lmg6CisgICAgICAgICogaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2Vu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb25zb2xlQWdlbnQ6OldlYkNvbnNvbGVBZ2Vu
dCk6CisgICAgICAgICogaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oOgorICAgICAgICAqIHdv
cmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJD
b25zb2xlQ2xpZW50Ojp0YWtlSGVhcFNuYXBzaG90KToKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
ckNvbnNvbGVDbGllbnQuaDoKKyAgICAgICAgUHJvdmlkZSBhIEhlYXBBZ2VudCB0byB0aGUgQ29u
c29sZUFnZW50LgorCiAyMDE2LTAzLTI4ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQXVkaXQgV2ViQ29yZSBidWlsdGlucyBmb3IgdXNlciBvdmVycmlk
YWJsZSBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q29uc29sZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnNvbGVJbnN0cnVtZW50YXRpb24uaAppbmRleCA2YTA1YzJmLi40ODQ5MjM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29uc29sZUluc3RydW1l
bnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb25zb2xl
SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTU0LDYgKzU0LDEzIEBAIGlubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50KFBhZ2UmIHBhZ2UsIEpTQzo6RXhlY1N0YXRl
KiBzCiAgICAgY29uc29sZUNvdW50SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzRm9yUGFnZShwYWdl
KSwgc3RhdGUsIFdURk1vdmUoYXJndW1lbnRzKSk7CiB9CiAKK2lubGluZSB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6dGFrZUhlYXBTbmFwc2hvdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0
cmluZyYgdGl0bGUpCit7CisgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRFTkRTKHZvaWQoKSk7
CisgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMgPSBpbnN0
cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQorICAgICAgICB0YWtlSGVhcFNuYXBzaG90
SW1wbCgqaW5zdHJ1bWVudGluZ0FnZW50cywgdGl0bGUpOworfQorCiBpbmxpbmUgdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OnN0YXJ0Q29uc29sZVRpbWluZyhGcmFtZSYgZnJhbWUsIGNv
bnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgaWYgKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMgPSBpbnN0cnVtZW50aW5nQWdlbnRzRm9yRnJhbWUoZnJhbWUpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4
IGE4NDExYWMuLmNiNDJlZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTE2Miw3ICsxNjIsMTEgQEAgSW5zcGVjdG9yQ29udHJv
bGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlJiBwYWdlLCBJbnNwZWN0b3JDbGllbnQqIGlu
c3BlY3RvckMKICAgICBtX3RpbWVsaW5lQWdlbnQgPSB0aW1lbGluZUFnZW50UHRyLmdldCgpOwog
ICAgIG1fYWdlbnRzLmFwcGVuZChXVEZNb3ZlKHRpbWVsaW5lQWdlbnRQdHIpKTsKIAotICAgIGF1
dG8gY29uc29sZUFnZW50UHRyID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ29uc29sZUFnZW50Pihw
YWdlQ29udGV4dCwgbV9kb21BZ2VudCk7CisgICAgYXV0byBoZWFwQWdlbnRQdHIgPSBzdGQ6Om1h
a2VfdW5pcXVlPEluc3BlY3RvckhlYXBBZ2VudD4ocGFnZUNvbnRleHQpOworICAgIEluc3BlY3Rv
ckhlYXBBZ2VudCogaGVhcEFnZW50ID0gaGVhcEFnZW50UHRyLmdldCgpOworICAgIG1fYWdlbnRz
LmFwcGVuZChXVEZNb3ZlKGhlYXBBZ2VudFB0cikpOworCisgICAgYXV0byBjb25zb2xlQWdlbnRQ
dHIgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDb25zb2xlQWdlbnQ+KHBhZ2VDb250ZXh0LCBoZWFw
QWdlbnQsIG1fZG9tQWdlbnQpOwogICAgIFdlYkNvbnNvbGVBZ2VudCogY29uc29sZUFnZW50ID0g
Y29uc29sZUFnZW50UHRyLmdldCgpOwogICAgIG1faW5zdHJ1bWVudGluZ0FnZW50cy0+c2V0V2Vi
Q29uc29sZUFnZW50KGNvbnNvbGVBZ2VudFB0ci5nZXQoKSk7CiAgICAgbV9hZ2VudHMuYXBwZW5k
KFdURk1vdmUoY29uc29sZUFnZW50UHRyKSk7CkBAIC0xNzIsNyArMTc2LDYgQEAgSW5zcGVjdG9y
Q29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlJiBwYWdlLCBJbnNwZWN0b3JDbGll
bnQqIGluc3BlY3RvckMKICAgICBtX2FnZW50cy5hcHBlbmQoV1RGTW92ZShkZWJ1Z2dlckFnZW50
UHRyKSk7CiAKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJbnNwZWN0b3JE
T01EZWJ1Z2dlckFnZW50PihwYWdlQ29udGV4dCwgbV9kb21BZ2VudCwgZGVidWdnZXJBZ2VudCkp
OwotICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckhlYXBBZ2Vu
dD4ocGFnZUNvbnRleHQpKTsKICAgICBtX2FnZW50cy5hcHBlbmQoc3RkOjptYWtlX3VuaXF1ZTxJ
bnNwZWN0b3JTY3JpcHRQcm9maWxlckFnZW50PihwYWdlQ29udGV4dCkpOwogICAgIG1fYWdlbnRz
LmFwcGVuZChzdGQ6Om1ha2VfdW5pcXVlPEluc3BlY3RvckFwcGxpY2F0aW9uQ2FjaGVBZ2VudD4o
cGFnZUNvbnRleHQsIHBhZ2VBZ2VudCkpOwogICAgIG1fYWdlbnRzLmFwcGVuZChzdGQ6Om1ha2Vf
dW5pcXVlPEluc3BlY3RvckxheWVyVHJlZUFnZW50PihwYWdlQ29udGV4dCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApp
bmRleCAwMTUzOTQ2Li43Y2JkNTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtODU1LDYgKzg1NSwxMiBAQCB2
b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Y29uc29sZUNvdW50SW1wbChJbnN0cnVtZW50
aW5nQWdlbnRzJiBpbnN0cnVtZW50aQogICAgICAgICBjb25zb2xlQWdlbnQtPmNvdW50KHN0YXRl
LCBhcmd1bWVudHMpOwogfQogCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGFrZUhl
YXBTbmFwc2hvdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKK3sKKyAgICBpZiAoV2ViQ29uc29sZUFnZW50KiBjb25zb2xl
QWdlbnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLndlYkNvbnNvbGVBZ2VudCgpKQorICAgICAgICBj
b25zb2xlQWdlbnQtPnRha2VIZWFwU25hcHNob3QodGl0bGUpOworfQorCiB2b2lkIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6c3RhcnRDb25zb2xlVGltaW5nSW1wbChJbnN0cnVtZW50aW5nQWdl
bnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCBGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgdGl0
bGUpCiB7CiAgICAgaWYgKEluc3BlY3RvclRpbWVsaW5lQWdlbnQqIHRpbWVsaW5lQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLmluc3BlY3RvclRpbWVsaW5lQWdlbnQoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA5
M2RmMTg0Li5kYmFmY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0yMDksNiArMjA5LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoV29ya2VyR2xvYmFsU2NvcGUqLCBzdGQ6
OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpDb25zb2xlTWVzc2FnZT4pOwogCiAgICAgc3RhdGljIHZv
aWQgY29uc29sZUNvdW50KFBhZ2UmLCBKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNwZWN0b3I6
OlNjcmlwdEFyZ3VtZW50cz4mJik7CisgICAgc3RhdGljIHZvaWQgdGFrZUhlYXBTbmFwc2hvdChG
cmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0YXJ0Q29uc29s
ZVRpbWluZyhGcmFtZSYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0
b3BDb25zb2xlVGltaW5nKEZyYW1lJiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgUmVmUHRyPEluc3Bl
Y3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmKTsKICAgICBzdGF0aWMgdm9pZCBjb25zb2xlVGltZVN0
YW1wKEZyYW1lJiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJndW1lbnRzPiYmKTsKQEAgLTM4
Miw2ICszODMsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBzdGQ6OnVuaXF1ZV9wdHI8SW5zcGVjdG9yOjpD
b25zb2xlTWVzc2FnZT4pOwogCiAgICAgc3RhdGljIHZvaWQgY29uc29sZUNvdW50SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiwgSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3Jp
cHRBcmd1bWVudHM+JiYpOworICAgIHN0YXRpYyB2b2lkIHRha2VIZWFwU25hcHNob3RJbXBsKElu
c3RydW1lbnRpbmdBZ2VudHMmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKICAgICBzdGF0aWMgdm9p
ZCBzdGFydENvbnNvbGVUaW1pbmdJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBGcmFtZSYsIGNv
bnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHN0YXRpYyB2b2lkIHN0b3BDb25zb2xlVGltaW5nSW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRnJhbWUmLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBSZWZQ
dHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYpOwogICAgIHN0YXRpYyB2b2lkIGNvbnNv
bGVUaW1lU3RhbXBJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCBGcmFtZSYsIFJlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
UGFnZUNvbnNvbGVBZ2VudC5jcHAKaW5kZXggMDE0OWEwZi4uNmRjOTBkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmNwcApAQCAtNDEsOCArNDEsOCBA
QCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBh
Z2VDb25zb2xlQWdlbnQ6OlBhZ2VDb25zb2xlQWdlbnQoV2ViQWdlbnRDb250ZXh0JiBjb250ZXh0
LCBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQpCi0gICAgOiBXZWJDb25zb2xlQWdlbnQoY29u
dGV4dCkKK1BhZ2VDb25zb2xlQWdlbnQ6OlBhZ2VDb25zb2xlQWdlbnQoV2ViQWdlbnRDb250ZXh0
JiBjb250ZXh0LCBJbnNwZWN0b3JIZWFwQWdlbnQqIGhlYXBBZ2VudCwgSW5zcGVjdG9yRE9NQWdl
bnQqIGRvbUFnZW50KQorICAgIDogV2ViQ29uc29sZUFnZW50KGNvbnRleHQsIGhlYXBBZ2VudCkK
ICAgICAsIG1faW5zcGVjdG9yRE9NQWdlbnQoZG9tQWdlbnQpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1BhZ2VDb25zb2xlQWdlbnQuaAppbmRleCA1NWM2ZWZjLi41ZWRkNDlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvUGFnZUNvbnNvbGVBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9QYWdlQ29uc29sZUFnZW50LmgKQEAgLTQzLDcg
KzQzLDcgQEAgY2xhc3MgUGFnZUNvbnNvbGVBZ2VudCBmaW5hbCA6IHB1YmxpYyBXZWJDb25zb2xl
QWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VDb25zb2xlQWdlbnQpOwogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFBhZ2VDb25zb2xlQWdlbnQo
V2ViQWdlbnRDb250ZXh0JiwgSW5zcGVjdG9yRE9NQWdlbnQqKTsKKyAgICBQYWdlQ29uc29sZUFn
ZW50KFdlYkFnZW50Q29udGV4dCYsIEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFnZW50KiwgSW5z
cGVjdG9yRE9NQWdlbnQqKTsKICAgICB2aXJ0dWFsIH5QYWdlQ29uc29sZUFnZW50KCkgeyB9CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29uc29s
ZUFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuY3Bw
CmluZGV4IDMzZWMwYjcuLjg5MDUyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9XZWJDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9X
ZWJDb25zb2xlQWdlbnQuY3BwCkBAIC00MSw4ICs0MSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNw
ZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViQ29uc29sZUFnZW50OjpXZWJDb25z
b2xlQWdlbnQoQWdlbnRDb250ZXh0JiBjb250ZXh0KQotICAgIDogSW5zcGVjdG9yQ29uc29sZUFn
ZW50KGNvbnRleHQpCitXZWJDb25zb2xlQWdlbnQ6OldlYkNvbnNvbGVBZ2VudChBZ2VudENvbnRl
eHQmIGNvbnRleHQsIEluc3BlY3RvckhlYXBBZ2VudCogaGVhcEFnZW50KQorICAgIDogSW5zcGVj
dG9yQ29uc29sZUFnZW50KGNvbnRleHQsIGhlYXBBZ2VudCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL1dlYkNvbnNvbGVBZ2VudC5oCmluZGV4IGQ1NjRkZWQuLmIwYTZjZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9XZWJDb25zb2xlQWdlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvV2ViQ29uc29sZUFnZW50LmgKQEAgLTM5LDcgKzM5
LDcgQEAgY2xhc3MgV2ViQ29uc29sZUFnZW50IDogcHVibGljIEluc3BlY3Rvcjo6SW5zcGVjdG9y
Q29uc29sZUFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJDb25zb2xlQWdlbnQp
OwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdlYkNvbnNvbGVB
Z2VudChJbnNwZWN0b3I6OkFnZW50Q29udGV4dCYpOworICAgIFdlYkNvbnNvbGVBZ2VudChJbnNw
ZWN0b3I6OkFnZW50Q29udGV4dCYsIEluc3BlY3Rvcjo6SW5zcGVjdG9ySGVhcEFnZW50Kik7CiAg
ICAgdmlydHVhbCB+V2ViQ29uc29sZUFnZW50KCkgeyB9CiAKICAgICB2b2lkIHNldE1vbml0b3Jp
bmdYSFJFbmFibGVkKEVycm9yU3RyaW5nJiwgYm9vbCBlbmFibGVkKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKaW5kZXggMTE2NGUwMC4uNWNmYTk3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKQEAgLTE5NSw2ICsx
OTUsMTEgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgU3RyaW5nJiB0aXRsZSkKICAgICAgICAgbV9wcm9maWxlcy5hcHBlbmQo
V1RGTW92ZShwcm9maWxlKSk7CiB9CiAKK3ZvaWQgUGFnZUNvbnNvbGVDbGllbnQ6OnRha2VIZWFw
U25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKQoreworICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6dGFrZUhlYXBTbmFwc2hvdChtX3BhZ2UubWFpbkZyYW1l
KCksIHRpdGxlKTsKK30KKwogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dGltZShKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IFN0cmluZyYgdGl0bGUpCiB7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpzdGFydENvbnNvbGVUaW1pbmcobV9wYWdlLm1haW5GcmFtZSgpLCB0aXRsZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VDb25zb2xlQ2xpZW50LmgKaW5kZXggNDY4MWFhMS4uY2U1YzUxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuaApAQCAtNjksNiArNjksNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb3VudChKU0M6OkV4ZWNTdGF0ZSosIFJlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwcm9maWxlKEpT
Qzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBw
cm9maWxlRW5kKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCB0YWtlSGVhcFNuYXBzaG90KEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
JiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lRW5kKEpTQzo6RXhlY1N0YXRl
KiwgY29uc3QgU3RyaW5nJiB0aXRsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aW1lU3RhbXAoSlND
OjpFeGVjU3RhdGUqLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRBcmd1bWVudHM+JiYpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJDb25zb2xlQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5jcHAK
aW5kZXggZjk4YTliYi4uYjNlZGQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnNvbGVDbGllbnQuY3BwCkBAIC01Niw2ICs1Niw3IEBAIHZvaWQgV29ya2VyQ29uc29s
ZUNsaWVudDo6cHJvZmlsZUVuZChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpIHsgfQog
CiAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNzYzND4gV2ViIEluc3BlY3Rvcjog
c3VwcG9ydCBkZWJ1Z2dpbmcgd2ViIHdvcmtlcnMKIHZvaWQgV29ya2VyQ29uc29sZUNsaWVudDo6
Y291bnQoSlNDOjpFeGVjU3RhdGUqLCBSZWZQdHI8U2NyaXB0QXJndW1lbnRzPiYmKSB7IH0KK3Zv
aWQgV29ya2VyQ29uc29sZUNsaWVudDo6dGFrZUhlYXBTbmFwc2hvdChKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IFN0cmluZyYpIHsgfQogdm9pZCBXb3JrZXJDb25zb2xlQ2xpZW50Ojp0aW1lKEpTQzo6
RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFdvcmtlckNvbnNvbGVDbGllbnQ6
OnRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmKSB7IH0KIHZvaWQgV29ya2Vy
Q29uc29sZUNsaWVudDo6dGltZVN0YW1wKEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPFNjcmlwdEFy
Z3VtZW50cz4mJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckNvbnNvbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29uc29sZUNs
aWVudC5oCmluZGV4IDhiZTQ1MGQuLjM2MTEyMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyQ29uc29sZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyQ29uc29sZUNsaWVudC5oCkBAIC00Nyw2ICs0Nyw3IEBAIHByb3RlY3RlZDoKICAg
ICB2b2lkIGNvdW50KEpTQzo6RXhlY1N0YXRlKiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0QXJn
dW1lbnRzPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGUoSlNDOjpFeGVjU3RhdGUqLCBj
b25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHByb2ZpbGVFbmQoSlNDOjpF
eGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKKyAgICB2b2lkIHRha2VI
ZWFwU25hcHNob3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBvdmVycmlk
ZTsKICAgICB2b2lkIHRpbWUoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcmIHRpdGxlKSBv
dmVycmlkZTsKICAgICB2b2lkIHRpbWVFbmQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBTdHJpbmcm
IHRpdGxlKSBvdmVycmlkZTsKICAgICB2b2lkIHRpbWVTdGFtcChKU0M6OkV4ZWNTdGF0ZSosIFJl
ZlB0cjxJbnNwZWN0b3I6OlNjcmlwdEFyZ3VtZW50cz4mJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZwppbmRleCAzYmEzNTg3Li4wN2NhNDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzNCBAQAorMjAxNi0wMy0yOSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jh
cm9AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlIHNob3VsZCBoYXZlIGEg
d2F5IHRvIGNhcHR1cmUgaGVhcCBzbmFwc2hvdHMgcHJvZ3JhbWF0aWNhbGx5LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU0NDA3CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yNDcyNjI5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhh
dGNoZXIuCisKKyAgICAgICAgKiBMb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9Db25zb2xlT2JzZXJ2ZXIu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29uc29sZU9ic2VydmVyLnByb3RvdHlwZS5oZWFw
U25hcHNob3QpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnNvbGVPYnNlcnZlcik6CisgICAg
ICAgIENyZWF0ZSBhIEhlYXBTbmFwc2hvdCB3aXRoIGFuIG9wdGlvbmFsIHRpdGxlIGFuZCBhZGQg
dG8gdGhlIHRpbWVsaW5lLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcEFsbG9jYXRpb25z
VGltZWxpbmVEYXRhR3JpZE5vZGUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvVGlt
ZWxpbmVUYWJDb250ZW50Vmlldy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UaW1lbGluZVRh
YkNvbnRlbnRWaWV3LmRpc3BsYXlOYW1lRm9yUmVjb3JkKToKKyAgICAgICAgU2hhcmUgY29kZSBm
b3Igc25hcHNob3QgZGlzcGxheSBuYW1lcyB3aGljaCBtYXkgbm93IGluY2x1ZGUgYSB0aXRsZS4K
KworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJveGllcy9IZWFwU25hcHNob3RQcm94eS5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuSGVhcFNuYXBzaG90UHJveHkuZGVzZXJpYWxpemUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkhlYXBTbmFwc2hvdFByb3h5LnByb3RvdHlwZS5nZXQgdGl0bGUpOgorICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGUu
anM6CisgICAgICAgICogVXNlckludGVyZmFjZS9Xb3JrZXJzL0hlYXBTbmFwc2hvdC9IZWFwU25h
cHNob3QuanM6CisgICAgICAgIChIZWFwU25hcHNob3QpOgorICAgICAgICAoSGVhcFNuYXBzaG90
LnByb3RvdHlwZS5zZXJpYWxpemUpOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvV29ya2Vycy9I
ZWFwU25hcHNob3QvSGVhcFNuYXBzaG90V29ya2VyLmpzOgorICAgICAgICAoSGVhcFNuYXBzaG90
V29ya2VyLnByb3RvdHlwZS5jcmVhdGVTbmFwc2hvdCk6CisgICAgICAgIEluY2x1ZGUgYW4gb3B0
aW9uYWwgdGl0bGUgaW4gYSBIZWFwU25hcHNob3QuCisKIDIwMTYtMDMtMjggIEpvc2VwaCBQZWNv
cmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBFbnN1
cmUgbWF4aW11bSBhY2N1cmFjeSB3aGlsZSBwcm9maWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCmluZGV4IDQyYjRiNDI1NGFiMjEyZmFhOWRjN2I5NGY1NGNjZjQwMmQwODIzZjEu
LjdkNGUwZWJiZTgzYjdhZTAxMzI4NjE4OTNkOTBhNzRkNmRhNDEyZDYgMTAwNjQ0CkdJVCBiaW5h
cnkgcGF0Y2gKZGVsdGEgNTIKemNtWD9obS1XSXUpYGwmTmhZZ3VrOEIoU2VGZSo7fVpPQUFEPCVt
enQ9aDJ3JTQtfVpyWXM5Rnh7aTdre1JUfXszCkMtNE89PgoKZGVsdGEgMTcKWmNtY2Fga00tREgp
YGwmTmhZaCM7OFprMjQwc3VgZTJLKWQzCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ29uc29sZU9ic2VydmVyLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvQ29uc29sZU9ic2VydmVyLmpzCmlu
ZGV4IGNmYzJmYzAuLmM0MmRjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL0NvbnNvbGVPYnNlcnZlci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9Db25zb2xlT2JzZXJ2ZXIuanMKQEAg
LTUyLDQgKzUyLDEzIEBAIFdlYkluc3BlY3Rvci5Db25zb2xlT2JzZXJ2ZXIgPSBjbGFzcyBDb25z
b2xlT2JzZXJ2ZXIKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5sb2dNYW5hZ2VyLm1lc3Nh
Z2VzQ2xlYXJlZCgpOwogICAgIH0KKworICAgIGhlYXBTbmFwc2hvdCh0aW1lc3RhbXAsIHNuYXBz
aG90U3RyaW5nRGF0YSwgdGl0bGUpCisgICAgeworICAgICAgICBsZXQgd29ya2VyUHJveHkgPSBX
ZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90V29ya2VyUHJveHkuc2luZ2xldG9uKCk7CisgICAgICAg
IHdvcmtlclByb3h5LmNyZWF0ZVNuYXBzaG90KHNuYXBzaG90U3RyaW5nRGF0YSwgdGl0bGUgfHwg
bnVsbCwgKHtvYmplY3RJZCwgc25hcHNob3Q6IHNlcmlhbGl6ZWRTbmFwc2hvdH0pID0+IHsKKyAg
ICAgICAgICAgIGxldCBzbmFwc2hvdCA9IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eS5k
ZXNlcmlhbGl6ZShvYmplY3RJZCwgc2VyaWFsaXplZFNuYXBzaG90KTsKKyAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci50aW1lbGluZU1hbmFnZXIuaGVhcFNuYXBzaG90QWRkZWQodGltZXN0YW1wLCBz
bmFwc2hvdCk7CisgICAgICAgIH0pOworICAgIH0KIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzL0hlYXBTbmFwc2hvdFByb3h5LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJveGllcy9IZWFwU25hcHNob3RQ
cm94eS5qcwppbmRleCA4ZWU2NjMzLi43OWY4MzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzL0hlYXBTbmFwc2hvdFByb3h5LmpzCisrKyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMvSGVhcFNuYXBzaG90
UHJveHkuanMKQEAgLTI1LDEzICsyNSwxNCBAQAogCiBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
UHJveHkgPSBjbGFzcyBIZWFwU25hcHNob3RQcm94eSBleHRlbmRzIFdlYkluc3BlY3Rvci5PYmpl
Y3QKIHsKLSAgICBjb25zdHJ1Y3RvcihzbmFwc2hvdE9iamVjdElkLCBpZGVudGlmaWVyLCB0b3Rh
bFNpemUsIHRvdGFsT2JqZWN0Q291bnQsIGNhdGVnb3JpZXMpCisgICAgY29uc3RydWN0b3Ioc25h
cHNob3RPYmplY3RJZCwgaWRlbnRpZmllciwgdGl0bGUsIHRvdGFsU2l6ZSwgdG90YWxPYmplY3RD
b3VudCwgY2F0ZWdvcmllcykKICAgICB7CiAgICAgICAgIHN1cGVyKCk7CiAKICAgICAgICAgdGhp
cy5fcHJveHlPYmplY3RJZCA9IHNuYXBzaG90T2JqZWN0SWQ7CiAKICAgICAgICAgdGhpcy5faWRl
bnRpZmllciA9IGlkZW50aWZpZXI7CisgICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7CiAgICAg
ICAgIHRoaXMuX3RvdGFsU2l6ZSA9IHRvdGFsU2l6ZTsKICAgICAgICAgdGhpcy5fdG90YWxPYmpl
Y3RDb3VudCA9IHRvdGFsT2JqZWN0Q291bnQ7CiAgICAgICAgIHRoaXMuX2NhdGVnb3JpZXMgPSBN
YXAuZnJvbU9iamVjdChjYXRlZ29yaWVzKTsKQEAgLTQxLDE0ICs0MiwxNSBAQCBXZWJJbnNwZWN0
b3IuSGVhcFNuYXBzaG90UHJveHkgPSBjbGFzcyBIZWFwU25hcHNob3RQcm94eSBleHRlbmRzIFdl
Ykluc3BlY3Rvci5PYgogCiAgICAgc3RhdGljIGRlc2VyaWFsaXplKG9iamVjdElkLCBzZXJpYWxp
emVkU25hcHNob3QpCiAgICAgewotICAgICAgICBsZXQge2lkZW50aWZpZXIsIHRvdGFsU2l6ZSwg
dG90YWxPYmplY3RDb3VudCwgY2F0ZWdvcmllc30gPSBzZXJpYWxpemVkU25hcHNob3Q7Ci0gICAg
ICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdFByb3h5KG9iamVjdElkLCBp
ZGVudGlmaWVyLCB0b3RhbFNpemUsIHRvdGFsT2JqZWN0Q291bnQsIGNhdGVnb3JpZXMpOworICAg
ICAgICBsZXQge2lkZW50aWZpZXIsIHRpdGxlLCB0b3RhbFNpemUsIHRvdGFsT2JqZWN0Q291bnQs
IGNhdGVnb3JpZXN9ID0gc2VyaWFsaXplZFNuYXBzaG90OworICAgICAgICByZXR1cm4gbmV3IFdl
Ykluc3BlY3Rvci5IZWFwU25hcHNob3RQcm94eShvYmplY3RJZCwgaWRlbnRpZmllciwgdGl0bGUs
IHRvdGFsU2l6ZSwgdG90YWxPYmplY3RDb3VudCwgY2F0ZWdvcmllcyk7CiAgICAgfQogCiAgICAg
Ly8gUHVibGljCiAKICAgICBnZXQgcHJveHlPYmplY3RJZCgpIHsgcmV0dXJuIHRoaXMuX3Byb3h5
T2JqZWN0SWQ7IH0KICAgICBnZXQgaWRlbnRpZmllcigpIHsgcmV0dXJuIHRoaXMuX2lkZW50aWZp
ZXI7IH0KKyAgICBnZXQgdGl0bGUoKSB7IHJldHVybiB0aGlzLl90aXRsZTsgfQogICAgIGdldCB0
b3RhbFNpemUoKSB7IHJldHVybiB0aGlzLl90b3RhbFNpemU7IH0KICAgICBnZXQgdG90YWxPYmpl
Y3RDb3VudCgpIHsgcmV0dXJuIHRoaXMuX3RvdGFsT2JqZWN0Q291bnQ7IH0KICAgICBnZXQgY2F0
ZWdvcmllcygpIHsgcmV0dXJuIHRoaXMuX2NhdGVnb3JpZXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0hlYXBBbGxvY2F0aW9uc1RpbWVs
aW5lRGF0YUdyaWROb2RlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKaW5kZXggNmYzN2Ey
Mi4uOTViZmFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGltZWxpbmVEYXRhR3JpZE5vZGUuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvSGVhcEFsbG9jYXRpb25zVGlt
ZWxpbmVEYXRhR3JpZE5vZGUuanMKQEAgLTMzLDcgKzMzLDcgQEAgV2ViSW5zcGVjdG9yLkhlYXBB
bGxvY2F0aW9uc1RpbWVsaW5lRGF0YUdyaWROb2RlID0gY2xhc3MgSGVhcEFsbG9jYXRpb25zVGlt
ZWxpbmUKICAgICAgICAgdGhpcy5faGVhcEFsbG9jYXRpb25zVmlldyA9IGhlYXBBbGxvY2F0aW9u
c1ZpZXc7CiAKICAgICAgICAgdGhpcy5fZGF0YSA9IHsKLSAgICAgICAgICAgIG5hbWU6IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiU25hcHNob3QgJWQiKS5mb3JtYXQodGhpcy5fcmVjb3JkLmhlYXBT
bmFwc2hvdC5pZGVudGlmaWVyKSwKKyAgICAgICAgICAgIG5hbWU6IFdlYkluc3BlY3Rvci5UaW1l
bGluZVRhYkNvbnRlbnRWaWV3LmRpc3BsYXlOYW1lRm9yUmVjb3JkKGhlYXBBbGxvY2F0aW9uc1Rp
bWVsaW5lUmVjb3JkKSwKICAgICAgICAgICAgIHRpbWVzdGFtcDogdGhpcy5fcmVjb3JkLnRpbWVz
dGFtcCAtIHplcm9UaW1lLAogICAgICAgICAgICAgc2l6ZTogdGhpcy5fcmVjb3JkLmhlYXBTbmFw
c2hvdC50b3RhbFNpemUsCiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmpzIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvVGltZWxpbmVUYWJDb250ZW50
Vmlldy5qcwppbmRleCA2OGNmMTczLi5kZWNiNWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZVRhYkNvbnRlbnRWaWV3LmpzCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1RpbWVsaW5lVGFi
Q29udGVudFZpZXcuanMKQEAgLTI1MSw2ICsyNTEsOCBAQCBXZWJJbnNwZWN0b3IuVGltZWxpbmVU
YWJDb250ZW50VmlldyA9IGNsYXNzIFRpbWVsaW5lVGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXZWJJ
bgogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLlJlbmRlcmlu
Z0ZyYW1lOgogICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiRnJhbWUg
JWQiKS5mb3JtYXQodGltZWxpbmVSZWNvcmQuZnJhbWVOdW1iZXIpOwogICAgICAgICBjYXNlIFdl
Ykluc3BlY3Rvci5UaW1lbGluZVJlY29yZC5UeXBlLkhlYXBBbGxvY2F0aW9uczoKKyAgICAgICAg
ICAgIGlmICh0aW1lbGluZVJlY29yZC5oZWFwU25hcHNob3QudGl0bGUpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5VSVN0cmluZygiU25hcHNob3QgJWQgXHUyMDE0ICVzIiku
Zm9ybWF0KHRpbWVsaW5lUmVjb3JkLmhlYXBTbmFwc2hvdC5pZGVudGlmaWVyLCB0aW1lbGluZVJl
Y29yZC5oZWFwU25hcHNob3QudGl0bGUpOwogICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rv
ci5VSVN0cmluZygiU25hcHNob3QgJWQiKS5mb3JtYXQodGltZWxpbmVSZWNvcmQuaGVhcFNuYXBz
aG90LmlkZW50aWZpZXIpOwogICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5UaW1lbGluZVJlY29y
ZC5UeXBlLk1lbW9yeToKICAgICAgICAgICAgIC8vIE5vdCB1c2VkLiBGYWxsIHRocm91Z2ggdG8g
ZXJyb3IganVzdCBpbiBjYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90LmpzIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNu
YXBzaG90LmpzCmluZGV4IGEwM2E0MjkuLjMwOWVjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90L0hlYXBTbmFwc2hv
dC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJzL0hl
YXBTbmFwc2hvdC9IZWFwU25hcHNob3QuanMKQEAgLTcyLDEwICs3MiwxMSBAQCBsZXQgbmV4dFNu
YXBzaG90SWRlbnRpZmllciA9IDE7CiAKIEhlYXBTbmFwc2hvdCA9IGNsYXNzIEhlYXBTbmFwc2hv
dAogewotICAgIGNvbnN0cnVjdG9yKG9iamVjdElkLCBzbmFwc2hvdERhdGFTdHJpbmcpCisgICAg
Y29uc3RydWN0b3Iob2JqZWN0SWQsIHNuYXBzaG90RGF0YVN0cmluZywgdGl0bGUgPSBudWxsKQog
ICAgIHsKICAgICAgICAgdGhpcy5faWRlbnRpZmllciA9IG5leHRTbmFwc2hvdElkZW50aWZpZXIr
KzsKICAgICAgICAgdGhpcy5fb2JqZWN0SWQgPSBvYmplY3RJZDsKKyAgICAgICAgdGhpcy5fdGl0
bGUgPSB0aXRsZTsKIAogICAgICAgICBsZXQganNvbiA9IEpTT04ucGFyc2Uoc25hcHNob3REYXRh
U3RyaW5nKTsKICAgICAgICAgc25hcHNob3REYXRhU3RyaW5nID0gbnVsbDsKQEAgLTMwOSw2ICsz
MTAsNyBAQCBIZWFwU25hcHNob3QgPSBjbGFzcyBIZWFwU25hcHNob3QKICAgICB7CiAgICAgICAg
IHJldHVybiB7CiAgICAgICAgICAgICBpZGVudGlmaWVyOiB0aGlzLl9pZGVudGlmaWVyLAorICAg
ICAgICAgICAgdGl0bGU6IHRoaXMuX3RpdGxlLAogICAgICAgICAgICAgdG90YWxTaXplOiB0aGlz
Ll90b3RhbFNpemUsCiAgICAgICAgICAgICB0b3RhbE9iamVjdENvdW50OiB0aGlzLl9ub2RlQ291
bnQgLSAxLCAvLyA8cm9vdD4uCiAgICAgICAgICAgICBjYXRlZ29yaWVzOiB0aGlzLl9jYXRlZ29y
aWVzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29y
a2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90V29ya2VyLmpzIGIvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvSGVhcFNuYXBzaG90V29y
a2VyLmpzCmluZGV4IGI1MWI1NmMuLmNhYWI1NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90L0hlYXBTbmFwc2hvdFdv
cmtlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Xb3JrZXJz
L0hlYXBTbmFwc2hvdC9IZWFwU25hcHNob3RXb3JrZXIuanMKQEAgLTM5LDEwICszOSwxMCBAQCBI
ZWFwU25hcHNob3RXb3JrZXIgPSBjbGFzcyBIZWFwU25hcHNob3RXb3JrZXIKIAogICAgIC8vIEFj
dGlvbnMKIAotICAgIGNyZWF0ZVNuYXBzaG90KHNuYXBzaG90U3RyaW5nKQorICAgIGNyZWF0ZVNu
YXBzaG90KHNuYXBzaG90U3RyaW5nLCB0aXRsZSkKICAgICB7CiAgICAgICAgIGxldCBvYmplY3RJ
ZCA9IHRoaXMuX25leHRPYmplY3RJZCsrOwotICAgICAgICBsZXQgc25hcHNob3QgPSBuZXcgSGVh
cFNuYXBzaG90KG9iamVjdElkLCBzbmFwc2hvdFN0cmluZyk7CisgICAgICAgIGxldCBzbmFwc2hv
dCA9IG5ldyBIZWFwU25hcHNob3Qob2JqZWN0SWQsIHNuYXBzaG90U3RyaW5nLCB0aXRsZSk7CiAg
ICAgICAgIHRoaXMuX29iamVjdHMuc2V0KG9iamVjdElkLCBzbmFwc2hvdCk7CiAgICAgICAgIHJl
dHVybiB7b2JqZWN0SWQsIHNuYXBzaG90OiBzbmFwc2hvdC5zZXJpYWxpemUoKX07CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>