<?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>48500</bug_id>
          
          <creation_ts>2010-10-27 21:26:50 -0700</creation_ts>
          <short_desc>webkit-patch suggest-reviewers -g 260550a6e30b7bf34f16bdb4a5396cf26264fc1c is very slow</short_desc>
          <delta_ts>2010-10-28 14:14:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>48565</blocked>
    
    <blocked>48536</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>evan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>300858</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-27 21:26:50 -0700</bug_when>
    <thetext>webkit-patch suggest-reviewers -g 260550a6e30b7bf34f16bdb4a5396cf26264fc1c is very slow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300860</commentid>
    <comment_count>1</comment_count>
      <attachid>72137</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-27 21:30:49 -0700</bug_when>
    <thetext>Created attachment 72137
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300861</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-27 21:32:47 -0700</bug_when>
    <thetext>Evan (or anyone else): if you have suggestions on how to make our git log codepath faster for Git.revisions_changing_file I&apos;d love to hear them. :)

http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/checkout/scm.py#L676</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300865</commentid>
    <comment_count>3</comment_count>
      <attachid>72138</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-27 21:48:07 -0700</bug_when>
    <thetext>Created attachment 72138
Deploy @memoized to one more place</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300873</commentid>
    <comment_count>4</comment_count>
      <attachid>72138</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-27 21:55:43 -0700</bug_when>
    <thetext>Comment on attachment 72138
Deploy @memoized to one more place

Mind -&gt; blown</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300879</commentid>
    <comment_count>5</comment_count>
      <attachid>72138</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-27 22:12:50 -0700</bug_when>
    <thetext>Comment on attachment 72138
Deploy @memoized to one more place

Clearing flags on attachment: 72138

Committed r70747: &lt;http://trac.webkit.org/changeset/70747&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>300880</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-27 22:12:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301132</commentid>
    <comment_count>7</comment_count>
    <who name="Evan Martin">evan</who>
    <bug_when>2010-10-28 10:09:24 -0700</bug_when>
    <thetext>&quot;git&quot;, &quot;log&quot;, &quot;--pretty=format:%H&quot;, &quot;-%s&quot; % limit, &quot;--&quot;, path

is the same as

git rev-list HEAD -- path | head -&lt;limit&gt;

but I expect they have the same big-O</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72137</attachid>
            <date>2010-10-27 21:30:49 -0700</date>
            <delta_ts>2010-10-27 21:46:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48500-20101027213047.patch</filename>
            <type>text/plain</type>
            <size>10029</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlNjcyMTdhNWMzMjI5MTUwNjBiNzQ5OGNmYzYxMDcyZjY1YzA4MTQ0Li4wOTg2MWEz
YmJiYWI0ZDI1ZGNkZWUyMWU1ZDNmYWU2ZTE3NDgxZDk2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQgQEAK
IDIwMTAtMTAtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBzdWdnZXN0
LXJldmlld2VycyAtZyAyNjA1NTBhNmUzMGI3YmYzNGYxNmJkYjRhNTM5NmNmMjYyNjRmYzFjIGlz
IHZlcnkgc2xvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDg1MDAKKworICAgICAgICBUaGlzIGRvZXNuJ3QgZml4IHRoZSBwcm9ibGVtLCBidXQgaXQg
bWFrZXMgdGhpbmdzIHNsaWdodGx5IGJldHRlci4KKyAgICAgICAgRWFjaCBnaXQgc3ZuIGZpbmQt
cmV2IGNhbGwgdGFrZXMgYWJvdXQgLjI1IHNlY29uZHMgb24gbXkgZGVza3RvcC4KKyAgICAgICAg
VGhpcyBwYXRjaCB1c2VzIGEgbmV3IG1lbW9pemVkIGNsYXNzIHRvIGF2b2lkIHRob3NlIGNhbGxz
IHdoZW4gcG9zc2libGUuCisKKyAgICAgICAgVGhlIHJlYWwgc2xvd25lc3MgaXMgc3RpbGwgZ2l0
IGxvZyBvbiBzb21lIGZpbGVzLCBsaWtlOgorICAgICAgICBnaXQgbG9nIC0tcHJldHR5PWZvcm1h
dDolSCAtNSAtLSAvUHJvamVjdHMvV2ViS2l0L1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9w
dXBNZW51V3guaAorICAgICAgICBJJ20gbm90IHlldCBzdXJlIGhvdyB0byBtYWtlIHRoZSBwYXRo
b2xvZ2ljYWwgZ2l0IGxvZ3MgYmV0dGVyLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvc2NtLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L21lbW9pemVkLnB5OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9t
ZW1vaXplZF91bml0dGVzdC5weTogQWRkZWQuCisKKzIwMTAtMTAtMjcgIEVyaWMgU2VpZGVsICA8
ZXJpY0B3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCiAKICAg
ICAgICAgRVdTIGJvdHMgc2hvdWxkIG5vdCB1c2UgLS1xdWlldCB3aGVuIHJ1bm5pbmcgYnVpbGQt
d2Via2l0CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
aGVja291dC9zY20ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20ucHkKaW5kZXggN2UzYWQ0ZDBmNGQ3MWFlNzEwMzVjYjU5MDM2ZjgyY2YwNDA4OWJk
Mi4uZTAxMjlhMGM5YTdjMDUxN2U0NDg5YzAxODAzMTVlZTY3OGNjYzM0YSAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS5weQpAQCAt
MzYsNiArMzYsNyBAQCBpbXBvcnQgc2h1dGlsCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgcnVuX2NvbW1hbmQsIFNjcmlwdEVycm9yCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5nIGltcG9ydCBlcnJv
ciwgbG9nCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKIAog
CiBkZWYgZmluZF9jaGVja291dF9yb290KCk6CkBAIC01NzIsNiArNTczLDcgQEAgY2xhc3MgU1ZO
KFNDTSk6CiAgICAgICAgIGRpciwgYmFzZSA9IG9zLnBhdGguc3BsaXQocGF0aCkKICAgICAgICAg
cmV0dXJuIHNlbGYucnVuKFsnc3ZuJywgJ3BnZXQnLCBwbmFtZSwgYmFzZV0sIGN3ZD1kaXIpLmVu
Y29kZSgndXRmLTgnKS5yc3RyaXAoIlxuIikKIAorCiAjIEFsbCBnaXQtc3BlY2lmaWMgbG9naWMg
c2hvdWxkIGdvIGhlcmUuCiBjbGFzcyBHaXQoU0NNKToKICAgICBkZWYgX19pbml0X18oc2VsZiwg
Y3dkKToKQEAgLTcwMywyMSArNzA1LDI5IEBAIGNsYXNzIEdpdChTQ00pOgogICAgICAgICAjIEZJ
WE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1c2UgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdAogICAg
ICAgICByZXR1cm4gc2VsZi5ydW4oWydnaXQnLCAnZGlmZicsICctLWJpbmFyeScsICItLW5vLWV4
dC1kaWZmIiwgIi0tZnVsbC1pbmRleCIsICItTSIsIHNlbGYubWVyZ2VfYmFzZShnaXRfY29tbWl0
KSwgIi0tIl0gKyBjaGFuZ2VkX2ZpbGVzLCBkZWNvZGVfb3V0cHV0PUZhbHNlKQogCi0gICAgQGNs
YXNzbWV0aG9kCi0gICAgZGVmIGdpdF9jb21taXRfZnJvbV9zdm5fcmV2aXNpb24oY2xzLCByZXZp
c2lvbik6Ci0gICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IHVzZSBjd2Q9c2Vs
Zi5jaGVja291dF9yb290Ci0gICAgICAgIGdpdF9jb21taXQgPSBydW5fY29tbWFuZChbJ2dpdCcs
ICdzdm4nLCAnZmluZC1yZXYnLCAnciVzJyAlIHJldmlzaW9uXSkucnN0cmlwKCkKLSAgICAgICAg
IyBnaXQgc3ZuIGZpbmQtcmV2IGFsd2F5cyBleGl0cyAwLCBldmVuIHdoZW4gdGhlIHJldmlzaW9u
IGlzIG5vdCBmb3VuZC4KLSAgICAgICAgaWYgbm90IGdpdF9jb21taXQ6Ci0gICAgICAgICAgICBy
YWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSdGYWlsZWQgdG8gZmluZCBnaXQgY29tbWl0IGZvciBy
ZXZpc2lvbiAlcywgeW91ciBjaGVja291dCBsaWtlbHkgbmVlZHMgYW4gdXBkYXRlLicgJSByZXZp
c2lvbikKLSAgICAgICAgcmV0dXJuIGdpdF9jb21taXQKKyAgICBkZWYgX3J1bl9naXRfc3ZuX2Zp
bmRfcmV2KHNlbGYsIGFyZyk6CisgICAgICAgICMgZ2l0IHN2biBmaW5kLXJldiBhbHdheXMgZXhp
dHMgMCwgZXZlbiB3aGVuIHRoZSByZXZpc2lvbiBvciBjb21taXQgaXMgbm90IGZvdW5kLgorICAg
ICAgICByZXR1cm4gc2VsZi5ydW4oWydnaXQnLCAnc3ZuJywgJ2ZpbmQtcmV2JywgYXJnXSwgY3dk
PXNlbGYuY2hlY2tvdXRfcm9vdCkucnN0cmlwKCkKIAotICAgIGRlZiBzdm5fcmV2aXNpb25fZnJv
bV9naXRfY29tbWl0KHNlbGYsIGNvbW1pdF9pZCk6CisgICAgZGVmIF9zdHJpbmdfdG9faW50X29y
X25vbmUoc2VsZiwgc3RyaW5nKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIGlu
dChzZWxmLnJ1bihbJ2dpdCcsICdzdm4nLCAnZmluZC1yZXYnLCBjb21taXRfaWRdKS5yc3RyaXAo
KSkKKyAgICAgICAgICAgIHJldHVybiBpbnQoc3RyaW5nKQogICAgICAgICBleGNlcHQgVmFsdWVF
cnJvciwgZToKICAgICAgICAgICAgIHJldHVybiBOb25lCiAKKyAgICBAbWVtb2l6ZWQKKyAgICBk
ZWYgZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZpc2lvbihzZWxmLCBzdm5fcmV2aXNpb24pOgorICAg
ICAgICBnaXRfY29tbWl0ID0gc2VsZi5fcnVuX2dpdF9zdm5fZmluZF9yZXYoJ3IlcycgJSBzdm5f
cmV2aXNpb24pCisgICAgICAgIGlmIG5vdCBnaXRfY29tbWl0OgorICAgICAgICAgICAgIyBGSVhN
RTogQWx0ZXJuYXRpdmVseSB3ZSBjb3VsZCBvZmZlciB0byB1cGRhdGUgdGhlIGNoZWNrb3V0PyBP
ciByZXR1cm4gTm9uZT8KKyAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKG1lc3NhZ2U9J0Zh
aWxlZCB0byBmaW5kIGdpdCBjb21taXQgZm9yIHJldmlzaW9uICVzLCB5b3VyIGNoZWNrb3V0IGxp
a2VseSBuZWVkcyBhbiB1cGRhdGUuJyAlIHN2bl9yZXZpc2lvbikKKyAgICAgICAgcmV0dXJuIGdp
dF9jb21taXQKKworICAgIEBtZW1vaXplZAorICAgIGRlZiBzdm5fcmV2aXNpb25fZnJvbV9naXRf
Y29tbWl0KHNlbGYsIGdpdF9jb21taXQpOgorICAgICAgICBzdm5fcmV2aXNpb24gPSBzZWxmLl9y
dW5fZ2l0X3N2bl9maW5kX3JldihnaXRfY29tbWl0KQorICAgICAgICByZXR1cm4gc2VsZi5fc3Ry
aW5nX3RvX2ludF9vcl9ub25lKHN2bl9yZXZpc2lvbikKKwogICAgIGRlZiBjb250ZW50c19hdF9y
ZXZpc2lvbihzZWxmLCBwYXRoLCByZXZpc2lvbik6CiAgICAgICAgICIiIlJldHVybnMgYSBieXRl
IGFycmF5IChzdHIoKSkgY29udGFpbmluZyB0aGUgY29udGVudHMKICAgICAgICAgb2YgcGF0aCBA
IHJldmlzaW9uIGluIHRoZSByZXBvc2l0b3J5LiIiIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVtb2l6ZWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9tZW1vaXplZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYzg0NGE1M2FiMmQ4ZGMz
M2VkNTFiM2YwNjY5MTY2OGU3MzdmMGFlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVtb2l6ZWQucHkKQEAgLTAsMCArMSw1NSBAQAorIyBD
b3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisKKyMgUHl0aG9uIGRvZXMgbm90ICh5ZXQpIHNlZW0gdG8gcHJvdmlkZSBh
dXRvbWF0aWMgbWVtb2l6YXRpb24uICBTbyB3ZSd2ZQorIyB3cml0dGVuIGEgc21hbGwgZGVjb3Jh
dG9yIHRvIGRvIHNvLgorCitpbXBvcnQgZnVuY3Rvb2xzCisKKworY2xhc3MgbWVtb2l6ZWQob2Jq
ZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuY3Rpb24pOgorICAgICAgICBzZWxmLl9m
dW5jdGlvbiA9IGZ1bmN0aW9uCisgICAgICAgIHNlbGYuX3Jlc3VsdHNfY2FjaGUgPSB7fQorCisg
ICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX3Jlc3VsdHNfY2FjaGVbYXJnc10KKyAgICAgICAgZXhjZXB0IEtleUVycm9y
OgorICAgICAgICAgICAgIyBJZiB3ZSBkaWRuJ3QgZmluZCB0aGUgYXJncyBpbiBvdXIgY2FjaGUs
IGNhbGwgYW5kIHNhdmUgdGhlIHJlc3VsdHMuCisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9m
dW5jdGlvbigqYXJncykKKyAgICAgICAgICAgIHNlbGYuX3Jlc3VsdHNfY2FjaGVbYXJnc10gPSBy
ZXN1bHQKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAgICAgIyBGSVhNRTogV2UgbWF5
IG5lZWQgdG8gaGFuZGxlIFR5cGVFcnJvciBoZXJlIGluIHRoZSBjYXNlCisgICAgICAgICMgdGhh
dCAiYXJncyIgaXMgbm90IGEgdmFsaWQgZGljdGlvbmFyeSBrZXkuCisKKyAgICAjIFVzZSBweXRo
b24gImRlc2NyaXB0b3IiIHByb3RvY29sIF9fZ2V0X18gdG8gYXBwZWFyCisgICAgIyBpbnZpc2li
bGUgZHVyaW5nIHByb3BlcnR5IGFjY2Vzcy4KKyAgICBkZWYgX19nZXRfXyhzZWxmLCBpbnN0YW5j
ZSwgb3duZXIpOgorICAgICAgICAjIFJldHVybiBhIGZ1bmN0aW9uIHBhcnRpYWwgd2l0aCBvYmog
YWxyZWFkeSBib3VuZCBhcyBzZWxmLgorICAgICAgICByZXR1cm4gZnVuY3Rvb2xzLnBhcnRpYWwo
c2VsZi5fX2NhbGxfXywgaW5zdGFuY2UpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9tZW1vaXplZF91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL21lbW9pemVkX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkN2M3
OTNkOGQ3NjljYWQ2YTA5M2NkYmNhNjBkOTc4MmU1NDQ3YWEKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZW1vaXplZF91bml0dGVzdC5weQpA
QCAtMCwwICsxLDY1IEBACisjIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6Cisj
CisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
KyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMK
KyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zy
b20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAorCisKK2NsYXNzIF9U
ZXN0T2JqZWN0KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxm
LmNhbGxDb3VudCA9IDAKKworICAgIEBtZW1vaXplZAorICAgIGRlZiBtZW1vaXplZF9hZGQoc2Vs
ZiwgYXJndW1lbnQpOgorICAgICAgICAiIiJ0ZXN0aW5nIGRvY3N0cmluZyIiIgorICAgICAgICBz
ZWxmLmNhbGxDb3VudCArPSAxCisgICAgICAgIGlmIGFyZ3VtZW50IGlzIE5vbmU6CisgICAgICAg
ICAgICByZXR1cm4gTm9uZSAgIyBBdm9pZCB0aGUgVHlwZUVycm9yIGZyb20gTm9uZSArIDEKKyAg
ICAgICAgcmV0dXJuIGFyZ3VtZW50ICsgMQorCisKK2NsYXNzIE1lbW9pemVkVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3RfY2FjaGluZyhzZWxmKToKKyAgICAgICAgdGVzdCA9
IF9UZXN0T2JqZWN0KCkKKyAgICAgICAgdGVzdC5jYWxsQ291bnQgPSAwCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwodGVzdC5tZW1vaXplZF9hZGQoMSksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwodGVzdC5jYWxsQ291bnQsIDEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5t
ZW1vaXplZF9hZGQoMSksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5jYWxsQ291
bnQsIDEpCisKKyAgICAgICAgIyBWYWxpZGF0ZSB0aGF0IGNhbGxDb3VudCBpcyB3b3JraW5nIGFz
IGV4cGVjdGVkLgorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3QubWVtb2l6ZWRfYWRkKDIp
LCAzKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3QuY2FsbENvdW50LCAyKQorCisgICAg
ZGVmIHRlc3RfdGVhcm9mZihzZWxmKToKKyAgICAgICAgdGVzdCA9IF9UZXN0T2JqZWN0KCkKKyAg
ICAgICAgIyBNYWtlIHN1cmUgdGhhdCBnZXQoKS90ZWFyLW9mZnMgd29yazoKKyAgICAgICAgdGVh
cm9mZiA9IHRlc3QubWVtb2l6ZWRfYWRkCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVhcm9m
Zig0KSwgNSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh0ZXN0LmNhbGxDb3VudCwgMSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72138</attachid>
            <date>2010-10-27 21:48:07 -0700</date>
            <delta_ts>2010-10-27 22:12:50 -0700</delta_ts>
            <desc>Deploy @memoized to one more place</desc>
            <filename>bug-48500-20101027214805.patch</filename>
            <type>text/plain</type>
            <size>10857</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlNjcyMTdhNWMzMjI5MTUwNjBiNzQ5OGNmYzYxMDcyZjY1YzA4MTQ0Li4wOTg2MWEz
YmJiYWI0ZDI1ZGNkZWUyMWU1ZDNmYWU2ZTE3NDgxZDk2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQgQEAK
IDIwMTAtMTAtMjcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYmtpdC1wYXRjaCBzdWdnZXN0
LXJldmlld2VycyAtZyAyNjA1NTBhNmUzMGI3YmYzNGYxNmJkYjRhNTM5NmNmMjYyNjRmYzFjIGlz
IHZlcnkgc2xvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDg1MDAKKworICAgICAgICBUaGlzIGRvZXNuJ3QgZml4IHRoZSBwcm9ibGVtLCBidXQgaXQg
bWFrZXMgdGhpbmdzIHNsaWdodGx5IGJldHRlci4KKyAgICAgICAgRWFjaCBnaXQgc3ZuIGZpbmQt
cmV2IGNhbGwgdGFrZXMgYWJvdXQgLjI1IHNlY29uZHMgb24gbXkgZGVza3RvcC4KKyAgICAgICAg
VGhpcyBwYXRjaCB1c2VzIGEgbmV3IG1lbW9pemVkIGNsYXNzIHRvIGF2b2lkIHRob3NlIGNhbGxz
IHdoZW4gcG9zc2libGUuCisKKyAgICAgICAgVGhlIHJlYWwgc2xvd25lc3MgaXMgc3RpbGwgZ2l0
IGxvZyBvbiBzb21lIGZpbGVzLCBsaWtlOgorICAgICAgICBnaXQgbG9nIC0tcHJldHR5PWZvcm1h
dDolSCAtNSAtLSAvUHJvamVjdHMvV2ViS2l0L1dlYkNvcmUvcGxhdGZvcm0vd3gvU2VhcmNoUG9w
dXBNZW51V3guaAorICAgICAgICBJJ20gbm90IHlldCBzdXJlIGhvdyB0byBtYWtlIHRoZSBwYXRo
b2xvZ2ljYWwgZ2l0IGxvZ3MgYmV0dGVyLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY2hlY2tvdXQvc2NtLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9u
L21lbW9pemVkLnB5OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9t
ZW1vaXplZF91bml0dGVzdC5weTogQWRkZWQuCisKKzIwMTAtMTAtMjcgIEVyaWMgU2VpZGVsICA8
ZXJpY0B3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCiAKICAg
ICAgICAgRVdTIGJvdHMgc2hvdWxkIG5vdCB1c2UgLS1xdWlldCB3aGVuIHJ1bm5pbmcgYnVpbGQt
d2Via2l0CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
aGVja291dC9zY20ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9zY20ucHkKaW5kZXggN2UzYWQ0ZDBmNGQ3MWFlNzEwMzVjYjU5MDM2ZjgyY2YwNDA4OWJk
Mi4uZmIzYzVhNzZiZTdjNTg4MDI3MGIzYzRjMjc4ZTYyMzg4YmJiZmM1NiAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS5weQpAQCAt
MzYsNiArMzYsNyBAQCBpbXBvcnQgc2h1dGlsCiAKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3Rl
bS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgcnVuX2NvbW1hbmQsIFNjcmlwdEVycm9yCiBm
cm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5nIGltcG9ydCBlcnJv
ciwgbG9nCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKIAog
CiBkZWYgZmluZF9jaGVja291dF9yb290KCk6CkBAIC0zMTksNyArMzIwLDYgQEAgY2xhc3MgU1ZO
KFNDTSk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgY3dkKToKICAgICAgICAgU0NNLl9faW5p
dF9fKHNlbGYsIGN3ZCkKLSAgICAgICAgc2VsZi5jYWNoZWRfdmVyc2lvbiA9IE5vbmUKICAgICAg
ICAgc2VsZi5fYm9ndXNfZGlyID0gTm9uZQogCiAgICAgQHN0YXRpY21ldGhvZApAQCAtMzY5LDEx
ICszNjksOSBAQCBjbGFzcyBTVk4oU0NNKToKICAgICAgICAgZmluZF9vdXRwdXQgPSBzZWxmLnJ1
bihmaW5kX2FyZ3MsIGN3ZD1ob21lX2RpcmVjdG9yeSwgZXJyb3JfaGFuZGxlcj1FeGVjdXRpdmUu
aWdub3JlX2Vycm9yKS5yc3RyaXAoKQogICAgICAgICByZXR1cm4gZmluZF9vdXRwdXQgYW5kIG9z
LnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihob21lX2RpcmVjdG9yeSwgZmluZF9vdXRwdXQpKQog
CisgICAgQG1lbW9pemVkCiAgICAgZGVmIHN2bl92ZXJzaW9uKHNlbGYpOgotICAgICAgICBpZiBu
b3Qgc2VsZi5jYWNoZWRfdmVyc2lvbjoKLSAgICAgICAgICAgIHNlbGYuY2FjaGVkX3ZlcnNpb24g
PSBzZWxmLnJ1bihbJ3N2bicsICctLXZlcnNpb24nLCAnLS1xdWlldCddKQotICAgICAgICAKLSAg
ICAgICAgcmV0dXJuIHNlbGYuY2FjaGVkX3ZlcnNpb24KKyAgICAgICAgcmV0dXJuIHNlbGYucnVu
KFsnc3ZuJywgJy0tdmVyc2lvbicsICctLXF1aWV0J10pCiAKICAgICBkZWYgd29ya2luZ19kaXJl
Y3RvcnlfaXNfY2xlYW4oc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnJ1bihbInN2biIsICJk
aWZmIl0sIGN3ZD1zZWxmLmNoZWNrb3V0X3Jvb3QsIGRlY29kZV9vdXRwdXQ9RmFsc2UpID09ICIi
CkBAIC01NzIsNiArNTcwLDcgQEAgY2xhc3MgU1ZOKFNDTSk6CiAgICAgICAgIGRpciwgYmFzZSA9
IG9zLnBhdGguc3BsaXQocGF0aCkKICAgICAgICAgcmV0dXJuIHNlbGYucnVuKFsnc3ZuJywgJ3Bn
ZXQnLCBwbmFtZSwgYmFzZV0sIGN3ZD1kaXIpLmVuY29kZSgndXRmLTgnKS5yc3RyaXAoIlxuIikK
IAorCiAjIEFsbCBnaXQtc3BlY2lmaWMgbG9naWMgc2hvdWxkIGdvIGhlcmUuCiBjbGFzcyBHaXQo
U0NNKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgY3dkKToKQEAgLTcwMywyMSArNzAyLDI5IEBA
IGNsYXNzIEdpdChTQ00pOgogICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSB1
c2UgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdAogICAgICAgICByZXR1cm4gc2VsZi5ydW4oWydnaXQn
LCAnZGlmZicsICctLWJpbmFyeScsICItLW5vLWV4dC1kaWZmIiwgIi0tZnVsbC1pbmRleCIsICIt
TSIsIHNlbGYubWVyZ2VfYmFzZShnaXRfY29tbWl0KSwgIi0tIl0gKyBjaGFuZ2VkX2ZpbGVzLCBk
ZWNvZGVfb3V0cHV0PUZhbHNlKQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGdpdF9jb21t
aXRfZnJvbV9zdm5fcmV2aXNpb24oY2xzLCByZXZpc2lvbik6Ci0gICAgICAgICMgRklYTUU6IFRo
aXMgc2hvdWxkIHByb2JhYmx5IHVzZSBjd2Q9c2VsZi5jaGVja291dF9yb290Ci0gICAgICAgIGdp
dF9jb21taXQgPSBydW5fY29tbWFuZChbJ2dpdCcsICdzdm4nLCAnZmluZC1yZXYnLCAnciVzJyAl
IHJldmlzaW9uXSkucnN0cmlwKCkKLSAgICAgICAgIyBnaXQgc3ZuIGZpbmQtcmV2IGFsd2F5cyBl
eGl0cyAwLCBldmVuIHdoZW4gdGhlIHJldmlzaW9uIGlzIG5vdCBmb3VuZC4KLSAgICAgICAgaWYg
bm90IGdpdF9jb21taXQ6Ci0gICAgICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSdG
YWlsZWQgdG8gZmluZCBnaXQgY29tbWl0IGZvciByZXZpc2lvbiAlcywgeW91ciBjaGVja291dCBs
aWtlbHkgbmVlZHMgYW4gdXBkYXRlLicgJSByZXZpc2lvbikKLSAgICAgICAgcmV0dXJuIGdpdF9j
b21taXQKKyAgICBkZWYgX3J1bl9naXRfc3ZuX2ZpbmRfcmV2KHNlbGYsIGFyZyk6CisgICAgICAg
ICMgZ2l0IHN2biBmaW5kLXJldiBhbHdheXMgZXhpdHMgMCwgZXZlbiB3aGVuIHRoZSByZXZpc2lv
biBvciBjb21taXQgaXMgbm90IGZvdW5kLgorICAgICAgICByZXR1cm4gc2VsZi5ydW4oWydnaXQn
LCAnc3ZuJywgJ2ZpbmQtcmV2JywgYXJnXSwgY3dkPXNlbGYuY2hlY2tvdXRfcm9vdCkucnN0cmlw
KCkKIAotICAgIGRlZiBzdm5fcmV2aXNpb25fZnJvbV9naXRfY29tbWl0KHNlbGYsIGNvbW1pdF9p
ZCk6CisgICAgZGVmIF9zdHJpbmdfdG9faW50X29yX25vbmUoc2VsZiwgc3RyaW5nKToKICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIGludChzZWxmLnJ1bihbJ2dpdCcsICdzdm4nLCAn
ZmluZC1yZXYnLCBjb21taXRfaWRdKS5yc3RyaXAoKSkKKyAgICAgICAgICAgIHJldHVybiBpbnQo
c3RyaW5nKQogICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKICAgICAgICAgICAgIHJldHVy
biBOb25lCiAKKyAgICBAbWVtb2l6ZWQKKyAgICBkZWYgZ2l0X2NvbW1pdF9mcm9tX3N2bl9yZXZp
c2lvbihzZWxmLCBzdm5fcmV2aXNpb24pOgorICAgICAgICBnaXRfY29tbWl0ID0gc2VsZi5fcnVu
X2dpdF9zdm5fZmluZF9yZXYoJ3IlcycgJSBzdm5fcmV2aXNpb24pCisgICAgICAgIGlmIG5vdCBn
aXRfY29tbWl0OgorICAgICAgICAgICAgIyBGSVhNRTogQWx0ZXJuYXRpdmVseSB3ZSBjb3VsZCBv
ZmZlciB0byB1cGRhdGUgdGhlIGNoZWNrb3V0PyBPciByZXR1cm4gTm9uZT8KKyAgICAgICAgICAg
IHJhaXNlIFNjcmlwdEVycm9yKG1lc3NhZ2U9J0ZhaWxlZCB0byBmaW5kIGdpdCBjb21taXQgZm9y
IHJldmlzaW9uICVzLCB5b3VyIGNoZWNrb3V0IGxpa2VseSBuZWVkcyBhbiB1cGRhdGUuJyAlIHN2
bl9yZXZpc2lvbikKKyAgICAgICAgcmV0dXJuIGdpdF9jb21taXQKKworICAgIEBtZW1vaXplZAor
ICAgIGRlZiBzdm5fcmV2aXNpb25fZnJvbV9naXRfY29tbWl0KHNlbGYsIGdpdF9jb21taXQpOgor
ICAgICAgICBzdm5fcmV2aXNpb24gPSBzZWxmLl9ydW5fZ2l0X3N2bl9maW5kX3JldihnaXRfY29t
bWl0KQorICAgICAgICByZXR1cm4gc2VsZi5fc3RyaW5nX3RvX2ludF9vcl9ub25lKHN2bl9yZXZp
c2lvbikKKwogICAgIGRlZiBjb250ZW50c19hdF9yZXZpc2lvbihzZWxmLCBwYXRoLCByZXZpc2lv
bik6CiAgICAgICAgICIiIlJldHVybnMgYSBieXRlIGFycmF5IChzdHIoKSkgY29udGFpbmluZyB0
aGUgY29udGVudHMKICAgICAgICAgb2YgcGF0aCBAIHJldmlzaW9uIGluIHRoZSByZXBvc2l0b3J5
LiIiIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVt
b2l6ZWQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZW1vaXplZC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kYzg0NGE1M2FiMmQ4ZGMzM2VkNTFiM2YwNjY5MTY2OGU3MzdmMGFlCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVt
b2l6ZWQucHkKQEAgLTAsMCArMSw1NSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisj
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgUHl0aG9uIGRv
ZXMgbm90ICh5ZXQpIHNlZW0gdG8gcHJvdmlkZSBhdXRvbWF0aWMgbWVtb2l6YXRpb24uICBTbyB3
ZSd2ZQorIyB3cml0dGVuIGEgc21hbGwgZGVjb3JhdG9yIHRvIGRvIHNvLgorCitpbXBvcnQgZnVu
Y3Rvb2xzCisKKworY2xhc3MgbWVtb2l6ZWQob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZnVuY3Rpb24pOgorICAgICAgICBzZWxmLl9mdW5jdGlvbiA9IGZ1bmN0aW9uCisgICAgICAg
IHNlbGYuX3Jlc3VsdHNfY2FjaGUgPSB7fQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsICphcmdz
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Jlc3VsdHNfY2FjaGVb
YXJnc10KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgIyBJZiB3ZSBkaWRu
J3QgZmluZCB0aGUgYXJncyBpbiBvdXIgY2FjaGUsIGNhbGwgYW5kIHNhdmUgdGhlIHJlc3VsdHMu
CisgICAgICAgICAgICByZXN1bHQgPSBzZWxmLl9mdW5jdGlvbigqYXJncykKKyAgICAgICAgICAg
IHNlbGYuX3Jlc3VsdHNfY2FjaGVbYXJnc10gPSByZXN1bHQKKyAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQKKyAgICAgICAgIyBGSVhNRTogV2UgbWF5IG5lZWQgdG8gaGFuZGxlIFR5cGVFcnJvciBo
ZXJlIGluIHRoZSBjYXNlCisgICAgICAgICMgdGhhdCAiYXJncyIgaXMgbm90IGEgdmFsaWQgZGlj
dGlvbmFyeSBrZXkuCisKKyAgICAjIFVzZSBweXRob24gImRlc2NyaXB0b3IiIHByb3RvY29sIF9f
Z2V0X18gdG8gYXBwZWFyCisgICAgIyBpbnZpc2libGUgZHVyaW5nIHByb3BlcnR5IGFjY2Vzcy4K
KyAgICBkZWYgX19nZXRfXyhzZWxmLCBpbnN0YW5jZSwgb3duZXIpOgorICAgICAgICAjIFJldHVy
biBhIGZ1bmN0aW9uIHBhcnRpYWwgd2l0aCBvYmogYWxyZWFkeSBib3VuZCBhcyBzZWxmLgorICAg
ICAgICByZXR1cm4gZnVuY3Rvb2xzLnBhcnRpYWwoc2VsZi5fX2NhbGxfXywgaW5zdGFuY2UpCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZW1vaXplZF91
bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lbW9pemVk
X3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkN2M3OTNkOGQ3NjljYWQ2YTA5M2NkYmNhNjBkOTc4
MmU1NDQ3YWEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9tZW1vaXplZF91bml0dGVzdC5weQpAQCAtMCwwICsxLDY1IEBACisjIENvcHlyaWdo
dCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVk
IGltcG9ydCBtZW1vaXplZAorCisKK2NsYXNzIF9UZXN0T2JqZWN0KG9iamVjdCk6CisgICAgZGVm
IF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmNhbGxDb3VudCA9IDAKKworICAgIEBtZW1v
aXplZAorICAgIGRlZiBtZW1vaXplZF9hZGQoc2VsZiwgYXJndW1lbnQpOgorICAgICAgICAiIiJ0
ZXN0aW5nIGRvY3N0cmluZyIiIgorICAgICAgICBzZWxmLmNhbGxDb3VudCArPSAxCisgICAgICAg
IGlmIGFyZ3VtZW50IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZSAgIyBBdm9pZCB0
aGUgVHlwZUVycm9yIGZyb20gTm9uZSArIDEKKyAgICAgICAgcmV0dXJuIGFyZ3VtZW50ICsgMQor
CisKK2NsYXNzIE1lbW9pemVkVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIHRlc3Rf
Y2FjaGluZyhzZWxmKToKKyAgICAgICAgdGVzdCA9IF9UZXN0T2JqZWN0KCkKKyAgICAgICAgdGVz
dC5jYWxsQ291bnQgPSAwCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5tZW1vaXplZF9h
ZGQoMSksIDIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5jYWxsQ291bnQsIDEpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5tZW1vaXplZF9hZGQoMSksIDIpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwodGVzdC5jYWxsQ291bnQsIDEpCisKKyAgICAgICAgIyBWYWxpZGF0
ZSB0aGF0IGNhbGxDb3VudCBpcyB3b3JraW5nIGFzIGV4cGVjdGVkLgorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHRlc3QubWVtb2l6ZWRfYWRkKDIpLCAzKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHRlc3QuY2FsbENvdW50LCAyKQorCisgICAgZGVmIHRlc3RfdGVhcm9mZihzZWxmKToKKyAg
ICAgICAgdGVzdCA9IF9UZXN0T2JqZWN0KCkKKyAgICAgICAgIyBNYWtlIHN1cmUgdGhhdCBnZXQo
KS90ZWFyLW9mZnMgd29yazoKKyAgICAgICAgdGVhcm9mZiA9IHRlc3QubWVtb2l6ZWRfYWRkCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodGVhcm9mZig0KSwgNSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCh0ZXN0LmNhbGxDb3VudCwgMSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>