<?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>126316</bug_id>
          
          <creation_ts>2013-12-30 17:28:56 -0800</creation_ts>
          <short_desc>Stop using ThreadCondition in JSC</short_desc>
          <delta_ts>2013-12-30 19:26:18 -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>NEW</bug_status>
          <resolution></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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>963418</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-30 17:28:56 -0800</bug_when>
    <thetext>Stop using ThreadCondition in JSC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963420</commentid>
    <comment_count>1</comment_count>
      <attachid>220139</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-12-30 17:34:18 -0800</bug_when>
    <thetext>Created attachment 220139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963421</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-30 17:36:40 -0800</bug_when>
    <thetext>Attachment 220139 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source/JavaScriptCore/dfg/DFGWorklist.cpp&apos;, u&apos;Source/JavaScriptCore/dfg/DFGWorklist.h&apos;, u&apos;Source/JavaScriptCore/heap/CopiedSpace.cpp&apos;, u&apos;Source/JavaScriptCore/heap/CopiedSpace.h&apos;, u&apos;Source/JavaScriptCore/heap/CopiedSpaceInlines.h&apos;, u&apos;Source/JavaScriptCore/heap/GCThread.cpp&apos;, u&apos;Source/JavaScriptCore/heap/GCThreadSharedData.cpp&apos;, u&apos;Source/JavaScriptCore/heap/GCThreadSharedData.h&apos;, u&apos;Source/JavaScriptCore/heap/SlotVisitor.cpp&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/JavaScriptCore/heap/GCThreadSharedData.cpp:98:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/heap/GCThreadSharedData.cpp:98:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/heap/GCThreadSharedData.cpp:157:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/heap/CopiedSpace.cpp:237:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/heap/CopiedSpace.cpp:237:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/heap/GCThread.cpp:73:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/heap/GCThread.cpp:79:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/dfg/DFGWorklist.cpp:226:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 8 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963436</commentid>
    <comment_count>3</comment_count>
      <attachid>220139</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-30 19:26:18 -0800</bug_when>
    <thetext>Comment on attachment 220139
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=220139&amp;action=review

&gt; Source/JavaScriptCore/dfg/DFGWorklist.h:77
&gt; -    void dump(const MutexLocker&amp;, PrintStream&amp;) const;
&gt; +    void dump(const std::unique_lock&lt;std::mutex&gt;&amp;, PrintStream&amp;) const;

This should be a guard_lock&lt;&gt; as it makes it impossible get wrong.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220139</attachid>
            <date>2013-12-30 17:34:18 -0800</date>
            <delta_ts>2013-12-30 19:26:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126316-20131230173417.patch</filename>
            <type>text/plain</type>
            <size>21680</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYxMTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA4
YTgxNTQxOTk4YWQ3ZjBlNjVkODdhNDExYTk0NDc5NWJkNzk1OTFkLi5iY2JhZTBjOGQ1OGI3Yzdi
YmRjNTcyYTVkZmMwYmE3ZTk2NTk3ZjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0NSBAQAogMjAxMy0xMi0zMCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgogCisgICAgICAgIFN0b3AgdXNpbmcgVGhyZWFkQ29uZGl0aW9uIGluIEpTQworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MzE2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBkZmcvREZHV29ya2xp
c3QuY3BwOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0Ojp+V29ya2xpc3QpOgorICAgICAg
ICAoSlNDOjpERkc6OldvcmtsaXN0OjplbnF1ZXVlKToKKyAgICAgICAgKEpTQzo6REZHOjpXb3Jr
bGlzdDo6Y29tcGlsYXRpb25TdGF0ZSk6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xpc3Q6Ondh
aXRVbnRpbEFsbFBsYW5zRm9yVk1BcmVSZWFkeSk6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xp
c3Q6OnJlbW92ZUFsbFJlYWR5UGxhbnNGb3JWTSk6CisgICAgICAgIChKU0M6OkRGRzo6V29ya2xp
c3Q6OmNvbXBsZXRlQWxsUmVhZHlQbGFuc0ZvclZNKToKKyAgICAgICAgKEpTQzo6REZHOjpXb3Jr
bGlzdDo6cXVldWVMZW5ndGgpOgorICAgICAgICAoSlNDOjpERkc6OldvcmtsaXN0OjpkdW1wKToK
KyAgICAgICAgKEpTQzo6REZHOjpXb3JrbGlzdDo6cnVuVGhyZWFkKToKKyAgICAgICAgKiBkZmcv
REZHV29ya2xpc3QuaDoKKyAgICAgICAgKiBoZWFwL0NvcGllZFNwYWNlLmNwcDoKKyAgICAgICAg
KEpTQzo6Q29waWVkU3BhY2U6OmRvbmVGaWxsaW5nQmxvY2spOgorICAgICAgICAoSlNDOjpDb3Bp
ZWRTcGFjZTo6ZG9uZUNvcHlpbmcpOgorICAgICAgICAqIGhlYXAvQ29waWVkU3BhY2UuaDoKKyAg
ICAgICAgKiBoZWFwL0NvcGllZFNwYWNlSW5saW5lcy5oOgorICAgICAgICAoSlNDOjpDb3BpZWRT
cGFjZTo6cmVjeWNsZUJvcnJvd2VkQmxvY2spOgorICAgICAgICAoSlNDOjpDb3BpZWRTcGFjZTo6
YWxsb2NhdGVCbG9ja0ZvckNvcHlpbmdQaGFzZSk6CisgICAgICAgICogaGVhcC9HQ1RocmVhZC5j
cHA6CisgICAgICAgIChKU0M6OkdDVGhyZWFkOjp3YWl0Rm9yTmV4dFBoYXNlKToKKyAgICAgICAg
KEpTQzo6R0NUaHJlYWQ6OmdjVGhyZWFkTWFpbik6CisgICAgICAgICogaGVhcC9HQ1RocmVhZFNo
YXJlZERhdGEuY3BwOgorICAgICAgICAoSlNDOjpHQ1RocmVhZFNoYXJlZERhdGE6OkdDVGhyZWFk
U2hhcmVkRGF0YSk6CisgICAgICAgIChKU0M6OkdDVGhyZWFkU2hhcmVkRGF0YTo6fkdDVGhyZWFk
U2hhcmVkRGF0YSk6CisgICAgICAgIChKU0M6OkdDVGhyZWFkU2hhcmVkRGF0YTo6c3RhcnROZXh0
UGhhc2UpOgorICAgICAgICAoSlNDOjpHQ1RocmVhZFNoYXJlZERhdGE6OmVuZEN1cnJlbnRQaGFz
ZSk6CisgICAgICAgIChKU0M6OkdDVGhyZWFkU2hhcmVkRGF0YTo6ZGlkU3RhcnRNYXJraW5nKToK
KyAgICAgICAgKEpTQzo6R0NUaHJlYWRTaGFyZWREYXRhOjpkaWRGaW5pc2hNYXJraW5nKToKKyAg
ICAgICAgKiBoZWFwL0dDVGhyZWFkU2hhcmVkRGF0YS5oOgorICAgICAgICAqIGhlYXAvU2xvdFZp
c2l0b3IuY3BwOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6ZG9uYXRlS25vd25QYXJhbGxl
bCk6CisgICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjpkcmFpbkZyb21TaGFyZWQpOgorCisyMDEz
LTEyLTMwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAg
U3RvcCB1c2luZyBUaHJlYWRDb25kaXRpb24gaW4gQmxvY2tBbGxvY2F0b3IKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjMxMwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmNwcCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCmluZGV4IDNkZjE5YWMxMTEwM2ZhMTRkZjU3
ZDhjMDlkZTg2YWQ5ZmE0MDQ2Y2IuLjFjOWIwNTEzMDAwMjhkYzU5NGFiZjNmMWY0ZTM1YWMwMzc3
ZDg3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xpc3QuY3BwCkBAIC00
MywxMCArNDMsMTAgQEAgV29ya2xpc3Q6OldvcmtsaXN0KCkKIFdvcmtsaXN0Ojp+V29ya2xpc3Qo
KQogewogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgICAg
IHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4PiBsb2NrKG1fbXV0ZXgpOwogICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSBtX3RocmVhZHMuc2l6ZSgpOyBpLS07KQogICAgICAgICAgICAgbV9xdWV1
ZS5hcHBlbmQobnVsbHB0cik7IC8vIFVzZSBudWxsIHBsYW4gdG8gaW5kaWNhdGUgdGhhdCB3ZSB3
YW50IHRoZSB0aHJlYWQgdG8gdGVybWluYXRlLgotICAgICAgICBtX3BsYW5FbnF1ZXVlZC5icm9h
ZGNhc3QoKTsKKyAgICAgICAgbV9wbGFuRW5xdWV1ZWQubm90aWZ5X2FsbCgpOwogICAgIH0KICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSBtX3RocmVhZHMuc2l6ZSgpOyBpLS07KQogICAgICAgICB3YWl0
Rm9yVGhyZWFkQ29tcGxldGlvbihtX3RocmVhZHNbaV0pOwpAQCAtNzAsMjAgKzcwLDIwIEBAIFBh
c3NSZWZQdHI8V29ya2xpc3Q+IFdvcmtsaXN0OjpjcmVhdGUodW5zaWduZWQgbnVtYmVyT2ZUaHJl
YWRzKQogdm9pZCBXb3JrbGlzdDo6ZW5xdWV1ZShQYXNzUmVmUHRyPFBsYW4+IHBhc3NlZFBsYW4p
CiB7CiAgICAgUmVmUHRyPFBsYW4+IHBsYW4gPSBwYXNzZWRQbGFuOwotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2xvY2spOworICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayht
X211dGV4KTsKICAgICBpZiAoT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uUXVldWUoKSkgewot
ICAgICAgICBkdW1wKGxvY2tlciwgV1RGOjpkYXRhRmlsZSgpKTsKKyAgICAgICAgZHVtcChsb2Nr
LCBXVEY6OmRhdGFGaWxlKCkpOwogICAgICAgICBkYXRhTG9nKCI6IEVucXVldWVpbmcgcGxhbiB0
byBvcHRpbWl6ZSAiLCBwbGFuLT5rZXkoKSwgIlxuIik7CiAgICAgfQogICAgIEFTU0VSVChtX3Bs
YW5zLmZpbmQocGxhbi0+a2V5KCkpID09IG1fcGxhbnMuZW5kKCkpOwogICAgIG1fcGxhbnMuYWRk
KHBsYW4tPmtleSgpLCBwbGFuKTsKICAgICBtX3F1ZXVlLmFwcGVuZChwbGFuKTsKLSAgICBtX3Bs
YW5FbnF1ZXVlZC5zaWduYWwoKTsKKyAgICBtX3BsYW5FbnF1ZXVlZC5ub3RpZnlfb25lKCk7CiB9
CiAKIFdvcmtsaXN0OjpTdGF0ZSBXb3JrbGlzdDo6Y29tcGlsYXRpb25TdGF0ZShDb21waWxhdGlv
bktleSBrZXkpCiB7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgc3RkOjps
b2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9tdXRleCk7CiAgICAgUGxhbk1hcDo6aXRlcmF0
b3IgaXRlciA9IG1fcGxhbnMuZmluZChrZXkpOwogICAgIGlmIChpdGVyID09IG1fcGxhbnMuZW5k
KCkpCiAgICAgICAgIHJldHVybiBOb3RLbm93bjsKQEAgLTk5LDEwICs5OSwxMCBAQCB2b2lkIFdv
cmtsaXN0Ojp3YWl0VW50aWxBbGxQbGFuc0ZvclZNQXJlUmVhZHkoVk0mIHZtKQogICAgIC8vIEFm
dGVyIHdlIHJlbGVhc2UgdGhpcyBsb2NrLCB3ZSBrbm93IHRoYXQgYWx0aG91Z2ggb3RoZXIgVk1z
IG1heSBzdGlsbAogICAgIC8vIGJlIGFkZGluZyBwbGFucywgb3VyIFZNIHdpbGwgbm90IGJlLgog
ICAgIAotICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgIHN0ZDo6dW5pcXVlX2xv
Y2s8c3RkOjptdXRleD4gbG9jayhtX211dGV4KTsKICAgICAKICAgICBpZiAoT3B0aW9uczo6dmVy
Ym9zZUNvbXBpbGF0aW9uUXVldWUoKSkgewotICAgICAgICBkdW1wKGxvY2tlciwgV1RGOjpkYXRh
RmlsZSgpKTsKKyAgICAgICAgZHVtcChsb2NrLCBXVEY6OmRhdGFGaWxlKCkpOwogICAgICAgICBk
YXRhTG9nKCI6IFdhaXRpbmcgZm9yIGFsbCBpbiBWTSB0byBjb21wbGV0ZS5cbiIpOwogICAgIH0K
ICAgICAKQEAgLTEyMSwxNCArMTIxLDE0IEBAIHZvaWQgV29ya2xpc3Q6OndhaXRVbnRpbEFsbFBs
YW5zRm9yVk1BcmVSZWFkeShWTSYgdm0pCiAgICAgICAgIGlmIChhbGxBcmVDb21waWxlZCkKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAKLSAgICAgICAgbV9wbGFuQ29tcGlsZWQud2FpdCht
X2xvY2spOworICAgICAgICBtX3BsYW5Db21waWxlZC53YWl0KGxvY2spOwogICAgIH0KIH0KIAog
dm9pZCBXb3JrbGlzdDo6cmVtb3ZlQWxsUmVhZHlQbGFuc0ZvclZNKFZNJiB2bSwgVmVjdG9yPFJl
ZlB0cjxQbGFuPiwgOD4mIG15UmVhZHlQbGFucykKIHsKICAgICBEZWZlckdDIGRlZmVyR0Modm0u
aGVhcCk7Ci0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbG9jayk7CisgICAgc3RkOjpsb2NrX2d1
YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9tdXRleCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBtX3JlYWR5UGxhbnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgUmVmUHRyPFBsYW4+IHBsYW4g
PSBtX3JlYWR5UGxhbnNbaV07CiAgICAgICAgIGlmICgmcGxhbi0+dm0gIT0gJnZtKQpAQCAtMTcz
LDcgKzE3Myw3IEBAIFdvcmtsaXN0OjpTdGF0ZSBXb3JrbGlzdDo6Y29tcGxldGVBbGxSZWFkeVBs
YW5zRm9yVk0oVk0mIHZtLCBDb21waWxhdGlvbktleSByZXF1CiAgICAgfQogICAgIAogICAgIGlm
ICghIXJlcXVlc3RlZEtleSAmJiByZXN1bHRpbmdTdGF0ZSA9PSBOb3RLbm93bikgewotICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0
ZDo6bXV0ZXg+IGxvY2sobV9tdXRleCk7CiAgICAgICAgIGlmIChtX3BsYW5zLmNvbnRhaW5zKHJl
cXVlc3RlZEtleSkpCiAgICAgICAgICAgICByZXN1bHRpbmdTdGF0ZSA9IENvbXBpbGluZzsKICAg
ICB9CkBAIC0xOTAsMTggKzE5MCwyMCBAQCB2b2lkIFdvcmtsaXN0Ojpjb21wbGV0ZUFsbFBsYW5z
Rm9yVk0oVk0mIHZtKQogCiBzaXplX3QgV29ya2xpc3Q6OnF1ZXVlTGVuZ3RoKCkKIHsKLSAgICBN
dXRleExvY2tlciBsb2NrZXIobV9sb2NrKTsKKyAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRl
eD4gbG9jayhtX211dGV4KTsKICAgICByZXR1cm4gbV9xdWV1ZS5zaXplKCk7CiB9CiAKIHZvaWQg
V29ya2xpc3Q6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKLSAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9sb2NrKTsKLSAgICBkdW1wKGxvY2tlciwgb3V0KTsKKyAgICBzdGQ6OnVuaXF1
ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobV9tdXRleCk7CisgICAgZHVtcChsb2NrLCBvdXQpOwog
fQogCi12b2lkIFdvcmtsaXN0OjpkdW1wKGNvbnN0IE11dGV4TG9ja2VyJiwgUHJpbnRTdHJlYW0m
IG91dCkgY29uc3QKK3ZvaWQgV29ya2xpc3Q6OmR1bXAoY29uc3Qgc3RkOjp1bmlxdWVfbG9jazxz
dGQ6Om11dGV4PiYgbG9jaywgUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKIHsKKyAgICBBU1NFUlRf
VU5VU0VEKGxvY2ssIGxvY2sub3duc19sb2NrKCkpOworCiAgICAgb3V0LnByaW50KAogICAgICAg
ICAiV29ya2xpc3QoIiwgUmF3UG9pbnRlcih0aGlzKSwgIilbUXVldWUgTGVuZ3RoID0gIiwgbV9x
dWV1ZS5zaXplKCksCiAgICAgICAgICIsIE1hcCBTaXplID0gIiwgbV9wbGFucy5zaXplKCksICIs
IE51bSBSZWFkeSA9ICIsIG1fcmVhZHlQbGFucy5zaXplKCksCkBAIC0yMjAsOSArMjIyLDggQEAg
dm9pZCBXb3JrbGlzdDo6cnVuVGhyZWFkKCkKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIFJlZlB0
cjxQbGFuPiBwbGFuOwogICAgICAgICB7Ci0gICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIo
bV9sb2NrKTsKLSAgICAgICAgICAgIHdoaWxlIChtX3F1ZXVlLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgICAgICBtX3BsYW5FbnF1ZXVlZC53YWl0KG1fbG9jayk7CisgICAgICAgICAgICBzdGQ6OnVu
aXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+IGxvY2sobV9tdXRleCk7CisgICAgICAgICAgICBtX3BsYW5F
bnF1ZXVlZC53YWl0KGxvY2ssIFt0aGlzXSB7IHJldHVybiAhbV9xdWV1ZS5pc0VtcHR5KCk7IH0p
OwogICAgICAgICAgICAgcGxhbiA9IG1fcXVldWUudGFrZUZpcnN0KCk7CiAgICAgICAgICAgICBp
ZiAocGxhbikKICAgICAgICAgICAgICAgICBtX251bWJlck9mQWN0aXZlVGhyZWFkcysrOwpAQCAt
MjQwLDE3ICsyNDEsMTcgQEAgdm9pZCBXb3JrbGlzdDo6cnVuVGhyZWFkKCkKICAgICAgICAgcGxh
bi0+Y29tcGlsZUluVGhyZWFkKGxvbmdMaXZlZFN0YXRlKTsKICAgICAgICAgCiAgICAgICAgIHsK
LSAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvY2spOworICAgICAgICAgICAgc3Rk
Ojp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1fbXV0ZXgpOwogICAgICAgICAgICAgcGxh
bi0+bm90aWZ5UmVhZHkoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKE9wdGlvbnM6
OnZlcmJvc2VDb21waWxhdGlvblF1ZXVlKCkpIHsKLSAgICAgICAgICAgICAgICBkdW1wKGxvY2tl
ciwgV1RGOjpkYXRhRmlsZSgpKTsKKyAgICAgICAgICAgICAgICBkdW1wKGxvY2ssIFdURjo6ZGF0
YUZpbGUoKSk7CiAgICAgICAgICAgICAgICAgZGF0YUxvZygiOiBDb21waWxlZCAiLCBwbGFuLT5r
ZXkoKSwgIiBhc3luY2hyb25vdXNseVxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
ICAgICAgICAgICAgIG1fcmVhZHlQbGFucy5hcHBlbmQocGxhbik7CiAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIG1fcGxhbkNvbXBpbGVkLmJyb2FkY2FzdCgpOworICAgICAgICAgICAgbV9wbGFu
Q29tcGlsZWQubm90aWZ5X2FsbCgpOwogICAgICAgICAgICAgbV9udW1iZXJPZkFjdGl2ZVRocmVh
ZHMtLTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHV29ya2xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHV29ya2xp
c3QuaAppbmRleCBkMzQxOWYwYTkxYWY5NzFhMWUyMjFkOWNhOWI0NzljOGQzY2QxNzY4Li43NzRh
NThiYjhmYzE1NTNhMDhjODE2OTg3OTdkYmRkZWFiODcwZDhjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1dvcmtsaXN0LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdXb3JrbGlzdC5oCkBAIC0zMSw2ICszMSw4IEBACiAjaWYgRU5BQkxFKERGR19K
SVQpCiAKICNpbmNsdWRlICJERkdQbGFuLmgiCisjaW5jbHVkZSA8Y29uZGl0aW9uX3ZhcmlhYmxl
PgorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC03Miw3ICs3NCw3
IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCByZW1vdmVBbGxSZWFkeVBsYW5zRm9yVk0oVk0m
LCBWZWN0b3I8UmVmUHRyPFBsYW4+LCA4PiYpOwogCi0gICAgdm9pZCBkdW1wKGNvbnN0IE11dGV4
TG9ja2VyJiwgUHJpbnRTdHJlYW0mKSBjb25zdDsKKyAgICB2b2lkIGR1bXAoY29uc3Qgc3RkOjp1
bmlxdWVfbG9jazxzdGQ6Om11dGV4PiYsIFByaW50U3RyZWFtJikgY29uc3Q7CiAKICAgICAvLyBV
c2VkIHRvIGluZm9ybSB0aGUgdGhyZWFkIGFib3V0IHdoYXQgd29yayB0aGVyZSBpcyBsZWZ0IHRv
IGRvLgogICAgIERlcXVlPFJlZlB0cjxQbGFuPiwgMTY+IG1fcXVldWU7CkBAIC04OCw5ICs5MCw5
IEBAIHByaXZhdGU6CiAgICAgLy8gYmUgY29tcGxldGVkLgogICAgIFZlY3RvcjxSZWZQdHI8UGxh
bj4sIDE2PiBtX3JlYWR5UGxhbnM7CiAgICAgCi0gICAgbXV0YWJsZSBNdXRleCBtX2xvY2s7Ci0g
ICAgVGhyZWFkQ29uZGl0aW9uIG1fcGxhbkVucXVldWVkOwotICAgIFRocmVhZENvbmRpdGlvbiBt
X3BsYW5Db21waWxlZDsKKyAgICBtdXRhYmxlIHN0ZDo6bXV0ZXggbV9tdXRleDsKKyAgICBzdGQ6
OmNvbmRpdGlvbl92YXJpYWJsZSBtX3BsYW5FbnF1ZXVlZDsKKyAgICBzdGQ6OmNvbmRpdGlvbl92
YXJpYWJsZSBtX3BsYW5Db21waWxlZDsKICAgICBWZWN0b3I8VGhyZWFkSWRlbnRpZmllcj4gbV90
aHJlYWRzOwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZBY3RpdmVUaHJlYWRzOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmNwcAppbmRleCBmMGU3NzIyYTVlYmUz
ZGQ1NGEzYmViMjgxM2I0Y2NlZTdkZTExMTAwLi4wMmJhNTc3YjQ3MTBiMGFiNDI1MjM3M2JkMjM0
MGMxNzM0NWIxOGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3Bp
ZWRTcGFjZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2Uu
Y3BwCkBAIC0xNzIsMTIgKzE3MiwxMiBAQCB2b2lkIENvcGllZFNwYWNlOjpkb25lRmlsbGluZ0Js
b2NrKENvcGllZEJsb2NrKiBibG9jaywgQ29waWVkQmxvY2sqKiBleGNoYW5nZSkKICAgICB9CiAK
ICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xvYW5lZEJsb2Nrc0xvY2spOwor
ICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayhtX2xvYW5lZEJsb2Nrc011
dGV4KTsKICAgICAgICAgQVNTRVJUKG1fbnVtYmVyT2ZMb2FuZWRCbG9ja3MgPiAwKTsKICAgICAg
ICAgQVNTRVJUKG1faW5Db3B5aW5nUGhhc2UpOwogICAgICAgICBtX251bWJlck9mTG9hbmVkQmxv
Y2tzLS07CiAgICAgICAgIGlmICghbV9udW1iZXJPZkxvYW5lZEJsb2NrcykKLSAgICAgICAgICAg
IG1fbG9hbmVkQmxvY2tzQ29uZGl0aW9uLnNpZ25hbCgpOworICAgICAgICAgICAgbV9sb2FuZWRC
bG9ja3NDb25kaXRpb24ubm90aWZ5X29uZSgpOwogICAgIH0KIH0KIApAQCAtMjMyLDkgKzIzMiw5
IEBAIHZvaWQgQ29waWVkU3BhY2U6OnN0YXJ0ZWRDb3B5aW5nKCkKIHZvaWQgQ29waWVkU3BhY2U6
OmRvbmVDb3B5aW5nKCkKIHsKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2xv
YW5lZEJsb2Nrc0xvY2spOwotICAgICAgICB3aGlsZSAobV9udW1iZXJPZkxvYW5lZEJsb2NrcyA+
IDApCi0gICAgICAgICAgICBtX2xvYW5lZEJsb2Nrc0NvbmRpdGlvbi53YWl0KG1fbG9hbmVkQmxv
Y2tzTG9jayk7CisgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8c3RkOjptdXRleD4gbG9jayhtX2xv
YW5lZEJsb2Nrc011dGV4KTsKKworICAgICAgICBtX2xvYW5lZEJsb2Nrc0NvbmRpdGlvbi53YWl0
KGxvY2ssIFt0aGlzXXsgcmV0dXJuICFtX251bWJlck9mTG9hbmVkQmxvY2tzOyB9KTsKICAgICB9
CiAKICAgICBBU1NFUlQobV9pbkNvcHlpbmdQaGFzZSA9PSBtX3Nob3VsZERvQ29weVBoYXNlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZS5oCmluZGV4IDY1Y2EwNGVmNjkz
YjU4YzE3ZDE3ZDlkN2FmODA0NjBhNzgwMmVmYzQuLmRmNTM5YjlhNDQ4ZTZhYmE1Mzk0YWE2ZDll
MjE3MzhhMGU4OGQ0YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
cGllZFNwYWNlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29waWVkU3BhY2Uu
aApAQCAtMjksNiArMjksOCBAQAogI2luY2x1ZGUgIkNvcGllZEFsbG9jYXRvci5oIgogI2luY2x1
ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIlRpbnlCbG9vbUZpbHRlci5oIgorI2luY2x1ZGUg
PGNvbmRpdGlvbl92YXJpYWJsZT4KKyNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvQXNz
ZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9DaGVja2VkQm9vbGVhbi5oPgogI2luY2x1ZGUgPHd0
Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+CkBAIC0xMTMsOCArMTE1LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faW5Db3B5aW5nUGhhc2U7CiAgICAgYm9vbCBtX3Nob3VsZERvQ29weVBoYXNlOwogCi0g
ICAgTXV0ZXggbV9sb2FuZWRCbG9ja3NMb2NrOyAKLSAgICBUaHJlYWRDb25kaXRpb24gbV9sb2Fu
ZWRCbG9ja3NDb25kaXRpb247CisgICAgc3RkOjptdXRleCBtX2xvYW5lZEJsb2Nrc011dGV4Owor
ICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1fbG9hbmVkQmxvY2tzQ29uZGl0aW9uOwogICAg
IHNpemVfdCBtX251bWJlck9mTG9hbmVkQmxvY2tzOwogCiAgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBzX21heEFsbG9jYXRpb25TaXplID0gQ29waWVkQmxvY2s6OmJsb2NrU2l6ZSAvIDI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db3BpZWRTcGFjZUlubGluZXMuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lcy5oCmluZGV4IDI1
M2E3NmIxNzkxZmFmYTQzZmVmNTk0ZDM0YzE4ZWFlNjFhYWYyMTcuLmQwMDA3NmU4OTFhYmZmOTc4
ZDQ5NDVkYzFiYzU1M2U5YzU0NWY5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0NvcGllZFNwYWNlSW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvcGllZFNwYWNlSW5saW5lcy5oCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiSGVh
cC5oIgogI2luY2x1ZGUgIkhlYXBCbG9jay5oIgogI2luY2x1ZGUgIlZNLmgiCisjaW5jbHVkZSA8
Y29uZGl0aW9uX3ZhcmlhYmxlPgorI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHd0Zi9DaGVj
a2VkQm9vbGVhbi5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTExMCwxMiArMTEyLDEyIEBAIGlu
bGluZSB2b2lkIENvcGllZFNwYWNlOjpyZWN5Y2xlQm9ycm93ZWRCbG9jayhDb3BpZWRCbG9jayog
YmxvY2spCiAgICAgbV9oZWFwLT5ibG9ja0FsbG9jYXRvcigpLmRlYWxsb2NhdGUoQ29waWVkQmxv
Y2s6OmRlc3Ryb3koYmxvY2spKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbG9hbmVkQmxvY2tzTG9jayk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6Om11dGV4
PiBsb2NrKG1fbG9hbmVkQmxvY2tzTXV0ZXgpOwogICAgICAgICBBU1NFUlQobV9udW1iZXJPZkxv
YW5lZEJsb2NrcyA+IDApOwogICAgICAgICBBU1NFUlQobV9pbkNvcHlpbmdQaGFzZSk7CiAgICAg
ICAgIG1fbnVtYmVyT2ZMb2FuZWRCbG9ja3MtLTsKICAgICAgICAgaWYgKCFtX251bWJlck9mTG9h
bmVkQmxvY2tzKQotICAgICAgICAgICAgbV9sb2FuZWRCbG9ja3NDb25kaXRpb24uc2lnbmFsKCk7
CisgICAgICAgICAgICBtX2xvYW5lZEJsb2Nrc0NvbmRpdGlvbi5ub3RpZnlfb25lKCk7CiAgICAg
fQogfQogCkBAIC0xMjUsNyArMTI3LDcgQEAgaW5saW5lIENvcGllZEJsb2NrKiBDb3BpZWRTcGFj
ZTo6YWxsb2NhdGVCbG9ja0ZvckNvcHlpbmdQaGFzZSgpCiAgICAgQ29waWVkQmxvY2sqIGJsb2Nr
ID0gQ29waWVkQmxvY2s6OmNyZWF0ZU5vWmVyb0ZpbGwobV9oZWFwLT5ibG9ja0FsbG9jYXRvcigp
LmFsbG9jYXRlPENvcGllZEJsb2NrPigpKTsKIAogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIg
bG9ja2VyKG1fbG9hbmVkQmxvY2tzTG9jayk7CisgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxzdGQ6
Om11dGV4PiBsb2NrKG1fbG9hbmVkQmxvY2tzTXV0ZXgpOwogICAgICAgICBtX251bWJlck9mTG9h
bmVkQmxvY2tzKys7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9HQ1RocmVhZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZC5j
cHAKaW5kZXggYWE4NjhmMWIzNDg4MTRkODBlN2Q0MTIzOWZiM2ExNDJhZTM2NmFlZS4uMGU4ZTg5
YmVhMGM2NWE1YzQzZjk5MmZmYmNkOGE2NzA3NWQ1MzI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0dDVGhyZWFkLmNwcApAQCAtNjksMTYgKzY5LDE0IEBAIENvcHlWaXNpdG9yKiBHQ1Ro
cmVhZDo6Y29weVZpc2l0b3IoKQogCiBHQ1BoYXNlIEdDVGhyZWFkOjp3YWl0Rm9yTmV4dFBoYXNl
KCkKIHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9zaGFyZWQubV9waGFzZUxvY2spOwotICAg
IHdoaWxlIChtX3NoYXJlZC5tX2djVGhyZWFkc1Nob3VsZFdhaXQpCi0gICAgICAgIG1fc2hhcmVk
Lm1fcGhhc2VDb25kaXRpb24ud2FpdChtX3NoYXJlZC5tX3BoYXNlTG9jayk7CisgICAgc3RkOjp1
bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1fc2hhcmVkLm1fcGhhc2VNdXRleCk7CisgICAg
bV9zaGFyZWQubV9waGFzZUNvbmRpdGlvbi53YWl0KGxvY2ssIFt0aGlzXSB7IHJldHVybiAhbV9z
aGFyZWQubV9nY1RocmVhZHNTaG91bGRXYWl0OyB9KTsKIAogICAgIG1fc2hhcmVkLm1fbnVtYmVy
T2ZBY3RpdmVHQ1RocmVhZHMtLTsKICAgICBpZiAoIW1fc2hhcmVkLm1fbnVtYmVyT2ZBY3RpdmVH
Q1RocmVhZHMpCi0gICAgICAgIG1fc2hhcmVkLm1fYWN0aXZpdHlDb25kaXRpb24uc2lnbmFsKCk7
CisgICAgICAgIG1fc2hhcmVkLm1fYWN0aXZpdHlDb25kaXRpb24ubm90aWZ5X29uZSgpOwogCi0g
ICAgd2hpbGUgKG1fc2hhcmVkLm1fY3VycmVudFBoYXNlID09IE5vUGhhc2UpCi0gICAgICAgIG1f
c2hhcmVkLm1fcGhhc2VDb25kaXRpb24ud2FpdChtX3NoYXJlZC5tX3BoYXNlTG9jayk7CisgICAg
bV9zaGFyZWQubV9waGFzZUNvbmRpdGlvbi53YWl0KGxvY2ssIFt0aGlzXSB7IHJldHVybiBtX3No
YXJlZC5tX2N1cnJlbnRQaGFzZSAhPSBOb1BoYXNlOyB9KTsKICAgICBtX3NoYXJlZC5tX251bWJl
ck9mQWN0aXZlR0NUaHJlYWRzKys7CiAgICAgcmV0dXJuIG1fc2hhcmVkLm1fY3VycmVudFBoYXNl
OwogfQpAQCAtOTIsNyArOTAsNyBAQCB2b2lkIEdDVGhyZWFkOjpnY1RocmVhZE1haW4oKQogICAg
IC8vIFdhaXQgZm9yIHRoZSBtYWluIHRocmVhZCB0byBmaW5pc2ggY3JlYXRpbmcgYW5kIGluaXRp
YWxpemluZyB1cy4gVGhlIG1haW4gdGhyZWFkIGdyYWJzIHRoaXMgbG9jayBiZWZvcmUgCiAgICAg
Ly8gY3JlYXRpbmcgdGhpcyB0aHJlYWQuIFdlIGFyZW4ndCBndWFyYW50ZWVkIHRvIGhhdmUgYSB2
YWxpZCB0aHJlYWRJRCB1bnRpbCB0aGUgbWFpbiB0aHJlYWQgcmVsZWFzZXMgdGhpcyBsb2NrLgog
ICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2hhcmVkLm1fcGhhc2VMb2NrKTsK
KyAgICAgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+IGxvY2sobV9zaGFyZWQubV9waGFz
ZU11dGV4KTsKICAgICB9CiAgICAgewogICAgICAgICBQYXJhbGxlbE1vZGVFbmFibGVyIGVuYWJs
ZXIoKm1fc2xvdFZpc2l0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvR0NUaHJlYWRTaGFyZWREYXRhLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0dD
VGhyZWFkU2hhcmVkRGF0YS5jcHAKaW5kZXggYjM0MmI5NjFmNDJmMGZhNTk3MmRhNzBjZmE4NDA4
OTk5MmJhNjUwMy4uM2FiY2JjMzQ3MTM1MmJlNGMyYmQ2NTBjODhmNzk3ZGQ4MDUzM2UzMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvR0NUaHJlYWRTaGFyZWREYXRhLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuY3Bw
CkBAIC04Myw3ICs4Myw3IEBAIEdDVGhyZWFkU2hhcmVkRGF0YTo6R0NUaHJlYWRTaGFyZWREYXRh
KFZNKiB2bSkKICAgICBtX2NvcHlMb2NrLkluaXQoKTsKICNpZiBFTkFCTEUoUEFSQUxMRUxfR0Mp
CiAgICAgLy8gR3JhYiB0aGUgbG9jayBzbyB0aGUgbmV3IEdDIHRocmVhZHMgY2FuIGJlIHByb3Bl
cmx5IGluaXRpYWxpemVkIGJlZm9yZSB0aGV5IHN0YXJ0IHJ1bm5pbmcuCi0gICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fcGhhc2VMb2NrKTsKKyAgICBzdGQ6OnVuaXF1ZV9sb2NrPHN0ZDo6bXV0ZXg+
IGxvY2sobV9waGFzZU11dGV4KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAxOyBpIDwgT3B0aW9u
czo6bnVtYmVyT2ZHQ01hcmtlcnMoKTsgKytpKSB7CiAgICAgICAgIG1fbnVtYmVyT2ZBY3RpdmVH
Q1RocmVhZHMrKzsKICAgICAgICAgU2xvdFZpc2l0b3IqIHNsb3RWaXNpdG9yID0gbmV3IFNsb3RW
aXNpdG9yKCp0aGlzKTsKQEAgLTk1LDggKzk1LDcgQEAgR0NUaHJlYWRTaGFyZWREYXRhOjpHQ1Ro
cmVhZFNoYXJlZERhdGEoVk0qIHZtKQogICAgIH0KIAogICAgIC8vIFdhaXQgZm9yIGFsbCB0aGUg
R0NUaHJlYWRzIHRvIGdldCB0byB0aGUgcmlnaHQgcGxhY2UuCi0gICAgd2hpbGUgKG1fbnVtYmVy
T2ZBY3RpdmVHQ1RocmVhZHMpCi0gICAgICAgIG1fYWN0aXZpdHlDb25kaXRpb24ud2FpdChtX3Bo
YXNlTG9jayk7CisgICAgbV9hY3Rpdml0eUNvbmRpdGlvbi53YWl0KGxvY2ssIFt0aGlzXXsgcmV0
dXJuICFtX251bWJlck9mQWN0aXZlR0NUaHJlYWRzOyB9KTsKICNlbmRpZgogfQogCkBAIC0xMDUs
MTMgKzEwNCwxMyBAQCBHQ1RocmVhZFNoYXJlZERhdGE6On5HQ1RocmVhZFNoYXJlZERhdGEoKQog
I2lmIEVOQUJMRShQQVJBTExFTF9HQykgICAgCiAgICAgLy8gRGVzdHJveSBvdXIgbWFya2luZyB0
aHJlYWRzLgogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbWFya2luZ0xvY2tlcihtX21hcmtp
bmdMb2NrKTsKLSAgICAgICAgTXV0ZXhMb2NrZXIgcGhhc2VMb2NrZXIobV9waGFzZUxvY2spOwor
ICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbWFya2luZ0xvY2sobV9tYXJraW5n
TXV0ZXgpOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gcGhhc2VMb2NrKG1f
cGhhc2VNdXRleCk7CiAgICAgICAgIEFTU0VSVChtX2N1cnJlbnRQaGFzZSA9PSBOb1BoYXNlKTsK
ICAgICAgICAgbV9wYXJhbGxlbE1hcmtlcnNTaG91bGRFeGl0ID0gdHJ1ZTsKICAgICAgICAgbV9n
Y1RocmVhZHNTaG91bGRXYWl0ID0gZmFsc2U7CiAgICAgICAgIG1fY3VycmVudFBoYXNlID0gRXhp
dDsKLSAgICAgICAgbV9waGFzZUNvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9waGFz
ZUNvbmRpdGlvbi5ub3RpZnlfYWxsKCk7CiAgICAgfQogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX2djVGhyZWFkcy5zaXplKCk7ICsraSkgewogICAgICAgICB3YWl0Rm9yVGhyZWFkQ29t
cGxldGlvbihtX2djVGhyZWFkc1tpXS0+dGhyZWFkSUQoKSk7CkBAIC0xMzksMjggKzEzOCwyOCBA
QCB2b2lkIEdDVGhyZWFkU2hhcmVkRGF0YTo6cmVzZXQoKQogCiB2b2lkIEdDVGhyZWFkU2hhcmVk
RGF0YTo6c3RhcnROZXh0UGhhc2UoR0NQaGFzZSBwaGFzZSkKIHsKLSAgICBNdXRleExvY2tlciBw
aGFzZUxvY2tlcihtX3BoYXNlTG9jayk7CisgICAgc3RkOjpsb2NrX2d1YXJkPHN0ZDo6bXV0ZXg+
IHBoYXNlTG9jayhtX3BoYXNlTXV0ZXgpOwogICAgIEFTU0VSVCghbV9nY1RocmVhZHNTaG91bGRX
YWl0KTsKICAgICBBU1NFUlQobV9jdXJyZW50UGhhc2UgPT0gTm9QaGFzZSk7CiAgICAgbV9nY1Ro
cmVhZHNTaG91bGRXYWl0ID0gdHJ1ZTsKICAgICBtX2N1cnJlbnRQaGFzZSA9IHBoYXNlOwotICAg
IG1fcGhhc2VDb25kaXRpb24uYnJvYWRjYXN0KCk7CisgICAgbV9waGFzZUNvbmRpdGlvbi5ub3Rp
ZnlfYWxsKCk7CiB9CiAKIHZvaWQgR0NUaHJlYWRTaGFyZWREYXRhOjplbmRDdXJyZW50UGhhc2Uo
KQogewogICAgIEFTU0VSVChtX2djVGhyZWFkc1Nob3VsZFdhaXQpOwotICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX3BoYXNlTG9jayk7CisgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBw
aGFzZUxvY2sobV9waGFzZU11dGV4KTsKICAgICBtX2N1cnJlbnRQaGFzZSA9IE5vUGhhc2U7CiAg
ICAgbV9nY1RocmVhZHNTaG91bGRXYWl0ID0gZmFsc2U7Ci0gICAgbV9waGFzZUNvbmRpdGlvbi5i
cm9hZGNhc3QoKTsKLSAgICB3aGlsZSAobV9udW1iZXJPZkFjdGl2ZUdDVGhyZWFkcykKLSAgICAg
ICAgbV9hY3Rpdml0eUNvbmRpdGlvbi53YWl0KG1fcGhhc2VMb2NrKTsKKyAgICBtX3BoYXNlQ29u
ZGl0aW9uLm5vdGlmeV9hbGwoKTsKKyAgICAKKyAgICBtX2FjdGl2aXR5Q29uZGl0aW9uLndhaXQo
cGhhc2VMb2NrLCBbdGhpc10geyByZXR1cm4gIW1fbnVtYmVyT2ZBY3RpdmVHQ1RocmVhZHM7IH0p
OwogfQogCiB2b2lkIEdDVGhyZWFkU2hhcmVkRGF0YTo6ZGlkU3RhcnRNYXJraW5nKCkKIHsKLSAg
ICBNdXRleExvY2tlciBtYXJraW5nTG9ja2VyKG1fbWFya2luZ0xvY2spOworICAgIHN0ZDo6bG9j
a19ndWFyZDxzdGQ6Om11dGV4PiBtYXJraW5nTG9jayhtX21hcmtpbmdNdXRleCk7CiAgICAgbV9w
YXJhbGxlbE1hcmtlcnNTaG91bGRFeGl0ID0gZmFsc2U7CiAgICAgc3RhcnROZXh0UGhhc2UoTWFy
ayk7CiB9CkBAIC0xNjgsOSArMTY3LDkgQEAgdm9pZCBHQ1RocmVhZFNoYXJlZERhdGE6OmRpZFN0
YXJ0TWFya2luZygpCiB2b2lkIEdDVGhyZWFkU2hhcmVkRGF0YTo6ZGlkRmluaXNoTWFya2luZygp
CiB7CiAgICAgewotICAgICAgICBNdXRleExvY2tlciBtYXJraW5nTG9ja2VyKG1fbWFya2luZ0xv
Y2spOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbWFya2luZ0xvY2sobV9t
YXJraW5nTXV0ZXgpOwogICAgICAgICBtX3BhcmFsbGVsTWFya2Vyc1Nob3VsZEV4aXQgPSB0cnVl
OwotICAgICAgICBtX21hcmtpbmdDb25kaXRpb24uYnJvYWRjYXN0KCk7CisgICAgICAgIG1fbWFy
a2luZ0NvbmRpdGlvbi5ub3RpZnlfYWxsKCk7CiAgICAgfQogCiAgICAgQVNTRVJUKG1fY3VycmVu
dFBoYXNlID09IE1hcmspOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
R0NUaHJlYWRTaGFyZWREYXRhLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVh
ZFNoYXJlZERhdGEuaAppbmRleCBmZjNkZDk5ZjNhMjA5NjhlMWJjYjZmNDM5NGNkOTlkM2E3ZDRl
ZWRjLi43YTQzYTYwMTc2NzhiMTA3OWRhMjA3Njc1YWQwY2RkNzI4MjM1NGY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9HQ1RocmVhZFNoYXJlZERhdGEuaApAQCAtMzEsNiAr
MzEsOCBAQAogI2luY2x1ZGUgIk1hcmtlZEJsb2NrLmgiCiAjaW5jbHVkZSAiVW5jb25kaXRpb25h
bEZpbmFsaXplci5oIgogI2luY2x1ZGUgIldlYWtSZWZlcmVuY2VIYXJ2ZXN0ZXIuaCIKKyNpbmNs
dWRlIDxjb25kaXRpb25fdmFyaWFibGU+CisjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVENTcGluTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KQEAgLTg2LDggKzg4LDggQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxHQ1Ro
cmVhZCo+IG1fZ2NUaHJlYWRzOwogCi0gICAgTXV0ZXggbV9tYXJraW5nTG9jazsKLSAgICBUaHJl
YWRDb25kaXRpb24gbV9tYXJraW5nQ29uZGl0aW9uOworICAgIHN0ZDo6bXV0ZXggbV9tYXJraW5n
TXV0ZXg7CisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbV9tYXJraW5nQ29uZGl0aW9uOwog
ICAgIE1hcmtTdGFja0FycmF5IG1fc2hhcmVkTWFya1N0YWNrOwogICAgIHVuc2lnbmVkIG1fbnVt
YmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnM7CiAgICAgYm9vbCBtX3BhcmFsbGVsTWFya2Vyc1No
b3VsZEV4aXQ7CkBAIC0xMDAsOSArMTAyLDkgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgbV9jb3B5
SW5kZXg7CiAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBzX2Jsb2NrRnJhZ21lbnRMZW5ndGggPSAz
MjsKIAotICAgIE11dGV4IG1fcGhhc2VMb2NrOwotICAgIFRocmVhZENvbmRpdGlvbiBtX3BoYXNl
Q29uZGl0aW9uOwotICAgIFRocmVhZENvbmRpdGlvbiBtX2FjdGl2aXR5Q29uZGl0aW9uOworICAg
IHN0ZDo6bXV0ZXggbV9waGFzZU11dGV4OworICAgIHN0ZDo6Y29uZGl0aW9uX3ZhcmlhYmxlIG1f
cGhhc2VDb25kaXRpb247CisgICAgc3RkOjpjb25kaXRpb25fdmFyaWFibGUgbV9hY3Rpdml0eUNv
bmRpdGlvbjsKICAgICB1bnNpZ25lZCBtX251bWJlck9mQWN0aXZlR0NUaHJlYWRzOwogICAgIGJv
b2wgbV9nY1RocmVhZHNTaG91bGRXYWl0OwogICAgIEdDUGhhc2UgbV9jdXJyZW50UGhhc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKaW5kZXggY2RhMmI3OWEw
ZjhhMGFiY2FkYzcyZmJkZWQ3ODZiYmJjMjIwYmI5ZC4uYjk1M2Q3NmI1N2VmODY3MTY0YjRjZDc1
YWJhMWViZjQwMDEwYWFiNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
U2xvdFZpc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNp
dG9yLmNwcApAQCAtMTEzLDE1ICsxMTMsMTUgQEAgdm9pZCBTbG90VmlzaXRvcjo6ZG9uYXRlS25v
d25QYXJhbGxlbCgpCiAKICAgICAvLyBJZiB3ZSdyZSBjb250ZW5kaW5nIG9uIHRoZSBsb2NrLCBi
ZSBjb25zZXJ2YXRpdmUgYW5kIGFzc3VtZSB0aGF0IGFub3RoZXIKICAgICAvLyB0aHJlYWQgaXMg
YWxyZWFkeSBkb25hdGluZy4KLSAgICBNdXRleFRyeUxvY2tlciBsb2NrZXIobV9zaGFyZWQubV9t
YXJraW5nTG9jayk7Ci0gICAgaWYgKCFsb2NrZXIubG9ja2VkKCkpCisgICAgc3RkOjp1bmlxdWVf
bG9jazxzdGQ6Om11dGV4PiBsb2NrKG1fc2hhcmVkLm1fbWFya2luZ011dGV4LCBzdGQ6OnRyeV90
b19sb2NrKTsKKyAgICBpZiAoIWxvY2sub3duc19sb2NrKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIE90aGVyd2lzZSwgYXNzdW1lIHRoYXQgYSB0aHJlYWQgd2lsbCBnbyBpZGxlIHNvb24s
IGFuZCBkb25hdGUuCiAgICAgbV9zdGFjay5kb25hdGVTb21lQ2VsbHNUbyhtX3NoYXJlZC5tX3No
YXJlZE1hcmtTdGFjayk7CiAKICAgICBpZiAobV9zaGFyZWQubV9udW1iZXJPZkFjdGl2ZVBhcmFs
bGVsTWFya2VycyA8IE9wdGlvbnM6Om51bWJlck9mR0NNYXJrZXJzKCkpCi0gICAgICAgIG1fc2hh
cmVkLm1fbWFya2luZ0NvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAgICAgbV9zaGFyZWQubV9t
YXJraW5nQ29uZGl0aW9uLm5vdGlmeV9hbGwoKTsKIH0KIAogdm9pZCBTbG90VmlzaXRvcjo6ZHJh
aW4oKQpAQCAtMTc2LDEyICsxNzYsMTIgQEAgdm9pZCBTbG90VmlzaXRvcjo6ZHJhaW5Gcm9tU2hh
cmVkKFNoYXJlZERyYWluTW9kZSBzaGFyZWREcmFpbk1vZGUpCiAgICAgCiAjaWYgRU5BQkxFKFBB
UkFMTEVMX0dDKQogICAgIHsKLSAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2hhcmVkLm1f
bWFya2luZ0xvY2spOworICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8c3RkOjptdXRleD4gbG9jayht
X3NoYXJlZC5tX21hcmtpbmdNdXRleCk7CiAgICAgICAgIG1fc2hhcmVkLm1fbnVtYmVyT2ZBY3Rp
dmVQYXJhbGxlbE1hcmtlcnMrKzsKICAgICB9CiAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAg
ewotICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc2hhcmVkLm1fbWFya2luZ0xvY2sp
OworICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxzdGQ6Om11dGV4PiBsb2NrKG1fc2hhcmVk
Lm1fbWFya2luZ011dGV4KTsKICAgICAgICAgICAgIG1fc2hhcmVkLm1fbnVtYmVyT2ZBY3RpdmVQ
YXJhbGxlbE1hcmtlcnMtLTsKIAogICAgICAgICAgICAgLy8gSG93IHdlIHdhaXQgZGlmZmVycyBk
ZXBlbmRpbmcgb24gZHJhaW4gbW9kZS4KQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIFNsb3RWaXNp
dG9yOjpkcmFpbkZyb21TaGFyZWQoU2hhcmVkRHJhaW5Nb2RlIHNoYXJlZERyYWluTW9kZSkKICAg
ICAgICAgICAgICAgICAgICAgLy8gRGlkIHdlIHJlYWNoIHRlcm1pbmF0aW9uPwogICAgICAgICAg
ICAgICAgICAgICBpZiAoIW1fc2hhcmVkLm1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnMg
JiYgbV9zaGFyZWQubV9zaGFyZWRNYXJrU3RhY2suaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAvLyBMZXQgYW55IHNsZWVwaW5nIHNsYXZlcyBrbm93IGl0J3MgdGltZSBmb3Ig
dGhlbSB0byByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgICAgICBtX3NoYXJlZC5tX21hcmtp
bmdDb25kaXRpb24uYnJvYWRjYXN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBtX3NoYXJl
ZC5tX21hcmtpbmdDb25kaXRpb24ubm90aWZ5X2FsbCgpOwogICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIApA
QCAtMjAxLDE3ICsyMDEsMTcgQEAgdm9pZCBTbG90VmlzaXRvcjo6ZHJhaW5Gcm9tU2hhcmVkKFNo
YXJlZERyYWluTW9kZSBzaGFyZWREcmFpbk1vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVy
d2lzZSB3YWl0LgotICAgICAgICAgICAgICAgICAgICBtX3NoYXJlZC5tX21hcmtpbmdDb25kaXRp
b24ud2FpdChtX3NoYXJlZC5tX21hcmtpbmdMb2NrKTsKKyAgICAgICAgICAgICAgICAgICAgbV9z
aGFyZWQubV9tYXJraW5nQ29uZGl0aW9uLndhaXQobG9jayk7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBBU1NFUlQoc2hhcmVkRHJhaW5N
b2RlID09IFNsYXZlRHJhaW4pOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8v
IERpZCB3ZSBkZXRlY3QgdGVybWluYXRpb24/IElmIHNvLCBsZXQgdGhlIG1hc3RlciBrbm93Lgog
ICAgICAgICAgICAgICAgIGlmICghbV9zaGFyZWQubV9udW1iZXJPZkFjdGl2ZVBhcmFsbGVsTWFy
a2VycyAmJiBtX3NoYXJlZC5tX3NoYXJlZE1hcmtTdGFjay5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICAgICAgICAgIG1fc2hhcmVkLm1fbWFya2luZ0NvbmRpdGlvbi5icm9hZGNhc3QoKTsKKyAgICAg
ICAgICAgICAgICAgICAgbV9zaGFyZWQubV9tYXJraW5nQ29uZGl0aW9uLm5vdGlmeV9hbGwoKTsK
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICB3aGlsZSAobV9zaGFyZWQubV9zaGFy
ZWRNYXJrU3RhY2suaXNFbXB0eSgpICYmICFtX3NoYXJlZC5tX3BhcmFsbGVsTWFya2Vyc1Nob3Vs
ZEV4aXQpCi0gICAgICAgICAgICAgICAgICAgIG1fc2hhcmVkLm1fbWFya2luZ0NvbmRpdGlvbi53
YWl0KG1fc2hhcmVkLm1fbWFya2luZ0xvY2spOworICAgICAgICAgICAgICAgICAgICBtX3NoYXJl
ZC5tX21hcmtpbmdDb25kaXRpb24ud2FpdChsb2NrKTsKICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAvLyBJcyB0aGUgY3VycmVudCBwaGFzZSBkb25lPyBJZiBzbywgcmV0dXJuIGZy
b20gdGhpcyBmdW5jdGlvbi4KICAgICAgICAgICAgICAgICBpZiAobV9zaGFyZWQubV9wYXJhbGxl
bE1hcmtlcnNTaG91bGRFeGl0KQo=
</data>
<flag name="review"
          id="243815"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>