<?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>70658</bug_id>
          
          <creation_ts>2011-10-21 15:58:23 -0700</creation_ts>
          <short_desc>[JSC] Implement MessagePort transfer in JSC bindings implementation of webkitPostMessage</short_desc>
          <delta_ts>2011-10-31 14:07:42 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>65209</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Lomov">dslomov</reporter>
          <assigned_to name="Dmitry Lomov">dslomov</assigned_to>
          <cc>dslomov</cc>
    
    <cc>levin</cc>
    
    <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>488744</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-10-21 15:58:23 -0700</bug_when>
    <thetext>Corresponding bug for chromium: https://bugs.webkit.org/show_bug.cgi?id=70580</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489861</commentid>
    <comment_count>1</comment_count>
      <attachid>112296</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-10-24 20:10:25 -0700</bug_when>
    <thetext>Created attachment 112296
Fix + tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490081</commentid>
    <comment_count>2</comment_count>
      <attachid>112296</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-10-25 09:56:45 -0700</bug_when>
    <thetext>Comment on attachment 112296
Fix + tests

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

Looks good to me (with a few minor nits). (I don&apos;t know about the cast static_cast&lt;JSDOMGlobalObject*&gt;(m_exec-&gt;lexicalGlobalObject())).


Hopefully Oliver will weigh in on it too!

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:290
&gt; + 

extra blank line.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:1212
&gt; +            if (!m_messagePorts || index &gt;= m_messagePorts-&gt;size()) {

Why not just combine this with the previous if ||...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490171</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-10-25 11:19:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 112296 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=112296&amp;action=review
&gt; 
&gt; Looks good to me (with a few minor nits). (I don&apos;t know about the cast static_cast&lt;JSDOMGlobalObject*&gt;(m_exec-&gt;lexicalGlobalObject())).

From what I see, the assumption of this cast holds, but an opinion of an experienced JSC engineer is most welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490173</commentid>
    <comment_count>4</comment_count>
      <attachid>112364</attachid>
    <who name="Dmitry Lomov">dslomov</who>
    <bug_when>2011-10-25 11:20:00 -0700</bug_when>
    <thetext>Created attachment 112364
CR comments addressed (thanks David!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493391</commentid>
    <comment_count>5</comment_count>
      <attachid>112364</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-10-31 10:09:55 -0700</bug_when>
    <thetext>Comment on attachment 112364
CR comments addressed (thanks David!)

Looks good. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493488</commentid>
    <comment_count>6</comment_count>
      <attachid>112364</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-31 14:07:38 -0700</bug_when>
    <thetext>Comment on attachment 112364
CR comments addressed (thanks David!)

Clearing flags on attachment: 112364

Committed r98879: &lt;http://trac.webkit.org/changeset/98879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493489</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-31 14:07:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112296</attachid>
            <date>2011-10-24 20:10:25 -0700</date>
            <delta_ts>2011-10-25 11:20:00 -0700</delta_ts>
            <desc>Fix + tests</desc>
            <filename>70658.patch</filename>
            <type>text/plain</type>
            <size>11164</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZTBiZjY3Li5iMTVhNzg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAt
MjQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NTgKKyAgICAgICAgW0pTQ10gSW1w
bGVtZW50IE1lc3NhZ2VQb3J0IHRyYW5zZmVyIGluIEpTQyBiaW5kaW5ncyBpbXBsZW1lbnRhdGlv
biBvZiB3ZWJraXRQb3N0TWVzc2FnZS4KKyAgICAgICAgU29tZSAnRkFJTCdzIHJlbWFpbiBpbiBl
eHBlY3RlZCB0ZXN0IHJlc3VsdHMuIFRoZXNlIGFyZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCAKKyAg
ICAgICAgSlNDIGJpbmRpbmdzIGNob3NlIG5vdCB0byB0aHJvdyB0eXBlIGVycm9yIGV4Y2VwdGlv
biBmb3Igbm9uLXNlcmlhbGl6YWJsZSB2YWx1ZXMgLSAKKyAgICAgICAgbm9uLXNlcmlhbGl6YWJs
ZSB2YWx1ZXMgYXJlIHNlcmlhbGl6ZWQgYXMgbnVsbC4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1l
c3NhZ2UtYXJncy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvbWVzc2FnZS1w
b3J0LW11bHRpLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0xMC0yNCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBmZUNvbG9yTWF0cml4IGRvZXNuJ3QgdXNl
IHRoZSBjb3JyZWN0IGRlZmF1bHQgIm1hdHJpeCIgdHlwZSB3aGVuIG5vIHR5cGUgYXR0cmlidXRl
IGlzIHNwZWNpZmllZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wb3N0bWVzc2FnZS1hcmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtYXJncy1leHBlY3RlZC50eHQKaW5kZXggZmIzOWI0
OC4uYWU3YWI0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wb3N0bWVzc2FnZS1hcmdzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0CkBAIC0zMSw3ICsz
MSw3IEBAIFJlY2VpdmVkIG1lc3NhZ2UgJzcnIHdpdGggMiBwb3J0cy4KIFJlY2VpdmVkIG1lc3Nh
Z2UgJzIxNDc0ODM2NDgnIHdpdGggMCBwb3J0cy4KIFJlY2VpdmVkIG1lc3NhZ2UgJzIxNDc0ODM2
NDgnIHdpdGggMCBwb3J0cy4KIFJlY2VpdmVkIG1lc3NhZ2UgJ1tvYmplY3QgT2JqZWN0XScgd2l0
aCAyIHBvcnRzLgotUmVjZWl2ZWQgbWVzc2FnZSAnW29iamVjdCBPYmplY3RdJyB3aXRoIDIgcG9y
dHMuCi1SZWNlaXZlZCBtZXNzYWdlICdbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdJyB3
aXRoIDIgcG9ydHMuCitSZWNlaXZlZCBtZXNzYWdlICdbb2JqZWN0IE1lc3NhZ2VQb3J0XScgd2l0
aCAyIHBvcnRzLgorUmVjZWl2ZWQgbWVzc2FnZSAnW29iamVjdCBNZXNzYWdlUG9ydF0sW29iamVj
dCBNZXNzYWdlUG9ydF0nIHdpdGggMiBwb3J0cy4KIFJlY2VpdmVkIG1lc3NhZ2UgJ2RvbmUnIHdp
dGggMCBwb3J0cy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbWVzc2Fn
ZS1wb3J0LW11bHRpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21lc3Nh
Z2UtcG9ydC1tdWx0aS1leHBlY3RlZC50eHQKaW5kZXggOTAzZWI2Yy4uOGU4Y2RmNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW11bHRpLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhw
ZWN0ZWQudHh0CkBAIC0xNSw5ICsxNSw5IEBAIFBBU1MgZXZlbnQucG9ydHMgaXMgbm9uLW51bGwg
YW5kIHplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2VudAogUEFTUyBldmVudC5wb3J0cyBj
b250YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgc2VudAogUEFTUyBldmVudC5wb3J0cyBj
b250YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgcmUtc2VudCBhZnRlciBlcnJvcgogRkFJ
TCBTZW5kaW5nIGhvc3Qgb2JqZWN0IHNob3VsZCB0aHJvdwotRkFJTCBzZW5kLXBvcnQ6IHBvcnQg
dHJhbnNmZXIgZmFpbGVkCi1GQUlMIHNlbmQtcG9ydC10d2ljZTogZmFpbGVkIHRvIHRyYW5zZmVy
IG9uZSBwb3J0IHR3aWNlCi1GQUlMIHNlbmQtdHdvLXBvcnRzOiBmYWlsZWQgdG8gdHJhbnNmZXIg
dHdvIHBvcnRzCitQQVNTIHNlbmQtcG9ydDogdHJhbnNmZXJyZWQgb25lIHBvcnQKK1BBU1Mgc2Vu
ZC1wb3J0LXR3aWNlOiB0cmFuc2ZlcnJlZCBvbmUgcG9ydCB0d2ljZQorUEFTUyBzZW5kLXR3by1w
b3J0czogdHJhbnNmZXJyZWQgdHdvIHBvcnRzCiBGQUlMIFVuZXhwZWN0ZWQgbWVzc2FnZSBbb2Jq
ZWN0IE9iamVjdF0KIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE3NmM5NzQuLmFhYzM0
NjUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMC0yNCAgRG1pdHJ5IExvbW92
ICA8ZHNsb21vdkBnb29nbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MDY1OAorICAgICAgICBbSlNDXSBJbXBsZW1lbnQgTWVzc2FnZVBv
cnQgdHJhbnNmZXIgaW4gSlNDIGJpbmRpbmdzIGltcGxlbWVudGF0aW9uIG9mIHdlYmtpdFBvc3RN
ZXNzYWdlLgorICAgICAgICBUcmFuc2ZlciBvZiBNZXNzYWdlUG9ydHMgaW1wbGVtZW50ZWQuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVT
ZXJpYWxpemVyOjpzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVy
OjpDbG9uZVNlcmlhbGl6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpk
dW1wSWZUZXJtaW5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6ZGVz
ZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OkNsb25lRGVz
ZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVGVy
bWluYWwpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSk6
CisKIDIwMTEtMTAtMjQgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZW1vdmUgdW51c2VkIGluc3RhbmNlIHZhcmlhYmxlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA5NjJi
ZjVkLi44MjA1NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0Zp
bGUuaCIKICNpbmNsdWRlICJKU0ZpbGVMaXN0LmgiCiAjaW5jbHVkZSAiSlNJbWFnZURhdGEuaCIK
KyNpbmNsdWRlICJKU01lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3IuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC04OCw2ICs4OSw3
IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAgRW1wdHlTdHJpbmdUYWcgPSAxNywKICAg
ICBSZWdFeHBUYWcgPSAxOCwKICAgICBPYmplY3RSZWZlcmVuY2VUYWcgPSAxOSwKKyAgICBNZXNz
YWdlUG9ydFJlZmVyZW5jZVRhZyA9IDIwLAogICAgIEVycm9yVGFnID0gMjU1CiB9OwogCkBAIC0x
MzMsNiArMTM1LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBTdHJpbmdQb29sVGFnID0g
MHhGRkZGRkZGRTsKICAqICAgIHwgSW1hZ2VEYXRhCiAgKiAgICB8IEJsb2IKICAqICAgIHwgT2Jq
ZWN0UmVmZXJlbmNlVGFnIDxvcEluZGV4OkluZGV4VHlwZT4KKyAqICAgIHwgTWVzc2FnZVBvcnRS
ZWZlcmVuY2VUYWcgPHZhbHVlOnVpbnQzMl90PgogICoKICAqIFN0cmluZyA6LQogICogICAgICBF
bXB0eVN0cmluZ1RhZwpAQCAtMjUxLDkgKzI1NCw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBz
dGF0aWMgYm9vbCB3cml0ZUxpdHRsZUVuZGlhbihWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgY29u
CiAKIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIHNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdmFsdWUsIFZlY3Rvcjx1aW50OF90PiYgb3V0KQorICAgIHN0YXRpYyBTZXJpYWxpemF0
aW9uUmV0dXJuQ29kZSBzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBN
ZXNzYWdlUG9ydEFycmF5KiBtZXNzYWdlUG9ydHMsIFZlY3Rvcjx1aW50OF90PiYgb3V0KQogICAg
IHsKLSAgICAgICAgQ2xvbmVTZXJpYWxpemVyIHNlcmlhbGl6ZXIoZXhlYywgb3V0KTsKKyAgICAg
ICAgQ2xvbmVTZXJpYWxpemVyIHNlcmlhbGl6ZXIoZXhlYywgbWVzc2FnZVBvcnRzLCBvdXQpOwog
ICAgICAgICByZXR1cm4gc2VyaWFsaXplci5zZXJpYWxpemUodmFsdWUpOwogICAgIH0KIApAQCAt
MjcwLDEyICsyNzMsMjEgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBDbG9uZVNl
cmlhbGl6ZXIoRXhlY1N0YXRlKiBleGVjLCBWZWN0b3I8dWludDhfdD4mIG91dCkKKyAgICBDbG9u
ZVNlcmlhbGl6ZXIoRXhlY1N0YXRlKiBleGVjLCBNZXNzYWdlUG9ydEFycmF5KiBtZXNzYWdlUG9y
dHMsIFZlY3Rvcjx1aW50OF90PiYgb3V0KQogICAgICAgICA6IENsb25lQmFzZShleGVjKQogICAg
ICAgICAsIG1fYnVmZmVyKG91dCkKICAgICAgICAgLCBtX2VtcHR5SWRlbnRpZmllcihleGVjLCBV
U3RyaW5nKCIiLCAwKSkKICAgICB7CiAgICAgICAgIHdyaXRlKEN1cnJlbnRWZXJzaW9uKTsKKyAg
ICAgICAgaWYgKG1lc3NhZ2VQb3J0cykgeworICAgICAgICAgICAgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bWVzc2FnZVBvcnRzLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIEpTQzo6SlNWYWx1
ZSB2YWx1ZSA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMtPmF0KGkpLmdl
dCgpKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUuZ2V0T2JqZWN0KCkpCisgICAgICAgICAg
ICAgICAgICAgIG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHMuYWRkKHZhbHVlLmdldE9iamVjdCgp
LCBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorIAogICAgIH0KIAogICAgIFNlcmlhbGl6
YXRpb25SZXR1cm5Db2RlIHNlcmlhbGl6ZShKU1ZhbHVlIGluKTsKQEAgLTQ3NCw2ICs0ODYsMTYg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB3cml0ZShVU3RyaW5nKGZsYWdzLCBmbGFnQ291
bnQpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGlmIChvYmotPmluaGVyaXRzKCZKU01lc3NhZ2VQb3J0OjpzX2luZm8pKSB7CisgICAg
ICAgICAgICAgICAgT2JqZWN0UG9vbDo6aXRlcmF0b3IgaW5kZXggPSBtX3RyYW5zZmVycmVkTWVz
c2FnZVBvcnRzLmZpbmQob2JqKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT0gbV90cmFu
c2ZlcnJlZE1lc3NhZ2VQb3J0cy5lbmQoKSkgeworICAgICAgICAgICAgICAgICAgICB3cml0ZShN
ZXNzYWdlUG9ydFJlZmVyZW5jZVRhZyk7CisgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGkg
PSBpbmRleC0+c2Vjb25kOworICAgICAgICAgICAgICAgICAgICB3cml0ZShpKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgQ2FsbERhdGEg
dW51c2VkRGF0YTsKICAgICAgICAgICAgIGlmIChnZXRDYWxsRGF0YSh2YWx1ZSwgdW51c2VkRGF0
YSkgPT0gQ2FsbFR5cGVOb25lKQpAQCAtNjA0LDYgKzYyNiw3IEBAIHByaXZhdGU6CiAgICAgVmVj
dG9yPHVpbnQ4X3Q+JiBtX2J1ZmZlcjsKICAgICB0eXBlZGVmIEhhc2hNYXA8SlNPYmplY3QqLCB1
aW50MzJfdD4gT2JqZWN0UG9vbDsKICAgICBPYmplY3RQb29sIG1fb2JqZWN0UG9vbDsKKyAgICBP
YmplY3RQb29sIG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHM7CiAgICAgdHlwZWRlZiBIYXNoTWFw
PFJlZlB0cjxTdHJpbmdJbXBsPiwgdWludDMyX3QsIElkZW50aWZpZXJSZXBIYXNoPiBTdHJpbmdD
b25zdGFudFBvb2w7CiAgICAgU3RyaW5nQ29uc3RhbnRQb29sIG1fY29uc3RhbnRQb29sOwogICAg
IElkZW50aWZpZXIgbV9lbXB0eUlkZW50aWZpZXI7CkBAIC03ODQsMTEgKzgwNywxMiBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBTdHJpbmcoc3RyLmltcGwoKSk7CiAgICAgfQogCi0gICAgc3Rh
dGljIERlc2VyaWFsaXphdGlvblJlc3VsdCBkZXNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVy
KQorICAgIHN0YXRpYyBEZXNlcmlhbGl6YXRpb25SZXN1bHQgZGVzZXJpYWxpemUoRXhlY1N0YXRl
KiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBNZXNzYWdlUG9ydEFycmF5KiBt
ZXNzYWdlUG9ydHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKICAgICB7CiAgICAgICAgIGlmICghYnVm
ZmVyLnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlX3BhaXIoanNOdWxsKCksIFVuc3Bl
Y2lmaWVkRXJyb3IpOwotICAgICAgICBDbG9uZURlc2VyaWFsaXplciBkZXNlcmlhbGl6ZXIoZXhl
YywgZ2xvYmFsT2JqZWN0LCBidWZmZXIpOworICAgICAgICBDbG9uZURlc2VyaWFsaXplciBkZXNl
cmlhbGl6ZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMsIGJ1ZmZlcik7CiAgICAg
ICAgIGlmICghZGVzZXJpYWxpemVyLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBtYWtl
X3BhaXIoSlNWYWx1ZSgpLCBWYWxpZGF0aW9uRXJyb3IpOwogICAgICAgICByZXR1cm4gZGVzZXJp
YWxpemVyLmRlc2VyaWFsaXplKCk7CkBAIC04MzMsMTMgKzg1NywxNCBAQCBwcml2YXRlOgogICAg
ICAgICBzaXplX3QgbV9pbmRleDsKICAgICB9OwogCi0gICAgQ2xvbmVEZXNlcmlhbGl6ZXIoRXhl
Y1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIGJ1ZmZlcikKKyAgICBDbG9uZURlc2VyaWFsaXplcihFeGVjU3RhdGUqIGV4ZWMs
IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE1lc3NhZ2VQb3J0QXJyYXkqIG1lc3NhZ2VQ
b3J0cywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCiAgICAgICAgIDogQ2xvbmVCYXNl
KGV4ZWMpCiAgICAgICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQogICAgICAgICAs
IG1faXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhlcml0cygmSlNET01HbG9iYWxP
YmplY3Q6OnNfaW5mbykpCiAgICAgICAgICwgbV9wdHIoYnVmZmVyLmRhdGEoKSkKICAgICAgICAg
LCBtX2VuZChidWZmZXIuZGF0YSgpICsgYnVmZmVyLnNpemUoKSkKICAgICAgICAgLCBtX3ZlcnNp
b24oMHhGRkZGRkZGRikKKyAgICAgICAgLCBtX21lc3NhZ2VQb3J0cyhtZXNzYWdlUG9ydHMpCiAg
ICAgewogICAgICAgICBpZiAoIXJlYWQobV92ZXJzaW9uKSkKICAgICAgICAgICAgIG1fdmVyc2lv
biA9IDB4RkZGRkZGRkY7CkBAIC0xMTc4LDYgKzEyMDMsMTkgQEAgcHJpdmF0ZToKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIHJldHVybiBtX2djQnVmZmVyLmF0KGluZGV4KTsKICAgICAgICAg
fQorICAgICAgICBjYXNlIE1lc3NhZ2VQb3J0UmVmZXJlbmNlVGFnOiB7CisgICAgICAgICAgICB1
aW50MzJfdCBpbmRleDsKKyAgICAgICAgICAgIGlmICghcmVhZChpbmRleCkpIHsKKyAgICAgICAg
ICAgICAgICBmYWlsKCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGlmICghbV9tZXNzYWdlUG9ydHMgfHwgaW5kZXggPj0gbV9t
ZXNzYWdlUG9ydHMtPnNpemUoKSkgeworICAgICAgICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0
dXJuIHRvSlMobV9leGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KG1fZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG1fbWVzc2Fn
ZVBvcnRzLT5hdChpbmRleCkuZ2V0KCkpOworICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICBtX3B0ci0tOyAvLyBQdXNoIHRoZSB0YWcgYmFjawogICAgICAgICAgICAgcmV0
dXJuIEpTVmFsdWUoKTsKQEAgLTExOTAsNiArMTIyOCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3Qg
dWludDhfdCogbV9lbmQ7CiAgICAgdW5zaWduZWQgbV92ZXJzaW9uOwogICAgIFZlY3RvcjxDYWNo
ZWRTdHJpbmc+IG1fY29uc3RhbnRQb29sOworICAgIE1lc3NhZ2VQb3J0QXJyYXkqIG1fbWVzc2Fn
ZVBvcnRzOwogfTsKIAogRGVzZXJpYWxpemF0aW9uUmVzdWx0IENsb25lRGVzZXJpYWxpemVyOjpk
ZXNlcmlhbGl6ZSgpCkBAIC0xMjc2LDYgKzEzMTUsNyBAQCBEZXNlcmlhbGl6YXRpb25SZXN1bHQg
Q2xvbmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXplKCkKICAgICAgICAgICAgIGlmICghcmVhZFN0
cmluZ0RhdGEoY2FjaGVkU3RyaW5nLCB3YXNUZXJtaW5hdG9yKSkgewogICAgICAgICAgICAgICAg
IGlmICghd2FzVGVybWluYXRvcikKICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJvcjsKKwog
ICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvdXRPYmplY3QgPSBvdXRwdXRPYmplY3RTdGFjay5s
YXN0KCk7CiAgICAgICAgICAgICAgICAgb3V0VmFsdWUgPSBvdXRPYmplY3Q7CiAgICAgICAgICAg
ICAgICAgb3V0cHV0T2JqZWN0U3RhY2sucmVtb3ZlTGFzdCgpOwpAQCAtMTMzOSwxMCArMTM3OSwx
MCBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8
dWludDhfdD4mIGJ1ZmZlcikKICAgICBtX2RhdGEuc3dhcChidWZmZXIpOwogfQogCi1QYXNzUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUo
RXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEFycmF5KiwgU2VyaWFs
aXphdGlvbkVycm9yTW9kZSB0aHJvd0V4Y2VwdGlvbnMpCitQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVj
LCBKU1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEFycmF5KiBtZXNzYWdlUG9ydHMsIFNlcmlhbGl6
YXRpb25FcnJvck1vZGUgdGhyb3dFeGNlcHRpb25zKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBi
dWZmZXI7Ci0gICAgU2VyaWFsaXphdGlvblJldHVybkNvZGUgY29kZSA9IENsb25lU2VyaWFsaXpl
cjo6c2VyaWFsaXplKGV4ZWMsIHZhbHVlLCBidWZmZXIpOworICAgIFNlcmlhbGl6YXRpb25SZXR1
cm5Db2RlIGNvZGUgPSBDbG9uZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShleGVjLCB2YWx1ZSwgbWVz
c2FnZVBvcnRzLCBidWZmZXIpOwogICAgIGlmICh0aHJvd0V4Y2VwdGlvbnMgPT0gVGhyb3dpbmcp
CiAgICAgICAgIG1heWJlVGhyb3dFeGNlcHRpb25JZlNlcmlhbGl6YXRpb25GYWlsZWQoZXhlYywg
Y29kZSk7CiAKQEAgLTEzOTUsOSArMTQzNSw5IEBAIFN0cmluZyBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OnRvU3RyaW5nKCkKIH0KIAogSlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2Vy
aWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVBvcnRBcnJh
eSosIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgdGhyb3dFeGNlcHRpb25zKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2VQb3J0QXJyYXkqIG1lc3NhZ2VQ
b3J0cywgU2VyaWFsaXphdGlvbkVycm9yTW9kZSB0aHJvd0V4Y2VwdGlvbnMpCiB7Ci0gICAgRGVz
ZXJpYWxpemF0aW9uUmVzdWx0IHJlc3VsdCA9IENsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6
ZShleGVjLCBnbG9iYWxPYmplY3QsIG1fZGF0YSk7CisgICAgRGVzZXJpYWxpemF0aW9uUmVzdWx0
IHJlc3VsdCA9IENsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZShleGVjLCBnbG9iYWxPYmpl
Y3QsIG1lc3NhZ2VQb3J0cywgbV9kYXRhKTsKICAgICBpZiAodGhyb3dFeGNlcHRpb25zID09IFRo
cm93aW5nKQogICAgICAgICBtYXliZVRocm93RXhjZXB0aW9uSWZTZXJpYWxpemF0aW9uRmFpbGVk
KGV4ZWMsIHJlc3VsdC5zZWNvbmQpOwogICAgIHJldHVybiByZXN1bHQuZmlyc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112364</attachid>
            <date>2011-10-25 11:20:00 -0700</date>
            <delta_ts>2011-10-31 14:07:38 -0700</delta_ts>
            <desc>CR comments addressed (thanks David!)</desc>
            <filename>70658.patch</filename>
            <type>text/plain</type>
            <size>11134</size>
            <attacher name="Dmitry Lomov">dslomov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZTBiZjY3Li5iMTVhNzg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTAt
MjQgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA2NTgKKyAgICAgICAgW0pTQ10gSW1w
bGVtZW50IE1lc3NhZ2VQb3J0IHRyYW5zZmVyIGluIEpTQyBiaW5kaW5ncyBpbXBsZW1lbnRhdGlv
biBvZiB3ZWJraXRQb3N0TWVzc2FnZS4KKyAgICAgICAgU29tZSAnRkFJTCdzIHJlbWFpbiBpbiBl
eHBlY3RlZCB0ZXN0IHJlc3VsdHMuIFRoZXNlIGFyZSBkdWUgdG8gdGhlIGZhY3QgdGhhdCAKKyAg
ICAgICAgSlNDIGJpbmRpbmdzIGNob3NlIG5vdCB0byB0aHJvdyB0eXBlIGVycm9yIGV4Y2VwdGlv
biBmb3Igbm9uLXNlcmlhbGl6YWJsZSB2YWx1ZXMgLSAKKyAgICAgICAgbm9uLXNlcmlhbGl6YWJs
ZSB2YWx1ZXMgYXJlIHNlcmlhbGl6ZWQgYXMgbnVsbC4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcG9zdG1l
c3NhZ2UtYXJncy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvbWVzc2FnZS1w
b3J0LW11bHRpLWV4cGVjdGVkLnR4dDoKKwogMjAxMS0xMC0yNCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBmZUNvbG9yTWF0cml4IGRvZXNuJ3QgdXNl
IHRoZSBjb3JyZWN0IGRlZmF1bHQgIm1hdHJpeCIgdHlwZSB3aGVuIG5vIHR5cGUgYXR0cmlidXRl
IGlzIHNwZWNpZmllZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wb3N0bWVzc2FnZS1hcmdzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcG9zdG1lc3NhZ2UtYXJncy1leHBlY3RlZC50eHQKaW5kZXggZmIzOWI0
OC4uYWU3YWI0MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1wb3N0bWVzc2FnZS1hcmdzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvd2luZG93LXBvc3RtZXNzYWdlLWFyZ3MtZXhwZWN0ZWQudHh0CkBAIC0zMSw3ICsz
MSw3IEBAIFJlY2VpdmVkIG1lc3NhZ2UgJzcnIHdpdGggMiBwb3J0cy4KIFJlY2VpdmVkIG1lc3Nh
Z2UgJzIxNDc0ODM2NDgnIHdpdGggMCBwb3J0cy4KIFJlY2VpdmVkIG1lc3NhZ2UgJzIxNDc0ODM2
NDgnIHdpdGggMCBwb3J0cy4KIFJlY2VpdmVkIG1lc3NhZ2UgJ1tvYmplY3QgT2JqZWN0XScgd2l0
aCAyIHBvcnRzLgotUmVjZWl2ZWQgbWVzc2FnZSAnW29iamVjdCBPYmplY3RdJyB3aXRoIDIgcG9y
dHMuCi1SZWNlaXZlZCBtZXNzYWdlICdbb2JqZWN0IE9iamVjdF0sW29iamVjdCBPYmplY3RdJyB3
aXRoIDIgcG9ydHMuCitSZWNlaXZlZCBtZXNzYWdlICdbb2JqZWN0IE1lc3NhZ2VQb3J0XScgd2l0
aCAyIHBvcnRzLgorUmVjZWl2ZWQgbWVzc2FnZSAnW29iamVjdCBNZXNzYWdlUG9ydF0sW29iamVj
dCBNZXNzYWdlUG9ydF0nIHdpdGggMiBwb3J0cy4KIFJlY2VpdmVkIG1lc3NhZ2UgJ2RvbmUnIHdp
dGggMCBwb3J0cy4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbWVzc2Fn
ZS1wb3J0LW11bHRpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL21lc3Nh
Z2UtcG9ydC1tdWx0aS1leHBlY3RlZC50eHQKaW5kZXggOTAzZWI2Yy4uOGU4Y2RmNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvbWVzc2FnZS1wb3J0LW11bHRpLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtbXVsdGktZXhw
ZWN0ZWQudHh0CkBAIC0xNSw5ICsxNSw5IEBAIFBBU1MgZXZlbnQucG9ydHMgaXMgbm9uLW51bGwg
YW5kIHplcm8gbGVuZ3RoIHdoZW4gZW1wdHkgYXJyYXkgc2VudAogUEFTUyBldmVudC5wb3J0cyBj
b250YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgc2VudAogUEFTUyBldmVudC5wb3J0cyBj
b250YWlucyB0d28gcG9ydHMgd2hlbiB0d28gcG9ydHMgcmUtc2VudCBhZnRlciBlcnJvcgogRkFJ
TCBTZW5kaW5nIGhvc3Qgb2JqZWN0IHNob3VsZCB0aHJvdwotRkFJTCBzZW5kLXBvcnQ6IHBvcnQg
dHJhbnNmZXIgZmFpbGVkCi1GQUlMIHNlbmQtcG9ydC10d2ljZTogZmFpbGVkIHRvIHRyYW5zZmVy
IG9uZSBwb3J0IHR3aWNlCi1GQUlMIHNlbmQtdHdvLXBvcnRzOiBmYWlsZWQgdG8gdHJhbnNmZXIg
dHdvIHBvcnRzCitQQVNTIHNlbmQtcG9ydDogdHJhbnNmZXJyZWQgb25lIHBvcnQKK1BBU1Mgc2Vu
ZC1wb3J0LXR3aWNlOiB0cmFuc2ZlcnJlZCBvbmUgcG9ydCB0d2ljZQorUEFTUyBzZW5kLXR3by1w
b3J0czogdHJhbnNmZXJyZWQgdHdvIHBvcnRzCiBGQUlMIFVuZXhwZWN0ZWQgbWVzc2FnZSBbb2Jq
ZWN0IE9iamVjdF0KIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE3NmM5NzQuLmFhYzM0
NjUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMC0yNCAgRG1pdHJ5IExvbW92
ICA8ZHNsb21vdkBnb29nbGUuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MDY1OAorICAgICAgICBbSlNDXSBJbXBsZW1lbnQgTWVzc2FnZVBv
cnQgdHJhbnNmZXIgaW4gSlNDIGJpbmRpbmdzIGltcGxlbWVudGF0aW9uIG9mIHdlYmtpdFBvc3RN
ZXNzYWdlLgorICAgICAgICBUcmFuc2ZlciBvZiBNZXNzYWdlUG9ydHMgaW1wbGVtZW50ZWQuCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVT
ZXJpYWxpemVyOjpzZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVy
OjpDbG9uZVNlcmlhbGl6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVTZXJpYWxpemVyOjpk
dW1wSWZUZXJtaW5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDbG9uZURlc2VyaWFsaXplcjo6ZGVz
ZXJpYWxpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q2xvbmVEZXNlcmlhbGl6ZXI6OkNsb25lRGVz
ZXJpYWxpemVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkVGVy
bWluYWwpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNlcmlhbGl6ZSk6
CisKIDIwMTEtMTAtMjQgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZW1vdmUgdW51c2VkIGluc3RhbmNlIHZhcmlhYmxlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCA5NjJi
ZjVkLi44ZGViMDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJKU0Zp
bGUuaCIKICNpbmNsdWRlICJKU0ZpbGVMaXN0LmgiCiAjaW5jbHVkZSAiSlNJbWFnZURhdGEuaCIK
KyNpbmNsdWRlICJKU01lc3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiSlNOYXZpZ2F0b3IuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDxsaW1pdHM+CkBAIC04OCw2ICs4OSw3
IEBAIGVudW0gU2VyaWFsaXphdGlvblRhZyB7CiAgICAgRW1wdHlTdHJpbmdUYWcgPSAxNywKICAg
ICBSZWdFeHBUYWcgPSAxOCwKICAgICBPYmplY3RSZWZlcmVuY2VUYWcgPSAxOSwKKyAgICBNZXNz
YWdlUG9ydFJlZmVyZW5jZVRhZyA9IDIwLAogICAgIEVycm9yVGFnID0gMjU1CiB9OwogCkBAIC0x
MzMsNiArMTM1LDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGludCBTdHJpbmdQb29sVGFnID0g
MHhGRkZGRkZGRTsKICAqICAgIHwgSW1hZ2VEYXRhCiAgKiAgICB8IEJsb2IKICAqICAgIHwgT2Jq
ZWN0UmVmZXJlbmNlVGFnIDxvcEluZGV4OkluZGV4VHlwZT4KKyAqICAgIHwgTWVzc2FnZVBvcnRS
ZWZlcmVuY2VUYWcgPHZhbHVlOnVpbnQzMl90PgogICoKICAqIFN0cmluZyA6LQogICogICAgICBF
bXB0eVN0cmluZ1RhZwpAQCAtMjUxLDkgKzI1NCw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBz
dGF0aWMgYm9vbCB3cml0ZUxpdHRsZUVuZGlhbihWZWN0b3I8dWludDhfdD4mIGJ1ZmZlciwgY29u
CiAKIGNsYXNzIENsb25lU2VyaWFsaXplciA6IENsb25lQmFzZSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIHNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgdmFsdWUsIFZlY3Rvcjx1aW50OF90PiYgb3V0KQorICAgIHN0YXRpYyBTZXJpYWxpemF0
aW9uUmV0dXJuQ29kZSBzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBN
ZXNzYWdlUG9ydEFycmF5KiBtZXNzYWdlUG9ydHMsIFZlY3Rvcjx1aW50OF90PiYgb3V0KQogICAg
IHsKLSAgICAgICAgQ2xvbmVTZXJpYWxpemVyIHNlcmlhbGl6ZXIoZXhlYywgb3V0KTsKKyAgICAg
ICAgQ2xvbmVTZXJpYWxpemVyIHNlcmlhbGl6ZXIoZXhlYywgbWVzc2FnZVBvcnRzLCBvdXQpOwog
ICAgICAgICByZXR1cm4gc2VyaWFsaXplci5zZXJpYWxpemUodmFsdWUpOwogICAgIH0KIApAQCAt
MjcwLDEyICsyNzMsMjAgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBDbG9uZVNl
cmlhbGl6ZXIoRXhlY1N0YXRlKiBleGVjLCBWZWN0b3I8dWludDhfdD4mIG91dCkKKyAgICBDbG9u
ZVNlcmlhbGl6ZXIoRXhlY1N0YXRlKiBleGVjLCBNZXNzYWdlUG9ydEFycmF5KiBtZXNzYWdlUG9y
dHMsIFZlY3Rvcjx1aW50OF90PiYgb3V0KQogICAgICAgICA6IENsb25lQmFzZShleGVjKQogICAg
ICAgICAsIG1fYnVmZmVyKG91dCkKICAgICAgICAgLCBtX2VtcHR5SWRlbnRpZmllcihleGVjLCBV
U3RyaW5nKCIiLCAwKSkKICAgICB7CiAgICAgICAgIHdyaXRlKEN1cnJlbnRWZXJzaW9uKTsKKyAg
ICAgICAgaWYgKG1lc3NhZ2VQb3J0cykgeworICAgICAgICAgICAgSlNET01HbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCA9IHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
bWVzc2FnZVBvcnRzLT5zaXplKCk7IGkrKykgeworICAgICAgICAgICAgICAgIEpTQzo6SlNWYWx1
ZSB2YWx1ZSA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMtPmF0KGkpLmdl
dCgpKTsKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUuZ2V0T2JqZWN0KCkpCisgICAgICAgICAg
ICAgICAgICAgIG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHMuYWRkKHZhbHVlLmdldE9iamVjdCgp
LCBpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIFNlcmlhbGl6YXRp
b25SZXR1cm5Db2RlIHNlcmlhbGl6ZShKU1ZhbHVlIGluKTsKQEAgLTQ3NCw2ICs0ODUsMTYgQEAg
cHJpdmF0ZToKICAgICAgICAgICAgICAgICB3cml0ZShVU3RyaW5nKGZsYWdzLCBmbGFnQ291bnQp
KTsKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGlmIChvYmotPmluaGVyaXRzKCZKU01lc3NhZ2VQb3J0OjpzX2luZm8pKSB7CisgICAgICAg
ICAgICAgICAgT2JqZWN0UG9vbDo6aXRlcmF0b3IgaW5kZXggPSBtX3RyYW5zZmVycmVkTWVzc2Fn
ZVBvcnRzLmZpbmQob2JqKTsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXggIT0gbV90cmFuc2Zl
cnJlZE1lc3NhZ2VQb3J0cy5lbmQoKSkgeworICAgICAgICAgICAgICAgICAgICB3cml0ZShNZXNz
YWdlUG9ydFJlZmVyZW5jZVRhZyk7CisgICAgICAgICAgICAgICAgICAgIHVpbnQzMl90IGkgPSBp
bmRleC0+c2Vjb25kOworICAgICAgICAgICAgICAgICAgICB3cml0ZShpKTsKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgQ2FsbERhdGEgdW51
c2VkRGF0YTsKICAgICAgICAgICAgIGlmIChnZXRDYWxsRGF0YSh2YWx1ZSwgdW51c2VkRGF0YSkg
PT0gQ2FsbFR5cGVOb25lKQpAQCAtNjA0LDYgKzYyNSw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PHVpbnQ4X3Q+JiBtX2J1ZmZlcjsKICAgICB0eXBlZGVmIEhhc2hNYXA8SlNPYmplY3QqLCB1aW50
MzJfdD4gT2JqZWN0UG9vbDsKICAgICBPYmplY3RQb29sIG1fb2JqZWN0UG9vbDsKKyAgICBPYmpl
Y3RQb29sIG1fdHJhbnNmZXJyZWRNZXNzYWdlUG9ydHM7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFJl
ZlB0cjxTdHJpbmdJbXBsPiwgdWludDMyX3QsIElkZW50aWZpZXJSZXBIYXNoPiBTdHJpbmdDb25z
dGFudFBvb2w7CiAgICAgU3RyaW5nQ29uc3RhbnRQb29sIG1fY29uc3RhbnRQb29sOwogICAgIElk
ZW50aWZpZXIgbV9lbXB0eUlkZW50aWZpZXI7CkBAIC03ODQsMTEgKzgwNiwxMiBAQCBwdWJsaWM6
CiAgICAgICAgIHJldHVybiBTdHJpbmcoc3RyLmltcGwoKSk7CiAgICAgfQogCi0gICAgc3RhdGlj
IERlc2VyaWFsaXphdGlvblJlc3VsdCBkZXNlcmlhbGl6ZShFeGVjU3RhdGUqIGV4ZWMsIEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYnVmZmVyKQor
ICAgIHN0YXRpYyBEZXNlcmlhbGl6YXRpb25SZXN1bHQgZGVzZXJpYWxpemUoRXhlY1N0YXRlKiBl
eGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBNZXNzYWdlUG9ydEFycmF5KiBtZXNz
YWdlUG9ydHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKICAgICB7CiAgICAgICAgIGlmICghYnVmZmVy
LnNpemUoKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlX3BhaXIoanNOdWxsKCksIFVuc3BlY2lm
aWVkRXJyb3IpOwotICAgICAgICBDbG9uZURlc2VyaWFsaXplciBkZXNlcmlhbGl6ZXIoZXhlYywg
Z2xvYmFsT2JqZWN0LCBidWZmZXIpOworICAgICAgICBDbG9uZURlc2VyaWFsaXplciBkZXNlcmlh
bGl6ZXIoZXhlYywgZ2xvYmFsT2JqZWN0LCBtZXNzYWdlUG9ydHMsIGJ1ZmZlcik7CiAgICAgICAg
IGlmICghZGVzZXJpYWxpemVyLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlX3Bh
aXIoSlNWYWx1ZSgpLCBWYWxpZGF0aW9uRXJyb3IpOwogICAgICAgICByZXR1cm4gZGVzZXJpYWxp
emVyLmRlc2VyaWFsaXplKCk7CkBAIC04MzMsMTMgKzg1NiwxNCBAQCBwcml2YXRlOgogICAgICAg
ICBzaXplX3QgbV9pbmRleDsKICAgICB9OwogCi0gICAgQ2xvbmVEZXNlcmlhbGl6ZXIoRXhlY1N0
YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIGJ1ZmZlcikKKyAgICBDbG9uZURlc2VyaWFsaXplcihFeGVjU3RhdGUqIGV4ZWMsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIE1lc3NhZ2VQb3J0QXJyYXkqIG1lc3NhZ2VQb3J0
cywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBidWZmZXIpCiAgICAgICAgIDogQ2xvbmVCYXNlKGV4
ZWMpCiAgICAgICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQogICAgICAgICAsIG1f
aXNET01HbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0LT5pbmhlcml0cygmSlNET01HbG9iYWxPYmpl
Y3Q6OnNfaW5mbykpCiAgICAgICAgICwgbV9wdHIoYnVmZmVyLmRhdGEoKSkKICAgICAgICAgLCBt
X2VuZChidWZmZXIuZGF0YSgpICsgYnVmZmVyLnNpemUoKSkKICAgICAgICAgLCBtX3ZlcnNpb24o
MHhGRkZGRkZGRikKKyAgICAgICAgLCBtX21lc3NhZ2VQb3J0cyhtZXNzYWdlUG9ydHMpCiAgICAg
ewogICAgICAgICBpZiAoIXJlYWQobV92ZXJzaW9uKSkKICAgICAgICAgICAgIG1fdmVyc2lvbiA9
IDB4RkZGRkZGRkY7CkBAIC0xMTc4LDYgKzEyMDIsMTYgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIHJldHVybiBtX2djQnVmZmVyLmF0KGluZGV4KTsKICAgICAgICAgfQor
ICAgICAgICBjYXNlIE1lc3NhZ2VQb3J0UmVmZXJlbmNlVGFnOiB7CisgICAgICAgICAgICB1aW50
MzJfdCBpbmRleDsKKyAgICAgICAgICAgIGJvb2wgaW5kZXhTdWNjZXNzZnVsbHlSZWFkID0gcmVh
ZChpbmRleCk7CisgICAgICAgICAgICBpZiAoIWluZGV4U3VjY2Vzc2Z1bGx5UmVhZCB8fCAhbV9t
ZXNzYWdlUG9ydHMgfHwgaW5kZXggPj0gbV9tZXNzYWdlUG9ydHMtPnNpemUoKSkgeworICAgICAg
ICAgICAgICAgIGZhaWwoKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRvSlMobV9leGVjLCBzdGF0aWNfY2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KG1fZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fbWVzc2FnZVBvcnRzLT5hdChpbmRleCkuZ2V0KCkpOworICAg
ICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBtX3B0ci0tOyAvLyBQdXNoIHRo
ZSB0YWcgYmFjawogICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKQEAgLTExOTAsNiArMTIy
NCw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgdWludDhfdCogbV9lbmQ7CiAgICAgdW5zaWduZWQg
bV92ZXJzaW9uOwogICAgIFZlY3RvcjxDYWNoZWRTdHJpbmc+IG1fY29uc3RhbnRQb29sOworICAg
IE1lc3NhZ2VQb3J0QXJyYXkqIG1fbWVzc2FnZVBvcnRzOwogfTsKIAogRGVzZXJpYWxpemF0aW9u
UmVzdWx0IENsb25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZSgpCkBAIC0xMjc2LDYgKzEzMTEs
NyBAQCBEZXNlcmlhbGl6YXRpb25SZXN1bHQgQ2xvbmVEZXNlcmlhbGl6ZXI6OmRlc2VyaWFsaXpl
KCkKICAgICAgICAgICAgIGlmICghcmVhZFN0cmluZ0RhdGEoY2FjaGVkU3RyaW5nLCB3YXNUZXJt
aW5hdG9yKSkgewogICAgICAgICAgICAgICAgIGlmICghd2FzVGVybWluYXRvcikKICAgICAgICAg
ICAgICAgICAgICAgZ290byBlcnJvcjsKKwogICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvdXRP
YmplY3QgPSBvdXRwdXRPYmplY3RTdGFjay5sYXN0KCk7CiAgICAgICAgICAgICAgICAgb3V0VmFs
dWUgPSBvdXRPYmplY3Q7CiAgICAgICAgICAgICAgICAgb3V0cHV0T2JqZWN0U3RhY2sucmVtb3Zl
TGFzdCgpOwpAQCAtMTMzOSwxMCArMTM3NSwxMCBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZShWZWN0b3I8dWludDhfdD4mIGJ1ZmZlcikKICAgICBtX2RhdGEu
c3dhcChidWZmZXIpOwogfQogCi1QYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVl
LCBNZXNzYWdlUG9ydEFycmF5KiwgU2VyaWFsaXphdGlvbkVycm9yTW9kZSB0aHJvd0V4Y2VwdGlv
bnMpCitQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlLCBNZXNzYWdlUG9ydEFy
cmF5KiBtZXNzYWdlUG9ydHMsIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgdGhyb3dFeGNlcHRpb25z
KQogewogICAgIFZlY3Rvcjx1aW50OF90PiBidWZmZXI7Ci0gICAgU2VyaWFsaXphdGlvblJldHVy
bkNvZGUgY29kZSA9IENsb25lU2VyaWFsaXplcjo6c2VyaWFsaXplKGV4ZWMsIHZhbHVlLCBidWZm
ZXIpOworICAgIFNlcmlhbGl6YXRpb25SZXR1cm5Db2RlIGNvZGUgPSBDbG9uZVNlcmlhbGl6ZXI6
OnNlcmlhbGl6ZShleGVjLCB2YWx1ZSwgbWVzc2FnZVBvcnRzLCBidWZmZXIpOwogICAgIGlmICh0
aHJvd0V4Y2VwdGlvbnMgPT0gVGhyb3dpbmcpCiAgICAgICAgIG1heWJlVGhyb3dFeGNlcHRpb25J
ZlNlcmlhbGl6YXRpb25GYWlsZWQoZXhlYywgY29kZSk7CiAKQEAgLTEzOTUsOSArMTQzMSw5IEBA
IFN0cmluZyBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnRvU3RyaW5nKCkKIH0KIAogSlNWYWx1ZSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTWVzc2FnZVBvcnRBcnJheSosIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgdGhy
b3dFeGNlcHRpb25zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IE1lc3NhZ2VQb3J0QXJyYXkqIG1lc3NhZ2VQb3J0cywgU2VyaWFsaXphdGlvbkVycm9yTW9kZSB0
aHJvd0V4Y2VwdGlvbnMpCiB7Ci0gICAgRGVzZXJpYWxpemF0aW9uUmVzdWx0IHJlc3VsdCA9IENs
b25lRGVzZXJpYWxpemVyOjpkZXNlcmlhbGl6ZShleGVjLCBnbG9iYWxPYmplY3QsIG1fZGF0YSk7
CisgICAgRGVzZXJpYWxpemF0aW9uUmVzdWx0IHJlc3VsdCA9IENsb25lRGVzZXJpYWxpemVyOjpk
ZXNlcmlhbGl6ZShleGVjLCBnbG9iYWxPYmplY3QsIG1lc3NhZ2VQb3J0cywgbV9kYXRhKTsKICAg
ICBpZiAodGhyb3dFeGNlcHRpb25zID09IFRocm93aW5nKQogICAgICAgICBtYXliZVRocm93RXhj
ZXB0aW9uSWZTZXJpYWxpemF0aW9uRmFpbGVkKGV4ZWMsIHJlc3VsdC5zZWNvbmQpOwogICAgIHJl
dHVybiByZXN1bHQuZmlyc3Q7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>