126797|function.get-browser|88|1643032870|tom at tgibbons dot com|UEhQIGNyb24gc2NyaXB0IHRvIGF1dG9tYXRpY2FsbHkgdXBkYXRlIGJyb3dzY2FwLmluaS4gSXQgY29tcGFyZXMgdmVyc2lvbiBudW1iZXJzIHRvIGRldGVybWluZSBpZiB1cGRhdGUgaXMgbmVlZGVkOgoKPD9waHAKICAgICAgICRlb2w9IlxyXG4iOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vc2V0IGVuZCBvZiBsaW5lIC0gY3JvbgoKICAgICAgICRmaWxldXJsID0gImh0dHBzOi8vYnJvd3NjYXAub3JnL3N0cmVhbT9xPVBIUF9Ccm93c0NhcElOSSI7CiAgICAgICAkdmVydXJsID0gImh0dHBzOi8vYnJvd3NjYXAub3JnL3ZlcnNpb24tbnVtYmVyIjsKICAgICAgICRmaWxlID0gIi9wYXRoL3RvL2Jyb3dzY2FwLmluaSI7CgogICAgICAgLy9GaW5kIGN1cnJlbnQgdmVyc2lvbgogICAgICAgJGZwID0gZm9wZW4oJGZpbGUsICJyKyIpOwogICAgICAgd2hpbGUgKCgkbGluZSA9IHN0cmVhbV9nZXRfbGluZSgkZnAsIDEwMjQgKiAxMDI0LCAiXG4iKSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgaWYoc3RycG9zKCRsaW5lLCJWZXJzaW9uPSIpPT09MCkgewogICAgICAgICAgICAgICBsaXN0KCR0ZW1wLCAkY3VydmVyKSA9IGV4cGxvZGUoIj0iLCRsaW5lKTsKICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgfQogICAgICAgfQogICAgICAgZmNsb3NlKCRmcCk7CiAgICAgICBlY2hvKCJDdXJyZW50IGJyb3dzY2FwLmluaSBmaWxlIHZlcnNpb246ICIgLiAkY3VydmVyKTsKICAgICAgIC8vR2V0IGJyb3dzY2FwLm9yZyBjdXJyZW50IHZlcnNpb24KICAgICAgICRuZXd2ZXIgPSBmaWxlX2dldF9jb250ZW50cygkdmVydXJsKTsKICAgICAgIGVjaG8oJGVvbCAuICJOZXcgYnJvd3NjYXAuaW5pIGZpbGUgdmVyc2lvbjogIiAuICRuZXd2ZXIpOwogICAgICAgLy9VcGRhdGUgaWYgbmV3IHZlcnNpb24gYXZhaWxhYmxlCiAgICAgICBpZigkbmV3dmVyID4gJGN1cnZlcikgewogICAgICAgICAgIGlmKGZpbGVfcHV0X2NvbnRlbnRzKCRmaWxlLCBmaWxlX2dldF9jb250ZW50cygkZmlsZXVybCkpKSB7CiAgICAgICAgICAgICAgIGVjaG8oJGVvbCAuICJicm93c2NhcC5pbmkgaGFzIGJlZW4gdXBkYXRlZCEiKTsKICAgICAgICAgICB9CiAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgIGVjaG8oJGVvbCAuICJicm93c2NhcC5pbmkgdXBkYXRlIGZhaWxlZCEiKTsKICAgICAgICAgICB9CiAgICAgICB9CiAgICAgICBlbHNlIHsKICAgICAgICAgICBlY2hvKCRlb2wgLiAiYnJvd3NjYXAuaW5pIGlzIHVwIHRvIGRhdGUhIik7IAogICAgICAgfQogICAgICAgZWNobygkZW9sIC4gIkVuZCBvZiBDcm9uIGpvYi4iIC4gJGVvbCIpOwo/Pg==|7|1 123473|function.get-browser|71|1546001159|Anonymous|Rm9sbG93IHVwIHRvIEZyYW5jZXNjbyBSJ3MgcG9zdCBmcm9tIDIwMTYuCgpIaXMgZnVuY3Rpb24gd29ya3MgZm9yIG1vc3QgaHVtYW4gdHJhZmZpYzsgYWRkZWQgYSBmZXcgbGluZXMgdG8gY292ZXIgdGhlIG1vc3QgY29tbW9uIGJvdCB0cmFmZmljLiBBbHNvIGZpeGVkIGlzc3VlIHdpdGggZnVuY3Rpb24gZmFpbGluZyB0byBkZXRlY3Qgc3RyaW5ncyBhdCBwb3NpdGlvbiAwIGR1ZSB0byBzdHJwb3MgYmVoYXZpb3IuCgo8P3BocAovLyBGdW5jdGlvbiB3cml0dGVuIGFuZCB0ZXN0ZWQgRGVjZW1iZXIsIDIwMTgKZnVuY3Rpb24gZ2V0X2Jyb3dzZXJfbmFtZSgkdXNlcl9hZ2VudCkKewogICAgICAgIC8vIE1ha2UgY2FzZSBpbnNlbnNpdGl2ZS4KICAgICAgICAkdCA9IHN0cnRvbG93ZXIoJHVzZXJfYWdlbnQpOwoKICAgICAgICAvLyBJZiB0aGUgc3RyaW5nICpzdGFydHMqIHdpdGggdGhlIHN0cmluZywgc3RycG9zIHJldHVybnMgMCAoaS5lLiwgRkFMU0UpLiBEbyBhIGdoZXR0byBoYWNrIGFuZCBzdGFydCB3aXRoIGEgc3BhY2UuCiAgICAgICAgLy8gIltzdHJwb3MoKV0gbWF5IHJldHVybiBCb29sZWFuIEZBTFNFLCBidXQgbWF5IGFsc28gcmV0dXJuIGEgbm9uLUJvb2xlYW4gdmFsdWUgd2hpY2ggZXZhbHVhdGVzIHRvIEZBTFNFLiIKICAgICAgICAvLyAgICAgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLnN0cnBvcy5waHAKICAgICAgICAkdCA9ICIgIiAuICR0OwoKICAgICAgICAvLyBIdW1hbnMgLyBSZWd1bGFyIFVzZXJzICAgICAgCiAgICAgICAgaWYgICAgIChzdHJwb3MoJHQsICdvcGVyYScgICAgICkgfHwgc3RycG9zKCR0LCAnb3ByLycpICAgICApIHJldHVybiAnT3BlcmEnICAgICAgICAgICAgOwogICAgICAgIGVsc2VpZiAoc3RycG9zKCR0LCAnZWRnZScgICAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgKSByZXR1cm4gJ0VkZ2UnICAgICAgICAgICAgIDsKICAgICAgICBlbHNlaWYgKHN0cnBvcygkdCwgJ2Nocm9tZScgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICkgcmV0dXJuICdDaHJvbWUnICAgICAgICAgICA7CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHQsICdzYWZhcmknICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICApIHJldHVybiAnU2FmYXJpJyAgICAgICAgICAgOwogICAgICAgIGVsc2VpZiAoc3RycG9zKCR0LCAnZmlyZWZveCcgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgKSByZXR1cm4gJ0ZpcmVmb3gnICAgICAgICAgIDsKICAgICAgICBlbHNlaWYgKHN0cnBvcygkdCwgJ21zaWUnICAgICAgKSB8fCBzdHJwb3MoJHQsICd0cmlkZW50LzcnKSkgcmV0dXJuICdJbnRlcm5ldCBFeHBsb3Jlcic7CgogICAgICAgIC8vIFNlYXJjaCBFbmdpbmVzICAKICAgICAgICBlbHNlaWYgKHN0cnBvcygkdCwgJ2dvb2dsZScgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICkgcmV0dXJuICdbQm90XSBHb29nbGVib3QnICAgOwogICAgICAgIGVsc2VpZiAoc3RycG9zKCR0LCAnYmluZycgICAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgKSByZXR1cm4gJ1tCb3RdIEJpbmdib3QnICAgICA7CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHQsICdzbHVycCcgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICApIHJldHVybiAnW0JvdF0gWWFob28hIFNsdXJwJzsKICAgICAgICBlbHNlaWYgKHN0cnBvcygkdCwgJ2R1Y2tkdWNrZ28nKSAgICAgICAgICAgICAgICAgICAgICAgICAgICkgcmV0dXJuICdbQm90XSBEdWNrRHVja0JvdCcgOwogICAgICAgIGVsc2VpZiAoc3RycG9zKCR0LCAnYmFpZHUnICAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgKSByZXR1cm4gJ1tCb3RdIEJhaWR1JyAgICAgICA7CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHQsICd5YW5kZXgnICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICApIHJldHVybiAnW0JvdF0gWWFuZGV4JyAgICAgIDsKICAgICAgICBlbHNlaWYgKHN0cnBvcygkdCwgJ3NvZ291JyAgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICkgcmV0dXJuICdbQm90XSBTb2dvdScgICAgICAgOwogICAgICAgIGVsc2VpZiAoc3RycG9zKCR0LCAnZXhhYm90JyAgICApICAgICAgICAgICAgICAgICAgICAgICAgICAgKSByZXR1cm4gJ1tCb3RdIEV4YWJvdCcgICAgICA7CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHQsICdtc24nICAgICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICApIHJldHVybiAnW0JvdF0gTVNOJyAgICAgICAgIDsKCiAgICAgICAgLy8gQ29tbW9uIFRvb2xzIGFuZCBCb3RzCiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHQsICdtajEyYm90JyAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICApIHJldHVybiAnW0JvdF0gTWFqZXN0aWMnICAgICA7CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHQsICdhaHJlZnMnICAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICApIHJldHVybiAnW0JvdF0gQWhyZWZzJyAgICAgICA7CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHQsICdzZW1ydXNoJyAgICkgICAgICAgICAgICAgICAgICAgICAgICAgICApIHJldHVybiAnW0JvdF0gU0VNUnVzaCcgICAgICA7CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHQsICdyb2dlcmJvdCcgICkgfHwgc3RycG9zKCR0LCAnZG90Ym90JykgICApIHJldHVybiAnW0JvdF0gTW96IG9yIE9wZW5TaXRlRXhwbG9yZXInOwogICAgICAgIGVsc2VpZiAoc3RycG9zKCR0LCAnZnJvZycgICAgICApIHx8IHN0cnBvcygkdCwgJ3NjcmVhbWluZycpKSByZXR1cm4gJ1tCb3RdIFNjcmVhbWluZyBGcm9nJzsKICAgICAgICAKICAgICAgICAvLyBNaXNjZWxsYW5lb3VzIAogICAgICAgIGVsc2VpZiAoc3RycG9zKCR0LCAnZmFjZWJvb2snICApICAgICAgICAgICAgICAgICAgICAgICAgICAgKSByZXR1cm4gJ1tCb3RdIEZhY2Vib29rJyAgICAgOwogICAgICAgIGVsc2VpZiAoc3RycG9zKCR0LCAncGludGVyZXN0JyApICAgICAgICAgICAgICAgICAgICAgICAgICAgKSByZXR1cm4gJ1tCb3RdIFBpbnRlcmVzdCcgICAgOwogICAgICAgIAogICAgICAgIC8vIENoZWNrIGZvciBzdHJpbmdzIGNvbW1vbmx5IHVzZWQgaW4gYm90IHVzZXIgYWdlbnRzICAgCiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHQsICdjcmF3bGVyJyApIHx8IHN0cnBvcygkdCwgJ2FwaScgICAgKSB8fAogICAgICAgICAgICAgICAgc3RycG9zKCR0LCAnc3BpZGVyJyAgKSB8fCBzdHJwb3MoJHQsICdodHRwJyAgICkgfHwKICAgICAgICAgICAgICAgIHN0cnBvcygkdCwgJ2JvdCcgICAgICkgfHwgc3RycG9zKCR0LCAnYXJjaGl2ZScpIHx8IAogICAgICAgICAgICAgICAgc3RycG9zKCR0LCAnaW5mbycgICAgKSB8fCBzdHJwb3MoJHQsICdkYXRhJyAgICkgICAgKSByZXR1cm4gJ1tCb3RdIE90aGVyJyAgIDsKICAgICAgICAKICAgICAgICByZXR1cm4gJ090aGVyIChVbmtub3duKSc7Cn0KPz4KUG9zdCB3aXRoIG1vcmUgZGVwdGggaGVyZToKaHR0cHM6Ly93d3cuMjU2a2lsb2J5dGVzLmNvbS9jb250ZW50L3Nob3cvMTkyMi9ob3ctdG8tcGFyc2UtYS11c2VyLWFnZW50LWluLXBocC13aXRoLW1pbmltYWwtZWZmb3J0|27|11 122670|function.get-browser|71|1524767601|Jeff Williams|VG8gYXV0b21hdGljYWxseSB1cGRhdGUgeW91ciBicm93c2NhcC5pbmkgZmlsZSBvbiBsaW51eCBzZXJ2ZXJzLCB5b3UgY2FuIHVzZSB0aGlzIHNpbXBsZSBzaGVsbCBzY3JpcHQ6Cgp3Z2V0IC1PIC9ldGMvYnJvd3NjYXAuaW5pICJodHRwOi8vYnJvd3NjYXAub3JnL3N0cmVhbT9xPUZ1bGxfUEhQX0Jyb3dzQ2FwSU5JIgpjaG1vZCA2NjQgL2V0Yy9icm93c2NhcC5pbmkKCllvdSBjYW4gcHV0IGl0IGluIHRoZSB3ZWVrbHkgY3JvbiBqb2IgZm9sZGVyIHVzdWFsbHkgbG9jYXRlZCBpbiAvZXRjL2Nyb24ud2Vla2x5IGp1c3QgZG9uJ3QgZm9yZ2V0IHRvIG1ha2UgdGhlIHNjcmlwdCBleGVjdXRhYmxlIChjaG1vZCA3NzUgc2NyaXB0bmFtZSku|10|4 122181|function.get-browser|77|1514308729|Konstantin Rozinov|U2luY2UgYnJvd3NlciBkZXRlY3Rpb24gY2FuIGJlIHRyaWNreSBhbmQgdmVyeSBzbG93LCBJIGNvbXBhcmVkIGEgZmV3IHBhY2thZ2VzLgoKaHR0cDovL3RoYWRhZmluc2VyLmdpdGh1Yi5pby9Vc2VyQWdlbnRQYXJzZXJDb21wYXJpc29uL3Y1L2luZGV4Lmh0bWwKCmh0dHBzOi8vZ2l0aHViLmNvbS9zaW5lcmdpL3BocC1icm93c2VyLWRldGVjdG9yCmh0dHBzOi8vZ2l0aHViLmNvbS9XaGljaEJyb3dzZXIvUGFyc2VyLVBIUApodHRwczovL2dpdGh1Yi5jb20vcGl3aWsvZGV2aWNlLWRldGVjdG9yCmh0dHA6Ly9waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5nZXQtYnJvd3Nlci5waHAKCkhlcmUgYXJlIHRoZSByZXN1bHRzOgoKVXNlciBBZ2VudDogCk1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS82My4wLjMyMzkuODQgU2FmYXJpLzUzNy4zNgoKU2luZXJnaSBQYWNrYWdlCi0tLS0tLS0tLS0tLS0tLQpDaHJvbWUgNjMuMC4zMjM5Ljg0IG9uIFdpbmRvd3MgMTAuMApUb29rIDAuMDAyMjQ4MDQ4NzgyMzQ4NiBzZWNvbmRzLgotLS0tLS0tLS0tLS0tLS0KCldoaWNoQnJvd3NlciBQYWNrYWdlCi0tLS0tLS0tLS0tLS0tLQpDaHJvbWUgNjMgb24gV2luZG93cyAxMApUb29rIDAuMDIxMDQ1MjA3OTc3Mjk1IHNlY29uZHMuCi0tLS0tLS0tLS0tLS0tLQoKUGl3aWsgUGFja2FnZQotLS0tLS0tLS0tLS0tLS0KQ2hyb21lIDYzLjAgb24gV2luZG93cyAxMApUb29rIDAuMDc5NDQ3MDMxMDIxMTE4IHNlY29uZHMuCi0tLS0tLS0tLS0tLS0tLQoKZ2V0X2Jyb3dzZXIgUGFja2FnZQotLS0tLS0tLS0tLS0tLS0KQ2hyb21lIDYzLjAgb24gV2luZG93cyAxMApUb29rIDAuMDk2MTE3MDE5NjUzMzIgc2Vjb25kcy4KLS0tLS0tLS0tLS0tLS0tCgpVc2VyIEFnZW50OiAKTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NDsgcnY6NTcuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC81Ny4wCgpTaW5lcmdpIFBhY2thZ2UKLS0tLS0tLS0tLS0tLS0tCkZpcmVmb3ggNTcuMCBvbiBXaW5kb3dzIDEwLjAKVG9vayAwLjAwMjMxNTk5ODA3NzM5MjYgc2Vjb25kcy4KLS0tLS0tLS0tLS0tLS0tCgpXaGljaEJyb3dzZXIgUGFja2FnZQotLS0tLS0tLS0tLS0tLS0KRmlyZWZveCA1Ny4wIG9uIFdpbmRvd3MgMTAKVG9vayAwLjAxOTY2MzA5NTQ3NDI0MyBzZWNvbmRzLgotLS0tLS0tLS0tLS0tLS0KClBpd2lrIFBhY2thZ2UKLS0tLS0tLS0tLS0tLS0tCkZpcmVmb3ggNTcuMCBvbiBXaW5kb3dzIDEwClRvb2sgMC4wNzk2NzgwNTg2MjQyNjggc2Vjb25kcy4KLS0tLS0tLS0tLS0tLS0tCgpnZXRfYnJvd3NlciBQYWNrYWdlCi0tLS0tLS0tLS0tLS0tLQpGaXJlZm94IDU3LjAgb24gV2luZG93cyAxMApUb29rIDAuMDIyMzYwMDg2NDQxMDQgc2Vjb25kcy4KLS0tLS0tLS0tLS0tLS0tCgpUaGUgY29uc2lzdGVudCB3aW5uZXIgKGJ5IHNwZWVkLCBub3QgbmVjZXNzYXJpbHkgY292ZXJhZ2UpIGJ5IGZhciBpczoKaHR0cHM6Ly9naXRodWIuY29tL3NpbmVyZ2kvcGhwLWJyb3dzZXItZGV0ZWN0b3I=|33|10 122177|function.get-browser|82|1514261970|krozinov at gmail dot com|QXMgb2YgUEhQIDcuMC4xNSBhbmQgNy4xLjEgYW5kIGhpZ2hlciwgZ2V0X2Jyb3dzZXIoKSBub3cgcGVyZm9ybXMgbXVjaCBiZXR0ZXIgLSByZXBvcnRlZGx5IDEwMHggZmFzdGVyLiAgVGhlIENoYW5nZWxvZywgYnVnIGRlc2NyaXB0aW9uLCBhbmQgc29sdXRpb24gYXJlIGhlcmU6CgpodHRwOi8vcGhwLm5ldC9DaGFuZ2VMb2ctNy5waHAgKHNlYXJjaCBmb3IgZ2V0X2Jyb3dzZXIoKSkKaHR0cHM6Ly9idWdzLnBocC5uZXQvYnVnLnBocD9pZD03MDQ5MApodHRwczovL2dpdGh1Yi5jb20vcGhwL3BocC1zcmMvcHVsbC8yMjQy|68|15 120489|function.get-browser|70|1484905168|The Digital Orchard|R29vZCBuZXdzISBUaGUgbGF0ZXN0IHZlcnNpb24gb2YgUEhQIGhhcyBhIHBlcmZvcm1hbmNlIGZpeCBmb3IgdGhpcyBmdW5jdGlvbi4gSXQncyByZXBvcnRlZGx5IG5vdyAxMDB4IGZhc3Rlci4gU2VlIHRoZSBDaGFuZ2VMb2cgZm9yIHNwZWNpZmljcy4=|32|14 119858|function.get-browser|46|1473243623|zed|VG8gY29tcGxldGUgRnJhbmNlc2NvIFIsIEkgYWRkZWQgdGhlIHZlcnNpb24gb2YgdGhlIG5hdmlnYXRvciA6CgpmdW5jdGlvbiBnZXROYXZpZ2F0ZXVyKCR1c2VyX2FnZW50KQogICAgewoKICAgICAgICBpZihlbXB0eSgkdXNlcl9hZ2VudCkpIHsKICAgICAgICAgICAgcmV0dXJuIGFycmF5KCduYXYnID0+ICdOQycsICduYW1lJyA9PiAnTkMnLCAndmVyc2lvbicgPT4gJ05DJyk7CiAgICAgICAgfQoKICAgICAgICAkY29udGVudF9uYXZbJ25hbWUnXSA9ICdVbmtub3duJzsKCiAgICAgICAgaWYgKHN0cnBvcygkdXNlcl9hZ2VudCwgJ09wZXJhJykgfHwgc3RycG9zKCR1c2VyX2FnZW50LCAnT1BSLycpKSB7CgogICAgICAgICAgICAkY29udGVudF9uYXZbJ25hbWUnXSA9ICdPcGVyYSc7CgogICAgICAgICAgICBpZiAoc3RycG9zKCR1c2VyX2FnZW50LCAnT1BSLycpKSB7CiAgICAgICAgICAgICAgICAkY29udGVudF9uYXZbJ3JlZWxfbmFtZSddID0gJ09QUi8nOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGNvbnRlbnRfbmF2WydyZWVsX25hbWUnXSA9ICdPcGVyYSc7CiAgICAgICAgICAgIH0KCiAgICAgICAgfQogICAgICAgIGVsc2VpZiAoc3RycG9zKCR1c2VyX2FnZW50LCAnRWRnZScpKSB7CiAgICAgICAgICAgICRjb250ZW50X25hdlsnbmFtZSddID0gJGNvbnRlbnRfbmF2WydyZWVsX25hbWUnXSA9ICdFZGdlJzsKICAgICAgICB9CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHVzZXJfYWdlbnQsICdDaHJvbWUnKSkgJGNvbnRlbnRfbmF2WyduYW1lJ10gPSAkY29udGVudF9uYXZbJ3JlZWxfbmFtZSddID0gJ0Nocm9tZSc7CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHVzZXJfYWdlbnQsICdTYWZhcmknKSkgJGNvbnRlbnRfbmF2WyduYW1lJ10gPSAkY29udGVudF9uYXZbJ3JlZWxfbmFtZSddID0gJ1NhZmFyaSc7CiAgICAgICAgZWxzZWlmIChzdHJwb3MoJHVzZXJfYWdlbnQsICdGaXJlZm94JykpICRjb250ZW50X25hdlsnbmFtZSddID0gJGNvbnRlbnRfbmF2WydyZWVsX25hbWUnXSA9ICdGaXJlZm94JzsKICAgICAgICBlbHNlaWYgKHN0cnBvcygkdXNlcl9hZ2VudCwgJ01TSUUnKSB8fCBzdHJwb3MoJHVzZXJfYWdlbnQsICdUcmlkZW50LzcnKSB8fCBzdHJwb3MoJHVzZXJfYWdlbnQsICdUcmlkZW50LzcuMDsgcnY6JykpIHsKICAgICAgICAgICAgJGNvbnRlbnRfbmF2WyduYW1lJ10gPSAnSW50ZXJuZXQgRXhwbG9yZXInOwoKICAgICAgICAgICAgaWYgKHN0cnBvcygkdXNlcl9hZ2VudCwgJ1RyaWRlbnQvNy4wOyBydjonKSkgewogICAgICAgICAgICAgICAgJGNvbnRlbnRfbmF2WydyZWVsX25hbWUnXSA9ICdUcmlkZW50LzcuMDsgcnY6JzsKICAgICAgICAgICAgfSBlbHNlaWYgKHN0cnBvcygkdXNlcl9hZ2VudCwgJ1RyaWRlbnQvNycpKSB7CiAgICAgICAgICAgICAgICAkY29udGVudF9uYXZbJ3JlZWxfbmFtZSddID0gJ1RyaWRlbnQvNyc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkY29udGVudF9uYXZbJ3JlZWxfbmFtZSddID0gJ09wZXJhJzsKICAgICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgICRwYXR0ZXJuID0gJyMnIC4gJGNvbnRlbnRfbmF2WydyZWVsX25hbWUnXSAuICdcLyooWzAtOVwuXSopIyc7CgogICAgICAgICRtYXRjaGVzID0gYXJyYXkoKTsKCiAgICAgICAgaWYocHJlZ19tYXRjaCgkcGF0dGVybiwgJHVzZXJfYWdlbnQsICRtYXRjaGVzKSkgewoKICAgICAgICAgICAgJGNvbnRlbnRfbmF2Wyd2ZXJzaW9uJ10gPSAkbWF0Y2hlc1sxXTsKICAgICAgICAgICAgcmV0dXJuICRjb250ZW50X25hdjsKCiAgICAgICAgfQoKICAgICAgICByZXR1cm4gYXJyYXkoJ25hbWUnID0+ICRjb250ZW50X25hdlsnbmFtZSddLCAndmVyc2lvbicgPT4gJ0luY29ubnUnKTsKICAgIH0=|13|15 119332|function.get-browser|66|1463233960|Francesco R|SWYgeW91IE9OTFkgbmVlZCBhIHZlcnkgZmFzdCBhbmQgc2ltcGxlIGZ1bmN0aW9uIHRvIGRldGVjdCB0aGUgYnJvd3NlciBuYW1lICh1cGRhdGUgdG8gTWF5IDIwMTYpOgoKPD9waHAKCmZ1bmN0aW9uIGdldF9icm93c2VyX25hbWUoJHVzZXJfYWdlbnQpCnsKCWlmIChzdHJwb3MoJHVzZXJfYWdlbnQsICdPcGVyYScpIHx8IHN0cnBvcygkdXNlcl9hZ2VudCwgJ09QUi8nKSkgcmV0dXJuICdPcGVyYSc7CgllbHNlaWYgKHN0cnBvcygkdXNlcl9hZ2VudCwgJ0VkZ2UnKSkgcmV0dXJuICdFZGdlJzsKCWVsc2VpZiAoc3RycG9zKCR1c2VyX2FnZW50LCAnQ2hyb21lJykpIHJldHVybiAnQ2hyb21lJzsKCWVsc2VpZiAoc3RycG9zKCR1c2VyX2FnZW50LCAnU2FmYXJpJykpIHJldHVybiAnU2FmYXJpJzsKCWVsc2VpZiAoc3RycG9zKCR1c2VyX2FnZW50LCAnRmlyZWZveCcpKSByZXR1cm4gJ0ZpcmVmb3gnOwoJZWxzZWlmIChzdHJwb3MoJHVzZXJfYWdlbnQsICdNU0lFJykgfHwgc3RycG9zKCR1c2VyX2FnZW50LCAnVHJpZGVudC83JykpIHJldHVybiAnSW50ZXJuZXQgRXhwbG9yZXInOwoJCglyZXR1cm4gJ090aGVyJzsKfQoKLy8gVXNhZ2U6CgplY2hvIGdldF9icm93c2VyX25hbWUoJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKTsKCj8+CgpUaGlzIGZ1bmN0aW9uIGFsc28gcmVzb2x2ZXMgdGhlIHRyb3VibGUgd2l0aCBFZGdlICh0aGF0IGNvbnRhaW5zIGluIHRoZSB1c2VyIGFnZW50IHRoZSBzdHJpbmcgIlNhZmFyaSIgYW5kICJDaHJvbWUiKSwgd2l0aCBDaHJvbWUgKGNvbnRhaW5zIHRoZSBzdHJpbmcgIlNhZmFyaSIpIGFuZCBJRTExICh0aGF0IGRvIG5vdCBjb250YWlucyAnTVNJRScgbGlrZSBhbGwgb3RoZXIgSUUgdmVyc2lvbnMpLgoKTm90ZSB0aGF0ICJzdHJwb3MiIGlzIHRoZSBmYXN0ZXN0IGZ1bmN0aW9uIHRvIGNoZWNrIGEgc3RyaW5nIChmYXIgYmV0dGVyIHRoYW4gInByZWdfbWF0Y2giKSBhbmQgT3BlcmEgKyBFZGdlICsgQ2hyb21lICsgU2FmYXJpICsgRmlyZWZveCArIEludGVybmV0IEV4cGxvcmVyIGFyZSB0aGUgbW9zdCB1c2VkIGJyb3dzZXJzIHRvZGF5IChvdmVyIDk3JSku|84|43 118632|function.get-browser|65|1452609453|Anonymous|VGhpcyBmdW5jdGlvbiBpcyB0b28gc2xvdyBmb3IgdG9kYXlzIG5lZWRzLgoKSWYgeW91IG5lZWQgYnJvd3NlciAvIGRldmljZSAvIG9wZXJhdGluZyBzeXN0ZW0gZGV0ZWN0aW9uLCBwbGVhc2UgdHJ5IG9uZSBvZiBsaXN0ZWQgcGFja2FnZXMgaGVyZTogaHR0cHM6Ly9naXRodWIuY29tL1RoYURhZmluc2VyL1VzZXJBZ2VudFBhcnNlcg==|152|83 118628|function.get-browser|36|1452560338|p2 at eduardoruiz dot es|QkUgQ0FSRUZVTCBXSVRIIFRISVMgRlVOQ1RJT04hIQpUaGlzIGZ1bmN0aW9uIHVzZXMgYSBsb3Qgb2YgQ1BVIGFuZCBSQU0gb24gdGhlIHdob2xlIHNlcnZlciByZXNvdXJjZXMuClBlcmhhcHMgaWYgeW91IHVzZSB0aGlzIGZ1bmN0aW9uIGEgZmV3IHRpbWVzIHRoZW4gbm8gcHJvYmxlbSwgYnV0IE5PVCBpZiB5b3UgdXNlIGF0IGFueSBwYWdlIHJlcXVlc3QsIG9yIG9uY2UgcGVyIHNlc3Npb24uCgpBbHNvLCB0aGlzIGZ1bmN0aW9uIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgYW5kIG1heSByZXR1cm5zIHdyb25nIHZhbHVlcywgd2lsZGNhcmRzIG9yIGVtcHR5LCBzbyBpdCdzIG5vdCB2ZXJ5IHVzZWZ1bCBmb3Igd2ViIHN0YXRpc3RpY3MuCgpUaGUgYmVzdCB3YXkgaXMgdG8gdXNlIHByZWdfbWF0Y2ggZm9yIGRldGVjdCBicm93c2VyL3BsYXRmb3JtLg==|10|18 118503|function.get-browser|50|1450283288|jeremie dot legrand at komori-chambon dot fr|QmUgY2FyZWZ1bCBpZiB5b3UgdXNlIHRoZSAiRnVsbCIgQnJvd3NjYXAgSU5JIGZpbGUgaW4geW91ciBwaHAuaW5pIGNvbmZpZzogSSB3b25kZXJlZCB3aHkgZWFjaCBBcGFjaGUgdGhyZWFkIHRvb2sgMzUwTUIgUkFNIG9uIG15IHNlcnZlciB1bnRpbCBJIGNoYW5nZWQgdGhlICJGdWxsIiB2ZXJzaW9uIGJ5IHRoZSAiTGl0ZSIgb25lICg0NU1CIHRvIDAuN01CKQoKTm93LCBlYWNoIHRocmVhZCB0YWtlcyBvbmx5IDE2TUIuLi4KU28gaWYgaXQgaXMgZW5vdWdoIGZvciB5b3UsIHVzZSB0aGUgTGl0ZSB2ZXJzaW9uIQ==|6|6 117481|function.get-browser|63|1434521850|shashank|QXMgcnV1ZHJwIGhhZCBnaXZlbiB0aGUgY29kZSBodHRwOi8vcGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24uZ2V0LWJyb3dzZXIucGhwIzEwMTEyNSwgSSBoYXZlIGFkZGVkIGNvZGUgZm9yIEludGVybmV0IEV4cGxvcmVyIDExCgo8P3BocApmdW5jdGlvbiBnZXRCcm93c2VyKCkgCnsgCiAgICAkdV9hZ2VudCA9ICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXTsgCiAgICAkYm5hbWUgPSAnVW5rbm93bic7CiAgICAkcGxhdGZvcm0gPSAnVW5rbm93bic7CiAgICAkdmVyc2lvbj0gIiI7CgogICAgLy9GaXJzdCBnZXQgdGhlIHBsYXRmb3JtPwogICAgaWYgKHByZWdfbWF0Y2goJy9saW51eC9pJywgJHVfYWdlbnQpKSB7CiAgICAgICAgJHBsYXRmb3JtID0gJ2xpbnV4JzsKICAgIH0KICAgIGVsc2VpZiAocHJlZ19tYXRjaCgnL21hY2ludG9zaHxtYWMgb3MgeC9pJywgJHVfYWdlbnQpKSB7CiAgICAgICAgJHBsYXRmb3JtID0gJ21hYyc7CiAgICB9CiAgICBlbHNlaWYgKHByZWdfbWF0Y2goJy93aW5kb3dzfHdpbjMyL2knLCAkdV9hZ2VudCkpIHsKICAgICAgICAkcGxhdGZvcm0gPSAnd2luZG93cyc7CiAgICB9CgogICAgLy8gTmV4dCBnZXQgdGhlIG5hbWUgb2YgdGhlIHVzZXJhZ2VudCB5ZXMgc2VwZXJhdGVseSBhbmQgZm9yIGdvb2QgcmVhc29uCiAgICBpZihwcmVnX21hdGNoKCcvTVNJRS9pJywkdV9hZ2VudCkgJiYgIXByZWdfbWF0Y2goJy9PcGVyYS9pJywkdV9hZ2VudCkpIAogICAgeyAKICAgICAgICAkYm5hbWUgPSAnSW50ZXJuZXQgRXhwbG9yZXInOyAKICAgICAgICAkdWIgPSAiTVNJRSI7IAogICAgfSAKICAgIGVsc2VpZihwcmVnX21hdGNoKCcvVHJpZGVudC9pJywkdV9hZ2VudCkpIAogICAgeyAvLyB0aGlzIGNvbmRpdGlvbiBpcyBmb3IgSUUxMQogICAgICAgICRibmFtZSA9ICdJbnRlcm5ldCBFeHBsb3Jlcic7IAogICAgICAgICR1YiA9ICJydiI7IAogICAgfSAKICAgIGVsc2VpZihwcmVnX21hdGNoKCcvRmlyZWZveC9pJywkdV9hZ2VudCkpIAogICAgeyAKICAgICAgICAkYm5hbWUgPSAnTW96aWxsYSBGaXJlZm94JzsgCiAgICAgICAgJHViID0gIkZpcmVmb3giOyAKICAgIH0gCiAgICBlbHNlaWYocHJlZ19tYXRjaCgnL0Nocm9tZS9pJywkdV9hZ2VudCkpIAogICAgeyAKICAgICAgICAkYm5hbWUgPSAnR29vZ2xlIENocm9tZSc7IAogICAgICAgICR1YiA9ICJDaHJvbWUiOyAKICAgIH0gCiAgICBlbHNlaWYocHJlZ19tYXRjaCgnL1NhZmFyaS9pJywkdV9hZ2VudCkpIAogICAgeyAKICAgICAgICAkYm5hbWUgPSAnQXBwbGUgU2FmYXJpJzsgCiAgICAgICAgJHViID0gIlNhZmFyaSI7IAogICAgfSAKICAgIGVsc2VpZihwcmVnX21hdGNoKCcvT3BlcmEvaScsJHVfYWdlbnQpKSAKICAgIHsgCiAgICAgICAgJGJuYW1lID0gJ09wZXJhJzsgCiAgICAgICAgJHViID0gIk9wZXJhIjsgCiAgICB9IAogICAgZWxzZWlmKHByZWdfbWF0Y2goJy9OZXRzY2FwZS9pJywkdV9hZ2VudCkpIAogICAgeyAKICAgICAgICAkYm5hbWUgPSAnTmV0c2NhcGUnOyAKICAgICAgICAkdWIgPSAiTmV0c2NhcGUiOyAKICAgIH0gCgkKICAgIC8vIGZpbmFsbHkgZ2V0IHRoZSBjb3JyZWN0IHZlcnNpb24gbnVtYmVyCiAgICAvLyBBZGRlZCAifDoiCiAgICAka25vd24gPSBhcnJheSgnVmVyc2lvbicsICR1YiwgJ290aGVyJyk7CgkkcGF0dGVybiA9ICcjKD88YnJvd3Nlcj4nIC4gam9pbignfCcsICRrbm93bikgLgoJICcpWy98OiBdKyg/PHZlcnNpb24+WzAtOS58YS16QS1aLl0qKSMnOwogICAgaWYgKCFwcmVnX21hdGNoX2FsbCgkcGF0dGVybiwgJHVfYWdlbnQsICRtYXRjaGVzKSkgewogICAgICAgIC8vIHdlIGhhdmUgbm8gbWF0Y2hpbmcgbnVtYmVyIGp1c3QgY29udGludWUKICAgIH0KCiAgICAvLyBzZWUgaG93IG1hbnkgd2UgaGF2ZQogICAgJGkgPSBjb3VudCgkbWF0Y2hlc1snYnJvd3NlciddKTsKICAgIGlmICgkaSAhPSAxKSB7CiAgICAgICAgLy93ZSB3aWxsIGhhdmUgdHdvIHNpbmNlIHdlIGFyZSBub3QgdXNpbmcgJ290aGVyJyBhcmd1bWVudCB5ZXQKICAgICAgICAvL3NlZSBpZiB2ZXJzaW9uIGlzIGJlZm9yZSBvciBhZnRlciB0aGUgbmFtZQogICAgICAgIGlmIChzdHJyaXBvcygkdV9hZ2VudCwiVmVyc2lvbiIpIDwgc3Rycmlwb3MoJHVfYWdlbnQsJHViKSl7CiAgICAgICAgICAgICR2ZXJzaW9uPSAkbWF0Y2hlc1sndmVyc2lvbiddWzBdOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJHZlcnNpb249ICRtYXRjaGVzWyd2ZXJzaW9uJ11bMV07CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgJHZlcnNpb249ICRtYXRjaGVzWyd2ZXJzaW9uJ11bMF07CiAgICB9CgogICAgLy8gY2hlY2sgaWYgd2UgaGF2ZSBhIG51bWJlcgogICAgaWYgKCR2ZXJzaW9uPT1udWxsIHx8ICR2ZXJzaW9uPT0iIikgeyR2ZXJzaW9uPSI/Ijt9CgogICAgcmV0dXJuIGFycmF5KAogICAgICAgICd1c2VyQWdlbnQnID0+ICR1X2FnZW50LAogICAgICAgICduYW1lJyAgICAgID0+ICRibmFtZSwKICAgICAgICAndmVyc2lvbicgICA9PiAkdmVyc2lvbiwKICAgICAgICAncGxhdGZvcm0nICA9PiAkcGxhdGZvcm0sCiAgICAgICAgJ3BhdHRlcm4nICAgID0+ICRwYXR0ZXJuCiAgICApOwp9IAoKLy8gbm93IHRyeSBpdAokdWE9Z2V0QnJvd3NlcigpOwokeW91cmJyb3dzZXI9ICJZb3VyIGJyb3dzZXI6ICIgLiAkdWFbJ25hbWUnXSAuICIgIiAuICR1YVsndmVyc2lvbiddIC4gIiBvbiAiIC4kdWFbJ3BsYXRmb3JtJ10gLiAiIHJlcG9ydHM6IDxiciA+IiAuICR1YVsndXNlckFnZW50J107CnByaW50X3IoJHlvdXJicm93c2VyKTsKPz4=|17|10 115073|function.get-browser|60|1400763705|tim at digicol dot de|QmUgYXdhcmUgdGhhdCBsb2FkaW5nIHBocF9icm93c2NhcC5pbmkgdmlhIHRoZSBicm93c2NhcCBwaHAuaW5pIHNldHRpbmcgbWF5IGNvbnN1bWUgYSBub24tdHJpdmlhbCBhbW91bnQgb2YgbWVtb3J5LiBDdXJyZW50IHZlcnNpb25zIGFyZSBzZXZlcmFsIE1CIGluIHNpemUgKGV2ZW4gdGhlIOKAnGxpdGXigJ0gb25lKSBhbmQgY2FuIGVhdCB0ZW5zIG9mIE1CIG9mIFJBTSBpbiBlYWNoIFBIUCBwcm9jZXNzLiBUaGlzIGhhcHBlbnMgZXZlbiBpZiB5b3UgbmV2ZXIgY2FsbCBnZXRfYnJvd3NlcigpIHNpbmNlIHBocF9icm93c2NhcC5pbmkgaXMgbG9hZGVkIHdoZW4gUEhQIGlzIHN0YXJ0aW5nIHVwLgoKTWFrZSBzdXJlIHRvIGxlYXZlIHRoZSBicm93c2NhcCBwaHAuaW5pIHNldHRpbmcgZW1wdHkgaWYgeW91IGRvbuKAmXQgdXNlIGdldF9icm93c2VyKCkg4oCTIG1heWJlIHlvdSBvbmx5IGNhbGwgaXQgb25seSBmcm9tIFBIUCBXZWIgcGFnZXMsIGJ1dCBub3QgZnJvbSBQSFAgQ0xJIGNvZGUuCgpJ4oCZZCByZWNvbW1lbmQgY29tcGFyaW5nIHlvdXIgcHJvY2Vzc2Vz4oCZIG1lbW9yeSBjb25zdW1wdGlvbiB3aXRoIGFuZCB3aXRob3V0IHBocF9icm93c2NhcC5pbmkgYmVpbmcgbG9hZGVkLiBJZiBuZWNlc3NlcmF5LCBjb25zaWRlciBjcmVhdGluZyB5b3VyIG93biBzdHJpcHBlZC1kb3duIGNvcHkgb2YgcGhwX2Jyb3dzY2FwLmluaSB3aXRoIGp1c3QgdGhlIGJyb3dzZXJzIHRoYXQgYXJlIGltcG9ydGFudCB0byB5b3Uu|24|16 104848|function.get-browser|60|1310367126|Anonymous|Rm9yIHRob3NlIG9mIHlvdSB1c2luZyB0aGlzIGZ1bmN0aW9uIHRvIHRhcmdldCBNU0lFLCBhIGJldHRlciBpZGVhIG1heWJlIHRvIHVzZSBNU0lFIHNwZWNpZmljIGNvbmRpdGlvbmFsIGNvbW1lbnRzLiBNb3JlIGluZm86IDxodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM1Mzc1MTIlMjhWUy44NSUyOS5hc3B4Pi4gDQoNCkZvciBleGFtcGxlIHRvIGluZGljYXRlIHlvdXIgZGlzcmVnYXJkIGZvciB1c2VycyBvZiBNU0lFIDYgb3IgZWFybGllcjoNCg0KPCEtLVtpZiBsdCBJRSA3XT5JdCBhcHBlYXJzIHRoYXQgeW91IGFyZSB1c2luZyBhIDxlbT52ZXJ5PC9lbT4gb2xkIHZlcnNpb24gb2YgTVMgSW50ZXJuZXQgRXhwbG9yZXIgKE1TSUUpLiBJZiB5b3Ugc2VyaW91c2x5IHdhbnQgdG8gY29udGludWUgdG8gdXNlIE1TSUUsIGF0IGxlYXN0IDxhIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS93aW5kb3dzL2ludGVybmV0LWV4cGxvcmVyLyI+dXBncmFkZTwvYT4uPCFbZW5kaWZdLS0+|18|12 101125|function.get-browser|56|1290915088|ruudrp at live dot nl|VG8gbXkgc3VycHJpc2UgSSBmb3VuZCB0aGF0IG5vbmUgb2YgdGhlIGdldF9icm93c2VyIGFsdGVybmF0aXZlcyBvdXRwdXQgdGhlIGNvcnJlY3QgbmFtZSAvIHZlcnNpb24gY29tYmluYXRpb24gdGhhdCBJIHdhcyBsb29raW5nIGZvciB1c2luZyBPcGVyYSBvciBDaHJvbWUuIFRoZXkgZWl0aGVyIGdpdmUgdGhlIHdyb25nIG5hbWUgZWcgU2FmYXJpIHdoZW4gaW4gZmFjdCBpdCBzaG91bGQgYmUgQ2hyb21lIGFuZCBpZiB0aGUgdWEgc3RyaW5nIGluY2x1ZGVzIGEgdmVyc2lvbiBudW1iZXIgYXMgd2l0aCB0aGUgbGF0ZXN0IHZlcnNpb25zIG9mIENocm9tZSBhbmQgT3BlcmEgdGhlIHdyb25nIG51bWJlciBpcyByZXBvcnRlZC4gU28gSSB0b29rIGJpdHMgYW5kIHBpZWNlcyBmcm9tIHRoZSB2YXJpb3VzIGV4YW1wbGVzIGFuZCBjb21iaW5lZCB0aGVtIGFuZCBhZGRlZCBhIGNoZWNrIGZvciB2ZXJzaW9uLiAKCjw/cGhwCmZ1bmN0aW9uIGdldEJyb3dzZXIoKSAKeyAKICAgICR1X2FnZW50ID0gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOyAKCSRibmFtZSA9ICdVbmtub3duJzsKCSRwbGF0Zm9ybSA9ICdVbmtub3duJzsKCSR2ZXJzaW9uPSAiIjsKCgkvL0ZpcnN0IGdldCB0aGUgcGxhdGZvcm0/CiAgICBpZiAocHJlZ19tYXRjaCgnL2xpbnV4L2knLCAkdV9hZ2VudCkpIHsKICAgIAkkcGxhdGZvcm0gPSAnbGludXgnOwogICAgfQogICAgZWxzZWlmIChwcmVnX21hdGNoKCcvbWFjaW50b3NofG1hYyBvcyB4L2knLCAkdV9hZ2VudCkpIHsKICAgICAgICAkcGxhdGZvcm0gPSAnbWFjJzsKICAgIH0KICAgIGVsc2VpZiAocHJlZ19tYXRjaCgnL3dpbmRvd3N8d2luMzIvaScsICR1X2FnZW50KSkgewogICAgICAgICRwbGF0Zm9ybSA9ICd3aW5kb3dzJzsKICAgIH0KCQoJLy8gTmV4dCBnZXQgdGhlIG5hbWUgb2YgdGhlIHVzZXJhZ2VudCB5ZXMgc2VwZXJhdGVseSBhbmQgZm9yIGdvb2QgcmVhc29uCglpZihwcmVnX21hdGNoKCcvTVNJRS9pJywkdV9hZ2VudCkgJiYgIXByZWdfbWF0Y2goJy9PcGVyYS9pJywkdV9hZ2VudCkpIAogICAgeyAKCQkkYm5hbWUgPSAnSW50ZXJuZXQgRXhwbG9yZXInOyAKCQkkdWIgPSAiTVNJRSI7IAogICAgfSAKICAgIGVsc2VpZihwcmVnX21hdGNoKCcvRmlyZWZveC9pJywkdV9hZ2VudCkpIAogICAgeyAKCQkkYm5hbWUgPSAnTW96aWxsYSBGaXJlZm94JzsgCiAgICAgICAgJHViID0gIkZpcmVmb3giOyAKICAgIH0gCiAgICBlbHNlaWYocHJlZ19tYXRjaCgnL0Nocm9tZS9pJywkdV9hZ2VudCkpIAogICAgeyAKCQkkYm5hbWUgPSAnR29vZ2xlIENocm9tZSc7IAoJCSR1YiA9ICJDaHJvbWUiOyAKICAgIH0gCiAgICBlbHNlaWYocHJlZ19tYXRjaCgnL1NhZmFyaS9pJywkdV9hZ2VudCkpIAogICAgeyAKCQkkYm5hbWUgPSAnQXBwbGUgU2FmYXJpJzsgCiAgICAgICAgJHViID0gIlNhZmFyaSI7IAogICAgfSAKICAgIGVsc2VpZihwcmVnX21hdGNoKCcvT3BlcmEvaScsJHVfYWdlbnQpKSAKICAgIHsgCgkJJGJuYW1lID0gJ09wZXJhJzsgCiAgICAgICAgJHViID0gIk9wZXJhIjsgCgl9IAogICAgZWxzZWlmKHByZWdfbWF0Y2goJy9OZXRzY2FwZS9pJywkdV9hZ2VudCkpIAogICAgeyAKCQkkYm5hbWUgPSAnTmV0c2NhcGUnOyAKICAgICAgICAkdWIgPSAiTmV0c2NhcGUiOyAKCX0gCgkKCS8vIGZpbmFsbHkgZ2V0IHRoZSBjb3JyZWN0IHZlcnNpb24gbnVtYmVyCgkka25vd24gPSBhcnJheSgnVmVyc2lvbicsICR1YiwgJ290aGVyJyk7CgkkcGF0dGVybiA9ICcjKD88YnJvd3Nlcj4nIC4gam9pbignfCcsICRrbm93bikgLgogICAgJylbLyBdKyg/PHZlcnNpb24+WzAtOS58YS16QS1aLl0qKSMnOwoJaWYgKCFwcmVnX21hdGNoX2FsbCgkcGF0dGVybiwgJHVfYWdlbnQsICRtYXRjaGVzKSkgewoJCS8vIHdlIGhhdmUgbm8gbWF0Y2hpbmcgbnVtYmVyIGp1c3QgY29udGludWUKCX0KCQoJLy8gc2VlIGhvdyBtYW55IHdlIGhhdmUKCSRpID0gY291bnQoJG1hdGNoZXNbJ2Jyb3dzZXInXSk7CglpZiAoJGkgIT0gMSkgewoJCS8vd2Ugd2lsbCBoYXZlIHR3byBzaW5jZSB3ZSBhcmUgbm90IHVzaW5nICdvdGhlcicgYXJndW1lbnQgeWV0CgkJLy9zZWUgaWYgdmVyc2lvbiBpcyBiZWZvcmUgb3IgYWZ0ZXIgdGhlIG5hbWUKCQlpZiAoc3Rycmlwb3MoJHVfYWdlbnQsIlZlcnNpb24iKSA8IHN0cnJpcG9zKCR1X2FnZW50LCR1YikpewoJCQkkdmVyc2lvbj0gJG1hdGNoZXNbJ3ZlcnNpb24nXVswXTsKCQl9CgkJZWxzZSB7CgkJCSR2ZXJzaW9uPSAkbWF0Y2hlc1sndmVyc2lvbiddWzFdOwoJCX0KCX0KCWVsc2UgewoJCSR2ZXJzaW9uPSAkbWF0Y2hlc1sndmVyc2lvbiddWzBdOwoJfQoJCgkvLyBjaGVjayBpZiB3ZSBoYXZlIGEgbnVtYmVyCglpZiAoJHZlcnNpb249PW51bGwgfHwgJHZlcnNpb249PSIiKSB7JHZlcnNpb249Ij8iO30KCQoJcmV0dXJuIGFycmF5KAogICAgCSd1c2VyQWdlbnQnID0+ICR1X2FnZW50LAogICAgICAgICduYW1lJyAgICAgID0+ICRibmFtZSwKICAgICAgICAndmVyc2lvbicgICA9PiAkdmVyc2lvbiwKICAgICAgICAncGxhdGZvcm0nICA9PiAkcGxhdGZvcm0sCgkJJ3BhdHRlcm4nCT0+ICRwYXR0ZXJuCiAgICApOwp9IAoKLy8gbm93IHRyeSBpdAokdWE9Z2V0QnJvd3NlcigpOwokeW91cmJyb3dzZXI9ICJZb3VyIGJyb3dzZXI6ICIgLiAkdWFbJ25hbWUnXSAuICIgIiAuICR1YVsndmVyc2lvbiddIC4gIiBvbiAiIC4kdWFbJ3BsYXRmb3JtJ10gLiAiIHJlcG9ydHM6IDxiciA+IiAuICR1YVsndXNlckFnZW50J107CnByaW50X3IoJHlvdXJicm93c2VyKTsKPz4=|235|185 76614|function.get-browser|57|1185158470|mike at mike-griffiths dot co dot uk|WW91IHNob3VsZCBub3QgcmVseSBvbiBqdXN0IHRoaXMgZm9yIGNyb3NzLWJyb3dzZXIgY29tcGF0aWJpbGl0eSBpc3N1ZXMuICBHb29kIHByYWN0aWNlIHdvdWxkIGJlIHRvIGluY2x1ZGUgSFRNTCBpZi1zdGF0ZW1lbnRzIGZvciBJRSBzdHlsZXNoZWV0cyBhcyB3ZWxsIGFzIGR5bmFtaWNhbGx5IGNoZWNraW5nIHRoZSBicm93c2VyIHR5cGUu|8|6 41008|function.get-browser|55|1080285282|max at phpexpert dot de|QmUgYXdhcmUgb2YgdGhlIGZhY3QgdGhhdCB0aGlzIGZ1bmN0aW9uIHNob3dzIHdoYXQgYSBzcGVjaWZpYyBicm93c2VyIG1pZ2h0IGJlIGFibGUgdG8gc2hvdywgYnV0IE5PVCB3aGF0IHRoZSB1c2VyIGhhcyB0dXJuZWQgb24vb2ZmLgoKU28gbWF5YmUgdGhpcyBmdW5jdGlvbiB0ZWxscyB5b3UgdGhhdCB0aGUgYnJvd3NlciBpcyBhYmVsIHRvIHRvIGphdmFzY3JpcHQgZXZlbiB3aGVuIGphdmFzY3JpcHQgaXMgdHVybmVkIG9mZiBieSB0aGUgdXNlci4=|12|10