<?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>237283</bug_id>
          
          <creation_ts>2022-02-28 12:38:45 -0800</creation_ts>
          <short_desc>Migrate third-party IndexedDB data to GeneralStorageDirectory</short_desc>
          <delta_ts>2022-03-01 00:03:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Website Storage</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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846726</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-28 12:38:45 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846759</commentid>
    <comment_count>1</comment_count>
      <attachid>453422</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-28 13:57:53 -0800</bug_when>
    <thetext>Created attachment 453422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846882</commentid>
    <comment_count>2</comment_count>
      <attachid>453422</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-28 19:11:42 -0800</bug_when>
    <thetext>Comment on attachment 453422
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:407
&gt; +    auto preferences = (__bridge WKPreferencesRef)[configuration preferences];

Why cast to C API?

Let&apos;s just use the Cocoa API:
`[[configuration preferences] _setStorageBlockingPolicy:_WKStorageBlockingPolicyAllowAll];`

You may have to include WKPreferencesPrivate.h if not already included.

Mixing C and Cocoa API is a bit ugly :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846894</commentid>
    <comment_count>3</comment_count>
      <attachid>453422</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-28 20:01:28 -0800</bug_when>
    <thetext>Comment on attachment 453422
Patch

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

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:407
&gt;&gt; +    auto preferences = (__bridge WKPreferencesRef)[configuration preferences];
&gt; 
&gt; Why cast to C API?
&gt; 
&gt; Let&apos;s just use the Cocoa API:
&gt; `[[configuration preferences] _setStorageBlockingPolicy:_WKStorageBlockingPolicyAllowAll];`
&gt; 
&gt; You may have to include WKPreferencesPrivate.h if not already included.
&gt; 
&gt; Mixing C and Cocoa API is a bit ugly :)

Sure :) I didn&apos;t see the Cocoa API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846925</commentid>
    <comment_count>4</comment_count>
      <attachid>453477</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-02-28 22:47:41 -0800</bug_when>
    <thetext>Created attachment 453477
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846935</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-01 00:02:10 -0800</bug_when>
    <thetext>Committed r290632 (247905@main): &lt;https://commits.webkit.org/247905@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453477.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846936</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-01 00:03:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/89605260&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453422</attachid>
            <date>2022-02-28 13:57:53 -0800</date>
            <delta_ts>2022-02-28 22:47:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237283-20220228135753.patch</filename>
            <type>text/plain</type>
            <size>26352</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhjMWIwMWQ1NGNmMTQ1YjNh
NDc1OWZlZDI0NWM2MzMyNTRkYTFiMTYuLjRiNDEyN2ZmYmZkNmE3MzA4NDRlZTc1ODMwNDU2MmI1
NTZmN2E4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMjggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgTWlncmF0ZSB0aGlyZC1wYXJ0eSBJ
bmRleGVkREIgZGF0YSB0byBHZW5lcmFsU3RvcmFnZURpcmVjdG9yeQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gY3VycmVudCBzdG9yYWdlIGxheW91
dCwgdGhpcmQtcGFydHkgSW5kZXhlZERCIGRhdGEgaXMgc3RvcmVkIGluIGEgc3ViZGlyZWN0b3J5
IG9mIHRvcCBvcmlnaW4gZGlyZWN0b3J5LCBlLmcuCisgICAgICAgIFtJbmRleGVkREJEaXJlY3Rv
cnldL1tUb3BPcmlnaW5dL1tUaGlyZFBhcnR5T3JpZ2luXS9bRGF0YWJhc2VdLiBGaXJzdC1wYXJ0
eSBkYXRhIGlzIHN0b3JlZCBpbiB0aGUgdG9wIG9yaWdpbgorICAgICAgICBkaXJlY3RvcnksIGUu
Zy4gW0luZGV4ZWREQkRpcmVjdG9yeV0vW1RvcE9yaWdpbl0vW0RhdGFiYXNlXS4gT3VyIGN1cnJl
bnQgbWlncmF0aW9uIGNvZGUgZGlyZWN0bHkgcmVuYW1lcyB0aGUgCisgICAgICAgIG9yaWdpbiBk
aXJlY3Rvcnkgd2l0aG91dCBjaGVja2luZyB3aGV0aGVyIGl0IGhhcyBzdWJkaXJlY3RvcnkgdGhh
dCBpcyBhIHRoaXJkLXBhcnR5IGRpcmVjdG9yeS4gVGhhdCBtZWFucywgCisgICAgICAgIFtJbmRl
eGVkREJEaXJlY3RvcnldL1tUb3BPcmlnaW5dLyBpcyBtb3ZlZCB0byBbR2VuZXJhbFN0b3JhZ2VE
aXJlY3RvcnldL1tUb3BPcmlnaW5dL1tUb3BPcmlnaW5dL1tJbmRleGVkREJdLywgCisgICAgICAg
IGFuZCBbSW5kZXhlZERCRGlyZWN0b3J5XS9bVG9wT3JpZ2luXS9bVGhpcmRQYXJ0eU9yaWdpbl0v
IGlzIG1vdmVkIHRvIAorICAgICAgICBbR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnldL1tUb3BPcmln
aW5dL1tUb3BPcmlnaW5dL1tJbmRleGVkREJdL1tUaGlyZFBhcnR5T3JpZ2luXSAoW1RoaXJkUGFy
dHlPcmlnaW5dLyBoZXJlIGlzCisgICAgICAgIHRyZWF0ZWQgYXMgYSBkYXRhYmFzZSBkaXJlY3Rv
cnkpLiBUaGlzIGlzIHdyb25nOiB0aGUgbmV3IHRoaXJkLXBhcnR5IGRpcmVjdG9yeSBzaG91bGQg
YWN0dWFsbHkgYmUgCisgICAgICAgIFtHZW5lcmFsU3RvcmFnZURpcmVjdG9yeV0vW1RvcE9yaWdp
bl0vW1RoaXJkUGFydHlPcmlnaW5dL1tJbmRleGVkREJdLy4KKworICAgICAgICBUbyBmaXggdGhp
cywgd2Ugbm93IG1ha2Ugc3VyZSBvbmx5IGZpcnN0LXBhcnR5IGRhdGEgaXMgbWlncmF0ZWQgd2hl
biBmaXJzdC1wYXJ0eSBJbmRleGVkREIgZGF0YWJhc2UgaXMgdmlzaXRlZCwKKyAgICAgICAgYnkg
bW92aW5nIG9ubHkgZGF0YWJhc2UgZGlyZWN0b3JpZXMgdW5kZXIgb3JpZ2luIGRpcmVjdG9yeS4K
KworICAgICAgICBUZXN0OiBJbmRleGVkREIuTWlncmF0ZVRoaXJkUGFydHlEYXRhVG9HZW5lcmFs
U3RvcmFnZURpcmVjdG9yeQorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9JREJT
dG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1pZ3JhdGVPcmlnaW5EYXRhSW1w
bCk6CisgICAgICAgIChXZWJLaXQ6OklEQlN0b3JhZ2VNYW5hZ2VyOjppZGJTdG9yYWdlT3JpZ2lu
RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6SURCU3RvcmFnZU1hbmFnZXI6Om1pZ3JhdGVP
cmlnaW5EYXRhKToKKyAgICAgICAgKFdlYktpdDo6bWlncmF0ZU9yaWdpbkRhdGEpOiBEZWxldGVk
LgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6T3JpZ2luU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VCdWNrZXQ6
OnJlc29sdmVkSURCU3RvcmFnZVBhdGgpOgorCiAyMDIyLTAyLTI3ICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIGZlYXR1cmUgZmxhZyBmb3IgdXNpbmcg
Z2VuZXJhbCBzdG9yYWdlIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0lEQlN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9JREJTdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggNzZiODdj
ZTc0YjMwYjk5ODk4YWRmNWJkY2E0NTJkMTU5MzE0ODUyNS4uZjM1ODBlYTg0OTVlMWJiMDQyMzEw
ZjYzNjhlOTBjMDM3NTIwYjJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0lEQlN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zNSwyNCArMzUs
MzAgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0YXRpYyB2b2lkIG1pZ3JhdGVPcmlnaW5E
YXRhKGNvbnN0IFN0cmluZyYgb2xkT3JpZ2luRGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIG5ld09y
aWdpbkRpcmVjdG9yeSkKK3N0YXRpYyB2b2lkIG1pZ3JhdGVPcmlnaW5EYXRhSW1wbChjb25zdCBT
dHJpbmcmIG9sZE9yaWdpbkRpcmVjdG9yeSwgY29uc3QgU3RyaW5nJiBuZXdPcmlnaW5EaXJlY3Rv
cnksIEZ1bmN0aW9uPFN0cmluZyhjb25zdCBTdHJpbmcmKT4mJiBjcmVhdGVGaWxlTmFtZUZ1bmN0
aW9uKQogewotICAgIGlmICghRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhvbGRPcmlnaW5EaXJlY3Rv
cnkpKQorICAgIGlmIChvbGRPcmlnaW5EaXJlY3RvcnkuaXNFbXB0eSgpIHx8ICFGaWxlU3lzdGVt
OjpmaWxlRXhpc3RzKG9sZE9yaWdpbkRpcmVjdG9yeSkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGF1dG8gZmlsZU5hbWVzID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShvbGRPcmlnaW5EaXJl
Y3RvcnkpOwotICAgIGlmICghZmlsZU5hbWVzLmlzRW1wdHkoKSkKLSAgICAgICAgRmlsZVN5c3Rl
bTo6bWFrZUFsbERpcmVjdG9yaWVzKG5ld09yaWdpbkRpcmVjdG9yeSk7CisgICAgaWYgKGZpbGVO
YW1lcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEaXJlY3Rv
cnkob2xkT3JpZ2luRGlyZWN0b3J5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAorICAgIEZp
bGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhuZXdPcmlnaW5EaXJlY3RvcnkpOwogICAgIGZv
ciAoYXV0byYgbmFtZSA6IGZpbGVOYW1lcykgewogICAgICAgICAvLyBUaGlzIGlzIGFuIG9yaWdp
biBkaXJlY3RvcnkgZm9yIHRoaXJkLXBhcnR5IGRhdGEuCiAgICAgICAgIGlmIChhdXRvIG9yaWdp
biA9IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbURhdGFiYXNlSWRlbnRpZmllcihu
YW1lKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIFN0cmluZyBjaGlsZFBhdGgg
PSBGaWxlU3lzdGVtOjpyZWFsUGF0aChGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQob2xkT3JpZ2luRGlyZWN0b3J5LCBuYW1lKSk7Ci0gICAgICAgIFN0cmluZyBuZXdOYW1lID0g
V2ViQ29yZTo6U1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JGaWxlTmFtZShXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVjb2RlRGF0YWJhc2VOYW1lKG5h
bWUpKTsKLSAgICAgICAgYXV0byBuZXdDaGlsZFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQobmV3T3JpZ2luRGlyZWN0b3J5LCBuZXdOYW1lKTsKLSAgICAgICAgRmls
ZVN5c3RlbTo6bW92ZUZpbGUoY2hpbGRQYXRoLCBuZXdDaGlsZFBhdGgpOworICAgICAgICAvLyBE
byBub3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGZpbGVzLgorICAgICAgICBhdXRvIG5ld1BhdGggPSBG
aWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobmV3T3JpZ2luRGlyZWN0b3J5LCBj
cmVhdGVGaWxlTmFtZUZ1bmN0aW9uKG5hbWUpKTsKKyAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmZp
bGVFeGlzdHMobmV3UGF0aCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBhdXRv
IG9sZFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob2xkT3JpZ2lu
RGlyZWN0b3J5LCBuYW1lKTsKKyAgICAgICAgRmlsZVN5c3RlbTo6bW92ZUZpbGUob2xkUGF0aCwg
bmV3UGF0aCk7CiAgICAgfQogCiAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRW1wdHlEaXJlY3Rvcnko
b2xkT3JpZ2luRGlyZWN0b3J5KTsKQEAgLTY1LDcgKzcxLDkgQEAgU3RyaW5nIElEQlN0b3JhZ2VN
YW5hZ2VyOjppZGJTdG9yYWdlT3JpZ2luRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcm9vdERpcmVj
dG9yeSwKIAogICAgIGF1dG8gb3JpZ2luRGlyZWN0b3J5ID0gV2ViQ29yZTo6SURCRGF0YWJhc2VJ
ZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgcm9vdERp
cmVjdG9yeSwgInYxIik7CiAgICAgYXV0byBvbGRPcmlnaW5EaXJlY3RvcnkgPSBXZWJDb3JlOjpJ
REJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3Jp
Z2luLCByb290RGlyZWN0b3J5LCAidjAiKTsKLSAgICBtaWdyYXRlT3JpZ2luRGF0YShvbGRPcmln
aW5EaXJlY3RvcnksIG9yaWdpbkRpcmVjdG9yeSk7CisgICAgbWlncmF0ZU9yaWdpbkRhdGFJbXBs
KG9sZE9yaWdpbkRpcmVjdG9yeSwgb3JpZ2luRGlyZWN0b3J5LCBbXShjb25zdCBTdHJpbmcmIG5h
bWUpIHsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OmNvbXB1dGVI
YXNoRm9yRmlsZU5hbWUoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmRlY29kZURhdGFiYXNlTmFtZShuYW1lKSk7CisgICAgfSk7CiAKICAgICByZXR1cm4gb3JpZ2lu
RGlyZWN0b3J5OwogfQpAQCAtMTE4LDYgKzEyNiwxMyBAQCBIYXNoU2V0PFdlYkNvcmU6OkNsaWVu
dE9yaWdpbj4gSURCU3RvcmFnZU1hbmFnZXI6Om9yaWdpbnNPZklEQlN0b3JhZ2VEYXRhKGNvbnN0
CiAgICAgcmV0dXJuIG9yaWdpbnM7CiB9CiAKK3ZvaWQgSURCU3RvcmFnZU1hbmFnZXI6Om1pZ3Jh
dGVPcmlnaW5EYXRhKGNvbnN0IFN0cmluZyYgb2xkT3JpZ2luRGlyZWN0b3J5LCBjb25zdCBTdHJp
bmcmIG5ld09yaWdpbkRpcmVjdG9yeSkKK3sKKyAgICBtaWdyYXRlT3JpZ2luRGF0YUltcGwob2xk
T3JpZ2luRGlyZWN0b3J5LCBuZXdPcmlnaW5EaXJlY3RvcnksIFtdKGNvbnN0IFN0cmluZyYgbmFt
ZSkgeworICAgICAgICByZXR1cm4gbmFtZTsKKyAgICB9KTsKK30KKwogSURCU3RvcmFnZU1hbmFn
ZXI6OklEQlN0b3JhZ2VNYW5hZ2VyKGNvbnN0IFN0cmluZyYgcGF0aCwgSURCU3RvcmFnZVJlZ2lz
dHJ5JiByZWdpc3RyeSwgUXVvdGFDaGVja0Z1bmN0aW9uJiYgcXVvdGFDaGVja0Z1bmN0aW9uKQog
ICAgIDogbV9wYXRoKHBhdGgpCiAgICAgLCBtX3JlZ2lzdHJ5KHJlZ2lzdHJ5KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0lEQlN0b3JhZ2VNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFn
ZXIuaAppbmRleCBmYjY2MTFiODQ1ZTkyNDM0ZDU5M2YwY2NiNzhmMTk4NWIyMDI4MDQ3Li41M2Yy
MmVhOTk3MWVhYTg4YjMwMmJmMDMxM2Q3MGE1ODI4ZTQyZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuaApA
QCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBpZGJTdG9yYWdlT3Jp
Z2luRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgV2ViQ29yZTo6
Q2xpZW50T3JpZ2luJik7CiAgICAgc3RhdGljIHVpbnQ2NF90IGlkYlN0b3JhZ2VTaXplKGNvbnN0
IFN0cmluZyYgb3JpZ2luRGlyZWN0b3J5KTsKICAgICBzdGF0aWMgSGFzaFNldDxXZWJDb3JlOjpD
bGllbnRPcmlnaW4+IG9yaWdpbnNPZklEQlN0b3JhZ2VEYXRhKGNvbnN0IFN0cmluZyYgcm9vdERp
cmVjdG9yeSk7CisgICAgc3RhdGljIHZvaWQgbWlncmF0ZU9yaWdpbkRhdGEoY29uc3QgU3RyaW5n
JiBvbGRPcmlnaW5EaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgbmV3T3JpZ2luRGlyZWN0b3J5KTsK
IAogICAgIHVzaW5nIFF1b3RhQ2hlY2tGdW5jdGlvbiA9IEZ1bmN0aW9uPHZvaWQodWludDY0X3Qg
c3BhY2VSZXF1ZXN0ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpPjsKICAgICBJ
REJTdG9yYWdlTWFuYWdlcihjb25zdCBTdHJpbmcmIHBhdGgsIElEQlN0b3JhZ2VSZWdpc3RyeSYs
IFF1b3RhQ2hlY2tGdW5jdGlvbiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IGJk
ZGY2YmVjYzMxNzM1Y2Y1OThkMThhNmZiMWU3OWQ3MjMzN2EwZDIuLjEzN2ZkYzQ1ZjQ3NjVmZDU0
NGM2ODgzMWY2NGJjMjlhMzZjMDk3NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmNwcApAQCAt
MjgwLDExICsyODAsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBtX3Jlc29sdmVkSURCU3RvcmFn
ZVBhdGggPSBtX2N1c3RvbUlEQlN0b3JhZ2VQYXRoOwogICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgYXV0byBpZGJTdG9yYWdlUGF0aCA9IHR5cGVTdG9yYWdlUGF0aChTdG9yYWdlVHlwZTo6
SW5kZXhlZERCKTsKLSAgICAgICAgICAgIGlmICghbV9jdXN0b21JREJTdG9yYWdlUGF0aC5pc0Vt
cHR5KCkgJiYgIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoaWRiU3RvcmFnZVBhdGgpICYmIEZpbGVT
eXN0ZW06OmZpbGVFeGlzdHMobV9jdXN0b21JREJTdG9yYWdlUGF0aCkpIHsKLSAgICAgICAgICAg
ICAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoaWRiU3RvcmFnZVBhdGgpOwotICAg
ICAgICAgICAgICAgIEZpbGVTeXN0ZW06Om1vdmVGaWxlKG1fY3VzdG9tSURCU3RvcmFnZVBhdGgs
IGlkYlN0b3JhZ2VQYXRoKTsKLSAgICAgICAgICAgIH0KLQorICAgICAgICAgICAgSURCU3RvcmFn
ZU1hbmFnZXI6Om1pZ3JhdGVPcmlnaW5EYXRhKG1fY3VzdG9tSURCU3RvcmFnZVBhdGgsIGlkYlN0
b3JhZ2VQYXRoKTsKICAgICAgICAgICAgIG1fcmVzb2x2ZWRJREJTdG9yYWdlUGF0aCA9IGlkYlN0
b3JhZ2VQYXRoOwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZmYTdkZmIzY2UxNWRmYWYxOGY5OWU4NjEwNmVi
ZDE3OGZmMmFlNTQuLjlmY2EyNjczMGQ4Mjk1ZWFlNGViM2M1NTk2MDVhZDBmMDE3NjcwODcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAyMi0wMi0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKwor
ICAgICAgICBNaWdyYXRlIHRoaXJkLXBhcnR5IEluZGV4ZWREQiBkYXRhIHRvIEdlbmVyYWxTdG9y
YWdlRGlyZWN0b3J5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzcyODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERC
UGVyc2lzdGVuY2UubW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9pbmRleGVkZGItcGVyc2lzdGVuY2UtdGhpcmQtcGFydHkuc3FsaXRlMzogQWRkZWQuCisKIDIw
MjItMDItMjcgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAg
IHdlYmtpdHB5OiBXZWJTb2NrZXQgc2VydmVyIGRvZXNuJ3Qgc3VwcG9ydCBQeXRob24gMwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBkMWI5ZTEzMmMyMDAyNDBlNzdjMjljN2E2M2IyN2RjZGY5
OTI5ZGY4Li5lMjE4NTQ3MjliMWFjNzgxODViNWE5MWJmOWE0OTgwODM0M2IxOTQwIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNzM4LDYgKzczOCw3IEBACiAJCTkzMkFFNTNEMUQzNzEwNDcw
MDVERkZBRiAvKiBmb2N1cy1pbnB1dHMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU3NUM1NTFEMzAzNjZFMDAwRDYwNEQgLyogZm9j
dXMtaW5wdXRzLmh0bWwgKi87IH07CiAJCTkzMzJFRjk0MjY0OUJCNjgwMDlGNUQ2RCAvKiBTdHJp
bmdUb0ludGVnZXJDb252ZXJzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzMzJFRjkzMjY0OUJCNjgwMDlGNUQ2RCAvKiBTdHJpbmdUb0ludGVn
ZXJDb252ZXJzaW9uLmNwcCAqLzsgfTsKIAkJOTMzRDYzMUQxRkNCNzYyMDAwMzJFQ0Q2IC8qIEhh
c2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzNENjMxQjFGQ0I3NjE4MDAzMkVDRDYgLyogSGFzaGVyLmNwcCAqLzsgfTsKKwkJOTM0MUM5NTcy
N0NENTA3QTAwMjNDMEY0IC8qIGluZGV4ZWRkYi1wZXJzaXN0ZW5jZS10aGlyZC1wYXJ0eS5zcWxp
dGUzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNDFDOTU2MjdDRDUwNjgwMDIzQzBGNCAvKiBpbmRleGVkZGItcGVyc2lzdGVuY2UtdGhpcmQt
cGFydHkuc3FsaXRlMyAqLzsgfTsKIAkJOTM0MjU4OUUyNTVCNkExMjAwNTlFRUREIC8qIHNwZWVj
aHJlY29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5jZS5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDI1ODlEMjU1QjY2
QTAwMDU5RUVERCAvKiBzcGVlY2hyZWNvZ25pdGlvbi11c2VyLXBlcm1pc3Npb24tcGVyc2lzdGVu
Y2UuaHRtbCAqLzsgfTsKIAkJOTM1Nzg2Q0MyMEY2QTI3MDAwMDBDREZDIC8qIEluZGV4ZWREQi5z
cWxpdGUzLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5MzRGQTVDNTIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtd2Fs
ICovOyB9OwogCQk5MzU3ODZDRDIwRjZBMjkxMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
RkE1QzcyMEY2OUZFRTAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxpdGUzICovOyB9OwpAQCAtMTQw
Niw2ICsxNDA3LDcgQEAKIAkJCQk3MUU4OEM0NTI0QjUzNEI3MDA2NjUxNjAgLyogaW1nLXdpdGgt
YmFzZTY0LXVybC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTQ5ODk3RDZDMjQxRkU5
RTQwMEVDRjE1MyAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LWxvY2FsLWZpbGUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQk0OTcxQjExODI0NTFGMjlBMDA5Njk5NEQgLyogaW5jb3Jy
ZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJOTM0MUM5
NTcyN0NENTA3QTAwMjNDMEY0IC8qIGluZGV4ZWRkYi1wZXJzaXN0ZW5jZS10aGlyZC1wYXJ0eS5z
cWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzNTc4NkNEMjBGNkEyOTEwMDAwQ0RG
QyAvKiBJbmRleGVkREIuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzU3ODZD
RTIwRjZBMkExMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTkzNTc4NkNDMjBGNkEyNzAwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRl
My13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yNTIyLDYgKzI1MjQsNyBAQAogCQk5MzMx
NDA3QjE3QjQ0MTkwMDBGMDgzQjEgLyogRGlkTm90SGFuZGxlS2V5RG93bi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWROb3RIYW5kbGVLZXlEb3duLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzMkVGOTMyNjQ5QkI2ODAwOUY1RDZEIC8qIFN0
cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzM0Q2MzFCMUZDQjc2MTgwMDMyRUNENiAvKiBIYXNoZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGFzaGVyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTM0MUM5NTYyN0NENTA2ODAwMjNDMEY0IC8qIGluZGV4ZWRkYi1w
ZXJzaXN0ZW5jZS10aGlyZC1wYXJ0eS5zcWxpdGUzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJpbmRleGVkZGItcGVyc2lzdGVu
Y2UtdGhpcmQtcGFydHkuc3FsaXRlMyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
NDI1ODlCMjU1QjYwOUEwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25pdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQyNTg5RDI1NUI2NkEwMDA1OUVFREQgLyogc3Bl
ZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAic3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBl
cnNpc3RlbmNlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ2OEU2RTI3
MTRCNEYxMDA5OTgzRTMgLyogRmlsZVN5c3RlbUFjY2Vzcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1BY2Nlc3MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC00MTcxLDYgKzQxNzQsNyBAQAogCQkJCTMxMjhBODE0MjM3NjQwRkQw
MEQ5MEQ0MCAvKiBpbWFnZS5odG1sICovLAogCQkJCTQ5RDdGQkE3MjQxRkREREEwMEFCNjdGQSAv
KiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LWxvY2FsLWZpbGUuaHRtbCAqLywKIAkJCQk0OTcxQjEx
NzI0NTFGMjc4MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgKi8sCisJ
CQkJOTM0MUM5NTYyN0NENTA2ODAwMjNDMEY0IC8qIGluZGV4ZWRkYi1wZXJzaXN0ZW5jZS10aGly
ZC1wYXJ0eS5zcWxpdGUzICovLAogCQkJCTkzNEZBNUM3MjBGNjlGRUUwMDQwREMxQiAvKiBJbmRl
eGVkREIuc3FsaXRlMyAqLywKIAkJCQk5MzRGQTVDNjIwRjY5RkVEMDA0MERDMUIgLyogSW5kZXhl
ZERCLnNxbGl0ZTMtc2htICovLAogCQkJCTkzNEZBNUM1MjBGNjlGRUQwMDQwREMxQiAvKiBJbmRl
eGVkREIuc3FsaXRlMy13YWwgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJQZXJzaXN0ZW5jZS5tbQppbmRleCA4ZGQw
ZGM4ZTBhMDY1NzI5ODRkM2RhZjA2MzBlYmRiMjczMWI2ZmU3Li45ZDgxMzUxOTdlYmZmMDYyZDEx
YWI4YWQyYjUzOTNhMTlmNDNiZWYwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCUGVyc2lzdGVuY2UubW0KQEAgLTIz
Nyw3ICsyMzcsNyBAQCB0cnkgewogPC9zY3JpcHQ+CiApVEVTVFJFU09VUkNFIjsKIAotc3RhdGlj
IHZvaWQgbG9hZFRlc3RQYWdlSW5XZWJWaWV3KFdLV2ViVmlldyAqd2ViVmlldywgTlNTdHJpbmcg
KmV4cGVjdGVkUmVzdWx0KQorc3RhdGljIHZvaWQgbG9hZFRoaXJkUGFydHlQYWdlSW5XZWJWaWV3
KFdLV2ViVmlldyAqd2ViVmlldywgTlNTdHJpbmcgKmV4cGVjdGVkUmVzdWx0KQogewogICAgIFt3
ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOm1haW5GcmFtZVN0cmluZ1BlcnNpc3RlbmNlIGJhc2VVUkw6
W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdXTsKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CkBAIC0yNjAsMTAgKzI2
MCwxMCBAQCBURVNUKEluZGV4ZWREQiwgSW5kZXhlZERCVGhpcmRQYXJ0eUZyYW1lSGFzQWNjZXNz
KQogICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFuZGxlci5n
ZXQoKSBmb3JVUkxTY2hlbWU6QCJpZnJhbWUiXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0
TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgbG9hZFRlc3RQ
YWdlSW5XZWJWaWV3KHdlYlZpZXcuZ2V0KCksIEAiZGF0YWJhc2UgaXMgY3JlYXRlZCAtIHB1dCBp
dGVtIHN1Y2Nlc3MiKTsKKyAgICBsb2FkVGhpcmRQYXJ0eVBhZ2VJbldlYlZpZXcod2ViVmlldy5n
ZXQoKSwgQCJkYXRhYmFzZSBpcyBjcmVhdGVkIC0gcHV0IGl0ZW0gc3VjY2VzcyIpOwogCiAgICAg
YXV0byBzZWNvbmRXZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRp
b24uZ2V0KCldKTsKLSAgICBsb2FkVGVzdFBhZ2VJbldlYlZpZXcoc2Vjb25kV2ViVmlldy5nZXQo
KSwgQCJkYXRhYmFzZSBleGlzdHMgLSBnZXQgaXRlbSBzdWNjZXNzOiBUZXN0VmFsdWUiKTsKKyAg
ICBsb2FkVGhpcmRQYXJ0eVBhZ2VJbldlYlZpZXcoc2Vjb25kV2ViVmlldy5nZXQoKSwgQCJkYXRh
YmFzZSBleGlzdHMgLSBnZXQgaXRlbSBzdWNjZXNzOiBUZXN0VmFsdWUiKTsKIAogICAgIHdlYlZp
ZXcgPSBuaWw7CiAgICAgc2Vjb25kV2ViVmlldyA9IG5pbDsKQEAgLTI3MSw3ICsyNzEsNyBAQCBU
RVNUKEluZGV4ZWREQiwgSW5kZXhlZERCVGhpcmRQYXJ0eUZyYW1lSGFzQWNjZXNzKQogCiAgICAg
Ly8gVGhpcmQtcGFydHkgSURCIHN0b3JhZ2UgaXMgc3RvcmVkIGluIHRoZSBtZW1vcnkgb2YgbmV0
d29yayBwcm9jZXNzLgogICAgIGF1dG8gdGhpcmRXZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBsb2FkVGVzdFBhZ2VJbldlYlZpZXco
dGhpcmRXZWJWaWV3LmdldCgpLCBAImRhdGFiYXNlIGlzIGNyZWF0ZWQgLSBwdXQgaXRlbSBzdWNj
ZXNzIik7CisgICAgbG9hZFRoaXJkUGFydHlQYWdlSW5XZWJWaWV3KHRoaXJkV2ViVmlldy5nZXQo
KSwgQCJkYXRhYmFzZSBpcyBjcmVhdGVkIC0gcHV0IGl0ZW0gc3VjY2VzcyIpOwogfQogCiBURVNU
KEluZGV4ZWREQiwgSW5kZXhlZERCVGhpcmRQYXJ0eURhdGFSZW1vdmFsKQpAQCAtMjk4LDcgKzI5
OCw3IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJUaGlyZFBhcnR5RGF0YVJlbW92YWwpCiAg
ICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgp
IGZvclVSTFNjaGVtZTpAImlmcmFtZSJdOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAw
KSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBsb2FkVGVzdFBhZ2VJ
bldlYlZpZXcod2ViVmlldy5nZXQoKSwgQCJkYXRhYmFzZSBpcyBjcmVhdGVkIC0gcHV0IGl0ZW0g
c3VjY2VzcyIpOworICAgIGxvYWRUaGlyZFBhcnR5UGFnZUluV2ViVmlldyh3ZWJWaWV3LmdldCgp
LCBAImRhdGFiYXNlIGlzIGNyZWF0ZWQgLSBwdXQgaXRlbSBzdWNjZXNzIik7CiAKICAgICBhdXRv
IHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5n
ZXQoKV0pOwogICAgIFtzZWNvbmRXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVx
dWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJpZnJhbWU6Ly8iXV1dOwpAQCAtMzIx
LDcgKzMyMSw3IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJUaGlyZFBhcnR5RGF0YVJlbW92
YWwpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAg
ICAgYXV0byB0aGlyZFdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKV0pOwotICAgIGxvYWRUZXN0UGFnZUluV2ViVmlldyh0aGlyZFdlYlZpZXcuZ2V0
KCksIEAiZGF0YWJhc2UgaXMgY3JlYXRlZCAtIHB1dCBpdGVtIHN1Y2Nlc3MiKTsKKyAgICBsb2Fk
VGhpcmRQYXJ0eVBhZ2VJbldlYlZpZXcodGhpcmRXZWJWaWV3LmdldCgpLCBAImRhdGFiYXNlIGlz
IGNyZWF0ZWQgLSBwdXQgaXRlbSBzdWNjZXNzIik7CiB9CiAKIFRFU1QoSW5kZXhlZERCLCBJbmRl
eGVkREJUaGlyZFBhcnR5U3RvcmFnZUxheW91dCkKQEAgLTM2MCw3ICszNjAsNyBAQCBURVNUKElu
ZGV4ZWREQiwgSW5kZXhlZERCVGhpcmRQYXJ0eVN0b3JhZ2VMYXlvdXQpCiAgICAgV0tQcmVmZXJl
bmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwcmVmZXJlbmNlcywga1dLQWxsb3dBbGxTdG9y
YWdlKTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgbG9hZFRlc3RQYWdlSW5XZWJWaWV3KHdlYlZpZXcuZ2V0
KCksIEAiZGF0YWJhc2UgaXMgY3JlYXRlZCAtIHB1dCBpdGVtIHN1Y2Nlc3MiKTsKKyAgICBsb2Fk
VGhpcmRQYXJ0eVBhZ2VJbldlYlZpZXcod2ViVmlldy5nZXQoKSwgQCJkYXRhYmFzZSBpcyBjcmVh
dGVkIC0gcHV0IGl0ZW0gc3VjY2VzcyIpOwogCiAgICAgRVhQRUNUX1RSVUUoW2ZpbGVNYW5hZ2Vy
IGZpbGVFeGlzdHNBdFBhdGg6d2Via2l0T3JpZ2luRmlsZS5wYXRoXSk7CiAgICAgRVhQRUNUX1RS
VUUoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6d2Via2l0SWZyYW1lT3JpZ2luRmlsZS5w
YXRoXSk7CkBAIC0zNjgsNiArMzY4LDc3IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJUaGly
ZFBhcnR5U3RvcmFnZUxheW91dCkKICAgICBFWFBFQ1RfVFJVRShbZmlsZU1hbmFnZXIgZmlsZUV4
aXN0c0F0UGF0aDp3ZWJraXRJZnJhbWVEYXRhYmFzZUZpbGUucGF0aF0pOwogfQogCitURVNUKElu
ZGV4ZWREQiwgTWlncmF0ZVRoaXJkUGFydHlEYXRhVG9HZW5lcmFsU3RvcmFnZURpcmVjdG9yeSkK
K3sKKyAgICBOU1VSTCAqcmVzb3VyY2VTYWx0ID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxG
b3JSZXNvdXJjZTpAImdlbmVyYWwtc3RvcmFnZS1kaXJlY3RvcnkiIHdpdGhFeHRlbnNpb246QCJz
YWx0IiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworICAgIE5TVVJM
ICpyZXNvdXJjZURhdGFiYXNlID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJj
ZTpAImluZGV4ZWRkYi1wZXJzaXN0ZW5jZS10aGlyZC1wYXJ0eSIgd2l0aEV4dGVuc2lvbjpAInNx
bGl0ZTMiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CisgICAgTlNV
UkwgKmdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5ID0gW05TVVJMIGZpbGVVUkxXaXRoUGF0aDpbQCJ+
L0xpYnJhcnkvV2ViS2l0L2NvbS5hcHBsZS5XZWJLaXQuVGVzdFdlYktpdEFQSS9DdXN0b21XZWJz
aXRlRGF0YS9EZWZhdWx0IiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9y
eTpZRVNdOworICAgIE5TVVJMICp3ZWJraXRPcmlnaW5EaXJlY3RvcnkgPSBbZ2VuZXJhbFN0b3Jh
Z2VEaXJlY3RvcnkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiRUFPNjZzOEp2Q1dObjRE
M1lRdXQ1cFhmaUdGX1VYTlpHdk1HTjZhS0lMZy9FQU82NnM4SnZDV05uNEQzWVF1dDVwWGZpR0Zf
VVhOWkd2TUdONmFLSUxnIl07CisgICAgTlNVUkwgKndlYmtpdE9yaWdpbkZpbGUgPSBbd2Via2l0
T3JpZ2luRGlyZWN0b3J5IFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIm9yaWdpbiJdOwor
ICAgIE5TVVJMICp3cm9uZ1dlYmtpdElmcmFtZURhdGFiYXNlRGlyZWN0b3J5ID0gW3dlYmtpdE9y
aWdpbkRpcmVjdG9yeSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIvaWZy
YW1lX18wIl07CisgICAgTlNVUkwgKndlYmtpdElmcmFtZU9yaWdpbkRpcmVjdG9yeSA9IFtnZW5l
cmFsU3RvcmFnZURpcmVjdG9yeSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJFQU82NnM4
SnZDV05uNEQzWVF1dDVwWGZpR0ZfVVhOWkd2TUdONmFLSUxnL3Z1ZHZiTWxLWGoxbTZSaWJuVnZj
OFBkQWRjWFpzTkU2T05fQWw3eXFPc2ciXTsKKyAgICBOU1VSTCAqd2Via2l0SWZyYW1lT3JpZ2lu
RmlsZSA9IFt3ZWJraXRJZnJhbWVPcmlnaW5EaXJlY3RvcnkgVVJMQnlBcHBlbmRpbmdQYXRoQ29t
cG9uZW50OkAib3JpZ2luIl07CisgICAgTlNTdHJpbmcgKmhhc2hlZERhdGFiYXNlTmFtZSA9IFdl
YkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OmNvbXB1dGVIYXNoRm9yRmlsZU5hbWUoIkluZGV4ZWRE
QlRoaXJkUGFydHlGcmFtZUhhc0FjY2VzcyIpOworICAgIE5TVVJMICp3ZWJraXRJZnJhbWVEYXRh
YmFzZUZpbGU9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W05TU3RyaW5nIHBhdGhXaXRoQ29tcG9u
ZW50czpAW3dlYmtpdElmcmFtZU9yaWdpbkRpcmVjdG9yeS5wYXRoLCBAIkluZGV4ZWREQiIsIGhh
c2hlZERhdGFiYXNlTmFtZSwgQCJJbmRleGVkREIuc3FsaXRlMyJdXV07CisgICAgTlNVUkwgKmlk
YkRpcmVjdG9yeSA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktpdC9j
b20uYXBwbGUuV2ViS2l0LlRlc3RXZWJLaXRBUEkvQ3VzdG9tV2Vic2l0ZURhdGEvSW5kZXhlZERC
IiBzdHJpbmdCeUV4cGFuZGluZ1RpbGRlSW5QYXRoXSBpc0RpcmVjdG9yeTpZRVNdOworICAgIE5T
VVJMICpvbGRXZWJraXRJZnJhbWVEYXRhYmFzZURpcmVjdG9yeSA9IFtOU1VSTCBmaWxlVVJMV2l0
aFBhdGg6W05TU3RyaW5nIHBhdGhXaXRoQ29tcG9uZW50czpAW2lkYkRpcmVjdG9yeS5wYXRoLCBA
InYxL2h0dHBfd2Via2l0Lm9yZ18wL2lmcmFtZV9fMCIsIGhhc2hlZERhdGFiYXNlTmFtZV1dXTsK
KyAgICBOU1VSTCAqb2xkV2Via2l0SWZyYW1lRGF0YWJhc2VGaWxlID0gW29sZFdlYmtpdElmcmFt
ZURhdGFiYXNlRGlyZWN0b3J5IFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkluZGV4ZWRE
Qi5zcWxpdGUzIl07CisKKyAgICBOU0ZpbGVNYW5hZ2VyICpmaWxlTWFuYWdlciA9IFtOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKKyAgICBbZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0VVJM
OmdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IGVycm9yOm5pbF07CisgICAgW2ZpbGVNYW5hZ2VyIGNy
ZWF0ZURpcmVjdG9yeUF0VVJMOmdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IHdpdGhJbnRlcm1lZGlh
dGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXTsKKyAgICBbZmlsZU1h
bmFnZXIgY29weUl0ZW1BdFVSTDpyZXNvdXJjZVNhbHQgdG9VUkw6W2dlbmVyYWxTdG9yYWdlRGly
ZWN0b3J5IFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAInNhbHQiXSBlcnJvcjpuaWxdOwor
ICAgIC8vIENyZWF0ZSB0aGlyZC1wYXJ0eSBkYXRhYmFzZSBmaWxlIG9uIGRpc2suCisgICAgW2Zp
bGVNYW5hZ2VyIHJlbW92ZUl0ZW1BdFVSTDppZGJEaXJlY3RvcnkgZXJyb3I6bmlsXTsKKyAgICBb
ZmlsZU1hbmFnZXIgY3JlYXRlRGlyZWN0b3J5QXRVUkw6b2xkV2Via2l0SWZyYW1lRGF0YWJhc2VE
aXJlY3Rvcnkgd2l0aEludGVybWVkaWF0ZURpcmVjdG9yaWVzOllFUyBhdHRyaWJ1dGVzOm5pbCBl
cnJvcjpuaWxdOworICAgIFtmaWxlTWFuYWdlciBjb3B5SXRlbUF0VVJMOnJlc291cmNlRGF0YWJh
c2UgdG9VUkw6b2xkV2Via2l0SWZyYW1lRGF0YWJhc2VGaWxlIGVycm9yOm5pbF07CisKKyAgICBh
dXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMoW1tJbmRleGVkREJNZXNzYWdl
SGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENv
bnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0KCkgbmFtZTpAInRl
c3RIYW5kbGVyIl07CisgICAgYXV0byBzY2hlbWVIYW5kbGVyID0gYWRvcHROUyhbW1Rlc3RVUkxT
Y2hlbWVIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW3NjaGVtZUhhbmRsZXIgc2V0U3RhcnRV
UkxTY2hlbWVUYXNrSGFuZGxlcjpeKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRh
c2spIHsKKyAgICAgICAgYXV0byByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFs
bG9jXSBpbml0V2l0aFVSTDp0YXNrLnJlcXVlc3QuVVJMIE1JTUVUeXBlOkAidGV4dC9odG1sIiBl
eHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOworICAgICAgICBb
dGFzayBkaWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2UuZ2V0KCldOworICAgICAgICBbdGFzayBk
aWRSZWNlaXZlRGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6aWZyYW1lQnl0ZXNQZXJzaXN0ZW5j
ZSBsZW5ndGg6c3RybGVuKGlmcmFtZUJ5dGVzUGVyc2lzdGVuY2UpXV07CisgICAgICAgIFt0YXNr
IGRpZEZpbmlzaF07CisgICAgfV07CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFu
ZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpAImlmcmFtZSJdOworICAgIGF1
dG8gcHJlZmVyZW5jZXMgPSAoX19icmlkZ2UgV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJhdGlv
biBwcmVmZXJlbmNlc107CisgICAgV0tQcmVmZXJlbmNlc1NldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eShwcmVmZXJlbmNlcywga1dLQWxsb3dBbGxTdG9yYWdlKTsKKyAgICBhdXRvIHdlYnNpdGVEYXRh
U3RvcmVDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24u
Z2V0KCkuX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5ID0gaWRiRGlyZWN0b3J5OworICAgIHdl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpLmdlbmVyYWxTdG9yYWdlRGlyZWN0b3J5
ID0gZ2VuZXJhbFN0b3JhZ2VEaXJlY3Rvcnk7CisgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3Vy
YXRpb24uZ2V0KCkuc2hvdWxkVXNlQ3VzdG9tU3RvcmFnZVBhdGhzID0gZmFsc2U7CisgICAgYXV0
byB3ZWJzaXRlRGF0YVN0b3JlID0gYWRvcHROUyhbW1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxvY10g
X2luaXRXaXRoQ29uZmlndXJhdGlvbjp3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIFtjb25maWd1cmF0aW9uIHNldFdlYnNpdGVEYXRhU3RvcmU6d2Vic2l0ZURhdGFT
dG9yZS5nZXQoKV07CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIC8vIEVuc3VyZSBvcGVuaW5nIGZpcnN0LXBh
cnR5IGRhdGFiYXNlIGRvZXMgbm90IG1pZ3JhdGUgdGhpcmQtcGFydHkgZGF0YS4KKyAgICBOU1N0
cmluZyAqZmlyc3RQYXJ0eUhUTUxTdHJpbmcgPSBAIjxzY3JpcHQ+IFwKKyAgICAgICAgdmFyIHJl
cXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oJ1Rlc3REYXRhYmFzZScpOyBcCisgICAgICAg
IHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7IFwKKyAgICAgICAgICAgIHdpbmRvdy53
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdkYXRhYmFzZSBp
cyBjcmVhdGVkJyk7IFwKKyAgICAgICAgfTsgXAorICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSBm
dW5jdGlvbigpIHsgXAorICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMu
dGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2RhdGFiYXNlIGVycm9yJyk7IFwKKyAgICAgICAgfTsg
XAorICAgICAgICA8L3NjcmlwdD4iOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOmZpcnN0
UGFydHlIVE1MU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vd2Vi
a2l0Lm9yZyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0
TWVzc2FnZSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisgICAgRVhQRUNU
X1dLX1NUUkVRKEAiZGF0YWJhc2UgaXMgY3JlYXRlZCIsIChOU1N0cmluZyAqKVtnZXROZXh0TWVz
c2FnZSgpIGJvZHldKTsKKyAgICBFWFBFQ1RfVFJVRShbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0
UGF0aDp3ZWJraXRPcmlnaW5GaWxlLnBhdGhdKTsKKyAgICBFWFBFQ1RfRkFMU0UoW2ZpbGVNYW5h
Z2VyIGZpbGVFeGlzdHNBdFBhdGg6d3JvbmdXZWJraXRJZnJhbWVEYXRhYmFzZURpcmVjdG9yeS5w
YXRoXSk7CisgICAgRVhQRUNUX0ZBTFNFKFtmaWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOndl
YmtpdElmcmFtZU9yaWdpbkZpbGUucGF0aF0pOworICAgIEVYUEVDVF9GQUxTRShbZmlsZU1hbmFn
ZXIgZmlsZUV4aXN0c0F0UGF0aDp3ZWJraXRJZnJhbWVEYXRhYmFzZUZpbGUucGF0aF0pOworCisg
ICAgLy8gRW5zdXJlIG9wZW5pbmcgdGhpcmQtcGFydHkgZGF0YWJhc2UgbWlncmF0ZXMgdGhpcmQt
cGFydHkgZGF0YSwgYW5kIGRhdGEgY2FuIGJlIGNvcnJlY3RseSByZWFkLgorICAgIGxvYWRUaGly
ZFBhcnR5UGFnZUluV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBAImRhdGFiYXNlIGV4aXN0cyAtIGdl
dCBpdGVtIHN1Y2Nlc3M6IFRlc3RWYWx1ZSIpOworICAgIEVYUEVDVF9UUlVFKFtmaWxlTWFuYWdl
ciBmaWxlRXhpc3RzQXRQYXRoOndlYmtpdElmcmFtZU9yaWdpbkZpbGUucGF0aF0pOworICAgIEVY
UEVDVF9UUlVFKFtmaWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOndlYmtpdElmcmFtZURhdGFi
YXNlRmlsZS5wYXRoXSk7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyKiB3b3JrZXJCeXRlcyA9IFIi
VEVTVFJFU09VUkNFKAogdHJ5IHsKICAgICB2YXIgcmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKCdJ
bmRleGVkREJUaGlyZFBhcnR5V29ya2VySGFzQWNjZXNzJyk7CkBAIC00MjUsMTcgKzQ5NiwxNyBA
QCBURVNUKEluZGV4ZWREQiwgSW5kZXhlZERCVGhpcmRQYXJ0eVdvcmtlckhhc0FjY2VzcykKICAg
ICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOnNjaGVtZUhhbmRsZXIuZ2V0KCkg
Zm9yVVJMU2NoZW1lOkAiaWZyYW1lIl07CiAKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGxvYWRUZXN0UGFnZUlu
V2ViVmlldyh3ZWJWaWV3LmdldCgpLCBAImRhdGFiYXNlIGlzIGNyZWF0ZWQiKTsKKyAgICBsb2Fk
VGhpcmRQYXJ0eVBhZ2VJbldlYlZpZXcod2ViVmlldy5nZXQoKSwgQCJkYXRhYmFzZSBpcyBjcmVh
dGVkIik7CiAKICAgICBhdXRvIHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGxvYWRUZXN0UGFnZUluV2ViVmlldyh3ZWJW
aWV3LmdldCgpLCBAImRhdGFiYXNlIGV4aXN0cyIpOworICAgIGxvYWRUaGlyZFBhcnR5UGFnZUlu
V2ViVmlldyh3ZWJWaWV3LmdldCgpLCBAImRhdGFiYXNlIGV4aXN0cyIpOwogCiAgICAgd2ViVmll
dyA9IG5pbDsKICAgICBzZWNvbmRXZWJWaWV3ID0gbmlsOwogICAgIFtjb25maWd1cmF0aW9uLmdl
dCgpLndlYnNpdGVEYXRhU3RvcmUgX3Rlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzXTsKIAogICAgIGF1
dG8gdGhpcmRXZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKLSAgICBsb2FkVGVzdFBhZ2VJbldlYlZpZXcodGhpcmRXZWJWaWV3LmdldCgpLCBA
ImRhdGFiYXNlIGlzIGNyZWF0ZWQiKTsKKyAgICBsb2FkVGhpcmRQYXJ0eVBhZ2VJbldlYlZpZXco
dGhpcmRXZWJWaWV3LmdldCgpLCBAImRhdGFiYXNlIGlzIGNyZWF0ZWQiKTsKIH0KIAogc3RhdGlj
IE5TU3RyaW5nICpnZXREYXRhYmFzZXNTdHJpbmcgPSBAIjxzY3JpcHQ+IFwKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaW5kZXhlZGRiLXBlcnNpc3Rl
bmNlLXRoaXJkLXBhcnR5LnNxbGl0ZTMgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL2luZGV4ZWRkYi1wZXJzaXN0ZW5jZS10aGlyZC1wYXJ0eS5zcWxpdGUzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAyOWMwYmUzNDhmN2Y0MjgzMzY0MjNhYmI4ZjlkOGMyMjdiNWE1OTkKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDczNzI4CnpjbWVJKFBqQX5+OUtkbHFQTHJsdD1DbTZHc2ZTcmkpZiY9NEdu
Z2h8NnxfeWRTeGJ7SE9+LWNYK3tWKX4ocXhPPgp6dT9pdVAhVHx9MXkjKUB1Z05YeTs0Tk0lNjVM
WUNROU1DdiY4MyFJYVpXZ0NhbEw8ez8+RE5qWGA/M0FfYEYpPH0KekBsKmZGPmVYRHVIbm0meiMr
RzRnWiVjNzA1Umc5OUcpYTtJOyVgRnk/TStjSjZXbSk2LSpVJSV1aTFkfj0wfSVmCnooWjhoZVAq
aFVpSVF9XkhiIV90MyF8Mn4qS1N6SXplaWl3Qj9CVkZlJGhRJEFKUTlrQWUoSUdDPT9FWnowMEoq
aQp6cG17TUtQTWtSLT9fUkt0ampET1krX199ZCUhWG10ODx1WmplNmc2RkZKLW1UezZhM1BgQnJK
dV5eSDVgcm9BZTUKekdXQ3E2PVMkZzMqYGsmJmwoaFU+RX5nZHArRn5LVWwremJXK1MwdDkpN0o5
KCl3UWZJeV9qOWUlYGF3V3c5Vn5DCnohPnJsajI+bWxrekI/WERFVDU2M08wOEBAdTxsakd1KG9i
JitqVnomLUItJT52fk9gQF9aPkJ5SUNWPD92SzZgUgp6PGU9QVgpIVE/MVUmUVRYWk1zdEtVJFBt
a1deOT5TRFNLVFFebTNUZG8pZDBIYGBGeEJHMz92Z0xhd2xJU2pINz0KenR5YTBXWjRPZT50P2pC
XiQ9Mit+QW1ZMlA5fTZjXkRmeD59LTNDK1dzQ2p8Y3dIV2dlY0NHWTV0YHptPGBRaT1qCnpPNz0k
WXVudVpCUEowPiV5WjZxNm5tUD9qdVdqfXhQMGskO0M5YkE9SE9uckNePmJZYj5SangzYzI5VGhl
IU97aAp6JSZucmBha3EtfSV0RlF4YkIxTlE/YzJXP147Sj5WdyVXOT8+Qz1jMGEmMzMhYCRrbz8h
TllxJmF4UXZVeExya0IKelBqQDk4WWhEUHU5ZUg9bzRSQGhoLSZtP3RPeythSz5JPD0qdFc5ci1Q
MWxPS0tJSjxveiplaWZCQFVEQy1fM2h2CnprVzVFSGlSYElmJjdAdD5ePmdqbnZHbkwqeVFKSEBN
OHhQWj5XbT1HUzN9eyU+Qzx4NFlDOUZwJjNkRWtOX24mNAp6ZU9CSEktJH1rJHxEPUJ9bjkmQ0ZP
KlNKVjtsJXE+YWBPWkN3QyRkMHlgIzNpeW1QTk9MM195fHVhdFR8bGZBQz4Keip1ZmNJSSM+QjMm
QDtaMXVYbWhHdks5O3stViNONXJQM00/byppPnZBeDMlQCFyZ1RMO2FnZFgxQipeSXFxJHVwCnp4
JS18SFBFMVl0TWo8YXFIeTNYez0mUDJfSFIzR2xtVU10JipCOXwxPEZzNFNSX3xDVzxae21ORkZO
MCRyKVYjKAp6PWlSQ1BZIzc8QWl2QTVPY3szcEZDZ288I0J7K2FoQHp9aW9IKEpmNWIzM1AheXli
bihMKTIyVHhoalZmbGF1bzkKelhLdFZJSHViJiZ6RGhZYm9CbVAhMmpvTmt2MXF0R3lRN2pqMkgw
ZHdvREYzNFM0bilCNUlfSXsxUTAqfjBSI3wwCnowMDlJTEs7WSNPTlhhOVNeUnRxNEdjM3dubDEj
fnhaMFU7bC1qVCpjTj9oQ3B7SmRtWl9CSDIqdGRrPEVlQE5vUAp6Z2E4NXZBYjxiQDJxMXN9MHRn
XzAwMEorIXoteihDYE4lPGMxZjF2cDstIUJrMVEwKn4wUiN8MDAwOUlMS21ZKioKejVFeDxzPWxN
VV58M2g1Q2dvWGVEMnExc30wdGdfMDAwSWFnZlBmSS1gayFXaTAwSWFnZkIqc3JBYjxiQDJxMXZL
CnpAQykkJXxNMXJfNWg4IzkwdGdfMDAwSWFnZkIqc3JBaSh1TVoyJG9UNUlfSXsxUTAqfjBSI3ww
MEQ8OGI7UWp5TQp6dVZXJWEwMDlJTEttWSoqNUlfSXsxUTAtZz53bnErMHRnXzAwMElhZ2ZCKnNy
QWI8YkAhIU97eHt+dUpwazw+cmMKekFKcCV9Mz07d2ZBYjxiQDJxMXN9MHRnXzAwMEljU1YxYmlD
PCpkNEZKU2M0M0Yqb2cxeVdUTU1PIXxiUHF8fVVJCno4eWtqWVVOYWszckN2K1YyOSZBN1VTaSha
R1dBOzdkfDtMezMjSHFZTXRRfCgqZ0ghTmskJX4qPH5LSkAlUV8qOAp6WT9lKmlEMnVIMnZUPmdP
Mmh+VENga1ZTI2VXWDVsITJ5eXowdGdfMDAwSWFnZkIqc3JBYjxiQDJuOzUwUWFMTWsKei15O1p+
UCpVPlYtMm1efVVXcUdIP0tJfk9MMTAyak1ZP1ZQSU00ck9eP09OdG09SGghMFIjfDAwMDlJTEtt
WSoqCno1SjJHbkIlc1M5UXRKTF8kK1laX0h3OEJDUng2ZjBKTnRfcURBX3hBJkEyb2dqa2smfCVV
PCE3dH1ySD89bGA8JAp6azBkQCEycTFzfTB0Z18wMDBJYWdmQipzckFUV2RpaVZ9Jm11SyVBJXkh
ayhiNi0tRDdBYjxiQDJxMXN9MHRnXzAKejAwS3UtejxLfF8+IWt0YntlUWBPT1c8Z3Q1SCRoX0Fi
PGJAMnExc30wdGdfMDAwUDQ9KEU5IVZRJVFYfntJTD10CnowdGdfMDAwSWFnZkIqc3JBYjxiQE1e
SGVLbUI9Vyt8Mzg4P1BzaikkZkIqc3JBYjxiQDJxMXN9MCFLPX5gVGhVRApEI0t4MXwKCmxpdGVy
YWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453477</attachid>
            <date>2022-02-28 22:47:41 -0800</date>
            <delta_ts>2022-03-01 00:02:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-237283-20220228224740.patch</filename>
            <type>text/plain</type>
            <size>26960</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDAzNTQ2NzY3M2NlZjIzNWE5
YTA2N2NiYjVkMzMzNDlkMzYwNmRlM2QuLmE1MWE2MGQzNjVlMDljNTg4OWRhMTM2MGM3M2NmMTIx
MzY2NGZhOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDItMjggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgTWlncmF0ZSB0aGlyZC1wYXJ0eSBJ
bmRleGVkREIgZGF0YSB0byBHZW5lcmFsU3RvcmFnZURpcmVjdG9yeQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgSW4gY3VycmVudCBzdG9yYWdlIGxheW91dCwg
dGhpcmQtcGFydHkgSW5kZXhlZERCIGRhdGEgaXMgc3RvcmVkIGluIGEgc3ViZGlyZWN0b3J5IG9m
IHRvcCBvcmlnaW4gZGlyZWN0b3J5LCBlLmcuCisgICAgICAgIFtJbmRleGVkREJEaXJlY3Rvcnld
L1tUb3BPcmlnaW5dL1tUaGlyZFBhcnR5T3JpZ2luXS9bRGF0YWJhc2VdLiBGaXJzdC1wYXJ0eSBk
YXRhIGlzIHN0b3JlZCBpbiB0aGUgdG9wIG9yaWdpbgorICAgICAgICBkaXJlY3RvcnksIGUuZy4g
W0luZGV4ZWREQkRpcmVjdG9yeV0vW1RvcE9yaWdpbl0vW0RhdGFiYXNlXS4gT3VyIGN1cnJlbnQg
bWlncmF0aW9uIGNvZGUgZGlyZWN0bHkgcmVuYW1lcyB0aGUgCisgICAgICAgIG9yaWdpbiBkaXJl
Y3Rvcnkgd2l0aG91dCBjaGVja2luZyB3aGV0aGVyIGl0IGhhcyBzdWJkaXJlY3RvcnkgdGhhdCBp
cyBhIHRoaXJkLXBhcnR5IGRpcmVjdG9yeS4gVGhhdCBtZWFucywgCisgICAgICAgIFtJbmRleGVk
REJEaXJlY3RvcnldL1tUb3BPcmlnaW5dLyBpcyBtb3ZlZCB0byBbR2VuZXJhbFN0b3JhZ2VEaXJl
Y3RvcnldL1tUb3BPcmlnaW5dL1tUb3BPcmlnaW5dL1tJbmRleGVkREJdLywgCisgICAgICAgIGFu
ZCBbSW5kZXhlZERCRGlyZWN0b3J5XS9bVG9wT3JpZ2luXS9bVGhpcmRQYXJ0eU9yaWdpbl0vIGlz
IG1vdmVkIHRvIAorICAgICAgICBbR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnldL1tUb3BPcmlnaW5d
L1tUb3BPcmlnaW5dL1tJbmRleGVkREJdL1tUaGlyZFBhcnR5T3JpZ2luXSAoW1RoaXJkUGFydHlP
cmlnaW5dLyBoZXJlIGlzCisgICAgICAgIHRyZWF0ZWQgYXMgYSBkYXRhYmFzZSBkaXJlY3Rvcnkp
LiBUaGlzIGlzIHdyb25nOiB0aGUgbmV3IHRoaXJkLXBhcnR5IGRpcmVjdG9yeSBzaG91bGQgYWN0
dWFsbHkgYmUgCisgICAgICAgIFtHZW5lcmFsU3RvcmFnZURpcmVjdG9yeV0vW1RvcE9yaWdpbl0v
W1RoaXJkUGFydHlPcmlnaW5dL1tJbmRleGVkREJdLy4KKworICAgICAgICBUbyBmaXggdGhpcywg
d2Ugbm93IG1ha2Ugc3VyZSBvbmx5IGZpcnN0LXBhcnR5IGRhdGEgaXMgbWlncmF0ZWQgd2hlbiBm
aXJzdC1wYXJ0eSBJbmRleGVkREIgZGF0YWJhc2UgaXMgdmlzaXRlZCwKKyAgICAgICAgYnkgbW92
aW5nIG9ubHkgZGF0YWJhc2UgZGlyZWN0b3JpZXMgdW5kZXIgb3JpZ2luIGRpcmVjdG9yeS4KKwor
ICAgICAgICBUZXN0OiBJbmRleGVkREIuTWlncmF0ZVRoaXJkUGFydHlEYXRhVG9HZW5lcmFsU3Rv
cmFnZURpcmVjdG9yeQorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9JREJTdG9y
YWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1pZ3JhdGVPcmlnaW5EYXRhSW1wbCk6
CisgICAgICAgIChXZWJLaXQ6OklEQlN0b3JhZ2VNYW5hZ2VyOjppZGJTdG9yYWdlT3JpZ2luRGly
ZWN0b3J5KToKKyAgICAgICAgKFdlYktpdDo6SURCU3RvcmFnZU1hbmFnZXI6Om1pZ3JhdGVPcmln
aW5EYXRhKToKKyAgICAgICAgKFdlYktpdDo6bWlncmF0ZU9yaWdpbkRhdGEpOiBEZWxldGVkLgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6T3JpZ2luU3RvcmFnZU1hbmFnZXI6OlN0b3JhZ2VCdWNrZXQ6OnJl
c29sdmVkSURCU3RvcmFnZVBhdGgpOgorCiAyMDIyLTAyLTI4ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IHVzZS1hZnRlci1tb3ZlIGJ1
ZyBpbiBOZXR3b3JrUmVzb3VyY2VMb2FkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9JREJTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvSURCU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDc2Yjg3
Y2U3NGIzMGI5OTg5OGFkZjViZGNhNDUyZDE1OTMxNDg1MjUuLmYzNTgwZWE4NDk1ZTFiYjA0MjMx
MGY2MzY4ZTkwYzAzNzUyMGIyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9JREJTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0lEQlN0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMzUsMjQgKzM1
LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgdm9pZCBtaWdyYXRlT3JpZ2lu
RGF0YShjb25zdCBTdHJpbmcmIG9sZE9yaWdpbkRpcmVjdG9yeSwgY29uc3QgU3RyaW5nJiBuZXdP
cmlnaW5EaXJlY3RvcnkpCitzdGF0aWMgdm9pZCBtaWdyYXRlT3JpZ2luRGF0YUltcGwoY29uc3Qg
U3RyaW5nJiBvbGRPcmlnaW5EaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgbmV3T3JpZ2luRGlyZWN0
b3J5LCBGdW5jdGlvbjxTdHJpbmcoY29uc3QgU3RyaW5nJik+JiYgY3JlYXRlRmlsZU5hbWVGdW5j
dGlvbikKIHsKLSAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMob2xkT3JpZ2luRGlyZWN0
b3J5KSkKKyAgICBpZiAob2xkT3JpZ2luRGlyZWN0b3J5LmlzRW1wdHkoKSB8fCAhRmlsZVN5c3Rl
bTo6ZmlsZUV4aXN0cyhvbGRPcmlnaW5EaXJlY3RvcnkpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBhdXRvIGZpbGVOYW1lcyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3Rvcnkob2xkT3JpZ2luRGly
ZWN0b3J5KTsKLSAgICBpZiAoIWZpbGVOYW1lcy5pc0VtcHR5KCkpCi0gICAgICAgIEZpbGVTeXN0
ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhuZXdPcmlnaW5EaXJlY3RvcnkpOworICAgIGlmIChmaWxl
TmFtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUVtcHR5RGlyZWN0
b3J5KG9sZE9yaWdpbkRpcmVjdG9yeSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBG
aWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMobmV3T3JpZ2luRGlyZWN0b3J5KTsKICAgICBm
b3IgKGF1dG8mIG5hbWUgOiBmaWxlTmFtZXMpIHsKICAgICAgICAgLy8gVGhpcyBpcyBhbiBvcmln
aW4gZGlyZWN0b3J5IGZvciB0aGlyZC1wYXJ0eSBkYXRhLgogICAgICAgICBpZiAoYXV0byBvcmln
aW4gPSBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21EYXRhYmFzZUlkZW50aWZpZXIo
bmFtZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBTdHJpbmcgY2hpbGRQYXRo
ID0gRmlsZVN5c3RlbTo6cmVhbFBhdGgoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KG9sZE9yaWdpbkRpcmVjdG9yeSwgbmFtZSkpOwotICAgICAgICBTdHJpbmcgbmV3TmFtZSA9
IFdlYkNvcmU6OlNRTGl0ZUZpbGVTeXN0ZW06OmNvbXB1dGVIYXNoRm9yRmlsZU5hbWUoV2ViQ29y
ZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRlY29kZURhdGFiYXNlTmFtZShu
YW1lKSk7Ci0gICAgICAgIGF1dG8gbmV3Q2hpbGRQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KG5ld09yaWdpbkRpcmVjdG9yeSwgbmV3TmFtZSk7Ci0gICAgICAgIEZp
bGVTeXN0ZW06Om1vdmVGaWxlKGNoaWxkUGF0aCwgbmV3Q2hpbGRQYXRoKTsKKyAgICAgICAgLy8g
RG8gbm90IG92ZXJ3cml0ZSBleGlzdGluZyBmaWxlcy4KKyAgICAgICAgYXV0byBuZXdQYXRoID0g
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG5ld09yaWdpbkRpcmVjdG9yeSwg
Y3JlYXRlRmlsZU5hbWVGdW5jdGlvbihuYW1lKSk7CisgICAgICAgIGlmIChGaWxlU3lzdGVtOjpm
aWxlRXhpc3RzKG5ld1BhdGgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgYXV0
byBvbGRQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9sZE9yaWdp
bkRpcmVjdG9yeSwgbmFtZSk7CisgICAgICAgIEZpbGVTeXN0ZW06Om1vdmVGaWxlKG9sZFBhdGgs
IG5ld1BhdGgpOwogICAgIH0KIAogICAgIEZpbGVTeXN0ZW06OmRlbGV0ZUVtcHR5RGlyZWN0b3J5
KG9sZE9yaWdpbkRpcmVjdG9yeSk7CkBAIC02NSw3ICs3MSw5IEBAIFN0cmluZyBJREJTdG9yYWdl
TWFuYWdlcjo6aWRiU3RvcmFnZU9yaWdpbkRpcmVjdG9yeShjb25zdCBTdHJpbmcmIHJvb3REaXJl
Y3RvcnksCiAKICAgICBhdXRvIG9yaWdpbkRpcmVjdG9yeSA9IFdlYkNvcmU6OklEQkRhdGFiYXNl
SWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIHJvb3RE
aXJlY3RvcnksICJ2MSIpOwogICAgIGF1dG8gb2xkT3JpZ2luRGlyZWN0b3J5ID0gV2ViQ29yZTo6
SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9y
aWdpbiwgcm9vdERpcmVjdG9yeSwgInYwIik7Ci0gICAgbWlncmF0ZU9yaWdpbkRhdGEob2xkT3Jp
Z2luRGlyZWN0b3J5LCBvcmlnaW5EaXJlY3RvcnkpOworICAgIG1pZ3JhdGVPcmlnaW5EYXRhSW1w
bChvbGRPcmlnaW5EaXJlY3RvcnksIG9yaWdpbkRpcmVjdG9yeSwgW10oY29uc3QgU3RyaW5nJiBu
YW1lKSB7CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjpjb21wdXRl
SGFzaEZvckZpbGVOYW1lKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3Jl
OjpkZWNvZGVEYXRhYmFzZU5hbWUobmFtZSkpOworICAgIH0pOwogCiAgICAgcmV0dXJuIG9yaWdp
bkRpcmVjdG9yeTsKIH0KQEAgLTExOCw2ICsxMjYsMTMgQEAgSGFzaFNldDxXZWJDb3JlOjpDbGll
bnRPcmlnaW4+IElEQlN0b3JhZ2VNYW5hZ2VyOjpvcmlnaW5zT2ZJREJTdG9yYWdlRGF0YShjb25z
dAogICAgIHJldHVybiBvcmlnaW5zOwogfQogCit2b2lkIElEQlN0b3JhZ2VNYW5hZ2VyOjptaWdy
YXRlT3JpZ2luRGF0YShjb25zdCBTdHJpbmcmIG9sZE9yaWdpbkRpcmVjdG9yeSwgY29uc3QgU3Ry
aW5nJiBuZXdPcmlnaW5EaXJlY3RvcnkpCit7CisgICAgbWlncmF0ZU9yaWdpbkRhdGFJbXBsKG9s
ZE9yaWdpbkRpcmVjdG9yeSwgbmV3T3JpZ2luRGlyZWN0b3J5LCBbXShjb25zdCBTdHJpbmcmIG5h
bWUpIHsKKyAgICAgICAgcmV0dXJuIG5hbWU7CisgICAgfSk7Cit9CisKIElEQlN0b3JhZ2VNYW5h
Z2VyOjpJREJTdG9yYWdlTWFuYWdlcihjb25zdCBTdHJpbmcmIHBhdGgsIElEQlN0b3JhZ2VSZWdp
c3RyeSYgcmVnaXN0cnksIFF1b3RhQ2hlY2tGdW5jdGlvbiYmIHF1b3RhQ2hlY2tGdW5jdGlvbikK
ICAgICA6IG1fcGF0aChwYXRoKQogICAgICwgbV9yZWdpc3RyeShyZWdpc3RyeSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9JREJTdG9yYWdlTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0lEQlN0b3JhZ2VNYW5h
Z2VyLmgKaW5kZXggZmI2NjExYjg0NWU5MjQzNGQ1OTNmMGNjYjc4ZjE5ODViMjAyODA0Ny4uNTNm
MjJlYTk5NzFlYWE4OGIzMDJiZjAzMTNkNzBhNTgyOGU0MmYyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0lEQlN0b3JhZ2VNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0lEQlN0b3JhZ2VNYW5hZ2VyLmgK
QEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgaWRiU3RvcmFnZU9y
aWdpbkRpcmVjdG9yeShjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYpOwogICAgIHN0YXRpYyB1aW50NjRfdCBpZGJTdG9yYWdlU2l6ZShjb25z
dCBTdHJpbmcmIG9yaWdpbkRpcmVjdG9yeSk7CiAgICAgc3RhdGljIEhhc2hTZXQ8V2ViQ29yZTo6
Q2xpZW50T3JpZ2luPiBvcmlnaW5zT2ZJREJTdG9yYWdlRGF0YShjb25zdCBTdHJpbmcmIHJvb3RE
aXJlY3RvcnkpOworICAgIHN0YXRpYyB2b2lkIG1pZ3JhdGVPcmlnaW5EYXRhKGNvbnN0IFN0cmlu
ZyYgb2xkT3JpZ2luRGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIG5ld09yaWdpbkRpcmVjdG9yeSk7
CiAKICAgICB1c2luZyBRdW90YUNoZWNrRnVuY3Rpb24gPSBGdW5jdGlvbjx2b2lkKHVpbnQ2NF90
IHNwYWNlUmVxdWVzdGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKT47CiAgICAg
SURCU3RvcmFnZU1hbmFnZXIoY29uc3QgU3RyaW5nJiBwYXRoLCBJREJTdG9yYWdlUmVnaXN0cnkm
LCBRdW90YUNoZWNrRnVuY3Rpb24mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL09yaWdpblN0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCBi
ZGRmNmJlY2MzMTczNWNmNTk4ZDE4YTZmYjFlNzlkNzIzMzdhMGQyLi4xMzdmZGM0NWY0NzY1ZmQ1
NDRjNjg4MzFmNjRiYzI5YTM2YzA5NzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvT3JpZ2luU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9PcmlnaW5TdG9yYWdlTWFuYWdlci5jcHAKQEAg
LTI4MCwxMSArMjgwLDcgQEAgcHVibGljOgogICAgICAgICAgICAgbV9yZXNvbHZlZElEQlN0b3Jh
Z2VQYXRoID0gbV9jdXN0b21JREJTdG9yYWdlUGF0aDsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGF1dG8gaWRiU3RvcmFnZVBhdGggPSB0eXBlU3RvcmFnZVBhdGgoU3RvcmFnZVR5cGU6
OkluZGV4ZWREQik7Ci0gICAgICAgICAgICBpZiAoIW1fY3VzdG9tSURCU3RvcmFnZVBhdGguaXNF
bXB0eSgpICYmICFGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGlkYlN0b3JhZ2VQYXRoKSAmJiBGaWxl
U3lzdGVtOjpmaWxlRXhpc3RzKG1fY3VzdG9tSURCU3RvcmFnZVBhdGgpKSB7Ci0gICAgICAgICAg
ICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKGlkYlN0b3JhZ2VQYXRoKTsKLSAg
ICAgICAgICAgICAgICBGaWxlU3lzdGVtOjptb3ZlRmlsZShtX2N1c3RvbUlEQlN0b3JhZ2VQYXRo
LCBpZGJTdG9yYWdlUGF0aCk7Ci0gICAgICAgICAgICB9Ci0KKyAgICAgICAgICAgIElEQlN0b3Jh
Z2VNYW5hZ2VyOjptaWdyYXRlT3JpZ2luRGF0YShtX2N1c3RvbUlEQlN0b3JhZ2VQYXRoLCBpZGJT
dG9yYWdlUGF0aCk7CiAgICAgICAgICAgICBtX3Jlc29sdmVkSURCU3RvcmFnZVBhdGggPSBpZGJT
dG9yYWdlUGF0aDsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0ZDkwMjIxMjI1N2RhZTZiODBiZGJmNGFkMWZm
ZmQ0MDRkODUyMTcyLi5iOTY3ZjViY2QyMGZjMTU0MmZjMDE1Y2Y4ZjhiMTBmN2I2ODlhNDBmIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMjItMDItMjggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisK
KyAgICAgICAgTWlncmF0ZSB0aGlyZC1wYXJ0eSBJbmRleGVkREIgZGF0YSB0byBHZW5lcmFsU3Rv
cmFnZURpcmVjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM3MjgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlBl
cnNpc3RlbmNlLm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
aW5kZXhlZGRiLXBlcnNpc3RlbmNlLXRoaXJkLXBhcnR5LnNxbGl0ZTM6IEFkZGVkLgorCiAyMDIy
LTAyLTI4ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAg
IE5vIGFuaW1hdGlvbiB3aGVuIHNjcm9sbCBzbmFwIHNjcm9sbGVyIGlzIG5hdmlnYXRlZCB3aXRo
IHRoZSBrZXlib2FyZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMWI5ZTEzMmMyMDAyNDBl
NzdjMjljN2E2M2IyN2RjZGY5OTI5ZGY4Li5lMjE4NTQ3MjliMWFjNzgxODViNWE5MWJmOWE0OTgw
ODM0M2IxOTQwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzM4LDYgKzczOCw3IEBACiAJ
CTkzMkFFNTNEMUQzNzEwNDcwMDVERkZBRiAvKiBmb2N1cy1pbnB1dHMuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU3NUM1NTFEMzAz
NjZFMDAwRDYwNEQgLyogZm9jdXMtaW5wdXRzLmh0bWwgKi87IH07CiAJCTkzMzJFRjk0MjY0OUJC
NjgwMDlGNUQ2RCAvKiBTdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzJFRjkzMjY0OUJCNjgwMDlGNUQ2
RCAvKiBTdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmNwcCAqLzsgfTsKIAkJOTMzRDYzMUQxRkNC
NzYyMDAwMzJFQ0Q2IC8qIEhhc2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzNENjMxQjFGQ0I3NjE4MDAzMkVDRDYgLyogSGFzaGVyLmNwcCAq
LzsgfTsKKwkJOTM0MUM5NTcyN0NENTA3QTAwMjNDMEY0IC8qIGluZGV4ZWRkYi1wZXJzaXN0ZW5j
ZS10aGlyZC1wYXJ0eS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDFDOTU2MjdDRDUwNjgwMDIzQzBGNCAvKiBpbmRleGVkZGIt
cGVyc2lzdGVuY2UtdGhpcmQtcGFydHkuc3FsaXRlMyAqLzsgfTsKIAkJOTM0MjU4OUUyNTVCNkEx
MjAwNTlFRUREIC8qIHNwZWVjaHJlY29nbml0aW9uLXVzZXItcGVybWlzc2lvbi1wZXJzaXN0ZW5j
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzNDI1ODlEMjU1QjY2QTAwMDU5RUVERCAvKiBzcGVlY2hyZWNvZ25pdGlvbi11c2VyLXBl
cm1pc3Npb24tcGVyc2lzdGVuY2UuaHRtbCAqLzsgfTsKIAkJOTM1Nzg2Q0MyMEY2QTI3MDAwMDBD
REZDIC8qIEluZGV4ZWREQi5zcWxpdGUzLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzRGQTVDNTIwRjY5RkVEMDA0MERDMUIgLyogSW5k
ZXhlZERCLnNxbGl0ZTMtd2FsICovOyB9OwogCQk5MzU3ODZDRDIwRjZBMjkxMDAwMENERkMgLyog
SW5kZXhlZERCLnNxbGl0ZTMgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM0RkE1QzcyMEY2OUZFRTAwNDBEQzFCIC8qIEluZGV4ZWREQi5zcWxp
dGUzICovOyB9OwpAQCAtMTQwNiw2ICsxNDA3LDcgQEAKIAkJCQk3MUU4OEM0NTI0QjUzNEI3MDA2
NjUxNjAgLyogaW1nLXdpdGgtYmFzZTY0LXVybC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTQ5ODk3RDZDMjQxRkU5RTQwMEVDRjE1MyAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LWxv
Y2FsLWZpbGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk0OTcxQjExODI0NTFGMjlB
MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJOTM0MUM5NTcyN0NENTA3QTAwMjNDMEY0IC8qIGluZGV4ZWRkYi1wZXJzaXN0
ZW5jZS10aGlyZC1wYXJ0eS5zcWxpdGUzIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzNTc4
NkNEMjBGNkEyOTEwMDAwQ0RGQyAvKiBJbmRleGVkREIuc3FsaXRlMyBpbiBDb3B5IFJlc291cmNl
cyAqLywKIAkJCQk5MzU3ODZDRTIwRjZBMkExMDAwMENERkMgLyogSW5kZXhlZERCLnNxbGl0ZTMt
c2htIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTkzNTc4NkNDMjBGNkEyNzAwMDAwQ0RGQyAv
KiBJbmRleGVkREIuc3FsaXRlMy13YWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yNTIyLDYg
KzI1MjQsNyBAQAogCQk5MzMxNDA3QjE3QjQ0MTkwMDBGMDgzQjEgLyogRGlkTm90SGFuZGxlS2V5
RG93bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWROb3RIYW5k
bGVLZXlEb3duLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMzMkVGOTMyNjQ5
QkI2ODAwOUY1RDZEIC8qIFN0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzM0Q2MzFCMUZDQjc2MTgwMDMyRUNENiAv
KiBIYXNoZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGFzaGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0MUM5NTYyN0NENTA2ODAwMjND
MEY0IC8qIGluZGV4ZWRkYi1wZXJzaXN0ZW5jZS10aGlyZC1wYXJ0eS5zcWxpdGUzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJp
bmRleGVkZGItcGVyc2lzdGVuY2UtdGhpcmQtcGFydHkuc3FsaXRlMyI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzNDI1ODlCMjU1QjYwOUEwMDU5RUVERCAvKiBTcGVlY2hSZWNvZ25p
dGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQyNTg5RDI1NUI2
NkEwMDA1OUVFREQgLyogc3BlZWNocmVjb2duaXRpb24tdXNlci1wZXJtaXNzaW9uLXBlcnNpc3Rl
bmNlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic3BlZWNocmVjb2duaXRpb24t
dXNlci1wZXJtaXNzaW9uLXBlcnNpc3RlbmNlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5MzQ2OEU2RTI3MTRCNEYxMDA5OTgzRTMgLyogRmlsZVN5c3RlbUFjY2Vzcy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZpbGVTeXN0ZW1BY2Nlc3Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MTcxLDYgKzQxNzQsNyBAQAogCQkJ
CTMxMjhBODE0MjM3NjQwRkQwMEQ5MEQ0MCAvKiBpbWFnZS5odG1sICovLAogCQkJCTQ5RDdGQkE3
MjQxRkREREEwMEFCNjdGQSAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LWxvY2FsLWZpbGUuaHRt
bCAqLywKIAkJCQk0OTcxQjExNzI0NTFGMjc4MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFi
bGVTY2hlbWEuZGIgKi8sCisJCQkJOTM0MUM5NTYyN0NENTA2ODAwMjNDMEY0IC8qIGluZGV4ZWRk
Yi1wZXJzaXN0ZW5jZS10aGlyZC1wYXJ0eS5zcWxpdGUzICovLAogCQkJCTkzNEZBNUM3MjBGNjlG
RUUwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMyAqLywKIAkJCQk5MzRGQTVDNjIwRjY5RkVE
MDA0MERDMUIgLyogSW5kZXhlZERCLnNxbGl0ZTMtc2htICovLAogCQkJCTkzNEZBNUM1MjBGNjlG
RUQwMDQwREMxQiAvKiBJbmRleGVkREIuc3FsaXRlMy13YWwgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbmRleGVkREJQZXJzaXN0
ZW5jZS5tbQppbmRleCA4ZGQwZGM4ZTBhMDY1NzI5ODRkM2RhZjA2MzBlYmRiMjczMWI2ZmU3Li4z
MTE2M2EzMDlmNzQ0Y2NlYjMwYTZiOTEwZTU1ZGJhZTE4Mzc2YzY0IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5kZXhlZERCUGVy
c2lzdGVuY2UubW0KQEAgLTI5LDcgKzI5LDcgQEAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJUZXN0LmgiCiAjaW1wb3J0ICJUZXN0VVJMU2NoZW1lSGFuZGxlci5oIgot
I2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWYuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWZQcml2
YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFByaXZhdGUuaD4KICNpbXBvcnQg
PFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclByaXZhdGUuaD4KQEAgLTIzNyw3ICsyMzcs
NyBAQCB0cnkgewogPC9zY3JpcHQ+CiApVEVTVFJFU09VUkNFIjsKIAotc3RhdGljIHZvaWQgbG9h
ZFRlc3RQYWdlSW5XZWJWaWV3KFdLV2ViVmlldyAqd2ViVmlldywgTlNTdHJpbmcgKmV4cGVjdGVk
UmVzdWx0KQorc3RhdGljIHZvaWQgbG9hZFRoaXJkUGFydHlQYWdlSW5XZWJWaWV3KFdLV2ViVmll
dyAqd2ViVmlldywgTlNTdHJpbmcgKmV4cGVjdGVkUmVzdWx0KQogewogICAgIFt3ZWJWaWV3IGxv
YWRIVE1MU3RyaW5nOm1haW5GcmFtZVN0cmluZ1BlcnNpc3RlbmNlIGJhc2VVUkw6W05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJodHRwOi8vd2Via2l0Lm9yZyJdXTsKICAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7CkBAIC0yNjAsMTAgKzI2MCwxMCBAQCBU
RVNUKEluZGV4ZWREQiwgSW5kZXhlZERCVGhpcmRQYXJ0eUZyYW1lSGFzQWNjZXNzKQogICAgIFtj
b25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFuZGxlci5nZXQoKSBmb3JV
UkxTY2hlbWU6QCJpZnJhbWUiXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgbG9hZFRlc3RQYWdlSW5XZWJW
aWV3KHdlYlZpZXcuZ2V0KCksIEAiZGF0YWJhc2UgaXMgY3JlYXRlZCAtIHB1dCBpdGVtIHN1Y2Nl
c3MiKTsKKyAgICBsb2FkVGhpcmRQYXJ0eVBhZ2VJbldlYlZpZXcod2ViVmlldy5nZXQoKSwgQCJk
YXRhYmFzZSBpcyBjcmVhdGVkIC0gcHV0IGl0ZW0gc3VjY2VzcyIpOwogCiAgICAgYXV0byBzZWNv
bmRXZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01h
a2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCld
KTsKLSAgICBsb2FkVGVzdFBhZ2VJbldlYlZpZXcoc2Vjb25kV2ViVmlldy5nZXQoKSwgQCJkYXRh
YmFzZSBleGlzdHMgLSBnZXQgaXRlbSBzdWNjZXNzOiBUZXN0VmFsdWUiKTsKKyAgICBsb2FkVGhp
cmRQYXJ0eVBhZ2VJbldlYlZpZXcoc2Vjb25kV2ViVmlldy5nZXQoKSwgQCJkYXRhYmFzZSBleGlz
dHMgLSBnZXQgaXRlbSBzdWNjZXNzOiBUZXN0VmFsdWUiKTsKIAogICAgIHdlYlZpZXcgPSBuaWw7
CiAgICAgc2Vjb25kV2ViVmlldyA9IG5pbDsKQEAgLTI3MSw3ICsyNzEsNyBAQCBURVNUKEluZGV4
ZWREQiwgSW5kZXhlZERCVGhpcmRQYXJ0eUZyYW1lSGFzQWNjZXNzKQogCiAgICAgLy8gVGhpcmQt
cGFydHkgSURCIHN0b3JhZ2UgaXMgc3RvcmVkIGluIHRoZSBtZW1vcnkgb2YgbmV0d29yayBwcm9j
ZXNzLgogICAgIGF1dG8gdGhpcmRXZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBsb2FkVGVzdFBhZ2VJbldlYlZpZXcodGhpcmRXZWJW
aWV3LmdldCgpLCBAImRhdGFiYXNlIGlzIGNyZWF0ZWQgLSBwdXQgaXRlbSBzdWNjZXNzIik7Cisg
ICAgbG9hZFRoaXJkUGFydHlQYWdlSW5XZWJWaWV3KHRoaXJkV2ViVmlldy5nZXQoKSwgQCJkYXRh
YmFzZSBpcyBjcmVhdGVkIC0gcHV0IGl0ZW0gc3VjY2VzcyIpOwogfQogCiBURVNUKEluZGV4ZWRE
QiwgSW5kZXhlZERCVGhpcmRQYXJ0eURhdGFSZW1vdmFsKQpAQCAtMjk4LDcgKzI5OCw3IEBAIFRF
U1QoSW5kZXhlZERCLCBJbmRleGVkREJUaGlyZFBhcnR5RGF0YVJlbW92YWwpCiAgICAgW2NvbmZp
Z3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyLmdldCgpIGZvclVSTFNj
aGVtZTpAImlmcmFtZSJdOwogCiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAgICBsb2FkVGVzdFBhZ2VJbldlYlZpZXco
d2ViVmlldy5nZXQoKSwgQCJkYXRhYmFzZSBpcyBjcmVhdGVkIC0gcHV0IGl0ZW0gc3VjY2VzcyIp
OworICAgIGxvYWRUaGlyZFBhcnR5UGFnZUluV2ViVmlldyh3ZWJWaWV3LmdldCgpLCBAImRhdGFi
YXNlIGlzIGNyZWF0ZWQgLSBwdXQgaXRlbSBzdWNjZXNzIik7CiAKICAgICBhdXRvIHNlY29uZFdl
YlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwog
ICAgIFtzZWNvbmRXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJpZnJhbWU6Ly8iXV1dOwpAQCAtMzIxLDcgKzMyMSw3
IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJUaGlyZFBhcnR5RGF0YVJlbW92YWwpCiAgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOwogCiAgICAgYXV0byB0
aGlyZFdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOwotICAgIGxvYWRUZXN0UGFnZUluV2ViVmlldyh0aGlyZFdlYlZpZXcuZ2V0KCksIEAiZGF0
YWJhc2UgaXMgY3JlYXRlZCAtIHB1dCBpdGVtIHN1Y2Nlc3MiKTsKKyAgICBsb2FkVGhpcmRQYXJ0
eVBhZ2VJbldlYlZpZXcodGhpcmRXZWJWaWV3LmdldCgpLCBAImRhdGFiYXNlIGlzIGNyZWF0ZWQg
LSBwdXQgaXRlbSBzdWNjZXNzIik7CiB9CiAKIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJUaGly
ZFBhcnR5U3RvcmFnZUxheW91dCkKQEAgLTM1NiwxOCArMzU2LDg2IEBAIFRFU1QoSW5kZXhlZERC
LCBJbmRleGVkREJUaGlyZFBhcnR5U3RvcmFnZUxheW91dCkKICAgICB9XTsKICAgICBbY29uZmln
dXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOnNjaGVtZUhhbmRsZXIuZ2V0KCkgZm9yVVJMU2No
ZW1lOkAiaWZyYW1lIl07CiAgICAgLy8gQWxsb3dpbmcgdGhpcmQtcGFydHkgZnJhbWUgdG8gc3Rv
cmUgZGF0YSBvbiBkaXNrLgotICAgIGF1dG8gcHJlZmVyZW5jZXMgPSAoX19icmlkZ2UgV0tQcmVm
ZXJlbmNlc1JlZilbY29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107Ci0gICAgV0tQcmVmZXJlbmNl
c1NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShwcmVmZXJlbmNlcywga1dLQWxsb3dBbGxTdG9yYWdl
KTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdIF9zZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3k6X1dLU3RvcmFnZUJsb2NraW5nUG9saWN5QWxsb3dBbGxdOwogCiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKLSAg
ICBsb2FkVGVzdFBhZ2VJbldlYlZpZXcod2ViVmlldy5nZXQoKSwgQCJkYXRhYmFzZSBpcyBjcmVh
dGVkIC0gcHV0IGl0ZW0gc3VjY2VzcyIpOwotCisgICAgbG9hZFRoaXJkUGFydHlQYWdlSW5XZWJW
aWV3KHdlYlZpZXcuZ2V0KCksIEAiZGF0YWJhc2UgaXMgY3JlYXRlZCAtIHB1dCBpdGVtIHN1Y2Nl
c3MiKTsKICAgICBFWFBFQ1RfVFJVRShbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0aDp3ZWJr
aXRPcmlnaW5GaWxlLnBhdGhdKTsKICAgICBFWFBFQ1RfVFJVRShbZmlsZU1hbmFnZXIgZmlsZUV4
aXN0c0F0UGF0aDp3ZWJraXRJZnJhbWVPcmlnaW5GaWxlLnBhdGhdKTsKICAgICBFWFBFQ1RfRkFM
U0UoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6aWZyYW1lV2ViS2l0T3JpZ2luRmlsZS5w
YXRoXSk7CiAgICAgRVhQRUNUX1RSVUUoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6d2Vi
a2l0SWZyYW1lRGF0YWJhc2VGaWxlLnBhdGhdKTsKIH0KIAorVEVTVChJbmRleGVkREIsIE1pZ3Jh
dGVUaGlyZFBhcnR5RGF0YVRvR2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkpCit7CisgICAgTlNVUkwg
KnJlc291cmNlU2FsdCA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJn
ZW5lcmFsLXN0b3JhZ2UtZGlyZWN0b3J5IiB3aXRoRXh0ZW5zaW9uOkAic2FsdCIgc3ViZGlyZWN0
b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKKyAgICBOU1VSTCAqcmVzb3VyY2VEYXRh
YmFzZSA9IFtbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJpbmRleGVkZGIt
cGVyc2lzdGVuY2UtdGhpcmQtcGFydHkiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzIiBzdWJkaXJl
Y3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNlcyJdOworICAgIE5TVVJMICpnZW5lcmFsU3Rv
cmFnZURpcmVjdG9yeSA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6W0Aifi9MaWJyYXJ5L1dlYktp
dC9jb20uYXBwbGUuV2ViS2l0LlRlc3RXZWJLaXRBUEkvQ3VzdG9tV2Vic2l0ZURhdGEvRGVmYXVs
dCIgc3RyaW5nQnlFeHBhbmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBO
U1VSTCAqd2Via2l0T3JpZ2luRGlyZWN0b3J5ID0gW2dlbmVyYWxTdG9yYWdlRGlyZWN0b3J5IFVS
TEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIkVBTzY2czhKdkNXTm40RDNZUXV0NXBYZmlHRl9V
WE5aR3ZNR042YUtJTGcvRUFPNjZzOEp2Q1dObjREM1lRdXQ1cFhmaUdGX1VYTlpHdk1HTjZhS0lM
ZyJdOworICAgIE5TVVJMICp3ZWJraXRPcmlnaW5GaWxlID0gW3dlYmtpdE9yaWdpbkRpcmVjdG9y
eSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJvcmlnaW4iXTsKKyAgICBOU1VSTCAqd3Jv
bmdXZWJraXRJZnJhbWVEYXRhYmFzZURpcmVjdG9yeSA9IFt3ZWJraXRPcmlnaW5EaXJlY3Rvcnkg
VVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiSW5kZXhlZERCL2lmcmFtZV9fMCJdOworICAg
IE5TVVJMICp3ZWJraXRJZnJhbWVPcmlnaW5EaXJlY3RvcnkgPSBbZ2VuZXJhbFN0b3JhZ2VEaXJl
Y3RvcnkgVVJMQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiRUFPNjZzOEp2Q1dObjREM1lRdXQ1
cFhmaUdGX1VYTlpHdk1HTjZhS0lMZy92dWR2Yk1sS1hqMW02UmliblZ2YzhQZEFkY1hac05FNk9O
X0FsN3lxT3NnIl07CisgICAgTlNVUkwgKndlYmtpdElmcmFtZU9yaWdpbkZpbGUgPSBbd2Via2l0
SWZyYW1lT3JpZ2luRGlyZWN0b3J5IFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIm9yaWdp
biJdOworICAgIE5TU3RyaW5nICpoYXNoZWREYXRhYmFzZU5hbWUgPSBXZWJDb3JlOjpTUUxpdGVG
aWxlU3lzdGVtOjpjb21wdXRlSGFzaEZvckZpbGVOYW1lKCJJbmRleGVkREJUaGlyZFBhcnR5RnJh
bWVIYXNBY2Nlc3MiKTsKKyAgICBOU1VSTCAqd2Via2l0SWZyYW1lRGF0YWJhc2VGaWxlPSBbTlNV
UkwgZmlsZVVSTFdpdGhQYXRoOltOU1N0cmluZyBwYXRoV2l0aENvbXBvbmVudHM6QFt3ZWJraXRJ
ZnJhbWVPcmlnaW5EaXJlY3RvcnkucGF0aCwgQCJJbmRleGVkREIiLCBoYXNoZWREYXRhYmFzZU5h
bWUsIEAiSW5kZXhlZERCLnNxbGl0ZTMiXV1dOworICAgIE5TVVJMICppZGJEaXJlY3RvcnkgPSBb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOltAIn4vTGlicmFyeS9XZWJLaXQvY29tLmFwcGxlLldlYktp
dC5UZXN0V2ViS2l0QVBJL0N1c3RvbVdlYnNpdGVEYXRhL0luZGV4ZWREQiIgc3RyaW5nQnlFeHBh
bmRpbmdUaWxkZUluUGF0aF0gaXNEaXJlY3Rvcnk6WUVTXTsKKyAgICBOU1VSTCAqb2xkV2Via2l0
SWZyYW1lRGF0YWJhc2VEaXJlY3RvcnkgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOltOU1N0cmlu
ZyBwYXRoV2l0aENvbXBvbmVudHM6QFtpZGJEaXJlY3RvcnkucGF0aCwgQCJ2MS9odHRwX3dlYmtp
dC5vcmdfMC9pZnJhbWVfXzAiLCBoYXNoZWREYXRhYmFzZU5hbWVdXV07CisgICAgTlNVUkwgKm9s
ZFdlYmtpdElmcmFtZURhdGFiYXNlRmlsZSA9IFtvbGRXZWJraXRJZnJhbWVEYXRhYmFzZURpcmVj
dG9yeSBVUkxCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJJbmRleGVkREIuc3FsaXRlMyJdOwor
CisgICAgTlNGaWxlTWFuYWdlciAqZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl07CisgICAgW2ZpbGVNYW5hZ2VyIHJlbW92ZUl0ZW1BdFVSTDpnZW5lcmFsU3RvcmFn
ZURpcmVjdG9yeSBlcnJvcjpuaWxdOworICAgIFtmaWxlTWFuYWdlciBjcmVhdGVEaXJlY3RvcnlB
dFVSTDpnZW5lcmFsU3RvcmFnZURpcmVjdG9yeSB3aXRoSW50ZXJtZWRpYXRlRGlyZWN0b3JpZXM6
WUVTIGF0dHJpYnV0ZXM6bmlsIGVycm9yOm5pbF07CisgICAgW2ZpbGVNYW5hZ2VyIGNvcHlJdGVt
QXRVUkw6cmVzb3VyY2VTYWx0IHRvVVJMOltnZW5lcmFsU3RvcmFnZURpcmVjdG9yeSBVUkxCeUFw
cGVuZGluZ1BhdGhDb21wb25lbnQ6QCJzYWx0Il0gZXJyb3I6bmlsXTsKKyAgICAvLyBDcmVhdGUg
dGhpcmQtcGFydHkgZGF0YWJhc2UgZmlsZSBvbiBkaXNrLgorICAgIFtmaWxlTWFuYWdlciByZW1v
dmVJdGVtQXRVUkw6aWRiRGlyZWN0b3J5IGVycm9yOm5pbF07CisgICAgW2ZpbGVNYW5hZ2VyIGNy
ZWF0ZURpcmVjdG9yeUF0VVJMOm9sZFdlYmtpdElmcmFtZURhdGFiYXNlRGlyZWN0b3J5IHdpdGhJ
bnRlcm1lZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bmlsXTsKKyAg
ICBbZmlsZU1hbmFnZXIgY29weUl0ZW1BdFVSTDpyZXNvdXJjZURhdGFiYXNlIHRvVVJMOm9sZFdl
YmtpdElmcmFtZURhdGFiYXNlRmlsZSBlcnJvcjpuaWxdOworCisgICAgYXV0byBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAg
ICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbSW5kZXhlZERCTWVzc2FnZUhhbmRsZXIgYWxsb2Nd
IGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRT
Y3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOwor
ICAgIGF1dG8gc2NoZW1lSGFuZGxlciA9IGFkb3B0TlMoW1tUZXN0VVJMU2NoZW1lSGFuZGxlciBh
bGxvY10gaW5pdF0pOworICAgIFtzY2hlbWVIYW5kbGVyIHNldFN0YXJ0VVJMU2NoZW1lVGFza0hh
bmRsZXI6XihXS1dlYlZpZXcgKiwgaWQ8V0tVUkxTY2hlbWVUYXNrPiB0YXNrKSB7CisgICAgICAg
IGF1dG8gcmVzcG9uc2UgPSBhZG9wdE5TKFtbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhV
Ukw6dGFzay5yZXF1ZXN0LlVSTCBNSU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50
TGVuZ3RoOjAgdGV4dEVuY29kaW5nTmFtZTpuaWxdKTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2
ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6
W05TRGF0YSBkYXRhV2l0aEJ5dGVzOmlmcmFtZUJ5dGVzUGVyc2lzdGVuY2UgbGVuZ3RoOnN0cmxl
bihpZnJhbWVCeXRlc1BlcnNpc3RlbmNlKV1dOworICAgICAgICBbdGFzayBkaWRGaW5pc2hdOwor
ICAgIH1dOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFu
ZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJpZnJhbWUiXTsKKyAgICBbW2NvbmZpZ3VyYXRpb24g
cHJlZmVyZW5jZXNdIF9zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3k6X1dLU3RvcmFnZUJsb2NraW5n
UG9saWN5QWxsb3dBbGxdOworICAgIGF1dG8gd2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5faW5kZXhlZERCRGF0
YWJhc2VEaXJlY3RvcnkgPSBpZGJEaXJlY3Rvcnk7CisgICAgd2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24uZ2V0KCkuZ2VuZXJhbFN0b3JhZ2VEaXJlY3RvcnkgPSBnZW5lcmFsU3RvcmFnZURp
cmVjdG9yeTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5nZXQoKS5zaG91bGRV
c2VDdXN0b21TdG9yYWdlUGF0aHMgPSBmYWxzZTsKKyAgICBhdXRvIHdlYnNpdGVEYXRhU3RvcmUg
PSBhZG9wdE5TKFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0
aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW2NvbmZpZ3Vy
YXRpb24gc2V0V2Vic2l0ZURhdGFTdG9yZTp3ZWJzaXRlRGF0YVN0b3JlLmdldCgpXTsKKyAgICBh
dXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOworCisgICAgLy8gRW5zdXJlIG9wZW5pbmcgZmlyc3QtcGFydHkgZGF0YWJhc2UgZG9lcyBu
b3QgbWlncmF0ZSB0aGlyZC1wYXJ0eSBkYXRhLgorICAgIE5TU3RyaW5nICpmaXJzdFBhcnR5SFRN
TFN0cmluZyA9IEAiPHNjcmlwdD4gXAorICAgICAgICB2YXIgcmVxdWVzdCA9IHdpbmRvdy5pbmRl
eGVkREIub3BlbignVGVzdERhdGFiYXNlJyk7IFwKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbigpIHsgXAorICAgICAgICAgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxl
cnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2RhdGFiYXNlIGlzIGNyZWF0ZWQnKTsgXAorICAg
ICAgICB9OyBcCisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKCkgeyBcCisgICAg
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVz
c2FnZSgnZGF0YWJhc2UgZXJyb3InKTsgXAorICAgICAgICB9OyBcCisgICAgICAgIDwvc2NyaXB0
PiI7CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6Zmlyc3RQYXJ0eUhUTUxTdHJpbmcgYmFz
ZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6Ly93ZWJraXQub3JnIl1dOworICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNl
aXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJkYXRhYmFz
ZSBpcyBjcmVhdGVkIiwgKE5TU3RyaW5nICopW2dldE5leHRNZXNzYWdlKCkgYm9keV0pOworICAg
IEVYUEVDVF9UUlVFKFtmaWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRoOndlYmtpdE9yaWdpbkZp
bGUucGF0aF0pOworICAgIEVYUEVDVF9GQUxTRShbZmlsZU1hbmFnZXIgZmlsZUV4aXN0c0F0UGF0
aDp3cm9uZ1dlYmtpdElmcmFtZURhdGFiYXNlRGlyZWN0b3J5LnBhdGhdKTsKKyAgICBFWFBFQ1Rf
RkFMU0UoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6d2Via2l0SWZyYW1lT3JpZ2luRmls
ZS5wYXRoXSk7CisgICAgRVhQRUNUX0ZBTFNFKFtmaWxlTWFuYWdlciBmaWxlRXhpc3RzQXRQYXRo
OndlYmtpdElmcmFtZURhdGFiYXNlRmlsZS5wYXRoXSk7CisKKyAgICAvLyBFbnN1cmUgb3Blbmlu
ZyB0aGlyZC1wYXJ0eSBkYXRhYmFzZSBtaWdyYXRlcyB0aGlyZC1wYXJ0eSBkYXRhLCBhbmQgZGF0
YSBjYW4gYmUgY29ycmVjdGx5IHJlYWQuCisgICAgbG9hZFRoaXJkUGFydHlQYWdlSW5XZWJWaWV3
KHdlYlZpZXcuZ2V0KCksIEAiZGF0YWJhc2UgZXhpc3RzIC0gZ2V0IGl0ZW0gc3VjY2VzczogVGVz
dFZhbHVlIik7CisgICAgRVhQRUNUX1RSVUUoW2ZpbGVNYW5hZ2VyIGZpbGVFeGlzdHNBdFBhdGg6
d2Via2l0SWZyYW1lT3JpZ2luRmlsZS5wYXRoXSk7CisgICAgRVhQRUNUX1RSVUUoW2ZpbGVNYW5h
Z2VyIGZpbGVFeGlzdHNBdFBhdGg6d2Via2l0SWZyYW1lRGF0YWJhc2VGaWxlLnBhdGhdKTsKK30K
Kwogc3RhdGljIGNvbnN0IGNoYXIqIHdvcmtlckJ5dGVzID0gUiJURVNUUkVTT1VSQ0UoCiB0cnkg
ewogICAgIHZhciByZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4oJ0luZGV4ZWREQlRoaXJkUGFydHlX
b3JrZXJIYXNBY2Nlc3MnKTsKQEAgLTQyNSwxNyArNDkzLDE3IEBAIFRFU1QoSW5kZXhlZERCLCBJ
bmRleGVkREJUaGlyZFBhcnR5V29ya2VySGFzQWNjZXNzKQogICAgIFtjb25maWd1cmF0aW9uIHNl
dFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJpZnJh
bWUiXTsKIAogICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uLmdldCgpXSk7Ci0gICAgbG9hZFRlc3RQYWdlSW5XZWJWaWV3KHdlYlZpZXcuZ2V0
KCksIEAiZGF0YWJhc2UgaXMgY3JlYXRlZCIpOworICAgIGxvYWRUaGlyZFBhcnR5UGFnZUluV2Vi
Vmlldyh3ZWJWaWV3LmdldCgpLCBAImRhdGFiYXNlIGlzIGNyZWF0ZWQiKTsKIAogICAgIGF1dG8g
c2Vjb25kV2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdl
dCgpXSk7Ci0gICAgbG9hZFRlc3RQYWdlSW5XZWJWaWV3KHdlYlZpZXcuZ2V0KCksIEAiZGF0YWJh
c2UgZXhpc3RzIik7CisgICAgbG9hZFRoaXJkUGFydHlQYWdlSW5XZWJWaWV3KHdlYlZpZXcuZ2V0
KCksIEAiZGF0YWJhc2UgZXhpc3RzIik7CiAKICAgICB3ZWJWaWV3ID0gbmlsOwogICAgIHNlY29u
ZFdlYlZpZXcgPSBuaWw7CiAgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkud2Vic2l0ZURhdGFTdG9y
ZSBfdGVybWluYXRlTmV0d29ya1Byb2Nlc3NdOwogCiAgICAgYXV0byB0aGlyZFdlYlZpZXcgPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwotICAgIGxvYWRU
ZXN0UGFnZUluV2ViVmlldyh0aGlyZFdlYlZpZXcuZ2V0KCksIEAiZGF0YWJhc2UgaXMgY3JlYXRl
ZCIpOworICAgIGxvYWRUaGlyZFBhcnR5UGFnZUluV2ViVmlldyh0aGlyZFdlYlZpZXcuZ2V0KCks
IEAiZGF0YWJhc2UgaXMgY3JlYXRlZCIpOwogfQogCiBzdGF0aWMgTlNTdHJpbmcgKmdldERhdGFi
YXNlc1N0cmluZyA9IEAiPHNjcmlwdD4gXApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9pbmRleGVkZGItcGVyc2lzdGVuY2UtdGhpcmQtcGFydHkuc3Fs
aXRlMyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvaW5kZXhlZGRiLXBl
cnNpc3RlbmNlLXRoaXJkLXBhcnR5LnNxbGl0ZTMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI5YzBiZTM0OGY3ZjQy
ODMzNjQyM2FiYjhmOWQ4YzIyN2I1YTU5OQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNzM3MjgK
emNtZUkoUGpBfn45S2RscVBMcmx0PUNtNkdzZlNyaSlmJj00R25naHw2fF95ZFN4YntIT34tY1gr
e1YpfihxeE8+Cnp1P2l1UCFUfH0xeSMpQHVnTlh5OzROTSU2NUxZQ1E5TUN2JjgzIUlhWldnQ2Fs
TDx7Pz5ETmpYYD8zQV9gRik8fQp6QGwqZkY+ZVhEdUhubSZ6IytHNGdaJWM3MDVSZzk5RylhO0k7
JWBGeT9NK2NKNldtKTYtKlUlJXVpMWR+PTB9JWYKeihaOGhlUCpoVWlJUX1eSGIhX3QzIXwyfipL
U3pJemVpaXdCP0JWRmUkaFEkQUpROWtBZShJR0M9P0VaejAwSippCnpwbXtNS1BNa1ItP19SS3Rq
akRPWStfX31kJSFYbXQ4PHVaamU2ZzZGRkotbVR7NmEzUGBCckp1Xl5INWByb0FlNQp6R1dDcTY9
UyRnMypgayYmbChoVT5FfmdkcCtGfktVbCt6YlcrUzB0OSk3SjkoKXdRZkl5X2o5ZSVgYXdXdzlW
fkMKeiE+cmxqMj5tbGt6Qj9YREVUNTYzTzA4QEB1PGxqR3Uob2ImK2pWeiYtQi0lPnZ+T2BAX1o+
QnlJQ1Y8P3ZLNmBSCno8ZT1BWCkhUT8xVSZRVFhaTXN0S1UkUG1rV145PlNEU0tUUV5tM1Rkbylk
MEhgYEZ4QkczP3ZnTGF3bElTakg3PQp6dHlhMFdaNE9lPnQ/akJeJD0yK35BbVkyUDl9NmNeRGZ4
Pn0tM0MrV3NDanxjd0hXZ2VjQ0dZNXRgem08YFFpPWoKek83PSRZdW51WkJQSjA+JXlaNnE2bm1Q
P2p1V2p9eFAwayQ7QzliQT1IT25yQ14+YlliPlJqeDNjMjlUaGUhT3toCnolJm5yYGFrcS19JXRG
UXhiQjFOUT9jMlc/XjtKPlZ3JVc5Pz5DPWMwYSYzMyFgJGtvPyFOWXEmYXhRdlV4THJrQgp6UGpA
OThZaERQdTllSD1vNFJAaGgtJm0/dE97K2FLPkk8PSp0VzlyLVAxbE9LS0lKPG96KmVpZkJAVURD
LV8zaHYKemtXNUVIaVJgSWYmN0B0Pl4+Z2pudkduTCp5UUpIQE04eFBaPldtPUdTM317JT5DPHg0
WUM5RnAmM2RFa05fbiY0CnplT0JISS0kfWskfEQ9Qn1uOSZDRk8qU0pWO2wlcT5hYE9aQ3dDJGQw
eWAjM2l5bVBOT0wzX3l8dWF0VHxsZkFDPgp6KnVmY0lJIz5CMyZAO1oxdVhtaEd2Szk7ey1WI041
clAzTT9vKmk+dkF4MyVAIXJnVEw7YWdkWDFCKl5JcXEkdXAKenglLXxIUEUxWXRNajxhcUh5M1h7
PSZQMl9IUjNHbG1VTXQmKkI5fDE8RnM0U1JffENXPFp7bU5GRk4wJHIpViMoCno9aVJDUFkjNzxB
aXZBNU9jezNwRkNnbzwjQnsrYWhAen1pb0goSmY1YjMzUCF5eWJuKEwpMjJUeGhqVmZsYXVvOQp6
WEt0VklIdWImJnpEaFlib0JtUCEyam9Oa3YxcXRHeVE3amoySDBkd29ERjM0UzRuKUI1SV9JezFR
MCp+MFIjfDAKejAwOUlMSztZI09OWGE5U15SdHE0R2Mzd25sMSN+eFowVTtsLWpUKmNOP2hDcHtK
ZG1aX0JIMip0ZGs8RWVATm9QCnpnYTg1dkFiPGJAMnExc30wdGdfMDAwSishei16KENgTiU8YzFm
MXZwOy0hQmsxUTAqfjBSI3wwMDA5SUxLbVkqKgp6NUV4PHM9bE1VXnwzaDVDZ29YZUQycTFzfTB0
Z18wMDBJYWdmUGZJLWBrIVdpMDBJYWdmQipzckFiPGJAMnExdksKekBDKSQlfE0xcl81aDgjOTB0
Z18wMDBJYWdmQipzckFpKHVNWjIkb1Q1SV9JezFRMCp+MFIjfDAwRDw4YjtRanlNCnp1VlclYTAw
OUlMS21ZKio1SV9JezFRMC1nPnducSswdGdfMDAwSWFnZkIqc3JBYjxiQCEhT3t4e351SnBrPD5y
Ywp6QUpwJX0zPTt3ZkFiPGJAMnExc30wdGdfMDAwSWNTVjFiaUM8KmQ0RkpTYzQzRipvZzF5V1RN
TU8hfGJQcXx9VUkKejh5a2pZVU5hazNyQ3YrVjI5JkE3VVNpKFpHV0E7N2R8O0x7MyNIcVlNdFF8
KCpnSCFOayQlfio8fktKQCVRXyo4CnpZP2UqaUQydUgydlQ+Z08yaH5UQ2BrVlMjZVdYNWwhMnl5
ejB0Z18wMDBJYWdmQipzckFiPGJAMm47NTBRYUxNawp6LXk7Wn5QKlU+Vi0ybV59VVdxR0g/S0l+
T0wxMDJqTVk/VlBJTTRyT14/T050bT1IaCEwUiN8MDAwOUlMS21ZKioKejVKMkduQiVzUzlRdEpM
XyQrWVpfSHc4QkNSeDZmMEpOdF9xREFfeEEmQTJvZ2prayZ8JVU8ITd0fXJIPz1sYDwkCnprMGRA
ITJxMXN9MHRnXzAwMElhZ2ZCKnNyQVRXZGlpVn0mbXVLJUEleSFrKGI2LS1EN0FiPGJAMnExc30w
dGdfMAp6MDBLdS16PEt8Xz4ha3Rie2VRYE9PVzxndDVIJGhfQWI8YkAycTFzfTB0Z18wMDBQND0o
RTkhVlElUVh+e0lMPXQKejB0Z18wMDBJYWdmQipzckFiPGJATV5IZUttQj1XK3wzODg/UHNqKSRm
QipzckFiPGJAMnExc30wIUs9fmBUaFVECkQjS3gxfAoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>