<?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>108245</bug_id>
          
          <creation_ts>2013-01-29 16:22:08 -0800</creation_ts>
          <short_desc>Removed GGC because it has been disabled for a long time</short_desc>
          <delta_ts>2013-01-29 16:38:12 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>819453</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-01-29 16:22:08 -0800</bug_when>
    <thetext>Removed GGC because it has been disabled for a long time</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819457</commentid>
    <comment_count>1</comment_count>
      <attachid>185334</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-01-29 16:22:39 -0800</bug_when>
    <thetext>Created attachment 185334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819478</commentid>
    <comment_count>2</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-01-29 16:38:12 -0800</bug_when>
    <thetext>Committed r141179: &lt;http://trac.webkit.org/changeset/141179&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185334</attachid>
            <date>2013-01-29 16:22:39 -0800</date>
            <delta_ts>2013-01-29 16:28:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108245-20130129161925.patch</filename>
            <type>text/plain</type>
            <size>37853</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQxMTc2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBA
CisyMDEzLTAxLTI5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBHR0MgYmVjYXVzZSBpdCBoYXMgYmVlbiBkaXNhYmxlZCBmb3IgYSBsb25nIHRp
bWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODI0
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkZmcvREZHUmVwYXRjaC5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6ZW1pdFB1dFJlcGxhY2VTdHViKToKKyAgICAgICAgKEpTQzo6REZH
OjplbWl0UHV0VHJhbnNpdGlvblN0dWIpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJ
VC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OndyaXRlQmFycmllcik6
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgIChTcGVjdWxhdGl2
ZUpJVCk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZH
U3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUpOgorICAgICAgICAqIGhlYXAvQ2FyZFNldC5oOiBSZW1vdmVkLgorICAgICAgICAq
IGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtSb290cyk6CisgICAgICAg
IChKU0M6OkhlYXA6OmNvbGxlY3QpOgorICAgICAgICAqIGhlYXAvSGVhcC5oOgorICAgICAgICAo
SGVhcCk6CisgICAgICAgIChKU0M6OkhlYXA6OnNob3VsZENvbGxlY3QpOgorICAgICAgICAoSlND
OjpIZWFwOjppc1dyaXRlQmFycmllckVuYWJsZWQpOgorICAgICAgICAoSlNDKToKKyAgICAgICAg
KEpTQzo6SGVhcDo6d3JpdGVCYXJyaWVyKToKKyAgICAgICAgKiBoZWFwL01hcmtlZEJsb2NrLmg6
CisgICAgICAgIChNYXJrZWRCbG9jayk6CisgICAgICAgIChKU0MpOgorICAgICAgICAqIGhlYXAv
TWFya2VkU3BhY2UuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRXcml0ZUJhcnJpZXIpOgorCiAy
MDEzLTAxLTI5ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAg
ICAgICAgT2JqZWN0aXZlLUMgQVBJOiBKU09iakNDbGFzc0luZm8gY3JlYXRlcyByZWZlcmVuY2Ug
Y3ljbGUgd2l0aCBKU0NvbnRleHQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCShyZXZpc2lvbiAxNDEwNDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjgxLDcgKzI4MSw2IEBAIGph
dmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cHlWaXNpdG9ySW5saW5lcy5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3B5Vmlz
aXRvci5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcHlXb3JrTGlzdC5oIFwK
LQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9DYXJkU2V0LmggXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvQ29uc2VydmF0aXZlUm9vdHMuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvREZHQ29kZUJsb2Nrcy5jcHAgXApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qCShyZXZpc2lvbiAxNDEwNDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC00MDAsNyArNDAwLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRmZ1xERkdP
U1JFbnRyeS5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGRpc2Fzc2VtYmxlclxE
aXNhc3NlbWJsZXIuaCIgLz4NCiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxoZWFwXEJsb2Nr
QWxsb2NhdG9yLmgiIC8+DQotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDYXJkU2V0
LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb25zZXJ2YXRpdmVSb290
cy5oIiAvPg0KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcQ29waWVkQWxsb2NhdG9y
LmgiIC8+DQogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb3BpZWRCbG9jay5oIiAv
Pg0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qLmZp
bHRlcnMJKHJldmlzaW9uIDE0MTA0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBj
b3B5KQpAQCAtMTAxOSw5ICsxMDE5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhl
YXBcQmxvY2tBbGxvY2F0b3IuaCI+DQogICAgICAgPEZpbHRlcj5oZWFwPC9GaWx0ZXI+DQogICAg
IDwvQ2xJbmNsdWRlPg0KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGhlYXBcQ2FyZFNldC5o
Ij4NCi0gICAgICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4NCi0gICAgPC9DbEluY2x1ZGU+DQogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caGVhcFxDb25zZXJ2YXRpdmVSb290cy5oIj4NCiAgICAg
ICA8RmlsdGVyPmhlYXA8L0ZpbHRlcj4NCiAgICAgPC9DbEluY2x1ZGU+DQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0MTA1MCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC02NDksNyArNjQ5LDYgQEAKIAkJQTc0ODJCOTQxMTY3MTE0NzAwM0IwNzEyIC8q
IEpTV2Vha09iamVjdE1hcFJlZlByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0ODJCN0ExMTY2Q0RFQTAwM0IwNzEyIC8qIEpTV2Vha09i
amVjdE1hcFJlZlByaXZhdGUuY3BwICovOyB9OwogCQlBNzQ4MkU5MzExNkE3Q0FEMDAzQjA3MTIg
LyogSlNXZWFrT2JqZWN0TWFwUmVmSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NDgyRTM3MTE2QTY5N0IwMDNCMDcxMiAvKiBKU1dlYWtP
YmplY3RNYXBSZWZJbnRlcm5hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUE3NERFMUQwMTIwQjg3NTYwMEQ0MEQ1QiAvKiBBUk12N0Fzc2VtYmxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzRE
RTFDQjEyMEI4NkQ2MDBENDBENUIgLyogQVJNdjdBc3NlbWJsZXIuY3BwICovOyB9OwotCQlBNzUy
MUUxMzE0MjkxNjlBMDAzQzhEMEMgLyogQ2FyZFNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1MjFFMTIxNDI5MTY5QTAwM0M4RDBDIC8qIENhcmRT
ZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
NzU3MDZERTExOEEyQkNGMDA1N0Y4OEYgLyogSklUQXJpdGhtZXRpYzMyXzY0LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NTcwNkREMTE4QTJCQ0Yw
MDU3Rjg4RiAvKiBKSVRBcml0aG1ldGljMzJfNjQuY3BwICovOyB9OwogCQlBNzY2QjQ0RjBFRThE
Q0QxMDA5NTE4Q0EgLyogRXhlY3V0YWJsZUFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNDhEQjUwRUU3NENGQzAwRENCREI2IC8qIEV4
ZWN1dGFibGVBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlBNzZDNTE3NjExODI3NDhEMDA3MTVCMDUgLyogSlNJbnRlcmZhY2VKSVQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NkM1MTc0
MTE4Mjc0OEQwMDcxNUIwNSAvKiBKU0ludGVyZmFjZUpJVC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTMzLDcgKzE1MzIsNiBAQAogCQlBNzQ4
MkI3QTExNjZDREVBMDAzQjA3MTIgLyogSlNXZWFrT2JqZWN0TWFwUmVmUHJpdmF0ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYWtPYmplY3RNYXBSZWZQcml2
YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc0ODJFMzcxMTZBNjk3QjAw
M0IwNzEyIC8qIEpTV2Vha09iamVjdE1hcFJlZkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTV2Vha09iamVjdE1hcFJlZkludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3NERFMUNCMTIwQjg2RDYwMEQ0MEQ1QiAvKiBBUk12N0Fzc2Vt
Ymxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUk12N0Fzc2Vt
Ymxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUE3NTIxRTEyMTQyOTE2OUEw
MDNDOEQwQyAvKiBDYXJkU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENh
cmRTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1NzA2REQxMThBMkJDRjAw
NTdGODhGIC8qIEpJVEFyaXRobWV0aWMzMl82NC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKSVRBcml0aG1ldGljMzJfNjQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNzY3RkY5RjE0RjQ1MDI5MDA3ODkwNTkgLyogSlNDVHlwZWRBcnJheVN0dWJz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1R5cGVkQXJyYXlTdHVicy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzZDNTE3NDExODI3NDhEMDA3MTVCMDUg
LyogSlNJbnRlcmZhY2VKSVQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJ
bnRlcmZhY2VKSVQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwMTIsNyArMjAx
MCw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxNDgxNkUxOTE1NENDNTZDMDBCODA1NEMgLyog
QmxvY2tBbGxvY2F0b3IuY3BwICovLAogCQkJCTE0ODE2RTFBMTU0Q0M1NkMwMEI4MDU0QyAvKiBC
bG9ja0FsbG9jYXRvci5oICovLAotCQkJCUE3NTIxRTEyMTQyOTE2OUEwMDNDOEQwQyAvKiBDYXJk
U2V0LmggKi8sCiAJCQkJMTQ2QjE0REIxMkVCNUIxMjAwMUJFQzFCIC8qIENvbnNlcnZhdGl2ZVJv
b3RzLmNwcCAqLywKIAkJCQkxNDlEQUFGMjEyRUI1NTlEMDA4M0IxMkIgLyogQ29uc2VydmF0aXZl
Um9vdHMuaCAqLywKIAkJCQlDMkVBRDJGQjE0RjAyNDk4MDBBNEIxNTkgLyogQ29waWVkQWxsb2Nh
dG9yLmggKi8sCkBAIC0yODgxLDcgKzI4NzgsNiBAQAogCQkJCTBGMEI4M0IxMTRCQ0Y3MTgwMDg4
NUI0RiAvKiBDYWxsTGlua0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOTMzMjlFMTRDQTdE
QzUwMDg1RjNDNiAvKiBDYWxsTGlua1N0YXR1cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYwQjgz
QjkxNEJDRjk1RjAwODg1QjRGIC8qIENhbGxSZXR1cm5PZmZzZXRUb0J5dGVjb2RlT2Zmc2V0Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBNzUyMUUxMzE0MjkxNjlBMDAzQzhEMEMgLyogQ2FyZFNldC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2QUFBRTUwRTFGNDI2NTAwQUQ4N0Q4IC8qIENsYXNzSW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3M0Q3QUYxNjVBMTQzMDAwQUNBQjcxIC8qIENsb3N1
cmVDYWxsU3R1YlJvdXRpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk2OUEwNzk3MEVEMUQzQUUw
MEYxRjY4MSAvKiBDb2RlQmxvY2suaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdSZXBhdGNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCShyZXZpc2lvbiAxNDEwNTApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NjQs
NyArNjY0LDcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFJlcGxhY2VTdHViKAogICAgIEdQUlJlZyB2
YWx1ZUdQUiA9IHN0YXRpY19jYXN0PEdQUlJlZz4oc3R1YkluZm8ucGF0Y2guZGZnLnZhbHVlR1BS
KTsKICAgICBHUFJSZWcgc2NyYXRjaEdQUiA9IFJlZ2lzdGVyU2V0KHN0dWJJbmZvLnBhdGNoLmRm
Zy51c2VkUmVnaXN0ZXJzKS5nZXRGcmVlR1BSKCk7CiAgICAgYm9vbCBuZWVkVG9SZXN0b3JlU2Ny
YXRjaCA9IGZhbHNlOwotI2lmIEVOQUJMRShHR0MpIHx8IEVOQUJMRShXUklURV9CQVJSSUVSX1BS
T0ZJTElORykKKyNpZiBFTkFCTEUoV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCiAgICAgR1BSUmVn
IHNjcmF0Y2hHUFIyOwogICAgIGNvbnN0IGJvb2wgd3JpdGVCYXJyaWVyTmVlZGVkID0gdHJ1ZTsK
ICNlbHNlCkBAIC02ODgsNyArNjg4LDcgQEAgc3RhdGljIHZvaWQgZW1pdFB1dFJlcGxhY2VTdHVi
KAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU0NlbGw6OnN0cnVj
dHVyZU9mZnNldCgpKSwKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlRydXN0ZWRJbW1QdHIoc3Ry
dWN0dXJlKSk7CiAgICAgCi0jaWYgRU5BQkxFKEdHQykgfHwgRU5BQkxFKFdSSVRFX0JBUlJJRVJf
UFJPRklMSU5HKQorI2lmIEVOQUJMRShXUklURV9CQVJSSUVSX1BST0ZJTElORykKICNpZiBVU0Uo
SlNWQUxVRTY0KQogICAgIHNjcmF0Y2hHUFIyID0gU3BlY3VsYXRpdmVKSVQ6OnNlbGVjdFNjcmF0
Y2hHUFIoYmFzZUdQUiwgdmFsdWVHUFIsIHNjcmF0Y2hHUFIpOwogI2Vsc2UKQEAgLTc3OSw3ICs3
NzksNyBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJhbnNpdGlvblN0dWIoCiAgICAgCiAgICAgYm9v
bCBuZWVkU2Vjb25kU2NyYXRjaCA9IGZhbHNlOwogICAgIGJvb2wgbmVlZFRoaXJkU2NyYXRjaCA9
IGZhbHNlOwotI2lmIEVOQUJMRShHR0MpIHx8IEVOQUJMRShXUklURV9CQVJSSUVSX1BST0ZJTElO
RykKKyNpZiBFTkFCTEUoV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCiAgICAgbmVlZFNlY29uZFNj
cmF0Y2ggPSB0cnVlOwogI2VuZGlmCiAgICAgaWYgKHN0cnVjdHVyZS0+b3V0T2ZMaW5lQ2FwYWNp
dHkoKSAhPSBvbGRTdHJ1Y3R1cmUtPm91dE9mTGluZUNhcGFjaXR5KCkKQEAgLTgyNiw3ICs4MjYs
NyBAQCBzdGF0aWMgdm9pZCBlbWl0UHV0VHJhbnNpdGlvblN0dWIoCiAgICAgICAgIH0KICAgICB9
CiAKLSNpZiBFTkFCTEUoR0dDKSB8fCBFTkFCTEUoV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCisj
aWYgRU5BQkxFKFdSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQogICAgIEFTU0VSVChuZWVkU2Vjb25k
U2NyYXRjaCk7CiAgICAgQVNTRVJUKHNjcmF0Y2hHUFIyICE9IEludmFsaWRHUFJSZWcpOwogICAg
IC8vIE11c3QgYWx3YXlzIGVtaXQgdGhpcyB3cml0ZSBiYXJyaWVyIGFzIHRoZSBzdHJ1Y3R1cmUg
dHJhbnNpdGlvbiBpdHNlbGYgcmVxdWlyZXMgaXQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkocmV2aXNpb24gMTQx
MDUwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI3Niw3ICs0Mjc2LDcgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICAgICAgbm9kZS5zdHJ1Y3R1cmVUcmFu
c2l0aW9uRGF0YSgpLnByZXZpb3VzU3RydWN0dXJlLAogICAgICAgICAgICAgbm9kZS5zdHJ1Y3R1
cmVUcmFuc2l0aW9uRGF0YSgpLm5ld1N0cnVjdHVyZSk7CiAgICAgICAgIAotI2lmIEVOQUJMRShH
R0MpIHx8IEVOQUJMRShXUklURV9CQVJSSUVSX1BST0ZJTElORykKKyNpZiBFTkFCTEUoV1JJVEVf
QkFSUklFUl9QUk9GSUxJTkcpCiAgICAgICAgIC8vIE11c3QgYWx3YXlzIGVtaXQgdGhpcyB3cml0
ZSBiYXJyaWVyIGFzIHRoZSBzdHJ1Y3R1cmUgdHJhbnNpdGlvbiBpdHNlbGYgcmVxdWlyZXMgaXQK
ICAgICAgICAgd3JpdGVCYXJyaWVyKGJhc2VHUFIsIG5vZGUuc3RydWN0dXJlVHJhbnNpdGlvbkRh
dGEoKS5uZXdTdHJ1Y3R1cmUsIFdyaXRlQmFycmllckZvckdlbmVyaWNBY2Nlc3MpOwogI2VuZGlm
CkBAIC00MzMyLDcgKzQzMzIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUm
IG5vZGUpCiAgICAgfQogICAgICAgICAKICAgICBjYXNlIFB1dEJ5T2Zmc2V0OiB7Ci0jaWYgRU5B
QkxFKEdHQykgfHwgRU5BQkxFKFdSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQorI2lmIEVOQUJMRShX
UklURV9CQVJSSUVSX1BST0ZJTElORykKICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFz
ZSh0aGlzLCBub2RlLmNoaWxkMigpKTsKICNlbmRpZgogICAgICAgICBTdG9yYWdlT3BlcmFuZCBz
dG9yYWdlKHRoaXMsIG5vZGUuY2hpbGQxKCkpOwpAQCAtNDM0Miw3ICs0MzQyLDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlJiBub2RlKQogICAgICAgICBHUFJSZWcgdmFsdWVU
YWdHUFIgPSB2YWx1ZS50YWdHUFIoKTsKICAgICAgICAgR1BSUmVnIHZhbHVlUGF5bG9hZEdQUiA9
IHZhbHVlLnBheWxvYWRHUFIoKTsKICAgICAgICAgCi0jaWYgRU5BQkxFKEdHQykgfHwgRU5BQkxF
KFdSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQorI2lmIEVOQUJMRShXUklURV9CQVJSSUVSX1BST0ZJ
TElORykKICAgICAgICAgd3JpdGVCYXJyaWVyKGJhc2UuZ3ByKCksIHZhbHVlVGFnR1BSLCBub2Rl
LmNoaWxkMygpLCBXcml0ZUJhcnJpZXJGb3JQcm9wZXJ0eUFjY2Vzcyk7CiAjZW5kaWYKIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQu
Y3BwCShyZXZpc2lvbiAxNDEwNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjEzLDcgKzQyMTMsNyBAQCB2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAgICAgICBub2Rl
LnN0cnVjdHVyZVRyYW5zaXRpb25EYXRhKCkucHJldmlvdXNTdHJ1Y3R1cmUsCiAgICAgICAgICAg
ICBub2RlLnN0cnVjdHVyZVRyYW5zaXRpb25EYXRhKCkubmV3U3RydWN0dXJlKTsKICAgICAgICAg
Ci0jaWYgRU5BQkxFKEdHQykgfHwgRU5BQkxFKFdSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQorI2lm
IEVOQUJMRShXUklURV9CQVJSSUVSX1BST0ZJTElORykKICAgICAgICAgLy8gTXVzdCBhbHdheXMg
ZW1pdCB0aGlzIHdyaXRlIGJhcnJpZXIgYXMgdGhlIHN0cnVjdHVyZSB0cmFuc2l0aW9uIGl0c2Vs
ZiByZXF1aXJlcyBpdAogICAgICAgICB3cml0ZUJhcnJpZXIoYmFzZUdQUiwgbm9kZS5zdHJ1Y3R1
cmVUcmFuc2l0aW9uRGF0YSgpLm5ld1N0cnVjdHVyZSwgV3JpdGVCYXJyaWVyRm9yR2VuZXJpY0Fj
Y2Vzcyk7CiAjZW5kaWYKQEAgLTQyNjYsNyArNDI2Niw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUoTm9kZSYgbm9kZSkKICAgICB9CiAgICAgICAgIAogICAgIGNhc2UgUHV0QnlPZmZz
ZXQ6IHsKLSNpZiBFTkFCTEUoR0dDKSB8fCBFTkFCTEUoV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcp
CisjaWYgRU5BQkxFKFdSSVRFX0JBUlJJRVJfUFJPRklMSU5HKQogICAgICAgICBTcGVjdWxhdGVD
ZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUuY2hpbGQyKCkpOwogI2VuZGlmCiAgICAgICAgIFN0
b3JhZ2VPcGVyYW5kIHN0b3JhZ2UodGhpcywgbm9kZS5jaGlsZDEoKSk7CkBAIC00Mjc1LDcgKzQy
NzUsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUmIG5vZGUpCiAgICAgICAg
IEdQUlJlZyBzdG9yYWdlR1BSID0gc3RvcmFnZS5ncHIoKTsKICAgICAgICAgR1BSUmVnIHZhbHVl
R1BSID0gdmFsdWUuZ3ByKCk7CiAgICAgICAgIAotI2lmIEVOQUJMRShHR0MpIHx8IEVOQUJMRShX
UklURV9CQVJSSUVSX1BST0ZJTElORykKKyNpZiBFTkFCTEUoV1JJVEVfQkFSUklFUl9QUk9GSUxJ
TkcpCiAgICAgICAgIHdyaXRlQmFycmllcihiYXNlLmdwcigpLCB2YWx1ZS5ncHIoKSwgbm9kZS5j
aGlsZDMoKSwgV3JpdGVCYXJyaWVyRm9yUHJvcGVydHlBY2Nlc3MpOwogI2VuZGlmCiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShy
ZXZpc2lvbiAxNDEwNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyNCwzMCArMTAyNCw2IEBAIHZvaWQgU3Bl
Y3VsYXRpdmVKSVQ6OndyaXRlQmFycmllcihNYWNyb0EKICNpZiBFTkFCTEUoV1JJVEVfQkFSUklF
Ul9QUk9GSUxJTkcpCiAgICAgSklUQ29tcGlsZXI6OmVtaXRDb3VudChqaXQsIFdyaXRlQmFycmll
ckNvdW50ZXJzOjpqaXRDb3VudGVyRm9yKHVzZUtpbmQpKTsKICNlbmRpZgotICAgIG1hcmtDZWxs
Q2FyZChqaXQsIG93bmVyLCBzY3JhdGNoMSwgc2NyYXRjaDIpOwotfQotCi12b2lkIFNwZWN1bGF0
aXZlSklUOjptYXJrQ2VsbENhcmQoTWFjcm9Bc3NlbWJsZXImIGppdCwgR1BSUmVnIG93bmVyLCBH
UFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMikKLXsKLSAgICBVTlVTRURfUEFSQU0oaml0
KTsKLSAgICBVTlVTRURfUEFSQU0ob3duZXIpOwotICAgIFVOVVNFRF9QQVJBTShzY3JhdGNoMSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHNjcmF0Y2gyKTsKLSAgICAKLSNpZiBFTkFCTEUoR0dDKQotICAg
IGppdC5tb3ZlKG93bmVyLCBzY3JhdGNoMSk7Ci0gICAgaml0LmFuZFB0cihUcnVzdGVkSW1tMzIo
c3RhdGljX2Nhc3Q8aW50MzJfdD4oTWFya2VkQmxvY2s6OmJsb2NrTWFzaykpLCBzY3JhdGNoMSk7
Ci0gICAgaml0Lm1vdmUob3duZXIsIHNjcmF0Y2gyKTsKLSAgICAvLyBjb25zdW1lIGFkZGl0aW9u
YWwgOCBiaXRzIGFzIHdlJ3JlIHVzaW5nIGFuIGFwcHJveGltYXRlIGZpbHRlcgotICAgIGppdC5y
c2hpZnQzMihUcnVzdGVkSW1tMzIoTWFya2VkQmxvY2s6OmF0b21TaGlmdCArIDgpLCBzY3JhdGNo
Mik7Ci0gICAgaml0LmFuZFB0cihUcnVzdGVkSW1tMzIoTWFya2VkQmxvY2s6OmF0b21NYXNrID4+
IDgpLCBzY3JhdGNoMik7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZmlsdGVyID0gaml0LmJy
YW5jaFRlc3Q4KE1hY3JvQXNzZW1ibGVyOjpaZXJvLCBNYWNyb0Fzc2VtYmxlcjo6QmFzZUluZGV4
KHNjcmF0Y2gxLCBzY3JhdGNoMiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVzT25lLCBNYXJrZWRCbG9j
azo6b2Zmc2V0T2ZNYXJrcygpKSk7Ci0gICAgaml0Lm1vdmUob3duZXIsIHNjcmF0Y2gyKTsKLSAg
ICBqaXQucnNoaWZ0MzIoVHJ1c3RlZEltbTMyKE1hcmtlZEJsb2NrOjpjYXJkU2hpZnQpLCBzY3Jh
dGNoMik7Ci0gICAgaml0LmFuZFB0cihUcnVzdGVkSW1tMzIoTWFya2VkQmxvY2s6OmNhcmRNYXNr
KSwgc2NyYXRjaDIpOwotICAgIGppdC5zdG9yZTgoVHJ1c3RlZEltbTMyKDEpLCBNYWNyb0Fzc2Vt
Ymxlcjo6QmFzZUluZGV4KHNjcmF0Y2gxLCBzY3JhdGNoMiwgTWFjcm9Bc3NlbWJsZXI6OlRpbWVz
T25lLCBNYXJrZWRCbG9jazo6b2Zmc2V0T2ZDYXJkcygpKSk7Ci0gICAgZmlsdGVyLmxpbmsoJmpp
dCk7Ci0jZW5kaWYKIH0KIAogdm9pZCBTcGVjdWxhdGl2ZUpJVDo6d3JpdGVCYXJyaWVyKEdQUlJl
ZyBvd25lckdQUiwgR1BSUmVnIHZhbHVlR1BSLCBFZGdlIHZhbHVlVXNlLCBXcml0ZUJhcnJpZXJV
c2VLaW5kIHVzZUtpbmQsIEdQUlJlZyBzY3JhdGNoMSwgR1BSUmVnIHNjcmF0Y2gyKQpAQCAtMTA2
NCwzMyArMTA0MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OndyaXRlQmFycmllcihHUFJSZWcK
ICNpZiBFTkFCTEUoV1JJVEVfQkFSUklFUl9QUk9GSUxJTkcpCiAgICAgSklUQ29tcGlsZXI6OmVt
aXRDb3VudChtX2ppdCwgV3JpdGVCYXJyaWVyQ291bnRlcnM6OmppdENvdW50ZXJGb3IodXNlS2lu
ZCkpOwogI2VuZGlmCi0KLSNpZiBFTkFCTEUoR0dDKQotICAgIEdQUlRlbXBvcmFyeSB0ZW1wMTsK
LSAgICBHUFJUZW1wb3JhcnkgdGVtcDI7Ci0gICAgaWYgKHNjcmF0Y2gxID09IEludmFsaWRHUFJS
ZWcpIHsKLSAgICAgICAgR1BSVGVtcG9yYXJ5IHNjcmF0Y2hHUFIodGhpcyk7Ci0gICAgICAgIHRl
bXAxLmFkb3B0KHNjcmF0Y2hHUFIpOwotICAgICAgICBzY3JhdGNoMSA9IHRlbXAxLmdwcigpOwot
ICAgIH0KLSAgICBpZiAoc2NyYXRjaDIgPT0gSW52YWxpZEdQUlJlZykgewotICAgICAgICBHUFJU
ZW1wb3Jhcnkgc2NyYXRjaEdQUih0aGlzKTsKLSAgICAgICAgdGVtcDIuYWRvcHQoc2NyYXRjaEdQ
Uik7Ci0gICAgICAgIHNjcmF0Y2gyID0gdGVtcDIuZ3ByKCk7Ci0gICAgfQotICAgIAotICAgIEpJ
VENvbXBpbGVyOjpKdW1wIHJoc05vdENlbGw7Ci0gICAgYm9vbCBoYWRDZWxsQ2hlY2sgPSBmYWxz
ZTsKLSAgICBpZiAoIWlzS25vd25DZWxsKHZhbHVlVXNlLmluZGV4KCkpICYmICFpc0NlbGxTcGVj
dWxhdGlvbihtX2ppdC5nZXRTcGVjdWxhdGlvbih2YWx1ZVVzZS5pbmRleCgpKSkpIHsKLSAgICAg
ICAgaGFkQ2VsbENoZWNrID0gdHJ1ZTsKLSAgICAgICAgcmhzTm90Q2VsbCA9IG1faml0LmJyYW5j
aElmTm90Q2VsbCh2YWx1ZUdQUik7Ci0gICAgfQotCi0gICAgbWFya0NlbGxDYXJkKG1faml0LCBv
d25lckdQUiwgc2NyYXRjaDEsIHNjcmF0Y2gyKTsKLQotICAgIGlmIChoYWRDZWxsQ2hlY2spCi0g
ICAgICAgIHJoc05vdENlbGwubGluaygmbV9qaXQpOwotI2VuZGlmCiB9CiAKIHZvaWQgU3BlY3Vs
YXRpdmVKSVQ6OndyaXRlQmFycmllcihHUFJSZWcgb3duZXJHUFIsIEpTQ2VsbCogdmFsdWUsIFdy
aXRlQmFycmllclVzZUtpbmQgdXNlS2luZCwgR1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRj
aDIpCkBAIC0xMTA3LDIzICsxMDU2LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6d3JpdGVCYXJy
aWVyKEdQUlJlZwogI2lmIEVOQUJMRShXUklURV9CQVJSSUVSX1BST0ZJTElORykKICAgICBKSVRD
b21waWxlcjo6ZW1pdENvdW50KG1faml0LCBXcml0ZUJhcnJpZXJDb3VudGVyczo6aml0Q291bnRl
ckZvcih1c2VLaW5kKSk7CiAjZW5kaWYKLQotI2lmIEVOQUJMRShHR0MpCi0gICAgR1BSVGVtcG9y
YXJ5IHRlbXAxOwotICAgIEdQUlRlbXBvcmFyeSB0ZW1wMjsKLSAgICBpZiAoc2NyYXRjaDEgPT0g
SW52YWxpZEdQUlJlZykgewotICAgICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaEdQUih0aGlzKTsK
LSAgICAgICAgdGVtcDEuYWRvcHQoc2NyYXRjaEdQUik7Ci0gICAgICAgIHNjcmF0Y2gxID0gdGVt
cDEuZ3ByKCk7Ci0gICAgfQotICAgIGlmIChzY3JhdGNoMiA9PSBJbnZhbGlkR1BSUmVnKSB7Ci0g
ICAgICAgIEdQUlRlbXBvcmFyeSBzY3JhdGNoR1BSKHRoaXMpOwotICAgICAgICB0ZW1wMi5hZG9w
dChzY3JhdGNoR1BSKTsKLSAgICAgICAgc2NyYXRjaDIgPSB0ZW1wMi5ncHIoKTsKLSAgICB9Ci0K
LSAgICBtYXJrQ2VsbENhcmQobV9qaXQsIG93bmVyR1BSLCBzY3JhdGNoMSwgc2NyYXRjaDIpOwot
I2VuZGlmCiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OndyaXRlQmFycmllcihKU0NlbGwqIG93
bmVyLCBHUFJSZWcgdmFsdWVHUFIsIEVkZ2UgdmFsdWVVc2UsIFdyaXRlQmFycmllclVzZUtpbmQg
dXNlS2luZCwgR1BSUmVnIHNjcmF0Y2gpCkBAIC0xMTM5LDI5ICsxMDcxLDYgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6d3JpdGVCYXJyaWVyKEpTQ2VsbAogI2lmIEVOQUJMRShXUklURV9CQVJSSUVS
X1BST0ZJTElORykKICAgICBKSVRDb21waWxlcjo6ZW1pdENvdW50KG1faml0LCBXcml0ZUJhcnJp
ZXJDb3VudGVyczo6aml0Q291bnRlckZvcih1c2VLaW5kKSk7CiAjZW5kaWYKLQotI2lmIEVOQUJM
RShHR0MpCi0gICAgSklUQ29tcGlsZXI6Okp1bXAgcmhzTm90Q2VsbDsKLSAgICBib29sIGhhZENl
bGxDaGVjayA9IGZhbHNlOwotICAgIGlmICghaXNLbm93bkNlbGwodmFsdWVVc2UuaW5kZXgoKSkg
JiYgIWlzQ2VsbFNwZWN1bGF0aW9uKG1faml0LmdldFNwZWN1bGF0aW9uKHZhbHVlVXNlLmluZGV4
KCkpKSkgewotICAgICAgICBoYWRDZWxsQ2hlY2sgPSB0cnVlOwotICAgICAgICByaHNOb3RDZWxs
ID0gbV9qaXQuYnJhbmNoSWZOb3RDZWxsKHZhbHVlR1BSKTsKLSAgICB9Ci0gICAgCi0gICAgR1BS
VGVtcG9yYXJ5IHRlbXA7Ci0gICAgaWYgKHNjcmF0Y2ggPT0gSW52YWxpZEdQUlJlZykgewotICAg
ICAgICBHUFJUZW1wb3Jhcnkgc2NyYXRjaEdQUih0aGlzKTsKLSAgICAgICAgdGVtcC5hZG9wdChz
Y3JhdGNoR1BSKTsKLSAgICAgICAgc2NyYXRjaCA9IHRlbXAuZ3ByKCk7Ci0gICAgfQotCi0gICAg
dWludDhfdCogY2FyZEFkZHJlc3MgPSBIZWFwOjphZGRyZXNzT2ZDYXJkRm9yKG93bmVyKTsKLSAg
ICBtX2ppdC5tb3ZlKEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tUHRyKGNhcmRBZGRyZXNzKSwgc2Ny
YXRjaCk7Ci0gICAgbV9qaXQuc3RvcmU4KEpJVENvbXBpbGVyOjpUcnVzdGVkSW1tMzIoMSksIEpJ
VENvbXBpbGVyOjpBZGRyZXNzKHNjcmF0Y2gpKTsKLQotICAgIGlmIChoYWRDZWxsQ2hlY2spCi0g
ICAgICAgIHJoc05vdENlbGwubGluaygmbV9qaXQpOwotI2VuZGlmCiB9CiAKIGJvb2wgU3BlY3Vs
YXRpdmVKSVQ6Om5vblNwZWN1bGF0aXZlQ29tcGFyZShOb2RlJiBub2RlLCBNYWNyb0Fzc2VtYmxl
cjo6UmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBTX0RGR09wZXJhdGlvbl9FSkogaGVscGVyRnVu
Y3Rpb24pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCShyZXZpc2lvbiAxNDEwNTApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklULmgJKHdvcmtpbmcgY29weSkKQEAgLTI5NCw3ICsyOTQsNiBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCi0gICAgc3RhdGljIHZvaWQgbWFy
a0NlbGxDYXJkKE1hY3JvQXNzZW1ibGVyJiwgR1BSUmVnIG93bmVyR1BSLCBHUFJSZWcgc2NyYXRj
aEdQUjEsIEdQUlJlZyBzY3JhdGNoR1BSMik7CiAgICAgc3RhdGljIHZvaWQgd3JpdGVCYXJyaWVy
KE1hY3JvQXNzZW1ibGVyJiwgR1BSUmVnIG93bmVyR1BSLCBHUFJSZWcgc2NyYXRjaEdQUjEsIEdQ
UlJlZyBzY3JhdGNoR1BSMiwgV3JpdGVCYXJyaWVyVXNlS2luZCk7CiAKICAgICB2b2lkIHdyaXRl
QmFycmllcihHUFJSZWcgb3duZXJHUFIsIEdQUlJlZyB2YWx1ZUdQUiwgRWRnZSB2YWx1ZVVzZSwg
V3JpdGVCYXJyaWVyVXNlS2luZCwgR1BSUmVnIHNjcmF0Y2hHUFIxID0gSW52YWxpZEdQUlJlZywg
R1BSUmVnIHNjcmF0Y2hHUFIyID0gSW52YWxpZEdQUlJlZyk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9DYXJkU2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvQ2FyZFNldC5oCShyZXZpc2lvbiAxNDEwNDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9DYXJkU2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsOTEgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgQ2FyZFNldF9oCi0jZGVmaW5lIENhcmRTZXRfaAotCi0jaW5jbHVk
ZSA8c3RkaW50Lmg+Ci0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIEpTQyB7Ci0KLXRlbXBsYXRlIDxzaXplX3QgY2Fy
ZFNpemUsIHNpemVfdCBibG9ja1NpemU+IGNsYXNzIENhcmRTZXQgewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKENhcmRTZXQpOwotCi1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHNpemVfdCBj
YXJkQ291bnQgPSAoYmxvY2tTaXplICsgY2FyZFNpemUgLSAxKSAvIGNhcmRTaXplOwotCi0gICAg
Q2FyZFNldCgpCi0gICAgewotICAgICAgICBtZW1zZXQobV9jYXJkcywgMCwgY2FyZENvdW50KTsK
LSAgICB9Ci0KLSAgICBib29sIGlzQ2FyZE1hcmtlZEZvckF0b20oY29uc3Qgdm9pZCopOwotICAg
IHZvaWQgbWFya0NhcmRGb3JBdG9tKGNvbnN0IHZvaWQqKTsKLSAgICB1aW50OF90JiBjYXJkRm9y
QXRvbShjb25zdCB2b2lkKik7Ci0gICAgYm9vbCBpc0NhcmRNYXJrZWQoc2l6ZV90KTsKLSAgICBi
b29sIHRlc3RBbmRDbGVhcihzaXplX3QpOwotCi1wcml2YXRlOgotICAgIHVpbnQ4X3QgbV9jYXJk
c1tjYXJkQ291bnRdOwotICAgIENPTVBJTEVfQVNTRVJUKCEoY2FyZFNpemUgJiAoY2FyZFNpemUg
LSAxKSksIGNhcmRTZXRfY2FyZFNpemVfaXNfcG93ZXJfb2ZfdHdvKTsKLSAgICBDT01QSUxFX0FT
U0VSVCghKGNhcmRDb3VudCAmIChjYXJkQ291bnQgLSAxKSksIGNhcmRTZXRfY2FyZENvdW50X2lz
X3Bvd2VyX29mX3R3byk7Ci19OwotCi10ZW1wbGF0ZSA8c2l6ZV90IGNhcmRTaXplLCBzaXplX3Qg
YmxvY2tTaXplPiB1aW50OF90JiBDYXJkU2V0PGNhcmRTaXplLCBibG9ja1NpemU+OjpjYXJkRm9y
QXRvbShjb25zdCB2b2lkKiBwdHIpCi17Ci0gICAgQVNTRVJUKHB0ciA+IHRoaXMgJiYgcHRyIDwg
KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgY2FyZENvdW50ICogY2FyZFNpemUpKTsK
LSAgICB1aW50cHRyX3QgY2FyZCA9IChyZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKSAv
IGNhcmRTaXplKSAlIGNhcmRDb3VudDsKLSAgICByZXR1cm4gbV9jYXJkc1tjYXJkXTsKLX0KLQot
dGVtcGxhdGUgPHNpemVfdCBjYXJkU2l6ZSwgc2l6ZV90IGJsb2NrU2l6ZT4gYm9vbCBDYXJkU2V0
PGNhcmRTaXplLCBibG9ja1NpemU+Ojppc0NhcmRNYXJrZWRGb3JBdG9tKGNvbnN0IHZvaWQqIHB0
cikKLXsKLSAgICByZXR1cm4gY2FyZEZvckF0b20ocHRyKTsKLX0KLQotdGVtcGxhdGUgPHNpemVf
dCBjYXJkU2l6ZSwgc2l6ZV90IGJsb2NrU2l6ZT4gdm9pZCBDYXJkU2V0PGNhcmRTaXplLCBibG9j
a1NpemU+OjptYXJrQ2FyZEZvckF0b20oY29uc3Qgdm9pZCogcHRyKQotewotICAgIGNhcmRGb3JB
dG9tKHB0cikgPSAxOwotfQotCi10ZW1wbGF0ZSA8c2l6ZV90IGNhcmRTaXplLCBzaXplX3QgYmxv
Y2tTaXplPiBib29sIENhcmRTZXQ8Y2FyZFNpemUsIGJsb2NrU2l6ZT46OmlzQ2FyZE1hcmtlZChz
aXplX3QgaSkKLXsKLSAgICBBU1NFUlQoaSA8IGNhcmRDb3VudCk7Ci0gICAgcmV0dXJuIG1fY2Fy
ZHNbaV07Ci19Ci0KLXRlbXBsYXRlIDxzaXplX3QgY2FyZFNpemUsIHNpemVfdCBibG9ja1NpemU+
IGJvb2wgQ2FyZFNldDxjYXJkU2l6ZSwgYmxvY2tTaXplPjo6dGVzdEFuZENsZWFyKHNpemVfdCBp
KQotewotICAgIEFTU0VSVChpIDwgY2FyZENvdW50KTsKLSAgICBib29sIHJlc3VsdCA9IG1fY2Fy
ZHNbaV07Ci0gICAgbV9jYXJkc1tpXSA9IDA7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotfQot
Ci0jZW5kaWYKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAx
NDEwNDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDE3LDEyICs0MTcsMTEgQEAgdm9pZCBIZWFwOjpnZXRDb25zZXJ2YXRpdmVSZWdp
c3RlclJvb3RzKAogICAgIH0KIH0KIAotdm9pZCBIZWFwOjptYXJrUm9vdHMoYm9vbCBmdWxsR0Mp
Cit2b2lkIEhlYXA6Om1hcmtSb290cygpCiB7CiAgICAgU2FtcGxpbmdSZWdpb24gc2FtcGxpbmdS
ZWdpb24oIkdhcmJhZ2UgQ29sbGVjdGlvbjogVHJhY2luZyIpOwogCi0gICAgQ09ORF9HQ1BIQVNF
KGZ1bGxHQywgTWFya0Z1bGxSb290cywgTWFya1lvdW5nUm9vdHMpOwotICAgIFVOVVNFRF9QQVJB
TShmdWxsR0MpOworICAgIEdDUEhBU0UoTWFya1Jvb3RzKTsKICAgICBBU1NFUlQoaXNWYWxpZFRo
cmVhZFN0YXRlKG1fZ2xvYmFsRGF0YSkpOwogCiAjaWYgRU5BQkxFKE9CSkVDVF9NQVJLX0xPR0dJ
TkcpCkBAIC00NTYsMTMgKzQ1NSw2IEBAIHZvaWQgSGVhcDo6bWFya1Jvb3RzKGJvb2wgZnVsbEdD
KQogICAgIH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKEdHQykKLSAgICBNYXJrZWRCbG9jazo6RGly
dHlDZWxsVmVjdG9yIGRpcnR5Q2VsbHM7Ci0gICAgaWYgKCFmdWxsR0MpIHsKLSAgICAgICAgR0NQ
SEFTRShHYXRoZXJpbmdEaXJ0eUNlbGxzKTsKLSAgICAgICAgbV9vYmplY3RTcGFjZS5nYXRoZXJE
aXJ0eUNlbGxzKGRpcnR5Q2VsbHMpOwotICAgIH0gZWxzZQotI2VuZGlmCiAgICAgewogICAgICAg
ICBHQ1BIQVNFKGNsZWFyTWFya3MpOwogICAgICAgICBtX29iamVjdFNwYWNlLmNsZWFyTWFya3Mo
KTsKQEAgLTQ3NSwxNyArNDY3LDYgQEAgdm9pZCBIZWFwOjptYXJrUm9vdHMoYm9vbCBmdWxsR0Mp
CiAKICAgICB7CiAgICAgICAgIFBhcmFsbGVsTW9kZUVuYWJsZXIgZW5hYmxlcih2aXNpdG9yKTsK
LSNpZiBFTkFCTEUoR0dDKQotICAgICAgICB7Ci0gICAgICAgICAgICBzaXplX3QgZGlydHlDZWxs
Q291bnQgPSBkaXJ0eUNlbGxzLnNpemUoKTsKLSAgICAgICAgICAgIEdDUEhBU0UoVmlzaXREaXJ0
eUNlbGxzKTsKLSAgICAgICAgICAgIEdDQ09VTlRFUihEaXJ0eUNlbGxDb3VudCwgZGlydHlDZWxs
Q291bnQpOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBkaXJ0eUNlbGxDb3Vu
dDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgaGVhcFJvb3RWaXNpdG9yLnZpc2l0Q2hpbGRyZW4o
ZGlydHlDZWxsc1tpXSk7Ci0gICAgICAgICAgICAgICAgdmlzaXRvci5kb25hdGVBbmREcmFpbigp
OwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0jZW5kaWYKIAogICAgICAgICBpZiAobV9nbG9i
YWxEYXRhLT5jb2RlQmxvY2tzQmVpbmdDb21waWxlZC5zaXplKCkpIHsKICAgICAgICAgICAgIEdD
UEhBU0UoVmlzaXRBY3RpdmVDb2RlQmxvY2spOwpAQCAtNzMyLDE5ICs3MTMsMTIgQEAgdm9pZCBI
ZWFwOjpjb2xsZWN0KFN3ZWVwVG9nZ2xlIHN3ZWVwVG9nZwogICAgICAgICBtX2xhc3RDb2RlRGlz
Y2FyZFRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CiAgICAgfQogCi0jaWYgRU5BQkxFKEdHQykK
LSAgICBib29sIGZ1bGxHQyA9IHN3ZWVwVG9nZ2xlID09IERvU3dlZXA7Ci0gICAgaWYgKCFmdWxs
R0MpCi0gICAgICAgIGZ1bGxHQyA9IChjYXBhY2l0eSgpID4gNCAqIG1fc2l6ZUFmdGVyTGFzdENv
bGxlY3QpOyAgCi0jZWxzZQotICAgIGJvb2wgZnVsbEdDID0gdHJ1ZTsKLSNlbmRpZgogICAgIHsK
ICAgICAgICAgR0NQSEFTRShDYW5vbmljYWxpemUpOwogICAgICAgICBtX29iamVjdFNwYWNlLmNh
bm9uaWNhbGl6ZUNlbGxMaXZlbmVzc0RhdGEoKTsKICAgICB9CiAKLSAgICBtYXJrUm9vdHMoZnVs
bEdDKTsKKyAgICBtYXJrUm9vdHMoKTsKICAgICAKICAgICB7CiAgICAgICAgIEdDUEhBU0UoUmVh
cGluZ1dlYWtIYW5kbGVzKTsKQEAgLTc5NSwxNSArNzY5LDE0IEBAIHZvaWQgSGVhcDo6Y29sbGVj
dChTd2VlcFRvZ2dsZSBzd2VlcFRvZ2cKICAgICBpZiAoT3B0aW9uczo6Z2NNYXhIZWFwU2l6ZSgp
ICYmIGN1cnJlbnRIZWFwU2l6ZSA+IE9wdGlvbnM6OmdjTWF4SGVhcFNpemUoKSkKICAgICAgICAg
SGVhcFN0YXRpc3RpY3M6OmV4aXRXaXRoRmFpbHVyZSgpOwogCi0gICAgaWYgKGZ1bGxHQykgewot
ICAgICAgICBtX3NpemVBZnRlckxhc3RDb2xsZWN0ID0gY3VycmVudEhlYXBTaXplOworICAgIG1f
c2l6ZUFmdGVyTGFzdENvbGxlY3QgPSBjdXJyZW50SGVhcFNpemU7CisKKyAgICAvLyBUbyBhdm9p
ZCBwYXRob2xvZ2ljYWwgR0MgY2h1cm4gaW4gdmVyeSBzbWFsbCBhbmQgdmVyeSBsYXJnZSBoZWFw
cywgd2Ugc2V0CisgICAgLy8gdGhlIG5ldyBhbGxvY2F0aW9uIGxpbWl0IGJhc2VkIG9uIHRoZSBj
dXJyZW50IHNpemUgb2YgdGhlIGhlYXAsIHdpdGggYQorICAgIC8vIGZpeGVkIG1pbmltdW0uCisg
ICAgc2l6ZV90IG1heEhlYXBTaXplID0gbWF4KG1pbkhlYXBTaXplKG1faGVhcFR5cGUsIG1fcmFt
U2l6ZSksIHByb3BvcnRpb25hbEhlYXBTaXplKGN1cnJlbnRIZWFwU2l6ZSwgbV9yYW1TaXplKSk7
CisgICAgbV9ieXRlc0FsbG9jYXRlZExpbWl0ID0gbWF4SGVhcFNpemUgLSBjdXJyZW50SGVhcFNp
emU7CiAKLSAgICAgICAgLy8gVG8gYXZvaWQgcGF0aG9sb2dpY2FsIEdDIGNodXJuIGluIHZlcnkg
c21hbGwgYW5kIHZlcnkgbGFyZ2UgaGVhcHMsIHdlIHNldAotICAgICAgICAvLyB0aGUgbmV3IGFs
bG9jYXRpb24gbGltaXQgYmFzZWQgb24gdGhlIGN1cnJlbnQgc2l6ZSBvZiB0aGUgaGVhcCwgd2l0
aCBhCi0gICAgICAgIC8vIGZpeGVkIG1pbmltdW0uCi0gICAgICAgIHNpemVfdCBtYXhIZWFwU2l6
ZSA9IG1heChtaW5IZWFwU2l6ZShtX2hlYXBUeXBlLCBtX3JhbVNpemUpLCBwcm9wb3J0aW9uYWxI
ZWFwU2l6ZShjdXJyZW50SGVhcFNpemUsIG1fcmFtU2l6ZSkpOwotICAgICAgICBtX2J5dGVzQWxs
b2NhdGVkTGltaXQgPSBtYXhIZWFwU2l6ZSAtIGN1cnJlbnRIZWFwU2l6ZTsKLSAgICB9CiAgICAg
bV9ieXRlc0FsbG9jYXRlZCA9IDA7CiAgICAgZG91YmxlIGxhc3RHQ0VuZFRpbWUgPSBXVEY6OmN1
cnJlbnRUaW1lKCk7CiAgICAgbV9sYXN0R0NMZW5ndGggPSBsYXN0R0NFbmRUaW1lIC0gbGFzdEdD
U3RhcnRUaW1lOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMTQx
MDQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDksNyArMjA5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEpTX0VYUE9SVF9Q
UklWQVRFIGJvb2wgaXNWYWxpZEFsbG9jYXRpb24oc2l6ZV90KTsKICAgICAgICAgSlNfRVhQT1JU
X1BSSVZBVEUgdm9pZCByZXBvcnRFeHRyYU1lbW9yeUNvc3RTbG93Q2FzZShzaXplX3QpOwogCi0g
ICAgICAgIHZvaWQgbWFya1Jvb3RzKGJvb2wgZnVsbEdDKTsKKyAgICAgICAgdm9pZCBtYXJrUm9v
dHMoKTsKICAgICAgICAgdm9pZCBtYXJrUHJvdGVjdGVkT2JqZWN0cyhIZWFwUm9vdFZpc2l0b3Im
KTsKICAgICAgICAgdm9pZCBtYXJrVGVtcFNvcnRWZWN0b3JzKEhlYXBSb290VmlzaXRvciYpOwog
ICAgICAgICB2b2lkIGNvcHlCYWNraW5nU3RvcmVzKCk7CkBAIC0yODYsMTEgKzI4Niw3IEBAIG5h
bWVzcGFjZSBKU0MgewogICAgIHsKICAgICAgICAgaWYgKE9wdGlvbnM6OmdjTWF4SGVhcFNpemUo
KSkKICAgICAgICAgICAgIHJldHVybiBtX2J5dGVzQWxsb2NhdGVkID4gT3B0aW9uczo6Z2NNYXhI
ZWFwU2l6ZSgpICYmIG1faXNTYWZlVG9Db2xsZWN0ICYmIG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9
PSBOb09wZXJhdGlvbjsKLSNpZiBFTkFCTEUoR0dDKQotICAgICAgICByZXR1cm4gbV9vYmplY3RT
cGFjZS5udXJzZXJ5V2F0ZXJNYXJrKCkgPj0gbV9taW5CeXRlc1BlckN5Y2xlICYmIG1faXNTYWZl
VG9Db2xsZWN0ICYmIG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9PSBOb09wZXJhdGlvbjsKLSNlbHNl
CiAgICAgICAgIHJldHVybiBtX2J5dGVzQWxsb2NhdGVkID4gbV9ieXRlc0FsbG9jYXRlZExpbWl0
ICYmIG1faXNTYWZlVG9Db2xsZWN0ICYmIG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9PSBOb09wZXJh
dGlvbjsKLSNlbmRpZgogICAgIH0KIAogICAgIGJvb2wgSGVhcDo6aXNCdXN5KCkKQEAgLTMzMiwz
NyArMzI4LDEzIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgaW5saW5lIGJvb2wgSGVhcDo6aXNX
cml0ZUJhcnJpZXJFbmFibGVkKCkKICAgICB7Ci0jaWYgRU5BQkxFKEdHQykgfHwgRU5BQkxFKFdS
SVRFX0JBUlJJRVJfUFJPRklMSU5HKQorI2lmIEVOQUJMRShXUklURV9CQVJSSUVSX1BST0ZJTElO
RykKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKICAgICB9CiAKLSNpZiBFTkFCTEUoR0dDKQotICAgIGlubGluZSB1aW50OF90KiBIZWFw
OjphZGRyZXNzT2ZDYXJkRm9yKEpTQ2VsbCogY2VsbCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBN
YXJrZWRCbG9jazo6YmxvY2tGb3IoY2VsbCktPmFkZHJlc3NPZkNhcmRGb3IoY2VsbCk7Ci0gICAg
fQotCi0gICAgaW5saW5lIHZvaWQgSGVhcDo6d3JpdGVCYXJyaWVyKGNvbnN0IEpTQ2VsbCogb3du
ZXIsIEpTQ2VsbCopCi0gICAgewotICAgICAgICBXcml0ZUJhcnJpZXJDb3VudGVyczo6Y291bnRX
cml0ZUJhcnJpZXIoKTsKLSAgICAgICAgTWFya2VkQmxvY2sqIGJsb2NrID0gTWFya2VkQmxvY2s6
OmJsb2NrRm9yKG93bmVyKTsKLSAgICAgICAgaWYgKGJsb2NrLT5pc01hcmtlZChvd25lcikpCi0g
ICAgICAgICAgICBibG9jay0+c2V0RGlydHlPYmplY3Qob3duZXIpOwotICAgIH0KLQotICAgIGlu
bGluZSB2b2lkIEhlYXA6OndyaXRlQmFycmllcihjb25zdCBKU0NlbGwqIG93bmVyLCBKU1ZhbHVl
IHZhbHVlKQotICAgIHsKLSAgICAgICAgaWYgKCF2YWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgaWYgKCF2YWx1ZS5pc0NlbGwoKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgd3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZS5hc0NlbGwoKSk7Ci0gICAgfQotI2Vsc2UKLQog
ICAgIGlubGluZSB2b2lkIEhlYXA6OndyaXRlQmFycmllcihjb25zdCBKU0NlbGwqLCBKU0NlbGwq
KQogICAgIHsKICAgICAgICAgV3JpdGVCYXJyaWVyQ291bnRlcnM6OmNvdW50V3JpdGVCYXJyaWVy
KCk7CkBAIC0zNzIsNyArMzQ0LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgewogICAgICAgICBX
cml0ZUJhcnJpZXJDb3VudGVyczo6Y291bnRXcml0ZUJhcnJpZXIoKTsKICAgICB9Ci0jZW5kaWYK
IAogICAgIGlubGluZSB2b2lkIEhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdChzaXplX3QgY29z
dCkKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRCbG9jay5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrLmgJ
KHJldmlzaW9uIDE0MTA0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJs
b2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDcgKzIzLDYgQEAKICNkZWZpbmUgTWFya2VkQmxv
Y2tfaAogCiAjaW5jbHVkZSAiQmxvY2tBbGxvY2F0b3IuaCIKLSNpbmNsdWRlICJDYXJkU2V0Lmgi
CiAjaW5jbHVkZSAiSGVhcEJsb2NrLmgiCiAKICNpbmNsdWRlICJXZWFrU2V0LmgiCkBAIC04MCwx
MCArNzksNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IGF0b21zUGVyQmxvY2sgPSBibG9ja1NpemUgLyBhdG9tU2l6ZTsgLy8gfjAuNCUgb3ZlcmhlYWQK
ICAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBhdG9tTWFzayA9IGF0b21zUGVyQmxvY2sgLSAx
OwotICAgICAgICBzdGF0aWMgY29uc3QgaW50IGNhcmRTaGlmdCA9IDg7IC8vIFRoaXMgaXMgbG9n
MiBvZiBieXRlcyBwZXIgY2FyZC4KLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBieXRlc1Bl
ckNhcmQgPSAxIDw8IGNhcmRTaGlmdDsKLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBjYXJkQ291
bnQgPSBibG9ja1NpemUgLyBieXRlc1BlckNhcmQ7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQg
Y2FyZE1hc2sgPSBjYXJkQ291bnQgLSAxOwogCiAgICAgICAgIHN0cnVjdCBGcmVlQ2VsbCB7CiAg
ICAgICAgICAgICBGcmVlQ2VsbCogbmV4dDsKQEAgLTE2NSwzNCArMTYwLDYgQEAgbmFtZXNwYWNl
IEpTQyB7CiAKICAgICAgICAgYm9vbCBuZWVkc1N3ZWVwaW5nKCk7CiAKLSNpZiBFTkFCTEUoR0dD
KQotICAgICAgICB2b2lkIHNldERpcnR5T2JqZWN0KGNvbnN0IHZvaWQqIGF0b20pCi0gICAgICAg
IHsKLSAgICAgICAgICAgIEFTU0VSVChNYXJrZWRCbG9jazo6YmxvY2tGb3IoYXRvbSkgPT0gdGhp
cyk7Ci0gICAgICAgICAgICBtX2NhcmRzLm1hcmtDYXJkRm9yQXRvbShhdG9tKTsKLSAgICAgICAg
fQotCi0gICAgICAgIHVpbnQ4X3QqIGFkZHJlc3NPZkNhcmRGb3IoY29uc3Qgdm9pZCogYXRvbSkK
LSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKE1hcmtlZEJsb2NrOjpibG9ja0ZvcihhdG9t
KSA9PSB0aGlzKTsKLSAgICAgICAgICAgIHJldHVybiAmbV9jYXJkcy5jYXJkRm9yQXRvbShhdG9t
KTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBpbmxpbmUgc2l6ZV90IG9mZnNldE9mQ2Fy
ZHMoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gT0JKRUNUX09GRlNFVE9GKE1hcmtl
ZEJsb2NrLCBtX2NhcmRzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHN0YXRpYyBpbmxpbmUgc2l6
ZV90IG9mZnNldE9mTWFya3MoKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gT0JKRUNU
X09GRlNFVE9GKE1hcmtlZEJsb2NrLCBtX21hcmtzKTsKLSAgICAgICAgfQotCi0gICAgICAgIHR5
cGVkZWYgVmVjdG9yPEpTQ2VsbCosIDMyPiBEaXJ0eUNlbGxWZWN0b3I7Ci0gICAgICAgIGlubGlu
ZSB2b2lkIGdhdGhlckRpcnR5Q2VsbHMoRGlydHlDZWxsVmVjdG9yJik7Ci0gICAgICAgIHRlbXBs
YXRlIDxpbnQgc2l6ZT4gaW5saW5lIHZvaWQgZ2F0aGVyRGlydHlDZWxsc1dpdGhTaXplKERpcnR5
Q2VsbFZlY3RvciYpOwotI2VuZGlmCi0KICAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIEZ1bmN0
b3I+IHZvaWQgZm9yRWFjaENlbGwoRnVuY3RvciYpOwogICAgICAgICB0ZW1wbGF0ZSA8dHlwZW5h
bWUgRnVuY3Rvcj4gdm9pZCBmb3JFYWNoTGl2ZUNlbGwoRnVuY3RvciYpOwogICAgICAgICB0ZW1w
bGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4gdm9pZCBmb3JFYWNoRGVhZENlbGwoRnVuY3RvciYpOwpA
QCAtMjExLDEwICsxNzgsNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBjYWxsRGVz
dHJ1Y3RvcihKU0NlbGwqKTsKICAgICAgICAgdGVtcGxhdGU8QmxvY2tTdGF0ZSwgU3dlZXBNb2Rl
LCBEZXN0cnVjdG9yVHlwZT4gRnJlZUxpc3Qgc3BlY2lhbGl6ZWRTd2VlcCgpOwogICAgICAgICAK
LSNpZiBFTkFCTEUoR0dDKQotICAgICAgICBDYXJkU2V0PGJ5dGVzUGVyQ2FyZCwgYmxvY2tTaXpl
PiBtX2NhcmRzOwotI2VuZGlmCi0KICAgICAgICAgc2l6ZV90IG1fYXRvbXNQZXJDZWxsOwogICAg
ICAgICBzaXplX3QgbV9lbmRBdG9tOyAvLyBUaGlzIGlzIGEgZnV6enkgZW5kLiBBbHdheXMgdGVz
dCBmb3IgPCBtX2VuZEF0b20uCiAjaWYgRU5BQkxFKFBBUkFMTEVMX0dDKQpAQCAtNDY2LDg3ICs0
MjksNiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgcmV0dXJuIG1fc3RhdGUgPT0gTWFya2Vk
OwogICAgIH0KIAotI2lmIEVOQUJMRShHR0MpCi10ZW1wbGF0ZSA8aW50IF9jZWxsU2l6ZT4gdm9p
ZCBNYXJrZWRCbG9jazo6Z2F0aGVyRGlydHlDZWxsc1dpdGhTaXplKERpcnR5Q2VsbFZlY3RvciYg
ZGlydHlDZWxscykKLXsKLSAgICBpZiAobV9jYXJkcy50ZXN0QW5kQ2xlYXIoMCkpIHsKLSAgICAg
ICAgY2hhciogcHRyID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oJmF0b21zKClbZmlyc3RBdG9t
KCldKTsKLSAgICAgICAgY29uc3QgY2hhciogZW5kID0gcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4o
dGhpcykgKyBieXRlc1BlckNhcmQ7Ci0gICAgICAgIHdoaWxlIChwdHIgPCBlbmQpIHsKLSAgICAg
ICAgICAgIEpTQ2VsbCogY2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4ocHRyKTsKLSAg
ICAgICAgICAgIGlmIChpc01hcmtlZChjZWxsKSkKLSAgICAgICAgICAgICAgICBkaXJ0eUNlbGxz
LmFwcGVuZChjZWxsKTsKLSAgICAgICAgICAgIHB0ciArPSBfY2VsbFNpemU7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgCi0gICAgY29uc3Qgc2l6ZV90IGNlbGxPZmZzZXQgPSBmaXJzdEF0b20oKSAq
IGF0b21TaXplICUgX2NlbGxTaXplOwotICAgIGZvciAoc2l6ZV90IGkgPSAxOyBpIDwgbV9jYXJk
cy5jYXJkQ291bnQ7IGkrKykgewotICAgICAgICBpZiAoIW1fY2FyZHMudGVzdEFuZENsZWFyKGkp
KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGNoYXIqIHB0ciA9IHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KHRoaXMpICsgaSAqIGJ5dGVzUGVyQ2FyZCArIGNlbGxPZmZzZXQ7Ci0gICAg
ICAgIGNoYXIqIGVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgKGkgKyAxKSAq
IGJ5dGVzUGVyQ2FyZDsKLSAgICAgICAgCi0gICAgICAgIHdoaWxlIChwdHIgPCBlbmQpIHsKLSAg
ICAgICAgICAgIEpTQ2VsbCogY2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4ocHRyKTsK
LSAgICAgICAgICAgIGlmIChpc01hcmtlZChjZWxsKSkKLSAgICAgICAgICAgICAgICBkaXJ0eUNl
bGxzLmFwcGVuZChjZWxsKTsKLSAgICAgICAgICAgIHB0ciArPSBfY2VsbFNpemU7Ci0gICAgICAg
IH0KLSAgICB9Ci19Ci0KLXZvaWQgTWFya2VkQmxvY2s6OmdhdGhlckRpcnR5Q2VsbHMoRGlydHlD
ZWxsVmVjdG9yJiBkaXJ0eUNlbGxzKQotewotICAgIENPTVBJTEVfQVNTRVJUKChpbnQpbV9jYXJk
cy5jYXJkQ291bnQgPT0gKGludCljYXJkQ291bnQsIE1hcmtlZEJsb2NrQ2FyZENvdW50c01hdGNo
KTsKLQotICAgIEFTU0VSVChtX3N0YXRlICE9IE5ldyAmJiBtX3N0YXRlICE9IEZyZWVMaXN0ZWQp
OwotICAgIAotICAgIC8vIFRoaXMgaXMgYW4gb3B0aW1pc2F0aW9uIHRvIGF2b2lkIGhhdmluZyB0
byB3YWxrIHRoZSBzZXQgb2YgbWFya2VkCi0gICAgLy8gYmxvY2tzIHR3aWNlIGR1cmluZyBHQy4K
LSAgICBtX3N0YXRlID0gTWFya2VkOwotICAgIAotICAgIGlmIChpc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybjsKLSAgICAKLSAgICBzaXplX3QgY2VsbFNpemUgPSB0aGlzLT5jZWxsU2l6ZSgpOwot
ICAgIGlmIChjZWxsU2l6ZSA9PSAzMikgewotICAgICAgICBnYXRoZXJEaXJ0eUNlbGxzV2l0aFNp
emU8MzI+KGRpcnR5Q2VsbHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChjZWxs
U2l6ZSA9PSA2NCkgewotICAgICAgICBnYXRoZXJEaXJ0eUNlbGxzV2l0aFNpemU8NjQ+KGRpcnR5
Q2VsbHMpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgY29uc3Qgc2l6ZV90IGZpcnN0
Q2VsbE9mZnNldCA9IGZpcnN0QXRvbSgpICogYXRvbVNpemUgJSBjZWxsU2l6ZTsKLSAgICAKLSAg
ICBpZiAobV9jYXJkcy50ZXN0QW5kQ2xlYXIoMCkpIHsKLSAgICAgICAgY2hhciogcHRyID0gcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4odGhpcykgKyBmaXJzdEF0b20oKSAqIGF0b21TaXplOwotICAg
ICAgICBjaGFyKiBlbmQgPSByZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKSArIGJ5dGVzUGVy
Q2FyZDsKLSAgICAgICAgd2hpbGUgKHB0ciA8IGVuZCkgewotICAgICAgICAgICAgSlNDZWxsKiBj
ZWxsID0gcmVpbnRlcnByZXRfY2FzdDxKU0NlbGwqPihwdHIpOwotICAgICAgICAgICAgaWYgKGlz
TWFya2VkKGNlbGwpKQotICAgICAgICAgICAgICAgIGRpcnR5Q2VsbHMuYXBwZW5kKGNlbGwpOwot
ICAgICAgICAgICAgcHRyICs9IGNlbGxTaXplOwotICAgICAgICB9Ci0gICAgfQotICAgIGZvciAo
c2l6ZV90IGkgPSAxOyBpIDwgbV9jYXJkcy5jYXJkQ291bnQ7IGkrKykgewotICAgICAgICBpZiAo
IW1fY2FyZHMudGVzdEFuZENsZWFyKGkpKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IGNoYXIqIHB0ciA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHRoaXMpICsgZmlyc3RDZWxsT2Zm
c2V0ICsgY2VsbFNpemUgKiAoKGkgKiBieXRlc1BlckNhcmQgKyBjZWxsU2l6ZSAtIDEgLSBmaXJz
dENlbGxPZmZzZXQpIC8gY2VsbFNpemUpOwotICAgICAgICBjaGFyKiBlbmQgPSByZWludGVycHJl
dF9jYXN0PGNoYXIqPih0aGlzKSArIHN0ZDo6bWluKChpICsgMSkgKiBieXRlc1BlckNhcmQsIG1f
ZW5kQXRvbSAqIGF0b21TaXplKTsKLSAgICAgICAgCi0gICAgICAgIHdoaWxlIChwdHIgPCBlbmQp
IHsKLSAgICAgICAgICAgIEpTQ2VsbCogY2VsbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SlNDZWxsKj4o
cHRyKTsKLSAgICAgICAgICAgIGlmIChpc01hcmtlZChjZWxsKSkKLSAgICAgICAgICAgICAgICBk
aXJ0eUNlbGxzLmFwcGVuZChjZWxsKTsKLSAgICAgICAgICAgIHB0ciArPSBjZWxsU2l6ZTsKLSAg
ICAgICAgfQotICAgIH0KLX0KLSNlbmRpZgotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogbmFtZXNw
YWNlIFdURiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2Uu
Y3BwCShyZXZpc2lvbiAxNDEwNDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
ZWRTcGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyMywzNSArMjIzLDQgQEAgdm9pZCBNYXJr
ZWRTcGFjZTo6c2hyaW5rKCkKICAgICBmb3JFYWNoQmxvY2soZnJlZU9yU2hyaW5rKTsKIH0KIAot
I2lmIEVOQUJMRShHR0MpCi1jbGFzcyBHYXRoZXJEaXJ0eUNlbGxzIHsKLSAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShHYXRoZXJEaXJ0eUNlbGxzKTsKLXB1YmxpYzoKLSAgICB0eXBlZGVmIHZvaWQq
IFJldHVyblR5cGU7Ci0gICAgCi0gICAgZXhwbGljaXQgR2F0aGVyRGlydHlDZWxscyhNYXJrZWRC
bG9jazo6RGlydHlDZWxsVmVjdG9yKik7Ci0gICAgdm9pZCBvcGVyYXRvcigpKE1hcmtlZEJsb2Nr
Kik7Ci0gICAgUmV0dXJuVHlwZSByZXR1cm5WYWx1ZSgpIHsgcmV0dXJuIDA7IH0KLSAgICAKLXBy
aXZhdGU6Ci0gICAgTWFya2VkQmxvY2s6OkRpcnR5Q2VsbFZlY3RvciogbV9kaXJ0eUNlbGxzOwot
fTsKLQotaW5saW5lIEdhdGhlckRpcnR5Q2VsbHM6OkdhdGhlckRpcnR5Q2VsbHMoTWFya2VkQmxv
Y2s6OkRpcnR5Q2VsbFZlY3RvciogZGlydHlDZWxscykKLSAgICA6IG1fZGlydHlDZWxscyhkaXJ0
eUNlbGxzKQotewotfQotCi1pbmxpbmUgdm9pZCBHYXRoZXJEaXJ0eUNlbGxzOjpvcGVyYXRvcigp
KE1hcmtlZEJsb2NrKiBibG9jaykKLXsKLSAgICBibG9jay0+Z2F0aGVyRGlydHlDZWxscygqbV9k
aXJ0eUNlbGxzKTsKLX0KLQotdm9pZCBNYXJrZWRTcGFjZTo6Z2F0aGVyRGlydHlDZWxscyhNYXJr
ZWRCbG9jazo6RGlydHlDZWxsVmVjdG9yJiBkaXJ0eUNlbGxzKQotewotICAgIEdhdGhlckRpcnR5
Q2VsbHMgZ2F0aGVyRGlydHlDZWxscygmZGlydHlDZWxscyk7Ci0gICAgZm9yRWFjaEJsb2NrKGdh
dGhlckRpcnR5Q2VsbHMpOwotfQotI2VuZGlmCi0KIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAJKHJl
dmlzaW9uIDE0MTA0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlB
Y2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcyLDI2ICsxMjcyLDYgQEAgdm9pZCBKSVQ6
OmVtaXRXcml0ZUJhcnJpZXIoUmVnaXN0ZXJJRCBvdwogI2lmIEVOQUJMRShXUklURV9CQVJSSUVS
X1BST0ZJTElORykKICAgICBlbWl0Q291bnQoV3JpdGVCYXJyaWVyQ291bnRlcnM6OmppdENvdW50
ZXJGb3IodXNlS2luZCkpOwogI2VuZGlmCi0gICAgCi0jaWYgRU5BQkxFKEdHQykKLSAgICBKdW1w
IGZpbHRlckNlbGxzOwotICAgIGlmIChtb2RlID09IFNob3VsZEZpbHRlckltbWVkaWF0ZXMpCi0g
ICAgICAgIGZpbHRlckNlbGxzID0gZW1pdEp1bXBJZk5vdEpTQ2VsbCh2YWx1ZSk7Ci0gICAgbW92
ZShvd25lciwgc2NyYXRjaCk7Ci0gICAgYW5kUHRyKFRydXN0ZWRJbW0zMihzdGF0aWNfY2FzdDxp
bnQzMl90PihNYXJrZWRCbG9jazo6YmxvY2tNYXNrKSksIHNjcmF0Y2gpOwotICAgIG1vdmUob3du
ZXIsIHNjcmF0Y2gyKTsKLSAgICAvLyBjb25zdW1lIGFkZGl0aW9uYWwgOCBiaXRzIGFzIHdlJ3Jl
IHVzaW5nIGFuIGFwcHJveGltYXRlIGZpbHRlcgotICAgIHJzaGlmdDMyKFRydXN0ZWRJbW0zMihN
YXJrZWRCbG9jazo6YXRvbVNoaWZ0ICsgOCksIHNjcmF0Y2gyKTsKLSAgICBhbmRQdHIoVHJ1c3Rl
ZEltbTMyKE1hcmtlZEJsb2NrOjphdG9tTWFzayA+PiA4KSwgc2NyYXRjaDIpOwotICAgIEp1bXAg
ZmlsdGVyID0gYnJhbmNoVGVzdDgoWmVybywgQmFzZUluZGV4KHNjcmF0Y2gsIHNjcmF0Y2gyLCBU
aW1lc09uZSwgTWFya2VkQmxvY2s6Om9mZnNldE9mTWFya3MoKSkpOwotICAgIG1vdmUob3duZXIs
IHNjcmF0Y2gyKTsKLSAgICByc2hpZnQzMihUcnVzdGVkSW1tMzIoTWFya2VkQmxvY2s6OmNhcmRT
aGlmdCksIHNjcmF0Y2gyKTsKLSAgICBhbmRQdHIoVHJ1c3RlZEltbTMyKE1hcmtlZEJsb2NrOjpj
YXJkTWFzayksIHNjcmF0Y2gyKTsKLSAgICBzdG9yZTgoVHJ1c3RlZEltbTMyKDEpLCBCYXNlSW5k
ZXgoc2NyYXRjaCwgc2NyYXRjaDIsIFRpbWVzT25lLCBNYXJrZWRCbG9jazo6b2Zmc2V0T2ZDYXJk
cygpKSk7Ci0gICAgZmlsdGVyLmxpbmsodGhpcyk7Ci0gICAgaWYgKG1vZGUgPT0gU2hvdWxkRmls
dGVySW1tZWRpYXRlcykKLSAgICAgICAgZmlsdGVyQ2VsbHMubGluayh0aGlzKTsKLSNlbmRpZgog
fQogCiB2b2lkIEpJVDo6ZW1pdFdyaXRlQmFycmllcihKU0NlbGwqIG93bmVyLCBSZWdpc3RlcklE
IHZhbHVlLCBSZWdpc3RlcklEIHNjcmF0Y2gsIFdyaXRlQmFycmllck1vZGUgbW9kZSwgV3JpdGVC
YXJyaWVyVXNlS2luZCB1c2VLaW5kKQpAQCAtMTMwNSwxNyArMTI4NSw2IEBAIHZvaWQgSklUOjpl
bWl0V3JpdGVCYXJyaWVyKEpTQ2VsbCogb3duZXIKICNpZiBFTkFCTEUoV1JJVEVfQkFSUklFUl9Q
Uk9GSUxJTkcpCiAgICAgZW1pdENvdW50KFdyaXRlQmFycmllckNvdW50ZXJzOjpqaXRDb3VudGVy
Rm9yKHVzZUtpbmQpKTsKICNlbmRpZgotICAgIAotI2lmIEVOQUJMRShHR0MpCi0gICAgSnVtcCBm
aWx0ZXJDZWxsczsKLSAgICBpZiAobW9kZSA9PSBTaG91bGRGaWx0ZXJJbW1lZGlhdGVzKQotICAg
ICAgICBmaWx0ZXJDZWxscyA9IGVtaXRKdW1wSWZOb3RKU0NlbGwodmFsdWUpOwotICAgIHVpbnQ4
X3QqIGNhcmRBZGRyZXNzID0gSGVhcDo6YWRkcmVzc09mQ2FyZEZvcihvd25lcik7Ci0gICAgbW92
ZShUcnVzdGVkSW1tUHRyKGNhcmRBZGRyZXNzKSwgc2NyYXRjaCk7Ci0gICAgc3RvcmU4KFRydXN0
ZWRJbW0zMigxKSwgQWRkcmVzcyhzY3JhdGNoKSk7Ci0gICAgaWYgKG1vZGUgPT0gU2hvdWxkRmls
dGVySW1tZWRpYXRlcykKLSAgICAgICAgZmlsdGVyQ2VsbHMubGluayh0aGlzKTsKLSNlbmRpZgog
fQogCiBKSVQ6Okp1bXAgSklUOjphZGRTdHJ1Y3R1cmVUcmFuc2l0aW9uQ2hlY2soSlNDZWxsKiBv
YmplY3QsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8s
IFJlZ2lzdGVySUQgc2NyYXRjaCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE0MTE3NikKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDEzLTAxLTI5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlZCBHR0MgYmVjYXVzZSBpdCBoYXMgYmVlbiBkaXNhYmxlZCBmb3IgYSBsb25nIHRp
bWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODI0
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyAoT09QUyEpLgorCisgICAgICAgICogRm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9DYXJk
U2V0Lmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisK
IDIwMTMtMDEtMjkgIEVsbGlvdHQgU3ByZWhuICA8ZXNwcmVobkBjaHJvbWl1bS5vcmc+CiAgICAg
ICAgIFJlZmFjdG9yIFNoYWRvd1Jvb3QgZXhjZXB0aW9uIGhhbmRsaW5nCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgyMDkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAvQ2FyZFNldC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAvQ2FyZFNldC5oCShyZXZpc2lvbiAx
NDEwNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9oZWFwL0NhcmRTZXQu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLSNpZm5kZWYgV2ViQ29yZV9GV0RfQ2Fy
ZFNldF9oCi0jZGVmaW5lIFdlYkNvcmVfRldEX0NhcmRTZXRfaAotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0NhcmRTZXQuaD4KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNDEwNDkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBA
IC02MjY3LDcgKzYyNjcsNiBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0
aW9uQnVpbGREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xYTUxWaWV3ZXJK
Uy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xYUGF0aEdyYW1tYXIuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGhlYXBcQWxsb2NhdGlv
blNwYWNlLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVy
c1xoZWFwXENhcmRTZXQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRp
bmdIZWFkZXJzXGhlYXBcSGVhcC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cRm9y
d2FyZGluZ0hlYWRlcnNcaGVhcFxTbG90VmlzaXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cRm9yd2FyZGluZ0hlYWRlcnNcaGVhcFxTdHJvbmdJbmxpbmVzLmgiIC8+CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCShyZXZpc2lvbiAxNDEwNDkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEzODgx
LDkgKzEzODgxLDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFk
ZXJzXGhlYXBcQWxsb2NhdGlvblNwYWNlLmgiPgogICAgICAgPEZpbHRlcj5Gb3J3YXJkaW5nSGVh
ZGVyc1xoZWFwPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxGb3J3YXJkaW5nSGVhZGVyc1xoZWFwXENhcmRTZXQuaCI+Ci0gICAgICA8RmlsdGVy
PkZvcndhcmRpbmdIZWFkZXJzXGhlYXA8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXEZvcndhcmRpbmdIZWFkZXJzXGhlYXBcSGVhcC5oIj4KICAg
ICAgIDxGaWx0ZXI+Rm9yd2FyZGluZ0hlYWRlcnNcaGVhcDwvRmlsdGVyPgogICAgIDwvQ2xJbmNs
dWRlPgo=
</data>
<flag name="review"
          id="204353"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>