<?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>165687</bug_id>
          
          <creation_ts>2016-12-09 14:41:03 -0800</creation_ts>
          <short_desc>Deploy OrdinalNumber in JSC::SourceCode</short_desc>
          <delta_ts>2016-12-09 15:00:21 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></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>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1258354</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-09 14:41:03 -0800</bug_when>
    <thetext>Deploy OrdinalNumber in JSC::SourceCode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258355</commentid>
    <comment_count>1</comment_count>
      <attachid>296703</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-09 14:43:03 -0800</bug_when>
    <thetext>Created attachment 296703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258367</commentid>
    <comment_count>2</comment_count>
      <attachid>296703</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-12-09 14:50:28 -0800</bug_when>
    <thetext>Comment on attachment 296703
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258370</commentid>
    <comment_count>3</comment_count>
      <attachid>296703</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-12-09 14:53:46 -0800</bug_when>
    <thetext>Comment on attachment 296703
Patch

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

&gt; Source/JavaScriptCore/parser/SourceCode.h:40
&gt; +            , m_firstLine(OrdinalNumber::beforeFirst())
&gt; +            , m_startColumn(OrdinalNumber::beforeFirst())

Is this just to indicate that this value doesn&apos;t mean anything? Why not just have a default empty constructor that does that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258373</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-09 14:58:27 -0800</bug_when>
    <thetext>&gt; &gt; Source/JavaScriptCore/parser/SourceCode.h:40
&gt; &gt; +            , m_firstLine(OrdinalNumber::beforeFirst())
&gt; &gt; +            , m_startColumn(OrdinalNumber::beforeFirst())
&gt; 
&gt; Is this just to indicate that this value doesn&apos;t mean anything? Why not just
&gt; have a default empty constructor that does that?

The empty constructor constructs zero. Just like int() or unsigned() would. Eventually, we&apos;ll switch off of beforeFirst() and just have clients use std::optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1258377</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-12-09 15:00:21 -0800</bug_when>
    <thetext>Committed r209632: &lt;http://trac.webkit.org/changeset/209632&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296703</attachid>
            <date>2016-12-09 14:43:03 -0800</date>
            <delta_ts>2016-12-09 14:50:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165687-20161209144221.patch</filename>
            <type>text/plain</type>
            <size>17393</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5NjMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBA
CisyMDE2LTEyLTA5ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgRGVwbG95IE9yZGluYWxOdW1iZXIgaW4gSlNDOjpTb3VyY2VDb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU2ODcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBoYXZlIGEgbG90IG9mIGNvbmZ1
c2lvbiBiZXR3ZWVuIDEtYmFzZWQgYW5kIDAtYmFzZWQgY291bnRpbmcgaW4gbGluZQorICAgICAg
ICBhbmQgY29sdW1uIG51bWJlcnMuIExldCdzIHVzZSBPcmRpbmFsTnVtYmVyIHRvIGNsZWFyIHVw
IHRoZSBjb25mdXNpb24uCisKKyAgICAgICAgKiBieXRlY29kZS9VbmxpbmtlZEZ1bmN0aW9uRXhl
Y3V0YWJsZS5jcHA6CisgICAgICAgIChKU0M6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlOjpV
bmxpbmtlZEZ1bmN0aW9uRXhlY3V0YWJsZSk6CisgICAgICAgIChKU0M6OlVubGlua2VkRnVuY3Rp
b25FeGVjdXRhYmxlOjpsaW5rKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5l
cmF0b3IuaDoKKyAgICAgICAgKEpTQzo6Qnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRFeHByZXNzaW9u
SW5mbyk6CisgICAgICAgICogaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcDoKKyAg
ICAgICAgKEluc3BlY3Rvcjo6SlNJbmplY3RlZFNjcmlwdEhvc3Q6OmZ1bmN0aW9uRGV0YWlscyk6
CisgICAgICAgICogcGFyc2VyL0xleGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TGV4ZXI8VD46OnNl
dENvZGUpOgorICAgICAgICAqIHBhcnNlci9QYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpQYXJz
ZXI8TGV4ZXJUeXBlPjo6UGFyc2VyKToKKyAgICAgICAgKiBwYXJzZXIvUGFyc2VyLmg6CisgICAg
ICAgIChKU0M6OlBhcnNlcjxMZXhlclR5cGU+OjpwYXJzZSk6CisgICAgICAgICogcGFyc2VyL1Nv
dXJjZUNvZGUuaDoKKyAgICAgICAgKEpTQzo6U291cmNlQ29kZTo6U291cmNlQ29kZSk6CisgICAg
ICAgIChKU0M6OlNvdXJjZUNvZGU6OmZpcnN0TGluZSk6CisgICAgICAgIChKU0M6OlNvdXJjZUNv
ZGU6OnN0YXJ0Q29sdW1uKToKKyAgICAgICAgKiBydW50aW1lL0NvZGVDYWNoZS5jcHA6CisgICAg
ICAgIChKU0M6OkNvZGVDYWNoZTo6Z2V0VW5saW5rZWRHbG9iYWxDb2RlQmxvY2spOgorICAgICAg
ICAqIHJ1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVj
dXRhYmxlOjpmaXJzdExpbmUpOgorICAgICAgICAoSlNDOjpTY3JpcHRFeGVjdXRhYmxlOjpzdGFy
dENvbHVtbik6CisgICAgICAgICogdG9vbHMvQ29kZVByb2ZpbGUuaDoKKyAgICAgICAgKEpTQzo6
Q29kZVByb2ZpbGU6OkNvZGVQcm9maWxlKToKKwogMjAxNi0xMi0wOSAgU2FhbSBCYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJBc3NlbWJseSBKUyBBUEk6IGltcGxlbWVu
dCBpbXBvcnRpbmcgYW5kIGRlZmluaW5nIE1lbW9yeQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1VubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFi
bGUuY3BwCShyZXZpc2lvbiAyMDk2MjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw3
ICs3Nyw3IEBAIHN0YXRpYyBVbmxpbmtlZEZ1bmN0aW9uQ29kZUJsb2NrKiBnZW5lcmEKIAogVW5s
aW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OlVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKFZNKiB2
bSwgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIGNvbnN0IFNvdXJjZUNvZGUmIHBhcmVudFNvdXJjZSwg
U291cmNlQ29kZSYmIHBhcmVudFNvdXJjZU92ZXJyaWRlLCBGdW5jdGlvbk1ldGFkYXRhTm9kZSog
bm9kZSwgVW5saW5rZWRGdW5jdGlvbktpbmQga2luZCwgQ29uc3RydWN0QWJpbGl0eSBjb25zdHJ1
Y3RBYmlsaXR5LCBKU1BhcnNlclNjcmlwdE1vZGUgc2NyaXB0TW9kZSwgVmFyaWFibGVFbnZpcm9u
bWVudCYgcGFyZW50U2NvcGVURFpWYXJpYWJsZXMsIERlcml2ZWRDb250ZXh0VHlwZSBkZXJpdmVk
Q29udGV4dFR5cGUpCiAgICAgOiBCYXNlKCp2bSwgc3RydWN0dXJlKQotICAgICwgbV9maXJzdExp
bmVPZmZzZXQobm9kZS0+Zmlyc3RMaW5lKCkgLSBwYXJlbnRTb3VyY2UuZmlyc3RMaW5lKCkpCisg
ICAgLCBtX2ZpcnN0TGluZU9mZnNldChub2RlLT5maXJzdExpbmUoKSAtIHBhcmVudFNvdXJjZS5m
aXJzdExpbmUoKS5vbmVCYXNlZEludCgpKQogICAgICwgbV9saW5lQ291bnQobm9kZS0+bGFzdExp
bmUoKSAtIG5vZGUtPmZpcnN0TGluZSgpKQogICAgICwgbV91bmxpbmtlZEZ1bmN0aW9uTmFtZVN0
YXJ0KG5vZGUtPmZ1bmN0aW9uTmFtZVN0YXJ0KCkgLSBwYXJlbnRTb3VyY2Uuc3RhcnRPZmZzZXQo
KSkKICAgICAsIG1fdW5saW5rZWRCb2R5U3RhcnRDb2x1bW4obm9kZS0+c3RhcnRDb2x1bW4oKSkK
QEAgLTEzNCwxMSArMTM0LDExIEBAIHZvaWQgVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6OnZp
c2l0Q2gKIEZ1bmN0aW9uRXhlY3V0YWJsZSogVW5saW5rZWRGdW5jdGlvbkV4ZWN1dGFibGU6Omxp
bmsoVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlJiBwYXNzZWRQYXJlbnRTb3VyY2UsIHN0ZDo6b3B0
aW9uYWw8aW50PiBvdmVycmlkZUxpbmVOdW1iZXIsIEludHJpbnNpYyBpbnRyaW5zaWMpCiB7CiAg
ICAgY29uc3QgU291cmNlQ29kZSYgcGFyZW50U291cmNlID0gbV9wYXJlbnRTb3VyY2VPdmVycmlk
ZS5pc051bGwoKSA/IHBhc3NlZFBhcmVudFNvdXJjZSA6IG1fcGFyZW50U291cmNlT3ZlcnJpZGU7
Ci0gICAgdW5zaWduZWQgZmlyc3RMaW5lID0gcGFyZW50U291cmNlLmZpcnN0TGluZSgpICsgbV9m
aXJzdExpbmVPZmZzZXQ7CisgICAgdW5zaWduZWQgZmlyc3RMaW5lID0gcGFyZW50U291cmNlLmZp
cnN0TGluZSgpLm9uZUJhc2VkSW50KCkgKyBtX2ZpcnN0TGluZU9mZnNldDsKICAgICB1bnNpZ25l
ZCBzdGFydE9mZnNldCA9IHBhcmVudFNvdXJjZS5zdGFydE9mZnNldCgpICsgbV9zdGFydE9mZnNl
dDsKICAgICB1bnNpZ25lZCBsaW5lQ291bnQgPSBtX2xpbmVDb3VudDsKIAotICAgIHVuc2lnbmVk
IHN0YXJ0Q29sdW1uID0gbGlua2VkU3RhcnRDb2x1bW4ocGFyZW50U291cmNlLnN0YXJ0Q29sdW1u
KCkpOworICAgIHVuc2lnbmVkIHN0YXJ0Q29sdW1uID0gbGlua2VkU3RhcnRDb2x1bW4ocGFyZW50
U291cmNlLnN0YXJ0Q29sdW1uKCkub25lQmFzZWRJbnQoKSk7CiAgICAgdW5zaWduZWQgZW5kQ29s
dW1uID0gbGlua2VkRW5kQ29sdW1uKHN0YXJ0Q29sdW1uKTsKIAogICAgIFNvdXJjZUNvZGUgc291
cmNlKHBhcmVudFNvdXJjZS5wcm92aWRlcigpLCBzdGFydE9mZnNldCwgc3RhcnRPZmZzZXQgKyBt
X3NvdXJjZUxlbmd0aCwgZmlyc3RMaW5lLCBzdGFydENvbHVtbik7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5o
CShyZXZpc2lvbiAyMDk2MjYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0NSw3ICs0NDUsNyBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIEFTU0VSVChkaXZvdEVuZC5vZmZzZXQgPj0gZGl2
b3Qub2Zmc2V0KTsKIAogICAgICAgICAgICAgaW50IHNvdXJjZU9mZnNldCA9IG1fc2NvcGVOb2Rl
LT5zb3VyY2UoKS5zdGFydE9mZnNldCgpOwotICAgICAgICAgICAgdW5zaWduZWQgZmlyc3RMaW5l
ID0gbV9zY29wZU5vZGUtPnNvdXJjZSgpLmZpcnN0TGluZSgpOworICAgICAgICAgICAgdW5zaWdu
ZWQgZmlyc3RMaW5lID0gbV9zY29wZU5vZGUtPnNvdXJjZSgpLmZpcnN0TGluZSgpLm9uZUJhc2Vk
SW50KCk7CiAKICAgICAgICAgICAgIGludCBkaXZvdE9mZnNldCA9IGRpdm90Lm9mZnNldCAtIHNv
dXJjZU9mZnNldDsKICAgICAgICAgICAgIGludCBzdGFydE9mZnNldCA9IGRpdm90Lm9mZnNldCAt
IGRpdm90U3RhcnQub2Zmc2V0OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAJKHJldmlzaW9uIDIwOTYy
NikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNJbmplY3RlZFNjcmlwdEhv
c3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsMTAgKzIxNSwxMCBAQCBKU1ZhbHVlIEpTSW5q
ZWN0ZWRTY3JpcHRIb3N0OjpmdW5jdGlvbkRlCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwogCiAgICAgLy8gSW4gdGhlIGluc3BlY3RvciBwcm90b2NvbCBhbGwgcG9zaXRpb25zIGFyZSAw
LWJhc2VkIHdoaWxlIGluIFNvdXJjZUNvZGUgdGhleSBhcmUgMS1iYXNlZAotICAgIGludCBsaW5l
TnVtYmVyID0gc291cmNlQ29kZS0+Zmlyc3RMaW5lKCk7CisgICAgaW50IGxpbmVOdW1iZXIgPSBz
b3VyY2VDb2RlLT5maXJzdExpbmUoKS5vbmVCYXNlZEludCgpOwogICAgIGlmIChsaW5lTnVtYmVy
KQogICAgICAgICBsaW5lTnVtYmVyIC09IDE7Ci0gICAgaW50IGNvbHVtbk51bWJlciA9IHNvdXJj
ZUNvZGUtPnN0YXJ0Q29sdW1uKCk7CisgICAgaW50IGNvbHVtbk51bWJlciA9IHNvdXJjZUNvZGUt
PnN0YXJ0Q29sdW1uKCkub25lQmFzZWRJbnQoKTsKICAgICBpZiAoY29sdW1uTnVtYmVyKQogICAg
ICAgICBjb2x1bW5OdW1iZXIgLT0gMTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9MZXhlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNl
ci9MZXhlci5jcHAJKHJldmlzaW9uIDIwOTYyNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
YXJzZXIvTGV4ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NDEsNyArNTQxLDcgQEAgdm9pZCBM
ZXhlcjxUPjo6c2V0Q29kZShjb25zdCBTb3VyY2VDb2RlJgogewogICAgIG1fYXJlbmEgPSAmYXJl
bmEtPmlkZW50aWZpZXJBcmVuYSgpOwogICAgIAotICAgIG1fbGluZU51bWJlciA9IHNvdXJjZS5m
aXJzdExpbmUoKTsKKyAgICBtX2xpbmVOdW1iZXIgPSBzb3VyY2UuZmlyc3RMaW5lKCkub25lQmFz
ZWRJbnQoKTsKICAgICBtX2xhc3RUb2tlbiA9IC0xOwogICAgIAogICAgIFN0cmluZ1ZpZXcgc291
cmNlU3RyaW5nID0gc291cmNlLnByb3ZpZGVyKCktPnNvdXJjZSgpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmNwcAkocmV2aXNpb24gMjA5NjI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcs
NyArMjA3LDcgQEAgUGFyc2VyPExleGVyVHlwZT46OlBhcnNlcihWTSogdm0sIGNvbnN0IAogewog
ICAgIG1fbGV4ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPExleGVyVHlwZT4odm0sIGJ1aWx0aW5Nb2Rl
LCBzY3JpcHRNb2RlKTsKICAgICBtX2xleGVyLT5zZXRDb2RlKHNvdXJjZSwgJm1fcGFyc2VyQXJl
bmEpOwotICAgIG1fdG9rZW4ubV9sb2NhdGlvbi5saW5lID0gc291cmNlLmZpcnN0TGluZSgpOwor
ICAgIG1fdG9rZW4ubV9sb2NhdGlvbi5saW5lID0gc291cmNlLmZpcnN0TGluZSgpLm9uZUJhc2Vk
SW50KCk7CiAgICAgbV90b2tlbi5tX2xvY2F0aW9uLnN0YXJ0T2Zmc2V0ID0gc291cmNlLnN0YXJ0
T2Zmc2V0KCk7CiAgICAgbV90b2tlbi5tX2xvY2F0aW9uLmVuZE9mZnNldCA9IHNvdXJjZS5zdGFy
dE9mZnNldCgpOwogICAgIG1fdG9rZW4ubV9sb2NhdGlvbi5saW5lU3RhcnRPZmZzZXQgPSBzb3Vy
Y2Uuc3RhcnRPZmZzZXQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFy
c2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIu
aAkocmV2aXNpb24gMjA5NjI2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJz
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTc5MCw4ICsxNzkwLDggQEAgc3RkOjp1bmlxdWVfcHRy
PFBhcnNlZE5vZGU+IFBhcnNlcjxMZXhlcgogICAgIGVyck1zZyA9IFN0cmluZygpOwogCiAgICAg
SlNUb2tlbkxvY2F0aW9uIHN0YXJ0TG9jYXRpb24odG9rZW5Mb2NhdGlvbigpKTsKLSAgICBBU1NF
UlQobV9zb3VyY2UtPnN0YXJ0Q29sdW1uKCkgPiAwKTsKLSAgICB1bnNpZ25lZCBzdGFydENvbHVt
biA9IG1fc291cmNlLT5zdGFydENvbHVtbigpIC0gMTsKKyAgICBBU1NFUlQobV9zb3VyY2UtPnN0
YXJ0Q29sdW1uKCkgPiBPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpKTsKKyAgICB1bnNpZ25l
ZCBzdGFydENvbHVtbiA9IG1fc291cmNlLT5zdGFydENvbHVtbigpLnplcm9CYXNlZEludCgpOwog
CiAgICAgU3RyaW5nIHBhcnNlRXJyb3IgPSBwYXJzZUlubmVyKGNhbGxlZU5hbWUsIHBhcnNlTW9k
ZSk7CiAKQEAgLTE4MzAsNyArMTgzMCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxQYXJzZWROb2RlPiBQ
YXJzZXI8TGV4ZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRT
Y29wZSgpLT5pbm5lckFycm93RnVuY3Rpb25GZWF0dXJlcygpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbV9udW1Db25zdGFudHMsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBXVEZNb3ZlKG1fbW9kdWxlU2NvcGVEYXRhKSk7Ci0gICAgICAgIHJlc3Vs
dC0+c2V0TG9jKG1fc291cmNlLT5maXJzdExpbmUoKSwgbV9sZXhlci0+bGluZU51bWJlcigpLCBt
X2xleGVyLT5jdXJyZW50T2Zmc2V0KCksIG1fbGV4ZXItPmN1cnJlbnRMaW5lU3RhcnRPZmZzZXQo
KSk7CisgICAgICAgIHJlc3VsdC0+c2V0TG9jKG1fc291cmNlLT5maXJzdExpbmUoKS5vbmVCYXNl
ZEludCgpLCBtX2xleGVyLT5saW5lTnVtYmVyKCksIG1fbGV4ZXItPmN1cnJlbnRPZmZzZXQoKSwg
bV9sZXhlci0+Y3VycmVudExpbmVTdGFydE9mZnNldCgpKTsKICAgICAgICAgcmVzdWx0LT5zZXRF
bmRPZmZzZXQobV9sZXhlci0+Y3VycmVudE9mZnNldCgpKTsKIAogICAgICAgICBpZiAoIWlzRnVu
Y3Rpb25QYXJzZU1vZGUocGFyc2VNb2RlKSkgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Tb3VyY2VDb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BhcnNlci9Tb3VyY2VDb2RlLmgJKHJldmlzaW9uIDIwOTYyNykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvU291cmNlQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwzNCArMzYs
MzIgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgcHVibGljOgogICAgICAgICBTb3VyY2VDb2RlKCkK
ICAgICAgICAgICAgIDogVW5saW5rZWRTb3VyY2VDb2RlKCkKLSAgICAgICAgICAgICwgbV9maXJz
dExpbmUoMCkKLSAgICAgICAgICAgICwgbV9zdGFydENvbHVtbigwKQorICAgICAgICAgICAgLCBt
X2ZpcnN0TGluZShPcmRpbmFsTnVtYmVyOjpiZWZvcmVGaXJzdCgpKQorICAgICAgICAgICAgLCBt
X3N0YXJ0Q29sdW1uKE9yZGluYWxOdW1iZXI6OmJlZm9yZUZpcnN0KCkpCiAgICAgICAgIHsKICAg
ICAgICAgfQogCiAgICAgICAgIFNvdXJjZUNvZGUoUGFzc1JlZlB0cjxTb3VyY2VQcm92aWRlcj4g
cHJvdmlkZXIpCiAgICAgICAgICAgICA6IFVubGlua2VkU291cmNlQ29kZShwcm92aWRlcikKLSAg
ICAgICAgICAgICwgbV9maXJzdExpbmUoMSkKLSAgICAgICAgICAgICwgbV9zdGFydENvbHVtbigx
KQogICAgICAgICB7CiAgICAgICAgIH0KIAogICAgICAgICBTb3VyY2VDb2RlKFBhc3NSZWZQdHI8
U291cmNlUHJvdmlkZXI+IHByb3ZpZGVyLCBpbnQgZmlyc3RMaW5lLCBpbnQgc3RhcnRDb2x1bW4p
CiAgICAgICAgICAgICA6IFVubGlua2VkU291cmNlQ29kZShwcm92aWRlcikKLSAgICAgICAgICAg
ICwgbV9maXJzdExpbmUoc3RkOjptYXgoZmlyc3RMaW5lLCAxKSkKLSAgICAgICAgICAgICwgbV9z
dGFydENvbHVtbihzdGQ6Om1heChzdGFydENvbHVtbiwgMSkpCisgICAgICAgICAgICAsIG1fZmly
c3RMaW5lKE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChzdGQ6Om1heChmaXJzdExpbmUs
IDEpKSkKKyAgICAgICAgICAgICwgbV9zdGFydENvbHVtbihPcmRpbmFsTnVtYmVyOjpmcm9tT25l
QmFzZWRJbnQoc3RkOjptYXgoc3RhcnRDb2x1bW4sIDEpKSkKICAgICAgICAgewogICAgICAgICB9
CiAKICAgICAgICAgU291cmNlQ29kZShQYXNzUmVmUHRyPFNvdXJjZVByb3ZpZGVyPiBwcm92aWRl
ciwgaW50IHN0YXJ0T2Zmc2V0LCBpbnQgZW5kT2Zmc2V0LCBpbnQgZmlyc3RMaW5lLCBpbnQgc3Rh
cnRDb2x1bW4pCiAgICAgICAgICAgICA6IFVubGlua2VkU291cmNlQ29kZShwcm92aWRlciwgc3Rh
cnRPZmZzZXQsIGVuZE9mZnNldCkKLSAgICAgICAgICAgICwgbV9maXJzdExpbmUoc3RkOjptYXgo
Zmlyc3RMaW5lLCAxKSkKLSAgICAgICAgICAgICwgbV9zdGFydENvbHVtbihzdGQ6Om1heChzdGFy
dENvbHVtbiwgMSkpCisgICAgICAgICAgICAsIG1fZmlyc3RMaW5lKE9yZGluYWxOdW1iZXI6OmZy
b21PbmVCYXNlZEludChzdGQ6Om1heChmaXJzdExpbmUsIDEpKSkKKyAgICAgICAgICAgICwgbV9z
dGFydENvbHVtbihPcmRpbmFsTnVtYmVyOjpmcm9tT25lQmFzZWRJbnQoc3RkOjptYXgoc3RhcnRD
b2x1bW4sIDEpKSkKICAgICAgICAgewogICAgICAgICB9CiAKLSAgICAgICAgaW50IGZpcnN0TGlu
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlyc3RMaW5lOyB9Ci0gICAgICAgIGludCBzdGFydENvbHVt
bigpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRDb2x1bW47IH0KKyAgICAgICAgT3JkaW5hbE51bWJl
ciBmaXJzdExpbmUoKSBjb25zdCB7IHJldHVybiBtX2ZpcnN0TGluZTsgfQorICAgICAgICBPcmRp
bmFsTnVtYmVyIHN0YXJ0Q29sdW1uKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydENvbHVtbjsgfQog
CiAgICAgICAgIGludHB0cl90IHByb3ZpZGVySUQoKSBjb25zdAogICAgICAgICB7CkBAIC03Nyw4
ICs3NSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBTb3VyY2VDb2RlIHN1YkV4cHJlc3Np
b24odW5zaWduZWQgb3BlbkJyYWNlLCB1bnNpZ25lZCBjbG9zZUJyYWNlLCBpbnQgZmlyc3RMaW5l
LCBpbnQgc3RhcnRDb2x1bW4pOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgaW50IG1fZmlyc3RM
aW5lOwotICAgICAgICBpbnQgbV9zdGFydENvbHVtbjsKKyAgICAgICAgT3JkaW5hbE51bWJlciBt
X2ZpcnN0TGluZTsKKyAgICAgICAgT3JkaW5hbE51bWJlciBtX3N0YXJ0Q29sdW1uOwogICAgIH07
CiAKICAgICBpbmxpbmUgU291cmNlQ29kZSBtYWtlU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNl
LCBjb25zdCBTdHJpbmcmIHVybCA9IFN0cmluZygpLCBjb25zdCBUZXh0UG9zaXRpb24mIHN0YXJ0
UG9zaXRpb24gPSBUZXh0UG9zaXRpb24oKSwgU291cmNlUHJvdmlkZXJTb3VyY2VUeXBlIHNvdXJj
ZVR5cGUgPSBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6OlByb2dyYW0pCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHJldmlzaW9uIDIwOTYyNikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYyLDEwICs2MiwxMCBAQCBVbmxpbmtlZENvZGVCbG9ja1R5cGUqIENvZGVDYWNo
ZTo6Z2V0VW5sCiAgICAgaWYgKGNhY2hlICYmIE9wdGlvbnM6OnVzZUNvZGVDYWNoZSgpKSB7CiAg
ICAgICAgIFVubGlua2VkQ29kZUJsb2NrVHlwZSogdW5saW5rZWRDb2RlQmxvY2sgPSBqc0Nhc3Q8
VW5saW5rZWRDb2RlQmxvY2tUeXBlKj4oY2FjaGUtPmNlbGwuZ2V0KCkpOwogICAgICAgICB1bnNp
Z25lZCBsaW5lQ291bnQgPSB1bmxpbmtlZENvZGVCbG9jay0+bGluZUNvdW50KCk7Ci0gICAgICAg
IHVuc2lnbmVkIHN0YXJ0Q29sdW1uID0gdW5saW5rZWRDb2RlQmxvY2stPnN0YXJ0Q29sdW1uKCkg
KyBzb3VyY2Uuc3RhcnRDb2x1bW4oKTsKKyAgICAgICAgdW5zaWduZWQgc3RhcnRDb2x1bW4gPSB1
bmxpbmtlZENvZGVCbG9jay0+c3RhcnRDb2x1bW4oKSArIHNvdXJjZS5zdGFydENvbHVtbigpLm9u
ZUJhc2VkSW50KCk7CiAgICAgICAgIGJvb2wgZW5kQ29sdW1uSXNPblN0YXJ0TGluZSA9ICFsaW5l
Q291bnQ7CiAgICAgICAgIHVuc2lnbmVkIGVuZENvbHVtbiA9IHVubGlua2VkQ29kZUJsb2NrLT5l
bmRDb2x1bW4oKSArIChlbmRDb2x1bW5Jc09uU3RhcnRMaW5lID8gc3RhcnRDb2x1bW4gOiAxKTsK
LSAgICAgICAgZXhlY3V0YWJsZS0+cmVjb3JkUGFyc2UodW5saW5rZWRDb2RlQmxvY2stPmNvZGVG
ZWF0dXJlcygpLCB1bmxpbmtlZENvZGVCbG9jay0+aGFzQ2FwdHVyZWRWYXJpYWJsZXMoKSwgc291
cmNlLmZpcnN0TGluZSgpICsgbGluZUNvdW50LCBlbmRDb2x1bW4pOworICAgICAgICBleGVjdXRh
YmxlLT5yZWNvcmRQYXJzZSh1bmxpbmtlZENvZGVCbG9jay0+Y29kZUZlYXR1cmVzKCksIHVubGlu
a2VkQ29kZUJsb2NrLT5oYXNDYXB0dXJlZFZhcmlhYmxlcygpLCBzb3VyY2UuZmlyc3RMaW5lKCku
b25lQmFzZWRJbnQoKSArIGxpbmVDb3VudCwgZW5kQ29sdW1uKTsKICAgICAgICAgc291cmNlLnBy
b3ZpZGVyKCktPnNldFNvdXJjZVVSTERpcmVjdGl2ZSh1bmxpbmtlZENvZGVCbG9jay0+c291cmNl
VVJMRGlyZWN0aXZlKCkpOwogICAgICAgICBzb3VyY2UucHJvdmlkZXIoKS0+c2V0U291cmNlTWFw
cGluZ1VSTERpcmVjdGl2ZSh1bmxpbmtlZENvZGVCbG9jay0+c291cmNlTWFwcGluZ1VSTERpcmVj
dGl2ZSgpKTsKICAgICAgICAgcmV0dXJuIHVubGlua2VkQ29kZUJsb2NrOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0YWJsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1NjcmlwdEV4ZWN1dGFibGUuaAkocmV2aXNp
b24gMjA5NjI2KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU2NyaXB0RXhlY3V0
YWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMiArNDEsMTIgQEAgcHVibGljOgogICAgIGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CiAgICAg
aW50cHRyX3Qgc291cmNlSUQoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZS5wcm92aWRlcklEKCk7
IH0KICAgICBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
LnByb3ZpZGVyKCktPnVybCgpOyB9Ci0gICAgaW50IGZpcnN0TGluZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc291cmNlLmZpcnN0TGluZSgpOyB9CisgICAgaW50IGZpcnN0TGluZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc291cmNlLmZpcnN0TGluZSgpLm9uZUJhc2VkSW50KCk7IH0KICAgICB2b2lkIHNldE92
ZXJyaWRlTGluZU51bWJlcihpbnQgb3ZlcnJpZGVMaW5lTnVtYmVyKSB7IG1fb3ZlcnJpZGVMaW5l
TnVtYmVyID0gb3ZlcnJpZGVMaW5lTnVtYmVyOyB9CiAgICAgYm9vbCBoYXNPdmVycmlkZUxpbmVO
dW1iZXIoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRlTGluZU51bWJlciAhPSAtMTsgfQogICAg
IGludCBvdmVycmlkZUxpbmVOdW1iZXIoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRlTGluZU51
bWJlcjsgfQogICAgIGludCBsYXN0TGluZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdExpbmU7IH0K
LSAgICB1bnNpZ25lZCBzdGFydENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlLnN0YXJ0
Q29sdW1uKCk7IH0KKyAgICB1bnNpZ25lZCBzdGFydENvbHVtbigpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlLnN0YXJ0Q29sdW1uKCkub25lQmFzZWRJbnQoKTsgfQogICAgIHVuc2lnbmVkIGVuZENv
bHVtbigpIGNvbnN0IHsgcmV0dXJuIG1fZW5kQ29sdW1uOyB9CiAgICAgdW5zaWduZWQgdHlwZVBy
b2ZpbGluZ1N0YXJ0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV90eXBlUHJvZmlsaW5nU3RhcnRP
ZmZzZXQ7IH0KICAgICB1bnNpZ25lZCB0eXBlUHJvZmlsaW5nRW5kT2Zmc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlUHJvZmlsaW5nRW5kT2Zmc2V0OyB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvQ29kZVByb2ZpbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdG9vbHMvQ29kZVByb2ZpbGUuaAkocmV2aXNpb24gMjA5NjI2KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rvb2xzL0NvZGVQcm9maWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcg
KzM2LDcgQEAgY2xhc3MgQ29kZVByb2ZpbGUgewogcHVibGljOgogICAgIENvZGVQcm9maWxlKGNv
bnN0IFNvdXJjZUNvZGUmIHNvdXJjZSwgQ29kZVByb2ZpbGUqIHBhcmVudCkKICAgICAgICAgOiBt
X2ZpbGUoc291cmNlLnByb3ZpZGVyKCktPnVybCgpLnV0ZjgoKSkKLSAgICAgICAgLCBtX2xpbmVO
dW1iZXIoc291cmNlLmZpcnN0TGluZSgpKQorICAgICAgICAsIG1fbGluZU51bWJlcihzb3VyY2Uu
Zmlyc3RMaW5lKCkub25lQmFzZWRJbnQoKSkKICAgICAgICAgLCBtX3BhcmVudChwYXJlbnQpCiAg
ICAgewogICAgICAgICBpZiAocGFyZW50KQpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwOTYyNykKKysrIFNv
dXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYt
MTItMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBEZXBs
b3kgT3JkaW5hbE51bWJlciBpbiBKU0M6OlNvdXJjZUNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTY4NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL3RleHQvT3JkaW5hbE51bWJlci5oOgor
ICAgICAgICAoV1RGOjpPcmRpbmFsTnVtYmVyOjpvcGVyYXRvcj4pOiBBZGRlZCBhID4uCisKIDIw
MTYtMTItMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBU
ZXh0UG9zaXRpb24gYW5kIE9yZGluYWxOdW1iZXIgc2hvdWxkIGJlIG1vcmUgbGlrZSBpZGlvbWF0
aWMgbnVtYmVycwpJbmRleDogU291cmNlL1dURi93dGYvdGV4dC9PcmRpbmFsTnVtYmVyLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9PcmRpbmFsTnVtYmVyLmgJKHJldmlzaW9u
IDIwOTYyNykKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvT3JkaW5hbE51bWJlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSw2ICszMSw3IEBAIG5hbWVzcGFjZSBXVEYgewogLy8gY2FsbCBhIGZpcnN0
IGVsZW1lbnQgJzAnIG9yICcxJyB3aGljaCBtYWtlcyBpbnRlZ2VyIHR5cGUgYW1iaWd1b3VzLgog
Y2xhc3MgT3JkaW5hbE51bWJlciB7CiBwdWJsaWM6CisgICAgc3RhdGljIE9yZGluYWxOdW1iZXIg
YmVmb3JlRmlyc3QoKSB7IHJldHVybiBPcmRpbmFsTnVtYmVyKC0xKTsgfQogICAgIHN0YXRpYyBP
cmRpbmFsTnVtYmVyIGZyb21aZXJvQmFzZWRJbnQoaW50IHplcm9CYXNlZEludCkgeyByZXR1cm4g
T3JkaW5hbE51bWJlcih6ZXJvQmFzZWRJbnQpOyB9CiAgICAgc3RhdGljIE9yZGluYWxOdW1iZXIg
ZnJvbU9uZUJhc2VkSW50KGludCBvbmVCYXNlZEludCkgeyByZXR1cm4gT3JkaW5hbE51bWJlcihv
bmVCYXNlZEludCAtIDEpOyB9CiAKQEAgLTQxLDggKzQyLDcgQEAgcHVibGljOgogCiAgICAgYm9v
bCBvcGVyYXRvcj09KE9yZGluYWxOdW1iZXIgb3RoZXIpIHsgcmV0dXJuIG1femVyb0Jhc2VkVmFs
dWUgPT0gb3RoZXIubV96ZXJvQmFzZWRWYWx1ZTsgfQogICAgIGJvb2wgb3BlcmF0b3IhPShPcmRp
bmFsTnVtYmVyIG90aGVyKSB7IHJldHVybiAhKCgqdGhpcykgPT0gb3RoZXIpOyB9Ci0KLSAgICBz
dGF0aWMgT3JkaW5hbE51bWJlciBiZWZvcmVGaXJzdCgpIHsgcmV0dXJuIE9yZGluYWxOdW1iZXIo
LTEpOyB9CisgICAgYm9vbCBvcGVyYXRvcj4oT3JkaW5hbE51bWJlciBvdGhlcikgeyByZXR1cm4g
bV96ZXJvQmFzZWRWYWx1ZSA+IG90aGVyLm1femVyb0Jhc2VkVmFsdWU7IH0KIAogcHJpdmF0ZToK
ICAgICBPcmRpbmFsTnVtYmVyKGludCB6ZXJvQmFzZWRJbnQpIDogbV96ZXJvQmFzZWRWYWx1ZSh6
ZXJvQmFzZWRJbnQpIHsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA5NjI3KQorKysgU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTYtMTItMDkgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAgICBE
ZXBsb3kgT3JkaW5hbE51bWJlciBpbiBKU0M6OlNvdXJjZUNvZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTY4NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgZm9yIGludGVyZmFjZSBjaGFu
Z2VzLgorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZU1vZHVsZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0U291cmNlQ29kZTo6c3RhcnRMaW5lKToKKwogMjAxNi0xMi0wOSAgR2VvZmZyZXkgR2FyZW4g
IDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFRleHRQb3NpdGlvbiBhbmQgT3JkaW5hbE51
bWJlciBzaG91bGQgYmUgbW9yZSBsaWtlIGlkaW9tYXRpYyBudW1iZXJzCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24g
MjA5NjI3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Niw3ICsyNTYsNyBAQCBKU0M6OkpTVmFsdWUgU2NyaXB0
Q29udHJvbGxlcjo6ZXZhbHVhdGVNCiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3RvcihtX2ZyYW1l
KTsKIAotICAgIGF1dG8gY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZh
bHVhdGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJMLCBqc1NvdXJjZUNvZGUuZmlyc3RMaW5lKCkp
OworICAgIGF1dG8gY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsRXZhbHVh
dGVTY3JpcHQobV9mcmFtZSwgc291cmNlVVJMLCBqc1NvdXJjZUNvZGUuZmlyc3RMaW5lKCkub25l
QmFzZWRJbnQoKSk7CiAKICAgICBhdXRvIHJldHVyblZhbHVlID0gbW9kdWxlUmVjb3JkLmV2YWx1
YXRlKCZzdGF0ZSk7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRFdmFsdWF0ZVNj
cmlwdChjb29raWUsIG1fZnJhbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0U291cmNlQ29kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NjcmlwdFNvdXJjZUNvZGUuaAkocmV2aXNpb24gMjA5NjI3KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvU2NyaXB0U291cmNlQ29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3
ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIFN0cmluZ1ZpZXcgc291cmNlKCkgY29uc3QgeyByZXR1
cm4gbV9wcm92aWRlci0+c291cmNlKCk7IH0KIAotICAgIGludCBzdGFydExpbmUoKSBjb25zdCB7
IHJldHVybiBtX2NvZGUuZmlyc3RMaW5lKCk7IH0KKyAgICBpbnQgc3RhcnRMaW5lKCkgY29uc3Qg
eyByZXR1cm4gbV9jb2RlLmZpcnN0TGluZSgpLm9uZUJhc2VkSW50KCk7IH0KIAogICAgIENhY2hl
ZFNjcmlwdCogY2FjaGVkU2NyaXB0KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTY3JpcHQuZ2V0
KCk7IH0KIAo=
</data>
<flag name="review"
          id="319116"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>