<?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>74033</bug_id>
          
          <creation_ts>2011-12-07 16:15:40 -0800</creation_ts>
          <short_desc>Refactoring: SpellChecker::requestCheckingFor should take SpellCheckRequest object</short_desc>
          <delta_ts>2011-12-08 02:46:51 -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>HTML Editing</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>73616</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>516973</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-07 16:15:40 -0800</bug_when>
    <thetext>This will make it easy to merge asynchronous path and synchronous path of spellcheck.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517166</commentid>
    <comment_count>1</comment_count>
      <attachid>118325</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-07 21:11:56 -0800</bug_when>
    <thetext>Created attachment 118325
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517202</commentid>
    <comment_count>2</comment_count>
      <attachid>118325</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-07 23:02:38 -0800</bug_when>
    <thetext>Comment on attachment 118325
Patch

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

Basically looks fine. let&apos;s have one iteration.

&gt; Source/WebCore/editing/SpellChecker.cpp:127
&gt; +    request-&gt;setSequence(++m_lastRequestSequence);

Let us make sure that published id never conflict against the magic number. 
I know this will never happen in reality, but preventing it explicitly gives us more confidence.

&gt; Source/WebCore/editing/SpellChecker.h:66
&gt; +    Element* m_rootEditableElement;

Let&apos;s make this RefPtr to prevent possible dangling pointer access.

&gt; Source/WebCore/editing/SpellChecker.h:78
&gt; +    static PassRefPtr&lt;SpellCheckRequest&gt; createRequest(TextCheckingTypeMask, PassRefPtr&lt;Range&gt; checkingRange, PassRefPtr&lt;Range&gt; paragraphRange);

SpellCheckerRequest::create() is our standard way if there is no special reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517228</commentid>
    <comment_count>3</comment_count>
      <attachid>118340</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-08 00:00:46 -0800</bug_when>
    <thetext>Created attachment 118340
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517280</commentid>
    <comment_count>4</comment_count>
      <attachid>118340</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 02:46:47 -0800</bug_when>
    <thetext>Comment on attachment 118340
Patch

Clearing flags on attachment: 118340

Committed r102328: &lt;http://trac.webkit.org/changeset/102328&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517281</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 02:46:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118325</attachid>
            <date>2011-12-07 21:11:56 -0800</date>
            <delta_ts>2011-12-08 00:00:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74033-20111208141155.patch</filename>
            <type>text/plain</type>
            <size>11537</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZiOWEzZDFlZTViMTRk
YzUxNTYyNjE3OGYwZjk0N2M4YTExYzk2ZS4uYzk0OWI0ZjEzYzE1YWRkMjJiNDVkYjE1MjIyZTUy
NmNjN2ZjOWExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM2IEBACiAyMDExLTEyLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKKyAgICAgICAgUmVmYWN0b3Jpbmc6
IEVkaXRvcjo6cmVxdWVzdENoZWNraW5nRm9yIHNob3VsZCB0YWtlIFNwZWxsQ2hlY2tSZXF1ZXN0
IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc0MDMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IgdGFrZXMgU3BlbGxDaGVja1JlcXVlc3Qg
b2JqZWN0IGluIG9yZGVyIHRvIG1ha2UgaXQgZWFzeSB0bworICAgICAgICBwYXNzIG5lY2Vzc2Fy
eSBpbmZvcm1hdGlvbiB0byByZXF1ZXN0Q2hlY2tpbmdGb3IuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZy
YWdtZW50KToKKyAgICAgICAgICBVc2VzIHRoZSBuZXcgaW50ZXJmYWNlLgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKTog
ZGl0dG8uCisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlbGxDaGVja1JlcXVlc3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojp+U3BlbGxDaGVja1JlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlbGxDaGVja2VyOjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgICBDcmVhdGVz
IFNwZWxsQ2hlY2tSZXF1ZXN0IG9iamVjdC4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tl
cjo6cmVxdWVzdENoZWNraW5nRm9yKToKKyAgICAgICAgKiBlZGl0aW5nL1NwZWxsQ2hlY2tlci5o
OgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3Q6OnNldFNlcXVlbmNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpzZXF1ZW5jZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6Y2hlY2tpbmdSYW5nZSk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6cGFyYWdyYXBoUmFuZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6U3BlbGxDaGVja1JlcXVlc3Q6OnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVj
a1JlcXVlc3Q6Om1hc2spOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3Q6OnJv
b3RFZGl0YWJsZUVsZW1lbnQpOgorCisyMDExLTEyLTA3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlu
eWFrQGdvb2dsZS5jb20+CisKICAgICAgICAgRWRpdG9yOjptYXJrQW5kUmVwbGFjZUZvciBzaG91
bGQgdGFrZSBSYW5nZSBpbnN0ZWFkIG9mIFRleHRDaGVja2luZ1BhcmFncmFwaC4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0MDM1CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAppbmRleCBkYTZmNTk2Y2FiNDc5MDIzODFjM2MyM2UyMTgwYjc3NDI2
ZjNmOTU4Li4zOGM0YzllNDI5M2VmZWZlNDE2M2IwMmUzYmQ1NDAwYjI5NTlkYjlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC00MTYsOCArNDE2LDggQEAgdm9pZCBFZGl0b3I6OnJl
cGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQoUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBm
cmFnbWVudCwKICAgICBpZiAoIW5vZGVUb0NoZWNrKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBl
TWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciks
Ci0gICAgICAgIFJhbmdlOjpjcmVhdGUobV9mcmFtZS0+ZG9jdW1lbnQoKSwgZmlyc3RQb3NpdGlv
bkluTm9kZShub2RlVG9DaGVjayksIGxhc3RQb3NpdGlvbkluTm9kZShub2RlVG9DaGVjaykpKTsK
KyAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlVG9DaGVjayA9IFJhbmdlOjpjcmVhdGUobV9mcmFtZS0+
ZG9jdW1lbnQoKSwgZmlyc3RQb3NpdGlvbkluTm9kZShub2RlVG9DaGVjayksIGxhc3RQb3NpdGlv
bkluTm9kZShub2RlVG9DaGVjaykpOworICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tp
bmdGb3IoU3BlbGxDaGVja2VyOjpjcmVhdGVSZXF1ZXN0KHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBl
TWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciks
IHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CiB9CiAKIHZvaWQgRWRpdG9yOjpyZXBsYWNl
U2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIHNlbGVjdFJlcGxhY2Vt
ZW50LCBib29sIHNtYXJ0UmVwbGFjZSkKQEAgLTIwMTcsNyArMjAxNyw5IEBAIHZvaWQgRWRpdG9y
OjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKFRleHRDaGVja2luZ1R5
cGVNYXNrIHRleHRDCiAKICAgICBib29sIGFzeW5jaHJvbm91cyA9IG1fZnJhbWUgJiYgbV9mcmFt
ZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5ncygpLT5hc3luY2hyb25vdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpICYmICFzaG91bGRTaG93Q29ycmVjdGlvblBhbmVsOwogICAgIGlmIChh
c3luY2hyb25vdXMpIHsKLSAgICAgICAgbV9zcGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0Zv
cihyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4dENoZWNraW5nT3B0aW9ucyksIHBhcmFn
cmFwaFRvQ2hlY2sucGFyYWdyYXBoUmFuZ2UoKSk7CisgICAgICAgIC8vIEluIGFzeW5jaHJvbm91
cyBtb2RlLCB3ZSBpbnRlbnRpb25hbGx5IGNoZWNrIHBhcmFncmFwaC13aWRlIHNlbnRlbmNlLgor
ICAgICAgICBSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlID0gcGFyYWdyYXBoVG9DaGVjay5w
YXJhZ3JhcGhSYW5nZSgpOworICAgICAgICBtX3NwZWxsQ2hlY2tlci0+cmVxdWVzdENoZWNraW5n
Rm9yKFNwZWxsQ2hlY2tlcjo6Y3JlYXRlUmVxdWVzdChyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1h
c2sodGV4dENoZWNraW5nT3B0aW9ucyksIHBhcmFncmFwaFJhbmdlLCBwYXJhZ3JhcGhSYW5nZSkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hl
Y2tlci5jcHAKaW5kZXggYWFjNjlhMDI5YmRhODY1ZmNhMTQ5NjdhZTE0MjM4MTgyZTlhMTg0Zi4u
OTE1N2NhOThiYjM1ZjYxYTFlYzdjODNiMjU5MWE3ZGFjZDhjOTJkZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxDaGVja2VyLmNwcApAQCAtNDUsMzAgKzQ1LDIxIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY2xhc3MgU3BlbGxDaGVja2VyOjpTcGVsbENoZWNrUmVxdWVzdCA6IHB1
YmxpYyBSZWZDb3VudGVkPFNwZWxsQ2hlY2tlcjo6U3BlbGxDaGVja1JlcXVlc3Q+IHsKLXB1Ymxp
YzoKLSAgICBTcGVsbENoZWNrUmVxdWVzdChpbnQgc2VxdWVuY2UsIFBhc3NSZWZQdHI8UmFuZ2U+
IHJhbmdlLCBjb25zdCBTdHJpbmcmIHRleHQsIFRleHRDaGVja2luZ1R5cGVNYXNrIG1hc2spCi0g
ICAgICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKLSAgICAgICAgLCBtX3JhbmdlKHJhbmdlKQot
ICAgICAgICAsIG1fdGV4dCh0ZXh0KQotICAgICAgICAsIG1fbWFzayhtYXNrKQotICAgICAgICAs
IG1fcm9vdEVkaXRhYmxlRWxlbWVudChtX3JhbmdlLT5zdGFydENvbnRhaW5lcigpLT5yb290RWRp
dGFibGVFbGVtZW50KCkpCi0gICAgewotICAgIH0KLQotICAgIGludCBzZXF1ZW5jZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2VxdWVuY2U7IH0KLSAgICBSYW5nZSogcmFuZ2UoKSBjb25zdCB7IHJldHVy
biBtX3JhbmdlLmdldCgpOyB9Ci0gICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3QgeyByZXR1
cm4gbV90ZXh0OyB9Ci0gICAgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaygpIGNvbnN0IHsgcmV0
dXJuIG1fbWFzazsgfQotICAgIEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7IH0KK3N0YXRpYyBjb25zdCBpbnQgdW5yZXF1
ZXN0ZWRTZXF1ZW5jZSA9IC0xOworCitTcGVsbENoZWNrUmVxdWVzdDo6U3BlbGxDaGVja1JlcXVl
c3QoaW50IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVm
UHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hlY2tp
bmdUeXBlTWFzayBtYXNrKQorICAgIDogbV9zZXF1ZW5jZShzZXF1ZW5jZSkKKyAgICAsIG1fY2hl
Y2tpbmdSYW5nZShjaGVja2luZ1JhbmdlKQorICAgICwgbV9wYXJhZ3JhcGhSYW5nZShwYXJhZ3Jh
cGhSYW5nZSkKKyAgICAsIG1fdGV4dCh0ZXh0KQorICAgICwgbV9tYXNrKG1hc2spCisgICAgLCBt
X3Jvb3RFZGl0YWJsZUVsZW1lbnQobV9jaGVja2luZ1JhbmdlLT5zdGFydENvbnRhaW5lcigpLT5y
b290RWRpdGFibGVFbGVtZW50KCkpCit7Cit9CiAKLXByaXZhdGU6Ci0gICAgaW50IG1fc2VxdWVu
Y2U7Ci0gICAgUmVmUHRyPFJhbmdlPiBtX3JhbmdlOwotICAgIFN0cmluZyBtX3RleHQ7Ci0gICAg
VGV4dENoZWNraW5nVHlwZU1hc2sgbV9tYXNrOwotICAgIEVsZW1lbnQqIG1fcm9vdEVkaXRhYmxl
RWxlbWVudDsKLX07CitTcGVsbENoZWNrUmVxdWVzdDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKK3sK
K30KIAogU3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRnJhbWUqIGZyYW1lKQogICAgIDogbV9m
cmFtZShmcmFtZSkKQEAgLTkwLDE1ICs4MSwxNyBAQCBUZXh0Q2hlY2tlckNsaWVudCogU3BlbGxD
aGVja2VyOjpjbGllbnQoKSBjb25zdAogICAgIHJldHVybiBwYWdlLT5lZGl0b3JDbGllbnQoKS0+
dGV4dENoZWNrZXIoKTsKIH0KIAotUGFzc1JlZlB0cjxTcGVsbENoZWNrZXI6OlNwZWxsQ2hlY2tS
ZXF1ZXN0PiBTcGVsbENoZWNrZXI6OmNyZWF0ZVJlcXVlc3QoVGV4dENoZWNraW5nVHlwZU1hc2sg
bWFzaywgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2UpCisvLyBzdGF0aWMKK1Bhc3NSZWZQdHI8U3Bl
bGxDaGVja1JlcXVlc3Q+IFNwZWxsQ2hlY2tlcjo6Y3JlYXRlUmVxdWVzdChUZXh0Q2hlY2tpbmdU
eXBlTWFzayB0ZXh0Q2hlY2tpbmdPcHRpb25zLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1Jh
bmdlLCBQYXNzUmVmUHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSkKIHsKLSAgICBBU1NFUlQoY2Fu
Q2hlY2tBc3luY2hyb25vdXNseShyYW5nZS5nZXQoKSkpOworICAgIEFTU0VSVChjaGVja2luZ1Jh
bmdlKTsKKyAgICBBU1NFUlQocGFyYWdyYXBoUmFuZ2UpOwogCi0gICAgU3RyaW5nIHRleHQgPSBy
YW5nZS0+dGV4dCgpOworICAgIFN0cmluZyB0ZXh0ID0gY2hlY2tpbmdSYW5nZS0+dGV4dCgpOwog
ICAgIGlmICghdGV4dC5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8U3BlbGxD
aGVja1JlcXVlc3Q+KCk7CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsQ2hlY2tSZXF1
ZXN0KCsrbV9sYXN0UmVxdWVzdFNlcXVlbmNlLCByYW5nZSwgdGV4dCwgbWFzaykpOworICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVlc3QodW5yZXF1ZXN0ZWRTZXF1ZW5jZSwg
Y2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRleHQsIHRleHRDaGVja2luZ09wdGlvbnMp
KTsKIH0KIAogdm9pZCBTcGVsbENoZWNrZXI6OnRpbWVyRmlyZWRUb1Byb2Nlc3NRdWV1ZWRSZXF1
ZXN0KFRpbWVyPFNwZWxsQ2hlY2tlcj4qKQpAQCAtMTI1LDIxICsxMTgsMjAgQEAgYm9vbCBTcGVs
bENoZWNrZXI6OmlzQ2hlY2thYmxlKFJhbmdlKiByYW5nZSkgY29uc3QKICAgICByZXR1cm4gcmFu
Z2UgJiYgcmFuZ2UtPmZpcnN0Tm9kZSgpICYmIHJhbmdlLT5maXJzdE5vZGUoKS0+cmVuZGVyZXIo
KTsKIH0KIAotdm9pZCBTcGVsbENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihUZXh0Q2hlY2tp
bmdUeXBlTWFzayBtYXNrLCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK3ZvaWQgU3BlbGxDaGVj
a2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVx
dWVzdCkKIHsKLSAgICBpZiAoIWNhbkNoZWNrQXN5bmNocm9ub3VzbHkocmFuZ2UuZ2V0KCkpKQor
ICAgIGlmICghcmVxdWVzdCB8fCAhY2FuQ2hlY2tBc3luY2hyb25vdXNseShyZXF1ZXN0LT5wYXJh
Z3JhcGhSYW5nZSgpLmdldCgpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFNwZWxs
Q2hlY2tSZXF1ZXN0PiByZXF1ZXN0KGNyZWF0ZVJlcXVlc3QobWFzaywgcmFuZ2UpKTsKLSAgICBp
ZiAoIXJlcXVlc3QpCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQocmVxdWVzdC0+c2VxdWVu
Y2UoKSA9PSB1bnJlcXVlc3RlZFNlcXVlbmNlKTsKKyAgICByZXF1ZXN0LT5zZXRTZXF1ZW5jZSgr
K21fbGFzdFJlcXVlc3RTZXF1ZW5jZSk7CiAKICAgICBpZiAobV90aW1lclRvUHJvY2Vzc1F1ZXVl
ZFJlcXVlc3QuaXNBY3RpdmUoKSB8fCBtX3Byb2Nlc3NpbmdSZXF1ZXN0KSB7Ci0gICAgICAgIGVu
cXVldWVSZXF1ZXN0KHJlcXVlc3QucmVsZWFzZSgpKTsKKyAgICAgICAgZW5xdWV1ZVJlcXVlc3Qo
cmVxdWVzdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnZva2VSZXF1ZXN0KHJl
cXVlc3QucmVsZWFzZSgpKTsKKyAgICBpbnZva2VSZXF1ZXN0KHJlcXVlc3QpOwogfQogCiB2b2lk
IFNwZWxsQ2hlY2tlcjo6aW52b2tlUmVxdWVzdChQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0
PiByZXF1ZXN0KQpAQCAtMjA2LDcgKzE5OCw3IEBAIHZvaWQgU3BlbGxDaGVja2VyOjpkaWRDaGVj
ayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1CiAg
ICAgfQogCiAgICAgaW50IHN0YXJ0T2Zmc2V0ID0gMDsKLSAgICBQb3NpdGlvbkl0ZXJhdG9yIHN0
YXJ0ID0gbV9wcm9jZXNzaW5nUmVxdWVzdC0+cmFuZ2UoKS0+c3RhcnRQb3NpdGlvbigpOworICAg
IFBvc2l0aW9uSXRlcmF0b3Igc3RhcnQgPSBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5jaGVja2luZ1Jh
bmdlKCktPnN0YXJ0UG9zaXRpb24oKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHJlc3Vs
dHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgaWYgKHJlc3VsdHNbaV0udHlwZSAhPSBUZXh0Q2hl
Y2tpbmdUeXBlU3BlbGxpbmcgJiYgcmVzdWx0c1tpXS50eXBlICE9IFRleHRDaGVja2luZ1R5cGVH
cmFtbWFyKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0yMjQsMTIgKzIxNiwxMiBAQCB2b2lk
IFNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8VGV4dENo
ZWNraW5nUmVzdWx0PiYgcmVzdQogICAgICAgICAvLyBzcGVsbGluZ3MgaW4gdGhlIGJhY2tncm91
bmQuIFRvIGF2b2lkIGFkZGluZyBtYXJrZXJzIHRvIHRoZSB3b3JkcyBtb2RpZmllZCBieSB1c2Vy
cyBvcgogICAgICAgICAvLyBKYXZhU2NyaXB0IGFwcGxpY2F0aW9ucywgcmV0cmlldmUgdGhlIHdv
cmRzIGluIHRoZSBzcGVjaWZpZWQgcmVnaW9uIGFuZCBjb21wYXJlIHRoZW0gd2l0aAogICAgICAg
ICAvLyB0aGUgb3JpZ2luYWwgb25lcy4KLSAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJh
bmdlOjpjcmVhdGUobV9wcm9jZXNzaW5nUmVxdWVzdC0+cmFuZ2UoKS0+b3duZXJEb2N1bWVudCgp
LCBzdGFydCwgZW5kKTsKKyAgICAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVh
dGUobV9wcm9jZXNzaW5nUmVxdWVzdC0+Y2hlY2tpbmdSYW5nZSgpLT5vd25lckRvY3VtZW50KCks
IHN0YXJ0LCBlbmQpOwogICAgICAgICAvLyBGSVhNRTogVXNlIHRleHRDb250ZW50KCkgY29tcGF0
aWJsZSBzdHJpbmcgY29udmVyc2lvbi4KICAgICAgICAgU3RyaW5nIGRlc3RpbmF0aW9uID0gcmFu
Z2UtPnRleHQoKTsKICAgICAgICAgU3RyaW5nIHNvdXJjZSA9IG1fcHJvY2Vzc2luZ1JlcXVlc3Qt
PnRleHQoKS5zdWJzdHJpbmcocmVzdWx0c1tpXS5sb2NhdGlvbiwgcmVzdWx0c1tpXS5sZW5ndGgp
OwogICAgICAgICBpZiAoZGVzdGluYXRpb24gPT0gc291cmNlKQotICAgICAgICAgICAgbV9wcm9j
ZXNzaW5nUmVxdWVzdC0+cmFuZ2UoKS0+b3duZXJEb2N1bWVudCgpLT5tYXJrZXJzKCktPmFkZE1h
cmtlcihyYW5nZS5nZXQoKSwgdG9NYXJrZXJUeXBlKHJlc3VsdHNbaV0udHlwZSkpOworICAgICAg
ICAgICAgbV9wcm9jZXNzaW5nUmVxdWVzdC0+Y2hlY2tpbmdSYW5nZSgpLT5vd25lckRvY3VtZW50
KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdldCgpLCB0b01hcmtlclR5cGUocmVzdWx0
c1tpXS50eXBlKSk7CiAKICAgICAgICAgc3RhcnRPZmZzZXQgPSByZXN1bHRzW2ldLmxvY2F0aW9u
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCmluZGV4IGI0NWU0YmNm
ZGRjZjY5MDhkOWM2MWE1OGE3Yjk0YTRhMGY3ZjA2ZDQuLjUzZjBiMDhkOWE0MGNkNDQ2ZjAwMzU5
ZGYzNTMzZDJhNTE1NmE1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3Bl
bGxDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaApA
QCAtMjcsMjAgKzI3LDQ0IEBACiAjZGVmaW5lIFNwZWxsQ2hlY2tlcl9oCiAKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNr
aW5nLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwogY2xhc3MgTm9kZTsK
IGNsYXNzIFRleHRDaGVja2VyQ2xpZW50Owogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKLWNs
YXNzIFJhbmdlOworCitjbGFzcyBTcGVsbENoZWNrUmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVk
PFNwZWxsQ2hlY2tSZXF1ZXN0PiB7CitwdWJsaWM6CisgICAgU3BlbGxDaGVja1JlcXVlc3QoaW50
IHNlcXVlbmNlLCBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlLCBQYXNzUmVmUHRyPFJh
bmdlPiBwYXJhZ3JhcGhSYW5nZSwgY29uc3QgU3RyaW5nJiwgVGV4dENoZWNraW5nVHlwZU1hc2sp
OworICAgIH5TcGVsbENoZWNrUmVxdWVzdCgpOworCisgICAgdm9pZCBzZXRTZXF1ZW5jZShpbnQg
c2VxdWVuY2UpIHsgbV9zZXF1ZW5jZSA9IHNlcXVlbmNlOyB9CisgICAgaW50IHNlcXVlbmNlKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXF1ZW5jZTsgfQorICAgIFBhc3NSZWZQdHI8UmFuZ2U+IGNoZWNr
aW5nUmFuZ2UoKSBjb25zdCB7IHJldHVybiBtX2NoZWNraW5nUmFuZ2U7IH0KKyAgICBQYXNzUmVm
UHRyPFJhbmdlPiBwYXJhZ3JhcGhSYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYWdyYXBoUmFu
Z2U7IH0KKyAgICBjb25zdCBTdHJpbmcmIHRleHQoKSBjb25zdCB7IHJldHVybiBtX3RleHQ7IH0K
KyAgICBUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrKCkgY29uc3QgeyByZXR1cm4gbV9tYXNrOyB9
CisgICAgRWxlbWVudCogcm9vdEVkaXRhYmxlRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9v
dEVkaXRhYmxlRWxlbWVudDsgfQorcHJpdmF0ZToKKworICAgIGludCBtX3NlcXVlbmNlOworICAg
IFJlZlB0cjxSYW5nZT4gbV9jaGVja2luZ1JhbmdlOworICAgIFJlZlB0cjxSYW5nZT4gbV9wYXJh
Z3JhcGhSYW5nZTsKKyAgICBTdHJpbmcgbV90ZXh0OworICAgIFRleHRDaGVja2luZ1R5cGVNYXNr
IG1fbWFzazsKKyAgICBFbGVtZW50KiBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQ7Cit9OwogCiBjbGFz
cyBTcGVsbENoZWNrZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFNwZWxsQ2hlY2tlcik7
CkBAIC01MCw3ICs3NCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNBc3luY2hyb25vdXNFbmFi
bGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc0NoZWNrYWJsZShSYW5nZSopIGNvbnN0OwotICAgIHZv
aWQgcmVxdWVzdENoZWNraW5nRm9yKFRleHRDaGVja2luZ1R5cGVNYXNrLCBQYXNzUmVmUHRyPFJh
bmdlPik7CisKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gY3JlYXRl
UmVxdWVzdChUZXh0Q2hlY2tpbmdUeXBlTWFzaywgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdS
YW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UpOworICAgIHZvaWQgcmVxdWVz
dENoZWNraW5nRm9yKFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+KTsKICAgICB2b2lkIGRp
ZENoZWNrKGludCBzZXF1ZW5jZSwgY29uc3QgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mKTsK
IAogICAgIGludCBsYXN0UmVxdWVzdFNlcXVlbmNlKCkgY29uc3QKQEAgLTY0LDExICs5MCw5IEBA
IHB1YmxpYzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgY2xhc3MgU3BlbGxDaGVja1JlcXVlc3Q7
CiAgICAgdHlwZWRlZiBEZXF1ZTxSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+ID4gUmVxdWVzdFF1
ZXVlOwogCiAgICAgYm9vbCBjYW5DaGVja0FzeW5jaHJvbm91c2x5KFJhbmdlKikgY29uc3Q7Ci0g
ICAgUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gY3JlYXRlUmVxdWVzdChUZXh0Q2hlY2tp
bmdUeXBlTWFzaywgUGFzc1JlZlB0cjxSYW5nZT4pOwogICAgIFRleHRDaGVja2VyQ2xpZW50KiBj
bGllbnQoKSBjb25zdDsKICAgICB2b2lkIHRpbWVyRmlyZWRUb1Byb2Nlc3NRdWV1ZWRSZXF1ZXN0
KFRpbWVyPFNwZWxsQ2hlY2tlcj4qKTsKICAgICB2b2lkIGludm9rZVJlcXVlc3QoUGFzc1JlZlB0
cjxTcGVsbENoZWNrUmVxdWVzdD4pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118340</attachid>
            <date>2011-12-08 00:00:46 -0800</date>
            <delta_ts>2011-12-08 02:46:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74033-20111208170044.patch</filename>
            <type>text/plain</type>
            <size>11899</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZiOWEzZDFlZTViMTRk
YzUxNTYyNjE3OGYwZjk0N2M4YTExYzk2ZS4uMWM2ZWU0NGQ4ODQ0NzcwZGVjOTBkZjFiZTAyYjJm
NDQzMzI1MzhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDExLTEyLTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKKyAgICAgICAgUmVmYWN0b3Jpbmc6
IEVkaXRvcjo6cmVxdWVzdENoZWNraW5nRm9yIHNob3VsZCB0YWtlIFNwZWxsQ2hlY2tSZXF1ZXN0
IG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc0MDMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdGb3IgdGFrZXMgU3BlbGxDaGVja1JlcXVlc3Qg
b2JqZWN0IGluIG9yZGVyIHRvIG1ha2UgaXQgZWFzeSB0bworICAgICAgICBwYXNzIG5lY2Vzc2Fy
eSBpbmZvcm1hdGlvbiB0byByZXF1ZXN0Q2hlY2tpbmdGb3IuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZWRpdGluZy9FZGl0
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aEZy
YWdtZW50KToKKyAgICAgICAgICBVc2VzIHRoZSBuZXcgaW50ZXJmYWNlLgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hckluUmFuZ2VzKTog
ZGl0dG8uCisgICAgICAgICogZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U3BlbGxDaGVja1JlcXVlc3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0Ojp+U3BlbGxDaGVja1JlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U3BlbGxDaGVja1JlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgICAgQ3JlYXRlcyBh
IG5ldyBTcGVsbENoZWNrUmVxdWVzdCBvYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpTcGVsbENo
ZWNrZXI6OnJlcXVlc3RDaGVja2luZ0Zvcik6CisgICAgICAgICAgVXNlcyB0aGUgbmV3IGludGVy
ZmFjZS4KKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tlcjo6ZGlkQ2hlY2spOgorICAgICAg
ICAqIGVkaXRpbmcvU3BlbGxDaGVja2VyLmg6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNr
UmVxdWVzdDo6c2V0U2VxdWVuY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlbGxDaGVja1JlcXVl
c3Q6OnNlcXVlbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpjaGVj
a2luZ1JhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWxsQ2hlY2tSZXF1ZXN0OjpwYXJhZ3Jh
cGhSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6dGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6bWFzayk6CisgICAgICAgIChXZWJD
b3JlOjpTcGVsbENoZWNrUmVxdWVzdDo6cm9vdEVkaXRhYmxlRWxlbWVudCk6CisKKzIwMTEtMTIt
MDcgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKwogICAgICAgICBFZGl0
b3I6Om1hcmtBbmRSZXBsYWNlRm9yIHNob3VsZCB0YWtlIFJhbmdlIGluc3RlYWQgb2YgVGV4dENo
ZWNraW5nUGFyYWdyYXBoLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzQwMzUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGRhNmY1OTZj
YWI0NzkwMjM4MWMzYzIzZTIxODBiNzc0MjZmM2Y5NTguLmNiODUyN2U0MTRmYzFiMzdjYjE3MmQ1
OTU1MDRkMTE3NDgwNDJkYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTQxNiw4
ICs0MTYsOCBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhGcmFnbWVudChQYXNz
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50LAogICAgIGlmICghbm9kZVRvQ2hlY2sp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc3BlbGxDaGVja2VyLT5yZXF1ZXN0Q2hlY2tpbmdG
b3IocmVzb2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKFRleHRDaGVja2luZ1R5cGVTcGVsbGluZyB8
IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyKSwKLSAgICAgICAgUmFuZ2U6OmNyZWF0ZShtX2ZyYW1l
LT5kb2N1bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSwgbGFzdFBvc2l0
aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSkpOworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2VUb0NoZWNr
ID0gUmFuZ2U6OmNyZWF0ZShtX2ZyYW1lLT5kb2N1bWVudCgpLCBmaXJzdFBvc2l0aW9uSW5Ob2Rl
KG5vZGVUb0NoZWNrKSwgbGFzdFBvc2l0aW9uSW5Ob2RlKG5vZGVUb0NoZWNrKSk7CisgICAgbV9z
cGVsbENoZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRl
KHJlc29sdmVUZXh0Q2hlY2tpbmdUeXBlTWFzayhUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcgfCBU
ZXh0Q2hlY2tpbmdUeXBlR3JhbW1hciksIHJhbmdlVG9DaGVjaywgcmFuZ2VUb0NoZWNrKSk7CiB9
CiAKIHZvaWQgRWRpdG9yOjpyZXBsYWNlU2VsZWN0aW9uV2l0aFRleHQoY29uc3QgU3RyaW5nJiB0
ZXh0LCBib29sIHNlbGVjdFJlcGxhY2VtZW50LCBib29sIHNtYXJ0UmVwbGFjZSkKQEAgLTIwMTcs
NyArMjAxNyw5IEBAIHZvaWQgRWRpdG9yOjptYXJrQWxsTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1h
ckluUmFuZ2VzKFRleHRDaGVja2luZ1R5cGVNYXNrIHRleHRDCiAKICAgICBib29sIGFzeW5jaHJv
bm91cyA9IG1fZnJhbWUgJiYgbV9mcmFtZS0+c2V0dGluZ3MoKSAmJiBtX2ZyYW1lLT5zZXR0aW5n
cygpLT5hc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpICYmICFzaG91bGRTaG93Q29y
cmVjdGlvblBhbmVsOwogICAgIGlmIChhc3luY2hyb25vdXMpIHsKLSAgICAgICAgbV9zcGVsbENo
ZWNrZXItPnJlcXVlc3RDaGVja2luZ0ZvcihyZXNvbHZlVGV4dENoZWNraW5nVHlwZU1hc2sodGV4
dENoZWNraW5nT3B0aW9ucyksIHBhcmFncmFwaFRvQ2hlY2sucGFyYWdyYXBoUmFuZ2UoKSk7Cisg
ICAgICAgIC8vIEluIGFzeW5jaHJvbm91cyBtb2RlLCB3ZSBpbnRlbnRpb25hbGx5IGNoZWNrIHBh
cmFncmFwaC13aWRlIHNlbnRlbmNlLgorICAgICAgICBSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJh
bmdlID0gcGFyYWdyYXBoVG9DaGVjay5wYXJhZ3JhcGhSYW5nZSgpOworICAgICAgICBtX3NwZWxs
Q2hlY2tlci0+cmVxdWVzdENoZWNraW5nRm9yKFNwZWxsQ2hlY2tSZXF1ZXN0OjpjcmVhdGUocmVz
b2x2ZVRleHRDaGVja2luZ1R5cGVNYXNrKHRleHRDaGVja2luZ09wdGlvbnMpLCBwYXJhZ3JhcGhS
YW5nZSwgcGFyYWdyYXBoUmFuZ2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuY3BwCmluZGV4IGFhYzY5YTAyOWJkYTg2NWZjYTE0
OTY3YWUxNDIzODE4MmU5YTE4NGYuLmJkZjAxOWRiZjU2Yzk2ZjhmMmQzZWU2MjMyY2UzMzI2ODI4
NTljZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5jcHAKQEAgLTQ1LDMw
ICs0NSwzNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNwZWxsQ2hlY2tlcjo6
U3BlbGxDaGVja1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxTcGVsbENoZWNrZXI6OlNwZWxs
Q2hlY2tSZXF1ZXN0PiB7Ci1wdWJsaWM6Ci0gICAgU3BlbGxDaGVja1JlcXVlc3QoaW50IHNlcXVl
bmNlLCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBUZXh0Q2hl
Y2tpbmdUeXBlTWFzayBtYXNrKQotICAgICAgICA6IG1fc2VxdWVuY2Uoc2VxdWVuY2UpCi0gICAg
ICAgICwgbV9yYW5nZShyYW5nZSkKLSAgICAgICAgLCBtX3RleHQodGV4dCkKLSAgICAgICAgLCBt
X21hc2sobWFzaykKLSAgICAgICAgLCBtX3Jvb3RFZGl0YWJsZUVsZW1lbnQobV9yYW5nZS0+c3Rh
cnRDb250YWluZXIoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpKQotICAgIHsKLSAgICB9CitzdGF0
aWMgY29uc3QgaW50IHVucmVxdWVzdGVkU2VxdWVuY2UgPSAtMTsKKworU3BlbGxDaGVja1JlcXVl
c3Q6OlNwZWxsQ2hlY2tSZXF1ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hl
Y2tpbmdSYW5nZSwgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmlu
ZyYgdGV4dCwgVGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaykKKyAgICA6IG1fc2VxdWVuY2Uoc2Vx
dWVuY2UpCisgICAgLCBtX2NoZWNraW5nUmFuZ2UoY2hlY2tpbmdSYW5nZSkKKyAgICAsIG1fcGFy
YWdyYXBoUmFuZ2UocGFyYWdyYXBoUmFuZ2UpCisgICAgLCBtX3RleHQodGV4dCkKKyAgICAsIG1f
bWFzayhtYXNrKQorICAgICwgbV9yb290RWRpdGFibGVFbGVtZW50KG1fY2hlY2tpbmdSYW5nZS0+
c3RhcnRDb250YWluZXIoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpKQoreworfQorCitTcGVsbENo
ZWNrUmVxdWVzdDo6flNwZWxsQ2hlY2tSZXF1ZXN0KCkKK3sKK30KKworLy8gc3RhdGljCitQYXNz
UmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBTcGVsbENoZWNrUmVxdWVzdDo6Y3JlYXRlKFRleHRD
aGVja2luZ1R5cGVNYXNrIHRleHRDaGVja2luZ09wdGlvbnMsIFBhc3NSZWZQdHI8UmFuZ2U+IGNo
ZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJhbmdlKQoreworICAgIEFT
U0VSVChjaGVja2luZ1JhbmdlKTsKKyAgICBBU1NFUlQocGFyYWdyYXBoUmFuZ2UpOworCisgICAg
U3RyaW5nIHRleHQgPSBjaGVja2luZ1JhbmdlLT50ZXh0KCk7CisgICAgaWYgKCF0ZXh0Lmxlbmd0
aCgpKQorICAgICAgICByZXR1cm4gUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4oKTsKKwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3BlbGxDaGVja1JlcXVlc3QodW5yZXF1ZXN0ZWRTZXF1
ZW5jZSwgY2hlY2tpbmdSYW5nZSwgcGFyYWdyYXBoUmFuZ2UsIHRleHQsIHRleHRDaGVja2luZ09w
dGlvbnMpKTsKK30KIAotICAgIGludCBzZXF1ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VxdWVu
Y2U7IH0KLSAgICBSYW5nZSogcmFuZ2UoKSBjb25zdCB7IHJldHVybiBtX3JhbmdlLmdldCgpOyB9
Ci0gICAgY29uc3QgU3RyaW5nJiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9Ci0gICAg
VGV4dENoZWNraW5nVHlwZU1hc2sgbWFzaygpIGNvbnN0IHsgcmV0dXJuIG1fbWFzazsgfQotICAg
IEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RFZGl0
YWJsZUVsZW1lbnQ7IH0KIAotcHJpdmF0ZToKLSAgICBpbnQgbV9zZXF1ZW5jZTsKLSAgICBSZWZQ
dHI8UmFuZ2U+IG1fcmFuZ2U7Ci0gICAgU3RyaW5nIG1fdGV4dDsKLSAgICBUZXh0Q2hlY2tpbmdU
eXBlTWFzayBtX21hc2s7Ci0gICAgRWxlbWVudCogbV9yb290RWRpdGFibGVFbGVtZW50OwotfTsK
IAogU3BlbGxDaGVja2VyOjpTcGVsbENoZWNrZXIoRnJhbWUqIGZyYW1lKQogICAgIDogbV9mcmFt
ZShmcmFtZSkKQEAgLTkwLDE3ICs5Niw2IEBAIFRleHRDaGVja2VyQ2xpZW50KiBTcGVsbENoZWNr
ZXI6OmNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHBhZ2UtPmVkaXRvckNsaWVudCgpLT50ZXh0
Q2hlY2tlcigpOwogfQogCi1QYXNzUmVmUHRyPFNwZWxsQ2hlY2tlcjo6U3BlbGxDaGVja1JlcXVl
c3Q+IFNwZWxsQ2hlY2tlcjo6Y3JlYXRlUmVxdWVzdChUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNr
LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKLXsKLSAgICBBU1NFUlQoY2FuQ2hlY2tBc3luY2hy
b25vdXNseShyYW5nZS5nZXQoKSkpOwotCi0gICAgU3RyaW5nIHRleHQgPSByYW5nZS0+dGV4dCgp
OwotICAgIGlmICghdGV4dC5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIFBhc3NSZWZQdHI8U3Bl
bGxDaGVja1JlcXVlc3Q+KCk7Ci0KLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNwZWxsQ2hlY2tS
ZXF1ZXN0KCsrbV9sYXN0UmVxdWVzdFNlcXVlbmNlLCByYW5nZSwgdGV4dCwgbWFzaykpOwotfQot
CiB2b2lkIFNwZWxsQ2hlY2tlcjo6dGltZXJGaXJlZFRvUHJvY2Vzc1F1ZXVlZFJlcXVlc3QoVGlt
ZXI8U3BlbGxDaGVja2VyPiopCiB7CiAgICAgQVNTRVJUKCFtX3JlcXVlc3RRdWV1ZS5pc0VtcHR5
KCkpOwpAQCAtMTI1LDIxICsxMjAsMjQgQEAgYm9vbCBTcGVsbENoZWNrZXI6OmlzQ2hlY2thYmxl
KFJhbmdlKiByYW5nZSkgY29uc3QKICAgICByZXR1cm4gcmFuZ2UgJiYgcmFuZ2UtPmZpcnN0Tm9k
ZSgpICYmIHJhbmdlLT5maXJzdE5vZGUoKS0+cmVuZGVyZXIoKTsKIH0KIAotdm9pZCBTcGVsbENo
ZWNrZXI6OnJlcXVlc3RDaGVja2luZ0ZvcihUZXh0Q2hlY2tpbmdUeXBlTWFzayBtYXNrLCBQYXNz
UmVmUHRyPFJhbmdlPiByYW5nZSkKK3ZvaWQgU3BlbGxDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdG
b3IoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVxdWVzdD4gcmVxdWVzdCkKIHsKLSAgICBpZiAoIWNh
bkNoZWNrQXN5bmNocm9ub3VzbHkocmFuZ2UuZ2V0KCkpKQorICAgIGlmICghcmVxdWVzdCB8fCAh
Y2FuQ2hlY2tBc3luY2hyb25vdXNseShyZXF1ZXN0LT5wYXJhZ3JhcGhSYW5nZSgpLmdldCgpKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0
KGNyZWF0ZVJlcXVlc3QobWFzaywgcmFuZ2UpKTsKLSAgICBpZiAoIXJlcXVlc3QpCi0gICAgICAg
IHJldHVybjsKKyAgICBBU1NFUlQocmVxdWVzdC0+c2VxdWVuY2UoKSA9PSB1bnJlcXVlc3RlZFNl
cXVlbmNlKTsKKyAgICBpbnQgc2VxdWVuY2UgPSArK21fbGFzdFJlcXVlc3RTZXF1ZW5jZTsKKyAg
ICBpZiAoc2VxdWVuY2UgPT0gdW5yZXF1ZXN0ZWRTZXF1ZW5jZSkKKyAgICAgICAgc2VxdWVuY2Ug
PSArK21fbGFzdFJlcXVlc3RTZXF1ZW5jZTsKKworICAgIHJlcXVlc3QtPnNldFNlcXVlbmNlKHNl
cXVlbmNlKTsKIAogICAgIGlmIChtX3RpbWVyVG9Qcm9jZXNzUXVldWVkUmVxdWVzdC5pc0FjdGl2
ZSgpIHx8IG1fcHJvY2Vzc2luZ1JlcXVlc3QpIHsKLSAgICAgICAgZW5xdWV1ZVJlcXVlc3QocmVx
dWVzdC5yZWxlYXNlKCkpOworICAgICAgICBlbnF1ZXVlUmVxdWVzdChyZXF1ZXN0KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludm9rZVJlcXVlc3QocmVxdWVzdC5yZWxlYXNlKCkp
OworICAgIGludm9rZVJlcXVlc3QocmVxdWVzdCk7CiB9CiAKIHZvaWQgU3BlbGxDaGVja2VyOjpp
bnZva2VSZXF1ZXN0KFBhc3NSZWZQdHI8U3BlbGxDaGVja1JlcXVlc3Q+IHJlcXVlc3QpCkBAIC0y
MDYsNyArMjA0LDcgQEAgdm9pZCBTcGVsbENoZWNrZXI6OmRpZENoZWNrKGludCBzZXF1ZW5jZSwg
Y29uc3QgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4mIHJlc3UKICAgICB9CiAKICAgICBpbnQg
c3RhcnRPZmZzZXQgPSAwOwotICAgIFBvc2l0aW9uSXRlcmF0b3Igc3RhcnQgPSBtX3Byb2Nlc3Np
bmdSZXF1ZXN0LT5yYW5nZSgpLT5zdGFydFBvc2l0aW9uKCk7CisgICAgUG9zaXRpb25JdGVyYXRv
ciBzdGFydCA9IG1fcHJvY2Vzc2luZ1JlcXVlc3QtPmNoZWNraW5nUmFuZ2UoKS0+c3RhcnRQb3Np
dGlvbigpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcmVzdWx0cy5zaXplKCk7ICsraSkg
ewogICAgICAgICBpZiAocmVzdWx0c1tpXS50eXBlICE9IFRleHRDaGVja2luZ1R5cGVTcGVsbGlu
ZyAmJiByZXN1bHRzW2ldLnR5cGUgIT0gVGV4dENoZWNraW5nVHlwZUdyYW1tYXIpCiAgICAgICAg
ICAgICBjb250aW51ZTsKQEAgLTIyNCwxMiArMjIyLDEyIEBAIHZvaWQgU3BlbGxDaGVja2VyOjpk
aWRDaGVjayhpbnQgc2VxdWVuY2UsIGNvbnN0IFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiBy
ZXN1CiAgICAgICAgIC8vIHNwZWxsaW5ncyBpbiB0aGUgYmFja2dyb3VuZC4gVG8gYXZvaWQgYWRk
aW5nIG1hcmtlcnMgdG8gdGhlIHdvcmRzIG1vZGlmaWVkIGJ5IHVzZXJzIG9yCiAgICAgICAgIC8v
IEphdmFTY3JpcHQgYXBwbGljYXRpb25zLCByZXRyaWV2ZSB0aGUgd29yZHMgaW4gdGhlIHNwZWNp
ZmllZCByZWdpb24gYW5kIGNvbXBhcmUgdGhlbSB3aXRoCiAgICAgICAgIC8vIHRoZSBvcmlnaW5h
bCBvbmVzLgotICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShtX3By
b2Nlc3NpbmdSZXF1ZXN0LT5yYW5nZSgpLT5vd25lckRvY3VtZW50KCksIHN0YXJ0LCBlbmQpOwor
ICAgICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShtX3Byb2Nlc3NpbmdS
ZXF1ZXN0LT5jaGVja2luZ1JhbmdlKCktPm93bmVyRG9jdW1lbnQoKSwgc3RhcnQsIGVuZCk7CiAg
ICAgICAgIC8vIEZJWE1FOiBVc2UgdGV4dENvbnRlbnQoKSBjb21wYXRpYmxlIHN0cmluZyBjb252
ZXJzaW9uLgogICAgICAgICBTdHJpbmcgZGVzdGluYXRpb24gPSByYW5nZS0+dGV4dCgpOwogICAg
ICAgICBTdHJpbmcgc291cmNlID0gbV9wcm9jZXNzaW5nUmVxdWVzdC0+dGV4dCgpLnN1YnN0cmlu
ZyhyZXN1bHRzW2ldLmxvY2F0aW9uLCByZXN1bHRzW2ldLmxlbmd0aCk7CiAgICAgICAgIGlmIChk
ZXN0aW5hdGlvbiA9PSBzb3VyY2UpCi0gICAgICAgICAgICBtX3Byb2Nlc3NpbmdSZXF1ZXN0LT5y
YW5nZSgpLT5vd25lckRvY3VtZW50KCktPm1hcmtlcnMoKS0+YWRkTWFya2VyKHJhbmdlLmdldCgp
LCB0b01hcmtlclR5cGUocmVzdWx0c1tpXS50eXBlKSk7CisgICAgICAgICAgICBtX3Byb2Nlc3Np
bmdSZXF1ZXN0LT5jaGVja2luZ1JhbmdlKCktPm93bmVyRG9jdW1lbnQoKS0+bWFya2VycygpLT5h
ZGRNYXJrZXIocmFuZ2UuZ2V0KCksIHRvTWFya2VyVHlwZShyZXN1bHRzW2ldLnR5cGUpKTsKIAog
ICAgICAgICBzdGFydE9mZnNldCA9IHJlc3VsdHNbaV0ubG9jYXRpb247CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvU3BlbGxDaGVja2VyLmgKaW5kZXggYjQ1ZTRiY2ZkZGNmNjkwOGQ5YzYxYTU4
YTdiOTRhNGEwZjdmMDZkNC4uMjAzMDZkYTFhNTkzNmUyZmY1NGY5YmUyYjJhZjNmMjVlOTg3MDI1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbENoZWNrZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsQ2hlY2tlci5oCkBAIC0yNiwxMCArMjYsMTMg
QEAKICNpZm5kZWYgU3BlbGxDaGVja2VyX2gKICNkZWZpbmUgU3BlbGxDaGVja2VyX2gKIAorI2lu
Y2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUg
IlJhbmdlLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNraW5nLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
ICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CkBAIC00MCw3ICs0MywzMCBAQCBjbGFzcyBGcmFtZTsKIGNsYXNz
IE5vZGU7CiBjbGFzcyBUZXh0Q2hlY2tlckNsaWVudDsKIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1
bHQ7Ci1jbGFzcyBSYW5nZTsKKworY2xhc3MgU3BlbGxDaGVja1JlcXVlc3QgOiBwdWJsaWMgUmVm
Q291bnRlZDxTcGVsbENoZWNrUmVxdWVzdD4geworcHVibGljOgorICAgIFNwZWxsQ2hlY2tSZXF1
ZXN0KGludCBzZXF1ZW5jZSwgUGFzc1JlZlB0cjxSYW5nZT4gY2hlY2tpbmdSYW5nZSwgUGFzc1Jl
ZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFuZ2UsIGNvbnN0IFN0cmluZyYsIFRleHRDaGVja2luZ1R5
cGVNYXNrKTsKKyAgICB+U3BlbGxDaGVja1JlcXVlc3QoKTsKKworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBjcmVhdGUoVGV4dENoZWNraW5nVHlwZU1hc2ssIFBhc3NS
ZWZQdHI8UmFuZ2U+IGNoZWNraW5nUmFuZ2UsIFBhc3NSZWZQdHI8UmFuZ2U+IHBhcmFncmFwaFJh
bmdlKTsKKworICAgIHZvaWQgc2V0U2VxdWVuY2UoaW50IHNlcXVlbmNlKSB7IG1fc2VxdWVuY2Ug
PSBzZXF1ZW5jZTsgfQorICAgIGludCBzZXF1ZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VxdWVu
Y2U7IH0KKyAgICBQYXNzUmVmUHRyPFJhbmdlPiBjaGVja2luZ1JhbmdlKCkgY29uc3QgeyByZXR1
cm4gbV9jaGVja2luZ1JhbmdlOyB9CisgICAgUGFzc1JlZlB0cjxSYW5nZT4gcGFyYWdyYXBoUmFu
Z2UoKSBjb25zdCB7IHJldHVybiBtX3BhcmFncmFwaFJhbmdlOyB9CisgICAgY29uc3QgU3RyaW5n
JiB0ZXh0KCkgY29uc3QgeyByZXR1cm4gbV90ZXh0OyB9CisgICAgVGV4dENoZWNraW5nVHlwZU1h
c2sgbWFzaygpIGNvbnN0IHsgcmV0dXJuIG1fbWFzazsgfQorICAgIFBhc3NSZWZQdHI8RWxlbWVu
dD4gcm9vdEVkaXRhYmxlRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdEVkaXRhYmxlRWxl
bWVudDsgfQorcHJpdmF0ZToKKworICAgIGludCBtX3NlcXVlbmNlOworICAgIFJlZlB0cjxSYW5n
ZT4gbV9jaGVja2luZ1JhbmdlOworICAgIFJlZlB0cjxSYW5nZT4gbV9wYXJhZ3JhcGhSYW5nZTsK
KyAgICBTdHJpbmcgbV90ZXh0OworICAgIFRleHRDaGVja2luZ1R5cGVNYXNrIG1fbWFzazsKKyAg
ICBSZWZQdHI8RWxlbWVudD4gbV9yb290RWRpdGFibGVFbGVtZW50OworfTsKIAogY2xhc3MgU3Bl
bGxDaGVja2VyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTcGVsbENoZWNrZXIpOwpAQCAt
NTAsNyArNzYsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQXN5bmNocm9ub3VzRW5hYmxlZCgp
IGNvbnN0OwogICAgIGJvb2wgaXNDaGVja2FibGUoUmFuZ2UqKSBjb25zdDsKLSAgICB2b2lkIHJl
cXVlc3RDaGVja2luZ0ZvcihUZXh0Q2hlY2tpbmdUeXBlTWFzaywgUGFzc1JlZlB0cjxSYW5nZT4p
OworCisgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdGb3IoUGFzc1JlZlB0cjxTcGVsbENoZWNrUmVx
dWVzdD4pOwogICAgIHZvaWQgZGlkQ2hlY2soaW50IHNlcXVlbmNlLCBjb25zdCBWZWN0b3I8VGV4
dENoZWNraW5nUmVzdWx0PiYpOwogCiAgICAgaW50IGxhc3RSZXF1ZXN0U2VxdWVuY2UoKSBjb25z
dApAQCAtNjQsMTEgKzkxLDkgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBjbGFz
cyBTcGVsbENoZWNrUmVxdWVzdDsKICAgICB0eXBlZGVmIERlcXVlPFJlZlB0cjxTcGVsbENoZWNr
UmVxdWVzdD4gPiBSZXF1ZXN0UXVldWU7CiAKICAgICBib29sIGNhbkNoZWNrQXN5bmNocm9ub3Vz
bHkoUmFuZ2UqKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiBjcmVh
dGVSZXF1ZXN0KFRleHRDaGVja2luZ1R5cGVNYXNrLCBQYXNzUmVmUHRyPFJhbmdlPik7CiAgICAg
VGV4dENoZWNrZXJDbGllbnQqIGNsaWVudCgpIGNvbnN0OwogICAgIHZvaWQgdGltZXJGaXJlZFRv
UHJvY2Vzc1F1ZXVlZFJlcXVlc3QoVGltZXI8U3BlbGxDaGVja2VyPiopOwogICAgIHZvaWQgaW52
b2tlUmVxdWVzdChQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0Pik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>