<?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>25847</bug_id>
          
          <creation_ts>2009-05-17 22:30:33 -0700</creation_ts>
          <short_desc>Clean up ClipboardMac</short_desc>
          <delta_ts>2009-05-18 23:18:31 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ddkilzer</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>121738</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-17 22:30:33 -0700</bug_when>
    <thetext>Clean up ClipboardMac

I was in ClipboardMac today and decided to do a little cleanup.

I&apos;m mostly just moving code, however there are 3 changes I made while moving.

1.  I broke out logic into absoluteURLsFromPasteboard which returns an NSArray (different!) so that we can use -[NSArray componentsJoinedByString] which is cleaner, and allows easier access to the full list of file urls from the pasteboard (which is more useful than the string concatenation of them).
2.      unsigned count = (type == &quot;URL&quot;) ? 1 : [fileList count]; is now an explicit check for &quot;URL&quot;, before it was a check for != &quot;text/uri-list&quot; which was much more confusing in my opinion (since text/uri-list and URL are the only two types which map to NSURLPboardType as far as I can tell.
3.  I removed an extra if (!types) check, right before [types count], in Obj-C messaging nil will return 0 (size of a pointer), so it&apos;s safe to message nil here and expect it to return 0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121742</commentid>
    <comment_count>1</comment_count>
      <attachid>30437</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-17 23:18:03 -0700</bug_when>
    <thetext>Created attachment 30437
ClipboardMac cleanup

 2 files changed, 90 insertions(+), 55 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121794</commentid>
    <comment_count>2</comment_count>
      <attachid>30437</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-18 09:07:38 -0700</bug_when>
    <thetext>Comment on attachment 30437
ClipboardMac cleanup

I think it&apos;s unnecessary to shout &quot;NOTE&quot;.

There&apos;s no reason to have a default value for the &quot;onlyFirstURL&quot; boolean.

&gt; +    if (!absoluteURLs) {
&gt; +        if ([availableTypes containsObject:NSURLPboardType]) {

Using &amp;&amp; here would avoid an otherwise-unnecessary level of if nesting. But I think early return would be even better. One of the advantages of breaking something into a separate function.

&gt; +        // &quot;URL&quot; and &quot;text/url-list&quot; both map to NSURLPboardType in cocoaTypeFromMIMEType(), &quot;URL&quot; only wants the first URL

It&apos;s a little strange to have this same comment twice.

&gt; +    unsigned count = [types count];
&gt; +    for (unsigned i = 0; i &lt; count; i++) {

As long as you are touching this code, the correct type here is NSUInteger rather than unsigned. Same for the other count and index in absoluteURLsFromPasteboardFilenames.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121854</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-18 21:17:52 -0700</bug_when>
    <thetext>I made all your suggested changes and ran the layout tests again.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/platform/mac/ClipboardMac.mm
Committed r43850

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121856</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-05-18 22:03:22 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/43850

Tiger build fix:

$ git svn dcommit
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/platform/mac/ClipboardMac.mm
Committed r43852

http://trac.webkit.org/changeset/43852
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121860</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-18 23:18:31 -0700</bug_when>
    <thetext>Thank you David.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30437</attachid>
            <date>2009-05-17 23:18:03 -0700</date>
            <delta_ts>2009-05-18 09:07:38 -0700</delta_ts>
            <desc>ClipboardMac cleanup</desc>
            <filename>ClipboardMac-cleanup.patch</filename>
            <type>text/plain</type>
            <size>8709</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">OWJhM2U3NjIxMWJjMGUyZGM1NTlkYTdhNDEzYzY4MTYyMjk4YmEwNApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyY2M1MmQwLi5jMjhlMWMz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMzIEBACisyMDA5LTA1LTE3ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDbGlw
Ym9hcmRNYWMgY2xlYW51cAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjU4NDcKKworICAgICAgICBJJ20gbW9zdGx5IGp1c3QgbW92aW5nIGNvZGUsIGhv
d2V2ZXIgdGhlcmUgYXJlIDMgY2hhbmdlcyBJIG1hZGUgd2hpbGUgbW92aW5nLCBkZXRhaWxlZCBi
ZWxvdy4KKworICAgICAgICBObyBmdW5jdGlvbmFsIGNoYW5nZXMsIHNvIG5vIHRlc3RzLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL0NsaXBib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkNsaXBib2FyZE1hYzo6Y2xlYXJEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmFic29sdXRlVVJM
c0Zyb21QYXN0ZWJvYXJkRmlsZW5hbWVzKToKKyAgICAgICAgICBCcm9rZSBvdXQgbG9naWMgZm9y
IGZpbGVuYW1lcyBpbnRvIGl0cyBvd24gZnVuY3Rpb24gdG8gbWFrZSB0aGUgY2FsbGVyIG1vcmUg
cmVhZGFibGUuCisgICAgICAgIChXZWJDb3JlOjphYnNvbHV0ZVVSTHNGcm9tUGFzdGVib2FyZCk6
CisgICAgICAgICAgQnJva2Ugb3V0IGxvZ2ljIGZyb20gZ2V0RGF0YSBpbnRvIGFic29sdXRlVVJM
c0Zyb21QYXN0ZWJvYXJkLiBUaGlzIHJldHVybnMgYW4gTlNBcnJheQorICAgICAgICAgIHNvIHRo
YXQgd2UgY2FuIHVzZSAtW05TQXJyYXkgY29tcG9uZW50c0pvaW5lZEJ5U3RyaW5nXSBpbiB0aGUg
Y2FsbGVyICh3aGljaCBpcworICAgICAgICAgIGNsZWFuZXIgdGhhbiB0aGUgbWFudWFsICJcbiIg
YWRkaXRpb24gYmVmb3JlKS4KKyAgICAgICAgICBUaGlzIGFsc28gYWNjZXNzIHRvIHRoZSBmdWxs
IGxpc3Qgb2YgZmlsZSB1cmxzIGZvciBmdXR1cmUgY2FsbGVycy4KKyAgICAgICAgKFdlYkNvcmU6
OkNsaXBib2FyZE1hYzo6Z2V0RGF0YSk6CisgICAgICAgICAgdW5zaWduZWQgY291bnQgPSAodHlw
ZSA9PSAiVVJMIikgPyAxIDogW2ZpbGVMaXN0IGNvdW50XTsgaXMgbm93IGFuCisgICAgICAgICAg
ZXhwbGljaXQgY2hlY2sgZm9yICJVUkwiLCBiZWZvcmUgaXQgd2FzIGEgY2hlY2sgZm9yICE9ICJ0
ZXh0L3VyaS1saXN0IiB3aGljaAorICAgICAgICAgIHdhcyBtdWNoIG1vcmUgY29uZnVzaW5nIGlu
IG15IG9waW5pb24uICB0ZXh0L3VyaS1saXN0IGFuZCBVUkwgYXJlIHRoZSBvbmx5CisgICAgICAg
ICAgdHdvIHR5cGVzIHdoaWNoIG1hcCB0byBOU1VSTFBib2FyZFR5cGUgaW4gY29jb2FUeXBlRnJv
bU1JTUVUeXBlKCkuCisgICAgICAgIChXZWJDb3JlOjpDbGlwYm9hcmRNYWM6OnR5cGVzKToKKyAg
ICAgICAgICBJIHJlbW92ZWQgYW4gZXh0cmEgaWYgKCF0eXBlcykgY2hlY2ssIHJpZ2h0IGJlZm9y
ZSBbdHlwZXMgY291bnRdLiAgSW4gT2JqLUMKKyAgICAgICAgICBtZXNzYWdpbmcgbmlsIHdpbGwg
cmV0dXJuIDAgKHNpemUgb2YgYSBwb2ludGVyKSwgc28gaXQncyBzYWZlIHRvIG1lc3NhZ2Ugbmls
CisgICAgICAgICAgaGVyZSBhbmQgZXhwZWN0IGl0IHRvIHJldHVybiAwLgorCiAyMDA5LTA1LTE3
ICBHZW9yZ2UgU3RhaWtvcyAgPGdlb3JnZS5zdGFpa29zQHRvcmNobW9iaWxlLmNvbT4KIAogICAg
ICAgICBOb3QgcmV2aWV3ZWQgLSBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9DbGlwYm9hcmRNYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL21hYy9DbGlwYm9hcmRN
YWMubW0KaW5kZXggOGI0ZGU2OC4uNmQ5NjM5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvQ2xpcGJvYXJkTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NsaXBib2Fy
ZE1hYy5tbQpAQCAtMTIxLDkgKzEyMSw4IEBAIHZvaWQgQ2xpcGJvYXJkTWFjOjpjbGVhckRhdGEo
Y29uc3QgU3RyaW5nJiB0eXBlKQogICAgIC8vIG5vdGUgTlNQYXN0ZWJvYXJkIGVuZm9yY2VzIGNo
YW5nZUNvdW50IGl0c2VsZiBvbiB3cml0aW5nIC0gY2FuJ3Qgd3JpdGUgaWYgbm90IHRoZSBvd25l
cgogCiAgICAgTlNTdHJpbmcgKmNvY29hVHlwZSA9IGNvY29hVHlwZUZyb21NSU1FVHlwZSh0eXBl
KTsKLSAgICBpZiAoY29jb2FUeXBlKSB7CisgICAgaWYgKGNvY29hVHlwZSkKICAgICAgICAgW21f
cGFzdGVib2FyZC5nZXQoKSBzZXRTdHJpbmc6QCIiIGZvclR5cGU6Y29jb2FUeXBlXTsKLSAgICB9
CiB9CiAKIHZvaWQgQ2xpcGJvYXJkTWFjOjpjbGVhckFsbERhdGEoKQpAQCAtMTM2LDU5ICsxMzUs
NjggQEAgdm9pZCBDbGlwYm9hcmRNYWM6OmNsZWFyQWxsRGF0YSgpCiAgICAgW21fcGFzdGVib2Fy
ZC5nZXQoKSBkZWNsYXJlVHlwZXM6W05TQXJyYXkgYXJyYXldIG93bmVyOm5pbF07CiB9CiAKK3N0
YXRpYyBOU0FycmF5ICphYnNvbHV0ZVVSTHNGcm9tUGFzdGVib2FyZEZpbGVuYW1lcyhOU1Bhc3Rl
Ym9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgb25seUZpcnN0VVJMID0gZmFsc2UpCit7CisgICAgTlNB
cnJheSAqZmlsZUxpc3QgPSBbcGFzdGVib2FyZCBwcm9wZXJ0eUxpc3RGb3JUeXBlOk5TRmlsZW5h
bWVzUGJvYXJkVHlwZV07CisgICAgaWYgKCFmaWxlTGlzdCB8fCAhW2ZpbGVMaXN0IGlzS2luZE9m
Q2xhc3M6W05TQXJyYXkgY2xhc3NdXSB8fCAhW2ZpbGVMaXN0IGNvdW50XSkKKyAgICAgICAgcmV0
dXJuIG5pbDsKKworICAgIC8vICJVUkwiIGFuZCAidGV4dC91cmwtbGlzdCIgYm90aCBtYXAgdG8g
TlNVUkxQYm9hcmRUeXBlIGluIGNvY29hVHlwZUZyb21NSU1FVHlwZSgpLCAiVVJMIiBvbmx5IHdh
bnRzIHRoZSBmaXJzdCBVUkwKKyAgICB1bnNpZ25lZCBjb3VudCA9IG9ubHlGaXJzdFVSTCA/IDEg
OiBbZmlsZUxpc3QgY291bnRdOworCisgICAgTlNNdXRhYmxlQXJyYXkgKnVybHMgPSBbTlNNdXRh
YmxlQXJyYXkgYXJyYXldOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgaSsr
KSB7CisgICAgICAgIE5TU3RyaW5nICpzdHJpbmcgPSBbZmlsZUxpc3Qgb2JqZWN0QXRJbmRleDpp
XTsKKworICAgICAgICBBU1NFUlQoW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFz
c11dKTsgIC8vIEFkZGVkIHRvIHVuZGVyc3RhbmQgd2h5IHRoaXMgaWYgY29kZSBpcyBoZXJlCisg
ICAgICAgIGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKQorICAg
ICAgICAgICAgcmV0dXJuIG5pbDsgLy8gTm9uLXN0cmluZyBvYmplY3QgaW4gdGhlIGxpc3QsIGJh
aWwgb3V0ISAgRklYTUU6IFdoZW4gY2FuIHRoaXMgaGFwcGVuPworCisgICAgICAgIE5TVVJMICp1
cmwgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnN0cmluZ107CisgICAgICAgIFt1cmxzIGFkZE9i
amVjdDpbdXJsIGFic29sdXRlU3RyaW5nXV07CisgICAgfQorICAgIHJldHVybiB1cmxzOworfQor
CitzdGF0aWMgTlNBcnJheSAqYWJzb2x1dGVVUkxzRnJvbVBhc3RlYm9hcmQoTlNQYXN0ZWJvYXJk
KiBwYXN0ZWJvYXJkLCBib29sIG9ubHlGaXJzdFVSTCA9IGZhbHNlKQoreworICAgIE5TQXJyYXkq
IGFic29sdXRlVVJMcyA9IG5pbDsKKworICAgIC8vIE5PVEU6IFdlIG11c3QgYWx3YXlzIGNoZWNr
IFthdmFpbGFibGVUeXBlcyBjb250YWluc09iamVjdDpdIGJlZm9yZSBhY2Nlc3NpbmcgcGFzdGVi
b2FyZCBkYXRhCisgICAgLy8gb3IgQ29yZUZvdW5kYXRpb24gd2lsbCBwcmludGYgd2hlbiB0aGVy
ZSBpcyBub3QgZGF0YSBvZiB0aGUgY29ycmVzcG9uZGluZyB0eXBlLgorICAgIE5TQXJyYXkgKmF2
YWlsYWJsZVR5cGVzID0gW3Bhc3RlYm9hcmQgdHlwZXNdOworCisgICAgLy8gV2hlbiBib3RoIFVS
TCBhbmQgZmlsZW5hbWVzIGFyZSBwcmVzZW50LCBmaWxlbmFtZXMgaXMgc3VwZXJpb3Igc2luY2Ug
aXQgY2FuIGNvbnRhaW4gYSBsaXN0LgorICAgIGlmIChbYXZhaWxhYmxlVHlwZXMgY29udGFpbnNP
YmplY3Q6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXSkKKyAgICAgICAgYWJzb2x1dGVVUkxzID0gYWJz
b2x1dGVVUkxzRnJvbVBhc3RlYm9hcmRGaWxlbmFtZXMocGFzdGVib2FyZCwgb25seUZpcnN0VVJM
KTsKKyAgICBpZiAoIWFic29sdXRlVVJMcykgeworICAgICAgICBpZiAoW2F2YWlsYWJsZVR5cGVz
IGNvbnRhaW5zT2JqZWN0Ok5TVVJMUGJvYXJkVHlwZV0pIHsKKyAgICAgICAgICAgIGlmIChOU1VS
TCAqdXJsID0gW05TVVJMIFVSTEZyb21QYXN0ZWJvYXJkOnBhc3RlYm9hcmRdKQorICAgICAgICAg
ICAgICAgIGFic29sdXRlVVJMcyA9IFtOU0FycmF5IGFycmF5V2l0aE9iamVjdDpbdXJsIGFic29s
dXRlU3RyaW5nXV07CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGFic29sdXRlVVJMczsK
K30KKwogU3RyaW5nIENsaXBib2FyZE1hYzo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJv
b2wmIHN1Y2Nlc3MpIGNvbnN0CiB7CiAgICAgc3VjY2VzcyA9IGZhbHNlOwogICAgIGlmIChwb2xp
Y3koKSAhPSBDbGlwYm9hcmRSZWFkYWJsZSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAg
IAorCiAgICAgTlNTdHJpbmcgKmNvY29hVHlwZSA9IGNvY29hVHlwZUZyb21NSU1FVHlwZSh0eXBl
KTsKICAgICBOU1N0cmluZyAqY29jb2FWYWx1ZSA9IG5pbDsKLSAgICBOU0FycmF5ICphdmFpbGFi
bGVUeXBlcyA9IFttX3Bhc3RlYm9hcmQuZ2V0KCkgdHlwZXNdOwotCi0gICAgLy8gRmV0Y2ggdGhl
IGRhdGEgaW4gZGlmZmVyZW50IHdheXMgZm9yIHRoZSBkaWZmZXJlbnQgQ29jb2EgdHlwZXMKIAor
ICAgIC8vIEdyYWIgdGhlIHZhbHVlIG9mZiB0aGUgcGFzdGVib2FyZCBjb3JyZXNwb25kaW5nIHRv
IHRoZSBjb2NvYVR5cGUKICAgICBpZiAoW2NvY29hVHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNVUkxQ
Ym9hcmRUeXBlXSkgewotICAgICAgICAvLyBXaGVuIGJvdGggVVJMIGFuZCBmaWxlbmFtZXMgYXJl
IHByZXNlbnQsIGZpbGVuYW1lcyBpcyBzdXBlcmlvciBzaW5jZSBpdCBjYW4gY29udGFpbiBhIGxp
c3QuCi0gICAgICAgIC8vIG11c3QgY2hlY2sgdGhpcyBvciB3ZSBnZXQgYSBwcmludGYgZnJvbSBD
RiB3aGVuIHRoZXJlJ3Mgbm8gZGF0YSBvZiB0aGlzIHR5cGUKLSAgICAgICAgaWYgKFthdmFpbGFi
bGVUeXBlcyBjb250YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdKSB7Ci0gICAgICAg
ICAgICBOU0FycmF5ICpmaWxlTGlzdCA9IFttX3Bhc3RlYm9hcmQuZ2V0KCkgcHJvcGVydHlMaXN0
Rm9yVHlwZTpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdOwotICAgICAgICAgICAgaWYgKGZpbGVMaXN0
ICYmIFtmaWxlTGlzdCBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNsYXNzXV0pIHsKLSAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjb3VudCA9IFtmaWxlTGlzdCBjb3VudF07Ci0gICAgICAgICAgICAg
ICAgaWYgKGNvdW50ID4gMCkgewotICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSAhPSAidGV4
dC91cmktbGlzdCIpCi0gICAgICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDE7Ci0gICAgICAg
ICAgICAgICAgICAgIE5TTXV0YWJsZVN0cmluZyAqdXJscyA9IFtOU011dGFibGVTdHJpbmcgc3Ry
aW5nXTsKLSAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaTsKLSAgICAgICAgICAgICAgICAg
ICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChpID4gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt1cmxzIGFwcGVuZFN0
cmluZzpAIlxuIl07Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBOU1N0cmluZyAqc3RyaW5nID0gW2ZpbGVMaXN0IG9iamVjdEF0SW5kZXg6aV07Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNTdHJp
bmcgY2xhc3NdXSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIE5TVVJMICp1cmwgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnN0cmlu
Z107Ci0gICAgICAgICAgICAgICAgICAgICAgICBbdXJscyBhcHBlbmRTdHJpbmc6W3VybCBhYnNv
bHV0ZVN0cmluZ11dOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChpID09IGNvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgY29jb2FWYWx1ZSA9IHVy
bHM7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAg
IGlmICghY29jb2FWYWx1ZSkgewotICAgICAgICAgICAgLy8gbXVzdCBjaGVjayB0aGlzIG9yIHdl
IGdldCBhIHByaW50ZiBmcm9tIENGIHdoZW4gdGhlcmUncyBubyBkYXRhIG9mIHRoaXMgdHlwZQot
ICAgICAgICAgICAgaWYgKFthdmFpbGFibGVUeXBlcyBjb250YWluc09iamVjdDpOU1VSTFBib2Fy
ZFR5cGVdKSB7Ci0gICAgICAgICAgICAgICAgTlNVUkwgKnVybCA9IFtOU1VSTCBVUkxGcm9tUGFz
dGVib2FyZDptX3Bhc3RlYm9hcmQuZ2V0KCldOwotICAgICAgICAgICAgICAgIGlmICh1cmwpIHsK
LSAgICAgICAgICAgICAgICAgICAgY29jb2FWYWx1ZSA9IFt1cmwgYWJzb2x1dGVTdHJpbmddOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICAvLyAi
VVJMIiBhbmQgInRleHQvdXJsLWxpc3QiIGJvdGggbWFwIHRvIE5TVVJMUGJvYXJkVHlwZSBpbiBj
b2NvYVR5cGVGcm9tTUlNRVR5cGUoKSwgIlVSTCIgb25seSB3YW50cyB0aGUgZmlyc3QgVVJMCisg
ICAgICAgIGJvb2wgb25seUZpcnN0VVJMID0gKHR5cGUgPT0gIlVSTCIpOworICAgICAgICBOU0Fy
cmF5ICphYnNvbHV0ZVVSTHMgPSBhYnNvbHV0ZVVSTHNGcm9tUGFzdGVib2FyZChtX3Bhc3RlYm9h
cmQuZ2V0KCksIG9ubHlGaXJzdFVSTCk7CisgICAgICAgIGNvY29hVmFsdWUgPSBbYWJzb2x1dGVV
UkxzIGNvbXBvbmVudHNKb2luZWRCeVN0cmluZzpAIlxuIl07CiAgICAgfSBlbHNlIGlmIChbY29j
b2FUeXBlIGlzRXF1YWxUb1N0cmluZzpOU1N0cmluZ1Bib2FyZFR5cGVdKSB7CiAgICAgICAgIGNv
Y29hVmFsdWUgPSBbW21fcGFzdGVib2FyZC5nZXQoKSBzdHJpbmdGb3JUeXBlOmNvY29hVHlwZV0g
cHJlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ107Ci0gICAgfSBlbHNlIGlmIChj
b2NvYVR5cGUpIHsgICAgICAgIAorICAgIH0gZWxzZSBpZiAoY29jb2FUeXBlKQogICAgICAgICBj
b2NvYVZhbHVlID0gW21fcGFzdGVib2FyZC5nZXQoKSBzdHJpbmdGb3JUeXBlOmNvY29hVHlwZV07
Ci0gICAgfQogCiAgICAgLy8gRW5mb3JjZSBjaGFuZ2VDb3VudCBvdXJzZWx2ZXMgZm9yIHNlY3Vy
aXR5LiAgV2UgY2hlY2sgYWZ0ZXIgcmVhZGluZyBpbnN0ZWFkIG9mIGJlZm9yZSB0byBiZQogICAg
IC8vIHN1cmUgaXQgZG9lc24ndCBjaGFuZ2UgYmV0d2VlbiBvdXIgdGVzdGluZyB0aGUgY2hhbmdl
IGNvdW50IGFuZCBhY2Nlc3NpbmcgdGhlIGRhdGEuCkBAIC0yNDYsMTggKzI1NCwxNSBAQCBIYXNo
U2V0PFN0cmluZz4gQ2xpcGJvYXJkTWFjOjp0eXBlcygpIGNvbnN0CiAgICAgICAgIHJldHVybiBI
YXNoU2V0PFN0cmluZz4oKTsKIAogICAgIEhhc2hTZXQ8U3RyaW5nPiByZXN1bHQ7Ci0gICAgaWYg
KHR5cGVzKSB7Ci0gICAgICAgIHVuc2lnbmVkIGNvdW50ID0gW3R5cGVzIGNvdW50XTsKLSAgICAg
ICAgdW5zaWduZWQgaTsKLSAgICAgICAgZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLSAg
ICAgICAgICAgIE5TU3RyaW5nICpwYlR5cGUgPSBbdHlwZXMgb2JqZWN0QXRJbmRleDppXTsKLSAg
ICAgICAgICAgIGlmIChbcGJUeXBlIGlzRXF1YWxUb1N0cmluZzpAIk5lWFQgcGxhaW4gYXNjaWkg
cGFzdGVib2FyZCB0eXBlIl0pCi0gICAgICAgICAgICAgICAgY29udGludWU7ICAgLy8gc2tpcCB0
aGlzIGFuY2llbnQgdHlwZSB0aGF0IGdldHMgYXV0by1zdXBwbGllZCBieSBzb21lIHN5c3RlbSBj
b252ZXJzaW9uCi0KLSAgICAgICAgICAgIFN0cmluZyBzdHIgPSBNSU1FVHlwZUZyb21Db2NvYVR5
cGUocGJUeXBlKTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0LmNvbnRhaW5zKHN0cikpCi0gICAg
ICAgICAgICAgICAgcmVzdWx0LmFkZChzdHIpOwotICAgICAgICB9CisgICAgdW5zaWduZWQgY291
bnQgPSBbdHlwZXMgY291bnRdOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsg
aSsrKSB7CisgICAgICAgIE5TU3RyaW5nICpwYlR5cGUgPSBbdHlwZXMgb2JqZWN0QXRJbmRleDpp
XTsKKyAgICAgICAgaWYgKFtwYlR5cGUgaXNFcXVhbFRvU3RyaW5nOkAiTmVYVCBwbGFpbiBhc2Np
aSBwYXN0ZWJvYXJkIHR5cGUiXSkKKyAgICAgICAgICAgIGNvbnRpbnVlOyAgIC8vIHNraXAgdGhp
cyBhbmNpZW50IHR5cGUgdGhhdCBnZXRzIGF1dG8tc3VwcGxpZWQgYnkgc29tZSBzeXN0ZW0gY29u
dmVyc2lvbgorCisgICAgICAgIFN0cmluZyBzdHIgPSBNSU1FVHlwZUZyb21Db2NvYVR5cGUocGJU
eXBlKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuY29udGFpbnMoc3RyKSkKKyAgICAgICAgICAgIHJl
c3VsdC5hZGQoc3RyKTsKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
</data>
<flag name="review"
          id="15351"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>