<?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>238841</bug_id>
          
          <creation_ts>2022-04-05 14:59:10 -0700</creation_ts>
          <short_desc>Reduce number of conversions from StringView to String</short_desc>
          <delta_ts>2022-04-06 10:50:18 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1858602</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-05 14:59:10 -0700</bug_when>
    <thetext>Reduce number of conversions from StringView to String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858611</commentid>
    <comment_count>1</comment_count>
      <attachid>456757</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-05 15:04:02 -0700</bug_when>
    <thetext>Created attachment 456757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858656</commentid>
    <comment_count>2</comment_count>
      <attachid>456770</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-05 17:02:31 -0700</bug_when>
    <thetext>Created attachment 456770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858885</commentid>
    <comment_count>3</comment_count>
      <attachid>456770</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-04-06 10:08:35 -0700</bug_when>
    <thetext>Comment on attachment 456770
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858914</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-06 10:49:58 -0700</bug_when>
    <thetext>Committed r292477 (249328@main): &lt;https://commits.webkit.org/249328@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456770.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858915</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-06 10:50:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/91363951&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456757</attachid>
            <date>2022-04-05 15:04:02 -0700</date>
            <delta_ts>2022-04-05 17:02:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238841-20220405150402.patch</filename>
            <type>text/plain</type>
            <size>82869</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
MWZhNTE2NzY2NGRhOWY0YTBlZTJjNWNjZTcxZTVmYThlZGY5MDU5Li5iNDYwNjcwYzEwODA2NDlk
YTA0YWNjMDk1MDU1MzE0ZjMwYWZjMmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMi0wNC0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlZHVjZSBudW1iZXIgb2YgY29udmVyc2lvbnMgZnJvbSBTdHJpbmdWaWV3IHRv
IFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM4ODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6c3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xvdyk6CisKIDIwMjIt
MDQtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0
cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggMzMyMGFiMTg5
MmJjNzIxZjA5Yjg5MWRmODU5ZTliNjQ2NDI4YWYxMi4uNWU3NzYxNzQ2YWU0ZGUwMzUzNzlkODA0
Y2U2YTliODI3ZjJmNjk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMi0wNC0wNSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZHVjZSBudW1iZXIgb2YgY29u
dmVyc2lvbnMgZnJvbSBTdHJpbmdWaWV3IHRvIFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4ODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3dGYvVVJMLmNwcDoKKyAgICAgICAgKFdURjo6
ZGVmYXVsdFBvcnRGb3JQcm90b2NvbCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSGFzaC5o
OgorICAgICAgICAoV1RGOjpTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I6Omhhc2gpOgorICAgICAg
ICAoV1RGOjpTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I6OmVxdWFsKToKKwogMjAyMi0wNC0wNSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmsgU3RyaW5nKGNv
bnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBhcyBleHBsaWNpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBkMDM0NzE2
OTY5NDY0Y2YyNzZjNDQ3MGMxZDA3ZDczMmRhNDZmMDMuLjg2YmM4ZDZkNjc3YWU5OTZkNDU0MmU0
ZGVhYzJlNGVhMzYyN2M1ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5OCBAQAorMjAyMi0wNC0w
NSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZHVjZSBudW1i
ZXIgb2YgY29udmVyc2lvbnMgZnJvbSBTdHJpbmdWaWV3IHRvIFN0cmluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4ODQxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL0RPTUNh
Y2hlRW5naW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNhY2hlRW5naW5lOjpxdWVyeUNh
Y2hlTWF0Y2gpOgorICAgICAgICAqIGRvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp2aWV3cG9ydEVycm9yTWVzc2FnZSk6CisgICAgICAgICogaW5zcGVjdG9yL2Fn
ZW50cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VE
ZWJ1Z2dlckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3JpcHQpOgorICAgICAgICAqIGxvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVD
cm9zc09yaWdpblJlZGlyZWN0aW9uVVJMKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmRpc2FsbG93V2ViQXJj
aGl2ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6bWF5YmVMb2Fk
RW1wdHkpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
OjpjaGVja1VSTFNjaGVtZUFzQ09SU0VuYWJsZWQpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNs
aWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6cmVw
cmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUgY29u
c3QpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAg
ICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL2FyY2hpdmUv
bWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1IVE1MQXJjaGl2ZTo6
Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2U6OmZyZXNobmVzc0xpZmV0aW1lIGNvbnN0KToK
KyAgICAgICAgKiBsb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OmxvYWRHUmVzb3VyY2UpOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1c2VyU3R5bGVTaGVldExvY2F0aW9u
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjphbGxvd3NMb2FkRnJvbVVSTCBjb25z
dCk6CisgICAgICAgICogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpzaG91bGRUcmVhdEFzVW5pcXVlT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFRy
ZWF0QXNQb3RlbnRpYWxseVRydXN0d29ydGh5KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjppc1NlY3VyZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6Y2Fu
RGlzcGxheSBjb25zdCk6CisgICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dPYmpl
Y3RGcm9tU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBv
bGljeTo6YWxsb3dDaGlsZEZyYW1lRnJvbVNvdXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93UmVzb3VyY2VGcm9tU291cmNlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dXb3JrZXJGcm9t
U291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6
YWxsb3dTY3JpcHRGcm9tU291cmNlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRT
ZWN1cml0eVBvbGljeTo6YWxsb3dTdHlsZUZyb21Tb3VyY2UgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0Nvbm5lY3RUb1NvdXJjZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93QmFzZVVSSSBj
b25zdCk6CisgICAgICAgICogcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY2hlbWVJc0luSHR0cEZhbWlseSk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0Ojppc1ZhbGlkU291cmNl
Rm9yRXh0ZW5zaW9uTW9kZSk6CisgICAgICAgICogcGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVtZUlz
SGFuZGxlZEJ5U2NoZW1lSGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lTY2hlbWVS
ZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKToKKyAgICAgICAgKFdlYkNvcmU6
OkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3MpOgor
ICAgICAgICAoV2ViQ29yZTo6TGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2No
ZW1lQXNEaXNwbGF5SXNvbGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5U2NoZW1lUmVn
aXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNTZWN1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZExvYWRVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQp
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5U2NoZW1lUmVnaXN0cnk6OmNhbkRpc3BsYXlPbmx5
SWZDYW5SZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5Ojpz
aG91bGRUcmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6TGVn
YWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVtZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGlj
eSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkQWx3YXlz
UmV2YWxpZGF0ZVVSTFNjaGVtZSk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lTY2hlbWVSZWdp
c3RyeTo6aXNVc2VyRXh0ZW5zaW9uU2NoZW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9MZWdhY3lT
Y2hlbWVSZWdpc3RyeS5oOgorICAgICAgICAqIHBsYXRmb3JtL1B1YmxpY1N1ZmZpeC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QdWJsaWNTdWZmaXhNYWMubW06CisgICAgICAgIChXZWJDb3Jl
Ojppc1B1YmxpY1N1ZmZpeCk6CisgICAgICAgIChXZWJDb3JlOjp0b3BQcml2YXRlbHlDb250cm9s
bGVkRG9tYWluKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlJlZ2lzdHJ5SW1wbDo6Z2V0QmxvYkRhdGFGcm9t
VVJMIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpoZWFkZXJWYWx1ZUZvclZhcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6Y29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVyc0ludGVybmFsKToKKyAgICAgICAgKFdl
YkNvcmU6OmNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvSFRUUEhlYWRlck1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVFRQSGVhZGVy
TWFwOjpnZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRUUEhlYWRlck1hcDo6Z2V0VW5j
b21tb25IZWFkZXIgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRl
ck1hcC5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6aXNDcm9zc09yaWdpblNhZmVIZWFkZXIpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3RCYXNlOjpodHRwSGVhZGVyRmllbGQgY29uc3QpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZUJhc2U6OnNhbml0aXplSFRUUEhlYWRlckZpZWxkc0FjY29yZGluZ1RvVGFp
bnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBIZWFk
ZXJGaWVsZCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3Bv
bnNlQmFzZS5oOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhD
dXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzUHVibGljU3VmZml4KToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNvdXBOZXR3b3JrU2Vzc2lvbjo6Y2hlY2tUTFNFcnJvcnMpOgorICAgICAgICAqIHBs
YXRmb3JtL3NvdXAvUHVibGljU3VmZml4U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1B1
YmxpY1N1ZmZpeCk6CisKIDIwMjItMDQtMDUgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJA
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc3VidHJlZXMgY29sbGFwc2libGUgaW4gdGhlIG91
dHB1dCBvZiB0aGUgQVhMb2dnZXIgc3RyZWFtU3VidHJlZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGQwZmFkM2M0
NmM0ZDkzODdjOTQ5NjlmMmRlYzE1NThkNzIzNGY0Yy4uZDkyOTllOTVlYWUzODdjNzRmM2U2YWQ5
MTMzNzhhN2U3OTU2NDYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMi0wNC0wNSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZHVjZSBudW1iZXIg
b2YgY29udmVyc2lvbnMgZnJvbSBTdHJpbmdWaWV3IHRvIFN0cmluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4ODQxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2NoZW1lUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU2NoZW1lUmVnaXN0
cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNDT1JTRW5hYmxlZCk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpDYWNoZVN0b3JhZ2U6OnVwZGF0ZVZhcnlJbmZvcm1hdGlvbik6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6cHJveHlEaWN0aW9uYXJ5KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdv
cmtEYXRhVGFza1NvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3Vw
OjpzaG91bGRBbGxvd0hTVFNQb2xpY3lTZXR0aW5nIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJh
dGVneTo6dHJ5TG9hZGluZ1VzaW5nVVJMU2NoZW1lSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYkxvYWRlclN0cmF0ZWd5Ojp0cnlMb2FkaW5nU3luY2hyb25vdXNseVVzaW5nVVJMU2NoZW1l
SGFuZGxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50Ojpy
ZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZSBjb25z
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVDYWNoZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvb2tpZUNhY2hlOjpjb29raWVzRm9yRE9NKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29va2llQ2FjaGU6OnNldENvb2tpZXNGcm9tRE9NKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OmNhbkhhbmRsZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cmxTY2hl
bWVIYW5kbGVyRm9yU2NoZW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBHVEsgYnVpbGQgZml4IGFmdGVyIHIyOTI0MDguCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKaW5kZXggZDBkMGNkYTk4NTY4ZDJiYjFhMDEzNTI4MmFhZTFkZWM3YmY0
NzhhZC4uMWYyNzU3NWVkNzY2NDc4ODgzMzU2OTBkMTZmYmU0MDM2NzYyMDk1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTA0LTA1ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVkdWNlIG51bWJlciBvZiBjb252
ZXJzaW9ucyBmcm9tIFN0cmluZ1ZpZXcgdG8gU3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg4NDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNG
b3JVUkxTY2hlbWUgY29uc3QpOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVy
YXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lIGNvbnN0KToKKwogMjAyMi0wNC0wNSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcmsgU3RyaW5nKGNvbnN0IGNoYXIq
KSBjb25zdHJ1Y3RvciBhcyBleHBsaWNpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4
IGZkN2NjYmIyMGRhMmM5NWU5N2UxZWE0YjVkZjI5MzZmNTI2OTU3MzUuLjg0YWJiZDgwNWQ2NjUw
MWM0MTljYmEyY2I0NzQyOTMzZWNmMjhjMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFJlZHVjZSBudW1iZXIgb2YgY29udmVyc2lvbnMgZnJvbSBTdHJpbmdW
aWV3IHRvIFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4ODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUg
Y29uc3QpOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBl
Rm9yVVJMU2NoZW1lIGNvbnN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oOgorCiAyMDIyLTA0LTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBXaW5DYWlybyBidWlsZCBmaXggYWZ0ZXIgcjI5MjQw
OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKaW5kZXggOGU5M2U3NjRhNTRj
NDkzZjkwYTQxYjliMDFiN2UyZTc4Y2E1YTkxMi4uMTQ5YWE2YmFjMTkwZmQxMmY3ZTdjMmM2NzVj
YmJmNDM2YWVmNjg2YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
UmVnRXhwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwLmgKQEAg
LTEwNCwxMSArMTA0LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIG1fcmFyZURhdGEtPm1f
Y2FwdHVyZUdyb3VwTmFtZXNbaV07CiAgICAgfQogCi0gICAgdW5zaWduZWQgc3VicGF0dGVybkZv
ck5hbWUoU3RyaW5nIGdyb3VwTmFtZSkKKyAgICB1bnNpZ25lZCBzdWJwYXR0ZXJuRm9yTmFtZShT
dHJpbmdWaWV3IGdyb3VwTmFtZSkKICAgICB7CiAgICAgICAgIGlmICghbV9yYXJlRGF0YSkKICAg
ICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBhdXRvIGl0ID0gbV9yYXJlRGF0YS0+bV9uYW1l
ZEdyb3VwVG9QYXJlbkluZGV4LmZpbmQoZ3JvdXBOYW1lKTsKKyAgICAgICAgYXV0byBpdCA9IG1f
cmFyZURhdGEtPm1fbmFtZWRHcm91cFRvUGFyZW5JbmRleC5maW5kPFN0cmluZ1ZpZXdIYXNoVHJh
bnNsYXRvcj4oZ3JvdXBOYW1lKTsKICAgICAgICAgaWYgKGl0ID09IG1fcmFyZURhdGEtPm1fbmFt
ZWRHcm91cFRvUGFyZW5JbmRleC5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAg
ICByZXR1cm4gaXQtPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXggZDEwNWEwYWRlMzExMmZiYjZiN2RiNjFlYmIyMWI4
NTE2NGE3ZjNlYS4uZGNjZGQyOGM1M2MzYTg4NWNlNzZiNmNlNGE3NmYxNWQ5MjAwZjY5OCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3Bw
CkBAIC0yMTUsNyArMjE1LDcgQEAgc3RhdGljIE5FVkVSX0lOTElORSB2b2lkIHN1YnN0aXR1dGVC
YWNrcmVmZXJlbmNlc1Nsb3coU3RyaW5nQnVpbGRlciYgcmVzdWx0LCBTdHIKICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgdW5zaWduZWQgbmFtZUxlbmd0aCA9IGNsb3Np
bmdCcmFja2V0IC0gaSAtIDI7Ci0gICAgICAgICAgICB1bnNpZ25lZCBiYWNrcmVmSW5kZXggPSBy
ZWctPnN1YnBhdHRlcm5Gb3JOYW1lKHJlcGxhY2VtZW50LnN1YnN0cmluZyhpICsgMiwgbmFtZUxl
bmd0aCkudG9TdHJpbmcoKSk7CisgICAgICAgICAgICB1bnNpZ25lZCBiYWNrcmVmSW5kZXggPSBy
ZWctPnN1YnBhdHRlcm5Gb3JOYW1lKHJlcGxhY2VtZW50LnN1YnN0cmluZyhpICsgMiwgbmFtZUxl
bmd0aCkpOwogCiAgICAgICAgICAgICBpZiAoIWJhY2tyZWZJbmRleCB8fCBiYWNrcmVmSW5kZXgg
PiByZWctPm51bVN1YnBhdHRlcm5zKCkpIHsKICAgICAgICAgICAgICAgICBiYWNrcmVmU3RhcnQg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVVJMLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1VSTC5jcHAKaW5kZXggZmExOWE2ODIyMTQ5MDljMTlkYTM3ZGU4ZTkzYzg5ZGQ2NmZmNDNiOS4u
MmMyMjFmNGViMTk4ZWIxN2U0ZmE5MGZkMjM5ZDQ4OGU1NGViZWFkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvVVJMLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCkBAIC0zMTcs
NyArMzE3LDcgQEAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gZGVmYXVsdFBvcnRGb3JQcm90b2Nv
bChTdHJpbmdWaWV3IHByb3RvY29sKQogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGRl
ZmF1bHRQb3J0Rm9yUHJvdG9jb2xNYXBGb3JUZXN0aW5nTG9jayB9OwogICAgICAgICBpZiAoYXV0
byogb3ZlcnJpZGVNYXAgPSBkZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZygpKSB7
Ci0gICAgICAgICAgICBhdXRvIGl0ZXJhdG9yID0gb3ZlcnJpZGVNYXAtPmZpbmQocHJvdG9jb2wu
dG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKKyAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBv
dmVycmlkZU1hcC0+ZmluZDxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHByb3RvY29sKTsKICAg
ICAgICAgICAgIGlmIChpdGVyYXRvciAhPSBvdmVycmlkZU1hcC0+ZW5kKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGl0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdIYXNoLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmlu
Z0hhc2guaAppbmRleCBmMDMyZjFiZGYyMWI1OGRiZjZjZTYyNTQ1NDQ2YzQ4NzY1ZmFjNDEwLi41
Yzc3ZTJiNDVjMjk3NjhiMmNmOTBmNzJmYTYwZjlmNDg5NWY3ZGViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0hhc2guaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0hhc2guaApAQCAtMjAyLDYgKzIwMiwyMCBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAg
fQogICAgIH07CiAKKyAgICBzdHJ1Y3QgU3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yIHsKKyAgICAg
ICAgc3RhdGljIHVuc2lnbmVkIGhhc2goU3RyaW5nVmlldyBrZXkpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmIChrZXkuaXM4Qml0KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0hh
c2hlcjo6Y29tcHV0ZUhhc2hBbmRNYXNrVG9wOEJpdHMoa2V5LmNoYXJhY3RlcnM4KCksIGtleS5s
ZW5ndGgoKSk7CisgICAgICAgICAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaEFu
ZE1hc2tUb3A4Qml0cyhrZXkuY2hhcmFjdGVyczE2KCksIGtleS5sZW5ndGgoKSk7CisgICAgICAg
IH0KKworICAgICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBTdHJpbmcmIGEsIFN0cmluZ1Zp
ZXcgYikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGEgPT0gYjsKKyAgICAgICAgfQor
ICAgIH07CisKICAgICAvLyBGSVhNRTogRmluZCBhIHdheSB0byBpbmNvcnBvcmF0ZSB0aGlzIGZ1
bmN0aW9uYWxpdHkgaW50byBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2ggYW5kIGFsbG93CiAgICAg
Ly8gYSBIYXNoTWFwIHdob3NlIGtleXMgYXJlIHR5cGUgU3RyaW5nIHRvIHBlcmZvcm0gb3BlcmF0
aW9ucyB3aGVuIGdpdmVuIGEga2V5IG9mIHR5cGUgU3RyaW5nVmlldy4KICAgICBzdHJ1Y3QgQVND
SUlDYXNlSW5zZW5zaXRpdmVTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3IgewpAQCAtMjI4LDMgKzI0
Miw0IEBAIHVzaW5nIFdURjo6QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoOwogdXNpbmcgV1RGOjpB
U0NJSUNhc2VJbnNlbnNpdGl2ZVN0cmluZ1ZpZXdIYXNoVHJhbnNsYXRvcjsKIHVzaW5nIFdURjo6
QWxyZWFkeUhhc2hlZDsKIHVzaW5nIFdURjo6U3RyaW5nSGFzaDsKK3VzaW5nIFdURjo6U3RyaW5n
Vmlld0hhc2hUcmFuc2xhdG9yOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9ET01DYWNoZUVuZ2luZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RP
TUNhY2hlRW5naW5lLmNwcAppbmRleCBiNDI4MjY1YzEyNzgyNTQ3YzFhMGRlNDJmOWE2ZjIyY2U0
MzhkZDU5Li41OTBlZmEwMTBjYmMwMzcxNWY1YmU0MjgwMjRhZTYyNDU3YTAxNDk2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5lLmNwcApAQCAtMTAy
LDggKzEwMiw3IEBAIGJvb2wgcXVlcnlDYWNoZU1hdGNoKGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBjYWNoCiAgICAgICAgICAgICBpc1Zhcnlp
bmcgPSB0cnVlOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIGF1dG8g
bmFtZSA9IG5hbWVWaWV3LnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKTsKLSAgICAgICAgaXNWYXJ5
aW5nID0gY2FjaGVkUmVxdWVzdC5odHRwSGVhZGVyRmllbGQobmFtZSkgIT0gcmVxdWVzdC5odHRw
SGVhZGVyRmllbGQobmFtZSk7CisgICAgICAgIGlzVmFyeWluZyA9IGNhY2hlZFJlcXVlc3QuaHR0
cEhlYWRlckZpZWxkKG5hbWVWaWV3KSAhPSByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZChuYW1lVmll
dyk7CiAgICAgfSk7CiAKICAgICByZXR1cm4gIWlzVmFyeWluZzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Vmlld3BvcnRBcmd1bWVudHMuY3BwCmluZGV4IDgzNjA2YTdhZjUwNGZmMDYzYmMxODJkZjg0ZmE2
ODIxMTYyZWNjNGUuLjUyNWRlZThkMTQwMDY4MmUyZTEwZmRhNTNhN2NlMjY4YTUxMzdmNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1ZpZXdwb3J0QXJndW1lbnRzLmNwcApAQCAtNDI3LDEwICs0Mjcs
MTAgQEAgc3RhdGljIFN0cmluZyB2aWV3cG9ydEVycm9yTWVzc2FnZShWaWV3cG9ydEVycm9yQ29k
ZSBlcnJvckNvZGUsIFN0cmluZ1ZpZXcgcmVwbGEKIHsKICAgICBTdHJpbmcgbWVzc2FnZSA9IHZp
ZXdwb3J0RXJyb3JNZXNzYWdlVGVtcGxhdGUoZXJyb3JDb2RlKTsKICAgICBpZiAoIXJlcGxhY2Vt
ZW50MS5pc051bGwoKSkKLSAgICAgICAgbWVzc2FnZS5yZXBsYWNlKCIlcmVwbGFjZW1lbnQxIiwg
cmVwbGFjZW1lbnQxLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7CisgICAgICAgIG1lc3NhZ2Uu
cmVwbGFjZSgiJXJlcGxhY2VtZW50MSIsIHJlcGxhY2VtZW50MSk7CiAgICAgLy8gRklYTUU6IFRo
aXMgd2lsbCBkbyB0aGUgd3JvbmcgdGhpbmcgaWYgcmVwbGFjZW1lbnQxIGNvbnRhaW5zIHRoZSBz
dWJzdHJpbmcgIiVyZXBsYWNlbWVudDIiLgogICAgIGlmICghcmVwbGFjZW1lbnQyLmlzTnVsbCgp
KQotICAgICAgICBtZXNzYWdlLnJlcGxhY2UoIiVyZXBsYWNlbWVudDIiLCByZXBsYWNlbWVudDIu
dG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKKyAgICAgICAgbWVzc2FnZS5yZXBsYWNlKCIlcmVw
bGFjZW1lbnQyIiwgcmVwbGFjZW1lbnQyKTsKIAogICAgIGlmICgoZXJyb3JDb2RlID09IFVucmVj
b2duaXplZFZpZXdwb3J0QXJndW1lbnRWYWx1ZUVycm9yIHx8IGVycm9yQ29kZSA9PSBUcnVuY2F0
ZWRWaWV3cG9ydEFyZ3VtZW50VmFsdWVFcnJvcikgJiYgcmVwbGFjZW1lbnQxLmNvbnRhaW5zKCc7
JykpCiAgICAgICAgIG1lc3NhZ2UuYXBwZW5kKCIgTm90ZSB0aGF0ICc7JyBpcyBub3QgYSBzZXBh
cmF0b3IgaW4gdmlld3BvcnQgdmFsdWVzLiBUaGUgbGlzdCBzaG91bGQgYmUgY29tbWEtc2VwYXJh
dGVkLiJfcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3Bh
Z2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9wYWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcAppbmRleCAzZGQxYmFmMWUzNzVkYjYwNThmMzJk
ZmU3ZmFjNTcyM2JjZjdlYjQwLi4zMWNhNzlkNjQxMDU2MDQ1NmM4OWE1YmU2MjU2MGZjMzNlMDgy
Y2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL3BhZ2UvUGFn
ZURlYnVnZ2VyQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
cGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHAKQEAgLTk0LDE3ICs5NCwxNyBAQCB2b2lkIFBhZ2VE
ZWJ1Z2dlckFnZW50OjppbnRlcm5hbERpc2FibGUoYm9vbCBpc0JlaW5nRGVzdHJveWVkKQogCiBT
dHJpbmcgUGFnZURlYnVnZ2VyQWdlbnQ6OnNvdXJjZU1hcFVSTEZvclNjcmlwdChjb25zdCBKU0M6
OkRlYnVnZ2VyOjpTY3JpcHQmIHNjcmlwdCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiBzb3VyY2VNYXBIVFRQSGVhZGVyKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJTb3Vy
Y2VNYXAiKSk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gc291cmNlTWFwSFRU
UEhlYWRlckRlcHJlY2F0ZWQoTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwoIlgtU291cmNlTWFwIikp
OworICAgIHN0YXRpYyBjb25zdGV4cHIgYXV0byBzb3VyY2VNYXBIVFRQSGVhZGVyID0gIlNvdXJj
ZU1hcCJfczsKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8gc291cmNlTWFwSFRUUEhlYWRlckRl
cHJlY2F0ZWQgPSAiWC1Tb3VyY2VNYXAiX3M7CiAKICAgICBpZiAoIXNjcmlwdC51cmwuaXNFbXB0
eSgpKSB7CiAgICAgICAgIENhY2hlZFJlc291cmNlKiByZXNvdXJjZSA9IEluc3BlY3RvclBhZ2VB
Z2VudDo6Y2FjaGVkUmVzb3VyY2UoJm1faW5zcGVjdGVkUGFnZS5tYWluRnJhbWUoKSwgVVJMKHsg
fSwgc2NyaXB0LnVybCkpOwogICAgICAgICBpZiAocmVzb3VyY2UpIHsKLSAgICAgICAgICAgIFN0
cmluZyBzb3VyY2VNYXBIZWFkZXIgPSByZXNvdXJjZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmll
bGQoc291cmNlTWFwSFRUUEhlYWRlcik7CisgICAgICAgICAgICBTdHJpbmcgc291cmNlTWFwSGVh
ZGVyID0gcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKFN0cmluZ1ZpZXcgeyBz
b3VyY2VNYXBIVFRQSGVhZGVyIH0pOwogICAgICAgICAgICAgaWYgKCFzb3VyY2VNYXBIZWFkZXIu
aXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBzb3VyY2VNYXBIZWFkZXI7CiAKLSAg
ICAgICAgICAgIHNvdXJjZU1hcEhlYWRlciA9IHJlc291cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFk
ZXJGaWVsZChzb3VyY2VNYXBIVFRQSGVhZGVyRGVwcmVjYXRlZCk7CisgICAgICAgICAgICBzb3Vy
Y2VNYXBIZWFkZXIgPSByZXNvdXJjZS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoU3RyaW5n
VmlldyB7IHNvdXJjZU1hcEhUVFBIZWFkZXJEZXByZWNhdGVkIH0pOwogICAgICAgICAgICAgaWYg
KCFzb3VyY2VNYXBIZWFkZXIuaXNFbXB0eSgpKQogICAgICAgICAgICAgICAgIHJldHVybiBzb3Vy
Y2VNYXBIZWFkZXI7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Dcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Ny
b3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAKaW5kZXggOTIyM2UwNDQwZmEzYTFjMDhmMmZlNmVk
NjQ2Nzc4MzNmNzIxZTI2ZS4uY2ZlMzY5Y2I0Yzc0MGYzNDVmYWM3NTdjOWI3MmVlODFmYjQ2NGVl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29u
dHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29u
dHJvbC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBDYWNoZWRSZXNvdXJjZVJlcXVlc3QgY3JlYXRl
UG90ZW50aWFsQWNjZXNzQ29udHJvbFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdQogCiBT
dHJpbmcgdmFsaWRhdGVDcm9zc09yaWdpblJlZGlyZWN0aW9uVVJMKGNvbnN0IFVSTCYgcmVkaXJl
Y3RVUkwpCiB7Ci0gICAgaWYgKCFMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxT
Y2hlbWVBc0NPUlNFbmFibGVkKHJlZGlyZWN0VVJMLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0
Q29weWluZygpKSkKKyAgICBpZiAoIUxlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVS
TFNjaGVtZUFzQ09SU0VuYWJsZWQocmVkaXJlY3RVUkwucHJvdG9jb2woKSkpCiAgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJub3QgYWxsb3dlZCB0byBmb2xsb3cgYSBjcm9zcy1vcmlnaW4gQ09S
UyByZWRpcmVjdGlvbiB3aXRoIG5vbiBDT1JTIHNjaGVtZSIpOwogCiAgICAgaWYgKHJlZGlyZWN0
VVJMLmhhc0NyZWRlbnRpYWxzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcAppbmRleCBmZDllMzZjNDc1NDUyZjZmOTYzYWEyNWQ5NmZmZmM2ZGVmYzFkY2UyLi4xMjJk
ODcwMjJhM2RmNjhiZDlhOWZjOGUwZGQ0NjRkODkwNjM4NWY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTEwNDAsNyArMTA0MCw3IEBAIGJvb2wgRG9jdW1l
bnRMb2FkZXI6OmRpc2FsbG93V2ViQXJjaGl2ZSgpIGNvbnN0CiAgICAgaWYgKG1fc3Vic3RpdHV0
ZURhdGEuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIUxlZ2Fj
eVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwobV9yZXF1ZXN0LnVy
bCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSkKKyAgICBpZiAoIUxlZ2Fj
eVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwobV9yZXF1ZXN0LnVy
bCgpLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghZnJhbWUo
KSB8fCAoZnJhbWUoKS0+aXNNYWluRnJhbWUoKSAmJiBtX2FsbG93c1dlYkFyY2hpdmVGb3JNYWlu
RnJhbWUpKQpAQCAtMTk5NCw4ICsxOTk0LDggQEAgYm9vbCBEb2N1bWVudExvYWRlcjo6aXNNdWx0
aXBhcnRSZXBsYWNpbmdMb2FkKCkgY29uc3QKIAogYm9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVM
b2FkRW1wdHkoKQogewotICAgIGJvb2wgc2hvdWxkTG9hZEVtcHR5ID0gIW1fc3Vic3RpdHV0ZURh
dGEuaXNWYWxpZCgpICYmIChtX3JlcXVlc3QudXJsKCkuaXNFbXB0eSgpIHx8IExlZ2FjeVNjaGVt
ZVJlZ2lzdHJ5OjpzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KG1fcmVxdWVzdC51
cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpOwotICAgIGlmICghc2hv
dWxkTG9hZEVtcHR5ICYmICFmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5yZXByZXNlbnRhdGlvbkV4
aXN0c0ZvclVSTFNjaGVtZShtX3JlcXVlc3QudXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhv
dXRDb3B5aW5nKCkpKQorICAgIGJvb2wgc2hvdWxkTG9hZEVtcHR5ID0gIW1fc3Vic3RpdHV0ZURh
dGEuaXNWYWxpZCgpICYmIChtX3JlcXVlc3QudXJsKCkuaXNFbXB0eSgpIHx8IExlZ2FjeVNjaGVt
ZVJlZ2lzdHJ5OjpzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KG1fcmVxdWVzdC51
cmwoKS5wcm90b2NvbCgpKSk7CisgICAgaWYgKCFzaG91bGRMb2FkRW1wdHkgJiYgIWZyYW1lTG9h
ZGVyKCktPmNsaWVudCgpLnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKG1fcmVxdWVz
dC51cmwoKS5wcm90b2NvbCgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1f
cmVxdWVzdC51cmwoKS5pc0VtcHR5KCkgJiYgIWZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgp
LmNyZWF0aW5nSW5pdGlhbEVtcHR5RG9jdW1lbnQoKSkgewpAQCAtMjAwNCw3ICsyMDA0LDcgQEAg
Ym9vbCBEb2N1bWVudExvYWRlcjo6bWF5YmVMb2FkRW1wdHkoKQogICAgICAgICAgICAgZnJhbWVM
b2FkZXIoKS0+Y2xpZW50KCkuZGlzcGF0Y2hEaWRDaGFuZ2VQcm92aXNpb25hbFVSTCgpOwogICAg
IH0KIAotICAgIFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0bWwi
X3MgOiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5nZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVt
ZShtX3JlcXVlc3QudXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOwor
ICAgIFN0cmluZyBtaW1lVHlwZSA9IHNob3VsZExvYWRFbXB0eSA/ICJ0ZXh0L2h0bWwiX3MgOiBm
cmFtZUxvYWRlcigpLT5jbGllbnQoKS5nZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShtX3Jl
cXVlc3QudXJsKCkucHJvdG9jb2woKSk7CiAgICAgbV9yZXNwb25zZSA9IFJlc291cmNlUmVzcG9u
c2UobV9yZXF1ZXN0LnVybCgpLCBtaW1lVHlwZSwgMCwgIlVURi04Il9zKTsKIAogICAgIGlmICgh
ZnJhbWVMb2FkZXIoKS0+c3RhdGVNYWNoaW5lKCkuaXNEaXNwbGF5aW5nSW5pdGlhbEVtcHR5RG9j
dW1lbnQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcAppbmRleCAxMzQ0NjI4OWI1ZmZmYmYwNDIxMGMxZjIzMDFlOWMyNjdkYmVl
NGQzLi5jMzYwOWEyMjNhYTNlY2JkM2QxYTE2NjI3ZmVmMjE5MzEyMjJkMGNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcApAQCAt
MTU2LDcgKzE1Niw3IEBAIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyKERvY3VtZW50JiBkb2N1bWVudCwgVGhyZWFkYWJsCiAgICAgaWYgKHNob3VsZFNl
dEhUVFBIZWFkZXJzVG9LZWVwKCkpCiAgICAgICAgIG1fb3B0aW9ucy5odHRwSGVhZGVyc1RvS2Vl
cCA9IGh0dHBIZWFkZXJzVG9LZWVwRnJvbUNsZWFuaW5nKHJlcXVlc3QuaHR0cEhlYWRlckZpZWxk
cygpKTsKIAotICAgIGJvb2wgc2hvdWxkRGlzYWJsZUNPUlMgPSBkb2N1bWVudC5pc1J1bm5pbmdV
c2VyU2NyaXB0cygpICYmIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5Ojppc1VzZXJFeHRlbnNpb25TY2hl
bWUocmVxdWVzdC51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7Cisg
ICAgYm9vbCBzaG91bGREaXNhYmxlQ09SUyA9IGRvY3VtZW50LmlzUnVubmluZ1VzZXJTY3JpcHRz
KCkgJiYgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OmlzVXNlckV4dGVuc2lvblNjaGVtZShyZXF1ZXN0
LnVybCgpLnByb3RvY29sKCkpOwogICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgp
KQogICAgICAgICBzaG91bGREaXNhYmxlQ09SUyB8PSBwYWdlLT5zaG91bGREaXNhYmxlQ29yc0Zv
clJlcXVlc3RUbyhyZXF1ZXN0LnVybCgpKTsKIApAQCAtMTg5LDcgKzE4OSw3IEBAIERvY3VtZW50
VGhyZWFkYWJsZUxvYWRlcjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKERvY3VtZW50JiBkb2N1
bWVudCwgVGhyZWFkYWJsCiBib29sIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6Y2hlY2tVUkxT
Y2hlbWVBc0NPUlNFbmFibGVkKGNvbnN0IFVSTCYgdXJsKQogewogICAgIC8vIENyb3NzLW9yaWdp
biByZXF1ZXN0cyBhcmUgb25seSBhbGxvd2VkIGZvciBIVFRQIGFuZCByZWdpc3RlcmVkIHNjaGVt
ZXMuIFdlIHdvdWxkIGNhdGNoIHRoaXMgd2hlbiBjaGVja2luZyByZXNwb25zZSBoZWFkZXJzIGxh
dGVyLCBidXQgdGhlcmUgaXMgbm8gcmVhc29uIHRvIHNlbmQgYSByZXF1ZXN0IHRoYXQncyBndWFy
YW50ZWVkIHRvIGJlIGRlbmllZC4KLSAgICBpZiAoIUxlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91
bGRUcmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJsZWQodXJsLnByb3RvY29sKCkudG9TdHJpbmdXaXRo
b3V0Q29weWluZygpKSkgeworICAgIGlmICghTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRy
ZWF0VVJMU2NoZW1lQXNDT1JTRW5hYmxlZCh1cmwucHJvdG9jb2woKSkpIHsKICAgICAgICAgbG9n
RXJyb3JBbmRGYWlsKFJlc291cmNlRXJyb3IoZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwg
dXJsLCAiQ3Jvc3Mgb3JpZ2luIHJlcXVlc3RzIGFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgSFRUUC4i
X3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
Mjg0ZDBlY2JiZTUzNTVjNThjNjZkYjYzZWYwYWYyYTg0ZTliMmZlZS4uNjQyOTEyNjFjODZhMjcx
ZTQyZDBhMzAwZjhlMWIxOTRkMTFmMGUxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKQEAgLTk1MiwxMiArOTUyLDEyIEBAIGJvb2wgRW1wdHlGcmFtZUxvYWRlckNsaWVu
dDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmluZyYpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCi1ib29sIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9u
RXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYpIGNvbnN0Citib29sIEVtcHR5RnJhbWVM
b2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKFN0cmluZ1ZpZXcp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1TdHJpbmcgRW1wdHlGcmFtZUxvYWRl
ckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJikgY29u
c3QKK1N0cmluZyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1FVHlwZUZvclVS
TFNjaGVtZShTdHJpbmdWaWV3KSBjb25zdAogewogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKaW5k
ZXggMTE2YTE3ZDFmNWM5ZTY0N2UxZjE0MWExMDA4NmIwNzk4MzkzZjNlYS4uNjdiNDM4YTJiOWI3
N2JlNWY2NDdiMWNmNTZkN2E2ZDM1OWQ1YzFiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xNDAsOCArMTQwLDggQEAgcHJpdmF0ZToK
ICAgICBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29uc3Qg
ZmluYWw7CiAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJikgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgU3RyaW5nJikgY29uc3Qg
ZmluYWw7Ci0gICAgYm9vbCByZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBT
dHJpbmcmKSBjb25zdCBmaW5hbDsKLSAgICBTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxT
Y2hlbWUoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CisgICAgYm9vbCByZXByZXNlbnRhdGlv
bkV4aXN0c0ZvclVSTFNjaGVtZShTdHJpbmdWaWV3KSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcg
Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoU3RyaW5nVmlldykgY29uc3QgZmluYWw7CiAK
ICAgICB2b2lkIGZyYW1lTG9hZENvbXBsZXRlZCgpIGZpbmFsOwogICAgIHZvaWQgcmVzdG9yZVZp
ZXdTdGF0ZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQu
aAppbmRleCA0NWY1NTIyYjQ4NmVkMjRmZTFkZjA3OTgyYzFmNzUwODI5YmQ2NWE4Li5hODJiOWY4
YTU0MmUwMmYwMjcwNTMxMWZjZThjN2RjMjZiNGMwNTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjU1LDggKzI1NSw4IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1J
TUVUeXBlKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGNhblNob3dNSU1FVHlwZUFzSFRN
TChjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIHJl
cHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgVVJMU2NoZW1lKSBj
b25zdCA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hl
bWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoU3RyaW5nVmlldyBVUkxTY2hlbWUpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVt
ZShTdHJpbmdWaWV3IFVSTFNjaGVtZSkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGZy
YW1lTG9hZENvbXBsZXRlZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2F2ZVZpZXdTdGF0ZVRv
SXRlbShIaXN0b3J5SXRlbSYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCmluZGV4IGQwMTM5Zjg3YTA2Zjk2OTc4Yjc0
NzdlOWY0OTk5YzM0ZWE5Zjg2MjUuLmFjMWIyMDQzNjBiOTc0YjZlNzIwNzc4MWIyMjY1ZTZkNzYy
OTMwZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01I
VE1MQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwv
TUhUTUxBcmNoaXZlLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIFJlZjxNSFRNTEFyY2hpdmU+IE1I
VE1MQXJjaGl2ZTo6Y3JlYXRlKCkKIFJlZlB0cjxNSFRNTEFyY2hpdmU+IE1IVE1MQXJjaGl2ZTo6
Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBGcmFnbWVudGVkU2hhcmVkQnVmZmVyJiBkYXRhKQogewog
ICAgIC8vIEZvciBzZWN1cml0eSByZWFzb25zIHdlIG9ubHkgbG9hZCBNSFRNTCBwYWdlcyBmcm9t
IGxvY2FsIFVSTHMuCi0gICAgaWYgKCFMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRV
UkxTY2hlbWVBc0xvY2FsKHVybC5wcm90b2NvbCgpLnRvU3RyaW5nKCkpKQorICAgIGlmICghTGVn
YWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNMb2NhbCh1cmwucHJvdG9j
b2woKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgTUhUTUxQYXJzZXIgcGFyc2Vy
KCZkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCmluZGV4IDczYmVhNmQ0Y2U3YjM4YjcwYjUwZDIyZDAxOTljMTNkNmE0YzExYWEuLjk3YTlh
MjAzYjZmMGU1YzBhZTA5MzM2ZTdmMTBjZGEyMmVkYjI0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcApAQCAtNDM2LDcgKzQzNiw3IEBAIFNl
Y29uZHMgQ2FjaGVkUmVzb3VyY2U6OmZyZXNobmVzc0xpZmV0aW1lKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKSBjb25zCiAgICAgICAgICAgICAvLyBEb24ndCBjYWNoZSBub24tSFRU
UCBtYWluIHJlc291cmNlcyBzaW5jZSB3ZSBjYW4ndCBjaGVjayBmb3IgZnJlc2huZXNzLgogICAg
ICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBub3QgY2FjaGUgc3VicmVzb3VyY2VzIGVpdGhl
ciwgYnV0IHdoZW4gd2UgdHJpZWQgdGhpcwogICAgICAgICAgICAgLy8gaXQgY2F1c2VkIHBlcmZv
cm1hbmNlIGFuZCBmbGFraW5lc3MgaXNzdWVzIGluIG91ciB0ZXN0IGluZnJhc3RydWN0dXJlLgot
ICAgICAgICAgICAgaWYgKG1fdHlwZSA9PSBUeXBlOjpNYWluUmVzb3VyY2UgfHwgTGVnYWN5U2No
ZW1lUmVnaXN0cnk6OnNob3VsZEFsd2F5c1JldmFsaWRhdGVVUkxTY2hlbWUocHJvdG9jb2wudG9T
dHJpbmdXaXRob3V0Q29weWluZygpKSkKKyAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6
TWFpblJlc291cmNlIHx8IExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRBbHdheXNSZXZhbGlk
YXRlVVJMU2NoZW1lKHByb3RvY29sKSkKICAgICAgICAgICAgICAgICByZXR1cm4gMF91czsKICAg
ICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJj
ZUxvYWRlclNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2Fk
ZXJTb3VwLmNwcAppbmRleCBhYTI0ZjUzMzU4MzgzNjM4NmQ3ZDU2NTM0Y2I4OTk0ODUzNTU0ZTBm
Li43YzRmNDdlM2QzMGE0ZDA2NjI4MzBmZGEyMWFjYTk5YTNkMWVmZmYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKQEAgLTc4LDcg
Kzc4LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6bG9hZEdSZXNvdXJjZSgpCiAgICAgZ190YXNr
X3J1bl9pbl90aHJlYWQodGFzay5nZXQoKSwgW10oR1Rhc2sqIHRhc2ssIGdwb2ludGVyLCBncG9p
bnRlciB0YXNrRGF0YSwgR0NhbmNlbGxhYmxlKikgewogICAgICAgICBVUkwgdXJsKHsgfSwgU3Ry
aW5nOjpmcm9tVVRGOChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4odGFza0RhdGEpKSk7CiAgICAg
ICAgIEdFcnJvciogZXJyb3IgPSBudWxscHRyOwotICAgICAgICBHQnl0ZXMqIGJ5dGVzID0gZ19y
ZXNvdXJjZXNfbG9va3VwX2RhdGEodXJsLnByb3RvY29sSXMoIndlYmtpdC1wZGZqcy12aWV3ZXIi
KSA/IG1ha2VTdHJpbmcoIi9vcmcvd2Via2l0L3BkZmpzIiwgdXJsLnBhdGgoKS50b1N0cmluZygp
KS51dGY4KCkuZGF0YSgpIDogdXJsLnBhdGgoKS51dGY4KCkuZGF0YSgpLAorICAgICAgICBHQnl0
ZXMqIGJ5dGVzID0gZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEodXJsLnByb3RvY29sSXMoIndlYmtp
dC1wZGZqcy12aWV3ZXIiKSA/IG1ha2VTdHJpbmcoIi9vcmcvd2Via2l0L3BkZmpzIiwgdXJsLnBh
dGgoKSkudXRmOCgpLmRhdGEoKSA6IHVybC5wYXRoKCkudXRmOCgpLmRhdGEoKSwKICAgICAgICAg
ICAgIEdfUkVTT1VSQ0VfTE9PS1VQX0ZMQUdTX05PTkUsICZlcnJvcik7CiAgICAgICAgIGlmICgh
Ynl0ZXMpCiAgICAgICAgICAgICBnX3Rhc2tfcmV0dXJuX2Vycm9yKHRhc2ssIGVycm9yKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCmluZGV4IGUwZWU3Mzc5MGYwYjY0YzdiMDU4MmNmYzhhNGI5MzRmZmU4MDA1
ZDAuLmVmMzQ4MmRmNjQxOWE3NDA1MGZkNDZhZjNiZmQwYWM4YjdlOTNkNWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcApAQCAtMjAwOSw3ICsyMDA5LDcgQEAgdm9pZCBQYWdlOjp1c2VyU3R5bGVTaGVldExv
Y2F0aW9uQ2hhbmdlZCgpCiAgICAgVVJMIHVybCA9IG1fc2V0dGluZ3MtPnVzZXJTdHlsZVNoZWV0
TG9jYXRpb24oKTsKICAgICAKICAgICAvLyBBbGxvdyBhbnkgbG9jYWwgZmlsZSBVUkwgc2NoZW1l
IHRvIGJlIGxvYWRlZC4KLSAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0
VVJMU2NoZW1lQXNMb2NhbCh1cmwucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkp
KQorICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xv
Y2FsKHVybC5wcm90b2NvbCgpKSkKICAgICAgICAgbV91c2VyU3R5bGVTaGVldFBhdGggPSB1cmwu
ZmlsZVN5c3RlbVBhdGgoKTsKICAgICBlbHNlCiAgICAgICAgIG1fdXNlclN0eWxlU2hlZXRQYXRo
ID0gU3RyaW5nKCk7CkBAIC0zNTM0LDcgKzM1MzQsNyBAQCBib29sIFBhZ2U6OmFsbG93c0xvYWRG
cm9tVVJMKGNvbnN0IFVSTCYgdXJsLCBNYWluRnJhbWVNYWluUmVzb3VyY2UgbWFpbkZyYW1lTWFp
bgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoIXVybC5wcm90b2NvbElzSW5IVFRQRmFt
aWx5KCkgJiYgIXVybC5wcm90b2NvbElzKCJ3cyIpICYmICF1cmwucHJvdG9jb2xJcygid3NzIikp
CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBtX2FsbG93ZWROZXR3b3JrSG9zdHMt
PmNvbnRhaW5zKHVybC5ob3N0KCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKKyAgICByZXR1
cm4gbV9hbGxvd2VkTmV0d29ya0hvc3RzLT5jb250YWluczxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0
b3I+KHVybC5ob3N0KCkpOwogfQogCiB2b2lkIFBhZ2U6OmFwcGxpY2F0aW9uV2lsbFJlc2lnbkFj
dGl2ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmluZGV4IDRiYTUxOTFl
NmIzZTQwOTg3OWMyMTljMTY2YTgzZmU3MTJhMzU4N2EuLjZiMTMwYmIyY2Y0YTU0OTg4M2VmMWNj
OTA3YTdhNzJjNzVjZDI5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3Bw
CkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRBc1VuaXF1ZU9yaWdp
bihjb25zdCBVUkwmIHVybCkKICAgICBpZiAoc2NoZW1lUmVxdWlyZXNIb3N0KGlubmVyVVJMKSAm
JiBpbm5lclVSTC5ob3N0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vQWNjZXNz
KGlubmVyVVJMLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSkKKyAgICBpZiAo
TGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcyhpbm5l
clVSTC5wcm90b2NvbCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBodHRwczov
L3VybC5zcGVjLndoYXR3Zy5vcmcvI29yaWdpbiB3aXRoIHNvbWUgYWRkaXRpb25zCkBAIC0xNTMs
NyArMTUzLDcgQEAgc3RhdGljIGJvb2wgaXNMb29wYmFja0lQQWRkcmVzcyhTdHJpbmdWaWV3IGhv
c3QpCiB9CiAKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJhcHBzZWMtc2VjdXJlLWNvbnRl
eHRzLyNpcy1vcmlnaW4tdHJ1c3R3b3J0aHkgKEVkaXRvcidzIERyYWZ0LCAxNyBOb3ZlbWJlciAy
MDE2KQotc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRBc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkoY29u
c3QgU3RyaW5nJiBwcm90b2NvbCwgU3RyaW5nVmlldyBob3N0KQorc3RhdGljIGJvb2wgc2hvdWxk
VHJlYXRBc1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkoU3RyaW5nVmlldyBwcm90b2NvbCwgU3RyaW5n
VmlldyBob3N0KQogewogICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRV
UkxTY2hlbWVBc1NlY3VyZShwcm90b2NvbCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTcy
LDcgKzE3Miw3IEBAIHN0YXRpYyBib29sIHNob3VsZFRyZWF0QXNQb3RlbnRpYWxseVRydXN0d29y
dGh5KGNvbnN0IFN0cmluZyYgcHJvdG9jb2wsIFN0cmluZ1ZpCiAKIGJvb2wgc2hvdWxkVHJlYXRB
c1BvdGVudGlhbGx5VHJ1c3R3b3J0aHkoY29uc3QgVVJMJiB1cmwpCiB7Ci0gICAgcmV0dXJuIHNo
b3VsZFRyZWF0QXNQb3RlbnRpYWxseVRydXN0d29ydGh5KHVybC5wcm90b2NvbCgpLnRvU3RyaW5n
V2l0aG91dENvcHlpbmcoKSwgdXJsLmhvc3QoKSk7CisgICAgcmV0dXJuIHNob3VsZFRyZWF0QXNQ
b3RlbnRpYWxseVRydXN0d29ydGh5KHVybC5wcm90b2NvbCgpLCB1cmwuaG9zdCgpKTsKIH0KIAog
U2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3JpZ2luKGNvbnN0IFVSTCYgdXJsKQpAQCAtMjU5LDEy
ICsyNTksMTIgQEAgdm9pZCBTZWN1cml0eU9yaWdpbjo6c2V0RG9tYWluRnJvbURPTShjb25zdCBT
dHJpbmcmIG5ld0RvbWFpbikKIGJvb2wgU2VjdXJpdHlPcmlnaW46OmlzU2VjdXJlKGNvbnN0IFVS
TCYgdXJsKQogewogICAgIC8vIEludmFsaWQgVVJMcyBhcmUgc2VjdXJlLCBhcyBhcmUgVVJMcyB3
aGljaCBoYXZlIGEgc2VjdXJlIHByb3RvY29sLgotICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCBM
ZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZSh1cmwucHJv
dG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQorICAgIGlmICghdXJsLmlzVmFsaWQo
KSB8fCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZSh1
cmwucHJvdG9jb2woKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gVVJMcyB0aGF0
IHdyYXAgaW5uZXIgVVJMcyBhcmUgc2VjdXJlIGlmIHRob3NlIGlubmVyIFVSTHMgYXJlIHNlY3Vy
ZS4KICAgICBpZiAoc2hvdWxkVXNlSW5uZXJVUkwodXJsKSkKLSAgICAgICAgcmV0dXJuIExlZ2Fj
eVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKGV4dHJhY3RJbm5l
clVSTCh1cmwpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSB8fCBCbG9iVVJM
Ojppc1NlY3VyZUJsb2JVUkwodXJsKTsKKyAgICAgICAgcmV0dXJuIExlZ2FjeVNjaGVtZVJlZ2lz
dHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKGV4dHJhY3RJbm5lclVSTCh1cmwpLnBy
b3RvY29sKCkpIHx8IEJsb2JVUkw6OmlzU2VjdXJlQmxvYlVSTCh1cmwpOwogCiAgICAgcmV0dXJu
IGZhbHNlOwogfQpAQCAtMzk4LDcgKzM5OCw3IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmNhbkRp
c3BsYXkoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiAgICAgaWYgKGlzRmVlZFdpdGhOZXN0ZWRQcm90
b2NvbEluSFRUUEZhbWlseSh1cmwpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIFN0cmlu
ZyBwcm90b2NvbCA9IHVybC5wcm90b2NvbCgpLnRvU3RyaW5nKCk7CisgICAgYXV0byBwcm90b2Nv
bCA9IHVybC5wcm90b2NvbCgpOwogCiAgICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpjYW5E
aXNwbGF5T25seUlmQ2FuUmVxdWVzdChwcm90b2NvbCkpCiAgICAgICAgIHJldHVybiBjYW5SZXF1
ZXN0KHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5
UG9saWN5LmNwcAppbmRleCAwZDhhOWM3NjUyNDZkNTcwMjc1OGNlOWYxZTZlNzlhMmZmOTY0YjFm
Li45ZjIwODg3ZmY2ZDJiMTI5MzRiYjI4MjI5NTM1MjA2NzFkMTBjOTAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTU1OSw3
ICs1NTksNyBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dQbHVnaW5UeXBlKGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiB0eQogCiBib29sIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6YWxsb3dPYmplY3RGcm9tU291cmNlKGNvbnN0IFVSTCYgdXJsLCBSZWRpcmVjdFJl
c3BvbnNlUmVjZWl2ZWQgcmVkaXJlY3RSZXNwb25zZVJlY2VpdmVkLCBjb25zdCBVUkwmIHByZVJl
ZGlyZWN0VVJMKSBjb25zdAogewotICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1l
U2hvdWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9saWN5KHVybC5wcm90b2NvbCgpLnRvU3RyaW5n
V2l0aG91dENvcHlpbmcoKSkpCisgICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVT
aG91bGRCeXBhc3NDb250ZW50U2VjdXJpdHlQb2xpY3kodXJsLnByb3RvY29sKCkpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAvLyBBcyBwZXIgc2VjdGlvbiBvYmplY3Qtc3JjIG9mIHRoZSBD
b250ZW50IFNlY3VyaXR5IFBvbGljeSBMZXZlbCAzIHNwZWMuLCA8aHR0cDovL3czYy5naXRodWIu
aW8vd2ViYXBwc2VjLWNzcD4gKEVkaXRvcidzIERyYWZ0LCAyOSBGZWJydWFyeSAyMDE2KSwKICAg
ICAvLyAiSWYgcGx1Z2luIGNvbnRlbnQgaXMgbG9hZGVkIHdpdGhvdXQgYW4gYXNzb2NpYXRlZCBV
UkwgKHBlcmhhcHMgYW4gb2JqZWN0IGVsZW1lbnQgbGFja3MgYSBkYXRhIGF0dHJpYnV0ZSwgYnV0
IGxvYWRzIHNvbWUgZGVmYXVsdCBwbHVnaW4gYmFzZWQKQEAgLTU3Niw3ICs1NzYsNyBAQCBib29s
IENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dPYmplY3RGcm9tU291cmNlKGNvbnN0IFVSTCYg
dXJsLCBSZWRpcmVjdFJlc3BvbgogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dD
aGlsZEZyYW1lRnJvbVNvdXJjZShjb25zdCBVUkwmIHVybCwgUmVkaXJlY3RSZXNwb25zZVJlY2Vp
dmVkIHJlZGlyZWN0UmVzcG9uc2VSZWNlaXZlZCkgY29uc3QKIHsKLSAgICBpZiAoTGVnYWN5U2No
ZW1lUmVnaXN0cnk6OnNjaGVtZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeSh1cmwu
cHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQorICAgIGlmIChMZWdhY3lTY2hl
bWVSZWdpc3RyeTo6c2NoZW1lU2hvdWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9saWN5KHVybC5w
cm90b2NvbCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgU3RyaW5nIHNvdXJjZVVSTDsK
ICAgICBUZXh0UG9zaXRpb24gc291cmNlUG9zaXRpb24oT3JkaW5hbE51bWJlcjo6YmVmb3JlRmly
c3QoKSwgT3JkaW5hbE51bWJlcigpKTsKQEAgLTU4OSw3ICs1ODksNyBAQCBib29sIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6YWxsb3dDaGlsZEZyYW1lRnJvbVNvdXJjZShjb25zdCBVUkwmIHVybCwg
UmVkaXJlY3RSZQogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dSZXNvdXJjZUZy
b21Tb3VyY2UoY29uc3QgVVJMJiB1cmwsIFJlZGlyZWN0UmVzcG9uc2VSZWNlaXZlZCByZWRpcmVj
dFJlc3BvbnNlUmVjZWl2ZWQsIFJlc291cmNlUHJlZGljYXRlIHJlc291cmNlUHJlZGljYXRlLCBj
b25zdCBVUkwmIHByZVJlZGlyZWN0VVJMKSBjb25zdAogewotICAgIGlmIChMZWdhY3lTY2hlbWVS
ZWdpc3RyeTo6c2NoZW1lU2hvdWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9saWN5KHVybC5wcm90
b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCisgICAgaWYgKExlZ2FjeVNjaGVtZVJl
Z2lzdHJ5OjpzY2hlbWVTaG91bGRCeXBhc3NDb250ZW50U2VjdXJpdHlQb2xpY3kodXJsLnByb3Rv
Y29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBTdHJpbmcgc291cmNlVVJMOwogICAg
IGNvbnN0IGF1dG8mIGJsb2NrZWRVUkwgPSAhcHJlUmVkaXJlY3RVUkwuaXNOdWxsKCkgPyBwcmVS
ZWRpcmVjdFVSTCA6IHVybDsKQEAgLTYwMyw3ICs2MDMsNyBAQCBib29sIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6YWxsb3dSZXNvdXJjZUZyb21Tb3VyY2UoY29uc3QgVVJMJiB1cmwsIFJlZGlyZWN0
UmVzcAogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dXb3JrZXJGcm9tU291cmNl
KGNvbnN0IFVSTCYgdXJsLCBSZWRpcmVjdFJlc3BvbnNlUmVjZWl2ZWQgcmVkaXJlY3RSZXNwb25z
ZVJlY2VpdmVkLCBjb25zdCBVUkwmIHByZVJlZGlyZWN0VVJMKSBjb25zdAogewotICAgIGlmIChM
ZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1lU2hvdWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9s
aWN5KHVybC5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCisgICAgaWYgKExl
Z2FjeVNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91bGRCeXBhc3NDb250ZW50U2VjdXJpdHlQb2xp
Y3kodXJsLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFN0cmluZyBz
b3VyY2VVUkw7CkBAIC02MjEsNyArNjIxLDcgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmFsbG93U2NyaXB0RnJvbVNvdXJjZShjb25zdCBVUkwmIHVybCwgUmVkaXJlY3RSZXNwb24KIHsK
ICAgICBpZiAoc2hvdWxkUGVyZm9ybUVhcmx5Q1NQQ2hlY2soKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91bGRCeXBhc3NDb250
ZW50U2VjdXJpdHlQb2xpY3kodXJsLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygp
KSkKKyAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVtZVNob3VsZEJ5cGFzc0NvbnRl
bnRTZWN1cml0eVBvbGljeSh1cmwucHJvdG9jb2woKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgU3RyaW5nIHNvdXJjZVVSTDsKQEAgLTY0NCw3ICs2NDQsNyBAQCBib29sIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6YWxsb3dJbWFnZUZyb21Tb3VyY2UoY29uc3QgVVJMJiB1cmwsIFJlZGly
ZWN0UmVzcG9ucwogCiBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dTdHlsZUZyb21T
b3VyY2UoY29uc3QgVVJMJiB1cmwsIFJlZGlyZWN0UmVzcG9uc2VSZWNlaXZlZCByZWRpcmVjdFJl
c3BvbnNlUmVjZWl2ZWQsIGNvbnN0IFVSTCYgcHJlUmVkaXJlY3RVUkwsIGNvbnN0IFN0cmluZyYg
bm9uY2UpIGNvbnN0CiB7Ci0gICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91
bGRCeXBhc3NDb250ZW50U2VjdXJpdHlQb2xpY3kodXJsLnByb3RvY29sKCkudG9TdHJpbmdXaXRo
b3V0Q29weWluZygpKSkKKyAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVtZVNob3Vs
ZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeSh1cmwucHJvdG9jb2woKSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIFN0cmluZyBzb3VyY2VVUkw7CiAgICAgY29uc3QgYXV0byYgYmxvY2tl
ZFVSTCA9ICFwcmVSZWRpcmVjdFVSTC5pc051bGwoKSA/IHByZVJlZGlyZWN0VVJMIDogdXJsOwpA
QCAtNjc3LDcgKzY3Nyw3IEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd01lZGlh
RnJvbVNvdXJjZShjb25zdCBVUkwmIHVybCwgUmVkaXJlY3RSZXNwb25zCiAKIGJvb2wgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjphbGxvd0Nvbm5lY3RUb1NvdXJjZShjb25zdCBVUkwmIHVybCwgUmVk
aXJlY3RSZXNwb25zZVJlY2VpdmVkIHJlZGlyZWN0UmVzcG9uc2VSZWNlaXZlZCwgY29uc3QgVVJM
JiBwcmVSZWRpcmVjdFVSTCkgY29uc3QKIHsKLSAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6
OnNjaGVtZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeSh1cmwucHJvdG9jb2woKS50
b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQorICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6
c2NoZW1lU2hvdWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9saWN5KHVybC5wcm90b2NvbCgpKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgU3RyaW5nIHNvdXJjZVVSTDsKICAgICBUZXh0UG9z
aXRpb24gc291cmNlUG9zaXRpb24oT3JkaW5hbE51bWJlcjo6YmVmb3JlRmlyc3QoKSwgT3JkaW5h
bE51bWJlcigpKTsKQEAgLTY5Nyw3ICs2OTcsNyBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGlj
eTo6YWxsb3dCYXNlVVJJKGNvbnN0IFVSTCYgdXJsLCBib29sIG92ZXJyaWRlQ29udGVudFNlYwog
ewogICAgIGlmIChvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSkKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91bGRCeXBhc3ND
b250ZW50U2VjdXJpdHlQb2xpY3kodXJsLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWlu
ZygpKSkKKyAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVtZVNob3VsZEJ5cGFzc0Nv
bnRlbnRTZWN1cml0eVBvbGljeSh1cmwucHJvdG9jb2woKSkpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIFN0cmluZyBzb3VyY2VVUkw7CiAgICAgVGV4dFBvc2l0aW9uIHNvdXJjZVBvc2l0aW9u
KE9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCksIE9yZGluYWxOdW1iZXIoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNv
dXJjZUxpc3QuY3BwCmluZGV4IDFlNjM0M2VhMDM2ZTkxNTZkZTMwM2U1NDYyNWI1NjIyNjM1M2Zh
N2UuLjdkZmUzN2IwOGY5MzI1MDlhMzBjYjQ3YjUyMzhhZDdiNTk5YzNmYzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNvdXJjZUxpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0eVBvbGljeVNv
dXJjZUxpc3QuY3BwCkBAIC0xNzksNyArMTc5LDcgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lTb3VyY2VMaXN0OjptYXRjaGVzKGNvbnN0IFN0cmluZyYgbm9uY2UpIGNvbnN0CiAgICAgcmV0
dXJuIG1fbm9uY2VzLmNvbnRhaW5zKG5vbmNlKTsKIH0KIAotc3RhdGljIGJvb2wgc2NoZW1lSXNJ
bkh0dHBGYW1pbHkoY29uc3QgU3RyaW5nJiBzY2hlbWUpCitzdGF0aWMgYm9vbCBzY2hlbWVJc0lu
SHR0cEZhbWlseShTdHJpbmdWaWV3IHNjaGVtZSkKIHsKICAgICByZXR1cm4gZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShzY2hlbWUsICJodHRwcyIpIHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2Uoc2No
ZW1lLCAiaHR0cCIpOwogfQpAQCAtMjA2LDcgKzIwNiw3IEBAIGJvb2wgQ29udGVudFNlY3VyaXR5
UG9saWN5U291cmNlTGlzdDo6aXNWYWxpZFNvdXJjZUZvckV4dGVuc2lvbk1vZGUoY29uc3QgQ29u
dGVuCiB7CiAgICAgYm9vbCBob3N0SXNQdWJsaWNTdWZmaXggPSBmYWxzZTsKICNpZiBFTkFCTEUo
UFVCTElDX1NVRkZJWF9MSVNUKQotICAgIGhvc3RJc1B1YmxpY1N1ZmZpeCA9IGlzUHVibGljU3Vm
Zml4KHBhcnNlZFNvdXJjZS5ob3N0LnZhbHVlLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7Cisg
ICAgaG9zdElzUHVibGljU3VmZml4ID0gaXNQdWJsaWNTdWZmaXgocGFyc2VkU291cmNlLmhvc3Qu
dmFsdWUpOwogI2VuZGlmCiAKICAgICBzd2l0Y2ggKG1fY29udGVudFNlY3VyaXR5UG9saWN5TW9k
ZUZvckV4dGVuc2lvbikgewpAQCAtMjIyLDE0ICsyMjIsMTQgQEAgYm9vbCBDb250ZW50U2VjdXJp
dHlQb2xpY3lTb3VyY2VMaXN0Ojppc1ZhbGlkU291cmNlRm9yRXh0ZW5zaW9uTW9kZShjb25zdCBD
b250ZW4KICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UocGFyc2VkU291cmNlLnNj
aGVtZSwgImJsb2IiKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgICAgIGlmICgh
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShwYXJzZWRTb3VyY2Uuc2NoZW1lLnRvU3RyaW5nKCksICJo
dHRwcyIpIHx8IHBhcnNlZFNvdXJjZS5ob3N0LnZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAgaWYg
KCFlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHBhcnNlZFNvdXJjZS5zY2hlbWUsICJodHRwcyIpIHx8
IHBhcnNlZFNvdXJjZS5ob3N0LnZhbHVlLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZW50U2VjdXJpdHlQb2xpY3lNb2Rl
Rm9yRXh0ZW5zaW9uOjpNYW5pZmVzdFYzOgogICAgICAgICBpZiAoIWlzUmVzdHJpY3RlZERpcmVj
dGl2ZUZvck1vZGUobV9kaXJlY3RpdmVOYW1lLCBDb250ZW50U2VjdXJpdHlQb2xpY3lNb2RlRm9y
RXh0ZW5zaW9uOjpNYW5pZmVzdFYzKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAg
ICAgIGlmICghc2NoZW1lSXNJbkh0dHBGYW1pbHkocGFyc2VkU291cmNlLnNjaGVtZS50b1N0cmlu
Z1dpdGhvdXRDb3B5aW5nKCkpIHx8ICFTZWN1cml0eU9yaWdpbjo6aXNMb2NhbEhvc3RPckxvb3Bi
YWNrSVBBZGRyZXNzKHBhcnNlZFNvdXJjZS5ob3N0LnZhbHVlKSkKKyAgICAgICAgaWYgKCFzY2hl
bWVJc0luSHR0cEZhbWlseShwYXJzZWRTb3VyY2Uuc2NoZW1lKSB8fCAhU2VjdXJpdHlPcmlnaW46
OmlzTG9jYWxIb3N0T3JMb29wYmFja0lQQWRkcmVzcyhwYXJzZWRTb3VyY2UuaG9zdC52YWx1ZSkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuY3BwCmluZGV4
IDQxOTY1NzlhM2M3NDYxOWZlMzdkZGYwOTUzMjM2OGM4YjFjZDY3N2IuLjQzYzAzYmVlODQxNzNh
MDIyZTE4NDYxZDgwYjg4NWMxYmY5MDI4ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5jcHAKQEAgLTI1MSw3ICsyNTEsNyBAQCB2b2lkIExl
Z2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzSGFuZGxlZEJ5U2NoZW1lSGFu
ZGxlcihjb25zdCBTdHJpbgogYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1lSXNIYW5k
bGVkQnlTY2hlbWVIYW5kbGVyKFN0cmluZ1ZpZXcgc2NoZW1lKQogewogICAgIExvY2tlciBsb2Nr
ZXIgeyBzY2hlbWVSZWdpc3RyeUxvY2sgfTsKLSAgICByZXR1cm4gc2NoZW1lc0hhbmRsZWRCeVNj
aGVtZUhhbmRsZXIoKS5jb250YWlucyhzY2hlbWUudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsK
KyAgICByZXR1cm4gc2NoZW1lc0hhbmRsZWRCeVNjaGVtZUhhbmRsZXIoKS5jb250YWluczxTdHJp
bmdWaWV3SGFzaFRyYW5zbGF0b3I+KHNjaGVtZSk7CiB9CiAKIHN0YXRpYyBVUkxTY2hlbWVzTWFw
JiBzY2hlbWVzQWxsb3dpbmdEYXRhYmFzZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nKCkKQEAgLTI5
NiwxMyArMjk2LDEzIEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBhbHdheXNSZXZhbGlkYXRlZFNj
aGVtZXMoKQogICAgIHJldHVybiBzY2hlbWVzOwogfQogCi1ib29sIExlZ2FjeVNjaGVtZVJlZ2lz
dHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiti
b29sIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwoU3Ry
aW5nVmlldyBzY2hlbWUpCiB7CiAgICAgaWYgKHNjaGVtZS5pc051bGwoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHNjaGVtZVJlZ2lzdHJ5TG9jayB9Owot
ICAgIHJldHVybiBsb2NhbFVSTFNjaGVtZXMoKS5jb250YWlucyhzY2hlbWUpOworICAgIHJldHVy
biBsb2NhbFVSTFNjaGVtZXMoKS5jb250YWluczxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHNj
aGVtZSk7CiB9CiAKIHZvaWQgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1l
QXNOb0FjY2Vzcyhjb25zdCBTdHJpbmcmIHNjaGVtZSkKQEAgLTMxNCwxMyArMzE0LDEzIEBAIHZv
aWQgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25z
dCBTdHJpbmcmIHNjaGVtZSkKICAgICBzY2hlbWVzV2l0aFVuaXF1ZU9yaWdpbnMoKS5hZGQoc2No
ZW1lKTsKIH0KIAotYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hl
bWVBc05vQWNjZXNzKGNvbnN0IFN0cmluZyYgc2NoZW1lKQorYm9vbCBMZWdhY3lTY2hlbWVSZWdp
c3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vQWNjZXNzKFN0cmluZ1ZpZXcgc2NoZW1lKQog
ewogICAgIGlmIChzY2hlbWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IExvY2tlciBsb2NrZXIgeyBzY2hlbWVSZWdpc3RyeUxvY2sgfTsKLSAgICByZXR1cm4gc2NoZW1l
c1dpdGhVbmlxdWVPcmlnaW5zKCkuY29udGFpbnMoc2NoZW1lKTsKKyAgICByZXR1cm4gc2NoZW1l
c1dpdGhVbmlxdWVPcmlnaW5zKCkuY29udGFpbnM8U3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yPihz
Y2hlbWUpOwogfQogCiB2b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVt
ZUFzRGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0cmluZyYgc2NoZW1lKQpAQCAtMzMyLDEzICszMzIs
MTMgQEAgdm9pZCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3Bs
YXlJc29sYXRlZChjb25zdCBTdHJpbmcmIHNjaGUKICAgICBkaXNwbGF5SXNvbGF0ZWRVUkxTY2hl
bWVzKCkuYWRkKHNjaGVtZSk7CiB9CiAKLWJvb2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3Vs
ZFRyZWF0VVJMU2NoZW1lQXNEaXNwbGF5SXNvbGF0ZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiti
b29sIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzRGlzcGxheUlz
b2xhdGVkKFN0cmluZ1ZpZXcgc2NoZW1lKQogewogICAgIGlmIChzY2hlbWUuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIExvY2tlciBsb2NrZXIgeyBzY2hlbWVSZWdpc3Ry
eUxvY2sgfTsKLSAgICByZXR1cm4gZGlzcGxheUlzb2xhdGVkVVJMU2NoZW1lcygpLmNvbnRhaW5z
KHNjaGVtZSk7CisgICAgcmV0dXJuIGRpc3BsYXlJc29sYXRlZFVSTFNjaGVtZXMoKS5jb250YWlu
czxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHNjaGVtZSk7CiB9CiAKIHZvaWQgTGVnYWN5U2No
ZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUoY29uc3QgU3RyaW5nJiBzY2hl
bWUpCkBAIC0zNTAsMTMgKzM1MCwxMyBAQCB2b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdp
c3RlclVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0IFN0cmluZyYgc2NoZW1lKQogICAgIHNlY3VyZVNj
aGVtZXMoKS5hZGQoc2NoZW1lKTsKIH0KIAotYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hv
dWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKK2Jvb2wgTGVn
YWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNTZWN1cmUoU3RyaW5nVmll
dyBzY2hlbWUpCiB7CiAgICAgaWYgKHNjaGVtZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgTG9ja2VyIGxvY2tlciB7IHNjaGVtZVJlZ2lzdHJ5TG9jayB9OwotICAgIHJl
dHVybiBzZWN1cmVTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsKKyAgICByZXR1cm4gc2VjdXJl
U2NoZW1lcygpLmNvbnRhaW5zPFN0cmluZ1ZpZXdIYXNoVHJhbnNsYXRvcj4oc2NoZW1lKTsKIH0K
IAogdm9pZCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9j
dW1lbnQoY29uc3QgU3RyaW5nJiBzY2hlbWUpCkBAIC0zNjYsOSArMzY2LDkgQEAgdm9pZCBMZWdh
Y3lTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoY29uc3Qg
U3RyaW5nJiBzY2hlbWUKICAgICBlbXB0eURvY3VtZW50U2NoZW1lcygpLmFkZChzY2hlbWUpOwog
fQogCi1ib29sIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0
eURvY3VtZW50KGNvbnN0IFN0cmluZyYgc2NoZW1lKQorYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3Ry
eTo6c2hvdWxkTG9hZFVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChTdHJpbmdWaWV3IHNjaGVtZSkK
IHsKLSAgICByZXR1cm4gIXNjaGVtZS5pc051bGwoKSAmJiBlbXB0eURvY3VtZW50U2NoZW1lcygp
LmNvbnRhaW5zKHNjaGVtZSk7CisgICAgcmV0dXJuICFzY2hlbWUuaXNOdWxsKCkgJiYgZW1wdHlE
b2N1bWVudFNjaGVtZXMoKS5jb250YWluczxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHNjaGVt
ZSk7CiB9CiAKIHZvaWQgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNldERvbWFpblJlbGF4YXRpb25G
b3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFN0cmluZyYgc2NoZW1l
KQpAQCAtMzg3LDE0ICszODcsMTQgQEAgYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6aXNEb21h
aW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYKICAgICByZXR1
cm4gIXNjaGVtZS5pc051bGwoKSAmJiBzY2hlbWVzRm9yYmlkZGVuRnJvbURvbWFpblJlbGF4YXRp
b24oKS5jb250YWlucyhzY2hlbWUpOwogfQogCi1ib29sIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5Ojpj
YW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChjb25zdCBTdHJpbmcmIHNjaGVtZSkKK2Jvb2wgTGVn
YWN5U2NoZW1lUmVnaXN0cnk6OmNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KFN0cmluZ1ZpZXcg
c2NoZW1lKQogewogICAgIEFTU0VSVCghaXNJbk5ldHdvcmtQcm9jZXNzKCkpOwogICAgIGlmIChz
Y2hlbWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIExvY2tlciBsb2Nr
ZXIgeyBzY2hlbWVSZWdpc3RyeUxvY2sgfTsKLSAgICByZXR1cm4gY2FuRGlzcGxheU9ubHlJZkNh
blJlcXVlc3RTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsKKyAgICByZXR1cm4gY2FuRGlzcGxh
eU9ubHlJZkNhblJlcXVlc3RTY2hlbWVzKCkuY29udGFpbnM8U3RyaW5nVmlld0hhc2hUcmFuc2xh
dG9yPihzY2hlbWUpOwogfQogCiB2b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlckFz
Q2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoY29uc3QgU3RyaW5nJiBzY2hlbWUpCkBAIC00Mzks
MTAgKzQzOSwxMCBAQCB2b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVt
ZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUpCiAgICAgQ09SU0VuYWJsZWRTY2hl
bWVzKCkuYWRkKHNjaGVtZSk7CiB9CiAKLWJvb2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3Vs
ZFRyZWF0VVJMU2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBTdHJpbmcmIHNjaGVtZSkKK2Jvb2wg
TGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNDT1JTRW5hYmxlZChT
dHJpbmdWaWV3IHNjaGVtZSkKIHsKICAgICBBU1NFUlQoIWlzSW5OZXR3b3JrUHJvY2VzcygpKTsK
LSAgICByZXR1cm4gIXNjaGVtZS5pc051bGwoKSAmJiBDT1JTRW5hYmxlZFNjaGVtZXMoKS5jb250
YWlucyhzY2hlbWUpOworICAgIHJldHVybiAhc2NoZW1lLmlzTnVsbCgpICYmIENPUlNFbmFibGVk
U2NoZW1lcygpLmNvbnRhaW5zPFN0cmluZ1ZpZXdIYXNoVHJhbnNsYXRvcj4oc2NoZW1lKTsKIH0K
IAogVmVjdG9yPFN0cmluZz4gTGVnYWN5U2NoZW1lUmVnaXN0cnk6OmFsbFVSTFNjaGVtZXNSZWdp
c3RlcmVkQXNDT1JTRW5hYmxlZCgpCkBAIC00NjksMTMgKzQ2OSwxMyBAQCB2b2lkIExlZ2FjeVNj
aGVtZVJlZ2lzdHJ5OjpyZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNCeXBhc3NpbmdDb250ZW50
U2VjdXJpdHlQbwogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeUJ5cGFzc2luZ1NjaGVtZXMoKS5y
ZW1vdmUoc2NoZW1lKTsKIH0KIAotYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1lU2hv
dWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYgc2NoZW1lKQorYm9v
bCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1lU2hvdWxkQnlwYXNzQ29udGVudFNlY3VyaXR5
UG9saWN5KFN0cmluZ1ZpZXcgc2NoZW1lKQogewogICAgIGlmIChzY2hlbWUuaXNOdWxsKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIExvY2tlciBsb2NrZXIgeyBzY2hlbWVSZWdpc3Ry
eUxvY2sgfTsKLSAgICByZXR1cm4gQ29udGVudFNlY3VyaXR5UG9saWN5QnlwYXNzaW5nU2NoZW1l
cygpLmNvbnRhaW5zKHNjaGVtZSk7CisgICAgcmV0dXJuIENvbnRlbnRTZWN1cml0eVBvbGljeUJ5
cGFzc2luZ1NjaGVtZXMoKS5jb250YWluczxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHNjaGVt
ZSk7CiB9CiAKIHZvaWQgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNB
bHdheXNSZXZhbGlkYXRlZChjb25zdCBTdHJpbmcmIHNjaGVtZSkKQEAgLTQ4NSw5ICs0ODUsOSBA
QCB2b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzQWx3YXlzUmV2
YWxpZGF0ZWQoY29uc3QgU3RyaW5nJiBzYwogICAgIGFsd2F5c1JldmFsaWRhdGVkU2NoZW1lcygp
LmFkZChzY2hlbWUpOwogfQogCi1ib29sIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRBbHdh
eXNSZXZhbGlkYXRlVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lKQorYm9vbCBMZWdhY3lT
Y2hlbWVSZWdpc3RyeTo6c2hvdWxkQWx3YXlzUmV2YWxpZGF0ZVVSTFNjaGVtZShTdHJpbmdWaWV3
IHNjaGVtZSkKIHsKLSAgICByZXR1cm4gIXNjaGVtZS5pc051bGwoKSAmJiBhbHdheXNSZXZhbGlk
YXRlZFNjaGVtZXMoKS5jb250YWlucyhzY2hlbWUpOworICAgIHJldHVybiAhc2NoZW1lLmlzTnVs
bCgpICYmIGFsd2F5c1JldmFsaWRhdGVkU2NoZW1lcygpLmNvbnRhaW5zPFN0cmluZ1ZpZXdIYXNo
VHJhbnNsYXRvcj4oc2NoZW1lKTsKIH0KIAogdm9pZCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVn
aXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9uZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUpCkBA
IC01MDgsNyArNTA4LDcgQEAgYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkUGFydGl0
aW9uQ2FjaGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUKICAgICByZXR1cm4gY2Fj
aGVQYXJ0aXRpb25pbmdTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsKIH0KIAotYm9vbCBMZWdh
Y3lTY2hlbWVSZWdpc3RyeTo6aXNVc2VyRXh0ZW5zaW9uU2NoZW1lKGNvbnN0IFN0cmluZyYgc2No
ZW1lKQorYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6aXNVc2VyRXh0ZW5zaW9uU2NoZW1lKFN0
cmluZ1ZpZXcgc2NoZW1lKQogewogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIFNhZmFy
aSBoYXMgYWRvcHRlZCBXS1dlYlZpZXdDb25maWd1cmF0aW9uLl9jb3JzRGlzYWJsaW5nUGF0dGVy
bnMKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVnYWN5
U2NoZW1lUmVnaXN0cnkuaAppbmRleCBiMWVkODI5NWFlZTY3ZWM0NGY2NzVkZGYzZjQ2N2QwNDAy
YjVmNWJjLi43MDQ5NGY3M2JjYmU4NDc5ZjM2ODliNjEzODBmMjEwOTYzY2Q4MzZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmgKQEAgLTQwLDMy
ICs0MCwzMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0
ZXJVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYpOyAvLyBUaHJlYWQgc2FmZS4KICAgICBz
dGF0aWMgdm9pZCByZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNMb2NhbChjb25zdCBTdHJpbmcm
KTsgLy8gVGhyZWFkIHNhZmUuCiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91
bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJik7IC8vIFRocmVhZCBzYWZlLgor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZFRyZWF0VVJMU2NoZW1lQXNMb2Nh
bChTdHJpbmdWaWV3KTsgLy8gVGhyZWFkIHNhZmUuCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IGJvb2wgaXNCdWlsdGluU2NoZW1lKGNvbnN0IFN0cmluZyYpOwogICAgIAogICAgIC8vIFNlY3Vy
ZSBzY2hlbWVzIGRvIG5vdCB0cmlnZ2VyIG1peGVkIGNvbnRlbnQgd2FybmluZ3MuIEZvciBleGFt
cGxlLAogICAgIC8vIGh0dHBzIGFuZCBkYXRhIGFyZSBzZWN1cmUgc2NoZW1lcyBiZWNhdXNlIHRo
ZXkgY2Fubm90IGJlIGNvcnJ1cHRlZCBieQogICAgIC8vIGFjdGl2ZSBuZXR3b3JrIGF0dGFja2Vy
cy4KICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzU2Vj
dXJlKGNvbnN0IFN0cmluZyYpOyAvLyBUaHJlYWQgc2FmZS4KLSAgICBzdGF0aWMgYm9vbCBzaG91
bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0IFN0cmluZyYpOyAvLyBUaHJlYWQgc2FmZS4K
KyAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKFN0cmluZ1ZpZXcp
OyAvLyBUaHJlYWQgc2FmZS4KIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyVVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBTdHJpbmcmKTsgLy8gVGhyZWFkIHNhZmUuCi0g
ICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vQWNjZXNzKGNvbnN0IFN0cmlu
ZyYpOyAvLyBUaHJlYWQgc2FmZS4KKyAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVt
ZUFzTm9BY2Nlc3MoU3RyaW5nVmlldyk7IC8vIFRocmVhZCBzYWZlLgogCiAgICAgLy8gRGlzcGxh
eS1pc29sYXRlZCBzY2hlbWVzIGNhbiBvbmx5IGJlIGRpc3BsYXllZCAoaW4gdGhlIHNlbnNlIG9m
CiAgICAgLy8gU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXkpIGJ5IGRvY3VtZW50cyBmcm9tIHRo
ZSBzYW1lIHNjaGVtZS4KICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3RlclVS
TFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0cmluZyYpOyAvLyBUaHJlYWQgc2FmZS4K
LSAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNv
bnN0IFN0cmluZyYpOyAvLyBUaHJlYWQgc2FmZS4KKyAgICBzdGF0aWMgYm9vbCBzaG91bGRUcmVh
dFVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKFN0cmluZ1ZpZXcpOyAvLyBUaHJlYWQgc2FmZS4K
IAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0
eURvY3VtZW50KGNvbnN0IFN0cmluZyYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29s
IHNob3VsZExvYWRVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoY29uc3QgU3RyaW5nJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkTG9hZFVSTFNjaGVtZUFzRW1wdHlEb2N1
bWVudChTdHJpbmdWaWV3KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldERv
bWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0
IFN0cmluZyYpOwogICAgIHN0YXRpYyBib29sIGlzRG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZv
clVSTFNjaGVtZShjb25zdCBTdHJpbmcmKTsKIAogICAgIC8vIFN1Y2ggc2NoZW1lcyBzaG91bGQg
ZGVsZWdhdGUgdG8gU2VjdXJpdHlPcmlnaW46OmNhblJlcXVlc3QgZm9yIGFueSBVUkwKICAgICAv
LyBwYXNzZWQgdG8gU2VjdXJpdHlPcmlnaW46OmNhbkRpc3BsYXkuCi0gICAgc3RhdGljIGJvb2wg
Y2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoY29uc3QgU3RyaW5nJiBzY2hlbWUpOyAvLyBUaHJl
YWQgc2FmZS4KKyAgICBzdGF0aWMgYm9vbCBjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChTdHJp
bmdWaWV3IHNjaGVtZSk7IC8vIFRocmVhZCBzYWZlLgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyB2b2lkIHJlZ2lzdGVyQXNDYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChjb25zdCBTdHJpbmcm
IHNjaGVtZSk7IC8vIFRocmVhZCBzYWZlLgogCiAgICAgLy8gU2NoZW1lcyBhZ2FpbnN0IHdoaWNo
IGphdmFzY3JpcHQ6IFVSTHMgc2hvdWxkIG5vdCBiZSBhbGxvd2VkIHRvIHJ1biAoc3RvcApAQCAt
ODAsNyArODAsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBBbGxvdyBub24tSFRUUCBzY2hlbWVzIHRv
IGJlIHJlZ2lzdGVyZWQgdG8gYWxsb3cgQ09SUyByZXF1ZXN0cy4KICAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5n
JiBzY2hlbWUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZFRyZWF0VVJM
U2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBTdHJpbmcmIHNjaGVtZSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRVUkxTY2hlbWVBc0NPUlNFbmFibGVkKFN0cmlu
Z1ZpZXcgc2NoZW1lKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmVjdG9yPFN0cmluZz4g
YWxsVVJMU2NoZW1lc1JlZ2lzdGVyZWRBc0NPUlNFbmFibGVkKCk7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzSGFuZGxlZEJ5U2NoZW1lSGFuZGxl
cihjb25zdCBTdHJpbmcmKTsKQEAgLTkwLDE3ICs5MCwxNyBAQCBwdWJsaWM6CiAgICAgLy8gQ29u
dGVudCBTZWN1cml0eSBQb2xpY3kuCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVn
aXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShjb25zdCBTdHJp
bmcmIHNjaGVtZSk7IC8vIFRocmVhZCBzYWZlLgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIHJlbW92ZVVSTFNjaGVtZVJlZ2lzdGVyZWRBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBv
bGljeShjb25zdCBTdHJpbmcmIHNjaGVtZSk7IC8vIFRocmVhZCBzYWZlLgotICAgIHN0YXRpYyBi
b29sIHNjaGVtZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeShjb25zdCBTdHJpbmcm
IHNjaGVtZSk7IC8vIFRocmVhZCBzYWZlLgorICAgIHN0YXRpYyBib29sIHNjaGVtZVNob3VsZEJ5
cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeShTdHJpbmdWaWV3IHNjaGVtZSk7IC8vIFRocmVhZCBz
YWZlLgogCiAgICAgLy8gU2NoZW1lcyB3aG9zZSByZXNwb25zZXMgc2hvdWxkIGFsd2F5cyBiZSBy
ZXZhbGlkYXRlZC4KICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNj
aGVtZUFzQWx3YXlzUmV2YWxpZGF0ZWQoY29uc3QgU3RyaW5nJik7Ci0gICAgc3RhdGljIGJvb2wg
c2hvdWxkQWx3YXlzUmV2YWxpZGF0ZVVSTFNjaGVtZShjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0
aWMgYm9vbCBzaG91bGRBbHdheXNSZXZhbGlkYXRlVVJMU2NoZW1lKFN0cmluZ1ZpZXcpOwogCiAg
ICAgLy8gU2NoZW1lcyB3aG9zZSByZXF1ZXN0cyBzaG91bGQgYmUgcGFydGl0aW9uZWQgaW4gdGhl
IGNhY2hlCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVB
c0NhY2hlUGFydGl0aW9uZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUpOyAvLyBUaHJlYWQgc2FmZS4K
ICAgICBzdGF0aWMgYm9vbCBzaG91bGRQYXJ0aXRpb25DYWNoZUZvclVSTFNjaGVtZShjb25zdCBT
dHJpbmcmIHNjaGVtZSk7IC8vIFRocmVhZCBzYWZlLgogCi0gICAgc3RhdGljIGJvb2wgaXNVc2Vy
RXh0ZW5zaW9uU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKKyAgICBzdGF0aWMgYm9vbCBp
c1VzZXJFeHRlbnNpb25TY2hlbWUoU3RyaW5nVmlldyBzY2hlbWUpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHVibGlj
U3VmZml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdWJsaWNTdWZmaXguaAppbmRleCBh
MGUwZTRkOWZjODlmOTdiNjkwYTBiZmQ2YTUyODhlNmUxYjVmNDA4Li41Mzc4NWRkYzhjZjA2ZDRi
NTIyMmIwODIyZGNjNDgyZjUxYmYwM2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QdWJsaWNTdWZmaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QdWJsaWNT
dWZmaXguaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdFQkNP
UkVfRVhQT1JUIGJvb2wgaXNQdWJsaWNTdWZmaXgoY29uc3QgU3RyaW5nJiBkb21haW4pOworV0VC
Q09SRV9FWFBPUlQgYm9vbCBpc1B1YmxpY1N1ZmZpeChTdHJpbmdWaWV3IGRvbWFpbik7CiBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihjb25zdCBTdHJp
bmcmIGRvbWFpbik7CiBTdHJpbmcgZGVjb2RlSG9zdE5hbWUoY29uc3QgU3RyaW5nJiBkb21haW4p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUHVibGljU3VmZml4
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1B1YmxpY1N1ZmZpeE1hYy5tbQpp
bmRleCBhMWJmYzIxYjU5ZTQwZjhjYmIxZmIzOTYxZWVjMzgwYTE5ZWIzMzI1Li4xYmQzNTI3MTVl
YmFjNTQyZTQwYjFjMzM0MWRlZGYyYjgwZWM5NGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvUHVibGljU3VmZml4TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QdWJsaWNTdWZmaXhNYWMubW0KQEAgLTM2LDEwICszNiw5IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotYm9vbCBpc1B1YmxpY1N1ZmZpeChjb25zdCBTdHJpbmcmIGRvbWFp
bikKK2Jvb2wgaXNQdWJsaWNTdWZmaXgoU3RyaW5nVmlldyBkb21haW4pCiB7Ci0gICAgLy8gRXhw
bGljaXRseSBjYXN0IHRoZSBkb21haW4gdG8gYSBOU1N0cmluZyBiZWZvcmUgY2FsbGluZyBkZWNv
ZGVIb3N0TmFtZSgpIHNvIHdlIGdldCBhIE5TU3RyaW5nIGJhY2sgaW5zdGVhZCBvZiBhIFN0cmlu
Zy4KLSAgICBOU1N0cmluZyAqaG9zdCA9IGRlY29kZUhvc3ROYW1lKChOU1N0cmluZyAqKWRvbWFp
bik7CisgICAgTlNTdHJpbmcgKmhvc3QgPSBkZWNvZGVIb3N0TmFtZShkb21haW4uY3JlYXRlTlNT
dHJpbmcoKS5nZXQoKSk7CiAgICAgcmV0dXJuIGhvc3QgJiYgX0NGSG9zdElzRG9tYWluVG9wTGV2
ZWwoKF9fYnJpZGdlIENGU3RyaW5nUmVmKWhvc3QpOwogfQogCkBAIC03MSw3ICs3MCw3IEBAIFN0
cmluZyB0b3BQcml2YXRlbHlDb250cm9sbGVkRG9tYWluKGNvbnN0IFN0cmluZyYgZG9tYWluKQog
CiAgICAgICAgIHNpemVfdCBzZXBhcmF0b3JQb3NpdGlvbjsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBsYWJlbFN0YXJ0ID0gMDsgKHNlcGFyYXRvclBvc2l0aW9uID0gbG93ZXJjYXNlRG9tYWluLmZp
bmQoJy4nLCBsYWJlbFN0YXJ0KSkgIT0gbm90Rm91bmQ7IGxhYmVsU3RhcnQgPSBzZXBhcmF0b3JQ
b3NpdGlvbiArIDEpIHsKLSAgICAgICAgICAgIGlmIChpc1B1YmxpY1N1ZmZpeChsb3dlcmNhc2VE
b21haW4uc3Vic3RyaW5nKHNlcGFyYXRvclBvc2l0aW9uICsgMSkpKQorICAgICAgICAgICAgaWYg
KGlzUHVibGljU3VmZml4KFN0cmluZ1ZpZXcobG93ZXJjYXNlRG9tYWluKS5zdWJzdHJpbmcoc2Vw
YXJhdG9yUG9zaXRpb24gKyAxKSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGxvd2VyY2FzZURv
bWFpbi5zdWJzdHJpbmcobGFiZWxTdGFydCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIFN0
cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9i
UmVnaXN0cnlJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJl
Z2lzdHJ5SW1wbC5jcHAKaW5kZXggMzUxNTFiYTY2ZjNiMmM0ZWZhMWY2OWY2NmM0MjU0YzI4NGQ0
ZDUwYy4uYTUzMTA2MDdhMzA0OTk5NTNlNDk1ZGFlNjM0NWY4ZTUyZmRmMDcyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3RyeUltcGwuY3Bw
CkBAIC0yMzAsNyArMjMwLDcgQEAgQmxvYkRhdGEqIEJsb2JSZWdpc3RyeUltcGw6OmdldEJsb2JE
YXRhRnJvbVVSTChjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgIGlmICh1cmwuaGFzRnJhZ21lbnRJZGVudGlmaWVyKCkpCi0gICAgICAgIHJl
dHVybiBtX2Jsb2JzLmdldCh1cmwudmlld1dpdGhvdXRGcmFnbWVudElkZW50aWZpZXIoKS50b1N0
cmluZ1dpdGhvdXRDb3B5aW5nKCkpOworICAgICAgICByZXR1cm4gbV9ibG9icy5nZXQ8U3RyaW5n
Vmlld0hhc2hUcmFuc2xhdG9yPih1cmwudmlld1dpdGhvdXRGcmFnbWVudElkZW50aWZpZXIoKSk7
CiAgICAgcmV0dXJuIG1fYmxvYnMuZ2V0KHVybC5zdHJpbmcoKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcAppbmRleCAw
Y2VjODgzYjgzOTRlZDRmNjIxOWRjODgyNjk1MTYzYzZjODEyNGMxLi5lOTMwMmMzZTdhOWZjNWY2
ZTE1YjJlNGE1OWU3MzFkZWZhYzliZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCkBAIC0zNTAsNyArMzUwLDcgQEAgc3Rh
dGljIFN0cmluZyBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZShjb25zdCBDb29raWVKYXIq
IGNvb2tpZUphciwgY29uc3QgUmUKICAgICByZXR1cm4gY29va2llSmFyLT5jb29raWVSZXF1ZXN0
SGVhZGVyRmllbGRWYWx1ZShyZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCksIFNhbWVTaXRl
SW5mbzo6Y3JlYXRlKHJlcXVlc3QpLCByZXF1ZXN0LnVybCgpLCBzdGQ6Om51bGxvcHQsIHN0ZDo6
bnVsbG9wdCwgcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpID8gSW5jbHVkZVNlY3Vy
ZUNvb2tpZXM6OlllcyA6IEluY2x1ZGVTZWN1cmVDb29raWVzOjpObykuZmlyc3Q7CiB9CiAKLXN0
YXRpYyBTdHJpbmcgaGVhZGVyVmFsdWVGb3JWYXJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgU3RyaW5nJiBoZWFkZXJOYW1lLCBGdW5jdGlvbjxTdHJpbmcoKT4mJiBjb29r
aWVSZXF1ZXN0SGVhZGVyRmllbGRWYWx1ZUZ1bmN0aW9uKQorc3RhdGljIFN0cmluZyBoZWFkZXJW
YWx1ZUZvclZhcnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdHJpbmdWaWV3IGhl
YWRlck5hbWUsIEZ1bmN0aW9uPFN0cmluZygpPiYmIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlRnVuY3Rpb24pCiB7CiAgICAgLy8gRXhwbGljaXQgaGFuZGxpbmcgZm9yIGNvb2tpZXMgaXMg
bmVlZGVkIGJlY2F1c2UgdGhleSBhcmUgYWRkZWQgbWFnaWNhbGx5IGJ5IHRoZSBuZXR3b3JraW5n
IGxheWVyLgogICAgIC8vIEZJWE1FOiBUaGUgdmFsdWUgbWlnaHQgaGF2ZSBjaGFuZ2VkIGJldHdl
ZW4gbWFraW5nIHRoZSByZXF1ZXN0IGFuZCByZXRyaWV2aW5nIHRoZSBjb29raWUgaGVyZS4KQEAg
LTM2MSw3ICszNjEsNyBAQCBzdGF0aWMgU3RyaW5nIGhlYWRlclZhbHVlRm9yVmFyeShjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgaAogICAgIHJldHVybiByZXF1
ZXN0Lmh0dHBIZWFkZXJGaWVsZChoZWFkZXJOYW1lKTsKIH0KIAotc3RhdGljIFZlY3RvcjxzdGQ6
OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzSW50ZXJu
YWwoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIEZ1bmN0aW9uPFN0cmluZyhjb25z
dCBTdHJpbmcmIGhlYWRlck5hbWUpPiYmIGhlYWRlclZhbHVlRm9yVmFyeUZ1bmN0aW9uKQorc3Rh
dGljIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVl
c3RIZWFkZXJzSW50ZXJuYWwoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIEZ1bmN0
aW9uPFN0cmluZyhTdHJpbmdWaWV3IGhlYWRlck5hbWUpPiYmIGhlYWRlclZhbHVlRm9yVmFyeUZ1
bmN0aW9uKQogewogICAgIGF1dG8gdmFyeVZhbHVlID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxk
KEhUVFBIZWFkZXJOYW1lOjpWYXJ5KTsKICAgICBpZiAodmFyeVZhbHVlLmlzRW1wdHkoKSkKQEAg
LTM2OSw4ICszNjksOCBAQCBzdGF0aWMgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+
IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnNJbnRlcm5hbChjbwogCiAgICAgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGhlYWRlcnM7CiAgICAgZm9yIChhdXRvIHZhcnlIZWFk
ZXJOYW1lIDogU3RyaW5nVmlldyh2YXJ5VmFsdWUpLnNwbGl0KCcsJykpIHsKLSAgICAgICAgYXV0
byBoZWFkZXJOYW1lID0gdmFyeUhlYWRlck5hbWUuc3RyaXBXaGl0ZVNwYWNlKCkudG9TdHJpbmco
KTsKLSAgICAgICAgaGVhZGVycy5hcHBlbmQoc3RkOjpwYWlyIHsgaGVhZGVyTmFtZSwgaGVhZGVy
VmFsdWVGb3JWYXJ5RnVuY3Rpb24oaGVhZGVyTmFtZSkgfSk7CisgICAgICAgIGF1dG8gaGVhZGVy
TmFtZSA9IHZhcnlIZWFkZXJOYW1lLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAgICBoZWFkZXJz
LmFwcGVuZChzdGQ6OnBhaXIgeyBoZWFkZXJOYW1lLnRvU3RyaW5nKCksIGhlYWRlclZhbHVlRm9y
VmFyeUZ1bmN0aW9uKGhlYWRlck5hbWUpIH0pOwogICAgIH0KICAgICByZXR1cm4gaGVhZGVyczsK
IH0KQEAgLTM3OSw3ICszNzksNyBAQCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4g
Y29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVycyhOZXR3b3JrU3RvcmFnZVNlcwogewogICAgIGlm
ICghc3RvcmFnZVNlc3Npb24pCiAgICAgICAgIHJldHVybiB7IH07Ci0gICAgcmV0dXJuIGNvbGxl
Y3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnNJbnRlcm5hbChyZXNwb25zZSwgWyZdIChjb25zdCBTdHJp
bmcmIGhlYWRlck5hbWUpIHsKKyAgICByZXR1cm4gY29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVy
c0ludGVybmFsKHJlc3BvbnNlLCBbJl0gKFN0cmluZ1ZpZXcgaGVhZGVyTmFtZSkgewogICAgICAg
ICByZXR1cm4gaGVhZGVyVmFsdWVGb3JWYXJ5KHJlcXVlc3QsIGhlYWRlck5hbWUsIFsmXSB7CiAg
ICAgICAgICAgICByZXR1cm4gY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoKnN0b3JhZ2VT
ZXNzaW9uLCByZXF1ZXN0KTsKICAgICAgICAgfSk7CkBAIC0zODgsNyArMzg4LDcgQEAgVmVjdG9y
PHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMo
TmV0d29ya1N0b3JhZ2VTZXMKIAogVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+IGNv
bGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29uc3QgQ29va2llSmFyKiBjb29raWVKYXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCiB7Ci0gICAgcmV0dXJuIGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnNJbnRlcm5h
bChyZXNwb25zZSwgWyZdIChjb25zdCBTdHJpbmcmIGhlYWRlck5hbWUpIHsKKyAgICByZXR1cm4g
Y29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVyc0ludGVybmFsKHJlc3BvbnNlLCBbJl0gKFN0cmlu
Z1ZpZXcgaGVhZGVyTmFtZSkgewogICAgICAgICByZXR1cm4gaGVhZGVyVmFsdWVGb3JWYXJ5KHJl
cXVlc3QsIGhlYWRlck5hbWUsIFsmXSB7CiAgICAgICAgICAgICByZXR1cm4gY29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUoY29va2llSmFyLCByZXF1ZXN0KTsKICAgICAgICAgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmNwcAppbmRl
eCBiZDUxNmNmNmM2NWYyZGI0MDUxOGYwY2QxZDdlOTdlOGY3NGUzODUwLi5hNmNkY2JiNGQ0NTFi
NzNlODY3YWE1MDVjMWJlODBlMWYxMDc5NTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgSFRUUEhl
YWRlck1hcCBIVFRQSGVhZGVyTWFwOjppc29sYXRlZENvcHkoKSAmJgogICAgIHJldHVybiBtYXA7
CiB9CiAKLVN0cmluZyBIVFRQSGVhZGVyTWFwOjpnZXQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25z
dAorU3RyaW5nIEhUVFBIZWFkZXJNYXA6OmdldChTdHJpbmdWaWV3IG5hbWUpIGNvbnN0CiB7CiAg
ICAgSFRUUEhlYWRlck5hbWUgaGVhZGVyTmFtZTsKICAgICBpZiAoZmluZEhUVFBIZWFkZXJOYW1l
KG5hbWUsIGhlYWRlck5hbWUpKQpAQCAtNjcsNyArNjcsNyBAQCBTdHJpbmcgSFRUUEhlYWRlck1h
cDo6Z2V0KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKICAgICByZXR1cm4gZ2V0VW5jb21tb25I
ZWFkZXIobmFtZSk7CiB9CiAKLVN0cmluZyBIVFRQSGVhZGVyTWFwOjpnZXRVbmNvbW1vbkhlYWRl
cihjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CitTdHJpbmcgSFRUUEhlYWRlck1hcDo6Z2V0VW5j
b21tb25IZWFkZXIoU3RyaW5nVmlldyBuYW1lKSBjb25zdAogewogICAgIGF1dG8gaW5kZXggPSBt
X3VuY29tbW9uSGVhZGVycy5maW5kSWYoWyZdKGF1dG8mIGhlYWRlcikgewogICAgICAgICByZXR1
cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShoZWFkZXIua2V5LCBuYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmgKaW5kZXggMWZlMTlkMzEx
OGIxM2JhYThiOWNiMDRiM2Y3ZGU2OTliZDgwZmY3ZC4uNmRhNzAzZmY0ZDZjNDFjZTUyOWUxMTE4
YTNkNzBiN2Q1MjBmN2ZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9IVFRQSGVhZGVyTWFwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9IVFRQSGVhZGVyTWFwLmgKQEAgLTE1NCw3ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIG1f
dW5jb21tb25IZWFkZXJzLnNocmlua1RvRml0KCk7CiAgICAgfQogCi0gICAgV0VCQ09SRV9FWFBP
UlQgU3RyaW5nIGdldChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBnZXQoU3RyaW5nVmlldyBuYW1lKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5n
JiB2YWx1ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKQEAgLTIxNCw3ICsyMTQsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgdm9pZCBzZXRVbmNvbW1vbkhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYgdmFsdWUpOwotICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBnZXRVbmNv
bW1vbkhlYWRlcihjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JU
IFN0cmluZyBnZXRVbmNvbW1vbkhlYWRlcihTdHJpbmdWaWV3IG5hbWUpIGNvbnN0OwogCiAgICAg
Q29tbW9uSGVhZGVyc1ZlY3RvciBtX2NvbW1vbkhlYWRlcnM7CiAgICAgVW5jb21tb25IZWFkZXJz
VmVjdG9yIG1fdW5jb21tb25IZWFkZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBQYXJzZXJzLmNwcAppbmRleCBjMTIyYzIxYjFjZTA5NjQzM2FkYzg5YjlkNmU2
NDkxOTIzZDgyYTMzLi5lN2IzNzNiZTRjNGRiMzA3OTZkNzc1NWIyNmQxOWQ2MmEwM2ZhMjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBQYXJzZXJzLmNwcApA
QCAtOTM5LDcgKzkzOSw3IEBAIGJvb2wgaXNDcm9zc09yaWdpblNhZmVIZWFkZXIoSFRUUEhlYWRl
ck5hbWUgbmFtZSwgY29uc3QgSFRUUEhlYWRlclNldCYgYWNjZXNzQ29uCiAgICAgZGVmYXVsdDoK
ICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIHJldHVybiBhY2Nlc3NDb250cm9sRXhwb3NlSGVh
ZGVyU2V0LmNvbnRhaW5zKGh0dHBIZWFkZXJOYW1lU3RyaW5nKG5hbWUpLnRvU3RyaW5nV2l0aG91
dENvcHlpbmcoKSk7CisgICAgcmV0dXJuIGFjY2Vzc0NvbnRyb2xFeHBvc2VIZWFkZXJTZXQuY29u
dGFpbnM8QVNDSUlDYXNlSW5zZW5zaXRpdmVTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KGh0dHBI
ZWFkZXJOYW1lU3RyaW5nKG5hbWUpKTsKIH0KIAogYm9vbCBpc0Nyb3NzT3JpZ2luU2FmZUhlYWRl
cihjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEhUVFBIZWFkZXJTZXQmIGFjY2Vzc0NvbnRyb2xF
eHBvc2VIZWFkZXJTZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcAppbmRleCBhNDJiY2UxNzMwNjIyNGY3OGEzY2Vl
YzYwZDQzOGRiYmNlMjlkNDJjLi5mZjQ5NjEwY2ZjZTMyNmExZjg4YjM4ODkzNDIxYjM2NzFhZDFm
MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXF1ZXN0QmFzZS5jcHAKQEAgLTMwOCwxMCArMzA4LDEwIEBAIGNvbnN0IEhUVFBIZWFk
ZXJNYXAmIFJlc291cmNlUmVxdWVzdEJhc2U6Omh0dHBIZWFkZXJGaWVsZHMoKSBjb25zdAogICAg
IHJldHVybiBtX2h0dHBIZWFkZXJGaWVsZHM7IAogfQogCi1TdHJpbmcgUmVzb3VyY2VSZXF1ZXN0
QmFzZTo6aHR0cEhlYWRlckZpZWxkKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK1N0cmluZyBS
ZXNvdXJjZVJlcXVlc3RCYXNlOjpodHRwSGVhZGVyRmllbGQoU3RyaW5nVmlldyBuYW1lKSBjb25z
dAogewotICAgIHVwZGF0ZVJlc291cmNlUmVxdWVzdCgpOyAKLSAgICAKKyAgICB1cGRhdGVSZXNv
dXJjZVJlcXVlc3QoKTsKKwogICAgIHJldHVybiBtX2h0dHBIZWFkZXJGaWVsZHMuZ2V0KG5hbWUp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVxdWVzdEJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXF1ZXN0QmFzZS5oCmluZGV4IDIzNTMwODJhM2ExNWU5YmVmZTAyNDg1NGRiMmI5ZDA4MDhh
ZDAxNjYuLjVmNDU3NjgwOGNhYjZlMTJmMzIyNTcwMWQwMmI2MjU5Yjg5Zjc2NmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFz
ZS5oCkBAIC05OCw3ICs5OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBI
VFRQSGVhZGVyTWFwJiBodHRwSGVhZGVyRmllbGRzKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRIVFRQSGVhZGVyRmllbGRzKEhUVFBIZWFkZXJNYXApOwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgU3RyaW5nIGh0dHBIZWFkZXJGaWVsZChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0
OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBodHRwSGVhZGVyRmllbGQoU3RyaW5nVmlldyBu
YW1lKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaHR0cEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhUVFBIZWFk
ZXJGaWVsZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lLCBjb25z
dCBTdHJpbmcmIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKaW5kZXggMGVmOTg4MTViZWM5ZTBhN2Ri
Y2YxODU1MTI5MjRjYWMzOTFmY2I0MC4uYjM0MWYwMjQ3Nzc1NThiM2FiZWQ5NWU3ZjljZDE5MWEz
Y2VjYjc2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKQEAgLTQ2Myw3ICs0NjMsNyBAQCB2b2lkIFJlc291
cmNlUmVzcG9uc2VCYXNlOjpzYW5pdGl6ZUhUVFBIZWFkZXJGaWVsZHNBY2NvcmRpbmdUb1RhaW50
aW5nKCkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBtX2h0dHBIZWFkZXJGaWVsZHMu
Y29tbW9uSGVhZGVycygpLnJlbW92ZUFsbE1hdGNoaW5nKFsmY29yc1NhZmVIZWFkZXJTZXRdKGF1
dG8mIGhlYWRlcikgewotICAgICAgICAgICAgcmV0dXJuICFpc1NhZmVDcm9zc09yaWdpblJlc3Bv
bnNlSGVhZGVyKGhlYWRlci5rZXkpICYmICFjb3JzU2FmZUhlYWRlclNldC5jb250YWlucyhodHRw
SGVhZGVyTmFtZVN0cmluZyhoZWFkZXIua2V5KS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOwor
ICAgICAgICAgICAgcmV0dXJuICFpc1NhZmVDcm9zc09yaWdpblJlc3BvbnNlSGVhZGVyKGhlYWRl
ci5rZXkpICYmICFjb3JzU2FmZUhlYWRlclNldC5jb250YWluczxBU0NJSUNhc2VJbnNlbnNpdGl2
ZVN0cmluZ1ZpZXdIYXNoVHJhbnNsYXRvcj4oaHR0cEhlYWRlck5hbWVTdHJpbmcoaGVhZGVyLmtl
eSkpOwogICAgICAgICB9KTsKICAgICAgICAgbV9odHRwSGVhZGVyRmllbGRzLnVuY29tbW9uSGVh
ZGVycygpLnJlbW92ZUFsbE1hdGNoaW5nKFsmY29yc1NhZmVIZWFkZXJTZXRdKGF1dG8mIGhlYWRl
cikgeyByZXR1cm4gIWNvcnNTYWZlSGVhZGVyU2V0LmNvbnRhaW5zKGhlYWRlci5rZXkpOyB9KTsK
ICAgICAgICAgYnJlYWs7CkBAIC01MDMsNyArNTAzLDcgQEAgYm9vbCBSZXNvdXJjZVJlc3BvbnNl
QmFzZTo6aXNIVFRQMDkoKSBjb25zdAogICAgIHJldHVybiBtX2h0dHBWZXJzaW9uLnN0YXJ0c1dp
dGgoIkhUVFAvMC45Iik7CiB9CiAKLVN0cmluZyBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6aHR0cEhl
YWRlckZpZWxkKGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QKK1N0cmluZyBSZXNvdXJjZVJlc3Bv
bnNlQmFzZTo6aHR0cEhlYWRlckZpZWxkKFN0cmluZ1ZpZXcgbmFtZSkgY29uc3QKIHsKICAgICBs
YXp5SW5pdChDb21tb25GaWVsZHNPbmx5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCmluZGV4IDI2MmU1MzE4MGQ2
ZGQ3YzRkMTMzZGRjMWRhZjU2NTJiZDZmMzFjNzYuLmM0YWNjNDc4NDA4ZGMzYzMzNmRjZDUyMmM0
Y2RhZTFjZmY3MDlmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKQEAgLTExOSw3ICsxMTksNyBAQCBwdWJsaWM6
CiAgICAgZW51bSBjbGFzcyBTYW5pdGl6YXRpb25UeXBlIHsgUmVkaXJlY3Rpb24sIFJlbW92ZUNv
b2tpZXMsIENyb3NzT3JpZ2luU2FmZSB9OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2FuaXRp
emVIVFRQSGVhZGVyRmllbGRzKFNhbml0aXphdGlvblR5cGUpOwogCi0gICAgU3RyaW5nIGh0dHBI
ZWFkZXJGaWVsZChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OworICAgIFN0cmluZyBodHRwSGVh
ZGVyRmllbGQoU3RyaW5nVmlldyBuYW1lKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJp
bmcgaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldEhUVFBIZWFkZXJGaWVsZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYgdmFsdWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0SFRUUEhlYWRlckZpZWxk
KEhUVFBIZWFkZXJOYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJsaWNTdWZmaXhDdXJsLmNwcApp
bmRleCBmOWIwMGUxODQ1MDliZjdiOGM1YzBhYzMxZGUxMmMzMmIyZTUyZjMxLi5lZjg5NjIyNGZh
MDdhYTVmZGExZmE4MmE4YmNjZjFmNmFkNzczMDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHVibGljU3VmZml4Q3VybC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1B1YmxpY1N1ZmZpeEN1cmwuY3BwCkBAIC0z
MywxNCArMzMsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIGlzUHVibGljU3Vm
Zml4KGNvbnN0IFN0cmluZyYgZG9tYWluKQorYm9vbCBpc1B1YmxpY1N1ZmZpeChTdHJpbmdWaWV3
IGRvbWFpbikKIHsKICAgICBpZiAoZG9tYWluLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgY29uc3QgcHNsX2N0eF90KiBwc2wgPSBwc2xfYnVpbHRpbigpOwogICAgIEFT
U0VSVChwc2wpOwotICAgIGJvb2wgcmV0ID0gcHNsX2lzX3B1YmxpY19zdWZmaXgyKHBzbCwgZG9t
YWluLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUoKS51dGY4KCkuZGF0YSgpLCBQU0xf
VFlQRV9BTlkgfCBQU0xfVFlQRV9OT19TVEFSX1JVTEUpOworICAgIGJvb2wgcmV0ID0gcHNsX2lz
X3B1YmxpY19zdWZmaXgyKHBzbCwgZG9tYWluLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKS5jb252
ZXJ0VG9Mb3dlcmNhc2VXaXRob3V0TG9jYWxlKCkudXRmOCgpLmRhdGEoKSwgUFNMX1RZUEVfQU5Z
IHwgUFNMX1RZUEVfTk9fU1RBUl9SVUxFKTsKICAgICByZXR1cm4gcmV0OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwCmluZGV4IGRhOTVkMjZjN2JmMTMyZDhkODMxZDhkMjQ3OWE0NjM4OWZkZjc0
NDguLjI5NWFkMDJiMjgwZTg4MGI5MTY5ZDhlMGYwMTY3ODg4YzU0YWZlNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwCkBAIC0zNDAsNyArMzQwLDcgQEAgc3RkOjpvcHRpb25hbDxSZXNvdXJjZUVy
cm9yPiBTb3VwTmV0d29ya1Nlc3Npb246OmNoZWNrVExTRXJyb3JzKGNvbnN0IFVSTCYgcmVxdWUK
ICAgICBpZiAobV9pZ25vcmVUTFNFcnJvcnMgfHwgIXRsc0Vycm9ycykKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIAotICAgIGF1dG8gaXQgPSBhbGxvd2VkQ2VydGlmaWNhdGVzKCkuZmlu
ZChyZXF1ZXN0VVJMLmhvc3QoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOworICAgIGF1dG8g
aXQgPSBhbGxvd2VkQ2VydGlmaWNhdGVzKCkuZmluZDxBU0NJSUNhc2VJbnNlbnNpdGl2ZVN0cmlu
Z1ZpZXdIYXNoVHJhbnNsYXRvcj4ocmVxdWVzdFVSTC5ob3N0KCkpOwogICAgIGlmIChpdCAhPSBh
bGxvd2VkQ2VydGlmaWNhdGVzKCkuZW5kKCkgJiYgaXQtPnZhbHVlLmNvbnRhaW5zKGNlcnRpZmlj
YXRlKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc291cC9QdWJsaWNTdWZmaXhTb3VwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NvdXAvUHVibGljU3VmZml4U291cC5jcHAKaW5kZXggOTY2MDlkMDhkOWFi
OTNkMDY4MTAxZmJkYTQ5OTUwMjNhMTJmZmM1MC4uMGUyMmFhNzI5ZGQ2MmJhOGFjNTYxOWY0NmY0
MGY4OTVkYzE1YmM2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291cC9Q
dWJsaWNTdWZmaXhTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3VwL1B1
YmxpY1N1ZmZpeFNvdXAuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotYm9vbCBpc1B1YmxpY1N1ZmZpeChjb25zdCBTdHJpbmcmIGRvbWFpbikKK2Jvb2wgaXNQ
dWJsaWNTdWZmaXgoU3RyaW5nVmlldyBkb21haW4pCiB7CiAgICAgaWYgKGRvbWFpbi5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NjaGVtZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1NjaGVtZVJlZ2lzdHJ5LmNwcAppbmRleCA0MzQ4MGI5YzdiYTE0
OTI4NzVlNmUyNmNlYjEzMmEzM2ZlNzE1ZmZlLi41ZTdkMmUxMDFjM2E1YjFkZmZkNDhkNzJlZTVl
NGRlNThiYmRhYzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTY2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2NoZW1lUmVnaXN0cnkuY3BwCkBAIC0zNyw3ICszNyw3IEBAIGJvb2wgTmV0d29y
a1NjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoU3RyaW5n
VmlldyBzY2hlbWUpCiB7CiAgICAgaWYgKHNjaGVtZS5zdGFydHNXaXRoKCJodHRwIikpCiAgICAg
ICAgIHJldHVybiBzY2hlbWUubGVuZ3RoKCkgPT0gNCB8fCAoc2NoZW1lLmxlbmd0aCgpID09IDUg
JiYgc2NoZW1lWzRdID09ICdzJyk7Ci0gICAgcmV0dXJuIG1fY29yc0VuYWJsZWRTY2hlbWVzLmNv
bnRhaW5zKHNjaGVtZS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOworICAgIHJldHVybiBtX2Nv
cnNFbmFibGVkU2NoZW1lcy5jb250YWluczxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHNjaGVt
ZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNw
cAppbmRleCBiNzVjNzg3NGY4NWRhYmM5YzE2NzJmZTQwMDY3OGQ1OTZkNzI1M2ZmLi5lMzM1ZDg3
OWRlMTkxYjk3YzM5NWRhNzU1MTNmOTY5YjU4Y2I3YTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNh
Y2hlLmNwcApAQCAtOTAsOCArOTAsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdXBkYXRlVmFyeUlu
Zm9ybWF0aW9uKFJlY29yZEluZm9ybWF0aW9uJiByZWNvcmRJbmZvcm1hdGlvbiwgYwogICAgIHZh
cnlWYWx1ZS5zcGxpdCgnLCcsIFsmXShTdHJpbmdWaWV3IHZpZXcpIHsKICAgICAgICAgaWYgKCFy
ZWNvcmRJbmZvcm1hdGlvbi5oYXNWYXJ5U3RhciAmJiBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hU
VFBTcGFjZXModmlldykgPT0gIioiKQogICAgICAgICAgICAgcmVjb3JkSW5mb3JtYXRpb24uaGFz
VmFyeVN0YXIgPSB0cnVlOwotICAgICAgICBTdHJpbmcgaGVhZGVyTmFtZSA9IHZpZXcudG9TdHJp
bmcoKTsKLSAgICAgICAgcmVjb3JkSW5mb3JtYXRpb24udmFyeUhlYWRlcnMuYWRkKGhlYWRlck5h
bWUsIHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkKGhlYWRlck5hbWUpKTsKKyAgICAgICAgcmVjb3Jk
SW5mb3JtYXRpb24udmFyeUhlYWRlcnMuYWRkKHZpZXcudG9TdHJpbmcoKSwgcmVxdWVzdC5odHRw
SGVhZGVyRmllbGQodmlldykpOwogICAgIH0pOwogCiAgICAgaWYgKHJlY29yZEluZm9ybWF0aW9u
Lmhhc1ZhcnlTdGFyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IDVkYzRjYjZlNWIwN2JiMmRjZWI5
MmQ5Y2Q0NDlhODg4ZTI4NTZkMWQuLjc1YjFkYmFmYzZiOGQ5ZmFkYjAxZDY4ZjQyZDM2Mzk0MTc3
NGJhMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya1Nlc3Npb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nv
Y29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0KQEAgLTExNjgsMTIgKzExNjgsMTIgQEAgc3RhdGlj
IFJldGFpblB0cjxOU0RpY3Rpb25hcnk+IHByb3h5RGljdGlvbmFyeShjb25zdCBVUkwmIGh0dHBQ
cm94eSwgY29uc3QgVVJMJgogCiAgICAgYXV0byBkaWN0aW9uYXJ5ID0gYWRvcHROUyhbW05TTXV0
YWJsZURpY3Rpb25hcnkgYWxsb2NdIGluaXRdKTsKICAgICBpZiAoaHR0cFByb3h5LmlzVmFsaWQo
KSkgewotICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6aHR0cFByb3h5Lmhvc3QoKS50b1N0
cmluZygpIGZvcktleTooTlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0eUhUVFBQcm94eUhvc3Rd
OworICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6aHR0cFByb3h5Lmhvc3QoKS5jcmVhdGVO
U1N0cmluZygpLmdldCgpIGZvcktleTooTlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0eUhUVFBQ
cm94eUhvc3RdOwogICAgICAgICBpZiAoYXV0byBwb3J0ID0gaHR0cFByb3h5LnBvcnQoKSkKICAg
ICAgICAgICAgIFtkaWN0aW9uYXJ5IHNldE9iamVjdDpAKCpwb3J0KSBmb3JLZXk6KE5TU3RyaW5n
ICopa0NGU3RyZWFtUHJvcGVydHlIVFRQUHJveHlQb3J0XTsKICAgICB9CiAgICAgaWYgKGh0dHBz
UHJveHkuaXNWYWxpZCgpKSB7Ci0gICAgICAgIFtkaWN0aW9uYXJ5IHNldE9iamVjdDpodHRwc1By
b3h5Lmhvc3QoKS50b1N0cmluZygpIGZvcktleTooTlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0
eUhUVFBTUHJveHlIb3N0XTsKKyAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2JqZWN0Omh0dHBzUHJv
eHkuaG9zdCgpLmNyZWF0ZU5TU3RyaW5nKCkuZ2V0KCkgZm9yS2V5OihOU1N0cmluZyAqKWtDRlN0
cmVhbVByb3BlcnR5SFRUUFNQcm94eUhvc3RdOwogICAgICAgICBpZiAoYXV0byBwb3J0ID0gaHR0
cHNQcm94eS5wb3J0KCkpCiAgICAgICAgICAgICBbZGljdGlvbmFyeSBzZXRPYmplY3Q6QCgqcG9y
dCkgZm9yS2V5OihOU1N0cmluZyAqKWtDRlN0cmVhbVByb3BlcnR5SFRUUFNQcm94eVBvcnRdOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrRGF0YVRhc2tTb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9O
ZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAppbmRleCBlNjdmN2VkMjliYzUyZWFjOTI2ZmVhNzU2ZTdh
NThhZjVjYzYxYTU3Li5hZWYzMTI1NDJmODZmMTU4NDU5NzY4MTk5MTBhM2E1YWEwYmQzOTIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFU
YXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdv
cmtEYXRhVGFza1NvdXAuY3BwCkBAIC0xNTcxLDcgKzE1NzEsNyBAQCBib29sIE5ldHdvcmtEYXRh
VGFza1NvdXA6OnNob3VsZEFsbG93SFNUU1BvbGljeVNldHRpbmcoKSBjb25zdAogI2lmIEVOQUJM
RShQVUJMSUNfU1VGRklYX0xJU1QpCiAgICAgcmV0dXJuIGlzVG9wTGV2ZWxOYXZpZ2F0aW9uKCkK
ICAgICAgICAgfHwgbV9jdXJyZW50UmVxdWVzdC51cmwoKS5ob3N0KCkgPT0gbV9jdXJyZW50UmVx
dWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLmhvc3QoKQotICAgICAgICB8fCBpc1B1YmxpY1N1
ZmZpeChtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLmhvc3QoKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5n
KCkpOworICAgICAgICB8fCBpc1B1YmxpY1N1ZmZpeChtX2N1cnJlbnRSZXF1ZXN0LnVybCgpLmhv
c3QoKSk7CiAjZWxzZQogICAgIHJldHVybiBpc1RvcExldmVsTmF2aWdhdGlvbigpCiAgICAgICAg
IHx8IG1fY3VycmVudFJlcXVlc3QudXJsKCkuaG9zdCgpID09IG1fY3VycmVudFJlcXVlc3QuZmly
c3RQYXJ0eUZvckNvb2tpZXMoKS5ob3N0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAppbmRleCA5MDczNjk2YTI1ZGM5ZTkxNWIzMjVkN2Q2YzM5ZGYzMjkxZTNmOWUz
Li44NTViM2E3ZDJlMDViMGEyNmM4MzY4NDFlOWRiYzE2NjAzNjhkZjI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU1MzksNyArNTUzOSw3IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFJlZjxXZWJQcm9j
ZXNzUHJveHk+JiYgcHJvY2VzCiAgICAgLy8gT3RoZXIgcG9ydHMgZG8gbm90IGltcGxlbWVudCBX
ZWJQYWdlOjpwbGF0Zm9ybUNhbkhhbmRsZVJlcXVlc3QoKS4KICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICAvLyBTYW5kYm94ZWQgaWZyYW1lcyBzaG91bGQgYmUgYWxsb3dlZCB0byBvcGVuIGV4dGVy
bmFsIGFwcHMgdmlhIGN1c3RvbSBwcm90b2NvbHMgdW5sZXNzIGV4cGxpY2l0ZWx5IGFsbG93ZWQg
KGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2hhbmQtb2ZmLXRvLWV4dGVybmFsLXNvZnR3
YXJlKS4KLSAgICBib29sIGNhbkhhbmRsZVJlcXVlc3QgPSBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5j
YW5IYW5kbGVSZXF1ZXN0IHx8IG1fdXJsU2NoZW1lSGFuZGxlcnNCeVNjaGVtZS5jb250YWlucyhy
ZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKKyAgICBi
b29sIGNhbkhhbmRsZVJlcXVlc3QgPSBuYXZpZ2F0aW9uQWN0aW9uRGF0YS5jYW5IYW5kbGVSZXF1
ZXN0IHx8IG1fdXJsU2NoZW1lSGFuZGxlcnNCeVNjaGVtZS5jb250YWluczxTdHJpbmdWaWV3SGFz
aFRyYW5zbGF0b3I+KHJlcXVlc3QudXJsKCkucHJvdG9jb2woKSk7CiAgICAgaWYgKCFjYW5IYW5k
bGVSZXF1ZXN0ICYmICFkZXN0aW5hdGlvbkZyYW1lSW5mby0+aXNNYWluRnJhbWUoKSAmJiAhZnJh
bWVTYW5kYm94QWxsb3dzT3BlbmluZ0V4dGVybmFsQ3VzdG9tUHJvdG9jb2xzKG5hdmlnYXRpb25B
Y3Rpb25EYXRhLmVmZmVjdGl2ZVNhbmRib3hGbGFncywgISFuYXZpZ2F0aW9uQWN0aW9uRGF0YS51
c2VyR2VzdHVyZVRva2VuSWRlbnRpZmllcikpIHsKICAgICAgICAgaWYgKCFzb3VyY2VGcmFtZUlu
Zm8gfHwgIW1fcHJlZmVyZW5jZXMtPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCkgfHwgIVF1aXJr
czo6c2hvdWxkQWxsb3dOYXZpZ2F0aW9uVG9DdXN0b21Qcm90b2NvbFdpdGhvdXRVc2VyR2VzdHVy
ZShyZXF1ZXN0LnVybCgpLnByb3RvY29sKCksIHNvdXJjZUZyYW1lSW5mby0+c2VjdXJpdHlPcmln
aW4oKSkpIHsKICAgICAgICAgICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xPR19FUlJPUihQcm9j
ZXNzLCAiSWdub3JpbmcgcmVxdWVzdCB0byBsb2FkIHRoaXMgbWFpbiByZXNvdXJjZSBiZWNhdXNl
IGl0IGhhcyBhIGN1c3RvbSBwcm90b2NvbCBhbmQgY29tZXMgZnJvbSBhIHNhbmRib3hlZCBpZnJh
bWUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcAppbmRleCA0MDgwODNjOTczNzcwOWY4MmZmMGFiNzljODIyMzIyZDIx
YzhhOTM4Li5iMTFjNThmZWVjMDJlMGMyNzYxMDIyYjc0MzczYTI4N2FmODk5YmQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgYm9vbCBXZWJMb2FkZXJTdHJhdGVneTo6dHJ5TG9h
ZGluZ1VzaW5nVVJMU2NoZW1lSGFuZGxlcihSZXNvdXJjZUxvYWRlciYgcmVzb3VyY2UKICAgICBp
ZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8qIGhhbmRsZXIg
PSB3ZWJQYWdlLT51cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKHJlc291cmNlTG9hZGVyLnJlcXVl
c3QoKS51cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7CisgICAgYXV0
byogaGFuZGxlciA9IHdlYlBhZ2UtPnVybFNjaGVtZUhhbmRsZXJGb3JTY2hlbWUocmVzb3VyY2VM
b2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sKCkpOwogICAgIGlmICghaGFuZGxlcikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC02MzMsNyArNjMzLDcgQEAgc3RkOjpvcHRpb25hbDxX
ZWJMb2FkZXJTdHJhdGVneTo6U3luY0xvYWRSZXN1bHQ+IFdlYkxvYWRlclN0cmF0ZWd5Ojp0cnlM
b2FkaW5nU3kKICAgICBpZiAoIXdlYlBhZ2UpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CiAKLSAgICBhdXRvKiBoYW5kbGVyID0gd2ViUGFnZS0+dXJsU2NoZW1lSGFuZGxlckZvclNjaGVt
ZShyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsKKyAg
ICBhdXRvKiBoYW5kbGVyID0gd2ViUGFnZS0+dXJsU2NoZW1lSGFuZGxlckZvclNjaGVtZShyZXF1
ZXN0LnVybCgpLnByb3RvY29sKCkpOwogICAgIGlmICghaGFuZGxlcikKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNzBl
ZmNkMjRmM2RhMmIzZTgzYjQ0MDc3NjI4ZDYyNjAxZmE3YmU0NS4uNzg5MWNkNDJhYzcxNDRiMWEx
OGE2OWNhYmI4NjI4ZjVhNjg4ZmE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xMzg1LDEzICsxMzg1LDEzIEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNo
b3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmIC8qTUlNRVR5cGUqLykgY29uCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9u
RXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgLypVUkxTY2hlbWUqLykgY29uc3QKK2Jv
b2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1l
KFN0cmluZ1ZpZXcgLypVUkxTY2hlbWUqLykgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpn
ZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIC8qVVJMU2NoZW1lKi8p
IGNvbnN0CitTdHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBlRm9y
VVJMU2NoZW1lKFN0cmluZ1ZpZXcgLypVUkxTY2hlbWUqLykgY29uc3QKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggMWQzMGJjMzkzODNhZmZmMmNhOWMyODc1M2RkMmQ3ZWMyYjI2NDkxZS4uMzM4ZTU4
M2U0YzI1NDdlNjg1YTI1M2UyMDQ4MjlmOWM2ODY0ZWMyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmgKQEAgLTE4Niw4ICsxODYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuSGFuZGxl
UmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBmaW5hbDsKICAg
ICBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdCBmaW5h
bDsKICAgICBib29sIGNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmIE1JTUVUeXBl
KSBjb25zdCBmaW5hbDsKLSAgICBib29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1l
KGNvbnN0IFN0cmluZyYgVVJMU2NoZW1lKSBjb25zdCBmaW5hbDsKLSAgICBTdHJpbmcgZ2VuZXJh
dGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0IGZp
bmFsOworICAgIGJvb2wgcmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoU3RyaW5nVmll
dyBVUkxTY2hlbWUpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZv
clVSTFNjaGVtZShTdHJpbmdWaWV3IFVSTFNjaGVtZSkgY29uc3QgZmluYWw7CiAgICAgCiAgICAg
dm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBmaW5hbDsKICAgICB2b2lkIHNhdmVWaWV3U3RhdGVU
b0l0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUNhY2hlLmNwcAppbmRleCA3YWViYzQ2NGFm
NDRmZWI0OTdjOGUxNGIzYWNkYzMzMWM2NmNhYzk1Li4wYzE3YTYzMjFjNTI1OTc5NTc1YzNlMjkx
Njg1ODEyMTMzYjdlNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJDb29raWVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQ29va2llQ2FjaGUuY3BwCkBAIC00NiwxNCArNDYsMTQgQEAgYm9vbCBXZWJDb29r
aWVDYWNoZTo6aXNTdXBwb3J0ZWQoKQogCiBTdHJpbmcgV2ViQ29va2llQ2FjaGU6OmNvb2tpZXNG
b3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8mIHNhbWVTaXRl
SW5mbywgY29uc3QgVVJMJiB1cmwsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQYWdlSWRlbnRp
ZmllciBwYWdlSUQsIEluY2x1ZGVTZWN1cmVDb29raWVzIGluY2x1ZGVTZWN1cmVDb29raWVzKQog
ewotICAgIFN0cmluZyBob3N0ID0gdXJsLmhvc3QoKS50b1N0cmluZygpOwotICAgIGlmICghbV9o
b3N0c1dpdGhJbk1lbW9yeVN0b3JhZ2UuY29udGFpbnMoaG9zdCkpIHsKKyAgICBpZiAoIW1faG9z
dHNXaXRoSW5NZW1vcnlTdG9yYWdlLmNvbnRhaW5zPFN0cmluZ1ZpZXdIYXNoVHJhbnNsYXRvcj4o
dXJsLmhvc3QoKSkpIHsKKyAgICAgICAgYXV0byBob3N0ID0gdXJsLmhvc3QoKS50b1N0cmluZygp
OwogICAgICAgICBWZWN0b3I8Q29va2llPiBjb29raWVzOwogICAgICAgICBib29sIHN1YnNjcmli
ZVRvQ29va2llQ2hhbmdlTm90aWZpY2F0aW9ucyA9IHRydWU7Ci0gICAgICAgIGlmICghV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVj
dGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
RG9tQ29va2llc0Zvckhvc3QodXJsLmhvc3QoKS50b1N0cmluZygpLCBzdWJzY3JpYmVUb0Nvb2tp
ZUNoYW5nZU5vdGlmaWNhdGlvbnMpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6OkRvbUNvb2tpZXNGb3JIb3N0OjpSZXBseShjb29raWVzKSwgMCkpCisgICAgICAgIGlm
ICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6RG9tQ29va2llc0Zvckhvc3QoaG9zdCwgc3Vic2NyaWJlVG9Db29raWVDaGFuZ2VO
b3RpZmljYXRpb25zKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpE
b21Db29raWVzRm9ySG9zdDo6UmVwbHkoY29va2llcyksIDApKQogICAgICAgICAgICAgcmV0dXJu
IHsgfTsKICAgICAgICAgcHJ1bmVDYWNoZUlmTmVjZXNzYXJ5KCk7Ci0gICAgICAgIG1faG9zdHNX
aXRoSW5NZW1vcnlTdG9yYWdlLmFkZChob3N0KTsKKyAgICAgICAgbV9ob3N0c1dpdGhJbk1lbW9y
eVN0b3JhZ2UuYWRkKFdURk1vdmUoaG9zdCkpOwogICAgICAgICBmb3IgKGF1dG8mIGNvb2tpZSA6
IGNvb2tpZXMpCiAgICAgICAgICAgICBpbk1lbW9yeVN0b3JhZ2VTZXNzaW9uKCkuc2V0Q29va2ll
KGNvb2tpZSk7CiAgICAgfQpAQCAtNjIsOCArNjIsNyBAQCBTdHJpbmcgV2ViQ29va2llQ2FjaGU6
OmNvb2tpZXNGb3JET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
CiAKIHZvaWQgV2ViQ29va2llQ2FjaGU6OnNldENvb2tpZXNGcm9tRE9NKGNvbnN0IFVSTCYgZmly
c3RQYXJ0eSwgY29uc3QgU2FtZVNpdGVJbmZvJiBzYW1lU2l0ZUluZm8sIGNvbnN0IFVSTCYgdXJs
LCBGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBT
dHJpbmcmIGNvb2tpZVN0cmluZywgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcg
c2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcpCiB7Ci0gICAgU3RyaW5nIGhvc3Qg
PSB1cmwuaG9zdCgpLnRvU3RyaW5nKCk7Ci0gICAgaWYgKG1faG9zdHNXaXRoSW5NZW1vcnlTdG9y
YWdlLmNvbnRhaW5zKGhvc3QpKQorICAgIGlmIChtX2hvc3RzV2l0aEluTWVtb3J5U3RvcmFnZS5j
b250YWluczxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHVybC5ob3N0KCkpKQogICAgICAgICBp
bk1lbW9yeVN0b3JhZ2VTZXNzaW9uKCkuc2V0Q29va2llc0Zyb21ET00oZmlyc3RQYXJ0eSwgc2Ft
ZVNpdGVJbmZvLCB1cmwsIGZyYW1lSUQsIHBhZ2VJRCwgU2hvdWxkQXNrSVRQOjpObywgY29va2ll
U3RyaW5nLCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYTJlMWMxMzE1
MDUyN2EyZTAxNjUwNzEyYjQ5ZGU3ZWU5MWU2OTUwYy4uMTM2MzhmZjI5NjM5Y2U0M2ZkNjZiZDhl
OWUyYmVmYzVhOGIyZTBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTU4NzEsNyArNTg3MSw3IEBAIHZvaWQgV2ViUGFnZTo6cnVuTW9kYWwo
KQogCiBib29sIFdlYlBhZ2U6OmNhbkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hv
dWxkTG9hZFVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChyZXF1ZXN0LnVybCgpLnByb3RvY29sKCku
dG9TdHJpbmdXaXRob3V0Q29weWluZygpKSkKKyAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6
OnNob3VsZExvYWRVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQocmVxdWVzdC51cmwoKS5wcm90b2Nv
bCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAocmVxdWVzdC51cmwoKS5wcm90
b2NvbElzQmxvYigpKQpAQCAtNzIwNCw5ICs3MjA0LDkgQEAgdm9pZCBXZWJQYWdlOjpzZXRVc2VJ
Y29uTG9hZGluZ0NsaWVudChib29sIHVzZUljb25Mb2FkaW5nQ2xpZW50KQogICAgIHN0YXRpY19j
YXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Jj4oY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVy
KCkuY2xpZW50KCkpLnNldFVzZUljb25Mb2FkaW5nQ2xpZW50KHVzZUljb25Mb2FkaW5nQ2xpZW50
KTsKIH0KIAotV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5KiBXZWJQYWdlOjp1cmxTY2hlbWVIYW5k
bGVyRm9yU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lKQorV2ViVVJMU2NoZW1lSGFuZGxlclBy
b3h5KiBXZWJQYWdlOjp1cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKFN0cmluZ1ZpZXcgc2NoZW1l
KQogewotICAgIHJldHVybiBtX3NjaGVtZVRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwLmdldChz
Y2hlbWUpOworICAgIHJldHVybiBtX3NjaGVtZVRvVVJMU2NoZW1lSGFuZGxlclByb3h5TWFwLmdl
dDxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHNjaGVtZSk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6
c3RvcEFsbFVSTFNjaGVtZVRhc2tzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCAxZWU3NGY0ZDkyMzdlYTA4OWMyODlmYzExNGE2MDk3MzhjMzU5MjVj
Li5iZjQzZjVkODU0YWNjMzI1YzJlYWY1MTJmZGEwNzY2ZjYzYmNjMzA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjg4LDcgKzEyODgsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdJbWFnZUZvckVsZW1lbnQoV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudCYpOwogCi0gICAgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5KiB1
cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKGNvbnN0IFN0cmluZyYpOworICAgIFdlYlVSTFNjaGVt
ZUhhbmRsZXJQcm94eSogdXJsU2NoZW1lSGFuZGxlckZvclNjaGVtZShTdHJpbmdWaWV3KTsKICAg
ICB2b2lkIHN0b3BBbGxVUkxTY2hlbWVUYXNrcygpOwogCiAgICAgc3RkOjpvcHRpb25hbDxkb3Vi
bGU+IGNwdUxpbWl0KCkgY29uc3QgeyByZXR1cm4gbV9jcHVMaW1pdDsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggOGRmOTkzZjJkNzc1YjZjOTNkMmU4ZjA5OTBmNzJmODVmNjE4ZTU4
ZS4uYWU3NzExN2NhOTcxMTA3NTdiZjU3M2RjMGE5MGRiYjY4YzE5NWQwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC0xOTMsOCArMTkzLDggQEAgcHJpdmF0ZToKICAgICBib29sIGNh
bkhhbmRsZVJlcXVlc3QoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgV1RGOjpTdHJpbmcmIE1JTUVUeXBl
KSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBXVEY6
OlN0cmluZyYgTUlNRVR5cGUpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgcmVwcmVzZW50YXRpb25F
eGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgV1RGOjpTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QgZmlu
YWw7Ci0gICAgV1RGOjpTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoY29uc3Qg
V1RGOjpTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QgZmluYWw7CisgICAgYm9vbCByZXByZXNlbnRh
dGlvbkV4aXN0c0ZvclVSTFNjaGVtZShXVEY6OlN0cmluZ1ZpZXcgVVJMU2NoZW1lKSBjb25zdCBm
aW5hbDsKKyAgICBXVEY6OlN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShXVEY6
OlN0cmluZ1ZpZXcgVVJMU2NoZW1lKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgZnJhbWVMb2Fk
Q29tcGxldGVkKCkgZmluYWw7CiAgICAgdm9pZCBzYXZlVmlld1N0YXRlVG9JdGVtKFdlYkNvcmU6
Okhpc3RvcnlJdGVtJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDg3
YTVkNjU3ZjdiNzMzZDA3YzVkYjYwMWY2OTgxZjkwNDk3NzEzOTMuLmI4YmNhZTFlMTc0ODU2MWIw
MmFmZWRjMzg3ODQwZWNmMWNmYjc5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBA
IC0xMTg2LDE0ICsxMTg2LDE0IEBAIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNhblNob3dN
SU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmIE1JTUVUeXBlKSBjb25zdAogICAgIHJldHVybiBb
V2ViVmlldyBjYW5TaG93TUlNRVR5cGVBc0hUTUw6TUlNRVR5cGVdOwogfQogCi1ib29sIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpyZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBT
dHJpbmcmIFVSTFNjaGVtZSkgY29uc3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJl
c2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKFN0cmluZ1ZpZXcgVVJMU2NoZW1lKSBjb25zdAog
ewotICAgIHJldHVybiBbV2ViVmlldyBfcmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWU6
VVJMU2NoZW1lXTsKKyAgICByZXR1cm4gW1dlYlZpZXcgX3JlcHJlc2VudGF0aW9uRXhpc3RzRm9y
VVJMU2NoZW1lOlVSTFNjaGVtZS5jcmVhdGVOU1N0cmluZygpLmdldCgpXTsKIH0KIAotU3RyaW5n
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25z
dCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QKK1N0cmluZyBXZWJGcmFtZUxvYWRlckNsaWVudDo6
Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoU3RyaW5nVmlldyBVUkxTY2hlbWUpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIFtXZWJWaWV3IF9nZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZTpV
UkxTY2hlbWVdOworICAgIHJldHVybiBbV2ViVmlldyBfZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxT
Y2hlbWU6VVJMU2NoZW1lLmNyZWF0ZU5TU3RyaW5nKCkuZ2V0KCldOwogfQogCiB2b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRDb21wbGV0ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCmluZGV4IDEyNzBlNTdkZDk1YjBkMDAwM2I1ZTU2NzdkNDc0MmExMjU1MmQ4NTMu
LmZhOTUzNzI3MmY3MjZmZWQzM2M3YmYyMmVhM2ViMzg4YzM5NGNkMTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKQEAgLTgxNCwxMyArODE0LDEzIEBAIGJvb2wgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBj
b25zdAogICAgIHJldHVybiBtX3dlYkZyYW1lLT53ZWJWaWV3KCktPmNhblNob3dNSU1FVHlwZUFz
SFRNTChtaW1lVHlwZSk7CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2Vu
dGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgLypVUkxTY2hlbWUqLykgY29u
c3QKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJM
U2NoZW1lKFN0cmluZ1ZpZXcgLypVUkxTY2hlbWUqLykgY29uc3QKIHsKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIC8qVVJMU2No
ZW1lKi8pIGNvbnN0CitTdHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVU
eXBlRm9yVVJMU2NoZW1lKFN0cmluZ1ZpZXcgLypVUkxTY2hlbWUqLykgY29uc3QKIHsKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggNzkyNmZkMzY3MTgwOWU4Mzg0N2E0ODAzMWE4YjkwYzYzOGZhZjdl
NC4uNWI2Y2Y5ZDExMTdkM2Y3MDkxZTk5ZTFkNWU3ZmFjY2U0NzYyYzkzOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC0xNTQsOCArMTU0LDggQEAgcHVibGljOgogICAgIGJvb2wgY2Fu
SGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGNhblNob3dNSU1FVHlwZShjb25zdCBXVEY6OlN0cmluZyYgTUlNRVR5
cGUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgY2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0
IFdURjo6U3RyaW5nJiBNSU1FVHlwZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZXByZXNl
bnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBXVEY6OlN0cmluZyYgVVJMU2NoZW1lKSBj
b25zdCBvdmVycmlkZTsKLSAgICBXVEY6OlN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNj
aGVtZShjb25zdCBXVEY6OlN0cmluZyYgVVJMU2NoZW1lKSBjb25zdCBvdmVycmlkZTsKKyAgICBi
b29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKFdURjo6U3RyaW5nVmlldyBVUkxT
Y2hlbWUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdURjo6U3RyaW5nIGdlbmVyYXRlZE1JTUVUeXBl
Rm9yVVJMU2NoZW1lKFdURjo6U3RyaW5nVmlldyBVUkxTY2hlbWUpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBvdmVycmlkZTsKICAgICB2b2lkIHNhdmVW
aWV3U3RhdGVUb0l0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKSBvdmVycmlkZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456770</attachid>
            <date>2022-04-05 17:02:31 -0700</date>
            <delta_ts>2022-04-06 10:50:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238841-20220405170231.patch</filename>
            <type>text/plain</type>
            <size>84323</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
ZTA3ZjBlZTMzNzhlZjU2Yzc0ZTVkNzU3OWQ0NDVjOWU2YzdiMGNmLi4zNTllM2E5YTg3NGMxZjg5
YTUzNTYzNjE1M2Q3YTRhOGE4YmZlYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMi0wNC0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlZHVjZSBudW1iZXIgb2YgY29udmVyc2lvbnMgZnJvbSBTdHJpbmdWaWV3IHRv
IFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM4ODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBydW50aW1lL1JlZ0V4cC5oOgorICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cDoKKyAgICAgICAgKEpTQzo6c3Vic3RpdHV0ZUJhY2tyZWZlcmVuY2VzU2xvdyk6CisKIDIwMjIt
MDQtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCB1
bm5lY2Vzc2FyeSBTdHJpbmcgY29uc3RydWN0aW9ucyBpbiBJZGVudGlmaWVyc0ZhY3RvcnkuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9n
CmluZGV4IDMzMjBhYjE4OTJiYzcyMWYwOWI4OTFkZjg1OWU5YjY0NjQyOGFmMTIuLjVlNzc2MTc0
NmFlNGRlMDM1Mzc5ZDgwNGNlNmE5YjgyN2YyZjY5ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjItMDQtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1
Y2UgbnVtYmVyIG9mIGNvbnZlcnNpb25zIGZyb20gU3RyaW5nVmlldyB0byBTdHJpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODg0MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1VSTC5jcHA6
CisgICAgICAgIChXVEY6OmRlZmF1bHRQb3J0Rm9yUHJvdG9jb2wpOgorICAgICAgICAqIHd0Zi90
ZXh0L1N0cmluZ0hhc2guaDoKKyAgICAgICAgKFdURjo6U3RyaW5nVmlld0hhc2hUcmFuc2xhdG9y
OjpoYXNoKToKKyAgICAgICAgKFdURjo6U3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yOjplcXVhbCk6
CisKIDIwMjItMDQtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBNYXJrIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAxNmVmMzQwYTQ0MDMxMmJhN2MwZGNmNTYyNzVhMTk1YjZhYTdiMGI3Li5jYTE0ZmRl
YThlNDQ5NWVkNGNhYTE2OWI2ZDEwYTY0ZmRjZWVjMmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
OTggQEAKKzIwMjItMDQtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZWR1Y2UgbnVtYmVyIG9mIGNvbnZlcnNpb25zIGZyb20gU3RyaW5nVmlldyB0byBTdHJp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODg0
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9k
dWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DYWNo
ZUVuZ2luZTo6cXVlcnlDYWNoZU1hdGNoKToKKyAgICAgICAgKiBkb20vVmlld3BvcnRBcmd1bWVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dmlld3BvcnRFcnJvck1lc3NhZ2UpOgorICAgICAg
ICAqIGluc3BlY3Rvci9hZ2VudHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlRGVidWdnZXJBZ2VudDo6c291cmNlTWFwVVJMRm9yU2NyaXB0KToKKyAg
ICAgICAgKiBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnZhbGlkYXRlQ3Jvc3NPcmlnaW5SZWRpcmVjdGlvblVSTCk6CisgICAgICAgICogbG9h
ZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
OjpkaXNhbGxvd1dlYkFyY2hpdmUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRM
b2FkZXI6Om1heWJlTG9hZEVtcHR5KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRUaHJlYWRh
YmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRl
cjo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50
VGhyZWFkYWJsZUxvYWRlcjo6Y2hlY2tVUkxTY2hlbWVBc0NPUlNFbmFibGVkKToKKyAgICAgICAg
KiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVM
b2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkVtcHR5RnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBl
Rm9yVVJMU2NoZW1lIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNs
aWVudC5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IGxvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNSFRNTEFyY2hpdmU6OmNyZWF0ZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlOjpmcmVzaG5lc3NM
aWZldGltZSBjb25zdCk6CisgICAgICAgICogbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3Vw
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpsb2FkR1Jlc291cmNlKToK
KyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6dXNlclN0
eWxlU2hlZXRMb2NhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6YWxsb3dz
TG9hZEZyb21VUkwgY29uc3QpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2hvdWxkVHJlYXRBc1VuaXF1ZU9yaWdpbik6CisgICAgICAgIChX
ZWJDb3JlOjpzaG91bGRUcmVhdEFzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSk6CisgICAgICAgIChX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6aXNTZWN1cmUpOgorICAgICAgICAoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW46OmNhbkRpc3BsYXkgY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OmFsbG93T2JqZWN0RnJvbVNvdXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93Q2hpbGRGcmFtZUZyb21Tb3VyY2UgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd1Jlc291cmNlRnJv
bVNvdXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmFsbG93V29ya2VyRnJvbVNvdXJjZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
U2VjdXJpdHlQb2xpY3k6OmFsbG93U2NyaXB0RnJvbVNvdXJjZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U3R5bGVGcm9tU291cmNlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dDb25uZWN0
VG9Tb3VyY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5
OjphbGxvd0Jhc2VVUkkgY29uc3QpOgorICAgICAgICAqIHBhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeVNvdXJjZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NoZW1lSXNJbkh0dHBG
YW1pbHkpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5U291cmNlTGlz
dDo6aXNWYWxpZFNvdXJjZUZvckV4dGVuc2lvbk1vZGUpOgorICAgICAgICAqIHBsYXRmb3JtL0xl
Z2FjeVNjaGVtZVJlZ2lzdHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVNjaGVtZVJl
Z2lzdHJ5OjpzY2hlbWVJc0hhbmRsZWRCeVNjaGVtZUhhbmRsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNMb2NhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hl
bWVBc05vQWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5Ojpz
aG91bGRUcmVhdFVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRMb2FkVVJMU2NoZW1l
QXNFbXB0eURvY3VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5
OjpjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lT
Y2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0NPUlNFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91bGRCeXBhc3NDb250
ZW50U2VjdXJpdHlQb2xpY3kpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5U2NoZW1lUmVnaXN0
cnk6OnNob3VsZEFsd2F5c1JldmFsaWRhdGVVUkxTY2hlbWUpOgorICAgICAgICAoV2ViQ29yZTo6
TGVnYWN5U2NoZW1lUmVnaXN0cnk6OmlzVXNlckV4dGVuc2lvblNjaGVtZSk6CisgICAgICAgICog
cGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QdWJs
aWNTdWZmaXguaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUHVibGljU3VmZml4TWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6aXNQdWJsaWNTdWZmaXgpOgorICAgICAgICAoV2ViQ29yZTo6dG9w
UHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVnaXN0cnlJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJsb2JSZWdpc3RyeUltcGw6
OmdldEJsb2JEYXRhRnJvbVVSTCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9D
YWNoZVZhbGlkYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aGVhZGVyVmFsdWVGb3JWYXJ5
KToKKyAgICAgICAgKFdlYkNvcmU6OmNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnNJbnRlcm5h
bCk6CisgICAgICAgIChXZWJDb3JlOjpjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRUUEhlYWRlck1hcDo6Z2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUVFBI
ZWFkZXJNYXA6OmdldFVuY29tbW9uSGVhZGVyIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBIZWFkZXJNYXAuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBQ
YXJzZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ3Jvc3NPcmlnaW5TYWZlSGVhZGVyKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6aHR0cEhlYWRlckZpZWxkIGNvbnN0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjpzYW5pdGl6ZUhUVFBIZWFkZXJGaWVs
ZHNBY2NvcmRpbmdUb1RhaW50aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2VCYXNlOjpodHRwSGVhZGVyRmllbGQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUHVibGljU3VmZml4Q3VybC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc1B1YmxpY1N1ZmZp
eCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTb3VwTmV0d29ya1Nlc3Npb246OmNoZWNrVExTRXJyb3Jz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9zb3VwL1B1YmxpY1N1ZmZpeFNvdXAuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aXNQdWJsaWNTdWZmaXgpOgorCiAyMDIyLTA0LTA1ICBTdGVwaGFuIFN6YWJv
ICA8c3RlcGhhbi5zemFib0Bzb255LmNvbT4KIAogICAgICAgICBbUGxheVN0YXRpb25bIEZpeCBi
dWlsZCBicmVhayBhZnRlciByMjkyNDA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdiMTY5ZmQzZGUzZmFjNWJlMmEy
YWM2YTAxMTcxZjljNjA2ZDdiNjkuLmYwMjVhMGQyZGUxMjJjZTI5NjFiZmFmYWVmMzQ5YTgyMGEx
YmYyOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjItMDQtMDUgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWR1Y2UgbnVtYmVyIG9mIGNvbnZlcnNp
b25zIGZyb20gU3RyaW5nVmlldyB0byBTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODg0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NjaGVtZVJlZ2lz
dHJ5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1NjaGVtZVJlZ2lzdHJ5OjpzaG91bGRU
cmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJsZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlOjp1cGRhdGVWYXJ5SW5mb3JtYXRpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OnByb3h5RGlj
dGlvbmFyeSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tT
b3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6c2hvdWxkQWxs
b3dIU1RTUG9saWN5U2V0dGluZyBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnRyeUxv
YWRpbmdVc2luZ1VSTFNjaGVtZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJT
dHJhdGVneTo6dHJ5TG9hZGluZ1N5bmNocm9ub3VzbHlVc2luZ1VSTFNjaGVtZUhhbmRsZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRp
b25FeGlzdHNGb3JVUkxTY2hlbWUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxv
YWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUgY29uc3QpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29va2llQ2FjaGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJDb29raWVDYWNoZTo6Y29va2llc0ZvckRPTSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvb2tpZUNhY2hlOjpzZXRDb29raWVzRnJvbURPTSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjYW5IYW5k
bGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXJsU2NoZW1lSGFuZGxlckZv
clNjaGVtZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAy
Mi0wNC0wNSAgU3RlcGhhbiBTemFibyAgPHN0ZXBoYW4uc3phYm9Ac29ueS5jb20+CiAKICAgICAg
ICAgW1BsYXlTdGF0aW9uWyBGaXggYnVpbGQgYnJlYWsgYWZ0ZXIgcjI5MjQwOApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCmluZGV4IGQwZDBjZGE5ODU2OGQyYmIxYTAxMzUyODJhYWUxZGVjN2Jm
NDc4YWQuLjFmMjc1NzVlZDc2NjQ3ODg4MzM1NjkwZDE2ZmJlNDAzNjc2MjA5NTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMi0wNC0wNSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlZHVjZSBudW1iZXIgb2YgY29u
dmVyc2lvbnMgZnJvbSBTdHJpbmdWaWV3IHRvIFN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4ODQxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3Rz
Rm9yVVJMU2NoZW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5l
cmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZSBjb25zdCk6CisKIDIwMjItMDQtMDUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJrIFN0cmluZyhjb25zdCBjaGFy
KikgY29uc3RydWN0b3IgYXMgZXhwbGljaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRl
eCBmZDdjY2JiMjBkYTJjOTVlOTdlMWVhNGI1ZGYyOTM2ZjUyNjk1NzM1Li44NGFiYmQ4MDVkNjY1
MDFjNDE5Y2JhMmNiNDc0MjkzM2VjZjI4YzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDQtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBSZWR1Y2UgbnVtYmVyIG9mIGNvbnZlcnNpb25zIGZyb20gU3RyaW5n
VmlldyB0byBTdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzODg0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1l
IGNvbnN0KToKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1FVHlw
ZUZvclVSTFNjaGVtZSBjb25zdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaDoKKwogMjAyMi0wNC0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgV2luQ2Fpcm8gYnVpbGQgZml4IGFmdGVyIHIyOTI0
MDguCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHAuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oCmluZGV4IDhlOTNlNzY0YTU0
YzQ5M2Y5MGE0MWI5YjAxYjdlMmU3OGNhNWE5MTIuLjE0OWFhNmJhYzE5MGZkMTJmN2U3YzJjNjc1
Y2JiZjQzNmFlZjY4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cC5oCkBA
IC0xMDQsMTEgKzEwNCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3JhcmVEYXRhLT5t
X2NhcHR1cmVHcm91cE5hbWVzW2ldOwogICAgIH0KIAotICAgIHVuc2lnbmVkIHN1YnBhdHRlcm5G
b3JOYW1lKFN0cmluZyBncm91cE5hbWUpCisgICAgdW5zaWduZWQgc3VicGF0dGVybkZvck5hbWUo
U3RyaW5nVmlldyBncm91cE5hbWUpCiAgICAgewogICAgICAgICBpZiAoIW1fcmFyZURhdGEpCiAg
ICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgYXV0byBpdCA9IG1fcmFyZURhdGEtPm1fbmFt
ZWRHcm91cFRvUGFyZW5JbmRleC5maW5kKGdyb3VwTmFtZSk7CisgICAgICAgIGF1dG8gaXQgPSBt
X3JhcmVEYXRhLT5tX25hbWVkR3JvdXBUb1BhcmVuSW5kZXguZmluZDxTdHJpbmdWaWV3SGFzaFRy
YW5zbGF0b3I+KGdyb3VwTmFtZSk7CiAgICAgICAgIGlmIChpdCA9PSBtX3JhcmVEYXRhLT5tX25h
bWVkR3JvdXBUb1BhcmVuSW5kZXguZW5kKCkpCiAgICAgICAgICAgICByZXR1cm4gMDsKICAgICAg
ICAgcmV0dXJuIGl0LT52YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IGQxMDVhMGFkZTMxMTJmYmI2YjdkYjYxZWJiMjFi
ODUxNjRhN2YzZWEuLmRjY2RkMjhjNTNjM2E4ODVjZTc2YjZjZTRhNzZmMTVkOTIwMGY2OTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNw
cApAQCAtMjE1LDcgKzIxNSw3IEBAIHN0YXRpYyBORVZFUl9JTkxJTkUgdm9pZCBzdWJzdGl0dXRl
QmFja3JlZmVyZW5jZXNTbG93KFN0cmluZ0J1aWxkZXImIHJlc3VsdCwgU3RyCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIHVuc2lnbmVkIG5hbWVMZW5ndGggPSBjbG9z
aW5nQnJhY2tldCAtIGkgLSAyOwotICAgICAgICAgICAgdW5zaWduZWQgYmFja3JlZkluZGV4ID0g
cmVnLT5zdWJwYXR0ZXJuRm9yTmFtZShyZXBsYWNlbWVudC5zdWJzdHJpbmcoaSArIDIsIG5hbWVM
ZW5ndGgpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgdW5zaWduZWQgYmFja3JlZkluZGV4ID0g
cmVnLT5zdWJwYXR0ZXJuRm9yTmFtZShyZXBsYWNlbWVudC5zdWJzdHJpbmcoaSArIDIsIG5hbWVM
ZW5ndGgpKTsKIAogICAgICAgICAgICAgaWYgKCFiYWNrcmVmSW5kZXggfHwgYmFja3JlZkluZGV4
ID4gcmVnLT5udW1TdWJwYXR0ZXJucygpKSB7CiAgICAgICAgICAgICAgICAgYmFja3JlZlN0YXJ0
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9VUkwuY3BwCmluZGV4IGZhMTlhNjgyMjE0OTA5YzE5ZGEzN2RlOGU5M2M4OWRkNjZmZjQzYjku
LjJjMjIxZjRlYjE5OGViMTdlNGZhOTBmZDIzOWQ0ODhlNTRlYmVhZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1VSTC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVVJMLmNwcApAQCAtMzE3
LDcgKzMxNyw3IEBAIHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IGRlZmF1bHRQb3J0Rm9yUHJvdG9j
b2woU3RyaW5nVmlldyBwcm90b2NvbCkKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBk
ZWZhdWx0UG9ydEZvclByb3RvY29sTWFwRm9yVGVzdGluZ0xvY2sgfTsKICAgICAgICAgaWYgKGF1
dG8qIG92ZXJyaWRlTWFwID0gZGVmYXVsdFBvcnRGb3JQcm90b2NvbE1hcEZvclRlc3RpbmcoKSkg
ewotICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IG92ZXJyaWRlTWFwLT5maW5kKHByb3RvY29s
LnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7CisgICAgICAgICAgICBhdXRvIGl0ZXJhdG9yID0g
b3ZlcnJpZGVNYXAtPmZpbmQ8U3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yPihwcm90b2NvbCk7CiAg
ICAgICAgICAgICBpZiAoaXRlcmF0b3IgIT0gb3ZlcnJpZGVNYXAtPmVuZCgpKQogICAgICAgICAg
ICAgICAgIHJldHVybiBpdGVyYXRvci0+dmFsdWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSGFzaC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdIYXNoLmgKaW5kZXggZjAzMmYxYmRmMjFiNThkYmY2Y2U2MjU0NTQ0NmM0ODc2NWZhYzQxMC4u
NWM3N2UyYjQ1YzI5NzY4YjJjZjkwZjcyZmE2MGY5ZjQ4OTVmN2RlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9TdHJpbmdIYXNoLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdIYXNoLmgKQEAgLTIwMiw2ICsyMDIsMjAgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgICAg
IH0KICAgICB9OwogCisgICAgc3RydWN0IFN0cmluZ1ZpZXdIYXNoVHJhbnNsYXRvciB7CisgICAg
ICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKFN0cmluZ1ZpZXcga2V5KQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoa2V5LmlzOEJpdCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmdI
YXNoZXI6OmNvbXB1dGVIYXNoQW5kTWFza1RvcDhCaXRzKGtleS5jaGFyYWN0ZXJzOCgpLCBrZXku
bGVuZ3RoKCkpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZ0hhc2hlcjo6Y29tcHV0ZUhhc2hB
bmRNYXNrVG9wOEJpdHMoa2V5LmNoYXJhY3RlcnMxNigpLCBrZXkubGVuZ3RoKCkpOworICAgICAg
ICB9CisKKyAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgU3RyaW5nJiBhLCBTdHJpbmdW
aWV3IGIpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhID09IGI7CisgICAgICAgIH0K
KyAgICB9OworCiAgICAgLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gaW5jb3Jwb3JhdGUgdGhpcyBm
dW5jdGlvbmFsaXR5IGludG8gQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoIGFuZCBhbGxvdwogICAg
IC8vIGEgSGFzaE1hcCB3aG9zZSBrZXlzIGFyZSB0eXBlIFN0cmluZyB0byBwZXJmb3JtIG9wZXJh
dGlvbnMgd2hlbiBnaXZlbiBhIGtleSBvZiB0eXBlIFN0cmluZ1ZpZXcuCiAgICAgc3RydWN0IEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlU3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yIHsKQEAgLTIyOCwzICsy
NDIsNCBAQCB1c2luZyBXVEY6OkFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaDsKIHVzaW5nIFdURjo6
QVNDSUlDYXNlSW5zZW5zaXRpdmVTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I7CiB1c2luZyBXVEY6
OkFscmVhZHlIYXNoZWQ7CiB1c2luZyBXVEY6OlN0cmluZ0hhc2g7Cit1c2luZyBXVEY6OlN0cmlu
Z1ZpZXdIYXNoVHJhbnNsYXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y2FjaGUvRE9NQ2FjaGVFbmdpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9E
T01DYWNoZUVuZ2luZS5jcHAKaW5kZXggYjQyODI2NWMxMjc4MjU0N2MxYTBkZTQyZjlhNmYyMmNl
NDM4ZGQ1OS4uNTkwZWZhMDEwY2JjMDM3MTVmNWJlNDI4MDI0YWU2MjQ1N2EwMTQ5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZUVuZ2luZS5jcHAKQEAgLTEw
Miw4ICsxMDIsNyBAQCBib29sIHF1ZXJ5Q2FjaGVNYXRjaChjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgY2FjaAogICAgICAgICAgICAgaXNWYXJ5
aW5nID0gdHJ1ZTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBhdXRv
IG5hbWUgPSBuYW1lVmlldy50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCk7Ci0gICAgICAgIGlzVmFy
eWluZyA9IGNhY2hlZFJlcXVlc3QuaHR0cEhlYWRlckZpZWxkKG5hbWUpICE9IHJlcXVlc3QuaHR0
cEhlYWRlckZpZWxkKG5hbWUpOworICAgICAgICBpc1ZhcnlpbmcgPSBjYWNoZWRSZXF1ZXN0Lmh0
dHBIZWFkZXJGaWVsZChuYW1lVmlldykgIT0gcmVxdWVzdC5odHRwSGVhZGVyRmllbGQobmFtZVZp
ZXcpOwogICAgIH0pOwogCiAgICAgcmV0dXJuICFpc1Zhcnlpbmc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1ZpZXdwb3J0QXJndW1lbnRzLmNwcAppbmRleCA4MzYwNmE3YWY1MDRmZjA2M2JjMTgyZGY4NGZh
NjgyMTE2MmVjYzRlLi41MjVkZWU4ZDE0MDA2ODJlMmUxMGZkYTUzYTdjZTI2OGE1MTM3ZjRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVmlld3BvcnRBcmd1bWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9WaWV3cG9ydEFyZ3VtZW50cy5jcHAKQEAgLTQyNywxMCArNDI3
LDEwIEBAIHN0YXRpYyBTdHJpbmcgdmlld3BvcnRFcnJvck1lc3NhZ2UoVmlld3BvcnRFcnJvckNv
ZGUgZXJyb3JDb2RlLCBTdHJpbmdWaWV3IHJlcGxhCiB7CiAgICAgU3RyaW5nIG1lc3NhZ2UgPSB2
aWV3cG9ydEVycm9yTWVzc2FnZVRlbXBsYXRlKGVycm9yQ29kZSk7CiAgICAgaWYgKCFyZXBsYWNl
bWVudDEuaXNOdWxsKCkpCi0gICAgICAgIG1lc3NhZ2UucmVwbGFjZSgiJXJlcGxhY2VtZW50MSIs
IHJlcGxhY2VtZW50MS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOworICAgICAgICBtZXNzYWdl
LnJlcGxhY2UoIiVyZXBsYWNlbWVudDEiLCByZXBsYWNlbWVudDEpOwogICAgIC8vIEZJWE1FOiBU
aGlzIHdpbGwgZG8gdGhlIHdyb25nIHRoaW5nIGlmIHJlcGxhY2VtZW50MSBjb250YWlucyB0aGUg
c3Vic3RyaW5nICIlcmVwbGFjZW1lbnQyIi4KICAgICBpZiAoIXJlcGxhY2VtZW50Mi5pc051bGwo
KSkKLSAgICAgICAgbWVzc2FnZS5yZXBsYWNlKCIlcmVwbGFjZW1lbnQyIiwgcmVwbGFjZW1lbnQy
LnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7CisgICAgICAgIG1lc3NhZ2UucmVwbGFjZSgiJXJl
cGxhY2VtZW50MiIsIHJlcGxhY2VtZW50Mik7CiAKICAgICBpZiAoKGVycm9yQ29kZSA9PSBVbnJl
Y29nbml6ZWRWaWV3cG9ydEFyZ3VtZW50VmFsdWVFcnJvciB8fCBlcnJvckNvZGUgPT0gVHJ1bmNh
dGVkVmlld3BvcnRBcmd1bWVudFZhbHVlRXJyb3IpICYmIHJlcGxhY2VtZW50MS5jb250YWlucygn
OycpKQogICAgICAgICBtZXNzYWdlLmFwcGVuZCgiIE5vdGUgdGhhdCAnOycgaXMgbm90IGEgc2Vw
YXJhdG9yIGluIHZpZXdwb3J0IHZhbHVlcy4gVGhlIGxpc3Qgc2hvdWxkIGJlIGNvbW1hLXNlcGFy
YXRlZC4iX3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9w
YWdlL1BhZ2VEZWJ1Z2dlckFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvcGFnZS9QYWdlRGVidWdnZXJBZ2VudC5jcHAKaW5kZXggM2RkMWJhZjFlMzc1ZGI2MDU4ZjMy
ZGZlN2ZhYzU3MjNiY2Y3ZWI0MC4uMzFjYTc5ZDY0MTA1NjA0NTZjODlhNWJlNjI1NjBmYzMzZTA4
MmNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9wYWdlL1Bh
Z2VEZWJ1Z2dlckFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRz
L3BhZ2UvUGFnZURlYnVnZ2VyQWdlbnQuY3BwCkBAIC05NCwxNyArOTQsMTcgQEAgdm9pZCBQYWdl
RGVidWdnZXJBZ2VudDo6aW50ZXJuYWxEaXNhYmxlKGJvb2wgaXNCZWluZ0Rlc3Ryb3llZCkKIAog
U3RyaW5nIFBhZ2VEZWJ1Z2dlckFnZW50Ojpzb3VyY2VNYXBVUkxGb3JTY3JpcHQoY29uc3QgSlND
OjpEZWJ1Z2dlcjo6U2NyaXB0JiBzY3JpcHQpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gc291cmNlTWFwSFRUUEhlYWRlcihNQUtFX1NUQVRJQ19TVFJJTkdfSU1QTCgiU291
cmNlTWFwIikpOwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHNvdXJjZU1hcEhU
VFBIZWFkZXJEZXByZWNhdGVkKE1BS0VfU1RBVElDX1NUUklOR19JTVBMKCJYLVNvdXJjZU1hcCIp
KTsKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8gc291cmNlTWFwSFRUUEhlYWRlciA9ICJTb3Vy
Y2VNYXAiX3M7CisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHNvdXJjZU1hcEhUVFBIZWFkZXJE
ZXByZWNhdGVkID0gIlgtU291cmNlTWFwIl9zOwogCiAgICAgaWYgKCFzY3JpcHQudXJsLmlzRW1w
dHkoKSkgewogICAgICAgICBDYWNoZWRSZXNvdXJjZSogcmVzb3VyY2UgPSBJbnNwZWN0b3JQYWdl
QWdlbnQ6OmNhY2hlZFJlc291cmNlKCZtX2luc3BlY3RlZFBhZ2UubWFpbkZyYW1lKCksIFVSTCh7
IH0sIHNjcmlwdC51cmwpKTsKICAgICAgICAgaWYgKHJlc291cmNlKSB7Ci0gICAgICAgICAgICBT
dHJpbmcgc291cmNlTWFwSGVhZGVyID0gcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZp
ZWxkKHNvdXJjZU1hcEhUVFBIZWFkZXIpOworICAgICAgICAgICAgU3RyaW5nIHNvdXJjZU1hcEhl
YWRlciA9IHJlc291cmNlLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChTdHJpbmdWaWV3IHsg
c291cmNlTWFwSFRUUEhlYWRlciB9KTsKICAgICAgICAgICAgIGlmICghc291cmNlTWFwSGVhZGVy
LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gc291cmNlTWFwSGVhZGVyOwogCi0g
ICAgICAgICAgICBzb3VyY2VNYXBIZWFkZXIgPSByZXNvdXJjZS0+cmVzcG9uc2UoKS5odHRwSGVh
ZGVyRmllbGQoc291cmNlTWFwSFRUUEhlYWRlckRlcHJlY2F0ZWQpOworICAgICAgICAgICAgc291
cmNlTWFwSGVhZGVyID0gcmVzb3VyY2UtPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKFN0cmlu
Z1ZpZXcgeyBzb3VyY2VNYXBIVFRQSGVhZGVyRGVwcmVjYXRlZCB9KTsKICAgICAgICAgICAgIGlm
ICghc291cmNlTWFwSGVhZGVyLmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gc291
cmNlTWFwSGVhZGVyOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
cm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwCmluZGV4IDkyMjNlMDQ0MGZhM2ExYzA4ZjJmZTZl
ZDY0Njc3ODMzZjcyMWUyNmUuLmNmZTM2OWNiNGM3NDBmMzQ1ZmFjNzU3YzliNzJlZTgxZmI0NjRl
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Dcm9zc09yaWdpbkFjY2Vzc0Nv
bnRyb2wuY3BwCkBAIC0xNzEsNyArMTcxLDcgQEAgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0IGNyZWF0
ZVBvdGVudGlhbEFjY2Vzc0NvbnRyb2xSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXUKIAog
U3RyaW5nIHZhbGlkYXRlQ3Jvc3NPcmlnaW5SZWRpcmVjdGlvblVSTChjb25zdCBVUkwmIHJlZGly
ZWN0VVJMKQogewotICAgIGlmICghTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJM
U2NoZW1lQXNDT1JTRW5hYmxlZChyZWRpcmVjdFVSTC5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91
dENvcHlpbmcoKSkpCisgICAgaWYgKCFMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRV
UkxTY2hlbWVBc0NPUlNFbmFibGVkKHJlZGlyZWN0VVJMLnByb3RvY29sKCkpKQogICAgICAgICBy
ZXR1cm4gbWFrZVN0cmluZygibm90IGFsbG93ZWQgdG8gZm9sbG93IGEgY3Jvc3Mtb3JpZ2luIENP
UlMgcmVkaXJlY3Rpb24gd2l0aCBub24gQ09SUyBzY2hlbWUiKTsKIAogICAgIGlmIChyZWRpcmVj
dFVSTC5oYXNDcmVkZW50aWFscygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAKaW5kZXggZmQ5ZTM2YzQ3NTQ1MmY2Zjk2M2FhMjVkOTZmZmZjNmRlZmMxZGNlMi4uMTIy
ZDg3MDIyYTNkZjY4YmQ5YTlmYzhlMGRkNDY0ZDg5MDYzODVmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC0xMDQwLDcgKzEwNDAsNyBAQCBib29sIERvY3Vt
ZW50TG9hZGVyOjpkaXNhbGxvd1dlYkFyY2hpdmUoKSBjb25zdAogICAgIGlmIChtX3N1YnN0aXR1
dGVEYXRhLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFMZWdh
Y3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKG1fcmVxdWVzdC51
cmwoKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCisgICAgaWYgKCFMZWdh
Y3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKG1fcmVxdWVzdC51
cmwoKS5wcm90b2NvbCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIWZyYW1l
KCkgfHwgKGZyYW1lKCktPmlzTWFpbkZyYW1lKCkgJiYgbV9hbGxvd3NXZWJBcmNoaXZlRm9yTWFp
bkZyYW1lKSkKQEAgLTE5OTQsOCArMTk5NCw4IEBAIGJvb2wgRG9jdW1lbnRMb2FkZXI6OmlzTXVs
dGlwYXJ0UmVwbGFjaW5nTG9hZCgpIGNvbnN0CiAKIGJvb2wgRG9jdW1lbnRMb2FkZXI6Om1heWJl
TG9hZEVtcHR5KCkKIHsKLSAgICBib29sIHNob3VsZExvYWRFbXB0eSA9ICFtX3N1YnN0aXR1dGVE
YXRhLmlzVmFsaWQoKSAmJiAobV9yZXF1ZXN0LnVybCgpLmlzRW1wdHkoKSB8fCBMZWdhY3lTY2hl
bWVSZWdpc3RyeTo6c2hvdWxkTG9hZFVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChtX3JlcXVlc3Qu
dXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKTsKLSAgICBpZiAoIXNo
b3VsZExvYWRFbXB0eSAmJiAhZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkucmVwcmVzZW50YXRpb25F
eGlzdHNGb3JVUkxTY2hlbWUobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRo
b3V0Q29weWluZygpKSkKKyAgICBib29sIHNob3VsZExvYWRFbXB0eSA9ICFtX3N1YnN0aXR1dGVE
YXRhLmlzVmFsaWQoKSAmJiAobV9yZXF1ZXN0LnVybCgpLmlzRW1wdHkoKSB8fCBMZWdhY3lTY2hl
bWVSZWdpc3RyeTo6c2hvdWxkTG9hZFVSTFNjaGVtZUFzRW1wdHlEb2N1bWVudChtX3JlcXVlc3Qu
dXJsKCkucHJvdG9jb2woKSkpOworICAgIGlmICghc2hvdWxkTG9hZEVtcHR5ICYmICFmcmFtZUxv
YWRlcigpLT5jbGllbnQoKS5yZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShtX3JlcXVl
c3QudXJsKCkucHJvdG9jb2woKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICht
X3JlcXVlc3QudXJsKCkuaXNFbXB0eSgpICYmICFmcmFtZUxvYWRlcigpLT5zdGF0ZU1hY2hpbmUo
KS5jcmVhdGluZ0luaXRpYWxFbXB0eURvY3VtZW50KCkpIHsKQEAgLTIwMDQsNyArMjAwNCw3IEBA
IGJvb2wgRG9jdW1lbnRMb2FkZXI6Om1heWJlTG9hZEVtcHR5KCkKICAgICAgICAgICAgIGZyYW1l
TG9hZGVyKCktPmNsaWVudCgpLmRpc3BhdGNoRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkwoKTsKICAg
ICB9CiAKLSAgICBTdHJpbmcgbWltZVR5cGUgPSBzaG91bGRMb2FkRW1wdHkgPyAidGV4dC9odG1s
Il9zIDogZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hl
bWUobV9yZXF1ZXN0LnVybCgpLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsK
KyAgICBTdHJpbmcgbWltZVR5cGUgPSBzaG91bGRMb2FkRW1wdHkgPyAidGV4dC9odG1sIl9zIDog
ZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUobV9y
ZXF1ZXN0LnVybCgpLnByb3RvY29sKCkpOwogICAgIG1fcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3Bv
bnNlKG1fcmVxdWVzdC51cmwoKSwgbWltZVR5cGUsIDAsICJVVEYtOCJfcyk7CiAKICAgICBpZiAo
IWZyYW1lTG9hZGVyKCktPnN0YXRlTWFjaGluZSgpLmlzRGlzcGxheWluZ0luaXRpYWxFbXB0eURv
Y3VtZW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRo
cmVhZGFibGVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFk
YWJsZUxvYWRlci5jcHAKaW5kZXggMTM0NDYyODliNWZmZmJmMDQyMTBjMWYyMzAxZTljMjY3ZGJl
ZTRkMy4uYzM2MDlhMjIzYWEzZWNiZDNkMWExNjYyN2ZlZjIxOTMxMjIyZDBjYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKQEAg
LTE1Niw3ICsxNTYsNyBAQCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OkRvY3VtZW50VGhyZWFk
YWJsZUxvYWRlcihEb2N1bWVudCYgZG9jdW1lbnQsIFRocmVhZGFibAogICAgIGlmIChzaG91bGRT
ZXRIVFRQSGVhZGVyc1RvS2VlcCgpKQogICAgICAgICBtX29wdGlvbnMuaHR0cEhlYWRlcnNUb0tl
ZXAgPSBodHRwSGVhZGVyc1RvS2VlcEZyb21DbGVhbmluZyhyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVs
ZHMoKSk7CiAKLSAgICBib29sIHNob3VsZERpc2FibGVDT1JTID0gZG9jdW1lbnQuaXNSdW5uaW5n
VXNlclNjcmlwdHMoKSAmJiBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6aXNVc2VyRXh0ZW5zaW9uU2No
ZW1lKHJlcXVlc3QudXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOwor
ICAgIGJvb2wgc2hvdWxkRGlzYWJsZUNPUlMgPSBkb2N1bWVudC5pc1J1bm5pbmdVc2VyU2NyaXB0
cygpICYmIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5Ojppc1VzZXJFeHRlbnNpb25TY2hlbWUocmVxdWVz
dC51cmwoKS5wcm90b2NvbCgpKTsKICAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2Uo
KSkKICAgICAgICAgc2hvdWxkRGlzYWJsZUNPUlMgfD0gcGFnZS0+c2hvdWxkRGlzYWJsZUNvcnNG
b3JSZXF1ZXN0VG8ocmVxdWVzdC51cmwoKSk7CiAKQEAgLTE4OSw3ICsxODksNyBAQCBEb2N1bWVu
dFRocmVhZGFibGVMb2FkZXI6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlcihEb2N1bWVudCYgZG9j
dW1lbnQsIFRocmVhZGFibAogYm9vbCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmNoZWNrVVJM
U2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBVUkwmIHVybCkKIHsKICAgICAvLyBDcm9zcy1vcmln
aW4gcmVxdWVzdHMgYXJlIG9ubHkgYWxsb3dlZCBmb3IgSFRUUCBhbmQgcmVnaXN0ZXJlZCBzY2hl
bWVzLiBXZSB3b3VsZCBjYXRjaCB0aGlzIHdoZW4gY2hlY2tpbmcgcmVzcG9uc2UgaGVhZGVycyBs
YXRlciwgYnV0IHRoZXJlIGlzIG5vIHJlYXNvbiB0byBzZW5kIGEgcmVxdWVzdCB0aGF0J3MgZ3Vh
cmFudGVlZCB0byBiZSBkZW5pZWQuCi0gICAgaWYgKCFMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hv
dWxkVHJlYXRVUkxTY2hlbWVBc0NPUlNFbmFibGVkKHVybC5wcm90b2NvbCgpLnRvU3RyaW5nV2l0
aG91dENvcHlpbmcoKSkpIHsKKyAgICBpZiAoIUxlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRU
cmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJsZWQodXJsLnByb3RvY29sKCkpKSB7CiAgICAgICAgIGxv
Z0Vycm9yQW5kRmFpbChSZXNvdXJjZUVycm9yKGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAs
IHVybCwgIkNyb3NzIG9yaWdpbiByZXF1ZXN0cyBhcmUgb25seSBzdXBwb3J0ZWQgZm9yIEhUVFAu
Il9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sKSk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4
IDI4NGQwZWNiYmU1MzU1YzU4YzY2ZGI2M2VmMGFmMmE4NGU5YjJmZWUuLjY0MjkxMjYxYzg2YTI3
MWU0MmQwYTMwMGY4ZTFiMTk0ZDExZjBlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwCkBAIC05NTIsMTIgKzk1MiwxMiBAQCBib29sIEVtcHR5RnJhbWVMb2FkZXJDbGll
bnQ6OmNhblNob3dNSU1FVHlwZUFzSFRNTChjb25zdCBTdHJpbmcmKSBjb25zdAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotYm9vbCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50OjpyZXByZXNlbnRhdGlv
bkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmKSBjb25zdAorYm9vbCBFbXB0eUZyYW1l
TG9hZGVyQ2xpZW50OjpyZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShTdHJpbmdWaWV3
KSBjb25zdAogewogICAgIHJldHVybiBmYWxzZTsKIH0KIAotU3RyaW5nIEVtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYpIGNv
bnN0CitTdHJpbmcgRW1wdHlGcmFtZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JV
UkxTY2hlbWUoU3RyaW5nVmlldykgY29uc3QKIHsKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IDExNmExN2QxZjVjOWU2NDdlMWYxNDFhMTAwODZiMDc5ODM5M2YzZWEuLjY3YjQzOGEyYjli
NzdiZTVmNjQ3YjFjZjU2ZDdhNmQzNTlkNWMxYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTQwLDggKzE0MCw4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0
IGZpbmFsOwogICAgIGJvb2wgY2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZp
bmFsOwogICAgIGJvb2wgY2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmluZyYpIGNvbnN0
IGZpbmFsOwotICAgIGJvb2wgcmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3Qg
U3RyaW5nJikgY29uc3QgZmluYWw7Ci0gICAgU3RyaW5nIGdlbmVyYXRlZE1JTUVUeXBlRm9yVVJM
U2NoZW1lKGNvbnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgcmVwcmVzZW50YXRp
b25FeGlzdHNGb3JVUkxTY2hlbWUoU3RyaW5nVmlldykgY29uc3QgZmluYWw7CisgICAgU3RyaW5n
IGdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKFN0cmluZ1ZpZXcpIGNvbnN0IGZpbmFsOwog
CiAgICAgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBmaW5hbDsKICAgICB2b2lkIHJlc3RvcmVW
aWV3U3RhdGUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50
LmgKaW5kZXggNDVmNTUyMmI0ODZlZDI0ZmUxZGYwNzk4MmMxZjc1MDgyOWJkNjVhOC4uYTgyYjlm
OGE1NDJlMDJmMDI3MDUzMTFmY2U4YzdkYzI2YjRjMDUxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI1NSw4ICsyNTUsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JikgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBN
SU1FVHlwZSkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGVBc0hU
TUwoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBy
ZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmIFVSTFNjaGVtZSkg
Y29uc3QgPSAwOwotICAgIHZpcnR1YWwgU3RyaW5nIGdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2No
ZW1lKGNvbnN0IFN0cmluZyYgVVJMU2NoZW1lKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29s
IHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKFN0cmluZ1ZpZXcgVVJMU2NoZW1lKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hl
bWUoU3RyaW5nVmlldyBVUkxTY2hlbWUpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBm
cmFtZUxvYWRDb21wbGV0ZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNhdmVWaWV3U3RhdGVU
b0l0ZW0oSGlzdG9yeUl0ZW0mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAppbmRleCBkMDEzOWY4N2EwNmY5Njk3OGI3
NDc3ZTlmNDk5OWMzNGVhOWY4NjI1Li5hYzFiMjA0MzYwYjk3NGI2ZTcyMDc3ODFiMjI2NWU2ZDc2
MjkzMGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9N
SFRNTEFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1s
L01IVE1MQXJjaGl2ZS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBSZWY8TUhUTUxBcmNoaXZlPiBN
SFRNTEFyY2hpdmU6OmNyZWF0ZSgpCiBSZWZQdHI8TUhUTUxBcmNoaXZlPiBNSFRNTEFyY2hpdmU6
OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlciYgZGF0YSkKIHsK
ICAgICAvLyBGb3Igc2VjdXJpdHkgcmVhc29ucyB3ZSBvbmx5IGxvYWQgTUhUTUwgcGFnZXMgZnJv
bSBsb2NhbCBVUkxzLgotICAgIGlmICghTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0
VVJMU2NoZW1lQXNMb2NhbCh1cmwucHJvdG9jb2woKS50b1N0cmluZygpKSkKKyAgICBpZiAoIUxl
Z2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9jYWwodXJsLnByb3Rv
Y29sKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIE1IVE1MUGFyc2VyIHBhcnNl
cigmZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmNwcAppbmRleCA3M2JlYTZkNGNlN2IzOGI3MGI1MGQyMmQwMTk5YzEzZDZhNGMxMWFhLi45N2E5
YTIwM2I2ZjBlNWMwYWUwOTMzNmU3ZjEwY2RhMjJlZGIyNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTQzNiw3ICs0MzYsNyBAQCBT
ZWNvbmRzIENhY2hlZFJlc291cmNlOjpmcmVzaG5lc3NMaWZldGltZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkgY29ucwogICAgICAgICAgICAgLy8gRG9uJ3QgY2FjaGUgbm9uLUhU
VFAgbWFpbiByZXNvdXJjZXMgc2luY2Ugd2UgY2FuJ3QgY2hlY2sgZm9yIGZyZXNobmVzcy4KICAg
ICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgbm90IGNhY2hlIHN1YnJlc291cmNlcyBlaXRo
ZXIsIGJ1dCB3aGVuIHdlIHRyaWVkIHRoaXMKICAgICAgICAgICAgIC8vIGl0IGNhdXNlZCBwZXJm
b3JtYW5jZSBhbmQgZmxha2luZXNzIGlzc3VlcyBpbiBvdXIgdGVzdCBpbmZyYXN0cnVjdHVyZS4K
LSAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6TWFpblJlc291cmNlIHx8IExlZ2FjeVNj
aGVtZVJlZ2lzdHJ5OjpzaG91bGRBbHdheXNSZXZhbGlkYXRlVVJMU2NoZW1lKHByb3RvY29sLnRv
U3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCisgICAgICAgICAgICBpZiAobV90eXBlID09IFR5cGU6
Ok1haW5SZXNvdXJjZSB8fCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkQWx3YXlzUmV2YWxp
ZGF0ZVVSTFNjaGVtZShwcm90b2NvbCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDBfdXM7CiAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3Vy
Y2VMb2FkZXJTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9zb3VwL1Jlc291cmNlTG9h
ZGVyU291cC5jcHAKaW5kZXggYWEyNGY1MzM1ODM4MzYzODZkN2Q1NjUzNGNiODk5NDg1MzU1NGUw
Zi4uN2M0ZjQ3ZTNkMzBhNGQwNjYyODMwZmRhMjFhY2E5OWEzZDFlZmZmMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL3NvdXAvUmVzb3VyY2VMb2FkZXJTb3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvc291cC9SZXNvdXJjZUxvYWRlclNvdXAuY3BwCkBAIC03OCw3
ICs3OCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmxvYWRHUmVzb3VyY2UoKQogICAgIGdfdGFz
a19ydW5faW5fdGhyZWFkKHRhc2suZ2V0KCksIFtdKEdUYXNrKiB0YXNrLCBncG9pbnRlciwgZ3Bv
aW50ZXIgdGFza0RhdGEsIEdDYW5jZWxsYWJsZSopIHsKICAgICAgICAgVVJMIHVybCh7IH0sIFN0
cmluZzo6ZnJvbVVURjgoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KHRhc2tEYXRhKSkpOwogICAg
ICAgICBHRXJyb3IqIGVycm9yID0gbnVsbHB0cjsKLSAgICAgICAgR0J5dGVzKiBieXRlcyA9IGdf
cmVzb3VyY2VzX2xvb2t1cF9kYXRhKHVybC5wcm90b2NvbElzKCJ3ZWJraXQtcGRmanMtdmlld2Vy
IikgPyBtYWtlU3RyaW5nKCIvb3JnL3dlYmtpdC9wZGZqcyIsIHVybC5wYXRoKCkudG9TdHJpbmco
KSkudXRmOCgpLmRhdGEoKSA6IHVybC5wYXRoKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgR0J5
dGVzKiBieXRlcyA9IGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHVybC5wcm90b2NvbElzKCJ3ZWJr
aXQtcGRmanMtdmlld2VyIikgPyBtYWtlU3RyaW5nKCIvb3JnL3dlYmtpdC9wZGZqcyIsIHVybC5w
YXRoKCkpLnV0ZjgoKS5kYXRhKCkgOiB1cmwucGF0aCgpLnV0ZjgoKS5kYXRhKCksCiAgICAgICAg
ICAgICBHX1JFU09VUkNFX0xPT0tVUF9GTEFHU19OT05FLCAmZXJyb3IpOwogICAgICAgICBpZiAo
IWJ5dGVzKQogICAgICAgICAgICAgZ190YXNrX3JldHVybl9lcnJvcih0YXNrLCBlcnJvcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcAppbmRleCBlMGVlNzM3OTBmMGI2NGM3YjA1ODJjZmM4YTRiOTM0ZmZlODAw
NWQwLi5lZjM0ODJkZjY0MTlhNzQwNTBmZDQ2YWYzYmZkMGFjOGI3ZTkzZDVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKQEAgLTIwMDksNyArMjAwOSw3IEBAIHZvaWQgUGFnZTo6dXNlclN0eWxlU2hlZXRM
b2NhdGlvbkNoYW5nZWQoKQogICAgIFVSTCB1cmwgPSBtX3NldHRpbmdzLT51c2VyU3R5bGVTaGVl
dExvY2F0aW9uKCk7CiAgICAgCiAgICAgLy8gQWxsb3cgYW55IGxvY2FsIGZpbGUgVVJMIHNjaGVt
ZSB0byBiZSBsb2FkZWQuCi0gICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVh
dFVSTFNjaGVtZUFzTG9jYWwodXJsLnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygp
KSkKKyAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNM
b2NhbCh1cmwucHJvdG9jb2woKSkpCiAgICAgICAgIG1fdXNlclN0eWxlU2hlZXRQYXRoID0gdXJs
LmZpbGVTeXN0ZW1QYXRoKCk7CiAgICAgZWxzZQogICAgICAgICBtX3VzZXJTdHlsZVNoZWV0UGF0
aCA9IFN0cmluZygpOwpAQCAtMzUzNCw3ICszNTM0LDcgQEAgYm9vbCBQYWdlOjphbGxvd3NMb2Fk
RnJvbVVSTChjb25zdCBVUkwmIHVybCwgTWFpbkZyYW1lTWFpblJlc291cmNlIG1haW5GcmFtZU1h
aW4KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKCF1cmwucHJvdG9jb2xJc0luSFRUUEZh
bWlseSgpICYmICF1cmwucHJvdG9jb2xJcygid3MiKSAmJiAhdXJsLnByb3RvY29sSXMoIndzcyIp
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gbV9hbGxvd2VkTmV0d29ya0hvc3Rz
LT5jb250YWlucyh1cmwuaG9zdCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7CisgICAgcmV0
dXJuIG1fYWxsb3dlZE5ldHdvcmtIb3N0cy0+Y29udGFpbnM8U3RyaW5nVmlld0hhc2hUcmFuc2xh
dG9yPih1cmwuaG9zdCgpKTsKIH0KIAogdm9pZCBQYWdlOjphcHBsaWNhdGlvbldpbGxSZXNpZ25B
Y3RpdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAppbmRleCA0YmE1MTkx
ZTZiM2U0MDk4NzljMjE5YzE2NmE4M2ZlNzEyYTM1ODdhLi42YjEzMGJiMmNmNGE1NDk4ODNlZjFj
YzkwN2E3YTcyYzc1Y2QyOWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3Vy
aXR5T3JpZ2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNw
cApAQCAtMTA3LDcgKzEwNyw3IEBAIHN0YXRpYyBib29sIHNob3VsZFRyZWF0QXNVbmlxdWVPcmln
aW4oY29uc3QgVVJMJiB1cmwpCiAgICAgaWYgKHNjaGVtZVJlcXVpcmVzSG9zdChpbm5lclVSTCkg
JiYgaW5uZXJVUkwuaG9zdCgpLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vz
cyhpbm5lclVSTC5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkpCisgICAgaWYg
KExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3MoaW5u
ZXJVUkwucHJvdG9jb2woKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gaHR0cHM6
Ly91cmwuc3BlYy53aGF0d2cub3JnLyNvcmlnaW4gd2l0aCBzb21lIGFkZGl0aW9ucwpAQCAtMTUz
LDcgKzE1Myw3IEBAIHN0YXRpYyBib29sIGlzTG9vcGJhY2tJUEFkZHJlc3MoU3RyaW5nVmlldyBo
b3N0KQogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2ViYXBwc2VjLXNlY3VyZS1jb250
ZXh0cy8jaXMtb3JpZ2luLXRydXN0d29ydGh5IChFZGl0b3IncyBEcmFmdCwgMTcgTm92ZW1iZXIg
MjAxNikKLXN0YXRpYyBib29sIHNob3VsZFRyZWF0QXNQb3RlbnRpYWxseVRydXN0d29ydGh5KGNv
bnN0IFN0cmluZyYgcHJvdG9jb2wsIFN0cmluZ1ZpZXcgaG9zdCkKK3N0YXRpYyBib29sIHNob3Vs
ZFRyZWF0QXNQb3RlbnRpYWxseVRydXN0d29ydGh5KFN0cmluZ1ZpZXcgcHJvdG9jb2wsIFN0cmlu
Z1ZpZXcgaG9zdCkKIHsKICAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0
VVJMU2NoZW1lQXNTZWN1cmUocHJvdG9jb2wpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTE3
Miw3ICsxNzIsNyBAQCBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdEFzUG90ZW50aWFsbHlUcnVzdHdv
cnRoeShjb25zdCBTdHJpbmcmIHByb3RvY29sLCBTdHJpbmdWaQogCiBib29sIHNob3VsZFRyZWF0
QXNQb3RlbnRpYWxseVRydXN0d29ydGh5KGNvbnN0IFVSTCYgdXJsKQogewotICAgIHJldHVybiBz
aG91bGRUcmVhdEFzUG90ZW50aWFsbHlUcnVzdHdvcnRoeSh1cmwucHJvdG9jb2woKS50b1N0cmlu
Z1dpdGhvdXRDb3B5aW5nKCksIHVybC5ob3N0KCkpOworICAgIHJldHVybiBzaG91bGRUcmVhdEFz
UG90ZW50aWFsbHlUcnVzdHdvcnRoeSh1cmwucHJvdG9jb2woKSwgdXJsLmhvc3QoKSk7CiB9CiAK
IFNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbihjb25zdCBVUkwmIHVybCkKQEAgLTI1OSwx
MiArMjU5LDEyIEBAIHZvaWQgU2VjdXJpdHlPcmlnaW46OnNldERvbWFpbkZyb21ET00oY29uc3Qg
U3RyaW5nJiBuZXdEb21haW4pCiBib29sIFNlY3VyaXR5T3JpZ2luOjppc1NlY3VyZShjb25zdCBV
UkwmIHVybCkKIHsKICAgICAvLyBJbnZhbGlkIFVSTHMgYXJlIHNlY3VyZSwgYXMgYXJlIFVSTHMg
d2hpY2ggaGF2ZSBhIHNlY3VyZSBwcm90b2NvbC4KLSAgICBpZiAoIXVybC5pc1ZhbGlkKCkgfHwg
TGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNTZWN1cmUodXJsLnBy
b3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSkKKyAgICBpZiAoIXVybC5pc1ZhbGlk
KCkgfHwgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNTZWN1cmUo
dXJsLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFVSTHMgdGhh
dCB3cmFwIGlubmVyIFVSTHMgYXJlIHNlY3VyZSBpZiB0aG9zZSBpbm5lciBVUkxzIGFyZSBzZWN1
cmUuCiAgICAgaWYgKHNob3VsZFVzZUlubmVyVVJMKHVybCkpCi0gICAgICAgIHJldHVybiBMZWdh
Y3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZShleHRyYWN0SW5u
ZXJVUkwodXJsKS5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSkgfHwgQmxvYlVS
TDo6aXNTZWN1cmVCbG9iVVJMKHVybCk7CisgICAgICAgIHJldHVybiBMZWdhY3lTY2hlbWVSZWdp
c3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZShleHRyYWN0SW5uZXJVUkwodXJsKS5w
cm90b2NvbCgpKSB8fCBCbG9iVVJMOjppc1NlY3VyZUJsb2JVUkwodXJsKTsKIAogICAgIHJldHVy
biBmYWxzZTsKIH0KQEAgLTM5OCw3ICszOTgsNyBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5E
aXNwbGF5KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogICAgIGlmIChpc0ZlZWRXaXRoTmVzdGVkUHJv
dG9jb2xJbkhUVFBGYW1pbHkodXJsKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBTdHJp
bmcgcHJvdG9jb2wgPSB1cmwucHJvdG9jb2woKS50b1N0cmluZygpOworICAgIGF1dG8gcHJvdG9j
b2wgPSB1cmwucHJvdG9jb2woKTsKIAogICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6Y2Fu
RGlzcGxheU9ubHlJZkNhblJlcXVlc3QocHJvdG9jb2wpKQogICAgICAgICByZXR1cm4gY2FuUmVx
dWVzdCh1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNl
Y3VyaXR5UG9saWN5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY3NwL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5jcHAKaW5kZXggMGQ4YTljNzY1MjQ2ZDU3MDI3NThjZTlmMWU2ZTc5YTJmZjk2NGIx
Zi4uOWYyMDg4N2ZmNmQyYjEyOTM0YmIyODIyOTUzNTIwNjcxZDEwYzkwMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCkBAIC01NTks
NyArNTU5LDcgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93UGx1Z2luVHlwZShj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdHkKIAogYm9vbCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OmFsbG93T2JqZWN0RnJvbVNvdXJjZShjb25zdCBVUkwmIHVybCwgUmVkaXJlY3RS
ZXNwb25zZVJlY2VpdmVkIHJlZGlyZWN0UmVzcG9uc2VSZWNlaXZlZCwgY29uc3QgVVJMJiBwcmVS
ZWRpcmVjdFVSTCkgY29uc3QKIHsKLSAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVt
ZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeSh1cmwucHJvdG9jb2woKS50b1N0cmlu
Z1dpdGhvdXRDb3B5aW5nKCkpKQorICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1l
U2hvdWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9saWN5KHVybC5wcm90b2NvbCgpKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgLy8gQXMgcGVyIHNlY3Rpb24gb2JqZWN0LXNyYyBvZiB0aGUg
Q29udGVudCBTZWN1cml0eSBQb2xpY3kgTGV2ZWwgMyBzcGVjLiwgPGh0dHA6Ly93M2MuZ2l0aHVi
LmlvL3dlYmFwcHNlYy1jc3A+IChFZGl0b3IncyBEcmFmdCwgMjkgRmVicnVhcnkgMjAxNiksCiAg
ICAgLy8gIklmIHBsdWdpbiBjb250ZW50IGlzIGxvYWRlZCB3aXRob3V0IGFuIGFzc29jaWF0ZWQg
VVJMIChwZXJoYXBzIGFuIG9iamVjdCBlbGVtZW50IGxhY2tzIGEgZGF0YSBhdHRyaWJ1dGUsIGJ1
dCBsb2FkcyBzb21lIGRlZmF1bHQgcGx1Z2luIGJhc2VkCkBAIC01NzYsNyArNTc2LDcgQEAgYm9v
bCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93T2JqZWN0RnJvbVNvdXJjZShjb25zdCBVUkwm
IHVybCwgUmVkaXJlY3RSZXNwb24KIAogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93
Q2hpbGRGcmFtZUZyb21Tb3VyY2UoY29uc3QgVVJMJiB1cmwsIFJlZGlyZWN0UmVzcG9uc2VSZWNl
aXZlZCByZWRpcmVjdFJlc3BvbnNlUmVjZWl2ZWQpIGNvbnN0CiB7Ci0gICAgaWYgKExlZ2FjeVNj
aGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91bGRCeXBhc3NDb250ZW50U2VjdXJpdHlQb2xpY3kodXJs
LnByb3RvY29sKCkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKSkKKyAgICBpZiAoTGVnYWN5U2No
ZW1lUmVnaXN0cnk6OnNjaGVtZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeSh1cmwu
cHJvdG9jb2woKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIFN0cmluZyBzb3VyY2VVUkw7
CiAgICAgVGV4dFBvc2l0aW9uIHNvdXJjZVBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmJlZm9yZUZp
cnN0KCksIE9yZGluYWxOdW1iZXIoKSk7CkBAIC01ODksNyArNTg5LDcgQEAgYm9vbCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OmFsbG93Q2hpbGRGcmFtZUZyb21Tb3VyY2UoY29uc3QgVVJMJiB1cmws
IFJlZGlyZWN0UmUKIAogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93UmVzb3VyY2VG
cm9tU291cmNlKGNvbnN0IFVSTCYgdXJsLCBSZWRpcmVjdFJlc3BvbnNlUmVjZWl2ZWQgcmVkaXJl
Y3RSZXNwb25zZVJlY2VpdmVkLCBSZXNvdXJjZVByZWRpY2F0ZSByZXNvdXJjZVByZWRpY2F0ZSwg
Y29uc3QgVVJMJiBwcmVSZWRpcmVjdFVSTCkgY29uc3QKIHsKLSAgICBpZiAoTGVnYWN5U2NoZW1l
UmVnaXN0cnk6OnNjaGVtZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeSh1cmwucHJv
dG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQorICAgIGlmIChMZWdhY3lTY2hlbWVS
ZWdpc3RyeTo6c2NoZW1lU2hvdWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9saWN5KHVybC5wcm90
b2NvbCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgU3RyaW5nIHNvdXJjZVVSTDsKICAg
ICBjb25zdCBhdXRvJiBibG9ja2VkVVJMID0gIXByZVJlZGlyZWN0VVJMLmlzTnVsbCgpID8gcHJl
UmVkaXJlY3RVUkwgOiB1cmw7CkBAIC02MDMsNyArNjAzLDcgQEAgYm9vbCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OmFsbG93UmVzb3VyY2VGcm9tU291cmNlKGNvbnN0IFVSTCYgdXJsLCBSZWRpcmVj
dFJlc3AKIAogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93V29ya2VyRnJvbVNvdXJj
ZShjb25zdCBVUkwmIHVybCwgUmVkaXJlY3RSZXNwb25zZVJlY2VpdmVkIHJlZGlyZWN0UmVzcG9u
c2VSZWNlaXZlZCwgY29uc3QgVVJMJiBwcmVSZWRpcmVjdFVSTCkgY29uc3QKIHsKLSAgICBpZiAo
TGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVtZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBv
bGljeSh1cmwucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQorICAgIGlmIChM
ZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1lU2hvdWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9s
aWN5KHVybC5wcm90b2NvbCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBTdHJpbmcg
c291cmNlVVJMOwpAQCAtNjIxLDcgKzYyMSw3IEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9saWN5
OjphbGxvd1NjcmlwdEZyb21Tb3VyY2UoY29uc3QgVVJMJiB1cmwsIFJlZGlyZWN0UmVzcG9uCiB7
CiAgICAgaWYgKHNob3VsZFBlcmZvcm1FYXJseUNTUENoZWNrKCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1lU2hvdWxkQnlwYXNzQ29u
dGVudFNlY3VyaXR5UG9saWN5KHVybC5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmco
KSkpCisgICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91bGRCeXBhc3NDb250
ZW50U2VjdXJpdHlQb2xpY3kodXJsLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIFN0cmluZyBzb3VyY2VVUkw7CkBAIC02NDQsNyArNjQ0LDcgQEAgYm9vbCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OmFsbG93SW1hZ2VGcm9tU291cmNlKGNvbnN0IFVSTCYgdXJsLCBSZWRp
cmVjdFJlc3BvbnMKIAogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmFsbG93U3R5bGVGcm9t
U291cmNlKGNvbnN0IFVSTCYgdXJsLCBSZWRpcmVjdFJlc3BvbnNlUmVjZWl2ZWQgcmVkaXJlY3RS
ZXNwb25zZVJlY2VpdmVkLCBjb25zdCBVUkwmIHByZVJlZGlyZWN0VVJMLCBjb25zdCBTdHJpbmcm
IG5vbmNlKSBjb25zdAogewotICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1lU2hv
dWxkQnlwYXNzQ29udGVudFNlY3VyaXR5UG9saWN5KHVybC5wcm90b2NvbCgpLnRvU3RyaW5nV2l0
aG91dENvcHlpbmcoKSkpCisgICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91
bGRCeXBhc3NDb250ZW50U2VjdXJpdHlQb2xpY3kodXJsLnByb3RvY29sKCkpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICBTdHJpbmcgc291cmNlVVJMOwogICAgIGNvbnN0IGF1dG8mIGJsb2Nr
ZWRVUkwgPSAhcHJlUmVkaXJlY3RVUkwuaXNOdWxsKCkgPyBwcmVSZWRpcmVjdFVSTCA6IHVybDsK
QEAgLTY3Nyw3ICs2NzcsNyBAQCBib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dNZWRp
YUZyb21Tb3VyY2UoY29uc3QgVVJMJiB1cmwsIFJlZGlyZWN0UmVzcG9ucwogCiBib29sIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6YWxsb3dDb25uZWN0VG9Tb3VyY2UoY29uc3QgVVJMJiB1cmwsIFJl
ZGlyZWN0UmVzcG9uc2VSZWNlaXZlZCByZWRpcmVjdFJlc3BvbnNlUmVjZWl2ZWQsIGNvbnN0IFVS
TCYgcHJlUmVkaXJlY3RVUkwpIGNvbnN0CiB7Ci0gICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5
OjpzY2hlbWVTaG91bGRCeXBhc3NDb250ZW50U2VjdXJpdHlQb2xpY3kodXJsLnByb3RvY29sKCku
dG9TdHJpbmdXaXRob3V0Q29weWluZygpKSkKKyAgICBpZiAoTGVnYWN5U2NoZW1lUmVnaXN0cnk6
OnNjaGVtZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeSh1cmwucHJvdG9jb2woKSkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIFN0cmluZyBzb3VyY2VVUkw7CiAgICAgVGV4dFBv
c2l0aW9uIHNvdXJjZVBvc2l0aW9uKE9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCksIE9yZGlu
YWxOdW1iZXIoKSk7CkBAIC02OTcsNyArNjk3LDcgQEAgYm9vbCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OmFsbG93QmFzZVVSSShjb25zdCBVUkwmIHVybCwgYm9vbCBvdmVycmlkZUNvbnRlbnRTZWMK
IHsKICAgICBpZiAob3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3kpCiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2NoZW1lU2hvdWxkQnlwYXNz
Q29udGVudFNlY3VyaXR5UG9saWN5KHVybC5wcm90b2NvbCgpLnRvU3RyaW5nV2l0aG91dENvcHlp
bmcoKSkpCisgICAgaWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzY2hlbWVTaG91bGRCeXBhc3ND
b250ZW50U2VjdXJpdHlQb2xpY3kodXJsLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICBTdHJpbmcgc291cmNlVVJMOwogICAgIFRleHRQb3NpdGlvbiBzb3VyY2VQb3NpdGlv
bihPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpLCBPcmRpbmFsTnVtYmVyKCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jc3AvQ29udGVudFNlY3VyaXR5UG9saWN5U291cmNl
TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lT
b3VyY2VMaXN0LmNwcAppbmRleCAxZTYzNDNlYTAzNmU5MTU2ZGUzMDNlNTQ2MjViNTYyMjYzNTNm
YTdlLi43ZGZlMzdiMDhmOTMyNTA5YTMwY2I0N2I1MjM4YWQ3YjU5OWMzZmM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lTb3VyY2VMaXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NzcC9Db250ZW50U2VjdXJpdHlQb2xpY3lT
b3VyY2VMaXN0LmNwcApAQCAtMTc5LDcgKzE3OSw3IEBAIGJvb2wgQ29udGVudFNlY3VyaXR5UG9s
aWN5U291cmNlTGlzdDo6bWF0Y2hlcyhjb25zdCBTdHJpbmcmIG5vbmNlKSBjb25zdAogICAgIHJl
dHVybiBtX25vbmNlcy5jb250YWlucyhub25jZSk7CiB9CiAKLXN0YXRpYyBib29sIHNjaGVtZUlz
SW5IdHRwRmFtaWx5KGNvbnN0IFN0cmluZyYgc2NoZW1lKQorc3RhdGljIGJvb2wgc2NoZW1lSXNJ
bkh0dHBGYW1pbHkoU3RyaW5nVmlldyBzY2hlbWUpCiB7CiAgICAgcmV0dXJuIGVxdWFsSWdub3Jp
bmdBU0NJSUNhc2Uoc2NoZW1lLCAiaHR0cHMiKSB8fCBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHNj
aGVtZSwgImh0dHAiKTsKIH0KQEAgLTIwNiw3ICsyMDYsNyBAQCBib29sIENvbnRlbnRTZWN1cml0
eVBvbGljeVNvdXJjZUxpc3Q6OmlzVmFsaWRTb3VyY2VGb3JFeHRlbnNpb25Nb2RlKGNvbnN0IENv
bnRlbgogewogICAgIGJvb2wgaG9zdElzUHVibGljU3VmZml4ID0gZmFsc2U7CiAjaWYgRU5BQkxF
KFBVQkxJQ19TVUZGSVhfTElTVCkKLSAgICBob3N0SXNQdWJsaWNTdWZmaXggPSBpc1B1YmxpY1N1
ZmZpeChwYXJzZWRTb3VyY2UuaG9zdC52YWx1ZS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOwor
ICAgIGhvc3RJc1B1YmxpY1N1ZmZpeCA9IGlzUHVibGljU3VmZml4KHBhcnNlZFNvdXJjZS5ob3N0
LnZhbHVlKTsKICNlbmRpZgogCiAgICAgc3dpdGNoIChtX2NvbnRlbnRTZWN1cml0eVBvbGljeU1v
ZGVGb3JFeHRlbnNpb24pIHsKQEAgLTIyMiwxNCArMjIyLDE0IEBAIGJvb2wgQ29udGVudFNlY3Vy
aXR5UG9saWN5U291cmNlTGlzdDo6aXNWYWxpZFNvdXJjZUZvckV4dGVuc2lvbk1vZGUoY29uc3Qg
Q29udGVuCiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHBhcnNlZFNvdXJjZS5z
Y2hlbWUsICJibG9iIikpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgICAgICBpZiAo
IWVxdWFsSWdub3JpbmdBU0NJSUNhc2UocGFyc2VkU291cmNlLnNjaGVtZS50b1N0cmluZygpLCAi
aHR0cHMiKSB8fCBwYXJzZWRTb3VyY2UuaG9zdC52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgIGlm
ICghZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShwYXJzZWRTb3VyY2Uuc2NoZW1lLCAiaHR0cHMiKSB8
fCBwYXJzZWRTb3VyY2UuaG9zdC52YWx1ZS5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGVudFNlY3VyaXR5UG9saWN5TW9k
ZUZvckV4dGVuc2lvbjo6TWFuaWZlc3RWMzoKICAgICAgICAgaWYgKCFpc1Jlc3RyaWN0ZWREaXJl
Y3RpdmVGb3JNb2RlKG1fZGlyZWN0aXZlTmFtZSwgQ29udGVudFNlY3VyaXR5UG9saWN5TW9kZUZv
ckV4dGVuc2lvbjo6TWFuaWZlc3RWMykpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
ICAgICBpZiAoIXNjaGVtZUlzSW5IdHRwRmFtaWx5KHBhcnNlZFNvdXJjZS5zY2hlbWUudG9TdHJp
bmdXaXRob3V0Q29weWluZygpKSB8fCAhU2VjdXJpdHlPcmlnaW46OmlzTG9jYWxIb3N0T3JMb29w
YmFja0lQQWRkcmVzcyhwYXJzZWRTb3VyY2UuaG9zdC52YWx1ZSkpCisgICAgICAgIGlmICghc2No
ZW1lSXNJbkh0dHBGYW1pbHkocGFyc2VkU291cmNlLnNjaGVtZSkgfHwgIVNlY3VyaXR5T3JpZ2lu
Ojppc0xvY2FsSG9zdE9yTG9vcGJhY2tJUEFkZHJlc3MocGFyc2VkU291cmNlLmhvc3QudmFsdWUp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmNwcAppbmRl
eCA0MTk2NTc5YTNjNzQ2MTlmZTM3ZGRmMDk1MzIzNjhjOGIxY2Q2NzdiLi40M2MwM2JlZTg0MTcz
YTAyMmUxODQ2MWQ4MGI4ODVjMWJmOTAyOGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuY3BwCkBAIC0yNTEsNyArMjUxLDcgQEAgdm9pZCBM
ZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0hhbmRsZWRCeVNjaGVtZUhh
bmRsZXIoY29uc3QgU3RyaW4KIGJvb2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVtZUlzSGFu
ZGxlZEJ5U2NoZW1lSGFuZGxlcihTdHJpbmdWaWV3IHNjaGVtZSkKIHsKICAgICBMb2NrZXIgbG9j
a2VyIHsgc2NoZW1lUmVnaXN0cnlMb2NrIH07Ci0gICAgcmV0dXJuIHNjaGVtZXNIYW5kbGVkQnlT
Y2hlbWVIYW5kbGVyKCkuY29udGFpbnMoc2NoZW1lLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7
CisgICAgcmV0dXJuIHNjaGVtZXNIYW5kbGVkQnlTY2hlbWVIYW5kbGVyKCkuY29udGFpbnM8U3Ry
aW5nVmlld0hhc2hUcmFuc2xhdG9yPihzY2hlbWUpOwogfQogCiBzdGF0aWMgVVJMU2NoZW1lc01h
cCYgc2NoZW1lc0FsbG93aW5nRGF0YWJhc2VBY2Nlc3NJblByaXZhdGVCcm93c2luZygpCkBAIC0y
OTYsMTMgKzI5NiwxMyBAQCBzdGF0aWMgVVJMU2NoZW1lc01hcCYgYWx3YXlzUmV2YWxpZGF0ZWRT
Y2hlbWVzKCkKICAgICByZXR1cm4gc2NoZW1lczsKIH0KIAotYm9vbCBMZWdhY3lTY2hlbWVSZWdp
c3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYgc2NoZW1lKQor
Ym9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKFN0
cmluZ1ZpZXcgc2NoZW1lKQogewogICAgIGlmIChzY2hlbWUuaXNOdWxsKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIExvY2tlciBsb2NrZXIgeyBzY2hlbWVSZWdpc3RyeUxvY2sgfTsK
LSAgICByZXR1cm4gbG9jYWxVUkxTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsKKyAgICByZXR1
cm4gbG9jYWxVUkxTY2hlbWVzKCkuY29udGFpbnM8U3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yPihz
Y2hlbWUpOwogfQogCiB2b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVt
ZUFzTm9BY2Nlc3MoY29uc3QgU3RyaW5nJiBzY2hlbWUpCkBAIC0zMTQsMTMgKzMxNCwxMyBAQCB2
b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MoY29u
c3QgU3RyaW5nJiBzY2hlbWUpCiAgICAgc2NoZW1lc1dpdGhVbmlxdWVPcmlnaW5zKCkuYWRkKHNj
aGVtZSk7CiB9CiAKLWJvb2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2No
ZW1lQXNOb0FjY2Vzcyhjb25zdCBTdHJpbmcmIHNjaGVtZSkKK2Jvb2wgTGVnYWN5U2NoZW1lUmVn
aXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2VzcyhTdHJpbmdWaWV3IHNjaGVtZSkK
IHsKICAgICBpZiAoc2NoZW1lLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBMb2NrZXIgbG9ja2VyIHsgc2NoZW1lUmVnaXN0cnlMb2NrIH07Ci0gICAgcmV0dXJuIHNjaGVt
ZXNXaXRoVW5pcXVlT3JpZ2lucygpLmNvbnRhaW5zKHNjaGVtZSk7CisgICAgcmV0dXJuIHNjaGVt
ZXNXaXRoVW5pcXVlT3JpZ2lucygpLmNvbnRhaW5zPFN0cmluZ1ZpZXdIYXNoVHJhbnNsYXRvcj4o
c2NoZW1lKTsKIH0KIAogdm9pZCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hl
bWVBc0Rpc3BsYXlJc29sYXRlZChjb25zdCBTdHJpbmcmIHNjaGVtZSkKQEAgLTMzMiwxMyArMzMy
LDEzIEBAIHZvaWQgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNEaXNw
bGF5SXNvbGF0ZWQoY29uc3QgU3RyaW5nJiBzY2hlCiAgICAgZGlzcGxheUlzb2xhdGVkVVJMU2No
ZW1lcygpLmFkZChzY2hlbWUpOwogfQogCi1ib29sIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91
bGRUcmVhdFVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0cmluZyYgc2NoZW1lKQor
Ym9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkVHJlYXRVUkxTY2hlbWVBc0Rpc3BsYXlJ
c29sYXRlZChTdHJpbmdWaWV3IHNjaGVtZSkKIHsKICAgICBpZiAoc2NoZW1lLmlzTnVsbCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgc2NoZW1lUmVnaXN0
cnlMb2NrIH07Ci0gICAgcmV0dXJuIGRpc3BsYXlJc29sYXRlZFVSTFNjaGVtZXMoKS5jb250YWlu
cyhzY2hlbWUpOworICAgIHJldHVybiBkaXNwbGF5SXNvbGF0ZWRVUkxTY2hlbWVzKCkuY29udGFp
bnM8U3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yPihzY2hlbWUpOwogfQogCiB2b2lkIExlZ2FjeVNj
aGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKGNvbnN0IFN0cmluZyYgc2No
ZW1lKQpAQCAtMzUwLDEzICszNTAsMTMgQEAgdm9pZCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVn
aXN0ZXJVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKICAgICBzZWN1cmVT
Y2hlbWVzKCkuYWRkKHNjaGVtZSk7CiB9CiAKLWJvb2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNo
b3VsZFRyZWF0VVJMU2NoZW1lQXNTZWN1cmUoY29uc3QgU3RyaW5nJiBzY2hlbWUpCitib29sIExl
Z2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzU2VjdXJlKFN0cmluZ1Zp
ZXcgc2NoZW1lKQogewogICAgIGlmIChzY2hlbWUuaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIExvY2tlciBsb2NrZXIgeyBzY2hlbWVSZWdpc3RyeUxvY2sgfTsKLSAgICBy
ZXR1cm4gc2VjdXJlU2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7CisgICAgcmV0dXJuIHNlY3Vy
ZVNjaGVtZXMoKS5jb250YWluczxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHNjaGVtZSk7CiB9
CiAKIHZvaWQgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURv
Y3VtZW50KGNvbnN0IFN0cmluZyYgc2NoZW1lKQpAQCAtMzY2LDkgKzM2Niw5IEBAIHZvaWQgTGVn
YWN5U2NoZW1lUmVnaXN0cnk6OnJlZ2lzdGVyVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KGNvbnN0
IFN0cmluZyYgc2NoZW1lCiAgICAgZW1wdHlEb2N1bWVudFNjaGVtZXMoKS5hZGQoc2NoZW1lKTsK
IH0KIAotYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkTG9hZFVSTFNjaGVtZUFzRW1w
dHlEb2N1bWVudChjb25zdCBTdHJpbmcmIHNjaGVtZSkKK2Jvb2wgTGVnYWN5U2NoZW1lUmVnaXN0
cnk6OnNob3VsZExvYWRVUkxTY2hlbWVBc0VtcHR5RG9jdW1lbnQoU3RyaW5nVmlldyBzY2hlbWUp
CiB7Ci0gICAgcmV0dXJuICFzY2hlbWUuaXNOdWxsKCkgJiYgZW1wdHlEb2N1bWVudFNjaGVtZXMo
KS5jb250YWlucyhzY2hlbWUpOworICAgIHJldHVybiAhc2NoZW1lLmlzTnVsbCgpICYmIGVtcHR5
RG9jdW1lbnRTY2hlbWVzKCkuY29udGFpbnM8U3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yPihzY2hl
bWUpOwogfQogCiB2b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzZXREb21haW5SZWxheGF0aW9u
Rm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25zdCBTdHJpbmcmIHNjaGVt
ZSkKQEAgLTM4NywxNCArMzg3LDE0IEBAIGJvb2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OmlzRG9t
YWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShjb25zdCBTdHJpbmcmCiAgICAgcmV0
dXJuICFzY2hlbWUuaXNOdWxsKCkgJiYgc2NoZW1lc0ZvcmJpZGRlbkZyb21Eb21haW5SZWxheGF0
aW9uKCkuY29udGFpbnMoc2NoZW1lKTsKIH0KIAotYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6
Y2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoY29uc3QgU3RyaW5nJiBzY2hlbWUpCitib29sIExl
Z2FjeVNjaGVtZVJlZ2lzdHJ5OjpjYW5EaXNwbGF5T25seUlmQ2FuUmVxdWVzdChTdHJpbmdWaWV3
IHNjaGVtZSkKIHsKICAgICBBU1NFUlQoIWlzSW5OZXR3b3JrUHJvY2VzcygpKTsKICAgICBpZiAo
c2NoZW1lLmlzTnVsbCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBMb2NrZXIgbG9j
a2VyIHsgc2NoZW1lUmVnaXN0cnlMb2NrIH07Ci0gICAgcmV0dXJuIGNhbkRpc3BsYXlPbmx5SWZD
YW5SZXF1ZXN0U2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7CisgICAgcmV0dXJuIGNhbkRpc3Bs
YXlPbmx5SWZDYW5SZXF1ZXN0U2NoZW1lcygpLmNvbnRhaW5zPFN0cmluZ1ZpZXdIYXNoVHJhbnNs
YXRvcj4oc2NoZW1lKTsKIH0KIAogdm9pZCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJB
c0NhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYgc2NoZW1lKQpAQCAtNDM5
LDEwICs0MzksMTAgQEAgdm9pZCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hl
bWVBc0NPUlNFbmFibGVkKGNvbnN0IFN0cmluZyYgc2NoZW1lKQogICAgIENPUlNFbmFibGVkU2No
ZW1lcygpLmFkZChzY2hlbWUpOwogfQogCi1ib29sIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91
bGRUcmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUpCitib29s
IExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzQ09SU0VuYWJsZWQo
U3RyaW5nVmlldyBzY2hlbWUpCiB7CiAgICAgQVNTRVJUKCFpc0luTmV0d29ya1Byb2Nlc3MoKSk7
Ci0gICAgcmV0dXJuICFzY2hlbWUuaXNOdWxsKCkgJiYgQ09SU0VuYWJsZWRTY2hlbWVzKCkuY29u
dGFpbnMoc2NoZW1lKTsKKyAgICByZXR1cm4gIXNjaGVtZS5pc051bGwoKSAmJiBDT1JTRW5hYmxl
ZFNjaGVtZXMoKS5jb250YWluczxTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KHNjaGVtZSk7CiB9
CiAKIFZlY3RvcjxTdHJpbmc+IExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjphbGxVUkxTY2hlbWVzUmVn
aXN0ZXJlZEFzQ09SU0VuYWJsZWQoKQpAQCAtNDY5LDEzICs0NjksMTMgQEAgdm9pZCBMZWdhY3lT
Y2hlbWVSZWdpc3RyeTo6cmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzQnlwYXNzaW5nQ29udGVu
dFNlY3VyaXR5UG8KICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3lCeXBhc3NpbmdTY2hlbWVzKCku
cmVtb3ZlKHNjaGVtZSk7CiB9CiAKLWJvb2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVtZVNo
b3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0eVBvbGljeShjb25zdCBTdHJpbmcmIHNjaGVtZSkKK2Jv
b2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNjaGVtZVNob3VsZEJ5cGFzc0NvbnRlbnRTZWN1cml0
eVBvbGljeShTdHJpbmdWaWV3IHNjaGVtZSkKIHsKICAgICBpZiAoc2NoZW1lLmlzTnVsbCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBMb2NrZXIgbG9ja2VyIHsgc2NoZW1lUmVnaXN0
cnlMb2NrIH07Ci0gICAgcmV0dXJuIENvbnRlbnRTZWN1cml0eVBvbGljeUJ5cGFzc2luZ1NjaGVt
ZXMoKS5jb250YWlucyhzY2hlbWUpOworICAgIHJldHVybiBDb250ZW50U2VjdXJpdHlQb2xpY3lC
eXBhc3NpbmdTY2hlbWVzKCkuY29udGFpbnM8U3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yPihzY2hl
bWUpOwogfQogCiB2b2lkIExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpyZWdpc3RlclVSTFNjaGVtZUFz
QWx3YXlzUmV2YWxpZGF0ZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUpCkBAIC00ODUsOSArNDg1LDkg
QEAgdm9pZCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0Fsd2F5c1Jl
dmFsaWRhdGVkKGNvbnN0IFN0cmluZyYgc2MKICAgICBhbHdheXNSZXZhbGlkYXRlZFNjaGVtZXMo
KS5hZGQoc2NoZW1lKTsKIH0KIAotYm9vbCBMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkQWx3
YXlzUmV2YWxpZGF0ZVVSTFNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSkKK2Jvb2wgTGVnYWN5
U2NoZW1lUmVnaXN0cnk6OnNob3VsZEFsd2F5c1JldmFsaWRhdGVVUkxTY2hlbWUoU3RyaW5nVmll
dyBzY2hlbWUpCiB7Ci0gICAgcmV0dXJuICFzY2hlbWUuaXNOdWxsKCkgJiYgYWx3YXlzUmV2YWxp
ZGF0ZWRTY2hlbWVzKCkuY29udGFpbnMoc2NoZW1lKTsKKyAgICByZXR1cm4gIXNjaGVtZS5pc051
bGwoKSAmJiBhbHdheXNSZXZhbGlkYXRlZFNjaGVtZXMoKS5jb250YWluczxTdHJpbmdWaWV3SGFz
aFRyYW5zbGF0b3I+KHNjaGVtZSk7CiB9CiAKIHZvaWQgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnJl
Z2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lKQpA
QCAtNTA4LDcgKzUwOCw3IEBAIGJvb2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OnNob3VsZFBhcnRp
dGlvbkNhY2hlRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lCiAgICAgcmV0dXJuIGNh
Y2hlUGFydGl0aW9uaW5nU2NoZW1lcygpLmNvbnRhaW5zKHNjaGVtZSk7CiB9CiAKLWJvb2wgTGVn
YWN5U2NoZW1lUmVnaXN0cnk6OmlzVXNlckV4dGVuc2lvblNjaGVtZShjb25zdCBTdHJpbmcmIHNj
aGVtZSkKK2Jvb2wgTGVnYWN5U2NoZW1lUmVnaXN0cnk6OmlzVXNlckV4dGVuc2lvblNjaGVtZShT
dHJpbmdWaWV3IHNjaGVtZSkKIHsKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXMgb25jZSBTYWZh
cmkgaGFzIGFkb3B0ZWQgV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5fY29yc0Rpc2FibGluZ1BhdHRl
cm5zCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlZ2Fj
eVNjaGVtZVJlZ2lzdHJ5LmgKaW5kZXggYjFlZDgyOTVhZWU2N2VjNDRmNjc1ZGRmM2Y0NjdkMDQw
MmI1ZjViYy4uNzA0OTRmNzNiY2JlODQ3OWYzNjg5YjYxMzgwZjIxMDk2M2NkODM2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVnYWN5U2NoZW1lUmVnaXN0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oCkBAIC00MCwz
MiArNDAsMzIgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lz
dGVyVVJMU2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmKTsgLy8gVGhyZWFkIHNhZmUuCiAgICAg
c3RhdGljIHZvaWQgcmVtb3ZlVVJMU2NoZW1lUmVnaXN0ZXJlZEFzTG9jYWwoY29uc3QgU3RyaW5n
Jik7IC8vIFRocmVhZCBzYWZlLgogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgc2hv
dWxkVHJlYXRVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYpOyAvLyBUaHJlYWQgc2FmZS4K
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVSTFNjaGVtZUFzTG9j
YWwoU3RyaW5nVmlldyk7IC8vIFRocmVhZCBzYWZlLgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBib29sIGlzQnVpbHRpblNjaGVtZShjb25zdCBTdHJpbmcmKTsKICAgICAKICAgICAvLyBTZWN1
cmUgc2NoZW1lcyBkbyBub3QgdHJpZ2dlciBtaXhlZCBjb250ZW50IHdhcm5pbmdzLiBGb3IgZXhh
bXBsZSwKICAgICAvLyBodHRwcyBhbmQgZGF0YSBhcmUgc2VjdXJlIHNjaGVtZXMgYmVjYXVzZSB0
aGV5IGNhbm5vdCBiZSBjb3JydXB0ZWQgYnkKICAgICAvLyBhY3RpdmUgbmV0d29yayBhdHRhY2tl
cnMuCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc1Nl
Y3VyZShjb25zdCBTdHJpbmcmKTsgLy8gVGhyZWFkIHNhZmUuCi0gICAgc3RhdGljIGJvb2wgc2hv
dWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZShjb25zdCBTdHJpbmcmKTsgLy8gVGhyZWFkIHNhZmUu
CisgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRVUkxTY2hlbWVBc1NlY3VyZShTdHJpbmdWaWV3
KTsgLy8gVGhyZWFkIHNhZmUuCiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdp
c3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MoY29uc3QgU3RyaW5nJik7IC8vIFRocmVhZCBzYWZlLgot
ICAgIHN0YXRpYyBib29sIHNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcyhjb25zdCBTdHJp
bmcmKTsgLy8gVGhyZWFkIHNhZmUuCisgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRVUkxTY2hl
bWVBc05vQWNjZXNzKFN0cmluZ1ZpZXcpOyAvLyBUaHJlYWQgc2FmZS4KIAogICAgIC8vIERpc3Bs
YXktaXNvbGF0ZWQgc2NoZW1lcyBjYW4gb25seSBiZSBkaXNwbGF5ZWQgKGluIHRoZSBzZW5zZSBv
ZgogICAgIC8vIFNlY3VyaXR5T3JpZ2luOjpjYW5EaXNwbGF5KSBieSBkb2N1bWVudHMgZnJvbSB0
aGUgc2FtZSBzY2hlbWUuCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJV
UkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChjb25zdCBTdHJpbmcmKTsgLy8gVGhyZWFkIHNhZmUu
Ci0gICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChj
b25zdCBTdHJpbmcmKTsgLy8gVGhyZWFkIHNhZmUuCisgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJl
YXRVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChTdHJpbmdWaWV3KTsgLy8gVGhyZWFkIHNhZmUu
CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRW1w
dHlEb2N1bWVudChjb25zdCBTdHJpbmcmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9v
bCBzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3VtZW50KGNvbnN0IFN0cmluZyYpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHNob3VsZExvYWRVUkxTY2hlbWVBc0VtcHR5RG9j
dW1lbnQoU3RyaW5nVmlldyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBzZXRE
b21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25z
dCBTdHJpbmcmKTsKICAgICBzdGF0aWMgYm9vbCBpc0RvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5G
b3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJik7CiAKICAgICAvLyBTdWNoIHNjaGVtZXMgc2hvdWxk
IGRlbGVnYXRlIHRvIFNlY3VyaXR5T3JpZ2luOjpjYW5SZXF1ZXN0IGZvciBhbnkgVVJMCiAgICAg
Ly8gcGFzc2VkIHRvIFNlY3VyaXR5T3JpZ2luOjpjYW5EaXNwbGF5LgotICAgIHN0YXRpYyBib29s
IGNhbkRpc3BsYXlPbmx5SWZDYW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYgc2NoZW1lKTsgLy8gVGhy
ZWFkIHNhZmUuCisgICAgc3RhdGljIGJvb2wgY2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoU3Ry
aW5nVmlldyBzY2hlbWUpOyAvLyBUaHJlYWQgc2FmZS4KICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCByZWdpc3RlckFzQ2FuRGlzcGxheU9ubHlJZkNhblJlcXVlc3QoY29uc3QgU3RyaW5n
JiBzY2hlbWUpOyAvLyBUaHJlYWQgc2FmZS4KIAogICAgIC8vIFNjaGVtZXMgYWdhaW5zdCB3aGlj
aCBqYXZhc2NyaXB0OiBVUkxzIHNob3VsZCBub3QgYmUgYWxsb3dlZCB0byBydW4gKHN0b3AKQEAg
LTgwLDcgKzgwLDcgQEAgcHVibGljOgogCiAgICAgLy8gQWxsb3cgbm9uLUhUVFAgc2NoZW1lcyB0
byBiZSByZWdpc3RlcmVkIHRvIGFsbG93IENPUlMgcmVxdWVzdHMuCiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNvbnN0IFN0cmlu
ZyYgc2NoZW1lKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBzaG91bGRUcmVhdFVS
TFNjaGVtZUFzQ09SU0VuYWJsZWQoY29uc3QgU3RyaW5nJiBzY2hlbWUpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBib29sIHNob3VsZFRyZWF0VVJMU2NoZW1lQXNDT1JTRW5hYmxlZChTdHJp
bmdWaWV3IHNjaGVtZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFZlY3RvcjxTdHJpbmc+
IGFsbFVSTFNjaGVtZXNSZWdpc3RlcmVkQXNDT1JTRW5hYmxlZCgpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0hhbmRsZWRCeVNjaGVtZUhhbmRs
ZXIoY29uc3QgU3RyaW5nJik7CkBAIC05MCwxNyArOTAsMTcgQEAgcHVibGljOgogICAgIC8vIENv
bnRlbnQgU2VjdXJpdHkgUG9saWN5LgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJl
Z2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QgU3Ry
aW5nJiBzY2hlbWUpOyAvLyBUaHJlYWQgc2FmZS4KICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCByZW1vdmVVUkxTY2hlbWVSZWdpc3RlcmVkQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQ
b2xpY3koY29uc3QgU3RyaW5nJiBzY2hlbWUpOyAvLyBUaHJlYWQgc2FmZS4KLSAgICBzdGF0aWMg
Ym9vbCBzY2hlbWVTaG91bGRCeXBhc3NDb250ZW50U2VjdXJpdHlQb2xpY3koY29uc3QgU3RyaW5n
JiBzY2hlbWUpOyAvLyBUaHJlYWQgc2FmZS4KKyAgICBzdGF0aWMgYm9vbCBzY2hlbWVTaG91bGRC
eXBhc3NDb250ZW50U2VjdXJpdHlQb2xpY3koU3RyaW5nVmlldyBzY2hlbWUpOyAvLyBUaHJlYWQg
c2FmZS4KIAogICAgIC8vIFNjaGVtZXMgd2hvc2UgcmVzcG9uc2VzIHNob3VsZCBhbHdheXMgYmUg
cmV2YWxpZGF0ZWQuCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgcmVnaXN0ZXJVUkxT
Y2hlbWVBc0Fsd2F5c1JldmFsaWRhdGVkKGNvbnN0IFN0cmluZyYpOwotICAgIHN0YXRpYyBib29s
IHNob3VsZEFsd2F5c1JldmFsaWRhdGVVUkxTY2hlbWUoY29uc3QgU3RyaW5nJik7CisgICAgc3Rh
dGljIGJvb2wgc2hvdWxkQWx3YXlzUmV2YWxpZGF0ZVVSTFNjaGVtZShTdHJpbmdWaWV3KTsKIAog
ICAgIC8vIFNjaGVtZXMgd2hvc2UgcmVxdWVzdHMgc2hvdWxkIGJlIHBhcnRpdGlvbmVkIGluIHRo
ZSBjYWNoZQogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1l
QXNDYWNoZVBhcnRpdGlvbmVkKGNvbnN0IFN0cmluZyYgc2NoZW1lKTsgLy8gVGhyZWFkIHNhZmUu
CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkUGFydGl0aW9uQ2FjaGVGb3JVUkxTY2hlbWUoY29uc3Qg
U3RyaW5nJiBzY2hlbWUpOyAvLyBUaHJlYWQgc2FmZS4KIAotICAgIHN0YXRpYyBib29sIGlzVXNl
ckV4dGVuc2lvblNjaGVtZShjb25zdCBTdHJpbmcmIHNjaGVtZSk7CisgICAgc3RhdGljIGJvb2wg
aXNVc2VyRXh0ZW5zaW9uU2NoZW1lKFN0cmluZ1ZpZXcgc2NoZW1lKTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1B1Ymxp
Y1N1ZmZpeC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHVibGljU3VmZml4LmgKaW5kZXgg
YTBlMGU0ZDlmYzg5Zjk3YjY5MGEwYmZkNmE1Mjg4ZTZlMWI1ZjQwOC4uNTM3ODVkZGM4Y2YwNmQ0
YjUyMjJiMDgyMmRjYzQ4MmY1MWJmMDNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUHVibGljU3VmZml4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHVibGlj
U3VmZml4LmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XRUJD
T1JFX0VYUE9SVCBib29sIGlzUHVibGljU3VmZml4KGNvbnN0IFN0cmluZyYgZG9tYWluKTsKK1dF
QkNPUkVfRVhQT1JUIGJvb2wgaXNQdWJsaWNTdWZmaXgoU3RyaW5nVmlldyBkb21haW4pOwogV0VC
Q09SRV9FWFBPUlQgU3RyaW5nIHRvcFByaXZhdGVseUNvbnRyb2xsZWREb21haW4oY29uc3QgU3Ry
aW5nJiBkb21haW4pOwogU3RyaW5nIGRlY29kZUhvc3ROYW1lKGNvbnN0IFN0cmluZyYgZG9tYWlu
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1B1YmxpY1N1ZmZp
eE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QdWJsaWNTdWZmaXhNYWMubW0K
aW5kZXggYTFiZmMyMWI1OWU0MGY4Y2JiMWZiMzk2MWVlYzM4MGExOWViMzMyNS4uMWJkMzUyNzE1
ZWJhYzU0MmU0MGIxYzMzNDFkZWRmMmI4MGVjOTRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1B1YmxpY1N1ZmZpeE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvUHVibGljU3VmZml4TWFjLm1tCkBAIC0zNiwxMCArMzYsOSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgaXNQdWJsaWNTdWZmaXgoY29uc3QgU3RyaW5nJiBkb21h
aW4pCitib29sIGlzUHVibGljU3VmZml4KFN0cmluZ1ZpZXcgZG9tYWluKQogewotICAgIC8vIEV4
cGxpY2l0bHkgY2FzdCB0aGUgZG9tYWluIHRvIGEgTlNTdHJpbmcgYmVmb3JlIGNhbGxpbmcgZGVj
b2RlSG9zdE5hbWUoKSBzbyB3ZSBnZXQgYSBOU1N0cmluZyBiYWNrIGluc3RlYWQgb2YgYSBTdHJp
bmcuCi0gICAgTlNTdHJpbmcgKmhvc3QgPSBkZWNvZGVIb3N0TmFtZSgoTlNTdHJpbmcgKilkb21h
aW4pOworICAgIE5TU3RyaW5nICpob3N0ID0gZGVjb2RlSG9zdE5hbWUoZG9tYWluLmNyZWF0ZU5T
U3RyaW5nKCkuZ2V0KCkpOwogICAgIHJldHVybiBob3N0ICYmIF9DRkhvc3RJc0RvbWFpblRvcExl
dmVsKChfX2JyaWRnZSBDRlN0cmluZ1JlZilob3N0KTsKIH0KIApAQCAtNzEsNyArNzAsNyBAQCBT
dHJpbmcgdG9wUHJpdmF0ZWx5Q29udHJvbGxlZERvbWFpbihjb25zdCBTdHJpbmcmIGRvbWFpbikK
IAogICAgICAgICBzaXplX3Qgc2VwYXJhdG9yUG9zaXRpb247CiAgICAgICAgIGZvciAodW5zaWdu
ZWQgbGFiZWxTdGFydCA9IDA7IChzZXBhcmF0b3JQb3NpdGlvbiA9IGxvd2VyY2FzZURvbWFpbi5m
aW5kKCcuJywgbGFiZWxTdGFydCkpICE9IG5vdEZvdW5kOyBsYWJlbFN0YXJ0ID0gc2VwYXJhdG9y
UG9zaXRpb24gKyAxKSB7Ci0gICAgICAgICAgICBpZiAoaXNQdWJsaWNTdWZmaXgobG93ZXJjYXNl
RG9tYWluLnN1YnN0cmluZyhzZXBhcmF0b3JQb3NpdGlvbiArIDEpKSkKKyAgICAgICAgICAgIGlm
IChpc1B1YmxpY1N1ZmZpeChTdHJpbmdWaWV3KGxvd2VyY2FzZURvbWFpbikuc3Vic3RyaW5nKHNl
cGFyYXRvclBvc2l0aW9uICsgMSkpKQogICAgICAgICAgICAgICAgIHJldHVybiBsb3dlcmNhc2VE
b21haW4uc3Vic3RyaW5nKGxhYmVsU3RhcnQpOwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxv
YlJlZ2lzdHJ5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZWdpc3RyeUltcGwuY3BwCmluZGV4IDM1MTUxYmE2NmYzYjJjNGVmYTFmNjlmNjZjNDI1NGMyODRk
NGQ1MGMuLmE1MzEwNjA3YTMwNDk5OTUzZTQ5NWRhZTYzNDVmOGU1MmZkZjA3MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVnaXN0cnlJbXBsLmNw
cApAQCAtMjMwLDcgKzIzMCw3IEBAIEJsb2JEYXRhKiBCbG9iUmVnaXN0cnlJbXBsOjpnZXRCbG9i
RGF0YUZyb21VUkwoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKICAgICBpZiAodXJsLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAgICAgICBy
ZXR1cm4gbV9ibG9icy5nZXQodXJsLnZpZXdXaXRob3V0RnJhZ21lbnRJZGVudGlmaWVyKCkudG9T
dHJpbmdXaXRob3V0Q29weWluZygpKTsKKyAgICAgICAgcmV0dXJuIG1fYmxvYnMuZ2V0PFN0cmlu
Z1ZpZXdIYXNoVHJhbnNsYXRvcj4odXJsLnZpZXdXaXRob3V0RnJhZ21lbnRJZGVudGlmaWVyKCkp
OwogICAgIHJldHVybiBtX2Jsb2JzLmdldCh1cmwuc3RyaW5nKCkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NhY2hlVmFsaWRhdGlvbi5jcHAKaW5kZXgg
MGNlYzg4M2I4Mzk0ZWQ0ZjYyMTlkYzg4MjY5NTE2M2M2YzgxMjRjMS4uZTkzMDJjM2U3YTlmYzVm
NmUxNWIyZTRhNTllNzMxZGVmYWM5YmRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9DYWNoZVZhbGlkYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQ2FjaGVWYWxpZGF0aW9uLmNwcApAQCAtMzUwLDcgKzM1MCw3IEBAIHN0
YXRpYyBTdHJpbmcgY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUoY29uc3QgQ29va2llSmFy
KiBjb29raWVKYXIsIGNvbnN0IFJlCiAgICAgcmV0dXJuIGNvb2tpZUphci0+Y29va2llUmVxdWVz
dEhlYWRlckZpZWxkVmFsdWUocmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLCBTYW1lU2l0
ZUluZm86OmNyZWF0ZShyZXF1ZXN0KSwgcmVxdWVzdC51cmwoKSwgc3RkOjpudWxsb3B0LCBzdGQ6
Om51bGxvcHQsIHJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSA/IEluY2x1ZGVTZWN1
cmVDb29raWVzOjpZZXMgOiBJbmNsdWRlU2VjdXJlQ29va2llczo6Tm8pLmZpcnN0OwogfQogCi1z
dGF0aWMgU3RyaW5nIGhlYWRlclZhbHVlRm9yVmFyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgaGVhZGVyTmFtZSwgRnVuY3Rpb248U3RyaW5nKCk+JiYgY29v
a2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWVGdW5jdGlvbikKK3N0YXRpYyBTdHJpbmcgaGVhZGVy
VmFsdWVGb3JWYXJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RyaW5nVmlldyBo
ZWFkZXJOYW1lLCBGdW5jdGlvbjxTdHJpbmcoKT4mJiBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRW
YWx1ZUZ1bmN0aW9uKQogewogICAgIC8vIEV4cGxpY2l0IGhhbmRsaW5nIGZvciBjb29raWVzIGlz
IG5lZWRlZCBiZWNhdXNlIHRoZXkgYXJlIGFkZGVkIG1hZ2ljYWxseSBieSB0aGUgbmV0d29ya2lu
ZyBsYXllci4KICAgICAvLyBGSVhNRTogVGhlIHZhbHVlIG1pZ2h0IGhhdmUgY2hhbmdlZCBiZXR3
ZWVuIG1ha2luZyB0aGUgcmVxdWVzdCBhbmQgcmV0cmlldmluZyB0aGUgY29va2llIGhlcmUuCkBA
IC0zNjEsNyArMzYxLDcgQEAgc3RhdGljIFN0cmluZyBoZWFkZXJWYWx1ZUZvclZhcnkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGgKICAgICByZXR1cm4gcmVx
dWVzdC5odHRwSGVhZGVyRmllbGQoaGVhZGVyTmFtZSk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8c3Rk
OjpwYWlyPFN0cmluZywgU3RyaW5nPj4gY29sbGVjdFZhcnlpbmdSZXF1ZXN0SGVhZGVyc0ludGVy
bmFsKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBGdW5jdGlvbjxTdHJpbmcoY29u
c3QgU3RyaW5nJiBoZWFkZXJOYW1lKT4mJiBoZWFkZXJWYWx1ZUZvclZhcnlGdW5jdGlvbikKK3N0
YXRpYyBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPj4gY29sbGVjdFZhcnlpbmdSZXF1
ZXN0SGVhZGVyc0ludGVybmFsKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBGdW5j
dGlvbjxTdHJpbmcoU3RyaW5nVmlldyBoZWFkZXJOYW1lKT4mJiBoZWFkZXJWYWx1ZUZvclZhcnlG
dW5jdGlvbikKIHsKICAgICBhdXRvIHZhcnlWYWx1ZSA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZTo6VmFyeSk7CiAgICAgaWYgKHZhcnlWYWx1ZS5pc0VtcHR5KCkpCkBA
IC0zNjksOCArMzY5LDggQEAgc3RhdGljIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+
PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzSW50ZXJuYWwoY28KIAogICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBoZWFkZXJzOwogICAgIGZvciAoYXV0byB2YXJ5SGVh
ZGVyTmFtZSA6IFN0cmluZ1ZpZXcodmFyeVZhbHVlKS5zcGxpdCgnLCcpKSB7Ci0gICAgICAgIGF1
dG8gaGVhZGVyTmFtZSA9IHZhcnlIZWFkZXJOYW1lLnN0cmlwV2hpdGVTcGFjZSgpLnRvU3RyaW5n
KCk7Ci0gICAgICAgIGhlYWRlcnMuYXBwZW5kKHN0ZDo6cGFpciB7IGhlYWRlck5hbWUsIGhlYWRl
clZhbHVlRm9yVmFyeUZ1bmN0aW9uKGhlYWRlck5hbWUpIH0pOworICAgICAgICBhdXRvIGhlYWRl
ck5hbWUgPSB2YXJ5SGVhZGVyTmFtZS5zdHJpcFdoaXRlU3BhY2UoKTsKKyAgICAgICAgaGVhZGVy
cy5hcHBlbmQoc3RkOjpwYWlyIHsgaGVhZGVyTmFtZS50b1N0cmluZygpLCBoZWFkZXJWYWx1ZUZv
clZhcnlGdW5jdGlvbihoZWFkZXJOYW1lKSB9KTsKICAgICB9CiAgICAgcmV0dXJuIGhlYWRlcnM7
CiB9CkBAIC0zNzksNyArMzc5LDcgQEAgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4+
IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoTmV0d29ya1N0b3JhZ2VTZXMKIHsKICAgICBp
ZiAoIXN0b3JhZ2VTZXNzaW9uKQogICAgICAgICByZXR1cm4geyB9OwotICAgIHJldHVybiBjb2xs
ZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzSW50ZXJuYWwocmVzcG9uc2UsIFsmXSAoY29uc3QgU3Ry
aW5nJiBoZWFkZXJOYW1lKSB7CisgICAgcmV0dXJuIGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRl
cnNJbnRlcm5hbChyZXNwb25zZSwgWyZdIChTdHJpbmdWaWV3IGhlYWRlck5hbWUpIHsKICAgICAg
ICAgcmV0dXJuIGhlYWRlclZhbHVlRm9yVmFyeShyZXF1ZXN0LCBoZWFkZXJOYW1lLCBbJl0gewog
ICAgICAgICAgICAgcmV0dXJuIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKCpzdG9yYWdl
U2Vzc2lvbiwgcmVxdWVzdCk7CiAgICAgICAgIH0pOwpAQCAtMzg4LDcgKzM4OCw3IEBAIFZlY3Rv
cjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJz
KE5ldHdvcmtTdG9yYWdlU2VzCiAKIFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+PiBj
b2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvbnN0IENvb2tpZUphciogY29va2llSmFyLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQogewotICAgIHJldHVybiBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzSW50ZXJu
YWwocmVzcG9uc2UsIFsmXSAoY29uc3QgU3RyaW5nJiBoZWFkZXJOYW1lKSB7CisgICAgcmV0dXJu
IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnNJbnRlcm5hbChyZXNwb25zZSwgWyZdIChTdHJp
bmdWaWV3IGhlYWRlck5hbWUpIHsKICAgICAgICAgcmV0dXJuIGhlYWRlclZhbHVlRm9yVmFyeShy
ZXF1ZXN0LCBoZWFkZXJOYW1lLCBbJl0gewogICAgICAgICAgICAgcmV0dXJuIGNvb2tpZVJlcXVl
c3RIZWFkZXJGaWVsZFZhbHVlKGNvb2tpZUphciwgcmVxdWVzdCk7CiAgICAgICAgIH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5jcHAKaW5k
ZXggYmQ1MTZjZjZjNjVmMmRiNDA1MThmMGNkMWQ3ZTk3ZThmNzRlMzg1MC4uYTZjZGNiYjRkNDUx
YjczZTg2N2FhNTA1YzFiZTgwZTFmMTA3OTUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9IVFRQSGVhZGVyTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuY3BwCkBAIC01OCw3ICs1OCw3IEBAIEhUVFBI
ZWFkZXJNYXAgSFRUUEhlYWRlck1hcDo6aXNvbGF0ZWRDb3B5KCkgJiYKICAgICByZXR1cm4gbWFw
OwogfQogCi1TdHJpbmcgSFRUUEhlYWRlck1hcDo6Z2V0KGNvbnN0IFN0cmluZyYgbmFtZSkgY29u
c3QKK1N0cmluZyBIVFRQSGVhZGVyTWFwOjpnZXQoU3RyaW5nVmlldyBuYW1lKSBjb25zdAogewog
ICAgIEhUVFBIZWFkZXJOYW1lIGhlYWRlck5hbWU7CiAgICAgaWYgKGZpbmRIVFRQSGVhZGVyTmFt
ZShuYW1lLCBoZWFkZXJOYW1lKSkKQEAgLTY3LDcgKzY3LDcgQEAgU3RyaW5nIEhUVFBIZWFkZXJN
YXA6OmdldChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CiAgICAgcmV0dXJuIGdldFVuY29tbW9u
SGVhZGVyKG5hbWUpOwogfQogCi1TdHJpbmcgSFRUUEhlYWRlck1hcDo6Z2V0VW5jb21tb25IZWFk
ZXIoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAorU3RyaW5nIEhUVFBIZWFkZXJNYXA6OmdldFVu
Y29tbW9uSGVhZGVyKFN0cmluZ1ZpZXcgbmFtZSkgY29uc3QKIHsKICAgICBhdXRvIGluZGV4ID0g
bV91bmNvbW1vbkhlYWRlcnMuZmluZElmKFsmXShhdXRvJiBoZWFkZXIpIHsKICAgICAgICAgcmV0
dXJuIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoaGVhZGVyLmtleSwgbmFtZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJNYXAuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck1hcC5oCmluZGV4IDFmZTE5ZDMx
MThiMTNiYWE4YjljYjA0YjNmN2RlNjk5YmQ4MGZmN2QuLjZkYTcwM2ZmNGQ2YzQxY2U1MjllMTEx
OGEzZDcwYjdkNTIwZjdmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvSFRUUEhlYWRlck1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUEhlYWRlck1hcC5oCkBAIC0xNTQsNyArMTU0LDcgQEAgcHVibGljOgogICAgICAgICBt
X3VuY29tbW9uSGVhZGVycy5zaHJpbmtUb0ZpdCgpOwogICAgIH0KIAotICAgIFdFQkNPUkVfRVhQ
T1JUIFN0cmluZyBnZXQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBTdHJpbmcgZ2V0KFN0cmluZ1ZpZXcgbmFtZSkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CkBAIC0yMTQsNyArMjE0LDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIHZvaWQgc2V0VW5jb21tb25IZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgZ2V0VW5j
b21tb25IZWFkZXIoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9S
VCBTdHJpbmcgZ2V0VW5jb21tb25IZWFkZXIoU3RyaW5nVmlldyBuYW1lKSBjb25zdDsKIAogICAg
IENvbW1vbkhlYWRlcnNWZWN0b3IgbV9jb21tb25IZWFkZXJzOwogICAgIFVuY29tbW9uSGVhZGVy
c1ZlY3RvciBtX3VuY29tbW9uSGVhZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvSFRUUFBhcnNlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9IVFRQUGFyc2Vycy5jcHAKaW5kZXggYzEyMmMyMWIxY2UwOTY0MzNhZGM4OWI5ZDZl
NjQ5MTkyM2Q4MmEzMy4uZTdiMzczYmU0YzRkYjMwNzk2ZDc3NTViMjZkMTlkNjJhMDNmYTI5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9IVFRQUGFyc2Vycy5jcHAK
QEAgLTkzOSw3ICs5MzksNyBAQCBib29sIGlzQ3Jvc3NPcmlnaW5TYWZlSGVhZGVyKEhUVFBIZWFk
ZXJOYW1lIG5hbWUsIGNvbnN0IEhUVFBIZWFkZXJTZXQmIGFjY2Vzc0NvbgogICAgIGRlZmF1bHQ6
CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICByZXR1cm4gYWNjZXNzQ29udHJvbEV4cG9zZUhl
YWRlclNldC5jb250YWlucyhodHRwSGVhZGVyTmFtZVN0cmluZyhuYW1lKS50b1N0cmluZ1dpdGhv
dXRDb3B5aW5nKCkpOworICAgIHJldHVybiBhY2Nlc3NDb250cm9sRXhwb3NlSGVhZGVyU2V0LmNv
bnRhaW5zPEFTQ0lJQ2FzZUluc2Vuc2l0aXZlU3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yPihodHRw
SGVhZGVyTmFtZVN0cmluZyhuYW1lKSk7CiB9CiAKIGJvb2wgaXNDcm9zc09yaWdpblNhZmVIZWFk
ZXIoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBIVFRQSGVhZGVyU2V0JiBhY2Nlc3NDb250cm9s
RXhwb3NlSGVhZGVyU2V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKaW5kZXggYTQyYmNlMTczMDYyMjRmNzhhM2Nl
ZWM2MGQ0MzhkYmJjZTI5ZDQyYy4uZmY0OTYxMGNmY2UzMjZhMWY4OGIzODg5MzQyMWIzNjcxYWQx
ZjAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVxdWVzdEJhc2UuY3BwCkBAIC0zMDgsMTAgKzMwOCwxMCBAQCBjb25zdCBIVFRQSGVh
ZGVyTWFwJiBSZXNvdXJjZVJlcXVlc3RCYXNlOjpodHRwSGVhZGVyRmllbGRzKCkgY29uc3QKICAg
ICByZXR1cm4gbV9odHRwSGVhZGVyRmllbGRzOyAKIH0KIAotU3RyaW5nIFJlc291cmNlUmVxdWVz
dEJhc2U6Omh0dHBIZWFkZXJGaWVsZChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CitTdHJpbmcg
UmVzb3VyY2VSZXF1ZXN0QmFzZTo6aHR0cEhlYWRlckZpZWxkKFN0cmluZ1ZpZXcgbmFtZSkgY29u
c3QKIHsKLSAgICB1cGRhdGVSZXNvdXJjZVJlcXVlc3QoKTsgCi0gICAgCisgICAgdXBkYXRlUmVz
b3VyY2VSZXF1ZXN0KCk7CisKICAgICByZXR1cm4gbV9odHRwSGVhZGVyRmllbGRzLmdldChuYW1l
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZVJlcXVlc3RCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVxdWVzdEJhc2UuaAppbmRleCAyMzUzMDgyYTNhMTVlOWJlZmUwMjQ4NTRkYjJiOWQwODA4
YWQwMTY2Li41ZjQ1NzY4MDhjYWI2ZTEyZjMyMjU3MDFkMDJiNjI1OWI4OWY3NjZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuaApAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3Qg
SFRUUEhlYWRlck1hcCYgaHR0cEhlYWRlckZpZWxkcygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0SFRUUEhlYWRlckZpZWxkcyhIVFRQSGVhZGVyTWFwKTsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIFN0cmluZyBodHRwSGVhZGVyRmllbGQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgaHR0cEhlYWRlckZpZWxkKFN0cmluZ1ZpZXcg
bmFtZSkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGh0dHBIZWFkZXJGaWVsZChI
VFRQSGVhZGVyTmFtZSkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRIVFRQSGVh
ZGVyRmllbGQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZSwgY29u
c3QgU3RyaW5nJiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IDBlZjk4ODE1YmVjOWUwYTdk
YmNmMTg1NTEyOTI0Y2FjMzkxZmNiNDAuLmIzNDFmMDI0Nzc3NTU4YjNhYmVkOTVlN2Y5Y2QxOTFh
M2NlY2I3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VSZXNwb25zZUJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCkBAIC00NjMsNyArNDYzLDcgQEAgdm9pZCBSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6c2FuaXRpemVIVFRQSGVhZGVyRmllbGRzQWNjb3JkaW5nVG9UYWlu
dGluZygpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbV9odHRwSGVhZGVyRmllbGRz
LmNvbW1vbkhlYWRlcnMoKS5yZW1vdmVBbGxNYXRjaGluZyhbJmNvcnNTYWZlSGVhZGVyU2V0XShh
dXRvJiBoZWFkZXIpIHsKLSAgICAgICAgICAgIHJldHVybiAhaXNTYWZlQ3Jvc3NPcmlnaW5SZXNw
b25zZUhlYWRlcihoZWFkZXIua2V5KSAmJiAhY29yc1NhZmVIZWFkZXJTZXQuY29udGFpbnMoaHR0
cEhlYWRlck5hbWVTdHJpbmcoaGVhZGVyLmtleSkudG9TdHJpbmdXaXRob3V0Q29weWluZygpKTsK
KyAgICAgICAgICAgIHJldHVybiAhaXNTYWZlQ3Jvc3NPcmlnaW5SZXNwb25zZUhlYWRlcihoZWFk
ZXIua2V5KSAmJiAhY29yc1NhZmVIZWFkZXJTZXQuY29udGFpbnM8QVNDSUlDYXNlSW5zZW5zaXRp
dmVTdHJpbmdWaWV3SGFzaFRyYW5zbGF0b3I+KGh0dHBIZWFkZXJOYW1lU3RyaW5nKGhlYWRlci5r
ZXkpKTsKICAgICAgICAgfSk7CiAgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy51bmNvbW1vbkhl
YWRlcnMoKS5yZW1vdmVBbGxNYXRjaGluZyhbJmNvcnNTYWZlSGVhZGVyU2V0XShhdXRvJiBoZWFk
ZXIpIHsgcmV0dXJuICFjb3JzU2FmZUhlYWRlclNldC5jb250YWlucyhoZWFkZXIua2V5KTsgfSk7
CiAgICAgICAgIGJyZWFrOwpAQCAtNTAzLDcgKzUwMyw3IEBAIGJvb2wgUmVzb3VyY2VSZXNwb25z
ZUJhc2U6OmlzSFRUUDA5KCkgY29uc3QKICAgICByZXR1cm4gbV9odHRwVmVyc2lvbi5zdGFydHNX
aXRoKCJIVFRQLzAuOSIpOwogfQogCi1TdHJpbmcgUmVzb3VyY2VSZXNwb25zZUJhc2U6Omh0dHBI
ZWFkZXJGaWVsZChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0CitTdHJpbmcgUmVzb3VyY2VSZXNw
b25zZUJhc2U6Omh0dHBIZWFkZXJGaWVsZChTdHJpbmdWaWV3IG5hbWUpIGNvbnN0CiB7CiAgICAg
bGF6eUluaXQoQ29tbW9uRmllbGRzT25seSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAppbmRleCAyNjJlNTMxODBk
NmRkN2M0ZDEzM2RkYzFkYWY1NjUyYmQ2ZjMxYzc2Li5jNGFjYzQ3ODQwOGRjM2MzMzZkY2Q1MjJj
NGNkYWUxY2ZmNzA5ZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCkBAIC0xMTksNyArMTE5LDcgQEAgcHVibGlj
OgogICAgIGVudW0gY2xhc3MgU2FuaXRpemF0aW9uVHlwZSB7IFJlZGlyZWN0aW9uLCBSZW1vdmVD
b29raWVzLCBDcm9zc09yaWdpblNhZmUgfTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNhbml0
aXplSFRUUEhlYWRlckZpZWxkcyhTYW5pdGl6YXRpb25UeXBlKTsKIAotICAgIFN0cmluZyBodHRw
SGVhZGVyRmllbGQoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICBTdHJpbmcgaHR0cEhl
YWRlckZpZWxkKFN0cmluZ1ZpZXcgbmFtZSkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3Ry
aW5nIGh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZSkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRIVFRQSGVhZGVyRmllbGQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBT
dHJpbmcmIHZhbHVlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEhUVFBIZWFkZXJGaWVs
ZChIVFRQSGVhZGVyTmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VD
dXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUN1cmwuY3BwCmluZGV4IDM2M2NiMmRlNDE3YzRmODZiYzY2ZmZmMzRmNDEy
NDQyODFlY2ZlNjEuLmNiNGIwY2U4YTczMDUxMWFjYzRmYTIwMzMzYTE1MzBiOWIwNjhlNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNh
dGlvbkNoYWxsZW5nZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCkBAIC0xMTEsMTIgKzExMSwx
MiBAQCBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlOjphdXRoZW50aWNhdGlvblNjaAogCiBTdHJpbmcgQXV0aGVudGljYXRpb25DaGFs
bGVuZ2U6OnBhcnNlUmVhbG0oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gd3d3QXV0aGVudGljYXRlKE1BS0VfU1RB
VElDX1NUUklOR19JTVBMKCJ3d3ctYXV0aGVudGljYXRlIikpOwotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IHByb3h5QXV0aGVudGljYXRlKE1BS0VfU1RBVElDX1NUUklOR19JTVBM
KCJwcm94eS1hdXRoZW50aWNhdGUiKSk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIHd3d0F1
dGhlbnRpY2F0ZSA9ICJ3d3ctYXV0aGVudGljYXRlIl9zOworICAgIHN0YXRpYyBjb25zdGV4cHIg
YXV0byBwcm94eUF1dGhlbnRpY2F0ZSA9ICJwcm94eS1hdXRoZW50aWNhdGUiX3M7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gcmVhbG1TdHJpbmcoTUFLRV9TVEFUSUNfU1RSSU5H
X0lNUEwoInJlYWxtPSIpKTsKIAogICAgIFN0cmluZyByZWFsbTsKLSAgICBhdXRvIGF1dGhIZWFk
ZXIgPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGQocmVzcG9uc2UuaXNVbmF1dGhvcml6ZWQoKSA/
IHd3d0F1dGhlbnRpY2F0ZSA6IHByb3h5QXV0aGVudGljYXRlKTsKKyAgICBhdXRvIGF1dGhIZWFk
ZXIgPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGQoU3RyaW5nVmlldyB7IHJlc3BvbnNlLmlzVW5h
dXRob3JpemVkKCkgPyB3d3dBdXRoZW50aWNhdGUgOiBwcm94eUF1dGhlbnRpY2F0ZSB9KTsKICAg
ICBhdXRvIHJlYWxtUG9zID0gYXV0aEhlYWRlci5maW5kSWdub3JpbmdBU0NJSUNhc2UocmVhbG1T
dHJpbmcuZ2V0KCkpOwogICAgIGlmIChyZWFsbVBvcyAhPSBub3RGb3VuZCkgewogICAgICAgICBy
ZWFsbSA9IGF1dGhIZWFkZXIuc3Vic3RyaW5nKHJlYWxtUG9zICsgcmVhbG1TdHJpbmcuZ2V0KCku
bGVuZ3RoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL1B1YmxpY1N1ZmZpeEN1cmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jdXJsL1B1YmxpY1N1ZmZpeEN1cmwuY3BwCmluZGV4IGY5YjAwZTE4NDUwOWJmN2I4YzVjMGFj
MzFkZTEyYzMyYjJlNTJmMzEuLmVmODk2MjI0ZmEwN2FhNWZkYTFmYTgyYThiY2NmMWY2YWQ3NzMw
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9QdWJs
aWNTdWZmaXhDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUHVibGljU3VmZml4Q3VybC5jcHAKQEAgLTMzLDE0ICszMywxNCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWJvb2wgaXNQdWJsaWNTdWZmaXgoY29uc3QgU3RyaW5nJiBkb21haW4pCiti
b29sIGlzUHVibGljU3VmZml4KFN0cmluZ1ZpZXcgZG9tYWluKQogewogICAgIGlmIChkb21haW4u
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBjb25zdCBwc2xfY3R4X3Qq
IHBzbCA9IHBzbF9idWlsdGluKCk7CiAgICAgQVNTRVJUKHBzbCk7Ci0gICAgYm9vbCByZXQgPSBw
c2xfaXNfcHVibGljX3N1ZmZpeDIocHNsLCBkb21haW4uY29udmVydFRvTG93ZXJjYXNlV2l0aG91
dExvY2FsZSgpLnV0ZjgoKS5kYXRhKCksIFBTTF9UWVBFX0FOWSB8IFBTTF9UWVBFX05PX1NUQVJf
UlVMRSk7CisgICAgYm9vbCByZXQgPSBwc2xfaXNfcHVibGljX3N1ZmZpeDIocHNsLCBkb21haW4u
dG9TdHJpbmdXaXRob3V0Q29weWluZygpLmNvbnZlcnRUb0xvd2VyY2FzZVdpdGhvdXRMb2NhbGUo
KS51dGY4KCkuZGF0YSgpLCBQU0xfVFlQRV9BTlkgfCBQU0xfVFlQRV9OT19TVEFSX1JVTEUpOwog
ICAgIHJldHVybiByZXQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggZGE5NWQyNmM3
YmYxMzJkOGQ4MzFkOGQyNDc5YTQ2Mzg5ZmRmNzQ0OC4uMjk1YWQwMmIyODBlODgwYjkxNjlkOGUw
ZjAxNjc4ODhjNTRhZmU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5jcHAKQEAgLTM0MCw3ICszNDAs
NyBAQCBzdGQ6Om9wdGlvbmFsPFJlc291cmNlRXJyb3I+IFNvdXBOZXR3b3JrU2Vzc2lvbjo6Y2hl
Y2tUTFNFcnJvcnMoY29uc3QgVVJMJiByZXF1ZQogICAgIGlmIChtX2lnbm9yZVRMU0Vycm9ycyB8
fCAhdGxzRXJyb3JzKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgYXV0byBp
dCA9IGFsbG93ZWRDZXJ0aWZpY2F0ZXMoKS5maW5kKHJlcXVlc3RVUkwuaG9zdCgpLnRvU3RyaW5n
V2l0aG91dENvcHlpbmcoKSk7CisgICAgYXV0byBpdCA9IGFsbG93ZWRDZXJ0aWZpY2F0ZXMoKS5m
aW5kPEFTQ0lJQ2FzZUluc2Vuc2l0aXZlU3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yPihyZXF1ZXN0
VVJMLmhvc3QoKSk7CiAgICAgaWYgKGl0ICE9IGFsbG93ZWRDZXJ0aWZpY2F0ZXMoKS5lbmQoKSAm
JiBpdC0+dmFsdWUuY29udGFpbnMoY2VydGlmaWNhdGUpKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3VwL1B1Ymxp
Y1N1ZmZpeFNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc291cC9QdWJsaWNTdWZm
aXhTb3VwLmNwcAppbmRleCA5NjYwOWQwOGQ5YWI5M2QwNjgxMDFmYmRhNDk5NTAyM2ExMmZmYzUw
Li4wZTIyYWE3MjlkZDYyYmE4YWM1NjE5ZjQ2ZjQwZjg5NWRjMTViYzY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zb3VwL1B1YmxpY1N1ZmZpeFNvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NvdXAvUHVibGljU3VmZml4U291cC5jcHAKQEAgLTMzLDcg
KzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIGlzUHVibGljU3VmZml4KGNv
bnN0IFN0cmluZyYgZG9tYWluKQorYm9vbCBpc1B1YmxpY1N1ZmZpeChTdHJpbmdWaWV3IGRvbWFp
bikKIHsKICAgICBpZiAoZG9tYWluLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2NoZW1lUmVn
aXN0cnkuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2NoZW1lUmVn
aXN0cnkuY3BwCmluZGV4IDQzNDgwYjljN2JhMTQ5Mjg3NWU2ZTI2Y2ViMTMyYTMzZmU3MTVmZmUu
LjVlN2QyZTEwMWMzYTViMWRmZmQ0OGQ3MmVlNWU0ZGU1OGJiZGFjNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1NjaGVtZVJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTY2hlbWVSZWdpc3RyeS5jcHAK
QEAgLTM3LDcgKzM3LDcgQEAgYm9vbCBOZXR3b3JrU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0
VVJMU2NoZW1lQXNDT1JTRW5hYmxlZChTdHJpbmdWaWV3IHNjaGVtZSkKIHsKICAgICBpZiAoc2No
ZW1lLnN0YXJ0c1dpdGgoImh0dHAiKSkKICAgICAgICAgcmV0dXJuIHNjaGVtZS5sZW5ndGgoKSA9
PSA0IHx8IChzY2hlbWUubGVuZ3RoKCkgPT0gNSAmJiBzY2hlbWVbNF0gPT0gJ3MnKTsKLSAgICBy
ZXR1cm4gbV9jb3JzRW5hYmxlZFNjaGVtZXMuY29udGFpbnMoc2NoZW1lLnRvU3RyaW5nV2l0aG91
dENvcHlpbmcoKSk7CisgICAgcmV0dXJuIG1fY29yc0VuYWJsZWRTY2hlbWVzLmNvbnRhaW5zPFN0
cmluZ1ZpZXdIYXNoVHJhbnNsYXRvcj4oc2NoZW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hl
U3RvcmFnZUVuZ2luZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwCmluZGV4IGI3NWM3ODc0Zjg1ZGFiYzljMTY3
MmZlNDAwNjc4ZDU5NmQ3MjUzZmYuLmUzMzVkODc5ZGUxOTFiOTdjMzk1ZGE3NTUxM2Y5NjliNThj
YjdhMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwCkBAIC05MCw4ICs5MCw3IEBAIHN0
YXRpYyBpbmxpbmUgdm9pZCB1cGRhdGVWYXJ5SW5mb3JtYXRpb24oUmVjb3JkSW5mb3JtYXRpb24m
IHJlY29yZEluZm9ybWF0aW9uLCBjCiAgICAgdmFyeVZhbHVlLnNwbGl0KCcsJywgWyZdKFN0cmlu
Z1ZpZXcgdmlldykgewogICAgICAgICBpZiAoIXJlY29yZEluZm9ybWF0aW9uLmhhc1ZhcnlTdGFy
ICYmIHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRUUFNwYWNlcyh2aWV3KSA9PSAiKiIpCiAgICAg
ICAgICAgICByZWNvcmRJbmZvcm1hdGlvbi5oYXNWYXJ5U3RhciA9IHRydWU7Ci0gICAgICAgIFN0
cmluZyBoZWFkZXJOYW1lID0gdmlldy50b1N0cmluZygpOwotICAgICAgICByZWNvcmRJbmZvcm1h
dGlvbi52YXJ5SGVhZGVycy5hZGQoaGVhZGVyTmFtZSwgcmVxdWVzdC5odHRwSGVhZGVyRmllbGQo
aGVhZGVyTmFtZSkpOworICAgICAgICByZWNvcmRJbmZvcm1hdGlvbi52YXJ5SGVhZGVycy5hZGQo
dmlldy50b1N0cmluZygpLCByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZCh2aWV3KSk7CiAgICAgfSk7
CiAKICAgICBpZiAocmVjb3JkSW5mb3JtYXRpb24uaGFzVmFyeVN0YXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KaW5kZXggMzM4MTZhOGQzYmQ4ODVmOThkMTJjNDkzNGJlYTZhZjY5ZDg1YTEyNS4uN2IwNDJh
MzY1M2M1OWVhMTk1ZmRmZjQxMjQ1YzE2ZTZhMzYwMTVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpA
QCAtMTE2OCwxMiArMTE2OCwxMiBAQCBzdGF0aWMgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4gcHJv
eHlEaWN0aW9uYXJ5KGNvbnN0IFVSTCYgaHR0cFByb3h5LCBjb25zdCBVUkwmCiAKICAgICBhdXRv
IGRpY3Rpb25hcnkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF0p
OwogICAgIGlmIChodHRwUHJveHkuaXNWYWxpZCgpKSB7Ci0gICAgICAgIFtkaWN0aW9uYXJ5IHNl
dE9iamVjdDpodHRwUHJveHkuaG9zdCgpLnRvU3RyaW5nKCkgZm9yS2V5OihOU1N0cmluZyAqKWtD
RlN0cmVhbVByb3BlcnR5SFRUUFByb3h5SG9zdF07CisgICAgICAgIFtkaWN0aW9uYXJ5IHNldE9i
amVjdDpodHRwUHJveHkuaG9zdCgpLmNyZWF0ZU5TU3RyaW5nKCkuZ2V0KCkgZm9yS2V5OihOU1N0
cmluZyAqKWtDRlN0cmVhbVByb3BlcnR5SFRUUFByb3h5SG9zdF07CiAgICAgICAgIGlmIChhdXRv
IHBvcnQgPSBodHRwUHJveHkucG9ydCgpKQogICAgICAgICAgICAgW2RpY3Rpb25hcnkgc2V0T2Jq
ZWN0OkAoKnBvcnQpIGZvcktleTooTlNTdHJpbmcgKilrQ0ZTdHJlYW1Qcm9wZXJ0eUhUVFBQcm94
eVBvcnRdOwogICAgIH0KICAgICBpZiAoaHR0cHNQcm94eS5pc1ZhbGlkKCkpIHsKLSAgICAgICAg
W2RpY3Rpb25hcnkgc2V0T2JqZWN0Omh0dHBzUHJveHkuaG9zdCgpLnRvU3RyaW5nKCkgZm9yS2V5
OihOU1N0cmluZyAqKWtDRlN0cmVhbVByb3BlcnR5SFRUUFNQcm94eUhvc3RdOworICAgICAgICBb
ZGljdGlvbmFyeSBzZXRPYmplY3Q6aHR0cHNQcm94eS5ob3N0KCkuY3JlYXRlTlNTdHJpbmcoKS5n
ZXQoKSBmb3JLZXk6KE5TU3RyaW5nICopa0NGU3RyZWFtUHJvcGVydHlIVFRQU1Byb3h5SG9zdF07
CiAgICAgICAgIGlmIChhdXRvIHBvcnQgPSBodHRwc1Byb3h5LnBvcnQoKSkKICAgICAgICAgICAg
IFtkaWN0aW9uYXJ5IHNldE9iamVjdDpAKCpwb3J0KSBmb3JLZXk6KE5TU3RyaW5nICopa0NGU3Ry
ZWFtUHJvcGVydHlIVFRQU1Byb3h5UG9ydF07CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4
IGU2N2Y3ZWQyOWJjNTJlYWM5MjZmZWE3NTZlN2E1OGFmNWNjNjFhNTcuLmFlZjMxMjU0MmY4NmYx
NTg0NTk3NjgxOTkxMGEzYTVhYTBiZDM5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTE1NzEs
NyArMTU3MSw3IEBAIGJvb2wgTmV0d29ya0RhdGFUYXNrU291cDo6c2hvdWxkQWxsb3dIU1RTUG9s
aWN5U2V0dGluZygpIGNvbnN0CiAjaWYgRU5BQkxFKFBVQkxJQ19TVUZGSVhfTElTVCkKICAgICBy
ZXR1cm4gaXNUb3BMZXZlbE5hdmlnYXRpb24oKQogICAgICAgICB8fCBtX2N1cnJlbnRSZXF1ZXN0
LnVybCgpLmhvc3QoKSA9PSBtX2N1cnJlbnRSZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCku
aG9zdCgpCi0gICAgICAgIHx8IGlzUHVibGljU3VmZml4KG1fY3VycmVudFJlcXVlc3QudXJsKCku
aG9zdCgpLnRvU3RyaW5nV2l0aG91dENvcHlpbmcoKSk7CisgICAgICAgIHx8IGlzUHVibGljU3Vm
Zml4KG1fY3VycmVudFJlcXVlc3QudXJsKCkuaG9zdCgpKTsKICNlbHNlCiAgICAgcmV0dXJuIGlz
VG9wTGV2ZWxOYXZpZ2F0aW9uKCkKICAgICAgICAgfHwgbV9jdXJyZW50UmVxdWVzdC51cmwoKS5o
b3N0KCkgPT0gbV9jdXJyZW50UmVxdWVzdC5maXJzdFBhcnR5Rm9yQ29va2llcygpLmhvc3QoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDkwNzM2OTZhMjVk
YzllOTE1YjMyNWQ3ZDZjMzlkZjMyOTFlM2Y5ZTMuLjg1NWIzYTdkMmUwNWIwYTI2YzgzNjg0MWU5
ZGJjMTY2MDM2OGRmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtNTUzOSw3ICs1NTM5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25BY3Rpb24oUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXMKICAgICAvLyBP
dGhlciBwb3J0cyBkbyBub3QgaW1wbGVtZW50IFdlYlBhZ2U6OnBsYXRmb3JtQ2FuSGFuZGxlUmVx
dWVzdCgpLgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIC8vIFNhbmRib3hlZCBpZnJhbWVzIHNo
b3VsZCBiZSBhbGxvd2VkIHRvIG9wZW4gZXh0ZXJuYWwgYXBwcyB2aWEgY3VzdG9tIHByb3RvY29s
cyB1bmxlc3MgZXhwbGljaXRlbHkgYWxsb3dlZCAoaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy8jaGFuZC1vZmYtdG8tZXh0ZXJuYWwtc29mdHdhcmUpLgotICAgIGJvb2wgY2FuSGFuZGxlUmVx
dWVzdCA9IG5hdmlnYXRpb25BY3Rpb25EYXRhLmNhbkhhbmRsZVJlcXVlc3QgfHwgbV91cmxTY2hl
bWVIYW5kbGVyc0J5U2NoZW1lLmNvbnRhaW5zKHJlcXVlc3QudXJsKCkucHJvdG9jb2woKS50b1N0
cmluZ1dpdGhvdXRDb3B5aW5nKCkpOworICAgIGJvb2wgY2FuSGFuZGxlUmVxdWVzdCA9IG5hdmln
YXRpb25BY3Rpb25EYXRhLmNhbkhhbmRsZVJlcXVlc3QgfHwgbV91cmxTY2hlbWVIYW5kbGVyc0J5
U2NoZW1lLmNvbnRhaW5zPFN0cmluZ1ZpZXdIYXNoVHJhbnNsYXRvcj4ocmVxdWVzdC51cmwoKS5w
cm90b2NvbCgpKTsKICAgICBpZiAoIWNhbkhhbmRsZVJlcXVlc3QgJiYgIWRlc3RpbmF0aW9uRnJh
bWVJbmZvLT5pc01haW5GcmFtZSgpICYmICFmcmFtZVNhbmRib3hBbGxvd3NPcGVuaW5nRXh0ZXJu
YWxDdXN0b21Qcm90b2NvbHMobmF2aWdhdGlvbkFjdGlvbkRhdGEuZWZmZWN0aXZlU2FuZGJveEZs
YWdzLCAhIW5hdmlnYXRpb25BY3Rpb25EYXRhLnVzZXJHZXN0dXJlVG9rZW5JZGVudGlmaWVyKSkg
ewogICAgICAgICBpZiAoIXNvdXJjZUZyYW1lSW5mbyB8fCAhbV9wcmVmZXJlbmNlcy0+bmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MoKSB8fCAhUXVpcmtzOjpzaG91bGRBbGxvd05hdmlnYXRpb25Ub0N1
c3RvbVByb3RvY29sV2l0aG91dFVzZXJHZXN0dXJlKHJlcXVlc3QudXJsKCkucHJvdG9jb2woKSwg
c291cmNlRnJhbWVJbmZvLT5zZWN1cml0eU9yaWdpbigpKSkgewogICAgICAgICAgICAgV0VCUEFH
RVBST1hZX1JFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3MsICJJZ25vcmluZyByZXF1ZXN0IHRvIGxv
YWQgdGhpcyBtYWluIHJlc291cmNlIGJlY2F1c2UgaXQgaGFzIGEgY3VzdG9tIHByb3RvY29sIGFu
ZCBjb21lcyBmcm9tIGEgc2FuZGJveGVkIGlmcmFtZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IDQwODA4
M2M5NzM3NzA5ZjgyZmYwYWI3OWM4MjIzMjJkMjFjOGE5MzguLmIxMWM1OGZlZWMwMmUwYzI3NjEw
MjJiNzQzNzNhMjg3YWY4OTliZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCBi
b29sIFdlYkxvYWRlclN0cmF0ZWd5Ojp0cnlMb2FkaW5nVXNpbmdVUkxTY2hlbWVIYW5kbGVyKFJl
c291cmNlTG9hZGVyJiByZXNvdXJjZQogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgYXV0byogaGFuZGxlciA9IHdlYlBhZ2UtPnVybFNjaGVtZUhhbmRsZXJG
b3JTY2hlbWUocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnVybCgpLnByb3RvY29sKCkudG9TdHJp
bmdXaXRob3V0Q29weWluZygpKTsKKyAgICBhdXRvKiBoYW5kbGVyID0gd2ViUGFnZS0+dXJsU2No
ZW1lSGFuZGxlckZvclNjaGVtZShyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkudXJsKCkucHJvdG9j
b2woKSk7CiAgICAgaWYgKCFoYW5kbGVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTYz
Myw3ICs2MzMsNyBAQCBzdGQ6Om9wdGlvbmFsPFdlYkxvYWRlclN0cmF0ZWd5OjpTeW5jTG9hZFJl
c3VsdD4gV2ViTG9hZGVyU3RyYXRlZ3k6OnRyeUxvYWRpbmdTeQogICAgIGlmICghd2ViUGFnZSkK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGF1dG8qIGhhbmRsZXIgPSB3ZWJQ
YWdlLT51cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKHJlcXVlc3QudXJsKCkucHJvdG9jb2woKS50
b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpOworICAgIGF1dG8qIGhhbmRsZXIgPSB3ZWJQYWdlLT51
cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKHJlcXVlc3QudXJsKCkucHJvdG9jb2woKSk7CiAgICAg
aWYgKCFoYW5kbGVyKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA3MGVmY2QyNGYzZGEyYjNlODNiNDQwNzc2MjhkNjI2
MDFmYTdiZTQ1Li43ODkxY2Q0MmFjNzE0NGIxYTE4YTY5Y2FiYjg2MjhmNWE2ODhmYTc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTEzODUsMTMgKzEzODUsMTMgQEAgYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmlu
ZyYgLypNSU1FVHlwZSovKSBjb24KICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgU3Ry
aW5nJiAvKlVSTFNjaGVtZSovKSBjb25zdAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVw
cmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoU3RyaW5nVmlldyAvKlVSTFNjaGVtZSovKSBj
b25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1T
dHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1l
KGNvbnN0IFN0cmluZyYgLypVUkxTY2hlbWUqLykgY29uc3QKK1N0cmluZyBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoU3RyaW5nVmlldyAvKlVSTFNj
aGVtZSovKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIFN0cmlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAxZDMwYmMzOTM4M2FmZmYyY2E5
YzI4NzUzZGQyZDdlYzJiMjY0OTFlLi4zMzhlNTgzZTRjMjU0N2U2ODVhMjUzZTIwNDgyOWY5YzY4
NjRlYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTg2LDggKzE4Niw4IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuU2hvd01JTUVUeXBlKGNvbnN0
IFN0cmluZyYgTUlNRVR5cGUpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuU2hvd01JTUVUeXBl
QXNIVE1MKGNvbnN0IFN0cmluZyYgTUlNRVR5cGUpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgcmVw
cmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29uc3QgU3RyaW5nJiBVUkxTY2hlbWUpIGNv
bnN0IGZpbmFsOwotICAgIFN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25z
dCBTdHJpbmcmIFVSTFNjaGVtZSkgY29uc3QgZmluYWw7CisgICAgYm9vbCByZXByZXNlbnRhdGlv
bkV4aXN0c0ZvclVSTFNjaGVtZShTdHJpbmdWaWV3IFVSTFNjaGVtZSkgY29uc3QgZmluYWw7Cisg
ICAgU3RyaW5nIGdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKFN0cmluZ1ZpZXcgVVJMU2No
ZW1lKSBjb25zdCBmaW5hbDsKICAgICAKICAgICB2b2lkIGZyYW1lTG9hZENvbXBsZXRlZCgpIGZp
bmFsOwogICAgIHZvaWQgc2F2ZVZpZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSYp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
Q29va2llQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQ29v
a2llQ2FjaGUuY3BwCmluZGV4IDdhZWJjNDY0YWY0NGZlYjQ5N2M4ZTE0YjNhY2RjMzMxYzY2Y2Fj
OTUuLjBjMTdhNjMyMWM1MjU5Nzk1NzVjM2UyOTE2ODU4MTIxMzNiN2U1NDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkNvb2tpZUNhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJDb29raWVDYWNoZS5jcHAKQEAg
LTQ2LDE0ICs0NiwxNCBAQCBib29sIFdlYkNvb2tpZUNhY2hlOjppc1N1cHBvcnRlZCgpCiAKIFN0
cmluZyBXZWJDb29raWVDYWNoZTo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZpcnN0UGFydHks
IGNvbnN0IFNhbWVTaXRlSW5mbyYgc2FtZVNpdGVJbmZvLCBjb25zdCBVUkwmIHVybCwgRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgSW5jbHVkZVNlY3VyZUNv
b2tpZXMgaW5jbHVkZVNlY3VyZUNvb2tpZXMpCiB7Ci0gICAgU3RyaW5nIGhvc3QgPSB1cmwuaG9z
dCgpLnRvU3RyaW5nKCk7Ci0gICAgaWYgKCFtX2hvc3RzV2l0aEluTWVtb3J5U3RvcmFnZS5jb250
YWlucyhob3N0KSkgeworICAgIGlmICghbV9ob3N0c1dpdGhJbk1lbW9yeVN0b3JhZ2UuY29udGFp
bnM8U3RyaW5nVmlld0hhc2hUcmFuc2xhdG9yPih1cmwuaG9zdCgpKSkgeworICAgICAgICBhdXRv
IGhvc3QgPSB1cmwuaG9zdCgpLnRvU3RyaW5nKCk7CiAgICAgICAgIFZlY3RvcjxDb29raWU+IGNv
b2tpZXM7CiAgICAgICAgIGJvb2wgc3Vic2NyaWJlVG9Db29raWVDaGFuZ2VOb3RpZmljYXRpb25z
ID0gdHJ1ZTsKLSAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpEb21Db29raWVzRm9ySG9zdCh1cmwuaG9zdCgp
LnRvU3RyaW5nKCksIHN1YnNjcmliZVRvQ29va2llQ2hhbmdlTm90aWZpY2F0aW9ucyksIE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6RG9tQ29va2llc0Zvckhvc3Q6OlJl
cGx5KGNvb2tpZXMpLCAwKSkKKyAgICAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFN5bmMoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpEb21Db29raWVzRm9ySG9zdCho
b3N0LCBzdWJzY3JpYmVUb0Nvb2tpZUNoYW5nZU5vdGlmaWNhdGlvbnMpLCBNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkRvbUNvb2tpZXNGb3JIb3N0OjpSZXBseShjb29r
aWVzKSwgMCkpCiAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICBwcnVuZUNhY2hlSWZO
ZWNlc3NhcnkoKTsKLSAgICAgICAgbV9ob3N0c1dpdGhJbk1lbW9yeVN0b3JhZ2UuYWRkKGhvc3Qp
OworICAgICAgICBtX2hvc3RzV2l0aEluTWVtb3J5U3RvcmFnZS5hZGQoV1RGTW92ZShob3N0KSk7
CiAgICAgICAgIGZvciAoYXV0byYgY29va2llIDogY29va2llcykKICAgICAgICAgICAgIGluTWVt
b3J5U3RvcmFnZVNlc3Npb24oKS5zZXRDb29raWUoY29va2llKTsKICAgICB9CkBAIC02Miw4ICs2
Miw3IEBAIFN0cmluZyBXZWJDb29raWVDYWNoZTo6Y29va2llc0ZvckRPTShjb25zdCBVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFNhbWVTaXRlSW5mbyYKIAogdm9pZCBXZWJDb29raWVDYWNoZTo6c2V0
Q29va2llc0Zyb21ET00oY29uc3QgVVJMJiBmaXJzdFBhcnR5LCBjb25zdCBTYW1lU2l0ZUluZm8m
IHNhbWVTaXRlSW5mbywgY29uc3QgVVJMJiB1cmwsIEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFN0cmluZyYgY29va2llU3RyaW5nLCBTaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVC
bG9ja2luZykKIHsKLSAgICBTdHJpbmcgaG9zdCA9IHVybC5ob3N0KCkudG9TdHJpbmcoKTsKLSAg
ICBpZiAobV9ob3N0c1dpdGhJbk1lbW9yeVN0b3JhZ2UuY29udGFpbnMoaG9zdCkpCisgICAgaWYg
KG1faG9zdHNXaXRoSW5NZW1vcnlTdG9yYWdlLmNvbnRhaW5zPFN0cmluZ1ZpZXdIYXNoVHJhbnNs
YXRvcj4odXJsLmhvc3QoKSkpCiAgICAgICAgIGluTWVtb3J5U3RvcmFnZVNlc3Npb24oKS5zZXRD
b29raWVzRnJvbURPTShmaXJzdFBhcnR5LCBzYW1lU2l0ZUluZm8sIHVybCwgZnJhbWVJRCwgcGFn
ZUlELCBTaG91bGRBc2tJVFA6Ok5vLCBjb29raWVTdHJpbmcsIHNob3VsZFJlbGF4VGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCBhMmUxYzEzMTUwNTI3YTJlMDE2NTA3MTJiNDlkZTdlZTkxZTY5
NTBjLi4xMzYzOGZmMjk2MzljZTQzZmQ2NmJkOGU5ZTJiZWZjNWE4YjJlMGI1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNTg3MSw3ICs1ODcx
LDcgQEAgdm9pZCBXZWJQYWdlOjpydW5Nb2RhbCgpCiAKIGJvb2wgV2ViUGFnZTo6Y2FuSGFuZGxl
UmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAg
aWYgKExlZ2FjeVNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3Vt
ZW50KHJlcXVlc3QudXJsKCkucHJvdG9jb2woKS50b1N0cmluZ1dpdGhvdXRDb3B5aW5nKCkpKQor
ICAgIGlmIChMZWdhY3lTY2hlbWVSZWdpc3RyeTo6c2hvdWxkTG9hZFVSTFNjaGVtZUFzRW1wdHlE
b2N1bWVudChyZXF1ZXN0LnVybCgpLnByb3RvY29sKCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgIGlmIChyZXF1ZXN0LnVybCgpLnByb3RvY29sSXNCbG9iKCkpCkBAIC03MjA0LDkgKzcy
MDQsOSBAQCB2b2lkIFdlYlBhZ2U6OnNldFVzZUljb25Mb2FkaW5nQ2xpZW50KGJvb2wgdXNlSWNv
bkxvYWRpbmdDbGllbnQpCiAgICAgc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQmPihj
b3JlUGFnZSgpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5jbGllbnQoKSkuc2V0VXNlSWNvbkxvYWRp
bmdDbGllbnQodXNlSWNvbkxvYWRpbmdDbGllbnQpOwogfQogCi1XZWJVUkxTY2hlbWVIYW5kbGVy
UHJveHkqIFdlYlBhZ2U6OnVybFNjaGVtZUhhbmRsZXJGb3JTY2hlbWUoY29uc3QgU3RyaW5nJiBz
Y2hlbWUpCitXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkqIFdlYlBhZ2U6OnVybFNjaGVtZUhhbmRs
ZXJGb3JTY2hlbWUoU3RyaW5nVmlldyBzY2hlbWUpCiB7Ci0gICAgcmV0dXJuIG1fc2NoZW1lVG9V
UkxTY2hlbWVIYW5kbGVyUHJveHlNYXAuZ2V0KHNjaGVtZSk7CisgICAgcmV0dXJuIG1fc2NoZW1l
VG9VUkxTY2hlbWVIYW5kbGVyUHJveHlNYXAuZ2V0PFN0cmluZ1ZpZXdIYXNoVHJhbnNsYXRvcj4o
c2NoZW1lKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzdG9wQWxsVVJMU2NoZW1lVGFza3MoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDFlZTc0ZjRkOTIz
N2VhMDg5YzI4OWZjMTE0YTYwOTczOGMzNTkyNWMuLmJmNDNmNWQ4NTRhY2MzMjVjMmVhZjUxMmZk
YTA3NjZmNjNiY2MzMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTEyODgsNyArMTI4OCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGlkRmluaXNo
TG9hZGluZ0ltYWdlRm9yRWxlbWVudChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Jik7CiAKLSAg
ICBXZWJVUkxTY2hlbWVIYW5kbGVyUHJveHkqIHVybFNjaGVtZUhhbmRsZXJGb3JTY2hlbWUoY29u
c3QgU3RyaW5nJik7CisgICAgV2ViVVJMU2NoZW1lSGFuZGxlclByb3h5KiB1cmxTY2hlbWVIYW5k
bGVyRm9yU2NoZW1lKFN0cmluZ1ZpZXcpOwogICAgIHZvaWQgc3RvcEFsbFVSTFNjaGVtZVRhc2tz
KCk7CiAKICAgICBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4gY3B1TGltaXQoKSBjb25zdCB7IHJldHVy
biBtX2NwdUxpbWl0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA4ZGY5OTNmMmQ3
NzViNmM5M2QyZThmMDk5MGY3MmY4NWY2MThlNThlLi5hZTc3MTE3Y2E5NzExMDc1N2JmNTczZGMw
YTkwZGJiNjhjMTk1ZDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE5Myw4ICsx
OTMsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgY2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBmaW5hbDsKICAgICBib29sIGNhblNob3dNSU1FVHlw
ZShjb25zdCBXVEY6OlN0cmluZyYgTUlNRVR5cGUpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2Fu
U2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlwZSkgY29uc3QgZmlu
YWw7Ci0gICAgYm9vbCByZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBXVEY6
OlN0cmluZyYgVVJMU2NoZW1lKSBjb25zdCBmaW5hbDsKLSAgICBXVEY6OlN0cmluZyBnZW5lcmF0
ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25zdCBXVEY6OlN0cmluZyYgVVJMU2NoZW1lKSBjb25z
dCBmaW5hbDsKKyAgICBib29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKFdURjo6
U3RyaW5nVmlldyBVUkxTY2hlbWUpIGNvbnN0IGZpbmFsOworICAgIFdURjo6U3RyaW5nIGdlbmVy
YXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKFdURjo6U3RyaW5nVmlldyBVUkxTY2hlbWUpIGNvbnN0
IGZpbmFsOwogCiAgICAgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBmaW5hbDsKICAgICB2b2lk
IHNhdmVWaWV3U3RhdGVUb0l0ZW0oV2ViQ29yZTo6SGlzdG9yeUl0ZW0mKSBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggODdhNWQ2NTdmN2I3MzNkMDdjNWRiNjAxZjY5ODFm
OTA0OTc3MTM5My4uYjhiY2FlMWUxNzQ4NTYxYjAyYWZlZGMzODc4NDBlY2YxY2ZiNzkxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTExODYsMTQgKzExODYsMTQgQEAgYm9vbCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlQXNIVE1MKGNvbnN0IFN0cmluZyYg
TUlNRVR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIFtXZWJWaWV3IGNhblNob3dNSU1FVHlwZUFzSFRN
TDpNSU1FVHlwZV07CiB9CiAKLWJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlcHJlc2VudGF0
aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgVVJMU2NoZW1lKSBjb25zdAorYm9v
bCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUo
U3RyaW5nVmlldyBVUkxTY2hlbWUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFtXZWJWaWV3IF9yZXBy
ZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZTpVUkxTY2hlbWVdOworICAgIHJldHVybiBbV2Vi
VmlldyBfcmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWU6VVJMU2NoZW1lLmNyZWF0ZU5T
U3RyaW5nKCkuZ2V0KCldOwogfQogCi1TdHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVy
YXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgVVJMU2NoZW1lKSBjb25zdAor
U3RyaW5nIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVt
ZShTdHJpbmdWaWV3IFVSTFNjaGVtZSkgY29uc3QKIHsKLSAgICByZXR1cm4gW1dlYlZpZXcgX2dl
bmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lOlVSTFNjaGVtZV07CisgICAgcmV0dXJuIFtXZWJW
aWV3IF9nZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZTpVUkxTY2hlbWUuY3JlYXRlTlNTdHJp
bmcoKS5nZXQoKV07CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZENv
bXBsZXRlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMTI3MGU1N2RkOTVi
MGQwMDAzYjVlNTY3N2Q0NzQyYTEyNTUyZDg1My4uZmE5NTM3MjcyZjcyNmZlZDMzYzdiZjIyZWEz
ZWIzODhjMzk0Y2QxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODE0LDEz
ICs4MTQsMTMgQEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuU2hvd01JTUVUeXBlQXNI
VE1MKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIG1fd2ViRnJhbWUt
PndlYlZpZXcoKS0+Y2FuU2hvd01JTUVUeXBlQXNIVE1MKG1pbWVUeXBlKTsKIH0KIAotYm9vbCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoY29u
c3QgU3RyaW5nJiAvKlVSTFNjaGVtZSovKSBjb25zdAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6cmVwcmVzZW50YXRpb25FeGlzdHNGb3JVUkxTY2hlbWUoU3RyaW5nVmlldyAvKlVSTFNjaGVt
ZSovKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1TdHJpbmcgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmdlbmVyYXRlZE1JTUVUeXBlRm9yVVJM
U2NoZW1lKGNvbnN0IFN0cmluZyYgLypVUkxTY2hlbWUqLykgY29uc3QKK1N0cmluZyBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6Z2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoU3RyaW5nVmlldyAv
KlVSTFNjaGVtZSovKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3OTI2ZmQzNjcx
ODA5ZTgzODQ3YTQ4MDMxYThiOTBjNjM4ZmFmN2U0Li41YjZjZjlkMTExN2QzZjcwOTFlOTllMWQ1
ZTdmYWNjZTQ3NjJjOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTE1NCw4ICsx
NTQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgY2FuU2hvd01JTUVU
eXBlKGNvbnN0IFdURjo6U3RyaW5nJiBNSU1FVHlwZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9v
bCBjYW5TaG93TUlNRVR5cGVBc0hUTUwoY29uc3QgV1RGOjpTdHJpbmcmIE1JTUVUeXBlKSBjb25z
dCBvdmVycmlkZTsKLSAgICBib29sIHJlcHJlc2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNv
bnN0IFdURjo6U3RyaW5nJiBVUkxTY2hlbWUpIGNvbnN0IG92ZXJyaWRlOwotICAgIFdURjo6U3Ry
aW5nIGdlbmVyYXRlZE1JTUVUeXBlRm9yVVJMU2NoZW1lKGNvbnN0IFdURjo6U3RyaW5nJiBVUkxT
Y2hlbWUpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgcmVwcmVzZW50YXRpb25FeGlzdHNGb3JV
UkxTY2hlbWUoV1RGOjpTdHJpbmdWaWV3IFVSTFNjaGVtZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAg
V1RGOjpTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVGb3JVUkxTY2hlbWUoV1RGOjpTdHJpbmdWaWV3
IFVSTFNjaGVtZSkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGZyYW1lTG9hZENvbXBsZXRl
ZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2F2ZVZpZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0
b3J5SXRlbSYpIG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>