<?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>134594</bug_id>
          
          <creation_ts>2014-07-03 07:41:52 -0700</creation_ts>
          <short_desc>[CoordinatedGraphics] Use the C++11 syntax to clean-up for loops</short_desc>
          <delta_ts>2014-07-04 15:26:39 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>Linux</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="Hunseop Jeong">hs85.jeong</reporter>
          <assigned_to name="Hunseop Jeong">hs85.jeong</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1020254</commentid>
    <comment_count>0</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2014-07-03 07:41:52 -0700</bug_when>
    <thetext>Start using auto keyword for loops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020257</commentid>
    <comment_count>1</comment_count>
      <attachid>234343</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2014-07-03 07:59:29 -0700</bug_when>
    <thetext>Created attachment 234343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020292</commentid>
    <comment_count>2</comment_count>
      <attachid>234343</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-07-03 10:23:01 -0700</bug_when>
    <thetext>Comment on attachment 234343
Patch

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

If you’re going to touch all these loops, then you should clean them up even more using C++11 syntax and the functions like keys() and values() for simple iterations of maps. Example:

&gt; Source/WebCore/platform/graphics/TiledBackingStore.cpp:118
&gt; -    TileMap::iterator end = m_tiles.end();
&gt; -    for (TileMap::iterator it = m_tiles.begin(); it != end; ++it) {
&gt; +    for (auto it = m_tiles.begin(), end = m_tiles.end(); it != end; ++it) {
&gt;          if (!it-&gt;value-&gt;isDirty())
&gt;              continue;
&gt;          dirtyTiles.append(it-&gt;value);

for (auto&amp; tile : m_tiles.values()) {
        if (tile-&gt;isDirty())
            dirtyTiles.append(tile);
    }

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:239
&gt; +    for (auto iter = m_imageBackings.begin(), end = m_imageBackings.end(); iter != end; ++iter)
&gt;          iter-&gt;value-&gt;update();

for (auto&amp; backing : m_imageBackings.values())
        backing-&gt;update();

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:82
&gt; +    for (auto it = m_tiles.begin(), end = m_tiles.end(); it != end; ++it)
&gt;          m_tilesToRemove.add(it-&gt;key);

for (auto&amp; key : m_tiles.keys())
        m_tilesToRemove.add(key);

&gt; Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:563
&gt; +    for (auto it = m_backingStoresWithPendingBuffers.begin(), end = m_backingStoresWithPendingBuffers.end(); it != end; ++it)
&gt;          (*it)-&gt;commitTileOperations(m_textureMapper.get());

for (auto&amp; store : m_backingStoresWithPendingBuffers)
        store-&gt;commitTileOperations(m_textureMapper.get());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020429</commentid>
    <comment_count>3</comment_count>
      <attachid>234387</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2014-07-03 18:47:01 -0700</bug_when>
    <thetext>Created attachment 234387
I used the more C++11 syntax to clean-up for loops by your guide. Thanks Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020538</commentid>
    <comment_count>4</comment_count>
      <attachid>234387</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-04 15:26:33 -0700</bug_when>
    <thetext>Comment on attachment 234387
I used the more C++11 syntax to clean-up for loops by your guide. Thanks Darin.

Clearing flags on attachment: 234387

Committed r170813: &lt;http://trac.webkit.org/changeset/170813&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020539</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-04 15:26:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234343</attachid>
            <date>2014-07-03 07:59:29 -0700</date>
            <delta_ts>2014-07-03 18:46:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134594-20140703235910.patch</filename>
            <type>text/plain</type>
            <size>11188</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwNzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA0YmEyYjRmOWE1ZGQ4
OWIzMDRiNGQ2YzQ4ODlkYzA5NzJjMGJhYi4uOWE1ZjUxYzQxNDZhOTJlYzcxOGVjMDAyYTI3NjEy
YmI5NmYyYmJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA3LTAzICBIdW5z
ZW9wIEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbQ29vcmRpbmF0
ZWRHcmFwaGljc10gVXNlIGF1dG8ga2V5d29yZCB0byBjbGVhbi11cCBmb3IgbG9vcHMgCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQ1OTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCB1c2luZyBh
dXRvIGtleXdvcmQgZm9yIGxvb3BzLgorCisgICAgICAgIE5vIGNoYW5nZSBpbiBmdW5jdGlvbmFs
aXR5LCBubyBuZXcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJh
Y2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6dXBk
YXRlVGlsZUJ1ZmZlcnMpOgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OnJl
c2l6ZUVkZ2VUaWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6c2V0
S2VlcFJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6On5Db21wb3NpdGluZ0Nvb3JkaW5hdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OmZsdXNoUGVuZGluZ0ltYWdlQmFja2luZ0NoYW5n
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6c2V0VmlzaWJs
ZUNvbnRlbnRzUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5hdG9y
OjpwdXJnZUJhY2tpbmdTdG9yZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cmVtb3ZlQWxsVGlsZXMpOgorICAgICAgICAo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpkcmF3Qm9yZGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpkcmF3UmVwYWludENv
dW50ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OmNvbW1p
dFRpbGVPcGVyYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycyk6
CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNvbW1pdFBlbmRp
bmdCYWNraW5nU3RvcmVPcGVyYXRpb25zKToKKwogMjAxNC0wNy0wMiAgSm9uIEhvbmV5Y3V0dCAg
PGpob25leWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92aW5nIGFuIGVsZW1lbnQgd2l0
aCBDU1MgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoIGJyZWFrcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3Bw
CmluZGV4IDBiZDk0NTg4NGY0YTk5ZWVhMmQ0ZmExYzBjZWNiZTBkNTE1MjU5ODcuLjMwZDQwNjI3
YjRiY2FlNDYxM2UxMzY0ZGE1NWRiM2RmOTdmYzUxMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTExMiw4
ICsxMTIsNyBAQCB2b2lkIFRpbGVkQmFja2luZ1N0b3JlOjp1cGRhdGVUaWxlQnVmZmVycygpCiAK
ICAgICBWZWN0b3I8SW50UmVjdD4gcGFpbnRlZEFyZWE7CiAgICAgVmVjdG9yPFJlZlB0cjxUaWxl
PiA+IGRpcnR5VGlsZXM7Ci0gICAgVGlsZU1hcDo6aXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQo
KTsKLSAgICBmb3IgKFRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpIHsKKyAgICBmb3IgKGF1dG8gaXQgPSBtX3RpbGVzLmJlZ2luKCksIGVuZCA9
IG1fdGlsZXMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBpZiAoIWl0LT52YWx1
ZS0+aXNEaXJ0eSgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGRpcnR5VGlsZXMu
YXBwZW5kKGl0LT52YWx1ZSk7CkBAIC00NDEsOCArNDQwLDcgQEAgYm9vbCBUaWxlZEJhY2tpbmdT
dG9yZTo6cmVzaXplRWRnZVRpbGVzKCkKIHsKICAgICBib29sIHdhc1Jlc2l6ZWQgPSBmYWxzZTsK
ICAgICBWZWN0b3I8VGlsZTo6Q29vcmRpbmF0ZT4gdGlsZXNUb1JlbW92ZTsKLSAgICBUaWxlTWFw
OjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoVGlsZU1hcDo6aXRlcmF0
b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgIGZvciAoYXV0
byBpdCA9IG1fdGlsZXMuYmVnaW4oKSwgZW5kID0gbV90aWxlcy5lbmQoKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CiAgICAgICAgIFRpbGU6OkNvb3JkaW5hdGUgdGlsZUNvb3JkaW5hdGUgPSBpdC0+dmFs
dWUtPmNvb3JkaW5hdGUoKTsKICAgICAgICAgSW50UmVjdCB0aWxlUmVjdCA9IGl0LT52YWx1ZS0+
cmVjdCgpOwogICAgICAgICBJbnRSZWN0IGV4cGVjdGVkVGlsZVJlY3QgPSB0aWxlUmVjdEZvckNv
b3JkaW5hdGUodGlsZUNvb3JkaW5hdGUpOwpAQCAtNDY2LDggKzQ2NCw3IEBAIHZvaWQgVGlsZWRC
YWNraW5nU3RvcmU6OnNldEtlZXBSZWN0KGNvbnN0IEludFJlY3QmIGtlZXBSZWN0KQogICAgIEZs
b2F0UmVjdCBrZWVwUmVjdEYgPSBrZWVwUmVjdDsKIAogICAgIFZlY3RvcjxUaWxlOjpDb29yZGlu
YXRlPiB0b1JlbW92ZTsKLSAgICBUaWxlTWFwOjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgp
OwotICAgIGZvciAoVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkgeworICAgIGZvciAoYXV0byBpdCA9IG1fdGlsZXMuYmVnaW4oKSwgZW5kID0g
bV90aWxlcy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIFRpbGU6OkNvb3JkaW5h
dGUgY29vcmRpbmF0ZSA9IGl0LT52YWx1ZS0+Y29vcmRpbmF0ZSgpOwogICAgICAgICBGbG9hdFJl
Y3QgdGlsZVJlY3QgPSBpdC0+dmFsdWUtPnJlY3QoKTsKICAgICAgICAgaWYgKCF0aWxlUmVjdC5p
bnRlcnNlY3RzKGtlZXBSZWN0RikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29t
cG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNTJiMWUxZDI4YjA1NWQ5ZTIyZWM0MzM1NjI0
YzQ3NzE1YWRlNjlmNS4uZGQwM2UwZWMyNzFlNmM5NjM1NjYzZjJhMGIyOTE3ZWRiNDgyMTJmZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGluZ0Nvb3JkaW5hdG9y
LmNwcApAQCAtNDcsOCArNDcsNyBAQCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjp+Q29tcG9zaXRp
bmdDb29yZGluYXRvcigpCiB7CiAgICAgcHVyZ2VCYWNraW5nU3RvcmVzKCk7CiAKLSAgICBMYXll
ck1hcDo6aXRlcmF0b3IgZW5kID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmVuZCgpOwotICAgIGZvciAo
TGF5ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkKKyAgICBmb3IgKGF1dG8gaXQgPSBtX3JlZ2lzdGVyZWRMYXllcnMuYmVnaW4o
KSwgZW5kID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAg
ICAgIGl0LT52YWx1ZS0+c2V0Q29vcmRpbmF0b3IoMCk7CiB9CiAKQEAgLTIzNiw4ICsyMzUsNyBA
QCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnJlbW92ZUltYWdlQmFja2luZyhDb29yZGlu
YXRlZEltYWdlQmFja2luZ0lEIGltYWdlSQogCiB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
OmZsdXNoUGVuZGluZ0ltYWdlQmFja2luZ0NoYW5nZXMoKQogewotICAgIEltYWdlQmFja2luZ01h
cDo6aXRlcmF0b3IgZW5kID0gbV9pbWFnZUJhY2tpbmdzLmVuZCgpOwotICAgIGZvciAoSW1hZ2VC
YWNraW5nTWFwOjppdGVyYXRvciBpdGVyID0gbV9pbWFnZUJhY2tpbmdzLmJlZ2luKCk7IGl0ZXIg
IT0gZW5kOyArK2l0ZXIpCisgICAgZm9yIChhdXRvIGl0ZXIgPSBtX2ltYWdlQmFja2luZ3MuYmVn
aW4oKSwgZW5kID0gbV9pbWFnZUJhY2tpbmdzLmVuZCgpOyBpdGVyICE9IGVuZDsgKytpdGVyKQog
ICAgICAgICBpdGVyLT52YWx1ZS0+dXBkYXRlKCk7CiB9CiAKQEAgLTMxMyw4ICszMTEsNyBAQCB2
b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LCBjb25zdAogICAgIGlmIChjb250ZW50c1JlY3REaWRDaGFuZ2UpIHsK
ICAgICAgICAgbV92aXNpYmxlQ29udGVudHNSZWN0ID0gcmVjdDsKIAotICAgICAgICBMYXllck1h
cDo6aXRlcmF0b3IgZW5kID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmVuZCgpOwotICAgICAgICBmb3Ig
KExheWVyTWFwOjppdGVyYXRvciBpdCA9IG1fcmVnaXN0ZXJlZExheWVycy5iZWdpbigpOyBpdCAh
PSBlbmQ7ICsraXQpCisgICAgICAgIGZvciAoYXV0byBpdCA9IG1fcmVnaXN0ZXJlZExheWVycy5i
ZWdpbigpLCBlbmQgPSBtX3JlZ2lzdGVyZWRMYXllcnMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkK
ICAgICAgICAgICAgIGl0LT52YWx1ZS0+c2V0TmVlZHNWaXNpYmxlUmVjdEFkanVzdG1lbnQoKTsK
ICAgICB9CiAKQEAgLTM2Nyw4ICszNjQsNyBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6
OnB1cmdlQmFja2luZ1N0b3JlcygpCiB7CiAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IHB1cmdp
bmdUb2dnbGUobV9pc1B1cmdpbmcsIHRydWUpOwogCi0gICAgTGF5ZXJNYXA6Oml0ZXJhdG9yIGVu
ZCA9IG1fcmVnaXN0ZXJlZExheWVycy5lbmQoKTsKLSAgICBmb3IgKExheWVyTWFwOjppdGVyYXRv
ciBpdCA9IG1fcmVnaXN0ZXJlZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAg
Zm9yIChhdXRvIGl0ID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmJlZ2luKCksIGVuZCA9IG1fcmVnaXN0
ZXJlZExheWVycy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KQogICAgICAgICBpdC0+dmFsdWUtPnB1
cmdlQmFja2luZ1N0b3JlcygpOwogCiAgICAgbV9pbWFnZUJhY2tpbmdzLmNsZWFyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcApp
bmRleCAyNzM3ZWMxMjUyNzUyZGZlYTY4ZGI4NTk4OGFlYWFhNzY1MzAxZWZiLi4yNWJiODUwMGI3
ZjY4N2U5ZTNhNGY1ODk0ZmJlNzM2ZTBmN2IwMTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTc4LDggKzc4LDcgQEAg
dm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cmVtb3ZlVGlsZSh1aW50MzJfdCBpZCkKIAog
dm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cmVtb3ZlQWxsVGlsZXMoKQogewotICAgIENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQo
KTsKLSAgICBmb3IgKENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQg
PSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICBmb3IgKGF1dG8gaXQgPSBt
X3RpbGVzLmJlZ2luKCksIGVuZCA9IG1fdGlsZXMuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkKICAg
ICAgICAgbV90aWxlc1RvUmVtb3ZlLmFkZChpdC0+a2V5KTsKIH0KIApAQCAtMTI4LDkgKzEyNyw4
IEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRl
eHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsCiAgICAgVmVjdG9yPFRleHR1cmVNYXBwZXJUaWxl
Kj4gcHJldmlvdXNUaWxlc1RvUGFpbnQ7CiAKICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgZXZl
cnkgdGltZSB3ZSBwYWludCwgaW4gY2FzZSB0aGUgb3BhY2l0eSBoYXMgY2hhbmdlZC4KLSAgICBD
b29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5k
KCk7CiAgICAgRmxvYXRSZWN0IGNvdmVyZWRSZWN0OwotICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNr
aW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7CisgICAgZm9yIChhdXRvIGl0ID0gbV90aWxlcy5iZWdpbigpLCBlbmQgPSBtX3Rp
bGVzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmVUaWxlJiB0aWxlID0gaXQtPnZhbHVlOwogICAgICAgICBpZiAoIXRpbGUudGV4dHVyZSgp
KQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xNjAsMTYgKzE1OCwxNCBAQCB2b2lkIENvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlOjpwYWludFRvVGV4dHVyZU1hcHBlcihUZXh0dXJlTWFwcGVyKiB0
ZXh0dXJlTWFwcGVyLAogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6ZHJhd0JvcmRlcihU
ZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBjb25zdCBDb2xvciYgYm9yZGVyQ29sb3IsIGZs
b2F0IGJvcmRlcldpZHRoLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCiB7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
YWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3Qo
dGFyZ2V0UmVjdCk7Ci0gICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRv
ciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVU
aWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQor
ICAgIGZvciAoYXV0byBpdCA9IG1fdGlsZXMuYmVnaW4oKSwgZW5kID0gbV90aWxlcy5lbmQoKTsg
aXQgIT0gZW5kOyArK2l0KQogICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3Qm9yZGVyKGJvcmRl
ckNvbG9yLCBib3JkZXJXaWR0aCwgaXQtPnZhbHVlLnJlY3QoKSwgYWRqdXN0ZWRUcmFuc2Zvcm0p
OwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpkcmF3UmVwYWludENvdW50ZXIo
VGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgaW50IHJlcGFpbnRDb3VudCwgY29uc3QgQ29s
b3ImIGJvcmRlckNvbG9yLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFRyYW5z
Zm9ybWF0aW9uTWF0cml4JiB0cmFuc2Zvcm0pCiB7CiAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXgg
YWRqdXN0ZWRUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0gKiBhZGp1c3RlZFRyYW5zZm9ybUZvclJlY3Qo
dGFyZ2V0UmVjdCk7Ci0gICAgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRv
ciBlbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVU
aWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQor
ICAgIGZvciAoYXV0byBpdCA9IG1fdGlsZXMuYmVnaW4oKSwgZW5kID0gbV90aWxlcy5lbmQoKTsg
aXQgIT0gZW5kOyArK2l0KQogICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3TnVtYmVyKHJlcGFp
bnRDb3VudCwgYm9yZGVyQ29sb3IsIGl0LT52YWx1ZS5yZWN0KCkubG9jYXRpb24oKSwgYWRqdXN0
ZWRUcmFuc2Zvcm0pOwogfQogCkBAIC0xODAsMTMgKzE3NiwxMSBAQCB2b2lkIENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlOjpjb21taXRUaWxlT3BlcmF0aW9ucyhUZXh0dXJlTWFwcGVyKiB0ZXh0dXJl
TWFwcGVyKQogICAgICAgICBtX3BlbmRpbmdTaXplID0gRmxvYXRTaXplKCk7CiAgICAgfQogCi0g
ICAgSGFzaFNldDx1aW50MzJfdD46Oml0ZXJhdG9yIHRpbGVzVG9SZW1vdmVFbmQgPSBtX3RpbGVz
VG9SZW1vdmUuZW5kKCk7Ci0gICAgZm9yIChIYXNoU2V0PHVpbnQzMl90Pjo6aXRlcmF0b3IgaXQg
PSBtX3RpbGVzVG9SZW1vdmUuYmVnaW4oKTsgaXQgIT0gdGlsZXNUb1JlbW92ZUVuZDsgKytpdCkK
KyAgICBmb3IgKGF1dG8gaXQgPSBtX3RpbGVzVG9SZW1vdmUuYmVnaW4oKSwgdGlsZXNUb1JlbW92
ZUVuZCA9IG1fdGlsZXNUb1JlbW92ZS5lbmQoKTsgaXQgIT0gdGlsZXNUb1JlbW92ZUVuZDsgKytp
dCkKICAgICAgICAgbV90aWxlcy5yZW1vdmUoKml0KTsKICAgICBtX3RpbGVzVG9SZW1vdmUuY2xl
YXIoKTsKIAotICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgdGls
ZXNFbmQgPSBtX3RpbGVzLmVuZCgpOwotICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVU
aWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gdGlsZXNFbmQ7ICsr
aXQpCisgICAgZm9yIChhdXRvIGl0ID0gbV90aWxlcy5iZWdpbigpLCB0aWxlc0VuZCA9IG1fdGls
ZXMuZW5kKCk7IGl0ICE9IHRpbGVzRW5kOyArK2l0KQogICAgICAgICBpdC0+dmFsdWUuc3dhcEJ1
ZmZlcnModGV4dHVyZU1hcHBlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggMzU3N2ZhOGMyMDIyYmRmNGY5
MzdhMDYwYWVmYmJmMTM3YWExNDNhNi4uZmJhYmZlMzlhMjY5MGMyYmVmMDM2MmUyNTkwZjM2YTI2
YmQ4NDU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5jcHAKQEAgLTE2MCw4ICsxNjAsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpCiAgICAgLy8gdGhlbSBi
eSB0aGUgZGVsdGEgYmV0d2VlbiB0aGUgY3VycmVudCBwb3NpdGlvbiBhbmQgdGhlIHBvc2l0aW9u
IG9mIHRoZSB2aWV3cG9ydCB1c2VkIGZvciB0aGUgbGFzdCBsYXlvdXQuCiAgICAgRmxvYXRTaXpl
IGRlbHRhID0gbV9zY3JvbGxQb3NpdGlvbiAtIG1fcmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0
aW9uOwogCi0gICAgTGF5ZXJSYXdQdHJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fZml4ZWRMYXllcnMu
ZW5kKCk7Ci0gICAgZm9yIChMYXllclJhd1B0ck1hcDo6aXRlcmF0b3IgaXQgPSBtX2ZpeGVkTGF5
ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICBmb3IgKGF1dG8gaXQgPSBtX2ZpeGVk
TGF5ZXJzLmJlZ2luKCksIGVuZCA9IG1fZml4ZWRMYXllcnMuZW5kKCk7IGl0ICE9IGVuZDsgKytp
dCkKICAgICAgICAgaXQtPnZhbHVlLT5zZXRTY3JvbGxQb3NpdGlvbkRlbHRhSWZOZWVkZWQoZGVs
dGEpOwogfQogCkBAIC01NjAsOCArNTU5LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmU6OnJlbW92ZVJlbGVhc2VkSW1hZ2VCYWNraW5nc0lmTmVlZGVkKCkKIAogdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU6OmNvbW1pdFBlbmRpbmdCYWNraW5nU3RvcmVPcGVyYXRpb25zKCkK
IHsKLSAgICBIYXNoU2V0PFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gPjo6aXRlcmF0
b3IgZW5kID0gbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzLmVuZCgpOwotICAgIGZv
ciAoSGFzaFNldDxSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+ID46Oml0ZXJhdG9yIGl0
ID0gbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsg
KytpdCkKKyAgICBmb3IgKGF1dG8gaXQgPSBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZl
cnMuYmVnaW4oKSwgZW5kID0gbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzLmVuZCgp
OyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAgICgqaXQpLT5jb21taXRUaWxlT3BlcmF0aW9ucyht
X3RleHR1cmVNYXBwZXIuZ2V0KCkpOwogCiAgICAgbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdC
dWZmZXJzLmNsZWFyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234387</attachid>
            <date>2014-07-03 18:47:01 -0700</date>
            <delta_ts>2014-07-04 15:26:33 -0700</delta_ts>
            <desc>I used the more C++11 syntax to clean-up for loops by your guide. Thanks Darin.</desc>
            <filename>bug-134594-20140704104642.patch</filename>
            <type>text/plain</type>
            <size>12502</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwNzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA0YmEyYjRmOWE1ZGQ4
OWIzMDRiNGQ2YzQ4ODlkYzA5NzJjMGJhYi4uNjQxNmNkNDU5N2U3OTVjOWM2OTRjMzFkMzMzOGY3
ZWJkMWRkMzQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA3LTAzICBIdW5z
ZW9wIEplb25nICA8aHM4NS5qZW9uZ0BzYW1zdW5nLmNvbT4KKworICAgICAgICBbQ29vcmRpbmF0
ZWRHcmFwaGljc10gVXNlIHRoZSBDKysxMSBzeW50YXggdG8gY2xlYW4tdXAgZm9yIGxvb3BzIAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM0NTk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29udmVydCBh
IGNvdXBsZSBvZiBsb29wcyB0byByYW5nZS1iYXNlZCBmb3IgCisKKyAgICAgICAgTm8gY2hhbmdl
IGluIGZ1bmN0aW9uYWxpdHksIG5vIG5ldyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkQmFj
a2luZ1N0b3JlOjp1cGRhdGVUaWxlQnVmZmVycyk6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJh
Y2tpbmdTdG9yZTo6cmVzaXplRWRnZVRpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkQmFj
a2luZ1N0b3JlOjpzZXRLZWVwUmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6fkNvbXBvc2l0aW5nQ29vcmRpbmF0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRpbmdDb29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nSW1h
Z2VCYWNraW5nQ2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpDb21wb3NpdGluZ0Nvb3JkaW5h
dG9yOjpzZXRWaXNpYmxlQ29udGVudHNSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0
aW5nQ29vcmRpbmF0b3I6OnB1cmdlQmFja2luZ1N0b3Jlcyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpyZW1vdmVBbGxUaWxl
cyk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1Rl
eHR1cmVNYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6
OmRyYXdCb3JkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6
OmRyYXdSZXBhaW50Q291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEJhY2tp
bmdTdG9yZTo6Y29tbWl0VGlsZU9wZXJhdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZv
ckZpeGVkTGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6Y29tbWl0UGVuZGluZ0JhY2tpbmdTdG9yZU9wZXJhdGlvbnMpOgorCiAyMDE0LTA3LTAyICBK
b24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3Zpbmcg
YW4gZWxlbWVudCB3aXRoIENTUyAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2ggYnJl
YWtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJh
Y2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJh
Y2tpbmdTdG9yZS5jcHAKaW5kZXggMGJkOTQ1ODg0ZjRhOTllZWEyZDRmYTFjMGNlY2JlMGQ1MTUy
NTk4Ny4uZGJlMmRiOGMzM2I4NzdkOTkwY2U2OThhMGU5NjE0YmUyMTUyMzI4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3Jl
LmNwcApAQCAtMTEyLDExICsxMTIsMTAgQEAgdm9pZCBUaWxlZEJhY2tpbmdTdG9yZTo6dXBkYXRl
VGlsZUJ1ZmZlcnMoKQogCiAgICAgVmVjdG9yPEludFJlY3Q+IHBhaW50ZWRBcmVhOwogICAgIFZl
Y3RvcjxSZWZQdHI8VGlsZT4gPiBkaXJ0eVRpbGVzOwotICAgIFRpbGVNYXA6Oml0ZXJhdG9yIGVu
ZCA9IG1fdGlsZXMuZW5kKCk7Ci0gICAgZm9yIChUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGls
ZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIGlmICghaXQtPnZhbHVlLT5p
c0RpcnR5KCkpCisgICAgZm9yIChhdXRvJiB0aWxlIDogbV90aWxlcy52YWx1ZXMoKSkgeworICAg
ICAgICBpZiAoIXRpbGUtPmlzRGlydHkoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICBkaXJ0eVRpbGVzLmFwcGVuZChpdC0+dmFsdWUpOworICAgICAgICBkaXJ0eVRpbGVzLmFwcGVu
ZCh0aWxlKTsKICAgICB9CiAKICAgICBpZiAoZGlydHlUaWxlcy5pc0VtcHR5KCkpIHsKQEAgLTQ0
MSwxNSArNDQwLDE0IEBAIGJvb2wgVGlsZWRCYWNraW5nU3RvcmU6OnJlc2l6ZUVkZ2VUaWxlcygp
CiB7CiAgICAgYm9vbCB3YXNSZXNpemVkID0gZmFsc2U7CiAgICAgVmVjdG9yPFRpbGU6OkNvb3Jk
aW5hdGU+IHRpbGVzVG9SZW1vdmU7Ci0gICAgVGlsZU1hcDo6aXRlcmF0b3IgZW5kID0gbV90aWxl
cy5lbmQoKTsKLSAgICBmb3IgKFRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgVGlsZTo6Q29vcmRpbmF0ZSB0aWxlQ29vcmRp
bmF0ZSA9IGl0LT52YWx1ZS0+Y29vcmRpbmF0ZSgpOwotICAgICAgICBJbnRSZWN0IHRpbGVSZWN0
ID0gaXQtPnZhbHVlLT5yZWN0KCk7CisgICAgZm9yIChhdXRvJiB0aWxlIDogbV90aWxlcy52YWx1
ZXMoKSkgeworICAgICAgICBUaWxlOjpDb29yZGluYXRlIHRpbGVDb29yZGluYXRlID0gdGlsZS0+
Y29vcmRpbmF0ZSgpOworICAgICAgICBJbnRSZWN0IHRpbGVSZWN0ID0gdGlsZS0+cmVjdCgpOwog
ICAgICAgICBJbnRSZWN0IGV4cGVjdGVkVGlsZVJlY3QgPSB0aWxlUmVjdEZvckNvb3JkaW5hdGUo
dGlsZUNvb3JkaW5hdGUpOwogICAgICAgICBpZiAoZXhwZWN0ZWRUaWxlUmVjdC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICB0aWxlc1RvUmVtb3ZlLmFwcGVuZCh0aWxlQ29vcmRpbmF0ZSk7CiAgICAg
ICAgIGVsc2UgaWYgKGV4cGVjdGVkVGlsZVJlY3QgIT0gdGlsZVJlY3QpIHsKLSAgICAgICAgICAg
IGl0LT52YWx1ZS0+cmVzaXplKGV4cGVjdGVkVGlsZVJlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAg
IHRpbGUtPnJlc2l6ZShleHBlY3RlZFRpbGVSZWN0LnNpemUoKSk7CiAgICAgICAgICAgICB3YXNS
ZXNpemVkID0gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTQ2NiwxMCArNDY0LDkgQEAgdm9p
ZCBUaWxlZEJhY2tpbmdTdG9yZTo6c2V0S2VlcFJlY3QoY29uc3QgSW50UmVjdCYga2VlcFJlY3Qp
CiAgICAgRmxvYXRSZWN0IGtlZXBSZWN0RiA9IGtlZXBSZWN0OwogCiAgICAgVmVjdG9yPFRpbGU6
OkNvb3JkaW5hdGU+IHRvUmVtb3ZlOwotICAgIFRpbGVNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fdGls
ZXMuZW5kKCk7Ci0gICAgZm9yIChUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgIFRpbGU6OkNvb3JkaW5hdGUgY29vcmRpbmF0
ZSA9IGl0LT52YWx1ZS0+Y29vcmRpbmF0ZSgpOwotICAgICAgICBGbG9hdFJlY3QgdGlsZVJlY3Qg
PSBpdC0+dmFsdWUtPnJlY3QoKTsKKyAgICBmb3IgKGF1dG8mIHRpbGUgOiBtX3RpbGVzLnZhbHVl
cygpKSB7CisgICAgICAgIFRpbGU6OkNvb3JkaW5hdGUgY29vcmRpbmF0ZSA9IHRpbGUtPmNvb3Jk
aW5hdGUoKTsKKyAgICAgICAgRmxvYXRSZWN0IHRpbGVSZWN0ID0gdGlsZS0+cmVjdCgpOwogICAg
ICAgICBpZiAoIXRpbGVSZWN0LmludGVyc2VjdHMoa2VlcFJlY3RGKSkKICAgICAgICAgICAgIHRv
UmVtb3ZlLmFwcGVuZChjb29yZGluYXRlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29y
ZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKaW5kZXggNTJiMWUxZDI4YjA1NWQ5
ZTIyZWM0MzM1NjI0YzQ3NzE1YWRlNjlmNS4uZDkwMmI5OWY4ODhlYmIyN2U3MmQ1MGM2ZmZkZmU2
NDhmM2M3ZDc3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db21wb3NpdGlu
Z0Nvb3JkaW5hdG9yLmNwcApAQCAtNDcsOSArNDcsOCBAQCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9y
Ojp+Q29tcG9zaXRpbmdDb29yZGluYXRvcigpCiB7CiAgICAgcHVyZ2VCYWNraW5nU3RvcmVzKCk7
CiAKLSAgICBMYXllck1hcDo6aXRlcmF0b3IgZW5kID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmVuZCgp
OwotICAgIGZvciAoTGF5ZXJNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmJl
Z2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgaXQtPnZhbHVlLT5zZXRDb29yZGluYXRv
cigwKTsKKyAgICBmb3IgKGF1dG8mIHJlZ2lzdGVyZWRMYXllciA6IG1fcmVnaXN0ZXJlZExheWVy
cy52YWx1ZXMoKSkKKyAgICAgICAgcmVnaXN0ZXJlZExheWVyLT5zZXRDb29yZGluYXRvcigwKTsK
IH0KIAogQ29tcG9zaXRpbmdDb29yZGluYXRvcjo6Q29tcG9zaXRpbmdDb29yZGluYXRvcihQYWdl
KiBwYWdlLCBDb21wb3NpdGluZ0Nvb3JkaW5hdG9yOjpDbGllbnQqIGNsaWVudCkKQEAgLTIzNiw5
ICsyMzUsOCBAQCB2b2lkIENvbXBvc2l0aW5nQ29vcmRpbmF0b3I6OnJlbW92ZUltYWdlQmFja2lu
ZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSQogCiB2b2lkIENvbXBvc2l0aW5nQ29v
cmRpbmF0b3I6OmZsdXNoUGVuZGluZ0ltYWdlQmFja2luZ0NoYW5nZXMoKQogewotICAgIEltYWdl
QmFja2luZ01hcDo6aXRlcmF0b3IgZW5kID0gbV9pbWFnZUJhY2tpbmdzLmVuZCgpOwotICAgIGZv
ciAoSW1hZ2VCYWNraW5nTWFwOjppdGVyYXRvciBpdGVyID0gbV9pbWFnZUJhY2tpbmdzLmJlZ2lu
KCk7IGl0ZXIgIT0gZW5kOyArK2l0ZXIpCi0gICAgICAgIGl0ZXItPnZhbHVlLT51cGRhdGUoKTsK
KyAgICBmb3IgKGF1dG8mIGltYWdlQmFja2luZyA6IG1faW1hZ2VCYWNraW5ncy52YWx1ZXMoKSkK
KyAgICAgICAgaW1hZ2VCYWNraW5nLT51cGRhdGUoKTsKIH0KIAogdm9pZCBDb21wb3NpdGluZ0Nv
b3JkaW5hdG9yOjpub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBk
b3VibGUgLyogdGltZSAqLykKQEAgLTMxMyw5ICszMTEsOCBAQCB2b2lkIENvbXBvc2l0aW5nQ29v
cmRpbmF0b3I6OnNldFZpc2libGVDb250ZW50c1JlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBj
b25zdAogICAgIGlmIChjb250ZW50c1JlY3REaWRDaGFuZ2UpIHsKICAgICAgICAgbV92aXNpYmxl
Q29udGVudHNSZWN0ID0gcmVjdDsKIAotICAgICAgICBMYXllck1hcDo6aXRlcmF0b3IgZW5kID0g
bV9yZWdpc3RlcmVkTGF5ZXJzLmVuZCgpOwotICAgICAgICBmb3IgKExheWVyTWFwOjppdGVyYXRv
ciBpdCA9IG1fcmVnaXN0ZXJlZExheWVycy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAg
ICAgICAgICBpdC0+dmFsdWUtPnNldE5lZWRzVmlzaWJsZVJlY3RBZGp1c3RtZW50KCk7CisgICAg
ICAgIGZvciAoYXV0byYgcmVnaXN0ZXJlZExheWVyIDogbV9yZWdpc3RlcmVkTGF5ZXJzLnZhbHVl
cygpKQorICAgICAgICAgICAgcmVnaXN0ZXJlZExheWVyLT5zZXROZWVkc1Zpc2libGVSZWN0QWRq
dXN0bWVudCgpOwogICAgIH0KIAogICAgIEZyYW1lVmlldyogdmlldyA9IG1fcGFnZS0+bWFpbkZy
YW1lKCkudmlldygpOwpAQCAtMzY3LDkgKzM2NCw4IEBAIHZvaWQgQ29tcG9zaXRpbmdDb29yZGlu
YXRvcjo6cHVyZ2VCYWNraW5nU3RvcmVzKCkKIHsKICAgICBUZW1wb3JhcnlDaGFuZ2U8Ym9vbD4g
cHVyZ2luZ1RvZ2dsZShtX2lzUHVyZ2luZywgdHJ1ZSk7CiAKLSAgICBMYXllck1hcDo6aXRlcmF0
b3IgZW5kID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmVuZCgpOwotICAgIGZvciAoTGF5ZXJNYXA6Oml0
ZXJhdG9yIGl0ID0gbV9yZWdpc3RlcmVkTGF5ZXJzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkK
LSAgICAgICAgaXQtPnZhbHVlLT5wdXJnZUJhY2tpbmdTdG9yZXMoKTsKKyAgICBmb3IgKGF1dG8m
IHJlZ2lzdGVyZWRMYXllciA6IG1fcmVnaXN0ZXJlZExheWVycy52YWx1ZXMoKSkKKyAgICAgICAg
cmVnaXN0ZXJlZExheWVyLT5wdXJnZUJhY2tpbmdTdG9yZXMoKTsKIAogICAgIG1faW1hZ2VCYWNr
aW5ncy5jbGVhcigpOwogICAgIG1fdXBkYXRlQXRsYXNlcy5jbGVhcigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMjcz
N2VjMTI1Mjc1MmRmZWE2OGRiODU5ODhhZWFhYTc2NTMwMWVmYi4uOTc0YjY0OTAxZTExZmZiNGUw
ZmJlMGYzZTI0YjYyMDhjMzljMDkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCkBAIC03OCw5ICs3OCw4IEBAIHZvaWQgQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZVRpbGUodWludDMyX3QgaWQpCiAKIHZvaWQgQ29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZUFsbFRpbGVzKCkKIHsKLSAgICBDb29yZGluYXRl
ZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7Ci0gICAg
Zm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90aWxl
cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAgIG1fdGlsZXNUb1JlbW92ZS5hZGQo
aXQtPmtleSk7CisgICAgZm9yIChhdXRvJiBrZXkgOiBtX3RpbGVzLmtleXMoKSkKKyAgICAgICAg
bV90aWxlc1RvUmVtb3ZlLmFkZChrZXkpOwogfQogCiB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlOjp1cGRhdGVUaWxlKHVpbnQzMl90IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBj
b25zdCBJbnRSZWN0JiB0aWxlUmVjdCwgUGFzc1JlZlB0cjxDb29yZGluYXRlZFN1cmZhY2U+IGJh
Y2tCdWZmZXIsIGNvbnN0IEludFBvaW50JiBvZmZzZXQpCkBAIC0xMjgsMTAgKzEyNyw4IEBAIHZv
aWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnBhaW50VG9UZXh0dXJlTWFwcGVyKFRleHR1cmVN
YXBwZXIqIHRleHR1cmVNYXBwZXIsCiAgICAgVmVjdG9yPFRleHR1cmVNYXBwZXJUaWxlKj4gcHJl
dmlvdXNUaWxlc1RvUGFpbnQ7CiAKICAgICAvLyBXZSBoYXZlIHRvIGRvIHRoaXMgZXZlcnkgdGlt
ZSB3ZSBwYWludCwgaW4gY2FzZSB0aGUgb3BhY2l0eSBoYXMgY2hhbmdlZC4KLSAgICBDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CiAg
ICAgRmxvYXRSZWN0IGNvdmVyZWRSZWN0OwotICAgIGZvciAoQ29vcmRpbmF0ZWRCYWNraW5nU3Rv
cmVUaWxlTWFwOjppdGVyYXRvciBpdCA9IG1fdGlsZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7Ci0gICAgICAgIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZSYgdGlsZSA9IGl0LT52YWx1
ZTsKKyAgICBmb3IgKGF1dG8mIHRpbGUgOiBtX3RpbGVzLnZhbHVlcygpKSB7CiAgICAgICAgIGlm
ICghdGlsZS50ZXh0dXJlKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTYwLDE3ICsx
NTcsMTUgQEAgdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6cGFpbnRUb1RleHR1cmVNYXBw
ZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5n
U3RvcmU6OmRyYXdCb3JkZXIoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlciwgY29uc3QgQ29s
b3ImIGJvcmRlckNvbG9yLCBmbG9hdCBib3JkZXJXaWR0aCwgY29uc3QgRmxvYXRSZWN0JiB0YXJn
ZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKQogewogICAgIFRy
YW5zZm9ybWF0aW9uTWF0cml4IGFkanVzdGVkVHJhbnNmb3JtID0gdHJhbnNmb3JtICogYWRqdXN0
ZWRUcmFuc2Zvcm1Gb3JSZWN0KHRhcmdldFJlY3QpOwotICAgIENvb3JkaW5hdGVkQmFja2luZ1N0
b3JlVGlsZU1hcDo6aXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQoKTsKLSAgICBmb3IgKENvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2luKCk7
IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd0JvcmRlcihib3Jk
ZXJDb2xvciwgYm9yZGVyV2lkdGgsIGl0LT52YWx1ZS5yZWN0KCksIGFkanVzdGVkVHJhbnNmb3Jt
KTsKKyAgICBmb3IgKGF1dG8mIHRpbGUgOiBtX3RpbGVzLnZhbHVlcygpKQorICAgICAgICB0ZXh0
dXJlTWFwcGVyLT5kcmF3Qm9yZGVyKGJvcmRlckNvbG9yLCBib3JkZXJXaWR0aCwgdGlsZS5yZWN0
KCksIGFkanVzdGVkVHJhbnNmb3JtKTsKIH0KIAogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9y
ZTo6ZHJhd1JlcGFpbnRDb3VudGVyKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGludCBy
ZXBhaW50Q291bnQsIGNvbnN0IENvbG9yJiBib3JkZXJDb2xvciwgY29uc3QgRmxvYXRSZWN0JiB0
YXJnZXRSZWN0LCBjb25zdCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYgdHJhbnNmb3JtKQogewogICAg
IFRyYW5zZm9ybWF0aW9uTWF0cml4IGFkanVzdGVkVHJhbnNmb3JtID0gdHJhbnNmb3JtICogYWRq
dXN0ZWRUcmFuc2Zvcm1Gb3JSZWN0KHRhcmdldFJlY3QpOwotICAgIENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgZW5kID0gbV90aWxlcy5lbmQoKTsKLSAgICBmb3IgKENv
b3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3RpbGVzLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgdGV4dHVyZU1hcHBlci0+ZHJhd051bWJlcihy
ZXBhaW50Q291bnQsIGJvcmRlckNvbG9yLCBpdC0+dmFsdWUucmVjdCgpLmxvY2F0aW9uKCksIGFk
anVzdGVkVHJhbnNmb3JtKTsKKyAgICBmb3IgKGF1dG8mIHRpbGUgOiBtX3RpbGVzLnZhbHVlcygp
KQorICAgICAgICB0ZXh0dXJlTWFwcGVyLT5kcmF3TnVtYmVyKHJlcGFpbnRDb3VudCwgYm9yZGVy
Q29sb3IsIHRpbGUucmVjdCgpLmxvY2F0aW9uKCksIGFkanVzdGVkVHJhbnNmb3JtKTsKIH0KIAog
dm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6Y29tbWl0VGlsZU9wZXJhdGlvbnMoVGV4dHVy
ZU1hcHBlciogdGV4dHVyZU1hcHBlcikKQEAgLTE4MCwxNCArMTc1LDEyIEBAIHZvaWQgQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmU6OmNvbW1pdFRpbGVPcGVyYXRpb25zKFRleHR1cmVNYXBwZXIqIHRl
eHR1cmVNYXBwZXIpCiAgICAgICAgIG1fcGVuZGluZ1NpemUgPSBGbG9hdFNpemUoKTsKICAgICB9
CiAKLSAgICBIYXNoU2V0PHVpbnQzMl90Pjo6aXRlcmF0b3IgdGlsZXNUb1JlbW92ZUVuZCA9IG1f
dGlsZXNUb1JlbW92ZS5lbmQoKTsKLSAgICBmb3IgKEhhc2hTZXQ8dWludDMyX3Q+OjppdGVyYXRv
ciBpdCA9IG1fdGlsZXNUb1JlbW92ZS5iZWdpbigpOyBpdCAhPSB0aWxlc1RvUmVtb3ZlRW5kOyAr
K2l0KQotICAgICAgICBtX3RpbGVzLnJlbW92ZSgqaXQpOworICAgIGZvciAoYXV0byYgdGlsZVRv
UmVtb3ZlIDogbV90aWxlc1RvUmVtb3ZlKQorICAgICAgICBtX3RpbGVzLnJlbW92ZSh0aWxlVG9S
ZW1vdmUpOwogICAgIG1fdGlsZXNUb1JlbW92ZS5jbGVhcigpOwogCi0gICAgQ29vcmRpbmF0ZWRC
YWNraW5nU3RvcmVUaWxlTWFwOjppdGVyYXRvciB0aWxlc0VuZCA9IG1fdGlsZXMuZW5kKCk7Ci0g
ICAgZm9yIChDb29yZGluYXRlZEJhY2tpbmdTdG9yZVRpbGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV90
aWxlcy5iZWdpbigpOyBpdCAhPSB0aWxlc0VuZDsgKytpdCkKLSAgICAgICAgaXQtPnZhbHVlLnN3
YXBCdWZmZXJzKHRleHR1cmVNYXBwZXIpOworICAgIGZvciAoYXV0byYgdGlsZSA6IG1fdGlsZXMu
dmFsdWVzKCkpCisgICAgICAgIHRpbGUuc3dhcEJ1ZmZlcnModGV4dHVyZU1hcHBlcik7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggMzU3N2ZhOGMyMDIyYmRmNGY5Mzdh
MDYwYWVmYmJmMTM3YWExNDNhNi4uNzc3ZGMzMDY0MDQxNjE3NWM5NDJhZThhYWUwNGQ4OTljMTlm
YTJmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZS5jcHAKQEAgLTE2MCw5ICsxNjAsOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZTo6YWRqdXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpCiAgICAgLy8gdGhlbSBieSB0
aGUgZGVsdGEgYmV0d2VlbiB0aGUgY3VycmVudCBwb3NpdGlvbiBhbmQgdGhlIHBvc2l0aW9uIG9m
IHRoZSB2aWV3cG9ydCB1c2VkIGZvciB0aGUgbGFzdCBsYXlvdXQuCiAgICAgRmxvYXRTaXplIGRl
bHRhID0gbV9zY3JvbGxQb3NpdGlvbiAtIG1fcmVuZGVyZWRDb250ZW50c1Njcm9sbFBvc2l0aW9u
OwogCi0gICAgTGF5ZXJSYXdQdHJNYXA6Oml0ZXJhdG9yIGVuZCA9IG1fZml4ZWRMYXllcnMuZW5k
KCk7Ci0gICAgZm9yIChMYXllclJhd1B0ck1hcDo6aXRlcmF0b3IgaXQgPSBtX2ZpeGVkTGF5ZXJz
LmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgaXQtPnZhbHVlLT5zZXRTY3JvbGxQ
b3NpdGlvbkRlbHRhSWZOZWVkZWQoZGVsdGEpOworICAgIGZvciAoYXV0byYgZml4ZWRMYXllciA6
IG1fZml4ZWRMYXllcnMudmFsdWVzKCkpCisgICAgICAgIGZpeGVkTGF5ZXItPnNldFNjcm9sbFBv
c2l0aW9uRGVsdGFJZk5lZWRlZChkZWx0YSk7CiB9CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKQEAgLTU2MCw5ICs1NTksOCBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6cmVt
b3ZlUmVsZWFzZWRJbWFnZUJhY2tpbmdzSWZOZWVkZWQoKQogCiB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6Y29tbWl0UGVuZGluZ0JhY2tpbmdTdG9yZU9wZXJhdGlvbnMoKQogewotICAg
IEhhc2hTZXQ8UmVmUHRyPENvb3JkaW5hdGVkQmFja2luZ1N0b3JlPiA+OjppdGVyYXRvciBlbmQg
PSBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuZW5kKCk7Ci0gICAgZm9yIChIYXNo
U2V0PFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gPjo6aXRlcmF0b3IgaXQgPSBtX2Jh
Y2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQot
ICAgICAgICAoKml0KS0+Y29tbWl0VGlsZU9wZXJhdGlvbnMobV90ZXh0dXJlTWFwcGVyLmdldCgp
KTsKKyAgICBmb3IgKGF1dG8mIGJhY2tpbmdTdG9yZSA6IG1fYmFja2luZ1N0b3Jlc1dpdGhQZW5k
aW5nQnVmZmVycykKKyAgICAgICAgYmFja2luZ1N0b3JlLT5jb21taXRUaWxlT3BlcmF0aW9ucyht
X3RleHR1cmVNYXBwZXIuZ2V0KCkpOwogCiAgICAgbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdC
dWZmZXJzLmNsZWFyKCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>