<?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>130040</bug_id>
          
          <creation_ts>2014-03-10 14:26:55 -0700</creation_ts>
          <short_desc>Remove ConditionalStore barrier</short_desc>
          <delta_ts>2014-04-29 15:33:37 -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>JavaScriptCore</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>
          
          <blocked>121074</blocked>
    
    <blocked>130066</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>989052</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-10 14:26:55 -0700</bug_when>
    <thetext>ConditionalStoreBarrier was created when barriers were much more expensive. Now that they&apos;re cheap(er), we can get rid of them. This also allows us to get rid of the write barrier logic in emitPutTransitionStub because we always will have executed a write barrier on the base object in the case where we are allocating and storing a new Butterfly into it. Previously, a ConditionalStoreBarrier might or might not have barrier-ed the base object, so we&apos;d have to emit a write barrier in the transition case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989054</commentid>
    <comment_count>1</comment_count>
      <attachid>226334</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-10 14:30:52 -0700</bug_when>
    <thetext>Created attachment 226334
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989057</commentid>
    <comment_count>2</comment_count>
      <attachid>226334</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-03-10 14:36:21 -0700</bug_when>
    <thetext>Comment on attachment 226334
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989069</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-10 15:15:55 -0700</bug_when>
    <thetext>Committed r165407: &lt;http://trac.webkit.org/changeset/165407&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989206</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-10 20:49:00 -0700</bug_when>
    <thetext>Looks like this caused a crash on DYEBench.

http://build.webkit.org/builders/Apple%20MountainLion%20Release%20%28Perf%29/builds/8249
http://build.webkit.org/builders/Apple%20Mavericks%20Release%20%28Perf%29/builds/843

I&apos;ve built r165406 and 165407 locally and only r165407 reproduces the crash quite reliably.  It appears, however, that this crash doesn&apos;t always occur.

While

Tools/Scripts/run-perf-tests PerformanceTests/DoYouEvenBench/Full.html --test-runner-count=4 --reset-results

reproduces the crash quite reliably,

Tools/Scripts/run-perf-tests PerformanceTests/DoYouEvenBench/Full.html --test-runner-count=1 --reset-results

doesn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989234</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-03-10 22:03:13 -0700</bug_when>
    <thetext>Filed the bug 130066 to track the crash.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226334</attachid>
            <date>2014-03-10 14:30:52 -0700</date>
            <delta_ts>2014-03-10 14:36:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130040-20140310142717.patch</filename>
            <type>text/plain</type>
            <size>19044</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY1NDA0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBA
CisyMDE0LTAzLTEwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIENvbmRpdGlvbmFsU3RvcmUgYmFycmllcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMDQwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXIg
d2FzIGNyZWF0ZWQgd2hlbiBiYXJyaWVycyB3ZXJlIG11Y2ggbW9yZSBleHBlbnNpdmUuIE5vdyB0
aGF0IAorICAgICAgICB0aGV5J3JlIGNoZWFwKGVyKSwgd2UgY2FuIGdldCByaWQgb2YgdGhlbS4g
VGhpcyBhbHNvIGFsbG93cyB1cyB0byBnZXQgcmlkIG9mIHRoZSB3cml0ZSAKKyAgICAgICAgYmFy
cmllciBsb2dpYyBpbiBlbWl0UHV0VHJhbnNpdGlvblN0dWIgYmVjYXVzZSB3ZSBhbHdheXMgd2ls
bCBoYXZlIGV4ZWN1dGVkIGEgd3JpdGUgYmFycmllciAKKyAgICAgICAgb24gdGhlIGJhc2Ugb2Jq
ZWN0IGluIHRoZSBjYXNlIHdoZXJlIHdlIGFyZSBhbGxvY2F0aW5nIGFuZCBzdG9yaW5nIGEgbmV3
IEJ1dHRlcmZseSBpbnRvIGl0LiAKKyAgICAgICAgUHJldmlvdXNseSwgYSBDb25kaXRpb25hbFN0
b3JlQmFycmllciBtaWdodCBvciBtaWdodCBub3QgaGF2ZSBiYXJyaWVyLWVkIHRoZSBiYXNlIG9i
amVjdCwgCisgICAgICAgIHNvIHdlJ2QgaGF2ZSB0byBlbWl0IGEgd3JpdGUgYmFycmllciBpbiB0
aGUgdHJhbnNpdGlvbiBjYXNlLgorCisgICAgICAgIFRoaXMgaXMgcGVyZm9ybWFuY2UgbmV1dHJh
bCBvbiB0aGUgYmVuY2htYXJrcyB3ZSB0cmFjay4KKworICAgICAgICAqIGRmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAgICogZGZn
L0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVyaXplKToKKyAgICAg
ICAgKiBkZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6
OkNvbnN0YW50Rm9sZGluZ1BoYXNlOjpmb2xkQ29uc3RhbnRzKToKKyAgICAgICAgKEpTQzo6REZH
OjpDb25zdGFudEZvbGRpbmdQaGFzZTo6ZW1pdFB1dEJ5T2Zmc2V0KToKKyAgICAgICAgKiBkZmcv
REZHRml4dXBQaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBO
b2RlKToKKyAgICAgICAgKEpTQzo6REZHOjpGaXh1cFBoYXNlOjppbnNlcnRTdG9yZUJhcnJpZXIp
OgorICAgICAgICAqIGRmZy9ERkdOb2RlLmg6CisgICAgICAgIChKU0M6OkRGRzo6Tm9kZTo6aXNT
dG9yZUJhcnJpZXIpOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5oOgorICAgICAgICAqIGRm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2U6OnByb3BhZ2F0ZSk6CisgICAgICAgICogZGZnL0RG
R1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpzYWZlVG9FeGVjdXRlKToKKyAg
ICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlU3RvcmVCYXJyaWVyKToKKyAgICAgICAgKiBkZmcvREZHU3Bl
Y3VsYXRpdmVKSVQzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAg
ICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAg
ICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dl
ckRGR1RvTExWTTo6Y29tcGlsZU5vZGUpOgorICAgICAgICAqIGppdC9SZXBhdGNoLmNwcDoKKyAg
ICAgICAgKEpTQzo6ZW1pdFB1dFRyYW5zaXRpb25TdHViKToKKwogMjAxNC0wMy0xMCAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIGpzYyBjb21tYW5kbGluZSBzaG91
bGRuJ3QgaGF2ZSBhICJjb25zb2xlIiBiZWNhdXNlIHRoYXQgY29uZnVzZXMgc29tZSB0ZXN0cyBp
bnRvIHRoaW5raW5nCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCShyZXZpc2lvbiAxNjUzOTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4NDUsMTMgKzE4NDUsNiBAQCBib29sIEFic3RyYWN0SW50
ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgY2FzZSBDaGVja1RpZXJVcEF0UmV0dXJuOgog
ICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXI6IHsKLSAg
ICAgICAgaWYgKCFuZWVkc1R5cGVDaGVjayhub2RlLT5jaGlsZDIoKS5ub2RlKCksIH5TcGVjQ2Vs
bCkpCi0gICAgICAgICAgICBtX3N0YXRlLnNldEZvdW5kQ29uc3RhbnRzKHRydWUpOwotICAgICAg
ICBmaWx0ZXIobm9kZS0+Y2hpbGQxKCksIFNwZWNDZWxsKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotCiAgICAgY2FzZSBTdG9yZUJhcnJpZXI6IHsKICAgICAgICAgZmlsdGVyKG5vZGUtPmNoaWxk
MSgpLCBTcGVjQ2VsbCk7CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDbG9iYmVyaXplLmgJKHJldmlzaW9uIDE2NTM5OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02NTksNyAr
NjU5LDYgQEAgdm9pZCBjbG9iYmVyaXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZQogICAgICAg
ICByZXR1cm47CiAKICAgICBjYXNlIFN0b3JlQmFycmllcjoKLSAgICBjYXNlIENvbmRpdGlvbmFs
U3RvcmVCYXJyaWVyOgogICAgIGNhc2UgU3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjazoKICAgICAg
ICAgcmVhZChCYXJyaWVyU3RhdGUpOwogICAgICAgICB3cml0ZShCYXJyaWVyU3RhdGUpOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRpbmdQaGFzZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb25zdGFudEZvbGRp
bmdQaGFzZS5jcHAJKHJldmlzaW9uIDE2NTM5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTMsMTQg
KzI1Myw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgIGNhc2UgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXI6IHsKLSAgICAgICAg
ICAgICAgICBpZiAoIW1faW50ZXJwcmV0ZXIubmVlZHNUeXBlQ2hlY2sobm9kZS0+Y2hpbGQyKCku
bm9kZSgpLCB+U3BlY0NlbGwpKSB7Ci0gICAgICAgICAgICAgICAgICAgIG5vZGUtPmNvbnZlcnRU
b1BoYW50b20oKTsKLSAgICAgICAgICAgICAgICAgICAgZWxpbWluYXRlZCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCiAg
ICAgICAgICAgICBjYXNlIFRvUHJpbWl0aXZlOiB7CiAgICAgICAgICAgICAgICAgaWYgKG1fc3Rh
dGUuZm9yTm9kZShub2RlLT5jaGlsZDEoKSkubV90eXBlICYgfihTcGVjRnVsbE51bWJlciB8IFNw
ZWNCb29sZWFuIHwgU3BlY1N0cmluZykpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAt
NDcxLDkgKzQ2Myw4IEBAIHByaXZhdGU6CiAKICAgICAgICAgbm9kZS0+Y29udmVydFRvUHV0QnlP
ZmZzZXQobV9ncmFwaC5tX3N0b3JhZ2VBY2Nlc3NEYXRhLnNpemUoKSwgcHJvcGVydHlTdG9yYWdl
KTsKICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0Tm9kZSgKLSAgICAgICAgICAgIGluZGV4
SW5CbG9jaywgU3BlY05vbmUsIENvbmRpdGlvbmFsU3RvcmVCYXJyaWVyLCBvcmlnaW4sIAotICAg
ICAgICAgICAgRWRnZShub2RlLT5jaGlsZDIoKS5ub2RlKCksIEtub3duQ2VsbFVzZSksCi0gICAg
ICAgICAgICBFZGdlKG5vZGUtPmNoaWxkMygpLm5vZGUoKSwgVW50eXBlZFVzZSkpOworICAgICAg
ICAgICAgaW5kZXhJbkJsb2NrLCBTcGVjTm9uZSwgU3RvcmVCYXJyaWVyLCBvcmlnaW4sIAorICAg
ICAgICAgICAgRWRnZShub2RlLT5jaGlsZDIoKS5ub2RlKCksIEtub3duQ2VsbFVzZSkpOwogCiAg
ICAgICAgIFN0b3JhZ2VBY2Nlc3NEYXRhIHN0b3JhZ2VBY2Nlc3NEYXRhOwogICAgICAgICBzdG9y
YWdlQWNjZXNzRGF0YS5vZmZzZXQgPSB2YXJpYW50Lm9mZnNldCgpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAxNjUzOTgpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC01NzksNyArNTc5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNhc2UgQXJyYXk6
OkFyZ3VtZW50czoKICAgICAgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4oY2hpbGQx
KTsKICAgICAgICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPihjaGlsZDIpOwotICAgICAgICAg
ICAgICAgIGluc2VydFN0b3JlQmFycmllcihtX2luZGV4SW5CbG9jaywgY2hpbGQxLCBjaGlsZDMp
OworICAgICAgICAgICAgICAgIGluc2VydFN0b3JlQmFycmllcihtX2luZGV4SW5CbG9jaywgY2hp
bGQxKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAg
ICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KGNoaWxkMSk7CkBAIC02MTcsNyArNjE3
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNhc2Ug
QXJyYXk6OkNvbnRpZ3VvdXM6CiAgICAgICAgICAgICBjYXNlIEFycmF5OjpBcnJheVN0b3JhZ2U6
Ci0gICAgICAgICAgICAgICAgaW5zZXJ0U3RvcmVCYXJyaWVyKG1faW5kZXhJbkJsb2NrLCBub2Rl
LT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgICAgIGluc2VydFN0b3Jl
QmFycmllcihtX2luZGV4SW5CbG9jaywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTgxMCw3ICs4MTAsNyBAQCBwcml2YXRlOgogCiAgICAgICAgIGNhc2UgUHV0Q2xvc3VyZVZhcjog
ewogICAgICAgICAgICAgZml4RWRnZTxLbm93bkNlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAg
ICAgICAgICAgIGluc2VydFN0b3JlQmFycmllcihtX2luZGV4SW5CbG9jaywgbm9kZS0+Y2hpbGQx
KCksIG5vZGUtPmNoaWxkMygpKTsKKyAgICAgICAgICAgIGluc2VydFN0b3JlQmFycmllcihtX2lu
ZGV4SW5CbG9jaywgbm9kZS0+Y2hpbGQxKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KIApAQCAtODU0LDcgKzg1NCw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgUHV0QnlJZEZs
dXNoOgogICAgICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6IHsKICAgICAgICAgICAgIGZpeEVkZ2U8
Q2VsbFVzZT4obm9kZS0+Y2hpbGQxKCkpOwotICAgICAgICAgICAgaW5zZXJ0U3RvcmVCYXJyaWVy
KG1faW5kZXhJbkJsb2NrLCBub2RlLT5jaGlsZDEoKSwgbm9kZS0+Y2hpbGQyKCkpOworICAgICAg
ICAgICAgaW5zZXJ0U3RvcmVCYXJyaWVyKG1faW5kZXhJbkJsb2NrLCBub2RlLT5jaGlsZDEoKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC04OTMsMTMgKzg5MywxMyBAQCBw
cml2YXRlOgogICAgICAgICAgICAgaWYgKCFub2RlLT5jaGlsZDEoKS0+aGFzU3RvcmFnZVJlc3Vs
dCgpKQogICAgICAgICAgICAgICAgIGZpeEVkZ2U8S25vd25DZWxsVXNlPihub2RlLT5jaGlsZDEo
KSk7CiAgICAgICAgICAgICBmaXhFZGdlPEtub3duQ2VsbFVzZT4obm9kZS0+Y2hpbGQyKCkpOwot
ICAgICAgICAgICAgaW5zZXJ0U3RvcmVCYXJyaWVyKG1faW5kZXhJbkJsb2NrLCBub2RlLT5jaGls
ZDIoKSwgbm9kZS0+Y2hpbGQzKCkpOworICAgICAgICAgICAgaW5zZXJ0U3RvcmVCYXJyaWVyKG1f
aW5kZXhJbkJsb2NrLCBub2RlLT5jaGlsZDIoKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgTXVsdGlQdXRCeU9mZnNldDogewogICAg
ICAgICAgICAgZml4RWRnZTxDZWxsVXNlPihub2RlLT5jaGlsZDEoKSk7Ci0gICAgICAgICAgICBp
bnNlcnRTdG9yZUJhcnJpZXIobV9pbmRleEluQmxvY2ssIG5vZGUtPmNoaWxkMSgpLCBub2RlLT5j
aGlsZDIoKSk7CisgICAgICAgICAgICBpbnNlcnRTdG9yZUJhcnJpZXIobV9pbmRleEluQmxvY2ss
IG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAg
ICAgICAKQEAgLTk2Nyw4ICs5NjcsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIG1faW5k
ZXhJbkJsb2NrLCBTcGVjTm9uZSwgV2Vha0pTQ29uc3RhbnQsIG5vZGUtPm9yaWdpbiwgCiAgICAg
ICAgICAgICAgICAgT3BJbmZvKG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5z
ZW1hbnRpYykpKTsKICAgICAgICAgICAgIE5vZGUqIGJhcnJpZXJOb2RlID0gbV9ncmFwaC5hZGRO
b2RlKAotICAgICAgICAgICAgICAgIFNwZWNOb25lLCBDb25kaXRpb25hbFN0b3JlQmFycmllciwg
bV9jdXJyZW50Tm9kZS0+b3JpZ2luLCAKLSAgICAgICAgICAgICAgICBFZGdlKGdsb2JhbE9iamVj
dE5vZGUsIEtub3duQ2VsbFVzZSksIEVkZ2Uobm9kZS0+Y2hpbGQxKCkubm9kZSgpLCBVbnR5cGVk
VXNlKSk7CisgICAgICAgICAgICAgICAgU3BlY05vbmUsIFN0b3JlQmFycmllciwgbV9jdXJyZW50
Tm9kZS0+b3JpZ2luLCAKKyAgICAgICAgICAgICAgICBFZGdlKGdsb2JhbE9iamVjdE5vZGUsIEtu
b3duQ2VsbFVzZSkpOwogICAgICAgICAgICAgbV9pbnNlcnRpb25TZXQuaW5zZXJ0KG1faW5kZXhJ
bkJsb2NrLCBiYXJyaWVyTm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAt
MTA0Miw3ICsxMDQyLDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBFeHRyYWN0T1NSRW50cnlM
b2NhbDoKICAgICAgICAgY2FzZSBMb29wSGludDoKICAgICAgICAgY2FzZSBTdG9yZUJhcnJpZXI6
Ci0gICAgICAgIGNhc2UgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXI6CiAgICAgICAgIGNhc2UgU3Rv
cmVCYXJyaWVyV2l0aE51bGxDaGVjazoKICAgICAgICAgY2FzZSBGdW5jdGlvblJlZW50cnlXYXRj
aHBvaW50OgogICAgICAgICBjYXNlIFR5cGVkQXJyYXlXYXRjaHBvaW50OgpAQCAtMTYxOSwxNSAr
MTYxOCw5IEBAIHByaXZhdGU6CiAgICAgICAgIGVkZ2Uuc2V0VXNlS2luZCh1c2VLaW5kKTsKICAg
ICB9CiAgICAgCi0gICAgdm9pZCBpbnNlcnRTdG9yZUJhcnJpZXIodW5zaWduZWQgaW5kZXhJbkJs
b2NrLCBFZGdlIGNoaWxkMSwgRWRnZSBjaGlsZDIgPSBFZGdlKCkpCisgICAgdm9pZCBpbnNlcnRT
dG9yZUJhcnJpZXIodW5zaWduZWQgaW5kZXhJbkJsb2NrLCBFZGdlIGNoaWxkMSkKICAgICB7Ci0g
ICAgICAgIE5vZGUqIGJhcnJpZXJOb2RlOwotICAgICAgICBpZiAoIWNoaWxkMikKLSAgICAgICAg
ICAgIGJhcnJpZXJOb2RlID0gbV9ncmFwaC5hZGROb2RlKFNwZWNOb25lLCBTdG9yZUJhcnJpZXIs
IG1fY3VycmVudE5vZGUtPm9yaWdpbiwgRWRnZShjaGlsZDEubm9kZSgpLCBjaGlsZDEudXNlS2lu
ZCgpKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgYmFycmllck5vZGUgPSBtX2dyYXBo
LmFkZE5vZGUoU3BlY05vbmUsIENvbmRpdGlvbmFsU3RvcmVCYXJyaWVyLCBtX2N1cnJlbnROb2Rl
LT5vcmlnaW4sIAotICAgICAgICAgICAgICAgIEVkZ2UoY2hpbGQxLm5vZGUoKSwgY2hpbGQxLnVz
ZUtpbmQoKSksIEVkZ2UoY2hpbGQyLm5vZGUoKSwgY2hpbGQyLnVzZUtpbmQoKSkpOwotICAgICAg
ICB9CisgICAgICAgIE5vZGUqIGJhcnJpZXJOb2RlID0gbV9ncmFwaC5hZGROb2RlKFNwZWNOb25l
LCBTdG9yZUJhcnJpZXIsIG1fY3VycmVudE5vZGUtPm9yaWdpbiwgY2hpbGQxKTsKICAgICAgICAg
bV9pbnNlcnRpb25TZXQuaW5zZXJ0KGluZGV4SW5CbG9jaywgYmFycmllck5vZGUpOwogICAgIH0K
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgJKHJldmlzaW9uIDE2NTM5OCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC02NDAsNyArNjQwLDYgQEAgc3RydWN0IE5vZGUgewogICAgIHsKICAgICAgICAgc3dpdGNoIChv
cCgpKSB7CiAgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVyOgotICAgICAgICBjYXNlIENvbmRpdGlv
bmFsU3RvcmVCYXJyaWVyOgogICAgICAgICBjYXNlIFN0b3JlQmFycmllcldpdGhOdWxsQ2hlY2s6
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgZGVmYXVsdDoKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHJldmlzaW9uIDE2NTM5OCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkod29ya2luZyBjb3B5KQpAQCAt
Mjk3LDcgKzI5Nyw2IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNy
byhDaGVja1dhdGNoZG9nVGltZXIsIE5vZGVNdXN0R2VuZXJhdGUpIFwKICAgICAvKiBXcml0ZSBi
YXJyaWVycyAhICovXAogICAgIG1hY3JvKFN0b3JlQmFycmllciwgTm9kZU11c3RHZW5lcmF0ZSkg
XAotICAgIG1hY3JvKENvbmRpdGlvbmFsU3RvcmVCYXJyaWVyLCBOb2RlTXVzdEdlbmVyYXRlKSBc
CiAgICAgbWFjcm8oU3RvcmVCYXJyaWVyV2l0aE51bGxDaGVjaywgTm9kZU11c3RHZW5lcmF0ZSkg
XAogCiAvLyBUaGlzIGVudW0gZ2VuZXJhdGVzIGEgbW9ub3RvbmljYWxseSBpbmNyZWFzaW5nIGlk
IGZvciBhbGwgTm9kZSB0eXBlcywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCShyZXZpc2lv
biAxNjUzOTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9w
YWdhdGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQyLDcgKzU0Miw2IEBAIHByaXZh
dGU6CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAvLyBUaGVzZSBnZXQgaWdub3JlZCBiZWNhdXNl
IHRoZXkgZG9uJ3QgcmV0dXJuIGFueXRoaW5nLgogICAgICAgICBjYXNlIFN0b3JlQmFycmllcjoK
LSAgICAgICAgY2FzZSBDb25kaXRpb25hbFN0b3JlQmFycmllcjoKICAgICAgICAgY2FzZSBTdG9y
ZUJhcnJpZXJXaXRoTnVsbENoZWNrOgogICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAg
ICAgICBjYXNlIFB1dEJ5VmFsOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
YWZlVG9FeGVjdXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTYWZlVG9FeGVjdXRlLmgJKHJldmlzaW9uIDE2NTM5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQsNyArMjQ0
LDYgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0U3RhdGVUeXBlJiBzdAogICAgIGNhc2Ug
SW50NTJUb0RvdWJsZToKICAgICBjYXNlIEludDUyVG9WYWx1ZToKICAgICBjYXNlIFN0b3JlQmFy
cmllcjoKLSAgICBjYXNlIENvbmRpdGlvbmFsU3RvcmVCYXJyaWVyOgogICAgIGNhc2UgU3RvcmVC
YXJyaWVyV2l0aE51bGxDaGVjazoKICAgICBjYXNlIEludmFsaWRhdGlvblBvaW50OgogICAgIGNh
c2UgTm90aWZ5V3JpdGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDE2NTM5OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ2NTAsNyArNDY1MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUo
Tm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFN0b3JlQmFycmllcjoKLSAg
ICBjYXNlIENvbmRpdGlvbmFsU3RvcmVCYXJyaWVyOgogICAgIGNhc2UgU3RvcmVCYXJyaWVyV2l0
aE51bGxDaGVjazogewogICAgICAgICBjb21waWxlU3RvcmVCYXJyaWVyKG5vZGUpOwogICAgICAg
ICBicmVhazsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAkocmV2aXNpb24gMTY1Mzk4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDk2Niw3
ICs0OTY2LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgU3RvcmVCYXJyaWVyOgotICAgIGNhc2UgQ29uZGl0aW9u
YWxTdG9yZUJhcnJpZXI6CiAgICAgY2FzZSBTdG9yZUJhcnJpZXJXaXRoTnVsbENoZWNrOiB7CiAg
ICAgICAgIGNvbXBpbGVTdG9yZUJhcnJpZXIobm9kZSk7CiAgICAgICAgIGJyZWFrOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHJl
dmlzaW9uIDE2NTM5OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDI3LDExICs1NDI3LDYgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6bGlua0JyYW5jaGVzKCkKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVT
dG9yZUJhcnJpZXIoTm9kZSogbm9kZSkKIHsKICAgICBzd2l0Y2ggKG5vZGUtPm9wKCkpIHsKLSAg
ICBjYXNlIENvbmRpdGlvbmFsU3RvcmVCYXJyaWVyOiB7Ci0gICAgICAgIGNvbXBpbGVCYXNlVmFs
dWVTdG9yZUJhcnJpZXIobm9kZS0+Y2hpbGQxKCksIG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotCiAgICAgY2FzZSBTdG9yZUJhcnJpZXI6IHsKICAgICAgICAgU3BlY3Vs
YXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRl
bXBvcmFyeSBzY3JhdGNoMSh0aGlzKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ2FwYWJpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDE2NTM5OCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE2
LDcgKzExNiw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiAKICAg
ICBjYXNlIFZhcmlhYmxlV2F0Y2hwb2ludDoKICAgICBjYXNlIE5vdGlmeVdyaXRlOgogICAgIGNh
c2UgU3RvcmVCYXJyaWVyOgotICAgIGNhc2UgQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXI6CiAgICAg
Y2FzZSBTdG9yZUJhcnJpZXJXaXRoTnVsbENoZWNrOgogICAgIGNhc2UgQ2FsbDoKICAgICBjYXNl
IENvbnN0cnVjdDoKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdU
b0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93
ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxNjUzOTgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTg0LDkgKzU4
NCw2IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVyOgogICAgICAgICAgICAg
Y29tcGlsZVN0b3JlQmFycmllcigpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
Q29uZGl0aW9uYWxTdG9yZUJhcnJpZXI6Ci0gICAgICAgICAgICBjb21waWxlQ29uZGl0aW9uYWxT
dG9yZUJhcnJpZXIoKTsKLSAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN0b3JlQmFy
cmllcldpdGhOdWxsQ2hlY2s6CiAgICAgICAgICAgICBjb21waWxlU3RvcmVCYXJyaWVyV2l0aE51
bGxDaGVjaygpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03MjAsMTMgKzcxNyw2IEBAIHByaXZh
dGU6CiAgICAgICAgIGVtaXRTdG9yZUJhcnJpZXIobG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSk7
CiAgICAgfQogCi0gICAgdm9pZCBjb21waWxlQ29uZGl0aW9uYWxTdG9yZUJhcnJpZXIoKQotICAg
IHsKLSAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dDZWxsKG1fbm9kZS0+Y2hpbGQxKCkpOwotICAg
ICAgICBMVmFsdWUgdmFsdWUgPSBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpOwotICAgICAg
ICBlbWl0U3RvcmVCYXJyaWVyKGJhc2UsIHZhbHVlLCBtX25vZGUtPmNoaWxkMigpKTsKLSAgICB9
Ci0KICAgICB2b2lkIGNvbXBpbGVTdG9yZUJhcnJpZXJXaXRoTnVsbENoZWNrKCkKICAgICB7CiAj
aWYgRU5BQkxFKEdHQykKQEAgLTUzNjUsMjkgKzUzNTUsNiBAQCBwcml2YXRlOgogICAgICAgICBy
ZXR1cm4gbV9vdXQubG9hZDgoYmFzZSwgbV9oZWFwcy5KU0NlbGxfZ2NEYXRhKTsKICAgICB9CiAK
LSAgICB2b2lkIGVtaXRTdG9yZUJhcnJpZXIoTFZhbHVlIGJhc2UsIExWYWx1ZSB2YWx1ZSwgRWRn
ZSB2YWx1ZUVkZ2UpCi0gICAgewotI2lmIEVOQUJMRShHR0MpCi0gICAgICAgIExCYXNpY0Jsb2Nr
IGNvbnRpbnVhdGlvbiA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiU3RvcmUgYmFycmllciBjb250
aW51YXRpb24iKSk7Ci0gICAgICAgIExCYXNpY0Jsb2NrIGlzQ2VsbCA9IEZUTF9ORVdfQkxPQ0so
bV9vdXQsICgiU3RvcmUgYmFycmllciBpcyBjZWxsIGJsb2NrIikpOwotCi0gICAgICAgIGlmICht
X3N0YXRlLmZvck5vZGUodmFsdWVFZGdlLm5vZGUoKSkuY291bGRCZVR5cGUoU3BlY0NlbGwpKQot
ICAgICAgICAgICAgbV9vdXQuYnJhbmNoKGlzTm90Q2VsbCh2YWx1ZSksIHVuc3VyZShjb250aW51
YXRpb24pLCB1bnN1cmUoaXNDZWxsKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fb3V0
Lmp1bXAoaXNDZWxsKTsKLQotICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFw
cGVuZFRvKGlzQ2VsbCwgY29udGludWF0aW9uKTsKLSAgICAgICAgZW1pdFN0b3JlQmFycmllcihi
YXNlKTsKLSAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOwotCi0gICAgICAgIG1fb3V0
LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOwotI2Vsc2UKLSAgICAgICAgVU5VU0VE
X1BBUkFNKGJhc2UpOwotICAgICAgICBVTlVTRURfUEFSQU0odmFsdWUpOwotICAgICAgICBVTlVT
RURfUEFSQU0odmFsdWVFZGdlKTsKLSNlbmRpZgotICAgIH0KLQogICAgIHZvaWQgZW1pdFN0b3Jl
QmFycmllcihMVmFsdWUgYmFzZSkKICAgICB7CiAjaWYgRU5BQkxFKEdHQykKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTY1Mzk4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzczLDY1
ICs3NzMsNiBAQCBzdGF0aWMgVl9KSVRPcGVyYXRpb25fRVNzaUpKSSBhcHByb3ByaWF0CiAgICAg
cmV0dXJuIG9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3RCdWlsZExpc3Q7CiB9CiAKLSNpZiBFTkFC
TEUoR0dDKQotc3RhdGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHN0b3JlVG9Xcml0ZUJhcnJpZXJC
dWZmZXIoQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBjZWxsLCBHUFJSZWcgc2NyYXRjaDEsIEdQ
UlJlZyBzY3JhdGNoMiwgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCi17Ci0g
ICAgQVNTRVJUKHNjcmF0Y2gxICE9IHNjcmF0Y2gyKTsKLSAgICBXcml0ZUJhcnJpZXJCdWZmZXIq
IHdyaXRlQmFycmllckJ1ZmZlciA9ICZqaXQudm0oKS0+aGVhcC53cml0ZUJhcnJpZXJCdWZmZXIo
KTsKLSAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbVB0cih3cml0ZUJhcnJp
ZXJCdWZmZXIpLCBzY3JhdGNoMSk7Ci0gICAgaml0LmxvYWQzMihNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhzY3JhdGNoMSwgV3JpdGVCYXJyaWVyQnVmZmVyOjpjdXJyZW50SW5kZXhPZmZzZXQoKSks
IHNjcmF0Y2gyKTsKLSAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBuZWVkVG9GbHVzaCA9IGppdC5i
cmFuY2gzMihNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBzY3JhdGNoMiwgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3Moc2NyYXRjaDEsIFdyaXRlQmFycmllckJ1ZmZlcjo6Y2FwYWNpdHlPZmZz
ZXQoKSkpOwotCi0gICAgaml0LmFkZDMyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoMSks
IHNjcmF0Y2gyKTsKLSAgICBqaXQuc3RvcmUzMihzY3JhdGNoMiwgTWFjcm9Bc3NlbWJsZXI6OkFk
ZHJlc3Moc2NyYXRjaDEsIFdyaXRlQmFycmllckJ1ZmZlcjo6Y3VycmVudEluZGV4T2Zmc2V0KCkp
KTsKLQotICAgIGppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHNjcmF0Y2gxLCBX
cml0ZUJhcnJpZXJCdWZmZXI6OmJ1ZmZlck9mZnNldCgpKSwgc2NyYXRjaDEpOwotICAgIC8vIFdl
IHVzZSBhbiBvZmZzZXQgb2YgLXNpemVvZih2b2lkKikgYmVjYXVzZSB3ZSBhbHJlYWR5IGFkZGVk
IDEgdG8gc2NyYXRjaDIuCi0gICAgaml0LnN0b3JlUHRyKGNlbGwsIE1hY3JvQXNzZW1ibGVyOjpC
YXNlSW5kZXgoc2NyYXRjaDEsIHNjcmF0Y2gyLCBNYWNyb0Fzc2VtYmxlcjo6U2NhbGVQdHIsIHN0
YXRpY19jYXN0PGludDMyX3Q+KC1zaXplb2Yodm9pZCopKSkpOwotCi0gICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgZG9uZSA9IGppdC5qdW1wKCk7Ci0gICAgbmVlZFRvRmx1c2gubGluaygmaml0KTsK
LQotICAgIFNjcmF0Y2hCdWZmZXIqIHNjcmF0Y2hCdWZmZXIgPSBqaXQudm0oKS0+c2NyYXRjaEJ1
ZmZlckZvclNpemUoYWxsb2NhdG9yLmRlc2lyZWRTY3JhdGNoQnVmZmVyU2l6ZSgpKTsKLSAgICBh
bGxvY2F0b3IucHJlc2VydmVVc2VkUmVnaXN0ZXJzVG9TY3JhdGNoQnVmZmVyKGppdCwgc2NyYXRj
aEJ1ZmZlciwgc2NyYXRjaDEpOwotCi0gICAgdW5zaWduZWQgYnl0ZXNGcm9tQmFzZSA9IGFsbG9j
YXRvci5udW1iZXJPZlJldXNlZFJlZ2lzdGVycygpICogc2l6ZW9mKHZvaWQqKTsKLSAgICB1bnNp
Z25lZCBieXRlc1RvU3VidHJhY3QgPSAwOwotI2lmIENQVShYODYpCi0gICAgYnl0ZXNUb1N1YnRy
YWN0ICs9IDIgKiBzaXplb2Yodm9pZCopOwotICAgIGJ5dGVzRnJvbUJhc2UgKz0gYnl0ZXNUb1N1
YnRyYWN0OwotI2VuZGlmCi0gICAgdW5zaWduZWQgY3VycmVudEFsaWdubWVudCA9IGJ5dGVzRnJv
bUJhc2UgJSBzdGFja0FsaWdubWVudEJ5dGVzKCk7Ci0gICAgYnl0ZXNUb1N1YnRyYWN0ICs9IGN1
cnJlbnRBbGlnbm1lbnQ7Ci0KLSAgICBpZiAoYnl0ZXNUb1N1YnRyYWN0KQotICAgICAgICBqaXQu
c3ViUHRyKE1hY3JvQXNzZW1ibGVyOjpUcnVzdGVkSW1tMzIoYnl0ZXNUb1N1YnRyYWN0KSwgTWFj
cm9Bc3NlbWJsZXI6OnN0YWNrUG9pbnRlclJlZ2lzdGVyKTsgCi0KLSAgICBqaXQuc2V0dXBBcmd1
bWVudHNXaXRoRXhlY1N0YXRlKGNlbGwpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwg
PSBqaXQuY2FsbCgpOwotCi0gICAgaWYgKGJ5dGVzVG9TdWJ0cmFjdCkKLSAgICAgICAgaml0LmFk
ZFB0cihNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZEltbTMyKGJ5dGVzVG9TdWJ0cmFjdCksIE1hY3Jv
QXNzZW1ibGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7Ci0gICAgYWxsb2NhdG9yLnJlc3RvcmVV
c2VkUmVnaXN0ZXJzRnJvbVNjcmF0Y2hCdWZmZXIoaml0LCBzY3JhdGNoQnVmZmVyLCBzY3JhdGNo
MSk7Ci0KLSAgICBkb25lLmxpbmsoJmppdCk7Ci0KLSAgICByZXR1cm4gY2FsbDsKLX0KLQotc3Rh
dGljIE1hY3JvQXNzZW1ibGVyOjpDYWxsIHdyaXRlQmFycmllcihDQ2FsbEhlbHBlcnMmIGppdCwg
R1BSUmVnIG93bmVyLCBHUFJSZWcgc2NyYXRjaDEsIEdQUlJlZyBzY3JhdGNoMiwgU2NyYXRjaFJl
Z2lzdGVyQWxsb2NhdG9yJiBhbGxvY2F0b3IpCi17Ci0gICAgQVNTRVJUKG93bmVyICE9IHNjcmF0
Y2gxKTsKLSAgICBBU1NFUlQob3duZXIgIT0gc2NyYXRjaDIpOwotCi0gICAgTWFjcm9Bc3NlbWJs
ZXI6Okp1bXAgb3duZXJOb3RNYXJrZWRPckFscmVhZHlSZW1lbWJlcmVkID0gaml0LmNoZWNrTWFy
a0J5dGUob3duZXIpOwotICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGwgPSBzdG9yZVRvV3Jp
dGVCYXJyaWVyQnVmZmVyKGppdCwgb3duZXIsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgYWxsb2NhdG9y
KTsKLSAgICBvd25lck5vdE1hcmtlZE9yQWxyZWFkeVJlbWVtYmVyZWQubGluaygmaml0KTsKLQot
ICAgIHJldHVybiBjYWxsOwotfQotI2VuZGlmIC8vIEVOQUJMRShHR0MpCi0KIHN0YXRpYyB2b2lk
IGVtaXRQdXRSZXBsYWNlU3R1YigKICAgICBFeGVjU3RhdGUqIGV4ZWMsCiAgICAgSlNWYWx1ZSwK
QEAgLTEwNTEsMTAgKzk5Miw2IEBAIHN0YXRpYyB2b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigK
ICAgICB9CiAjZW5kaWYKICAgICAKLSNpZiBFTkFCTEUoR0dDKQotICAgIE1hY3JvQXNzZW1ibGVy
OjpDYWxsIHdyaXRlQmFycmllck9wZXJhdGlvbiA9IHdyaXRlQmFycmllcihzdHViSml0LCBiYXNl
R1BSLCBzY3JhdGNoR1BSMSwgc2NyYXRjaEdQUjIsIGFsbG9jYXRvcik7Ci0jZW5kaWYKLSAgICAK
ICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzdWNjZXNzOwogICAgIE1hY3JvQXNzZW1ibGVyOjpK
dW1wIGZhaWx1cmU7CiAgICAgICAgICAgICAKQEAgLTEwODgsOSArMTAyNSw2IEBAIHN0YXRpYyB2
b2lkIGVtaXRQdXRUcmFuc2l0aW9uU3R1YigKICAgICB9CiAgICAgCiAgICAgTGlua0J1ZmZlciBw
YXRjaEJ1ZmZlcigqdm0sICZzdHViSml0LCBleGVjLT5jb2RlQmxvY2soKSk7Ci0jaWYgRU5BQkxF
KEdHQykKLSAgICBwYXRjaEJ1ZmZlci5saW5rKHdyaXRlQmFycmllck9wZXJhdGlvbiwgb3BlcmF0
aW9uRmx1c2hXcml0ZUJhcnJpZXJCdWZmZXIpOwotI2VuZGlmCiAgICAgcGF0Y2hCdWZmZXIubGlu
ayhzdWNjZXNzLCBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24ubGFiZWxBdE9mZnNldChzdHVi
SW5mby5wYXRjaC5kZWx0YUNhbGxUb0RvbmUpKTsKICAgICBpZiAoYWxsb2NhdG9yLmRpZFJldXNl
UmVnaXN0ZXJzKCkpCiAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsoZmFpbHVyZSwgZmFpbHVyZUxh
YmVsKTsK
</data>
<flag name="review"
          id="250567"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>