<?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>220729</bug_id>
          
          <creation_ts>2021-01-19 03:58:52 -0800</creation_ts>
          <short_desc>Continue removing glue code from RenderLayer that was recently added in r271559</short_desc>
          <delta_ts>2021-01-22 01:08:04 -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>Layout and Rendering</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>
          
          <blocked>60305</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>aperez</cc>
    
    <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1720508</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-01-19 03:58:52 -0800</bug_when>
    <thetext>Continue removing glue code from RenderLayer that was recently added in r271559</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720509</commentid>
    <comment_count>1</comment_count>
      <attachid>417869</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-01-19 03:59:44 -0800</bug_when>
    <thetext>Created attachment 417869
Patch, v1

We can use RenderLayerScrollableArea directly instead and get rid of the glue code that was only added to ease the landing of the patch on bug 60305</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720510</commentid>
    <comment_count>2</comment_count>
      <attachid>417870</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-01-19 04:23:25 -0800</bug_when>
    <thetext>Created attachment 417870
Patch, v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721443</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-21 18:08:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/73478267&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721518</commentid>
    <comment_count>4</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2021-01-22 01:08:04 -0800</bug_when>
    <thetext>Committed r271740: &lt;https://trac.webkit.org/changeset/r271740&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417869</attachid>
            <date>2021-01-19 03:59:44 -0800</date>
            <delta_ts>2021-01-19 04:23:55 -0800</delta_ts>
            <desc>Patch, v1</desc>
            <filename>bug-220729-20210119125943.patch</filename>
            <type>text/plain</type>
            <size>23445</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg4ZGY4MzIyZDdkZWVl
NWUwMzQzNzllZjg1YTg2M2NhYzU1ZWRmYi4uNmZhOTMzNGEwZTQ2ZjVhNjM0NjFkNTI3NDljM2Vi
ZWM3YzZlODJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTAxLTE5ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIENvbnRp
bnVlIHJlbW92aW5nIGdsdWUgY29kZSBmcm9tIFJlbmRlckxheWVyIHRoYXQgd2FzIHJlY2VudGx5
IGFkZGVkIGluIHIyNzE1NTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMDcyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZvbGxvdy11cCBvbiBwYXRjaCBhZHJlc3NpbmcgdGhlIHJlbW92YWwgb2YgdGhl
IGdsdWUgY29kZSB0aGF0CisgICAgICAgIGZvcndhcmRzIGNhbGxzIGZyb20gUmVuZGVyTGF5ZXIg
dG8gUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYSAoc2VlCisgICAgICAgIHdlYmtpdC5vcmcvYi82
MDMwNSkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGFpbnRD
b250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6aW50cmluc2ljU2Nyb2xs
YmFyTG9naWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvbnRhaW5zRGlydHlPdmVybGF5
U2Nyb2xsYmFycyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6aGl0VGVzdE92ZXJmbG93Q29udHJvbHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OnBhaW50T3ZlcmZsb3dDb250cm9scyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRSZXNpemVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpwYWludFNjcm9sbENvcm5lcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRPdmVybGF5U2Nyb2xsYmFycyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6bGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xs
YmFyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpsYXll
ckZvclZlcnRpY2FsU2Nyb2xsYmFyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpob3Jpem9udGFsU2Nyb2xsYmFyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJhciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6aGFzU2Nyb2xsYmFycyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6aGFzSG9yaXpvbnRhbFNjcm9sbGJhciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGFzVmVydGljYWxTY3JvbGxiYXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXF1aXJlc0hvcml6
b250YWxTY3JvbGxiYXJMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXllciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnJlcXVpcmVzU2Nyb2xsQ29ybmVyTGF5ZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwb3NpdGlvbk92
ZXJmbG93Q29udHJvbHNMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjpwYWludEludG9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRh
dGVTY3JvbGxpbmdOb2RlTGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OnBhaW50KToKKwogMjAyMS0wMS0xOCAgTmlrb2xhcyBa
aW1tZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBDb250aW51ZSBy
ZW1vdmluZyBnbHVlIGNvZGUgZnJvbSBSZW5kZXJMYXllciB0aGF0IHdhcyByZWNlbnRseSBhZGRl
ZCBpbiByMjcxNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZmMyYjM1Nzg2MzM5
MTZmMzQzMmU5MzUyYzFlY2NiMTc3MDQ0NjVjYS4uNzZhZTZmOThiYjVjZDYzZWY5MzZlNDY1MGFk
NGViMDA0Nzc4MTY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDMzMiw4ICs0
MzMyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0CiAgICAgICAgIHJlbmRlcmVyID0gcmVu
ZGVyZXItPnBhcmVudCgpOwogCiAgICAgcm9vdExheWVyLT5wYWludChjb250ZXh0LCBkaXJ0eVJl
Y3QsIExheW91dFNpemUoKSwgbV9wYWludEJlaGF2aW9yLCByZW5kZXJlciwgeyB9LCBzZWN1cml0
eU9yaWdpblBhaW50UG9saWN5ID09IFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpY3k6OkFueU9yaWdp
biA/IFJlbmRlckxheWVyOjpTZWN1cml0eU9yaWdpblBhaW50UG9saWN5OjpBbnlPcmlnaW4gOiBS
ZW5kZXJMYXllcjo6U2VjdXJpdHlPcmlnaW5QYWludFBvbGljeTo6QWNjZXNzaWJsZU9yaWdpbk9u
bHksIGV2ZW50UmVnaW9uQ29udGV4dCk7Ci0gICAgaWYgKHJvb3RMYXllci0+Y29udGFpbnNEaXJ0
eU92ZXJsYXlTY3JvbGxiYXJzKCkgJiYgIWV2ZW50UmVnaW9uQ29udGV4dCkKLSAgICAgICAgcm9v
dExheWVyLT5wYWludE92ZXJsYXlTY3JvbGxiYXJzKGNvbnRleHQsIGRpcnR5UmVjdCwgbV9wYWlu
dEJlaGF2aW9yLCByZW5kZXJlcik7CisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVSb290TGF5ZXIg
PSByb290TGF5ZXItPnNjcm9sbGFibGVBcmVhKCkpIHsKKyAgICAgICAgaWYgKHNjcm9sbGFibGVS
b290TGF5ZXItPmNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycygpICYmICFldmVudFJlZ2lv
bkNvbnRleHQpCisgICAgICAgICAgICBzY3JvbGxhYmxlUm9vdExheWVyLT5wYWludE92ZXJsYXlT
Y3JvbGxiYXJzKGNvbnRleHQsIGRpcnR5UmVjdCwgbV9wYWludEJlaGF2aW9yLCByZW5kZXJlcik7
CisgICAgfQogCiAgICAgZGlkUGFpbnRDb250ZW50cyhjb250ZXh0LCBkaXJ0eVJlY3QsIHBhaW50
aW5nU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5k
ZXggZmFlM2JhMWVhMThkM2Q2M2MwNGZkNjk1NGQ0ODgyOGJiZThiM2ZhMS4uMjIyYmJmYmM0MDQ4
OWY3MTE4NzE3N2RjNzVkM2ZkNDEzNDJmZjRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5l
LmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgorI2luY2x1ZGUgIlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJSZW5k
ZXJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RNYXJrZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJNZW51TGlzdC5oIgpAQCAtMTExMiw4ICsxMTEzLDggQEAgdm9pZCBSZW5kZXJCbG9j
azo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCkKICAgICAvLyB6LWluZGV4LiBXZSBwYWludCBhZnRlciB3ZSBwYWludGVkIHRoZSBiYWNr
Z3JvdW5kL2JvcmRlciwgc28gdGhhdCB0aGUgc2Nyb2xsYmFycyB3aWxsCiAgICAgLy8gc2l0IGFi
b3ZlIHRoZSBiYWNrZ3JvdW5kL2JvcmRlci4KICAgICBpZiAoKHBoYXNlID09IFBhaW50UGhhc2U6
OkJsb2NrQmFja2dyb3VuZCB8fCBwaGFzZSA9PSBQYWludFBoYXNlOjpDaGlsZEJsb2NrQmFja2dy
b3VuZCkgJiYgaGFzT3ZlcmZsb3dDbGlwKCkgJiYgbGF5ZXIoKQotICAgICAgICAmJiBzdHlsZSgp
LnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlICYmIHBhaW50SW5mby5zaG91bGRQ
YWludFdpdGhpblJvb3QoKnRoaXMpICYmICFwYWludEluZm8ucGFpbnRSb290QmFja2dyb3VuZE9u
bHkoKSkKLSAgICAgICAgbGF5ZXIoKS0+cGFpbnRPdmVyZmxvd0NvbnRyb2xzKHBhaW50SW5mby5j
b250ZXh0KCksIHJvdW5kZWRJbnRQb2ludChhZGp1c3RlZFBhaW50T2Zmc2V0KSwgc25hcHBlZElu
dFJlY3QocGFpbnRJbmZvLnJlY3QpKTsKKyAgICAgICAgJiYgbGF5ZXIoKS0+c2Nyb2xsYWJsZUFy
ZWEoKSAmJiBzdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlICYmIHBh
aW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMpICYmICFwYWludEluZm8ucGFpbnRS
b290QmFja2dyb3VuZE9ubHkoKSkKKyAgICAgICAgbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKS0+
cGFpbnRPdmVyZmxvd0NvbnRyb2xzKHBhaW50SW5mby5jb250ZXh0KCksIHJvdW5kZWRJbnRQb2lu
dChhZGp1c3RlZFBhaW50T2Zmc2V0KSwgc25hcHBlZEludFJlY3QocGFpbnRJbmZvLnJlY3QpKTsK
IH0KIAogdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpAQCAtMjAwNSw4ICsyMDA2LDkgQEAg
Ym9vbCBSZW5kZXJCbG9jazo6aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgY29uc3QgTGF5b3V0UG8KIHsKICAgICBpZiAoIXNjcm9sbHNPdmVyZmxvdygpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbGF5ZXIoKS0+aGl0VGVzdE92ZXJm
bG93Q29udHJvbHMocmVzdWx0LCByb3VuZGVkSW50UG9pbnQobG9jYXRpb25JbkNvbnRhaW5lciAt
IHRvTGF5b3V0U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkpKTsKKyAgICBpZiAoYXV0byogc2Nyb2xs
YWJsZUxheWVyID0gbGF5ZXIoKSA/IGxheWVyKCktPnNjcm9sbGFibGVBcmVhKCkgOiBudWxscHRy
KQorICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZUxheWVyLT5oaXRUZXN0T3ZlcmZsb3dDb250cm9s
cyhyZXN1bHQsIHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbkluQ29udGFpbmVyIC0gdG9MYXlvdXRT
aXplKGFjY3VtdWxhdGVkT2Zmc2V0KSkpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogTm9kZSog
UmVuZGVyQmxvY2s6Om5vZGVGb3JIaXRUZXN0KCkgY29uc3QKQEAgLTI1MDIsMTAgKzI1MDQsMjMg
QEAgaW50IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBiYXNlbGlu
ZVR5cGUsIGJvb2wgZmlyc3RMaW5lLCBMaW4KICAgICAgICAgLy8gKHRoZSBjb250ZW50IGluc2lk
ZSB0aGVtIG1vdmVzKS4gIFRoaXMgbWF0Y2hlcyBXaW5JRSBhcyB3ZWxsLCB3aGljaCBqdXN0IGJv
dHRvbS1hbGlnbnMgdGhlbS4KICAgICAgICAgLy8gV2UgYWxzbyBnaXZlIHVwIG9uIGZpbmRpbmcg
YSBiYXNlbGluZSBpZiB3ZSBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyLCBvciBpZiB3ZSBhcmUg
c2Nyb2xsZWQKICAgICAgICAgLy8gdmVydGljYWxseSAoZS5nLiwgYW4gb3ZlcmZsb3c6aGlkZGVu
IGJsb2NrIHRoYXQgaGFzIGhhZCBzY3JvbGxUb3AgbW92ZWQpLgotICAgICAgICBib29sIGlnbm9y
ZUJhc2VsaW5lID0gKGxheWVyKCkgJiYgKGxheWVyKCktPm1hcnF1ZWUoKSB8fCAoZGlyZWN0aW9u
ID09IEhvcml6b250YWxMaW5lID8gKGxheWVyKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCkgfHwgbGF5
ZXIoKS0+c2Nyb2xsT2Zmc2V0KCkueSgpICE9IDApCi0gICAgICAgICAgICA6IChsYXllcigpLT5o
b3Jpem9udGFsU2Nyb2xsYmFyKCkgfHwgbGF5ZXIoKS0+c2Nyb2xsT2Zmc2V0KCkueCgpICE9IDAp
KSkpIHx8IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSk7Ci0gICAgICAgIAot
ICAgICAgICBPcHRpb25hbDxpbnQ+IGJhc2VsaW5lUG9zID0gaWdub3JlQmFzZWxpbmUgPyBPcHRp
b25hbDxpbnQ+KCkgOiBpbmxpbmVCbG9ja0Jhc2VsaW5lKGRpcmVjdGlvbik7CisgICAgICAgIGF1
dG8gaWdub3JlQmFzZWxpbmUgPSBbdGhpcywgZGlyZWN0aW9uXSgpIC0+IGJvb2wgeworICAgICAg
ICAgICAgaWYgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVieVJ1bigpKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICBhdXRvKiBzY3JvbGxhYmxlTGF5ZXIg
PSBsYXllcigpID8gbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSA6IG51bGxwdHI7CisgICAgICAg
ICAgICBpZiAoIXNjcm9sbGFibGVMYXllcikKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlTGF5ZXItPm1hcnF1ZWUoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBIb3Jp
em9udGFsTGluZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZUxheWVyLT52ZXJ0
aWNhbFNjcm9sbGJhcigpIHx8IHNjcm9sbGFibGVMYXllci0+c2Nyb2xsT2Zmc2V0KCkueSgpOwor
ICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGFibGVMYXllci0+aG9yaXpvbnRhbFNjcm9sbGJhcigp
IHx8IHNjcm9sbGFibGVMYXllci0+c2Nyb2xsT2Zmc2V0KCkueCgpOworICAgICAgICB9OworCisg
ICAgICAgIE9wdGlvbmFsPGludD4gYmFzZWxpbmVQb3MgPSBpZ25vcmVCYXNlbGluZSgpID8gT3B0
aW9uYWw8aW50PigpIDogaW5saW5lQmxvY2tCYXNlbGluZShkaXJlY3Rpb24pOwogICAgICAgICAK
ICAgICAgICAgaWYgKGlzRGVwcmVjYXRlZEZsZXhpYmxlQm94KCkpIHsKICAgICAgICAgICAgIC8v
IEhpc3RvcmljYWxseSwgd2UgZGlkIHRoaXMgY2hlY2sgZm9yIGFsbCBiYXNlbGluZXMuIEJ1dCB3
ZSBjYW4ndApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA5MGZhZjky
YjUyODI4OTZjZDI3NzBjYWJhMjc3YjViNmJjNzUxMjAyLi4xNmUwMmI2MGFlNjE5MDM0YzkwM2Jl
YjIyNzI0NWViMjk0NWU1ZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cApAQCAtODUwLDEyICs4NTAsMTIgQEAgaW50IFJlbmRlckJveDo6aW50cmluc2ljU2Nyb2xsYmFy
TG9naWNhbFdpZHRoKCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSAmJiAoc3R5bGUoKS5vdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6
U2Nyb2xsICYmICFjYW5Vc2VPdmVybGF5U2Nyb2xsYmFycygpKSkgewotICAgICAgICBBU1NFUlQo
bGF5ZXIoKSAmJiBsYXllcigpLT5oYXNWZXJ0aWNhbFNjcm9sbGJhcigpKTsKKyAgICAgICAgQVNT
RVJUKGxheWVyKCkgJiYgbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSAmJiBsYXllcigpLT5zY3Jv
bGxhYmxlQXJlYSgpLT5oYXNWZXJ0aWNhbFNjcm9sbGJhcigpKTsKICAgICAgICAgcmV0dXJuIHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAgICB9CiAKICAgICBpZiAoIWlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgJiYgKHN0eWxlKCkub3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlNjcm9sbCAm
JiAhY2FuVXNlT3ZlcmxheVNjcm9sbGJhcnMoKSkpIHsKLSAgICAgICAgQVNTRVJUKGxheWVyKCkg
JiYgbGF5ZXIoKS0+aGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpKTsKKyAgICAgICAgQVNTRVJUKGxh
eWVyKCkgJiYgbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSAmJiBsYXllcigpLT5zY3JvbGxhYmxl
QXJlYSgpLT5oYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkpOwogICAgICAgICByZXR1cm4gaG9yaXpv
bnRhbFNjcm9sbGJhckhlaWdodCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggMjMwZmEyYTFhOGQyMTJhZGE2NzM1OWRhNzNjMDliMTA1MDUx
ZTIxZC4uYjU0NzYxNGM5MTBlYmU5YzNiNjFlZDRlNDJhYzkyMzIxNzM5ZWY0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zODksMTMgKzM4OSw2IEBAIGJv
b2wgUmVuZGVyTGF5ZXI6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSBjb25zdAogICAgIHJldHVybiByZW5kZXJlcigpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKTsKIH0KIAotYm9vbCBSZW5kZXJMYXllcjo6Y29udGFpbnNEaXJ0eU92
ZXJsYXlTY3JvbGxiYXJzKCkgY29uc3QKLXsKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYSkKLSAg
ICAgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEtPmNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xs
YmFycygpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogUmVuZGVyTWFycXVlZSogUmVuZGVyTGF5
ZXI6Om1hcnF1ZWUoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGFibGVBcmVhKQpAQCAtNDA5
LDM3ICs0MDIsNiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVy
RG9jdW1lbnRTY3JvbGwoKQogICAgICAgICBtX3Njcm9sbGFibGVBcmVhLT51cGRhdGVMYXllclBv
c2l0aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwoKTsKIH0KIAotYm9vbCBSZW5kZXJMYXllcjo6aGl0
VGVzdE92ZXJmbG93Q29udHJvbHMoSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBJbnRQb2lu
dCYgbG9jYWxQb2ludCkKLXsKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYSkKLSAgICAgICAgcmV0
dXJuIG1fc2Nyb2xsYWJsZUFyZWEtPmhpdFRlc3RPdmVyZmxvd0NvbnRyb2xzKHJlc3VsdCwgbG9j
YWxQb2ludCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFJlbmRlckxheWVyOjpwYWlu
dE92ZXJmbG93Q29udHJvbHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRQb2lu
dCYgcG9pbnQsIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIGJvb2wgcGFpbnRpbmdPdmVybGF5
Q29udHJvbHMpCi17Ci0gICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEpCi0gICAgICAgIG1fc2Nyb2xs
YWJsZUFyZWEtPnBhaW50T3ZlcmZsb3dDb250cm9scyhjb250ZXh0LCBwb2ludCwgZGFtYWdlUmVj
dCwgcGFpbnRpbmdPdmVybGF5Q29udHJvbHMpOwotfQotCi12b2lkIFJlbmRlckxheWVyOjpwYWlu
dFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnQsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QpCi17Ci0gICAgaWYgKG1fc2Nyb2xsYWJs
ZUFyZWEpCi0gICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnBhaW50UmVzaXplcihjb250ZXh0LCBw
b2ludCwgZGFtYWdlUmVjdCk7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50U2Nyb2xsQ29y
bmVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UG9pbnQmIHBvaW50LCBjb25z
dCBJbnRSZWN0JiBkYW1hZ2VSZWN0KQotewotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhKQotICAg
ICAgICBtX3Njcm9sbGFibGVBcmVhLT5wYWludFNjcm9sbENvcm5lcihjb250ZXh0LCBwb2ludCwg
ZGFtYWdlUmVjdCk7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3ZlcmxheVNjcm9sbGJh
cnMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBkYW1hZ2VSZWN0
LCBPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4gYmVoYXZpb3IsIFJlbmRlck9iamVjdCogc3VidHJl
ZVBhaW50Um9vdCkKLXsKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYSkKLSAgICAgICAgbV9zY3Jv
bGxhYmxlQXJlYS0+cGFpbnRPdmVybGF5U2Nyb2xsYmFycyhjb250ZXh0LCBkYW1hZ2VSZWN0LCBi
ZWhhdmlvciwgc3VidHJlZVBhaW50Um9vdCk7Ci19Ci0KIHZvaWQgUmVuZGVyTGF5ZXI6OnNldFBv
c3RMYXlvdXRTY3JvbGxQb3NpdGlvbihPcHRpb25hbDxTY3JvbGxQb3NpdGlvbj4gcG9zaXRpb24p
CiB7CiAgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEpCkBAIC00NTksMzQgKzQyMSw2IEBAIFNjcm9s
bFBvc2l0aW9uIFJlbmRlckxheWVyOjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJu
IFNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKLUdyYXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyOjpsYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdAotewotICAgIGlmIChtX3Njcm9sbGFibGVB
cmVhKQotICAgICAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS0+bGF5ZXJGb3JIb3Jpem9udGFs
U2Nyb2xsYmFyKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLUdyYXBoaWNzTGF5ZXIqIFJl
bmRlckxheWVyOjpsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKLXsKLSAgICBpZiAo
bV9zY3JvbGxhYmxlQXJlYSkKLSAgICAgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEtPmxheWVy
Rm9yVmVydGljYWxTY3JvbGxiYXIoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotU2Nyb2xs
YmFyKiBSZW5kZXJMYXllcjo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Ci17Ci0gICAgaWYg
KG1fc2Nyb2xsYWJsZUFyZWEpCi0gICAgICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLT5ob3Jp
em9udGFsU2Nyb2xsYmFyKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLVNjcm9sbGJhciog
UmVuZGVyTGF5ZXI6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKLXsKLSAgICBpZiAobV9zY3Jv
bGxhYmxlQXJlYSkKLSAgICAgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Ny
b2xsYmFyKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIGJvb2wgUmVuZGVyTGF5ZXI6OnNj
cm9sbGluZ01heVJldmVhbEJhY2tncm91bmQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGFi
bGVBcmVhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA3M2Q0YTQ5
YzAyNWZlYTFhNDE5OGYyMGZjZWFjYTU4ZWYwZmNjNGJiLi43NWZhYTg1YmE1OGE1OTcyZjFhNTU2
NzlkYmFhZDVlYTlhZDUwNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aApAQCAtMTYyLDI3ICsxNjIsMTQgQEAgcHVibGljOgogICAgIC8vIFN0YXJ0IG9mIHRlbXBvcmFy
eSBnbHVlIGNvZGUgdG8gaGVscCBsYW5kaW5nIHdlYmtpdC5vcmcvYi82MDMwNSAoc3BsaXQgUmVu
ZGVyTGF5ZXIgaW50byBSZW5kZXJMYXllci9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhKQogICAg
IFdFQkNPUkVfRVhQT1JUIFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQoKSBjb25zdDsKICAgICBi
b29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdDsKLSAg
ICBib29sIGNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycygpIGNvbnN0OwogICAgIFJlbmRl
ck1hcnF1ZWUqIG1hcnF1ZWUoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25z
QWZ0ZXJEb2N1bWVudFNjcm9sbCgpOwotICAgIGJvb2wgaGl0VGVzdE92ZXJmbG93Q29udHJvbHMo
SGl0VGVzdFJlc3VsdCYsIGNvbnN0IEludFBvaW50JiBsb2NhbFBvaW50KTsKLSAgICB2b2lkIHBh
aW50T3ZlcmZsb3dDb250cm9scyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRQb2ludCYsIGNv
bnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIGJvb2wgcGFpbnRpbmdPdmVybGF5Q29udHJvbHMgPSBm
YWxzZSk7Ci0gICAgdm9pZCBwYWludFNjcm9sbENvcm5lcihHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBJbnRQb2ludCYsIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QpOwotICAgIHZvaWQgcGFpbnRS
ZXNpemVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTGF5b3V0
UmVjdCYgZGFtYWdlUmVjdCk7Ci0gICAgdm9pZCBwYWludE92ZXJsYXlTY3JvbGxiYXJzKEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QsIE9wdGlvblNldDxQYWlu
dEJlaGF2aW9yPiwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290ID0gbnVsbHB0cik7CiAg
ICAgdm9pZCBzZXRQb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb24oT3B0aW9uYWw8U2Nyb2xsUG9zaXRp
b24+KTsKICAgICB2b2lkIHBhblNjcm9sbEZyb21Qb2ludChjb25zdCBJbnRQb2ludCYpOwogICAg
IFNjcm9sbFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7Ci0gICAgR3JhcGhpY3NMYXll
ciogbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3Q7Ci0gICAgR3JhcGhpY3NMYXll
ciogbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwotICAgIFNjcm9sbGJhciogaG9y
aXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0OwotICAgIFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxi
YXIoKSBjb25zdDsKICAgICBib29sIHNjcm9sbGluZ01heVJldmVhbEJhY2tncm91bmQoKSBjb25z
dDsKICAgICBib29sIGhhc1Njcm9sbGFibGVIb3Jpem9udGFsT3ZlcmZsb3coKSBjb25zdDsKICAg
ICBib29sIGhhc1Njcm9sbGFibGVWZXJ0aWNhbE92ZXJmbG93KCkgY29uc3Q7Ci0gICAgYm9vbCBo
YXNTY3JvbGxiYXJzKCkgY29uc3QgeyByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8IHZl
cnRpY2FsU2Nyb2xsYmFyKCk7IH0KLSAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIoKSBj
b25zdCB7IHJldHVybiBob3Jpem9udGFsU2Nyb2xsYmFyKCk7IH0KLSAgICBib29sIGhhc1ZlcnRp
Y2FsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gdmVydGljYWxTY3JvbGxiYXIoKTsgfQogICAg
IGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5
ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpIGNvbnN0OwogICAgIGludCBob3Jpem9udGFs
U2Nyb2xsYmFySGVpZ2h0KE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5ID0gSWdub3JlT3Zl
cmxheVNjcm9sbGJhclNpemUpIGNvbnN0OwogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYTZmMzUxNWIz
YjE3MjFhN2IzNTZiODE0MjcyZWFiNzdkMjUwODY5MC4uODkwOWE3ZjAxZTkzMDkwZDI4MWM3NmFl
YjZlOTVlYTVhZmI3Njk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAKQEAgLTIwMTUsMTIgKzIwMTUsMTcgQEAgYm9vbCBSZW5kZXJMYXll
ckJhY2tpbmc6OnJlcXVpcmVzTGF5ZXJGb3JTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIp
IGNvbnN0CiAKIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpyZXF1aXJlc0hvcml6b250YWxTY3Jv
bGxiYXJMYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHJlcXVpcmVzTGF5ZXJGb3JTY3JvbGxi
YXIobV9vd25pbmdMYXllci5ob3Jpem9udGFsU2Nyb2xsYmFyKCkpOworICAgIGlmIChhdXRvKiBz
Y3JvbGxhYmxlTGF5ZXIgPSBtX293bmluZ0xheWVyLnNjcm9sbGFibGVBcmVhKCkpCisgICAgICAg
IHJldHVybiByZXF1aXJlc0xheWVyRm9yU2Nyb2xsYmFyKHNjcm9sbGFibGVMYXllci0+aG9yaXpv
bnRhbFNjcm9sbGJhcigpKTsKKyAgICByZXR1cm4gZmFsc2U7CisKIH0KIAogYm9vbCBSZW5kZXJM
YXllckJhY2tpbmc6OnJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXllcigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIHJlcXVpcmVzTGF5ZXJGb3JTY3JvbGxiYXIobV9vd25pbmdMYXllci52ZXJ0aWNh
bFNjcm9sbGJhcigpKTsKKyAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUxheWVyID0gbV9vd25pbmdM
YXllci5zY3JvbGxhYmxlQXJlYSgpKQorICAgICAgICByZXR1cm4gcmVxdWlyZXNMYXllckZvclNj
cm9sbGJhcihzY3JvbGxhYmxlTGF5ZXItPnZlcnRpY2FsU2Nyb2xsYmFyKCkpOworICAgIHJldHVy
biBmYWxzZTsKIH0KIAogYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnJlcXVpcmVzU2Nyb2xsQ29y
bmVyTGF5ZXIoKSBjb25zdApAQCAtMjAzMiw4ICsyMDM3LDEyIEBAIGJvb2wgUmVuZGVyTGF5ZXJC
YWNraW5nOjpyZXF1aXJlc1Njcm9sbENvcm5lckxheWVyKCkgY29uc3QKICAgICBpZiAoY29ybmVy
UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gdmVydGlj
YWxTY3JvbGxiYXIgPSBtX293bmluZ0xheWVyLnZlcnRpY2FsU2Nyb2xsYmFyKCk7Ci0gICAgYXV0
byBzY3JvbGxiYXIgPSB2ZXJ0aWNhbFNjcm9sbGJhciA/IHZlcnRpY2FsU2Nyb2xsYmFyIDogbV9v
d25pbmdMYXllci5ob3Jpem9udGFsU2Nyb2xsYmFyKCk7CisgICAgYXV0byogc2Nyb2xsYWJsZUxh
eWVyID0gbV9vd25pbmdMYXllci5zY3JvbGxhYmxlQXJlYSgpOworICAgIGlmICghc2Nyb2xsYWJs
ZUxheWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHZlcnRpY2FsU2Nyb2xs
YmFyID0gc2Nyb2xsYWJsZUxheWVyLT52ZXJ0aWNhbFNjcm9sbGJhcigpOworICAgIGF1dG8gc2Ny
b2xsYmFyID0gdmVydGljYWxTY3JvbGxiYXIgPyB2ZXJ0aWNhbFNjcm9sbGJhciA6IHNjcm9sbGFi
bGVMYXllci0+aG9yaXpvbnRhbFNjcm9sbGJhcigpOwogICAgIHJldHVybiByZXF1aXJlc0xheWVy
Rm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiB9CiAKQEAgLTIwODIsOSArMjA5MSw5IEBAIGJvb2wg
UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKGJvb2wgbmVl
ZHNIb3Jpem9udGFsU2Nyb2xsCiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwb3NpdGlvbk92
ZXJmbG93Q29udHJvbHNMYXllcnMoKQogewotICAgIGlmICghbV9vd25pbmdMYXllci5oYXNTY3Jv
bGxiYXJzKCkpCisgICAgYXV0byogc2Nyb2xsYWJsZUxheWVyID0gbV9vd25pbmdMYXllci5zY3Jv
bGxhYmxlQXJlYSgpOworICAgIGlmICghc2Nyb2xsYWJsZUxheWVyIHx8ICFzY3JvbGxhYmxlTGF5
ZXItPmhhc1Njcm9sbGJhcnMoKSkKICAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gRklYTUU6IFNo
b3VsZCBkbyBkZXZpY2UtcGl4ZWwgc25hcHBpbmcuCiAgICAgYXV0byBib3ggPSByZW5kZXJCb3go
KTsKICAgICBhdXRvIGJvcmRlckJveCA9IHNuYXBwZWRJbnRSZWN0KGJveC0+Ym9yZGVyQm94UmVj
dCgpKTsKQEAgLTIxMDgsMTIgKzIxMTcsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBv
c2l0aW9uT3ZlcmZsb3dDb250cm9sc0xheWVycygpCiAKICAgICBpZiAoYXV0byogbGF5ZXIgPSBs
YXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkgewogICAgICAgICBwb3NpdGlvblNjcm9sbGJh
ckxheWVyKCpsYXllciwgcmVjdHMuaG9yaXpvbnRhbFNjcm9sbGJhciwgcGFkZGluZ0JveEluc2V0
KTsKLSAgICAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudChtX293bmluZ0xheWVyLmhvcml6b250
YWxTY3JvbGxiYXIoKSAmJiAhbGF5ZXItPnVzZXNDb250ZW50c0xheWVyKCkpOworICAgICAgICBs
YXllci0+c2V0RHJhd3NDb250ZW50KHNjcm9sbGFibGVMYXllci0+aG9yaXpvbnRhbFNjcm9sbGJh
cigpICYmICFsYXllci0+dXNlc0NvbnRlbnRzTGF5ZXIoKSk7CiAgICAgfQogCiAgICAgaWYgKGF1
dG8qIGxheWVyID0gbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpKSB7CiAgICAgICAgIHBvc2l0
aW9uU2Nyb2xsYmFyTGF5ZXIoKmxheWVyLCByZWN0cy52ZXJ0aWNhbFNjcm9sbGJhciwgcGFkZGlu
Z0JveEluc2V0KTsKLSAgICAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudChtX293bmluZ0xheWVy
LnZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIWxheWVyLT51c2VzQ29udGVudHNMYXllcigpKTsKKyAg
ICAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudChzY3JvbGxhYmxlTGF5ZXItPnZlcnRpY2FsU2Ny
b2xsYmFyKCkgJiYgIWxheWVyLT51c2VzQ29udGVudHNMYXllcigpKTsKICAgICB9CiAKICAgICBp
ZiAoYXV0byogbGF5ZXIgPSBsYXllckZvclNjcm9sbENvcm5lcigpKSB7CkBAIC0zMTM4LDcgKzMx
NDcsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3Jh
cGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgICAgICBpZiAoJmxheWVyID09ICZt
X293bmluZ0xheWVyKSB7CiAgICAgICAgICAgICBsYXllci5wYWludExheWVyQ29udGVudHMoY29u
dGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKIAotICAgICAgICAgICAgaWYgKGxheWVy
LmNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycygpICYmICFldmVudFJlZ2lvbkNvbnRleHQp
CisgICAgICAgICAgICBhdXRvKiBzY3JvbGxhYmxlTGF5ZXIgPSBsYXllci5zY3JvbGxhYmxlQXJl
YSgpOworICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVMYXllciAmJiBzY3JvbGxhYmxlTGF5ZXIt
PmNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycygpICYmICFldmVudFJlZ2lvbkNvbnRleHQp
CiAgICAgICAgICAgICAgICAgbGF5ZXIucGFpbnRMYXllckNvbnRlbnRzKGNvbnRleHQsIHBhaW50
aW5nSW5mbywgcGFpbnRGbGFncyB8IFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZzo6UGFpbnRp
bmdPdmVybGF5U2Nyb2xsYmFycyk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbGF5ZXIu
cGFpbnRMYXllcldpdGhFZmZlY3RzKGNvbnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRGbGFncyk7
CkBAIC0zNDI0LDE3ICszNDM0LDI2IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENv
bnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoCiAgICAgICAg
ICAgICBwYWludERlYnVnT3ZlcmxheXMoZ3JhcGhpY3NMYXllciwgY29udGV4dCk7CiAKICAgICB9
IGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkp
IHsKLSAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9vd25pbmdMYXllci5ob3Jpem9udGFsU2Nyb2xs
YmFyKCksIGNvbnRleHQsIGRpcnR5UmVjdCk7CisgICAgICAgIGF1dG8qIHNjcm9sbGFibGVMYXll
ciA9IG1fb3duaW5nTGF5ZXIuc2Nyb2xsYWJsZUFyZWEoKTsKKyAgICAgICAgQVNTRVJUKHNjcm9s
bGFibGVMYXllcik7CisKKyAgICAgICAgcGFpbnRTY3JvbGxiYXIoc2Nyb2xsYWJsZUxheWVyLT5o
b3Jpem9udGFsU2Nyb2xsYmFyKCksIGNvbnRleHQsIGRpcnR5UmVjdCk7CiAgICAgfSBlbHNlIGlm
IChncmFwaGljc0xheWVyID09IGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkgewotICAgICAg
ICBwYWludFNjcm9sbGJhcihtX293bmluZ0xheWVyLnZlcnRpY2FsU2Nyb2xsYmFyKCksIGNvbnRl
eHQsIGRpcnR5UmVjdCk7CisgICAgICAgIGF1dG8qIHNjcm9sbGFibGVMYXllciA9IG1fb3duaW5n
TGF5ZXIuc2Nyb2xsYWJsZUFyZWEoKTsKKyAgICAgICAgQVNTRVJUKHNjcm9sbGFibGVMYXllcik7
CisKKyAgICAgICAgcGFpbnRTY3JvbGxiYXIoc2Nyb2xsYWJsZUxheWVyLT52ZXJ0aWNhbFNjcm9s
bGJhcigpLCBjb250ZXh0LCBkaXJ0eVJlY3QpOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXll
ciA9PSBsYXllckZvclNjcm9sbENvcm5lcigpKSB7CisgICAgICAgIGF1dG8qIHNjcm9sbGFibGVM
YXllciA9IG1fb3duaW5nTGF5ZXIuc2Nyb2xsYWJsZUFyZWEoKTsKKyAgICAgICAgQVNTRVJUKHNj
cm9sbGFibGVMYXllcik7CisKICAgICAgICAgYXV0byBjb3JuZXJSZWN0ID0gbV9vd25pbmdMYXll
ci5vdmVyZmxvd0NvbnRyb2xzUmVjdHMoKS5zY3JvbGxDb3JuZXJPclJlc2l6ZXJSZWN0KCk7CiAg
ICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKICAg
ICAgICAgY29udGV4dC50cmFuc2xhdGUoLWNvcm5lclJlY3QubG9jYXRpb24oKSk7CiAgICAgICAg
IExheW91dFJlY3QgdHJhbnNmb3JtZWRDbGlwID0gTGF5b3V0UmVjdChjbGlwKTsKICAgICAgICAg
dHJhbnNmb3JtZWRDbGlwLm1vdmVCeShjb3JuZXJSZWN0LmxvY2F0aW9uKCkpOwotICAgICAgICBt
X293bmluZ0xheWVyLnBhaW50U2Nyb2xsQ29ybmVyKGNvbnRleHQsIEludFBvaW50KCksIHNuYXBw
ZWRJbnRSZWN0KHRyYW5zZm9ybWVkQ2xpcCkpOwotICAgICAgICBtX293bmluZ0xheWVyLnBhaW50
UmVzaXplcihjb250ZXh0LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZENsaXApOworICAgICAgICBz
Y3JvbGxhYmxlTGF5ZXItPnBhaW50U2Nyb2xsQ29ybmVyKGNvbnRleHQsIEludFBvaW50KCksIHNu
YXBwZWRJbnRSZWN0KHRyYW5zZm9ybWVkQ2xpcCkpOworICAgICAgICBzY3JvbGxhYmxlTGF5ZXIt
PnBhaW50UmVzaXplcihjb250ZXh0LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZENsaXApOwogICAg
IH0KICNpZm5kZWYgTkRFQlVHCiAgICAgcmVuZGVyZXIoKS5wYWdlKCkuc2V0SXNQYWludGluZyhm
YWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCmluZGV4IDNlN2E1MGYwM2UwOTI0MzM0YmI2ODI3ODg3YzJmZmRhMjM3YzM3MjYu
LjAzMWNiNTNjZWY2ODgxNTZkMmQzN2Y1MTIyODViMDRjNzZjOWQzNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC00Njgw
LDYgKzQ2ODAsOSBAQCBMYXlvdXRSZWN0IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFyZW50UmVs
YXRpdmVTY3JvbGxhYmxlUmVjdChjb25zdCBSZW5kZXJMYXllcgogCiB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsaW5nTm9kZUxheWVycyhTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlELCBSZW5kZXJMYXllciYgbGF5ZXIsIFNjcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdD
b29yZGluYXRvcikKIHsKKyAgICBhdXRvKiBzY3JvbGxhYmxlTGF5ZXIgPSBsYXllci5zY3JvbGxh
YmxlQXJlYSgpOworICAgIEFTU0VSVChzY3JvbGxhYmxlTGF5ZXIpOworCiAgICAgaWYgKGxheWVy
LmlzUmVuZGVyVmlld0xheWVyKCkpIHsKICAgICAgICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSBt
X3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7CiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLnNl
dE5vZGVMYXllcnMobm9kZUlELCB7IG51bGxwdHIsCkBAIC00NjkxLDcgKzQ2OTQsNyBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsaW5nTm9kZUxheWVycyhTY3JvbGxp
bmdOb2RlSUQgbm9kZUlELCBSZQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci5zZXROb2Rl
TGF5ZXJzKG5vZGVJRCwgeyBiYWNraW5nLmdyYXBoaWNzTGF5ZXIoKSwKICAgICAgICAgICAgIGJh
Y2tpbmcuc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSwgYmFja2luZy5zY3JvbGxlZENvbnRlbnRzTGF5
ZXIoKSwKICAgICAgICAgICAgIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsCi0gICAgICAgICAg
ICBsYXllci5sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSwgbGF5ZXIubGF5ZXJGb3JWZXJ0
aWNhbFNjcm9sbGJhcigpIH0pOworICAgICAgICAgICAgc2Nyb2xsYWJsZUxheWVyLT5sYXllckZv
ckhvcml6b250YWxTY3JvbGxiYXIoKSwgc2Nyb2xsYWJsZUxheWVyLT5sYXllckZvclZlcnRpY2Fs
U2Nyb2xsYmFyKCkgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggN2MwMWYwMjBmZTgyY2VhY2Y0YzQxMmNhZDY5YWNl
MTMxZWJjZDNkZC4uMzU2MGU0ZGI5YTcwNTAyYTM0ZTE4NmNlZDhkOWM1MjVlMDIyYjViNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNjEw
LDkgKzYxMCw5IEBAIHN0YXRpYyB2b2lkIHdyaXRlTGF5ZXIoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFJlbmRlckxheWVyJiBsYXllciwgY29uc3QgTGF5b3V0UmVjCiAgICAgICAgICAgICB0cyA8PCAi
IHNjcm9sbEhlaWdodCAiIDw8IGxheWVyLnNjcm9sbEhlaWdodCgpOwogI2lmIFBMQVRGT1JNKE1B
QykKICAgICAgICAgU2Nyb2xsYmFyVGhlbWUmIHNjcm9sbGJhclRoZW1lID0gU2Nyb2xsYmFyVGhl
bWU6OnRoZW1lKCk7Ci0gICAgICAgIGlmICghc2Nyb2xsYmFyVGhlbWUuaXNNb2NrVGhlbWUoKSAm
JiBsYXllci5oYXNWZXJ0aWNhbFNjcm9sbGJhcigpKSB7CisgICAgICAgIGlmICghc2Nyb2xsYmFy
VGhlbWUuaXNNb2NrVGhlbWUoKSAmJiBsYXllci5zY3JvbGxhYmxlQXJlYSgpICYmIGxheWVyLnNj
cm9sbGFibGVBcmVhKCktPmhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsKICAgICAgICAgICAgIFNj
cm9sbGJhclRoZW1lTWFjJiBtYWNUaGVtZSA9ICpzdGF0aWNfY2FzdDxTY3JvbGxiYXJUaGVtZU1h
Yyo+KCZzY3JvbGxiYXJUaGVtZSk7Ci0gICAgICAgICAgICBpZiAobWFjVGhlbWUuaXNMYXlvdXRE
aXJlY3Rpb25SVEwoKmxheWVyLnZlcnRpY2FsU2Nyb2xsYmFyKCkpKQorICAgICAgICAgICAgaWYg
KG1hY1RoZW1lLmlzTGF5b3V0RGlyZWN0aW9uUlRMKCpsYXllci5zY3JvbGxhYmxlQXJlYSgpLT52
ZXJ0aWNhbFNjcm9sbGJhcigpKSkKICAgICAgICAgICAgICAgICB0cyA8PCAiIHNjcm9sbGJhckhh
c1JUTExheW91dERpcmVjdGlvbiI7CiAgICAgICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCBiMTAzM2RhMDc5MzA0Njc5YjU1N2EyZDEy
NDQ5MTQzNTZiNjIzZTdiLi5mZjQyMjIwNzMyMThjNmU1MTAxMzcxNmRmNDk2N2FiYWFlNThkMmQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyQmFja2luZy5oIgorI2luY2x1ZGUgIlJlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAi
U2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgpAQCAt
MzMyLDggKzMzMywxMCBAQCB2b2lkIFJlbmRlcldpZGdldDo6cGFpbnQoUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICAgICAgcGFpbnRJbmZv
LmNvbnRleHQoKS5maWxsUmVjdChzbmFwcGVkSW50UmVjdChzZWxlY3Rpb25SZWN0KCkpLCBzZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSk7CiAgICAgfQogCi0gICAgaWYgKGhhc0xheWVyKCkgJiYg
bGF5ZXIoKS0+Y2FuUmVzaXplKCkpCi0gICAgICAgIGxheWVyKCktPnBhaW50UmVzaXplcihwYWlu
dEluZm8uY29udGV4dCgpLCByb3VuZGVkSW50UG9pbnQoYWRqdXN0ZWRQYWludE9mZnNldCksIHBh
aW50SW5mby5yZWN0KTsKKyAgICBpZiAoaGFzTGF5ZXIoKSAmJiBsYXllcigpLT5jYW5SZXNpemUo
KSkgeworICAgICAgICBBU1NFUlQobGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSk7CisgICAgICAg
IGxheWVyKCktPnNjcm9sbGFibGVBcmVhKCktPnBhaW50UmVzaXplcihwYWludEluZm8uY29udGV4
dCgpLCByb3VuZGVkSW50UG9pbnQoYWRqdXN0ZWRQYWludE9mZnNldCksIHBhaW50SW5mby5yZWN0
KTsKKyAgICB9CiB9CiAKIHZvaWQgUmVuZGVyV2lkZ2V0OjpzZXRPdmVybGFwVGVzdFJlc3VsdChi
b29sIGlzT3ZlcmxhcHBlZCkK
</data>
<flag name="commit-queue"
          id="435676"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417870</attachid>
            <date>2021-01-19 04:23:25 -0800</date>
            <delta_ts>2021-01-20 14:01:54 -0800</delta_ts>
            <desc>Patch, v2</desc>
            <filename>bug-220729-20210119132324.patch</filename>
            <type>text/plain</type>
            <size>23681</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjg4ZGY4MzIyZDdkZWVl
NWUwMzQzNzllZjg1YTg2M2NhYzU1ZWRmYi4uNmZhOTMzNGEwZTQ2ZjVhNjM0NjFkNTI3NDljM2Vi
ZWM3YzZlODJmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTAxLTE5ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkBpZ2FsaWEuY29tPgorCisgICAgICAgIENvbnRp
bnVlIHJlbW92aW5nIGdsdWUgY29kZSBmcm9tIFJlbmRlckxheWVyIHRoYXQgd2FzIHJlY2VudGx5
IGFkZGVkIGluIHIyNzE1NTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMDcyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZvbGxvdy11cCBvbiBwYXRjaCBhZHJlc3NpbmcgdGhlIHJlbW92YWwgb2YgdGhl
IGdsdWUgY29kZSB0aGF0CisgICAgICAgIGZvcndhcmRzIGNhbGxzIGZyb20gUmVuZGVyTGF5ZXIg
dG8gUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYSAoc2VlCisgICAgICAgIHdlYmtpdC5vcmcvYi82
MDMwNSkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAq
IHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cGFpbnRD
b250ZW50cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJsb2NrOjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6aW50cmluc2ljU2Nyb2xs
YmFyTG9naWNhbFdpZHRoIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvbnRhaW5zRGlydHlPdmVybGF5
U2Nyb2xsYmFycyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6aGl0VGVzdE92ZXJmbG93Q29udHJvbHMpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OnBhaW50T3ZlcmZsb3dDb250cm9scyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRSZXNpemVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjpwYWludFNjcm9sbENvcm5lcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRPdmVybGF5U2Nyb2xsYmFycyk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6bGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xs
YmFyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpsYXll
ckZvclZlcnRpY2FsU2Nyb2xsYmFyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpob3Jpem9udGFsU2Nyb2xsYmFyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp2ZXJ0aWNhbFNjcm9sbGJhciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6aGFzU2Nyb2xsYmFycyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6aGFzSG9yaXpvbnRhbFNjcm9sbGJhciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGFzVmVydGljYWxTY3JvbGxiYXIg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpyZXF1aXJlc0hvcml6
b250YWxTY3JvbGxiYXJMYXllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckJhY2tpbmc6OnJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXllciBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnJlcXVpcmVzU2Nyb2xsQ29ybmVyTGF5ZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpwb3NpdGlvbk92
ZXJmbG93Q29udHJvbHNMYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjpwYWludEludG9MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50Q29udGVudHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRh
dGVTY3JvbGxpbmdOb2RlTGF5ZXJzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFz
VGV4dC5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OnBhaW50KToKKwogMjAyMS0wMS0xOCAgTmlrb2xhcyBa
aW1tZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBDb250aW51ZSBy
ZW1vdmluZyBnbHVlIGNvZGUgZnJvbSBSZW5kZXJMYXllciB0aGF0IHdhcyByZWNlbnRseSBhZGRl
ZCBpbiByMjcxNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZmMyYjM1Nzg2MzM5
MTZmMzQzMmU5MzUyYzFlY2NiMTc3MDQ0NjVjYS4uNzZhZTZmOThiYjVjZDYzZWY5MzZlNDY1MGFk
NGViMDA0Nzc4MTY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNDMzMiw4ICs0
MzMyLDEwIEBAIHZvaWQgRnJhbWVWaWV3OjpwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0CiAgICAgICAgIHJlbmRlcmVyID0gcmVu
ZGVyZXItPnBhcmVudCgpOwogCiAgICAgcm9vdExheWVyLT5wYWludChjb250ZXh0LCBkaXJ0eVJl
Y3QsIExheW91dFNpemUoKSwgbV9wYWludEJlaGF2aW9yLCByZW5kZXJlciwgeyB9LCBzZWN1cml0
eU9yaWdpblBhaW50UG9saWN5ID09IFNlY3VyaXR5T3JpZ2luUGFpbnRQb2xpY3k6OkFueU9yaWdp
biA/IFJlbmRlckxheWVyOjpTZWN1cml0eU9yaWdpblBhaW50UG9saWN5OjpBbnlPcmlnaW4gOiBS
ZW5kZXJMYXllcjo6U2VjdXJpdHlPcmlnaW5QYWludFBvbGljeTo6QWNjZXNzaWJsZU9yaWdpbk9u
bHksIGV2ZW50UmVnaW9uQ29udGV4dCk7Ci0gICAgaWYgKHJvb3RMYXllci0+Y29udGFpbnNEaXJ0
eU92ZXJsYXlTY3JvbGxiYXJzKCkgJiYgIWV2ZW50UmVnaW9uQ29udGV4dCkKLSAgICAgICAgcm9v
dExheWVyLT5wYWludE92ZXJsYXlTY3JvbGxiYXJzKGNvbnRleHQsIGRpcnR5UmVjdCwgbV9wYWlu
dEJlaGF2aW9yLCByZW5kZXJlcik7CisgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVSb290TGF5ZXIg
PSByb290TGF5ZXItPnNjcm9sbGFibGVBcmVhKCkpIHsKKyAgICAgICAgaWYgKHNjcm9sbGFibGVS
b290TGF5ZXItPmNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycygpICYmICFldmVudFJlZ2lv
bkNvbnRleHQpCisgICAgICAgICAgICBzY3JvbGxhYmxlUm9vdExheWVyLT5wYWludE92ZXJsYXlT
Y3JvbGxiYXJzKGNvbnRleHQsIGRpcnR5UmVjdCwgbV9wYWludEJlaGF2aW9yLCByZW5kZXJlcik7
CisgICAgfQogCiAgICAgZGlkUGFpbnRDb250ZW50cyhjb250ZXh0LCBkaXJ0eVJlY3QsIHBhaW50
aW5nU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5k
ZXggZmFlM2JhMWVhMThkM2Q2M2MwNGZkNjk1NGQ0ODgyOGJiZThiM2ZhMS4uMjIyYmJmYmM0MDQ4
OWY3MTE4NzE3N2RjNzVkM2ZkNDEzNDJmZjRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5l
LmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgorI2luY2x1ZGUgIlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJSZW5k
ZXJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RNYXJrZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJNZW51TGlzdC5oIgpAQCAtMTExMiw4ICsxMTEzLDggQEAgdm9pZCBSZW5kZXJCbG9j
azo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCkKICAgICAvLyB6LWluZGV4LiBXZSBwYWludCBhZnRlciB3ZSBwYWludGVkIHRoZSBiYWNr
Z3JvdW5kL2JvcmRlciwgc28gdGhhdCB0aGUgc2Nyb2xsYmFycyB3aWxsCiAgICAgLy8gc2l0IGFi
b3ZlIHRoZSBiYWNrZ3JvdW5kL2JvcmRlci4KICAgICBpZiAoKHBoYXNlID09IFBhaW50UGhhc2U6
OkJsb2NrQmFja2dyb3VuZCB8fCBwaGFzZSA9PSBQYWludFBoYXNlOjpDaGlsZEJsb2NrQmFja2dy
b3VuZCkgJiYgaGFzT3ZlcmZsb3dDbGlwKCkgJiYgbGF5ZXIoKQotICAgICAgICAmJiBzdHlsZSgp
LnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlICYmIHBhaW50SW5mby5zaG91bGRQ
YWludFdpdGhpblJvb3QoKnRoaXMpICYmICFwYWludEluZm8ucGFpbnRSb290QmFja2dyb3VuZE9u
bHkoKSkKLSAgICAgICAgbGF5ZXIoKS0+cGFpbnRPdmVyZmxvd0NvbnRyb2xzKHBhaW50SW5mby5j
b250ZXh0KCksIHJvdW5kZWRJbnRQb2ludChhZGp1c3RlZFBhaW50T2Zmc2V0KSwgc25hcHBlZElu
dFJlY3QocGFpbnRJbmZvLnJlY3QpKTsKKyAgICAgICAgJiYgbGF5ZXIoKS0+c2Nyb2xsYWJsZUFy
ZWEoKSAmJiBzdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlICYmIHBh
aW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMpICYmICFwYWludEluZm8ucGFpbnRS
b290QmFja2dyb3VuZE9ubHkoKSkKKyAgICAgICAgbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKS0+
cGFpbnRPdmVyZmxvd0NvbnRyb2xzKHBhaW50SW5mby5jb250ZXh0KCksIHJvdW5kZWRJbnRQb2lu
dChhZGp1c3RlZFBhaW50T2Zmc2V0KSwgc25hcHBlZEludFJlY3QocGFpbnRJbmZvLnJlY3QpKTsK
IH0KIAogdm9pZCBSZW5kZXJCbG9jazo6cGFpbnRDb250ZW50cyhQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpAQCAtMjAwNSw4ICsyMDA2LDkgQEAg
Ym9vbCBSZW5kZXJCbG9jazo6aXNQb2ludEluT3ZlcmZsb3dDb250cm9sKEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgY29uc3QgTGF5b3V0UG8KIHsKICAgICBpZiAoIXNjcm9sbHNPdmVyZmxvdygpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbGF5ZXIoKS0+aGl0VGVzdE92ZXJm
bG93Q29udHJvbHMocmVzdWx0LCByb3VuZGVkSW50UG9pbnQobG9jYXRpb25JbkNvbnRhaW5lciAt
IHRvTGF5b3V0U2l6ZShhY2N1bXVsYXRlZE9mZnNldCkpKTsKKyAgICBpZiAoYXV0byogc2Nyb2xs
YWJsZUxheWVyID0gbGF5ZXIoKSA/IGxheWVyKCktPnNjcm9sbGFibGVBcmVhKCkgOiBudWxscHRy
KQorICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZUxheWVyLT5oaXRUZXN0T3ZlcmZsb3dDb250cm9s
cyhyZXN1bHQsIHJvdW5kZWRJbnRQb2ludChsb2NhdGlvbkluQ29udGFpbmVyIC0gdG9MYXlvdXRT
aXplKGFjY3VtdWxhdGVkT2Zmc2V0KSkpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogTm9kZSog
UmVuZGVyQmxvY2s6Om5vZGVGb3JIaXRUZXN0KCkgY29uc3QKQEAgLTI1MDIsMTAgKzI1MDQsMjMg
QEAgaW50IFJlbmRlckJsb2NrOjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSBiYXNlbGlu
ZVR5cGUsIGJvb2wgZmlyc3RMaW5lLCBMaW4KICAgICAgICAgLy8gKHRoZSBjb250ZW50IGluc2lk
ZSB0aGVtIG1vdmVzKS4gIFRoaXMgbWF0Y2hlcyBXaW5JRSBhcyB3ZWxsLCB3aGljaCBqdXN0IGJv
dHRvbS1hbGlnbnMgdGhlbS4KICAgICAgICAgLy8gV2UgYWxzbyBnaXZlIHVwIG9uIGZpbmRpbmcg
YSBiYXNlbGluZSBpZiB3ZSBoYXZlIGEgdmVydGljYWwgc2Nyb2xsYmFyLCBvciBpZiB3ZSBhcmUg
c2Nyb2xsZWQKICAgICAgICAgLy8gdmVydGljYWxseSAoZS5nLiwgYW4gb3ZlcmZsb3c6aGlkZGVu
IGJsb2NrIHRoYXQgaGFzIGhhZCBzY3JvbGxUb3AgbW92ZWQpLgotICAgICAgICBib29sIGlnbm9y
ZUJhc2VsaW5lID0gKGxheWVyKCkgJiYgKGxheWVyKCktPm1hcnF1ZWUoKSB8fCAoZGlyZWN0aW9u
ID09IEhvcml6b250YWxMaW5lID8gKGxheWVyKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCkgfHwgbGF5
ZXIoKS0+c2Nyb2xsT2Zmc2V0KCkueSgpICE9IDApCi0gICAgICAgICAgICA6IChsYXllcigpLT5o
b3Jpem9udGFsU2Nyb2xsYmFyKCkgfHwgbGF5ZXIoKS0+c2Nyb2xsT2Zmc2V0KCkueCgpICE9IDAp
KSkpIHx8IChpc1dyaXRpbmdNb2RlUm9vdCgpICYmICFpc1J1YnlSdW4oKSk7Ci0gICAgICAgIAot
ICAgICAgICBPcHRpb25hbDxpbnQ+IGJhc2VsaW5lUG9zID0gaWdub3JlQmFzZWxpbmUgPyBPcHRp
b25hbDxpbnQ+KCkgOiBpbmxpbmVCbG9ja0Jhc2VsaW5lKGRpcmVjdGlvbik7CisgICAgICAgIGF1
dG8gaWdub3JlQmFzZWxpbmUgPSBbdGhpcywgZGlyZWN0aW9uXSgpIC0+IGJvb2wgeworICAgICAg
ICAgICAgaWYgKGlzV3JpdGluZ01vZGVSb290KCkgJiYgIWlzUnVieVJ1bigpKQorICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICBhdXRvKiBzY3JvbGxhYmxlTGF5ZXIg
PSBsYXllcigpID8gbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSA6IG51bGxwdHI7CisgICAgICAg
ICAgICBpZiAoIXNjcm9sbGFibGVMYXllcikKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgICAgIGlmIChzY3JvbGxhYmxlTGF5ZXItPm1hcnF1ZWUoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgaWYgKGRpcmVjdGlvbiA9PSBIb3Jp
em9udGFsTGluZSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Nyb2xsYWJsZUxheWVyLT52ZXJ0
aWNhbFNjcm9sbGJhcigpIHx8IHNjcm9sbGFibGVMYXllci0+c2Nyb2xsT2Zmc2V0KCkueSgpOwor
ICAgICAgICAgICAgcmV0dXJuIHNjcm9sbGFibGVMYXllci0+aG9yaXpvbnRhbFNjcm9sbGJhcigp
IHx8IHNjcm9sbGFibGVMYXllci0+c2Nyb2xsT2Zmc2V0KCkueCgpOworICAgICAgICB9OworCisg
ICAgICAgIE9wdGlvbmFsPGludD4gYmFzZWxpbmVQb3MgPSBpZ25vcmVCYXNlbGluZSgpID8gT3B0
aW9uYWw8aW50PigpIDogaW5saW5lQmxvY2tCYXNlbGluZShkaXJlY3Rpb24pOwogICAgICAgICAK
ICAgICAgICAgaWYgKGlzRGVwcmVjYXRlZEZsZXhpYmxlQm94KCkpIHsKICAgICAgICAgICAgIC8v
IEhpc3RvcmljYWxseSwgd2UgZGlkIHRoaXMgY2hlY2sgZm9yIGFsbCBiYXNlbGluZXMuIEJ1dCB3
ZSBjYW4ndApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA5MGZhZjky
YjUyODI4OTZjZDI3NzBjYWJhMjc3YjViNmJjNzUxMjAyLi4xNmUwMmI2MGFlNjE5MDM0YzkwM2Jl
YjIyNzI0NWViMjk0NWU1ZDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cApAQCAtODUwLDEyICs4NTAsMTIgQEAgaW50IFJlbmRlckJveDo6aW50cmluc2ljU2Nyb2xsYmFy
TG9naWNhbFdpZHRoKCkgY29uc3QKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBpZiAoaXNIb3Jp
em9udGFsV3JpdGluZ01vZGUoKSAmJiAoc3R5bGUoKS5vdmVyZmxvd1koKSA9PSBPdmVyZmxvdzo6
U2Nyb2xsICYmICFjYW5Vc2VPdmVybGF5U2Nyb2xsYmFycygpKSkgewotICAgICAgICBBU1NFUlQo
bGF5ZXIoKSAmJiBsYXllcigpLT5oYXNWZXJ0aWNhbFNjcm9sbGJhcigpKTsKKyAgICAgICAgQVNT
RVJUKGxheWVyKCkgJiYgbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSAmJiBsYXllcigpLT5zY3Jv
bGxhYmxlQXJlYSgpLT5oYXNWZXJ0aWNhbFNjcm9sbGJhcigpKTsKICAgICAgICAgcmV0dXJuIHZl
cnRpY2FsU2Nyb2xsYmFyV2lkdGgoKTsKICAgICB9CiAKICAgICBpZiAoIWlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkgJiYgKHN0eWxlKCkub3ZlcmZsb3dYKCkgPT0gT3ZlcmZsb3c6OlNjcm9sbCAm
JiAhY2FuVXNlT3ZlcmxheVNjcm9sbGJhcnMoKSkpIHsKLSAgICAgICAgQVNTRVJUKGxheWVyKCkg
JiYgbGF5ZXIoKS0+aGFzSG9yaXpvbnRhbFNjcm9sbGJhcigpKTsKKyAgICAgICAgQVNTRVJUKGxh
eWVyKCkgJiYgbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSAmJiBsYXllcigpLT5zY3JvbGxhYmxl
QXJlYSgpLT5oYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCkpOwogICAgICAgICByZXR1cm4gaG9yaXpv
bnRhbFNjcm9sbGJhckhlaWdodCgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggMjMwZmEyYTFhOGQyMTJhZGE2NzM1OWRhNzNjMDliMTA1MDUx
ZTIxZC4uYjU0NzYxNGM5MTBlYmU5YzNiNjFlZDRlNDJhYzkyMzIxNzM5ZWY0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zODksMTMgKzM4OSw2IEBAIGJv
b2wgUmVuZGVyTGF5ZXI6OnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQo
KSBjb25zdAogICAgIHJldHVybiByZW5kZXJlcigpLnNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25T
Y3JvbGxiYXJPbkxlZnQoKTsKIH0KIAotYm9vbCBSZW5kZXJMYXllcjo6Y29udGFpbnNEaXJ0eU92
ZXJsYXlTY3JvbGxiYXJzKCkgY29uc3QKLXsKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYSkKLSAg
ICAgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEtPmNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xs
YmFycygpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQogUmVuZGVyTWFycXVlZSogUmVuZGVyTGF5
ZXI6Om1hcnF1ZWUoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGFibGVBcmVhKQpAQCAtNDA5
LDM3ICs0MDIsNiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVy
RG9jdW1lbnRTY3JvbGwoKQogICAgICAgICBtX3Njcm9sbGFibGVBcmVhLT51cGRhdGVMYXllclBv
c2l0aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwoKTsKIH0KIAotYm9vbCBSZW5kZXJMYXllcjo6aGl0
VGVzdE92ZXJmbG93Q29udHJvbHMoSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBjb25zdCBJbnRQb2lu
dCYgbG9jYWxQb2ludCkKLXsKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYSkKLSAgICAgICAgcmV0
dXJuIG1fc2Nyb2xsYWJsZUFyZWEtPmhpdFRlc3RPdmVyZmxvd0NvbnRyb2xzKHJlc3VsdCwgbG9j
YWxQb2ludCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIFJlbmRlckxheWVyOjpwYWlu
dE92ZXJmbG93Q29udHJvbHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRQb2lu
dCYgcG9pbnQsIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIGJvb2wgcGFpbnRpbmdPdmVybGF5
Q29udHJvbHMpCi17Ci0gICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEpCi0gICAgICAgIG1fc2Nyb2xs
YWJsZUFyZWEtPnBhaW50T3ZlcmZsb3dDb250cm9scyhjb250ZXh0LCBwb2ludCwgZGFtYWdlUmVj
dCwgcGFpbnRpbmdPdmVybGF5Q29udHJvbHMpOwotfQotCi12b2lkIFJlbmRlckxheWVyOjpwYWlu
dFJlc2l6ZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBMYXlvdXRQb2ludCYgcG9p
bnQsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QpCi17Ci0gICAgaWYgKG1fc2Nyb2xsYWJs
ZUFyZWEpCi0gICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnBhaW50UmVzaXplcihjb250ZXh0LCBw
b2ludCwgZGFtYWdlUmVjdCk7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50U2Nyb2xsQ29y
bmVyKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UG9pbnQmIHBvaW50LCBjb25z
dCBJbnRSZWN0JiBkYW1hZ2VSZWN0KQotewotICAgIGlmIChtX3Njcm9sbGFibGVBcmVhKQotICAg
ICAgICBtX3Njcm9sbGFibGVBcmVhLT5wYWludFNjcm9sbENvcm5lcihjb250ZXh0LCBwb2ludCwg
ZGFtYWdlUmVjdCk7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50T3ZlcmxheVNjcm9sbGJh
cnMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBMYXlvdXRSZWN0JiBkYW1hZ2VSZWN0
LCBPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4gYmVoYXZpb3IsIFJlbmRlck9iamVjdCogc3VidHJl
ZVBhaW50Um9vdCkKLXsKLSAgICBpZiAobV9zY3JvbGxhYmxlQXJlYSkKLSAgICAgICAgbV9zY3Jv
bGxhYmxlQXJlYS0+cGFpbnRPdmVybGF5U2Nyb2xsYmFycyhjb250ZXh0LCBkYW1hZ2VSZWN0LCBi
ZWhhdmlvciwgc3VidHJlZVBhaW50Um9vdCk7Ci19Ci0KIHZvaWQgUmVuZGVyTGF5ZXI6OnNldFBv
c3RMYXlvdXRTY3JvbGxQb3NpdGlvbihPcHRpb25hbDxTY3JvbGxQb3NpdGlvbj4gcG9zaXRpb24p
CiB7CiAgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEpCkBAIC00NTksMzQgKzQyMSw2IEBAIFNjcm9s
bFBvc2l0aW9uIFJlbmRlckxheWVyOjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJu
IFNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKLUdyYXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyOjpsYXll
ckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdAotewotICAgIGlmIChtX3Njcm9sbGFibGVB
cmVhKQotICAgICAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS0+bGF5ZXJGb3JIb3Jpem9udGFs
U2Nyb2xsYmFyKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLUdyYXBoaWNzTGF5ZXIqIFJl
bmRlckxheWVyOjpsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKLXsKLSAgICBpZiAo
bV9zY3JvbGxhYmxlQXJlYSkKLSAgICAgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEtPmxheWVy
Rm9yVmVydGljYWxTY3JvbGxiYXIoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotU2Nyb2xs
YmFyKiBSZW5kZXJMYXllcjo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Ci17Ci0gICAgaWYg
KG1fc2Nyb2xsYWJsZUFyZWEpCi0gICAgICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLT5ob3Jp
em9udGFsU2Nyb2xsYmFyKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLVNjcm9sbGJhciog
UmVuZGVyTGF5ZXI6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKLXsKLSAgICBpZiAobV9zY3Jv
bGxhYmxlQXJlYSkKLSAgICAgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEtPnZlcnRpY2FsU2Ny
b2xsYmFyKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KIGJvb2wgUmVuZGVyTGF5ZXI6OnNj
cm9sbGluZ01heVJldmVhbEJhY2tncm91bmQoKSBjb25zdAogewogICAgIGlmIChtX3Njcm9sbGFi
bGVBcmVhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCA3M2Q0YTQ5
YzAyNWZlYTFhNDE5OGYyMGZjZWFjYTU4ZWYwZmNjNGJiLi43NWZhYTg1YmE1OGE1OTcyZjFhNTU2
NzlkYmFhZDVlYTlhZDUwNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aApAQCAtMTYyLDI3ICsxNjIsMTQgQEAgcHVibGljOgogICAgIC8vIFN0YXJ0IG9mIHRlbXBvcmFy
eSBnbHVlIGNvZGUgdG8gaGVscCBsYW5kaW5nIHdlYmtpdC5vcmcvYi82MDMwNSAoc3BsaXQgUmVu
ZGVyTGF5ZXIgaW50byBSZW5kZXJMYXllci9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhKQogICAg
IFdFQkNPUkVfRVhQT1JUIFNjcm9sbE9mZnNldCBzY3JvbGxPZmZzZXQoKSBjb25zdDsKICAgICBi
b29sIHNob3VsZFBsYWNlQmxvY2tEaXJlY3Rpb25TY3JvbGxiYXJPbkxlZnQoKSBjb25zdDsKLSAg
ICBib29sIGNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycygpIGNvbnN0OwogICAgIFJlbmRl
ck1hcnF1ZWUqIG1hcnF1ZWUoKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25z
QWZ0ZXJEb2N1bWVudFNjcm9sbCgpOwotICAgIGJvb2wgaGl0VGVzdE92ZXJmbG93Q29udHJvbHMo
SGl0VGVzdFJlc3VsdCYsIGNvbnN0IEludFBvaW50JiBsb2NhbFBvaW50KTsKLSAgICB2b2lkIHBh
aW50T3ZlcmZsb3dDb250cm9scyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRQb2ludCYsIGNv
bnN0IEludFJlY3QmIGRhbWFnZVJlY3QsIGJvb2wgcGFpbnRpbmdPdmVybGF5Q29udHJvbHMgPSBm
YWxzZSk7Ci0gICAgdm9pZCBwYWludFNjcm9sbENvcm5lcihHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBJbnRQb2ludCYsIGNvbnN0IEludFJlY3QmIGRhbWFnZVJlY3QpOwotICAgIHZvaWQgcGFpbnRS
ZXNpemVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IExheW91dFBvaW50JiwgY29uc3QgTGF5b3V0
UmVjdCYgZGFtYWdlUmVjdCk7Ci0gICAgdm9pZCBwYWludE92ZXJsYXlTY3JvbGxiYXJzKEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IExheW91dFJlY3QmIGRhbWFnZVJlY3QsIE9wdGlvblNldDxQYWlu
dEJlaGF2aW9yPiwgUmVuZGVyT2JqZWN0KiBzdWJ0cmVlUGFpbnRSb290ID0gbnVsbHB0cik7CiAg
ICAgdm9pZCBzZXRQb3N0TGF5b3V0U2Nyb2xsUG9zaXRpb24oT3B0aW9uYWw8U2Nyb2xsUG9zaXRp
b24+KTsKICAgICB2b2lkIHBhblNjcm9sbEZyb21Qb2ludChjb25zdCBJbnRQb2ludCYpOwogICAg
IFNjcm9sbFBvc2l0aW9uIHNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7Ci0gICAgR3JhcGhpY3NMYXll
ciogbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkgY29uc3Q7Ci0gICAgR3JhcGhpY3NMYXll
ciogbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0OwotICAgIFNjcm9sbGJhciogaG9y
aXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0OwotICAgIFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxi
YXIoKSBjb25zdDsKICAgICBib29sIHNjcm9sbGluZ01heVJldmVhbEJhY2tncm91bmQoKSBjb25z
dDsKICAgICBib29sIGhhc1Njcm9sbGFibGVIb3Jpem9udGFsT3ZlcmZsb3coKSBjb25zdDsKICAg
ICBib29sIGhhc1Njcm9sbGFibGVWZXJ0aWNhbE92ZXJmbG93KCkgY29uc3Q7Ci0gICAgYm9vbCBo
YXNTY3JvbGxiYXJzKCkgY29uc3QgeyByZXR1cm4gaG9yaXpvbnRhbFNjcm9sbGJhcigpIHx8IHZl
cnRpY2FsU2Nyb2xsYmFyKCk7IH0KLSAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIoKSBj
b25zdCB7IHJldHVybiBob3Jpem9udGFsU2Nyb2xsYmFyKCk7IH0KLSAgICBib29sIGhhc1ZlcnRp
Y2FsU2Nyb2xsYmFyKCkgY29uc3QgeyByZXR1cm4gdmVydGljYWxTY3JvbGxiYXIoKTsgfQogICAg
IGludCB2ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5
ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpIGNvbnN0OwogICAgIGludCBob3Jpem9udGFs
U2Nyb2xsYmFySGVpZ2h0KE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5ID0gSWdub3JlT3Zl
cmxheVNjcm9sbGJhclNpemUpIGNvbnN0OwogICAgIGJvb2wgc2Nyb2xsKFNjcm9sbERpcmVjdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IG11bHRpcGxpZXIgPSAxKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYTZmMzUxNWIz
YjE3MjFhN2IzNTZiODE0MjcyZWFiNzdkMjUwODY5MC4uODkwOWE3ZjAxZTkzMDkwZDI4MWM3NmFl
YjZlOTVlYTVhZmI3Njk3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAKQEAgLTIwMTUsMTIgKzIwMTUsMTcgQEAgYm9vbCBSZW5kZXJMYXll
ckJhY2tpbmc6OnJlcXVpcmVzTGF5ZXJGb3JTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIp
IGNvbnN0CiAKIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpyZXF1aXJlc0hvcml6b250YWxTY3Jv
bGxiYXJMYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHJlcXVpcmVzTGF5ZXJGb3JTY3JvbGxi
YXIobV9vd25pbmdMYXllci5ob3Jpem9udGFsU2Nyb2xsYmFyKCkpOworICAgIGlmIChhdXRvKiBz
Y3JvbGxhYmxlTGF5ZXIgPSBtX293bmluZ0xheWVyLnNjcm9sbGFibGVBcmVhKCkpCisgICAgICAg
IHJldHVybiByZXF1aXJlc0xheWVyRm9yU2Nyb2xsYmFyKHNjcm9sbGFibGVMYXllci0+aG9yaXpv
bnRhbFNjcm9sbGJhcigpKTsKKyAgICByZXR1cm4gZmFsc2U7CisKIH0KIAogYm9vbCBSZW5kZXJM
YXllckJhY2tpbmc6OnJlcXVpcmVzVmVydGljYWxTY3JvbGxiYXJMYXllcigpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIHJlcXVpcmVzTGF5ZXJGb3JTY3JvbGxiYXIobV9vd25pbmdMYXllci52ZXJ0aWNh
bFNjcm9sbGJhcigpKTsKKyAgICBpZiAoYXV0byogc2Nyb2xsYWJsZUxheWVyID0gbV9vd25pbmdM
YXllci5zY3JvbGxhYmxlQXJlYSgpKQorICAgICAgICByZXR1cm4gcmVxdWlyZXNMYXllckZvclNj
cm9sbGJhcihzY3JvbGxhYmxlTGF5ZXItPnZlcnRpY2FsU2Nyb2xsYmFyKCkpOworICAgIHJldHVy
biBmYWxzZTsKIH0KIAogYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnJlcXVpcmVzU2Nyb2xsQ29y
bmVyTGF5ZXIoKSBjb25zdApAQCAtMjAzMiw4ICsyMDM3LDEyIEBAIGJvb2wgUmVuZGVyTGF5ZXJC
YWNraW5nOjpyZXF1aXJlc1Njcm9sbENvcm5lckxheWVyKCkgY29uc3QKICAgICBpZiAoY29ybmVy
UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8gdmVydGlj
YWxTY3JvbGxiYXIgPSBtX293bmluZ0xheWVyLnZlcnRpY2FsU2Nyb2xsYmFyKCk7Ci0gICAgYXV0
byBzY3JvbGxiYXIgPSB2ZXJ0aWNhbFNjcm9sbGJhciA/IHZlcnRpY2FsU2Nyb2xsYmFyIDogbV9v
d25pbmdMYXllci5ob3Jpem9udGFsU2Nyb2xsYmFyKCk7CisgICAgYXV0byogc2Nyb2xsYWJsZUxh
eWVyID0gbV9vd25pbmdMYXllci5zY3JvbGxhYmxlQXJlYSgpOworICAgIGlmICghc2Nyb2xsYWJs
ZUxheWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHZlcnRpY2FsU2Nyb2xs
YmFyID0gc2Nyb2xsYWJsZUxheWVyLT52ZXJ0aWNhbFNjcm9sbGJhcigpOworICAgIGF1dG8gc2Ny
b2xsYmFyID0gdmVydGljYWxTY3JvbGxiYXIgPyB2ZXJ0aWNhbFNjcm9sbGJhciA6IHNjcm9sbGFi
bGVMYXllci0+aG9yaXpvbnRhbFNjcm9sbGJhcigpOwogICAgIHJldHVybiByZXF1aXJlc0xheWVy
Rm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiB9CiAKQEAgLTIwODIsOSArMjA5MSw5IEBAIGJvb2wg
UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVPdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKGJvb2wgbmVl
ZHNIb3Jpem9udGFsU2Nyb2xsCiAKIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwb3NpdGlvbk92
ZXJmbG93Q29udHJvbHNMYXllcnMoKQogewotICAgIGlmICghbV9vd25pbmdMYXllci5oYXNTY3Jv
bGxiYXJzKCkpCisgICAgYXV0byogc2Nyb2xsYWJsZUxheWVyID0gbV9vd25pbmdMYXllci5zY3Jv
bGxhYmxlQXJlYSgpOworICAgIGlmICghc2Nyb2xsYWJsZUxheWVyIHx8ICFzY3JvbGxhYmxlTGF5
ZXItPmhhc1Njcm9sbGJhcnMoKSkKICAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gRklYTUU6IFNo
b3VsZCBkbyBkZXZpY2UtcGl4ZWwgc25hcHBpbmcuCiAgICAgYXV0byBib3ggPSByZW5kZXJCb3go
KTsKICAgICBhdXRvIGJvcmRlckJveCA9IHNuYXBwZWRJbnRSZWN0KGJveC0+Ym9yZGVyQm94UmVj
dCgpKTsKQEAgLTIxMDgsMTIgKzIxMTcsMTIgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnBv
c2l0aW9uT3ZlcmZsb3dDb250cm9sc0xheWVycygpCiAKICAgICBpZiAoYXV0byogbGF5ZXIgPSBs
YXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSkgewogICAgICAgICBwb3NpdGlvblNjcm9sbGJh
ckxheWVyKCpsYXllciwgcmVjdHMuaG9yaXpvbnRhbFNjcm9sbGJhciwgcGFkZGluZ0JveEluc2V0
KTsKLSAgICAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudChtX293bmluZ0xheWVyLmhvcml6b250
YWxTY3JvbGxiYXIoKSAmJiAhbGF5ZXItPnVzZXNDb250ZW50c0xheWVyKCkpOworICAgICAgICBs
YXllci0+c2V0RHJhd3NDb250ZW50KHNjcm9sbGFibGVMYXllci0+aG9yaXpvbnRhbFNjcm9sbGJh
cigpICYmICFsYXllci0+dXNlc0NvbnRlbnRzTGF5ZXIoKSk7CiAgICAgfQogCiAgICAgaWYgKGF1
dG8qIGxheWVyID0gbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJhcigpKSB7CiAgICAgICAgIHBvc2l0
aW9uU2Nyb2xsYmFyTGF5ZXIoKmxheWVyLCByZWN0cy52ZXJ0aWNhbFNjcm9sbGJhciwgcGFkZGlu
Z0JveEluc2V0KTsKLSAgICAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudChtX293bmluZ0xheWVy
LnZlcnRpY2FsU2Nyb2xsYmFyKCkgJiYgIWxheWVyLT51c2VzQ29udGVudHNMYXllcigpKTsKKyAg
ICAgICAgbGF5ZXItPnNldERyYXdzQ29udGVudChzY3JvbGxhYmxlTGF5ZXItPnZlcnRpY2FsU2Ny
b2xsYmFyKCkgJiYgIWxheWVyLT51c2VzQ29udGVudHNMYXllcigpKTsKICAgICB9CiAKICAgICBp
ZiAoYXV0byogbGF5ZXIgPSBsYXllckZvclNjcm9sbENvcm5lcigpKSB7CkBAIC0zMTM4LDcgKzMx
NDcsOCBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3Jh
cGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3JhcAogICAgICAgICBpZiAoJmxheWVyID09ICZt
X293bmluZ0xheWVyKSB7CiAgICAgICAgICAgICBsYXllci5wYWludExheWVyQ29udGVudHMoY29u
dGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKIAotICAgICAgICAgICAgaWYgKGxheWVy
LmNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycygpICYmICFldmVudFJlZ2lvbkNvbnRleHQp
CisgICAgICAgICAgICBhdXRvKiBzY3JvbGxhYmxlTGF5ZXIgPSBsYXllci5zY3JvbGxhYmxlQXJl
YSgpOworICAgICAgICAgICAgaWYgKHNjcm9sbGFibGVMYXllciAmJiBzY3JvbGxhYmxlTGF5ZXIt
PmNvbnRhaW5zRGlydHlPdmVybGF5U2Nyb2xsYmFycygpICYmICFldmVudFJlZ2lvbkNvbnRleHQp
CiAgICAgICAgICAgICAgICAgbGF5ZXIucGFpbnRMYXllckNvbnRlbnRzKGNvbnRleHQsIHBhaW50
aW5nSW5mbywgcGFpbnRGbGFncyB8IFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZzo6UGFpbnRp
bmdPdmVybGF5U2Nyb2xsYmFycyk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbGF5ZXIu
cGFpbnRMYXllcldpdGhFZmZlY3RzKGNvbnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRGbGFncyk7
CkBAIC0zNDI0LDE3ICszNDM0LDI2IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWludENv
bnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyYXBoCiAgICAgICAg
ICAgICBwYWludERlYnVnT3ZlcmxheXMoZ3JhcGhpY3NMYXllciwgY29udGV4dCk7CiAKICAgICB9
IGVsc2UgaWYgKGdyYXBoaWNzTGF5ZXIgPT0gbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkp
IHsKLSAgICAgICAgcGFpbnRTY3JvbGxiYXIobV9vd25pbmdMYXllci5ob3Jpem9udGFsU2Nyb2xs
YmFyKCksIGNvbnRleHQsIGRpcnR5UmVjdCk7CisgICAgICAgIGF1dG8qIHNjcm9sbGFibGVMYXll
ciA9IG1fb3duaW5nTGF5ZXIuc2Nyb2xsYWJsZUFyZWEoKTsKKyAgICAgICAgQVNTRVJUKHNjcm9s
bGFibGVMYXllcik7CisKKyAgICAgICAgcGFpbnRTY3JvbGxiYXIoc2Nyb2xsYWJsZUxheWVyLT5o
b3Jpem9udGFsU2Nyb2xsYmFyKCksIGNvbnRleHQsIGRpcnR5UmVjdCk7CiAgICAgfSBlbHNlIGlm
IChncmFwaGljc0xheWVyID09IGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkgewotICAgICAg
ICBwYWludFNjcm9sbGJhcihtX293bmluZ0xheWVyLnZlcnRpY2FsU2Nyb2xsYmFyKCksIGNvbnRl
eHQsIGRpcnR5UmVjdCk7CisgICAgICAgIGF1dG8qIHNjcm9sbGFibGVMYXllciA9IG1fb3duaW5n
TGF5ZXIuc2Nyb2xsYWJsZUFyZWEoKTsKKyAgICAgICAgQVNTRVJUKHNjcm9sbGFibGVMYXllcik7
CisKKyAgICAgICAgcGFpbnRTY3JvbGxiYXIoc2Nyb2xsYWJsZUxheWVyLT52ZXJ0aWNhbFNjcm9s
bGJhcigpLCBjb250ZXh0LCBkaXJ0eVJlY3QpOwogICAgIH0gZWxzZSBpZiAoZ3JhcGhpY3NMYXll
ciA9PSBsYXllckZvclNjcm9sbENvcm5lcigpKSB7CisgICAgICAgIGF1dG8qIHNjcm9sbGFibGVM
YXllciA9IG1fb3duaW5nTGF5ZXIuc2Nyb2xsYWJsZUFyZWEoKTsKKyAgICAgICAgQVNTRVJUKHNj
cm9sbGFibGVMYXllcik7CisKICAgICAgICAgYXV0byBjb3JuZXJSZWN0ID0gbV9vd25pbmdMYXll
ci5vdmVyZmxvd0NvbnRyb2xzUmVjdHMoKS5zY3JvbGxDb3JuZXJPclJlc2l6ZXJSZWN0KCk7CiAg
ICAgICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKICAg
ICAgICAgY29udGV4dC50cmFuc2xhdGUoLWNvcm5lclJlY3QubG9jYXRpb24oKSk7CiAgICAgICAg
IExheW91dFJlY3QgdHJhbnNmb3JtZWRDbGlwID0gTGF5b3V0UmVjdChjbGlwKTsKICAgICAgICAg
dHJhbnNmb3JtZWRDbGlwLm1vdmVCeShjb3JuZXJSZWN0LmxvY2F0aW9uKCkpOwotICAgICAgICBt
X293bmluZ0xheWVyLnBhaW50U2Nyb2xsQ29ybmVyKGNvbnRleHQsIEludFBvaW50KCksIHNuYXBw
ZWRJbnRSZWN0KHRyYW5zZm9ybWVkQ2xpcCkpOwotICAgICAgICBtX293bmluZ0xheWVyLnBhaW50
UmVzaXplcihjb250ZXh0LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZENsaXApOworICAgICAgICBz
Y3JvbGxhYmxlTGF5ZXItPnBhaW50U2Nyb2xsQ29ybmVyKGNvbnRleHQsIEludFBvaW50KCksIHNu
YXBwZWRJbnRSZWN0KHRyYW5zZm9ybWVkQ2xpcCkpOworICAgICAgICBzY3JvbGxhYmxlTGF5ZXIt
PnBhaW50UmVzaXplcihjb250ZXh0LCBJbnRQb2ludCgpLCB0cmFuc2Zvcm1lZENsaXApOwogICAg
IH0KICNpZm5kZWYgTkRFQlVHCiAgICAgcmVuZGVyZXIoKS5wYWdlKCkuc2V0SXNQYWludGluZyhm
YWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCmluZGV4IDNlN2E1MGYwM2UwOTI0MzM0YmI2ODI3ODg3YzJmZmRhMjM3YzM3MjYu
LjAzMWNiNTNjZWY2ODgxNTZkMmQzN2Y1MTIyODViMDRjNzZjOWQzNTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC00Njgw
LDYgKzQ2ODAsOSBAQCBMYXlvdXRSZWN0IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cGFyZW50UmVs
YXRpdmVTY3JvbGxhYmxlUmVjdChjb25zdCBSZW5kZXJMYXllcgogCiB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsaW5nTm9kZUxheWVycyhTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlELCBSZW5kZXJMYXllciYgbGF5ZXIsIFNjcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdD
b29yZGluYXRvcikKIHsKKyAgICBhdXRvKiBzY3JvbGxhYmxlTGF5ZXIgPSBsYXllci5zY3JvbGxh
YmxlQXJlYSgpOworICAgIEFTU0VSVChzY3JvbGxhYmxlTGF5ZXIpOworCiAgICAgaWYgKGxheWVy
LmlzUmVuZGVyVmlld0xheWVyKCkpIHsKICAgICAgICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSBt
X3JlbmRlclZpZXcuZnJhbWVWaWV3KCk7CiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLnNl
dE5vZGVMYXllcnMobm9kZUlELCB7IG51bGxwdHIsCkBAIC00NjkxLDcgKzQ2OTQsNyBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xsaW5nTm9kZUxheWVycyhTY3JvbGxp
bmdOb2RlSUQgbm9kZUlELCBSZQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci5zZXROb2Rl
TGF5ZXJzKG5vZGVJRCwgeyBiYWNraW5nLmdyYXBoaWNzTGF5ZXIoKSwKICAgICAgICAgICAgIGJh
Y2tpbmcuc2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSwgYmFja2luZy5zY3JvbGxlZENvbnRlbnRzTGF5
ZXIoKSwKICAgICAgICAgICAgIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIsCi0gICAgICAgICAg
ICBsYXllci5sYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSwgbGF5ZXIubGF5ZXJGb3JWZXJ0
aWNhbFNjcm9sbGJhcigpIH0pOworICAgICAgICAgICAgc2Nyb2xsYWJsZUxheWVyLT5sYXllckZv
ckhvcml6b250YWxTY3JvbGxiYXIoKSwgc2Nyb2xsYWJsZUxheWVyLT5sYXllckZvclZlcnRpY2Fs
U2Nyb2xsYmFyKCkgfSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggN2MwMWYwMjBmZTgyY2VhY2Y0YzQxMmNhZDY5YWNl
MTMxZWJjZDNkZC4uZjRlODgzYjUxNGU2ZTAzNTg1NGY5YzliZmU5ZGQ5NWZkZGE4YzQyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApAQCAtNDks
NiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKKyNpbmNsdWRlICJSZW5k
ZXJMYXllclNjcm9sbGFibGVBcmVhLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGluZUJyZWFrLmgiCiAj
aW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0TWFya2VyLmgi
CkBAIC02MTAsOSArNjExLDkgQEAgc3RhdGljIHZvaWQgd3JpdGVMYXllcihUZXh0U3RyZWFtJiB0
cywgY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyLCBjb25zdCBMYXlvdXRSZWMKICAgICAgICAgICAg
IHRzIDw8ICIgc2Nyb2xsSGVpZ2h0ICIgPDwgbGF5ZXIuc2Nyb2xsSGVpZ2h0KCk7CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgICAgICBTY3JvbGxiYXJUaGVtZSYgc2Nyb2xsYmFyVGhlbWUgPSBTY3Jv
bGxiYXJUaGVtZTo6dGhlbWUoKTsKLSAgICAgICAgaWYgKCFzY3JvbGxiYXJUaGVtZS5pc01vY2tU
aGVtZSgpICYmIGxheWVyLmhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsKKyAgICAgICAgaWYgKCFz
Y3JvbGxiYXJUaGVtZS5pc01vY2tUaGVtZSgpICYmIGxheWVyLnNjcm9sbGFibGVBcmVhKCkgJiYg
bGF5ZXIuc2Nyb2xsYWJsZUFyZWEoKS0+aGFzVmVydGljYWxTY3JvbGxiYXIoKSkgewogICAgICAg
ICAgICAgU2Nyb2xsYmFyVGhlbWVNYWMmIG1hY1RoZW1lID0gKnN0YXRpY19jYXN0PFNjcm9sbGJh
clRoZW1lTWFjKj4oJnNjcm9sbGJhclRoZW1lKTsKLSAgICAgICAgICAgIGlmIChtYWNUaGVtZS5p
c0xheW91dERpcmVjdGlvblJUTCgqbGF5ZXIudmVydGljYWxTY3JvbGxiYXIoKSkpCisgICAgICAg
ICAgICBpZiAobWFjVGhlbWUuaXNMYXlvdXREaXJlY3Rpb25SVEwoKmxheWVyLnNjcm9sbGFibGVB
cmVhKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCkpKQogICAgICAgICAgICAgICAgIHRzIDw8ICIgc2Ny
b2xsYmFySGFzUlRMTGF5b3V0RGlyZWN0aW9uIjsKICAgICAgICAgfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IGIxMDMzZGEwNzkzMDQ2Nzli
NTU3YTJkMTI0NDkxNDM1NmI2MjNlN2IuLmZmNDIyMjA3MzIxOGM2ZTUxMDEzNzE2ZGY0OTY3YWJh
YWU1OGQyZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIlJl
bmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCisjaW5jbHVkZSAi
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVz
Lmg+CkBAIC0zMzIsOCArMzMzLDEwIEBAIHZvaWQgUmVuZGVyV2lkZ2V0OjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgICAgICBw
YWludEluZm8uY29udGV4dCgpLmZpbGxSZWN0KHNuYXBwZWRJbnRSZWN0KHNlbGVjdGlvblJlY3Qo
KSksIHNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpKTsKICAgICB9CiAKLSAgICBpZiAoaGFzTGF5
ZXIoKSAmJiBsYXllcigpLT5jYW5SZXNpemUoKSkKLSAgICAgICAgbGF5ZXIoKS0+cGFpbnRSZXNp
emVyKHBhaW50SW5mby5jb250ZXh0KCksIHJvdW5kZWRJbnRQb2ludChhZGp1c3RlZFBhaW50T2Zm
c2V0KSwgcGFpbnRJbmZvLnJlY3QpOworICAgIGlmIChoYXNMYXllcigpICYmIGxheWVyKCktPmNh
blJlc2l6ZSgpKSB7CisgICAgICAgIEFTU0VSVChsYXllcigpLT5zY3JvbGxhYmxlQXJlYSgpKTsK
KyAgICAgICAgbGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKS0+cGFpbnRSZXNpemVyKHBhaW50SW5m
by5jb250ZXh0KCksIHJvdW5kZWRJbnRQb2ludChhZGp1c3RlZFBhaW50T2Zmc2V0KSwgcGFpbnRJ
bmZvLnJlY3QpOworICAgIH0KIH0KIAogdm9pZCBSZW5kZXJXaWRnZXQ6OnNldE92ZXJsYXBUZXN0
UmVzdWx0KGJvb2wgaXNPdmVybGFwcGVkKQo=
</data>
<flag name="review"
          id="435675"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>