<?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>82049</bug_id>
          
          <creation_ts>2012-03-23 06:25:46 -0700</creation_ts>
          <short_desc>[Qt][WK2] Make TextureMapperShaderManager::getShaderProgram() not be a template.</short_desc>
          <delta_ts>2012-03-24 01:38:32 -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>WebKit Qt</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zeno Albisser">zeno</reporter>
          <assigned_to name="Zeno Albisser">zeno</assigned_to>
          <cc>noam</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>586274</commentid>
    <comment_count>0</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-03-23 06:25:46 -0700</bug_when>
    <thetext>When building debug with clang on mac, this template function leads to an assert in HashTable.
When building with gcc instead, the problem could not be reproduced.
This even was the case if the function was not using the template parameter at all.
So just having this function being a template triggered what seems to be a compiler bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586275</commentid>
    <comment_count>1</comment_count>
      <attachid>133471</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-03-23 06:27:06 -0700</bug_when>
    <thetext>Created attachment 133471
backtrace of the assert.

For the sake of completeness I am adding a backtrace to the bugreport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586292</commentid>
    <comment_count>2</comment_count>
      <attachid>133474</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-03-23 06:43:03 -0700</bug_when>
    <thetext>Created attachment 133474
patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586308</commentid>
    <comment_count>3</comment_count>
      <attachid>133474</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-03-23 07:11:12 -0700</bug_when>
    <thetext>Comment on attachment 133474
patch for review.

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.h:123
&gt; +        if (shaderType == Simple) {
&gt; +            RefPtr&lt;TextureMapperShaderProgram&gt; t = TextureMapperShaderProgramSimple::create();
&gt; +            m_textureMapperShaderProgramMap.add(shaderType, t);
&gt; +            return t;
&gt; +        }
&gt; +
&gt; +        if (shaderType == OpacityAndMask) {
&gt; +            RefPtr&lt;TextureMapperShaderProgram&gt; t = TextureMapperShaderProgramOpacityAndMask::create();
&gt; +            m_textureMapperShaderProgramMap.add(shaderType, t);
&gt; +            return t;
&gt; +        }

This should be a switch, with only the different lines in it. The add and return can go outside the switch.

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperShaderManager.h:129
&gt; +    typedef HashMap&lt;int, RefPtr&lt;TextureMapperShaderProgram&gt; &gt; TextureMapperShaderProgramMap;

Why not keep the key as ShaderType?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586381</commentid>
    <comment_count>4</comment_count>
      <attachid>133497</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-03-23 09:07:12 -0700</bug_when>
    <thetext>Created attachment 133497
patch for review. - fixed issues as requested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587042</commentid>
    <comment_count>5</comment_count>
      <attachid>133497</attachid>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-03-24 01:38:25 -0700</bug_when>
    <thetext>Comment on attachment 133497
patch for review. - fixed issues as requested.

Clearing flags on attachment: 133497

Committed r111986: &lt;http://trac.webkit.org/changeset/111986&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587043</commentid>
    <comment_count>6</comment_count>
    <who name="Zeno Albisser">zeno</who>
    <bug_when>2012-03-24 01:38:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>133471</attachid>
            <date>2012-03-23 06:27:06 -0700</date>
            <delta_ts>2012-03-23 06:27:06 -0700</delta_ts>
            <desc>backtrace of the assert.</desc>
            <filename>HashTable_assert.txt</filename>
            <type>text/plain</type>
            <size>12535</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">JCBnZGIgLi9iaW4vTWluaUJyb3dzZXIKR05VIGdkYiA2LjMuNTAtMjAwNTA4MTUgKEFwcGxlIHZl
cnNpb24gZ2RiLTE3MDgpIChNb24gQXVnICA4IDIwOjMyOjQ1IFVUQyAyMDExKQpDb3B5cmlnaHQg
MjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KR0RCIGlzIGZyZWUgc29mdHdhcmUs
IGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhbmQgeW91IGFyZQp3
ZWxjb21lIHRvIGNoYW5nZSBpdCBhbmQvb3IgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgaXQgdW5kZXIg
Y2VydGFpbiBjb25kaXRpb25zLgpUeXBlICJzaG93IGNvcHlpbmciIHRvIHNlZSB0aGUgY29uZGl0
aW9ucy4KVGhlcmUgaXMgYWJzb2x1dGVseSBubyB3YXJyYW50eSBmb3IgR0RCLiAgVHlwZSAic2hv
dyB3YXJyYW50eSIgZm9yIGRldGFpbHMuClRoaXMgR0RCIHdhcyBjb25maWd1cmVkIGFzICJ4ODZf
NjQtYXBwbGUtZGFyd2luIi4uLlJlYWRpbmcgc3ltYm9scyBmb3Igc2hhcmVkIGxpYnJhcmllcyAu
Li4uLi4uLi4uLi4uIGRvbmUKCihnZGIpIHJ1bgpTdGFydGluZyBwcm9ncmFtOiAvVXNlcnMvemVu
by93b3JrL3dlYmtpdC9XZWJLaXRCdWlsZC9xdDUvRGVidWcvYmluL01pbmlCcm93c2VyClJlYWRp
bmcgc3ltYm9scyBmb3Igc2hhcmVkIGxpYnJhcmllcyArKysrKysrKysrKysuLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIGRvbmUKUmVhZGluZyBzeW1ib2xzIGZvciBzaGFy
ZWQgbGlicmFyaWVzIC4gZG9uZQpSZWFkaW5nIHN5bWJvbHMgZm9yIHNoYXJlZCBsaWJyYXJpZXMg
LiBkb25lClJlYWRpbmcgc3ltYm9scyBmb3Igc2hhcmVkIGxpYnJhcmllcyAuIGRvbmUKUmVhZGlu
ZyBzeW1ib2xzIGZvciBzaGFyZWQgbGlicmFyaWVzIC4gZG9uZQpSZWFkaW5nIHN5bWJvbHMgZm9y
IHNoYXJlZCBsaWJyYXJpZXMgLiBkb25lClJlYWRpbmcgc3ltYm9scyBmb3Igc2hhcmVkIGxpYnJh
cmllcyAuIGRvbmUKUmVhZGluZyBzeW1ib2xzIGZvciBzaGFyZWQgbGlicmFyaWVzIC4gZG9uZQoK
V0FSTklORzogVGhpcyBwcm9qZWN0IGlzIHVzaW5nIHRoZSBleHBlcmltZW50YWwgUU1MIEFQSSBl
eHRlbnNpb25zIGZvciBRdFdlYktpdCBhbmQgaXMgdGhlcmVmb3JlIHRpZWQgdG8gYSBzcGVjaWZp
YyBRdFdlYktpdCByZWxlYXNlLgpXQVJOSU5HOiBUaGUgZXhwZXJpbWVudGFsIEFQSSB3aWxsIGNo
YW5nZSBmcm9tIHZlcnNpb24gdG8gdmVyc2lvbiwgb3IgZXZlbiBiZSByZW1vdmVkLiBZb3UgaGF2
ZSBiZWVuIHdhcm5lZCEKClJlYWRpbmcgc3ltYm9scyBmb3Igc2hhcmVkIGxpYnJhcmllcyAuIGRv
bmUKUmVhZGluZyBzeW1ib2xzIGZvciBzaGFyZWQgbGlicmFyaWVzIC4gZG9uZQpSZWFkaW5nIHN5
bWJvbHMgZm9yIHNoYXJlZCBsaWJyYXJpZXMgLiBkb25lClJlYWRpbmcgc3ltYm9scyBmb3Igc2hh
cmVkIGxpYnJhcmllcyAuIGRvbmUKUmVhZGluZyBzeW1ib2xzIGZvciBzaGFyZWQgbGlicmFyaWVz
IC4gZG9uZQpSZWFkaW5nIHN5bWJvbHMgZm9yIHNoYXJlZCBsaWJyYXJpZXMgLiBkb25lClJlYWRp
bmcgc3ltYm9scyBmb3Igc2hhcmVkIGxpYnJhcmllcyAuIGRvbmUKUmVhZGluZyBzeW1ib2xzIGZv
ciBzaGFyZWQgbGlicmFyaWVzIC4gZG9uZQpSZWFkaW5nIHN5bWJvbHMgZm9yIHNoYXJlZCBsaWJy
YXJpZXMgLi4gZG9uZQpSZWFkaW5nIHN5bWJvbHMgZm9yIHNoYXJlZCBsaWJyYXJpZXMgLi4gZG9u
ZQpSZWFkaW5nIHN5bWJvbHMgZm9yIHNoYXJlZCBsaWJyYXJpZXMgLiBkb25lCkFTU0VSVElPTiBG
QUlMRUQ6ICFpdC0+bV9uZXh0LT5tX3ByZXZpb3VzCi9Vc2Vycy96ZW5vL3dvcmsvd2Via2l0L1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvSGFzaFRhYmxlLmgoMTEyMikgOiB2b2lkIFdURjo6YWRk
SXRlcmF0b3IoY29uc3QgSGFzaFRhYmxlPHZvaWQgKiwgc3RkOjpwYWlyPHZvaWQgKiwgV1RGOjpS
ZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+ID4sIFdURjo6UGFpckZp
cnN0RXh0cmFjdG9yPHN0ZDo6cGFpcjx2b2lkICosIFdURjo6UmVmUHRyPFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiA+ID4sIFdURjo6UHRySGFzaDx2b2lkICo+LCBXVEY6OlBh
aXJIYXNoVHJhaXRzPFdURjo6SGFzaFRyYWl0czx2b2lkICo+LCBXVEY6Okhhc2hUcmFpdHM8V1RG
OjpSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+ID4gPiwgV1RGOjpI
YXNoVHJhaXRzPHZvaWQgKj4gPiAqLCBIYXNoVGFibGVDb25zdEl0ZXJhdG9yPHZvaWQgKiwgc3Rk
OjpwYWlyPHZvaWQgKiwgV1RGOjpSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW0+ID4sIFdURjo6UGFpckZpcnN0RXh0cmFjdG9yPHN0ZDo6cGFpcjx2b2lkICosIFdURjo6
UmVmUHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiA+ID4sIFdURjo6UHRy
SGFzaDx2b2lkICo+LCBXVEY6OlBhaXJIYXNoVHJhaXRzPFdURjo6SGFzaFRyYWl0czx2b2lkICo+
LCBXVEY6Okhhc2hUcmFpdHM8V1RGOjpSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRl
clByb2dyYW0+ID4gPiwgV1RGOjpIYXNoVHJhaXRzPHZvaWQgKj4gPiAqKQoxICAgMHgxMDJmNzdi
ODkKMiAgIDB4MTAyZjc4MjdiCjMgICAweDEwMmY3ODIzNQo0ICAgMHgxMDJmNzgxZjUKNSAgIDB4
MTAyZjc4MWI1CjYgICAweDEwMmY3Nzc0Ngo3ICAgMHgxMDJmNzdkZjQKOCAgIDB4MTAyZjc3ODg0
CjkgICAweDEwMmY3NjYzZgoxMCAgMHgxMDJmNzVhZGYKMTEgIDB4MTAyZjcxZWU0CjEyICAweDEw
MmY3MWQ5MwoxMyAgMHgxMDJmNjQ3ZTAKMTQgIDB4MTAxOWE1OGZjCjE1ICAweDEwMmY2OTFhOAox
NiAgMHgxMDJmNjkzNmIKMTcgIDB4MTAyZjY5YzZjCjE4ICAweDEwMmY2ODkyOAoxOSAgMHgxMDJm
Njk1MGEKMjAgIDB4MTAyZjY5YzZjCjIxICAweDEwMmY2ODkyOAoyMiAgMHgxMDJmNjk1MGEKMjMg
IDB4MTAyZjY5YzZjCjI0ICAweDEwMmY2ODkyOAoyNSAgMHgxMDJmNjg3MTYKMjYgIDB4MTAxOTIw
MzA1CjI3ICAweDEwMTliYjYyYgoyOCAgMHgxMDAwYTc4NGUKMjkgIDB4MTAwMGE2ZDk0CjMwICAw
eDEwMDBhY2E0NAozMSAgMHgxMDAwYWM5YmMKClByb2dyYW0gcmVjZWl2ZWQgc2lnbmFsIEVYQ19C
QURfQUNDRVNTLCBDb3VsZCBub3QgYWNjZXNzIG1lbW9yeS4KUmVhc29uOiBLRVJOX0lOVkFMSURf
QUREUkVTUyBhdCBhZGRyZXNzOiAweDAwMDAwMDAwYmJhZGJlZWYKW1N3aXRjaGluZyB0byBwcm9j
ZXNzIDUxMzAyIHRocmVhZCAweDY3MDddCjB4MDAwMDAwMDEwMmY3N2JhMiBpbiBXVEY6OmFkZEl0
ZXJhdG9yPHZvaWQqLCBzdGQ6OnBhaXI8dm9pZCosIFdURjo6UmVmUHRyPFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiA+LCBXVEY6OlBhaXJGaXJzdEV4dHJhY3RvcjxzdGQ6OnBh
aXI8dm9pZCosIFdURjo6UmVmUHRyPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
PiA+ID4sIFdURjo6UHRySGFzaDx2b2lkKj4sIFdURjo6UGFpckhhc2hUcmFpdHM8V1RGOjpIYXNo
VHJhaXRzPHZvaWQqPiwgV1RGOjpIYXNoVHJhaXRzPFdURjo6UmVmUHRyPFdlYkNvcmU6OlRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiA+ID4sIFdURjo6SGFzaFRyYWl0czx2b2lkKj4gPiAodGFi
bGU9MHgxMGJiYjI5MDAsIGl0PTB4MTEzZTg4Yzk4KSBhdCBIYXNoVGFibGUuaDoxMTIyCjExMjIg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVCghaXQtPm1fbmV4dC0+bV9wcmV2aW91cyk7CihnZGIp
IHdoZXJlCiMwICAweDAwMDAwMDAxMDJmNzdiYTIgaW4gV1RGOjphZGRJdGVyYXRvcjx2b2lkKiwg
c3RkOjpwYWlyPHZvaWQqLCBXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbT4gPiwgV1RGOjpQYWlyRmlyc3RFeHRyYWN0b3I8c3RkOjpwYWlyPHZvaWQqLCBXVEY6
OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBXVEY6OlB0
ckhhc2g8dm9pZCo+LCBXVEY6OlBhaXJIYXNoVHJhaXRzPFdURjo6SGFzaFRyYWl0czx2b2lkKj4s
IFdURjo6SGFzaFRyYWl0czxXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVy
UHJvZ3JhbT4gPiA+LCBXVEY6Okhhc2hUcmFpdHM8dm9pZCo+ID4gKHRhYmxlPTB4MTBiYmIyOTAw
LCBpdD0weDExM2U4OGM5OCkgYXQgSGFzaFRhYmxlLmg6MTEyMgojMSAgMHgwMDAwMDAwMTAyZjc4
MjdiIGluIFdURjo6SGFzaFRhYmxlQ29uc3RJdGVyYXRvcjx2b2lkKiwgc3RkOjpwYWlyPHZvaWQq
LCBXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiwgV1RG
OjpQYWlyRmlyc3RFeHRyYWN0b3I8c3RkOjpwYWlyPHZvaWQqLCBXVEY6OlJlZlB0cjxXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBXVEY6OlB0ckhhc2g8dm9pZCo+LCBX
VEY6OlBhaXJIYXNoVHJhaXRzPFdURjo6SGFzaFRyYWl0czx2b2lkKj4sIFdURjo6SGFzaFRyYWl0
czxXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBX
VEY6Okhhc2hUcmFpdHM8dm9pZCo+ID46Okhhc2hUYWJsZUNvbnN0SXRlcmF0b3IgKHRoaXM9MHgx
MTNlODhjOTgsIHRhYmxlPTB4MTBiYmIyOTAwLCBwb3NpdGlvbj0weDEwZDA2Njc1MCwgZW5kUG9z
aXRpb249MHgxMGQwNjY4MDApIGF0IEhhc2hUYWJsZS5oOjEyNgojMiAgMHgwMDAwMDAwMTAyZjc4
MjM1IGluIFdURjo6SGFzaFRhYmxlQ29uc3RJdGVyYXRvcjx2b2lkKiwgc3RkOjpwYWlyPHZvaWQq
LCBXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiwgV1RG
OjpQYWlyRmlyc3RFeHRyYWN0b3I8c3RkOjpwYWlyPHZvaWQqLCBXVEY6OlJlZlB0cjxXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBXVEY6OlB0ckhhc2g8dm9pZCo+LCBX
VEY6OlBhaXJIYXNoVHJhaXRzPFdURjo6SGFzaFRyYWl0czx2b2lkKj4sIFdURjo6SGFzaFRyYWl0
czxXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBX
VEY6Okhhc2hUcmFpdHM8dm9pZCo+ID46Okhhc2hUYWJsZUNvbnN0SXRlcmF0b3IgKHRoaXM9MHgx
MTNlODhjOTgsIHRhYmxlPTB4MTBiYmIyOTAwLCBwb3NpdGlvbj0weDEwZDA2Njc1MCwgZW5kUG9z
aXRpb249MHgxMGQwNjY4MDApIGF0IEhhc2hUYWJsZS5oOjEyNQojMyAgMHgwMDAwMDAwMTAyZjc4
MWY1IGluIFdURjo6SGFzaFRhYmxlSXRlcmF0b3I8dm9pZCosIHN0ZDo6cGFpcjx2b2lkKiwgV1RG
OjpSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+ID4sIFdURjo6UGFp
ckZpcnN0RXh0cmFjdG9yPHN0ZDo6cGFpcjx2b2lkKiwgV1RGOjpSZWZQdHI8V2ViQ29yZTo6VGV4
dHVyZU1hcHBlclNoYWRlclByb2dyYW0+ID4gPiwgV1RGOjpQdHJIYXNoPHZvaWQqPiwgV1RGOjpQ
YWlySGFzaFRyYWl0czxXVEY6Okhhc2hUcmFpdHM8dm9pZCo+LCBXVEY6Okhhc2hUcmFpdHM8V1RG
OjpSZWZQdHI8V2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+ID4gPiwgV1RGOjpI
YXNoVHJhaXRzPHZvaWQqPiA+OjpIYXNoVGFibGVJdGVyYXRvciAodGhpcz0weDExM2U4OGM5OCwg
dGFibGU9MHgxMGJiYjI5MDAsIHBvcz0weDEwZDA2Njc1MCwgZW5kPTB4MTBkMDY2ODAwLCB0YWc9
V1RGOjpIYXNoSXRlbUtub3duR29vZCkgYXQgSGFzaFRhYmxlLmg6MjQ2CiM0ICAweDAwMDAwMDAx
MDJmNzgxYjUgaW4gV1RGOjpIYXNoVGFibGVJdGVyYXRvcjx2b2lkKiwgc3RkOjpwYWlyPHZvaWQq
LCBXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiwgV1RG
OjpQYWlyRmlyc3RFeHRyYWN0b3I8c3RkOjpwYWlyPHZvaWQqLCBXVEY6OlJlZlB0cjxXZWJDb3Jl
OjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBXVEY6OlB0ckhhc2g8dm9pZCo+LCBX
VEY6OlBhaXJIYXNoVHJhaXRzPFdURjo6SGFzaFRyYWl0czx2b2lkKj4sIFdURjo6SGFzaFRyYWl0
czxXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBX
VEY6Okhhc2hUcmFpdHM8dm9pZCo+ID46Okhhc2hUYWJsZUl0ZXJhdG9yICh0aGlzPTB4MTEzZTg4
Yzk4LCB0YWJsZT0weDEwYmJiMjkwMCwgcG9zPTB4MTBkMDY2NzUwLCBlbmQ9MHgxMGQwNjY4MDAs
IHRhZz1XVEY6Okhhc2hJdGVtS25vd25Hb29kKSBhdCBIYXNoVGFibGUuaDoyNDYKIzUgIDB4MDAw
MDAwMDEwMmY3Nzc0NiBpbiBXVEY6Okhhc2hUYWJsZTx2b2lkKiwgc3RkOjpwYWlyPHZvaWQqLCBX
VEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiwgV1RGOjpQ
YWlyRmlyc3RFeHRyYWN0b3I8c3RkOjpwYWlyPHZvaWQqLCBXVEY6OlJlZlB0cjxXZWJDb3JlOjpU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBXVEY6OlB0ckhhc2g8dm9pZCo+LCBXVEY6
OlBhaXJIYXNoVHJhaXRzPFdURjo6SGFzaFRyYWl0czx2b2lkKj4sIFdURjo6SGFzaFRyYWl0czxX
VEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBXVEY6
Okhhc2hUcmFpdHM8dm9pZCo+ID46Om1ha2VLbm93bkdvb2RJdGVyYXRvciAodGhpcz0weDEwYmJi
MjkwMCwgcG9zPTB4MTBkMDY2NzUwKSBhdCBIYXNoVGFibGUuaDo0MDkKIzYgIDB4MDAwMDAwMDEw
MmY3N2RmNCBpbiBXVEY6Okhhc2hUYWJsZTx2b2lkKiwgc3RkOjpwYWlyPHZvaWQqLCBXVEY6OlJl
ZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiwgV1RGOjpQYWlyRmly
c3RFeHRyYWN0b3I8c3RkOjpwYWlyPHZvaWQqLCBXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBXVEY6OlB0ckhhc2g8dm9pZCo+LCBXVEY6OlBhaXJI
YXNoVHJhaXRzPFdURjo6SGFzaFRyYWl0czx2b2lkKj4sIFdURjo6SGFzaFRyYWl0czxXVEY6OlJl
ZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBXVEY6Okhhc2hU
cmFpdHM8dm9pZCo+ID46OmZpbmQ8V1RGOjpJZGVudGl0eUhhc2hUcmFuc2xhdG9yPFdURjo6UHRy
SGFzaDx2b2lkKj4gPiwgdm9pZCo+ICh0aGlzPTB4MTBiYmIyOTAwLCBrZXk9QDB4MTEzZTg4ZGUw
KSBhdCBIYXNoVGFibGUuaDo4MjAKIzcgIDB4MDAwMDAwMDEwMmY3Nzg4NCBpbiBXVEY6Okhhc2hU
YWJsZTx2b2lkKiwgc3RkOjpwYWlyPHZvaWQqLCBXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiwgV1RGOjpQYWlyRmlyc3RFeHRyYWN0b3I8c3RkOjpwYWly
PHZvaWQqLCBXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4g
PiA+LCBXVEY6OlB0ckhhc2g8dm9pZCo+LCBXVEY6OlBhaXJIYXNoVHJhaXRzPFdURjo6SGFzaFRy
YWl0czx2b2lkKj4sIFdURjo6SGFzaFRyYWl0czxXVEY6OlJlZlB0cjxXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiA+LCBXVEY6Okhhc2hUcmFpdHM8dm9pZCo+ID46OmZpbmQg
KHRoaXM9MHgxMGJiYjI5MDAsIGtleT1AMHgxMTNlODhkZTApIGF0IEhhc2hUYWJsZS5oOjM0MQoj
OCAgMHgwMDAwMDAwMTAyZjc2NjNmIGluIFdURjo6SGFzaE1hcDx2b2lkKiwgV1RGOjpSZWZQdHI8
V2ViQ29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+LCBXVEY6OlB0ckhhc2g8dm9pZCo+
LCBXVEY6Okhhc2hUcmFpdHM8dm9pZCo+LCBXVEY6Okhhc2hUcmFpdHM8V1RGOjpSZWZQdHI8V2Vi
Q29yZTo6VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0+ID4gPjo6ZmluZCAodGhpcz0weDEwYmJi
MjkwMCwga2V5PUAweDExM2U4OGRlMCkgYXQgSGFzaE1hcC5oOjI4MgojOSAgMHgwMDAwMDAwMTAy
Zjc1YWRmIGluIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOjpnZXRTaGFkZXJQ
cm9ncmFtPFdlYkNvcmU6OlRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtU2ltcGxlPiAodGhpcz0w
eDEwYmJiMjhmOCkgYXQgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaDoxMTEKIzEwIDB4MDAw
MDAwMDEwMmY3MWVlNCBpbiBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmRyYXdUZXh0dXJlICh0
aGlzPTB4MTBiYmIyN2EwLCB0ZXh0dXJlPTEzLCBmbGFncz0wLCB0ZXh0dXJlU2l6ZT1AMHgxMTNl
ODk2MTAsIHRhcmdldFJlY3Q9QDB4MTEzZTg5NmMwLCBtb2RlbFZpZXdNYXRyaXg9QDB4MTEzZTg5
YWQwLCBvcGFjaXR5PTEsIG1hc2tUZXh0dXJlPTB4MCkgYXQgL1VzZXJzL3plbm8vd29yay93ZWJr
aXQvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHA6MzI0CiMxMSAweDAwMDAwMDAxMDJmNzFkOTMgaW4gV2ViQ29yZTo6VGV4dHVyZU1hcHBl
ckdMOjpkcmF3VGV4dHVyZSAodGhpcz0weDEwYmJiMjdhMCwgdGV4dHVyZT1AMHgxMGJjNzYxOTAs
IHRhcmdldFJlY3Q9QDB4MTEzZTg5NmMwLCBtYXRyaXg9QDB4MTEzZTg5YWQwLCBvcGFjaXR5PTEs
IG1hc2s9MHgwKSBhdCAvVXNlcnMvemVuby93b3JrL3dlYmtpdC9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcDozMTUKIzEyIDB4MDAwMDAw
MDEwMmY2NDdlMCBpbiBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyVGlsZTo6cGFpbnQgKHRoaXM9MHgx
MGQwN2JjODgsIHRleHR1cmVNYXBwZXI9MHgxMGJiYjI3YTAsIHRyYW5zZm9ybT1AMHgxMTNlODlh
ZDAsIG9wYWNpdHk9MSwgbWFzaz0weDApIGF0IC9Vc2Vycy96ZW5vL3dvcmsvd2Via2l0L1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyQmFja2luZ1N0
b3JlLmNwcDo1MgojMTMgMHgwMDAwMDAwMTAxOWE1OGZjIGluIFdlYktpdDo6TGF5ZXJCYWNraW5n
U3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyICh0aGlzPTB4MTBiYzc0YjMwLCB0ZXh0dXJlTWFw
cGVyPTB4MTBiYmIyN2EwLCB0YXJnZXRSZWN0PUAweDExM2U4OTlhMCwgdHJhbnNmb3JtPUAweDEx
M2U4OWFkMCwgb3BhY2l0eT0xLCBtYXNrPTB4MCkgYXQgL1VzZXJzL3plbm8vd29yay93ZWJraXQv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L0xheWVyQmFja2luZ1N0b3JlLmNwcDoxMjUKIzE0
IDB4MDAwMDAwMDEwMmY2OTFhOCBpbiBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50
U2VsZiAodGhpcz0weDEwZDA2OTgwMCwgb3B0aW9ucz1AMHgxMTNlOGEzYzApIGF0IC9Vc2Vycy96
ZW5vL3dvcmsvd2Via2l0L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9U
ZXh0dXJlTWFwcGVyTGF5ZXIuY3BwOjE1OQojMTUgMHgwMDAwMDAwMTAyZjY5MzZiIGluIFdlYkNv
cmU6OlRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmQW5kQ2hpbGRyZW4gKHRoaXM9MHgxMGQw
Njk4MDAsIG9wdGlvbnM9QDB4MTEzZThhM2MwKSBhdCAvVXNlcnMvemVuby93b3JrL3dlYmtpdC9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVy
LmNwcDoxNzkKIzE2IDB4MDAwMDAwMDEwMmY2OWM2YyBpbiBXZWJDb3JlOjpUZXh0dXJlTWFwcGVy
TGF5ZXI6OnBhaW50U2VsZkFuZENoaWxkcmVuV2l0aFJlcGxpY2EgKHRoaXM9MHgxMGQwNjk4MDAs
IG9wdGlvbnM9QDB4MTEzZThhM2MwKSBhdCAvVXNlcnMvemVuby93b3JrL3dlYmtpdC9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDoy
NzAKIzE3IDB4MDAwMDAwMDEwMmY2ODkyOCBpbiBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6
OnBhaW50UmVjdXJzaXZlICh0aGlzPTB4MTBkMDY5ODAwLCBvcHRpb25zPUAweDExM2U4YWQxMCkg
YXQgL1VzZXJzL3plbm8vd29yay93ZWJraXQvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6MzExCiMxOCAweDAwMDAwMDAxMDJmNjk1
MGEgaW4gV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpwYWludFNlbGZBbmRDaGlsZHJlbiAo
dGhpcz0weDEwZDA2OWUwMCwgb3B0aW9ucz1AMHgxMTNlOGFkMTApIGF0IC9Vc2Vycy96ZW5vL3dv
cmsvd2Via2l0L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTGF5ZXIuY3BwOjE4OQojMTkgMHgwMDAwMDAwMTAyZjY5YzZjIGluIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJMYXllcjo6cGFpbnRTZWxmQW5kQ2hpbGRyZW5XaXRoUmVwbGljYSAodGhpcz0w
eDEwZDA2OWUwMCwgb3B0aW9ucz1AMHgxMTNlOGFkMTApIGF0IC9Vc2Vycy96ZW5vL3dvcmsvd2Vi
a2l0L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuY3BwOjI3MAojMjAgMHgwMDAwMDAwMTAyZjY4OTI4IGluIFdlYkNvcmU6OlRleHR1cmVN
YXBwZXJMYXllcjo6cGFpbnRSZWN1cnNpdmUgKHRoaXM9MHgxMGQwNjllMDAsIG9wdGlvbnM9QDB4
MTEzZThiNjYwKSBhdCAvVXNlcnMvemVuby93b3JrL3dlYmtpdC9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcDozMTEKIzIxIDB4MDAw
MDAwMDEwMmY2OTUwYSBpbiBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50U2VsZkFu
ZENoaWxkcmVuICh0aGlzPTB4MTBjOGEyYTAwLCBvcHRpb25zPUAweDExM2U4YjY2MCkgYXQgL1Vz
ZXJzL3plbm8vd29yay93ZWJraXQvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6MTg5CiMyMiAweDAwMDAwMDAxMDJmNjljNmMgaW4g
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpwYWludFNlbGZBbmRDaGlsZHJlbldpdGhSZXBs
aWNhICh0aGlzPTB4MTBjOGEyYTAwLCBvcHRpb25zPUAweDExM2U4YjY2MCkgYXQgL1VzZXJzL3pl
bm8vd29yay93ZWJraXQvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJMYXllci5jcHA6MjcwCiMyMyAweDAwMDAwMDAxMDJmNjg5MjggaW4gV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckxheWVyOjpwYWludFJlY3Vyc2l2ZSAodGhpcz0weDEwYzhhMmEwMCwg
b3B0aW9ucz1AMHgxMTNlOGI3OTApIGF0IC9Vc2Vycy96ZW5vL3dvcmsvd2Via2l0L1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwOjMx
MQojMjQgMHgwMDAwMDAwMTAyZjY4NzE2IGluIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6
cGFpbnQgKHRoaXM9MHgxMGM4YTJhMDApIGF0IC9Vc2Vycy96ZW5vL3dvcmsvd2Via2l0L1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3Bw
OjE0NAojMjUgMHgwMDAwMDAwMTAxOTIwMzA1IGluIFdlYktpdDo6V2ViTGF5ZXJUcmVlUmVuZGVy
ZXI6OnBhaW50VG9DdXJyZW50R0xDb250ZXh0ICh0aGlzPTB4MTBiOTYzNWUwLCBtYXRyaXg9QDB4
MTEzZThiYTE4LCBvcGFjaXR5PTEsIGNsaXBSZWN0PUAweDExM2U4YmEwOCkgYXQgL1VzZXJzL3pl
bm8vd29yay93ZWJraXQvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkxheWVyVHJlZVJlbmRl
cmVyLmNwcDoxMjEKIzI2IDB4MDAwMDAwMDEwMTliYjYyYiBpbiBXZWJLaXQ6OkNvbnRlbnRzU0dO
b2RlOjpyZW5kZXIgKHRoaXM9MHgxMGJiYjI3MzApIGF0IC9Vc2Vycy96ZW5vL3dvcmsvd2Via2l0
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VTR05vZGUuY3BwOjQ4CiMyNyAw
eDAwMDAwMDAxMDAwYTc4NGUgaW4gUVNHRGVmYXVsdFJlbmRlcmVyOjpyZW5kZXJOb2RlcyAoKQoj
MjggMHgwMDAwMDAwMTAwMGE2ZDk0IGluIFFTR0RlZmF1bHRSZW5kZXJlcjo6cmVuZGVyICgpCiMy
OSAweDAwMDAwMDAxMDAwYWNhNDQgaW4gUVNHUmVuZGVyZXI6OnJlbmRlclNjZW5lICgpCiMzMCAw
eDAwMDAwMDAxMDAwYWM5YmMgaW4gUVNHUmVuZGVyZXI6OnJlbmRlclNjZW5lICgpCiMzMSAweDAw
MDAwMDAxMDAwYjg2OTUgaW4gUVNHQ29udGV4dDo6cmVuZGVyTmV4dEZyYW1lICgpCiMzMiAweDAw
MDAwMDAxMDAwZTIzNjcgaW4gUVF1aWNrQ2FudmFzUHJpdmF0ZTo6cmVuZGVyU2NlbmVHcmFwaCAo
KQojMzMgMHgwMDAwMDAwMTAwMWFmNDUwIGluIFFRdWlja1JlbmRlclRocmVhZFNpbmdsZUNvbnRl
eHRXaW5kb3dNYW5hZ2VyOjpydW4gKCkKIzM0IDB4MDAwMDAwMDEwMDk2MjdlZSBpbiBRVGhyZWFk
UHJpdmF0ZTo6c3RhcnQgKCkKIzM1IDB4MDAwMDdmZmY4ZDI4YzhiZiBpbiBfcHRocmVhZF9zdGFy
dCAoKQojMzYgMHgwMDAwN2ZmZjhkMjhmYjc1IGluIHRocmVhZF9zdGFydCAoKQooZ2RiKQ==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133474</attachid>
            <date>2012-03-23 06:43:03 -0700</date>
            <delta_ts>2012-03-23 09:07:12 -0700</delta_ts>
            <desc>patch for review.</desc>
            <filename>82049_20120323-144138.patch</filename>
            <type>text/plain</type>
            <size>5370</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZDM3MTQyLi5lNDc3NGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDMtMjMgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgW1F0XVtXSzJdIE1ha2UgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OmdldFNoYWRlclBy
b2dyYW0oKSBub3QgYmUgYSB0ZW1wbGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgyMDQ5CisKKyAgICAgICAgQ2hhbmdlIHRoZSBnZXRTaGFkZXJQ
cm9ncmFtKCkgZnVuY3Rpb24gdG8gbm90IGJlIGEgdGVtcGxhdGUuCisgICAgICAgIFRoaXMgaXMg
YSB3b3JrYXJvdW5kIGZvciBhIGNvbXBpbGVyIGJ1ZyB0aGF0IGxlYWRzIHRvIGFuIGFzc2VydAor
ICAgICAgICB3aGVuIGNvbXBpbGluZyBpbiBkZWJ1ZyBtb2RlIG9uIG1hYy4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlckdMOjpkcmF3VGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6
OmJlZ2luQ2xpcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJTaGFkZXJNYW5hZ2VyLmg6CisgICAgICAgIChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6Z2V0U2hh
ZGVyUHJvZ3JhbSk6CisgICAgICAgIChUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcik6CisKIDIw
MTItMDMtMjEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQnVpbGQgZml4IGZvciAhRU5BQkxFKElOU1BFQ1RPUikgYWZ0ZXIgcjExMTAwNS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAKaW5kZXggNzI3MDY4ZC4uZWI3ZmUzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHAKQEAgLTMxOSw5ICszMTksOSBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1
cmUodWludDMyX3QgdGV4dHVyZSwgRmxhZ3MgZmxhZ3MsIGNvbnN0IEludFNpemUmCiB7CiAgICAg
UmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBzaGFkZXJJbmZvOwogICAgIGlmICht
YXNrVGV4dHVyZSkKLSAgICAgICAgc2hhZGVySW5mbyA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS50
ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtPFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtT3BhY2l0eUFuZE1hc2s+KCk7CisgICAgICAgIHNoYWRlckluZm8gPSBkYXRh
KCkuc2hhcmVkR0xEYXRhKCkudGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuZ2V0U2hhZGVyUHJv
Z3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6T3BhY2l0eUFuZE1hc2spOwogICAgIGVs
c2UKLSAgICAgICAgc2hhZGVySW5mbyA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS50ZXh0dXJlTWFw
cGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtU2ltcGxlPigpOworICAgICAgICBzaGFkZXJJbmZvID0gZGF0YSgpLnNoYXJlZEdMRGF0YSgp
LnRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmdldFNoYWRlclByb2dyYW0oVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNpbXBsZSk7CiAKICAgICBHTF9DTUQoZ2xVc2VQcm9ncmFtKHNoYWRl
ckluZm8tPmlkKCkpKQogICAgIEdMX0NNRChnbEVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHNoYWRl
ckluZm8tPnZlcnRleEF0dHJpYigpKSkKQEAgLTYyNCw3ICs2MjQsNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJHTDo6YmVnaW5DbGlwKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXgsIGNvbgogCiAgICAgZGF0YSgpLmluaXRpYWxpemVTdGVuY2lsKCk7CiAKLSAgICBSZWZQ
dHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1TaW1wbGU+IHNoYWRlckluZm8gPSBkYXRhKCku
c2hhcmVkR0xEYXRhKCkudGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuZ2V0U2hhZGVyUHJvZ3Jh
bTxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbVNpbXBsZT4oKTsKKyAgICBSZWZQdHI8VGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0+IHNoYWRlckluZm8gPSBkYXRhKCkuc2hhcmVkR0xEYXRhKCku
dGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuZ2V0U2hhZGVyUHJvZ3JhbShUZXh0dXJlTWFwcGVy
U2hhZGVyTWFuYWdlcjo6U2ltcGxlKTsKIAogICAgIEdMX0NNRChnbFVzZVByb2dyYW0oc2hhZGVy
SW5mby0+aWQoKSkpCiAgICAgR0xfQ01EKGdsRW5hYmxlVmVydGV4QXR0cmliQXJyYXkoc2hhZGVy
SW5mby0+dmVydGV4QXR0cmliKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXIuaAppbmRleCA0MjZiOTAzLi5mYTIzYTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXIuaApAQCAtMzMsOCArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXR5cGVkZWYgdm9pZCogU2hhZGVyVHlwZTsKLQogY2xhc3MgQml0bWFwVGV4dHVyZTsKIGNsYXNz
IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOwogCkBAIC00NSwxMyArNDMsNiBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSgpOwogCi0gICAgdGVt
cGxhdGU8Y2xhc3MgVD4KLSAgICBzdGF0aWMgU2hhZGVyVHlwZSBzaGFkZXJUeXBlKCkKLSAgICB7
Ci0gICAgICAgIHN0YXRpYyBpbnQgdHlwZSA9IDA7Ci0gICAgICAgIHJldHVybiAmdHlwZTsKLSAg
ICB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZShmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRt
YXBUZXh0dXJlKikgeyB9CiAgICAgR0xpbnQgbWF0cml4VmFyaWFibGUoKSBjb25zdCB7IHJldHVy
biBtX21hdHJpeFZhcmlhYmxlOyB9CiAgICAgR0xpbnQgc291cmNlTWF0cml4VmFyaWFibGUoKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZU1hdHJpeFZhcmlhYmxlOyB9CkBAIC0xMDEsMjQgKzkyLDQx
IEBAIHByaXZhdGU6CiAKIGNsYXNzIFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyIHsKIHB1Ymxp
YzoKKyAgICBlbnVtIFNoYWRlclR5cGUgeworICAgICAgICBJbnZhbGlkID0gMCwgLy8gSGFzaE1h
cHMgZG8gbm90IGxpa2UgMCBhcyBhIGtleS4KKyAgICAgICAgU2ltcGxlLAorICAgICAgICBPcGFj
aXR5QW5kTWFzaworICAgIH07CisKICAgICBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcigpOwog
ICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyKCk7CiAKLSAgICB0ZW1wbGF0
ZTxjbGFzcyBUPgotICAgIFBhc3NSZWZQdHI8VD4gZ2V0U2hhZGVyUHJvZ3JhbSgpCisgICAgUGFz
c1JlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gZ2V0U2hhZGVyUHJvZ3JhbShTaGFk
ZXJUeXBlIHNoYWRlclR5cGUpCiAgICAgewotICAgICAgICBTaGFkZXJUeXBlIHNoYWRlclR5cGUg
PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6c2hhZGVyVHlwZTxUPigpOworICAgICAgICBp
ZiAoc2hhZGVyVHlwZSA9PSBJbnZhbGlkKQorICAgICAgICAgICAgcmV0dXJuIDA7CisKICAgICAg
ICAgVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1NYXA6Oml0ZXJhdG9yIGl0ID0gbV90ZXh0dXJl
TWFwcGVyU2hhZGVyUHJvZ3JhbU1hcC5maW5kKHNoYWRlclR5cGUpOwogICAgICAgICBpZiAoaXQg
IT0gbV90ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbU1hcC5lbmQoKSkKLSAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxUKj4oaXQtPnNlY29uZC5nZXQoKSk7CisgICAgICAgICAgICByZXR1
cm4gaXQtPnNlY29uZDsKKworICAgICAgICBpZiAoc2hhZGVyVHlwZSA9PSBTaW1wbGUpIHsKKyAg
ICAgICAgICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gdCA9IFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtU2ltcGxlOjpjcmVhdGUoKTsKKyAgICAgICAgICAgIG1fdGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW1NYXAuYWRkKHNoYWRlclR5cGUsIHQpOworICAgICAgICAgICAg
cmV0dXJuIHQ7CisgICAgICAgIH0KKworICAgICAgICBpZiAoc2hhZGVyVHlwZSA9PSBPcGFjaXR5
QW5kTWFzaykgeworICAgICAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFt
PiB0ID0gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1PcGFjaXR5QW5kTWFzazo6Y3JlYXRlKCk7
CisgICAgICAgICAgICBtX3RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtTWFwLmFkZChzaGFkZXJU
eXBlLCB0KTsKKyAgICAgICAgICAgIHJldHVybiB0OworICAgICAgICB9CiAKLSAgICAgICAgUmVm
UHRyPFQ+IHQgPSBUOjpjcmVhdGUoKTsKLSAgICAgICAgbV90ZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbU1hcC5hZGQoc2hhZGVyVHlwZSwgdCk7Ci0gICAgICAgIHJldHVybiB0OworICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFNoYWRlclR5
cGUsIFJlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiBUZXh0dXJlTWFwcGVyU2hh
ZGVyUHJvZ3JhbU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8aW50LCBSZWZQdHI8VGV4dHVyZU1h
cHBlclNoYWRlclByb2dyYW0+ID4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1NYXA7CiAgICAg
VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1NYXAgbV90ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bU1hcDsKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133497</attachid>
            <date>2012-03-23 09:07:12 -0700</date>
            <delta_ts>2012-03-24 01:38:25 -0700</delta_ts>
            <desc>patch for review. - fixed issues as requested.</desc>
            <filename>82049_20120323-170503.patch</filename>
            <type>text/plain</type>
            <size>5412</size>
            <attacher name="Zeno Albisser">zeno</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZDM3MTQyLi5lNDc3NGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTItMDMtMjMgIFplbm8gQWxiaXNzZXIgIDx6ZW5vQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgW1F0XVtXSzJdIE1ha2UgVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXI6OmdldFNoYWRlclBy
b2dyYW0oKSBub3QgYmUgYSB0ZW1wbGF0ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgyMDQ5CisKKyAgICAgICAgQ2hhbmdlIHRoZSBnZXRTaGFkZXJQ
cm9ncmFtKCkgZnVuY3Rpb24gdG8gbm90IGJlIGEgdGVtcGxhdGUuCisgICAgICAgIFRoaXMgaXMg
YSB3b3JrYXJvdW5kIGZvciBhIGNvbXBpbGVyIGJ1ZyB0aGF0IGxlYWRzIHRvIGFuIGFzc2VydAor
ICAgICAgICB3aGVuIGNvbXBpbGluZyBpbiBkZWJ1ZyBtb2RlIG9uIG1hYy4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1h
cHBlckdMOjpkcmF3VGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6
OmJlZ2luQ2xpcCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJTaGFkZXJNYW5hZ2VyLmg6CisgICAgICAgIChUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bSk6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6Z2V0U2hh
ZGVyUHJvZ3JhbSk6CisgICAgICAgIChUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcik6CisKIDIw
MTItMDMtMjEgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgQnVpbGQgZml4IGZvciAhRU5BQkxFKElOU1BFQ1RPUikgYWZ0ZXIgcjExMTAwNS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHTC5jcHAKaW5kZXggNzI3MDY4ZC4uZWI3ZmUzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJH
TC5jcHAKQEAgLTMxOSw5ICszMTksOSBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6ZHJhd1RleHR1
cmUodWludDMyX3QgdGV4dHVyZSwgRmxhZ3MgZmxhZ3MsIGNvbnN0IEludFNpemUmCiB7CiAgICAg
UmVmUHRyPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBzaGFkZXJJbmZvOwogICAgIGlmICht
YXNrVGV4dHVyZSkKLSAgICAgICAgc2hhZGVySW5mbyA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS50
ZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtPFRleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtT3BhY2l0eUFuZE1hc2s+KCk7CisgICAgICAgIHNoYWRlckluZm8gPSBkYXRh
KCkuc2hhcmVkR0xEYXRhKCkudGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuZ2V0U2hhZGVyUHJv
Z3JhbShUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcjo6T3BhY2l0eUFuZE1hc2spOwogICAgIGVs
c2UKLSAgICAgICAgc2hhZGVySW5mbyA9IGRhdGEoKS5zaGFyZWRHTERhdGEoKS50ZXh0dXJlTWFw
cGVyU2hhZGVyTWFuYWdlci5nZXRTaGFkZXJQcm9ncmFtPFRleHR1cmVNYXBwZXJTaGFkZXJQcm9n
cmFtU2ltcGxlPigpOworICAgICAgICBzaGFkZXJJbmZvID0gZGF0YSgpLnNoYXJlZEdMRGF0YSgp
LnRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmdldFNoYWRlclByb2dyYW0oVGV4dHVyZU1hcHBl
clNoYWRlck1hbmFnZXI6OlNpbXBsZSk7CiAKICAgICBHTF9DTUQoZ2xVc2VQcm9ncmFtKHNoYWRl
ckluZm8tPmlkKCkpKQogICAgIEdMX0NNRChnbEVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHNoYWRl
ckluZm8tPnZlcnRleEF0dHJpYigpKSkKQEAgLTYyNCw3ICs2MjQsNyBAQCB2b2lkIFRleHR1cmVN
YXBwZXJHTDo6YmVnaW5DbGlwKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdN
YXRyaXgsIGNvbgogCiAgICAgZGF0YSgpLmluaXRpYWxpemVTdGVuY2lsKCk7CiAKLSAgICBSZWZQ
dHI8VGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1TaW1wbGU+IHNoYWRlckluZm8gPSBkYXRhKCku
c2hhcmVkR0xEYXRhKCkudGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuZ2V0U2hhZGVyUHJvZ3Jh
bTxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbVNpbXBsZT4oKTsKKyAgICBSZWZQdHI8VGV4dHVy
ZU1hcHBlclNoYWRlclByb2dyYW0+IHNoYWRlckluZm8gPSBkYXRhKCkuc2hhcmVkR0xEYXRhKCku
dGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuZ2V0U2hhZGVyUHJvZ3JhbShUZXh0dXJlTWFwcGVy
U2hhZGVyTWFuYWdlcjo6U2ltcGxlKTsKIAogICAgIEdMX0NNRChnbFVzZVByb2dyYW0oc2hhZGVy
SW5mby0+aWQoKSkpCiAgICAgR0xfQ01EKGdsRW5hYmxlVmVydGV4QXR0cmliQXJyYXkoc2hhZGVy
SW5mby0+dmVydGV4QXR0cmliKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFn
ZXIuaAppbmRleCA0MjZiOTAzLi45NGE4NjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNoYWRlck1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlclNo
YWRlck1hbmFnZXIuaApAQCAtMzMsOCArMzMsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXR5cGVkZWYgdm9pZCogU2hhZGVyVHlwZTsKLQogY2xhc3MgQml0bWFwVGV4dHVyZTsKIGNsYXNz
IFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyOwogCkBAIC00NSwxMyArNDMsNiBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbSgpOwogCi0gICAgdGVt
cGxhdGU8Y2xhc3MgVD4KLSAgICBzdGF0aWMgU2hhZGVyVHlwZSBzaGFkZXJUeXBlKCkKLSAgICB7
Ci0gICAgICAgIHN0YXRpYyBpbnQgdHlwZSA9IDA7Ci0gICAgICAgIHJldHVybiAmdHlwZTsKLSAg
ICB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZShmbG9hdCBvcGFjaXR5LCBjb25zdCBCaXRt
YXBUZXh0dXJlKikgeyB9CiAgICAgR0xpbnQgbWF0cml4VmFyaWFibGUoKSBjb25zdCB7IHJldHVy
biBtX21hdHJpeFZhcmlhYmxlOyB9CiAgICAgR0xpbnQgc291cmNlTWF0cml4VmFyaWFibGUoKSBj
b25zdCB7IHJldHVybiBtX3NvdXJjZU1hdHJpeFZhcmlhYmxlOyB9CkBAIC0xMDEsMjQgKzkyLDM2
IEBAIHByaXZhdGU6CiAKIGNsYXNzIFRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyIHsKIHB1Ymxp
YzoKKyAgICBlbnVtIFNoYWRlclR5cGUgeworICAgICAgICBJbnZhbGlkID0gMCwgLy8gSGFzaE1h
cHMgZG8gbm90IGxpa2UgMCBhcyBhIGtleS4KKyAgICAgICAgU2ltcGxlLAorICAgICAgICBPcGFj
aXR5QW5kTWFzaworICAgIH07CisKICAgICBUZXh0dXJlTWFwcGVyU2hhZGVyTWFuYWdlcigpOwog
ICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJTaGFkZXJNYW5hZ2VyKCk7CiAKLSAgICB0ZW1wbGF0
ZTxjbGFzcyBUPgotICAgIFBhc3NSZWZQdHI8VD4gZ2V0U2hhZGVyUHJvZ3JhbSgpCisgICAgUGFz
c1JlZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gZ2V0U2hhZGVyUHJvZ3JhbShTaGFk
ZXJUeXBlIHNoYWRlclR5cGUpCiAgICAgewotICAgICAgICBTaGFkZXJUeXBlIHNoYWRlclR5cGUg
PSBUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbTo6c2hhZGVyVHlwZTxUPigpOwotICAgICAgICBU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RleHR1cmVNYXBw
ZXJTaGFkZXJQcm9ncmFtTWFwLmZpbmQoc2hhZGVyVHlwZSk7Ci0gICAgICAgIGlmIChpdCAhPSBt
X3RleHR1cmVNYXBwZXJTaGFkZXJQcm9ncmFtTWFwLmVuZCgpKQotICAgICAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFQqPihpdC0+c2Vjb25kLmdldCgpKTsKKyAgICAgICAgUmVmUHRyPFRleHR1
cmVNYXBwZXJTaGFkZXJQcm9ncmFtPiBwcm9ncmFtOworICAgICAgICBpZiAoc2hhZGVyVHlwZSA9
PSBJbnZhbGlkKQorICAgICAgICAgICAgcmV0dXJuIHByb2dyYW07CiAKLSAgICAgICAgUmVmUHRy
PFQ+IHQgPSBUOjpjcmVhdGUoKTsKLSAgICAgICAgbV90ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3Jh
bU1hcC5hZGQoc2hhZGVyVHlwZSwgdCk7Ci0gICAgICAgIHJldHVybiB0OworICAgICAgICBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RleHR1cmVNYXBwZXJT
aGFkZXJQcm9ncmFtTWFwLmZpbmQoc2hhZGVyVHlwZSk7CisgICAgICAgIHN3aXRjaCAoc2hhZGVy
VHlwZSkgeworICAgICAgICBjYXNlIFNpbXBsZToKKyAgICAgICAgICAgIHByb2dyYW0gPSBUZXh0
dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbVNpbXBsZTo6Y3JlYXRlKCk7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY2FzZSBPcGFjaXR5QW5kTWFzazoKKyAgICAgICAgICAgIHByb2dyYW0gPSBU
ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbU9wYWNpdHlBbmRNYXNrOjpjcmVhdGUoKTsKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIG1fdGV4dHVyZU1hcHBlclNoYWRlclBy
b2dyYW1NYXAuYWRkKHNoYWRlclR5cGUsIHByb2dyYW0pOworICAgICAgICByZXR1cm4gcHJvZ3Jh
bTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgdHlwZWRlZiBIYXNoTWFwPFNoYWRlclR5cGUsIFJl
ZlB0cjxUZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbT4gPiBUZXh0dXJlTWFwcGVyU2hhZGVyUHJv
Z3JhbU1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8U2hhZGVyVHlwZSwgUmVmUHRyPFRleHR1cmVN
YXBwZXJTaGFkZXJQcm9ncmFtPiwgRGVmYXVsdEhhc2g8aW50Pjo6SGFzaCwgSGFzaFRyYWl0czxp
bnQ+ID4gVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW1NYXA7CiAgICAgVGV4dHVyZU1hcHBlclNo
YWRlclByb2dyYW1NYXAgbV90ZXh0dXJlTWFwcGVyU2hhZGVyUHJvZ3JhbU1hcDsKIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>