--Boundary-00=_KNXyD73rQ8D3VpY Content-Type: text/plain;charset="iso-8859-2" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline And the mini-KImageIO, with one samble .desktop file. 2006. janu=E1r 14. 19.43 d=E1tummal Gregory Hayes ezt =EDrta: > I vote for option 2. I think QImageReader and friends provide us with most > of what we need. Do you know if the QimageReader::canRead can handle URIs? > > Greg > - > > On 1/14/06, Szombathelyi Gy=F6rgy wrote: > > Hi! > > > > I removed kimageio from kdelibs trunk yesterday, now I've got a problem > > of converting some uses in kdebase. > > Especially KImageIO::pattern() and KImageIO::mimeTypes() are problemati= c, > > since there's no such concept in QImageReader and QImageWriter. Qt only > > knows > > the "format", which can be e.g "jpg", "png", etc... > > Now I see 2 options: > > 1. Restore KImageIO and the .kimgio files, which has the neccessary > > information, and clean up KImageIO > > 2. Add the Qt image format name to the mime database, e.g. with > > X-KDE-imageformat=3Djpg. Then new convenience function(s) can be added = to > > kmimetype.h, e.g allImageFormats() or sth. else. > > > > Option 1 is simplest, but .kimgio files store nearly the same data as t= he > > mime > > files, except the image format name. > > > > Any opinions? (or other ideas?) > > > > Bye, > > Gy=F6rgy > > > > ____________________________________________________________________ > > Miert fizetsz az internetert? Korlatlan, ingyenes internet hozzaferes a > > FreeStarttol > > Probald ki most! http://www.freestart.hu ____________________________________________________________________ Miert fizetsz az internetert? Korlatlan, ingyenes internet hozzaferes a FreeStarttol Probald ki most! http://www.freestart.hu --Boundary-00=_KNXyD73rQ8D3VpY Content-Type: text/x-diff;charset="iso-8859-6";name="kimageio-mini.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment;filename="kimageio-mini.diff" SW5kZXg6IGtpbWdpby9NYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraW1naW8vTWFrZWZpbGUu YW0JKHJldmlzaW9uIDQ5ODAxMikKKysrIGtpbWdpby9NYWtlZmlsZS5hbQkod29ya2luZyBjb3B5 KQpAQCAtMSwxNCArMSwxNyBAQAogCiBpZiBpbmNsdWRlX1RJRkZfTU9EVUxFUwogS0lNR0lPX1RJ RkZfTU9EVUxFUz1raW1nX3RpZmYubGEgIyBraW1nX2czLmxhCitLSU1HSU9fVElGRl9TRVJWSUNF RklMRVM9dGlmZi5kZXNrdG9wCiBlbmRpZgogCiBpZiBpbmNsdWRlX0pQMl9NT0RVTEVTCiBLSU1H SU9fSlAyX01PRFVMRVM9a2ltZ19qcDIubGEKK0tJTUdJT19KUDJfU0VSVklDRUZJTEVTPWpwMi5k ZXNrdG9wCiBlbmRpZgogCiBpZiBpbmNsdWRlX0VYUl9NT0RVTEVTCiBLSU1HSU9fRVhSX01PRFVM RVM9a2ltZ19leHIubGEKK0tJTUdJT19FWFJfU0VSVklDRUZJTEVTPWV4ci5kZXNrdG9wCiBlbmRp ZgogCiBLREVfQ1hYRkxBR1MgPSAkKFVTRV9FWENFUFRJT05TKQpAQCAtODMsNSArODYsMTUgQEAK IElOQ0xVREVTID0gLUkkKHRvcF9zcmNkaXIpL2tpbyAtSSQodG9wX3NyY2RpcikvZGNvcCAtSSQo dG9wX3NyY2RpcikvbGlibHRkbCBcCiAJJChhbGxfaW5jbHVkZXMpIC1EcmVzdHJpY3Q9ICQoRVhS X0ZMQUdTKQogCitzZXJ2aWNldHlwZWRpciA9ICQoa2RlX3NlcnZpY2V0eXBlc2RpcikKK3NlcnZp Y2V0eXBlX0RBVEEgPSBxaW1hZ2Vpb19wbHVnaW4uZGVza3RvcAorCitzZXJ2aWNlZGlyID0gJChr ZGVfc2VydmljZXNkaXIpL3FpbWFnZWlvcGx1Z2lucworc2VydmljZV9EQVRBID0gcG5nLmRlc2t0 b3AgeHBtLmRlc2t0b3AgYm1wLmRlc2t0b3AgcGJtLmRlc2t0b3AgcGdtLmRlc2t0b3AgXAorCXBw bS5kZXNrdG9wIHhibS5kZXNrdG9wIGpwZWcuZGVza3RvcCB4di5kZXNrdG9wIGVwcy5kZXNrdG9w IFwKKwkkKEtJTUdJT19USUZGX1NFUlZJQ0VGSUxFUykgaWNvLmRlc2t0b3AgJChLSU1HSU9fSlAy X1NFUlZJQ0VGSUxFUykgXAorCWdpZi5kZXNrdG9wIHBjeC5kZXNrdG9wIHRnYS5kZXNrdG9wIHJn Yi5kZXNrdG9wIHhjZi5kZXNrdG9wIGRkcy5kZXNrdG9wIFwKKwkkKEtJTUdJT19FWFJfU0VSVklD RUZJTEVTKSBtbmcuZGVza3RvcCBwc2QuZGVza3RvcCBoZHIuZGVza3RvcAorCiBpbmNsdWRlICQo dG9wX3NyY2RpcikvYWRtaW4vRG94eWZpbGUuYW0KIApJbmRleDoga2lvL2tpby9NYWtlZmlsZS5h bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09Ci0tLSBraW8va2lvL01ha2VmaWxlLmFtCShyZXZpc2lvbiA0OTgwMTIpCisr KyBraW8va2lvL01ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAJ a2RpcndhdGNoLmNwcCBcCiAJa2ZpbGVzaGFyZS5jcHAga3NhbWJhc2hhcmUuY3BwIGtuZnNzaGFy ZS5jcHAgXAogCWt0cmFkZXIuY3BwIGt0cmFkZXJwYXJzZS5jcHAga3RyYWRlcnBhcnNldHJlZS5j cHAgXAotICAgICAgICBrc2VydmljZXR5cGVmYWN0b3J5LmNwcCBrc2VydmljZXR5cGUuY3BwIFwK KyAgICAgICAga3NlcnZpY2V0eXBlZmFjdG9yeS5jcHAga3NlcnZpY2V0eXBlLmNwcCBraW1hZ2Vp by5jcHAgXAogCWttaW1ldHlwZS5jcHAga3NlcnZpY2Vncm91cC5jcHAgXAogCWtzZXJ2aWNlLmNw cCBrc2VydmljZWZhY3RvcnkuY3BwIFwKIAlrdXNlcnByb2ZpbGUuY3BwIGtzZXJ2aWNlZ3JvdXBm YWN0b3J5LmNwcCBcCkBAIC02Miw3ICs2Miw3IEBACiAJa21pbWV0eXBlY2hvb3Nlci5jcHAKIAog aW5jbHVkZV9IRUFERVJTID0gXAotCWtzZXJ2aWNldHlwZS5oIGttaW1ldHlwZS5oIGttaW1lbWFn aWMuaCBrc2VydmljZS5oIFwKKwlrc2VydmljZXR5cGUuaCBrbWltZXR5cGUuaCBrbWltZW1hZ2lj Lmgga3NlcnZpY2UuaCBraW1hZ2Vpby5oIFwKIAlrcnVuLmgga2RpcndhdGNoLmgga2F1dG9tb3Vu dC5oIGt1c2VycHJvZmlsZS5oIFwKIAlrYXIuaCBrdGFyLmgga3ppcC5oIGt0cmFkZXIuaCBrdXJp ZmlsdGVyLmgga3VybGNvbXBsZXRpb24uaCBcCiAJa3NoZWxsY29tcGxldGlvbi5oIGtmaWxlaXRl bS5oIGtmaWxlc2hhcmUuaCBrc2FtYmFzaGFyZS5oIGtuZnNzaGFyZS5oIFwK --Boundary-00=_KNXyD73rQ8D3VpY Content-Type: application/x-desktop;name="qimageio_plugin.desktop" Content-Transfer-Encoding: base64 Content-Disposition: attachment;filename="qimageio_plugin.desktop" W0Rlc2t0b3AgRW50cnldCkVuY29kaW5nPVVURi04ClR5cGU9U2VydmljZVR5cGUKWC1LREUtU2Vy dmljZVR5cGU9UUltYWdlSU9QbHVnaW5zCkNvbW1lbnQ9UUltYWdlSU9IYW5kbGVyIHBsdWdpbgoK W1Byb3BlcnR5RGVmOjpYLUtERS1JbWFnZUZvcm1hdF0KVHlwZT1RU3RyaW5nTGlzdAoKW1Byb3Bl cnR5RGVmOjpYLUtERS1NaW1lVHlwZV0KVHlwZT1RU3RyaW5nCg== --Boundary-00=_KNXyD73rQ8D3VpY Content-Type: application/x-desktop;name="jpeg.desktop" Content-Transfer-Encoding: base64 Content-Disposition: attachment;filename="jpeg.desktop" W0Rlc2t0b3AgRW50cnldCkVuY29kaW5nPVVURi04Ck5hbWU9SlBFRwpUeXBlPVNlcnZpY2UKU2Vy dmljZVR5cGVzPVFJbWFnZUlPUGx1Z2lucwpYLUtERS1JbWFnZUZvcm1hdD1qcGVnLGpwZwpYLUtE RS1NaW1lVHlwZT1pbWFnZS9qcGVnCg== --Boundary-00=_KNXyD73rQ8D3VpY Content-Type: text/x-c++hdr;charset="iso-8859-6";name="kimageio.h" Content-Transfer-Encoding: base64 Content-Disposition: attachment;filename="kimageio.h" LyoKKiBraW1hZ2Vpby5oIC0tIERlY2xhcmF0aW9uIG9mIGludGVyZmFjZSB0byB0aGUgS0RFIElt YWdlIElPIGxpYnJhcnkuCiogU2lydGFqIFNpbmdoIEthbmcgPHRhakBrZGUub3JnPiwgMjMgU2Vw IDE5OTguCioKKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIGNvbmRpdGlv bnMgb2YgdGhlIEdOVSBMR1BMLgoqLwoKI2lmbmRlZiBTU0tfS0lNR0lPX0gKI2RlZmluZSBTU0tf S0lNR0lPX0gKCiNpbmNsdWRlIDxRU3RyaW5nTGlzdD4KI2luY2x1ZGUgPFFTdHJpbmc+CgojaW5j bHVkZSA8a2RlbGlic19leHBvcnQuaD4KCi8qKgogKiBBIHNtYWxsIGNvbnZlbmllbmNlIGNsYXNz IHRvIGdldCBpbmZvcm1hdGlvbiBhYm91dCBpbWFnZSBmb3JtYXQgbmFtZXMgYW5kCiAqIHRoZSBj b3JyZXNwb25kaW5nIG1pbWUgdHlwZS4KICoKICogVGhlIGltYWdlIHByb2Nlc3NpbmcgYmFja2Vu ZHMgYXJlIHdyaXR0ZW4gYXMgaW1hZ2UgaGFuZGxlcnMgY29tcGF0aWJsZQogKiB3aXRoIHRoZSBR SW1hZ2VJT0hhbmRsZXIgZm9ybWF0LiBUaGUgYmFja2VuZHMgYXJlIFF0IGltYWdlZm9ybWF0IHBs dWdpbnMuIAogKiBFYWNoIGZvcm1hdCBjYW4gYmUgaWRlbnRpZmllZCBieSBhIHVuaXF1ZSB0eXBl IGlkIHN0cmluZy4KICoKICogXGIgRm9ybWF0czoKICoKICogQ3VycmVudGx5IHN1cHBvcnRlZCBm b3JtYXRzIGluY2x1ZGU6CiAqIEBsaSBCTVAgICAgIFw8cmVhZFw+IFw8d3JpdGVcPgogKiBAbGkg RVBTICAgICBcPHJlYWRcPiBcPHdyaXRlXD4KICogQGxpIEVYUiAgICAgXDxyZWFkXD4KICogQGxp IEczICAgICAgXDxyZWFkXD4KICogQGxpIEdJRiAgICAgXDxyZWFkXD4KICogQGxpIElDTyAgICAg XDxyZWFkXD4KICogQGxpIEpQMiAgICAgXDxyZWFkXD4gXDx3cml0ZVw+CiAqIEBsaSBKUEVHICAg IFw8cmVhZFw+IFw8d3JpdGVcPgogKiBAbGkgTkVUUEJNICBcPHJlYWRcPiBcPHdyaXRlXD4KICog QGxpIFBDWCAgICAgXDxyZWFkXD4gXDx3cml0ZVw+CiAqIEBsaSBQTkcgICAgIFw8cmVhZFw+IFw8 d3JpdGUsIG9ubHkgd2l0aCBuZXdlciBsaWJyYXJpZXNcPgogKiBAbGkgVEdBICAgICBcPHJlYWRc PiBcPHdyaXRlXD4KICogQGxpIFRJRkYgICAgXDxyZWFkXD4KICogQGxpIFhCTSAgICAgXDxyZWFk XD4gXDx3cml0ZVw+CiAqIEBsaSBYUE0gICAgIFw8cmVhZFw+IFw8d3JpdGVcPgogKiBAbGkgWFYg ICAgICBcPHJlYWRcPiBcPHdyaXRlXD4KICoKICovCmNsYXNzIEtJT19FWFBPUlQgS0ltYWdlSU8K ewpwdWJsaWM6CiAgLyoqCiAgICogUG9zc2libGUgaW1hZ2UgZmlsZSBhY2Nlc3MgbW9kZXMuCiAg ICoKICAgKiBVc2VkIGluIHZhcmlvdXMgS0ltYWdlSU8gc3RhdGljIGZ1bmN0aW9uLgogICAqKi8K ICBlbnVtIE1vZGUgeyBSZWFkaW5nLCBXcml0aW5nIH07CgogIC8qKgogICAqIFJldHVybnMgYSBs aXN0IG9mIHBhdHRlcm5zIG9mIGFsbCBLSW1hZ2VJTyBzdXBwb3J0ZWQgZm9ybWF0cy4KICAgKgog ICAqIFRoZXNlIHBhdHRlcm5zIGNhbiBiZSBwYXNzZWQgdG8gS0ZpbGVEaWFsb2c6OmdldE9wZW5G aWxlTmFtZSgpCiAgICogb3IgS0ZpbGVEaWFsb2c6OmdldFNhdmVGaWxlTmFtZSgpLCBmb3IgZXhh bXBsZS4KICAgKgogICAqIEBwYXJhbSBtb2RlIFRlbGxzIHdoZXRoZXIgdG8gcmV0cmlldmUgbW9k ZXMgdGhhdCBjYW4gYmUgcmVhZCBvciB3cml0dGVuLgogICAqIEByZXR1cm4gYSBzcGFjZS1zZXBh cmF0ZWQgbGlzdCBvZiBmaWxlIGdsb2JzIHRoYXQgZGVzY3JpYmUgdGhlCiAgICogc3VwcG9ydGVk IGZvcm1hdHMKICAgKi8KICBzdGF0aWMgUVN0cmluZyBwYXR0ZXJuKE1vZGUgbW9kZSA9IFJlYWRp bmcpOwoKICAvKioKICAgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIGEgTUlNRSB0eXBlLgogICAqIEBw YXJhbSBtaW1lVHlwZSB0aGUgTUlNRSB0eXBlIHRvIHNlYXJjaAogICAqIEByZXR1cm4gdHlwZSBp ZCBvZiB0aGUgTUlNRSB0eXBlIG9yIFFTdHJpbmcoKSBpZiB0aGUgTUlNRSB0eXBlCiAgICogICAg ICAgICBpcyBub3Qgc3VwcG9ydGVkCiAgICogQHNpbmNlIDMuMQogICAqLwogIHN0YXRpYyBRU3Ry aW5nTGlzdCB0eXBlRm9yTWltZShjb25zdCBRU3RyaW5nJiBtaW1lVHlwZSk7CgogIC8qKgogICAq ICBSZXR1cm5zIGEgbGlzdCBvZiBNSU1FIHR5cGVzIGZvciBhbGwgS0ltYWdlSU8gc3VwcG9ydGVk IGZvcm1hdHMuCiAgICoKICAgKiBAcGFyYW0gbW9kZSBUZWxscyB3aGV0aGVyIHRvIHJldHJpZXZl IG1vZGVzIHRoYXQgY2FuIGJlIHJlYWQgb3Igd3JpdHRlbi4KICAgKiBAcmV0dXJuIGEgbGlzdCBp ZiBNSU1FIHR5cGVzIG9mIHRoZSBzdXBwb3J0ZWQgZm9ybWF0cwogICAqLwogIHN0YXRpYyBRU3Ry aW5nTGlzdCBtaW1lVHlwZXMoIE1vZGUgbW9kZSA9IFdyaXRpbmcgKTsKCiAgLyoqCiAgICogVGVz dCB0byBzZWUgd2hldGhlciBhIE1JTUUgdHlwZSBpcyBzdXBwb3J0ZWQgdG8gcmVhZGluZy93cml0 aW5nLgogICAqIEBwYXJhbSBfbWltZVR5cGUgdGhlIE1JTUUgdHlwZSB0byBjaGVjawogICAqIEBw YXJhbSBfbW9kZSBUZWxscyB3aGV0aGVyIHRvIGNoZWNrIGZvciByZWFkaW5nIG9yIHdyaXRpbmcg Y2FwYWJpbGl0aWVzCiAgICogQHJldHVybiB0cnVlIGlmIHRoZSB0eXBlIGlzIHN1cHBvcnRlZAog ICAqKi8KICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZCggY29uc3QgUVN0cmluZyYgX21pbWVUeXBl LCBNb2RlIF9tb2RlID0gV3JpdGluZyApOwp9OwoKCiNlbmRpZgoK --Boundary-00=_KNXyD73rQ8D3VpY Content-Type: text/x-c++src;charset="iso-8859-6";name="kimageio.cpp" Content-Transfer-Encoding: base64 Content-Disposition: attachment;filename="kimageio.cpp" Ly8gLSotIGMtYmFzaWMtb2Zmc2V0OiAzIC0qLQovKioKKiBraW1naW8uaCAtLSBJbXBsZW1lbnRh dGlvbiBvZiBpbnRlcmZhY2UgdG8gdGhlIEtERSBJbWFnZSBJTyBsaWJyYXJ5LgoqIFNpcnRhaiBT aW5naCBLYW5nIDx0YWpAa2RlLm9yZz4sIDIzIFNlcCAxOTk4LgoqCiogVGhpcyBsaWJyYXJ5IGlz IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBjb25kaXRpb25zIG9mIHRoZSBHTlUgTEdQTC4KKi8KCiNp bmNsdWRlIDxRSW1hZ2VSZWFkZXI+CiNpbmNsdWRlIDxRSW1hZ2VXcml0ZXI+CgojaW5jbHVkZSA8 a21pbWV0eXBlLmg+CiNpbmNsdWRlIDxrbG9jYWxlLmg+CiNpbmNsdWRlIDxrZGVidWcuaD4KCiNp bmNsdWRlICJraW1hZ2Vpby5oIgoKUVN0cmluZwpLSW1hZ2VJTzo6cGF0dGVybihNb2RlIF9tb2Rl KQp7CiAgICBRU3RyaW5nTGlzdCBwYXR0ZXJuczsKICAgIFFTdHJpbmcgYWxsUGF0dGVybnM7CiAg ICBRU3RyaW5nIHNlcGFyYXRvcigifCIpOwogICAgCiAgICBRTGlzdDxRQnl0ZUFycmF5PiBmb3Jt YXRzID0gKCBfbW9kZSA9PSBLSW1hZ2VJTzo6UmVhZGluZyApID8gCiAgICAgICAgUUltYWdlUmVh ZGVyOjpzdXBwb3J0ZWRJbWFnZUZvcm1hdHMoKSA6CiAgICAgICAgUUltYWdlV3JpdGVyOjpzdXBw b3J0ZWRJbWFnZUZvcm1hdHMoKTsKICAgIEtTZXJ2aWNlOjpMaXN0IHNlcnZpY2VzID0gS1NlcnZp Y2VUeXBlOjpvZmZlcnMoIlFJbWFnZUlPUGx1Z2lucyIpOwogICAgS1NlcnZpY2U6OlB0ciBzZXJ2 aWNlOwogICAgZm9yZWFjaChzZXJ2aWNlLCBzZXJ2aWNlcykKICAgIHsKICAgICAgICBRU3RyaW5n IGZvcm1hdCA9IHNlcnZpY2UtPnByb3BlcnR5KCJYLUtERS1JbWFnZUZvcm1hdCIpLnRvU3RyaW5n TGlzdCgpWzBdOwogICAgICAgIGlmICggZm9ybWF0cy5jb250YWlucyggZm9ybWF0LnRvTGF0aW4x KCkgKSApIHsKCSAgICBRU3RyaW5nIG1pbWVUeXBlID0gc2VydmljZS0+cHJvcGVydHkoIlgtS0RF LU1pbWVUeXBlIikudG9TdHJpbmcoKTsKCSAgICBLTWltZVR5cGU6OlB0ciBtaW1lID0gS01pbWVU eXBlOjptaW1lVHlwZSggbWltZVR5cGUgKTsKCSAgICBRU3RyaW5nIHBhdHRlcm4gPSBtaW1lLT5w YXR0ZXJucygpLmpvaW4oIiAiKTsKCSAgICBwYXR0ZXJucy5hcHBlbmQoIHBhdHRlcm4gKyBzZXBh cmF0b3IgKyBtaW1lLT5jb21tZW50KCkgKTsKCSAgICBpZiAoIWFsbFBhdHRlcm5zLmlzRW1wdHko KSApCgkgICAgICAgIGFsbFBhdHRlcm5zICs9ICIgIjsKCSAgICBhbGxQYXR0ZXJucyArPSBwYXR0 ZXJuOwoJICAgIAoJfQogICAgfQoKICAgIGFsbFBhdHRlcm5zID0gYWxsUGF0dGVybnMgKyBzZXBh cmF0b3IgKyBpMThuKCJBbGwgUGljdHVyZXMiKTsKICAgIHBhdHRlcm5zLnNvcnQoKTsKICAgIHBh dHRlcm5zLnByZXBlbmQoYWxsUGF0dGVybnMpOwoKICAgIFFTdHJpbmcgcGF0dGVybiA9IHBhdHRl cm5zLmpvaW4oUUxhdGluMVN0cmluZygiXG4iKSk7CiAgICByZXR1cm4gcGF0dGVybjsKfQoKUVN0 cmluZ0xpc3QgS0ltYWdlSU86OnR5cGVGb3JNaW1lKGNvbnN0IFFTdHJpbmcmIG1pbWVUeXBlKQp7 CiAgICBLU2VydmljZTo6TGlzdCBzZXJ2aWNlcyA9IEtTZXJ2aWNlVHlwZTo6b2ZmZXJzKCJRSW1h Z2VJT1BsdWdpbnMiKTsKICAgIEtTZXJ2aWNlOjpQdHIgc2VydmljZTsKICAgIGZvcmVhY2goc2Vy dmljZSwgc2VydmljZXMpIHsKICAgICAgICBpZiAoIG1pbWVUeXBlID09IHNlcnZpY2UtPnByb3Bl cnR5KCJYLUtERS1NaW1lVHlwZSIpLnRvU3RyaW5nKCkgKQogICAgICAgICAgICByZXR1cm4gKCBz ZXJ2aWNlLT5wcm9wZXJ0eSgiWC1LREUtSW1hZ2VGb3JtYXQiKS50b1N0cmluZ0xpc3QoKSApOwog ICAgfQogICAgcmV0dXJuIFFTdHJpbmdMaXN0KCk7Cn0KClFTdHJpbmdMaXN0IEtJbWFnZUlPOjpt aW1lVHlwZXMoIE1vZGUgX21vZGUgKQp7CiAgICBRU3RyaW5nTGlzdCBtaW1lTGlzdDsKICAgIFFM aXN0PFFCeXRlQXJyYXk+IGZvcm1hdHMgPSAoIF9tb2RlID09IEtJbWFnZUlPOjpSZWFkaW5nICkg PyAKICAgICAgICBRSW1hZ2VSZWFkZXI6OnN1cHBvcnRlZEltYWdlRm9ybWF0cygpIDoKICAgICAg ICBRSW1hZ2VXcml0ZXI6OnN1cHBvcnRlZEltYWdlRm9ybWF0cygpOwoKICAgIEtTZXJ2aWNlOjpM aXN0IHNlcnZpY2VzID0gS1NlcnZpY2VUeXBlOjpvZmZlcnMoIlFJbWFnZUlPUGx1Z2lucyIpOwog ICAgS1NlcnZpY2U6OlB0ciBzZXJ2aWNlOwogICAgZm9yZWFjaChzZXJ2aWNlLCBzZXJ2aWNlcykg ewoKICAgICAgICBpZiAoIGZvcm1hdHMuY29udGFpbnMoIHNlcnZpY2UtPnByb3BlcnR5KCJYLUtE RS1JbWFnZUZvcm1hdCIpLnRvU3RyaW5nTGlzdCgpWzBdLnRvTGF0aW4xKCkgKSApCiAgICAgICAg ICAgIG1pbWVMaXN0LmFwcGVuZCggc2VydmljZS0+cHJvcGVydHkoIlgtS0RFLU1pbWVUeXBlIiku dG9TdHJpbmcoKSApOwogICAgfQoKICAgIHJldHVybiBtaW1lTGlzdDsKfQoKYm9vbCBLSW1hZ2VJ Tzo6aXNTdXBwb3J0ZWQoIGNvbnN0IFFTdHJpbmcmIF9taW1lVHlwZSwgTW9kZSBfbW9kZSApCnsK CiAgICBRU3RyaW5nIHR5cGUgPSB0eXBlRm9yTWltZSggX21pbWVUeXBlIClbMF07CiAgICBRTGlz dDxRQnl0ZUFycmF5PiBmb3JtYXRzID0gKCBfbW9kZSA9PSBLSW1hZ2VJTzo6UmVhZGluZyApID8g CiAgICAgICAgUUltYWdlUmVhZGVyOjpzdXBwb3J0ZWRJbWFnZUZvcm1hdHMoKSA6CiAgICAgICAg UUltYWdlV3JpdGVyOjpzdXBwb3J0ZWRJbWFnZUZvcm1hdHMoKTsKCiAgICBRQnl0ZUFycmF5IGZv cm1hdDsKICAgIHJldHVybiBmb3JtYXRzLmNvbnRhaW5zKCB0eXBlLnRvTGF0aW4xKCkgKTsKfQo= --Boundary-00=_KNXyD73rQ8D3VpY--