<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://jogamp.org/bugzilla/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.2"
          urlbase="https://jogamp.org/bugzilla/"
          
          maintainer="sgothel@jausoft.com"
>

    <bug>
          <bug_id>137</bug_id>
          
          <creation_ts>2005-02-09 12:09:03 +0100</creation_ts>
          <short_desc>Memory leak / crashes with ATI cards</short_desc>
          <delta_ts>2010-03-24 07:47:26 +0100</delta_ts>
          <reporter_accessible>0</reporter_accessible>
          <cclist_accessible>0</cclist_accessible>
          <classification_id>3</classification_id>
          <classification>JogAmp</classification>
          <product>Jogl</product>
          <component>core</component>
          <version>1</version>
          <rep_platform>All</rep_platform>
          <op_sys>all</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sven Gothel">sgothel</reporter>
          <assigned_to name="Sven Gothel">sgothel</assigned_to>
          
          
          <cf_type>DEFECT</cf_type>
          <cf_scm_refs></cf_scm_refs>
          <cf_workaround>---</cf_workaround>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>153</commentid>
    <comment_count>0</comment_count>
    <who name="Sven Gothel">sgothel</who>
    <bug_when>2010-03-24 07:47:26 +0100</bug_when>
    <thetext>


---- Reported by kbr 2005-02-09 12:09:03 ----

There appear to still be some stability issues with JOGL when running on ATI
cards. A user reported on the javagaming.org forums at
http://www.javagaming.org/cgi-bin/JGNetForums/YaBB.cgi?board=jogl;action=display;num=1081799754;start=60#69
that a particular test case at
https://java3d.dev.java.net/nonav/bugs/showattachment.cgi/56/Gears.java
exhibits problems on ATI cards. The test case has been attached. It does indeed
leak memory under ATI&apos;s 4.9 Catalyst drivers, but runs fine on an NVidia Quadro
FX Go700.



---- Additional Comments From kbr 2005-02-09 12:09:25 ----

Created an attachment
Test case




---- Additional Comments From kbr 2005-05-16 08:47:48 ----

The javagaming.org link above points to the thread &quot;JOGL 1.1 b... released&quot; (for
finding it after the forum cutover).




---- Additional Comments From kbr 2005-06-22 15:41:06 ----

With the recent fixes to prefer ChoosePixelFormat over wglChoosePixelFormatARB
in JOGL&apos;s pixel format selection on Windows, these issues appear to have been
fixed. Additionally, ATI&apos;s Catalyst 5.6 drivers appear to have fixed the
wglChoosePixelFormatARB-related memory leaks, so JOGL 1.1 b12 doesn&apos;t leak
memory with the attached test case either. The JOGL workarounds for the original
memory leak will be present in the next build of JOGL.




--- Bug imported by sgothel@jausoft.com 2010-03-24 07:47 EDT  ---

This bug was previously known as _bug_ 137 at https://jogl.dev.java.net/bugs/show_bug.cgi?id=137
Imported an attachment (id=41)

The original submitter of attachment 41 is unknown.
   Reassigning to the person who moved it here: sgothel@jausoft.com.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>41</attachid>
            <date>2005-02-09 12:09:00 +0100</date>
            <delta_ts>2005-02-09 12:09:00 +0100</delta_ts>
            <desc>Test case</desc>
            <filename>Gears.java</filename>
            <type>text/plain</type>
            <size>17279</size>
            <attacher name="Sven Gothel">sgothel</attacher>
            
              <data encoding="base64">aW1wb3J0IGphdmEuYXd0Lio7CmltcG9ydCBqYXZhLmF3dC5ldmVudC4qOwppbXBvcnQgamF2YS51
dGlsLio7CmltcG9ydCBqYXZheC5zd2luZy4qOwppbXBvcnQgbmV0LmphdmEuZ2FtZXMuam9nbC4q
OwovKioKICogIEdlYXJzLmphdmEgPEJSPgogKiAgYXV0aG9yOiBCcmlhbiBQYXVsIChjb252ZXJ0
ZWQgdG8gSmF2YSBieSBSb24gQ2VtZXIgYW5kIFN2ZW4gR29ldGhlbCkgPFA+CiAqCiAqICBUaGlz
IHZlcnNpb24gaXMgZXF1YWwgdG8gQnJpYW4gUGF1bCdzIHZlcnNpb24gMS4yIDE5OTkvMTAvMjEg
VGhpcyB2ZXJzaW9uIGlzCiAqICBtb2RpZmllZCBmcm9tIEdlYXJzLmphdmEgZnJvbSBKT0dMIGRl
bW8gdG8gY29tcGFyZSB0aGUgcmVzb3VyY2UgbWFuYWdlbWVudAogKiAgaXNzdWVzIHdpdGggQVRJ
J3MgZHJpdmVyLiBTY290dCBIb25nCiAqLwoKcHVibGljIGNsYXNzIEdlYXJzIHsKICAgIEpGcmFt
ZSBtYWluRnJhbWU7CiAgICBKVGFiYmVkUGFuZSB0YWJiZWRQYW5lOwogICAgaW50IGluZGV4ID0g
MDsKICAgIGludCBkZWxheSA9IDEwMDA7CiAgICBqYXZheC5zd2luZy5UaW1lciB0aW1lcjsKICAg
IEhhc2h0YWJsZSBhbmltYXRvclRhYmxlID0gbmV3IEhhc2h0YWJsZSgpOwoKICAgIC8qKgogICAg
ICogIFRoZSBtYWluIHByb2dyYW0gZm9yIHRoZSBHZWFycyBjbGFzcwogICAgICoKICAgICAqIEBw
YXJhbSAgYXJncyAgVGhlIGNvbW1hbmQgbGluZSBhcmd1bWVudHMKICAgICAqLwogICAgcHVibGlj
IHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIEdlYXJzIHRlc3QgPSBu
ZXcgR2VhcnMoKTsKICAgICAgICB0ZXN0LmFkZENhbnZhcygpOwogICAgfQoKICAgIC8qKgogICAg
ICogIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgVGVzdENhbnZhc1BhbmVsCiAgICAgKi8KICAg
IHB1YmxpYyBHZWFycygpIHsKICAgICAgICB0YWJiZWRQYW5lID0gbmV3IEpUYWJiZWRQYW5lKCk7
CiAgICAgICAgbWFpbkZyYW1lID0gbmV3IEpGcmFtZSgpOwogICAgICAgIG1haW5GcmFtZS5zZXRE
ZWZhdWx0Q2xvc2VPcGVyYXRpb24oSkZyYW1lLkVYSVRfT05fQ0xPU0UpOwogICAgICAgIG1haW5G
cmFtZS5nZXRDb250ZW50UGFuZSgpLmFkZCh0YWJiZWRQYW5lKTsKICAgICAgICBtYWluRnJhbWUu
cGFjaygpOwogICAgICAgIG1haW5GcmFtZS5zZXRTaXplKDMwMCwgMzAwKTsKICAgICAgICBtYWlu
RnJhbWUuc2hvdygpOwoKICAgICAgICB0aW1lciA9IG5ldyBqYXZheC5zd2luZy5UaW1lcihkZWxh
eSwgbmV3IFRhc2tQZXJmb3JtZXIoKSk7CiAgICAgICAgdGltZXIuc2V0UmVwZWF0cyh0cnVlKTsK
ICAgICAgICB0aW1lci5zdGFydCgpOwogICAgfQoKCiAgICAvKioKICAgICAqICBBZGRzIGEgZmVh
dHVyZSB0byB0aGUgQ2FudmFzIGF0dHJpYnV0ZSBvZiB0aGUgVGVzdENhbnZhc1BhbmVsIG9iamVj
dAogICAgICovCiAgICBwdWJsaWMgdm9pZCBhZGRDYW52YXMoKSB7CiAgICAgICAgR0xDYW52YXMg
Y2FudmFzID0gR0xEcmF3YWJsZUZhY3RvcnkuZ2V0RmFjdG9yeSgpLmNyZWF0ZUdMQ2FudmFzKG5l
dyBHTENhcGFiaWxpdGllcygpKTsKICAgICAgICBTdHJpbmcgdGl0bGUgPSAiQy0iICsgaW5kZXg7
CiAgICAgICAgY2FudmFzLmFkZEdMRXZlbnRMaXN0ZW5lcihuZXcgR2VhclJlbmRlcmVyKCkpOwog
ICAgICAgIEFuaW1hdG9yIGFuaW1hdG9yID0gbmV3IEFuaW1hdG9yKGNhbnZhcyk7CiAgICAgICAg
YW5pbWF0b3JUYWJsZS5wdXQodGl0bGUsIGFuaW1hdG9yKTsKICAgICAgICBzeW5jaHJvbml6ZWQg
KHRhYmJlZFBhbmUpIHsKICAgICAgICAgICAgdGFiYmVkUGFuZS5hZGQodGl0bGUsIGNhbnZhcyk7
CiAgICAgICAgICAgIGFuaW1hdG9yLnN0YXJ0KCk7CiAgICAgICAgICAgIGluZGV4Kys7CiAgICAg
ICAgfQogICAgfQoKICAgIC8qKgogICAgICogIERlc2NyaXB0aW9uIG9mIHRoZSBNZXRob2QKICAg
ICAqLwogICAgcHVibGljIHZvaWQgcmVtb3ZlQ2FudmFzKCkgewogICAgICAgIHN5bmNocm9uaXpl
ZCAodGFiYmVkUGFuZSkgewogICAgICAgICAgICBpZiAodGFiYmVkUGFuZS5nZXRDb21wb25lbnRD
b3VudCgpID4gMCkgewogICAgICAgICAgICAgICAgU3RyaW5nIGtleSA9IHRhYmJlZFBhbmUuZ2V0
VGl0bGVBdCgwKTsKICAgICAgICAgICAgICAgIEFuaW1hdG9yIGFuaW1hdG9yID0gKEFuaW1hdG9y
KSBhbmltYXRvclRhYmxlLnJlbW92ZShrZXkpOwogICAgICAgICAgICAgICAgaWYgKGFuaW1hdG9y
ICE9IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0b3Bp
bmcgOiAiICsga2V5KTsKICAgICAgICAgICAgICAgICAgICBhbmltYXRvci5zdG9wKCk7CiAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0YWJiZWRQYW5lLnJlbW92ZSgwKTsKICAgICAg
ICAgICAgICAgIGFuaW1hdG9yID0gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAg
ICBTeXN0ZW0uZ2MoKTsKICAgIH0KCiAgICAvKioKICAgICAqICBUaGUgdGltZXIgdGFzayBwZXJm
b3JtZXIKICAgICAqLwogICAgY2xhc3MgVGFza1BlcmZvcm1lciBpbXBsZW1lbnRzIEFjdGlvbkxp
c3RlbmVyIHsKICAgICAgICAvKioKICAgICAgICAgKiAgRGVzY3JpcHRpb24gb2YgdGhlIE1ldGhv
ZAogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtICBldnQgIERlc2NyaXB0aW9uIG9mIHRoZSBQ
YXJhbWV0ZXIKICAgICAgICAgKi8KICAgICAgICBwdWJsaWMgdm9pZCBhY3Rpb25QZXJmb3JtZWQo
QWN0aW9uRXZlbnQgZXZ0KSB7CiAgICAgICAgICAgIFN3aW5nVXRpbGl0aWVzLmludm9rZUxhdGVy
KAogICAgICAgICAgICAgICAgbmV3IFJ1bm5hYmxlKCkgewogICAgICAgICAgICAgICAgICAgIHB1
YmxpYyB2b2lkIHJ1bigpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRhYmJlZFBhbmUu
Z2V0Q29tcG9uZW50Q291bnQoKSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
bW92ZUNhbnZhcygpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
ICAgICAgIGFkZENhbnZhcygpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogIERl
c2NyaXB0aW9uIG9mIHRoZSBDbGFzcwogICAgICovCiAgICBzdGF0aWMgY2xhc3MgR2VhclJlbmRl
cmVyIGltcGxlbWVudHMgR0xFdmVudExpc3RlbmVyLCBNb3VzZUxpc3RlbmVyLCBNb3VzZU1vdGlv
bkxpc3RlbmVyIHsKICAgICAgICBwcml2YXRlIGZsb2F0IHZpZXdfcm90eCA9IDIwLjBmLCB2aWV3
X3JvdHkgPSAzMC4wZiwgdmlld19yb3R6ID0gMC4wZjsKICAgICAgICBwcml2YXRlIGludCBnZWFy
MSwgZ2VhcjIsIGdlYXIzOwogICAgICAgIHByaXZhdGUgZmxvYXQgYW5nbGUgPSAwLjBmOwoKICAg
ICAgICBwcml2YXRlIGludCBwcmV2TW91c2VYLCBwcmV2TW91c2VZOwogICAgICAgIHByaXZhdGUg
Ym9vbGVhbiBtb3VzZVJCdXR0b25Eb3duID0gZmFsc2U7CgogICAgICAgIHByaXZhdGUgR0wgZ2w7
CiAgICAgICAgcHJpdmF0ZSBHTERyYXdhYmxlIGdsZHJhd2FibGU7CgogICAgICAgIC8qKgogICAg
ICAgICAqICBEZXNjcmlwdGlvbiBvZiB0aGUgTWV0aG9kCiAgICAgICAgICoKICAgICAgICAgKiBA
cGFyYW0gIGRyYXdhYmxlICBEZXNjcmlwdGlvbiBvZiB0aGUgUGFyYW1ldGVyCiAgICAgICAgICov
CiAgICAgICAgcHVibGljIHZvaWQgaW5pdChHTERyYXdhYmxlIGRyYXdhYmxlKSB7CiAgICAgICAg
ICAgIGdsID0gZHJhd2FibGUuZ2V0R0woKTsKICAgICAgICAgICAgdGhpcy5nbGRyYXdhYmxlID0g
ZHJhd2FibGU7CiAgICAgICAgICAgIC8vU3lzdGVtLmVyci5wcmludGxuKCJJTklUIEdMIElTOiAi
ICsgZ2wuZ2V0Q2xhc3MoKS5nZXROYW1lKCkpOwoKICAgICAgICAgICAgZmxvYXQgcG9zW10gPSB7
NS4wZiwgNS4wZiwgMTAuMGYsIDAuMGZ9OwogICAgICAgICAgICBmbG9hdCByZWRbXSA9IHswLjhm
LCAwLjFmLCAwLjBmLCAxLjBmfTsKICAgICAgICAgICAgZmxvYXQgZ3JlZW5bXSA9IHswLjBmLCAw
LjhmLCAwLjJmLCAxLjBmfTsKICAgICAgICAgICAgZmxvYXQgYmx1ZVtdID0gezAuMmYsIDAuMmYs
IDEuMGYsIDEuMGZ9OwoKICAgICAgICAgICAgZ2wuZ2xMaWdodGZ2KEdMLkdMX0xJR0hUMCwgR0wu
R0xfUE9TSVRJT04sIHBvcyk7CiAgICAgICAgICAgIGdsLmdsRW5hYmxlKEdMLkdMX0NVTExfRkFD
RSk7CiAgICAgICAgICAgIGdsLmdsRW5hYmxlKEdMLkdMX0xJR0hUSU5HKTsKICAgICAgICAgICAg
Z2wuZ2xFbmFibGUoR0wuR0xfTElHSFQwKTsKICAgICAgICAgICAgZ2wuZ2xFbmFibGUoR0wuR0xf
REVQVEhfVEVTVCk7CgogICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgbWFrZSB0aGUgZ2Vh
cnMKICAgICAgICAgICAgICAqLwogICAgICAgICAgICBnZWFyMSA9IGdsLmdsR2VuTGlzdHMoMSk7
CiAgICAgICAgICAgIGdsLmdsTmV3TGlzdChnZWFyMSwgR0wuR0xfQ09NUElMRSk7CiAgICAgICAg
ICAgIGdsLmdsTWF0ZXJpYWxmdihHTC5HTF9GUk9OVCwgR0wuR0xfQU1CSUVOVF9BTkRfRElGRlVT
RSwgcmVkKTsKICAgICAgICAgICAgZ2VhcigxLjBmLCA0LjBmLCAxLjBmLCAyMCwgMC43Zik7CiAg
ICAgICAgICAgIGdsLmdsRW5kTGlzdCgpOwoKICAgICAgICAgICAgZ2VhcjIgPSBnbC5nbEdlbkxp
c3RzKDEpOwogICAgICAgICAgICBnbC5nbE5ld0xpc3QoZ2VhcjIsIEdMLkdMX0NPTVBJTEUpOwog
ICAgICAgICAgICBnbC5nbE1hdGVyaWFsZnYoR0wuR0xfRlJPTlQsIEdMLkdMX0FNQklFTlRfQU5E
X0RJRkZVU0UsIGdyZWVuKTsKICAgICAgICAgICAgZ2VhcigwLjVmLCAyLjBmLCAyLjBmLCAxMCwg
MC43Zik7CiAgICAgICAgICAgIGdsLmdsRW5kTGlzdCgpOwoKICAgICAgICAgICAgZ2VhcjMgPSBn
bC5nbEdlbkxpc3RzKDEpOwogICAgICAgICAgICBnbC5nbE5ld0xpc3QoZ2VhcjMsIEdMLkdMX0NP
TVBJTEUpOwogICAgICAgICAgICBnbC5nbE1hdGVyaWFsZnYoR0wuR0xfRlJPTlQsIEdMLkdMX0FN
QklFTlRfQU5EX0RJRkZVU0UsIGJsdWUpOwogICAgICAgICAgICBnZWFyKDEuM2YsIDIuMGYsIDAu
NWYsIDEwLCAwLjdmKTsKICAgICAgICAgICAgZ2wuZ2xFbmRMaXN0KCk7CgogICAgICAgICAgICBn
bC5nbEVuYWJsZShHTC5HTF9OT1JNQUxJWkUpOwoKICAgICAgICAgICAgZHJhd2FibGUuYWRkTW91
c2VMaXN0ZW5lcih0aGlzKTsKICAgICAgICAgICAgZHJhd2FibGUuYWRkTW91c2VNb3Rpb25MaXN0
ZW5lcih0aGlzKTsKICAgICAgICB9CgogICAgICAgIC8qKgogICAgICAgICAqICBEZXNjcmlwdGlv
biBvZiB0aGUgTWV0aG9kCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gIGRyYXdhYmxlICBE
ZXNjcmlwdGlvbiBvZiB0aGUgUGFyYW1ldGVyCiAgICAgICAgICogQHBhcmFtICB4ICAgICAgICAg
RGVzY3JpcHRpb24gb2YgdGhlIFBhcmFtZXRlcgogICAgICAgICAqIEBwYXJhbSAgeSAgICAgICAg
IERlc2NyaXB0aW9uIG9mIHRoZSBQYXJhbWV0ZXIKICAgICAgICAgKiBAcGFyYW0gIHdpZHRoICAg
ICBEZXNjcmlwdGlvbiBvZiB0aGUgUGFyYW1ldGVyCiAgICAgICAgICogQHBhcmFtICBoZWlnaHQg
ICAgRGVzY3JpcHRpb24gb2YgdGhlIFBhcmFtZXRlcgogICAgICAgICAqLwogICAgICAgIHB1Ymxp
YyB2b2lkIHJlc2hhcGUoR0xEcmF3YWJsZSBkcmF3YWJsZSwgaW50IHgsIGludCB5LCBpbnQgd2lk
dGgsIGludCBoZWlnaHQpIHsKICAgICAgICAgICAgZmxvYXQgaCA9IChmbG9hdCkgaGVpZ2h0IC8g
KGZsb2F0KSB3aWR0aDsKCiAgICAgICAgICAgIGdsLmdsTWF0cml4TW9kZShHTC5HTF9QUk9KRUNU
SU9OKTsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigi
R0xfVkVORE9SOiAiICsgZ2wuZ2xHZXRTdHJpbmcoR0wuR0xfVkVORE9SKSk7CiAgICAgICAgICAg
ICAgICBTeXN0ZW0uZXJyLnByaW50bG4oIkdMX1JFTkRFUkVSOiAiICsgZ2wuZ2xHZXRTdHJpbmco
R0wuR0xfUkVOREVSRVIpKTsKICAgICAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbigiR0xf
VkVSU0lPTjogIiArIGdsLmdsR2V0U3RyaW5nKEdMLkdMX1ZFUlNJT04pKTsKICAgICAgICAgICAg
ICAgIFN5c3RlbS5lcnIucHJpbnRsbigpOwogICAgICAgICAgICAgICAgU3lzdGVtLmVyci5wcmlu
dGxuKCJnbExvYWRUcmFuc3Bvc2VNYXRyaXhmQVJCKCkgc3VwcG9ydGVkOiAiICsKICAgICAgICAg
ICAgICAgIGdsLmlzRnVuY3Rpb25BdmFpbGFibGUoImdsTG9hZFRyYW5zcG9zZU1hdHJpeGZBUkIi
KSk7CiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgaWYgKCFnbC5pc0Z1bmN0aW9uQXZhaWxh
YmxlKCJnbExvYWRUcmFuc3Bvc2VNYXRyaXhmQVJCIikpIHsKICAgICAgICAgICAgICAgIC8vIC0t
LSBub3QgdXNpbmcgZXh0ZW5zaW9ucwogICAgICAgICAgICAgICAgZ2wuZ2xMb2FkSWRlbnRpdHko
KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIC0t
LSB1c2luZyBleHRlbnNpb25zCiAgICAgICAgICAgICAgICBmaW5hbCBmbG9hdFtdIGlkZW50aXR5
VHJhbnNwb3NlID0gbmV3IGZsb2F0W117CiAgICAgICAgICAgICAgICAgICAgMSwgMCwgMCwgMCwK
ICAgICAgICAgICAgICAgICAgICAwLCAxLCAwLCAwLAogICAgICAgICAgICAgICAgICAgIDAsIDAs
IDEsIDAsCiAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMQogICAgICAgICAgICAgICAgICAg
IH07CiAgICAgICAgICAgICAgICBnbC5nbExvYWRUcmFuc3Bvc2VNYXRyaXhmQVJCKGlkZW50aXR5
VHJhbnNwb3NlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBnbC5nbEZydXN0dW0oLTEuMGYs
IDEuMGYsIC1oLCBoLCA1LjBmLCA2MC4wZik7CiAgICAgICAgICAgIGdsLmdsTWF0cml4TW9kZShH
TC5HTF9NT0RFTFZJRVcpOwogICAgICAgICAgICBnbC5nbExvYWRJZGVudGl0eSgpOwogICAgICAg
ICAgICBnbC5nbFRyYW5zbGF0ZWYoMC4wZiwgMC4wZiwgLTQwLjBmKTsKICAgICAgICB9CgogICAg
ICAgIC8qKgogICAgICAgICAqICBEZXNjcmlwdGlvbiBvZiB0aGUgTWV0aG9kCiAgICAgICAgICoK
ICAgICAgICAgKiBAcGFyYW0gIGRyYXdhYmxlICBEZXNjcmlwdGlvbiBvZiB0aGUgUGFyYW1ldGVy
CiAgICAgICAgICovCiAgICAgICAgcHVibGljIHZvaWQgZGlzcGxheShHTERyYXdhYmxlIGRyYXdh
YmxlKSB7CiAgICAgICAgICAgIGFuZ2xlICs9IDIuMGY7CgogICAgICAgICAgICBnbC5nbENsZWFy
KEdMLkdMX0NPTE9SX0JVRkZFUl9CSVQgfCBHTC5HTF9ERVBUSF9CVUZGRVJfQklUKTsKCiAgICAg
ICAgICAgIGdsLmdsUHVzaE1hdHJpeCgpOwogICAgICAgICAgICBnbC5nbFJvdGF0ZWYodmlld19y
b3R4LCAxLjBmLCAwLjBmLCAwLjBmKTsKICAgICAgICAgICAgZ2wuZ2xSb3RhdGVmKHZpZXdfcm90
eSwgMC4wZiwgMS4wZiwgMC4wZik7CiAgICAgICAgICAgIGdsLmdsUm90YXRlZih2aWV3X3JvdHos
IDAuMGYsIDAuMGYsIDEuMGYpOwoKICAgICAgICAgICAgZ2wuZ2xQdXNoTWF0cml4KCk7CiAgICAg
ICAgICAgIGdsLmdsVHJhbnNsYXRlZigtMy4wZiwgLTIuMGYsIDAuMGYpOwogICAgICAgICAgICBn
bC5nbFJvdGF0ZWYoYW5nbGUsIDAuMGYsIDAuMGYsIDEuMGYpOwogICAgICAgICAgICBnbC5nbENh
bGxMaXN0KGdlYXIxKTsKICAgICAgICAgICAgZ2wuZ2xQb3BNYXRyaXgoKTsKCiAgICAgICAgICAg
IGdsLmdsUHVzaE1hdHJpeCgpOwogICAgICAgICAgICBnbC5nbFRyYW5zbGF0ZWYoMy4xZiwgLTIu
MGYsIDAuMGYpOwogICAgICAgICAgICBnbC5nbFJvdGF0ZWYoLTIuMGYgKiBhbmdsZSAtIDkuMGYs
IDAuMGYsIDAuMGYsIDEuMGYpOwogICAgICAgICAgICBnbC5nbENhbGxMaXN0KGdlYXIyKTsKICAg
ICAgICAgICAgZ2wuZ2xQb3BNYXRyaXgoKTsKCiAgICAgICAgICAgIGdsLmdsUHVzaE1hdHJpeCgp
OwogICAgICAgICAgICBnbC5nbFRyYW5zbGF0ZWYoLTMuMWYsIDQuMmYsIDAuMGYpOwogICAgICAg
ICAgICBnbC5nbFJvdGF0ZWYoLTIuMGYgKiBhbmdsZSAtIDI1LjBmLCAwLjBmLCAwLjBmLCAxLjBm
KTsKICAgICAgICAgICAgZ2wuZ2xDYWxsTGlzdChnZWFyMyk7CiAgICAgICAgICAgIGdsLmdsUG9w
TWF0cml4KCk7CgogICAgICAgICAgICBnbC5nbFBvcE1hdHJpeCgpOwogICAgICAgIH0KCiAgICAg
ICAgLyoqCiAgICAgICAgICogIERlc2NyaXB0aW9uIG9mIHRoZSBNZXRob2QKICAgICAgICAgKgog
ICAgICAgICAqIEBwYXJhbSAgZHJhd2FibGUgICAgICAgRGVzY3JpcHRpb24gb2YgdGhlIFBhcmFt
ZXRlcgogICAgICAgICAqIEBwYXJhbSAgbW9kZUNoYW5nZWQgICAgRGVzY3JpcHRpb24gb2YgdGhl
IFBhcmFtZXRlcgogICAgICAgICAqIEBwYXJhbSAgZGV2aWNlQ2hhbmdlZCAgRGVzY3JpcHRpb24g
b2YgdGhlIFBhcmFtZXRlcgogICAgICAgICAqLwogICAgICAgIHB1YmxpYyB2b2lkIGRpc3BsYXlD
aGFuZ2VkKEdMRHJhd2FibGUgZHJhd2FibGUsIGJvb2xlYW4gbW9kZUNoYW5nZWQsIGJvb2xlYW4g
ZGV2aWNlQ2hhbmdlZCkgeyB9CgogICAgICAgIC8qKgogICAgICAgICAqICBEZXNjcmlwdGlvbiBv
ZiB0aGUgTWV0aG9kCiAgICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gIGlubmVyX3JhZGl1cyAg
RGVzY3JpcHRpb24gb2YgdGhlIFBhcmFtZXRlcgogICAgICAgICAqIEBwYXJhbSAgb3V0ZXJfcmFk
aXVzICBEZXNjcmlwdGlvbiBvZiB0aGUgUGFyYW1ldGVyCiAgICAgICAgICogQHBhcmFtICB3aWR0
aCAgICAgICAgIERlc2NyaXB0aW9uIG9mIHRoZSBQYXJhbWV0ZXIKICAgICAgICAgKiBAcGFyYW0g
IHRlZXRoICAgICAgICAgRGVzY3JpcHRpb24gb2YgdGhlIFBhcmFtZXRlcgogICAgICAgICAqIEBw
YXJhbSAgdG9vdGhfZGVwdGggICBEZXNjcmlwdGlvbiBvZiB0aGUgUGFyYW1ldGVyCiAgICAgICAg
ICovCiAgICAgICAgcHJpdmF0ZSB2b2lkIGdlYXIoZmxvYXQgaW5uZXJfcmFkaXVzLAogICAgICAg
ICAgICBmbG9hdCBvdXRlcl9yYWRpdXMsCiAgICAgICAgICAgIGZsb2F0IHdpZHRoLAogICAgICAg
ICAgICBpbnQgdGVldGgsCiAgICAgICAgICAgIGZsb2F0IHRvb3RoX2RlcHRoKSB7CiAgICAgICAg
ICAgIGludCBpOwogICAgICAgICAgICBmbG9hdCByMDsKICAgICAgICAgICAgZmxvYXQgcjE7CiAg
ICAgICAgICAgIGZsb2F0IHIyOwogICAgICAgICAgICBmbG9hdCBhbmdsZTsKICAgICAgICAgICAg
ZmxvYXQgZGE7CiAgICAgICAgICAgIGZsb2F0IHU7CiAgICAgICAgICAgIGZsb2F0IHY7CiAgICAg
ICAgICAgIGZsb2F0IGxlbjsKCiAgICAgICAgICAgIHIwID0gaW5uZXJfcmFkaXVzOwogICAgICAg
ICAgICByMSA9IG91dGVyX3JhZGl1cyAtIHRvb3RoX2RlcHRoIC8gMi4wZjsKICAgICAgICAgICAg
cjIgPSBvdXRlcl9yYWRpdXMgKyB0b290aF9kZXB0aCAvIDIuMGY7CgogICAgICAgICAgICBkYSA9
IDIuMGYgKiAoZmxvYXQpIE1hdGguUEkgLyB0ZWV0aCAvIDQuMGY7CgogICAgICAgICAgICBnbC5n
bFNoYWRlTW9kZWwoR0wuR0xfRkxBVCk7CgogICAgICAgICAgICBnbC5nbE5vcm1hbDNmKDAuMGYs
IDAuMGYsIDEuMGYpOwoKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgIGRyYXcgZnJvbnQg
ZmFjZQogICAgICAgICAgICAgICovCiAgICAgICAgICAgIGdsLmdsQmVnaW4oR0wuR0xfUVVBRF9T
VFJJUCk7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPD0gdGVldGg7IGkrKykgewogICAgICAg
ICAgICAgICAgYW5nbGUgPSBpICogMi4wZiAqIChmbG9hdCkgTWF0aC5QSSAvIHRlZXRoOwogICAg
ICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMCAqIChmbG9hdCkgTWF0aC5jb3MoYW5nbGUpLCBy
MCAqIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUpLCB3aWR0aCAqIDAuNWYpOwogICAgICAgICAgICAg
ICAgZ2wuZ2xWZXJ0ZXgzZihyMSAqIChmbG9hdCkgTWF0aC5jb3MoYW5nbGUpLCByMSAqIChmbG9h
dCkgTWF0aC5zaW4oYW5nbGUpLCB3aWR0aCAqIDAuNWYpOwogICAgICAgICAgICAgICAgaWYgKGkg
PCB0ZWV0aCkgewogICAgICAgICAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjAgKiAoZmxvYXQp
IE1hdGguY29zKGFuZ2xlKSwgcjAgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlKSwgd2lkdGggKiAw
LjVmKTsKICAgICAgICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIxICogKGZsb2F0KSBNYXRo
LmNvcyhhbmdsZSArIDMuMGYgKiBkYSksIHIxICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSArIDMu
MGYgKiBkYSksIHdpZHRoICogMC41Zik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0K
ICAgICAgICAgICAgZ2wuZ2xFbmQoKTsKCiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICBk
cmF3IGZyb250IHNpZGVzIG9mIHRlZXRoCiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgZ2wu
Z2xCZWdpbihHTC5HTF9RVUFEUyk7CiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCB0ZWV0aDsg
aSsrKSB7CiAgICAgICAgICAgICAgICBhbmdsZSA9IGkgKiAyLjBmICogKGZsb2F0KSBNYXRoLlBJ
IC8gdGVldGg7CiAgICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIxICogKGZsb2F0KSBNYXRo
LmNvcyhhbmdsZSksIHIxICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSksIHdpZHRoICogMC41Zik7
CiAgICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIyICogKGZsb2F0KSBNYXRoLmNvcyhhbmds
ZSArIGRhKSwgcjIgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlICsgZGEpLCB3aWR0aCAqIDAuNWYp
OwogICAgICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMiAqIChmbG9hdCkgTWF0aC5jb3MoYW5n
bGUgKyAyLjBmICogZGEpLCByMiAqIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUgKyAyLjBmICogZGEp
LCB3aWR0aCAqIDAuNWYpOwogICAgICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMSAqIChmbG9h
dCkgTWF0aC5jb3MoYW5nbGUgKyAzLjBmICogZGEpLCByMSAqIChmbG9hdCkgTWF0aC5zaW4oYW5n
bGUgKyAzLjBmICogZGEpLCB3aWR0aCAqIDAuNWYpOwogICAgICAgICAgICB9CiAgICAgICAgICAg
IGdsLmdsRW5kKCk7CgogICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgZHJhdyBiYWNrIGZh
Y2UKICAgICAgICAgICAgICAqLwogICAgICAgICAgICBnbC5nbEJlZ2luKEdMLkdMX1FVQURfU1RS
SVApOwogICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDw9IHRlZXRoOyBpKyspIHsKICAgICAgICAg
ICAgICAgIGFuZ2xlID0gaSAqIDIuMGYgKiAoZmxvYXQpIE1hdGguUEkgLyB0ZWV0aDsKICAgICAg
ICAgICAgICAgIGdsLmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgcjEg
KiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlKSwgLXdpZHRoICogMC41Zik7CiAgICAgICAgICAgICAg
ICBnbC5nbFZlcnRleDNmKHIwICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSksIHIwICogKGZsb2F0
KSBNYXRoLnNpbihhbmdsZSksIC13aWR0aCAqIDAuNWYpOwogICAgICAgICAgICAgICAgZ2wuZ2xW
ZXJ0ZXgzZihyMSAqIChmbG9hdCkgTWF0aC5jb3MoYW5nbGUgKyAzICogZGEpLCByMSAqIChmbG9h
dCkgTWF0aC5zaW4oYW5nbGUgKyAzICogZGEpLCAtd2lkdGggKiAwLjVmKTsKICAgICAgICAgICAg
ICAgIGdsLmdsVmVydGV4M2YocjAgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgcjAgKiAoZmxv
YXQpIE1hdGguc2luKGFuZ2xlKSwgLXdpZHRoICogMC41Zik7CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgZ2wuZ2xFbmQoKTsKCiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICBkcmF3IGJh
Y2sgc2lkZXMgb2YgdGVldGgKICAgICAgICAgICAgICAqLwogICAgICAgICAgICBnbC5nbEJlZ2lu
KEdMLkdMX1FVQURTKTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRlZXRoOyBpKyspIHsK
ICAgICAgICAgICAgICAgIGFuZ2xlID0gaSAqIDIuMGYgKiAoZmxvYXQpIE1hdGguUEkgLyB0ZWV0
aDsKICAgICAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1hdGguY29zKGFu
Z2xlICsgMyAqIGRhKSwgcjEgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlICsgMyAqIGRhKSwgLXdp
ZHRoICogMC41Zik7CiAgICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIyICogKGZsb2F0KSBN
YXRoLmNvcyhhbmdsZSArIDIgKiBkYSksIHIyICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSArIDIg
KiBkYSksIC13aWR0aCAqIDAuNWYpOwogICAgICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMiAq
IChmbG9hdCkgTWF0aC5jb3MoYW5nbGUgKyBkYSksIHIyICogKGZsb2F0KSBNYXRoLnNpbihhbmds
ZSArIGRhKSwgLXdpZHRoICogMC41Zik7CiAgICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIx
ICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSksIHIxICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSks
IC13aWR0aCAqIDAuNWYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGdsLmdsRW5kKCk7Cgog
ICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgZHJhdyBvdXR3YXJkIGZhY2VzIG9mIHRlZXRo
CiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgZ2wuZ2xCZWdpbihHTC5HTF9RVUFEX1NUUklQ
KTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IHRlZXRoOyBpKyspIHsKICAgICAgICAgICAg
ICAgIGFuZ2xlID0gaSAqIDIuMGYgKiAoZmxvYXQpIE1hdGguUEkgLyB0ZWV0aDsKICAgICAgICAg
ICAgICAgIGdsLmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgcjEgKiAo
ZmxvYXQpIE1hdGguc2luKGFuZ2xlKSwgd2lkdGggKiAwLjVmKTsKICAgICAgICAgICAgICAgIGds
LmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgcjEgKiAoZmxvYXQpIE1h
dGguc2luKGFuZ2xlKSwgLXdpZHRoICogMC41Zik7CiAgICAgICAgICAgICAgICB1ID0gcjIgKiAo
ZmxvYXQpIE1hdGguY29zKGFuZ2xlICsgZGEpIC0gcjEgKiAoZmxvYXQpIE1hdGguY29zKGFuZ2xl
KTsKICAgICAgICAgICAgICAgIHYgPSByMiAqIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUgKyBkYSkg
LSByMSAqIChmbG9hdCkgTWF0aC5zaW4oYW5nbGUpOwogICAgICAgICAgICAgICAgbGVuID0gKGZs
b2F0KSBNYXRoLnNxcnQodSAqIHUgKyB2ICogdik7CiAgICAgICAgICAgICAgICB1IC89IGxlbjsK
ICAgICAgICAgICAgICAgIHYgLz0gbGVuOwogICAgICAgICAgICAgICAgZ2wuZ2xOb3JtYWwzZih2
LCAtdSwgMC4wZik7CiAgICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIyICogKGZsb2F0KSBN
YXRoLmNvcyhhbmdsZSArIGRhKSwgcjIgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlICsgZGEpLCB3
aWR0aCAqIDAuNWYpOwogICAgICAgICAgICAgICAgZ2wuZ2xWZXJ0ZXgzZihyMiAqIChmbG9hdCkg
TWF0aC5jb3MoYW5nbGUgKyBkYSksIHIyICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSArIGRhKSwg
LXdpZHRoICogMC41Zik7CiAgICAgICAgICAgICAgICBnbC5nbE5vcm1hbDNmKChmbG9hdCkgTWF0
aC5jb3MoYW5nbGUpLCAoZmxvYXQpIE1hdGguc2luKGFuZ2xlKSwgMC4wZik7CiAgICAgICAgICAg
ICAgICBnbC5nbFZlcnRleDNmKHIyICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSArIDIgKiBkYSks
IHIyICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSArIDIgKiBkYSksIHdpZHRoICogMC41Zik7CiAg
ICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIyICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSAr
IDIgKiBkYSksIHIyICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSArIDIgKiBkYSksIC13aWR0aCAq
IDAuNWYpOwogICAgICAgICAgICAgICAgdSA9IHIxICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSAr
IDMgKiBkYSkgLSByMiAqIChmbG9hdCkgTWF0aC5jb3MoYW5nbGUgKyAyICogZGEpOwogICAgICAg
ICAgICAgICAgdiA9IHIxICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSArIDMgKiBkYSkgLSByMiAq
IChmbG9hdCkgTWF0aC5zaW4oYW5nbGUgKyAyICogZGEpOwogICAgICAgICAgICAgICAgZ2wuZ2xO
b3JtYWwzZih2LCAtdSwgMC4wZik7CiAgICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIxICog
KGZsb2F0KSBNYXRoLmNvcyhhbmdsZSArIDMgKiBkYSksIHIxICogKGZsb2F0KSBNYXRoLnNpbihh
bmdsZSArIDMgKiBkYSksIHdpZHRoICogMC41Zik7CiAgICAgICAgICAgICAgICBnbC5nbFZlcnRl
eDNmKHIxICogKGZsb2F0KSBNYXRoLmNvcyhhbmdsZSArIDMgKiBkYSksIHIxICogKGZsb2F0KSBN
YXRoLnNpbihhbmdsZSArIDMgKiBkYSksIC13aWR0aCAqIDAuNWYpOwogICAgICAgICAgICAgICAg
Z2wuZ2xOb3JtYWwzZigoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgKGZsb2F0KSBNYXRoLnNpbihh
bmdsZSksIDAuMGYpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjEg
KiAoZmxvYXQpIE1hdGguY29zKDApLCByMSAqIChmbG9hdCkgTWF0aC5zaW4oMCksIHdpZHRoICog
MC41Zik7CiAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjEgKiAoZmxvYXQpIE1hdGguY29zKDAp
LCByMSAqIChmbG9hdCkgTWF0aC5zaW4oMCksIC13aWR0aCAqIDAuNWYpOwogICAgICAgICAgICBn
bC5nbEVuZCgpOwoKICAgICAgICAgICAgZ2wuZ2xTaGFkZU1vZGVsKEdMLkdMX1NNT09USCk7Cgog
ICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgZHJhdyBpbnNpZGUgcmFkaXVzIGN5bGluZGVy
CiAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgZ2wuZ2xCZWdpbihHTC5HTF9RVUFEX1NUUklQ
KTsKICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8PSB0ZWV0aDsgaSsrKSB7CiAgICAgICAgICAg
ICAgICBhbmdsZSA9IGkgKiAyLjBmICogKGZsb2F0KSBNYXRoLlBJIC8gdGVldGg7CiAgICAgICAg
ICAgICAgICBnbC5nbE5vcm1hbDNmKC0oZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgLShmbG9hdCkg
TWF0aC5zaW4oYW5nbGUpLCAwLjBmKTsKICAgICAgICAgICAgICAgIGdsLmdsVmVydGV4M2YocjAg
KiAoZmxvYXQpIE1hdGguY29zKGFuZ2xlKSwgcjAgKiAoZmxvYXQpIE1hdGguc2luKGFuZ2xlKSwg
LXdpZHRoICogMC41Zik7CiAgICAgICAgICAgICAgICBnbC5nbFZlcnRleDNmKHIwICogKGZsb2F0
KSBNYXRoLmNvcyhhbmdsZSksIHIwICogKGZsb2F0KSBNYXRoLnNpbihhbmdsZSksIHdpZHRoICog
MC41Zik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZ2wuZ2xFbmQoKTsKICAgICAgICB9Cgog
ICAgICAgIC8vIE1ldGhvZHMgcmVxdWlyZWQgZm9yIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBNb3Vz
ZUxpc3RlbmVyCiAgICAgICAgLyoqCiAgICAgICAgICogIERlc2NyaXB0aW9uIG9mIHRoZSBNZXRo
b2QKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSAgZSAgRGVzY3JpcHRpb24gb2YgdGhlIFBh
cmFtZXRlcgogICAgICAgICAqLwogICAgICAgIHB1YmxpYyB2b2lkIG1vdXNlRW50ZXJlZChNb3Vz
ZUV2ZW50IGUpIHsgfQoKICAgICAgICAvKioKICAgICAgICAgKiAgRGVzY3JpcHRpb24gb2YgdGhl
IE1ldGhvZAogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtICBlICBEZXNjcmlwdGlvbiBvZiB0
aGUgUGFyYW1ldGVyCiAgICAgICAgICovCiAgICAgICAgcHVibGljIHZvaWQgbW91c2VFeGl0ZWQo
TW91c2VFdmVudCBlKSB7IH0KCiAgICAgICAgLyoqCiAgICAgICAgICogIERlc2NyaXB0aW9uIG9m
IHRoZSBNZXRob2QKICAgICAgICAgKgogICAgICAgICAqIEBwYXJhbSAgZSAgRGVzY3JpcHRpb24g
b2YgdGhlIFBhcmFtZXRlcgogICAgICAgICAqLwogICAgICAgIHB1YmxpYyB2b2lkIG1vdXNlUHJl
c3NlZChNb3VzZUV2ZW50IGUpIHsKICAgICAgICAgICAgcHJldk1vdXNlWCA9IGUuZ2V0WCgpOwog
ICAgICAgICAgICBwcmV2TW91c2VZID0gZS5nZXRZKCk7CiAgICAgICAgICAgIGlmICgoZS5nZXRN
b2RpZmllcnMoKSAmIGUuQlVUVE9OM19NQVNLKSAhPSAwKSB7CiAgICAgICAgICAgICAgICBtb3Vz
ZVJCdXR0b25Eb3duID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLyoq
CiAgICAgICAgICogIERlc2NyaXB0aW9uIG9mIHRoZSBNZXRob2QKICAgICAgICAgKgogICAgICAg
ICAqIEBwYXJhbSAgZSAgRGVzY3JpcHRpb24gb2YgdGhlIFBhcmFtZXRlcgogICAgICAgICAqLwog
ICAgICAgIHB1YmxpYyB2b2lkIG1vdXNlUmVsZWFzZWQoTW91c2VFdmVudCBlKSB7CiAgICAgICAg
ICAgIGlmICgoZS5nZXRNb2RpZmllcnMoKSAmIGUuQlVUVE9OM19NQVNLKSAhPSAwKSB7CiAgICAg
ICAgICAgICAgICBtb3VzZVJCdXR0b25Eb3duID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgIC8qKgogICAgICAgICAqICBEZXNjcmlwdGlvbiBvZiB0aGUgTWV0aG9kCiAg
ICAgICAgICoKICAgICAgICAgKiBAcGFyYW0gIGUgIERlc2NyaXB0aW9uIG9mIHRoZSBQYXJhbWV0
ZXIKICAgICAgICAgKi8KICAgICAgICBwdWJsaWMgdm9pZCBtb3VzZUNsaWNrZWQoTW91c2VFdmVu
dCBlKSB7IH0KCiAgICAgICAgLy8gTWV0aG9kcyByZXF1aXJlZCBmb3IgdGhlIGltcGxlbWVudGF0
aW9uIG9mIE1vdXNlTW90aW9uTGlzdGVuZXIKICAgICAgICAvKioKICAgICAgICAgKiAgRGVzY3Jp
cHRpb24gb2YgdGhlIE1ldGhvZAogICAgICAgICAqCiAgICAgICAgICogQHBhcmFtICBlICBEZXNj
cmlwdGlvbiBvZiB0aGUgUGFyYW1ldGVyCiAgICAgICAgICovCiAgICAgICAgcHVibGljIHZvaWQg
bW91c2VEcmFnZ2VkKE1vdXNlRXZlbnQgZSkgewogICAgICAgICAgICBpbnQgeCA9IGUuZ2V0WCgp
OwogICAgICAgICAgICBpbnQgeSA9IGUuZ2V0WSgpOwogICAgICAgICAgICBEaW1lbnNpb24gc2l6
ZSA9IGUuZ2V0Q29tcG9uZW50KCkuZ2V0U2l6ZSgpOwoKICAgICAgICAgICAgZmxvYXQgdGhldGFZ
ID0gMzYwLjBmICogKChmbG9hdCkgKHggLSBwcmV2TW91c2VYKSAvIChmbG9hdCkgc2l6ZS53aWR0
aCk7CiAgICAgICAgICAgIGZsb2F0IHRoZXRhWCA9IDM2MC4wZiAqICgoZmxvYXQpIChwcmV2TW91
c2VZIC0geSkgLyAoZmxvYXQpIHNpemUuaGVpZ2h0KTsKCiAgICAgICAgICAgIHByZXZNb3VzZVgg
PSB4OwogICAgICAgICAgICBwcmV2TW91c2VZID0geTsKCiAgICAgICAgICAgIHZpZXdfcm90eCAr
PSB0aGV0YVg7CiAgICAgICAgICAgIHZpZXdfcm90eSArPSB0aGV0YVk7CiAgICAgICAgfQoKICAg
ICAgICAvKioKICAgICAgICAgKiAgRGVzY3JpcHRpb24gb2YgdGhlIE1ldGhvZAogICAgICAgICAq
CiAgICAgICAgICogQHBhcmFtICBlICBEZXNjcmlwdGlvbiBvZiB0aGUgUGFyYW1ldGVyCiAgICAg
ICAgICovCiAgICAgICAgcHVibGljIHZvaWQgbW91c2VNb3ZlZChNb3VzZUV2ZW50IGUpIHsgfQog
ICAgfQp9Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>