<?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>236689</bug_id>
          
          <creation_ts>2022-02-15 21:16:45 -0800</creation_ts>
          <short_desc>Use OptionSet for TextureMapperShaderProgram::Options</short_desc>
          <delta_ts>2022-02-16 19:36:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1842122</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-02-15 21:16:45 -0800</bug_when>
    <thetext>Use OptionSet for TextureMapperShaderProgram::Options</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842124</commentid>
    <comment_count>1</comment_count>
      <attachid>452142</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-02-15 21:22:20 -0800</bug_when>
    <thetext>Created attachment 452142
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842461</commentid>
    <comment_count>2</comment_count>
      <attachid>452142</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2022-02-16 12:47:06 -0800</bug_when>
    <thetext>Comment on attachment 452142
Patch

Just looks like you missed some usages in other parts of the codebase.

r=me when the bots are green</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842570</commentid>
    <comment_count>3</comment_count>
      <attachid>452259</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-02-16 15:37:41 -0800</bug_when>
    <thetext>Created attachment 452259
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842661</commentid>
    <comment_count>4</comment_count>
      <attachid>452259</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-02-16 19:35:53 -0800</bug_when>
    <thetext>Comment on attachment 452259
Patch for landing

Clearing flags on attachment: 452259

Committed r289992 (247378@trunk): &lt;https://commits.webkit.org/247378@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842662</commentid>
    <comment_count>5</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-02-16 19:35:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1842663</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-16 19:36:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/89063445&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452142</attachid>
            <date>2022-02-15 21:22:20 -0800</date>
            <delta_ts>2022-02-16 15:37:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236689-20220216142218.patch</filename>
            <type>text/plain</type>
            <size>16905</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5ODY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE0YWU0NmMwZWM1ODI4
NGMzMmYxM2U2YWNiMWFhYTBiMTY4M2Q2OC4uYWI2YTM3ZGQxMTUwNzNiY2ZkOTFmY2YxNzk3Yjkw
YTdiYjQzYTA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIyLTAyLTE1ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFVzZSBPcHRp
b25TZXQgZm9yIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2ODkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlckdMRGF0YTo6Z2V0U2hhZGVyUHJvZ3JhbSk6CisgICAgICAgIFVzZSB1bnNpZ25lZCBmb3Ig
dGhlIEhhc2hNYXAga2V5IHNpbmNlIE9wdGlvblNldCBjYW4ndCBiZSB1c2VkIGFzIGEga2V5Lgor
ICAgICAgICAoV2ViQ29yZTo6b3B0aW9uc0ZvckZpbHRlclR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlUGxhbmFyWVVWKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVTZW1pUGxhbmFyWVVWKToKKyAgICAgICAgKFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVQYWNrZWRZVVYpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlckdMOjpkcmF3U29saWRDb2xvcik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmg6CisKIDIwMjIt
MDItMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxl
bWVudCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmdldE5vdGlmaWNhdGlvbnMoKS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAKaW5kZXggYTA2YmM3MDg5Y2JkODBkYmMyY2Y2MGY0YTAwMmQ5Y2I0Mzhj
MDhmYy4uNTNlNDI1ZWQzOWM5NGU0ZmM0MTMwNGZiOTkzOGJiN2EwZTZhY2U5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIFNo
YXJlZEdMRGF0YSgpID0gZGVmYXVsdDsKIAotICAgICAgICBIYXNoTWFwPFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtOjpPcHRpb25zLCBSZWZQdHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+
PiBtX3Byb2dyYW1zOworICAgICAgICBIYXNoTWFwPHVuc2lnbmVkLCBSZWZQdHI8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0+PiBtX3Byb2dyYW1zOwogICAgIH07CiAKICAgICBSZWY8U2hhcmVk
R0xEYXRhPiBtX3NoYXJlZEdMRGF0YTsKQEAgLTE3Miw3ICsxNzIsOCBAQCBHTHVpbnQgVGV4dHVy
ZU1hcHBlckdMRGF0YTo6Z2V0VkFPKCkKIAogUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
PiBUZXh0dXJlTWFwcGVyR0xEYXRhOjpnZXRTaGFkZXJQcm9ncmFtKFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpPcHRpb25zIG9wdGlvbnMpCiB7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX3No
YXJlZEdMRGF0YS0+bV9wcm9ncmFtcy5lbnN1cmUob3B0aW9ucywKKyAgICBBU1NFUlQoIW9wdGlv
bnMuaXNFbXB0eSgpKTsKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fc2hhcmVkR0xEYXRhLT5tX3By
b2dyYW1zLmVuc3VyZShvcHRpb25zLnRvUmF3KCksCiAgICAgICAgIFtvcHRpb25zXSB7IHJldHVy
biBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Y3JlYXRlKG9wdGlvbnMpOyB9KTsKICAgICBy
ZXR1cm4gKmFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CiB9CkBAIC0zMTMsMjkgKzMxNCwzMCBA
QCBzdGF0aWMgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0aW9uc0ZvckZp
bHRlclR5cGUoRmlsdGVyT3BlcmF0aW9uOgogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNh
c2UgRmlsdGVyT3BlcmF0aW9uOjpHUkFZU0NBTEU6Ci0gICAgICAgIHJldHVybiBUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVJHQiB8IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
OjpHcmF5c2NhbGVGaWx0ZXI7CisgICAgICAgIHJldHVybiB7IFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpUZXh0dXJlUkdCLCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6R3JheXNjYWxl
RmlsdGVyIH07CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OlNFUElBOgotICAgICAgICByZXR1
cm4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0IgfCBUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbTo6U2VwaWFGaWx0ZXI7CisgICAgICAgIHJldHVybiB7IFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCLCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6
U2VwaWFGaWx0ZXIgfTsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6U0FUVVJBVEU6Ci0gICAg
ICAgIHJldHVybiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVJHQiB8IFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpTYXR1cmF0ZUZpbHRlcjsKKyAgICAgICAgcmV0dXJuIHsg
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0IsIFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpTYXR1cmF0ZUZpbHRlciB9OwogICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpI
VUVfUk9UQVRFOgotICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRl
eHR1cmVSR0IgfCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6SHVlUm90YXRlRmlsdGVyOwor
ICAgICAgICByZXR1cm4geyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVJHQiwg
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Okh1ZVJvdGF0ZUZpbHRlciB9OwogICAgIGNhc2Ug
RmlsdGVyT3BlcmF0aW9uOjpJTlZFUlQ6Ci0gICAgICAgIHJldHVybiBUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbTo6VGV4dHVyZVJHQiB8IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpJbnZl
cnRGaWx0ZXI7CisgICAgICAgIHJldHVybiB7IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpU
ZXh0dXJlUkdCLCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6SW52ZXJ0RmlsdGVyIH07CiAg
ICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkJSSUdIVE5FU1M6Ci0gICAgICAgIHJldHVybiBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVJHQiB8IFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpCcmlnaHRuZXNzRmlsdGVyOworICAgICAgICByZXR1cm4geyBUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVJHQiwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkJy
aWdodG5lc3NGaWx0ZXIgfTsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6Q09OVFJBU1Q6Ci0g
ICAgICAgIHJldHVybiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVJHQiB8IFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpDb250cmFzdEZpbHRlcjsKKyAgICAgICAgcmV0dXJu
IHsgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0IsIFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtOjpDb250cmFzdEZpbHRlciB9OwogICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9u
OjpPUEFDSVRZOgotICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRl
eHR1cmVSR0IgfCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3BhY2l0eUZpbHRlcjsKKyAg
ICAgICAgcmV0dXJuIHsgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0IsIFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcGFjaXR5RmlsdGVyIH07CiAgICAgY2FzZSBGaWx0
ZXJPcGVyYXRpb246OkJMVVI6Ci0gICAgICAgIHJldHVybiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6Qmx1ckZpbHRlcjsKKyAgICAgICAgcmV0dXJuIHsgVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06OkJsdXJGaWx0ZXIgfTsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6RFJPUF9TSEFE
T1c6Ci0gICAgICAgIHJldHVybiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6QWxwaGFCbHVy
Ci0gICAgICAgICAgICB8IChwYXNzID8gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkNvbnRl
bnRUZXh0dXJlIHwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlNvbGlkQ29sb3I6IDApOwor
ICAgICAgICBpZiAoIXBhc3MpCisgICAgICAgICAgICByZXR1cm4geyBUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbTo6QWxwaGFCbHVyIH07CisgICAgICAgIHJldHVybiB7IFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtOjpBbHBoYUJsdXIsIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpDb250
ZW50VGV4dHVyZSwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlNvbGlkQ29sb3IgfTsKICAg
ICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogfQogCkBAIC00NzIsMTcgKzQ3NCwxNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmUoR0x1aW50IHRleHR1cmUsIEZsYWdz
IGZsYWdzLCBjb25zdCBJbnRTaXplJiB0ZQogICAgICAgICAmJiBleHBvc2VkRWRnZXMgPT0gQWxs
RWRnZXMKICAgICAgICAgJiYgIW1vZGVsVmlld01hdHJpeC5tYXBRdWFkKHRhcmdldFJlY3QpLmlz
UmVjdGlsaW5lYXIoKTsKIAotICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25z
IG9wdGlvbnMgPSAwOworICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zIG9w
dGlvbnM7CiAgICAgaWYgKHVzZVJlY3QpCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW06OlJlY3Q7CisgICAgICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtOjpSZWN0KTsKICAgICBpZiAob3BhY2l0eSA8IDEpCi0gICAgICAgIG9wdGlv
bnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wYWNpdHk7CisgICAgICAgIG9wdGlv
bnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcGFjaXR5KTsKICAgICBpZiAodXNl
QW50aWFsaWFzaW5nKSB7Ci0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06OkFudGlhbGlhc2luZzsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW06OkFudGlhbGlhc2luZyk7CiAgICAgICAgIGZsYWdzIHw9IFNob3VsZEFudGlh
bGlhczsKICAgICB9CiAgICAgaWYgKHdyYXBNb2RlKCkgPT0gUmVwZWF0V3JhcCAmJiAhbV9jb250
ZXh0QXR0cmlidXRlcy5zdXBwb3J0c05QT1RUZXh0dXJlcykKLSAgICAgICAgb3B0aW9ucyB8PSBU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6TWFudWFsUmVwZWF0OworICAgICAgICBvcHRpb25z
LmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6TWFudWFsUmVwZWF0KTsKIAogICAgIFJl
ZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZpbHRlciA9IGRhdGEoKS5maWx0ZXJJbmZvID8gZGF0YSgp
LmZpbHRlckluZm8tPmZpbHRlcjogbnVsbHB0cjsKICAgICBHTHVpbnQgZmlsdGVyQ29udGVudFRl
eHR1cmVJRCA9IDA7CkBAIC00OTAsMjIgKzQ5MiwyMiBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6
ZHJhd1RleHR1cmUoR0x1aW50IHRleHR1cmUsIEZsYWdzIGZsYWdzLCBjb25zdCBJbnRTaXplJiB0
ZQogICAgIGlmIChmaWx0ZXIpIHsKICAgICAgICAgaWYgKGRhdGEoKS5maWx0ZXJJbmZvLT5jb250
ZW50VGV4dHVyZSkKICAgICAgICAgICAgIGZpbHRlckNvbnRlbnRUZXh0dXJlSUQgPSB0b0JpdG1h
cFRleHR1cmVHTChkYXRhKCkuZmlsdGVySW5mby0+Y29udGVudFRleHR1cmUuZ2V0KCkpLT5pZCgp
OwotICAgICAgICBvcHRpb25zIHw9IG9wdGlvbnNGb3JGaWx0ZXJUeXBlKGZpbHRlci0+dHlwZSgp
LCBkYXRhKCkuZmlsdGVySW5mby0+cGFzcyk7CisgICAgICAgIG9wdGlvbnMuYWRkKG9wdGlvbnNG
b3JGaWx0ZXJUeXBlKGZpbHRlci0+dHlwZSgpLCBkYXRhKCkuZmlsdGVySW5mby0+cGFzcykpOwog
ICAgICAgICBpZiAoZmlsdGVyLT5hZmZlY3RzT3BhY2l0eSgpKQogICAgICAgICAgICAgZmxhZ3Mg
fD0gU2hvdWxkQmxlbmQ7CiAgICAgfSBlbHNlCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0I7CisgICAgICAgIG9wdGlvbnMuYWRkKFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCKTsKIAogICAgIGlmICh1c2VBbnRpYWxp
YXNpbmcgfHwgb3BhY2l0eSA8IDEpCiAgICAgICAgIGZsYWdzIHw9IFNob3VsZEJsZW5kOwogCiAg
ICAgaWYgKGNsaXBTdGFjaygpLmlzUm91bmRlZFJlY3RDbGlwRW5hYmxlZCgpKSB7Ci0gICAgICAg
IG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlJvdW5kZWRSZWN0Q2xpcDsK
KyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlJvdW5kZWRS
ZWN0Q2xpcCk7CiAgICAgICAgIGZsYWdzIHw9IFNob3VsZEJsZW5kOwogICAgIH0KIAogICAgIGlm
IChmbGFncyAmIFNob3VsZFByZW11bHRpcGx5KQotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtOjpQcmVtdWx0aXBseTsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlByZW11bHRpcGx5KTsKIAogICAgIFJlZjxUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbSA9IGRhdGEoKS5nZXRTaGFkZXJQcm9ncmFtKG9w
dGlvbnMpOwogCkBAIC01NDksMTUgKzU1MSwxNSBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJh
d1RleHR1cmVQbGFuYXJZVVYoY29uc3Qgc3RkOjphcnJheTxHTHVpbnQsIDM+JiB0ZXh0dXJlcwog
CiAgICAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucyA9IGFscGhh
UGxhbmUgPyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVlVVkEgOiBUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVlVVjsKICAgICBpZiAodXNlUmVjdCkKLSAgICAg
ICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UmVjdDsKKyAgICAgICAg
b3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlJlY3QpOwogICAgIGlmIChv
cGFjaXR5IDwgMSkKLSAgICAgICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bTo6T3BhY2l0eTsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW06Ok9wYWNpdHkpOwogICAgIGlmICh1c2VBbnRpYWxpYXNpbmcpIHsKLSAgICAgICAgb3B0aW9u
cyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6QW50aWFsaWFzaW5nOworICAgICAgICBv
cHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6QW50aWFsaWFzaW5nKTsKICAg
ICAgICAgZmxhZ3MgfD0gU2hvdWxkQW50aWFsaWFzOwogICAgIH0KICAgICBpZiAod3JhcE1vZGUo
KSA9PSBSZXBlYXRXcmFwICYmICFtX2NvbnRleHRBdHRyaWJ1dGVzLnN1cHBvcnRzTlBPVFRleHR1
cmVzKQotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpNYW51
YWxSZXBlYXQ7CisgICAgICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
OjpNYW51YWxSZXBlYXQpOwogCiAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gZmlsdGVyID0g
ZGF0YSgpLmZpbHRlckluZm8gPyBkYXRhKCkuZmlsdGVySW5mby0+ZmlsdGVyOiBudWxscHRyOwog
ICAgIEdMdWludCBmaWx0ZXJDb250ZW50VGV4dHVyZUlEID0gMDsKQEAgLTU2NSw3ICs1NjcsNyBA
QCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1cmVQbGFuYXJZVVYoY29uc3Qgc3RkOjph
cnJheTxHTHVpbnQsIDM+JiB0ZXh0dXJlcwogICAgIGlmIChmaWx0ZXIpIHsKICAgICAgICAgaWYg
KGRhdGEoKS5maWx0ZXJJbmZvLT5jb250ZW50VGV4dHVyZSkKICAgICAgICAgICAgIGZpbHRlckNv
bnRlbnRUZXh0dXJlSUQgPSB0b0JpdG1hcFRleHR1cmVHTChkYXRhKCkuZmlsdGVySW5mby0+Y29u
dGVudFRleHR1cmUuZ2V0KCkpLT5pZCgpOwotICAgICAgICBvcHRpb25zIHw9IG9wdGlvbnNGb3JG
aWx0ZXJUeXBlKGZpbHRlci0+dHlwZSgpLCBkYXRhKCkuZmlsdGVySW5mby0+cGFzcyk7CisgICAg
ICAgIG9wdGlvbnMuYWRkKG9wdGlvbnNGb3JGaWx0ZXJUeXBlKGZpbHRlci0+dHlwZSgpLCBkYXRh
KCkuZmlsdGVySW5mby0+cGFzcykpOwogICAgICAgICBpZiAoZmlsdGVyLT5hZmZlY3RzT3BhY2l0
eSgpKQogICAgICAgICAgICAgZmxhZ3MgfD0gU2hvdWxkQmxlbmQ7CiAgICAgfQpAQCAtNTc0LDEy
ICs1NzYsMTIgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlUGxhbmFyWVVWKGNv
bnN0IHN0ZDo6YXJyYXk8R0x1aW50LCAzPiYgdGV4dHVyZXMKICAgICAgICAgZmxhZ3MgfD0gU2hv
dWxkQmxlbmQ7CiAKICAgICBpZiAoY2xpcFN0YWNrKCkuaXNSb3VuZGVkUmVjdENsaXBFbmFibGVk
KCkpIHsKLSAgICAgICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Um91
bmRlZFJlY3RDbGlwOworICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6Um91bmRlZFJlY3RDbGlwKTsKICAgICAgICAgZmxhZ3MgfD0gU2hvdWxkQmxlbmQ7CiAg
ICAgfQogCiAgICAgaWYgKGZsYWdzICYgU2hvdWxkUHJlbXVsdGlwbHkpCi0gICAgICAgIG9wdGlv
bnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlByZW11bHRpcGx5OworICAgICAgICBv
cHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UHJlbXVsdGlwbHkpOwogCiAg
ICAgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtID0gZGF0YSgpLmdldFNo
YWRlclByb2dyYW0ob3B0aW9ucyk7CiAKQEAgLTYxMywxNSArNjE1LDE1IEBAIHZvaWQgVGV4dHVy
ZU1hcHBlckdMOjpkcmF3VGV4dHVyZVNlbWlQbGFuYXJZVVYoY29uc3Qgc3RkOjphcnJheTxHTHVp
bnQsIDI+JiB0ZXh0CiAgICAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0
aW9ucyA9IHV2UmV2ZXJzZWQgPwogICAgICAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6
VGV4dHVyZU5WMjEgOiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZU5WMTI7CiAg
ICAgaWYgKHVzZVJlY3QpCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06OlJlY3Q7CisgICAgICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtOjpSZWN0KTsKICAgICBpZiAob3BhY2l0eSA8IDEpCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wYWNpdHk7CisgICAgICAgIG9wdGlvbnMuYWRkKFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcGFjaXR5KTsKICAgICBpZiAodXNlQW50aWFsaWFz
aW5nKSB7Ci0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkFu
dGlhbGlhc2luZzsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW06OkFudGlhbGlhc2luZyk7CiAgICAgICAgIGZsYWdzIHw9IFNob3VsZEFudGlhbGlhczsKICAg
ICB9CiAgICAgaWYgKHdyYXBNb2RlKCkgPT0gUmVwZWF0V3JhcCAmJiAhbV9jb250ZXh0QXR0cmli
dXRlcy5zdXBwb3J0c05QT1RUZXh0dXJlcykKLSAgICAgICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbTo6TWFudWFsUmVwZWF0OworICAgICAgICBvcHRpb25zLmFkZChUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6TWFudWFsUmVwZWF0KTsKIAogICAgIFJlZlB0cjxGaWx0
ZXJPcGVyYXRpb24+IGZpbHRlciA9IGRhdGEoKS5maWx0ZXJJbmZvID8gZGF0YSgpLmZpbHRlcklu
Zm8tPmZpbHRlcjogbnVsbHB0cjsKICAgICBHTHVpbnQgZmlsdGVyQ29udGVudFRleHR1cmVJRCA9
IDA7CkBAIC02MjksNyArNjMxLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJl
U2VtaVBsYW5hcllVVihjb25zdCBzdGQ6OmFycmF5PEdMdWludCwgMj4mIHRleHQKICAgICBpZiAo
ZmlsdGVyKSB7CiAgICAgICAgIGlmIChkYXRhKCkuZmlsdGVySW5mby0+Y29udGVudFRleHR1cmUp
CiAgICAgICAgICAgICBmaWx0ZXJDb250ZW50VGV4dHVyZUlEID0gdG9CaXRtYXBUZXh0dXJlR0wo
ZGF0YSgpLmZpbHRlckluZm8tPmNvbnRlbnRUZXh0dXJlLmdldCgpKS0+aWQoKTsKLSAgICAgICAg
b3B0aW9ucyB8PSBvcHRpb25zRm9yRmlsdGVyVHlwZShmaWx0ZXItPnR5cGUoKSwgZGF0YSgpLmZp
bHRlckluZm8tPnBhc3MpOworICAgICAgICBvcHRpb25zLmFkZChvcHRpb25zRm9yRmlsdGVyVHlw
ZShmaWx0ZXItPnR5cGUoKSwgZGF0YSgpLmZpbHRlckluZm8tPnBhc3MpKTsKICAgICAgICAgaWYg
KGZpbHRlci0+YWZmZWN0c09wYWNpdHkoKSkKICAgICAgICAgICAgIGZsYWdzIHw9IFNob3VsZEJs
ZW5kOwogICAgIH0KQEAgLTYzOCw3ICs2NDAsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJh
d1RleHR1cmVTZW1pUGxhbmFyWVVWKGNvbnN0IHN0ZDo6YXJyYXk8R0x1aW50LCAyPiYgdGV4dAog
ICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKIAogICAgIGlmIChjbGlwU3RhY2soKS5pc1Jv
dW5kZWRSZWN0Q2xpcEVuYWJsZWQoKSkgewotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpSb3VuZGVkUmVjdENsaXA7CisgICAgICAgIG9wdGlvbnMuYWRkKFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSb3VuZGVkUmVjdENsaXApOwogICAgICAgICBmbGFn
cyB8PSBTaG91bGRCbGVuZDsKICAgICB9CiAKQEAgLTY2OSwxNSArNjcxLDE1IEBAIHZvaWQgVGV4
dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZVBhY2tlZFlVVihHTHVpbnQgdGV4dHVyZSwgY29uc3Qg
c3RkOjphcnJheTxHTGZsCiAKICAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3B0aW9u
cyBvcHRpb25zID0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVQYWNrZWRZVVY7
CiAgICAgaWYgKHVzZVJlY3QpCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06OlJlY3Q7CisgICAgICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpSZWN0KTsKICAgICBpZiAob3BhY2l0eSA8IDEpCi0gICAgICAgIG9wdGlvbnMgfD0g
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wYWNpdHk7CisgICAgICAgIG9wdGlvbnMuYWRk
KFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcGFjaXR5KTsKICAgICBpZiAodXNlQW50aWFs
aWFzaW5nKSB7Ci0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06
OkFudGlhbGlhc2luZzsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06OkFudGlhbGlhc2luZyk7CiAgICAgICAgIGZsYWdzIHw9IFNob3VsZEFudGlhbGlhczsK
ICAgICB9CiAgICAgaWYgKHdyYXBNb2RlKCkgPT0gUmVwZWF0V3JhcCAmJiAhbV9jb250ZXh0QXR0
cmlidXRlcy5zdXBwb3J0c05QT1RUZXh0dXJlcykKLSAgICAgICAgb3B0aW9ucyB8PSBUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbTo6TWFudWFsUmVwZWF0OworICAgICAgICBvcHRpb25zLmFkZChU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6TWFudWFsUmVwZWF0KTsKIAogICAgIFJlZlB0cjxG
aWx0ZXJPcGVyYXRpb24+IGZpbHRlciA9IGRhdGEoKS5maWx0ZXJJbmZvID8gZGF0YSgpLmZpbHRl
ckluZm8tPmZpbHRlcjogbnVsbHB0cjsKICAgICBHTHVpbnQgZmlsdGVyQ29udGVudFRleHR1cmVJ
RCA9IDA7CkBAIC02ODUsNyArNjg3LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0
dXJlUGFja2VkWVVWKEdMdWludCB0ZXh0dXJlLCBjb25zdCBzdGQ6OmFycmF5PEdMZmwKICAgICBp
ZiAoZmlsdGVyKSB7CiAgICAgICAgIGlmIChkYXRhKCkuZmlsdGVySW5mby0+Y29udGVudFRleHR1
cmUpCiAgICAgICAgICAgICBmaWx0ZXJDb250ZW50VGV4dHVyZUlEID0gdG9CaXRtYXBUZXh0dXJl
R0woZGF0YSgpLmZpbHRlckluZm8tPmNvbnRlbnRUZXh0dXJlLmdldCgpKS0+aWQoKTsKLSAgICAg
ICAgb3B0aW9ucyB8PSBvcHRpb25zRm9yRmlsdGVyVHlwZShmaWx0ZXItPnR5cGUoKSwgZGF0YSgp
LmZpbHRlckluZm8tPnBhc3MpOworICAgICAgICBvcHRpb25zLmFkZChvcHRpb25zRm9yRmlsdGVy
VHlwZShmaWx0ZXItPnR5cGUoKSwgZGF0YSgpLmZpbHRlckluZm8tPnBhc3MpKTsKICAgICAgICAg
aWYgKGZpbHRlci0+YWZmZWN0c09wYWNpdHkoKSkKICAgICAgICAgICAgIGZsYWdzIHw9IFNob3Vs
ZEJsZW5kOwogICAgIH0KQEAgLTY5NCw3ICs2OTYsNyBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6
ZHJhd1RleHR1cmVQYWNrZWRZVVYoR0x1aW50IHRleHR1cmUsIGNvbnN0IHN0ZDo6YXJyYXk8R0xm
bAogICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKIAogICAgIGlmIChjbGlwU3RhY2soKS5p
c1JvdW5kZWRSZWN0Q2xpcEVuYWJsZWQoKSkgewotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtOjpSb3VuZGVkUmVjdENsaXA7CisgICAgICAgIG9wdGlvbnMuYWRk
KFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSb3VuZGVkUmVjdENsaXApOwogICAgICAgICBm
bGFncyB8PSBTaG91bGRCbGVuZDsKICAgICB9CiAKQEAgLTcyMCwxMiArNzIyLDEyIEBAIHZvaWQg
VGV4dHVyZU1hcHBlckdMOjpkcmF3U29saWRDb2xvcihjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNv
bnN0IFRyYW5zZm9ybWF0aW9uCiAgICAgRmxhZ3MgZmxhZ3MgPSAwOwogICAgIFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zIG9wdGlvbnMgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6U29saWRDb2xvcjsKICAgICBpZiAoIW1hdHJpeC5tYXBRdWFkKHJlY3QpLmlzUmVjdGls
aW5lYXIoKSkgewotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
OjpBbnRpYWxpYXNpbmc7CisgICAgICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpBbnRpYWxpYXNpbmcpOwogICAgICAgICBmbGFncyB8PSBTaG91bGRBbnRpYWxpYXMg
fCAoaXNCbGVuZGluZ0FsbG93ZWQgPyBTaG91bGRCbGVuZCA6IDApOwogICAgIH0KIAogICAgIGlm
IChjbGlwU3RhY2soKS5pc1JvdW5kZWRSZWN0Q2xpcEVuYWJsZWQoKSkgewotICAgICAgICBvcHRp
b25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSb3VuZGVkUmVjdENsaXA7CisgICAg
ICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSb3VuZGVkUmVjdENs
aXApOwogICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKaW5kZXggNmVkZjM5Zjg0ZGVkNzZmZTQwYWNkYzZm
YzJjMzQ1ZWVkODQ1ZTJkMi4uYWEwNzBiMTc0ODlmMGFlMzM2NzljZWExYWMzZGU1ZDZiZjA5OTk5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtLmgKQEAgLTI3LDYgKzI3
LDcgQEAKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3Rm
L09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9tU3RyaW5nSGFzaC5oPgogCkBAIC0xMTIsNyArMTEzLDcgQEAgcHVibGljOgogICAgICAgICBU
RVhNQVBfVkFSSUFCTEVTKFRFWE1BUF9ERUNMQVJFX1ZBUklBQkxFX0VOVU0pCiAgICAgfTsKIAot
ICAgIHR5cGVkZWYgdW5zaWduZWQgT3B0aW9uczsKKyAgICB1c2luZyBPcHRpb25zID0gT3B0aW9u
U2V0PE9wdGlvbj47CiAKICAgICBzdGF0aWMgUmVmPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
PiBjcmVhdGUoT3B0aW9ucyk7CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW0oKTsKQEAgLTEzOSw3ICsxNDAsNDMgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFZhcmlhYmxl
SUQsIEdMdWludCwgSW50SGFzaDxWYXJpYWJsZUlEPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0
czxWYXJpYWJsZUlEPj4gbV92YXJpYWJsZXM7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb24+IHsKKyAgICB1c2luZyB2
YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbTo6T3B0aW9uLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6VGV4dHVyZVJHQiwKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06OlJlY3QsCisgICAgICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
OjpTb2xpZENvbG9yLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bTo6T3BhY2l0eSwKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06
OkFudGlhbGlhc2luZywKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW06OkdyYXlzY2FsZUZpbHRlciwKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06OlNlcGlhRmlsdGVyLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbTo6U2F0dXJhdGVGaWx0ZXIsCisgICAgICAgIFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpIdWVSb3RhdGVGaWx0ZXIsCisgICAgICAgIFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpCcmlnaHRuZXNzRmlsdGVyLAorICAgICAgICBXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Q29udHJhc3RGaWx0ZXIsCisgICAgICAgIFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpJbnZlcnRGaWx0ZXIsCisgICAgICAg
IFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcGFjaXR5RmlsdGVyLAorICAg
ICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Qmx1ckZpbHRlciwKKyAg
ICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkFscGhhQmx1ciwKKyAg
ICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkNvbnRlbnRUZXh0dXJl
LAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6TWFudWFsUmVw
ZWF0LAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVy
ZVlVViwKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1
cmVOVjEyLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4
dHVyZU5WMjEsCisgICAgICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpU
ZXh0dXJlUGFja2VkWVVWLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6VGV4dHVyZUV4dGVybmFsT0VTLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbTo6Um91bmRlZFJlY3RDbGlwLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbTo6UHJlbXVsdGlwbHksCisgICAgICAgIFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlWVVWQQorICAgID47Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXVEYKKwogI2VuZGlmIC8vIFVTRShURVhUVVJFX01BUFBFUl9HTCkKIAogI2VuZGlm
IC8vIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452259</attachid>
            <date>2022-02-16 15:37:41 -0800</date>
            <delta_ts>2022-02-16 15:37:41 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-236689-20220217083739.patch</filename>
            <type>text/plain</type>
            <size>19510</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5OTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI0NGViMTJiODMxZjBi
NWRjMmQ1MTM1MzY3ODM5ZDgwNmM5NDE0ZC4uMTBiYWQxNzY0ODMzZDk4OGZhY2E1NGRkMDAzZDY1
YTI2ZjJkNmU0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTAyLTE2ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFVzZSBPcHRp
b25TZXQgZm9yIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzY2ODkKKworICAgICAgICBS
ZXZpZXdlZCBieSBEb24gT2xtc3RlYWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lcjo6Y29weVZpZGVvVGV4dHVyZVRvUGxhdGZv
cm1UZXh0dXJlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9U
ZXh0dXJlQ29waWVyR1N0cmVhbWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
R0xEYXRhOjpnZXRTaGFkZXJQcm9ncmFtKToKKyAgICAgICAgVXNlIHVuc2lnbmVkIGZvciB0aGUg
SGFzaE1hcCBrZXkgc2luY2UgT3B0aW9uU2V0IGNhbid0IGJlIHVzZWQgYXMgYSBrZXkuCisgICAg
ICAgIChXZWJDb3JlOjpvcHRpb25zRm9yRmlsdGVyVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJHTDo6ZHJhd1RleHR1cmVQbGFuYXJZVVYpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlckdMOjpkcmF3VGV4dHVyZVNlbWlQbGFuYXJZVVYpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZVBhY2tlZFlVVik6CisgICAgICAgIChXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdTb2xpZENvbG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaDoKKwogMjAyMi0wMi0x
NiAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCBub24tdW5pZmllZCBidWlsZCBmaXggYWZ0ZXIgcjI4OTc0MgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvVGV4dHVyZUNvcGllckdT
dHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
VmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcAppbmRleCBjODYxN2Q1OGQzNzM2MjI0MTc3
N2Y0MzA2MGVmYzQwODA1YTU1OWU1Li5iMzMwNjZmNzllYThmYTA0MjM4NjQ4ODZjNTc0ODEzZWJj
MGViZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0cmVhbWVy
LmNwcApAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUg
IkdMQ29udGV4dC5oIgogI2luY2x1ZGUgIkltYWdlT3JpZW50YXRpb24uaCIKLSNpbmNsdWRlICJU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTE2MSw3ICsxNjAsMTEgQEAgYm9vbCBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXI6OmNvcHlW
aWRlb1RleHR1cmVUb1BsYXRmb3JtVGV4dHVyZShUZXh0dXJlTWFwcGUKICAgICB1c2luZyBCdWZm
ZXIgPSBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllckJ1ZmZlcjsKICAgICBUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbTo6T3B0aW9ucyBvcHRpb25zOwogICAgIFdURjo6c3dpdGNoT24oaW5wdXRU
ZXh0dXJlLnRleHR1cmVWYXJpYW50KCksCi0gICAgICAgIFsmXShjb25zdCBCdWZmZXI6OlJHQlRl
eHR1cmUmKSB7IG9wdGlvbnMgPSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVJH
QiB8IChwcmVtdWx0aXBseUFscGhhID8gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlByZW11
bHRpcGx5IDogMCk7IH0sCisgICAgICAgIFsmXShjb25zdCBCdWZmZXI6OlJHQlRleHR1cmUmKSB7
CisgICAgICAgICAgICBvcHRpb25zID0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1
cmVSR0I7CisgICAgICAgICAgICBpZiAocHJlbXVsdGlwbHlBbHBoYSkKKyAgICAgICAgICAgICAg
ICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UHJlbXVsdGlwbHkpOwor
ICAgICAgICB9LAogICAgICAgICBbJl0oY29uc3QgQnVmZmVyOjpZVVZUZXh0dXJlJiB0ZXh0dXJl
KSB7CiAgICAgICAgICAgICBzd2l0Y2ggKHRleHR1cmUubnVtYmVyT2ZQbGFuZXMpIHsKICAgICAg
ICAgICAgIGNhc2UgMToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9WaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFt
ZXIuaAppbmRleCBlYWJhOTViMjYxZjcwYWRlNjdkNjliNWE2NTU2NDNiMDVkMzFiN2E2Li42MmQx
NmUxY2JlOWQyZWFhZGIzN2E3MjExZmFlOWE5YmFkNjlkOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9UZXh0dXJlQ29waWVyR1N0
cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L1ZpZGVvVGV4dHVyZUNvcGllckdTdHJlYW1lci5oCkBAIC0yNSwxMiArMjUsMTIgQEAKICNpbmNs
dWRlICJJbWFnZU9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlckdMSGVhZGVy
cy5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyQnVmZmVyLmgiCisjaW5j
bHVkZSAiVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCIKICNpbmNsdWRlICJUcmFuc2Zvcm1h
dGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTsKIHN0cnVjdCBJbWFnZU9y
aWVudGF0aW9uOwogCiBjbGFzcyBWaWRlb1RleHR1cmVDb3BpZXJHU3RyZWFtZXIgewpAQCAtNTMs
NyArNTMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtPiBtX3NoYWRlclByb2dyYW07Ci0gICAgdW5zaWduZWQgbV9zaGFkZXJPcHRp
b25zIHsgMCB9OworICAgIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zIG1fc2hh
ZGVyT3B0aW9uczsKICAgICBHTHVpbnQgbV9mcmFtZWJ1ZmZlciB7IDAgfTsKICAgICBHTHVpbnQg
bV92Ym8geyAwIH07CiAjaWYgIVVTRShPUEVOR0xfRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCmlu
ZGV4IGEwNmJjNzA4OWNiZDgwZGJjMmNmNjBmNGEwMDJkOWNiNDM4YzA4ZmMuLjUzZTQyNWVkMzlj
OTRlNGZjNDEzMDRmYjk5MzhiYjdhMGU2YWNlOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBA
IC0xMDgsNyArMTA4LDcgQEAgcHJpdmF0ZToKIAogICAgICAgICBTaGFyZWRHTERhdGEoKSA9IGRl
ZmF1bHQ7CiAKLSAgICAgICAgSGFzaE1hcDxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3B0
aW9ucywgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPj4gbV9wcm9ncmFtczsKKyAg
ICAgICAgSGFzaE1hcDx1bnNpZ25lZCwgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
Pj4gbV9wcm9ncmFtczsKICAgICB9OwogCiAgICAgUmVmPFNoYXJlZEdMRGF0YT4gbV9zaGFyZWRH
TERhdGE7CkBAIC0xNzIsNyArMTcyLDggQEAgR0x1aW50IFRleHR1cmVNYXBwZXJHTERhdGE6Omdl
dFZBTygpCiAKIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gVGV4dHVyZU1hcHBlckdM
RGF0YTo6Z2V0U2hhZGVyUHJvZ3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3B0aW9u
cyBvcHRpb25zKQogewotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9zaGFyZWRHTERhdGEtPm1fcHJv
Z3JhbXMuZW5zdXJlKG9wdGlvbnMsCisgICAgQVNTRVJUKCFvcHRpb25zLmlzRW1wdHkoKSk7Cisg
ICAgYXV0byBhZGRSZXN1bHQgPSBtX3NoYXJlZEdMRGF0YS0+bV9wcm9ncmFtcy5lbnN1cmUob3B0
aW9ucy50b1JhdygpLAogICAgICAgICBbb3B0aW9uc10geyByZXR1cm4gVGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW06OmNyZWF0ZShvcHRpb25zKTsgfSk7CiAgICAgcmV0dXJuICphZGRSZXN1bHQu
aXRlcmF0b3ItPnZhbHVlOwogfQpAQCAtMzEzLDI5ICszMTQsMzAgQEAgc3RhdGljIFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zIG9wdGlvbnNGb3JGaWx0ZXJUeXBlKEZpbHRlck9w
ZXJhdGlvbjoKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlv
bjo6R1JBWVNDQUxFOgotICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06
OlRleHR1cmVSR0IgfCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6R3JheXNjYWxlRmlsdGVy
OworICAgICAgICByZXR1cm4geyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVJH
QiwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkdyYXlzY2FsZUZpbHRlciB9OwogICAgIGNh
c2UgRmlsdGVyT3BlcmF0aW9uOjpTRVBJQToKLSAgICAgICAgcmV0dXJuIFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCIHwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlNl
cGlhRmlsdGVyOworICAgICAgICByZXR1cm4geyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6
VGV4dHVyZVJHQiwgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlNlcGlhRmlsdGVyIH07CiAg
ICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OlNBVFVSQVRFOgotICAgICAgICByZXR1cm4gVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0IgfCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6U2F0dXJhdGVGaWx0ZXI7CisgICAgICAgIHJldHVybiB7IFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpUZXh0dXJlUkdCLCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6U2F0dXJh
dGVGaWx0ZXIgfTsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6SFVFX1JPVEFURToKLSAgICAg
ICAgcmV0dXJuIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCIHwgVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW06Okh1ZVJvdGF0ZUZpbHRlcjsKKyAgICAgICAgcmV0dXJuIHsg
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0IsIFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpIdWVSb3RhdGVGaWx0ZXIgfTsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6
SU5WRVJUOgotICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1
cmVSR0IgfCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6SW52ZXJ0RmlsdGVyOworICAgICAg
ICByZXR1cm4geyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVJHQiwgVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW06OkludmVydEZpbHRlciB9OwogICAgIGNhc2UgRmlsdGVyT3Bl
cmF0aW9uOjpCUklHSFRORVNTOgotICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06OlRleHR1cmVSR0IgfCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6QnJpZ2h0bmVz
c0ZpbHRlcjsKKyAgICAgICAgcmV0dXJuIHsgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRl
eHR1cmVSR0IsIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpCcmlnaHRuZXNzRmlsdGVyIH07
CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkNPTlRSQVNUOgotICAgICAgICByZXR1cm4gVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0IgfCBUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbTo6Q29udHJhc3RGaWx0ZXI7CisgICAgICAgIHJldHVybiB7IFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCLCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Q29u
dHJhc3RGaWx0ZXIgfTsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6T1BBQ0lUWToKLSAgICAg
ICAgcmV0dXJuIFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCIHwgVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW06Ok9wYWNpdHlGaWx0ZXI7CisgICAgICAgIHJldHVybiB7IFRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUkdCLCBUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbTo6T3BhY2l0eUZpbHRlciB9OwogICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpCTFVS
OgotICAgICAgICByZXR1cm4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkJsdXJGaWx0ZXI7
CisgICAgICAgIHJldHVybiB7IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpCbHVyRmlsdGVy
IH07CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkRST1BfU0hBRE9XOgotICAgICAgICByZXR1
cm4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkFscGhhQmx1cgotICAgICAgICAgICAgfCAo
cGFzcyA/IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpDb250ZW50VGV4dHVyZSB8IFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpTb2xpZENvbG9yOiAwKTsKKyAgICAgICAgaWYgKCFwYXNz
KQorICAgICAgICAgICAgcmV0dXJuIHsgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkFscGhh
Qmx1ciB9OworICAgICAgICByZXR1cm4geyBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6QWxw
aGFCbHVyLCBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Q29udGVudFRleHR1cmUsIFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpTb2xpZENvbG9yIH07CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4geyB9OwogICAgIH0KIH0KIApAQCAtNDcyLDE3ICs0NzQsMTcgQEAgdm9pZCBUZXh0dXJlTWFw
cGVyR0w6OmRyYXdUZXh0dXJlKEdMdWludCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSW50
U2l6ZSYgdGUKICAgICAgICAgJiYgZXhwb3NlZEVkZ2VzID09IEFsbEVkZ2VzCiAgICAgICAgICYm
ICFtb2RlbFZpZXdNYXRyaXgubWFwUXVhZCh0YXJnZXRSZWN0KS5pc1JlY3RpbGluZWFyKCk7CiAK
LSAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3B0aW9ucyBvcHRpb25zID0gMDsKKyAg
ICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3B0aW9ucyBvcHRpb25zOwogICAgIGlmICh1
c2VSZWN0KQotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpS
ZWN0OworICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UmVj
dCk7CiAgICAgaWYgKG9wYWNpdHkgPCAxKQotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpPcGFjaXR5OworICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbTo6T3BhY2l0eSk7CiAgICAgaWYgKHVzZUFudGlhbGlhc2luZykgewot
ICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBbnRpYWxpYXNp
bmc7CisgICAgICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBbnRp
YWxpYXNpbmcpOwogICAgICAgICBmbGFncyB8PSBTaG91bGRBbnRpYWxpYXM7CiAgICAgfQogICAg
IGlmICh3cmFwTW9kZSgpID09IFJlcGVhdFdyYXAgJiYgIW1fY29udGV4dEF0dHJpYnV0ZXMuc3Vw
cG9ydHNOUE9UVGV4dHVyZXMpCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06Ok1hbnVhbFJlcGVhdDsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW06Ok1hbnVhbFJlcGVhdCk7CiAKICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0
aW9uPiBmaWx0ZXIgPSBkYXRhKCkuZmlsdGVySW5mbyA/IGRhdGEoKS5maWx0ZXJJbmZvLT5maWx0
ZXI6IG51bGxwdHI7CiAgICAgR0x1aW50IGZpbHRlckNvbnRlbnRUZXh0dXJlSUQgPSAwOwpAQCAt
NDkwLDIyICs0OTIsMjIgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlKEdMdWlu
dCB0ZXh0dXJlLCBGbGFncyBmbGFncywgY29uc3QgSW50U2l6ZSYgdGUKICAgICBpZiAoZmlsdGVy
KSB7CiAgICAgICAgIGlmIChkYXRhKCkuZmlsdGVySW5mby0+Y29udGVudFRleHR1cmUpCiAgICAg
ICAgICAgICBmaWx0ZXJDb250ZW50VGV4dHVyZUlEID0gdG9CaXRtYXBUZXh0dXJlR0woZGF0YSgp
LmZpbHRlckluZm8tPmNvbnRlbnRUZXh0dXJlLmdldCgpKS0+aWQoKTsKLSAgICAgICAgb3B0aW9u
cyB8PSBvcHRpb25zRm9yRmlsdGVyVHlwZShmaWx0ZXItPnR5cGUoKSwgZGF0YSgpLmZpbHRlcklu
Zm8tPnBhc3MpOworICAgICAgICBvcHRpb25zLmFkZChvcHRpb25zRm9yRmlsdGVyVHlwZShmaWx0
ZXItPnR5cGUoKSwgZGF0YSgpLmZpbHRlckluZm8tPnBhc3MpKTsKICAgICAgICAgaWYgKGZpbHRl
ci0+YWZmZWN0c09wYWNpdHkoKSkKICAgICAgICAgICAgIGZsYWdzIHw9IFNob3VsZEJsZW5kOwog
ICAgIH0gZWxzZQotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
OjpUZXh0dXJlUkdCOworICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6VGV4dHVyZVJHQik7CiAKICAgICBpZiAodXNlQW50aWFsaWFzaW5nIHx8IG9wYWNpdHkg
PCAxKQogICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKIAogICAgIGlmIChjbGlwU3RhY2so
KS5pc1JvdW5kZWRSZWN0Q2xpcEVuYWJsZWQoKSkgewotICAgICAgICBvcHRpb25zIHw9IFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSb3VuZGVkUmVjdENsaXA7CisgICAgICAgIG9wdGlvbnMu
YWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSb3VuZGVkUmVjdENsaXApOwogICAgICAg
ICBmbGFncyB8PSBTaG91bGRCbGVuZDsKICAgICB9CiAKICAgICBpZiAoZmxhZ3MgJiBTaG91bGRQ
cmVtdWx0aXBseSkKLSAgICAgICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bTo6UHJlbXVsdGlwbHk7CisgICAgICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpQcmVtdWx0aXBseSk7CiAKICAgICBSZWY8VGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW0+IHByb2dyYW0gPSBkYXRhKCkuZ2V0U2hhZGVyUHJvZ3JhbShvcHRpb25zKTsKIApAQCAtNTQ5
LDE1ICs1NTEsMTUgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlUGxhbmFyWVVW
KGNvbnN0IHN0ZDo6YXJyYXk8R0x1aW50LCAzPiYgdGV4dHVyZXMKIAogICAgIFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zIG9wdGlvbnMgPSBhbHBoYVBsYW5lID8gVGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW06OlRleHR1cmVZVVZBIDogVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW06OlRleHR1cmVZVVY7CiAgICAgaWYgKHVzZVJlY3QpCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlJlY3Q7CisgICAgICAgIG9wdGlvbnMuYWRkKFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSZWN0KTsKICAgICBpZiAob3BhY2l0eSA8IDEpCi0gICAg
ICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wYWNpdHk7CisgICAg
ICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcGFjaXR5KTsKICAg
ICBpZiAodXNlQW50aWFsaWFzaW5nKSB7Ci0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBl
clNoYWRlclByb2dyYW06OkFudGlhbGlhc2luZzsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW06OkFudGlhbGlhc2luZyk7CiAgICAgICAgIGZsYWdzIHw9IFNo
b3VsZEFudGlhbGlhczsKICAgICB9CiAgICAgaWYgKHdyYXBNb2RlKCkgPT0gUmVwZWF0V3JhcCAm
JiAhbV9jb250ZXh0QXR0cmlidXRlcy5zdXBwb3J0c05QT1RUZXh0dXJlcykKLSAgICAgICAgb3B0
aW9ucyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6TWFudWFsUmVwZWF0OworICAgICAg
ICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6TWFudWFsUmVwZWF0KTsK
IAogICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZpbHRlciA9IGRhdGEoKS5maWx0ZXJJbmZv
ID8gZGF0YSgpLmZpbHRlckluZm8tPmZpbHRlcjogbnVsbHB0cjsKICAgICBHTHVpbnQgZmlsdGVy
Q29udGVudFRleHR1cmVJRCA9IDA7CkBAIC01NjUsNyArNTY3LDcgQEAgdm9pZCBUZXh0dXJlTWFw
cGVyR0w6OmRyYXdUZXh0dXJlUGxhbmFyWVVWKGNvbnN0IHN0ZDo6YXJyYXk8R0x1aW50LCAzPiYg
dGV4dHVyZXMKICAgICBpZiAoZmlsdGVyKSB7CiAgICAgICAgIGlmIChkYXRhKCkuZmlsdGVySW5m
by0+Y29udGVudFRleHR1cmUpCiAgICAgICAgICAgICBmaWx0ZXJDb250ZW50VGV4dHVyZUlEID0g
dG9CaXRtYXBUZXh0dXJlR0woZGF0YSgpLmZpbHRlckluZm8tPmNvbnRlbnRUZXh0dXJlLmdldCgp
KS0+aWQoKTsKLSAgICAgICAgb3B0aW9ucyB8PSBvcHRpb25zRm9yRmlsdGVyVHlwZShmaWx0ZXIt
PnR5cGUoKSwgZGF0YSgpLmZpbHRlckluZm8tPnBhc3MpOworICAgICAgICBvcHRpb25zLmFkZChv
cHRpb25zRm9yRmlsdGVyVHlwZShmaWx0ZXItPnR5cGUoKSwgZGF0YSgpLmZpbHRlckluZm8tPnBh
c3MpKTsKICAgICAgICAgaWYgKGZpbHRlci0+YWZmZWN0c09wYWNpdHkoKSkKICAgICAgICAgICAg
IGZsYWdzIHw9IFNob3VsZEJsZW5kOwogICAgIH0KQEAgLTU3NCwxMiArNTc2LDEyIEBAIHZvaWQg
VGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZVBsYW5hcllVVihjb25zdCBzdGQ6OmFycmF5PEdM
dWludCwgMz4mIHRleHR1cmVzCiAgICAgICAgIGZsYWdzIHw9IFNob3VsZEJsZW5kOwogCiAgICAg
aWYgKGNsaXBTdGFjaygpLmlzUm91bmRlZFJlY3RDbGlwRW5hYmxlZCgpKSB7Ci0gICAgICAgIG9w
dGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlJvdW5kZWRSZWN0Q2xpcDsKKyAg
ICAgICAgb3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlJvdW5kZWRSZWN0
Q2xpcCk7CiAgICAgICAgIGZsYWdzIHw9IFNob3VsZEJsZW5kOwogICAgIH0KIAogICAgIGlmIChm
bGFncyAmIFNob3VsZFByZW11bHRpcGx5KQotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtOjpQcmVtdWx0aXBseTsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW06OlByZW11bHRpcGx5KTsKIAogICAgIFJlZjxUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbT4gcHJvZ3JhbSA9IGRhdGEoKS5nZXRTaGFkZXJQcm9ncmFtKG9wdGlv
bnMpOwogCkBAIC02MTMsMTUgKzYxNSwxNSBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1Rl
eHR1cmVTZW1pUGxhbmFyWVVWKGNvbnN0IHN0ZDo6YXJyYXk8R0x1aW50LCAyPiYgdGV4dAogICAg
IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpPcHRpb25zIG9wdGlvbnMgPSB1dlJldmVyc2Vk
ID8KICAgICAgICAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVOVjIxIDogVGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVOVjEyOwogICAgIGlmICh1c2VSZWN0KQot
ICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSZWN0OworICAg
ICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UmVjdCk7CiAgICAg
aWYgKG9wYWNpdHkgPCAxKQotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQ
cm9ncmFtOjpPcGFjaXR5OworICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbTo6T3BhY2l0eSk7CiAgICAgaWYgKHVzZUFudGlhbGlhc2luZykgewotICAgICAgICBv
cHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBbnRpYWxpYXNpbmc7CisgICAg
ICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBbnRpYWxpYXNpbmcp
OwogICAgICAgICBmbGFncyB8PSBTaG91bGRBbnRpYWxpYXM7CiAgICAgfQogICAgIGlmICh3cmFw
TW9kZSgpID09IFJlcGVhdFdyYXAgJiYgIW1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9ydHNOUE9U
VGV4dHVyZXMpCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06
Ok1hbnVhbFJlcGVhdDsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW06Ok1hbnVhbFJlcGVhdCk7CiAKICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBmaWx0
ZXIgPSBkYXRhKCkuZmlsdGVySW5mbyA/IGRhdGEoKS5maWx0ZXJJbmZvLT5maWx0ZXI6IG51bGxw
dHI7CiAgICAgR0x1aW50IGZpbHRlckNvbnRlbnRUZXh0dXJlSUQgPSAwOwpAQCAtNjI5LDcgKzYz
MSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZVNlbWlQbGFuYXJZVVYoY29u
c3Qgc3RkOjphcnJheTxHTHVpbnQsIDI+JiB0ZXh0CiAgICAgaWYgKGZpbHRlcikgewogICAgICAg
ICBpZiAoZGF0YSgpLmZpbHRlckluZm8tPmNvbnRlbnRUZXh0dXJlKQogICAgICAgICAgICAgZmls
dGVyQ29udGVudFRleHR1cmVJRCA9IHRvQml0bWFwVGV4dHVyZUdMKGRhdGEoKS5maWx0ZXJJbmZv
LT5jb250ZW50VGV4dHVyZS5nZXQoKSktPmlkKCk7Ci0gICAgICAgIG9wdGlvbnMgfD0gb3B0aW9u
c0ZvckZpbHRlclR5cGUoZmlsdGVyLT50eXBlKCksIGRhdGEoKS5maWx0ZXJJbmZvLT5wYXNzKTsK
KyAgICAgICAgb3B0aW9ucy5hZGQob3B0aW9uc0ZvckZpbHRlclR5cGUoZmlsdGVyLT50eXBlKCks
IGRhdGEoKS5maWx0ZXJJbmZvLT5wYXNzKSk7CiAgICAgICAgIGlmIChmaWx0ZXItPmFmZmVjdHNP
cGFjaXR5KCkpCiAgICAgICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKICAgICB9CkBAIC02
MzgsNyArNjQwLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlU2VtaVBsYW5h
cllVVihjb25zdCBzdGQ6OmFycmF5PEdMdWludCwgMj4mIHRleHQKICAgICAgICAgZmxhZ3MgfD0g
U2hvdWxkQmxlbmQ7CiAKICAgICBpZiAoY2xpcFN0YWNrKCkuaXNSb3VuZGVkUmVjdENsaXBFbmFi
bGVkKCkpIHsKLSAgICAgICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6
Um91bmRlZFJlY3RDbGlwOworICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbTo6Um91bmRlZFJlY3RDbGlwKTsKICAgICAgICAgZmxhZ3MgfD0gU2hvdWxkQmxlbmQ7
CiAgICAgfQogCkBAIC02NjksMTUgKzY3MSwxNSBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJh
d1RleHR1cmVQYWNrZWRZVVYoR0x1aW50IHRleHR1cmUsIGNvbnN0IHN0ZDo6YXJyYXk8R0xmbAog
CiAgICAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbnMgb3B0aW9ucyA9IFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlUGFja2VkWVVWOwogICAgIGlmICh1c2VSZWN0
KQotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSZWN0Owor
ICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6UmVjdCk7CiAg
ICAgaWYgKG9wYWNpdHkgPCAxKQotICAgICAgICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFk
ZXJQcm9ncmFtOjpPcGFjaXR5OworICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbTo6T3BhY2l0eSk7CiAgICAgaWYgKHVzZUFudGlhbGlhc2luZykgewotICAgICAg
ICBvcHRpb25zIHw9IFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBbnRpYWxpYXNpbmc7Cisg
ICAgICAgIG9wdGlvbnMuYWRkKFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBbnRpYWxpYXNp
bmcpOwogICAgICAgICBmbGFncyB8PSBTaG91bGRBbnRpYWxpYXM7CiAgICAgfQogICAgIGlmICh3
cmFwTW9kZSgpID09IFJlcGVhdFdyYXAgJiYgIW1fY29udGV4dEF0dHJpYnV0ZXMuc3VwcG9ydHNO
UE9UVGV4dHVyZXMpCi0gICAgICAgIG9wdGlvbnMgfD0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW06Ok1hbnVhbFJlcGVhdDsKKyAgICAgICAgb3B0aW9ucy5hZGQoVGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW06Ok1hbnVhbFJlcGVhdCk7CiAKICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBm
aWx0ZXIgPSBkYXRhKCkuZmlsdGVySW5mbyA/IGRhdGEoKS5maWx0ZXJJbmZvLT5maWx0ZXI6IG51
bGxwdHI7CiAgICAgR0x1aW50IGZpbHRlckNvbnRlbnRUZXh0dXJlSUQgPSAwOwpAQCAtNjg1LDcg
KzY4Nyw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpkcmF3VGV4dHVyZVBhY2tlZFlVVihHTHVp
bnQgdGV4dHVyZSwgY29uc3Qgc3RkOjphcnJheTxHTGZsCiAgICAgaWYgKGZpbHRlcikgewogICAg
ICAgICBpZiAoZGF0YSgpLmZpbHRlckluZm8tPmNvbnRlbnRUZXh0dXJlKQogICAgICAgICAgICAg
ZmlsdGVyQ29udGVudFRleHR1cmVJRCA9IHRvQml0bWFwVGV4dHVyZUdMKGRhdGEoKS5maWx0ZXJJ
bmZvLT5jb250ZW50VGV4dHVyZS5nZXQoKSktPmlkKCk7Ci0gICAgICAgIG9wdGlvbnMgfD0gb3B0
aW9uc0ZvckZpbHRlclR5cGUoZmlsdGVyLT50eXBlKCksIGRhdGEoKS5maWx0ZXJJbmZvLT5wYXNz
KTsKKyAgICAgICAgb3B0aW9ucy5hZGQob3B0aW9uc0ZvckZpbHRlclR5cGUoZmlsdGVyLT50eXBl
KCksIGRhdGEoKS5maWx0ZXJJbmZvLT5wYXNzKSk7CiAgICAgICAgIGlmIChmaWx0ZXItPmFmZmVj
dHNPcGFjaXR5KCkpCiAgICAgICAgICAgICBmbGFncyB8PSBTaG91bGRCbGVuZDsKICAgICB9CkBA
IC02OTQsNyArNjk2LDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlUGFja2Vk
WVVWKEdMdWludCB0ZXh0dXJlLCBjb25zdCBzdGQ6OmFycmF5PEdMZmwKICAgICAgICAgZmxhZ3Mg
fD0gU2hvdWxkQmxlbmQ7CiAKICAgICBpZiAoY2xpcFN0YWNrKCkuaXNSb3VuZGVkUmVjdENsaXBF
bmFibGVkKCkpIHsKLSAgICAgICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bTo6Um91bmRlZFJlY3RDbGlwOworICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbTo6Um91bmRlZFJlY3RDbGlwKTsKICAgICAgICAgZmxhZ3MgfD0gU2hvdWxkQmxl
bmQ7CiAgICAgfQogCkBAIC03MjAsMTIgKzcyMiwxMiBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6
ZHJhd1NvbGlkQ29sb3IoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlv
bgogICAgIEZsYWdzIGZsYWdzID0gMDsKICAgICBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6
T3B0aW9ucyBvcHRpb25zID0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlNvbGlkQ29sb3I7
CiAgICAgaWYgKCFtYXRyaXgubWFwUXVhZChyZWN0KS5pc1JlY3RpbGluZWFyKCkpIHsKLSAgICAg
ICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6QW50aWFsaWFzaW5nOwor
ICAgICAgICBvcHRpb25zLmFkZChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6QW50aWFsaWFz
aW5nKTsKICAgICAgICAgZmxhZ3MgfD0gU2hvdWxkQW50aWFsaWFzIHwgKGlzQmxlbmRpbmdBbGxv
d2VkID8gU2hvdWxkQmxlbmQgOiAwKTsKICAgICB9CiAKICAgICBpZiAoY2xpcFN0YWNrKCkuaXNS
b3VuZGVkUmVjdENsaXBFbmFibGVkKCkpIHsKLSAgICAgICAgb3B0aW9ucyB8PSBUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbTo6Um91bmRlZFJlY3RDbGlwOworICAgICAgICBvcHRpb25zLmFkZChU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6Um91bmRlZFJlY3RDbGlwKTsKICAgICAgICAgZmxh
Z3MgfD0gU2hvdWxkQmxlbmQ7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbS5oCmluZGV4IDZlZGYzOWY4NGRlZDc2ZmU0MGFjZGM2ZmMyYzM0NWVlZDg0NWUyZDIu
LmFhMDcwYjE3NDg5ZjBhZTMzNjc5Y2VhMWFjM2RlNWQ2YmYwOTk5OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAi
VHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KICNp
bmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4K
IApAQCAtMTEyLDcgKzExMyw3IEBAIHB1YmxpYzoKICAgICAgICAgVEVYTUFQX1ZBUklBQkxFUyhU
RVhNQVBfREVDTEFSRV9WQVJJQUJMRV9FTlVNKQogICAgIH07CiAKLSAgICB0eXBlZGVmIHVuc2ln
bmVkIE9wdGlvbnM7CisgICAgdXNpbmcgT3B0aW9ucyA9IE9wdGlvblNldDxPcHRpb24+OwogCiAg
ICAgc3RhdGljIFJlZjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gY3JlYXRlKE9wdGlvbnMp
OwogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtKCk7CkBAIC0xMzksNyAr
MTQwLDQzIEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxWYXJpYWJsZUlELCBHTHVpbnQsIEludEhh
c2g8VmFyaWFibGVJRD4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8VmFyaWFibGVJRD4+IG1f
dmFyaWFibGVzOwogfTsKIAotfQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbTo6T3B0aW9uPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wdGlvbiwK
KyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVSR0Is
CisgICAgICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpSZWN0LAorICAg
ICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6U29saWRDb2xvciwKKyAg
ICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok9wYWNpdHksCisgICAg
ICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBbnRpYWxpYXNpbmcsCisg
ICAgICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpHcmF5c2NhbGVGaWx0
ZXIsCisgICAgICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpTZXBpYUZp
bHRlciwKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlNhdHVy
YXRlRmlsdGVyLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6
SHVlUm90YXRlRmlsdGVyLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6QnJpZ2h0bmVzc0ZpbHRlciwKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW06OkNvbnRyYXN0RmlsdGVyLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFw
cGVyU2hhZGVyUHJvZ3JhbTo6SW52ZXJ0RmlsdGVyLAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbTo6T3BhY2l0eUZpbHRlciwKKyAgICAgICAgV2ViQ29yZTo6VGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW06OkJsdXJGaWx0ZXIsCisgICAgICAgIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpBbHBoYUJsdXIsCisgICAgICAgIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpDb250ZW50VGV4dHVyZSwKKyAgICAgICAgV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06Ok1hbnVhbFJlcGVhdCwKKyAgICAgICAgV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVZVVYsCisgICAgICAgIFdl
YkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtOjpUZXh0dXJlTlYxMiwKKyAgICAgICAg
V2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVOVjIxLAorICAgICAg
ICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6VGV4dHVyZVBhY2tlZFlVViwK
KyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlRleHR1cmVFeHRl
cm5hbE9FUywKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW06OlJv
dW5kZWRSZWN0Q2xpcCwKKyAgICAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dy
YW06OlByZW11bHRpcGx5LAorICAgICAgICBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbTo6VGV4dHVyZVlVVkEKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKICNl
bmRpZiAvLyBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpCiAKICNlbmRpZiAvLyBUZXh0dXJlTWFwcGVy
U2hhZGVyUHJvZ3JhbV9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>