<?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>216233</bug_id>
          
          <creation_ts>2020-09-06 15:23:04 -0700</creation_ts>
          <short_desc>Make `WebCore::WritingMode` an 8-bit enum class</short_desc>
          <delta_ts>2020-09-06 19:22:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</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>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>rego</cc>
    
    <cc>svillar</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1686235</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-06 15:23:04 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686238</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-06 15:24:21 -0700</bug_when>
    <thetext>Just a bit of minor cleanup, while working on https://webkit.org/b/216223.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686239</commentid>
    <comment_count>2</comment_count>
      <attachid>408141</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-06 15:27:15 -0700</bug_when>
    <thetext>Created attachment 408141
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686293</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-06 19:22:07 -0700</bug_when>
    <thetext>Committed r266691: &lt;https://trac.webkit.org/changeset/266691&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408141.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408141</attachid>
            <date>2020-09-06 15:27:15 -0700</date>
            <delta_ts>2020-09-06 19:22:07 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-216233-20200906152714.patch</filename>
            <type>text/plain</type>
            <size>42663</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODcxMTMyMmRhOWEwZTY4
YjQ0MjY1NDBhYzUxZDliODEzYWFlZDJhZS4uMjhjYzk1MDk3NDZmMmJkZTY3MzExMzgxYTUwOWVk
MGViZmU3NTFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDIwLTA5LTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgYFdlYkNv
cmU6OldyaXRpbmdNb2RlYCBhbiA4LWJpdCBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTYyMzMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOYXJyb3cgV2ViQ29yZTo6V3JpdGluZ01vZGUg
dG8gYW4gOC1iaXQgZW51bSBjbGFzczsgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAg
ICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6b3BlcmF0b3IgV3JpdGluZ01vZGUgY29uc3QpOgorICAgICAgICAq
IGNzcy9DU1NQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHZlVG9QaHlzaWNh
bFByb3BlcnR5KToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Njcm9sbEFsaWdubWVudEZvcklubGluZURpcmVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1Njcm9sbEFsaWdubWVudEZvckJsb2NrRGlyZWN0aW9uKToKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWdpbmF0aW9uTW9kZUZvclJlbmRlclN0
eWxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1dyaXRpbmdNb2RlLmg6CisgICAgICAgICog
cmVuZGVyaW5nL0dyaWRCYXNlbGluZUFsaWdubWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpC
YXNlbGluZUdyb3VwOjppc09wcG9zaXRlQmxvY2tGbG93IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkJhc2VsaW5lR3JvdXA6OmlzT3J0aG9nb25hbEJsb2NrRmxvdyBjb25zdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjphZGp1c3RCb3JkZXJCb3hSZWN0Rm9yUGFpbnRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6OnBhaW50UmVjdFRvQ2xpcE91dEZyb21Cb3JkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmJvcmRlclRvcCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6Ym9yZGVyTGVmdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6Ym9yZGVyQm90dG9tIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Ojpib3JkZXJSaWdodCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzaG91bGRGbGlwQmVmb3JlQWZ0ZXJNYXJnaW5zKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveDo6dmlzdWFsT3ZlcmZsb3dSZWN0Rm9yUHJvcGFnYXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpsYXlvdXRPdmVyZmxvd1JlY3RG
b3JQcm9wYWdhdGlvbiBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRldGFpbHNN
YXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRGV0YWlsc01hcmtlcjo6b3JpZW50
YXRpb24gY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6aXNMZWZ0VG9SaWdodEZsb3cg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnRyYW5zZm9ybWVk
V3JpdGluZ01vZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6
OmZsb3dBd2FyZUJvcmRlckJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bGV4aWJsZUJveDo6Zmxvd0F3YXJlQm9yZGVyQWZ0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRmxleGlibGVCb3g6OmZsb3dBd2FyZVBhZGRpbmdCZWZvcmUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmZsb3dBd2FyZVBhZGRpbmdBZnRlciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6Zmxvd0F3YXJlTWFy
Z2luQmVmb3JlRm9yQ2hpbGQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJs
ZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nVG9w
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6cGFkZGluZ0JvdHRv
bSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdMZWZ0
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6cGFkZGluZ1JpZ2h0
IGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUcmVlQXNUZXh0Ojp3cml0ZVJlbmRlck9iamVjdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2ltcGxlTGluZUxheW91dDo6Y2FuVXNlRm9yU3R5bGUpOgorICAgICAgICAqIHJlbmRlcmluZy9z
aGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpib3JkZXJCZWZv
cmVJbldyaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OmJvcmRlckFuZFBhZGRpbmdCZWZv
cmVJbldyaXRpbmdNb2RlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpib3JkZXJCZWZvcmUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6OmJvcmRlckFmdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclN0eWxlOjpib3JkZXJCZWZvcmVXaWR0aCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTdHlsZTo6Ym9yZGVyQWZ0ZXJXaWR0aCBjb25zdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHls
ZTo6aW5pdGlhbFdyaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpz
ZXRXcml0aW5nTW9kZSk6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdCBjb25zdCk6CisgICAgICAgICog
c3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkJ1
aWxkZXJTdGF0ZTo6YWRqdXN0U3R5bGVGb3JJbnRlckNoYXJhY3RlclJ1YnkpOgorCiAyMDIwLTA5
LTA2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtN
b3Rpb25NYXJrIC0gTXVsdGlwbHldIFdlYiBwcm9jZXNzIHNwZW5kcyB+MSUgb2YgdG90YWwgc2Ft
cGxlcyBpbiBQcm9wZXJ0eUNhc2NhZGU6OnJlc29sdmVEaXJlY3Rpb25BbmRXcml0aW5nTW9kZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXgg
YTNjNzZjZGRmZjVhNDVhZWM2ZDg2MGRjODE4NDUyMzhiZjY5Yzk2MC4uNDk3NTk2ZWYyYjBhMmIx
NGQzNTNlYThkM2Q3NzhkZjEzZGY1OWE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0zMTkzLDE2ICszMTkzLDE2IEBAIHRlbXBsYXRl
PD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShXcml0aW5nTW9k
ZSBlKQogewogICAgIHNldFByaW1pdGl2ZVVuaXRUeXBlKENTU1VuaXRUeXBlOjpDU1NfVkFMVUVf
SUQpOwogICAgIHN3aXRjaCAoZSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZToK
KyAgICBjYXNlIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbToKICAgICAgICAgbV92YWx1ZS52YWx1
ZUlEID0gQ1NTVmFsdWVIb3Jpem9udGFsVGI7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmln
aHRUb0xlZnRXcml0aW5nTW9kZToKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDoK
ICAgICAgICAgbV92YWx1ZS52YWx1ZUlEID0gQ1NTVmFsdWVWZXJ0aWNhbFJsOwogICAgICAgICBi
cmVhazsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6CisgICAgY2FzZSBXcml0aW5n
TW9kZTo6TGVmdFRvUmlnaHQ6CiAgICAgICAgIG1fdmFsdWUudmFsdWVJRCA9IENTU1ZhbHVlVmVy
dGljYWxMcjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2Rl
OgorICAgIGNhc2UgV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wOgogICAgICAgICBtX3ZhbHVlLnZh
bHVlSUQgPSBDU1NWYWx1ZUhvcml6b250YWxCdDsKICAgICAgICAgYnJlYWs7CiAgICAgfQpAQCAt
MzIxOCwyMSArMzIxOCwyMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
b3BlcmF0b3IgV3JpdGluZ01vZGUoKSBjb25zdAogICAgIGNhc2UgQ1NTVmFsdWVMclRiOgogICAg
IGNhc2UgQ1NTVmFsdWVSbDoKICAgICBjYXNlIENTU1ZhbHVlUmxUYjoKLSAgICAgICAgcmV0dXJu
IFRvcFRvQm90dG9tV3JpdGluZ01vZGU7CisgICAgICAgIHJldHVybiBXcml0aW5nTW9kZTo6VG9w
VG9Cb3R0b207CiAgICAgY2FzZSBDU1NWYWx1ZVZlcnRpY2FsUmw6CiAgICAgY2FzZSBDU1NWYWx1
ZVRiOgogICAgIGNhc2UgQ1NTVmFsdWVUYlJsOgotICAgICAgICByZXR1cm4gUmlnaHRUb0xlZnRX
cml0aW5nTW9kZTsKKyAgICAgICAgcmV0dXJuIFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDsKICAg
ICBjYXNlIENTU1ZhbHVlVmVydGljYWxMcjoKLSAgICAgICAgcmV0dXJuIExlZnRUb1JpZ2h0V3Jp
dGluZ01vZGU7CisgICAgICAgIHJldHVybiBXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQ7CiAgICAg
Y2FzZSBDU1NWYWx1ZUhvcml6b250YWxCdDoKLSAgICAgICAgcmV0dXJuIEJvdHRvbVRvVG9wV3Jp
dGluZ01vZGU7CisgICAgICAgIHJldHVybiBXcml0aW5nTW9kZTo6Qm90dG9tVG9Ub3A7CiAgICAg
ZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIFRvcFRvQm90dG9tV3JpdGluZ01vZGU7CisgICAgcmV0dXJuIFdyaXRp
bmdNb2RlOjpUb3BUb0JvdHRvbTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKFRleHRDb21iaW5lIGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5LmNwcAppbmRleCBmYzAwNzU5MjZhYTE5MTFiYWNkM2I3NGRiOGM0NzhlNzE2ZDRlMzU5
Li44MGUxMmJmODlkOTMwYjIwZTNkODI4OTcwNjdmMWZjZDMxZDMyY2FmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgZW51bSBMb2dpY2FsRXh0ZW50IHsg
TG9naWNhbFdpZHRoLCBMb2dpY2FsSGVpZ2h0IH07CiAKIHN0YXRpYyBDU1NQcm9wZXJ0eUlEIHJl
c29sdmVUb1BoeXNpY2FsUHJvcGVydHkoV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIExvZ2ljYWxF
eHRlbnQgbG9naWNhbFNpZGUsIGNvbnN0IENTU1Byb3BlcnR5SUQqIHByb3BlcnRpZXMpCiB7Ci0g
ICAgaWYgKHdyaXRpbmdNb2RlID09IFRvcFRvQm90dG9tV3JpdGluZ01vZGUgfHwgd3JpdGluZ01v
ZGUgPT0gQm90dG9tVG9Ub3BXcml0aW5nTW9kZSkKKyAgICBpZiAod3JpdGluZ01vZGUgPT0gV3Jp
dGluZ01vZGU6OlRvcFRvQm90dG9tIHx8IHdyaXRpbmdNb2RlID09IFdyaXRpbmdNb2RlOjpCb3R0
b21Ub1RvcCkKICAgICAgICAgcmV0dXJuIHByb3BlcnRpZXNbbG9naWNhbFNpZGVdOwogICAgIHJl
dHVybiBsb2dpY2FsU2lkZSA9PSBMb2dpY2FsV2lkdGggPyBwcm9wZXJ0aWVzWzFdIDogcHJvcGVy
dGllc1swXTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA5YjBkZmUwZTIwZjQ3NmQ2Y2Fk
ZjY1ZWIxMGRlZTAxYWI1ZDRiODNmLi40NTQzNWZkMWFhZDg3NWYwNzUzNjQyMDI1ZjQ0ODJjY2M5
ZWFiODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC03NDcsMTIgKzc0NywxMiBAQCBpbmxp
bmUgU2Nyb2xsQWxpZ25tZW50IHRvU2Nyb2xsQWxpZ25tZW50Rm9ySW5saW5lRGlyZWN0aW9uKE9w
dGlvbmFsPFNjcm9sbExvZ2ljYQogICAgIHN3aXRjaCAocG9zaXRpb24udmFsdWVPcihTY3JvbGxM
b2dpY2FsUG9zaXRpb246Ok5lYXJlc3QpKSB7CiAgICAgY2FzZSBTY3JvbGxMb2dpY2FsUG9zaXRp
b246OlN0YXJ0OiB7CiAgICAgICAgIHN3aXRjaCAod3JpdGluZ01vZGUpIHsKLSAgICAgICAgY2Fz
ZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgotICAgICAgICBjYXNlIEJvdHRvbVRvVG9wV3JpdGlu
Z01vZGU6IHsKKyAgICAgICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b206CisgICAgICAg
IGNhc2UgV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wOiB7CiAgICAgICAgICAgICByZXR1cm4gaXNM
VFIgPyBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduTGVmdEFsd2F5cyA6IFNjcm9sbEFsaWdubWVudDo6
YWxpZ25SaWdodEFsd2F5czsKICAgICAgICAgfQotICAgICAgICBjYXNlIExlZnRUb1JpZ2h0V3Jp
dGluZ01vZGU6Ci0gICAgICAgIGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZTogeworICAgICAg
ICBjYXNlIFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodDoKKyAgICAgICAgY2FzZSBXcml0aW5nTW9k
ZTo6UmlnaHRUb0xlZnQ6IHsKICAgICAgICAgICAgIHJldHVybiBpc0xUUiA/IFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub3BBbHdheXMgOiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQm90dG9tQWx3YXlz
OwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CkBAIC03NjQsMTIgKzc2NCwxMiBAQCBpbmxp
bmUgU2Nyb2xsQWxpZ25tZW50IHRvU2Nyb2xsQWxpZ25tZW50Rm9ySW5saW5lRGlyZWN0aW9uKE9w
dGlvbmFsPFNjcm9sbExvZ2ljYQogICAgICAgICByZXR1cm4gU2Nyb2xsQWxpZ25tZW50OjphbGln
bkNlbnRlckFsd2F5czsKICAgICBjYXNlIFNjcm9sbExvZ2ljYWxQb3NpdGlvbjo6RW5kOiB7CiAg
ICAgICAgIHN3aXRjaCAod3JpdGluZ01vZGUpIHsKLSAgICAgICAgY2FzZSBUb3BUb0JvdHRvbVdy
aXRpbmdNb2RlOgotICAgICAgICBjYXNlIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6IHsKKyAgICAg
ICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b206CisgICAgICAgIGNhc2UgV3JpdGluZ01v
ZGU6OkJvdHRvbVRvVG9wOiB7CiAgICAgICAgICAgICByZXR1cm4gaXNMVFIgPyBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduUmlnaHRBbHdheXMgOiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduTGVmdEFsd2F5
czsKICAgICAgICAgfQotICAgICAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6Ci0gICAg
ICAgIGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZTogeworICAgICAgICBjYXNlIFdyaXRpbmdN
b2RlOjpMZWZ0VG9SaWdodDoKKyAgICAgICAgY2FzZSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQ6
IHsKICAgICAgICAgICAgIHJldHVybiBpc0xUUiA/IFNjcm9sbEFsaWdubWVudDo6YWxpZ25Cb3R0
b21BbHdheXMgOiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9wQWx3YXlzOwogICAgICAgICB9CiAg
ICAgICAgIGRlZmF1bHQ6CkBAIC03OTAsMTMgKzc5MCwxMyBAQCBpbmxpbmUgU2Nyb2xsQWxpZ25t
ZW50IHRvU2Nyb2xsQWxpZ25tZW50Rm9yQmxvY2tEaXJlY3Rpb24oT3B0aW9uYWw8U2Nyb2xsTG9n
aWNhbAogICAgIHN3aXRjaCAocG9zaXRpb24udmFsdWVPcihTY3JvbGxMb2dpY2FsUG9zaXRpb246
OlN0YXJ0KSkgewogICAgIGNhc2UgU2Nyb2xsTG9naWNhbFBvc2l0aW9uOjpTdGFydDogewogICAg
ICAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAgICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0
aW5nTW9kZToKKyAgICAgICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b206CiAgICAgICAg
ICAgICByZXR1cm4gU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvcEFsd2F5czsKLSAgICAgICAgY2Fz
ZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgorICAgICAgICBjYXNlIFdyaXRpbmdNb2RlOjpCb3R0
b21Ub1RvcDoKICAgICAgICAgICAgIHJldHVybiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQm90dG9t
QWx3YXlzOwotICAgICAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6CisgICAgICAgIGNh
c2UgV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0OgogICAgICAgICAgICAgcmV0dXJuIFNjcm9sbEFs
aWdubWVudDo6YWxpZ25MZWZ0QWx3YXlzOwotICAgICAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGlu
Z01vZGU6CisgICAgICAgIGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0OgogICAgICAgICAg
ICAgcmV0dXJuIFNjcm9sbEFsaWdubWVudDo6YWxpZ25SaWdodEFsd2F5czsKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtODA3LDEzICs4MDcs
MTMgQEAgaW5saW5lIFNjcm9sbEFsaWdubWVudCB0b1Njcm9sbEFsaWdubWVudEZvckJsb2NrRGly
ZWN0aW9uKE9wdGlvbmFsPFNjcm9sbExvZ2ljYWwKICAgICAgICAgcmV0dXJuIFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25DZW50ZXJBbHdheXM7CiAgICAgY2FzZSBTY3JvbGxMb2dpY2FsUG9zaXRpb246
OkVuZDogewogICAgICAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKSB7Ci0gICAgICAgIGNhc2UgVG9w
VG9Cb3R0b21Xcml0aW5nTW9kZToKKyAgICAgICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0
b206CiAgICAgICAgICAgICByZXR1cm4gU2Nyb2xsQWxpZ25tZW50OjphbGlnbkJvdHRvbUFsd2F5
czsKLSAgICAgICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgorICAgICAgICBjYXNlIFdy
aXRpbmdNb2RlOjpCb3R0b21Ub1RvcDoKICAgICAgICAgICAgIHJldHVybiBTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduVG9wQWx3YXlzOwotICAgICAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6
CisgICAgICAgIGNhc2UgV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0OgogICAgICAgICAgICAgcmV0
dXJuIFNjcm9sbEFsaWdubWVudDo6YWxpZ25SaWdodEFsd2F5czsKLSAgICAgICAgY2FzZSBSaWdo
dFRvTGVmdFdyaXRpbmdNb2RlOgorICAgICAgICBjYXNlIFdyaXRpbmdNb2RlOjpSaWdodFRvTGVm
dDoKICAgICAgICAgICAgIHJldHVybiBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduTGVmdEFsd2F5czsK
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDRlMzMzNTcxZTk4ZTQ1ZTk2NzFmZTVkMmI1NmFm
ZjhiYWVjYjJhNGEuLmM3NzA0NGEwNTlkZjhjZTljZjZhYTE5OGRmYTFiYjVjNThjNTEyMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTE2Nyw3ICsxNjcsNyBAQCBQYWdpbmF0aW9u
OjpNb2RlIHBhZ2luYXRpb25Nb2RlRm9yUmVuZGVyU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlKQogICAgIC8vIGlzIGhvcml6b250YWwsIHRoZW4gd2UgdXNlIFRleHREaXJlY3Rpb24gdG8g
Y2hvb3NlIGJldHdlZW4gdGhvc2Ugb3B0aW9ucy4gSWYgdGhlIFdyaXRpbmdNb2RlCiAgICAgLy8g
aXMgdmVydGljYWwsIHRoZW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgdmVydGljYWxpdHkgZGljdGF0
ZXMgdGhlIGNob2ljZS4KICAgICBpZiAob3ZlcmZsb3cgPT0gT3ZlcmZsb3c6OlBhZ2VkWCkgewot
ICAgICAgICBpZiAoKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlICYmIHRleHREaXJlY3Rpb24gPT0g
VGV4dERpcmVjdGlvbjo6TFRSKSB8fCB3cml0aW5nTW9kZSA9PSBMZWZ0VG9SaWdodFdyaXRpbmdN
b2RlKQorICAgICAgICBpZiAoKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlICYmIHRleHREaXJlY3Rp
b24gPT0gVGV4dERpcmVjdGlvbjo6TFRSKSB8fCB3cml0aW5nTW9kZSA9PSBXcml0aW5nTW9kZTo6
TGVmdFRvUmlnaHQpCiAgICAgICAgICAgICByZXR1cm4gUGFnaW5hdGlvbjo6TGVmdFRvUmlnaHRQ
YWdpbmF0ZWQ7CiAgICAgICAgIHJldHVybiBQYWdpbmF0aW9uOjpSaWdodFRvTGVmdFBhZ2luYXRl
ZDsKICAgICB9CkBAIC0xNzUsNyArMTc1LDcgQEAgUGFnaW5hdGlvbjo6TW9kZSBwYWdpbmF0aW9u
TW9kZUZvclJlbmRlclN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICAvLyBwYWdl
ZC15IGFsd2F5cyBjb3JyZXNwb25kcyB0byBUb3BUb0JvdHRvbVBhZ2luYXRlZCBvciBCb3R0b21U
b1RvcFBhZ2luYXRlZC4gSWYgdGhlIFdyaXRpbmdNb2RlCiAgICAgLy8gaXMgaG9yaXpvbnRhbCwg
dGhlbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSBob3Jpem9udGFsaXR5IGRpY3RhdGVzIHRoZSBjaG9p
Y2UuIElmIHRoZSBXcml0aW5nTW9kZQogICAgIC8vIGlzIHZlcnRpY2FsLCB0aGVuIHdlIHVzZSBU
ZXh0RGlyZWN0aW9uIHRvIGNob29zZSBiZXR3ZWVuIHRob3NlIG9wdGlvbnMuIAotICAgIGlmICh3
cml0aW5nTW9kZSA9PSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlIHx8ICghaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUgJiYgdGV4dERpcmVjdGlvbiA9PSBUZXh0RGlyZWN0aW9uOjpSVEwpKQorICAgIGlm
ICh3cml0aW5nTW9kZSA9PSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b20gfHwgKCFpc0hvcml6b250
YWxXcml0aW5nTW9kZSAmJiB0ZXh0RGlyZWN0aW9uID09IFRleHREaXJlY3Rpb246OlJUTCkpCiAg
ICAgICAgIHJldHVybiBQYWdpbmF0aW9uOjpUb3BUb0JvdHRvbVBhZ2luYXRlZDsKICAgICByZXR1
cm4gUGFnaW5hdGlvbjo6Qm90dG9tVG9Ub3BQYWdpbmF0ZWQ7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1dyaXRpbmdNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1dyaXRpbmdNb2RlLmgKaW5kZXggYjMzZDQ1Nzk0ZDI5MjlhMmFiNDc1ODMz
NzYxMTIzNGRkZjBiMGEzNS4uZDlkMGJiZmQ2Yzc1OGEzMjQzMmE3YTcxYzNhYWU4MDJkNjNjOWIy
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvV3JpdGluZ01vZGUuaApAQCAtNDIs
MjYgKzQyLDI2IEBAIGlubGluZSBib29sIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oVGV4dERpcmVj
dGlvbiBkaXJlY3Rpb24pCiAgICAgcmV0dXJuIGRpcmVjdGlvbiA9PSBUZXh0RGlyZWN0aW9uOjpM
VFI7CiB9CiAKLWVudW0gV3JpdGluZ01vZGUgewotICAgIFRvcFRvQm90dG9tV3JpdGluZ01vZGUg
PSAwLCAvLyBob3Jpem9udGFsLXRiCi0gICAgQm90dG9tVG9Ub3BXcml0aW5nTW9kZSA9IDEsIC8v
IGhvcml6b250YWwtYnQKLSAgICBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlID0gMiwgLy8gdmVydGlj
YWwtbHIKLSAgICBSaWdodFRvTGVmdFdyaXRpbmdNb2RlID0gMywgLy8gdmVydGljYWwtcmwKK2Vu
dW0gY2xhc3MgV3JpdGluZ01vZGUgOiB1aW50OF90IHsKKyAgICBUb3BUb0JvdHRvbSA9IDAsIC8v
IGhvcml6b250YWwtdGIKKyAgICBCb3R0b21Ub1RvcCA9IDEsIC8vIGhvcml6b250YWwtYnQKKyAg
ICBMZWZ0VG9SaWdodCA9IDIsIC8vIHZlcnRpY2FsLWxyCisgICAgUmlnaHRUb0xlZnQgPSAzLCAv
LyB2ZXJ0aWNhbC1ybAogfTsKIAotI2RlZmluZSBNQUtFX1RFWFRfRkxPVyh3cml0aW5nTW9kZSwg
ZGlyZWN0aW9uKSAgKCh3cml0aW5nTW9kZSkgPDwgMSB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihk
aXJlY3Rpb24pKQorI2RlZmluZSBNQUtFX1RFWFRfRkxPVyh3cml0aW5nTW9kZSwgZGlyZWN0aW9u
KSAgKHN0YXRpY19jYXN0PHVuc2lnbmVkPih3cml0aW5nTW9kZSkgPDwgMSB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkaXJlY3Rpb24pKQogCiAvLyBEZWZpbmUgdGhlIHRleHQgZmxvdyBpbiB0ZXJt
cyBvZiB0aGUgd3JpdGluZyBtb2RlIGFuZCB0aGUgdGV4dCBkaXJlY3Rpb24uIFRoZSBmaXJzdAog
Ly8gcGFydCBpcyB0aGUgbGluZSBncm93aW5nIGRpcmVjdGlvbiBhbmQgdGhlIHNlY29uZCBwYXJ0
IGlzIHRoZSBibG9jayBncm93aW5nIGRpcmVjdGlvbi4KIGVudW0gVGV4dEZsb3cgewotICAgIElu
bGluZUVhc3RCbG9ja1NvdXRoID0gTUFLRV9URVhUX0ZMT1coVG9wVG9Cb3R0b21Xcml0aW5nTW9k
ZSwgVGV4dERpcmVjdGlvbjo6TFRSKSwKLSAgICBJbmxpbmVXZXN0QmxvY2tTb3V0aCA9IE1BS0Vf
VEVYVF9GTE9XKFRvcFRvQm90dG9tV3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb246OlJUTCksCi0g
ICAgSW5saW5lRWFzdEJsb2NrTm9ydGggPSBNQUtFX1RFWFRfRkxPVyhCb3R0b21Ub1RvcFdyaXRp
bmdNb2RlLCBUZXh0RGlyZWN0aW9uOjpMVFIpLAotICAgIElubGluZVdlc3RCbG9ja05vcnRoID0g
TUFLRV9URVhUX0ZMT1coQm90dG9tVG9Ub3BXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbjo6UlRM
KSwKLSAgICBJbmxpbmVTb3V0aEJsb2NrRWFzdCA9IE1BS0VfVEVYVF9GTE9XKExlZnRUb1JpZ2h0
V3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb246OkxUUiksCi0gICAgSW5saW5lU291dGhCbG9ja1dl
c3QgPSBNQUtFX1RFWFRfRkxPVyhMZWZ0VG9SaWdodFdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0aW9u
OjpSVEwpLAotICAgIElubGluZU5vcnRoQmxvY2tFYXN0ID0gTUFLRV9URVhUX0ZMT1coUmlnaHRU
b0xlZnRXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbjo6TFRSKSwKLSAgICBJbmxpbmVOb3J0aEJs
b2NrV2VzdCA9IE1BS0VfVEVYVF9GTE9XKFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGUsIFRleHREaXJl
Y3Rpb246OlJUTCkKKyAgICBJbmxpbmVFYXN0QmxvY2tTb3V0aCA9IE1BS0VfVEVYVF9GTE9XKFdy
aXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwgVGV4dERpcmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVX
ZXN0QmxvY2tTb3V0aCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSwg
VGV4dERpcmVjdGlvbjo6UlRMKSwKKyAgICBJbmxpbmVFYXN0QmxvY2tOb3J0aCA9IE1BS0VfVEVY
VF9GTE9XKFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcCwgVGV4dERpcmVjdGlvbjo6TFRSKSwKKyAg
ICBJbmxpbmVXZXN0QmxvY2tOb3J0aCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpCb3R0
b21Ub1RvcCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKKyAgICBJbmxpbmVTb3V0aEJsb2NrRWFzdCA9
IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodCwgVGV4dERpcmVjdGlvbjo6
TFRSKSwKKyAgICBJbmxpbmVTb3V0aEJsb2NrV2VzdCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdN
b2RlOjpMZWZ0VG9SaWdodCwgVGV4dERpcmVjdGlvbjo6UlRMKSwKKyAgICBJbmxpbmVOb3J0aEJs
b2NrRWFzdCA9IE1BS0VfVEVYVF9GTE9XKFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdCwgVGV4dERp
cmVjdGlvbjo6TFRSKSwKKyAgICBJbmxpbmVOb3J0aEJsb2NrV2VzdCA9IE1BS0VfVEVYVF9GTE9X
KFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdCwgVGV4dERpcmVjdGlvbjo6UlRMKQogfTsKIAogaW5s
aW5lIFRleHRGbG93IG1ha2VUZXh0RmxvdyhXcml0aW5nTW9kZSB3cml0aW5nTW9kZSwgVGV4dERp
cmVjdGlvbiBkaXJlY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
R3JpZEJhc2VsaW5lQWxpZ25tZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Hcmlk
QmFzZWxpbmVBbGlnbm1lbnQuY3BwCmluZGV4IDY2MDkwOThmOWM4NzA0Njg4MTE0MThhYjE3ODI5
NDE3YmVlMmQxOTUuLjE1NDAzYTg1ZWRlZmVlYTRhY2NiYjNjNTM0ZDU1ZGIwMGVhOWYyOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkQmFzZWxpbmVBbGlnbm1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9HcmlkQmFzZWxpbmVBbGlnbm1lbnQu
Y3BwCkBAIC0xNzYsMTIgKzE3NiwxMiBAQCB2b2lkIEJhc2VsaW5lR3JvdXA6OnVwZGF0ZShjb25z
dCBSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbml0IGFzY2VudCwgTGF5b3V0VW5pdAogYm9vbCBC
YXNlbGluZUdyb3VwOjppc09wcG9zaXRlQmxvY2tGbG93KFdyaXRpbmdNb2RlIGJsb2NrRmxvdykg
Y29uc3QKIHsKICAgICBzd2l0Y2ggKGJsb2NrRmxvdykgewotICAgIGNhc2UgV3JpdGluZ01vZGU6
OlRvcFRvQm90dG9tV3JpdGluZ01vZGU6CisgICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0
b206CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIFdyaXRpbmdNb2RlOjpMZWZ0VG9S
aWdodFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gbV9ibG9ja0Zsb3cgPT0gV3JpdGluZ01v
ZGU6OlJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU7Ci0gICAgY2FzZSBXcml0aW5nTW9kZTo6UmlnaHRU
b0xlZnRXcml0aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fYmxvY2tGbG93ID09IFdyaXRpbmdN
b2RlOjpMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOworICAgIGNhc2UgV3JpdGluZ01vZGU6OkxlZnRU
b1JpZ2h0OgorICAgICAgICByZXR1cm4gbV9ibG9ja0Zsb3cgPT0gV3JpdGluZ01vZGU6OlJpZ2h0
VG9MZWZ0OworICAgIGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0OgorICAgICAgICByZXR1
cm4gbV9ibG9ja0Zsb3cgPT0gV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0OwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC0xOTEsMTEgKzE5MSwxMSBAQCBib29sIEJhc2VsaW5lR3JvdXA6OmlzT3Bwb3NpdGVCbG9ja0Zs
b3coV3JpdGluZ01vZGUgYmxvY2tGbG93KSBjb25zdAogYm9vbCBCYXNlbGluZUdyb3VwOjppc09y
dGhvZ29uYWxCbG9ja0Zsb3coV3JpdGluZ01vZGUgYmxvY2tGbG93KSBjb25zdAogewogICAgIHN3
aXRjaCAoYmxvY2tGbG93KSB7Ci0gICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b21Xcml0
aW5nTW9kZToKLSAgICAgICAgcmV0dXJuIG1fYmxvY2tGbG93ICE9IFdyaXRpbmdNb2RlOjpUb3BU
b0JvdHRvbVdyaXRpbmdNb2RlOwotICAgIGNhc2UgV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0V3Jp
dGluZ01vZGU6Ci0gICAgY2FzZSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnRXcml0aW5nTW9kZToK
LSAgICAgICAgcmV0dXJuIG1fYmxvY2tGbG93ID09IFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbVdy
aXRpbmdNb2RlOworICAgIGNhc2UgV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tOgorICAgICAgICBy
ZXR1cm4gbV9ibG9ja0Zsb3cgIT0gV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tOworICAgIGNhc2Ug
V3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0OgorICAgIGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9M
ZWZ0OgorICAgICAgICByZXR1cm4gbV9ibG9ja0Zsb3cgPT0gV3JpdGluZ01vZGU6OlRvcFRvQm90
dG9tOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApp
bmRleCA2NTY2YTI5MWIxYTQ5NGVhYWMzNTk1M2IyZjE1MTQ2ZjliOTFhMTk0Li40YmIwMmU5OWUw
ZjY3ZWNjNTA1NmJiYTk2ZmY5OTJjZTc0MzMwZDU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKQEAgLTMzNDgsMTIgKzMzNDgsMTIgQEAgdm9pZCBSZW5kZXJCbG9j
azo6YWRqdXN0Qm9yZGVyQm94UmVjdEZvclBhaW50aW5nKExheW91dFJlY3QmIHBhaW50UmVjdCkK
ICAgICBpZiAoc3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7CiAgICAgICAgIExh
eW91dFVuaXQgeU9mZiA9IHN0ZDo6bWF4KDBfbHUsIChsZWdlbmQtPmhlaWdodCgpIC0gUmVuZGVy
Qm94Ojpib3JkZXJCZWZvcmUoKSkgLyAyKTsKICAgICAgICAgcGFpbnRSZWN0LnNldEhlaWdodChw
YWludFJlY3QuaGVpZ2h0KCkgLSB5T2ZmKTsKLSAgICAgICAgaWYgKHN0eWxlKCkud3JpdGluZ01v
ZGUoKSA9PSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlKQorICAgICAgICBpZiAoc3R5bGUoKS53cml0
aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSkKICAgICAgICAgICAgIHBhaW50
UmVjdC5zZXRZKHBhaW50UmVjdC55KCkgKyB5T2ZmKTsKICAgICB9IGVsc2UgewogICAgICAgICBM
YXlvdXRVbml0IHhPZmYgPSBzdGQ6Om1heCgwX2x1LCAobGVnZW5kLT53aWR0aCgpIC0gUmVuZGVy
Qm94Ojpib3JkZXJCZWZvcmUoKSkgLyAyKTsKICAgICAgICAgcGFpbnRSZWN0LnNldFdpZHRoKHBh
aW50UmVjdC53aWR0aCgpIC0geE9mZik7Ci0gICAgICAgIGlmIChzdHlsZSgpLndyaXRpbmdNb2Rl
KCkgPT0gTGVmdFRvUmlnaHRXcml0aW5nTW9kZSkKKyAgICAgICAgaWYgKHN0eWxlKCkud3JpdGlu
Z01vZGUoKSA9PSBXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQpCiAgICAgICAgICAgICBwYWludFJl
Y3Quc2V0WChwYWludFJlY3QueCgpICsgeE9mZik7CiAgICAgfQogfQpAQCAtMzM3MCwxMSArMzM3
MCwxMSBAQCBMYXlvdXRSZWN0IFJlbmRlckJsb2NrOjpwYWludFJlY3RUb0NsaXBPdXRGcm9tQm9y
ZGVyKGNvbnN0IExheW91dFJlY3QmIHBhaW50UmVjdAogICAgIExheW91dFVuaXQgYm9yZGVyRXh0
ZW50ID0gUmVuZGVyQm94Ojpib3JkZXJCZWZvcmUoKTsKICAgICBpZiAoc3R5bGUoKS5pc0hvcml6
b250YWxXcml0aW5nTW9kZSgpKSB7CiAgICAgICAgIGNsaXBSZWN0LnNldFgocGFpbnRSZWN0Lngo
KSArIGxlZ2VuZC0+eCgpKTsKLSAgICAgICAgY2xpcFJlY3Quc2V0WShzdHlsZSgpLndyaXRpbmdN
b2RlKCkgPT0gVG9wVG9Cb3R0b21Xcml0aW5nTW9kZSA/IHBhaW50UmVjdC55KCkgOiBwYWludFJl
Y3QueSgpICsgcGFpbnRSZWN0LmhlaWdodCgpIC0gYm9yZGVyRXh0ZW50KTsKKyAgICAgICAgY2xp
cFJlY3Quc2V0WShzdHlsZSgpLndyaXRpbmdNb2RlKCkgPT0gV3JpdGluZ01vZGU6OlRvcFRvQm90
dG9tID8gcGFpbnRSZWN0LnkoKSA6IHBhaW50UmVjdC55KCkgKyBwYWludFJlY3QuaGVpZ2h0KCkg
LSBib3JkZXJFeHRlbnQpOwogICAgICAgICBjbGlwUmVjdC5zZXRXaWR0aChsZWdlbmQtPndpZHRo
KCkpOwogICAgICAgICBjbGlwUmVjdC5zZXRIZWlnaHQoYm9yZGVyRXh0ZW50KTsKICAgICB9IGVs
c2UgewotICAgICAgICBjbGlwUmVjdC5zZXRYKHN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBMZWZ0
VG9SaWdodFdyaXRpbmdNb2RlID8gcGFpbnRSZWN0LngoKSA6IHBhaW50UmVjdC54KCkgKyBwYWlu
dFJlY3Qud2lkdGgoKSAtIGJvcmRlckV4dGVudCk7CisgICAgICAgIGNsaXBSZWN0LnNldFgoc3R5
bGUoKS53cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodCA/IHBhaW50UmVj
dC54KCkgOiBwYWludFJlY3QueCgpICsgcGFpbnRSZWN0LndpZHRoKCkgLSBib3JkZXJFeHRlbnQp
OwogICAgICAgICBjbGlwUmVjdC5zZXRZKHBhaW50UmVjdC55KCkgKyBsZWdlbmQtPnkoKSk7CiAg
ICAgICAgIGNsaXBSZWN0LnNldFdpZHRoKGJvcmRlckV4dGVudCk7CiAgICAgICAgIGNsaXBSZWN0
LnNldEhlaWdodChsZWdlbmQtPmhlaWdodCgpKTsKQEAgLTM0MDEsMjggKzM0MDEsMjggQEAgdm9p
ZCBSZW5kZXJCbG9jazo6c2V0SW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoTGF5b3V0VW5pdCBw
YWRkaW5nKQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpib3JkZXJUb3AoKSBjb25zdAogewot
ICAgIGlmIChzdHlsZSgpLndyaXRpbmdNb2RlKCkgIT0gVG9wVG9Cb3R0b21Xcml0aW5nTW9kZSB8
fCAhaW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKSkKKyAgICBpZiAoc3R5bGUoKS53cml0aW5n
TW9kZSgpICE9IFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSB8fCAhaW50cmluc2ljQm9yZGVyRm9y
RmllbGRzZXQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckJveDo6Ym9yZGVyVG9wKCk7CiAgICAg
cmV0dXJuIFJlbmRlckJveDo6Ym9yZGVyVG9wKCkgKyBpbnRyaW5zaWNCb3JkZXJGb3JGaWVsZHNl
dCgpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpib3JkZXJMZWZ0KCkgY29uc3QKIHsK
LSAgICBpZiAoc3R5bGUoKS53cml0aW5nTW9kZSgpICE9IExlZnRUb1JpZ2h0V3JpdGluZ01vZGUg
fHwgIWludHJpbnNpY0JvcmRlckZvckZpZWxkc2V0KCkpCisgICAgaWYgKHN0eWxlKCkud3JpdGlu
Z01vZGUoKSAhPSBXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQgfHwgIWludHJpbnNpY0JvcmRlckZv
ckZpZWxkc2V0KCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJCb3g6OmJvcmRlckxlZnQoKTsKICAg
ICByZXR1cm4gUmVuZGVyQm94Ojpib3JkZXJMZWZ0KCkgKyBpbnRyaW5zaWNCb3JkZXJGb3JGaWVs
ZHNldCgpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpib3JkZXJCb3R0b20oKSBjb25z
dAogewotICAgIGlmIChzdHlsZSgpLndyaXRpbmdNb2RlKCkgIT0gQm90dG9tVG9Ub3BXcml0aW5n
TW9kZSB8fCAhaW50cmluc2ljQm9yZGVyRm9yRmllbGRzZXQoKSkKKyAgICBpZiAoc3R5bGUoKS53
cml0aW5nTW9kZSgpICE9IFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcCB8fCAhaW50cmluc2ljQm9y
ZGVyRm9yRmllbGRzZXQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlckJveDo6Ym9yZGVyQm90dG9t
KCk7CiAgICAgcmV0dXJuIFJlbmRlckJveDo6Ym9yZGVyQm90dG9tKCkgKyBpbnRyaW5zaWNCb3Jk
ZXJGb3JGaWVsZHNldCgpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlckJsb2NrOjpib3JkZXJSaWdo
dCgpIGNvbnN0CiB7Ci0gICAgaWYgKHN0eWxlKCkud3JpdGluZ01vZGUoKSAhPSBSaWdodFRvTGVm
dFdyaXRpbmdNb2RlIHx8ICFpbnRyaW5zaWNCb3JkZXJGb3JGaWVsZHNldCgpKQorICAgIGlmIChz
dHlsZSgpLndyaXRpbmdNb2RlKCkgIT0gV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0IHx8ICFpbnRy
aW5zaWNCb3JkZXJGb3JGaWVsZHNldCgpKQogICAgICAgICByZXR1cm4gUmVuZGVyQm94Ojpib3Jk
ZXJSaWdodCgpOwogICAgIHJldHVybiBSZW5kZXJCb3g6OmJvcmRlclJpZ2h0KCkgKyBpbnRyaW5z
aWNCb3JkZXJGb3JGaWVsZHNldCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAppbmRleCA1ZDY0Y2ZmNjVjNDQ5NmUzYjAxNjQ4ZjM5MTNjN2NiYzJkYWUzMTlhLi44ZjNm
YjhmYTI2YzkyNTA4OGNlMjdiNjExMzY2NWFmMjdjYzk1YmE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMjc1NiwxNyArMjc1NiwxNyBAQCBzdGF0aWMgYm9vbCBz
aG91bGRGbGlwQmVmb3JlQWZ0ZXJNYXJnaW5zKGNvbnN0IFJlbmRlclN0eWxlJiBjb250YWluaW5n
QmxvY2tTdHlsZQogICAgIFdyaXRpbmdNb2RlIGNoaWxkV3JpdGluZ01vZGUgPSBjaGlsZFN0eWxl
LT53cml0aW5nTW9kZSgpOwogICAgIGJvb2wgc2hvdWxkRmxpcCA9IGZhbHNlOwogICAgIHN3aXRj
aCAoY29udGFpbmluZ0Jsb2NrU3R5bGUud3JpdGluZ01vZGUoKSkgewotICAgIGNhc2UgVG9wVG9C
b3R0b21Xcml0aW5nTW9kZToKLSAgICAgICAgc2hvdWxkRmxpcCA9IChjaGlsZFdyaXRpbmdNb2Rl
ID09IFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGUpOworICAgIGNhc2UgV3JpdGluZ01vZGU6OlRvcFRv
Qm90dG9tOgorICAgICAgICBzaG91bGRGbGlwID0gKGNoaWxkV3JpdGluZ01vZGUgPT0gV3JpdGlu
Z01vZGU6OlJpZ2h0VG9MZWZ0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBCb3R0b21Ub1Rv
cFdyaXRpbmdNb2RlOgotICAgICAgICBzaG91bGRGbGlwID0gKGNoaWxkV3JpdGluZ01vZGUgPT0g
UmlnaHRUb0xlZnRXcml0aW5nTW9kZSk7CisgICAgY2FzZSBXcml0aW5nTW9kZTo6Qm90dG9tVG9U
b3A6CisgICAgICAgIHNob3VsZEZsaXAgPSAoY2hpbGRXcml0aW5nTW9kZSA9PSBXcml0aW5nTW9k
ZTo6UmlnaHRUb0xlZnQpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3Jp
dGluZ01vZGU6Ci0gICAgICAgIHNob3VsZEZsaXAgPSAoY2hpbGRXcml0aW5nTW9kZSA9PSBCb3R0
b21Ub1RvcFdyaXRpbmdNb2RlKTsKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDoK
KyAgICAgICAgc2hvdWxkRmxpcCA9IChjaGlsZFdyaXRpbmdNb2RlID09IFdyaXRpbmdNb2RlOjpC
b3R0b21Ub1RvcCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5n
TW9kZToKLSAgICAgICAgc2hvdWxkRmxpcCA9IChjaGlsZFdyaXRpbmdNb2RlID09IEJvdHRvbVRv
VG9wV3JpdGluZ01vZGUpOworICAgIGNhc2UgV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0OgorICAg
ICAgICBzaG91bGRGbGlwID0gKGNoaWxkV3JpdGluZ01vZGUgPT0gV3JpdGluZ01vZGU6OkJvdHRv
bVRvVG9wKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC00ODE3LDkgKzQ4MTcsOSBAQCBM
YXlvdXRSZWN0IFJlbmRlckJveDo6dmlzdWFsT3ZlcmZsb3dSZWN0Rm9yUHJvcGFnYXRpb24oY29u
c3QgUmVuZGVyU3R5bGUqIHBhcmVudAogICAgIAogICAgIC8vIFdlIGFyZSBwdXR0aW5nIG91cnNl
bHZlcyBpbnRvIG91ciBwYXJlbnQncyBjb29yZGluYXRlIHNwYWNlLiAgSWYgdGhlcmUgaXMgYSBm
bGlwcGVkIGJsb2NrIG1pc21hdGNoCiAgICAgLy8gaW4gYSBwYXJ0aWN1bGFyIGF4aXMsIHRoZW4g
d2UgaGF2ZSB0byBmbGlwIHRoZSByZWN0IGFsb25nIHRoYXQgYXhpcy4KLSAgICBpZiAoc3R5bGUo
KS53cml0aW5nTW9kZSgpID09IFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGUgfHwgcGFyZW50U3R5bGUt
PndyaXRpbmdNb2RlKCkgPT0gUmlnaHRUb0xlZnRXcml0aW5nTW9kZSkKKyAgICBpZiAoc3R5bGUo
KS53cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdCB8fCBwYXJlbnRTdHls
ZS0+d3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRUb0xlZnQpCiAgICAgICAgIHJl
Y3Quc2V0WCh3aWR0aCgpIC0gcmVjdC5tYXhYKCkpOwotICAgIGVsc2UgaWYgKHN0eWxlKCkud3Jp
dGluZ01vZGUoKSA9PSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlIHx8IHBhcmVudFN0eWxlLT53cml0
aW5nTW9kZSgpID09IEJvdHRvbVRvVG9wV3JpdGluZ01vZGUpCisgICAgZWxzZSBpZiAoc3R5bGUo
KS53cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcCB8fCBwYXJlbnRTdHls
ZS0+d3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6Qm90dG9tVG9Ub3ApCiAgICAgICAgIHJl
Y3Quc2V0WShoZWlnaHQoKSAtIHJlY3QubWF4WSgpKTsKIAogICAgIHJldHVybiByZWN0OwpAQCAt
NDg2OCw5ICs0ODY4LDkgQEAgTGF5b3V0UmVjdCBSZW5kZXJCb3g6OmxheW91dE92ZXJmbG93UmVj
dEZvclByb3BhZ2F0aW9uKGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnQKICAgICAKICAgICAvLyBX
ZSBhcmUgcHV0dGluZyBvdXJzZWx2ZXMgaW50byBvdXIgcGFyZW50J3MgY29vcmRpbmF0ZSBzcGFj
ZS4gIElmIHRoZXJlIGlzIGEgZmxpcHBlZCBibG9jayBtaXNtYXRjaAogICAgIC8vIGluIGEgcGFy
dGljdWxhciBheGlzLCB0aGVuIHdlIGhhdmUgdG8gZmxpcCB0aGUgcmVjdCBhbG9uZyB0aGF0IGF4
aXMuCi0gICAgaWYgKHN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBSaWdodFRvTGVmdFdyaXRpbmdN
b2RlIHx8IHBhcmVudFN0eWxlLT53cml0aW5nTW9kZSgpID09IFJpZ2h0VG9MZWZ0V3JpdGluZ01v
ZGUpCisgICAgaWYgKHN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6UmlnaHRU
b0xlZnQgfHwgcGFyZW50U3R5bGUtPndyaXRpbmdNb2RlKCkgPT0gV3JpdGluZ01vZGU6OlJpZ2h0
VG9MZWZ0KQogICAgICAgICByZWN0LnNldFgod2lkdGgoKSAtIHJlY3QubWF4WCgpKTsKLSAgICBl
bHNlIGlmIChzdHlsZSgpLndyaXRpbmdNb2RlKCkgPT0gQm90dG9tVG9Ub3BXcml0aW5nTW9kZSB8
fCBwYXJlbnRTdHlsZS0+d3JpdGluZ01vZGUoKSA9PSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlKQor
ICAgIGVsc2UgaWYgKHN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6Qm90dG9t
VG9Ub3AgfHwgcGFyZW50U3R5bGUtPndyaXRpbmdNb2RlKCkgPT0gV3JpdGluZ01vZGU6OkJvdHRv
bVRvVG9wKQogICAgICAgICByZWN0LnNldFkoaGVpZ2h0KCkgLSByZWN0Lm1heFkoKSk7CiAKICAg
ICByZXR1cm4gcmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJEZXRhaWxzTWFya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXRh
aWxzTWFya2VyLmNwcAppbmRleCBjNTcwNmE2NTg4OTdlMDhiYjZhMWUyYzU1MTI5MGVmMjNmOWRl
NzljLi43M2E4ZjQ2MTE1YTFkNGQ3Mzg3ZWJmNTllMzJjYmQwYTdjM2FiNTkwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGV0YWlsc01hcmtlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRldGFpbHNNYXJrZXIuY3BwCkBAIC03Niwx
OSArNzYsMTkgQEAgc3RhdGljIFBhdGggY3JlYXRlUmlnaHRBcnJvd1BhdGgoKQogUmVuZGVyRGV0
YWlsc01hcmtlcjo6T3JpZW50YXRpb24gUmVuZGVyRGV0YWlsc01hcmtlcjo6b3JpZW50YXRpb24o
KSBjb25zdAogewogICAgIHN3aXRjaCAoc3R5bGUoKS53cml0aW5nTW9kZSgpKSB7Ci0gICAgY2Fz
ZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgorICAgIGNhc2UgV3JpdGluZ01vZGU6OlRvcFRvQm90
dG9tOgogICAgICAgICBpZiAoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkpCiAgICAg
ICAgICAgICByZXR1cm4gaXNPcGVuKCkgPyBEb3duIDogUmlnaHQ7CiAgICAgICAgIHJldHVybiBp
c09wZW4oKSA/IERvd24gOiBMZWZ0OwotICAgIGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZToK
KyAgICBjYXNlIFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDoKICAgICAgICAgaWYgKHN0eWxlKCku
aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIGlzT3BlbigpID8g
TGVmdCA6IERvd247CiAgICAgICAgIHJldHVybiBpc09wZW4oKSA/IExlZnQgOiBVcDsKLSAgICBj
YXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6CisgICAgY2FzZSBXcml0aW5nTW9kZTo6TGVmdFRv
UmlnaHQ6CiAgICAgICAgIGlmIChzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKICAg
ICAgICAgICAgIHJldHVybiBpc09wZW4oKSA/IFJpZ2h0IDogRG93bjsKICAgICAgICAgcmV0dXJu
IGlzT3BlbigpID8gUmlnaHQgOiBVcDsKLSAgICBjYXNlIEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6
CisgICAgY2FzZSBXcml0aW5nTW9kZTo6Qm90dG9tVG9Ub3A6CiAgICAgICAgIGlmIChzdHlsZSgp
LmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSkKICAgICAgICAgICAgIHJldHVybiBpc09wZW4oKSA/
IFVwIDogUmlnaHQ7CiAgICAgICAgIHJldHVybiBpc09wZW4oKSA/IFVwIDogTGVmdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDc5ZmNk
M2FhZDdlYzA2NTE2MzRjYTM0YzQzMzEzMGYyMTNmM2IzODguLjBhZDM3ZWQ2YjViYWFmMDQ4ZDc0
YmI4OGI3OTliNjAyZjUwNTE1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmNwcApAQCAtNDI5LDcgKzQyOSw3IEBAIGJvb2wgUmVuZGVyRmxleGli
bGVCb3g6OmlzSG9yaXpvbnRhbEZsb3coKSBjb25zdAogYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6
aXNMZWZ0VG9SaWdodEZsb3coKSBjb25zdAogewogICAgIGlmIChpc0NvbHVtbkZsb3coKSkKLSAg
ICAgICAgcmV0dXJuIHN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBUb3BUb0JvdHRvbVdyaXRpbmdN
b2RlIHx8IHN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOwor
ICAgICAgICByZXR1cm4gc3R5bGUoKS53cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpUb3BU
b0JvdHRvbSB8fCBzdHlsZSgpLndyaXRpbmdNb2RlKCkgPT0gV3JpdGluZ01vZGU6OkxlZnRUb1Jp
Z2h0OwogICAgIHJldHVybiBzdHlsZSgpLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSBeIChzdHls
ZSgpLmZsZXhEaXJlY3Rpb24oKSA9PSBGbGV4RGlyZWN0aW9uOjpSb3dSZXZlcnNlKTsKIH0KIApA
QCAtNTk2LDE1ICs1OTYsMTUgQEAgV3JpdGluZ01vZGUgUmVuZGVyRmxleGlibGVCb3g6OnRyYW5z
Zm9ybWVkV3JpdGluZ01vZGUoKSBjb25zdAogICAgICAgICByZXR1cm4gbW9kZTsKICAgICAKICAg
ICBzd2l0Y2ggKG1vZGUpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6Ci0gICAg
Y2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gc3R5bGUoKS5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlIDogUmlnaHRUb0xl
ZnRXcml0aW5nTW9kZTsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6Ci0gICAgY2Fz
ZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgotICAgICAgICByZXR1cm4gc3R5bGUoKS5pc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKCkgPyBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlIDogQm90dG9tVG9Ub3BX
cml0aW5nTW9kZTsKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbToKKyAgICBjYXNl
IFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcDoKKyAgICAgICAgcmV0dXJuIHN0eWxlKCkuaXNMZWZ0
VG9SaWdodERpcmVjdGlvbigpID8gV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0IDogV3JpdGluZ01v
ZGU6OlJpZ2h0VG9MZWZ0OworICAgIGNhc2UgV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0OgorICAg
IGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0OgorICAgICAgICByZXR1cm4gc3R5bGUoKS5p
c0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgPyBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b20gOiBXcml0
aW5nTW9kZTo6Qm90dG9tVG9Ub3A7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOworICAgIHJldHVybiBXcml0aW5nTW9k
ZTo6VG9wVG9Cb3R0b207CiB9CiAKIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmZsb3dB
d2FyZUJvcmRlclN0YXJ0KCkgY29uc3QKQEAgLTYyNCwxMyArNjI0LDEzIEBAIExheW91dFVuaXQg
UmVuZGVyRmxleGlibGVCb3g6OmZsb3dBd2FyZUJvcmRlckVuZCgpIGNvbnN0CiBMYXlvdXRVbml0
IFJlbmRlckZsZXhpYmxlQm94OjpmbG93QXdhcmVCb3JkZXJCZWZvcmUoKSBjb25zdAogewogICAg
IHN3aXRjaCAodHJhbnNmb3JtZWRXcml0aW5nTW9kZSgpKSB7Ci0gICAgY2FzZSBUb3BUb0JvdHRv
bVdyaXRpbmdNb2RlOgorICAgIGNhc2UgV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tOgogICAgICAg
ICByZXR1cm4gYm9yZGVyVG9wKCk7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgor
ICAgIGNhc2UgV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wOgogICAgICAgICByZXR1cm4gYm9yZGVy
Qm90dG9tKCk7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgorICAgIGNhc2UgV3Jp
dGluZ01vZGU6OkxlZnRUb1JpZ2h0OgogICAgICAgICByZXR1cm4gYm9yZGVyTGVmdCgpOwotICAg
IGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZToKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpSaWdo
dFRvTGVmdDoKICAgICAgICAgcmV0dXJuIGJvcmRlclJpZ2h0KCk7CiAgICAgfQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpAQCAtNjQwLDEzICs2NDAsMTMgQEAgTGF5b3V0VW5pdCBSZW5kZXJG
bGV4aWJsZUJveDo6Zmxvd0F3YXJlQm9yZGVyQmVmb3JlKCkgY29uc3QKIExheW91dFVuaXQgUmVu
ZGVyRmxleGlibGVCb3g6OmZsb3dBd2FyZUJvcmRlckFmdGVyKCkgY29uc3QKIHsKICAgICBzd2l0
Y2ggKHRyYW5zZm9ybWVkV3JpdGluZ01vZGUoKSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0
aW5nTW9kZToKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbToKICAgICAgICAgcmV0
dXJuIGJvcmRlckJvdHRvbSgpOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKKyAg
ICBjYXNlIFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcDoKICAgICAgICAgcmV0dXJuIGJvcmRlclRv
cCgpOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKKyAgICBjYXNlIFdyaXRpbmdN
b2RlOjpMZWZ0VG9SaWdodDoKICAgICAgICAgcmV0dXJuIGJvcmRlclJpZ2h0KCk7Ci0gICAgY2Fz
ZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgorICAgIGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9M
ZWZ0OgogICAgICAgICByZXR1cm4gYm9yZGVyTGVmdCgpOwogICAgIH0KICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTY3MCwxMyArNjcwLDEzIEBAIExheW91dFVuaXQgUmVuZGVyRmxleGli
bGVCb3g6OmZsb3dBd2FyZVBhZGRpbmdFbmQoKSBjb25zdAogTGF5b3V0VW5pdCBSZW5kZXJGbGV4
aWJsZUJveDo6Zmxvd0F3YXJlUGFkZGluZ0JlZm9yZSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoICh0
cmFuc2Zvcm1lZFdyaXRpbmdNb2RlKCkpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01v
ZGU6CisgICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b206CiAgICAgICAgIHJldHVybiBw
YWRkaW5nVG9wKCk7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgorICAgIGNhc2Ug
V3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wOgogICAgICAgICByZXR1cm4gcGFkZGluZ0JvdHRvbSgp
OwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKKyAgICBjYXNlIFdyaXRpbmdNb2Rl
OjpMZWZ0VG9SaWdodDoKICAgICAgICAgcmV0dXJuIHBhZGRpbmdMZWZ0KCk7Ci0gICAgY2FzZSBS
aWdodFRvTGVmdFdyaXRpbmdNb2RlOgorICAgIGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0
OgogICAgICAgICByZXR1cm4gcGFkZGluZ1JpZ2h0KCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwpAQCAtNjg2LDEzICs2ODYsMTMgQEAgTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJs
ZUJveDo6Zmxvd0F3YXJlUGFkZGluZ0JlZm9yZSgpIGNvbnN0CiBMYXlvdXRVbml0IFJlbmRlckZs
ZXhpYmxlQm94OjpmbG93QXdhcmVQYWRkaW5nQWZ0ZXIoKSBjb25zdAogewogICAgIHN3aXRjaCAo
dHJhbnNmb3JtZWRXcml0aW5nTW9kZSgpKSB7Ci0gICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdN
b2RlOgorICAgIGNhc2UgV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tOgogICAgICAgICByZXR1cm4g
cGFkZGluZ0JvdHRvbSgpOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToKKyAgICBj
YXNlIFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcDoKICAgICAgICAgcmV0dXJuIHBhZGRpbmdUb3Ao
KTsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6CisgICAgY2FzZSBXcml0aW5nTW9k
ZTo6TGVmdFRvUmlnaHQ6CiAgICAgICAgIHJldHVybiBwYWRkaW5nUmlnaHQoKTsKLSAgICBjYXNl
IFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6CisgICAgY2FzZSBXcml0aW5nTW9kZTo6UmlnaHRUb0xl
ZnQ6CiAgICAgICAgIHJldHVybiBwYWRkaW5nTGVmdCgpOwogICAgIH0KICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKQEAgLTcxNiwxMyArNzE2LDEzIEBAIExheW91dFVuaXQgUmVuZGVyRmxleGli
bGVCb3g6OmZsb3dBd2FyZU1hcmdpbkVuZEZvckNoaWxkKGNvbnN0IFJlbmRlckJveCYgY2hpbGQp
CiBMYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjpmbG93QXdhcmVNYXJnaW5CZWZvcmVGb3JD
aGlsZChjb25zdCBSZW5kZXJCb3gmIGNoaWxkKSBjb25zdAogewogICAgIHN3aXRjaCAodHJhbnNm
b3JtZWRXcml0aW5nTW9kZSgpKSB7Ci0gICAgY2FzZSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlOgor
ICAgIGNhc2UgV3JpdGluZ01vZGU6OlRvcFRvQm90dG9tOgogICAgICAgICByZXR1cm4gY2hpbGQu
bWFyZ2luVG9wKCk7Ci0gICAgY2FzZSBCb3R0b21Ub1RvcFdyaXRpbmdNb2RlOgorICAgIGNhc2Ug
V3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wOgogICAgICAgICByZXR1cm4gY2hpbGQubWFyZ2luQm90
dG9tKCk7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgorICAgIGNhc2UgV3JpdGlu
Z01vZGU6OkxlZnRUb1JpZ2h0OgogICAgICAgICByZXR1cm4gY2hpbGQubWFyZ2luTGVmdCgpOwot
ICAgIGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZToKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpS
aWdodFRvTGVmdDoKICAgICAgICAgcmV0dXJuIGNoaWxkLm1hcmdpblJpZ2h0KCk7CiAgICAgfQog
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmNwcAppbmRleCBmMjY0NWVhMzAwOWM3MTc0MmZiNTcyYmUzMGMwODRhYTNk
Yzc2OTVkLi4wMWJjNDc3Yzk2ZTNhNjgyM2RhMzliMzM4ZmE0OTYwMzI1ZWQyMmU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcApAQCAtMjkzLDcgKzI5
Myw3IEBAIExheW91dFVuaXQgUmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nVG9wKCkgY29uc3QKICAg
ICBMYXlvdXRVbml0IHJlc3VsdCA9IGNvbXB1dGVkQ1NTUGFkZGluZ1RvcCgpOwogICAgIGlmICgh
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICBy
ZXR1cm4gcmVzdWx0ICsgKHN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBUb3BUb0JvdHRvbVdyaXRp
bmdNb2RlID8gaW50cmluc2ljUGFkZGluZ0JlZm9yZSgpIDogaW50cmluc2ljUGFkZGluZ0FmdGVy
KCkpOworICAgIHJldHVybiByZXN1bHQgKyAoc3R5bGUoKS53cml0aW5nTW9kZSgpID09IFdyaXRp
bmdNb2RlOjpUb3BUb0JvdHRvbSA/IGludHJpbnNpY1BhZGRpbmdCZWZvcmUoKSA6IGludHJpbnNp
Y1BhZGRpbmdBZnRlcigpKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRp
bmdCb3R0b20oKSBjb25zdApAQCAtMzAxLDcgKzMwMSw3IEBAIExheW91dFVuaXQgUmVuZGVyVGFi
bGVDZWxsOjpwYWRkaW5nQm90dG9tKCkgY29uc3QKICAgICBMYXlvdXRVbml0IHJlc3VsdCA9IGNv
bXB1dGVkQ1NTUGFkZGluZ0JvdHRvbSgpOwogICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAgICByZXR1cm4gcmVzdWx0ICsgKHN0eWxl
KCkud3JpdGluZ01vZGUoKSA9PSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlID8gaW50cmluc2ljUGFk
ZGluZ0FmdGVyKCkgOiBpbnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkpOworICAgIHJldHVybiByZXN1
bHQgKyAoc3R5bGUoKS53cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbSA/
IGludHJpbnNpY1BhZGRpbmdBZnRlcigpIDogaW50cmluc2ljUGFkZGluZ0JlZm9yZSgpKTsKIH0K
IAogTGF5b3V0VW5pdCBSZW5kZXJUYWJsZUNlbGw6OnBhZGRpbmdMZWZ0KCkgY29uc3QKQEAgLTMw
OSw3ICszMDksNyBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlQ2VsbDo6cGFkZGluZ0xlZnQoKSBj
b25zdAogICAgIExheW91dFVuaXQgcmVzdWx0ID0gY29tcHV0ZWRDU1NQYWRkaW5nTGVmdCgpOwog
ICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICByZXR1cm4gcmVzdWx0
OwotICAgIHJldHVybiByZXN1bHQgKyAoc3R5bGUoKS53cml0aW5nTW9kZSgpID09IExlZnRUb1Jp
Z2h0V3JpdGluZ01vZGUgPyBpbnRyaW5zaWNQYWRkaW5nQmVmb3JlKCkgOiBpbnRyaW5zaWNQYWRk
aW5nQWZ0ZXIoKSk7CisgICAgcmV0dXJuIHJlc3VsdCArIChzdHlsZSgpLndyaXRpbmdNb2RlKCkg
PT0gV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0ID8gaW50cmluc2ljUGFkZGluZ0JlZm9yZSgpIDog
aW50cmluc2ljUGFkZGluZ0FmdGVyKCkpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlclRhYmxlQ2Vs
bDo6cGFkZGluZ1JpZ2h0KCkgY29uc3QKQEAgLTMxNyw3ICszMTcsNyBAQCBMYXlvdXRVbml0IFJl
bmRlclRhYmxlQ2VsbDo6cGFkZGluZ1JpZ2h0KCkgY29uc3QKICAgICBMYXlvdXRVbml0IHJlc3Vs
dCA9IGNvbXB1dGVkQ1NTUGFkZGluZ1JpZ2h0KCk7CiAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkpCiAgICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgcmV0dXJuIHJlc3VsdCArIChz
dHlsZSgpLndyaXRpbmdNb2RlKCkgPT0gTGVmdFRvUmlnaHRXcml0aW5nTW9kZSA/IGludHJpbnNp
Y1BhZGRpbmdBZnRlcigpIDogaW50cmluc2ljUGFkZGluZ0JlZm9yZSgpKTsKKyAgICByZXR1cm4g
cmVzdWx0ICsgKHN0eWxlKCkud3JpdGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6TGVmdFRvUmln
aHQgPyBpbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoKSA6IGludHJpbnNpY1BhZGRpbmdCZWZvcmUoKSk7
CiB9CiAKIExheW91dFVuaXQgUmVuZGVyVGFibGVDZWxsOjpwYWRkaW5nQmVmb3JlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCA3
NGVhNWQ1ZjQ3MDUxOThlMmVjMzk3NDk4ZmYyMjA3MzA0YTQ3MjJhLi40ZTkzM2IzZGVmMWNlZGFm
Y2U0ZGUyYzkwYjhhZDc5NjdkZDQwZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRyZWVBc1RleHQuY3BwCkBAIC0yNzIsMTMgKzI3MiwxMyBAQCB2b2lkIFJlbmRlclRy
ZWVBc1RleHQ6OndyaXRlUmVuZGVyT2JqZWN0KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJP
YmplY3QmIG8sCiAgICAgICAgIExheW91dFVuaXQgYm9yZGVyTGVmdCA9IGJveC5ib3JkZXJMZWZ0
KCk7CiAgICAgICAgIGlmIChib3guaXNGaWVsZHNldCgpKSB7CiAgICAgICAgICAgICBjb25zdCBh
dXRvJiBibG9jayA9IGRvd25jYXN0PFJlbmRlckJsb2NrPihib3gpOwotICAgICAgICAgICAgaWYg
KG8uc3R5bGUoKS53cml0aW5nTW9kZSgpID09IFRvcFRvQm90dG9tV3JpdGluZ01vZGUpCisgICAg
ICAgICAgICBpZiAoby5zdHlsZSgpLndyaXRpbmdNb2RlKCkgPT0gV3JpdGluZ01vZGU6OlRvcFRv
Qm90dG9tKQogICAgICAgICAgICAgICAgIGJvcmRlclRvcCAtPSBibG9jay5pbnRyaW5zaWNCb3Jk
ZXJGb3JGaWVsZHNldCgpOwotICAgICAgICAgICAgZWxzZSBpZiAoby5zdHlsZSgpLndyaXRpbmdN
b2RlKCkgPT0gQm90dG9tVG9Ub3BXcml0aW5nTW9kZSkKKyAgICAgICAgICAgIGVsc2UgaWYgKG8u
c3R5bGUoKS53cml0aW5nTW9kZSgpID09IFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcCkKICAgICAg
ICAgICAgICAgICBib3JkZXJCb3R0b20gLT0gYmxvY2suaW50cmluc2ljQm9yZGVyRm9yRmllbGRz
ZXQoKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG8uc3R5bGUoKS53cml0aW5nTW9kZSgpID09IExl
ZnRUb1JpZ2h0V3JpdGluZ01vZGUpCisgICAgICAgICAgICBlbHNlIGlmIChvLnN0eWxlKCkud3Jp
dGluZ01vZGUoKSA9PSBXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQpCiAgICAgICAgICAgICAgICAg
Ym9yZGVyTGVmdCAtPSBibG9jay5pbnRyaW5zaWNCb3JkZXJGb3JGaWVsZHNldCgpOwotICAgICAg
ICAgICAgZWxzZSBpZiAoby5zdHlsZSgpLndyaXRpbmdNb2RlKCkgPT0gUmlnaHRUb0xlZnRXcml0
aW5nTW9kZSkKKyAgICAgICAgICAgIGVsc2UgaWYgKG8uc3R5bGUoKS53cml0aW5nTW9kZSgpID09
IFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdCkKICAgICAgICAgICAgICAgICBib3JkZXJSaWdodCAt
PSBibG9jay5pbnRyaW5zaWNCb3JkZXJGb3JGaWVsZHNldCgpOwogICAgICAgICAgICAgCiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5
b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TaW1wbGVMaW5lTGF5b3V0LmNwcApp
bmRleCAxMDkyZmQxZjEwNGFkZjliOGY1ODg1NTQ2ZmE4YWFlMmQwMGVmMzgzLi5lMjhlYWIzYWM1
MDJiMTg1NjA3MTg3ODZjMWY3OWQ0ZjZmNDY3Yjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2ltcGxlTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1NpbXBsZUxpbmVMYXlvdXQuY3BwCkBAIC0yMTAsNyArMjEwLDcgQEAgc3RhdGljIEF2
b2lkYW5jZVJlYXNvbkZsYWdzIGNhblVzZUZvclN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSwgSW5jbHVkZVJlYXMKICAgICAgICAgU0VUX1JFQVNPTl9BTkRfUkVUVVJOX0lGX05FRURFRChG
bG93SXNOb3RMVFIsIHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKICAgICBpZiAoIShzdHlsZS5s
aW5lQm94Q29udGFpbigpLmNvbnRhaW5zKExpbmVCb3hDb250YWluOjpCbG9jaykpKQogICAgICAg
ICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZsb3dIYXNMaW5lQm94Q29udGFpblBy
b3BlcnR5LCByZWFzb25zLCBpbmNsdWRlUmVhc29ucyk7Ci0gICAgaWYgKHN0eWxlLndyaXRpbmdN
b2RlKCkgIT0gVG9wVG9Cb3R0b21Xcml0aW5nTW9kZSkKKyAgICBpZiAoc3R5bGUud3JpdGluZ01v
ZGUoKSAhPSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b20pCiAgICAgICAgIFNFVF9SRUFTT05fQU5E
X1JFVFVSTl9JRl9ORUVERUQoRmxvd0lzTm90VG9wVG9Cb3R0b20sIHJlYXNvbnMsIGluY2x1ZGVS
ZWFzb25zKTsKICAgICBpZiAoc3R5bGUubGluZUJyZWFrKCkgIT0gTGluZUJyZWFrOjpBdXRvKQog
ICAgICAgICBTRVRfUkVBU09OX0FORF9SRVRVUk5fSUZfTkVFREVEKEZsb3dIYXNMaW5lQnJlYWss
IHJlYXNvbnMsIGluY2x1ZGVSZWFzb25zKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zaGFwZXMvU2hhcGVPdXRzaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc2hhcGVzL1NoYXBlT3V0c2lkZUluZm8uY3BwCmluZGV4IGQ0ZDczMzkxMmRlNGY3MWYx
YjUzYjkyODM2OTliZjVmMzAxMzUwNWIuLjcyM2YxZDU2MWY3NzU5MzhmMTk4YjZiMzY4YmI1OTJk
N2E1NzkwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zaGFwZXMvU2hh
cGVPdXRzaWRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3NoYXBlcy9T
aGFwZU91dHNpZGVJbmZvLmNwcApAQCAtMTk5LDEwICsxOTksMTAgQEAgY29uc3QgU2hhcGUmIFNo
YXBlT3V0c2lkZUluZm86OmNvbXB1dGVkU2hhcGUoKSBjb25zdAogc3RhdGljIGlubGluZSBMYXlv
dXRVbml0IGJvcmRlckJlZm9yZUluV3JpdGluZ01vZGUoY29uc3QgUmVuZGVyQm94JiByZW5kZXJl
ciwgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUpCiB7CiAgICAgc3dpdGNoICh3cml0aW5nTW9kZSkg
ewotICAgIGNhc2UgVG9wVG9Cb3R0b21Xcml0aW5nTW9kZTogcmV0dXJuIHJlbmRlcmVyLmJvcmRl
clRvcCgpOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZTogcmV0dXJuIHJlbmRlcmVy
LmJvcmRlckJvdHRvbSgpOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZTogcmV0dXJu
IHJlbmRlcmVyLmJvcmRlckxlZnQoKTsKLSAgICBjYXNlIFJpZ2h0VG9MZWZ0V3JpdGluZ01vZGU6
IHJldHVybiByZW5kZXJlci5ib3JkZXJSaWdodCgpOworICAgIGNhc2UgV3JpdGluZ01vZGU6OlRv
cFRvQm90dG9tOiByZXR1cm4gcmVuZGVyZXIuYm9yZGVyVG9wKCk7CisgICAgY2FzZSBXcml0aW5n
TW9kZTo6Qm90dG9tVG9Ub3A6IHJldHVybiByZW5kZXJlci5ib3JkZXJCb3R0b20oKTsKKyAgICBj
YXNlIFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodDogcmV0dXJuIHJlbmRlcmVyLmJvcmRlckxlZnQo
KTsKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDogcmV0dXJuIHJlbmRlcmVyLmJv
cmRlclJpZ2h0KCk7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMTIs
MTAgKzIxMiwxMCBAQCBzdGF0aWMgaW5saW5lIExheW91dFVuaXQgYm9yZGVyQmVmb3JlSW5Xcml0
aW5nTW9kZShjb25zdCBSZW5kZXJCb3gmIHJlbmRlcmVyLCBXcgogc3RhdGljIGlubGluZSBMYXlv
dXRVbml0IGJvcmRlckFuZFBhZGRpbmdCZWZvcmVJbldyaXRpbmdNb2RlKGNvbnN0IFJlbmRlckJv
eCYgcmVuZGVyZXIsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlKQogewogICAgIHN3aXRjaCAod3Jp
dGluZ01vZGUpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6IHJldHVybiByZW5k
ZXJlci5ib3JkZXJUb3AoKSArIHJlbmRlcmVyLnBhZGRpbmdUb3AoKTsKLSAgICBjYXNlIEJvdHRv
bVRvVG9wV3JpdGluZ01vZGU6IHJldHVybiByZW5kZXJlci5ib3JkZXJCb3R0b20oKSArIHJlbmRl
cmVyLnBhZGRpbmdCb3R0b20oKTsKLSAgICBjYXNlIExlZnRUb1JpZ2h0V3JpdGluZ01vZGU6IHJl
dHVybiByZW5kZXJlci5ib3JkZXJMZWZ0KCkgKyByZW5kZXJlci5wYWRkaW5nTGVmdCgpOwotICAg
IGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZTogcmV0dXJuIHJlbmRlcmVyLmJvcmRlclJpZ2h0
KCkgKyByZW5kZXJlci5wYWRkaW5nUmlnaHQoKTsKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpUb3BU
b0JvdHRvbTogcmV0dXJuIHJlbmRlcmVyLmJvcmRlclRvcCgpICsgcmVuZGVyZXIucGFkZGluZ1Rv
cCgpOworICAgIGNhc2UgV3JpdGluZ01vZGU6OkJvdHRvbVRvVG9wOiByZXR1cm4gcmVuZGVyZXIu
Ym9yZGVyQm90dG9tKCkgKyByZW5kZXJlci5wYWRkaW5nQm90dG9tKCk7CisgICAgY2FzZSBXcml0
aW5nTW9kZTo6TGVmdFRvUmlnaHQ6IHJldHVybiByZW5kZXJlci5ib3JkZXJMZWZ0KCkgKyByZW5k
ZXJlci5wYWRkaW5nTGVmdCgpOworICAgIGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0OiBy
ZXR1cm4gcmVuZGVyZXIuYm9yZGVyUmlnaHQoKSArIHJlbmRlcmVyLnBhZGRpbmdSaWdodCgpOwog
ICAgIH0KIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggN2I3NWZhZWNkMjk5MGZmYWFlYTdl
MDJlM2ViY2FiZTc4OTA3YmVlNS4uMWE3MTAzNzc5ZWIyZTE1NDIxY2ZmMzI1ODQ0ZTFkMzVhMjNi
MWQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCkBAIC0xNjUsNyArMTY1LDcgQEAgUmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKENyZWF0ZURl
ZmF1bHRTdHlsZVRhZykKICAgICBtX2luaGVyaXRlZEZsYWdzLnBvaW50ZXJFdmVudHMgPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oaW5pdGlhbFBvaW50ZXJFdmVudHMoKSk7CiAgICAgbV9pbmhlcml0
ZWRGbGFncy5pbnNpZGVMaW5rID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEluc2lkZUxpbms6Ok5v
dEluc2lkZSk7CiAgICAgbV9pbmhlcml0ZWRGbGFncy5pbnNpZGVEZWZhdWx0QnV0dG9uID0gZmFs
c2U7Ci0gICAgbV9pbmhlcml0ZWRGbGFncy53cml0aW5nTW9kZSA9IGluaXRpYWxXcml0aW5nTW9k
ZSgpOworICAgIG1faW5oZXJpdGVkRmxhZ3Mud3JpdGluZ01vZGUgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oaW5pdGlhbFdyaXRpbmdNb2RlKCkpOwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcp
CiAgICAgbV9pbmhlcml0ZWRGbGFncy5hdXRvc2l6ZVN0YXR1cyA9IDA7CiAjZW5kaWYKQEAgLTIw
OTEsMTMgKzIwOTEsMTMgQEAgQ29sb3IgUmVuZGVyU3R5bGU6OmNvbG9yQnlBcHBseWluZ0NvbG9y
RmlsdGVyKGNvbnN0IENvbG9yJiBjb2xvcikgY29uc3QKIGNvbnN0IEJvcmRlclZhbHVlJiBSZW5k
ZXJTdHlsZTo6Ym9yZGVyQmVmb3JlKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHdyaXRpbmdNb2Rl
KCkpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6CisgICAgY2FzZSBXcml0aW5n
TW9kZTo6VG9wVG9Cb3R0b206CiAgICAgICAgIHJldHVybiBib3JkZXJUb3AoKTsKLSAgICBjYXNl
IEJvdHRvbVRvVG9wV3JpdGluZ01vZGU6CisgICAgY2FzZSBXcml0aW5nTW9kZTo6Qm90dG9tVG9U
b3A6CiAgICAgICAgIHJldHVybiBib3JkZXJCb3R0b20oKTsKLSAgICBjYXNlIExlZnRUb1JpZ2h0
V3JpdGluZ01vZGU6CisgICAgY2FzZSBXcml0aW5nTW9kZTo6TGVmdFRvUmlnaHQ6CiAgICAgICAg
IHJldHVybiBib3JkZXJMZWZ0KCk7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgor
ICAgIGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0OgogICAgICAgICByZXR1cm4gYm9yZGVy
UmlnaHQoKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0yMTA3LDEzICsy
MTA3LDEzIEBAIGNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJTdHlsZTo6Ym9yZGVyQmVmb3JlKCkg
Y29uc3QKIGNvbnN0IEJvcmRlclZhbHVlJiBSZW5kZXJTdHlsZTo6Ym9yZGVyQWZ0ZXIoKSBjb25z
dAogewogICAgIHN3aXRjaCAod3JpdGluZ01vZGUoKSkgewotICAgIGNhc2UgVG9wVG9Cb3R0b21X
cml0aW5nTW9kZToKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpUb3BUb0JvdHRvbToKICAgICAgICAg
cmV0dXJuIGJvcmRlckJvdHRvbSgpOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToK
KyAgICBjYXNlIFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcDoKICAgICAgICAgcmV0dXJuIGJvcmRl
clRvcCgpOwotICAgIGNhc2UgTGVmdFRvUmlnaHRXcml0aW5nTW9kZToKKyAgICBjYXNlIFdyaXRp
bmdNb2RlOjpMZWZ0VG9SaWdodDoKICAgICAgICAgcmV0dXJuIGJvcmRlclJpZ2h0KCk7Ci0gICAg
Y2FzZSBSaWdodFRvTGVmdFdyaXRpbmdNb2RlOgorICAgIGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0
VG9MZWZ0OgogICAgICAgICByZXR1cm4gYm9yZGVyTGVmdCgpOwogICAgIH0KICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTIxMzcsMTMgKzIxMzcsMTMgQEAgY29uc3QgQm9yZGVyVmFsdWUm
IFJlbmRlclN0eWxlOjpib3JkZXJFbmQoKSBjb25zdAogZmxvYXQgUmVuZGVyU3R5bGU6OmJvcmRl
ckJlZm9yZVdpZHRoKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKCkpIHsKLSAg
ICBjYXNlIFRvcFRvQm90dG9tV3JpdGluZ01vZGU6CisgICAgY2FzZSBXcml0aW5nTW9kZTo6VG9w
VG9Cb3R0b206CiAgICAgICAgIHJldHVybiBib3JkZXJUb3BXaWR0aCgpOwotICAgIGNhc2UgQm90
dG9tVG9Ub3BXcml0aW5nTW9kZToKKyAgICBjYXNlIFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcDoK
ICAgICAgICAgcmV0dXJuIGJvcmRlckJvdHRvbVdpZHRoKCk7Ci0gICAgY2FzZSBMZWZ0VG9SaWdo
dFdyaXRpbmdNb2RlOgorICAgIGNhc2UgV3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0OgogICAgICAg
ICByZXR1cm4gYm9yZGVyTGVmdFdpZHRoKCk7Ci0gICAgY2FzZSBSaWdodFRvTGVmdFdyaXRpbmdN
b2RlOgorICAgIGNhc2UgV3JpdGluZ01vZGU6OlJpZ2h0VG9MZWZ0OgogICAgICAgICByZXR1cm4g
Ym9yZGVyUmlnaHRXaWR0aCgpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKQEAg
LTIxNTMsMTMgKzIxNTMsMTMgQEAgZmxvYXQgUmVuZGVyU3R5bGU6OmJvcmRlckJlZm9yZVdpZHRo
KCkgY29uc3QKIGZsb2F0IFJlbmRlclN0eWxlOjpib3JkZXJBZnRlcldpZHRoKCkgY29uc3QKIHsK
ICAgICBzd2l0Y2ggKHdyaXRpbmdNb2RlKCkpIHsKLSAgICBjYXNlIFRvcFRvQm90dG9tV3JpdGlu
Z01vZGU6CisgICAgY2FzZSBXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b206CiAgICAgICAgIHJldHVy
biBib3JkZXJCb3R0b21XaWR0aCgpOwotICAgIGNhc2UgQm90dG9tVG9Ub3BXcml0aW5nTW9kZToK
KyAgICBjYXNlIFdyaXRpbmdNb2RlOjpCb3R0b21Ub1RvcDoKICAgICAgICAgcmV0dXJuIGJvcmRl
clRvcFdpZHRoKCk7Ci0gICAgY2FzZSBMZWZ0VG9SaWdodFdyaXRpbmdNb2RlOgorICAgIGNhc2Ug
V3JpdGluZ01vZGU6OkxlZnRUb1JpZ2h0OgogICAgICAgICByZXR1cm4gYm9yZGVyUmlnaHRXaWR0
aCgpOwotICAgIGNhc2UgUmlnaHRUb0xlZnRXcml0aW5nTW9kZToKKyAgICBjYXNlIFdyaXRpbmdN
b2RlOjpSaWdodFRvTGVmdDoKICAgICAgICAgcmV0dXJuIGJvcmRlckxlZnRXaWR0aCgpOwogICAg
IH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNjdlMjM2OWM3MDhmOTJhYTQ0ZmEyYTgyYTJmMjdj
OTcwMDcyMGQ3Mi4uN2U0N2U4MmJhMGMxMTIwYzRlYTA2YjY1Yzc0NjM5ZDFiZGJiZDk4ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTE0OTAs
NyArMTQ5MCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ29sdW1uQXhpcyBpbml0aWFsQ29sdW1u
QXhpcygpIHsgcmV0dXJuIENvbHVtbkF4aXM6OkF1dG87IH0KICAgICBzdGF0aWMgQ29sdW1uUHJv
Z3Jlc3Npb24gaW5pdGlhbENvbHVtblByb2dyZXNzaW9uKCkgeyByZXR1cm4gQ29sdW1uUHJvZ3Jl
c3Npb246Ok5vcm1hbDsgfQogICAgIHN0YXRpYyBUZXh0RGlyZWN0aW9uIGluaXRpYWxEaXJlY3Rp
b24oKSB7IHJldHVybiBUZXh0RGlyZWN0aW9uOjpMVFI7IH0KLSAgICBzdGF0aWMgV3JpdGluZ01v
ZGUgaW5pdGlhbFdyaXRpbmdNb2RlKCkgeyByZXR1cm4gVG9wVG9Cb3R0b21Xcml0aW5nTW9kZTsg
fQorICAgIHN0YXRpYyBXcml0aW5nTW9kZSBpbml0aWFsV3JpdGluZ01vZGUoKSB7IHJldHVybiBX
cml0aW5nTW9kZTo6VG9wVG9Cb3R0b207IH0KICAgICBzdGF0aWMgVGV4dENvbWJpbmUgaW5pdGlh
bFRleHRDb21iaW5lKCkgeyByZXR1cm4gVGV4dENvbWJpbmU6Ok5vbmU7IH0KICAgICBzdGF0aWMg
VGV4dE9yaWVudGF0aW9uIGluaXRpYWxUZXh0T3JpZW50YXRpb24oKSB7IHJldHVybiBUZXh0T3Jp
ZW50YXRpb246Ok1peGVkOyB9CiAgICAgc3RhdGljIE9iamVjdEZpdCBpbml0aWFsT2JqZWN0Rml0
KCkgeyByZXR1cm4gT2JqZWN0Rml0OjpGaWxsOyB9CkBAIC0yMjQ1LDcgKzIyNDUsNyBAQCBpbmxp
bmUgYm9vbCBSZW5kZXJTdHlsZTo6c2V0V3JpdGluZ01vZGUoV3JpdGluZ01vZGUgdikKIHsKICAg
ICBpZiAodiA9PSB3cml0aW5nTW9kZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV9p
bmhlcml0ZWRGbGFncy53cml0aW5nTW9kZSA9IHY7CisgICAgbV9pbmhlcml0ZWRGbGFncy53cml0
aW5nTW9kZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCA1ZGFiYjRkMzUwY2Nl
MWM1NmRlYTY5YWQ4M2U3M2Y5NTc0NDQ2ZTk0Li44Y2UwNzUyYTYzNjZkODMzMDAyNjJiMDJlZTA4
M2VlNTlmYzEwNzM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVz
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcApAQCAt
MzI4LDEwICszMjgsMTAgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0KFJlbmRlclN0eWxlJiBzdHls
ZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2UKICAgICAgICAgICAgIHN0
eWxlLnNldFdyaXRpbmdNb2RlKG1fcGFyZW50U3R5bGUud3JpdGluZ01vZGUoKSk7CiAKICAgICAg
ICAgLy8gRklYTUU6IFNpbmNlIHdlIGRvbid0IHN1cHBvcnQgYmxvY2stZmxvdyBvbiBmbGV4aWJs
ZSBib3hlcyB5ZXQsIGRpc2FsbG93IHNldHRpbmcKLSAgICAgICAgLy8gb2YgYmxvY2stZmxvdyB0
byBhbnl0aGluZyBvdGhlciB0aGFuIFRvcFRvQm90dG9tV3JpdGluZ01vZGUuCisgICAgICAgIC8v
IG9mIGJsb2NrLWZsb3cgdG8gYW55dGhpbmcgb3RoZXIgdGhhbiBXcml0aW5nTW9kZTo6VG9wVG9C
b3R0b20uCiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NjQxOCAtIEZsZXhpYmxlIGJveCBzdXBwb3J0LgotICAgICAgICBpZiAoc3R5bGUud3JpdGlu
Z01vZGUoKSAhPSBUb3BUb0JvdHRvbVdyaXRpbmdNb2RlICYmIChzdHlsZS5kaXNwbGF5KCkgPT0g
RGlzcGxheVR5cGU6OkJveCB8fCBzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OklubGlu
ZUJveCkpCi0gICAgICAgICAgICBzdHlsZS5zZXRXcml0aW5nTW9kZShUb3BUb0JvdHRvbVdyaXRp
bmdNb2RlKTsKKyAgICAgICAgaWYgKHN0eWxlLndyaXRpbmdNb2RlKCkgIT0gV3JpdGluZ01vZGU6
OlRvcFRvQm90dG9tICYmIChzdHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OkJveCB8fCBz
dHlsZS5kaXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OklubGluZUJveCkpCisgICAgICAgICAgICBz
dHlsZS5zZXRXcml0aW5nTW9kZShXcml0aW5nTW9kZTo6VG9wVG9Cb3R0b20pOwogCiAgICAgICAg
IC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtZGlzcGxheS8jdHJhbnNmb3JtYXRpb25zCiAg
ICAgICAgIC8vICJBIHBhcmVudCB3aXRoIGEgZ3JpZCBvciBmbGV4IGRpc3BsYXkgdmFsdWUgYmxv
Y2tpZmllcyB0aGUgYm944oCZcyBkaXNwbGF5IHR5cGUuIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVCdWlsZGVyU3RhdGUuY3BwCmluZGV4IDQ5NjA5YmU4NGJkN2RjMWY1MTUyOGVjNDA3NDg0
ZjFiNjNmNjJkYTkuLjk2NmVhZTgyZWY0Mjg2NmRjNWM5ZjhkN2RkZDQ5NTE1ZWM2MDc4ZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlclN0YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJTdGF0ZS5jcHAKQEAgLTMzOSw3ICsz
MzksNyBAQCB2b2lkIEJ1aWxkZXJTdGF0ZTo6YWRqdXN0U3R5bGVGb3JJbnRlckNoYXJhY3RlclJ1
YnkoKQogCiAgICAgbV9zdHlsZS5zZXRUZXh0QWxpZ24oVGV4dEFsaWduTW9kZTo6Q2VudGVyKTsK
ICAgICBpZiAobV9zdHlsZS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQotICAgICAgICBtX3N0
eWxlLnNldFdyaXRpbmdNb2RlKExlZnRUb1JpZ2h0V3JpdGluZ01vZGUpOworICAgICAgICBtX3N0
eWxlLnNldFdyaXRpbmdNb2RlKFdyaXRpbmdNb2RlOjpMZWZ0VG9SaWdodCk7CiB9CiAKIHZvaWQg
QnVpbGRlclN0YXRlOjp1cGRhdGVGb250KCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>