<?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>224643</bug_id>
          
          <creation_ts>2021-04-15 20:13:44 -0700</creation_ts>
          <short_desc>Remove TilingData class</short_desc>
          <delta_ts>2021-04-24 15:10:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Don Olmstead">don.olmstead</reporter>
          <assigned_to name="Don Olmstead">don.olmstead</assigned_to>
          <cc>annulen</cc>
    
    <cc>changseok</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1750908</commentid>
    <comment_count>0</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-04-15 20:13:44 -0700</bug_when>
    <thetext>It doesn&apos;t seem to be used anywhere</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750909</commentid>
    <comment_count>1</comment_count>
      <attachid>426177</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-04-15 20:17:53 -0700</bug_when>
    <thetext>Created attachment 426177
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750910</commentid>
    <comment_count>2</comment_count>
      <attachid>426178</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2021-04-15 20:39:26 -0700</bug_when>
    <thetext>Created attachment 426178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750919</commentid>
    <comment_count>3</comment_count>
      <attachid>426178</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-04-15 21:31:42 -0700</bug_when>
    <thetext>Comment on attachment 426178
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750920</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-15 21:36:09 -0700</bug_when>
    <thetext>commit-queue failed to commit attachment 426178 to WebKit repository. To retry, please set cq+ flag again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750932</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-15 22:05:18 -0700</bug_when>
    <thetext>Committed r276115 (236615@main): &lt;https://commits.webkit.org/236615@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426178.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753956</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-24 15:10:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/77110137&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426177</attachid>
            <date>2021-04-15 20:17:53 -0700</date>
            <delta_ts>2021-04-15 20:39:26 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>bug-224643.diff</filename>
            <type>text/plain</type>
            <size>15176</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYzQyZTY5MWE5OTAzLi5iZDYwMTIyZDUyZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC0zNDIsOCArMzQyLDYgQEAgbGlzdChBUFBF
TkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvSW1hZ2VSb3RhdGlv
blNlc3Npb25WVC5tbQogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2N2L1BpeGVsQnVmZmVyQ29uZm9y
bWVyQ1YuY3BwCiAKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKLQog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbQogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXJDb3JlVGV4dC5tbQogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL21hYy9GbG9hdFBvaW50TWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCAx
YWI3ZjIwNDg1NGYuLjJhMjRjMmM3NGMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0z
OTEsNyArMzkxLDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2N2L0dyYXBoaWNzQ29udGV4dEdMQ1ZBTkdMRS5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFn
ZS5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0RHJhd0dseXBo
c1JlY29yZGVyQ29yZVRleHQuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBBbGxvY2F0b3JNZXRh
bC5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cExheW91dE1ldGFs
Lm1tCiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTWV0YWwubW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA1NzI1YjI3Y2MwMDAuLjU3YWJhZTY0MWIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMzNSw3ICsxMzM1LDYgQEAKIAkJ
NDk0QkQ3OTUwRjU1QzhFRTAwNzQ3ODI4IC8qIFdlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTRCRDc5MzBGNTVDOEVFMDA3NDc4Mjgg
LyogV2ViS2l0UG9pbnQuaCAqLzsgfTsKIAkJNDk0QkQ3OUUwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpT
V2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5NEJENzlDMEY1NUM5NEMwMDc0NzgyOCAvKiBKU1dlYktpdFBvaW50LmggKi87IH07CiAJ
CTQ5NjlCMEYzMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NjlCMEYxMTNE
MEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuaCAqLzsgfTsKLQkJNDk4
NzcwRjMxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MERBMTI0MkM1MzUwMDIyMjZCQSAvKiBU
aWxpbmdEYXRhLmggKi87IH07CiAJCTQ5OThBRUM2MTNGOUQwRUEwMDkwQjFBQSAvKiBSZXF1ZXN0
QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDk5OEFFQzQxM0Y5RDBFQTAwOTBCMUFBIC8qIFJlcXVlc3RBbmltYXRp
b25GcmFtZUNhbGxiYWNrLmggKi87IH07CiAJCTQ5OThBRUNFMTNGOUQ2QzkwMDkwQjFBQSAvKiBK
U1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTk4QUVDQzEzRjlENkM5MDA5MEIxQUEgLyogSlNSZXF1
ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oICovOyB9OwogCQk0OTk4QUVEMjEzRkIyMjREMDA5
MEIxQUEgLyogU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTk4QUVEMDEzRkIyMjREMDA5MEIxQUEgLyog
U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmggKi87IH07CkBAIC04Mzg2LDggKzgzODUsNiBA
QAogCQk0OTU4NzgyMDEyQTU3RERGMDA3MjM4QUMgLyogUGxhdGZvcm1DQUxheWVyQ29jb2EubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybUNBTGF5ZXJD
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk2OUIwRjAxM0QwQjMzRjAw
REYzNTIxIC8qIEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0OTY5QjBGMTEzRDBCMzNGMDBERjM1MjEgLyogSGl0VGVz
dGluZ1RyYW5zZm9ybVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhp
dFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0
OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaWxpbmdEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDk4NzcwREExMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGlsaW5nRGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OTk4QUVDNDEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1h
dGlvbkZyYW1lQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDk5OEFFQzUxM0Y5RDBFQTAwOTBCMUFBIC8qIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjay5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5OThBRUNCMTNGOUQ2Qzkw
MDkwQjFBQSAvKiBKU1JlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjAzNzgsOCArMjAzNzUsNiBA
QAogCQkJCUQwRDg2NDlCMjFCQTFDMkQwMDNDOTgzQyAvKiBHUFVWZXJ0ZXhBdHRyaWJ1dGVEZXNj
cmlwdG9yLmggKi8sCiAJCQkJRDBEODY0OUMyMUJBMUNFODAwM0M5ODNDIC8qIEdQVVZlcnRleEJ1
ZmZlckRlc2NyaXB0b3IuaCAqLywKIAkJCQlEMEQ4NjQ5OTIxQkExQjFGMDAzQzk4M0MgLyogR1BV
VmVydGV4SW5wdXREZXNjcmlwdG9yLmggKi8sCi0JCQkJNDk4NzcwRDkxMjQyQzUzNTAwMjIyNkJB
IC8qIFRpbGluZ0RhdGEuY3BwICovLAotCQkJCTQ5ODc3MERBMTI0MkM1MzUwMDIyMjZCQSAvKiBU
aWxpbmdEYXRhLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGdwdTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0zNTQ4Niw3ICszNTQ4MSw2IEBACiAJCQkJN0FBM0E2QTQxOTRCNUMyMjAw
MUNCRDI0IC8qIFRpbGVDb3ZlcmFnZU1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGODlBNDIx
NTE4RkRFQTAwRTU0N0I1IC8qIFRpbGVkQmFja2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0FB
M0E2OUMxOTRBNjRFNzAwMUNCRDI0IC8qIFRpbGVHcmlkLmggaW4gSGVhZGVycyAqLywKLQkJCQk0
OTg3NzBGMzEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjU1QjNEREMxMjUxRjEyRDAwM0VGMjY5IC8qIFRpbWVJbnB1dFR5cGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTc1NTNDRkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3Rv
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMDVCMjREMDk4RjFCNkIwMEMyODg1NSAvKiBUaW1l
ci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGlsaW5nRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ncHUvVGlsaW5nRGF0YS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZh
M2QwNGM0ZDllMS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIwMyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChjKSAyMDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIlRpbGluZ0RhdGEuaCIKLQotI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgIkludFJlY3QuaCIKLSNpbmNsdWRlIDxhbGdvcml0
aG0+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RhdGljIGludCBjb21wdXRlTnVtVGlsZXMo
aW50IG1heFRleHR1cmVTaXplLCBpbnQgdG90YWxTaXplLCBpbnQgYm9yZGVyVGV4ZWxzKQotewot
ICAgIGlmIChtYXhUZXh0dXJlU2l6ZSAtIDIgKiBib3JkZXJUZXhlbHMgPD0gMCkKLSAgICAgICAg
cmV0dXJuIHRvdGFsU2l6ZSA+IDAgJiYgbWF4VGV4dHVyZVNpemUgPj0gdG90YWxTaXplID8gMSA6
IDA7Ci0KLSAgICBpbnQgbnVtVGlsZXMgPSBzdGQ6Om1heCgxLCAxICsgKHRvdGFsU2l6ZSAtIDEg
LSAyICogYm9yZGVyVGV4ZWxzKSAvIChtYXhUZXh0dXJlU2l6ZSAtIDIgKiBib3JkZXJUZXhlbHMp
KTsKLSAgICByZXR1cm4gdG90YWxTaXplID4gMCA/IG51bVRpbGVzIDogMDsKLX0KLQotVGlsaW5n
RGF0YTo6VGlsaW5nRGF0YShjb25zdCBJbnRTaXplJiBtYXhUZXh0dXJlU2l6ZSwgY29uc3QgSW50
U2l6ZSYgdG90YWxTaXplLCBib29sIGhhc0JvcmRlclRleGVscykKLSAgICA6IG1fbWF4VGV4dHVy
ZVNpemUobWF4VGV4dHVyZVNpemUpCi0gICAgLCBtX3RvdGFsU2l6ZSh0b3RhbFNpemUpCi0gICAg
LCBtX2JvcmRlclRleGVscyhoYXNCb3JkZXJUZXhlbHMgPyAxIDogMCkKLXsKLSAgICByZWNvbXB1
dGVOdW1UaWxlcygpOwotfQotCi12b2lkIFRpbGluZ0RhdGE6OnNldFRvdGFsU2l6ZShjb25zdCBJ
bnRTaXplJiB0b3RhbFNpemUpCi17Ci0gICAgbV90b3RhbFNpemUgPSB0b3RhbFNpemU7Ci0gICAg
cmVjb21wdXRlTnVtVGlsZXMoKTsKLX0KLQotdm9pZCBUaWxpbmdEYXRhOjpzZXRNYXhUZXh0dXJl
U2l6ZShjb25zdCBJbnRTaXplJiBtYXhUZXh0dXJlU2l6ZSkKLXsKLSAgICBtX21heFRleHR1cmVT
aXplID0gbWF4VGV4dHVyZVNpemU7Ci0gICAgcmVjb21wdXRlTnVtVGlsZXMoKTsKLX0KLQotdm9p
ZCBUaWxpbmdEYXRhOjpzZXRIYXNCb3JkZXJUZXhlbHMoYm9vbCBoYXNCb3JkZXJUZXhlbHMpCi17
Ci0gICAgbV9ib3JkZXJUZXhlbHMgPSBoYXNCb3JkZXJUZXhlbHMgPyAxIDogMDsKLSAgICByZWNv
bXB1dGVOdW1UaWxlcygpOwotfQotCi1pbnQgVGlsaW5nRGF0YTo6dGlsZVhJbmRleEZyb21TcmND
b29yZChpbnQgc3JjUG9zKSBjb25zdAotewotICAgIGlmIChudW1UaWxlc1goKSA8PSAxKQotICAg
ICAgICByZXR1cm4gMDsKLQotICAgIEFTU0VSVChtX21heFRleHR1cmVTaXplLndpZHRoKCkgLSAy
ICogbV9ib3JkZXJUZXhlbHMpOwotICAgIGludCB4ID0gKHNyY1BvcyAtIG1fYm9yZGVyVGV4ZWxz
KSAvIChtX21heFRleHR1cmVTaXplLndpZHRoKCkgLSAyICogbV9ib3JkZXJUZXhlbHMpOwotICAg
IHJldHVybiBzdGQ6Om1pbihzdGQ6Om1heCh4LCAwKSwgbnVtVGlsZXNYKCkgLSAxKTsKLX0KLQot
aW50IFRpbGluZ0RhdGE6OnRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoaW50IHNyY1BvcykgY29uc3QK
LXsKLSAgICBpZiAobnVtVGlsZXNZKCkgPD0gMSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBB
U1NFUlQobV9tYXhUZXh0dXJlU2l6ZS5oZWlnaHQoKSAtIDIgKiBtX2JvcmRlclRleGVscyk7Ci0g
ICAgaW50IHkgPSAoc3JjUG9zIC0gbV9ib3JkZXJUZXhlbHMpIC8gKG1fbWF4VGV4dHVyZVNpemUu
aGVpZ2h0KCkgLSAyICogbV9ib3JkZXJUZXhlbHMpOwotICAgIHJldHVybiBzdGQ6Om1pbihzdGQ6
Om1heCh5LCAwKSwgbnVtVGlsZXNZKCkgLSAxKTsKLX0KLQotSW50UmVjdCBUaWxpbmdEYXRhOjp0
aWxlQm91bmRzKGludCBpLCBpbnQgaikgY29uc3QKLXsKLSAgICBhc3NlcnRUaWxlKGksIGopOwot
ICAgIGludCB4ID0gdGlsZVBvc2l0aW9uWChpKTsKLSAgICBpbnQgeSA9IHRpbGVQb3NpdGlvblko
aik7Ci0gICAgaW50IHdpZHRoID0gdGlsZVNpemVYKGkpOwotICAgIGludCBoZWlnaHQgPSB0aWxl
U2l6ZVkoaik7Ci0gICAgQVNTRVJUKHggPj0gMCAmJiB5ID49IDAgJiYgd2lkdGggPj0gMCAmJiBo
ZWlnaHQgPj0gMCk7Ci0gICAgQVNTRVJUKHggPD0gbV90b3RhbFNpemUud2lkdGgoKSAmJiB5IDw9
IG1fdG90YWxTaXplLmhlaWdodCgpKTsKLSAgICByZXR1cm4gSW50UmVjdCh4LCB5LCB3aWR0aCwg
aGVpZ2h0KTsKLX0KLQotSW50UmVjdCBUaWxpbmdEYXRhOjp0aWxlQm91bmRzV2l0aEJvcmRlcihp
bnQgaSwgaW50IGopIGNvbnN0Ci17Ci0gICAgSW50UmVjdCBib3VuZHMgPSB0aWxlQm91bmRzKGks
IGopOwotCi0gICAgaWYgKG1fYm9yZGVyVGV4ZWxzKSB7Ci0gICAgICAgIGludCB4MSA9IGJvdW5k
cy54KCk7Ci0gICAgICAgIGludCB4MiA9IGJvdW5kcy5tYXhYKCk7Ci0gICAgICAgIGludCB5MSA9
IGJvdW5kcy55KCk7Ci0gICAgICAgIGludCB5MiA9IGJvdW5kcy5tYXhZKCk7Ci0KLSAgICAgICAg
aWYgKGkgPiAwKQotICAgICAgICAgICAgeDEtLTsKLSAgICAgICAgaWYgKGkgPCAobnVtVGlsZXNY
KCkgLSAxKSkKLSAgICAgICAgICAgIHgyKys7Ci0gICAgICAgIGlmIChqID4gMCkKLSAgICAgICAg
ICAgIHkxLS07Ci0gICAgICAgIGlmIChqIDwgKG51bVRpbGVzWSgpIC0gMSkpCi0gICAgICAgICAg
ICB5MisrOwotCi0gICAgICAgIGJvdW5kcyA9IEludFJlY3QoeDEsIHkxLCB4MiAtIHgxLCB5MiAt
IHkxKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gYm91bmRzOwotfQotCi1pbnQgVGlsaW5nRGF0YTo6
dGlsZVBvc2l0aW9uWChpbnQgeEluZGV4KSBjb25zdAotewotICAgIEFTU0VSVCh4SW5kZXggPj0g
MCAmJiB4SW5kZXggPCBudW1UaWxlc1goKSk7Ci0KLSAgICBpbnQgcG9zID0gMDsKLSAgICBmb3Ig
KGludCBpID0gMDsgaSA8IHhJbmRleDsgaSsrKQotICAgICAgICBwb3MgKz0gdGlsZVNpemVYKGkp
OwotCi0gICAgcmV0dXJuIHBvczsKLX0KLQotaW50IFRpbGluZ0RhdGE6OnRpbGVQb3NpdGlvblko
aW50IHlJbmRleCkgY29uc3QKLXsKLSAgICBBU1NFUlQoeUluZGV4ID49IDAgJiYgeUluZGV4IDwg
bnVtVGlsZXNZKCkpOwotCi0gICAgaW50IHBvcyA9IDA7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkg
PCB5SW5kZXg7IGkrKykKLSAgICAgICAgcG9zICs9IHRpbGVTaXplWShpKTsKLQotICAgIHJldHVy
biBwb3M7Ci19Ci0KLWludCBUaWxpbmdEYXRhOjp0aWxlU2l6ZVgoaW50IHhJbmRleCkgY29uc3QK
LXsKLSAgICBBU1NFUlQoeEluZGV4ID49IDAgJiYgeEluZGV4IDwgbnVtVGlsZXNYKCkpOwotCi0g
ICAgaWYgKCF4SW5kZXggJiYgbV9udW1UaWxlc1ggPT0gMSkKLSAgICAgICAgcmV0dXJuIG1fdG90
YWxTaXplLndpZHRoKCk7Ci0gICAgaWYgKCF4SW5kZXggJiYgbV9udW1UaWxlc1ggPiAxKQotICAg
ICAgICByZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZS53aWR0aCgpIC0gbV9ib3JkZXJUZXhlbHM7Ci0g
ICAgaWYgKHhJbmRleCA8IG51bVRpbGVzWCgpIC0gMSkKLSAgICAgICAgcmV0dXJuIG1fbWF4VGV4
dHVyZVNpemUud2lkdGgoKSAtIDIgKiBtX2JvcmRlclRleGVsczsKLSAgICBpZiAoeEluZGV4ID09
IG51bVRpbGVzWCgpIC0gMSkKLSAgICAgICAgcmV0dXJuIG1fdG90YWxTaXplLndpZHRoKCkgLSB0
aWxlUG9zaXRpb25YKHhJbmRleCk7Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotaW50IFRpbGluZ0RhdGE6OnRpbGVTaXplWShpbnQgeUluZGV4KSBjb25z
dAotewotICAgIEFTU0VSVCh5SW5kZXggPj0gMCAmJiB5SW5kZXggPCBudW1UaWxlc1koKSk7Ci0K
LSAgICBpZiAoIXlJbmRleCAmJiBtX251bVRpbGVzWSA9PSAxKQotICAgICAgICByZXR1cm4gbV90
b3RhbFNpemUuaGVpZ2h0KCk7Ci0gICAgaWYgKCF5SW5kZXggJiYgbV9udW1UaWxlc1kgPiAxKQot
ICAgICAgICByZXR1cm4gbV9tYXhUZXh0dXJlU2l6ZS5oZWlnaHQoKSAtIG1fYm9yZGVyVGV4ZWxz
OwotICAgIGlmICh5SW5kZXggPCBudW1UaWxlc1koKSAtIDEpCi0gICAgICAgIHJldHVybiBtX21h
eFRleHR1cmVTaXplLmhlaWdodCgpIC0gMiAqIG1fYm9yZGVyVGV4ZWxzOwotICAgIGlmICh5SW5k
ZXggPT0gbnVtVGlsZXNZKCkgLSAxKQotICAgICAgICByZXR1cm4gbV90b3RhbFNpemUuaGVpZ2h0
KCkgLSB0aWxlUG9zaXRpb25ZKHlJbmRleCk7Ci0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gMDsKLX0KLQotSW50UG9pbnQgVGlsaW5nRGF0YTo6dGV4dHVyZU9mZnNldChp
bnQgeEluZGV4LCBpbnQgeUluZGV4KSBjb25zdAotewotICAgIGludCBsZWZ0ID0gKCF4SW5kZXgg
fHwgbV9udW1UaWxlc1ggPT0gMSkgPyAwIDogbV9ib3JkZXJUZXhlbHM7Ci0gICAgaW50IHRvcCA9
ICgheUluZGV4IHx8IG1fbnVtVGlsZXNZID09IDEpID8gMCA6IG1fYm9yZGVyVGV4ZWxzOwotCi0g
ICAgcmV0dXJuIEludFBvaW50KGxlZnQsIHRvcCk7Ci19Ci0KLXZvaWQgVGlsaW5nRGF0YTo6cmVj
b21wdXRlTnVtVGlsZXMoKQotewotICAgIG1fbnVtVGlsZXNYID0gY29tcHV0ZU51bVRpbGVzKG1f
bWF4VGV4dHVyZVNpemUud2lkdGgoKSwgbV90b3RhbFNpemUud2lkdGgoKSwgbV9ib3JkZXJUZXhl
bHMpOwotICAgIG1fbnVtVGlsZXNZID0gY29tcHV0ZU51bVRpbGVzKG1fbWF4VGV4dHVyZVNpemUu
aGVpZ2h0KCksIG1fdG90YWxTaXplLmhlaWdodCgpLCBtX2JvcmRlclRleGVscyk7Ci19Ci0KLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdE
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjNWJmZThlOTdkYmYuLjAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5o
CisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoYykgMjAx
MCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFRpbGluZ0RhdGFfaAotI2Rl
ZmluZSBUaWxpbmdEYXRhX2gKLQotI2luY2x1ZGUgIkludFNpemUuaCIKLSNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBGbG9hdFJlY3Q7
Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50UG9pbnQ7Ci0KLWNsYXNzIFRpbGluZ0RhdGEgewot
cHVibGljOgotICAgIFRpbGluZ0RhdGEoY29uc3QgSW50U2l6ZSYgbWF4VGV4dHVyZVNpemUsIGNv
bnN0IEludFNpemUmIHRvdGFsU2l6ZSwgYm9vbCBoYXNCb3JkZXJUZXhlbHMpOwotCi0gICAgdm9p
ZCBzZXRUb3RhbFNpemUoY29uc3QgSW50U2l6ZSYpOwotICAgIGNvbnN0IEludFNpemUmIHRvdGFs
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWxTaXplOyB9Ci0gICAgdm9pZCBzZXRNYXhUZXh0
dXJlU2l6ZShjb25zdCBJbnRTaXplJik7Ci0gICAgY29uc3QgSW50U2l6ZSYgbWF4VGV4dHVyZVNp
emUoKSBjb25zdCB7IHJldHVybiBtX21heFRleHR1cmVTaXplOyB9Ci0gICAgdm9pZCBzZXRIYXNC
b3JkZXJUZXhlbHMoYm9vbCk7Ci0gICAgaW50IGJvcmRlclRleGVscygpIGNvbnN0IHsgcmV0dXJu
IG1fYm9yZGVyVGV4ZWxzOyB9Ci0KLSAgICBib29sIGhhc0VtcHR5Qm91bmRzKCkgY29uc3QgeyBy
ZXR1cm4gIW51bVRpbGVzWCgpIHx8ICFudW1UaWxlc1koKTsgfQotICAgIGludCBudW1UaWxlc1go
KSBjb25zdCB7IHJldHVybiBtX251bVRpbGVzWDsgfQotICAgIGludCBudW1UaWxlc1koKSBjb25z
dCB7IHJldHVybiBtX251bVRpbGVzWTsgfQotICAgIGludCB0aWxlWEluZGV4RnJvbVNyY0Nvb3Jk
KGludCkgY29uc3Q7Ci0gICAgaW50IHRpbGVZSW5kZXhGcm9tU3JjQ29vcmQoaW50KSBjb25zdDsK
LQotICAgIEludFJlY3QgdGlsZUJvdW5kcyhpbnQsIGludCkgY29uc3Q7Ci0gICAgSW50UmVjdCB0
aWxlQm91bmRzV2l0aEJvcmRlcihpbnQsIGludCkgY29uc3Q7Ci0gICAgaW50IHRpbGVQb3NpdGlv
blgoaW50IHhJbmRleCkgY29uc3Q7Ci0gICAgaW50IHRpbGVQb3NpdGlvblkoaW50IHlJbmRleCkg
Y29uc3Q7Ci0gICAgaW50IHRpbGVTaXplWChpbnQgeEluZGV4KSBjb25zdDsKLSAgICBpbnQgdGls
ZVNpemVZKGludCB5SW5kZXgpIGNvbnN0OwotCi0gICAgLy8gRGlmZmVyZW5jZSBiZXR3ZWVuIHRp
bGVCb3VuZCdzIGFuZCB0aWxlQm91bmRXaXRoQm9yZGVyJ3MgbG9jYXRpb24oKS4KLSAgICBJbnRQ
b2ludCB0ZXh0dXJlT2Zmc2V0KGludCB4SW5kZXgsIGludCB5SW5kZXgpIGNvbnN0OwotCi1wcml2
YXRlOgotICAgIFRpbGluZ0RhdGEoKSA6IG1fYm9yZGVyVGV4ZWxzKDApIHsgfQotICAgIHZvaWQg
YXNzZXJ0VGlsZShpbnQgaSwgaW50IGopIGNvbnN0IHsgQVNTRVJUX1VOVVNFRChpLCBpID49IDAg
JiYgaSA8IG51bVRpbGVzWCgpKTsgQVNTRVJUX1VOVVNFRChqLCBqID49IDAgJiYgaiA8IG51bVRp
bGVzWSgpKTsgfQotICAgIHZvaWQgcmVjb21wdXRlTnVtVGlsZXMoKTsKLQotICAgIEludFNpemUg
bV9tYXhUZXh0dXJlU2l6ZTsKLSAgICBJbnRTaXplIG1fdG90YWxTaXplOwotICAgIGludCBtX2Jv
cmRlclRleGVsczsgLy8gMCBvciAxCi0KLSAgICAvLyBjb21wdXRlZCB2YWx1ZXM6Ci0gICAgaW50
IG1fbnVtVGlsZXNYOwotICAgIGludCBtX251bVRpbGVzWTsKLX07Ci0KLX0KLQotI2VuZGlmIC8v
IFRpbGluZ0RhdGFfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426178</attachid>
            <date>2021-04-15 20:39:26 -0700</date>
            <delta_ts>2021-04-15 22:05:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224643.diff</filename>
            <type>text/plain</type>
            <size>16027</size>
            <attacher name="Don Olmstead">don.olmstead</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MDMzN2ZjMmU5Y2EuLjhlZjZhZDIyODdjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDIxLTA0LTE1ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29u
eS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFRpbGluZ0RhdGEgY2xhc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDY0MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGRvZXNuJ3Qgc2VlbSB0byBiZSB1
c2VkIGFueXdoZXJlIGFuZCB0aGUgY29kZSBoYXNuJ3QgYmVlbiB0b3VjaGVkIGluIGFsbW9zdCBh
IGRlY2FkZS4KKworICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJj
ZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGlsaW5nRGF0YS5oOiBSZW1vdmVk
LgorCiAyMDIxLTA0LTE1ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0dQVVBdIFdlYkNvbnRlbnQgcHJvY2VzcyBzaG91bGQgbm90IGNyZWF0ZSBBVk91dHB1dENv
bnRleHQgaW5zdGFuY2VzIHdoZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3MgaXMgZW5hYmxlZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBjNDJlNjkxYTk5MDMuLmJkNjAxMjJkNTJlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTM0Miw4ICszNDIsNiBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1NPVVJDRVMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jdi9JbWFnZVJvdGF0aW9uU2Vz
c2lvblZULm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY3YvUGl4ZWxCdWZmZXJDb25mb3JtZXJD
Vi5jcHAKIAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAotCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9yTWFjLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlckNvcmVUZXh0Lm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0Zsb2F0UG9pbnRNYWMubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDFhYjdm
MjA0ODU0Zi4uMmEyNGMyYzc0YzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTM5MSw3
ICszOTEsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9jdi9QaXhlbEJ1ZmZlckNvbmZvcm1lckNWLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvY3YvR3JhcGhpY3NDb250ZXh0R0xDVkFOR0xFLmNwcAogcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVmZmVjdFJlbmRlcmVyQ29yZUltYWdlLm1t
CiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3REcmF3R2x5cGhzUmVj
b3JkZXJDb3JlVGV4dC5jcHAKLXBsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L2NvY29hL0dQVUJpbmRHcm91cEFsbG9jYXRvck1ldGFsLm1t
CiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvY29jb2EvR1BVQmluZEdyb3VwTGF5b3V0TWV0YWwubW0K
IHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9jb2NvYS9HUFVCaW5kR3JvdXBNZXRhbC5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU3
MjViMjdjYzAwMC4uNTdhYmFlNjQxYjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzM1LDcgKzEzMzUsNiBAQAogCQk0OTRC
RDc5NTBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NEJENzkzMEY1NUM4RUUwMDc0NzgyOCAvKiBX
ZWJLaXRQb2ludC5oICovOyB9OwogCQk0OTRCRDc5RTBGNTVDOTRDMDA3NDc4MjggLyogSlNXZWJL
aXRQb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDk0QkQ3OUMwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQuaCAqLzsgfTsKIAkJNDk2
OUIwRjMxM0QwQjMzRjAwREYzNTIxIC8qIEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk2OUIwRjExM0QwQjMz
RjAwREYzNTIxIC8qIEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5oICovOyB9OwotCQk0OTg3NzBG
MzEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwREExMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGlu
Z0RhdGEuaCAqLzsgfTsKIAkJNDk5OEFFQzYxM0Y5RDBFQTAwOTBCMUFBIC8qIFJlcXVlc3RBbmlt
YXRpb25GcmFtZUNhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTk4QUVDNDEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZy
YW1lQ2FsbGJhY2suaCAqLzsgfTsKIAkJNDk5OEFFQ0UxM0Y5RDZDOTAwOTBCMUFBIC8qIEpTUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OThBRUNDMTNGOUQ2QzkwMDkwQjFBQSAvKiBKU1JlcXVlc3RB
bmltYXRpb25GcmFtZUNhbGxiYWNrLmggKi87IH07CiAJCTQ5OThBRUQyMTNGQjIyNEQwMDkwQjFB
QSAvKiBTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OThBRUQwMTNGQjIyNEQwMDkwQjFBQSAvKiBTY3Jp
cHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaCAqLzsgfTsKQEAgLTgzODYsOCArODM4NSw2IEBACiAJ
CTQ5NTg3ODIwMTJBNTdEREYwMDcyMzhBQyAvKiBQbGF0Zm9ybUNBTGF5ZXJDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtQ0FMYXllckNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTY5QjBGMDEzRDBCMzNGMDBERjM1
MjEgLyogSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ5NjlCMEYxMTNEMEIzM0YwMERGMzUyMSAvKiBIaXRUZXN0aW5n
VHJhbnNmb3JtU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGl0VGVz
dGluZ1RyYW5zZm9ybVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQ5ODc3
MEQ5MTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRpbGluZ0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0OTg3NzBEQTEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaWxpbmdEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ5OThBRUM0MTNGOUQwRUEwMDkwQjFBQSAvKiBSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZXF1ZXN0
QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
OTk4QUVDNTEzRjlEMEVBMDA5MEIxQUEgLyogUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2su
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNr
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk5OEFFQ0IxM0Y5RDZDOTAwOTBC
MUFBIC8qIEpTUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxsYmFjay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDM3OCw4ICsyMDM3NSw2IEBACiAJ
CQkJRDBEODY0OUIyMUJBMUMyRDAwM0M5ODNDIC8qIEdQVVZlcnRleEF0dHJpYnV0ZURlc2NyaXB0
b3IuaCAqLywKIAkJCQlEMEQ4NjQ5QzIxQkExQ0U4MDAzQzk4M0MgLyogR1BVVmVydGV4QnVmZmVy
RGVzY3JpcHRvci5oICovLAogCQkJCUQwRDg2NDk5MjFCQTFCMUYwMDNDOTgzQyAvKiBHUFVWZXJ0
ZXhJbnB1dERlc2NyaXB0b3IuaCAqLywKLQkJCQk0OTg3NzBEOTEyNDJDNTM1MDAyMjI2QkEgLyog
VGlsaW5nRGF0YS5jcHAgKi8sCi0JCQkJNDk4NzcwREExMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGlu
Z0RhdGEuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZ3B1OwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKQEAgLTM1NDg2LDcgKzM1NDgxLDYgQEAKIAkJCQk3QUEzQTZBNDE5NEI1QzIyMDAxQ0JE
MjQgLyogVGlsZUNvdmVyYWdlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY4OUE0MjE1MThG
REVBMDBFNTQ3QjUgLyogVGlsZWRCYWNraW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTY5
QzE5NEE2NEU3MDAxQ0JEMjQgLyogVGlsZUdyaWQuaCBpbiBIZWFkZXJzICovLAotCQkJCTQ5ODc3
MEYzMTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
NTVCM0REQzEyNTFGMTJEMDAzRUYyNjkgLyogVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzU1M0NGRTgxMDhGNDczRjAwRUEyODFFIC8qIFRpbWVsaW5lUmVjb3JkRmFjdG9yeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTMwNUIyNEQwOThGMUI2QjAwQzI4ODU1IC8qIFRpbWVyLmgg
aW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dwdS9UaWxpbmdEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9UaWxpbmdEYXRhLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmEzZDA0
YzRkOWUxLi4wMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L1RpbGluZ0RhdGEuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjAzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBtZXQ6Ci0gKgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAq
IGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiVGlsaW5nRGF0YS5oIgotCi0jaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiSW50UmVjdC5oIgotI2luY2x1ZGUgPGFsZ29yaXRobT4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgaW50IGNvbXB1dGVOdW1UaWxlcyhpbnQg
bWF4VGV4dHVyZVNpemUsIGludCB0b3RhbFNpemUsIGludCBib3JkZXJUZXhlbHMpCi17Ci0gICAg
aWYgKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRleGVscyA8PSAwKQotICAgICAgICByZXR1
cm4gdG90YWxTaXplID4gMCAmJiBtYXhUZXh0dXJlU2l6ZSA+PSB0b3RhbFNpemUgPyAxIDogMDsK
LQotICAgIGludCBudW1UaWxlcyA9IHN0ZDo6bWF4KDEsIDEgKyAodG90YWxTaXplIC0gMSAtIDIg
KiBib3JkZXJUZXhlbHMpIC8gKG1heFRleHR1cmVTaXplIC0gMiAqIGJvcmRlclRleGVscykpOwot
ICAgIHJldHVybiB0b3RhbFNpemUgPiAwID8gbnVtVGlsZXMgOiAwOwotfQotCi1UaWxpbmdEYXRh
OjpUaWxpbmdEYXRhKGNvbnN0IEludFNpemUmIG1heFRleHR1cmVTaXplLCBjb25zdCBJbnRTaXpl
JiB0b3RhbFNpemUsIGJvb2wgaGFzQm9yZGVyVGV4ZWxzKQotICAgIDogbV9tYXhUZXh0dXJlU2l6
ZShtYXhUZXh0dXJlU2l6ZSkKLSAgICAsIG1fdG90YWxTaXplKHRvdGFsU2l6ZSkKLSAgICAsIG1f
Ym9yZGVyVGV4ZWxzKGhhc0JvcmRlclRleGVscyA/IDEgOiAwKQotewotICAgIHJlY29tcHV0ZU51
bVRpbGVzKCk7Ci19Ci0KLXZvaWQgVGlsaW5nRGF0YTo6c2V0VG90YWxTaXplKGNvbnN0IEludFNp
emUmIHRvdGFsU2l6ZSkKLXsKLSAgICBtX3RvdGFsU2l6ZSA9IHRvdGFsU2l6ZTsKLSAgICByZWNv
bXB1dGVOdW1UaWxlcygpOwotfQotCi12b2lkIFRpbGluZ0RhdGE6OnNldE1heFRleHR1cmVTaXpl
KGNvbnN0IEludFNpemUmIG1heFRleHR1cmVTaXplKQotewotICAgIG1fbWF4VGV4dHVyZVNpemUg
PSBtYXhUZXh0dXJlU2l6ZTsKLSAgICByZWNvbXB1dGVOdW1UaWxlcygpOwotfQotCi12b2lkIFRp
bGluZ0RhdGE6OnNldEhhc0JvcmRlclRleGVscyhib29sIGhhc0JvcmRlclRleGVscykKLXsKLSAg
ICBtX2JvcmRlclRleGVscyA9IGhhc0JvcmRlclRleGVscyA/IDEgOiAwOwotICAgIHJlY29tcHV0
ZU51bVRpbGVzKCk7Ci19Ci0KLWludCBUaWxpbmdEYXRhOjp0aWxlWEluZGV4RnJvbVNyY0Nvb3Jk
KGludCBzcmNQb3MpIGNvbnN0Ci17Ci0gICAgaWYgKG51bVRpbGVzWCgpIDw9IDEpCi0gICAgICAg
IHJldHVybiAwOwotCi0gICAgQVNTRVJUKG1fbWF4VGV4dHVyZVNpemUud2lkdGgoKSAtIDIgKiBt
X2JvcmRlclRleGVscyk7Ci0gICAgaW50IHggPSAoc3JjUG9zIC0gbV9ib3JkZXJUZXhlbHMpIC8g
KG1fbWF4VGV4dHVyZVNpemUud2lkdGgoKSAtIDIgKiBtX2JvcmRlclRleGVscyk7Ci0gICAgcmV0
dXJuIHN0ZDo6bWluKHN0ZDo6bWF4KHgsIDApLCBudW1UaWxlc1goKSAtIDEpOwotfQotCi1pbnQg
VGlsaW5nRGF0YTo6dGlsZVlJbmRleEZyb21TcmNDb29yZChpbnQgc3JjUG9zKSBjb25zdAotewot
ICAgIGlmIChudW1UaWxlc1koKSA8PSAxKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIEFTU0VS
VChtX21heFRleHR1cmVTaXplLmhlaWdodCgpIC0gMiAqIG1fYm9yZGVyVGV4ZWxzKTsKLSAgICBp
bnQgeSA9IChzcmNQb3MgLSBtX2JvcmRlclRleGVscykgLyAobV9tYXhUZXh0dXJlU2l6ZS5oZWln
aHQoKSAtIDIgKiBtX2JvcmRlclRleGVscyk7Ci0gICAgcmV0dXJuIHN0ZDo6bWluKHN0ZDo6bWF4
KHksIDApLCBudW1UaWxlc1koKSAtIDEpOwotfQotCi1JbnRSZWN0IFRpbGluZ0RhdGE6OnRpbGVC
b3VuZHMoaW50IGksIGludCBqKSBjb25zdAotewotICAgIGFzc2VydFRpbGUoaSwgaik7Ci0gICAg
aW50IHggPSB0aWxlUG9zaXRpb25YKGkpOwotICAgIGludCB5ID0gdGlsZVBvc2l0aW9uWShqKTsK
LSAgICBpbnQgd2lkdGggPSB0aWxlU2l6ZVgoaSk7Ci0gICAgaW50IGhlaWdodCA9IHRpbGVTaXpl
WShqKTsKLSAgICBBU1NFUlQoeCA+PSAwICYmIHkgPj0gMCAmJiB3aWR0aCA+PSAwICYmIGhlaWdo
dCA+PSAwKTsKLSAgICBBU1NFUlQoeCA8PSBtX3RvdGFsU2l6ZS53aWR0aCgpICYmIHkgPD0gbV90
b3RhbFNpemUuaGVpZ2h0KCkpOwotICAgIHJldHVybiBJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWln
aHQpOwotfQotCi1JbnRSZWN0IFRpbGluZ0RhdGE6OnRpbGVCb3VuZHNXaXRoQm9yZGVyKGludCBp
LCBpbnQgaikgY29uc3QKLXsKLSAgICBJbnRSZWN0IGJvdW5kcyA9IHRpbGVCb3VuZHMoaSwgaik7
Ci0KLSAgICBpZiAobV9ib3JkZXJUZXhlbHMpIHsKLSAgICAgICAgaW50IHgxID0gYm91bmRzLngo
KTsKLSAgICAgICAgaW50IHgyID0gYm91bmRzLm1heFgoKTsKLSAgICAgICAgaW50IHkxID0gYm91
bmRzLnkoKTsKLSAgICAgICAgaW50IHkyID0gYm91bmRzLm1heFkoKTsKLQotICAgICAgICBpZiAo
aSA+IDApCi0gICAgICAgICAgICB4MS0tOwotICAgICAgICBpZiAoaSA8IChudW1UaWxlc1goKSAt
IDEpKQotICAgICAgICAgICAgeDIrKzsKLSAgICAgICAgaWYgKGogPiAwKQotICAgICAgICAgICAg
eTEtLTsKLSAgICAgICAgaWYgKGogPCAobnVtVGlsZXNZKCkgLSAxKSkKLSAgICAgICAgICAgIHky
Kys7Ci0KLSAgICAgICAgYm91bmRzID0gSW50UmVjdCh4MSwgeTEsIHgyIC0geDEsIHkyIC0geTEp
OwotICAgIH0KLQotICAgIHJldHVybiBib3VuZHM7Ci19Ci0KLWludCBUaWxpbmdEYXRhOjp0aWxl
UG9zaXRpb25YKGludCB4SW5kZXgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKHhJbmRleCA+PSAwICYm
IHhJbmRleCA8IG51bVRpbGVzWCgpKTsKLQotICAgIGludCBwb3MgPSAwOwotICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgeEluZGV4OyBpKyspCi0gICAgICAgIHBvcyArPSB0aWxlU2l6ZVgoaSk7Ci0K
LSAgICByZXR1cm4gcG9zOwotfQotCi1pbnQgVGlsaW5nRGF0YTo6dGlsZVBvc2l0aW9uWShpbnQg
eUluZGV4KSBjb25zdAotewotICAgIEFTU0VSVCh5SW5kZXggPj0gMCAmJiB5SW5kZXggPCBudW1U
aWxlc1koKSk7Ci0KLSAgICBpbnQgcG9zID0gMDsKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IHlJ
bmRleDsgaSsrKQotICAgICAgICBwb3MgKz0gdGlsZVNpemVZKGkpOwotCi0gICAgcmV0dXJuIHBv
czsKLX0KLQotaW50IFRpbGluZ0RhdGE6OnRpbGVTaXplWChpbnQgeEluZGV4KSBjb25zdAotewot
ICAgIEFTU0VSVCh4SW5kZXggPj0gMCAmJiB4SW5kZXggPCBudW1UaWxlc1goKSk7Ci0KLSAgICBp
ZiAoIXhJbmRleCAmJiBtX251bVRpbGVzWCA9PSAxKQotICAgICAgICByZXR1cm4gbV90b3RhbFNp
emUud2lkdGgoKTsKLSAgICBpZiAoIXhJbmRleCAmJiBtX251bVRpbGVzWCA+IDEpCi0gICAgICAg
IHJldHVybiBtX21heFRleHR1cmVTaXplLndpZHRoKCkgLSBtX2JvcmRlclRleGVsczsKLSAgICBp
ZiAoeEluZGV4IDwgbnVtVGlsZXNYKCkgLSAxKQotICAgICAgICByZXR1cm4gbV9tYXhUZXh0dXJl
U2l6ZS53aWR0aCgpIC0gMiAqIG1fYm9yZGVyVGV4ZWxzOwotICAgIGlmICh4SW5kZXggPT0gbnVt
VGlsZXNYKCkgLSAxKQotICAgICAgICByZXR1cm4gbV90b3RhbFNpemUud2lkdGgoKSAtIHRpbGVQ
b3NpdGlvblgoeEluZGV4KTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVy
biAwOwotfQotCi1pbnQgVGlsaW5nRGF0YTo6dGlsZVNpemVZKGludCB5SW5kZXgpIGNvbnN0Ci17
Ci0gICAgQVNTRVJUKHlJbmRleCA+PSAwICYmIHlJbmRleCA8IG51bVRpbGVzWSgpKTsKLQotICAg
IGlmICgheUluZGV4ICYmIG1fbnVtVGlsZXNZID09IDEpCi0gICAgICAgIHJldHVybiBtX3RvdGFs
U2l6ZS5oZWlnaHQoKTsKLSAgICBpZiAoIXlJbmRleCAmJiBtX251bVRpbGVzWSA+IDEpCi0gICAg
ICAgIHJldHVybiBtX21heFRleHR1cmVTaXplLmhlaWdodCgpIC0gbV9ib3JkZXJUZXhlbHM7Ci0g
ICAgaWYgKHlJbmRleCA8IG51bVRpbGVzWSgpIC0gMSkKLSAgICAgICAgcmV0dXJuIG1fbWF4VGV4
dHVyZVNpemUuaGVpZ2h0KCkgLSAyICogbV9ib3JkZXJUZXhlbHM7Ci0gICAgaWYgKHlJbmRleCA9
PSBudW1UaWxlc1koKSAtIDEpCi0gICAgICAgIHJldHVybiBtX3RvdGFsU2l6ZS5oZWlnaHQoKSAt
IHRpbGVQb3NpdGlvblkoeUluZGV4KTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiAwOwotfQotCi1JbnRQb2ludCBUaWxpbmdEYXRhOjp0ZXh0dXJlT2Zmc2V0KGludCB4
SW5kZXgsIGludCB5SW5kZXgpIGNvbnN0Ci17Ci0gICAgaW50IGxlZnQgPSAoIXhJbmRleCB8fCBt
X251bVRpbGVzWCA9PSAxKSA/IDAgOiBtX2JvcmRlclRleGVsczsKLSAgICBpbnQgdG9wID0gKCF5
SW5kZXggfHwgbV9udW1UaWxlc1kgPT0gMSkgPyAwIDogbV9ib3JkZXJUZXhlbHM7Ci0KLSAgICBy
ZXR1cm4gSW50UG9pbnQobGVmdCwgdG9wKTsKLX0KLQotdm9pZCBUaWxpbmdEYXRhOjpyZWNvbXB1
dGVOdW1UaWxlcygpCi17Ci0gICAgbV9udW1UaWxlc1ggPSBjb21wdXRlTnVtVGlsZXMobV9tYXhU
ZXh0dXJlU2l6ZS53aWR0aCgpLCBtX3RvdGFsU2l6ZS53aWR0aCgpLCBtX2JvcmRlclRleGVscyk7
Ci0gICAgbV9udW1UaWxlc1kgPSBjb21wdXRlTnVtVGlsZXMobV9tYXhUZXh0dXJlU2l6ZS5oZWln
aHQoKSwgbV90b3RhbFNpemUuaGVpZ2h0KCksIG1fYm9yZGVyVGV4ZWxzKTsKLX0KLQotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1RpbGluZ0RhdGEu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1YmZlOGU5N2RiZi4uMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9UaWxpbmdEYXRhLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw4NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChjKSAyMDEwLCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
Ci0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgVGlsaW5nRGF0YV9oCi0jZGVmaW5l
IFRpbGluZ0RhdGFfaAotCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEZsb2F0UmVjdDsKLWNs
YXNzIEludFJlY3Q7Ci1jbGFzcyBJbnRQb2ludDsKLQotY2xhc3MgVGlsaW5nRGF0YSB7Ci1wdWJs
aWM6Ci0gICAgVGlsaW5nRGF0YShjb25zdCBJbnRTaXplJiBtYXhUZXh0dXJlU2l6ZSwgY29uc3Qg
SW50U2l6ZSYgdG90YWxTaXplLCBib29sIGhhc0JvcmRlclRleGVscyk7Ci0KLSAgICB2b2lkIHNl
dFRvdGFsU2l6ZShjb25zdCBJbnRTaXplJik7Ci0gICAgY29uc3QgSW50U2l6ZSYgdG90YWxTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV90b3RhbFNpemU7IH0KLSAgICB2b2lkIHNldE1heFRleHR1cmVT
aXplKGNvbnN0IEludFNpemUmKTsKLSAgICBjb25zdCBJbnRTaXplJiBtYXhUZXh0dXJlU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWF4VGV4dHVyZVNpemU7IH0KLSAgICB2b2lkIHNldEhhc0JvcmRl
clRleGVscyhib29sKTsKLSAgICBpbnQgYm9yZGVyVGV4ZWxzKCkgY29uc3QgeyByZXR1cm4gbV9i
b3JkZXJUZXhlbHM7IH0KLQotICAgIGJvb2wgaGFzRW1wdHlCb3VuZHMoKSBjb25zdCB7IHJldHVy
biAhbnVtVGlsZXNYKCkgfHwgIW51bVRpbGVzWSgpOyB9Ci0gICAgaW50IG51bVRpbGVzWCgpIGNv
bnN0IHsgcmV0dXJuIG1fbnVtVGlsZXNYOyB9Ci0gICAgaW50IG51bVRpbGVzWSgpIGNvbnN0IHsg
cmV0dXJuIG1fbnVtVGlsZXNZOyB9Ci0gICAgaW50IHRpbGVYSW5kZXhGcm9tU3JjQ29vcmQoaW50
KSBjb25zdDsKLSAgICBpbnQgdGlsZVlJbmRleEZyb21TcmNDb29yZChpbnQpIGNvbnN0OwotCi0g
ICAgSW50UmVjdCB0aWxlQm91bmRzKGludCwgaW50KSBjb25zdDsKLSAgICBJbnRSZWN0IHRpbGVC
b3VuZHNXaXRoQm9yZGVyKGludCwgaW50KSBjb25zdDsKLSAgICBpbnQgdGlsZVBvc2l0aW9uWChp
bnQgeEluZGV4KSBjb25zdDsKLSAgICBpbnQgdGlsZVBvc2l0aW9uWShpbnQgeUluZGV4KSBjb25z
dDsKLSAgICBpbnQgdGlsZVNpemVYKGludCB4SW5kZXgpIGNvbnN0OwotICAgIGludCB0aWxlU2l6
ZVkoaW50IHlJbmRleCkgY29uc3Q7Ci0KLSAgICAvLyBEaWZmZXJlbmNlIGJldHdlZW4gdGlsZUJv
dW5kJ3MgYW5kIHRpbGVCb3VuZFdpdGhCb3JkZXIncyBsb2NhdGlvbigpLgotICAgIEludFBvaW50
IHRleHR1cmVPZmZzZXQoaW50IHhJbmRleCwgaW50IHlJbmRleCkgY29uc3Q7Ci0KLXByaXZhdGU6
Ci0gICAgVGlsaW5nRGF0YSgpIDogbV9ib3JkZXJUZXhlbHMoMCkgeyB9Ci0gICAgdm9pZCBhc3Nl
cnRUaWxlKGludCBpLCBpbnQgaikgY29uc3QgeyBBU1NFUlRfVU5VU0VEKGksIGkgPj0gMCAmJiBp
IDwgbnVtVGlsZXNYKCkpOyBBU1NFUlRfVU5VU0VEKGosIGogPj0gMCAmJiBqIDwgbnVtVGlsZXNZ
KCkpOyB9Ci0gICAgdm9pZCByZWNvbXB1dGVOdW1UaWxlcygpOwotCi0gICAgSW50U2l6ZSBtX21h
eFRleHR1cmVTaXplOwotICAgIEludFNpemUgbV90b3RhbFNpemU7Ci0gICAgaW50IG1fYm9yZGVy
VGV4ZWxzOyAvLyAwIG9yIDEKLQotICAgIC8vIGNvbXB1dGVkIHZhbHVlczoKLSAgICBpbnQgbV9u
dW1UaWxlc1g7Ci0gICAgaW50IG1fbnVtVGlsZXNZOwotfTsKLQotfQotCi0jZW5kaWYgLy8gVGls
aW5nRGF0YV9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>