<?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>225585</bug_id>
          
          <creation_ts>2021-05-09 20:15:25 -0700</creation_ts>
          <short_desc>[macOS] ImageOverlayController should paint selection quads instead of bounding rects</short_desc>
          <delta_ts>2021-05-10 11:10:14 -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>Platform</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1758419</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-09 20:15:25 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758420</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-09 20:15:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/77725745&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758425</commentid>
    <comment_count>2</comment_count>
      <attachid>428153</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-09 21:54:00 -0700</bug_when>
    <thetext>Created attachment 428153
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758426</commentid>
    <comment_count>3</comment_count>
      <attachid>428154</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-09 21:57:42 -0700</bug_when>
    <thetext>Created attachment 428154
Fix CMake build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758549</commentid>
    <comment_count>4</comment_count>
      <attachid>428154</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-05-10 11:00:05 -0700</bug_when>
    <thetext>Comment on attachment 428154
Fix CMake build

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758556</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-10 11:10:09 -0700</bug_when>
    <thetext>Committed r277274 (237541@main): &lt;https://commits.webkit.org/237541@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428154.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428153</attachid>
            <date>2021-05-09 21:54:00 -0700</date>
            <delta_ts>2021-05-09 21:59:57 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-225585-20210509215359.patch</filename>
            <type>text/plain</type>
            <size>42808</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ1ODdmNjNkZWMxZWE2
NGVhZjhlM2YxNTc5ZmUwYjE1NmU1MDA2Ny4uNDNhYjY2ZDRiMGRmYWUzMWJmMDQ4M2E2YTA3NGZm
MTU2MDExMjJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgyIEBACisyMDIxLTA1LTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gSW1h
Z2VPdmVybGF5Q29udHJvbGxlciBzaG91bGQgcGFpbnQgc2VsZWN0aW9uIHF1YWRzIGluc3RlYWQg
b2YgYm91bmRpbmcgcmVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNTU4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzc3MjU3NDU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVhY2ggYFNlbGVj
dGlvblJlY3RHYXRoZXJlcmAgKG5vdyByZW5hbWVkIHRvIGBTZWxlY3Rpb25HZW9tZXRyeUdhdGhl
cmVyYCkgdG8gZW1pdCBxdWFkcywgcmF0aGVyIHRoYW4gYm91bmRpbmcKKyAgICAgICAgcmVjdHMg
YXJvdW5kIGVhY2ggcXVhZC4gV2UgdXNlIHRoZXNlIHF1YWRzIGluIGBJbWFnZU92ZXJsYXlDb250
cm9sbGVyYCB0byByZW5kZXIgc2VsZWN0aW9uIHF1YWRzIHZpYSBwYWdlCisgICAgICAgIG92ZXJs
YXkgKGkuZS4sIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBpbWFnZSBjb250YWluaW5nIHRoZSBvdmVy
bGF5IGlzIHRyYW5zcGFyZW50KS4KKworICAgICAgICBUZXN0OiBmYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0
bWwKKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGVkaXRpbmcvU2VsZWN0aW9uR2VvbWV0
cnlHYXRoZXJlci5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVj
dGlvblJlY3RHYXRoZXJlci5jcHAuCisKKyAgICAgICAgUmVuYW1lIGBTZWxlY3Rpb25SZWN0R2F0
aGVyZXJgIHRvIGBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyYCwgdG8gcmVmbGVjdCB0aGUgZmFj
dCB0aGF0IHRoaXMgaGVscGVyIGNsYXNzIG5vdworICAgICAgICBhZ2dyZWdhdGVzIGJvdGggc2Vs
ZWN0aW9uIHF1YWRzIGFuZCBnYXAgcmVjdHMuCisKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlv
bkdlb21ldHJ5R2F0aGVyZXI6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRkUXVhZCk6CisKKyAgICAgICAg
UmVuYW1lIGBhZGRSZWN0YCB0byBgYWRkUXVhZGAsIGFuZCBtYWtlIGl0IHRha2UgYSBgRmxvYXRR
dWFkYCBpbnN0ZWFkLgorCisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeUdhdGhl
cmVyOjphZGRHYXBSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeUdh
dGhlcmVyOjpOb3RpZmllcjo6Tm90aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
R2VvbWV0cnlHYXRoZXJlcjo6Tm90aWZpZXI6On5Ob3RpZmllcik6CisgICAgICAgIChXZWJDb3Jl
OjpTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjpib3VuZGluZ1JlY3RzIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmNsZWFyQW5kQ3JlYXRlTm90
aWZpZXIpOgorICAgICAgICAqIGVkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25SZWN0R2F0aGVyZXIu
aC4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OnNldFRleHRP
bmx5KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmlzVGV4
dE9ubHkgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnVwZGF0ZVdpdGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQpOgor
CisgICAgICAgIE1pbm9yIHR3ZWFrIC0gZG9uJ3QgYWRkIGFueSBtYXJnaW4gYXJvdW5kIHRoZSB3
b3JkIHdoZW4gdGhlIGxpbmUgb25seSBjb250YWlucyBhIHNpbmdsZSB3b3JkLgorCisgICAgICAg
ICogcGFnZS9JbWFnZU92ZXJsYXlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblF1YWRzRGlkQ2hhbmdlKToKKworICAgICAg
ICBSZW5hbWUgYHNlbGVjdGlvblJlY3RzRGlkQ2hhbmdlYCB0byBgc2VsZWN0aW9uUXVhZHNEaWRD
aGFuZ2VgLCBhbmQgdGFrZSBhIGBGbG9hdFF1YWRgIGluIGFic29sdXRlIGNvb3JkaW5hdGVzCisg
ICAgICAgIGluc3RlYWQgb2YgYSBgTGF5b3V0UmVjdGAuIFN0b3JlIHRoZXNlIHF1YWRzIGluIGBt
X292ZXJsYXlTZWxlY3Rpb25RdWFkc2AgKGFsc28gcmVuYW1lZCBmcm9tCisgICAgICAgIGBtX292
ZXJsYXlTZWxlY3Rpb25SZWN0c2ApLgorCisgICAgICAgIChXZWJDb3JlOjpJbWFnZU92ZXJsYXlD
b250cm9sbGVyOjp1bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmRyYXdSZWN0KToKKworICAgICAgICBNYWtlIGEg
ZmV3IGNoYW5nZXMgd2hlbiBwYWludGluZyBzZWxlY3Rpb25zIHVzaW5nIHRoZSBgSW1hZ2VPdmVy
bGF5Q29udHJvbGxlcmA6CisKKyAgICAgICAgMS4gIEluc3RlYWQgb2YgcGFpbnRpbmcgd2l0aCBg
ZmlsbFJlY3QoKWAsIGNvYWxlc2NlIGFsbCBvZiB0aGUgY29sbGVjdGVkIHNlbGVjdGlvbiBxdWFk
cyBpbnRvIGEgc2luZ2xlIGBQYXRoYAorICAgICAgICAgICAgb2JqZWN0LCBhbmQgcGFzcyB0aGF0
IGBQYXRoYCBpbnRvIGBmaWxsUGF0aCgpYC4gVGhpcyBhbGxvd3MgdXMgdG8gcmVuZGVyIGVhY2gg
cGllY2Ugb2Ygc2VsZWN0ZWQgY29udGVudCBhcyBhCisgICAgICAgICAgICBxdWFkIGluc3RlYWQg
b2YgYSBib3VuZGluZyByZWN0LCBhbmQgYWRkaXRpb25hbGx5IHByZXZlbnRzIHVzIGZyb20gcmVu
ZGVyaW5nIG92ZXJsYXBwaW5nIHNlbGVjdGlvbnMKKyAgICAgICAgICAgIHdoZW4gdXNpbmcgYElt
YWdlT3ZlcmxheUNvbnRyb2xsZXJgLgorCisgICAgICAgIDIuICBDbGlwIHNlbGVjdGlvbnMgdG8g
dGhlIGFic29sdXRlIGJvdW5kcyBvZiB0aGUgaW1hZ2Ugb3ZlcmxheSBob3N0IGVsZW1lbnQncyBy
ZW5kZXJlciwgd2hpY2ggcHJldmVudHMgdGhlIG5ldworICAgICAgICAgICAgc2VsZWN0aW9uIHF1
YWRzIGZyb20gc3BpbGxpbmcgb3V0IG9mIHRoZSBob3N0IGVsZW1lbnQuCisKKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblJlY3RzRGlkQ2hhbmdlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTZWxlY3Rpb25JbmZvOjpSZW5kZXJTZWxlY3Rpb25JbmZvKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
U2VsZWN0aW9uSW5mbzo6Y29sbGVjdGVkU2VsZWN0aW9uUXVhZHMgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU2VsZWN0aW9uSW5mbzo6Y29sbGVjdGVkU2VsZWN0aW9uUmVjdHMgY29u
c3QpOiBEZWxldGVkLgorCisgICAgICAgIE1vcmUgbWlub3IgcmVmYWN0b3Jpbmc6IHJlbmFtZSBg
Y29sbGVjdGVkU2VsZWN0aW9uUmVjdHNgIHRvIGBjb2xsZWN0ZWRTZWxlY3Rpb25RdWFkc2AsIGFu
ZCBtYWtlIGl0IHRha2UgdGhlCisgICAgICAgIG9yaWdpbmFsIGBGbG9hdFF1YWRgIGluc3RlYWQg
b2YgdGhlIHF1YWQncyBib3VuZGluZyBib3guCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojpjb2xsZWN0U2VsZWN0aW9u
R2VvbWV0cmllc0ZvckxpbmVCb3hlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlbGVjdGlvblJhbmdlRGF0YTo6U2VsZWN0aW9uUmFuZ2VEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdGlvblJhbmdlRGF0YTo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdGlvblJhbmdlRGF0YTo6YXBwbHkpOgorICAgICAgICAqIHJlbmRlcmluZy9TZWxlY3Rp
b25SYW5nZURhdGEuaDoKKwogMjAyMS0wNS0wOCAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRu
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEluY3JlYXNlIHN0b3JlZCBBcHBIaWdobGlnaHQgY2hh
cmFjdGVyIGxpbWl0IHRvIDUwMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggYTc1ZGNjN2Vh
YWY5ZGE5MDgxYmJlNzk3YmM0OTg0Yjc4Njc5NWVmZC4uZTFjM2JlNTU2OWE4YzI3NjRiNTVlMDM0
YWYzY2RjNTEwYmFjNDhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29h
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0xNDEsNyArMTQx
LDcgQEAgZG9tL0RhdGFUcmFuc2Zlck1hYy5tbQogZG9tL2lvcy9Nb3VzZUV2ZW50SU9TLmNwcAog
ZG9tL2lvcy9Qb2ludGVyRXZlbnRJT1MuY3BwCiBkb20vaW9zL1RvdWNoRXZlbnRzLmNwcAotZWRp
dGluZy9TZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwCitlZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5
R2F0aGVyZXIuY3BwCiBlZGl0aW5nL1NtYXJ0UmVwbGFjZUNGLmNwcAogZWRpdGluZy9jb2NvYS9B
bHRlcm5hdGl2ZVRleHRDb250ZXh0Q29udHJvbGxlci5tbQogZWRpdGluZy9jb2NvYS9BbHRlcm5h
dGl2ZVRleHRVSUNvbnRyb2xsZXIubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MGMwYWE2NDMzMDhmMWIyNWU0ZDlkNmNhNzBi
ZWFlYTEwZjVkNGZiLi5lZjAzMTQzZDUyNDc3YmEyOTQ2M2QwNGU3ZTI2YjEyNzIwODhkYjFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xNDc3LDcgKzE0NzcsNyBAQAogCQk1MTMwRjJGNjI0QUVBNjBBMDBFMUQwQTAgLyogR2Ft
ZUNvbnRyb2xsZXJTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMzBGMkY0MjRBRUE2MDMwMEUxRDBBMCAvKiBHYW1lQ29udHJvbGxlclNv
ZnRMaW5rLm1tICovOyB9OwogCQk1MTMyN0Q2MDExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3Vt
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTMy
N0Q1RTExQTMzQTJCMDA0RjlENjUgLyogU2lua0RvY3VtZW50LmggKi87IH07CiAJCTUxM0YxNDU0
MEFCNjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGMTQ1MjBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxv
YWRlci5oICovOyB9OwotCQk1MTQwNUM4OTE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVj
dEdhdGhlcmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTQwNUM4NzE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTE0MDVDODkx
OTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDA1Qzg3MTkwQjAxNDQwMDc1
NEY5NCAvKiBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0MTI5OTkxQzY5NzY5MDAwNTlFNzE0IC8q
IElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDEyOTk3MUM2OTc2MTUwMDU5RTcxNCAvKiBJREJSZXF1ZXN0
Q29tcGxldGlvbkV2ZW50LmggKi87IH07CiAJCTUxNDNCMjYzMURERDE1MjAwMDE0RkFDNiAvKiBM
aW5rSWNvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE0M0IyNjIxREREMTQ5MDAwMTRGQUM2IC8qIExpbmtJY29uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE0NUIxMEExQkM0OEUyRTAwRTg2MjE5
IC8qIElEQlJlc291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE0NUIxMDgxQkM0ODkwQjAwRTg2MjE5IC8qIElEQlJlc291cmNl
SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC04NzE0LDggKzg3MTQsOCBAQAogCQk1MTMyN0Q1RjExQTMzQTJCMDA0RjlENjUgLyog
U2lua0RvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNp
bmtEb2N1bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxM0YxNDUxMEFC
NjM0QzQwMDA5NERERiAvKiBJY29uTG9hZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBJY29uTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTEzRjE0NTIwQUI2MzRDNDAwMDk0RERGIC8qIEljb25Mb2FkZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEljb25Mb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTE0MDVDODYxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWxlY3Rpb25SZWN0
R2F0aGVyZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTQwNUM4NzE5MEIw
MTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNlbGVjdGlvblJlY3RHYXRoZXJlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTQwNUM4NjE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uR2VvbWV0
cnlHYXRoZXJlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWxl
Y3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTE0MDVDODcxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQxMjk5NjFDNjk3NjE1MDA1OUU3
MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OTcxQzY5NzYxNTAwNTlFNzE0IC8qIElEQlJlcXVl
c3RDb21wbGV0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURC
UmVxdWVzdENvbXBsZXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTQxMjk5QTFDNkMxNjZEMDA1OUU3MTQgLyogSlNJREJJbmRleEN1c3RvbS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkluZGV4Q3VzdG9tLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNDIwLDggKzIzNDIwLDggQEAKIAkJCQkyREY1MTJD
QzFEODczRTQ3MDAxRDY3ODAgLyogUmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kLmggKi8sCiAJ
CQkJOTMzMDlEQkEwOTlFNjQ5MTAwNTZFNTgxIC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNw
cCAqLywKIAkJCQk5MzMwOURCQjA5OUU2NDkxMDA1NkU1ODEgLyogUmVwbGFjZVNlbGVjdGlvbkNv
bW1hbmQuaCAqLywKLQkJCQk1MTQwNUM4NjE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVj
dEdhdGhlcmVyLmNwcCAqLywKLQkJCQk1MTQwNUM4NzE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0
aW9uUmVjdEdhdGhlcmVyLmggKi8sCisJCQkJNTE0MDVDODYxOTBCMDE0NDAwNzU0Rjk0IC8qIFNl
bGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3BwICovLAorCQkJCTUxNDA1Qzg3MTkwQjAxNDQwMDc1
NEY5NCAvKiBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmggKi8sCiAJCQkJRjRENDNENjQyMTg4
MDJFNjAwRUNFQ0FDIC8qIFNlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oICovLAogCQkJCTkzMzA5
REMwMDk5RTY0OTEwMDU2RTU4MSAvKiBTZXROb2RlQXR0cmlidXRlQ29tbWFuZC5jcHAgKi8sCiAJ
CQkJOTMzMDlEQzEwOTlFNjQ5MTAwNTZFNTgxIC8qIFNldE5vZGVBdHRyaWJ1dGVDb21tYW5kLmgg
Ki8sCkBAIC0zNDk2NCw4ICszNDk2NCw4IEBACiAJCQkJMkQ1QkM0MjcxNkY4ODJFRTAwNzA0OEQw
IC8qIFNlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTJGMEQwMDZDMUQwMEVGNkYyNiAvKiBTZWdtZW50ZWRTdHJpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJFQTgwN0M5MEY3MTRBMDMwMDUyNDE5OSAvKiBTZWxlY3Rpb25HZW9tZXRyeS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTE0MDVDODkxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvbkdl
b21ldHJ5R2F0aGVyZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0NjVEN0JEMjUzNkQwNUUwMDE2
NjY2RCAvKiBTZWxlY3Rpb25SYW5nZURhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxNDA1Qzg5
MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk4Q0JDODA1MjYxOEY2OEMwMDE1OTNDOCAvKiBTZWxlY3Rpb25SZXN0b3JhdGlvbk1v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NEI0QkI0MTQxNjUwRDcwMDJCMUQ4QiAvKiBTZWxl
Y3RvckNoZWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzMkQzRkU4MThBODY1ODQwMEQ3REMw
MyAvKiBTZWxlY3RvckNoZWNrZXJUZXN0RnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBkODcyYzdlMWQ3M2VhOWIxZGJmNDkxODg4ZTQ3OGIxNTBlMDE3MzkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkdlb21ldHJ5
R2F0aGVyZXIuY3BwCkBAIC0wLDAgKzEsOTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oIgorCisjaWYgRU5B
QkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisKKyNpbmNsdWRlICJFZGl0b3IuaCIKKyNpbmNsdWRlICJF
ZGl0b3JDbGllbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkltYWdlT3Zlcmxh
eUNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1NlbGVjdGlv
bkdlb21ldHJ5R2F0aGVyZXI6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIoUmVuZGVyVmlldyYg
cmVuZGVyVmlldykKKyAgICA6IG1fcmVuZGVyVmlldyhyZW5kZXJWaWV3KQorICAgICwgbV9pc1Rl
eHRPbmx5KHRydWUpCit7Cit9CisKK3ZvaWQgU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6YWRk
UXVhZChSZW5kZXJMYXllck1vZGVsT2JqZWN0ICpyZXBhaW50Q29udGFpbmVyLCBjb25zdCBGbG9h
dFF1YWQmIHF1YWQpCit7CisgICAgaWYgKCFxdWFkLmJvdW5kaW5nQm94SXNFbXB0eSgpKQorICAg
ICAgICBtX3F1YWRzLmFwcGVuZChyZXBhaW50Q29udGFpbmVyID8gcmVwYWludENvbnRhaW5lci0+
bG9jYWxUb0Fic29sdXRlUXVhZChxdWFkKSA6IHF1YWQpOworfQorCit2b2lkIFNlbGVjdGlvbkdl
b21ldHJ5R2F0aGVyZXI6OmFkZEdhcFJlY3RzKFJlbmRlckxheWVyTW9kZWxPYmplY3QgKnJlcGFp
bnRDb250YWluZXIsIGNvbnN0IEdhcFJlY3RzJiByZWN0cykKK3sKKyAgICBpZiAocmVwYWludENv
bnRhaW5lcikgeworICAgICAgICBHYXBSZWN0cyBhYnNvbHV0ZUdhcFJlY3RzOworICAgICAgICBh
YnNvbHV0ZUdhcFJlY3RzLnVuaXRlTGVmdChMYXlvdXRSZWN0KHJlcGFpbnRDb250YWluZXItPmxv
Y2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHJlY3RzLmxlZnQoKSkpLmJvdW5kaW5nQm94KCkp
KTsKKyAgICAgICAgYWJzb2x1dGVHYXBSZWN0cy51bml0ZUNlbnRlcihMYXlvdXRSZWN0KHJlcGFp
bnRDb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHJlY3RzLmNlbnRlcigp
KSkuYm91bmRpbmdCb3goKSkpOworICAgICAgICBhYnNvbHV0ZUdhcFJlY3RzLnVuaXRlUmlnaHQo
TGF5b3V0UmVjdChyZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVh
ZChyZWN0cy5yaWdodCgpKSkuYm91bmRpbmdCb3goKSkpOworICAgICAgICBtX2dhcFJlY3RzLmFw
cGVuZChhYnNvbHV0ZUdhcFJlY3RzKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9nYXBSZWN0cy5h
cHBlbmQocmVjdHMpOworfQorCitTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjpOb3RpZmllcjo6
Tm90aWZpZXIoU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlciYgZ2F0aGVyZXIpCisgICAgOiBtX2dh
dGhlcmVyKGdhdGhlcmVyKQoreworfQorCitTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjpOb3Rp
Zmllcjo6fk5vdGlmaWVyKCkKK3sKKyAgICBhdXRvIHBhZ2UgPSBtX2dhdGhlcmVyLm1fcmVuZGVy
Vmlldy52aWV3KCkuZnJhbWUoKS5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm47CisKKyAgICBwYWdlLT5zZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyKCkuc2VsZWN0aW9uUmVj
dHNEaWRDaGFuZ2UobV9nYXRoZXJlci5ib3VuZGluZ1JlY3RzKCksIG1fZ2F0aGVyZXIubV9nYXBS
ZWN0cywgbV9nYXRoZXJlci5pc1RleHRPbmx5KCkpOworICAgIHBhZ2UtPmltYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS5zZWxlY3Rpb25RdWFkc0RpZENoYW5nZShtX2dhdGhlcmVyLm1fcmVuZGVyVmll
dy5mcmFtZSgpLCBtX2dhdGhlcmVyLm1fcXVhZHMpOworfQorCitWZWN0b3I8TGF5b3V0UmVjdD4g
U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6Ym91bmRpbmdSZWN0cygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fcXVhZHMubWFwKFtdKGF1dG8mIHF1YWQpIHsKKyAgICAgICAgcmV0dXJuIExheW91
dFJlY3QgeyBxdWFkLmJvdW5kaW5nQm94KCkgfTsKKyAgICB9KTsKK30KKworc3RkOjp1bmlxdWVf
cHRyPFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6Ok5vdGlmaWVyPiBTZWxlY3Rpb25HZW9tZXRy
eUdhdGhlcmVyOjpjbGVhckFuZENyZWF0ZU5vdGlmaWVyKCkKK3sKKyAgICBtX3F1YWRzLmNsZWFy
KCk7CisgICAgbV9nYXBSZWN0cy5jbGVhcigpOworICAgIG1faXNUZXh0T25seSA9IHRydWU7CisK
KyAgICByZXR1cm4gbWFrZVVuaXF1ZTxOb3RpZmllcj4oKnRoaXMpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5o
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjJiZjBhMjNmMzUwMDQyYWZiNDFmY2IzZDhjNWRiYzFiZmNhNDZiZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uR2VvbWV0cnlHYXRo
ZXJlci5oCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorCisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IEZsb2F0UXVhZDsKK2NsYXNzIExheW91dFJlY3Q7CitjbGFzcyBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0OworY2xhc3MgUmVuZGVyVmlldzsKKworc3RydWN0IEdhcFJlY3RzOworCitjbGFzcyBTZWxl
Y3Rpb25HZW9tZXRyeUdhdGhlcmVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZWxlY3Rp
b25HZW9tZXRyeUdhdGhlcmVyKTsKKworcHVibGljOgorICAgIFNlbGVjdGlvbkdlb21ldHJ5R2F0
aGVyZXIoUmVuZGVyVmlldyYpOworCisgICAgdm9pZCBhZGRRdWFkKFJlbmRlckxheWVyTW9kZWxP
YmplY3QgKnJlcGFpbnRDb250YWluZXIsIGNvbnN0IEZsb2F0UXVhZCYpOworICAgIHZvaWQgYWRk
R2FwUmVjdHMoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENvbnRhaW5lciwgY29uc3Qg
R2FwUmVjdHMmKTsKKyAgICB2b2lkIHNldFRleHRPbmx5KGJvb2wgaXNUZXh0T25seSkgeyBtX2lz
VGV4dE9ubHkgPSBpc1RleHRPbmx5OyB9CisgICAgYm9vbCBpc1RleHRPbmx5KCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1RleHRPbmx5OyB9CisKKyAgICBjbGFzcyBOb3RpZmllciB7CisgICAgICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShOb3Rp
Zmllcik7CisgICAgcHVibGljOgorICAgICAgICBOb3RpZmllcihTZWxlY3Rpb25HZW9tZXRyeUdh
dGhlcmVyJik7CisgICAgICAgIH5Ob3RpZmllcigpOworCisgICAgcHJpdmF0ZToKKyAgICAgICAg
U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlciYgbV9nYXRoZXJlcjsKKyAgICB9OworCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPE5vdGlmaWVyPiBjbGVhckFuZENyZWF0ZU5vdGlmaWVyKCk7CisgICAgCitw
cml2YXRlOgorICAgIFZlY3RvcjxMYXlvdXRSZWN0PiBib3VuZGluZ1JlY3RzKCkgY29uc3Q7CisK
KyAgICBSZW5kZXJWaWV3JiBtX3JlbmRlclZpZXc7CisKKyAgICAvLyBBbGwgcmVjdHMgYXJlIGlu
IFJlbmRlclZpZXcgY29vcmRpbmF0ZXMuCisgICAgVmVjdG9yPEZsb2F0UXVhZD4gbV9xdWFkczsK
KyAgICBWZWN0b3I8R2FwUmVjdHM+IG1fZ2FwUmVjdHM7CisgICAgYm9vbCBtX2lzVGV4dE9ubHk7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9u
UmVjdEdhdGhlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uUmVjdEdh
dGhlcmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkyMWQ2NTY0ZjM0ZTVm
NTU1YTNiZTcxNjllNGI5NmYzZWVjZjI3Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvblJlY3RHYXRo
ZXJlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlbGVjdGlvblJlY3RHYXRoZXJlci5oIgotCi0j
aWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0KLSNpbmNsdWRlICJFZGl0b3IuaCIKLSNpbmNs
dWRlICJFZGl0b3JDbGllbnQuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkltYWdl
T3ZlcmxheUNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAi
U2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVNl
bGVjdGlvblJlY3RHYXRoZXJlcjo6U2VsZWN0aW9uUmVjdEdhdGhlcmVyKFJlbmRlclZpZXcmIHJl
bmRlclZpZXcpCi0gICAgOiBtX3JlbmRlclZpZXcocmVuZGVyVmlldykKLSAgICAsIG1faXNUZXh0
T25seSh0cnVlKQotewotfQotCi12b2lkIFNlbGVjdGlvblJlY3RHYXRoZXJlcjo6YWRkUmVjdChS
ZW5kZXJMYXllck1vZGVsT2JqZWN0ICpyZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0
JiByZWN0KQotewotICAgIGlmICghcmVjdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgaWYgKHJlcGFp
bnRDb250YWluZXIpCi0gICAgICAgICAgICBtX3JlY3RzLmFwcGVuZChMYXlvdXRSZWN0KHJlcGFp
bnRDb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHJlY3QpKS5ib3VuZGlu
Z0JveCgpKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fcmVjdHMuYXBwZW5kKHJlY3Qp
OwotICAgIH0KLX0KLQotdm9pZCBTZWxlY3Rpb25SZWN0R2F0aGVyZXI6OmFkZEdhcFJlY3RzKFJl
bmRlckxheWVyTW9kZWxPYmplY3QgKnJlcGFpbnRDb250YWluZXIsIGNvbnN0IEdhcFJlY3RzJiBy
ZWN0cykKLXsKLSAgICBpZiAocmVwYWludENvbnRhaW5lcikgewotICAgICAgICBHYXBSZWN0cyBh
YnNvbHV0ZUdhcFJlY3RzOwotICAgICAgICBhYnNvbHV0ZUdhcFJlY3RzLnVuaXRlTGVmdChMYXlv
dXRSZWN0KHJlcGFpbnRDb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRRdWFkKHJl
Y3RzLmxlZnQoKSkpLmJvdW5kaW5nQm94KCkpKTsKLSAgICAgICAgYWJzb2x1dGVHYXBSZWN0cy51
bml0ZUNlbnRlcihMYXlvdXRSZWN0KHJlcGFpbnRDb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1
YWQoRmxvYXRRdWFkKHJlY3RzLmNlbnRlcigpKSkuYm91bmRpbmdCb3goKSkpOwotICAgICAgICBh
YnNvbHV0ZUdhcFJlY3RzLnVuaXRlUmlnaHQoTGF5b3V0UmVjdChyZXBhaW50Q29udGFpbmVyLT5s
b2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChyZWN0cy5yaWdodCgpKSkuYm91bmRpbmdCb3go
KSkpOwotICAgICAgICBtX2dhcFJlY3RzLmFwcGVuZChhYnNvbHV0ZUdhcFJlY3RzKTsKLSAgICB9
IGVsc2UKLSAgICAgICAgbV9nYXBSZWN0cy5hcHBlbmQocmVjdHMpOwotfQotCi1TZWxlY3Rpb25S
ZWN0R2F0aGVyZXI6Ok5vdGlmaWVyOjpOb3RpZmllcihTZWxlY3Rpb25SZWN0R2F0aGVyZXImIGdh
dGhlcmVyKQotICAgIDogbV9nYXRoZXJlcihnYXRoZXJlcikKLXsKLX0KLQotU2VsZWN0aW9uUmVj
dEdhdGhlcmVyOjpOb3RpZmllcjo6fk5vdGlmaWVyKCkKLXsKLSAgICBhdXRvIHBhZ2UgPSBtX2dh
dGhlcmVyLm1fcmVuZGVyVmlldy52aWV3KCkuZnJhbWUoKS5wYWdlKCk7Ci0gICAgaWYgKCFwYWdl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5zZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
KCkuc2VsZWN0aW9uUmVjdHNEaWRDaGFuZ2UobV9nYXRoZXJlci5tX3JlY3RzLCBtX2dhdGhlcmVy
Lm1fZ2FwUmVjdHMsIG1fZ2F0aGVyZXIuaXNUZXh0T25seSgpKTsKLSAgICBwYWdlLT5pbWFnZU92
ZXJsYXlDb250cm9sbGVyKCkuc2VsZWN0aW9uUmVjdHNEaWRDaGFuZ2UobV9nYXRoZXJlci5tX3Jl
bmRlclZpZXcuZnJhbWUoKSwgbV9nYXRoZXJlci5tX3JlY3RzKTsKLX0KLQotc3RkOjp1bmlxdWVf
cHRyPFNlbGVjdGlvblJlY3RHYXRoZXJlcjo6Tm90aWZpZXI+IFNlbGVjdGlvblJlY3RHYXRoZXJl
cjo6Y2xlYXJBbmRDcmVhdGVOb3RpZmllcigpCi17Ci0gICAgbV9yZWN0cy5jbGVhcigpOwotICAg
IG1fZ2FwUmVjdHMuY2xlYXIoKTsKLSAgICBtX2lzVGV4dE9ubHkgPSB0cnVlOwotCi0gICAgcmV0
dXJuIG1ha2VVbmlxdWU8Tm90aWZpZXI+KCp0aGlzKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvblJlY3RHYXRoZXJlci5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9TZWxlY3Rpb25SZWN0R2F0aGVyZXIuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjg1YmEyNDU2ODFmMTljYWQ3ODg2MWQxODcxMDlmNjAxOGViNmI4YS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NlbGVjdGlvblJlY3RHYXRoZXJlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNzYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCi0KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgTGF5b3V0UmVjdDsKLWNs
YXNzIFJlbmRlckxheWVyTW9kZWxPYmplY3Q7Ci1jbGFzcyBSZW5kZXJWaWV3OwotCi1zdHJ1Y3Qg
R2FwUmVjdHM7Ci0KLWNsYXNzIFNlbGVjdGlvblJlY3RHYXRoZXJlciB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoU2VsZWN0aW9uUmVjdEdhdGhlcmVyKTsKLQotcHVibGljOgotICAgIFNlbGVj
dGlvblJlY3RHYXRoZXJlcihSZW5kZXJWaWV3Jik7Ci0KLSAgICB2b2lkIGFkZFJlY3QoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYpOwot
ICAgIHZvaWQgYWRkR2FwUmVjdHMoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENvbnRh
aW5lciwgY29uc3QgR2FwUmVjdHMmKTsKLSAgICB2b2lkIHNldFRleHRPbmx5KGJvb2wgaXNUZXh0
T25seSkgeyBtX2lzVGV4dE9ubHkgPSBpc1RleHRPbmx5OyB9Ci0gICAgYm9vbCBpc1RleHRPbmx5
KCkgY29uc3QgeyByZXR1cm4gbV9pc1RleHRPbmx5OyB9Ci0KLSAgICBjbGFzcyBOb3RpZmllciB7
Ci0gICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShOb3RpZmllcik7Ci0gICAgcHVibGljOgotICAgICAgICBOb3RpZmllcihTZWxlY3Rp
b25SZWN0R2F0aGVyZXImKTsKLSAgICAgICAgfk5vdGlmaWVyKCk7Ci0KLSAgICBwcml2YXRlOgot
ICAgICAgICBTZWxlY3Rpb25SZWN0R2F0aGVyZXImIG1fZ2F0aGVyZXI7Ci0gICAgfTsKLQotICAg
IHN0ZDo6dW5pcXVlX3B0cjxOb3RpZmllcj4gY2xlYXJBbmRDcmVhdGVOb3RpZmllcigpOwotICAg
IAotcHJpdmF0ZToKLSAgICBSZW5kZXJWaWV3JiBtX3JlbmRlclZpZXc7Ci0KLSAgICAvLyBBbGwg
cmVjdHMgYXJlIGluIFJlbmRlclZpZXcgY29vcmRpbmF0ZXMuCi0gICAgVmVjdG9yPExheW91dFJl
Y3Q+IG1fcmVjdHM7Ci0gICAgVmVjdG9yPEdhcFJlY3RzPiBtX2dhcFJlY3RzOwotICAgIGJvb2wg
bV9pc1RleHRPbmx5OwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8g
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmlu
ZGV4IDExYTNkYThjOTcyMzk3MjRiMzI2ODI5YTIzN2JkNGVmNDBjYWY2ZmEuLjQyMTM4ZjYxYWVi
MDY0YjIyOTJhOWQyOWExZjQwZGNhN2UyMTVkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCkBAIC0xMzg0LDExICsxMzg0LDEyIEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnVwZGF0ZVdp
dGhJbWFnZUV4dHJhY3Rpb25SZXN1bHQoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0JiYgcmVzdWx0CiAg
ICAgICAgICAgICBpZiAoY2hpbGQubm9ybWFsaXplZFF1YWQuaXNFbXB0eSgpKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgICAgICBjb25zdGV4cHIgZmxvYXQgaG9yaXpvbnRh
bE1hcmdpblRvTWluaW1pemVTZWxlY3Rpb25HYXBzID0gMC4xMjU7Ci0gICAgICAgICAgICBmbG9h
dCBob3Jpem9udGFsT2Zmc2V0ID0gLWhvcml6b250YWxNYXJnaW5Ub01pbmltaXplU2VsZWN0aW9u
R2FwczsKLSAgICAgICAgICAgIGZsb2F0IGhvcml6b250YWxFeHRlbnQgPSBob3Jpem9udGFsTWFy
Z2luVG9NaW5pbWl6ZVNlbGVjdGlvbkdhcHM7CisgICAgICAgICAgICBib29sIGxpbmVIYXNPbmVD
aGlsZCA9IGxpbmUuY2hpbGRyZW4uc2l6ZSgpID09IDE7CisgICAgICAgICAgICBmbG9hdCBob3Jp
em9udGFsTWFyZ2luVG9NaW5pbWl6ZVNlbGVjdGlvbkdhcHMgPSBsaW5lSGFzT25lQ2hpbGQgPyAw
IDogMC4xMjU7CisgICAgICAgICAgICBmbG9hdCBob3Jpem9udGFsT2Zmc2V0ID0gbGluZUhhc09u
ZUNoaWxkID8gMCA6IC1ob3Jpem9udGFsTWFyZ2luVG9NaW5pbWl6ZVNlbGVjdGlvbkdhcHM7Cisg
ICAgICAgICAgICBmbG9hdCBob3Jpem9udGFsRXh0ZW50ID0gbGluZUhhc09uZUNoaWxkID8gMCA6
IGhvcml6b250YWxNYXJnaW5Ub01pbmltaXplU2VsZWN0aW9uR2FwczsKIAotICAgICAgICAgICAg
aWYgKGxpbmUuY2hpbGRyZW4uc2l6ZSgpID09IDEpIHsKKyAgICAgICAgICAgIGlmIChsaW5lSGFz
T25lQ2hpbGQpIHsKICAgICAgICAgICAgICAgICBob3Jpem9udGFsT2Zmc2V0ICs9IG9mZnNldHNB
bG9uZ0hvcml6b250YWxBeGlzW2NoaWxkSW5kZXhdLmJlZ2luKCk7CiAgICAgICAgICAgICAgICAg
aG9yaXpvbnRhbEV4dGVudCArPSBvZmZzZXRzQWxvbmdIb3Jpem9udGFsQXhpc1tjaGlsZEluZGV4
XS5lbmQoKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoIWNoaWxkSW5kZXgpIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmluZGV4IDBiNDM2OTk1
ZjJkMzE0NTc2Mzg1YTFiOWE2M2RlODFlZTUwN2M4MGMuLjRlMDBhZDc3NDUxYjQ5YjM4NjU5Nzdj
YjJlMTdkNDE2MTBhZmE3ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VP
dmVybGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFnZU92ZXJs
YXlDb250cm9sbGVyLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkVkaXRvci5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKLSNpbmNsdWRl
ICJHYXBSZWN0cy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtNDYsMTIgKzQ1LDE0IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRmxvYXRRdWFkOworCiBJbWFnZU92ZXJsYXlD
b250cm9sbGVyOjpJbWFnZU92ZXJsYXlDb250cm9sbGVyKFBhZ2UmIHBhZ2UpCiAgICAgOiBtX3Bh
Z2UobWFrZVdlYWtQdHIocGFnZSkpCiB7CiB9CiAKLXZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxl
cjo6c2VsZWN0aW9uUmVjdHNEaWRDaGFuZ2UoRnJhbWUmIGZyYW1lLCBjb25zdCBWZWN0b3I8TGF5
b3V0UmVjdD4mIHJlY3RzKQordm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpzZWxlY3Rpb25R
dWFkc0RpZENoYW5nZShGcmFtZSYgZnJhbWUsIGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFk
cykKIHsKICAgICBpZiAoIW1fcGFnZSB8fCAhbV9wYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5uZWVk
c0ltYWdlT3ZlcmxheUNvbnRyb2xsZXJGb3JTZWxlY3Rpb25QYWludGluZygpKQogICAgICAgICBy
ZXR1cm47CkBAIC02MCw3ICs2MSw3IEBAIHZvaWQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6c2Vs
ZWN0aW9uUmVjdHNEaWRDaGFuZ2UoRnJhbWUmIGZyYW1lLCBjb25zdCBWZWN0b3I8CiAgICAgICAg
IHJldHVybjsKIAogICAgIGF1dG8gb3ZlcmxheUhvc3RSZW5kZXJlciA9IChbJl0gKCkgLT4gUmVu
ZGVyRWxlbWVudCogewotICAgICAgICBpZiAocmVjdHMuaXNFbXB0eSgpKQorICAgICAgICBpZiAo
cXVhZHMuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAg
YXV0byBzZWxlY3RlZFJhbmdlID0gZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkucmFuZ2Uo
KTsKQEAgLTg0LDcgKzg1LDggQEAgdm9pZCBJbWFnZU92ZXJsYXlDb250cm9sbGVyOjpzZWxlY3Rp
b25SZWN0c0RpZENoYW5nZShGcmFtZSYgZnJhbWUsIGNvbnN0IFZlY3RvcjwKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIG1fb3ZlcmxheVNlbGVjdGlvblJlY3RzID0gcmVjdHM7CisgICAg
bV9vdmVybGF5U2VsZWN0aW9uUXVhZHMgPSBxdWFkczsKKyAgICBtX3NlbGVjdGlvbk92ZXJsYXlC
b3VuZHMgPSBvdmVybGF5SG9zdFJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpOwog
ICAgIG1fc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yID0gb3ZlcmxheUhvc3RSZW5kZXJlci0+c2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKCk7CiAgICAgbV9jdXJyZW50T3ZlcmxheURvY3VtZW50ID0g
bWFrZVdlYWtQdHIob3ZlcmxheUhvc3RSZW5kZXJlci0+ZG9jdW1lbnQoKSk7CiAKQEAgLTExNiw3
ICsxMTgsOCBAQCBQYWdlT3ZlcmxheSYgSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBh
Z2VPdmVybGF5SWZOZWVkZWQoKQogCiB2b2lkIEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVuaW5z
dGFsbFBhZ2VPdmVybGF5SWZOZWVkZWQoKQogewotICAgIG1fb3ZlcmxheVNlbGVjdGlvblJlY3Rz
LmNsZWFyKCk7CisgICAgbV9zZWxlY3Rpb25PdmVybGF5Qm91bmRzID0geyB9OworICAgIG1fb3Zl
cmxheVNlbGVjdGlvblF1YWRzLmNsZWFyKCk7CiAgICAgbV9zZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IgPSBDb2xvcjo6dHJhbnNwYXJlbnRCbGFjazsKICAgICBtX2N1cnJlbnRPdmVybGF5RG9jdW1l
bnQgPSBudWxscHRyOwogCkBAIC0xNDIsOSArMTQ1LDIzIEBAIHZvaWQgSW1hZ2VPdmVybGF5Q29u
dHJvbGxlcjo6ZHJhd1JlY3QoUGFnZU92ZXJsYXkmIHBhZ2VPdmVybGF5LCBHcmFwaGljc0NvbnRl
eHQmCiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7
CiAgICAgY29udGV4dC5jbGVhclJlY3QoZGlydHlSZWN0KTsKKworICAgIGlmIChtX292ZXJsYXlT
ZWxlY3Rpb25RdWFkcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIFBhdGggY29h
bGVzY2VkU2VsZWN0aW9uUGF0aDsKKyAgICBmb3IgKGF1dG8mIHF1YWQgOiBtX292ZXJsYXlTZWxl
Y3Rpb25RdWFkcykgeworICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLm1vdmVUbyhxdWFk
LnAxKCkpOworICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLmFkZExpbmVUbyhxdWFkLnAy
KCkpOworICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLmFkZExpbmVUbyhxdWFkLnAzKCkp
OworICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLmFkZExpbmVUbyhxdWFkLnA0KCkpOwor
ICAgICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLmFkZExpbmVUbyhxdWFkLnAxKCkpOworICAg
ICAgICBjb2FsZXNjZWRTZWxlY3Rpb25QYXRoLmNsb3NlU3VicGF0aCgpOworICAgIH0KKwogICAg
IGNvbnRleHQuc2V0RmlsbENvbG9yKG1fc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKTsKLSAgICBm
b3IgKGF1dG8mIHJlY3QgOiBtX292ZXJsYXlTZWxlY3Rpb25SZWN0cykKLSAgICAgICAgY29udGV4
dC5maWxsUmVjdChyZWN0KTsKKyAgICBjb250ZXh0LmNsaXAobV9zZWxlY3Rpb25PdmVybGF5Qm91
bmRzKTsKKyAgICBjb250ZXh0LmZpbGxQYXRoKGNvYWxlc2NlZFNlbGVjdGlvblBhdGgpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVy
bGF5Q29udHJvbGxlci5oCmluZGV4IDI0NzY0OGJmNjEwYzY0MWRkZjJkODBiNWZiN2U4OGE2Yzhm
NGRmY2YuLjhiMWE3NTRjMDJlOWRjMTUxOGQ1NmYzMmQyMmJlNjU3OThkMGE0MWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0zNiw3ICszNiw3
IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7
CiBjbGFzcyBJbnRSZWN0OwotY2xhc3MgTGF5b3V0UmVjdDsKK2NsYXNzIEZsb2F0UXVhZDsKIGNs
YXNzIFBhZ2U7CiBjbGFzcyBSZW5kZXJFbGVtZW50Owogc3RydWN0IEdhcFJlY3RzOwpAQCAtNDYs
NyArNDYsNyBAQCBjbGFzcyBJbWFnZU92ZXJsYXlDb250cm9sbGVyIGZpbmFsIDogcHJpdmF0ZSBQ
YWdlT3ZlcmxheTo6Q2xpZW50IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBJbWFnZU92ZXJsYXlD
b250cm9sbGVyKFBhZ2UmKTsKIAotICAgIHZvaWQgc2VsZWN0aW9uUmVjdHNEaWRDaGFuZ2UoRnJh
bWUmLCBjb25zdCBWZWN0b3I8TGF5b3V0UmVjdD4mKTsKKyAgICB2b2lkIHNlbGVjdGlvblF1YWRz
RGlkQ2hhbmdlKEZyYW1lJiwgY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mKTsKICAgICB2b2lkIGRv
Y3VtZW50RGV0YWNoZWQoY29uc3QgRG9jdW1lbnQmKTsKIAogcHJpdmF0ZToKQEAgLTYzLDcgKzYz
LDggQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyPFBhZ2U+IG1fcGFnZTsKICAgICBSZWZQdHI8UGFn
ZU92ZXJsYXk+IG1fb3ZlcmxheTsKICAgICBXZWFrUHRyPERvY3VtZW50PiBtX2N1cnJlbnRPdmVy
bGF5RG9jdW1lbnQ7Ci0gICAgVmVjdG9yPExheW91dFJlY3Q+IG1fb3ZlcmxheVNlbGVjdGlvblJl
Y3RzOworICAgIFZlY3RvcjxGbG9hdFF1YWQ+IG1fb3ZlcmxheVNlbGVjdGlvblF1YWRzOworICAg
IExheW91dFJlY3QgbV9zZWxlY3Rpb25PdmVybGF5Qm91bmRzOwogICAgIENvbG9yIG1fc2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yIHsgQ29sb3I6OnRyYW5zcGFyZW50QmxhY2sgfTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcAppbmRl
eCAzNjdmYjNkYjIzN2RmM2ViZjRkNmQ4Y2JkYTkxOTQ4MWY3NDJjNzQzLi5jZGI4ZTRmZmNjMjFi
NWJjOWIxZDk0MTdkOTc5NmRlZjczNzI4OWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIFJlbmRlclNl
bGVjdGlvbkluZm86OlJlbmRlclNlbGVjdGlvbkluZm8oUmVuZGVyT2JqZWN0JiByZW5kZXJlciwg
Ym9vbCBjbGlwVG9WaXNpCiB7CiAgICAgaWYgKHJlbmRlcmVyLmNhblVwZGF0ZVNlbGVjdGlvbk9u
Um9vdExpbmVCb3hlcygpKSB7CiAgICAgICAgIGlmIChpczxSZW5kZXJUZXh0PihyZW5kZXJlcikp
Ci0gICAgICAgICAgICBtX3JlY3QgPSBkb3duY2FzdDxSZW5kZXJUZXh0PihyZW5kZXJlcikuY29s
bGVjdFNlbGVjdGlvbkdlb21ldHJpZXNGb3JMaW5lQm94ZXMobV9yZXBhaW50Q29udGFpbmVyLCBj
bGlwVG9WaXNpYmxlQ29udGVudCwgbV9jb2xsZWN0ZWRTZWxlY3Rpb25SZWN0cyk7CisgICAgICAg
ICAgICBtX3JlY3QgPSBkb3duY2FzdDxSZW5kZXJUZXh0PihyZW5kZXJlcikuY29sbGVjdFNlbGVj
dGlvbkdlb21ldHJpZXNGb3JMaW5lQm94ZXMobV9yZXBhaW50Q29udGFpbmVyLCBjbGlwVG9WaXNp
YmxlQ29udGVudCwgbV9jb2xsZWN0ZWRTZWxlY3Rpb25RdWFkcyk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIG1fcmVjdCA9IHJlbmRlcmVyLnNlbGVjdGlvblJlY3RGb3JSZXBhaW50KG1fcmVw
YWludENvbnRhaW5lciwgY2xpcFRvVmlzaWJsZUNvbnRlbnQpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oCmluZGV4IDUzNmYwZTc5NTFj
MjNkYzJhMWQzYTFiMTFjYjlhODM2YjIyYzM3NmYuLjVhNDJhNGE1NGJjNTI0NzA1OTQzNDQzNjk4
YWYxM2EwOWQ0NzYxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTZWxlY3Rpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNl
bGVjdGlvbkluZm8uaApAQCAtNTMsMTEgKzUzLDExIEBAIHB1YmxpYzoKICAgICBSZW5kZXJTZWxl
Y3Rpb25JbmZvKFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRl
bnQpOwogCiAgICAgdm9pZCByZXBhaW50KCk7Ci0gICAgY29uc3QgVmVjdG9yPExheW91dFJlY3Q+
JiBjb2xsZWN0ZWRTZWxlY3Rpb25SZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fY29sbGVjdGVkU2Vs
ZWN0aW9uUmVjdHM7IH0KKyAgICBjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgY29sbGVjdGVkU2Vs
ZWN0aW9uUXVhZHMoKSBjb25zdCB7IHJldHVybiBtX2NvbGxlY3RlZFNlbGVjdGlvblF1YWRzOyB9
CiAgICAgTGF5b3V0UmVjdCByZWN0KCkgY29uc3QgeyByZXR1cm4gbV9yZWN0OyB9CiAKIHByaXZh
dGU6Ci0gICAgVmVjdG9yPExheW91dFJlY3Q+IG1fY29sbGVjdGVkU2VsZWN0aW9uUmVjdHM7IC8v
IHJlbGF0aXZlIHRvIHJlcGFpbnQgY29udGFpbmVyCisgICAgVmVjdG9yPEZsb2F0UXVhZD4gbV9j
b2xsZWN0ZWRTZWxlY3Rpb25RdWFkczsgLy8gcmVsYXRpdmUgdG8gcmVwYWludCBjb250YWluZXIK
ICAgICBMYXlvdXRSZWN0IG1fcmVjdDsgLy8gcmVsYXRpdmUgdG8gcmVwYWludCBjb250YWluZXIK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAppbmRleCAxYzUyNTQ0
MDE4OTQ5YWFhYzZmYjJkMTQ5ZDQ0NzNhN2ZhZjBlZDIxLi5lNDcyMGRlZDU1ODBlMzExY2FiMzRm
MjhkZTljMjkzOTgxMjM3ZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQu
Y3BwCkBAIC0xNTkzLDcgKzE1OTMsNyBAQCBMYXlvdXRSZWN0IFJlbmRlclRleHQ6OmNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplYwogICAgIHJl
dHVybiByZW5kZXJlclRvUmVwYWludC0+Y2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVw
YWludENvbnRhaW5lcik7CiB9CiAKLUxheW91dFJlY3QgUmVuZGVyVGV4dDo6Y29sbGVjdFNlbGVj
dGlvbkdlb21ldHJpZXNGb3JMaW5lQm94ZXMoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCwgVmVjdG9yPExheW91
dFJlY3Q+KiByZWN0cykKK0xheW91dFJlY3QgUmVuZGVyVGV4dDo6Y29sbGVjdFNlbGVjdGlvbkdl
b21ldHJpZXNGb3JMaW5lQm94ZXMoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCwgVmVjdG9yPEZsb2F0UXVhZD4q
IHF1YWRzKQogewogICAgIEFTU0VSVCghbmVlZHNMYXlvdXQoKSk7CiAKQEAgLTE2MzMsOCArMTYz
Myw4IEBAIExheW91dFJlY3QgUmVuZGVyVGV4dDo6Y29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXNG
b3JMaW5lQm94ZXMoY29uc3QgUmVuZGVyTGF5ZXJNCiAKICAgICAgICAgcmVzdWx0UmVjdC51bml0
ZShyZWN0KTsKIAotICAgICAgICBpZiAocmVjdHMpCi0gICAgICAgICAgICByZWN0cy0+YXBwZW5k
KGxvY2FsVG9Db250YWluZXJRdWFkKEZsb2F0UmVjdChyZWN0KSwgcmVwYWludENvbnRhaW5lciku
ZW5jbG9zaW5nQm91bmRpbmdCb3goKSk7CisgICAgICAgIGlmIChxdWFkcykKKyAgICAgICAgICAg
IHF1YWRzLT5hcHBlbmQobG9jYWxUb0NvbnRhaW5lclF1YWQoRmxvYXRSZWN0KHJlY3QpLCByZXBh
aW50Q29udGFpbmVyKSk7CiAgICAgfQogCiAgICAgaWYgKGNsaXBUb1Zpc2libGVDb250ZW50KQpA
QCAtMTY0Miw5ICsxNjQyLDkgQEAgTGF5b3V0UmVjdCBSZW5kZXJUZXh0Ojpjb2xsZWN0U2VsZWN0
aW9uR2VvbWV0cmllc0ZvckxpbmVCb3hlcyhjb25zdCBSZW5kZXJMYXllck0KICAgICByZXR1cm4g
bG9jYWxUb0NvbnRhaW5lclF1YWQoRmxvYXRSZWN0KHJlc3VsdFJlY3QpLCByZXBhaW50Q29udGFp
bmVyKS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogfQogCi1MYXlvdXRSZWN0IFJlbmRlclRleHQ6
OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQs
IFZlY3RvcjxMYXlvdXRSZWN0PiYgcmVjdHMpCitMYXlvdXRSZWN0IFJlbmRlclRleHQ6OmNvbGxl
Y3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQsIFZlY3Rv
cjxGbG9hdFF1YWQ+JiBxdWFkcykKIHsKLSAgICByZXR1cm4gY29sbGVjdFNlbGVjdGlvbkdlb21l
dHJpZXNGb3JMaW5lQm94ZXMocmVwYWludENvbnRhaW5lciwgY2xpcFRvVmlzaWJsZUNvbnRlbnQs
ICZyZWN0cyk7CisgICAgcmV0dXJuIGNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJv
eGVzKHJlcGFpbnRDb250YWluZXIsIGNsaXBUb1Zpc2libGVDb250ZW50LCAmcXVhZHMpOwogfQog
CiBMYXlvdXRSZWN0IFJlbmRlclRleHQ6OnNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJs
ZUNvbnRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAppbmRleCBlMjAyMDQ0
M2RiOGNlNTdjNjA1ZjA5NTEwOWQ4ZWQ0NTA1Mzc1NDMxLi41ZTNjOGQ3ZTllMTliMGE5NjA0ZWEw
MGIzZjE2ZjFkYjAwZTc2Yjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgK
QEAgLTEyNiw3ICsxMjYsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGNhbkJlU2VsZWN0aW9uTGVh
ZigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIExheW91dFJlY3QgY29s
bGVjdFNlbGVjdGlvbkdlb21ldHJpZXNGb3JMaW5lQm94ZXMoY29uc3QgUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCwgVmVj
dG9yPExheW91dFJlY3Q+Jik7CisgICAgTGF5b3V0UmVjdCBjb2xsZWN0U2VsZWN0aW9uR2VvbWV0
cmllc0ZvckxpbmVCb3hlcyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBib29sIGNsaXBUb1Zpc2libGVDb250ZW50LCBWZWN0b3I8RmxvYXRRdWFkPiYpOwog
CiAgICAgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCkgY29uc3QgeyByZXR1cm4gbWluaW11bVZhbHVl
Rm9yTGVuZ3RoKHN0eWxlKCkubWFyZ2luTGVmdCgpLCAwKTsgfQogICAgIExheW91dFVuaXQgbWFy
Z2luUmlnaHQoKSBjb25zdCB7IHJldHVybiBtaW5pbXVtVmFsdWVGb3JMZW5ndGgoc3R5bGUoKS5t
YXJnaW5SaWdodCgpLCAwKTsgfQpAQCAtMjE1LDcgKzIxNSw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHNlY3VyZVRleHQoVUNoYXIgbWFzayk7CiAKLSAgICBMYXlvdXRSZWN0IGNvbGxlY3RTZWxl
Y3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQsIFZlY3RvcjxMYXlv
dXRSZWN0PiopOworICAgIExheW91dFJlY3QgY29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXNGb3JM
aW5lQm94ZXMoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
Ym9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCwgVmVjdG9yPEZsb2F0UXVhZD4qKTsKICAgICBib29s
IGNvbXB1dGVDYW5Vc2VTaW1wbGlmaWVkVGV4dE1lYXN1cmluZygpIGNvbnN0OwogCiAgICAgdm9p
ZCBub2RlKCkgY29uc3QgPSBkZWxldGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9T
ZWxlY3Rpb25SYW5nZURhdGEuY3BwCmluZGV4IGJlNjdlNjBlNzU5OTI0ZWNmYWRkZWU5MmU2Yzc5
ZDUyM2U2ZTdmY2IuLmRjYmQ0OTFkMTY1NzA2YzBhMWQwYWJlZTA0ZjUyZjZmZDFiN2RlZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwCkBA
IC0xMTAsNyArMTEwLDcgQEAgc3RhdGljIFNlbGVjdGlvbkNvbnRleHQgY29sbGVjdFNlbGVjdGlv
bkRhdGEoY29uc3QgUmVuZGVyUmFuZ2UmIHNlbGVjdGlvbiwgYm9vbAogU2VsZWN0aW9uUmFuZ2VE
YXRhOjpTZWxlY3Rpb25SYW5nZURhdGEoUmVuZGVyVmlldyYgdmlldykKICAgICA6IG1fcmVuZGVy
Vmlldyh2aWV3KQogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgICwgbV9zZWxlY3Rp
b25SZWN0R2F0aGVyZXIodmlldykKKyAgICAsIG1fc2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcih2
aWV3KQogI2VuZGlmCiB7CiB9CkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBTZWxlY3Rpb25SYW5n
ZURhdGE6OnNldChjb25zdCBSZW5kZXJSYW5nZSYgc2VsZWN0aW9uLCBSZXBhaW50TW9kZSBibG9j
a1JlcGEKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICAvLyBDbGVhciB0aGUgY3Vy
cmVudCByZWN0cyBhbmQgY3JlYXRlIGEgbm90aWZpZXIgZm9yIHRoZSBuZXcgcmVjdHMgd2UgYXJl
IGFib3V0IHRvIGdhdGhlci4KICAgICAvLyBUaGUgTm90aWZpZXIgdXBkYXRlcyB0aGUgRWRpdG9y
IHdoZW4gaXQgZ29lcyBvdXQgb2Ygc2NvcGUgYW5kIGlzIGRlc3Ryb3llZC4KLSAgICBhdXRvIHJl
Y3ROb3RpZmllciA9IG1fc2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNsZWFyQW5kQ3JlYXRlTm90aWZp
ZXIoKTsKKyAgICBhdXRvIG5vdGlmaWVyID0gbV9zZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNs
ZWFyQW5kQ3JlYXRlTm90aWZpZXIoKTsKICNlbmRpZgogICAgIG1fc2VsZWN0aW9uV2FzQ2FyZXQg
PSBpc0NhcmV0OwogICAgIGFwcGx5KHNlbGVjdGlvbiwgYmxvY2tSZXBhaW50TW9kZSk7CkBAIC0y
NTYsMTAgKzI1NiwxMCBAQCB2b2lkIFNlbGVjdGlvblJhbmdlRGF0YTo6YXBwbHkoY29uc3QgUmVu
ZGVyUmFuZ2UmIG5ld1NlbGVjdGlvbiwgUmVwYWludE1vZGUgYmxvYwogICAgICAgICBpZiAoaXNW
YWxpZFJlbmRlcmVyRm9yU2VsZWN0aW9uKCpjdXJyZW50UmVuZGVyZXIsIG1fcmVuZGVyUmFuZ2Up
KSB7CiAgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU2VsZWN0aW9uSW5mbz4gc2Vs
ZWN0aW9uSW5mbyA9IG1ha2VVbmlxdWU8UmVuZGVyU2VsZWN0aW9uSW5mbz4oKmN1cnJlbnRSZW5k
ZXJlciwgdHJ1ZSk7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgICAgICAgICBm
b3IgKGF1dG8mIHJlY3QgOiBzZWxlY3Rpb25JbmZvLT5jb2xsZWN0ZWRTZWxlY3Rpb25SZWN0cygp
KQotICAgICAgICAgICAgICAgIG1fc2VsZWN0aW9uUmVjdEdhdGhlcmVyLmFkZFJlY3Qoc2VsZWN0
aW9uSW5mby0+cmVwYWludENvbnRhaW5lcigpLCByZWN0KTsKKyAgICAgICAgICAgIGZvciAoYXV0
byYgcXVhZCA6IHNlbGVjdGlvbkluZm8tPmNvbGxlY3RlZFNlbGVjdGlvblF1YWRzKCkpCisgICAg
ICAgICAgICAgICAgbV9zZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmFkZFF1YWQoc2VsZWN0aW9u
SW5mby0+cmVwYWludENvbnRhaW5lcigpLCBxdWFkKTsKICAgICAgICAgICAgIGlmICghY3VycmVu
dFJlbmRlcmVyLT5pc1RleHRPckxpbmVCcmVhaygpKQotICAgICAgICAgICAgICAgIG1fc2VsZWN0
aW9uUmVjdEdhdGhlcmVyLnNldFRleHRPbmx5KGZhbHNlKTsKKyAgICAgICAgICAgICAgICBtX3Nl
bGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuc2V0VGV4dE9ubHkoZmFsc2UpOwogI2VuZGlmCiAgICAg
ICAgICAgICBuZXdTZWxlY3RlZFJlbmRlcmVycy5zZXQoY3VycmVudFJlbmRlcmVyLCBXVEZNb3Zl
KHNlbGVjdGlvbkluZm8pKTsKICAgICAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9IGN1
cnJlbnRSZW5kZXJlci0+Y29udGFpbmluZ0Jsb2NrKCk7CkBAIC0yNzAsNyArMjcwLDcgQEAgdm9p
ZCBTZWxlY3Rpb25SYW5nZURhdGE6OmFwcGx5KGNvbnN0IFJlbmRlclJhbmdlJiBuZXdTZWxlY3Rp
b24sIFJlcGFpbnRNb2RlIGJsb2MKICAgICAgICAgICAgICAgICBibG9ja0luZm8gPSBtYWtlVW5p
cXVlPFJlbmRlckJsb2NrU2VsZWN0aW9uSW5mbz4oKmNvbnRhaW5pbmdCbG9jayk7CiAgICAgICAg
ICAgICAgICAgY29udGFpbmluZ0Jsb2NrID0gY29udGFpbmluZ0Jsb2NrLT5jb250YWluaW5nQmxv
Y2soKTsKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICAgICAgICAgICAgICBtX3Nl
bGVjdGlvblJlY3RHYXRoZXJlci5hZGRHYXBSZWN0cyhibG9ja0luZm8tPnJlcGFpbnRDb250YWlu
ZXIoKSwgYmxvY2tJbmZvLT5yZWN0cygpKTsKKyAgICAgICAgICAgICAgICBtX3NlbGVjdGlvbkdl
b21ldHJ5R2F0aGVyZXIuYWRkR2FwUmVjdHMoYmxvY2tJbmZvLT5yZXBhaW50Q29udGFpbmVyKCks
IGJsb2NrSW5mby0+cmVjdHMoKSk7CiAjZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5oCmluZGV4IDNm
MTBhZmZlOTdiYTg2MDUxMTgzYTU2NzJiYzNjYzdhNjYwZGYwYmIuLjY2YjRkYjBmYmRlYjRjY2Fi
MGM1YzU5NDE3YzVkMTI0MzgwMmI3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TZWxlY3Rpb25SYW5nZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2VsZWN0aW9uUmFuZ2VEYXRhLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJSZW5kZXJT
ZWxlY3Rpb25JbmZvLmgiCiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSNpbmNsdWRl
ICJTZWxlY3Rpb25SZWN0R2F0aGVyZXIuaCIKKyNpbmNsdWRlICJTZWxlY3Rpb25HZW9tZXRyeUdh
dGhlcmVyLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTMsNyArNTMsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNvbnN0IFJlbmRlclZpZXcmIG1fcmVuZGVyVmlldzsK
ICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICBTZWxlY3Rpb25SZWN0R2F0aGVyZXIg
bV9zZWxlY3Rpb25SZWN0R2F0aGVyZXI7CisgICAgU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlciBt
X3NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI7CiAjZW5kaWYKICAgICBib29sIG1fc2VsZWN0aW9u
V2FzQ2FyZXQgeyBmYWxzZSB9OwogICAgIGVudW0gY2xhc3MgQ2xpcFRvVmlzaWJsZUNvbnRlbnQg
eyBZZXMsIE5vIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjgxYWNhMmZiMzlhOWVmNWJiZTk2NDdhNjBiN2NhMGY2ZTkz
YTE2MC4uMDA1NGJiZWQyYTYwMDk3NmQyZmZlYmI4YWUwZjA3ZTg5ZjYxMDRjZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDIxLTA1LTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBw
bGUuY29tPgorCisgICAgICAgIFttYWNPU10gSW1hZ2VPdmVybGF5Q29udHJvbGxlciBzaG91bGQg
cGFpbnQgc2VsZWN0aW9uIHF1YWRzIGluc3RlYWQgb2YgYm91bmRpbmcgcmVjdHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTU4NQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzc3MjU3NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IGxheW91dCB0ZXN0IHRvIGNvdmVyIHRoZSBjaGFu
Z2UuIEN1cnJlbnRseSwgdGhlIGJlbG93IHRlc3QgY2FzZSByZW5kZXJzIGEgdmlzaWJsZSBzZWxl
Y3Rpb24gcmVjdCBpbgorICAgICAgICB0aGUgaW1hZ2Ugb3ZlcmxheSBzaW5jZSB3ZSByZW5kZXIg
dGhlIGJvdW5kaW5nIHJlY3Qgb2YgdGhlIG92ZXJsYXkgdGV4dCBxdWFkLCB3aGljaCBpbnRlcnNl
Y3RzIHdpdGggdGhlIGltYWdlCisgICAgICAgIG92ZXJsYXkncyBib3VuZHMuIEhvd2V2ZXIsIHRo
ZSB0ZXh0IHF1YWQgaXMgcG9zaXRpb25lZCBvdXRzaWRlIG9mIHRoZSBpbWFnZSBvdmVybGF5LCBz
byB0aGVyZSBzaG91bGRuJ3QgYmUgYW55CisgICAgICAgIHZpc2libGUgc2VsZWN0aW9uIHJlY3Qu
IEFzIHN1Y2gsIHRoaXMgdGVzdCBpcyBleHBlY3RlZCB0byByZW5kZXIgdGhlIHNhbWUgY29udGVu
dCBhcyBhIHBsYWluIGltYWdlIChldmVuIHdpdGhvdXQKKyAgICAgICAgYW4gaW1hZ2Ugb3Zlcmxh
eSkuCisKKyAgICAgICAgVW5mb3J0dW5hdGVseSwgSSBjb3VsZG4ndCB3cml0ZSBhIG1hdGNoaW5n
IHJlZi10ZXN0IGZvciB0aGUgY2FzZSB3aGVyZSB0aGUgc2VsZWN0aW9uIHJlY3QgaXMgaW5zaWRl
IHRoZSBib3VuZHMKKyAgICAgICAgb2YgdGhlIGltYWdlIG92ZXJsYXksIHNpbmNlIGRvaW5nIHNv
IGxlZCB0byB0aW55IHN1YnBpeGVsIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlIHRyYW5zcGFyZW50
IGltYWdlIGNhc2UgKHVzaW5nCisgICAgICAgIGBJbWFnZU92ZXJsYXlDb250cm9sbGVyYCkgYW5k
IHRoZSByZWd1bGFyIGltYWdlIG92ZXJsYXkgc2VsZWN0aW9uIGNhc2UuCisKKyAgICAgICAgKiBm
YXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVu
dC1pbWFnZS1vdmVybGF5LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1h
Z2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdl
LW92ZXJsYXkuaHRtbDogQWRkZWQuCisKIDIwMjEtMDUtMDcgIExhdXJvIE1vdXJhICA8bG1vdXJh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gVGVudGF0aXZlIGdhcmRlbmluZyBvZiBjcmFz
aGVzIGFmdGVyIGxhc3Qgc2RrIHVwZGF0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9p
bWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1h
Z2Utb3ZlcmxheS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2Ut
ZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlODk4OGJiODA5NTZkZDYyNDUzOGQ5Njg4YTNkY2Y0
MmU0OGQxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorYm9keSwgaHRtbCB7CisgICAgbWFyZ2luOiAwOworfQorCitpbWcg
eworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgbGVmdDogMDsKKyAg
ICB3aWR0aDogNDAwcHg7CisgICAgaGVpZ2h0OiA0MDBweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpbWcgc3JjPSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwv
aW1nPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVj
dC1yb3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5zcGFyZW50
LWltYWdlLW92ZXJsYXkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjY3N2QyMDJjZmMxZDhiZGU2YmFlZDE2
YzE3ZjkxMjk4MTkxMmVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Ut
b3ZlcmxheS5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KKy5iYWNrIHsKKyAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47Cisg
ICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC4uLy4uL3Jlc291cmNlcy9ncmVlbi00MDB4NDAwLnBu
Zyk7Cit9CisKKy5mcm9udCB7CisgICAgb3BhY2l0eTogMDsKK30KKworYm9keSwgaHRtbCB7Cisg
ICAgbWFyZ2luOiAwOworfQorCisuZnJvbnQsIC5iYWNrIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1
dGU7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhl
aWdodDogNDAwcHg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGNsYXNzPSJi
YWNrIj48L2Rpdj4KKzxpbWcgY2xhc3M9ImZyb250IiBzcmM9Ii4uLy4uL3Jlc291cmNlcy9ncmVl
bi00MDB4NDAwLnBuZyI+PC9pbWc+Cis8ZGl2IGNsYXNzPSJiYXIiPjwvZGl2PgorPHNjcmlwdD4K
K2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCAoKSA9PiB7CisgICAgbGV0IGltYWdlID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiaW1nIik7CisgICAgaW50ZXJuYWxzLmluc3RhbGxJbWFnZU92ZXJs
YXkoaW1hZ2UsIFsKKyAgICAgICAgeworICAgICAgICAgICAgdG9wTGVmdCA6IG5ldyBET01Qb2lu
dFJlYWRPbmx5KDAuNSwgMS41KSwKKyAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50
UmVhZE9ubHkoMS41LCAwLjUpLAorICAgICAgICAgICAgYm90dG9tUmlnaHQgOiBuZXcgRE9NUG9p
bnRSZWFkT25seSgyLCAxKSwKKyAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRS
ZWFkT25seSgxLCAyKSwKKyAgICAgICAgICAgIGNoaWxkcmVuOiBbCisgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICB0ZXh0IDogImhlbGxvIiwKKyAgICAgICAgICAgICAgICAg
ICAgdG9wTGVmdCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDAuNSwgMS41KSwKKyAgICAgICAgICAg
ICAgICAgICAgdG9wUmlnaHQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgxLjUsIDAuNSksCisgICAg
ICAgICAgICAgICAgICAgIGJvdHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMiwgMSks
CisgICAgICAgICAgICAgICAgICAgIGJvdHRvbUxlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgx
LCAyKSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBd
KTsKKworICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGludGVybmFscy5zaGFk
b3dSb290KGltYWdlKS5xdWVyeVNlbGVjdG9yKCIuaW1hZ2Utb3ZlcmxheS10ZXh0IikpOworfSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
Cg==
</data>
<flag name="commit-queue"
          id="448990"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428154</attachid>
            <date>2021-05-09 21:57:42 -0700</date>
            <delta_ts>2021-05-10 11:10:11 -0700</delta_ts>
            <desc>Fix CMake build</desc>
            <filename>bug-225585-20210509215741.patch</filename>
            <type>text/plain</type>
            <size>43400</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ1ODdmNjNkZWMxZWE2
NGVhZjhlM2YxNTc5ZmUwYjE1NmU1MDA2Ny4uMTcwNjZmNmEyYWZkM2I2ZjYzYzUxZTAwMTZjZmIx
Mjk1ODBlOGVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDIxLTA1LTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFttYWNPU10gSW1h
Z2VPdmVybGF5Q29udHJvbGxlciBzaG91bGQgcGFpbnQgc2VsZWN0aW9uIHF1YWRzIGluc3RlYWQg
b2YgYm91bmRpbmcgcmVjdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNTU4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzc3MjU3NDU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVhY2ggYFNlbGVj
dGlvblJlY3RHYXRoZXJlcmAgKG5vdyByZW5hbWVkIHRvIGBTZWxlY3Rpb25HZW9tZXRyeUdhdGhl
cmVyYCkgdG8gZW1pdCBxdWFkcywgcmF0aGVyIHRoYW4gYm91bmRpbmcKKyAgICAgICAgcmVjdHMg
YXJvdW5kIGVhY2ggcXVhZC4gV2UgdXNlIHRoZXNlIHF1YWRzIGluIGBJbWFnZU92ZXJsYXlDb250
cm9sbGVyYCB0byByZW5kZXIgc2VsZWN0aW9uIHF1YWRzIHZpYSBwYWdlCisgICAgICAgIG92ZXJs
YXkgKGkuZS4sIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBpbWFnZSBjb250YWluaW5nIHRoZSBvdmVy
bGF5IGlzIHRyYW5zcGFyZW50KS4KKworICAgICAgICBUZXN0OiBmYXN0L2ltYWdlcy9pbWFnZS1l
eHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0
bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcDogUmVuYW1lZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcC4KKworICAgICAg
ICBSZW5hbWUgYFNlbGVjdGlvblJlY3RHYXRoZXJlcmAgdG8gYFNlbGVjdGlvbkdlb21ldHJ5R2F0
aGVyZXJgLCB0byByZWZsZWN0IHRoZSBmYWN0IHRoYXQgdGhpcyBoZWxwZXIgY2xhc3Mgbm93Cisg
ICAgICAgIGFnZ3JlZ2F0ZXMgYm90aCBzZWxlY3Rpb24gcXVhZHMgYW5kIGdhcCByZWN0cy4KKwor
ICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6U2VsZWN0aW9uR2Vv
bWV0cnlHYXRoZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeUdhdGhl
cmVyOjphZGRRdWFkKToKKworICAgICAgICBSZW5hbWUgYGFkZFJlY3RgIHRvIGBhZGRRdWFkYCwg
YW5kIG1ha2UgaXQgdGFrZSBhIGBGbG9hdFF1YWRgIGluc3RlYWQuCisKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmFkZEdhcFJlY3RzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6Ok5vdGlmaWVyOjpOb3RpZmllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjpOb3RpZmllcjo6fk5v
dGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmJv
dW5kaW5nUmVjdHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uR2VvbWV0cnlH
YXRoZXJlcjo6Y2xlYXJBbmRDcmVhdGVOb3RpZmllcik6CisgICAgICAgICogZWRpdGluZy9TZWxl
Y3Rpb25HZW9tZXRyeUdhdGhlcmVyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1NlbGVjdGlvblJlY3RHYXRoZXJlci5oLgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9u
R2VvbWV0cnlHYXRoZXJlcjo6c2V0VGV4dE9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0
aW9uR2VvbWV0cnlHYXRoZXJlcjo6aXNUZXh0T25seSBjb25zdCk6CisgICAgICAgICogaHRtbC9I
VE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6dXBkYXRlV2l0
aEltYWdlRXh0cmFjdGlvblJlc3VsdCk6CisKKyAgICAgICAgTWlub3IgdHdlYWsgLSBkb24ndCBh
ZGQgYW55IG1hcmdpbiBhcm91bmQgdGhlIHdvcmQgd2hlbiB0aGUgbGluZSBvbmx5IGNvbnRhaW5z
IGEgc2luZ2xlIHdvcmQuCisKKyAgICAgICAgKiBwYWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6c2VsZWN0aW9u
UXVhZHNEaWRDaGFuZ2UpOgorCisgICAgICAgIFJlbmFtZSBgc2VsZWN0aW9uUmVjdHNEaWRDaGFu
Z2VgIHRvIGBzZWxlY3Rpb25RdWFkc0RpZENoYW5nZWAsIGFuZCB0YWtlIGEgYEZsb2F0UXVhZGAg
aW4gYWJzb2x1dGUgY29vcmRpbmF0ZXMKKyAgICAgICAgaW5zdGVhZCBvZiBhIGBMYXlvdXRSZWN0
YC4gU3RvcmUgdGhlc2UgcXVhZHMgaW4gYG1fb3ZlcmxheVNlbGVjdGlvblF1YWRzYCAoYWxzbyBy
ZW5hbWVkIGZyb20KKyAgICAgICAgYG1fb3ZlcmxheVNlbGVjdGlvblJlY3RzYCkuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVuaW5zdGFsbFBhZ2VPdmVybGF5
SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6ZHJh
d1JlY3QpOgorCisgICAgICAgIE1ha2UgYSBmZXcgY2hhbmdlcyB3aGVuIHBhaW50aW5nIHNlbGVj
dGlvbnMgdXNpbmcgdGhlIGBJbWFnZU92ZXJsYXlDb250cm9sbGVyYDoKKworICAgICAgICAxLiAg
SW5zdGVhZCBvZiBwYWludGluZyB3aXRoIGBmaWxsUmVjdCgpYCwgY29hbGVzY2UgYWxsIG9mIHRo
ZSBjb2xsZWN0ZWQgc2VsZWN0aW9uIHF1YWRzIGludG8gYSBzaW5nbGUgYFBhdGhgCisgICAgICAg
ICAgICBvYmplY3QsIGFuZCBwYXNzIHRoYXQgYFBhdGhgIGludG8gYGZpbGxQYXRoKClgLiBUaGlz
IGFsbG93cyB1cyB0byByZW5kZXIgZWFjaCBwaWVjZSBvZiBzZWxlY3RlZCBjb250ZW50IGFzIGEK
KyAgICAgICAgICAgIHF1YWQgaW5zdGVhZCBvZiBhIGJvdW5kaW5nIHJlY3QsIGFuZCBhZGRpdGlv
bmFsbHkgcHJldmVudHMgdXMgZnJvbSByZW5kZXJpbmcgb3ZlcmxhcHBpbmcgc2VsZWN0aW9ucwor
ICAgICAgICAgICAgd2hlbiB1c2luZyBgSW1hZ2VPdmVybGF5Q29udHJvbGxlcmAuCisKKyAgICAg
ICAgMi4gIENsaXAgc2VsZWN0aW9ucyB0byB0aGUgYWJzb2x1dGUgYm91bmRzIG9mIHRoZSBpbWFn
ZSBvdmVybGF5IGhvc3QgZWxlbWVudCdzIHJlbmRlcmVyLCB3aGljaCBwcmV2ZW50cyB0aGUgbmV3
CisgICAgICAgICAgICBzZWxlY3Rpb24gcXVhZHMgZnJvbSBzcGlsbGluZyBvdXQgb2YgdGhlIGhv
c3QgZWxlbWVudC4KKworICAgICAgICAoV2ViQ29yZTo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6
c2VsZWN0aW9uUmVjdHNEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvSW1hZ2VP
dmVybGF5Q29udHJvbGxlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25J
bmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlbGVjdGlvbkluZm86OlJlbmRlclNl
bGVjdGlvbkluZm8pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvOjpjb2xsZWN0ZWRTZWxlY3Rp
b25RdWFkcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTZWxlY3Rpb25JbmZvOjpj
b2xsZWN0ZWRTZWxlY3Rpb25SZWN0cyBjb25zdCk6IERlbGV0ZWQuCisKKyAgICAgICAgTW9yZSBt
aW5vciByZWZhY3RvcmluZzogcmVuYW1lIGBjb2xsZWN0ZWRTZWxlY3Rpb25SZWN0c2AgdG8gYGNv
bGxlY3RlZFNlbGVjdGlvblF1YWRzYCwgYW5kIG1ha2UgaXQgdGFrZSB0aGUKKyAgICAgICAgb3Jp
Z2luYWwgYEZsb2F0UXVhZGAgaW5zdGVhZCBvZiB0aGUgcXVhZCdzIGJvdW5kaW5nIGJveC4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRleHQ6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9TZWxlY3Rp
b25SYW5nZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VEYXRhOjpT
ZWxlY3Rpb25SYW5nZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VEYXRh
OjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0aW9uUmFuZ2VEYXRhOjphcHBseSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5oOgorCiAyMDIxLTA1LTA4ICBN
ZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CiAKICAgICAgICAgSW5jcmVh
c2Ugc3RvcmVkIEFwcEhpZ2hsaWdodCBjaGFyYWN0ZXIgbGltaXQgdG8gNTAwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQppbmRleCA5OGU4NTc5Mzk0NzllYmQzM2YwM2UzMzAyNTRhMTRiZWE4Y2FmY2ZmLi44ODc1
ZWEwNzZhNGNhZjEyYzUzMjM3OWFmMzBmNmE5N2JjYTNiNTI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UK
QEAgLTU3NSw3ICs1NzUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5oCiAgICAgZWRpdGluZy9IVE1MSW50ZXJjaGFu
Z2UuaAogICAgIGVkaXRpbmcvSW5saW5lUnVuQW5kT2Zmc2V0LmgKLSAgICBlZGl0aW5nL1NlbGVj
dGlvblJlY3RHYXRoZXJlci5oCisgICAgZWRpdGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVy
LmgKICAgICBlZGl0aW5nL1NlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oCiAgICAgZWRpdGluZy9T
bWFydFJlcGxhY2UuaAogICAgIGVkaXRpbmcvU3BlbGxDaGVja2VyLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IGE3NWRjYzdlYWFmOWRhOTA4MWJiZTc5N2JjNDk4NGI3ODY3OTVlZmQuLmUx
YzNiZTU1NjlhOGMyNzY0YjU1ZTAzNGFmM2NkYzUxMGJhYzQ4YzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dApAQCAtMTQxLDcgKzE0MSw3IEBAIGRvbS9EYXRhVHJhbnNmZXJNYWMubW0KIGRvbS9p
b3MvTW91c2VFdmVudElPUy5jcHAKIGRvbS9pb3MvUG9pbnRlckV2ZW50SU9TLmNwcAogZG9tL2lv
cy9Ub3VjaEV2ZW50cy5jcHAKLWVkaXRpbmcvU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcAorZWRp
dGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcAogZWRpdGluZy9TbWFydFJlcGxhY2VD
Ri5jcHAKIGVkaXRpbmcvY29jb2EvQWx0ZXJuYXRpdmVUZXh0Q29udGV4dENvbnRyb2xsZXIubW0K
IGVkaXRpbmcvY29jb2EvQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNTBjMGFh
NjQzMzA4ZjFiMjVlNGQ5ZDZjYTcwYmVhZWExMGY1ZDRmYi4uZWYwMzE0M2Q1MjQ3N2JhMjk0NjNk
MDRlN2UyNmIxMjcyMDg4ZGIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ3Nyw3ICsxNDc3LDcgQEAKIAkJNTEzMEYyRjYy
NEFFQTYwQTAwRTFEMEEwIC8qIEdhbWVDb250cm9sbGVyU29mdExpbmsubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTMwRjJGNDI0QUVBNjAzMDBFMUQw
QTAgLyogR2FtZUNvbnRyb2xsZXJTb2Z0TGluay5tbSAqLzsgfTsKIAkJNTEzMjdENjAxMUEzM0Ey
QjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTEzMjdENUUxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVu
dC5oICovOyB9OwogCQk1MTNGMTQ1NDBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzRjE0NTIwQUI2
MzRDNDAwMDk0RERGIC8qIEljb25Mb2FkZXIuaCAqLzsgfTsKLQkJNTE0MDVDODkxOTBCMDE0NDAw
NzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MDVDODcxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVj
dGlvblJlY3RHYXRoZXJlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTUxNDA1Qzg5MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25HZW9tZXRy
eUdhdGhlcmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTQwNUM4NzE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxNDEy
OTk5MUM2OTc2OTAwMDU5RTcxNCAvKiBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk5NzFDNjk3NjE1
MDA1OUU3MTQgLyogSURCUmVxdWVzdENvbXBsZXRpb25FdmVudC5oICovOyB9OwogCQk1MTQzQjI2
MzFEREQxNTIwMDAxNEZBQzYgLyogTGlua0ljb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDNCMjYyMURERDE0OTAwMDE0RkFDNiAvKiBMaW5rSWNv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUx
NDVCMTBBMUJDNDhFMkUwMEU4NjIxOSAvKiBJREJSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDVCMTA4MUJDNDg5MEIw
MEU4NjIxOSAvKiBJREJSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODcxNCw4ICs4NzE0LDggQEAKIAkJNTEzMjdE
NUYxMUEzM0EyQjAwNEY5RDY1IC8qIFNpbmtEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBTaW5rRG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTNGMTQ1MTBBQjYzNEM0MDAwOTREREYgLyogSWNvbkxvYWRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSWNvbkxvYWRlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxM0YxNDUyMEFCNjM0QzQwMDA5NERERiAvKiBJY29u
TG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJY29uTG9hZGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxNDA1Qzg2MTkwQjAxNDQwMDc1NEY5NCAv
KiBTZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTE0MDVDODcxOTBCMDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWxlY3Rpb25SZWN0R2F0aGVy
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0MDVDODYxOTBCMDE0NDAwNzU0
Rjk0IC8qIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDA1Qzg3MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rp
b25HZW9tZXRyeUdhdGhlcmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNl
bGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTE0MTI5OTYxQzY5NzYxNTAwNTlFNzE0IC8qIElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURCUmVxdWVzdENvbXBsZXRp
b25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDEyOTk3MUM2OTc2
MTUwMDU5RTcxNCAvKiBJREJSZXF1ZXN0Q29tcGxldGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IElEQlJlcXVlc3RDb21wbGV0aW9uRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0MTI5OUExQzZDMTY2RDAwNTlFNzE0IC8qIEpTSURCSW5k
ZXhDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJJ
bmRleEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzQyMCw4ICsy
MzQyMCw4IEBACiAJCQkJMkRGNTEyQ0MxRDg3M0U0NzAwMUQ2NzgwIC8qIFJlcGxhY2VSYW5nZVdp
dGhUZXh0Q29tbWFuZC5oICovLAogCQkJCTkzMzA5REJBMDk5RTY0OTEwMDU2RTU4MSAvKiBSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZC5jcHAgKi8sCiAJCQkJOTMzMDlEQkIwOTlFNjQ5MTAwNTZFNTgx
IC8qIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmggKi8sCi0JCQkJNTE0MDVDODYxOTBCMDE0NDAw
NzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5jcHAgKi8sCi0JCQkJNTE0MDVDODcxOTBC
MDE0NDAwNzU0Rjk0IC8qIFNlbGVjdGlvblJlY3RHYXRoZXJlci5oICovLAorCQkJCTUxNDA1Qzg2
MTkwQjAxNDQwMDc1NEY5NCAvKiBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcCAqLywKKwkJ
CQk1MTQwNUM4NzE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5o
ICovLAogCQkJCUY0RDQzRDY0MjE4ODAyRTYwMEVDRUNBQyAvKiBTZXJpYWxpemVkQXR0YWNobWVu
dERhdGEuaCAqLywKIAkJCQk5MzMwOURDMDA5OUU2NDkxMDA1NkU1ODEgLyogU2V0Tm9kZUF0dHJp
YnV0ZUNvbW1hbmQuY3BwICovLAogCQkJCTkzMzA5REMxMDk5RTY0OTEwMDU2RTU4MSAvKiBTZXRO
b2RlQXR0cmlidXRlQ29tbWFuZC5oICovLApAQCAtMzQ5NjQsOCArMzQ5NjQsOCBAQAogCQkJCTJE
NUJDNDI3MTZGODgyRUUwMDcwNDhEMCAvKiBTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEyRjBEMDA2QzFEMDBFRjZGMjYgLyogU2VnbWVudGVk
U3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlCRUE4MDdDOTBGNzE0QTAzMDA1MjQxOTkgLyog
U2VsZWN0aW9uR2VvbWV0cnkuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNDA1Qzg5MTkwQjAxNDQw
MDc1NEY5NCAvKiBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0NDY1RDdCRDI1MzZEMDVFMDAxNjY2NkQgLyogU2VsZWN0aW9uUmFuZ2VEYXRhLmggaW4gSGVh
ZGVycyAqLywKLQkJCQk1MTQwNUM4OTE5MEIwMTQ0MDA3NTRGOTQgLyogU2VsZWN0aW9uUmVjdEdh
dGhlcmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5OENCQzgwNTI2MThGNjhDMDAxNTkzQzggLyog
U2VsZWN0aW9uUmVzdG9yYXRpb25Nb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDRCNEJCNDE0
MTY1MEQ3MDAyQjFEOEIgLyogU2VsZWN0b3JDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
MzJEM0ZFODE4QTg2NTg0MDBEN0RDMDMgLyogU2VsZWN0b3JDaGVja2VyVGVzdEZ1bmN0aW9ucy5o
IGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVj
dGlvbkdlb21ldHJ5R2F0aGVyZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rp
b25HZW9tZXRyeUdhdGhlcmVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZDg3MmM3ZTFkNzNlYTliMWRiZjQ5
MTg4OGU0NzhiMTUwZTAxNzM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9TZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmNwcApAQCAtMCwwICsxLDk3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlbGVjdGlvbkdlb21ldHJ5
R2F0aGVyZXIuaCIKKworI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorCisjaW5jbHVkZSAi
RWRpdG9yLmgiCisjaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJJbWFnZU92ZXJsYXlDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiUmVuZGVyVmll
dy5oIgorI2luY2x1ZGUgIlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjpTZWxlY3Rpb25HZW9tZXRy
eUdhdGhlcmVyKFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCisgICAgOiBtX3JlbmRlclZpZXcocmVu
ZGVyVmlldykKKyAgICAsIG1faXNUZXh0T25seSh0cnVlKQoreworfQorCit2b2lkIFNlbGVjdGlv
bkdlb21ldHJ5R2F0aGVyZXI6OmFkZFF1YWQoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWlu
dENvbnRhaW5lciwgY29uc3QgRmxvYXRRdWFkJiBxdWFkKQoreworICAgIGlmICghcXVhZC5ib3Vu
ZGluZ0JveElzRW1wdHkoKSkKKyAgICAgICAgbV9xdWFkcy5hcHBlbmQocmVwYWludENvbnRhaW5l
ciA/IHJlcGFpbnRDb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQocXVhZCkgOiBxdWFkKTsK
K30KKwordm9pZCBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjphZGRHYXBSZWN0cyhSZW5kZXJM
YXllck1vZGVsT2JqZWN0ICpyZXBhaW50Q29udGFpbmVyLCBjb25zdCBHYXBSZWN0cyYgcmVjdHMp
Cit7CisgICAgaWYgKHJlcGFpbnRDb250YWluZXIpIHsKKyAgICAgICAgR2FwUmVjdHMgYWJzb2x1
dGVHYXBSZWN0czsKKyAgICAgICAgYWJzb2x1dGVHYXBSZWN0cy51bml0ZUxlZnQoTGF5b3V0UmVj
dChyZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChyZWN0cy5s
ZWZ0KCkpKS5ib3VuZGluZ0JveCgpKSk7CisgICAgICAgIGFic29sdXRlR2FwUmVjdHMudW5pdGVD
ZW50ZXIoTGF5b3V0UmVjdChyZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UXVhZChyZWN0cy5jZW50ZXIoKSkpLmJvdW5kaW5nQm94KCkpKTsKKyAgICAgICAgYWJzb2x1
dGVHYXBSZWN0cy51bml0ZVJpZ2h0KExheW91dFJlY3QocmVwYWludENvbnRhaW5lci0+bG9jYWxU
b0Fic29sdXRlUXVhZChGbG9hdFF1YWQocmVjdHMucmlnaHQoKSkpLmJvdW5kaW5nQm94KCkpKTsK
KyAgICAgICAgbV9nYXBSZWN0cy5hcHBlbmQoYWJzb2x1dGVHYXBSZWN0cyk7CisgICAgfSBlbHNl
CisgICAgICAgIG1fZ2FwUmVjdHMuYXBwZW5kKHJlY3RzKTsKK30KKworU2VsZWN0aW9uR2VvbWV0
cnlHYXRoZXJlcjo6Tm90aWZpZXI6Ok5vdGlmaWVyKFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIm
IGdhdGhlcmVyKQorICAgIDogbV9nYXRoZXJlcihnYXRoZXJlcikKK3sKK30KKworU2VsZWN0aW9u
R2VvbWV0cnlHYXRoZXJlcjo6Tm90aWZpZXI6On5Ob3RpZmllcigpCit7CisgICAgYXV0byBwYWdl
ID0gbV9nYXRoZXJlci5tX3JlbmRlclZpZXcudmlldygpLmZyYW1lKCkucGFnZSgpOworICAgIGlm
ICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+c2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcigpLnNlbGVjdGlvblJlY3RzRGlkQ2hhbmdlKG1fZ2F0aGVyZXIuYm91bmRpbmdSZWN0
cygpLCBtX2dhdGhlcmVyLm1fZ2FwUmVjdHMsIG1fZ2F0aGVyZXIuaXNUZXh0T25seSgpKTsKKyAg
ICBwYWdlLT5pbWFnZU92ZXJsYXlDb250cm9sbGVyKCkuc2VsZWN0aW9uUXVhZHNEaWRDaGFuZ2Uo
bV9nYXRoZXJlci5tX3JlbmRlclZpZXcuZnJhbWUoKSwgbV9nYXRoZXJlci5tX3F1YWRzKTsKK30K
KworVmVjdG9yPExheW91dFJlY3Q+IFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXI6OmJvdW5kaW5n
UmVjdHMoKSBjb25zdAoreworICAgIHJldHVybiBtX3F1YWRzLm1hcChbXShhdXRvJiBxdWFkKSB7
CisgICAgICAgIHJldHVybiBMYXlvdXRSZWN0IHsgcXVhZC5ib3VuZGluZ0JveCgpIH07CisgICAg
fSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOjpOb3Rp
Zmllcj4gU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcjo6Y2xlYXJBbmRDcmVhdGVOb3RpZmllcigp
Cit7CisgICAgbV9xdWFkcy5jbGVhcigpOworICAgIG1fZ2FwUmVjdHMuY2xlYXIoKTsKKyAgICBt
X2lzVGV4dE9ubHkgPSB0cnVlOworCisgICAgcmV0dXJuIG1ha2VVbmlxdWU8Tm90aWZpZXI+KCp0
aGlzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVj
dGlvbkdlb21ldHJ5R2F0aGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9u
R2VvbWV0cnlHYXRoZXJlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIyYmYwYTIzZjM1MDA0MmFmYjQxZmNiM2Q4
YzVkYmMxYmZjYTQ2YmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXIuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKworI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBGbG9hdFF1YWQ7CitjbGFzcyBMYXlvdXRSZWN0OworY2xh
c3MgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDsKK2NsYXNzIFJlbmRlclZpZXc7CisKK3N0cnVjdCBH
YXBSZWN0czsKKworY2xhc3MgU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlciB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlcik7CisKK3B1YmxpYzoKKyAg
ICBTZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyKFJlbmRlclZpZXcmKTsKKworICAgIHZvaWQgYWRk
UXVhZChSZW5kZXJMYXllck1vZGVsT2JqZWN0ICpyZXBhaW50Q29udGFpbmVyLCBjb25zdCBGbG9h
dFF1YWQmKTsKKyAgICB2b2lkIGFkZEdhcFJlY3RzKFJlbmRlckxheWVyTW9kZWxPYmplY3QgKnJl
cGFpbnRDb250YWluZXIsIGNvbnN0IEdhcFJlY3RzJik7CisgICAgdm9pZCBzZXRUZXh0T25seShi
b29sIGlzVGV4dE9ubHkpIHsgbV9pc1RleHRPbmx5ID0gaXNUZXh0T25seTsgfQorICAgIGJvb2wg
aXNUZXh0T25seSgpIGNvbnN0IHsgcmV0dXJuIG1faXNUZXh0T25seTsgfQorCisgICAgY2xhc3Mg
Tm90aWZpZXIgeworICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoTm90aWZpZXIpOworICAgIHB1YmxpYzoKKyAgICAgICAgTm90aWZp
ZXIoU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlciYpOworICAgICAgICB+Tm90aWZpZXIoKTsKKwor
ICAgIHByaXZhdGU6CisgICAgICAgIFNlbGVjdGlvbkdlb21ldHJ5R2F0aGVyZXImIG1fZ2F0aGVy
ZXI7CisgICAgfTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxOb3RpZmllcj4gY2xlYXJBbmRDcmVh
dGVOb3RpZmllcigpOworICAgIAorcHJpdmF0ZToKKyAgICBWZWN0b3I8TGF5b3V0UmVjdD4gYm91
bmRpbmdSZWN0cygpIGNvbnN0OworCisgICAgUmVuZGVyVmlldyYgbV9yZW5kZXJWaWV3OworCisg
ICAgLy8gQWxsIHJlY3RzIGFyZSBpbiBSZW5kZXJWaWV3IGNvb3JkaW5hdGVzLgorICAgIFZlY3Rv
cjxGbG9hdFF1YWQ+IG1fcXVhZHM7CisgICAgVmVjdG9yPEdhcFJlY3RzPiBtX2dhcFJlY3RzOwor
ICAgIGJvb2wgbV9pc1RleHRPbmx5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1NlbGVjdGlvblJlY3RHYXRoZXJlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NlbGVjdGlvblJlY3RHYXRoZXJlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDI5MjFkNjU2NGYzNGU1ZjU1NWEzYmU3MTY5ZTRiOTZmM2VlY2YyNzcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9TZWxlY3Rpb25SZWN0R2F0aGVyZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsOTQgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZWxlY3Rp
b25SZWN0R2F0aGVyZXIuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotCi0jaW5j
bHVkZSAiRWRpdG9yLmgiCi0jaW5jbHVkZSAiRWRpdG9yQ2xpZW50LmgiCi0jaW5jbHVkZSAiRnJh
bWUuaCIKLSNpbmNsdWRlICJJbWFnZU92ZXJsYXlDb250cm9sbGVyLmgiCi0jaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgotI2luY2x1ZGUgIlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCIKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1TZWxlY3Rpb25SZWN0R2F0aGVyZXI6OlNlbGVjdGlvblJlY3RH
YXRoZXJlcihSZW5kZXJWaWV3JiByZW5kZXJWaWV3KQotICAgIDogbV9yZW5kZXJWaWV3KHJlbmRl
clZpZXcpCi0gICAgLCBtX2lzVGV4dE9ubHkodHJ1ZSkKLXsKLX0KLQotdm9pZCBTZWxlY3Rpb25S
ZWN0R2F0aGVyZXI6OmFkZFJlY3QoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCAqcmVwYWludENvbnRh
aW5lciwgY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKLXsKLSAgICBpZiAoIXJlY3QuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIGlmIChyZXBhaW50Q29udGFpbmVyKQotICAgICAgICAgICAgbV9yZWN0cy5h
cHBlbmQoTGF5b3V0UmVjdChyZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UXVhZChyZWN0KSkuYm91bmRpbmdCb3goKSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBtX3JlY3RzLmFwcGVuZChyZWN0KTsKLSAgICB9Ci19Ci0KLXZvaWQgU2VsZWN0aW9uUmVjdEdh
dGhlcmVyOjphZGRHYXBSZWN0cyhSZW5kZXJMYXllck1vZGVsT2JqZWN0ICpyZXBhaW50Q29udGFp
bmVyLCBjb25zdCBHYXBSZWN0cyYgcmVjdHMpCi17Ci0gICAgaWYgKHJlcGFpbnRDb250YWluZXIp
IHsKLSAgICAgICAgR2FwUmVjdHMgYWJzb2x1dGVHYXBSZWN0czsKLSAgICAgICAgYWJzb2x1dGVH
YXBSZWN0cy51bml0ZUxlZnQoTGF5b3V0UmVjdChyZXBhaW50Q29udGFpbmVyLT5sb2NhbFRvQWJz
b2x1dGVRdWFkKEZsb2F0UXVhZChyZWN0cy5sZWZ0KCkpKS5ib3VuZGluZ0JveCgpKSk7Ci0gICAg
ICAgIGFic29sdXRlR2FwUmVjdHMudW5pdGVDZW50ZXIoTGF5b3V0UmVjdChyZXBhaW50Q29udGFp
bmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UXVhZChyZWN0cy5jZW50ZXIoKSkpLmJvdW5k
aW5nQm94KCkpKTsKLSAgICAgICAgYWJzb2x1dGVHYXBSZWN0cy51bml0ZVJpZ2h0KExheW91dFJl
Y3QocmVwYWludENvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFF1YWQocmVjdHMu
cmlnaHQoKSkpLmJvdW5kaW5nQm94KCkpKTsKLSAgICAgICAgbV9nYXBSZWN0cy5hcHBlbmQoYWJz
b2x1dGVHYXBSZWN0cyk7Ci0gICAgfSBlbHNlCi0gICAgICAgIG1fZ2FwUmVjdHMuYXBwZW5kKHJl
Y3RzKTsKLX0KLQotU2VsZWN0aW9uUmVjdEdhdGhlcmVyOjpOb3RpZmllcjo6Tm90aWZpZXIoU2Vs
ZWN0aW9uUmVjdEdhdGhlcmVyJiBnYXRoZXJlcikKLSAgICA6IG1fZ2F0aGVyZXIoZ2F0aGVyZXIp
Ci17Ci19Ci0KLVNlbGVjdGlvblJlY3RHYXRoZXJlcjo6Tm90aWZpZXI6On5Ob3RpZmllcigpCi17
Ci0gICAgYXV0byBwYWdlID0gbV9nYXRoZXJlci5tX3JlbmRlclZpZXcudmlldygpLmZyYW1lKCku
cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFnZS0+c2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlcigpLnNlbGVjdGlvblJlY3RzRGlkQ2hhbmdlKG1fZ2F0aGVy
ZXIubV9yZWN0cywgbV9nYXRoZXJlci5tX2dhcFJlY3RzLCBtX2dhdGhlcmVyLmlzVGV4dE9ubHko
KSk7Ci0gICAgcGFnZS0+aW1hZ2VPdmVybGF5Q29udHJvbGxlcigpLnNlbGVjdGlvblJlY3RzRGlk
Q2hhbmdlKG1fZ2F0aGVyZXIubV9yZW5kZXJWaWV3LmZyYW1lKCksIG1fZ2F0aGVyZXIubV9yZWN0
cyk7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxTZWxlY3Rpb25SZWN0R2F0aGVyZXI6Ok5vdGlmaWVy
PiBTZWxlY3Rpb25SZWN0R2F0aGVyZXI6OmNsZWFyQW5kQ3JlYXRlTm90aWZpZXIoKQotewotICAg
IG1fcmVjdHMuY2xlYXIoKTsKLSAgICBtX2dhcFJlY3RzLmNsZWFyKCk7Ci0gICAgbV9pc1RleHRP
bmx5ID0gdHJ1ZTsKLQotICAgIHJldHVybiBtYWtlVW5pcXVlPE5vdGlmaWVyPigqdGhpcyk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NP
TlRST0xTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25SZWN0
R2F0aGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uUmVjdEdhdGhlcmVy
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4NWJhMjQ1NjgxZjE5Y2FkNzg4NjFk
MTg3MTA5ZjYwMThlYjZiOGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25SZWN0R2F0aGVyZXIuaAor
KysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotCi0jaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIExheW91dFJlY3Q7Ci1jbGFzcyBSZW5kZXJMYXllck1vZGVsT2JqZWN0OwotY2xhc3Mg
UmVuZGVyVmlldzsKLQotc3RydWN0IEdhcFJlY3RzOwotCi1jbGFzcyBTZWxlY3Rpb25SZWN0R2F0
aGVyZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNlbGVjdGlvblJlY3RHYXRoZXJlcik7
Ci0KLXB1YmxpYzoKLSAgICBTZWxlY3Rpb25SZWN0R2F0aGVyZXIoUmVuZGVyVmlldyYpOwotCi0g
ICAgdm9pZCBhZGRSZWN0KFJlbmRlckxheWVyTW9kZWxPYmplY3QgKnJlcGFpbnRDb250YWluZXIs
IGNvbnN0IExheW91dFJlY3QmKTsKLSAgICB2b2lkIGFkZEdhcFJlY3RzKFJlbmRlckxheWVyTW9k
ZWxPYmplY3QgKnJlcGFpbnRDb250YWluZXIsIGNvbnN0IEdhcFJlY3RzJik7Ci0gICAgdm9pZCBz
ZXRUZXh0T25seShib29sIGlzVGV4dE9ubHkpIHsgbV9pc1RleHRPbmx5ID0gaXNUZXh0T25seTsg
fQotICAgIGJvb2wgaXNUZXh0T25seSgpIGNvbnN0IHsgcmV0dXJuIG1faXNUZXh0T25seTsgfQot
Ci0gICAgY2xhc3MgTm90aWZpZXIgewotICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
LSAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTm90aWZpZXIpOwotICAgIHB1YmxpYzoKLSAg
ICAgICAgTm90aWZpZXIoU2VsZWN0aW9uUmVjdEdhdGhlcmVyJik7Ci0gICAgICAgIH5Ob3RpZmll
cigpOwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgU2VsZWN0aW9uUmVjdEdhdGhlcmVyJiBtX2dh
dGhlcmVyOwotICAgIH07Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Tm90aWZpZXI+IGNsZWFyQW5k
Q3JlYXRlTm90aWZpZXIoKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgUmVuZGVyVmlldyYgbV9yZW5k
ZXJWaWV3OwotCi0gICAgLy8gQWxsIHJlY3RzIGFyZSBpbiBSZW5kZXJWaWV3IGNvb3JkaW5hdGVz
LgotICAgIFZlY3RvcjxMYXlvdXRSZWN0PiBtX3JlY3RzOwotICAgIFZlY3RvcjxHYXBSZWN0cz4g
bV9nYXBSZWN0czsKLSAgICBib29sIG1faXNUZXh0T25seTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCAxMWEzZGE4Yzk3MjM5NzI0YjMyNjgyOWEyMzdiZDRl
ZjQwY2FmNmZhLi40MjEzOGY2MWFlYjA2NGIyMjkyYTlkMjlhMWY0MGRjYTdlMjE1ZDNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMTM4NCwxMSArMTM4NCwxMiBAQCB2b2lk
IEhUTUxFbGVtZW50Ojp1cGRhdGVXaXRoSW1hZ2VFeHRyYWN0aW9uUmVzdWx0KEltYWdlRXh0cmFj
dGlvblJlc3VsdCYmIHJlc3VsdAogICAgICAgICAgICAgaWYgKGNoaWxkLm5vcm1hbGl6ZWRRdWFk
LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgY29u
c3RleHByIGZsb2F0IGhvcml6b250YWxNYXJnaW5Ub01pbmltaXplU2VsZWN0aW9uR2FwcyA9IDAu
MTI1OwotICAgICAgICAgICAgZmxvYXQgaG9yaXpvbnRhbE9mZnNldCA9IC1ob3Jpem9udGFsTWFy
Z2luVG9NaW5pbWl6ZVNlbGVjdGlvbkdhcHM7Ci0gICAgICAgICAgICBmbG9hdCBob3Jpem9udGFs
RXh0ZW50ID0gaG9yaXpvbnRhbE1hcmdpblRvTWluaW1pemVTZWxlY3Rpb25HYXBzOworICAgICAg
ICAgICAgYm9vbCBsaW5lSGFzT25lQ2hpbGQgPSBsaW5lLmNoaWxkcmVuLnNpemUoKSA9PSAxOwor
ICAgICAgICAgICAgZmxvYXQgaG9yaXpvbnRhbE1hcmdpblRvTWluaW1pemVTZWxlY3Rpb25HYXBz
ID0gbGluZUhhc09uZUNoaWxkID8gMCA6IDAuMTI1OworICAgICAgICAgICAgZmxvYXQgaG9yaXpv
bnRhbE9mZnNldCA9IGxpbmVIYXNPbmVDaGlsZCA/IDAgOiAtaG9yaXpvbnRhbE1hcmdpblRvTWlu
aW1pemVTZWxlY3Rpb25HYXBzOworICAgICAgICAgICAgZmxvYXQgaG9yaXpvbnRhbEV4dGVudCA9
IGxpbmVIYXNPbmVDaGlsZCA/IDAgOiBob3Jpem9udGFsTWFyZ2luVG9NaW5pbWl6ZVNlbGVjdGlv
bkdhcHM7CiAKLSAgICAgICAgICAgIGlmIChsaW5lLmNoaWxkcmVuLnNpemUoKSA9PSAxKSB7Cisg
ICAgICAgICAgICBpZiAobGluZUhhc09uZUNoaWxkKSB7CiAgICAgICAgICAgICAgICAgaG9yaXpv
bnRhbE9mZnNldCArPSBvZmZzZXRzQWxvbmdIb3Jpem9udGFsQXhpc1tjaGlsZEluZGV4XS5iZWdp
bigpOwogICAgICAgICAgICAgICAgIGhvcml6b250YWxFeHRlbnQgKz0gb2Zmc2V0c0Fsb25nSG9y
aXpvbnRhbEF4aXNbY2hpbGRJbmRleF0uZW5kKCk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKCFj
aGlsZEluZGV4KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ltYWdlT3Zlcmxh
eUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFnZU92ZXJsYXlDb250cm9s
bGVyLmNwcAppbmRleCAwYjQzNjk5NWYyZDMxNDU3NjM4NWExYjlhNjNkZTgxZWU1MDdjODBjLi40
ZTAwYWQ3NzQ1MWI0OWIzODY1OTc3Y2IyZTE3ZDQxNjEwYWZhN2Q4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvSW1hZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTMyLDcgKzMyLDYgQEAK
ICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
U2VsZWN0aW9uLmgiCi0jaW5jbHVkZSAiR2FwUmVjdHMuaCIKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
QEAgLTQ2LDEyICs0NSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZsb2F0
UXVhZDsKKwogSW1hZ2VPdmVybGF5Q29udHJvbGxlcjo6SW1hZ2VPdmVybGF5Q29udHJvbGxlcihQ
YWdlJiBwYWdlKQogICAgIDogbV9wYWdlKG1ha2VXZWFrUHRyKHBhZ2UpKQogewogfQogCi12b2lk
IEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblJlY3RzRGlkQ2hhbmdlKEZyYW1lJiBm
cmFtZSwgY29uc3QgVmVjdG9yPExheW91dFJlY3Q+JiByZWN0cykKK3ZvaWQgSW1hZ2VPdmVybGF5
Q29udHJvbGxlcjo6c2VsZWN0aW9uUXVhZHNEaWRDaGFuZ2UoRnJhbWUmIGZyYW1lLCBjb25zdCBW
ZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCiB7CiAgICAgaWYgKCFtX3BhZ2UgfHwgIW1fcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkubmVlZHNJbWFnZU92ZXJsYXlDb250cm9sbGVyRm9yU2VsZWN0aW9u
UGFpbnRpbmcoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjAsNyArNjEsNyBAQCB2b2lkIEltYWdl
T3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblJlY3RzRGlkQ2hhbmdlKEZyYW1lJiBmcmFtZSwg
Y29uc3QgVmVjdG9yPAogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIG92ZXJsYXlIb3N0UmVu
ZGVyZXIgPSAoWyZdICgpIC0+IFJlbmRlckVsZW1lbnQqIHsKLSAgICAgICAgaWYgKHJlY3RzLmlz
RW1wdHkoKSkKKyAgICAgICAgaWYgKHF1YWRzLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgICAgIGF1dG8gc2VsZWN0ZWRSYW5nZSA9IGZyYW1lLnNlbGVjdGlv
bigpLnNlbGVjdGlvbigpLnJhbmdlKCk7CkBAIC04NCw3ICs4NSw4IEBAIHZvaWQgSW1hZ2VPdmVy
bGF5Q29udHJvbGxlcjo6c2VsZWN0aW9uUmVjdHNEaWRDaGFuZ2UoRnJhbWUmIGZyYW1lLCBjb25z
dCBWZWN0b3I8CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX292ZXJsYXlTZWxlY3Rp
b25SZWN0cyA9IHJlY3RzOworICAgIG1fb3ZlcmxheVNlbGVjdGlvblF1YWRzID0gcXVhZHM7Cisg
ICAgbV9zZWxlY3Rpb25PdmVybGF5Qm91bmRzID0gb3ZlcmxheUhvc3RSZW5kZXJlci0+YWJzb2x1
dGVCb3VuZGluZ0JveFJlY3QoKTsKICAgICBtX3NlbGVjdGlvbkJhY2tncm91bmRDb2xvciA9IG92
ZXJsYXlIb3N0UmVuZGVyZXItPnNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpOwogICAgIG1fY3Vy
cmVudE92ZXJsYXlEb2N1bWVudCA9IG1ha2VXZWFrUHRyKG92ZXJsYXlIb3N0UmVuZGVyZXItPmRv
Y3VtZW50KCkpOwogCkBAIC0xMTYsNyArMTE4LDggQEAgUGFnZU92ZXJsYXkmIEltYWdlT3Zlcmxh
eUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCkKIAogdm9pZCBJbWFnZU92
ZXJsYXlDb250cm9sbGVyOjp1bmluc3RhbGxQYWdlT3ZlcmxheUlmTmVlZGVkKCkKIHsKLSAgICBt
X292ZXJsYXlTZWxlY3Rpb25SZWN0cy5jbGVhcigpOworICAgIG1fc2VsZWN0aW9uT3ZlcmxheUJv
dW5kcyA9IHsgfTsKKyAgICBtX292ZXJsYXlTZWxlY3Rpb25RdWFkcy5jbGVhcigpOwogICAgIG1f
c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yID0gQ29sb3I6OnRyYW5zcGFyZW50QmxhY2s7CiAgICAg
bV9jdXJyZW50T3ZlcmxheURvY3VtZW50ID0gbnVsbHB0cjsKIApAQCAtMTQyLDkgKzE0NSwyMyBA
QCB2b2lkIEltYWdlT3ZlcmxheUNvbnRyb2xsZXI6OmRyYXdSZWN0KFBhZ2VPdmVybGF5JiBwYWdl
T3ZlcmxheSwgR3JhcGhpY3NDb250ZXh0JgogCiAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZl
ciBzdGF0ZVNhdmVyKGNvbnRleHQpOwogICAgIGNvbnRleHQuY2xlYXJSZWN0KGRpcnR5UmVjdCk7
CisKKyAgICBpZiAobV9vdmVybGF5U2VsZWN0aW9uUXVhZHMuaXNFbXB0eSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBQYXRoIGNvYWxlc2NlZFNlbGVjdGlvblBhdGg7CisgICAgZm9yIChhdXRv
JiBxdWFkIDogbV9vdmVybGF5U2VsZWN0aW9uUXVhZHMpIHsKKyAgICAgICAgY29hbGVzY2VkU2Vs
ZWN0aW9uUGF0aC5tb3ZlVG8ocXVhZC5wMSgpKTsKKyAgICAgICAgY29hbGVzY2VkU2VsZWN0aW9u
UGF0aC5hZGRMaW5lVG8ocXVhZC5wMigpKTsKKyAgICAgICAgY29hbGVzY2VkU2VsZWN0aW9uUGF0
aC5hZGRMaW5lVG8ocXVhZC5wMygpKTsKKyAgICAgICAgY29hbGVzY2VkU2VsZWN0aW9uUGF0aC5h
ZGRMaW5lVG8ocXVhZC5wNCgpKTsKKyAgICAgICAgY29hbGVzY2VkU2VsZWN0aW9uUGF0aC5hZGRM
aW5lVG8ocXVhZC5wMSgpKTsKKyAgICAgICAgY29hbGVzY2VkU2VsZWN0aW9uUGF0aC5jbG9zZVN1
YnBhdGgoKTsKKyAgICB9CisKICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihtX3NlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcik7Ci0gICAgZm9yIChhdXRvJiByZWN0IDogbV9vdmVybGF5U2VsZWN0aW9u
UmVjdHMpCi0gICAgICAgIGNvbnRleHQuZmlsbFJlY3QocmVjdCk7CisgICAgY29udGV4dC5jbGlw
KG1fc2VsZWN0aW9uT3ZlcmxheUJvdW5kcyk7CisgICAgY29udGV4dC5maWxsUGF0aChjb2FsZXNj
ZWRTZWxlY3Rpb25QYXRoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9JbWFnZU92ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ltYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCAyNDc2NDhiZjYxMGM2
NDFkZGYyZDgwYjVmYjdlODhhNmM4ZjRkZmNmLi44YjFhNzU0YzAyZTlkYzE1MThkNTZmMzJkMjJi
ZTY1Nzk4ZDBhNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ltYWdlT3Zlcmxh
eUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ltYWdlT3ZlcmxheUNvbnRy
b2xsZXIuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZyYW1lOwog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSW50UmVjdDsKLWNsYXNzIExheW91dFJlY3Q7
CitjbGFzcyBGbG9hdFF1YWQ7CiBjbGFzcyBQYWdlOwogY2xhc3MgUmVuZGVyRWxlbWVudDsKIHN0
cnVjdCBHYXBSZWN0czsKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgSW1hZ2VPdmVybGF5Q29udHJv
bGxlciBmaW5hbCA6IHByaXZhdGUgUGFnZU92ZXJsYXk6OkNsaWVudCB7CiBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgSW1hZ2VPdmVybGF5Q29udHJvbGxlcihQYWdlJik7CiAKLSAgICB2b2lkIHNlbGVj
dGlvblJlY3RzRGlkQ2hhbmdlKEZyYW1lJiwgY29uc3QgVmVjdG9yPExheW91dFJlY3Q+Jik7Cisg
ICAgdm9pZCBzZWxlY3Rpb25RdWFkc0RpZENoYW5nZShGcmFtZSYsIGNvbnN0IFZlY3RvcjxGbG9h
dFF1YWQ+Jik7CiAgICAgdm9pZCBkb2N1bWVudERldGFjaGVkKGNvbnN0IERvY3VtZW50Jik7CiAK
IHByaXZhdGU6CkBAIC02Myw3ICs2Myw4IEBAIHByaXZhdGU6CiAgICAgV2Vha1B0cjxQYWdlPiBt
X3BhZ2U7CiAgICAgUmVmUHRyPFBhZ2VPdmVybGF5PiBtX292ZXJsYXk7CiAgICAgV2Vha1B0cjxE
b2N1bWVudD4gbV9jdXJyZW50T3ZlcmxheURvY3VtZW50OwotICAgIFZlY3RvcjxMYXlvdXRSZWN0
PiBtX292ZXJsYXlTZWxlY3Rpb25SZWN0czsKKyAgICBWZWN0b3I8RmxvYXRRdWFkPiBtX292ZXJs
YXlTZWxlY3Rpb25RdWFkczsKKyAgICBMYXlvdXRSZWN0IG1fc2VsZWN0aW9uT3ZlcmxheUJvdW5k
czsKICAgICBDb2xvciBtX3NlbGVjdGlvbkJhY2tncm91bmRDb2xvciB7IENvbG9yOjp0cmFuc3Bh
cmVudEJsYWNrIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU2VsZWN0aW9uSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2VsZWN0aW9uSW5mby5jcHAKaW5kZXggMzY3ZmIzZGIyMzdkZjNlYmY0ZDZkOGNiZGE5MTk0ODFm
NzQyYzc0My4uY2RiOGU0ZmZjYzIxYjViYzliMWQ5NDE3ZDk3OTZkZWY3MzcyODlkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbkluZm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmNwcApAQCAt
NDcsNyArNDcsNyBAQCBSZW5kZXJTZWxlY3Rpb25JbmZvOjpSZW5kZXJTZWxlY3Rpb25JbmZvKFJl
bmRlck9iamVjdCYgcmVuZGVyZXIsIGJvb2wgY2xpcFRvVmlzaQogewogICAgIGlmIChyZW5kZXJl
ci5jYW5VcGRhdGVTZWxlY3Rpb25PblJvb3RMaW5lQm94ZXMoKSkgewogICAgICAgICBpZiAoaXM8
UmVuZGVyVGV4dD4ocmVuZGVyZXIpKQotICAgICAgICAgICAgbV9yZWN0ID0gZG93bmNhc3Q8UmVu
ZGVyVGV4dD4ocmVuZGVyZXIpLmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVz
KG1fcmVwYWludENvbnRhaW5lciwgY2xpcFRvVmlzaWJsZUNvbnRlbnQsIG1fY29sbGVjdGVkU2Vs
ZWN0aW9uUmVjdHMpOworICAgICAgICAgICAgbV9yZWN0ID0gZG93bmNhc3Q8UmVuZGVyVGV4dD4o
cmVuZGVyZXIpLmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKG1fcmVwYWlu
dENvbnRhaW5lciwgY2xpcFRvVmlzaWJsZUNvbnRlbnQsIG1fY29sbGVjdGVkU2VsZWN0aW9uUXVh
ZHMpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX3JlY3QgPSByZW5kZXJlci5zZWxlY3Rp
b25SZWN0Rm9yUmVwYWludChtX3JlcGFpbnRDb250YWluZXIsIGNsaXBUb1Zpc2libGVDb250ZW50
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vs
ZWN0aW9uSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlbGVjdGlvbklu
Zm8uaAppbmRleCA1MzZmMGU3OTUxYzIzZGMyYTFkM2ExYjExY2I5YTgzNmIyMmMzNzZmLi41YTQy
YTRhNTRiYzUyNDcwNTk0MzQ0MzY5OGFmMTNhMDlkNDc2MTczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VsZWN0aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTZWxlY3Rpb25JbmZvLmgKQEAgLTUzLDExICs1MywxMSBAQCBw
dWJsaWM6CiAgICAgUmVuZGVyU2VsZWN0aW9uSW5mbyhSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCBi
b29sIGNsaXBUb1Zpc2libGVDb250ZW50KTsKIAogICAgIHZvaWQgcmVwYWludCgpOwotICAgIGNv
bnN0IFZlY3RvcjxMYXlvdXRSZWN0PiYgY29sbGVjdGVkU2VsZWN0aW9uUmVjdHMoKSBjb25zdCB7
IHJldHVybiBtX2NvbGxlY3RlZFNlbGVjdGlvblJlY3RzOyB9CisgICAgY29uc3QgVmVjdG9yPEZs
b2F0UXVhZD4mIGNvbGxlY3RlZFNlbGVjdGlvblF1YWRzKCkgY29uc3QgeyByZXR1cm4gbV9jb2xs
ZWN0ZWRTZWxlY3Rpb25RdWFkczsgfQogICAgIExheW91dFJlY3QgcmVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVjdDsgfQogCiBwcml2YXRlOgotICAgIFZlY3RvcjxMYXlvdXRSZWN0PiBtX2NvbGxl
Y3RlZFNlbGVjdGlvblJlY3RzOyAvLyByZWxhdGl2ZSB0byByZXBhaW50IGNvbnRhaW5lcgorICAg
IFZlY3RvcjxGbG9hdFF1YWQ+IG1fY29sbGVjdGVkU2VsZWN0aW9uUXVhZHM7IC8vIHJlbGF0aXZl
IHRvIHJlcGFpbnQgY29udGFpbmVyCiAgICAgTGF5b3V0UmVjdCBtX3JlY3Q7IC8vIHJlbGF0aXZl
IHRvIHJlcGFpbnQgY29udGFpbmVyCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5jcHAKaW5kZXggMWM1MjU0NDAxODk0OWFhYWM2ZmIyZDE0OWQ0NDczYTdmYWYwZWQyMS4u
ZTQ3MjBkZWQ1NTgwZTMxMWNhYjM0ZjI4ZGU5YzI5Mzk4MTIzN2ViMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMTU5Myw3ICsxNTkzLDcgQEAgTGF5b3V0UmVj
dCBSZW5kZXJUZXh0OjpjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWMKICAgICByZXR1cm4gcmVuZGVyZXJUb1JlcGFpbnQtPmNsaXBwZWRPdmVy
Zmxvd1JlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIpOwogfQogCi1MYXlvdXRSZWN0IFJl
bmRlclRleHQ6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKGNvbnN0IFJl
bmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJs
ZUNvbnRlbnQsIFZlY3RvcjxMYXlvdXRSZWN0PiogcmVjdHMpCitMYXlvdXRSZWN0IFJlbmRlclRl
eHQ6OmNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKGNvbnN0IFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRl
bnQsIFZlY3RvcjxGbG9hdFF1YWQ+KiBxdWFkcykKIHsKICAgICBBU1NFUlQoIW5lZWRzTGF5b3V0
KCkpOwogCkBAIC0xNjMzLDggKzE2MzMsOCBAQCBMYXlvdXRSZWN0IFJlbmRlclRleHQ6OmNvbGxl
Y3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKGNvbnN0IFJlbmRlckxheWVyTQogCiAg
ICAgICAgIHJlc3VsdFJlY3QudW5pdGUocmVjdCk7CiAKLSAgICAgICAgaWYgKHJlY3RzKQotICAg
ICAgICAgICAgcmVjdHMtPmFwcGVuZChsb2NhbFRvQ29udGFpbmVyUXVhZChGbG9hdFJlY3QocmVj
dCksIHJlcGFpbnRDb250YWluZXIpLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpOworICAgICAgICBp
ZiAocXVhZHMpCisgICAgICAgICAgICBxdWFkcy0+YXBwZW5kKGxvY2FsVG9Db250YWluZXJRdWFk
KEZsb2F0UmVjdChyZWN0KSwgcmVwYWludENvbnRhaW5lcikpOwogICAgIH0KIAogICAgIGlmIChj
bGlwVG9WaXNpYmxlQ29udGVudCkKQEAgLTE2NDIsOSArMTY0Miw5IEBAIExheW91dFJlY3QgUmVu
ZGVyVGV4dDo6Y29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXNGb3JMaW5lQm94ZXMoY29uc3QgUmVu
ZGVyTGF5ZXJNCiAgICAgcmV0dXJuIGxvY2FsVG9Db250YWluZXJRdWFkKEZsb2F0UmVjdChyZXN1
bHRSZWN0KSwgcmVwYWludENvbnRhaW5lcikuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIH0KIAot
TGF5b3V0UmVjdCBSZW5kZXJUZXh0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmllc0ZvckxpbmVC
b3hlcyhjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29s
IGNsaXBUb1Zpc2libGVDb250ZW50LCBWZWN0b3I8TGF5b3V0UmVjdD4mIHJlY3RzKQorTGF5b3V0
UmVjdCBSZW5kZXJUZXh0Ojpjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmllc0ZvckxpbmVCb3hlcyhj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBU
b1Zpc2libGVDb250ZW50LCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCiB7Ci0gICAgcmV0dXJu
IGNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKHJlcGFpbnRDb250YWluZXIs
IGNsaXBUb1Zpc2libGVDb250ZW50LCAmcmVjdHMpOworICAgIHJldHVybiBjb2xsZWN0U2VsZWN0
aW9uR2VvbWV0cmllc0ZvckxpbmVCb3hlcyhyZXBhaW50Q29udGFpbmVyLCBjbGlwVG9WaXNpYmxl
Q29udGVudCwgJnF1YWRzKTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJUZXh0OjpzZWxlY3Rpb25S
ZWN0Rm9yUmVwYWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBib29sIGNsaXBUb1Zpc2libGVDb250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0LmgKaW5kZXggZTIwMjA0NDNkYjhjZTU3YzYwNWYwOTUxMDlkOGVkNDUwNTM3NTQzMS4u
NWUzYzhkN2U5ZTE5YjBhOTYwNGVhMDBiM2YxNmYxZGIwMGU3NmI3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dC5oCkBAIC0xMjYsNyArMTI2LDcgQEAgcHVibGljOgogCiAgICAg
Ym9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CiAKLSAgICBMYXlvdXRSZWN0IGNvbGxlY3RTZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVz
KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xp
cFRvVmlzaWJsZUNvbnRlbnQsIFZlY3RvcjxMYXlvdXRSZWN0PiYpOworICAgIExheW91dFJlY3Qg
Y29sbGVjdFNlbGVjdGlvbkdlb21ldHJpZXNGb3JMaW5lQm94ZXMoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBjbGlwVG9WaXNpYmxlQ29udGVudCwg
VmVjdG9yPEZsb2F0UXVhZD4mKTsKIAogICAgIExheW91dFVuaXQgbWFyZ2luTGVmdCgpIGNvbnN0
IHsgcmV0dXJuIG1pbmltdW1WYWx1ZUZvckxlbmd0aChzdHlsZSgpLm1hcmdpbkxlZnQoKSwgMCk7
IH0KICAgICBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbWluaW11bVZh
bHVlRm9yTGVuZ3RoKHN0eWxlKCkubWFyZ2luUmlnaHQoKSwgMCk7IH0KQEAgLTIxNSw3ICsyMTUs
NyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZWN1cmVUZXh0KFVDaGFyIG1hc2spOwogCi0gICAg
TGF5b3V0UmVjdCBjb2xsZWN0U2VsZWN0aW9uR2VvbWV0cmllc0ZvckxpbmVCb3hlcyhjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNsaXBUb1Zpc2li
bGVDb250ZW50LCBWZWN0b3I8TGF5b3V0UmVjdD4qKTsKKyAgICBMYXlvdXRSZWN0IGNvbGxlY3RT
ZWxlY3Rpb25HZW9tZXRyaWVzRm9yTGluZUJveGVzKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQsIFZlY3RvcjxG
bG9hdFF1YWQ+Kik7CiAgICAgYm9vbCBjb21wdXRlQ2FuVXNlU2ltcGxpZmllZFRleHRNZWFzdXJp
bmcoKSBjb25zdDsKIAogICAgIHZvaWQgbm9kZSgpIGNvbnN0ID0gZGVsZXRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAppbmRleCBiZTY3ZTYw
ZTc1OTkyNGVjZmFkZGVlOTJlNmM3OWQ1MjNlNmU3ZmNiLi5kY2JkNDkxZDE2NTcwNmMwYTFkMGFi
ZWUwNGY1MmY2ZmQxYjdkZWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
U2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2Vs
ZWN0aW9uUmFuZ2VEYXRhLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHN0YXRpYyBTZWxlY3Rpb25D
b250ZXh0IGNvbGxlY3RTZWxlY3Rpb25EYXRhKGNvbnN0IFJlbmRlclJhbmdlJiBzZWxlY3Rpb24s
IGJvb2wKIFNlbGVjdGlvblJhbmdlRGF0YTo6U2VsZWN0aW9uUmFuZ2VEYXRhKFJlbmRlclZpZXcm
IHZpZXcpCiAgICAgOiBtX3JlbmRlclZpZXcodmlldykKICNpZiBFTkFCTEUoU0VSVklDRV9DT05U
Uk9MUykKLSAgICAsIG1fc2VsZWN0aW9uUmVjdEdhdGhlcmVyKHZpZXcpCisgICAgLCBtX3NlbGVj
dGlvbkdlb21ldHJ5R2F0aGVyZXIodmlldykKICNlbmRpZgogewogfQpAQCAtMTI2LDcgKzEyNiw3
IEBAIHZvaWQgU2VsZWN0aW9uUmFuZ2VEYXRhOjpzZXQoY29uc3QgUmVuZGVyUmFuZ2UmIHNlbGVj
dGlvbiwgUmVwYWludE1vZGUgYmxvY2tSZXBhCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
CiAgICAgLy8gQ2xlYXIgdGhlIGN1cnJlbnQgcmVjdHMgYW5kIGNyZWF0ZSBhIG5vdGlmaWVyIGZv
ciB0aGUgbmV3IHJlY3RzIHdlIGFyZSBhYm91dCB0byBnYXRoZXIuCiAgICAgLy8gVGhlIE5vdGlm
aWVyIHVwZGF0ZXMgdGhlIEVkaXRvciB3aGVuIGl0IGdvZXMgb3V0IG9mIHNjb3BlIGFuZCBpcyBk
ZXN0cm95ZWQuCi0gICAgYXV0byByZWN0Tm90aWZpZXIgPSBtX3NlbGVjdGlvblJlY3RHYXRoZXJl
ci5jbGVhckFuZENyZWF0ZU5vdGlmaWVyKCk7CisgICAgYXV0byBub3RpZmllciA9IG1fc2VsZWN0
aW9uR2VvbWV0cnlHYXRoZXJlci5jbGVhckFuZENyZWF0ZU5vdGlmaWVyKCk7CiAjZW5kaWYKICAg
ICBtX3NlbGVjdGlvbldhc0NhcmV0ID0gaXNDYXJldDsKICAgICBhcHBseShzZWxlY3Rpb24sIGJs
b2NrUmVwYWludE1vZGUpOwpAQCAtMjU2LDEwICsyNTYsMTAgQEAgdm9pZCBTZWxlY3Rpb25SYW5n
ZURhdGE6OmFwcGx5KGNvbnN0IFJlbmRlclJhbmdlJiBuZXdTZWxlY3Rpb24sIFJlcGFpbnRNb2Rl
IGJsb2MKICAgICAgICAgaWYgKGlzVmFsaWRSZW5kZXJlckZvclNlbGVjdGlvbigqY3VycmVudFJl
bmRlcmVyLCBtX3JlbmRlclJhbmdlKSkgewogICAgICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFJl
bmRlclNlbGVjdGlvbkluZm8+IHNlbGVjdGlvbkluZm8gPSBtYWtlVW5pcXVlPFJlbmRlclNlbGVj
dGlvbkluZm8+KCpjdXJyZW50UmVuZGVyZXIsIHRydWUpOwogI2lmIEVOQUJMRShTRVJWSUNFX0NP
TlRST0xTKQotICAgICAgICAgICAgZm9yIChhdXRvJiByZWN0IDogc2VsZWN0aW9uSW5mby0+Y29s
bGVjdGVkU2VsZWN0aW9uUmVjdHMoKSkKLSAgICAgICAgICAgICAgICBtX3NlbGVjdGlvblJlY3RH
YXRoZXJlci5hZGRSZWN0KHNlbGVjdGlvbkluZm8tPnJlcGFpbnRDb250YWluZXIoKSwgcmVjdCk7
CisgICAgICAgICAgICBmb3IgKGF1dG8mIHF1YWQgOiBzZWxlY3Rpb25JbmZvLT5jb2xsZWN0ZWRT
ZWxlY3Rpb25RdWFkcygpKQorICAgICAgICAgICAgICAgIG1fc2VsZWN0aW9uR2VvbWV0cnlHYXRo
ZXJlci5hZGRRdWFkKHNlbGVjdGlvbkluZm8tPnJlcGFpbnRDb250YWluZXIoKSwgcXVhZCk7CiAg
ICAgICAgICAgICBpZiAoIWN1cnJlbnRSZW5kZXJlci0+aXNUZXh0T3JMaW5lQnJlYWsoKSkKLSAg
ICAgICAgICAgICAgICBtX3NlbGVjdGlvblJlY3RHYXRoZXJlci5zZXRUZXh0T25seShmYWxzZSk7
CisgICAgICAgICAgICAgICAgbV9zZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLnNldFRleHRPbmx5
KGZhbHNlKTsKICNlbmRpZgogICAgICAgICAgICAgbmV3U2VsZWN0ZWRSZW5kZXJlcnMuc2V0KGN1
cnJlbnRSZW5kZXJlciwgV1RGTW92ZShzZWxlY3Rpb25JbmZvKSk7CiAgICAgICAgICAgICBhdXRv
KiBjb250YWluaW5nQmxvY2sgPSBjdXJyZW50UmVuZGVyZXItPmNvbnRhaW5pbmdCbG9jaygpOwpA
QCAtMjcwLDcgKzI3MCw3IEBAIHZvaWQgU2VsZWN0aW9uUmFuZ2VEYXRhOjphcHBseShjb25zdCBS
ZW5kZXJSYW5nZSYgbmV3U2VsZWN0aW9uLCBSZXBhaW50TW9kZSBibG9jCiAgICAgICAgICAgICAg
ICAgYmxvY2tJbmZvID0gbWFrZVVuaXF1ZTxSZW5kZXJCbG9ja1NlbGVjdGlvbkluZm8+KCpjb250
YWluaW5nQmxvY2spOwogICAgICAgICAgICAgICAgIGNvbnRhaW5pbmdCbG9jayA9IGNvbnRhaW5p
bmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCk7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMp
Ci0gICAgICAgICAgICAgICAgbV9zZWxlY3Rpb25SZWN0R2F0aGVyZXIuYWRkR2FwUmVjdHMoYmxv
Y2tJbmZvLT5yZXBhaW50Q29udGFpbmVyKCksIGJsb2NrSW5mby0+cmVjdHMoKSk7CisgICAgICAg
ICAgICAgICAgbV9zZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyLmFkZEdhcFJlY3RzKGJsb2NrSW5m
by0+cmVwYWludENvbnRhaW5lcigpLCBibG9ja0luZm8tPnJlY3RzKCkpOwogI2VuZGlmCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9TZWxlY3Rpb25SYW5nZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rp
b25SYW5nZURhdGEuaAppbmRleCAzZjEwYWZmZTk3YmE4NjA1MTE4M2E1NjcyYmMzY2M3YTY2MGRm
MGJiLi42NmI0ZGIwZmJkZWI0Y2NhYjBjNWM1OTQxN2M1ZDEyNDM4MDJiN2I5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5oCkBAIC0zMyw3ICszMyw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyU2VsZWN0aW9uSW5mby5oIgogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCi0jaW5jbHVkZSAiU2VsZWN0aW9uUmVjdEdhdGhlcmVyLmgiCisjaW5jbHVk
ZSAiU2VsZWN0aW9uR2VvbWV0cnlHYXRoZXJlci5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjb25zdCBSZW5k
ZXJWaWV3JiBtX3JlbmRlclZpZXc7CiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAg
U2VsZWN0aW9uUmVjdEdhdGhlcmVyIG1fc2VsZWN0aW9uUmVjdEdhdGhlcmVyOworICAgIFNlbGVj
dGlvbkdlb21ldHJ5R2F0aGVyZXIgbV9zZWxlY3Rpb25HZW9tZXRyeUdhdGhlcmVyOwogI2VuZGlm
CiAgICAgYm9vbCBtX3NlbGVjdGlvbldhc0NhcmV0IHsgZmFsc2UgfTsKICAgICBlbnVtIGNsYXNz
IENsaXBUb1Zpc2libGVDb250ZW50IHsgWWVzLCBObyB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4MWFjYTJmYjM5YTll
ZjViYmU5NjQ3YTYwYjdjYTBmNmU5M2ExNjAuLjAwNTRiYmVkMmE2MDA5NzZkMmZmZWJiOGFlMGYw
N2U4OWY2MTA0Y2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMS0wNS0wOSAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbbWFjT1NdIEltYWdlT3Zl
cmxheUNvbnRyb2xsZXIgc2hvdWxkIHBhaW50IHNlbGVjdGlvbiBxdWFkcyBpbnN0ZWFkIG9mIGJv
dW5kaW5nIHJlY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjU1ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc3NzI1NzQ1PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBsYXlvdXQg
dGVzdCB0byBjb3ZlciB0aGUgY2hhbmdlLiBDdXJyZW50bHksIHRoZSBiZWxvdyB0ZXN0IGNhc2Ug
cmVuZGVycyBhIHZpc2libGUgc2VsZWN0aW9uIHJlY3QgaW4KKyAgICAgICAgdGhlIGltYWdlIG92
ZXJsYXkgc2luY2Ugd2UgcmVuZGVyIHRoZSBib3VuZGluZyByZWN0IG9mIHRoZSBvdmVybGF5IHRl
eHQgcXVhZCwgd2hpY2ggaW50ZXJzZWN0cyB3aXRoIHRoZSBpbWFnZQorICAgICAgICBvdmVybGF5
J3MgYm91bmRzLiBIb3dldmVyLCB0aGUgdGV4dCBxdWFkIGlzIHBvc2l0aW9uZWQgb3V0c2lkZSBv
ZiB0aGUgaW1hZ2Ugb3ZlcmxheSwgc28gdGhlcmUgc2hvdWxkbid0IGJlIGFueQorICAgICAgICB2
aXNpYmxlIHNlbGVjdGlvbiByZWN0LiBBcyBzdWNoLCB0aGlzIHRlc3QgaXMgZXhwZWN0ZWQgdG8g
cmVuZGVyIHRoZSBzYW1lIGNvbnRlbnQgYXMgYSBwbGFpbiBpbWFnZSAoZXZlbiB3aXRob3V0Cisg
ICAgICAgIGFuIGltYWdlIG92ZXJsYXkpLgorCisgICAgICAgIFVuZm9ydHVuYXRlbHksIEkgY291
bGRuJ3Qgd3JpdGUgYSBtYXRjaGluZyByZWYtdGVzdCBmb3IgdGhlIGNhc2Ugd2hlcmUgdGhlIHNl
bGVjdGlvbiByZWN0IGlzIGluc2lkZSB0aGUgYm91bmRzCisgICAgICAgIG9mIHRoZSBpbWFnZSBv
dmVybGF5LCBzaW5jZSBkb2luZyBzbyBsZWQgdG8gdGlueSBzdWJwaXhlbCBkaWZmZXJlbmNlcyBi
ZXR3ZWVuIHRoZSB0cmFuc3BhcmVudCBpbWFnZSBjYXNlICh1c2luZworICAgICAgICBgSW1hZ2VP
dmVybGF5Q29udHJvbGxlcmApIGFuZCB0aGUgcmVndWxhciBpbWFnZSBvdmVybGF5IHNlbGVjdGlv
biBjYXNlLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2Vs
ZWN0LXJvdGF0ZWQtdHJhbnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90
YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWw6IEFkZGVkLgorCiAyMDIxLTA1LTA3
ICBMYXVybyBNb3VyYSAgPGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFRlbnRh
dGl2ZSBnYXJkZW5pbmcgb2YgY3Jhc2hlcyBhZnRlciBsYXN0IHNkayB1cGRhdGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1y
b3RhdGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3RhdGVkLXRyYW5z
cGFyZW50LWltYWdlLW92ZXJsYXktZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZTg5ODhiYjgw
OTU2ZGQ2MjQ1MzhkOTY4OGEzZGNmNDJlNDhkMTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvaW1hZ2UtZXh0cmFjdGlvbi9tYWMvc2VsZWN0LXJvdGF0ZWQtdHJh
bnNwYXJlbnQtaW1hZ2Utb3ZlcmxheS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2JvZHksIGh0bWwgeworICAg
IG1hcmdpbjogMDsKK30KKworaW1nIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9w
OiAwOworICAgIGxlZnQ6IDA7CisgICAgd2lkdGg6IDQwMHB4OworICAgIGhlaWdodDogNDAwcHg7
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2dyZWVuLTQwMHg0MDAucG5nIj48L2ltZz4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFn
ZS1leHRyYWN0aW9uL21hYy9zZWxlY3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9pbWFnZS1leHRyYWN0aW9uL21hYy9zZWxl
Y3Qtcm90YXRlZC10cmFuc3BhcmVudC1pbWFnZS1vdmVybGF5Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2I2
NzdkMjAyY2ZjMWQ4YmRlNmJhZWQxNmMxN2Y5MTI5ODE5MTJlZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2ltYWdlLWV4dHJhY3Rpb24vbWFjL3NlbGVjdC1yb3Rh
dGVkLXRyYW5zcGFyZW50LWltYWdlLW92ZXJsYXkuaHRtbApAQCAtMCwwICsxLDU2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuYmFjayB7CisgICAgYmFja2dy
b3VuZC1zaXplOiBjb250YWluOworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCguLi8uLi9yZXNv
dXJjZXMvZ3JlZW4tNDAweDQwMC5wbmcpOworfQorCisuZnJvbnQgeworICAgIG9wYWNpdHk6IDA7
Cit9CisKK2JvZHksIGh0bWwgeworICAgIG1hcmdpbjogMDsKK30KKworLmZyb250LCAuYmFjayB7
CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHRvcDogMDsKKyAgICBsZWZ0OiAwOworICAg
IHdpZHRoOiA0MDBweDsKKyAgICBoZWlnaHQ6IDQwMHB4OworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBjbGFzcz0iYmFjayI+PC9kaXY+Cis8aW1nIGNsYXNzPSJmcm9udCIgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvZ3JlZW4tNDAweDQwMC5wbmciPjwvaW1nPgorPGRpdiBjbGFzcz0i
YmFyIj48L2Rpdj4KKzxzY3JpcHQ+CithZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgKCkgPT4gewor
ICAgIGxldCBpbWFnZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpOworICAgIGludGVy
bmFscy5pbnN0YWxsSW1hZ2VPdmVybGF5KGltYWdlLCBbCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgwLjUsIDEuNSksCisgICAgICAgICAgICB0
b3BSaWdodCA6IG5ldyBET01Qb2ludFJlYWRPbmx5KDEuNSwgMC41KSwKKyAgICAgICAgICAgIGJv
dHRvbVJpZ2h0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMiwgMSksCisgICAgICAgICAgICBib3R0
b21MZWZ0IDogbmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMiksCisgICAgICAgICAgICBjaGlsZHJl
bjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdGV4dCA6ICJoZWxs
byIsCisgICAgICAgICAgICAgICAgICAgIHRvcExlZnQgOiBuZXcgRE9NUG9pbnRSZWFkT25seSgw
LjUsIDEuNSksCisgICAgICAgICAgICAgICAgICAgIHRvcFJpZ2h0IDogbmV3IERPTVBvaW50UmVh
ZE9ubHkoMS41LCAwLjUpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21SaWdodCA6IG5ldyBE
T01Qb2ludFJlYWRPbmx5KDIsIDEpLAorICAgICAgICAgICAgICAgICAgICBib3R0b21MZWZ0IDog
bmV3IERPTVBvaW50UmVhZE9ubHkoMSwgMiksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9CisgICAgXSk7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxD
aGlsZHJlbihpbnRlcm5hbHMuc2hhZG93Um9vdChpbWFnZSkucXVlcnlTZWxlY3RvcigiLmltYWdl
LW92ZXJsYXktdGV4dCIpKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>