<?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>38163</bug_id>
          
          <creation_ts>2010-04-26 20:40:45 -0700</creation_ts>
          <short_desc>Factor some basic JS interface logic out of JIT and into a superclass</short_desc>
          <delta_ts>2010-04-26 21:13:21 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>38166</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217470</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-04-26 20:40:45 -0700</bug_when>
    <thetext>Factor some basic JS interface logic out of JIT and into a superclass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217471</commentid>
    <comment_count>1</comment_count>
      <attachid>54377</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-04-26 20:44:06 -0700</bug_when>
    <thetext>Created attachment 54377
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217472</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2010-04-26 20:46:10 -0700</bug_when>
    <thetext>Committed r58283: &lt;http://trac.webkit.org/changeset/58283&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217475</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-26 20:56:58 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/58283 might have broken Qt Linux Release minimal, Qt Linux ARMv5 Release, Qt Linux ARMv7 Release, Qt Windows 32-bit Release, and Qt Windows 32-bit Debug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217481</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-04-26 21:09:12 -0700</bug_when>
    <thetext>All platforms broke.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54377</attachid>
            <date>2010-04-26 20:44:06 -0700</date>
            <delta_ts>2010-04-26 20:44:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38163-20100426204405.patch</filename>
            <type>text/plain</type>
            <size>25189</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlZWRiZTViNmUwYWJmZDAyOTM5YmRjZDcwZWE2ZjQ1ZjQ3ZDY3NzFhLi42
NzYzOTQ3MzkwYWY5NjVlMWZiYWYwMTZkOWMwMjdhYzRjZDcxNzFkIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTAtMDQtMjYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGYWN0b3Ig
c29tZSBiYXNpYyBKUyBpbnRlcmZhY2UgbG9naWMgb3V0IG9mIEpJVCBhbmQgaW50byBhIHN1cGVy
Y2xhc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4
MTYzCisKKyAgICAgICAgQ3JlYXRlIEpTSW50ZXJmYWNlSklUIHRvIGhvbGQgc29tZSBjb21tb24g
bG93IGxldmVsIGZ1bmN0aW9ucyBmb3IKKyAgICAgICAgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgSlMg
UmVnaXN0ZXJGaWxlLiAgRG9pbmcgdGhpcyBzZXBhcmF0ZWx5IGZyb20KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MTU1IHRvIGVhc2UgcmV2aWV3aW5n
LgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBqaXQvSklULmg6CisgICAgICAgICogaml0L0pJVElubGluZU1ldGhvZHMuaDoK
KyAgICAgICAgKEpTQzo6SklUOjplbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwpOgorICAgICAg
ICAqIGppdC9KU0ludGVyZmFjZUpJVC5oOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6SlNJbnRlcmZh
Y2VKSVQ6OmVtaXRMb2FkSlNDZWxsKToKKyAgICAgICAgKEpTQzo6SlNJbnRlcmZhY2VKSVQ6OmVt
aXRKdW1wSWZOb3RKU0NlbGwpOgorICAgICAgICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6ZW1pdExv
YWRJbnQzMik6CisgICAgICAgIChKU0M6OkpTSW50ZXJmYWNlSklUOjp0YWdGb3IpOgorICAgICAg
ICAoSlNDOjpKU0ludGVyZmFjZUpJVDo6cGF5bG9hZEZvcik6CisgICAgICAgIChKU0M6OkpTSW50
ZXJmYWNlSklUOjphZGRyZXNzRm9yKToKKwogMjAxMC0wNC0yNiAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBUaWdlciBidWlsZC4KZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDMzMTBjYTNmMjdlZWY0NTk4MDhkNjc4MmQyYTg5NzBiZjZjYjIwMTYuLmMwMDQ3N2YwYzExZTk2
M2U3NjU3NGVjZDExZjBjNTlkOTY2OTYxYWUgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjkxLDYgKzI5
MSw3IEBACiAJCUE3MjcwMUI5MERBREU5NDkwMEU1NDhENyAvKiBFeGNlcHRpb25IZWxwZXJzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzI3MDFCMzBE
QURFOTQ5MDBFNTQ4RDcgLyogRXhjZXB0aW9uSGVscGVycy5oICovOyB9OwogCQlBNzI3RkY2QjBE
QTMwOTIyMDBFNTQ4RDcgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzI3RkY2NjBEQTMwNTNCMDBFNTQ4
RDcgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi87IH07CiAJCUE3MjgwQTI4MTE1NTdF
MzAwMEQ1Njk1NyAvKiBKU09iamVjdFJlZlByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3OUVEQjA4MTE1MzFDRDYwMDE5RTkxMiAvKiBKU09i
amVjdFJlZlByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlBNzMxNjFGRTExODY5MkZGMDBCQjI4MEQgLyogSlNJbnRlcmZhY2VKSVQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MzE2MUZEMTE4
NjkyRkYwMEJCMjgwRCAvKiBKU0ludGVyZmFjZUpJVC5oICovOyB9OwogCQlBNzQ4MkI5MzExNjcx
MTQ3MDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0ODJCNzkxMTY2Q0RFQTAwM0IwNzEy
IC8qIEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzQ4MkI5NDExNjcxMTQ3MDAzQjA3MTIgLyogSlNX
ZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzQ4MkI3QTExNjZDREVBMDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0
TWFwUmVmUHJpdmF0ZS5jcHAgKi87IH07CiAJCUE3NDgyRTkzMTE2QTdDQUQwMDNCMDcxMiAvKiBK
U1dlYWtPYmplY3RNYXBSZWZJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTc0ODJFMzcxMTZBNjk3QjAwM0IwNzEyIC8qIEpTV2Vha09iamVj
dE1hcFJlZkludGVybmFsLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTg3MSw2ICs4NzIsNyBAQAogCQlBNzI3MDFCMzBEQURFOTQ5MDBFNTQ4RDcg
LyogRXhjZXB0aW9uSGVscGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
eGNlcHRpb25IZWxwZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MjdGRjY1
MERBMzA1M0IwMEU1NDhENyAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcyN0ZGNjYwREEzMDUzQjAwRTU0OEQ3IC8qIEpTUHJvcGVy
dHlOYW1lSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE3MzE2MUZEMTE4NjkyRkYwMEJCMjgwRCAvKiBKU0ludGVyZmFjZUpJVC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0ludGVyZmFjZUpJVC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBNzQ4MkI3OTExNjZDREVBMDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFw
UmVmUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYWtPYmpl
Y3RNYXBSZWZQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NDgyQjdB
MTE2NkNERUEwMDNCMDcxMiAvKiBKU1dlYWtPYmplY3RNYXBSZWZQcml2YXRlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzQ4MkUzNzExNkE2OTdCMDAzQjA3
MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEyMjEsNiArMTIyMyw3IEBACiAJCQkJOTYwNjI2OTUwRkI4RUMwMjAw
OTc5OEFCIC8qIEpJVFN0dWJDYWxsLmggKi8sCiAJCQkJMTRBMjNENkMwRjRFMTlDRTAwMjNDREFE
IC8qIEpJVFN0dWJzLmNwcCAqLywKIAkJCQkxNEE2NTgxQTBGNEUzNkY0MDAwMTUwRkQgLyogSklU
U3R1YnMuaCAqLywKKwkJCQlBNzMxNjFGRDExODY5MkZGMDBCQjI4MEQgLyogSlNJbnRlcmZhY2VK
SVQuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gaml0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKQEAgLTIxMTIsNiArMjExNSw3IEBACiAJCQkJQkM1RjdCQkUxMTgyM0I1OTAwNTJDMDJDIC8q
IEF0b21pY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUY3QkJGMTE4MjNCNTkwMDUyQzAyQyAv
KiBUaHJlYWRpbmdQcmltaXRpdmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVGN0JDMDExODIz
QjU5MDA1MkMwMkMgLyogVGhyZWFkU2FmZVNoYXJlZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTcz
MTYxRkUxMTg2OTJGRjAwQkIyODBEIC8qIEpTSW50ZXJmYWNlSklULmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaCBiL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVQuaAppbmRleCBlNzU3MTEyNjExZDMxMTM1ZTdlYzJlOTUyZDYzZjEzNzdiMTRlNTBmLi44
ZThhZWRjN2FhNmFhNDBkMTJkNDkxZjEwYzM2NjU2NTE1NjQyM2NlIDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCkBAIC00
MCwxNSArNDAsMTAgQEAKIAogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgogI2luY2x1ZGUgIkludGVy
cHJldGVyLmgiCi0jaW5jbHVkZSAiSklUQ29kZS5oIgotI2luY2x1ZGUgIkpJVFN0dWJzLmgiCisj
aW5jbHVkZSAiSlNJbnRlcmZhY2VKSVQuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKLSNpbmNsdWRl
ICJSZWdpc3RlckZpbGUuaCIKLSNpbmNsdWRlICJNYWNyb0Fzc2VtYmxlci5oIgogI2luY2x1ZGUg
IlByb2ZpbGVyLmgiCiAjaW5jbHVkZSA8Ynl0ZWNvZGUvU2FtcGxpbmdUb29sLmg+Ci0jaW5jbHVk
ZSA8d3RmL0Fsd2F5c0lubGluZS5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNw
YWNlIEpTQyB7CiAKQEAgLTE3MCwxMjggKzE2NSwxMyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICB2
b2lkIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhDb2RlQmxvY2sqIGNvZGVibG9jaywgUmV0
dXJuQWRkcmVzc1B0ciByZXR1cm5BZGRyZXNzLCBNYWNyb0Fzc2VtYmxlckNvZGVQdHIgbmV3Q2Fs
bGVlRnVuY3Rpb24pOwogICAgIHZvaWQgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKENvZGVC
bG9jayogY29kZWJsb2NrLCBSZXR1cm5BZGRyZXNzUHRyIHJldHVybkFkZHJlc3MsIEZ1bmN0aW9u
UHRyIG5ld0NhbGxlZUZ1bmN0aW9uKTsKIAotICAgIGNsYXNzIEpJVCA6IHByaXZhdGUgTWFjcm9B
c3NlbWJsZXIgeworICAgIGNsYXNzIEpJVCA6IHByaXZhdGUgSlNJbnRlcmZhY2VKSVQgewogICAg
ICAgICBmcmllbmQgY2xhc3MgSklUU3R1YkNhbGw7CiAKICAgICAgICAgdXNpbmcgTWFjcm9Bc3Nl
bWJsZXI6Okp1bXA7CiAgICAgICAgIHVzaW5nIE1hY3JvQXNzZW1ibGVyOjpKdW1wTGlzdDsKICAg
ICAgICAgdXNpbmcgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsOwogCi0gICAgICAgIC8vIE5PVEVTOgot
ICAgICAgICAvLwotICAgICAgICAvLyByZWdUMCBoYXMgdHdvIHNwZWNpYWwgbWVhbmluZ3MuICBU
aGUgcmV0dXJuIHZhbHVlIGZyb20gYSBzdHViCi0gICAgICAgIC8vIGNhbGwgd2lsbCBhbHdheXMg
YmUgaW4gcmVnVDAsIGFuZCBieSBkZWZhdWx0ICh1bmxlc3MKLSAgICAgICAgLy8gYSByZWdpc3Rl
ciBpcyBzcGVjaWZpZWQpIGVtaXRQdXRWaXJ0dWFsUmVnaXN0ZXIoKSB3aWxsIHN0b3JlCi0gICAg
ICAgIC8vIHRoZSB2YWx1ZSBmcm9tIHJlZ1QwLgotICAgICAgICAvLwotICAgICAgICAvLyByZWdU
MyBpcyByZXF1aXJlZCB0byBiZSBjYWxsZWUtcHJlc2VydmVkLgotICAgICAgICAvLwotICAgICAg
ICAvLyB0ZW1wUmVnaXN0ZXIyIGlzIGhhcyBubyBzdWNoIGRlcGVuZGVuY2llcy4gIEl0IGlzIGlt
cG9ydGFudCB0aGF0Ci0gICAgICAgIC8vIG9uIHg4Ni94ODYtNjQgaXQgaXMgZWN4IGZvciBwZXJm
b3JtYW5jZSByZWFzb25zLCBzaW5jZSB0aGUKLSAgICAgICAgLy8gTWFjcm9Bc3NlbWJsZXIgd2ls
bCBuZWVkIHRvIHBsYW50IHJlZ2lzdGVyIHN3YXBzIGlmIGl0IGlzIG5vdCAtCi0gICAgICAgIC8v
IGhvd2V2ZXIgdGhlIGNvZGUgd2lsbCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHkuCi0jaWYgQ1BV
KFg4Nl82NCkKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuVmFsdWVSZWdp
c3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwotICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6
OmVkaTsKLQotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCB0aW1lb3V0Q2hlY2tSZWdp
c3RlciA9IFg4NlJlZ2lzdGVyczo6cjEyOwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCBjYWxsRnJhbWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjEzOwotICAgICAgICBzdGF0aWMg
Y29uc3QgUmVnaXN0ZXJJRCB0YWdUeXBlTnVtYmVyUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIx
NDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdGFnTWFza1JlZ2lzdGVyID0gWDg2
UmVnaXN0ZXJzOjpyMTU7Ci0KLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDAg
PSBYODZSZWdpc3RlcnM6OmVheDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVn
VDEgPSBYODZSZWdpc3RlcnM6OmVkeDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
cmVnVDIgPSBYODZSZWdpc3RlcnM6OmVjeDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVy
SUQgcmVnVDMgPSBYODZSZWdpc3RlcnM6OmVieDsKLQotICAgICAgICBzdGF0aWMgY29uc3QgRlBS
ZWdpc3RlcklEIGZwUmVnVDAgPSBYODZSZWdpc3RlcnM6OnhtbTA7Ci0gICAgICAgIHN0YXRpYyBj
b25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMSA9IFg4NlJlZ2lzdGVyczo6eG1tMTsKLSAgICAgICAg
c3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QyID0gWDg2UmVnaXN0ZXJzOjp4bW0yOwot
I2VsaWYgQ1BVKFg4NikKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuVmFs
dWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwotICAgICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OwotICAgICAg
ICAvLyBPbiB4ODYgd2UgYWx3YXlzIHVzZSBmYXN0Y2FsbCBjb252ZW50aW9ucyA9IGJ1dCBvbgot
ICAgICAgICAvLyBPUyBYIGlmIG1pZ2h0IG1ha2UgbW9yZSBzZW5zZSB0byBqdXN0IHVzZSByZWdw
YXJtLgotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVnaXN0
ZXIgPSBYODZSZWdpc3RlcnM6OmVjeDsKLQotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCB0aW1lb3V0Q2hlY2tSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZXNpOwotICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWxsRnJhbWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWRp
OwotCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0gWDg2UmVnaXN0ZXJz
OjplYXg7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QxID0gWDg2UmVnaXN0
ZXJzOjplZHg7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QyID0gWDg2UmVn
aXN0ZXJzOjplY3g7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QzID0gWDg2
UmVnaXN0ZXJzOjplYng7Ci0KLSAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJl
Z1QwID0gWDg2UmVnaXN0ZXJzOjp4bW0wOwotICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3Rl
cklEIGZwUmVnVDEgPSBYODZSZWdpc3RlcnM6OnhtbTE7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBG
UFJlZ2lzdGVySUQgZnBSZWdUMiA9IFg4NlJlZ2lzdGVyczo6eG1tMjsKLSNlbGlmIENQVShBUk1f
VEhVTUIyKQotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5WYWx1ZVJlZ2lz
dGVyID0gQVJNUmVnaXN0ZXJzOjpyMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQg
Y2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOwotICAgICAgICBzdGF0aWMg
Y29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIw
OwotCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0gQVJNUmVnaXN0ZXJz
OjpyMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDEgPSBBUk1SZWdpc3Rl
cnM6OnIxOwotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMiA9IEFSTVJlZ2lz
dGVyczo6cjI7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QzID0gQVJNUmVn
aXN0ZXJzOjpyNDsKLQotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWxsRnJhbWVS
ZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjU7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3Rl
cklEIHRpbWVvdXRDaGVja1JlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNjsKLQotICAgICAgICBz
dGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDAgPSBBUk1SZWdpc3RlcnM6OmQwOwotICAg
ICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDEgPSBBUk1SZWdpc3RlcnM6OmQx
OwotICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDIgPSBBUk1SZWdpc3Rl
cnM6OmQyOwotI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKLSAgICAgICAgc3RhdGljIGNvbnN0
IFJlZ2lzdGVySUQgcmV0dXJuVmFsdWVSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGNhY2hlZFJlc3VsdFJlZ2lzdGVyID0gQVJNUmVn
aXN0ZXJzOjpyMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZmlyc3RBcmd1bWVu
dFJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyMDsKLQotICAgICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCB0aW1lb3V0Q2hlY2tSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjU7Ci0gICAgICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGNhbGxGcmFtZVJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJz
OjpyNDsKLQotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMCA9IEFSTVJlZ2lz
dGVyczo6cjA7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QxID0gQVJNUmVn
aXN0ZXJzOjpyMTsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDIgPSBBUk1S
ZWdpc3RlcnM6OnIyOwotICAgICAgICAvLyBDYWxsZWUgcHJlc2VydmVkCi0gICAgICAgIHN0YXRp
YyBjb25zdCBSZWdpc3RlcklEIHJlZ1QzID0gQVJNUmVnaXN0ZXJzOjpyNzsKLQotICAgICAgICBz
dGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdTMCA9IEFSTVJlZ2lzdGVyczo6UzA7Ci0gICAgICAg
IC8vIENhbGxlZSBwcmVzZXJ2ZWQKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVn
UzEgPSBBUk1SZWdpc3RlcnM6OlMxOwotCi0gICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IHJlZ1N0YWNrUHRyID0gQVJNUmVnaXN0ZXJzOjpzcDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgcmVnTGluayA9IEFSTVJlZ2lzdGVyczo6bHI7Ci0KLSAgICAgICAgc3RhdGljIGNv
bnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QwID0gQVJNUmVnaXN0ZXJzOjpkMDsKLSAgICAgICAgc3Rh
dGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QxID0gQVJNUmVnaXN0ZXJzOjpkMTsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpkMjsK
LSNlbGlmIENQVShNSVBTKQotICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZXR1cm5W
YWx1ZVJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6djA7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBS
ZWdpc3RlcklEIGNhY2hlZFJlc3VsdFJlZ2lzdGVyID0gTUlQU1JlZ2lzdGVyczo6djA7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGZpcnN0QXJndW1lbnRSZWdpc3RlciA9IE1JUFNS
ZWdpc3RlcnM6OmEwOwotCi0gICAgICAgIC8vIHJlZ1QwIG11c3QgYmUgdjAgZm9yIHJldHVybmlu
ZyBhIDMyLWJpdCB2YWx1ZS4KLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDAg
PSBNSVBTUmVnaXN0ZXJzOjp2MDsKLQotICAgICAgICAvLyByZWdUMSBtdXN0IGJlIHYxIGZvciBy
ZXR1cm5pbmcgYSBwYWlyIG9mIDMyLWJpdCB2YWx1ZS4KLSAgICAgICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgcmVnVDEgPSBNSVBTUmVnaXN0ZXJzOjp2MTsKLQotICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCByZWdUMiA9IE1JUFNSZWdpc3RlcnM6OnQ0OwotCi0gICAgICAgIC8vIHJl
Z1QzIG11c3QgYmUgc2F2ZWQgaW4gdGhlIGNhbGxlZSwgc28gdXNlIGFuIFMgcmVnaXN0ZXIuCi0g
ICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QzID0gTUlQU1JlZ2lzdGVyczo6czI7
Ci0KLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0ZXIgPSBN
SVBTUmVnaXN0ZXJzOjpzMDsKLSAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgdGltZW91
dENoZWNrUmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjpzMTsKLQotICAgICAgICBzdGF0aWMgY29u
c3QgRlBSZWdpc3RlcklEIGZwUmVnVDAgPSBNSVBTUmVnaXN0ZXJzOjpmNDsKLSAgICAgICAgc3Rh
dGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QxID0gTUlQU1JlZ2lzdGVyczo6ZjY7Ci0gICAg
ICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IE1JUFNSZWdpc3RlcnM6OmY4
OwotI2Vsc2UKLSAgICAjZXJyb3IgIkpJVCBub3Qgc3VwcG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0u
IgotI2VuZGlmCi0KICAgICAgICAgc3RhdGljIGNvbnN0IGludCBwYXRjaEdldEJ5SWREZWZhdWx0
U3RydWN0dXJlID0gLTE7CiAgICAgICAgIC8vIE1hZ2ljIG51bWJlciAtIGluaXRpYWwgb2Zmc2V0
IGNhbm5vdCBiZSByZXByZXNlbnRhYmxlIGFzIGEgc2lnbmVkIDhiaXQgdmFsdWUsIG9yIHRoZSBY
ODZBc3NlbWJsZXIKICAgICAgICAgLy8gd2lsbCBjb21wcmVzcyB0aGUgZGlzcGxhY2VtZW50LCBh
bmQgd2UgbWF5IG5vdCBiZSBhYmxlIHRvIGZpdCBhIHBhdGNoZWQgb2Zmc2V0LgpAQCAtNDA1LDE0
ICsyODUsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBlbWl0TG9hZERvdWJsZSh1
bnNpZ25lZCBpbmRleCwgRlBSZWdpc3RlcklEIHZhbHVlKTsKICAgICAgICAgdm9pZCBlbWl0TG9h
ZEludDMyVG9Eb3VibGUodW5zaWduZWQgaW5kZXgsIEZQUmVnaXN0ZXJJRCB2YWx1ZSk7CiAKLSAg
ICAgICAgQWRkcmVzcyBhZGRyZXNzRm9yKHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklEIGJhc2Ug
PSBjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KICAgICAgICAgdm9pZCB0ZXN0UHJvdG90eXBlKFN0cnVj
dHVyZSosIEp1bXBMaXN0JiBmYWlsdXJlQ2FzZXMpOwogCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkK
LSAgICAgICAgQWRkcmVzcyB0YWdGb3IodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVySUQgYmFzZSA9
IGNhbGxGcmFtZVJlZ2lzdGVyKTsKLSAgICAgICAgQWRkcmVzcyBwYXlsb2FkRm9yKHVuc2lnbmVk
IGluZGV4LCBSZWdpc3RlcklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7Ci0KICAgICAgICAg
Ym9vbCBnZXRPcGVyYW5kQ29uc3RhbnRJbW1lZGlhdGVJbnQodW5zaWduZWQgb3AxLCB1bnNpZ25l
ZCBvcDIsIHVuc2lnbmVkJiBvcCwgaW50MzJfdCYgY29uc3RhbnQpOwogCiAgICAgICAgIHZvaWQg
ZW1pdExvYWRUYWcodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVySUQgdGFnKTsKZGlmZiAtLWdpdCBh
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmggYi9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lTWV0aG9kcy5oCmluZGV4IDk2YTJlNWI3NTgwNjQzZTI5Yzg1ZDNkYzViNjUy
ZjNiYzAzNzQzNjcuLmNhMTI3MGY0NjhmYWFlY2IyOGExZmMwMGUwZDZkY2VlYTdlZDZlNzkgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVNZXRob2RzLmgKKysrIGIvSmF2
YVNjcmlwdENvcmUvaml0L0pJVElubGluZU1ldGhvZHMuaApAQCAtMzIzLDIzICszMjMsOCBAQCBB
TFdBWVNfSU5MSU5FIHZvaWQgSklUOjpzYW1wbGVDb2RlQmxvY2soQ29kZUJsb2NrKiBjb2RlQmxv
Y2spCiAjZW5kaWYKICNlbmRpZgogCi1pbmxpbmUgSklUOjpBZGRyZXNzIEpJVDo6YWRkcmVzc0Zv
cih1bnNpZ25lZCBpbmRleCwgUmVnaXN0ZXJJRCBiYXNlKQotewotICAgIHJldHVybiBBZGRyZXNz
KGJhc2UsIChpbmRleCAqIHNpemVvZihSZWdpc3RlcikpKTsKLX0KLQogI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCiAKLWlubGluZSBKSVQ6OkFkZHJlc3MgSklUOjp0YWdGb3IodW5zaWduZWQgaW5kZXgs
IFJlZ2lzdGVySUQgYmFzZSkKLXsKLSAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCAoaW5kZXggKiBz
aXplb2YoUmVnaXN0ZXIpKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy50YWcp
KTsKLX0KLQotaW5saW5lIEpJVDo6QWRkcmVzcyBKSVQ6OnBheWxvYWRGb3IodW5zaWduZWQgaW5k
ZXgsIFJlZ2lzdGVySUQgYmFzZSkKLXsKLSAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCAoaW5kZXgg
KiBzaXplb2YoUmVnaXN0ZXIpKSArIE9CSkVDVF9PRkZTRVRPRihKU1ZhbHVlLCB1LmFzQml0cy5w
YXlsb2FkKSk7Ci19Ci0KIGlubGluZSB2b2lkIEpJVDo6ZW1pdExvYWRUYWcodW5zaWduZWQgaW5k
ZXgsIFJlZ2lzdGVySUQgdGFnKQogewogICAgIFJlZ2lzdGVySUQgbWFwcGVkVGFnOwpAQCAtNTYw
LDcgKzU0NSw3IEBAIGlubGluZSBib29sIEpJVDo6Z2V0TWFwcGVkVGFnKHVuc2lnbmVkIHZpcnR1
YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEJiB0YWcpCiBpbmxpbmUgdm9pZCBKSVQ6OmVtaXRK
dW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbCh1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCkKIHsK
ICAgICBpZiAoIW1fY29kZUJsb2NrLT5pc0tub3duTm90SW1tZWRpYXRlKHZpcnR1YWxSZWdpc3Rl
ckluZGV4KSkKLSAgICAgICAgYWRkU2xvd0Nhc2UoYnJhbmNoMzIoTm90RXF1YWwsIHRhZ0Zvcih2
aXJ0dWFsUmVnaXN0ZXJJbmRleCksIEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKSk7CisgICAgICAg
IGFkZFNsb3dDYXNlKGVtaXRKdW1wSWZOb3RKU0NlbGwodmlydHVhbFJlZ2lzdGVySW5kZXgpKTsK
IH0KIAogaW5saW5lIHZvaWQgSklUOjplbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwodW5zaWdu
ZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lzdGVySUQgdGFnKQpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvaml0L0pTSW50ZXJmYWNlSklULmggYi9KYXZhU2NyaXB0Q29yZS9qaXQvSlNJ
bnRlcmZhY2VKSVQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NGZjMGU0ZGE4OWY2OTE0N2UxMWYwZjQ3NzVlNGFk
OWU1YzQ5NWU0Ci0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvaml0L0pTSW50ZXJm
YWNlSklULmgKQEAgLTAsMCArMSwyNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTSW50ZXJm
YWNlSklUX2gKKyNkZWZpbmUgSlNJbnRlcmZhY2VKSVRfaAorCisjaW5jbHVkZSAiSklUQ29kZS5o
IgorI2luY2x1ZGUgIkpJVFN0dWJzLmgiCisjaW5jbHVkZSAiSlNJbW1lZGlhdGUuaCIKKyNpbmNs
dWRlICJNYWNyb0Fzc2VtYmxlci5oIgorI2luY2x1ZGUgIlJlZ2lzdGVyRmlsZS5oIgorI2luY2x1
ZGUgPHd0Zi9BbHdheXNJbmxpbmUuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBKU0MgeworICAgIGNsYXNzIEpTSW50ZXJmYWNlSklUIDogcHVibGljIE1hY3JvQXNzZW1i
bGVyIHsKKyAgICBwdWJsaWM6CisgICAgICAgIC8vIE5PVEVTOgorICAgICAgICAvLworICAgICAg
ICAvLyByZWdUMCBoYXMgdHdvIHNwZWNpYWwgbWVhbmluZ3MuICBUaGUgcmV0dXJuIHZhbHVlIGZy
b20gYSBzdHViCisgICAgICAgIC8vIGNhbGwgd2lsbCBhbHdheXMgYmUgaW4gcmVnVDAsIGFuZCBi
eSBkZWZhdWx0ICh1bmxlc3MKKyAgICAgICAgLy8gYSByZWdpc3RlciBpcyBzcGVjaWZpZWQpIGVt
aXRQdXRWaXJ0dWFsUmVnaXN0ZXIoKSB3aWxsIHN0b3JlCisgICAgICAgIC8vIHRoZSB2YWx1ZSBm
cm9tIHJlZ1QwLgorICAgICAgICAvLworICAgICAgICAvLyByZWdUMyBpcyByZXF1aXJlZCB0byBi
ZSBjYWxsZWUtcHJlc2VydmVkLgorICAgICAgICAvLworICAgICAgICAvLyB0ZW1wUmVnaXN0ZXIy
IGlzIGhhcyBubyBzdWNoIGRlcGVuZGVuY2llcy4gIEl0IGlzIGltcG9ydGFudCB0aGF0CisgICAg
ICAgIC8vIG9uIHg4Ni94ODYtNjQgaXQgaXMgZWN4IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLCBz
aW5jZSB0aGUKKyAgICAgICAgLy8gTWFjcm9Bc3NlbWJsZXIgd2lsbCBuZWVkIHRvIHBsYW50IHJl
Z2lzdGVyIHN3YXBzIGlmIGl0IGlzIG5vdCAtCisgICAgICAgIC8vIGhvd2V2ZXIgdGhlIGNvZGUg
d2lsbCBzdGlsbCBmdW5jdGlvbiBjb3JyZWN0bHkuCisjaWYgQ1BVKFg4Nl82NCkKKyAgICAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuVmFsdWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVy
czo6ZWF4OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdp
c3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVkaTsKKyAgICAgICAgCisg
ICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHRpbWVvdXRDaGVja1JlZ2lzdGVyID0gWDg2
UmVnaXN0ZXJzOjpyMTI7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGNhbGxGcmFt
ZVJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTM7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdp
c3RlcklEIHRhZ1R5cGVOdW1iZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjE0OworICAgICAg
ICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCB0YWdNYXNrUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6
OnIxNTsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QwID0g
WDg2UmVnaXN0ZXJzOjplYXg7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1Qx
ID0gWDg2UmVnaXN0ZXJzOjplZHg7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJl
Z1QyID0gWDg2UmVnaXN0ZXJzOjplY3g7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IHJlZ1QzID0gWDg2UmVnaXN0ZXJzOjplYng7CisgICAgICAgIAorICAgICAgICBzdGF0aWMgY29u
c3QgRlBSZWdpc3RlcklEIGZwUmVnVDAgPSBYODZSZWdpc3RlcnM6OnhtbTA7CisgICAgICAgIHN0
YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMSA9IFg4NlJlZ2lzdGVyczo6eG1tMTsKKyAg
ICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QyID0gWDg2UmVnaXN0ZXJzOjp4
bW0yOworI2VsaWYgQ1BVKFg4NikKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0
dXJuVmFsdWVSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4OworICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1bHRSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWF4Owor
ICAgICAgICAvLyBPbiB4ODYgd2UgYWx3YXlzIHVzZSBmYXN0Y2FsbCBjb252ZW50aW9ucyA9IGJ1
dCBvbgorICAgICAgICAvLyBPUyBYIGlmIG1pZ2h0IG1ha2UgbW9yZSBzZW5zZSB0byBqdXN0IHVz
ZSByZWdwYXJtLgorICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3VtZW50
UmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OmVjeDsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBj
b25zdCBSZWdpc3RlcklEIHRpbWVvdXRDaGVja1JlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjplc2k7
CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGNhbGxGcmFtZVJlZ2lzdGVyID0gWDg2
UmVnaXN0ZXJzOjplZGk7CisgICAgICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJ
RCByZWdUMCA9IFg4NlJlZ2lzdGVyczo6ZWF4OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCByZWdUMSA9IFg4NlJlZ2lzdGVyczo6ZWR4OworICAgICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCByZWdUMiA9IFg4NlJlZ2lzdGVyczo6ZWN4OworICAgICAgICBzdGF0aWMgY29uc3Qg
UmVnaXN0ZXJJRCByZWdUMyA9IFg4NlJlZ2lzdGVyczo6ZWJ4OworICAgICAgICAKKyAgICAgICAg
c3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QwID0gWDg2UmVnaXN0ZXJzOjp4bW0wOwor
ICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDEgPSBYODZSZWdpc3RlcnM6
OnhtbTE7CisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdUMiA9IFg4NlJl
Z2lzdGVyczo6eG1tMjsKKyNlbGlmIENQVShBUk1fVEhVTUIyKQorICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCByZXR1cm5WYWx1ZVJlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyMDsKKyAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FjaGVkUmVzdWx0UmVnaXN0ZXIgPSBBUk1S
ZWdpc3RlcnM6OnIwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBmaXJzdEFyZ3Vt
ZW50UmVnaXN0ZXIgPSBBUk1SZWdpc3RlcnM6OnIwOworICAgICAgICAKKyAgICAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgcmVnVDAgPSBBUk1SZWdpc3RlcnM6OnIwOworICAgICAgICBzdGF0
aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMSA9IEFSTVJlZ2lzdGVyczo6cjE7CisgICAgICAgIHN0
YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpyMjsKKyAgICAgICAg
c3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDMgPSBBUk1SZWdpc3RlcnM6OnI0OworICAgICAg
ICAKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0ZXIgPSBB
Uk1SZWdpc3RlcnM6OnI1OworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCB0aW1lb3V0
Q2hlY2tSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjY7CisgICAgICAgIAorICAgICAgICBzdGF0
aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDAgPSBBUk1SZWdpc3RlcnM6OmQwOworICAgICAg
ICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDEgPSBBUk1SZWdpc3RlcnM6OmQxOwor
ICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklEIGZwUmVnVDIgPSBBUk1SZWdpc3RlcnM6
OmQyOworI2VsaWYgQ1BVKEFSTV9UUkFESVRJT05BTCkKKyAgICAgICAgc3RhdGljIGNvbnN0IFJl
Z2lzdGVySUQgcmV0dXJuVmFsdWVSZWdpc3RlciA9IEFSTVJlZ2lzdGVyczo6cjA7CisgICAgICAg
IHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIGNhY2hlZFJlc3VsdFJlZ2lzdGVyID0gQVJNUmVnaXN0
ZXJzOjpyMDsKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgZmlyc3RBcmd1bWVudFJl
Z2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyMDsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25z
dCBSZWdpc3RlcklEIHRpbWVvdXRDaGVja1JlZ2lzdGVyID0gQVJNUmVnaXN0ZXJzOjpyNTsKKyAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgY2FsbEZyYW1lUmVnaXN0ZXIgPSBBUk1SZWdp
c3RlcnM6OnI0OworICAgICAgICAKKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVn
VDAgPSBBUk1SZWdpc3RlcnM6OnIwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBy
ZWdUMSA9IEFSTVJlZ2lzdGVyczo6cjE7CisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklE
IHJlZ1QyID0gQVJNUmVnaXN0ZXJzOjpyMjsKKyAgICAgICAgLy8gQ2FsbGVlIHByZXNlcnZlZAor
ICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdUMyA9IEFSTVJlZ2lzdGVyczo6cjc7
CisgICAgICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdTMCA9IEFSTVJl
Z2lzdGVyczo6UzA7CisgICAgICAgIC8vIENhbGxlZSBwcmVzZXJ2ZWQKKyAgICAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgcmVnUzEgPSBBUk1SZWdpc3RlcnM6OlMxOworICAgICAgICAKKyAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnU3RhY2tQdHIgPSBBUk1SZWdpc3RlcnM6
OnNwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCByZWdMaW5rID0gQVJNUmVnaXN0
ZXJzOjpscjsKKyAgICAgICAgCisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBS
ZWdUMCA9IEFSTVJlZ2lzdGVyczo6ZDA7CisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVy
SUQgZnBSZWdUMSA9IEFSTVJlZ2lzdGVyczo6ZDE7CisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJl
Z2lzdGVySUQgZnBSZWdUMiA9IEFSTVJlZ2lzdGVyczo6ZDI7CisjZWxpZiBDUFUoTUlQUykKKyAg
ICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmV0dXJuVmFsdWVSZWdpc3RlciA9IE1JUFNS
ZWdpc3RlcnM6OnYwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBjYWNoZWRSZXN1
bHRSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnYwOworICAgICAgICBzdGF0aWMgY29uc3QgUmVn
aXN0ZXJJRCBmaXJzdEFyZ3VtZW50UmVnaXN0ZXIgPSBNSVBTUmVnaXN0ZXJzOjphMDsKKyAgICAg
ICAgCisgICAgICAgIC8vIHJlZ1QwIG11c3QgYmUgdjAgZm9yIHJldHVybmluZyBhIDMyLWJpdCB2
YWx1ZS4KKyAgICAgICAgc3RhdGljIGNvbnN0IFJlZ2lzdGVySUQgcmVnVDAgPSBNSVBTUmVnaXN0
ZXJzOjp2MDsKKyAgICAgICAgCisgICAgICAgIC8vIHJlZ1QxIG11c3QgYmUgdjEgZm9yIHJldHVy
bmluZyBhIHBhaXIgb2YgMzItYml0IHZhbHVlLgorICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0
ZXJJRCByZWdUMSA9IE1JUFNSZWdpc3RlcnM6OnYxOworICAgICAgICAKKyAgICAgICAgc3RhdGlj
IGNvbnN0IFJlZ2lzdGVySUQgcmVnVDIgPSBNSVBTUmVnaXN0ZXJzOjp0NDsKKyAgICAgICAgCisg
ICAgICAgIC8vIHJlZ1QzIG11c3QgYmUgc2F2ZWQgaW4gdGhlIGNhbGxlZSwgc28gdXNlIGFuIFMg
cmVnaXN0ZXIuCisgICAgICAgIHN0YXRpYyBjb25zdCBSZWdpc3RlcklEIHJlZ1QzID0gTUlQU1Jl
Z2lzdGVyczo6czI7CisgICAgICAgIAorICAgICAgICBzdGF0aWMgY29uc3QgUmVnaXN0ZXJJRCBj
YWxsRnJhbWVSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnMwOworICAgICAgICBzdGF0aWMgY29u
c3QgUmVnaXN0ZXJJRCB0aW1lb3V0Q2hlY2tSZWdpc3RlciA9IE1JUFNSZWdpc3RlcnM6OnMxOwor
ICAgICAgICAKKyAgICAgICAgc3RhdGljIGNvbnN0IEZQUmVnaXN0ZXJJRCBmcFJlZ1QwID0gTUlQ
U1JlZ2lzdGVyczo6ZjQ7CisgICAgICAgIHN0YXRpYyBjb25zdCBGUFJlZ2lzdGVySUQgZnBSZWdU
MSA9IE1JUFNSZWdpc3RlcnM6OmY2OworICAgICAgICBzdGF0aWMgY29uc3QgRlBSZWdpc3RlcklE
IGZwUmVnVDIgPSBNSVBTUmVnaXN0ZXJzOjpmODsKKyNlbHNlCisjZXJyb3IgIkpJVCBub3Qgc3Vw
cG9ydGVkIG9uIHRoaXMgcGxhdGZvcm0uIgorI2VuZGlmCisKKyAgICAgICAgaW5saW5lIEp1bXAg
ZW1pdExvYWRKU0NlbGwodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lzdGVySUQg
cGF5bG9hZCk7CisgICAgICAgIGlubGluZSBKdW1wIGVtaXRMb2FkSW50MzIodW5zaWduZWQgdmly
dHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lzdGVySUQgZHN0KTsKKworI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCisgICAgICAgIGlubGluZSBKdW1wIGVtaXRKdW1wSWZOb3RKU0NlbGwodW5zaWduZWQgdmly
dHVhbFJlZ2lzdGVySW5kZXgpOworICAgICAgICBpbmxpbmUgQWRkcmVzcyB0YWdGb3IodW5zaWdu
ZWQgaW5kZXgsIFJlZ2lzdGVySUQgYmFzZSA9IGNhbGxGcmFtZVJlZ2lzdGVyKTsKKyNlbmRpZgor
ICAgICAgICBpbmxpbmUgQWRkcmVzcyBwYXlsb2FkRm9yKHVuc2lnbmVkIGluZGV4LCBSZWdpc3Rl
cklEIGJhc2UgPSBjYWxsRnJhbWVSZWdpc3Rlcik7CisgICAgICAgIGlubGluZSBBZGRyZXNzIGFk
ZHJlc3NGb3IodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVySUQgYmFzZSA9IGNhbGxGcmFtZVJlZ2lz
dGVyKTsKKyAgICB9OworICAgIAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgaW5saW5lIEpT
SW50ZXJmYWNlSklUOjpKdW1wIEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZEpTQ2VsbCh1bnNpZ25l
ZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBwYXlsb2FkKQorICAgIHsKKyAgICAg
ICAgbG9hZFB0cihwYXlsb2FkRm9yKHZpcnR1YWxSZWdpc3RlckluZGV4KSwgcGF5bG9hZCk7Cisg
ICAgICAgIHJldHVybiBlbWl0SnVtcElmTm90SlNDZWxsKHZpcnR1YWxSZWdpc3RlckluZGV4KTsK
KyAgICB9CisKKyAgICBpbmxpbmUgSlNJbnRlcmZhY2VKSVQ6Okp1bXAgSlNJbnRlcmZhY2VKSVQ6
OmVtaXRKdW1wSWZOb3RKU0NlbGwodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgpCisgICAg
eworICAgICAgICByZXR1cm4gYnJhbmNoMzIoTm90RXF1YWwsIHRhZ0Zvcih2aXJ0dWFsUmVnaXN0
ZXJJbmRleCksIEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpKTsKKyAgICB9CisgICAgCisgICAgaW5s
aW5lIEpTSW50ZXJmYWNlSklUOjpKdW1wIEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZEludDMyKHVu
c2lnbmVkIHZpcnR1YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAg
ICAgIGxvYWRQdHIocGF5bG9hZEZvcih2aXJ0dWFsUmVnaXN0ZXJJbmRleCksIGRzdCk7CisgICAg
ICAgIHJldHVybiBicmFuY2gzMihOb3RFcXVhbCwgdGFnRm9yKHZpcnR1YWxSZWdpc3RlckluZGV4
KSwgSW1tMzIoSlNWYWx1ZTo6SW50MzJUYWcpKTsKKyAgICB9CisgICAgCisgICAgaW5saW5lIEpT
SW50ZXJmYWNlSklUOjpBZGRyZXNzIEpTSW50ZXJmYWNlSklUOjp0YWdGb3IodW5zaWduZWQgaW5k
ZXgsIFJlZ2lzdGVySUQgYmFzZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBZGRyZXNzKGJhc2Us
IChpbmRleCAqIHNpemVvZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUu
YXNCaXRzLnRhZykpOworICAgIH0KKyAgICAKKyAgICBpbmxpbmUgSlNJbnRlcmZhY2VKSVQ6OkFk
ZHJlc3MgSlNJbnRlcmZhY2VKSVQ6OnBheWxvYWRGb3IodW5zaWduZWQgaW5kZXgsIFJlZ2lzdGVy
SUQgYmFzZSkKKyAgICB7CisgICAgICAgIHJldHVybiBBZGRyZXNzKGJhc2UsIChpbmRleCAqIHNp
emVvZihSZWdpc3RlcikpICsgT0JKRUNUX09GRlNFVE9GKEpTVmFsdWUsIHUuYXNCaXRzLnBheWxv
YWQpKTsKKyAgICB9CisjZW5kaWYKKworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgaW5saW5lIEpT
SW50ZXJmYWNlSklUOjpKdW1wIEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZEpTQ2VsbCh1bnNpZ25l
ZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBkc3QpCisgICAgeworICAgICAgICBs
b2FkUHRyKGFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVySW5kZXgpLCBkc3QpOworICAgICAgICBy
ZXR1cm4gYnJhbmNoVGVzdFB0cihOb25aZXJvLCBkc3QsIHRhZ01hc2tSZWdpc3Rlcik7CisgICAg
fQorICAgIAorICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0ludGVyZmFjZUpJVDo6
ZW1pdExvYWRJbnQzMih1bnNpZ25lZCB2aXJ0dWFsUmVnaXN0ZXJJbmRleCwgUmVnaXN0ZXJJRCBk
c3QpCisgICAgeworICAgICAgICBsb2FkUHRyKGFkZHJlc3NGb3IodmlydHVhbFJlZ2lzdGVySW5k
ZXgpLCBkc3QpOworICAgICAgICBKdW1wIHJlc3VsdCA9IGJyYW5jaFB0cihCZWxvdywgZHN0LCB0
YWdUeXBlTnVtYmVyUmVnaXN0ZXIpOworICAgICAgICB6ZXJvRXh0ZW5kMzJUb1B0cihkc3QsIGRz
dCk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorI2VuZGlmCisKKyNpZiBVU0UoSlNW
QUxVRTMyKQorICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6SnVtcCBKU0ludGVyZmFjZUpJVDo6
ZW1pdExvYWRKU0NlbGwodW5zaWduZWQgdmlydHVhbFJlZ2lzdGVySW5kZXgsIFJlZ2lzdGVySUQg
ZHN0KQorICAgIHsKKyAgICAgICAgbG9hZFB0cihhZGRyZXNzRm9yKHZpcnR1YWxSZWdpc3Rlcklu
ZGV4KSwgZHN0KTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRlc3QzMihOb25aZXJvLCBkc3QsIElt
bTMyKEpTSW1tZWRpYXRlOjpUYWdNYXNrKSk7CisgICAgfQorCisgICAgaW5saW5lIEpTSW50ZXJm
YWNlSklUOjpKdW1wIEpTSW50ZXJmYWNlSklUOjplbWl0TG9hZEludDMyKHVuc2lnbmVkIHZpcnR1
YWxSZWdpc3RlckluZGV4LCBSZWdpc3RlcklEIGRzdCkKKyAgICB7CisgICAgICAgIGxvYWRQdHIo
YWRkcmVzc0Zvcih2aXJ0dWFsUmVnaXN0ZXJJbmRleCksIGRzdCk7CisgICAgICAgIEp1bXAgcmVz
dWx0ID0gYnJhbmNoVGVzdDMyKFplcm8sIGRzdCwgSW1tMzIoSlNJbW1lZGlhdGU6OlRhZ1R5cGVO
dW1iZXIpKTsKKyAgICAgICAgcnNoaWZ0MzIoSW1tMzIoSlNJbW1lZGlhdGU6OkludGVnZXJQYXls
b2FkU2hpZnQpLCBkc3QpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0gICAgCisjZW5k
aWYKKworI2lmICFVU0UoSlNWQUxVRTMyXzY0KQorICAgIGlubGluZSBKU0ludGVyZmFjZUpJVDo6
QWRkcmVzcyBKU0ludGVyZmFjZUpJVDo6cGF5bG9hZEZvcih1bnNpZ25lZCBpbmRleCwgUmVnaXN0
ZXJJRCBiYXNlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkZHJlc3NGb3IoaW5kZXgsIGJhc2Up
OworICAgIH0KKyNlbmRpZgorCisgICAgaW5saW5lIEpTSW50ZXJmYWNlSklUOjpBZGRyZXNzIEpT
SW50ZXJmYWNlSklUOjphZGRyZXNzRm9yKHVuc2lnbmVkIGluZGV4LCBSZWdpc3RlcklEIGJhc2Up
CisgICAgeworICAgICAgICByZXR1cm4gQWRkcmVzcyhiYXNlLCAoaW5kZXggKiBzaXplb2YoUmVn
aXN0ZXIpKSk7CisgICAgfQorCit9CisKKyNlbmRpZiAvLyBKU0ludGVyZmFjZUpJVF9oCg==
</data>
<flag name="review"
          id="38330"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>