<?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>128626</bug_id>
          
          <creation_ts>2014-02-11 14:01:46 -0800</creation_ts>
          <short_desc>Lowering of CheckArray in FTL not supported for all types.</short_desc>
          <delta_ts>2014-02-12 11:53:37 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Matthew Mirman">mmirman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>mmirman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>979598</commentid>
    <comment_count>0</comment_count>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-02-11 14:01:46 -0800</bug_when>
    <thetext>patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979618</commentid>
    <comment_count>1</comment_count>
      <attachid>223905</attachid>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-02-11 14:56:38 -0800</bug_when>
    <thetext>Created attachment 223905
Added more functionality to CheckArray</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979643</commentid>
    <comment_count>2</comment_count>
      <attachid>223905</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-11 15:59:49 -0800</bug_when>
    <thetext>Comment on attachment 223905
Added more functionality to CheckArray

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

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:-1756
&gt; -        LValue cell = lowCell(edge);

Why remove this here?

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1776
&gt; +            LValue cell = lowCell(edge);            

And move it here?

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1792
&gt; +        LValue cell = lowCell(m_node-&gt;child1());

... and then have to do it again here?  Seems like it was happiest at the top.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1794
&gt; +        LValue obj = m_out.loadPtr(m_out.address(cell , m_heaps.JSCell_structure)); 

I wouldn&apos;t call this &quot;obj&quot;.  I would call it &quot;structure&quot;.

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1798
&gt; +                , m_out.constIntPtr(expectedClassInfo)));

Weird indentation and comma placement.  Put the comma at the end of the previous line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979647</commentid>
    <comment_count>3</comment_count>
      <attachid>223910</attachid>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-02-11 16:07:15 -0800</bug_when>
    <thetext>Created attachment 223910
Added more functionality to CheckArray</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979652</commentid>
    <comment_count>4</comment_count>
      <attachid>223910</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-11 16:19:54 -0800</bug_when>
    <thetext>Comment on attachment 223910
Added more functionality to CheckArray

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

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4715
&gt; -        case Array::Contiguous: {
&gt; +        case Array::Contiguous: 
&gt; +        case Array::ArrayStorage: 
&gt; +        case Array::SlowPutArrayStorage: {
&gt;              LValue indexingType = m_out.load8(
&gt;                  m_out.loadPtr(cell, m_heaps.JSCell_structure),
&gt;                  m_heaps.Structure_indexingType);

I don&apos;t think that you can just add ArrayStorage and SlowPutArrayStorage here.  See SpeculativeJIT::jumpSlowForUnwantedArrayMode().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979666</commentid>
    <comment_count>5</comment_count>
      <attachid>223914</attachid>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-02-11 17:00:49 -0800</bug_when>
    <thetext>Created attachment 223914
Added more functionality to CheckArray</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979667</commentid>
    <comment_count>6</comment_count>
      <attachid>223915</attachid>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-02-11 17:03:18 -0800</bug_when>
    <thetext>Created attachment 223915
Added more functionality to CheckArray

There was a bug in the previous patch file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979670</commentid>
    <comment_count>7</comment_count>
      <attachid>223915</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-02-11 17:06:48 -0800</bug_when>
    <thetext>Comment on attachment 223915
Added more functionality to CheckArray

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

&gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1774
&gt; +        case Array::ArrayStorage: 
&gt; +        case Array::SlowPutArrayStorage: {

Since you&apos;re claiming to handle ArrayStorage and SlowPutArraySTorage but isArrayType() doesn&apos;t have cases for either, won&apos;t this generate bad code for ArrayStorage and SlowPutArrayStorage?  In particular, isArrayType() assumes that anything that isn&apos;t Array::Int32, Array::Double, Array::Contiguous can be checked using the class info.  That&apos;s wrong.

But even more fundamentally, why aren&apos;t all of your changes in isArrayType()?  For example, for typed arrays, your change just adds noise here in CheckArray.  isArrayType() would have done the right thing for those.  So, you could just teach isArrayType() to do the right thing for Arguments and ArrayStorage/SlowPutArrayStorage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979941</commentid>
    <comment_count>8</comment_count>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-02-12 11:53:37 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 223915 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=223915&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:1774
&gt; &gt; +        case Array::ArrayStorage: 
&gt; &gt; +        case Array::SlowPutArrayStorage: {
&gt; 
&gt; Since you&apos;re claiming to handle ArrayStorage and SlowPutArraySTorage but isArrayType() doesn&apos;t have cases for either, won&apos;t this generate bad code for ArrayStorage and SlowPutArrayStorage?  In particular, isArrayType() assumes that anything that isn&apos;t Array::Int32, Array::Double, Array::Contiguous can be checked using the class info.  That&apos;s wrong.
&gt; 
&gt; But even more fundamentally, why aren&apos;t all of your changes in isArrayType()?  For example, for typed arrays, your change just adds noise here in CheckArray.  isArrayType() would have done the right thing for those.  So, you could just teach isArrayType() to do the right thing for Arguments and ArrayStorage/SlowPutArrayStorage.

You&apos;re right, I got ahead of myself with the thing I was looking at after this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223905</attachid>
            <date>2014-02-11 14:56:38 -0800</date>
            <delta_ts>2014-02-11 16:07:15 -0800</delta_ts>
            <desc>Added more functionality to CheckArray</desc>
            <filename>0001-Added-more-functionality-to-CheckArray.patch</filename>
            <type>text/plain</type>
            <size>6281</size>
            <attacher name="Matthew Mirman">mmirman</attacher>
            
              <data encoding="base64">RnJvbSAyMzVhOTY4ZDliMmMyNzE3OGZkYTVlNDAxZTU5NjhjNGMwNDY5YzdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IE1pcm1hbiA8bW1pcm1hbkBhcHBsZS5jb20+CkRh
dGU6IFR1ZSwgMTEgRmViIDIwMTQgMTQ6MDI6MDggLTA4MDAKU3ViamVjdDogW1BBVENIXSBBZGRl
ZCBtb3JlIGZ1bmN0aW9uYWxpdHkgdG8gQ2hlY2tBcnJheQoKCmRpZmYgLS1naXQgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDc2NDJiMGUuLmE2YWM4MGMgMTAwNjQ0Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTQtMDItMTEgIE1hdHRoZXcgTWlybWFuICA8bW1pcm1hbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgRmluaXNoZWQgRlRMTG93ZXJpbmcgb2YgQ2hlY2tBcnJheQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NjI2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNw
cDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93
ZXJERkdUb0xMVk0uY3BwOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpjb21w
aWxlQ2hlY2tBcnJheSk6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmlzQXJy
YXlUeXBlKToKKyAgICAgICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWNoZWNrYXJyYXktaW50LmpzOiBB
ZGRlZC4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2Fy
cmF5LWNvbnRpZy5qczogQWRkZWQuCisgICAgICAgIChmb28pOgorCiAyMDE0LTAyLTExICBNYXJr
IEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgMzItYml0IExM
SW50IHdyaXRlQmFycmllck9uR2xvYmFsT2JqZWN0IGlzIHdyb25nCmRpZmYgLS1naXQgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAppbmRleCBmMmEwYzFlLi42ZGI5ZWIyIDEwMDY0
NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTEyNCw2ICsx
MjQsNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAg
ICBjYXNlIENoZWNrSW5Cb3VuZHM6CiAgICAgY2FzZSBDb25zdGFudFN0b3JhZ2VQb2ludGVyOgog
ICAgIGNhc2UgQ2hlY2s6CisgICAgY2FzZSBDaGVja0FycmF5OgogICAgIGNhc2UgQ291bnRFeGVj
dXRpb246CiAgICAgY2FzZSBDaGVja0V4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRTY29wZToKQEAg
LTE0OCwxOCArMTQ5LDYgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUq
IG5vZGUpCiAgICAgICAgIGlmIChpc1R5cGVkVmlldyhub2RlLT5hcnJheU1vZGUoKS50eXBlZEFy
cmF5VHlwZSgpKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICByZXR1cm4gQ2Fubm90Q29t
cGlsZTsKLSAgICBjYXNlIENoZWNrQXJyYXk6Ci0gICAgICAgIHN3aXRjaCAobm9kZS0+YXJyYXlN
b2RlKCkudHlwZSgpKSB7Ci0gICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgotICAgICAgICBjYXNl
IEFycmF5OjpEb3VibGU6Ci0gICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGlmIChpc1R5cGVkVmll
dyhub2RlLT5hcnJheU1vZGUoKS50eXBlZEFycmF5VHlwZSgpKSkKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwotICAgICAgICB9Ci0gICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgR2V0QXJyYXlMZW5ndGg6CiAgICAgICAgIHN3aXRjaCAobm9k
ZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CiAgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgpkaWZm
IC0tZ2l0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4IDA2Y2Nm
MDQuLjk1OWRiOWIgMTAwNjQ0Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9MTFZNLmNwcAorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1Rv
TExWTS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShGVExfSklUKQogCisjaW5j
bHVkZSAiQXJndW1lbnRzLmgiCiAjaW5jbHVkZSAiQ29kZUJsb2NrV2l0aEpJVFR5cGUuaCIKICNp
bmNsdWRlICJERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIgogI2luY2x1ZGUgIkRGR0lu
UGxhY2VBYnN0cmFjdFN0YXRlLmgiCkBAIC00Niw5ICs0NywxMiBAQAogI2luY2x1ZGUgPGF0b21p
Yz4KICNpbmNsdWRlIDx3dGYvUHJvY2Vzc0lELmg+CiAKKwogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwordXNpbmcgREZHOjpOb2RlOworCiAK
IHN0YXRpYyBzdGQ6OmF0b21pYzxpbnQ+IGNvbXBpbGVDb3VudGVyOwogCkBAIC0xNzUyLDE1ICsx
NzU2LDQ2IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdm9pZCBjb21waWxlQ2hlY2tBcnJheSgpCiAg
ICAgewotICAgICAgICBFZGdlIGVkZ2UgPSBtX25vZGUtPmNoaWxkMSgpOwotICAgICAgICBMVmFs
dWUgY2VsbCA9IGxvd0NlbGwoZWRnZSk7Ci0gICAgICAgIAotICAgICAgICBpZiAobV9ub2RlLT5h
cnJheU1vZGUoKS5hbHJlYWR5Q2hlY2tlZChtX2dyYXBoLCBtX25vZGUsIG1fc3RhdGUuZm9yTm9k
ZShlZGdlKSkpCisgICAgICAgIEFTU0VSVChtX25vZGUtPmFycmF5TW9kZSgpLmlzU3BlY2lmaWMo
KSk7CisgICAgICAgIEFTU0VSVCghbV9ub2RlLT5hcnJheU1vZGUoKS5kb2VzQ29udmVyc2lvbigp
KTsKKworICAgICAgICBjb25zdCBDbGFzc0luZm8qIGV4cGVjdGVkQ2xhc3NJbmZvID0gMDsKKwor
ICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CisgICAgICAgIGNh
c2UgQXJyYXk6OlN0cmluZzoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVE
KCk7IC8vIHNob3VsZCBoYXZlIGJlZW4gYSBQaGFudG9tKFN0cmluZzopCisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6CisgICAgICAgIGNhc2UgQXJyYXk6OkRv
dWJsZToKKyAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKKyAgICAgICAgY2FzZSBBcnJh
eTo6QXJyYXlTdG9yYWdlOiAKKyAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5U3RvcmFn
ZTogeworICAgICAgICAgICAgRWRnZSBlZGdlID0gbV9ub2RlLT5jaGlsZDEoKTsKKyAgICAgICAg
ICAgIGlmIChtX25vZGUtPmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fZ3JhcGgsIG1fbm9k
ZSwgbV9zdGF0ZS5mb3JOb2RlKGVkZ2UpKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwoZWRnZSk7ICAgICAgICAgICAgCisgICAgICAg
ICAgICBzcGVjdWxhdGUoQmFkSW5kZXhpbmdUeXBlLCBqc1ZhbHVlVmFsdWUoY2VsbCksIDAsCisg
ICAgICAgICAgICAgICAgbV9vdXQuYml0Tm90KGlzQXJyYXlUeXBlKGNlbGwsIG1fbm9kZS0+YXJy
YXlNb2RlKCkpKSk7CiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgY2Fz
ZSBBcnJheTo6QXJndW1lbnRzOiB7CisgICAgICAgICAgICBleHBlY3RlZENsYXNzSW5mbyA9IEFy
Z3VtZW50czo6aW5mbygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAg
ZGVmYXVsdDogeworICAgICAgICAgICAgZXhwZWN0ZWRDbGFzc0luZm8gPSBjbGFzc0luZm9Gb3JU
eXBlKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSk7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGV4cGVj
dGVkQ2xhc3NJbmZvKTsKKworICAgICAgICBMVmFsdWUgY2VsbCA9IGxvd0NlbGwobV9ub2RlLT5j
aGlsZDEoKSk7CisKKyAgICAgICAgTFZhbHVlIG9iaiA9IG1fb3V0LmxvYWRQdHIobV9vdXQuYWRk
cmVzcyhjZWxsICwgbV9oZWFwcy5KU0NlbGxfc3RydWN0dXJlKSk7IAogICAgICAgICAKLSAgICAg
ICAgc3BlY3VsYXRlKAotICAgICAgICAgICAgQmFkSW5kZXhpbmdUeXBlLCBqc1ZhbHVlVmFsdWUo
Y2VsbCksIDAsCi0gICAgICAgICAgICBtX291dC5iaXROb3QoaXNBcnJheVR5cGUoY2VsbCwgbV9u
b2RlLT5hcnJheU1vZGUoKSkpKTsKKyAgICAgICAgc3BlY3VsYXRlKEJhZEluZGV4aW5nVHlwZSwg
anNWYWx1ZVZhbHVlKGNlbGwpLCAwLAorICAgICAgICAgICAgbV9vdXQubm90RXF1YWwobV9vdXQu
YWRkUHRyKG9iaiwgbV9oZWFwcy5TdHJ1Y3R1cmVfY2xhc3NJbmZvLm9mZnNldCgpKQorICAgICAg
ICAgICAgICAgICwgbV9vdXQuY29uc3RJbnRQdHIoZXhwZWN0ZWRDbGFzc0luZm8pKSk7CiAgICAg
fQogCiAgICAgdm9pZCBjb21waWxlR2V0VHlwZWRBcnJheUJ5dGVPZmZzZXQoKQpAQCAtNDY3MCw3
ICs0NzA1LDkgQEAgcHJpdmF0ZToKICAgICAgICAgc3dpdGNoIChhcnJheU1vZGUudHlwZSgpKSB7
CiAgICAgICAgIGNhc2UgQXJyYXk6OkludDMyOgogICAgICAgICBjYXNlIEFycmF5OjpEb3VibGU6
Ci0gICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IHsKKyAgICAgICAgY2FzZSBBcnJheTo6
Q29udGlndW91czogCisgICAgICAgIGNhc2UgQXJyYXk6OkFycmF5U3RvcmFnZTogCisgICAgICAg
IGNhc2UgQXJyYXk6OlNsb3dQdXRBcnJheVN0b3JhZ2U6IHsKICAgICAgICAgICAgIExWYWx1ZSBp
bmRleGluZ1R5cGUgPSBtX291dC5sb2FkOCgKICAgICAgICAgICAgICAgICBtX291dC5sb2FkUHRy
KGNlbGwsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSksCiAgICAgICAgICAgICAgICAgbV9oZWFw
cy5TdHJ1Y3R1cmVfaW5kZXhpbmdUeXBlKTsKZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2FycmF5LWNvbnRpZy5qcyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2FycmF5LWNvbnRpZy5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hODlmZTNkCi0tLSAvZGV2L251bGwKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNoZWNrYXJyYXktY29udGlnLmpzCkBAIC0w
LDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyhhKXsKKyAgICByZXR1cm4gYVswXTsKK30KKworbm9J
bmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZh
ciBhID0gWyJhIiwgImJjIl07CisgICAgaWYgKGkgJiAxKSAKKyAgICAgICAgYS5mID0gMTA7Cisg
ICAgdmFyIHJlc3VsdCA9IGZvbyhhKTsKKyAgICBpZihyZXN1bHQgIT0gImEiKQorICAgICAgICB0
aHJvdyAoIkVycm9yOiBiYWQgcmVzdWx0IityZXN1bHQpOworfQorCisKZGlmZiAtLWdpdCBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2FycmF5LWludC5qcyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2FycmF5LWludC5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2ZhYzhjCi0tLSAvZGV2L251bGwKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNoZWNrYXJyYXktaW50Lmpz
CkBAIC0wLDAgKzEsMTYgQEAKK2Z1bmN0aW9uIGZvbyhhKXsKKyAgICByZXR1cm4gYVswXTsKK30K
Kworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgewor
ICAgIHZhciBhID0gWzQyXTsKKyAgICBpZiAoaSAmIDEpIAorICAgICAgICBhLmYgPSAxMDsKKyAg
ICB2YXIgcmVzdWx0ID0gZm9vKGEpOworICAgIGlmKHJlc3VsdCAhPSA0MikKKyAgICAgICAgdGhy
b3cgKCJFcnJvcjogYmFkIHJlc3VsdCIrcmVzdWx0KTsKK30KKworCi0tIAoxLjguMy4xIChBcHBs
ZSBHaXQtNDYpCgo=
</data>
<flag name="review"
          id="247971"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="247972"
          type_id="3"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223910</attachid>
            <date>2014-02-11 16:07:15 -0800</date>
            <delta_ts>2014-02-11 17:00:49 -0800</delta_ts>
            <desc>Added more functionality to CheckArray</desc>
            <filename>0001-Added-more-functionality-to-CheckArray.patch</filename>
            <type>text/plain</type>
            <size>6246</size>
            <attacher name="Matthew Mirman">mmirman</attacher>
            
              <data encoding="base64">RnJvbSAxM2VlYjQ3MzAwZTFlYTFkMWNkYzZkZjI0MjNhNjIxODg2MzVkMDI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IE1pcm1hbiA8bW1pcm1hbkBhcHBsZS5jb20+CkRh
dGU6IFR1ZSwgMTEgRmViIDIwMTQgMTQ6MDI6MDggLTA4MDAKU3ViamVjdDogW1BBVENIIDEvMl0g
QWRkZWQgbW9yZSBmdW5jdGlvbmFsaXR5IHRvIENoZWNrQXJyYXkKCgpkaWZmIC0tZ2l0IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA3NjQyYjBlLi5hNmFjODBjIDEwMDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDE0LTAyLTExICBNYXR0aGV3IE1pcm1hbiAgPG1taXJtYW5AYXBwbGUuY29tPgor
CisgICAgICAgIEZpbmlzaGVkIEZUTExvd2VyaW5nIG9mIENoZWNrQXJyYXkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODYyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZUNoZWNrQXJyYXkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpp
c0FycmF5VHlwZSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2FycmF5LWludC5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtY2hl
Y2thcnJheS1jb250aWcuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNC0wMi0xMSAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIDMyLWJp
dCBMTEludCB3cml0ZUJhcnJpZXJPbkdsb2JhbE9iamVjdCBpcyB3cm9uZwpkaWZmIC0tZ2l0IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggZjJhMGMxZS4uNmRiOWViMiAx
MDA2NDQKLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMjQs
NiArMTI0LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUp
CiAgICAgY2FzZSBDaGVja0luQm91bmRzOgogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRl
cjoKICAgICBjYXNlIENoZWNrOgorICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICBjYXNlIENvdW50
RXhlY3V0aW9uOgogICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgogICAgIGNhc2UgR2V0U2NvcGU6
CkBAIC0xNDgsMTggKzE0OSw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICBpZiAoaXNUeXBlZFZpZXcobm9kZS0+YXJyYXlNb2RlKCkudHlw
ZWRBcnJheVR5cGUoKSkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgcmV0dXJuIENhbm5v
dENvbXBpbGU7Ci0gICAgY2FzZSBDaGVja0FycmF5OgotICAgICAgICBzd2l0Y2ggKG5vZGUtPmFy
cmF5TW9kZSgpLnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKLSAgICAgICAg
Y2FzZSBBcnJheTo6RG91YmxlOgotICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBpZiAoaXNUeXBl
ZFZpZXcobm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSkpCi0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKLSAgICAgICAgfQot
ICAgICAgICBicmVhazsKICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOgogICAgICAgICBzd2l0Y2gg
KG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoK
ZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNw
cCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCAw
NmNjZjA0Li5lYjdhZTZhIDEwMDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvTExWTS5jcHAKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0xMVk0uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAor
I2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgi
CiAjaW5jbHVkZSAiREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCIKICNpbmNsdWRlICJE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIgpAQCAtNDYsOSArNDcsMTIgQEAKICNpbmNsdWRlIDxh
dG9taWM+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogCisKIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgRlRMIHsKIAogdXNpbmcgbmFtZXNwYWNlIERGRzsKK3VzaW5nIERGRzo6Tm9kZTsK
KwogCiBzdGF0aWMgc3RkOjphdG9taWM8aW50PiBjb21waWxlQ291bnRlcjsKIApAQCAtMTc1Miwx
NSArMTc1Niw0OCBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgY29tcGlsZUNoZWNrQXJyYXko
KQogICAgIHsKKyAgICAgICAgQVNTRVJUKG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNTcGVjaWZpYygp
KTsKKyAgICAgICAgQVNTRVJUKCFtX25vZGUtPmFycmF5TW9kZSgpLmRvZXNDb252ZXJzaW9uKCkp
OworCiAgICAgICAgIEVkZ2UgZWRnZSA9IG1fbm9kZS0+Y2hpbGQxKCk7Ci0gICAgICAgIExWYWx1
ZSBjZWxsID0gbG93Q2VsbChlZGdlKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChtX25vZGUtPmFy
cmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fZ3JhcGgsIG1fbm9kZSwgbV9zdGF0ZS5mb3JOb2Rl
KGVkZ2UpKSkKKworICAgICAgICBjb25zdCBDbGFzc0luZm8qIGV4cGVjdGVkQ2xhc3NJbmZvID0g
MDsKKworICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7CisgICAg
ICAgIGNhc2UgQXJyYXk6OlN0cmluZzoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IC8vIHNob3VsZCBoYXZlIGJlZW4gYSBQaGFudG9tKFN0cmluZzopCisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6CisgICAgICAgIGNhc2UgQXJy
YXk6OkRvdWJsZToKKyAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKKyAgICAgICAgY2Fz
ZSBBcnJheTo6QXJyYXlTdG9yYWdlOiAKKyAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFycmF5
U3RvcmFnZTogeworCisgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUoKS5hbHJlYWR5
Q2hlY2tlZChtX2dyYXBoLCBtX25vZGUsIG1fc3RhdGUuZm9yTm9kZShlZGdlKSkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKGVkZ2Up
OyAgICAgICAgICAgIAorICAgICAgICAgICAgc3BlY3VsYXRlKEJhZEluZGV4aW5nVHlwZSwganNW
YWx1ZVZhbHVlKGNlbGwpLCAwLAorICAgICAgICAgICAgICAgIG1fb3V0LmJpdE5vdChpc0FycmF5
VHlwZShjZWxsLCBtX25vZGUtPmFycmF5TW9kZSgpKSkpOwogICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIGNhc2UgQXJyYXk6OkFyZ3VtZW50czogeworICAgICAgICAgICAg
ZXhwZWN0ZWRDbGFzc0luZm8gPSBBcmd1bWVudHM6OmluZm8oKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIGV4cGVjdGVkQ2xh
c3NJbmZvID0gY2xhc3NJbmZvRm9yVHlwZShtX25vZGUtPmFycmF5TW9kZSgpLnR5cGVkQXJyYXlU
eXBlKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgfQorICAgICAg
ICBSRUxFQVNFX0FTU0VSVChleHBlY3RlZENsYXNzSW5mbyk7CisKKyAgICAgICAgTFZhbHVlIGNl
bGwgPSBsb3dDZWxsKGVkZ2UpOworCisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291dC5s
b2FkUHRyKG1fb3V0LmFkZHJlc3MoY2VsbCAsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSkpOyAK
ICAgICAgICAgCi0gICAgICAgIHNwZWN1bGF0ZSgKLSAgICAgICAgICAgIEJhZEluZGV4aW5nVHlw
ZSwganNWYWx1ZVZhbHVlKGNlbGwpLCAwLAotICAgICAgICAgICAgbV9vdXQuYml0Tm90KGlzQXJy
YXlUeXBlKGNlbGwsIG1fbm9kZS0+YXJyYXlNb2RlKCkpKSk7CisgICAgICAgIHNwZWN1bGF0ZShC
YWRJbmRleGluZ1R5cGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgMCwKKyAgICAgICAgICAgIG1fb3V0
Lm5vdEVxdWFsKG1fb3V0LmFkZFB0cihzdHJ1Y3R1cmUsIG1faGVhcHMuU3RydWN0dXJlX2NsYXNz
SW5mby5vZmZzZXQoKSksIAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKGV4cGVj
dGVkQ2xhc3NJbmZvKSkpOwogICAgIH0KIAogICAgIHZvaWQgY29tcGlsZUdldFR5cGVkQXJyYXlC
eXRlT2Zmc2V0KCkKQEAgLTQ2NzAsNyArNDcwNyw5IEBAIHByaXZhdGU6CiAgICAgICAgIHN3aXRj
aCAoYXJyYXlNb2RlLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKICAgICAg
ICAgY2FzZSBBcnJheTo6RG91YmxlOgotICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOiB7
CisgICAgICAgIGNhc2UgQXJyYXk6OkNvbnRpZ3VvdXM6IAorICAgICAgICBjYXNlIEFycmF5OjpB
cnJheVN0b3JhZ2U6IAorICAgICAgICBjYXNlIEFycmF5OjpTbG93UHV0QXJyYXlTdG9yYWdlOiB7
CiAgICAgICAgICAgICBMVmFsdWUgaW5kZXhpbmdUeXBlID0gbV9vdXQubG9hZDgoCiAgICAgICAg
ICAgICAgICAgbV9vdXQubG9hZFB0cihjZWxsLCBtX2hlYXBzLkpTQ2VsbF9zdHJ1Y3R1cmUpLAog
ICAgICAgICAgICAgICAgIG1faGVhcHMuU3RydWN0dXJlX2luZGV4aW5nVHlwZSk7CmRpZmYgLS1n
aXQgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2hlY2thcnJheS1jb250
aWcuanMgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2hlY2thcnJheS1j
b250aWcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTg5ZmUzZAotLS0g
L2Rldi9udWxsCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVj
a2FycmF5LWNvbnRpZy5qcwpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiBmb28oYSl7CisgICAg
cmV0dXJuIGFbMF07Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDAwOyArK2kpIHsKKyAgICB2YXIgYSA9IFsiYSIsICJiYyJdOworICAgIGlmIChpICYgMSkg
CisgICAgICAgIGEuZiA9IDEwOworICAgIHZhciByZXN1bHQgPSBmb28oYSk7CisgICAgaWYocmVz
dWx0ICE9ICJhIikKKyAgICAgICAgdGhyb3cgKCJFcnJvcjogYmFkIHJlc3VsdCIrcmVzdWx0KTsK
K30KKworCmRpZmYgLS1naXQgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwt
Y2hlY2thcnJheS1pbnQuanMgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwt
Y2hlY2thcnJheS1pbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWNm
YWM4YwotLS0gL2Rldi9udWxsCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2Z0bC1jaGVja2FycmF5LWludC5qcwpAQCAtMCwwICsxLDE2IEBACitmdW5jdGlvbiBmb28oYSl7
CisgICAgcmV0dXJuIGFbMF07Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgYSA9IFs0Ml07CisgICAgaWYgKGkgJiAxKSAK
KyAgICAgICAgYS5mID0gMTA7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhhKTsKKyAgICBpZihyZXN1
bHQgIT0gNDIpCisgICAgICAgIHRocm93ICgiRXJyb3I6IGJhZCByZXN1bHQiK3Jlc3VsdCk7Cit9
CisKKwotLSAKMS44LjMuMSAoQXBwbGUgR2l0LTQ2KQoK
</data>
<flag name="review"
          id="247978"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="247979"
          type_id="3"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223914</attachid>
            <date>2014-02-11 17:00:49 -0800</date>
            <delta_ts>2014-02-11 17:03:18 -0800</delta_ts>
            <desc>Added more functionality to CheckArray</desc>
            <filename>0001-Added-more-functionality-to-CheckArray.patch</filename>
            <type>text/plain</type>
            <size>5752</size>
            <attacher name="Matthew Mirman">mmirman</attacher>
            
              <data encoding="base64">RnJvbSAxM2VlYjQ3MzAwZTFlYTFkMWNkYzZkZjI0MjNhNjIxODg2MzVkMDI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IE1pcm1hbiA8bW1pcm1hbkBhcHBsZS5jb20+CkRh
dGU6IFR1ZSwgMTEgRmViIDIwMTQgMTQ6MDI6MDggLTA4MDAKU3ViamVjdDogW1BBVENIIDEvMl0g
QWRkZWQgbW9yZSBmdW5jdGlvbmFsaXR5IHRvIENoZWNrQXJyYXkKCgpkaWZmIC0tZ2l0IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA3NjQyYjBlLi5hNmFjODBjIDEwMDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDE0LTAyLTExICBNYXR0aGV3IE1pcm1hbiAgPG1taXJtYW5AYXBwbGUuY29tPgor
CisgICAgICAgIEZpbmlzaGVkIEZUTExvd2VyaW5nIG9mIENoZWNrQXJyYXkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODYyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZUNoZWNrQXJyYXkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpp
c0FycmF5VHlwZSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2FycmF5LWludC5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtY2hl
Y2thcnJheS1jb250aWcuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNC0wMi0xMSAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIDMyLWJp
dCBMTEludCB3cml0ZUJhcnJpZXJPbkdsb2JhbE9iamVjdCBpcyB3cm9uZwpkaWZmIC0tZ2l0IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggZjJhMGMxZS4uNmRiOWViMiAx
MDA2NDQKLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMjQs
NiArMTI0LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUp
CiAgICAgY2FzZSBDaGVja0luQm91bmRzOgogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRl
cjoKICAgICBjYXNlIENoZWNrOgorICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICBjYXNlIENvdW50
RXhlY3V0aW9uOgogICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgogICAgIGNhc2UgR2V0U2NvcGU6
CkBAIC0xNDgsMTggKzE0OSw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICBpZiAoaXNUeXBlZFZpZXcobm9kZS0+YXJyYXlNb2RlKCkudHlw
ZWRBcnJheVR5cGUoKSkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgcmV0dXJuIENhbm5v
dENvbXBpbGU7Ci0gICAgY2FzZSBDaGVja0FycmF5OgotICAgICAgICBzd2l0Y2ggKG5vZGUtPmFy
cmF5TW9kZSgpLnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKLSAgICAgICAg
Y2FzZSBBcnJheTo6RG91YmxlOgotICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBpZiAoaXNUeXBl
ZFZpZXcobm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSkpCi0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKLSAgICAgICAgfQot
ICAgICAgICBicmVhazsKICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOgogICAgICAgICBzd2l0Y2gg
KG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoK
ZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNw
cCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCAw
NmNjZjA0Li5lYjdhZTZhIDEwMDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvTExWTS5jcHAKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0xMVk0uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAor
I2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgi
CiAjaW5jbHVkZSAiREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCIKICNpbmNsdWRlICJE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIgpAQCAtNDYsNiArNDcsNyBAQAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwordXNpbmcgREZHOjpO
b2RlOwogCiBzdGF0aWMgc3RkOjphdG9taWM8aW50PiBjb21waWxlQ291bnRlcjsKIApAQCAtMTc1
MiwxNSArMTc1Niw0OCBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgY29tcGlsZUNoZWNrQXJy
YXkoKQogICAgIHsKKyAgICAgICAgQVNTRVJUKG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNTcGVjaWZp
YygpKTsKKyAgICAgICAgQVNTRVJUKCFtX25vZGUtPmFycmF5TW9kZSgpLmRvZXNDb252ZXJzaW9u
KCkpOworCiAgICAgICAgIEVkZ2UgZWRnZSA9IG1fbm9kZS0+Y2hpbGQxKCk7Ci0gICAgICAgIExW
YWx1ZSBjZWxsID0gbG93Q2VsbChlZGdlKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChtX25vZGUt
PmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fZ3JhcGgsIG1fbm9kZSwgbV9zdGF0ZS5mb3JO
b2RlKGVkZ2UpKSkKKworICAgICAgICBjb25zdCBDbGFzc0luZm8qIGV4cGVjdGVkQ2xhc3NJbmZv
ID0gMDsKKworICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7Cisg
ICAgICAgIGNhc2UgQXJyYXk6OlN0cmluZzoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IC8vIHNob3VsZCBoYXZlIGJlZW4gYSBQaGFudG9tKFN0cmluZzopCisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6CisgICAgICAgIGNhc2Ug
QXJyYXk6OkRvdWJsZToKKyAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKKyAgICAgICAg
Y2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOiAKKyAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFy
cmF5U3RvcmFnZTogeworCisgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUoKS5hbHJl
YWR5Q2hlY2tlZChtX2dyYXBoLCBtX25vZGUsIG1fc3RhdGUuZm9yTm9kZShlZGdlKSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKGVk
Z2UpOyAgICAgICAgICAgIAorICAgICAgICAgICAgc3BlY3VsYXRlKEJhZEluZGV4aW5nVHlwZSwg
anNWYWx1ZVZhbHVlKGNlbGwpLCAwLAorICAgICAgICAgICAgICAgIG1fb3V0LmJpdE5vdChpc0Fy
cmF5VHlwZShjZWxsLCBtX25vZGUtPmFycmF5TW9kZSgpKSkpOwogICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJyYXk6OkFyZ3VtZW50czogeworICAgICAgICAg
ICAgZXhwZWN0ZWRDbGFzc0luZm8gPSBBcmd1bWVudHM6OmluZm8oKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIGV4cGVjdGVk
Q2xhc3NJbmZvID0gY2xhc3NJbmZvRm9yVHlwZShtX25vZGUtPmFycmF5TW9kZSgpLnR5cGVkQXJy
YXlUeXBlKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBSRUxFQVNFX0FTU0VSVChleHBlY3RlZENsYXNzSW5mbyk7CisKKyAgICAgICAgTFZhbHVl
IGNlbGwgPSBsb3dDZWxsKGVkZ2UpOworCisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291
dC5sb2FkUHRyKG1fb3V0LmFkZHJlc3MoY2VsbCAsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSkp
OyAKICAgICAgICAgCi0gICAgICAgIHNwZWN1bGF0ZSgKLSAgICAgICAgICAgIEJhZEluZGV4aW5n
VHlwZSwganNWYWx1ZVZhbHVlKGNlbGwpLCAwLAotICAgICAgICAgICAgbV9vdXQuYml0Tm90KGlz
QXJyYXlUeXBlKGNlbGwsIG1fbm9kZS0+YXJyYXlNb2RlKCkpKSk7CisgICAgICAgIHNwZWN1bGF0
ZShCYWRJbmRleGluZ1R5cGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgMCwKKyAgICAgICAgICAgIG1f
b3V0Lm5vdEVxdWFsKG1fb3V0LmFkZFB0cihzdHJ1Y3R1cmUsIG1faGVhcHMuU3RydWN0dXJlX2Ns
YXNzSW5mby5vZmZzZXQoKSksIAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKGV4
cGVjdGVkQ2xhc3NJbmZvKSkpOwogICAgIH0KIAogICAgIHZvaWQgY29tcGlsZUdldFR5cGVkQXJy
YXlCeXRlT2Zmc2V0KCkKZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2Z0bC1jaGVja2FycmF5LWNvbnRpZy5qcyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2Z0bC1jaGVja2FycmF5LWNvbnRpZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hODlmZTNkCi0tLSAvZGV2L251bGwKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZnRsLWNoZWNrYXJyYXktY29udGlnLmpzCkBAIC0wLDAgKzEsMTUgQEAK
K2Z1bmN0aW9uIGZvbyhhKXsKKyAgICByZXR1cm4gYVswXTsKK30KKworbm9JbmxpbmUoZm9vKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBhID0gWyJhIiwg
ImJjIl07CisgICAgaWYgKGkgJiAxKSAKKyAgICAgICAgYS5mID0gMTA7CisgICAgdmFyIHJlc3Vs
dCA9IGZvbyhhKTsKKyAgICBpZihyZXN1bHQgIT0gImEiKQorICAgICAgICB0aHJvdyAoIkVycm9y
OiBiYWQgcmVzdWx0IityZXN1bHQpOworfQorCmRpZmYgLS1naXQgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2hlY2thcnJheS1pbnQuanMgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2hlY2thcnJheS1pbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZWNmYWM4YwotLS0gL2Rldi9udWxsCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2FycmF5LWludC5qcwpAQCAtMCwxICsxLDE1
IEBACitmdW5jdGlvbiBmb28oYSl7CisgICAgcmV0dXJuIGFbMF07Cit9CisKK25vSW5saW5lKGZv
byk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgYSA9IFs0
Ml07CisgICAgaWYgKGkgJiAxKSAKKyAgICAgICAgYS5mID0gMTA7CisgICAgdmFyIHJlc3VsdCA9
IGZvbyhhKTsKKyAgICBpZihyZXN1bHQgIT0gNDIpCisgICAgICAgIHRocm93ICgiRXJyb3I6IGJh
ZCByZXN1bHQiK3Jlc3VsdCk7Cit9CisKLS0gCjEuOC4zLjEgKEFwcGxlIEdpdC00NikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223915</attachid>
            <date>2014-02-11 17:03:18 -0800</date>
            <delta_ts>2014-02-11 17:06:48 -0800</delta_ts>
            <desc>Added more functionality to CheckArray</desc>
            <filename>0001-Added-more-functionality-to-CheckArray.patch</filename>
            <type>text/plain</type>
            <size>5725</size>
            <attacher name="Matthew Mirman">mmirman</attacher>
            
              <data encoding="base64">RnJvbSAxM2VlYjQ3MzAwZTFlYTFkMWNkYzZkZjI0MjNhNjIxODg2MzVkMDI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXR0aGV3IE1pcm1hbiA8bW1pcm1hbkBhcHBsZS5jb20+CkRh
dGU6IFR1ZSwgMTEgRmViIDIwMTQgMTQ6MDI6MDggLTA4MDAKU3ViamVjdDogW1BBVENIIDEvMl0g
QWRkZWQgbW9yZSBmdW5jdGlvbmFsaXR5IHRvIENoZWNrQXJyYXkKCgpkaWZmIC0tZ2l0IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA3NjQyYjBlLi5hNmFjODBjIDEwMDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NoYW5nZUxvZworKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDE0LTAyLTExICBNYXR0aGV3IE1pcm1hbiAgPG1taXJtYW5AYXBwbGUuY29tPgor
CisgICAgICAgIEZpbmlzaGVkIEZUTExvd2VyaW5nIG9mIENoZWNrQXJyYXkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODYyNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGll
cy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZU
TExvd2VyREZHVG9MTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpMb3dlckRGR1RvTExWTTo6
Y29tcGlsZUNoZWNrQXJyYXkpOgorICAgICAgICAoSlNDOjpGVEw6Okxvd2VyREZHVG9MTFZNOjpp
c0FycmF5VHlwZSk6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2FycmF5LWludC5q
czogQWRkZWQuCisgICAgICAgIChmb28pOgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9mdGwtY2hl
Y2thcnJheS1jb250aWcuanM6IEFkZGVkLgorICAgICAgICAoZm9vKToKKwogMjAxNC0wMi0xMSAg
TWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIDMyLWJp
dCBMTEludCB3cml0ZUJhcnJpZXJPbkdsb2JhbE9iamVjdCBpcyB3cm9uZwpkaWZmIC0tZ2l0IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggZjJhMGMxZS4uNmRiOWViMiAx
MDA2NDQKLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCkBAIC0xMjQs
NiArMTI0LDcgQEAgaW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUp
CiAgICAgY2FzZSBDaGVja0luQm91bmRzOgogICAgIGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRl
cjoKICAgICBjYXNlIENoZWNrOgorICAgIGNhc2UgQ2hlY2tBcnJheToKICAgICBjYXNlIENvdW50
RXhlY3V0aW9uOgogICAgIGNhc2UgQ2hlY2tFeGVjdXRhYmxlOgogICAgIGNhc2UgR2V0U2NvcGU6
CkBAIC0xNDgsMTggKzE0OSw2IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShO
b2RlKiBub2RlKQogICAgICAgICBpZiAoaXNUeXBlZFZpZXcobm9kZS0+YXJyYXlNb2RlKCkudHlw
ZWRBcnJheVR5cGUoKSkpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgcmV0dXJuIENhbm5v
dENvbXBpbGU7Ci0gICAgY2FzZSBDaGVja0FycmF5OgotICAgICAgICBzd2l0Y2ggKG5vZGUtPmFy
cmF5TW9kZSgpLnR5cGUoKSkgewotICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoKLSAgICAgICAg
Y2FzZSBBcnJheTo6RG91YmxlOgotICAgICAgICBjYXNlIEFycmF5OjpDb250aWd1b3VzOgotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICBpZiAoaXNUeXBl
ZFZpZXcobm9kZS0+YXJyYXlNb2RlKCkudHlwZWRBcnJheVR5cGUoKSkpCi0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICByZXR1cm4gQ2Fubm90Q29tcGlsZTsKLSAgICAgICAgfQot
ICAgICAgICBicmVhazsKICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOgogICAgICAgICBzd2l0Y2gg
KG5vZGUtPmFycmF5TW9kZSgpLnR5cGUoKSkgewogICAgICAgICBjYXNlIEFycmF5OjpJbnQzMjoK
ZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNw
cCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAppbmRleCAw
NmNjZjA0Li5lYjdhZTZhIDEwMDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExM
b3dlckRGR1RvTExWTS5jcHAKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJE
RkdUb0xMVk0uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoRlRMX0pJVCkKIAor
I2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja1dpdGhKSVRUeXBlLmgi
CiAjaW5jbHVkZSAiREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCIKICNpbmNsdWRlICJE
RkdJblBsYWNlQWJzdHJhY3RTdGF0ZS5oIgpAQCAtNDYsNiArNDcsNyBAQAogbmFtZXNwYWNlIEpT
QyB7IG5hbWVzcGFjZSBGVEwgewogCiB1c2luZyBuYW1lc3BhY2UgREZHOwordXNpbmcgREZHOjpO
b2RlOwogCiBzdGF0aWMgc3RkOjphdG9taWM8aW50PiBjb21waWxlQ291bnRlcjsKIApAQCAtMTc1
MiwxNSArMTc1Niw0OCBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgY29tcGlsZUNoZWNrQXJy
YXkoKQogICAgIHsKKyAgICAgICAgQVNTRVJUKG1fbm9kZS0+YXJyYXlNb2RlKCkuaXNTcGVjaWZp
YygpKTsKKyAgICAgICAgQVNTRVJUKCFtX25vZGUtPmFycmF5TW9kZSgpLmRvZXNDb252ZXJzaW9u
KCkpOworCiAgICAgICAgIEVkZ2UgZWRnZSA9IG1fbm9kZS0+Y2hpbGQxKCk7Ci0gICAgICAgIExW
YWx1ZSBjZWxsID0gbG93Q2VsbChlZGdlKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChtX25vZGUt
PmFycmF5TW9kZSgpLmFscmVhZHlDaGVja2VkKG1fZ3JhcGgsIG1fbm9kZSwgbV9zdGF0ZS5mb3JO
b2RlKGVkZ2UpKSkKKworICAgICAgICBjb25zdCBDbGFzc0luZm8qIGV4cGVjdGVkQ2xhc3NJbmZv
ID0gMDsKKworICAgICAgICBzd2l0Y2ggKG1fbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpKSB7Cisg
ICAgICAgIGNhc2UgQXJyYXk6OlN0cmluZzoKKyAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IC8vIHNob3VsZCBoYXZlIGJlZW4gYSBQaGFudG9tKFN0cmluZzopCisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBBcnJheTo6SW50MzI6CisgICAgICAgIGNhc2Ug
QXJyYXk6OkRvdWJsZToKKyAgICAgICAgY2FzZSBBcnJheTo6Q29udGlndW91czoKKyAgICAgICAg
Y2FzZSBBcnJheTo6QXJyYXlTdG9yYWdlOiAKKyAgICAgICAgY2FzZSBBcnJheTo6U2xvd1B1dEFy
cmF5U3RvcmFnZTogeworCisgICAgICAgICAgICBpZiAobV9ub2RlLT5hcnJheU1vZGUoKS5hbHJl
YWR5Q2hlY2tlZChtX2dyYXBoLCBtX25vZGUsIG1fc3RhdGUuZm9yTm9kZShlZGdlKSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKGVk
Z2UpOyAgICAgICAgICAgIAorICAgICAgICAgICAgc3BlY3VsYXRlKEJhZEluZGV4aW5nVHlwZSwg
anNWYWx1ZVZhbHVlKGNlbGwpLCAwLAorICAgICAgICAgICAgICAgIG1fb3V0LmJpdE5vdChpc0Fy
cmF5VHlwZShjZWxsLCBtX25vZGUtPmFycmF5TW9kZSgpKSkpOwogICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIGNhc2UgQXJyYXk6OkFyZ3VtZW50czogeworICAgICAgICAg
ICAgZXhwZWN0ZWRDbGFzc0luZm8gPSBBcmd1bWVudHM6OmluZm8oKTsKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6IHsKKyAgICAgICAgICAgIGV4cGVjdGVk
Q2xhc3NJbmZvID0gY2xhc3NJbmZvRm9yVHlwZShtX25vZGUtPmFycmF5TW9kZSgpLnR5cGVkQXJy
YXlUeXBlKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICBSRUxFQVNFX0FTU0VSVChleHBlY3RlZENsYXNzSW5mbyk7CisKKyAgICAgICAgTFZhbHVl
IGNlbGwgPSBsb3dDZWxsKGVkZ2UpOworCisgICAgICAgIExWYWx1ZSBzdHJ1Y3R1cmUgPSBtX291
dC5sb2FkUHRyKG1fb3V0LmFkZHJlc3MoY2VsbCAsIG1faGVhcHMuSlNDZWxsX3N0cnVjdHVyZSkp
OyAKICAgICAgICAgCi0gICAgICAgIHNwZWN1bGF0ZSgKLSAgICAgICAgICAgIEJhZEluZGV4aW5n
VHlwZSwganNWYWx1ZVZhbHVlKGNlbGwpLCAwLAotICAgICAgICAgICAgbV9vdXQuYml0Tm90KGlz
QXJyYXlUeXBlKGNlbGwsIG1fbm9kZS0+YXJyYXlNb2RlKCkpKSk7CisgICAgICAgIHNwZWN1bGF0
ZShCYWRJbmRleGluZ1R5cGUsIGpzVmFsdWVWYWx1ZShjZWxsKSwgMCwKKyAgICAgICAgICAgIG1f
b3V0Lm5vdEVxdWFsKG1fb3V0LmFkZFB0cihzdHJ1Y3R1cmUsIG1faGVhcHMuU3RydWN0dXJlX2Ns
YXNzSW5mby5vZmZzZXQoKSksIAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50UHRyKGV4
cGVjdGVkQ2xhc3NJbmZvKSkpOwogICAgIH0KIAogICAgIHZvaWQgY29tcGlsZUdldFR5cGVkQXJy
YXlCeXRlT2Zmc2V0KCkKZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2Z0bC1jaGVja2FycmF5LWNvbnRpZy5qcyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL2Z0bC1jaGVja2FycmF5LWNvbnRpZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hODlmZTNkCi0tLSAvZGV2L251bGwKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3MvZnRsLWNoZWNrYXJyYXktY29udGlnLmpzCkBAIC0wLDAgKzEsMTUgQEAK
K2Z1bmN0aW9uIGZvbyhhKXsKKyAgICByZXR1cm4gYVswXTsKK30KKworbm9JbmxpbmUoZm9vKTsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDA7ICsraSkgeworICAgIHZhciBhID0gWyJhIiwg
ImJjIl07CisgICAgaWYgKGkgJiAxKSAKKyAgICAgICAgYS5mID0gMTA7CisgICAgdmFyIHJlc3Vs
dCA9IGZvbyhhKTsKKyAgICBpZihyZXN1bHQgIT0gImEiKQorICAgICAgICB0aHJvdyAoIkVycm9y
OiBiYWQgcmVzdWx0IityZXN1bHQpOworfQorCmRpZmYgLS1naXQgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2hlY2thcnJheS1pbnQuanMgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2hlY2thcnJheS1pbnQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZWNmYWM4YwotLS0gL2Rldi9udWxsCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2FycmF5LWludC5qcwpAQCAtMCwwICsxLDE1
IEBACitmdW5jdGlvbiBmb28oYSl7CisgICAgcmV0dXJuIGFbMF07Cit9CisKK25vSW5saW5lKGZv
byk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDAwOyArK2kpIHsKKyAgICB2YXIgYSA9IFs0
Ml07CisgICAgaWYgKGkgJiAxKSAKKyAgICAgICAgYS5mID0gMTA7CisgICAgdmFyIHJlc3VsdCA9
IGZvbyhhKTsKKyAgICBpZihyZXN1bHQgIT0gNDIpCisgICAgICAgIHRocm93ICgiRXJyb3I6IGJh
ZCByZXN1bHQiK3Jlc3VsdCk7Cit9CisKCg==
</data>
<flag name="review"
          id="247984"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
    <flag name="commit-queue"
          id="247985"
          type_id="3"
          status="-"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>