Sindbad~EG File Manager

Current Path : /var/www/web3/g2data/cache/repository/released/modules/
Upload File :
Current File : /var/www/web3/g2data/cache/repository/released/modules/rss-1.1.0-16041-base.package

<?php
function unpack_c19e8c72e9($outputDir) {
/* Create directory structure. */
@mkdir($outputDir . 'classes');
@mkdir($outputDir . 'classes/GalleryStorage');
@mkdir($outputDir . 'locale');
@mkdir($outputDir . 'po');
@mkdir($outputDir . 'templates');
@mkdir($outputDir . 'templates/blocks');
/* Recreate individual files. */
expand_c19e8c72e9($outputDir, 'Callbacks.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogQHBhY2thZ2UgUnNzCiAqIEBhdXRob3IgUGllcnJlLUx1YyBQYW91cgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICovCmNsYXNzIFJzc0NhbGxiYWNrcyB7CgogICAgZnVuY3Rpb24gY2FsbGJhY2soJHBhcmFtcywgJiRzbWFydHksICRjYWxsYmFjaywgJHVzZXJJZD1udWxsKSB7CglzdGF0aWMgJGZlZWRzOwoKCUdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9yc3MvY2xhc3Nlcy9Sc3NNYXBIZWxwZXIuY2xhc3MnKTsKCXN3aXRjaCgkY2FsbGJhY2spIHsKCWNhc2UgJ0ZlZWRMaXN0JzoKCSAgICBpZiAoZW1wdHkoJHBhcmFtc1snbnVtYmVyJ10pKSB7CgkJLyogd2UncmUgY2FsbGVkIGR1cmluZyBwcmVsb2FkLCBzbyB3ZSBoYXZlIHRvIGZpbmQgdGhlIHBhcmFtcyBhbm90aGVyIHdheSAqLwoJCSRibG9ja3MgPSAkc21hcnR5LT5fdHBsX3ZhcnNbJ3RoZW1lJ11bJ3BhcmFtcyddWydzaWRlYmFyQmxvY2tzJ107CgoJCWlmIChpc3NldCgkYmxvY2tzKSkgewoJCSAgICBmb3JlYWNoICgkYmxvY2tzIGFzICRibG9jaykgewoJCQlpZiAoJGJsb2NrWzBdID09ICdyc3MuUnNzQmxvY2snKSB7CgkJCSAgICAkcGFyYW1zID0gJGJsb2NrWzFdOwoJCQkgICAgYnJlYWs7CgkJCX0KCQkgICAgfQoJCX0KCgkJaWYgKGVtcHR5KCRwYXJhbXNbJ251bWJlciddKSkgewoJCSAgICAvKiBzdGlsbCBlbXB0eSwgcHJvYmFibHkgYmVjYXVzZSB0aGUgdXNlciBuZXZlciBjaGFuZ2VkIHRoZSBkZWZhdWx0ICovCgkJICAgICRwYXJhbXNbJ251bWJlciddID0gJzUnOwoJCX0KCSAgICB9CgoJICAgIC8qIHNpbmNlIHdlIGdldCBjYWxsZWQgdHdpY2UgKG9uY2UgZm9yIHRoZSBibG9jaywgb25jZSBmb3IgdGhlIGhlYWQpLCBjYWNoZSB0aGUgZmVlZHMgKi8KCSAgICBpZiAoIWlzc2V0KCRmZWVkcykpIHsKCQlsaXN0ICgkcmV0LCAkZmVlZHMpID0gUnNzTWFwSGVscGVyOjpmZXRjaEZlZWROYW1lcygoaW50KSAkcGFyYW1zWydudW1iZXInXSk7CgkJaWYgKCRyZXQpIHsKCQkgICAgcmV0dXJuICRyZXQ7CgkJfQoJICAgIH0KCgkgICAgJGJsb2NrID0mICRzbWFydHktPl90cGxfdmFyc1snYmxvY2snXTsKCSAgICAkYmxvY2tbJ3JzcyddWydmZWVkcyddID0gJGZlZWRzOwoJICAgICRibG9ja1sncnNzJ11bJ3Nob3dNb3JlJ10gPSAhZW1wdHkoJGZlZWRzKTsKCgkgICAgcmV0dXJuIG51bGw7Cgl9CgoJcmV0dXJuIEdhbGxlcnlDb3JlQXBpOjplcnJvcihFUlJPUl9CQURfUEFSQU1FVEVSKTsKICAgIH0KfQo/Pgo=');
expand_c19e8c72e9($outputDir, 'EditFeed.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgpHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcnNzL2NsYXNzZXMvUnNzTWFwSGVscGVyLmNsYXNzJyk7CkdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9yc3MvY2xhc3Nlcy9Sc3NIZWxwZXIuY2xhc3MnKTsKCi8qKgogKiBFZGl0IFJTUyBmZWVkIHNldHRpbmdzCiAqIEBwYWNrYWdlIFJzcwogKiBAc3VicGFja2FnZSBVc2VySW50ZXJmYWNlCiAqIEBhdXRob3IgSm9uYXRhbiBIZXltYW4gPGh0dHA6Ly9oZXltYW4uaW5mbz4sCiAqIEBhdXRob3IgUGllcnJlLUx1YyBQYW91cgogKiBAYXV0aG9yIERhbmllbCBHcnVuZCA8aHR0cDovL3d3dy5waG90b2dydW5kLm5sPgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICovCmNsYXNzIEVkaXRGZWVkQ29udHJvbGxlciBleHRlbmRzIEdhbGxlcnlDb250cm9sbGVyIHsKCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeUNvbnRyb2xsZXI6OmhhbmRsZVJlcXVlc3QKICAgICAqLwogICAgZnVuY3Rpb24gaGFuZGxlUmVxdWVzdCgkZm9ybSkgewoJZ2xvYmFsICRnYWxsZXJ5OwoJJHN0YXR1cyA9ICRyZXN1bHRzID0gJGVycm9yID0gYXJyYXkoKTsKCgkkbW9kZSA9IGVtcHR5KCRmb3JtWydtb2RlJ10pID8gJycgOiAkZm9ybVsnbW9kZSddOwoJJGl0ZW1JZCA9ICFlbXB0eSgkZm9ybVsnaXRlbUlkJ10pID8gKGludCkkZm9ybVsnaXRlbUlkJ10KCQkJCQkgIDogKGludClHYWxsZXJ5VXRpbGl0aWVzOjpnZXRSZXF1ZXN0VmFyaWFibGVzKCdpdGVtSWQnKTsKCglsaXN0ICgkcmV0LCAkaXRlbSkgPSBHYWxsZXJ5Q29yZUFwaTo6bG9hZEVudGl0aWVzQnlJZCgkaXRlbUlkKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoJbGlzdCAoJHJldCwgJHBhcmFtKSA9IEdhbGxlcnlDb3JlQXBpOjpmZXRjaEFsbFBsdWdpblBhcmFtZXRlcnMoJ21vZHVsZScsICdyc3MnKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoJbGlzdCAoJHJldCkgPQoJICAgIFJzc01hcEhlbHBlcjo6Y2FuQ29uZmlndXJlRmVlZCgkaXRlbSwgJHBhcmFtLCAkZ2FsbGVyeS0+Z2V0QWN0aXZlVXNlcklkKCksIHRydWUpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJLyogQ2hlY2sgd2hpY2ggYnV0dG9uIHdhcyBwcmVzc2VkICovCglpZiAoaXNzZXQoJGZvcm1bJ2FjdGlvbiddWydjcmVhdGUnXSkgfHwgaXNzZXQoJGZvcm1bJ2FjdGlvbiddWyd1cGRhdGUnXSkpIHsKCSAgICAvKgoJICAgICAqIEVpdGhlciBuZXcgZmVlZCBzZXR0aW5ncyB3aGVyZSBjcmVhdGVkIG9yIGV4aXN0aW5nIHdoZXJlIHVwZGF0ZWQuCgkgICAgICogRmlyc3QgZG8gc29tZSBlcnJvciBjaGVja2luZywKCSAgICAgKiBpZiBjaGVjayBmYWlscyBkaXNwbGF5IGVycm9yIG9uIHBhZ2UKCSAgICAgKiBmaXJzdCBudW1lcmljYWwgdmFsdWVzLgoJICAgICAqLwoJICAgIGZvcmVhY2ggKGFycmF5KCdpdGVtSWQnLAoJCQkgICAnY291bnQnLAoJCQkgICAndHRsJykgYXMgJHZhbHVlKSB7CgkJaWYgKCFpc3NldCgkZm9ybVskdmFsdWVdKSB8fCAoKGludCkkZm9ybVskdmFsdWVdKSA8IDApIHsKCQkgICAgJGVycm9yW10gPSAnZm9ybVtlcnJvcl1bJyAuICR2YWx1ZSAuICddJzsKCQl9CgkgICAgfQoKCSAgICAvKiBjaGVjayBzdHJpbmdzIG1heSBiZSAnJyBvciBjb250YWluIGEgdmFsdWUgKi8KCSAgICBmb3JlYWNoIChhcnJheSgndmVyc2lvbicsCgkJCSAgICdjYXRlZ29yeScsCgkJCSAgICdkZXNjcmlwdGlvbicsCgkJCSAgICdjbG91ZERvbWFpbicsCgkJCSAgICdjbG91ZFBhdGgnLAoJCQkgICAnY2xvdWRSZWdpc3RlclByb2NlZHVyZScsCgkJCSAgICdjbG91ZFByb3RvY29sJywKCQkJICAgJ2Nsb3VkUG9ydCcsCgkJCSAgICdsYW5ndWFnZScsCgkJCSAgICdmZWVkTmFtZScpIGFzICR2YWx1ZSkgewoJCWlmICghaXNzZXQoJGZvcm1bJHZhbHVlXSkpIHsKCQkgICAgJGVycm9yW10gPSAnZm9ybVtlcnJvcl1bJyAuICR2YWx1ZSAuICddJzsKCQl9CgkgICAgfQoKCSAgICAvKiBjaGVjayB0aGUgbmFtZSAqLwoJICAgIGlmIChlbXB0eSgkZm9ybVsnZmVlZE5hbWUnXSkpIHsKCQkkZXJyb3JbXSA9ICdmb3JtW2Vycm9yXVtmZWVkTmFtZV0nOwoJICAgIH0KCgkgICAgLyogY29uZGl0aW9uYWxseSBjaGVjayB0aGUgcmVjdXJzZSBsaW1pdCAqLwoJICAgIGlmICgkZm9ybVsnZmVlZFR5cGUnXSA9PSAncGhvdG9zUmVjdXJzZScgJiYKCQkgICAgKCFpc3NldCgkZm9ybVsncGhvdG9zUmVjdXJzZUxpbWl0J10pIHx8CgkJCSgoaW50KSRmb3JtWydwaG90b3NSZWN1cnNlTGltaXQnXSkgPCAwKSkgewoJCSRlcnJvcltdID0gJ2Zvcm1bZXJyb3JdW3Bob3Rvc1JlY3Vyc2VMaW1pdF0nOwoJICAgIH0KCgkgICAgLyogSWYgdGhlcmUgYXJlIG5vIGZvcm0gZXJyb3JzLCBjcmVhdGUgYXJyYXkgdG8gYmUgc2F2ZWQgdG8gREIgKi8KCSAgICBpZiAoZW1wdHkoJGVycm9yKSkgewoJCSRwYXJhbWV0ZXJzID0gYXJyYXkoJ2l0ZW1JZCcgPT4gJGZvcm1bJ2l0ZW1JZCddLAoJCSAgICAnZmVlZFR5cGUnID0+ICRmb3JtWydmZWVkVHlwZSddLAoJCSAgICAnZmVlZERhdGUnID0+ICRmb3JtWydmZWVkRGF0ZSddLAoJCSAgICAndmVyc2lvbicgPT4gJGZvcm1bJ3ZlcnNpb24nXSwKCQkgICAgJ2NvdW50JyA9PiAkZm9ybVsnY291bnQnXSwKCQkgICAgJ3R0bCcgPT4gJGZvcm1bJ3R0bCddLAoJCSAgICAnY2F0ZWdvcnknID0+ICRmb3JtWydjYXRlZ29yeSddLAoJCSAgICAnbGFuZ3VhZ2UnID0+ICRmb3JtWydsYW5ndWFnZSddLAoJCSAgICAnY29weXJpZ2h0JyA9PiAkZm9ybVsnY29weXJpZ2h0J10sCgkJICAgICdkZXNjcmlwdGlvbicgPT4gJGZvcm1bJ2Rlc2NyaXB0aW9uJ10sCgkJICAgICd1c2VJbWFnZScgPT4gKGlzc2V0KCRmb3JtWyd1c2VJbWFnZSddKSA/ICcxJyA6ICcwJyksCgkJICAgICd1c2VFbmNsb3N1cmUnID0+IChpc3NldCgkZm9ybVsndXNlRW5jbG9zdXJlJ10pID8gJzEnIDogJzAnKSwKCQkgICAgJ3VzZUNsb3VkJyA9PiAoaXNzZXQoJGZvcm1bJ3VzZUNsb3VkJ10pID8gJzEnIDogJzAnKSk7CgoJCWlmICgkcGFyYW1ldGVyc1snZmVlZFR5cGUnXSA9PSAncGhvdG9zUmVjdXJzZScpIHsKCQkgICAgJHBhcmFtZXRlcnNbJ3Bob3Rvc1JlY3Vyc2VMaW1pdCddID0gJGZvcm1bJ3Bob3Rvc1JlY3Vyc2VMaW1pdCddOwoJCX0KCgkJaWYgKGlzc2V0KCRmb3JtWyd1c2VDbG91ZCddKSkgewoJCSAgICAkcGFyYW1ldGVycyA9IGFycmF5X21lcmdlKCRwYXJhbWV0ZXJzLAoJCQlhcnJheSgnY2xvdWREb21haW4nID0+ICRmb3JtWydjbG91ZERvbWFpbiddLAoJCQkgICAgICAnY2xvdWRQb3J0JyA9PiAkZm9ybVsnY2xvdWRQb3J0J10sCgkJCSAgICAgICdjbG91ZFBhdGgnID0+ICRmb3JtWydjbG91ZFBhdGgnXSwKCQkJICAgICAgJ2Nsb3VkUmVnaXN0ZXJQcm9jZWR1cmUnID0+ICRmb3JtWydjbG91ZFJlZ2lzdGVyUHJvY2VkdXJlJ10sCgkJCSAgICAgICdjbG91ZFByb3RvY29sJyA9PiAkZm9ybVsnY2xvdWRQcm90b2NvbCddKSk7CgkJfQoKCQkvKiBDaGVjayBpZiB3ZSBuZWVkIHRvIHVwZGF0ZSBhIGN1cnJlbnQgZmVlZCwgb3IgY3JlYXRlIGEgbmV3IG9uZSAqLwoJCWlmIChpc3NldCgkZm9ybVsnYWN0aW9uJ11bJ2NyZWF0ZSddKSkgewoJCSAgICAkcmV0ID0gUnNzTWFwSGVscGVyOjpjcmVhdGVGZWVkKCRmb3JtWydmZWVkTmFtZSddLCAkcGFyYW1ldGVycyk7CgkJfSBlbHNlIHsKCQkgICAgJHJldCA9IFJzc01hcEhlbHBlcjo6dXBkYXRlRmVlZCgkZm9ybVsnZmVlZE5hbWUnXSwgJHBhcmFtZXRlcnMpOwoJCX0KCgkJLyogQ2hlY2sgdG8gc2VlIGlmIERCIHVwZGF0ZSB3YXMgc3VjY2Vzc2Z1bCAqLwoJCWlmICgkcmV0KSB7CgkJICAgIC8qIElmIHdlIGdvdCBhbnl0aGluZyBvdGhlciB0aGFuIGEgRVJST1JfQ09MTElTSU9OLCBleGl0ICovCgkJICAgIGlmICghKCRyZXQtPmdldEVycm9yQ29kZSgpICYgRVJST1JfQ09MTElTSU9OKSkgewoJCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkJICAgIH0KCgkJICAgIC8qCgkJICAgICAqIElmIGl0IGlzIHN0YXRlIGl0IGlzIGEgJ2ZlZWROYW1lQ29sbGlzaW9uJwoJCSAgICAgKiBTZXQgb3VyIGVycm9yIHN0YXR1cyBhbmQgZmFsbCBiYWNrIHRvIHRoZSB2aWV3LgoJCSAgICAgKi8KCQkgICAgJGVycm9yW10gPSAnZm9ybVtlcnJvcl1bZmVlZE5hbWVDb2xsaXNpb25dJzsKCQl9IGVsc2UgewoJCSAgICAvKiBTYXZlIHdhcyBzdWNjZXNzZnVsIGNoYW5nZSBzdGF0dXMgdG8gcmVmZWN0IHRoaXMgKi8KCQkgICAgJHN0YXR1c1snc2F2ZWQnXSA9IDE7CgkJICAgICRtb2RlID0gJ2VkaXQnOwoJCX0KCSAgICB9IGVsc2UgewoJCSRtb2RlID0gaXNzZXQoJGZvcm1bJ2FjdGlvbiddWydjcmVhdGUnXSk/J25ldyc6J2VkaXQnOwoJICAgIH0KCX0gZWxzZSBpZiAoaXNzZXQoJGZvcm1bJ2FjdGlvbiddWydjYW5jZWwnXSkpIHsKCSAgICAvKiBDYW5jZWwgYnV0dG9uIHdhcyBwcmVzc2VkLCBkbyBub3RoaW5nLCByZXR1cm4gdG8gZmVlZGxpc3QgKi8KCSAgICAkbW9kZSA9ICdsaXN0JzsKCX0gZWxzZSBpZiAoaXNzZXQoJGZvcm1bJ2FjdGlvbiddWydkZWxldGUnXSkpIHsKCSAgICAvKgoJICAgICAqIERlbGV0ZSBidXR0b24gd2FzIHByZXNzZWQsIGRlbGV0ZSBmZWVkLCByZXR1cm4gdG8gZmVlZGxpc3QuCgkgICAgICogV2UgbWlnaHQgd2FudCB0byBwcm92aWRlIGFuICdhcmUgeW91IHN1cmUnIGhlcmUgaW4gdGhlIGZ1dHVyZS4KCSAgICAgKi8KCSAgICAkcmV0ID0gUnNzTWFwSGVscGVyOjpkZWxldGVGZWVkKCRmb3JtWydhY3Rpb24nXVsnZGVsZXRlJ10pOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJICAgIH0KCgkgICAgJHN0YXR1c1snZGVsZXRlZCddID0gMTsKCSAgICAkbW9kZSA9ICdsaXN0JzsKCX0KCgkvKiBmaWd1cmUgb3V0IHRoZSBtZXRob2Qgd2Ugd2lsbCB1c2UgKi8KCSRtZXRob2QgPSBlbXB0eSgkZXJyb3IpID8gJ3JlZGlyZWN0JyA6ICdkZWxlZ2F0ZSc7CgkkcmVzdWx0c1snc3RhdHVzJ10gPSAkc3RhdHVzOwoJJHJlc3VsdHNbJ2Vycm9yJ10gPSAkZXJyb3I7CgkkcmVzdWx0c1skbWV0aG9kXVsndmlldyddID0gJ2NvcmUuSXRlbUFkbWluJzsKCSRyZXN1bHRzWyRtZXRob2RdWydzdWJWaWV3J10gPSAncnNzLkVkaXRGZWVkJzsKCSRyZXN1bHRzWyRtZXRob2RdWydpdGVtSWQnXSA9ICRpdGVtSWQ7CgkkcmVzdWx0c1skbWV0aG9kXVsnbW9kZSddID0gJG1vZGU7CgoJaWYgKGVtcHR5KCRlcnJvcikpIHsKCSAgICAkcmVzdWx0c1skbWV0aG9kXVsnZm9ybSddID0gJGZvcm07Cgl9CgoJcmV0dXJuIGFycmF5KG51bGwsICRyZXN1bHRzKTsKICAgIH0KfQoKCi8qKgogKiBUaGlzIHZpZXcgd2lsbCBzaG93IGEgZm9ybSB0byBnZW5lcmF0ZSBhbiBVUkwgdG8gYW4gUlNTIGZlZWQuCiAqLwpjbGFzcyBFZGl0RmVlZFZpZXcgZXh0ZW5kcyBHYWxsZXJ5VmlldyB7CiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeVZpZXc6OmxvYWRUZW1wbGF0ZQogICAgICovCiAgICBmdW5jdGlvbiBsb2FkVGVtcGxhdGUoJiR0ZW1wbGF0ZSwgJiRmb3JtKSB7CglnbG9iYWwgJGdhbGxlcnk7CgoJLyogTG9hZCB0aGUgaXRlbSAqLwoJbGlzdCAoJHJldCwgJGl0ZW0pID0gJHRoaXMtPmdldEl0ZW0oKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoKCS8qIEZldGNoIG1vZHVsZSBwYXJhbWV0ZXJzIGFuZCBzYXZlIHRoZW0gaW4gYW4gYXJyYXkgcGFzc2VkIHRvIHRoZSB0ZW1wbGF0ZSBlbmdpbmUgKi8KCWxpc3QgKCRyZXQsICRwYXJhbSkgPSBHYWxsZXJ5Q29yZUFwaTo6ZmV0Y2hBbGxQbHVnaW5QYXJhbWV0ZXJzKCdtb2R1bGUnLCAncnNzJyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCWxpc3QgKCRyZXQpID0KCSAgICBSc3NNYXBIZWxwZXI6OmNhbkNvbmZpZ3VyZUZlZWQoJGl0ZW0sICRwYXJhbSwgJGdhbGxlcnktPmdldEFjdGl2ZVVzZXJJZCgpLCB0cnVlKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoKCSRFZGl0RmVlZCA9IGFycmF5KCk7CgkkRWRpdEZlZWRbJ2l0ZW1JZCddID0gR2FsbGVyeVV0aWxpdGllczo6Z2V0UmVxdWVzdFZhcmlhYmxlcygnaXRlbUlkJyk7CgoJLyogRmV0Y2ggYWxsIGZlZWQgZGVmaW5pdGlvbnMgKi8KCWxpc3QgKCRyZXQsICRmZWVkcykgPSBSc3NNYXBIZWxwZXI6OmZldGNoRmVlZHNGb3JJdGVtKCRFZGl0RmVlZFsnaXRlbUlkJ10pOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJJEVkaXRGZWVkWydtb2RlJ10gPSBHYWxsZXJ5VXRpbGl0aWVzOjpnZXRSZXF1ZXN0VmFyaWFibGVzKCdtb2RlJyk7CglpZiAoZW1wdHkoJEVkaXRGZWVkWydtb2RlJ10pKSB7CgkgICAgLyogRW50ZXJpbmcgdGhpcyBtb2R1bGUsIHBpY2sgdGhlIGZpcnN0IHBhZ2UgKi8KCSAgICBpZiAoZW1wdHkoJGZlZWRzKSkgewoJCS8qIE5vIGZlZWRzIGRlZmluZWQgeWV0OiBzaG93IG5ldyAqLwoJCSRFZGl0RmVlZFsnbW9kZSddID0gJ25ldyc7CgkgICAgfSBlbHNlIHsKCQkvKiBPdGhlcndpc2Ugc2hvdyB0aGUgbGlzdCAqLwoJCSRFZGl0RmVlZFsnbW9kZSddID0gJ2xpc3QnOwoJICAgIH0KCX0KCgkvKiBTd2l0Y2hpbmcgb24gd2hpY2ggcGFnZSB0byBkaXNwbGF5ICovCglpZiAoJEVkaXRGZWVkWydtb2RlJ10gPT0gJ25ldycpIHsKCSAgICAvKiBDcmVhdGUgbmV3IGZlZWQgKi8KCSAgICBpZiAoZW1wdHkoJGZvcm1bJ2Vycm9yJ10pKSB7CgkJLyogbm8gZXJyb3I6IGxvYWQgZGVmYXVsdCBwYXJhbWV0ZXJzICovCgkJJGZvcm1bJ2Zvcm1OYW1lJ10gPSAnRWRpdEZlZWQnOwoKCQlpZiAoR2FsbGVyeVV0aWxpdGllczo6aXNBKCRpdGVtLCAnR2FsbGVyeUFsYnVtSXRlbScpKSB7CgkJICAgICRFZGl0RmVlZFsndHlwZSddID0gJ2FsYnVtJzsKCQkgICAgJEVkaXRGZWVkWydmZWVkVHlwZSddID0gJ3Bob3Rvcyc7CgkJfSBlbHNlIGlmIChHYWxsZXJ5VXRpbGl0aWVzOjppc0EoJGl0ZW0sICdHYWxsZXJ5RGF0YUl0ZW0nKSkgewoJCSAgICAkRWRpdEZlZWRbJ3R5cGUnXSA9ICdwaG90byc7CgkJICAgICRFZGl0RmVlZFsnZmVlZFR5cGUnXSA9ICdjb21tZW50c1Bob3RvJzsKCQl9CgoJCSRmZWVkRGF0ZSA9ICd1cGRhdGVkJzsKCgkJLyoKCQkgKiBTZXQgc29tZSBkZWZhdWx0IHZhbHVlcwoJCSAqIFVzZSB0aGUgZGVmYXVsdCBzZXR0aW5ncyBmcm9tIHRoZSBEQi4KCQkgKiBBbGwgdGhlc2Ugc2V0dGluZ3MgY2FuIGJlIG92ZXJ3cml0dGVuIGJ5IHVzZXIuCgkJICovCgkJZm9yZWFjaCAoYXJyYXkoJ3ZlcnNpb24nID0+ICRwYXJhbVsnZGVmYXVsdFZlcnNpb24nXSwKCQkJICAgICAgICdjb3VudCcgPT4gJHBhcmFtWydkZWZhdWx0Q291bnQnXSwKCQkJICAgICAgICd1c2VJbWFnZScgPT4gdHJ1ZSwKCQkJICAgICAgICd1c2VFbmNsb3N1cmUnID0+IGZhbHNlLAoJCQkgICAgICAgJ3VzZUNsb3VkJyA9PiBmYWxzZSwKCQkJICAgICAgICdjbG91ZERvbWFpbicgPT4gJycsCgkJCSAgICAgICAnY2xvdWRQb3J0JyA9PiAnJywKCQkJICAgICAgICdjbG91ZFBhdGgnID0+ICcnLAoJCQkgICAgICAgJ2Nsb3VkUmVnaXN0ZXJQcm9jZWR1cmUnID0+ICcnLAoJCQkgICAgICAgJ2Nsb3VkUHJvdG9jb2wnID0+ICcnLAoJCQkgICAgICAgJ3Bob3Rvc1JlY3Vyc2VMaW1pdCcgPT4gJzAnLAoJCQkgICAgICAgJ3R0bCcgPT4gJHBhcmFtWydkZWZhdWx0VHRsJ10sCgkJCSAgICAgICAnY2F0ZWdvcnknID0+ICcnLAoJCQkgICAgICAgJ2Rlc2NyaXB0aW9uJyA9PiAnJywKCQkJICAgICAgICdsYW5ndWFnZScgPT4gJ2VuLXVzJywKCQkJICAgICAgICdjb3B5cmlnaHQnID0+ICRwYXJhbVsnZGVmYXVsdENvcHlyaWdodCddLAoJCQkgICAgICAgJ2ZlZWREYXRlJyA9PiAndXBkYXRlZCcpIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkJICAgICRFZGl0RmVlZFska2V5XSA9ICR2YWx1ZTsKCQl9CgoJICAgIH0gZWxzZSB7CgkJLyogVGhlcmUgd2FzIGFuIGVycm9yOiBqdXN0IGxlYXZlIHRoZSBmb3JtIHRoZSBzYW1lIGl0IHdhcyAqLwoJCSRFZGl0RmVlZCA9IGFycmF5X21lcmdlKCRFZGl0RmVlZCwgJGZvcm0pOwoJICAgIH0KCX0gZWxzZSBpZiAoJEVkaXRGZWVkWydtb2RlJ10gPT0gJ2VkaXQnKSB7CgkgICAgLyoKCSAgICAgKiBFZGl0aW5nIGEgZmVlZC4KCSAgICAgKiBMb2FkIHRoZSBmZWVkIHBhcmFtZXRlcnMKCSAgICAgKi8KCSAgICBpZiAoZW1wdHkoJGZvcm1bJ2Vycm9yJ10pKSB7CgkJLyogbm8gZXJyb3I6IGxvYWQgcGFyYW1ldGVycyBmcm9tIERCIHVzaW5nIHRoZSAnZmVlZE5hbWUnICovCgkJbGlzdCAoJHJldCwgJGZlZWQpID0gUnNzTWFwSGVscGVyOjpmZXRjaEZlZWQoJGZvcm1bJ2ZlZWROYW1lJ10pOwoJCWlmICgkcmV0KSB7CgkJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCQl9CgoJCSRFZGl0RmVlZCA9IGFycmF5X21lcmdlKCRFZGl0RmVlZCwgJGZlZWQpOwoKCQlpZiAoR2FsbGVyeVV0aWxpdGllczo6aXNBKCRpdGVtLCAnR2FsbGVyeUFsYnVtSXRlbScpKSB7CgkJICAgICRFZGl0RmVlZFsndHlwZSddID0gJ2FsYnVtJzsKCQl9IGVsc2UgaWYgKEdhbGxlcnlVdGlsaXRpZXM6OmlzQSgkaXRlbSwgJ0dhbGxlcnlEYXRhSXRlbScpKSB7CgkJICAgICRFZGl0RmVlZFsndHlwZSddID0gJ3Bob3RvJzsKCQl9CgoJCSR1cmxnZW5lcmF0b3IgPSAkZ2FsbGVyeS0+R2V0VXJsR2VuZXJhdG9yKCk7CgkJJEVkaXRGZWVkWydmZWVkVXJsJ10gPSAkdXJsZ2VuZXJhdG9yLT5nZW5lcmF0ZVVybCgKCQkgICAgYXJyYXkoJ3ZpZXcnID0+ICdyc3MuUmVuZGVyJywgJ25hbWUnID0+ICRmb3JtWydmZWVkTmFtZSddKSwKCQkJYXJyYXkoJ2ZvcmNlU2Vzc2lvbklkJyA9PiBmYWxzZSwgJ2ZvcmNlRnVsbFVybCcgPT4gdHJ1ZSkpOwoJICAgIH0gZWxzZSB7CgkJLyogVGhlcmUgd2FzIGFuIGVycm9yOiBqdXN0IGxlYXZlIHRoZSBmb3JtIHRoZSBzYW1lIGl0IHdhcyAqLwoJCSRFZGl0RmVlZCA9IGFycmF5X21lcmdlKCRFZGl0RmVlZCwgJGZvcm0pOwoJICAgIH0KCX0gZWxzZSB7CgkgICAgLyoKCSAgICAgKiBObyBtb2RlIHN0YXRlZC4KCSAgICAgKiBSZXRpZXZpbmcgYWxsIHRoZSBmZWVkcyBmb3IgdGhpcyAnaXRlbUlkJwoJICAgICAqIEZldGNoIGFsbCBmZWVkIGRlZmluaXRpb25zCgkgICAgICovCgkgICAgbGlzdCAoJHJldCwgJGZlZWRzKSA9IFJzc01hcEhlbHBlcjo6ZmV0Y2hGZWVkc0Zvckl0ZW0oJEVkaXRGZWVkWydpdGVtSWQnXSk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoKCSAgICBsaXN0ICgkcmV0LCAkRWRpdEZlZWRbJ3R5cGVzJ10pID0gUnNzSGVscGVyOjpnZXRGZWVkVHlwZVRyYW5zbGF0aW9uKCk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoKCSAgICAkRWRpdEZlZWRbJ2ZlZWRzJ10gPSAkZmVlZHM7Cgl9CgoJJEVkaXRGZWVkWydyc3NWZXJzaW9uTGlzdCddID0gYXJyYXkoJzAuOTEnLCAnMi4wJyk7CgkkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCdFZGl0RmVlZCcsICRFZGl0RmVlZCk7CgkkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCdwYXJhbScsICRwYXJhbSk7CgkkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCdjb250cm9sbGVyJywgJ3Jzcy5FZGl0RmVlZCcpOwoJcmV0dXJuIGFycmF5KG51bGwsIGFycmF5KCdib2R5JyA9PiAnbW9kdWxlcy9yc3MvdGVtcGxhdGVzL0VkaXRGZWVkLnRwbCcpKTsKICAgIH0KfQo/Pgo=');
expand_c19e8c72e9($outputDir, 'FeedList.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgpHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcnNzL2NsYXNzZXMvUnNzTWFwSGVscGVyLmNsYXNzJyk7CgovKioKICogVGhpcyB2aWV3IHdpbGwgc2hvdyBhIGxpc3Qgb2YgZmVlZHMuCiAqIEBwYWNrYWdlIFJzcwogKiBAc3VicGFja2FnZSBVc2VySW50ZXJmYWNlCiAqIEBhdXRob3IgSm9uYXRhbiBIZXltYW4gPGh0dHA6Ly9oZXltYW4uaW5mbz4KICogQGF1dGhvciBQaWVycmUtTHVjIFBhb3VyCiAqIEBhdXRob3IgRGFuaWVsIEdydW5kIDxodHRwOi8vd3d3LnBob3RvZ3J1bmQubmw+CiAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMTU1MTMgJAogKi8KY2xhc3MgRmVlZExpc3RWaWV3IGV4dGVuZHMgR2FsbGVyeVZpZXcgewoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5Vmlldzo6bG9hZFRlbXBsYXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGxvYWRUZW1wbGF0ZSgmJHRlbXBsYXRlLCAmJGZvcm0pIHsKCWxpc3QgKCRyZXQsICRmZWVkcykgPSBSc3NNYXBIZWxwZXI6OmZldGNoRmVlZHNGb3JJdGVtKCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCdGZWVkTGlzdCcsIGFycmF5KCdmZWVkcycgPT4gJGZlZWRzKSk7CgkkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCd2aWV3JywgJ3Jzcy5GZWVkTGlzdCcpOwoJcmV0dXJuIGFycmF5KG51bGwsIGFycmF5KCdib2R5JyA9PiAnbW9kdWxlcy9yc3MvdGVtcGxhdGVzL0ZlZWRMaXN0LnRwbCcpKTsKICAgIH0KfQo/Pgo=');
expand_c19e8c72e9($outputDir, 'MANIFEST', 'IyAkUmV2aXNpb246IDE2MDQxICQKIyBGaWxlIGNyYzMyIGNyYzMyKGNybGYpIHNpemUgc2l6ZShjcmxmKSAgb3IgIFIgRmlsZQptb2R1bGVzL3Jzcy9DYWxsYmFja3MuaW5jCTQwNTgyODI5NTkJMTQxMDE5NzU0OQkyMDk2CTIxNjcKbW9kdWxlcy9yc3MvRWRpdEZlZWQuaW5jCTQxMDQzNDI2NTcJNjA0OTc3OTIwCTEwNjI4CTEwOTcxCm1vZHVsZXMvcnNzL0ZlZWRMaXN0LmluYwkyNDQ0MzIyNzQyCTE4NjIwMDY0NDcJMTYwNwkxNjU1Cm1vZHVsZXMvcnNzL1ByZWxvYWRzLmluYwkxOTM3MTI3MzYwCTEwNDA3MzE3OQkxMjk5CTEzNDAKbW9kdWxlcy9yc3MvUmVuZGVyLmluYwkzNzQ1ODE0NjU1CTQyMjM1MjYwOTQJNTA0Ngk1MjI1Cm1vZHVsZXMvcnNzL1Jzc1NpdGVBZG1pbi5pbmMJMTgzMzE3Nzc3NQkzMTY5MTc2NDYwCTYyMDMJNjQxMwptb2R1bGVzL3Jzcy9TaW1wbGVSZW5kZXIuaW5jCTExNTk5ODYyMTIJMTQ5NjExOTc3NQkyNzI2CTI4MTgKbW9kdWxlcy9yc3MvY2xhc3Nlcy9HTlVtYWtlZmlsZQkxOTk1MzY2ODE5CTg0MzAyNTYzOQk1MQk1Mgptb2R1bGVzL3Jzcy9jbGFzc2VzL0dhbGxlcnlTdG9yYWdlL0dOVW1ha2VmaWxlCTE0NjU3NzY3ODIJMjAwOTE2MjYzMwk2MQk2Mgptb2R1bGVzL3Jzcy9jbGFzc2VzL0dhbGxlcnlTdG9yYWdlL3NjaGVtYS50cGwJMTg2OTcxNzI3MQkxNjc2MDM3NDIyCTMxMjYJMzIzNQptb2R1bGVzL3Jzcy9jbGFzc2VzL01hcHMuaW5jCTM3MzY4NzA5MTcJMTc1Mzk1MjE5Nwk0ODgJNDkyCm1vZHVsZXMvcnNzL2NsYXNzZXMvTWFwcy54bWwJOTIzNjcxMjU2CTYzOTc3NjQ3Mgk4NTAJODg0Cm1vZHVsZXMvcnNzL2NsYXNzZXMvUnNzR2VuZXJhdG9yLmNsYXNzCTMwNTcyNjU4NTQJNDY1NTI5ODA2CTk0MzcJOTc0MAptb2R1bGVzL3Jzcy9jbGFzc2VzL1Jzc0hlbHBlci5jbGFzcwkyNjQyMzg0Mzc2CTEzMTA2MTIyNTAJMTY1NjQJMTcxMjMKbW9kdWxlcy9yc3MvY2xhc3Nlcy9Sc3NNYXBIZWxwZXIuY2xhc3MJNjM4ODgwNDIJMjM1NjQ0NDg5MQk2OTE5CTcxNzgKbW9kdWxlcy9yc3MvbW9kdWxlLmluYwkzNzc4MDE0MjAxCTM3NzU0NTE3ODQJNTk4Ngk2MTk5Cm1vZHVsZXMvcnNzL3RlbXBsYXRlcy9FZGl0RmVlZC50cGwJNDA1MTI0NTAwMAkxNzI5OTQzMjkyCTE2MTkzCTE2NzEyCm1vZHVsZXMvcnNzL3RlbXBsYXRlcy9GZWVkTGlzdC50cGwJOTg2MzYxMTk3CTk4NzE4MTQxNAkxMDcyCTExMDUKbW9kdWxlcy9yc3MvdGVtcGxhdGVzL1Jzc0Jsb2NrSGVhZC50cGwJMjQ3MDczOTQzNAkyODY3MzcwOTcxCTU0NAk1NTgKbW9kdWxlcy9yc3MvdGVtcGxhdGVzL1Jzc1NpdGVBZG1pbi50cGwJMzY5OTUxMDE2NAkzNzI0NTAyNzEzCTE1NzYxCTE2MjA1Cm1vZHVsZXMvcnNzL3RlbXBsYXRlcy9ibG9ja3MvUnNzQmxvY2sudHBsCTMwNTE3NjM2MzEJMjQxNTY2NjgyCTc4MQk4MDQKbW9kdWxlcy9yc3MvdGVtcGxhdGVzL2Jsb2Nrcy9ibG9ja3MuaW5jCTIxMTA5ODM4ODQJMzY3OTkxNzU3NAk0NDgJNDY3Cg==');
expand_c19e8c72e9($outputDir, 'Preloads.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogQHBhY2thZ2UgUnNzCiAqIEBhdXRob3IgSm9uYXRhbiBIZXltYW4gPGh0dHA6Ly9oZXltYW4uaW5mbz4KICogQGF1dGhvciBQaWVycmUtTHVjIFBhb3VyCiAqIEBhdXRob3IgRGFuaWVsIEdydW5kIDxodHRwOi8vd3d3LnBob3RvZ3J1bmQubmw+CiAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMTU1MTMgJAogKi8KY2xhc3MgUnNzUHJlbG9hZHMgewogICAgZnVuY3Rpb24gcHJlbG9hZCgmJHRlbXBsYXRlLCAkcHJlbG9hZCwgJHBhcmFtU2V0KSB7CglnbG9iYWwgJGdhbGxlcnk7CgoJc3dpdGNoKCRwcmVsb2FkKSB7CgljYXNlICdSc3NCbG9jayc6CgkgICAgJHRlbXBsYXRlLT5oZWFkKCdtb2R1bGVzL3Jzcy90ZW1wbGF0ZXMvUnNzQmxvY2tIZWFkLnRwbCcpOwoJICAgIHJldHVybiBudWxsOwoJfQoKCXJldHVybiBHYWxsZXJ5Q29yZUFwaTo6ZXJyb3IoRVJST1JfQkFEX1BBUkFNRVRFUik7CiAgICB9Cn0KPz4K');
expand_c19e8c72e9($outputDir, 'Render.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgpHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcnNzL2NsYXNzZXMvUnNzSGVscGVyLmNsYXNzJyk7CkdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9yc3MvY2xhc3Nlcy9Sc3NHZW5lcmF0b3IuY2xhc3MnKTsKR2FsbGVyeUNvcmVBcGk6OnJlcXVpcmVPbmNlKCdtb2R1bGVzL3Jzcy9jbGFzc2VzL1Jzc01hcEhlbHBlci5jbGFzcycpOwoKLyoqCiAqIFJlbmRlciB0aGUgRmVlZAogKiBAcGFja2FnZSBSc3MKICogQHN1YnBhY2thZ2UgVXNlckludGVyZmFjZQogKiBAYXV0aG9yIEpvbmF0YW4gSGV5bWFuIDxodHRwOi8vaGV5bWFuLmluZm8+CiAqIEBhdXRob3IgUGllcnJlLUx1YyBQYW91cgogKiBAYXV0aG9yIERhbmllbCBHcnVuZCA8aHR0cDovL3d3dy5waG90b2dydW5kLm5sPgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICovCmNsYXNzIFJlbmRlclZpZXcgZXh0ZW5kcyBHYWxsZXJ5VmlldyB7CgogICAgLyoqCiAgICAgKiBAc2VlIEdhbGxlcnlWaWV3Ojppc0ltbWVkaWF0ZQogICAgICovCiAgICBmdW5jdGlvbiBpc0ltbWVkaWF0ZSgpIHsKCXJldHVybiB0cnVlOwogICAgfQoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5Vmlldzo6cmVuZGVySW1tZWRpYXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHJlbmRlckltbWVkaWF0ZSgkc3RhdHVzLCAkZXJyb3IpIHsKCWdsb2JhbCAkZ2FsbGVyeTsKCgkvKiBnZXQgYWxsIHBhcmFtZXRlcnMgKi8KCWxpc3QgKCRyZXQsICRwYXJhbXMpID0gR2FsbGVyeUNvcmVBcGk6OmZldGNoQWxsUGx1Z2luUGFyYW1ldGVycygnbW9kdWxlJywgJ3JzcycpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0KCgkvKiByZXRyaWV2ZSByZXF1ZXN0IHZhcmlhYmxlcyAqLwoJJG5hbWUgPSBHYWxsZXJ5VXRpbGl0aWVzOjpnZXRSZXF1ZXN0VmFyaWFibGVzKCduYW1lJyk7CgoJLyogd2UncmUgYSBjb25maWd1cmFibGUgZmVlZCwgbG9hZCB0aGUgcGFyYW1ldGVycyAqLwoJbGlzdCAoJHJldCwgJHBhcmFtczEpID0gUnNzTWFwSGVscGVyOjpmZXRjaEZlZWQoJG5hbWUpOwoJaWYgKCRyZXQpIHsKCSAgICAkdGhpcy0+aGFuZGxlRXJyb3IoJGdhbGxlcnktPmkxOG4oJ1RoaXMgZmVlZCBubyBsb25nZXIgZXhpc3RzIScpKTsKCSAgICByZXR1cm4gbnVsbDsKCX0KCgkkcGFyYW1zID0gYXJyYXlfbWVyZ2UoJHBhcmFtcywgJHBhcmFtczEpOwoJJGZlZWRUeXBlID0gJHBhcmFtc1snZmVlZFR5cGUnXTsKCglpZiAoKCRmZWVkVHlwZSA9PSAnYWxidW0nICYmICRwYXJhbXNbJ2FsbG93QWxidW1zJ10gIT0gMSkKCQl8fCAoJGZlZWRUeXBlID09ICdwaG90b3MnICYmICRwYXJhbXNbJ2FsbG93UGhvdG9zJ10gIT0gMSkKCQl8fCAoJGZlZWRUeXBlID09ICdwaG90b3NSZWN1cnNlJyAmJiAkcGFyYW1zWydhbGxvd1Bob3Rvc1JlY3Vyc2UnXSAhPSAxKQoJCXx8ICgkZmVlZFR5cGUgPT0gJ2NvbW1lbnRzQWxidW0nICYmICRwYXJhbXNbJ2FsbG93Q29tbWVudHNBbGJ1bSddICE9IDEpCgkJfHwgKCRmZWVkVHlwZSA9PSAnY29tbWVudHNQaG90bycgJiYgJHBhcmFtc1snYWxsb3dDb21tZW50c1Bob3RvJ10gIT0gMSkpIHsKCSAgICAkdGhpcy0+aGFuZGxlRXJyb3IoJGdhbGxlcnktPmkxOG4oJ0ZlZWRzIG9mIHRoYXQgdHlwZSBhcmUgbm90IGFsbG93ZWQhJykpOwoJICAgIHJldHVybiBudWxsOwoJfQoKCSRyZXQgPSAkdGhpcy0+Y29udGludWVSZW5kZXIoJHBhcmFtcyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiAkcmV0OwoJfQoKCXJldHVybiBudWxsOwogICAgfQoKICAgIGZ1bmN0aW9uIGNvbnRpbnVlUmVuZGVyKCRwYXJhbXMpIHsKCWdsb2JhbCAkZ2FsbGVyeTsKCgkvKiBjaGVjayBwZXJtaXNzaW9ucyAqLwoJbGlzdCAoJHJldCwgJHBlcm0pID0gR2FsbGVyeUNvcmVBcGk6Omhhc0l0ZW1QZXJtaXNzaW9uKCRwYXJhbXNbJ2l0ZW1JZCddLCAnY29yZS52aWV3Jyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiAkcmV0OwoJfQoKCWlmICghJHBlcm0pIHsKCSAgICAkdGhpcy0+aGFuZGxlRXJyb3IoJGdhbGxlcnktPmkxOG4oJ05vdCBwZXJtaXR0ZWQgdG8gdmlldyB0aGlzIGl0ZW0nKSk7CgkgICAgcmV0dXJuIG51bGw7Cgl9CgoJLyogY2hlY2sgcmVuZGVyIHR5cGUgKi8KCSRmZWVkVHlwZSA9ICRwYXJhbXNbJ2ZlZWRUeXBlJ107CglpZiAoIWluX2FycmF5KCRmZWVkVHlwZSwgYXJyYXkoJ2FsYnVtJywKCQkJCQkncGhvdG9zJywKCQkJCQkncGhvdG9zUmVjdXJzZScsCgkJCQkJJ2NvbW1lbnRzQWxidW0nLAoJCQkJCSdjb21tZW50c1Bob3RvJywKCQkJCQknY29tbWVudHNSZWN1cnNpdmUnKSkpIHsKCSAgICAkdGhpcy0+aGFuZGxlRXJyb3IoJGdhbGxlcnktPmkxOG4oJ0luY29ycmVjdCBmZWVkIHR5cGUhJykpOwoJICAgIHJldHVybiBudWxsOwoJfQoKCS8qIGNoZWNrIGlmIHdlIGNvbW1lbnRzIGFyZSBhY3RpdmUgKi8KCWlmIChpbl9hcnJheSgkZmVlZFR5cGUsIGFycmF5KCdjb21tZW50c0FsYnVtJywgJ2NvbW1lbnRzUGhvdG8nLCAnY29tbWVudHNSZWN1cnNpdmUnKSkpIHsKCSAgICAvKiBtYWtlIHN1cmUgdGhhdCB0aGUgY29tbWVudHMgbW9kdWxlIGlzIGFjdGl2ZSAqLwoJICAgIGxpc3QgKCRyZXQsICRtb2R1bGVzdGF0dXMpID0gR2FsbGVyeUNvcmVBcGk6OmZldGNoUGx1Z2luU3RhdHVzKCdtb2R1bGUnKTsKCSAgICBpZiAoJHJldCkgewoJCXJldHVybiAkcmV0OwoJICAgIH0KCgkgICAgaWYgKCRtb2R1bGVzdGF0dXNbJ2NvbW1lbnQnXVsnYWN0aXZlJ10gIT0gJzEnKSB7CgkJJHRoaXMtPmhhbmRsZUVycm9yKCRnYWxsZXJ5LT5pMThuKAoJCQknQ29tbWVudHMgbW9kdWxlIGlzIG5vdCBhY3RpdmUgb3IgY29tbWVudCBmZWVkcyBhcmUgbm90IGFsbG93ZWQhJykpOwoJCXJldHVybiBudWxsOwoJICAgIH0KCgkgICAgLyogY2hlY2sgdGhlIHBlcm1pc3Npb25zICovCgkgICAgbGlzdCAoJHJldCwgJHBlcm0pID0KCQlHYWxsZXJ5Q29yZUFwaTo6aGFzSXRlbVBlcm1pc3Npb24oJHBhcmFtc1snaXRlbUlkJ10sICdjb21tZW50LnZpZXcnKTsKCSAgICBpZiAoJHJldCkgewoJCXJldHVybiAkcmV0OwoJICAgIH0KCgkgICAgaWYgKCEkcGVybSkgewoJCSR0aGlzLT5oYW5kbGVFcnJvcigkZ2FsbGVyeS0+aTE4bignTm90IHBlcm1pdHRlZCB0byB2aWV3IGNvbW1lbnRzIGZvciB0aGlzIGl0ZW0nKSk7CgkJcmV0dXJuIG51bGw7CgkgICAgfQoJfQoKCS8qIGNoZWNrIGlmIGNvdW50IGlzIHNldCwgaWYgbm90LCByZXRyaWV2ZSBkZWZhdWx0IHZhbHVlcyAqLwoJJG1heGNvdW50ID0gJHBhcmFtc1snbWF4Q291bnQnXTsKCSRjb3VudCA9ICRwYXJhbXNbJ2NvdW50J107CglpZiAoZW1wdHkoJGNvdW50KSkgewoJICAgICRjb3VudCA9ICRwYXJhbXNbJ2RlZmF1bHRDb3VudCddOwoJfQoJaWYgKCRjb3VudCA+ICRtYXhjb3VudCkgewoJICAgICRjb3VudCA9ICRtYXhjb3VudDsKCX0KCSRwYXJhbXNbJ2NvdW50J10gPSAkY291bnQ7CgoJLyogY3JlYXRlIGFuIGluc3RhbmNlIG9mIHRoZSByc3MgZGF0YSBnZW5lcmF0b3IgKi8KCSRnZW5lcmF0b3IgPSBuZXcgUnNzR2VuZXJhdG9yKCk7CgoJJHJldCA9IFJzc0hlbHBlcjo6Z2V0RmVlZCgkZ2VuZXJhdG9yLCAkcGFyYW1zWydpdGVtSWQnXSwgJHBhcmFtcyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiAkcmV0OwoJfQoKCSRnZW5lcmF0b3ItPnNsaWNlSXRlbXMoJGNvdW50KTsKCSRwaHBWbSA9ICRnYWxsZXJ5LT5nZXRQaHBWbSgpOwoJaWYgKCEkcGhwVm0tPmhlYWRlcnNfc2VudCgpKSB7CgkgICAgJHBocFZtLT5oZWFkZXIoJ0NvbnRlbnQtdHlwZTogdGV4dC94bWw7IGNoYXJzZXQ9VVRGLTgnKTsKCX0KCglwcmludCgkZ2VuZXJhdG9yLT5nZW5lcmF0ZSgkcGFyYW1zWyd2ZXJzaW9uJ10pKTsKCXJldHVybiBudWxsOwogICAgfQoKICAgIGZ1bmN0aW9uIGhhbmRsZUVycm9yKCRtZXNzYWdlKSB7CgloZWFkZXIoJ0hUVFAvMS4wIDUwMCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKTsKCglsaXN0ICgkcmV0LCAkbW9kdWxlKSA9IEdhbGxlcnlDb3JlQXBpOjpsb2FkUGx1Z2luKCdtb2R1bGUnLCAncnNzJyk7CglpZiAoJHJldCkgewoJICAgIC8qIHN3YWxsb3cgdGhlIGVycm9yIGFuZCBqdXN0IHByaW50IHRoZSB1bnRyYW5zbGF0ZWQgbWVzc2FnZSAqLwoJICAgIHByaW50KCRtZXNzYWdlKTsKCX0gZWxzZSB7CgkgICAgcHJpbnQoJG1vZHVsZS0+dHJhbnNsYXRlKCRtZXNzYWdlKSk7Cgl9CiAgICB9Cn0KPz4K');
expand_c19e8c72e9($outputDir, 'RssSiteAdmin.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgpHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcnNzL2NsYXNzZXMvUnNzTWFwSGVscGVyLmNsYXNzJyk7CkdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9yc3MvY2xhc3Nlcy9Sc3NIZWxwZXIuY2xhc3MnKTsKCi8qKgogKiBTZXR0aW5ncyBmb3IgUlNTCiAqIEBwYWNrYWdlIFJzcwogKiBAc3VicGFja2FnZSBVc2VySW50ZXJmYWNlCiAqIEBhdXRob3IgSm9uYXRhbiBIZXltYW4gPGh0dHA6Ly9oZXltYW4uaW5mbz4KICogQGF1dGhvciBQaWVycmUtTHVjIFBhb3VyCiAqIEBhdXRob3IgRGFuaWVsIEdydW5kIDxodHRwOi8vd3d3LnBob3RvZ3J1bmQubmw+CiAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMTU1MTMgJAogKi8KY2xhc3MgUnNzU2l0ZUFkbWluQ29udHJvbGxlciBleHRlbmRzIEdhbGxlcnlDb250cm9sbGVyIHsKCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeUNvbnRyb2xsZXI6OmhhbmRsZVJlcXVlc3QKICAgICAqLwogICAgZnVuY3Rpb24gaGFuZGxlUmVxdWVzdCgkZm9ybSkgewoJZ2xvYmFsICRnYWxsZXJ5OwoKCS8qIE1ha2Ugc3VyZSB0aGUgdXNlciBoYXMgcGVybWlzc2lvbiB0byBkbyB0aGlzIG9wZXJhdGlvbiAqLwoJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjphc3NlcnRVc2VySXNTaXRlQWRtaW5pc3RyYXRvcigpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJJHN0YXR1cyA9ICRyZXN1bHRzID0gJGVycm9yID0gYXJyYXkoKTsKCSRtb2RlID0gZW1wdHkoJGZvcm1bJ21vZGUnXSkgPyAnJyA6ICRmb3JtWydtb2RlJ107CgoJaWYgKGlzc2V0KCRmb3JtWydhY3Rpb24nXVsnc2F2ZSddKSkgewoJICAgIGlmICgkbW9kZSA9PSAnc2V0dGluZ3MnKSB7CgkJLyogZXJyb3IgY2hlY2tpbmcgKi8KCSAgICAgICBpZiAoIWlzc2V0KCRmb3JtWydkZWZhdWx0VmVyc2lvbiddKSB8fAoJCQkhKCRmb3JtWydkZWZhdWx0VmVyc2lvbiddID09ICcwLjkxJyB8fAoJCQkkZm9ybVsnZGVmYXVsdFZlcnNpb24nXSA9PSAnMi4wJykpIHsKCQkgICAgJGVycm9yW10gPSAnZm9ybVtlcnJvcl1bZGVmYXVsdFZlcnNpb25dJzsKCSAgICAgICB9IGVsc2UgaWYgKCFpc3NldCgkZm9ybVsnZGVmYXVsdENvdW50J10pIHx8ICgoaW50KSRmb3JtWydkZWZhdWx0Q291bnQnXSkgPD0gMCkgewoJCSAgICAkZXJyb3JbXSA9ICdmb3JtW2Vycm9yXVtkZWZhdWx0Q291bnRdJzsKCSAgICAgICB9IGVsc2UgaWYgKCFpc3NldCgkZm9ybVsnbWF4Q291bnQnXSkgfHwgKChpbnQpJGZvcm1bJ21heENvdW50J10pIDw9IDApIHsKCQkgICAgJGVycm9yW10gPSAnZm9ybVtlcnJvcl1bbWF4Q291bnRdJzsKCSAgICAgICB9IGVsc2UgaWYgKCFpc3NldCgkZm9ybVsnZGVmYXVsdFR0bCddKSB8fCAoKGludCkkZm9ybVsnZGVmYXVsdFR0bCddKSA8IDApIHsKCQkgICAgJGVycm9yW10gPSAnZm9ybVtlcnJvcl1bZGVmYXVsdFR0bF0nOwoJICAgICAgIH0gZWxzZSBpZiAoIWlzc2V0KCRmb3JtWydkZWZhdWx0Q29weXJpZ2h0J10pKSB7CgkJICAgICRlcnJvcltdID0gJ2Zvcm1bZXJyb3JdW2RlZmF1bHRDb3B5cmlnaHRdJzsKCSAgICAgICB9IGVsc2UgewoJCSAgICAvKiBzYXZlIHBhcmFtZXRlcnMgKi8KCQkgICAgZm9yZWFjaCAoYXJyYXkoJ2RlZmF1bHRWZXJzaW9uJywKCQkJCSAgICdkZWZhdWx0Q291bnQnLAoJCQkJICAgJ21heENvdW50JywKCQkJCSAgICdkZWZhdWx0Q29weXJpZ2h0JywKCQkJCSAgICdkZWZhdWx0VHRsJykgYXMgJHNldHRpbmcpIHsKCQkJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjpzZXRQbHVnaW5QYXJhbWV0ZXIoJ21vZHVsZScsICdyc3MnLAoJCQkJCQkJCSAgJHNldHRpbmcsICRmb3JtWyRzZXR0aW5nXSk7CgkJCWlmICgkcmV0KSB7CgkJCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkJCX0KCQkgICAgfQoKCQkgICAgZm9yZWFjaCAoYXJyYXkoJ2FsbG93U2ltcGxlRmVlZCcsCgkJCQkgICAnYWxsb3dDb25maWd1cmFibGVGZWVkJywKCQkJCSAgICdhbGxvd0FsYnVtcycsCgkJCQkgICAnYWxsb3dQaG90b3MnLAoJCQkJICAgJ2FsbG93UGhvdG9zUmVjdXJzZScsCgkJCQkgICAnYWxsb3dDb21tZW50c1Bob3RvJywKCQkJCSAgICdhbGxvd0NvbW1lbnRzQWxidW0nLAoJCQkJICAgJ2FsbG93Q29tbWVudHNSZWN1cnNpdmUnKSBhcyAkc2V0dGluZykgewoJCQkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OnNldFBsdWdpblBhcmFtZXRlcignbW9kdWxlJywgJ3JzcycsICRzZXR0aW5nLAoJCQkgICAgKGlzc2V0KCRmb3JtWyRzZXR0aW5nXSkgJiYgJGZvcm1bJHNldHRpbmddKSA/IDEgOiAwKTsKCQkJaWYgKCRyZXQpIHsKCQkJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCQkJfQoJCSAgICB9CgoJCSAgICAkc3RhdHVzWydzYXZlZCddID0gMTsKCQl9CgkgICAgfSBlbHNlIGlmICgkbW9kZSA9PSAnc2ltcGxlZmVlZHNldHRpbmdzJykgewoJCS8qIGVycm9yIGNoZWNraW5nICovCgkJaWYgKCFpc3NldCgkZm9ybVsnc2ZQaG90b3NSZWN1cnNlTGltaXQnXSkKCQkJfHwgKChpbnQpJGZvcm1bJ3NmUGhvdG9zUmVjdXJzZUxpbWl0J10pIDwgMCkgewoJCSAgICAkZXJyb3JbXSA9ICdmb3JtW2Vycm9yXVtzZlBob3Rvc1JlY3Vyc2VMaW1pdF0nOwoJCX0gZWxzZSB7CgkJICAgIC8qIHNhdmUgcGFyYW1ldGVycyAqLwoJCSAgICBmb3JlYWNoIChhcnJheSgnc2ZBbGJ1bVR5cGUnLAoJCQkJICAgJ3NmUGhvdG9zUmVjdXJzZUxpbWl0JywKCQkJCSAgICdzZkRhdGUnKSBhcyAkc2V0dGluZykgewoJCQkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OnNldFBsdWdpblBhcmFtZXRlcignbW9kdWxlJywgJ3JzcycsCgkJCQkJCQkJICAkc2V0dGluZywgJGZvcm1bJHNldHRpbmddKTsKCQkJaWYgKCRyZXQpIHsKCQkJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCQkJfQoJCSAgICB9CgoJCSAgICAkc3RhdHVzWydzYXZlZCddID0gMTsKCQl9CgkgICAgfQoJfSBlbHNlIGlmIChpc3NldCgkZm9ybVsnYWN0aW9uJ11bJ3Jlc2V0J10pKSB7CgkgICAgLyogZG8gbm90aGluZyAqLwoJfSBlbHNlIGlmIChpc3NldCgkZm9ybVsnYWN0aW9uJ11bJ2RlbGV0ZSddKSkgewoJICAgICRyZXQgPSBSc3NNYXBIZWxwZXI6OmRlbGV0ZUZlZWQoJGZvcm1bJ2FjdGlvbiddWydkZWxldGUnXSk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoKCSAgICAkbW9kZSA9ICdsaXN0JzsKCX0gZWxzZSB7CgkgICAgJGVycm9yW10gPSAnZm9ybVtlcnJvcl1bdW5rbm93bkFjdGlvbl0nOwoJfQoKCS8qIGZpZ3VyZSBvdXQgdGhlIG1ldGhvZCB3ZSB3aWxsIHVzZSAqLwoJJG1ldGhvZCA9IGVtcHR5KCRlcnJvcikgPyAncmVkaXJlY3QnIDogJ2RlbGVnYXRlJzsKCSRyZXN1bHRzWydzdGF0dXMnXSA9ICRzdGF0dXM7CgkkcmVzdWx0c1snZXJyb3InXSA9ICRlcnJvcjsKCSRyZXN1bHRzWyRtZXRob2RdWyd2aWV3J10gPSAnY29yZS5TaXRlQWRtaW4nOwoJJHJlc3VsdHNbJG1ldGhvZF1bJ3N1YlZpZXcnXSA9ICdyc3MuUnNzU2l0ZUFkbWluJzsKCSRyZXN1bHRzWyRtZXRob2RdWydtb2RlJ10gPSAkbW9kZTsKCglyZXR1cm4gYXJyYXkobnVsbCwgJHJlc3VsdHMpOwogICAgfQp9CgovKioKICogU2V0dGluZ3MgZm9yIFJTUwogKi8KY2xhc3MgUnNzU2l0ZUFkbWluVmlldyBleHRlbmRzIEdhbGxlcnlWaWV3IHsKCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeVZpZXc6OmxvYWRUZW1wbGF0ZQogICAgICovCiAgICBmdW5jdGlvbiBsb2FkVGVtcGxhdGUoJiR0ZW1wbGF0ZSwgJiRmb3JtKSB7CgkkZm9ybVsnZm9ybU5hbWUnXSA9ICdSc3NTaXRlQWRtaW4nOwoJJFJzc1NpdGVBZG1pbiA9IGFycmF5KCk7CgkkUnNzU2l0ZUFkbWluWydyc3NWZXJzaW9uTGlzdCddID0gYXJyYXkoJzAuOTEnLCAnMi4wJyk7CgoJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjphc3NlcnRVc2VySXNTaXRlQWRtaW5pc3RyYXRvcigpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJJFJzc1NpdGVBZG1pblsnbW9kZSddID0gR2FsbGVyeVV0aWxpdGllczo6Z2V0UmVxdWVzdFZhcmlhYmxlcygnbW9kZScpOwoJaWYgKGVtcHR5KCRSc3NTaXRlQWRtaW5bJ21vZGUnXSkpIHsKCSAgICAkUnNzU2l0ZUFkbWluWydtb2RlJ10gPSAnc2V0dGluZ3MnOwoJfQoKCS8qIGZldGNoIG1vZHVsZSBwYXJhbWV0ZXJzIGFuZCBzYXZlIHRoZW0gaW4gZm9ybSB2YXJpYWJsZSAqLwoJbGlzdCAoJHJldCwgJHBhcmFtKSA9IEdhbGxlcnlDb3JlQXBpOjpmZXRjaEFsbFBsdWdpblBhcmFtZXRlcnMoJ21vZHVsZScsICdyc3MnKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoJZm9yZWFjaCAoJHBhcmFtIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkgICAgJGZvcm1bJGtleV0gPSAkdmFsdWU7Cgl9CgoJaWYgKCRSc3NTaXRlQWRtaW5bJ21vZGUnXSA9PSAnbGlzdCcpIHsKCSAgICAvKiBmZXRjaCBhbGwgZmVlZCBkZWZpbml0aW9ucyAqLwoJICAgIGxpc3QgKCRyZXQsICRmZWVkcykgPSBSc3NNYXBIZWxwZXI6OmZldGNoRmVlZHNGb3JJdGVtKCk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoKCSAgICBsaXN0ICgkcmV0LCAkUnNzU2l0ZUFkbWluWyd0eXBlcyddKSA9IFJzc0hlbHBlcjo6Z2V0RmVlZFR5cGVUcmFuc2xhdGlvbigpOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJICAgIH0KCgkgICAgaWYgKCFlbXB0eSgkZmVlZHMpKSB7CgkJLyogcmVwbGFjZSBpdGVtIElkcyB3aXRoIGFjdHVhbCBpdGVtcyAqLwoJCSRpdGVtSWRzID0gYXJyYXkoKTsKCQlmb3JlYWNoICgkZmVlZHMgYXMgJGZlZWQpIHsKCQkgICAgJGl0ZW1JZHNbXSA9ICRmZWVkWydpdGVtSWQnXTsKCQl9CgoJCWxpc3QgKCRyZXQsICRpdGVtcykgPSBHYWxsZXJ5Q29yZUFwaTo6bG9hZEVudGl0aWVzQnlJZCgkaXRlbUlkcyk7CgkJaWYgKCRyZXQpIHsKCQkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJCX0KCgkJZm9yICgkaSA9IDA7ICRpIDwgc2l6ZW9mKCRmZWVkcyk7ICRpKyspIHsKCQkgICAgJGZlZWRzWyRpXVsnaXRlbSddID0gJGl0ZW1zWyRpXTsKCQl9CgkgICAgfQoKCSAgICAkUnNzU2l0ZUFkbWluWydmZWVkcyddID0gJGZlZWRzOwoJfQoKCSR0ZW1wbGF0ZS0+c2V0VmFyaWFibGUoJ1Jzc1NpdGVBZG1pbicsICRSc3NTaXRlQWRtaW4pOwoJJHRlbXBsYXRlLT5zZXRWYXJpYWJsZSgnY29udHJvbGxlcicsICdyc3MuUnNzU2l0ZUFkbWluJyk7CglyZXR1cm4gYXJyYXkobnVsbCwgYXJyYXkoJ2JvZHknID0+ICdtb2R1bGVzL3Jzcy90ZW1wbGF0ZXMvUnNzU2l0ZUFkbWluLnRwbCcpKTsKICAgIH0KfQo/Pgo=');
expand_c19e8c72e9($outputDir, 'SimpleRender.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgpHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcnNzL2NsYXNzZXMvUnNzSGVscGVyLmNsYXNzJyk7CkdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9yc3MvY2xhc3Nlcy9Sc3NHZW5lcmF0b3IuY2xhc3MnKTsKR2FsbGVyeUNvcmVBcGk6OnJlcXVpcmVPbmNlKCdtb2R1bGVzL3Jzcy9jbGFzc2VzL1Jzc01hcEhlbHBlci5jbGFzcycpOwpHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcnNzL1JlbmRlci5pbmMnKTsKCi8qKgogKiBSZW5kZXIgdGhlIFNpbXBsZSBGZWVkCiAqIEBwYWNrYWdlIFJzcwogKiBAc3VicGFja2FnZSBVc2VySW50ZXJmYWNlCiAqIEBhdXRob3IgSm9uYXRhbiBIZXltYW4gPGh0dHA6Ly9oZXltYW4uaW5mbz4KICogQGF1dGhvciBQaWVycmUtTHVjIFBhb3VyCiAqIEBhdXRob3IgRGFuaWVsIEdydW5kIDxodHRwOi8vd3d3LnBob3RvZ3J1bmQubmw+CiAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMTU1MTMgJAogKi8KY2xhc3MgU2ltcGxlUmVuZGVyVmlldyBleHRlbmRzIFJlbmRlclZpZXcgewoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5Vmlldzo6cmVuZGVySW1tZWRpYXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHJlbmRlckltbWVkaWF0ZSgkc3RhdHVzLCAkZXJyb3IpIHsKCWdsb2JhbCAkZ2FsbGVyeTsKCgkvKiBnZXQgYWxsIHBhcmFtZXRlcnMgKi8KCWxpc3QgKCRyZXQsICRwYXJhbXMpID0gR2FsbGVyeUNvcmVBcGk6OmZldGNoQWxsUGx1Z2luUGFyYW1ldGVycygnbW9kdWxlJywgJ3JzcycpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0KCglpZiAoJHBhcmFtc1snYWxsb3dTaW1wbGVGZWVkJ10gIT0gMSkgewoJICAgICR0aGlzLT5oYW5kbGVFcnJvcigkZ2FsbGVyeS0+aTE4bignRmVlZHMgb2YgdGhhdCB0eXBlIGFyZSBub3QgYWxsb3dlZCEnKSk7CgkgICAgcmV0dXJuIG51bGw7Cgl9CgoJbGlzdCAoJHJldCwgJGl0ZW0pID0gJHRoaXMtPmdldEl0ZW0oKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuICRyZXQ7Cgl9CgoJJHBhcmFtc1snaXRlbUlkJ10gPSAkaXRlbS0+Z2V0SWQoKTsKCgkvKiBzZXQgZmVlZCB0eXBlICovCglpZiAoR2FsbGVyeVV0aWxpdGllczo6aXNBKCRpdGVtLCAnR2FsbGVyeUFsYnVtSXRlbScpKSB7CgkgICAgJHBhcmFtc1snZmVlZFR5cGUnXSA9ICRwYXJhbXNbJ3NmQWxidW1UeXBlJ107Cgl9IGVsc2UgaWYgKEdhbGxlcnlVdGlsaXRpZXM6OmlzQSgkaXRlbSwgJ0dhbGxlcnlEYXRhSXRlbScpKSB7CgkgICAgJHBhcmFtc1snZmVlZFR5cGUnXSA9ICdjb21tZW50c1Bob3RvJzsKCX0KCgkkcGFyYW1zWydmZWVkRGF0ZSddID0gJHBhcmFtc1snc2ZEYXRlJ107CgoJLyogYXBwbHkgZGVmYXVsdHMgKi8KCWZvcmVhY2ggKGFycmF5KCdjb3B5cmlnaHQnID0+ICdkZWZhdWx0Q29weXJpZ2h0JywKCQkgICAgICAndmVyc2lvbicgPT4gJ2RlZmF1bHRWZXJzaW9uJywKCQkgICAgICAnY291bnQnID0+ICdkZWZhdWx0Q291bnQnLAoJCSAgICAgICdwaG90b3NSZWN1cnNlTGltaXQnID0+ICdzZlBob3Rvc1JlY3Vyc2VMaW1pdCcsCgkJICAgICAgJ3R0bCcgPT4gJ2RlZmF1bHRUdGwnKSBhcyAkbmFtZSA9PiAkZGVmYXVsdE5hbWUpIHsKCSAgICAkcGFyYW1zWyRuYW1lXSA9ICRwYXJhbXNbJGRlZmF1bHROYW1lXTsKCX0KCgkkcGFyYW1zWydsYW5ndWFnZSddID0gJ2VuLXVzJzsKCSRwYXJhbXNbJ3VzZUltYWdlJ10gPSB0cnVlOwoJJHBhcmFtc1sndXNlRW5jbG9zdXJlJ10gPSBmYWxzZTsKCSRwYXJhbXNbJ3VzZUNsb3VkJ10gPSBmYWxzZTsKCgkkcmV0ID0gJHRoaXMtPmNvbnRpbnVlUmVuZGVyKCRwYXJhbXMpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0KCglyZXR1cm4gbnVsbDsKICAgIH0KfQo/Pgo=');
expand_c19e8c72e9($outputDir, 'classes/GNUmakefile', 'aW5jbHVkZSAuLi8uLi8uLi9saWIvdG9vbHMvYmluL0dOVW1ha2VmaWxlLmNsYXNzZXMK');
expand_c19e8c72e9($outputDir, 'classes/GalleryStorage/GNUmakefile', 'aW5jbHVkZSAuLi8uLi8uLi8uLi9saWIvdG9vbHMvYmluL0dOVW1ha2VmaWxlLkdhbGxlcnlTdG9yYWdlCg==');
expand_c19e8c72e9($outputDir, 'classes/GalleryStorage/schema.tpl', 'IyMgbXlzcWwKIyBSc3NNYXAKQ1JFQVRFIFRBQkxFIERCX1RBQkxFX1BSRUZJWFJzc01hcCgKIERCX0NPTFVNTl9QUkVGSVhmZWVkTmFtZSB2YXJjaGFyKDEyOCkgTk9UIE5VTEwsCiBEQl9DT0xVTU5fUFJFRklYaXRlbUlkIGludCgxMSkgTk9UIE5VTEwsCiBEQl9DT0xVTU5fUFJFRklYb3duZXJJZCBpbnQoMTEpIE5PVCBOVUxMLAogREJfQ09MVU1OX1BSRUZJWHBhcmFtcyB0ZXh0IE5PVCBOVUxMLAogUFJJTUFSWSBLRVkoREJfQ09MVU1OX1BSRUZJWGZlZWROYW1lKSwKIElOREVYIERCX1RBQkxFX1BSRUZJWFJzc01hcF83NTk4NShEQl9DT0xVTU5fUFJFRklYaXRlbUlkKSwKIElOREVYIERCX1RBQkxFX1BSRUZJWFJzc01hcF8yMTU3MyhEQl9DT0xVTU5fUFJFRklYb3duZXJJZCkKKSBEQl9UQUJMRV9UWVBFCi8qITQwMTAwIERFRkFVTFQgQ0hBUkFDVEVSIFNFVCB1dGY4ICovOwoKSU5TRVJUIElOVE8gREJfVEFCTEVfUFJFRklYU2NoZW1hICgKIERCX0NPTFVNTl9QUkVGSVhuYW1lLAogREJfQ09MVU1OX1BSRUZJWG1ham9yLAogREJfQ09MVU1OX1BSRUZJWG1pbm9yCikgVkFMVUVTKCdSc3NNYXAnLCAxLCAwKTsKCiMjIHBvc3RncmVzCiMgUnNzTWFwCkNSRUFURSBUQUJMRSBEQl9UQUJMRV9QUkVGSVhSc3NNYXAoCiBEQl9DT0xVTU5fUFJFRklYZmVlZE5hbWUgVkFSQ0hBUigxMjgpIE5PVCBOVUxMLAogREJfQ09MVU1OX1BSRUZJWGl0ZW1JZCBJTlRFR0VSIE5PVCBOVUxMLAogREJfQ09MVU1OX1BSRUZJWG93bmVySWQgSU5URUdFUiBOT1QgTlVMTCwKIERCX0NPTFVNTl9QUkVGSVhwYXJhbXMgdGV4dCBOT1QgTlVMTAopOwoKQUxURVIgVEFCTEUgREJfVEFCTEVfUFJFRklYUnNzTWFwIEFERCBQUklNQVJZIEtFWSAoREJfQ09MVU1OX1BSRUZJWGZlZWROYW1lKTsKCkNSRUFURSBJTkRFWCBEQl9UQUJMRV9QUkVGSVhSc3NNYXBfNzU5ODUgT04gREJfVEFCTEVfUFJFRklYUnNzTWFwKERCX0NPTFVNTl9QUkVGSVhpdGVtSWQpOwoKQ1JFQVRFIElOREVYIERCX1RBQkxFX1BSRUZJWFJzc01hcF8yMTU3MyBPTiBEQl9UQUJMRV9QUkVGSVhSc3NNYXAoREJfQ09MVU1OX1BSRUZJWG93bmVySWQpOwoKSU5TRVJUIElOVE8gREJfVEFCTEVfUFJFRklYU2NoZW1hICgKIERCX0NPTFVNTl9QUkVGSVhuYW1lLAogREJfQ09MVU1OX1BSRUZJWG1ham9yLAogREJfQ09MVU1OX1BSRUZJWG1pbm9yCikgVkFMVUVTKCdSc3NNYXAnLCAxLCAwKTsKCiMjIG9yYWNsZQojIFJzc01hcApDUkVBVEUgVEFCTEUgREJfVEFCTEVfUFJFRklYUnNzTWFwKAogREJfQ09MVU1OX1BSRUZJWGZlZWROYW1lIFZBUkNIQVIyKDEyOCkgTk9UIE5VTEwsCiBEQl9DT0xVTU5fUFJFRklYaXRlbUlkIElOVEVHRVIgTk9UIE5VTEwsCiBEQl9DT0xVTU5fUFJFRklYb3duZXJJZCBJTlRFR0VSIE5PVCBOVUxMLAogREJfQ09MVU1OX1BSRUZJWHBhcmFtcyBWQVJDSEFSMig0MDAwKSBOT1QgTlVMTAopOwoKQ1JFQVRFIElOREVYIERCX1RBQkxFX1BSRUZJWFJzc01hcF83NTk4NQogICBPTiBEQl9UQUJMRV9QUkVGSVhSc3NNYXAoREJfQ09MVU1OX1BSRUZJWGl0ZW1JZCk7CgpDUkVBVEUgSU5ERVggREJfVEFCTEVfUFJFRklYUnNzTWFwXzIxNTczCiAgIE9OIERCX1RBQkxFX1BSRUZJWFJzc01hcChEQl9DT0xVTU5fUFJFRklYb3duZXJJZCk7CgpBTFRFUiBUQUJMRSBEQl9UQUJMRV9QUkVGSVhSc3NNYXAKIEFERCBQUklNQVJZIEtFWSAoREJfQ09MVU1OX1BSRUZJWGZlZWROYW1lKQo7CgpJTlNFUlQgSU5UTyBEQl9UQUJMRV9QUkVGSVhTY2hlbWEgKAogREJfQ09MVU1OX1BSRUZJWG5hbWUsCiBEQl9DT0xVTU5fUFJFRklYbWFqb3IsCiBEQl9DT0xVTU5fUFJFRklYbWlub3IKKSBWQUxVRVMoJ1Jzc01hcCcsIDEsIDApOwoKIyMgZGIyCiMgUnNzTWFwCkNSRUFURSBUQUJMRSBEQl9UQUJMRV9QUkVGSVhSc3NNYXAoCiBEQl9DT0xVTU5fUFJFRklYZmVlZE5hbWUgVkFSQ0hBUigxMjgpIE5PVCBOVUxMLAogREJfQ09MVU1OX1BSRUZJWGl0ZW1JZCBJTlRFR0VSIE5PVCBOVUxMLAogREJfQ09MVU1OX1BSRUZJWG93bmVySWQgSU5URUdFUiBOT1QgTlVMTCwKIERCX0NPTFVNTl9QUkVGSVhwYXJhbXMgVkFSQ0hBUigxMDAwMCkgTk9UIE5VTEwKKTsKCkFMVEVSIFRBQkxFIERCX1RBQkxFX1BSRUZJWFJzc01hcCBBREQgUFJJTUFSWSBLRVkgKERCX0NPTFVNTl9QUkVGSVhmZWVkTmFtZSk7CgpDUkVBVEUgSU5ERVggREJfVEFCTEVfUFJFRklYUnNzTWE0Ml83NTk4NQogICBPTiBEQl9UQUJMRV9QUkVGSVhSc3NNYXAoREJfQ09MVU1OX1BSRUZJWGl0ZW1JZCk7CgpDUkVBVEUgSU5ERVggREJfVEFCTEVfUFJFRklYUnNzTWE0Ml8yMTU3MwogICBPTiBEQl9UQUJMRV9QUkVGSVhSc3NNYXAoREJfQ09MVU1OX1BSRUZJWG93bmVySWQpOwoKSU5TRVJUIElOVE8gREJfVEFCTEVfUFJFRklYU2NoZW1hICgKIERCX0NPTFVNTl9QUkVGSVhuYW1lLAogREJfQ09MVU1OX1BSRUZJWG1ham9yLAogREJfQ09MVU1OX1BSRUZJWG1pbm9yCikgVkFMVUVTKCdSc3NNYXAnLCAxLCAwKTsKCiMjIG1zc3FsCiMgUnNzTWFwCkNSRUFURSBUQUJMRSBEQl9UQUJMRV9QUkVGSVhSc3NNYXAoCiBEQl9DT0xVTU5fUFJFRklYZmVlZE5hbWUgTlZBUkNIQVIoMTI4KSBOT1QgTlVMTCwKIERCX0NPTFVNTl9QUkVGSVhpdGVtSWQgSU5UIE5PVCBOVUxMLAogREJfQ09MVU1OX1BSRUZJWG93bmVySWQgSU5UIE5PVCBOVUxMLAogREJfQ09MVU1OX1BSRUZJWHBhcmFtcyBOVkFSQ0hBUihNQVgpIE5PVCBOVUxMCik7CgpBTFRFUiBUQUJMRSBEQl9UQUJMRV9QUkVGSVhSc3NNYXAgQUREIFBSSU1BUlkgS0VZIChEQl9DT0xVTU5fUFJFRklYZmVlZE5hbWUpOwoKQ1JFQVRFIElOREVYIERCX1RBQkxFX1BSRUZJWFJzc01hcF83NTk4NSBPTiBEQl9UQUJMRV9QUkVGSVhSc3NNYXAoREJfQ09MVU1OX1BSRUZJWGl0ZW1JZCk7CgpDUkVBVEUgSU5ERVggREJfVEFCTEVfUFJFRklYUnNzTWFwXzIxNTczIE9OIERCX1RBQkxFX1BSRUZJWFJzc01hcChEQl9DT0xVTU5fUFJFRklYb3duZXJJZCk7CgpJTlNFUlQgSU5UTyBEQl9UQUJMRV9QUkVGSVhTY2hlbWEgKAogREJfQ09MVU1OX1BSRUZJWG5hbWUsCiBEQl9DT0xVTU5fUFJFRklYbWFqb3IsCiBEQl9DT0xVTU5fUFJFRklYbWlub3IKKSBWQUxVRVMoJ1Jzc01hcCcsIDEsIDApOwoK');
expand_c19e8c72e9($outputDir, 'classes/Maps.inc', 'PD9waHAKLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gTWFwcy54bWwgYnkgbGliL3Rvb2xzL2Jpbi9nZW5lcmF0ZS1tYXBzLnBocCAqLwokbWFwSW5mb1snUnNzTWFwJ10gPSBhcnJheSgnZmVlZE5hbWUnPT5hcnJheSgndHlwZSc9PlNUT1JBR0VfVFlQRV9TVFJJTkcsJ3NpemUnPT5TVE9SQUdFX1NJWkVfTUVESVVNLCdub3ROdWxsJz0+dHJ1ZSksJ2l0ZW1JZCc9PmFycmF5KCd0eXBlJz0+U1RPUkFHRV9UWVBFX0lOVEVHRVIsJ3NpemUnPT5TVE9SQUdFX1NJWkVfTUVESVVNLCdub3ROdWxsJz0+dHJ1ZSksJ293bmVySWQnPT5hcnJheSgndHlwZSc9PlNUT1JBR0VfVFlQRV9JTlRFR0VSLCdzaXplJz0+U1RPUkFHRV9TSVpFX01FRElVTSwnbm90TnVsbCc9PnRydWUpLCdwYXJhbXMnPT5hcnJheSgndHlwZSc9PlNUT1JBR0VfVFlQRV9URVhULCdzaXplJz0+U1RPUkFHRV9TSVpFX1NNQUxMLCdub3ROdWxsJz0+dHJ1ZSkpOwo/Pgo=');
expand_c19e8c72e9($outputDir, 'classes/Maps.xml', 'PCFET0NUWVBFIG1hcHMgU1lTVEVNICIuLi8uLi8uLi9saWIvdG9vbHMvZHRkL01hcHNEZWZpbml0aW9uMi4wLmR0ZCI+CjxtYXBzPgogIDxtYXA+CiAgICA8bWFwLW5hbWU+UnNzTWFwPC9tYXAtbmFtZT4KICAgIDxzY2hlbWE+CiAgICAgIDxzY2hlbWEtbWFqb3I+MTwvc2NoZW1hLW1ham9yPgogICAgICA8c2NoZW1hLW1pbm9yPjA8L3NjaGVtYS1taW5vcj4KICAgIDwvc2NoZW1hPgogICAgPG1lbWJlcj4KICAgICAgPG1lbWJlci1uYW1lPmZlZWROYW1lPC9tZW1iZXItbmFtZT4KICAgICAgPG1lbWJlci10eXBlPlNUUklORzwvbWVtYmVyLXR5cGU+CiAgICAgIDxtZW1iZXItc2l6ZT5NRURJVU08L21lbWJlci1zaXplPgogICAgICA8cHJpbWFyeS8+CiAgICA8L21lbWJlcj4KICAgIDxtZW1iZXI+CiAgICAgIDxtZW1iZXItbmFtZT5pdGVtSWQ8L21lbWJlci1uYW1lPgogICAgICA8bWVtYmVyLXR5cGU+SU5URUdFUjwvbWVtYmVyLXR5cGU+CiAgICAgIDxpbmRleGVkLz4KICAgICAgPHJlcXVpcmVkLz4KICAgIDwvbWVtYmVyPgogICAgPG1lbWJlcj4KICAgICAgPG1lbWJlci1uYW1lPm93bmVySWQ8L21lbWJlci1uYW1lPgogICAgICA8bWVtYmVyLXR5cGU+SU5URUdFUjwvbWVtYmVyLXR5cGU+CiAgICAgIDxpbmRleGVkLz4KICAgICAgPHJlcXVpcmVkLz4KICAgIDwvbWVtYmVyPgogICAgPG1lbWJlcj4KICAgICAgPG1lbWJlci1uYW1lPnBhcmFtczwvbWVtYmVyLW5hbWU+CiAgICAgIDxtZW1iZXItdHlwZT5URVhUPC9tZW1iZXItdHlwZT4KICAgICAgPG1lbWJlci1zaXplPlNNQUxMPC9tZW1iZXItc2l6ZT4KICAgICAgPHJlcXVpcmVkLz4KICAgIDwvbWVtYmVyPgogIDwvbWFwPgo8L21hcHM+Cg==');
expand_c19e8c72e9($outputDir, 'classes/RssGenerator.class', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogQHBhY2thZ2UgUnNzCiAqIEBzdWJwYWNrYWdlIENsYXNzZXMKICogQGF1dGhvciBKb25hdGFuIEhleW1hbiA8aHR0cDovL2hleW1hbi5pbmZvPgogKiBAYXV0aG9yIFBpZXJyZS1MdWMgUGFvdXIKICogQGF1dGhvciBEYW5pZWwgR3J1bmQgPGh0dHA6Ly93d3cucGhvdG9ncnVuZC5ubD4KICogQHZlcnNpb24gJFJldmlzaW9uOiAxNTUxMyAkCiAqLwpjbGFzcyBSc3NHZW5lcmF0b3IgewogICAgLyoqCiAgICAgKiBBbiBhcnJheSBvZiBhbGwgdGhlIGl0ZW1zIChpbiB0aGUgUlNTIHNlbnNlIG9mIHRoZSB0ZXJtKSBpbiB0aGUgZmVlZAogICAgICoKICAgICAqIEB2YXIgYXJyYXkgJF9pdGVtcwogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkX2l0ZW1zID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIEFuIGFycmF5IG9mIGdsb2JhbCBwcm9wZXJ0aWVzIGZvciB0aGUgZmVlZAogICAgICoKICAgICAqIEB2YXIgYXJyYXkgJF9wcm9wZXJ0aWVzCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICRfcHJvcGVydGllcyA9IGFycmF5KCk7CgogICAgLyoqCiAgICAgKiBBZGQgYW4gaXRlbSB0byB0aGUgUlNTIGZlZWQgdGhhdCB3aWxsIGJlIGdlbmVyYXRlZAogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkcHJvcGVydGllcyBpdGVtIHByb3BlcnRpZXMgYXJyYXkKICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleSBvcHRpb25hbCBrZXkgZm9yIHRoZSBpdGVtIGFycmF5CiAgICAgKi8KICAgIGZ1bmN0aW9uIGFkZEl0ZW0oJHByb3BlcnRpZXMsICRrZXk9JycpIHsKCS8qIGFkZCB0aGUgbmV3IGl0ZW0gdG8gb3VyIGl0ZW1zIGFycmF5ICovCglpZiAoJGtleSA9PSAnJykgewoJICAgICR0aGlzLT5faXRlbXNbXSA9ICRwcm9wZXJ0aWVzOwoJfSBlbHNlIHsKCSAgICAkdGhpcy0+X2l0ZW1zWyRrZXldID0gJHByb3BlcnRpZXM7Cgl9CiAgICB9CgogICAgLyoqCiAgICAgKiBGdW5jdGlvbiB0byBzZXQgdGhlIGl0ZW1zIGFycmF5IHRoYXQgd2lsbCBiZSB1c2VkIHdoZW4gZ2VuZXJhdGVkIHRoZSBmZWVkCiAgICAgKiBAcGFyYW0gYXJyYXkgJGl0ZW1zCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldEl0ZW1zKCRpdGVtcykgewoJJHRoaXMtPl9pdGVtcyA9ICRpdGVtczsKICAgIH0KCiAgICAvKioKICAgICAqIEFkZCBhIGNoYW5uZWwgcHJvcGVydHkgdG8gdGhlIGZlZWQgdGhhdCB3aWxsIGJlIGdlbmVyYXRlZAogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgcHJvcGVydHkgbmFtZQogICAgICogQHBhcmFtIHN0cmluZyAkdmFsdWUgcHJvcGVydHkgdmFsdWUKICAgICAqLwogICAgZnVuY3Rpb24gYWRkUHJvcGVydHkoJG5hbWUsICR2YWx1ZSkgewoJJHRoaXMtPl9wcm9wZXJ0aWVzWyRuYW1lXSA9ICR2YWx1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgY2hhbm5lbCBwcm9wZXJ0aWVzIG9mIHRoZSBmZWVkIHRoYXQgd2lsbCBiZSBnZW5lcmF0ZWQKICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJHByb3BlcnRpZXMgcHJvcGVydGllcwogICAgICovCiAgICBmdW5jdGlvbiBzZXRQcm9wZXJ0aWVzKCRwcm9wZXJ0aWVzKSB7CgkkdGhpcy0+X3Byb3BlcnRpZXMgPSAkcHJvcGVydGllczsKICAgIH0KCiAgICAvKioKICAgICAqIENoYW5nZSB0aGUgb3JkZXIgb2YgdGhlIGl0ZW1zIGluIHRoZSAkX2l0ZW1zIGFycmF5CiAgICAgKiAodXNlZnVsIGlmICRrZXkgdmFyaWFibGUgaXMgdXNlZCB3aGVuIGl0ZW1zIGFyZSBhZGRlZCkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRvcmRlciBDYW4gZWl0aGVyIGJlIEFTQyBvciBERVNDCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNvcnRJdGVtcygkb3JkZXIpIHsKCWlmICgkb3JkZXIgPT0gJ0FTQycpIHsKCSAgICBrc29ydCgkdGhpcy0+X2l0ZW1zKTsKCX0gZWxzZSBpZiAoJG9yZGVyID09ICdERVNDJykgewoJICAgIGtyc29ydCgkdGhpcy0+X2l0ZW1zKTsKCX0KICAgIH0KCiAgICAvKioKICAgICAqIFJlbW92ZXMgYWxsIGl0ZW1zIGV4Y2VwdCB0aGUgZmlyc3QgJGNvdW50IGl0ZW1zCiAgICAgKgogICAgICogQHBhcmFtIGludCAkY291bnQKICAgICAqLwogICAgZnVuY3Rpb24gc2xpY2VJdGVtcygkY291bnQpIHsKCSR0aGlzLT5faXRlbXMgPSBhcnJheV9zbGljZSgkdGhpcy0+X2l0ZW1zLCAwLCAkY291bnQpOwogICAgfQoKICAgIC8qKgogICAgICogR2VuZXJhdGUgdGhlIFJTUyBkYXRhIHN0cmluZyBvZiB0aGUgaXRlbXMgYWRkZWQgYnkgYWRkSXRlbSgpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdmVyc2lvbiB0aGUgcnNzIHZlcnNpb24gbnVtYmVyCiAgICAgKiBAcmV0dXJuIHN0cmluZyByc3Mgc3RyZWFtCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdlbmVyYXRlKCR2ZXJzaW9uKSB7Cglzd2l0Y2ggKCR2ZXJzaW9uKSB7CgljYXNlICcwLjkxJzoKCSAgICByZXR1cm4gJHRoaXMtPmdlbmVyYXRlMDkxKCk7CgkgICAgYnJlYWs7CgljYXNlICcyLjAnOgoJICAgIHJldHVybiAkdGhpcy0+Z2VuZXJhdGUyMDAoKTsKCSAgICBicmVhazsKCX0KICAgIH0KCiAgICAvKioKICAgICAqIEdlbmVyYXRlIFJTUyAwLjkxIGRhdGEKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyByc3Mgc3RyZWFtCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdlbmVyYXRlMDkxKCkgewoJZ2xvYmFsICRnYWxsZXJ5OwoKCWlmICghaXNzZXQoJHRoaXMtPl9wcm9wZXJ0aWVzWyd0aXRsZSddKSB8fAoJICAgICFpc3NldCgkdGhpcy0+X3Byb3BlcnRpZXNbJ2xpbmsnXSkgfHwKCSAgICAhaXNzZXQoJHRoaXMtPl9wcm9wZXJ0aWVzWydkZXNjcmlwdGlvbiddKSB8fAoJICAgICFjb3VudCgkdGhpcy0+X2l0ZW1zKSkKCSAgICByZXR1cm4gJyc7CgoJJHBsYXRmb3JtID0mICRnYWxsZXJ5LT5nZXRQbGF0Zm9ybSgpOwoJJGxmID0gJHBsYXRmb3JtLT5nZXRMaW5lRW5kaW5nKCk7CgoJJGRhdGEgPSAnPD94bWwgdmVyc2lvbj0iMS4wIj8+JyAuICRsZiAuCgkgICAgJzwhRE9DVFlQRSByc3MgU1lTVEVNICJodHRwOi8vbXkubmV0c2NhcGUuY29tL3B1Ymxpc2gvZm9ybWF0cy9yc3MtMC45MS5kdGQiPicgLiAkbGYgLgoJICAgICc8cnNzIHZlcnNpb249IjAuOTEiPjxjaGFubmVsPicgLiAkbGYgLgoJICAgICc8dGl0bGU+JyAuICR0aGlzLT5jZGF0YShHYWxsZXJ5VXRpbGl0aWVzOjptYXJrdXAoJHRoaXMtPl9wcm9wZXJ0aWVzWyd0aXRsZSddKSkgLgoJICAgICc8L3RpdGxlPicgLiAkbGYgLgoJICAgICc8bGluaz4nIC4gJHRoaXMtPl9wcm9wZXJ0aWVzWydsaW5rJ10gLiAnPC9saW5rPicgLiAkbGYgLgoJICAgICc8ZGVzY3JpcHRpb24+JyAuCgkgICAgJHRoaXMtPmNkYXRhKEdhbGxlcnlVdGlsaXRpZXM6Om1hcmt1cCgkdGhpcy0+X3Byb3BlcnRpZXNbJ2Rlc2NyaXB0aW9uJ10pKSAuCgkgICAgJzwvZGVzY3JpcHRpb24+JyAuICRsZiAuCgkgICAgKGlzc2V0KCR0aGlzLT5fcHJvcGVydGllc1snbGFuZ3VhZ2UnXSkgPwoJCSc8bGFuZ3VhZ2U+JyAuICR0aGlzLT5fcHJvcGVydGllc1snbGFuZ3VhZ2UnXSAuCgkJJzwvbGFuZ3VhZ2U+JyA6ICcnKSAuICRsZiAuCgkgICAgKCFlbXB0eSgkdGhpcy0+X3Byb3BlcnRpZXNbJ2NvcHlyaWdodCddKSA/CgkJJzxjb3B5cmlnaHQ+JyAuIEdhbGxlcnlVdGlsaXRpZXM6Om1hcmt1cCgkdGhpcy0+X3Byb3BlcnRpZXNbJ2NvcHlyaWdodCddKSAuCgkJJzwvY29weXJpZ2h0PicgOiAnJyk7CgoJaWYgKGlzc2V0KCR0aGlzLT5fcHJvcGVydGllc1snd2VibWFzdGVyJ10pKSB7CgkgICAgJGRhdGEgLj0gJzx3ZWJNYXN0ZXI+JyAuIEdhbGxlcnlVdGlsaXRpZXM6Om1hcmt1cCgkdGhpcy0+X3Byb3BlcnRpZXNbJ3dlYm1hc3RlciddKSAuCgkgICAgJzwvd2ViTWFzdGVyPicgLiAkbGY7Cgl9CgoJaWYgKGlzc2V0KCR0aGlzLT5fcHJvcGVydGllc1snaW1hZ2UnXSkpIHsKCSAgICAkZGF0YSAuPSAnPGltYWdlPicgLiAkbGYgLgoJCScgPHRpdGxlPicgLgoJCSR0aGlzLT5jZGF0YShHYWxsZXJ5VXRpbGl0aWVzOjptYXJrdXAoJHRoaXMtPl9wcm9wZXJ0aWVzWydpbWFnZSddWyd0aXRsZSddKSkgLgoJCSc8L3RpdGxlPicgLiAkbGYgLgoJCScgPGxpbms+JyAuICR0aGlzLT5fcHJvcGVydGllc1snaW1hZ2UnXVsnbGluayddIC4gJzwvbGluaz4nIC4gJGxmIC4KCQknIDx1cmw+JyAuICR0aGlzLT5fcHJvcGVydGllc1snaW1hZ2UnXVsndXJsJ10gLiAnPC91cmw+JyAuICRsZiAuCgkJJzwvaW1hZ2U+JyAuICRsZjsKCX0KCglmb3JlYWNoICgkdGhpcy0+X2l0ZW1zIGFzICRpdGVtKSB7CgkgICAgaWYgKGlzc2V0KCRpdGVtWyd0aXRsZSddKSkgewoJCSRkYXRhIC49ICc8aXRlbT4nIC4gJGxmIC4KCQkgICAgJyA8dGl0bGU+JyAuICR0aGlzLT5jZGF0YShHYWxsZXJ5VXRpbGl0aWVzOjptYXJrdXAoJGl0ZW1bJ3RpdGxlJ10pKSAuCgkJICAgICc8L3RpdGxlPicgLiAkbGYgLgoJCSAgICAnIDxsaW5rPicgLiAkaXRlbVsnbGluayddIC4gJzwvbGluaz4nIC4gJGxmIC4KCQkgICAgJyA8ZGVzY3JpcHRpb24+JyAuCgkJICAgICR0aGlzLT5jZGF0YShHYWxsZXJ5VXRpbGl0aWVzOjptYXJrdXAoJGl0ZW1bJ2Rlc2NyaXB0aW9uJ10pKSAuCgkJICAgICc8L2Rlc2NyaXB0aW9uPicgLiAkbGYgLgoJCSAgICAnPC9pdGVtPicgLiAkbGY7CgkgICAgfQoJfQoKCSRkYXRhIC49ICc8L2NoYW5uZWw+JyAuICRsZiAuICc8L3Jzcz4nOwoKCXJldHVybiAkZGF0YTsKICAgIH0KCiAgICAvKioKICAgICAqIEdlbmVyYXRlIFJTUyAyLjAgZGF0YQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nIHJzcyBzdHJlYW0KICAgICAqLwogICAgZnVuY3Rpb24gZ2VuZXJhdGUyMDAoKSB7CglnbG9iYWwgJGdhbGxlcnk7CgoJJHBsYXRmb3JtID0mICRnYWxsZXJ5LT5nZXRQbGF0Zm9ybSgpOwoJJGxmID0gJHBsYXRmb3JtLT5nZXRMaW5lRW5kaW5nKCk7CgoJJGRhdGEgPSAnPHJzcyB2ZXJzaW9uPSIyLjAiPicgLiAkbGYgLiAnPGNoYW5uZWw+JyAuICRsZiAuCgkgICAgJzx0aXRsZT4nIC4gJHRoaXMtPmNkYXRhKEdhbGxlcnlVdGlsaXRpZXM6Om1hcmt1cCgkdGhpcy0+X3Byb3BlcnRpZXNbJ3RpdGxlJ10pKSAuCgkgICAgJzwvdGl0bGU+JyAuICRsZiAuCgkgICAgJzxsaW5rPicgLiAkdGhpcy0+X3Byb3BlcnRpZXNbJ2xpbmsnXSAuICc8L2xpbms+JyAuICRsZiAuCgkgICAgJzxkZXNjcmlwdGlvbj4nIC4KCSAgICAkdGhpcy0+Y2RhdGEoR2FsbGVyeVV0aWxpdGllczo6bWFya3VwKCR0aGlzLT5fcHJvcGVydGllc1snZGVzY3JpcHRpb24nXSkpIC4KCSAgICAnPC9kZXNjcmlwdGlvbj4nIC4gJGxmIC4KCSAgICAoaXNzZXQoJHRoaXMtPl9wcm9wZXJ0aWVzWydsYW5ndWFnZSddKSA/CgkJJzxsYW5ndWFnZT4nIC4gJHRoaXMtPl9wcm9wZXJ0aWVzWydsYW5ndWFnZSddIC4gJzwvbGFuZ3VhZ2U+JyAuICRsZiAgOiAnJykgLgoJICAgICghZW1wdHkoJHRoaXMtPl9wcm9wZXJ0aWVzWydjb3B5cmlnaHQnXSkgPwoJCSc8Y29weXJpZ2h0PicgLiBHYWxsZXJ5VXRpbGl0aWVzOjptYXJrdXAoJHRoaXMtPl9wcm9wZXJ0aWVzWydjb3B5cmlnaHQnXSkgLgoJCSc8L2NvcHlyaWdodD4nIC4gJGxmICA6ICcnKSAuCgkgICAgKCFlbXB0eSgkdGhpcy0+X3Byb3BlcnRpZXNbJ2NhdGVnb3J5J10pID8KCQknPGNhdGVnb3J5PicgLiBHYWxsZXJ5VXRpbGl0aWVzOjptYXJrdXAoJHRoaXMtPl9wcm9wZXJ0aWVzWydjYXRlZ29yeSddKSAuCgkJJzwvY2F0ZWdvcnk+JyAuICRsZiAgOiAnJykgLgoJICAgIChpc3NldCgkdGhpcy0+X3Byb3BlcnRpZXNbJ2dlbmVyYXRvciddKSA/CgkJJzxnZW5lcmF0b3I+JyAuIEdhbGxlcnlVdGlsaXRpZXM6Om1hcmt1cCgkdGhpcy0+X3Byb3BlcnRpZXNbJ2dlbmVyYXRvciddKSAuCgkJJzwvZ2VuZXJhdG9yPicgLiAkbGYgIDogJycpIC4KCSAgICAoaXNzZXQoJHRoaXMtPl9wcm9wZXJ0aWVzWydsYXN0QnVpbGREYXRlJ10pID8KCQknPGxhc3RCdWlsZERhdGU+JyAuICR0aGlzLT5fcHJvcGVydGllc1snbGFzdEJ1aWxkRGF0ZSddIC4KCQknPC9sYXN0QnVpbGREYXRlPicgLiAkbGYgIDogJycpIC4KCSAgICAoaXNzZXQoJHRoaXMtPl9wcm9wZXJ0aWVzWyd0dGwnXSkgPwoJCSc8dHRsPicgLiAkdGhpcy0+X3Byb3BlcnRpZXNbJ3R0bCddIC4gJzwvdHRsPicgLiAkbGYgOiAnJykgLgoJICAgIChpc3NldCgkdGhpcy0+X3Byb3BlcnRpZXNbJ2Nsb3VkJ10pID8KCQknPGNsb3VkIGRvbWFpbj0iJyAuCgkJR2FsbGVyeVV0aWxpdGllczo6bWFya3VwKCR0aGlzLT5fcHJvcGVydGllc1snY2xvdWQnXVsnZG9tYWluJ10pIC4KCQknIiBwb3J0PSInIC4gJHRoaXMtPl9wcm9wZXJ0aWVzWydjbG91ZCddWydwb3J0J10gLgoJCSciIHBhdGg9IicgLiBHYWxsZXJ5VXRpbGl0aWVzOjptYXJrdXAoJHRoaXMtPl9wcm9wZXJ0aWVzWydjbG91ZCddWydwYXRoJ10pIC4KCQknIiByZWdpc3RlclByb2NlZHVyZT0iJyAuICR0aGlzLT5fcHJvcGVydGllc1snY2xvdWQnXVsncmVnaXN0ZXJQcm9jZWR1cmUnXSAuCgkJJyIgcHJvdG9jb2w9IicgLiAkdGhpcy0+X3Byb3BlcnRpZXNbJ2Nsb3VkJ11bJ3Byb3RvY29sJ10gLiAnIiAvPicgLiAkbGYgOiAnJykKCSAgICAuIChpc3NldCgkdGhpcy0+X3Byb3BlcnRpZXNbJ2ltYWdlJ10pID8KCQknPGltYWdlPjx1cmw+JyAuICR0aGlzLT5fcHJvcGVydGllc1snaW1hZ2UnXVsndXJsJ10gLiAnPC91cmw+JyAuICRsZiAuCgkgICAgICAgJyA8dGl0bGU+JyAuCgkgICAgICAgJHRoaXMtPmNkYXRhKEdhbGxlcnlVdGlsaXRpZXM6Om1hcmt1cCgkdGhpcy0+X3Byb3BlcnRpZXNbJ2ltYWdlJ11bJ3RpdGxlJ10pKSAuCgkJJzwvdGl0bGU+JyAuICRsZiAuCgkJJyA8bGluaz4nIC4gJHRoaXMtPl9wcm9wZXJ0aWVzWydpbWFnZSddWydsaW5rJ10gLiAnPC9saW5rPjwvaW1hZ2U+JyA6ICcnKTsKCglmb3JlYWNoICgkdGhpcy0+X2l0ZW1zIGFzICRpdGVtKSB7CgkgICAgaWYgKGlzc2V0KCRpdGVtWyd0aXRsZSddKSAmJiBpc3NldCgkaXRlbVsnbGluayddKSAmJiBpc3NldCgkaXRlbVsnZGVzY3JpcHRpb24nXSkpIHsKCQkkZGF0YSAuPSAnPGl0ZW0+JyAuICRsZiAuCgkJICAgICcgPHRpdGxlPicgLiAkdGhpcy0+Y2RhdGEoR2FsbGVyeVV0aWxpdGllczo6bWFya3VwKCRpdGVtWyd0aXRsZSddKSkgLgoJCSAgICAnPC90aXRsZT4nIC4gJGxmIC4KCQkgICAgJyA8bGluaz4nIC4gJGl0ZW1bJ2xpbmsnXSAuICc8L2xpbms+JyAuICRsZiAuCgkJICAgICcgPGd1aWQgaXNQZXJtYUxpbms9ImZhbHNlIj4nIC4gJGl0ZW1bJ2xpbmsnXSAuICc8L2d1aWQ+JyAuICRsZiAuCgkJICAgICcgPGRlc2NyaXB0aW9uPicgLgoJCSAgICAkdGhpcy0+Y2RhdGEoR2FsbGVyeVV0aWxpdGllczo6bWFya3VwKCRpdGVtWydkZXNjcmlwdGlvbiddKSkKCQkgICAgLiAnPC9kZXNjcmlwdGlvbj4nIC4gJGxmOwoKCQlpZiAoaXNzZXQoJGl0ZW1bJ2F1dGhvciddKSkgewoJCSAgICAkZGF0YSAuPSAnIDxhdXRob3I+JyAuIEdhbGxlcnlVdGlsaXRpZXM6Om1hcmt1cCgkaXRlbVsnYXV0aG9yJ10pIC4KCQkJICAgICAnPC9hdXRob3I+JyAuICRsZjsKCQl9CgoJCWlmIChpc3NldCgkaXRlbVsnY2F0ZWdvcnknXSkpIHsKCQkgICAgJGRhdGEgLj0gJyA8Y2F0ZWdvcnk+JyAuIEdhbGxlcnlVdGlsaXRpZXM6Om1hcmt1cCgkaXRlbVsnY2F0ZWdvcnknXSkgLgoJCQkgICAgICc8L2NhdGVnb3J5PicgLiAkbGY7CgkJfQoKCQlpZiAoaXNzZXQoJGl0ZW1bJ2NvbW1lbnRzJ10pKSB7CgkJICAgICRkYXRhIC49ICcgPGNvbW1lbnRzPicgLiBHYWxsZXJ5VXRpbGl0aWVzOjptYXJrdXAoJGl0ZW1bJ2NvbW1lbnRzJ10pIC4KCQkJICAgICAnPC9jb21tZW50cz4nIC4gJGxmOwoJCX0KCgkJaWYgKGlzc2V0KCRpdGVtWydlbmNsb3N1cmUnXSkpIHsKCQkgICAgJGRhdGEgLj0gJyA8ZW5jbG9zdXJlIHVybD0iJyAuICRpdGVtWydlbmNsb3N1cmUnXVsndXJsJ10gLiAnIiBsZW5ndGg9IicgLgoJCQkkaXRlbVsnZW5jbG9zdXJlJ11bJ2xlbmd0aCddIC4gJyIgdHlwZT0iJyAuCgkJCSRpdGVtWydlbmNsb3N1cmUnXVsndHlwZSddIC4gJyIgLz4nIC4gJGxmOwoJCX0KCgkJaWYgKGlzc2V0KCRpdGVtWydndWlkJ10pKSB7CgkJICAgICRkYXRhIC49ICcgPGd1aWQ+JyAuICRpdGVtWydndWlkJ10gLiAnPC9ndWlkPicgLiAkbGY7CgkJfQoKCQlpZiAoaXNzZXQoJGl0ZW1bJ3B1YkRhdGUnXSkpIHsKCQkgICAgJGRhdGEgLj0gJyA8cHViRGF0ZT4nIC4gJGl0ZW1bJ3B1YkRhdGUnXSAuICc8L3B1YkRhdGU+JyAuICRsZjsKCQl9CgoJCWlmIChpc3NldCgkaXRlbVsnc291cmNlJ10pKSB7CgkJICAgICRkYXRhIC49ICcgPHNvdXJjZT4nIC4gJGl0ZW1bJ3NvdXJjZSddIC4gJzwvc291cmNlPicgLiAkbGY7CgkJfQoKCQkkZGF0YSAuPSAnPC9pdGVtPicgLiAkbGY7CgkgICAgfQoJfQoKCSRkYXRhIC49ICc8L2NoYW5uZWw+JyAuICRsZiAuICc8L3Jzcz4nOwoJcmV0dXJuICRkYXRhOwogICAgfQoKICAgIC8qKgogICAgICogV3JhcCBhIHRleHQgZWxlbWVudCBpbiA8IVtDREFUQSAuLiBdXT4KICAgICAqIEBwYXJhbSBzdHJpbmcgJHRleHQKICAgICAqIEByZXR1cm4gc3RyaW5nIHdyYXBwZWQgdGV4dAogICAgICovCiAgICBmdW5jdGlvbiBjZGF0YSgkdGV4dCkgewoJcmV0dXJuICc8IVtDREFUQVsnIC4gJHRleHQgLiAnXV0+JzsKICAgIH0KfQo/Pgo=');
expand_c19e8c72e9($outputDir, 'classes/RssHelper.class', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKgogKiBDaGVjayBpZiB0aGUgY29tbWVudHMgbW9kdWxlIGV4aXN0cyBhbmQgbG9hZCBHYWxsZXJ5Q29tbWVudEhlbHBlciBpbiB0aGF0IGNhc2UsIHdoaWNoIGlzIHVzZWQgdG8KICogcmV0cmlldmUgY29tbWVudHMgZnJvbSB0aGUgZGF0YWJhc2UgZm9yIGNvbW1lbnRzIHJzcyBmZWVkcy4KICogQHRvZG8gRG9uJ3QgYWNjZXNzIEdhbGxlcnlDb21tZW50SGVscGVyIGRpcmVjdGx5CiAqLwppZiAoR2FsbGVyeVBsYXRmb3JtOjpmaWxlX2V4aXN0cyhkaXJuYW1lKF9fRklMRV9fKQoJICAgIC4gJy8uLi8uLi9jb21tZW50L2NsYXNzZXMvR2FsbGVyeUNvbW1lbnRIZWxwZXIuY2xhc3MnKSkgewogICAgR2FsbGVyeUNvcmVBcGk6OnJlcXVpcmVPbmNlKCdtb2R1bGVzL2NvbW1lbnQvY2xhc3Nlcy9HYWxsZXJ5Q29tbWVudEhlbHBlci5jbGFzcycpOwp9CgovKioKICogSGVscGVyIGNsYXNzIGZvciB0aGUgUlNTIG1vZHVsZQogKiBAcGFja2FnZSBSc3MKICogQHN1YnBhY2thZ2UgQ2xhc3NlcwogKiBAYXV0aG9yIEpvbmF0YW4gSGV5bWFuIDxodHRwOi8vaGV5bWFuLmluZm8+CiAqIEBhdXRob3IgUGllcnJlLUx1YyBQYW91cgogKiBAYXV0aG9yIERhbmllbCBHcnVuZCA8aHR0cDovL3d3dy5waG90b2dydW5kLm5sPgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICogQHN0YXRpYwogKi8KY2xhc3MgUnNzSGVscGVyIHsKICAgIC8qKgogICAgICogVGhpcyBmdW5jdGlvbiB0YWtlcyBhbiBSc3NHZW5lcmF0b3IgYXMgYSBwYXNzLWJ5LXJlZmVyZW5jZSB2YXJpYWJsZSBhbmQgYWRkcyBnYWxsZXJ5IGl0ZW0KICAgICAqIGRhdGEgdG8gaXQsIHNvIHRoYXQgYW4gcnNzIGZlZWQgY2FuIGJlIGdlbmVyYXRlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gb2JqZWN0IFJzc0dlbmVyYXRvciAkZ2VuZXJhdG9yIG9iamVjdCB0aGF0IHdpbGwgZ2V0IHRoZSBkYXRhLgogICAgICogQHBhcmFtIGludCAkaWQgSWQgb2YgdGhlIGFsYnVtIGZyb20gd2hlcmUgdGhlIHBob3RvaXRlbXMgc2hhbGwgYmUgcmV0cmlldmVkLgogICAgICogQHBhcmFtIGFycmF5ICRwYXJhbXMgQWRkaXRpb25hbCBwYXJhbWV0ZXJzLgogICAgICogQHJldHVybiBvYmplY3QgR2FsbGVyeVN0YXR1cwogICAgICovCiAgICBmdW5jdGlvbiBnZXRGZWVkKCYkZ2VuZXJhdG9yLCAkaWQsICRwYXJhbSkgewoJZ2xvYmFsICRnYWxsZXJ5OwoKCS8qIGdldCBnYWxsZXJ5IGVudGl0eSBieSBpZCAqLwoJbGlzdCAoJHJldCwgJGVudGl0eSkgPSBHYWxsZXJ5Q29yZUFwaTo6bG9hZEVudGl0aWVzQnlJZCgkaWQpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0KCgkvKiBnZXQgbWVtYmVyIGRhdGEgZm9yIHRoZSA8Y2hhbm5lbD4gcHJvcGVydGllcyAqLwoJJG1lbWJlckRhdGEgPSAoYXJyYXkpICRlbnRpdHk7CgoJLyogZ2VuZXJhdGUgdXJsIHRvIHRoZSBhbGJ1bSBhbmQgcnNzIGZlZWQgKi8KCSR1cmxHZW5lcmF0b3IgPSYgJGdhbGxlcnktPmdldFVybEdlbmVyYXRvcigpOwoJJGFsYnVtVXJsID0gJHVybEdlbmVyYXRvci0+Z2VuZXJhdGVVcmwoCgkgICAgYXJyYXkoCgkJJ3ZpZXcnID0+ICdjb3JlLlNob3dJdGVtJywKCQknaXRlbUlkJyA9PiAkbWVtYmVyRGF0YVsnaWQnXSksCgkgICAgYXJyYXkoCgkJJ2ZvcmNlU2Vzc2lvbklkJyA9PiBmYWxzZSwKCQknZm9yY2VGdWxsVXJsJyA9PiB0cnVlKSk7CgoJJGdlbmVyYXRvci0+YWRkUHJvcGVydHkoJ3RpdGxlJywgJG1lbWJlckRhdGFbJ3RpdGxlJ10pOwoJJGdlbmVyYXRvci0+YWRkUHJvcGVydHkoJ2Rlc2NyaXB0aW9uJywgJG1lbWJlckRhdGFbJ2Rlc2NyaXB0aW9uJ10pOwoJJGdlbmVyYXRvci0+YWRkUHJvcGVydHkoJ2xpbmsnLCAkYWxidW1VcmwpOwoKCWlmICgkcGFyYW1bJ3VzZUltYWdlJ10pIHsKCSAgICAvKiByZXRyaWV2ZSBnYWxsZXJ5IHRodW1ibmFpbCAqLwoJICAgIGxpc3QgKCRyZXQsICR0aHVtYkFycmF5bCkgPSBHYWxsZXJ5Q29yZUFwaTo6ZmV0Y2hUaHVtYm5haWxzQnlJdGVtSWRzKGFycmF5KCRpZCkpOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuICRyZXQ7CgkgICAgfQoKCSAgICAvKiBjaGVjayBpZiBpbWFnZSB0YWcgc2hvdWxkIGJlIHVzZWQgKi8KCSAgICBpZiAoIWVtcHR5KCR0aHVtYkFycmF5bCkpIHsKCQkkdGh1bWIgPSAkdGh1bWJBcnJheWxbJGlkXTsKCQkkaW1hZ2VVcmwgPSAkdXJsR2VuZXJhdG9yLT5nZW5lcmF0ZVVybCgKCQkgICAgYXJyYXkoCgkJCSd2aWV3JyA9PiAnY29yZS5Eb3dubG9hZEl0ZW0nLAoJCQknaXRlbUlkJyA9PiAkdGh1bWItPmdldElkKCkpLAoJCSAgICBhcnJheSgKCQkJJ2ZvcmNlU2Vzc2lvbklkJyA9PiBmYWxzZSwKCQkJJ2ZvcmNlRnVsbFVybCcgPT4gdHJ1ZSkpOwoKCQkkZ2VuZXJhdG9yLT5hZGRQcm9wZXJ0eSgnaW1hZ2UnLCBhcnJheSgndGl0bGUnID0+ICRtZW1iZXJEYXRhWyd0aXRsZSddLAoJCSAgICAndXJsJyA9PiAkaW1hZ2VVcmwsICdsaW5rJyA9PiAkYWxidW1VcmwpKTsKCSAgICB9Cgl9CgoJLyogY2hlY2sgaWYgdGhlIGNsb3VkIHRhZyBzaG91bGQgYmUgdXNlZCAqLwoJaWYgKCRwYXJhbVsndXNlQ2xvdWQnXSkgewoJICAgICRjbG91ZCA9IGFycmF5KCdkb21haW4nID0+ICRwYXJhbVsnY2xvdWREb21haW4nXSwKCQkJICAgJ3BvcnQnID0+ICRwYXJhbVsnY2xvdWRQb3J0J10sCgkJCSAgICdwYXRoJyA9PiAkcGFyYW1bJ2Nsb3VkUGF0aCddLAoJCQkgICAncmVnaXN0ZXJQcm9jZWR1cmUnID0+ICRwYXJhbVsnY2xvdWRSZWdpc3RlclByb2NlZHVyZSddLAoJCQkgICAncHJvdG9jb2wnID0+ICRwYXJhbVsnY2xvdWRQcm90b2NvbCddKTsKCSAgICAkZ2VuZXJhdG9yLT5hZGRQcm9wZXJ0eSgnY2xvdWQnLCAkY2xvdWQpOwoJfQoKCS8qIGFkZCBjb3B5cmlnaHQsIGNhdGVnb3J5IGFuZCBnZW5lcmF0b3IgKi8KCWlmIChpc3NldCgkcGFyYW1bJ2NvcHlyaWdodCddKSkgewoJICAgICRnZW5lcmF0b3ItPmFkZFByb3BlcnR5KCdjb3B5cmlnaHQnLCAkcGFyYW1bJ2NvcHlyaWdodCddKTsKCX0KCWlmIChpc3NldCgkcGFyYW1bJ2NhdGVnb3J5J10pKSB7CgkgICAgJGdlbmVyYXRvci0+YWRkUHJvcGVydHkoJ2NhdGVnb3J5JywgJHBhcmFtWydjYXRlZ29yeSddKTsKCX0KCWxpc3QgKCRyZXQsICR2ZXJzaW9uKSA9CgkgICAgR2FsbGVyeUNvcmVBcGk6OmdldFBsdWdpblBhcmFtZXRlcignbW9kdWxlJywgJ3JzcycsICdfdmVyc2lvbicpOwoJJGdlbmVyYXRvci0+YWRkUHJvcGVydHkoJ2dlbmVyYXRvcicsICdHYWxsZXJ5IDIgUlNTIE1vZHVsZSwgdmVyc2lvbiAnIC4gJHZlcnNpb24pOwoJJGdlbmVyYXRvci0+YWRkUHJvcGVydHkoJ3R0bCcsICRwYXJhbVsndHRsJ10pOwoJJHZtID0gJGdhbGxlcnktPmdldFBocFZtKCk7CgkkZ2VuZXJhdG9yLT5hZGRQcm9wZXJ0eSgnbGFzdEJ1aWxkRGF0ZScsIGRhdGUoJ3InLCAkdm0tPnRpbWUoKSkpOwoKCS8qIGxhbmd1YWdlIHRhZyAqLwoJJGdlbmVyYXRvci0+YWRkUHJvcGVydHkoJ2xhbmd1YWdlJywgJHBhcmFtWydsYW5ndWFnZSddKTsKCgkkaXRlbXMgPSBhcnJheSgpOwoJJG5ld09ubHkgPSAoJHBhcmFtWydmZWVkRGF0ZSddID09ICduZXcnKTsKCglzd2l0Y2ggKCRwYXJhbVsnZmVlZFR5cGUnXSkgewoJICAgIGNhc2UgJ2FsYnVtJzoKCSAgICBjYXNlICdwaG90b3NSZWN1cnNlJzoKCQkvKiBnZXQgc3ViLWFsYnVtcyBvciBpdGVtcywgb3JkZXJlZCBieSBkYXRlICovCgkJbGlzdCAoJHJldCwgJGl0ZW1zKSA9IFJzc0hlbHBlcjo6ZmV0Y2hBbGJ1bVRyZWUoCgkJICAgICRlbnRpdHktPmdldElkKCksCgkJICAgICRwYXJhbVsnY291bnQnXSwKCQkgICAgJG5ld09ubHksCgkJICAgICRwYXJhbVsnZmVlZFR5cGUnXSAhPSAnYWxidW0nLAoJCSAgICAkcGFyYW1bJ2ZlZWRUeXBlJ10gPT0gJ3Bob3Rvc1JlY3Vyc2UnPyRwYXJhbVsncGhvdG9zUmVjdXJzZUxpbWl0J106MCk7CgkJaWYgKCRyZXQpIHsKCQkgICAgcmV0dXJuICRyZXQ7CgkJfQoKCQlpZiAoIWVtcHR5KCRpdGVtcykpIHsKCQkgICAgbGlzdCAoJHJldCwgJGl0ZW1zKSA9IEdhbGxlcnlDb3JlQXBpOjpsb2FkRW50aXRpZXNCeUlkKCRpdGVtcyk7CgkJICAgIGlmICgkcmV0KSB7CgkJCXJldHVybiAkcmV0OwoJCSAgICB9CgoJCSAgICBpZiAoJHBhcmFtWydmZWVkVHlwZSddID09ICdwaG90b3NSZWN1cnNlJykgewoJCQkvKiBsb2FkIHBhcmVudHMgYWxzbywgc28gd2UgY2FuIGRpc3BsYXkgdGhlIG5hbWUgb2YgdGhlIHBhcmVudCBhbGJ1bXMgKi8KCQkJJHBhcmVudElkcyA9IGFycmF5KCk7CgoJCQlmb3JlYWNoICgkaXRlbXMgYXMgJGl0ZW0pIHsKCQkJICAgIGlmICghaW5fYXJyYXkoJGl0ZW0tPmdldFBhcmVudElkKCksICRwYXJlbnRJZHMpKSB7CgkJCQkkcGFyZW50SWRzW10gPSAkaXRlbS0+Z2V0UGFyZW50SWQoKTsKCQkJICAgIH0KCQkJfQoKCQkJbGlzdCAoJHJldCwgJHBhcmVudHMpID0gR2FsbGVyeUNvcmVBcGk6OmxvYWRFbnRpdGllc0J5SWQoJHBhcmVudElkcyk7CgkJCWlmICgkcmV0KSB7CgkJCSAgICByZXR1cm4gJHJldDsKCQkJfQoKCQkJJHBhcmVudHNBID0gYXJyYXkoKTsKCQkJZm9yZWFjaCAoJHBhcmVudHMgYXMgJHBhcmVudCkgewoJCQkgICAgJHBhcmVudHNBWyRwYXJlbnQtPmdldElkKCldID0gJHBhcmVudDsKCQkJfQoKCQkJJHBhcmFtWydwYXJlbnRzJ10gPSAkcGFyZW50c0E7CgkJICAgIH0KCQl9CgoJCWJyZWFrOwoKCSAgICBjYXNlICdwaG90b3MnOgoJCWxpc3QgKCRyZXQsICRpdGVtcykgPSBSc3NIZWxwZXI6OmdldFBob3RvRmVlZCgkZW50aXR5LCAkbmV3T25seSk7CgkJaWYgKCRyZXQpIHsKCQkgICAgcmV0dXJuICRyZXQ7CgkJfQoKCQlicmVhazsKCgkgICAgY2FzZSAnY29tbWVudHNBbGJ1bSc6CgkgICAgY2FzZSAnY29tbWVudHNQaG90byc6CgkJbGlzdCAoJHJldCwgJGl0ZW1zKSA9IEdhbGxlcnlDb21tZW50SGVscGVyOjpmZXRjaENvbW1lbnRzKCRpZCwKCQkgICAgJHBhcmFtWydjb3VudCddLCBPUkRFUl9ERVNDRU5ESU5HKTsKCQlpZiAoJHJldCkgewoJCSAgICByZXR1cm4gJHJldDsKCQl9CgoJCWJyZWFrOwoJICAgIGNhc2UgJ2NvbW1lbnRzUmVjdXJzaXZlJzoKCQlsaXN0ICgkcmV0LCAkaXRlbXMpID0gR2FsbGVyeUNvbW1lbnRIZWxwZXI6OmZldGNoQWxsQ29tbWVudHMoJGlkLAoJCSAgICAkcGFyYW1bJ2NvdW50J10sIG51bGwsIE9SREVSX0RFU0NFTkRJTkcpOwoJCWlmICgkcmV0KSB7CgkJICAgIHJldHVybiAkcmV0OwoJCX0KCgkJYnJlYWs7Cgl9CgoJLyogZ28gdGhyb3VnaCBzdWJpdGVtcyBhcnJheSBhbmQgcGFzcyBkYXRhIHRvIGdlbmVyYXRvciAqLwoJaWYgKCFlbXB0eSgkaXRlbXMpKSB7CgkgICAgZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKSB7CgkJJHJldCA9IFJzc0hlbHBlcjo6YWRkSXRlbSgkZ2VuZXJhdG9yLCAkaXRlbSwgJHBhcmFtKTsKCgkJaWYgKCRyZXQpIHsKCQkgICAgcmV0dXJuICRyZXQ7CgkJfQoJICAgIH0KCX0KCglyZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIFRoaXMgZnVuY3Rpb24gcmV0cmlldmVzIHBob3RvcyBhbmQgcHV0IHRoZW0gaW4gYW4gYXJyYXkuCiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdCBHYWxsZXJ5QWxidW1JdGVtICRlbnRpdHkgQWxidW0gdGhhdCB3ZSBzaGFsbCByZXRyaWV2ZSBwaG90b3MvY29tbWVudHMgZnJvbS4KICAgICAqIEByZXR1cm4gYXJyYXkgb2JqZWN0IEdhbGxlcnlTdGF0dXMKICAgICAqICAgICAgICAgICAgICAgYXJyYXkgIGNyZWF0aW9uVGltZVN0YW1wID0+IEdhbGxlcnlJdGVtCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFBob3RvRmVlZCgkZW50aXR5LCAkbmV3T25seSkgewoJLyogcmV0cmlldmUgc3ViaXRlbXMnIGlkcyAqLwoJbGlzdCAoJHJldCwgJHN1YklkcykgPSBHYWxsZXJ5Q29yZUFwaTo6ZmV0Y2hDaGlsZEl0ZW1JZHMoJGVudGl0eSk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkkaXRlbXNBY2MgPSBhcnJheSgpOwoJJHNvcnRQYXJhbSA9ICRuZXdPbmx5ID8gJ2NyZWF0aW9uVGltZXN0YW1wJyA6ICdtb2RpZmljYXRpb25UaW1lc3RhbXAnOwoKCS8qIGdvIHRocm91Z2ggc3ViaXRlbXMgYXJyYXkgYW5kIHBhc3MgZGF0YSB0byBnZW5lcmF0b3IgKi8KCWlmICghZW1wdHkoJHN1YklkcykpIHsKCSAgICAvKiByZXRyaWV2ZSBhcnJheSBvZiBzdWJpdGVtcyAqLwoJICAgIGxpc3QgKCRyZXQsICRzdWJJdGVtcykgPSBHYWxsZXJ5Q29yZUFwaTo6bG9hZEVudGl0aWVzQnlJZCgkc3ViSWRzKTsKCSAgICBpZiAoJHJldCkgewoJCXJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCSAgICB9CgoJICAgIGZvcmVhY2ggKCRzdWJJdGVtcyBhcyAka2V5ID0+ICRzdWJJdGVtKSB7CgkJLyogY2hlY2sgaWYgdGhlIHN1Yml0ZW0gaXMgYSBwaG90byAqLwoJCWlmIChHYWxsZXJ5VXRpbGl0aWVzOjppc0EoJHN1Ykl0ZW0sICdHYWxsZXJ5RGF0YUl0ZW0nKSkgewoJCSAgICAkaXRlbURhdGEgPSAoYXJyYXkpICRzdWJJdGVtOwoJCSAgICAka2V5ID0gJGl0ZW1EYXRhWyRzb3J0UGFyYW1dIC4gJ18nIC4gJGl0ZW1EYXRhWydpZCddOwoJCSAgICAkaXRlbXNBY2NbJGtleV0gPSAkc3ViSXRlbTsKCQl9CgkgICAgfQoJfQoKCWtyc29ydCgkaXRlbXNBY2MpOwoKCXJldHVybiBhcnJheShudWxsLCAkaXRlbXNBY2MpOwogICAgfQoKICAgIC8qKgogICAgICogVGhpcyBmdW5jdGlvbiBhZGRzIGFuIGl0ZW0gdG8gdGhlIGZlZWQgZ2VuZXJhdG9yCiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdCBSc3NHZW5lcmF0b3IgJGdlbmVyYXRvciByZWZlcmVuY2UgdG8gdGhlIGdlbmVyYXRvcgogICAgICogQHBhcmFtIG9iamVjdCBHYWxsZXJ5RW50aXR5ICRpdGVtIGl0ZW0gdG8gYWRkCiAgICAgKiBAcGFyYW0gYXJyYXkgJHBhcmFtIGZlZWQgcGFyYW1ldGVycwogICAgICogQHJldHVybiBvYmplY3QgR2FsbGVyeVN0YXR1cwogICAgICovCiAgICBmdW5jdGlvbiBhZGRJdGVtKCYkZ2VuZXJhdG9yLCAkaXRlbSwgJHBhcmFtKSB7CglpZiAoR2FsbGVyeVV0aWxpdGllczo6aXNBKCRpdGVtLCAnR2FsbGVyeURhdGFJdGVtJykKCQl8fCBHYWxsZXJ5VXRpbGl0aWVzOjppc0EoJGl0ZW0sICdHYWxsZXJ5QWxidW1JdGVtJykpIHsKCSAgICByZXR1cm4gUnNzSGVscGVyOjphZGRQaG90b09yQWxidW0oJGdlbmVyYXRvciwgJGl0ZW0sICRwYXJhbSk7Cgl9IGVsc2UgaWYgKEdhbGxlcnlVdGlsaXRpZXM6OmlzQSgkaXRlbSwgJ0dhbGxlcnlDb21tZW50JykpIHsKCSAgICByZXR1cm4gUnNzSGVscGVyOjphZGRDb21tZW50KCRnZW5lcmF0b3IsICRpdGVtLCAkcGFyYW0pOwoJfSBlbHNlIHsKCSAgICByZXR1cm4gR2FsbGVyeUNvcmVBcGk6OmVycm9yKEVSUk9SX0lOVkFMSURfT0JKRUNUKTsKCX0KICAgIH0KCiAgICAvKioKICAgICAqIFRoaXMgZnVuY3Rpb24gYWRkcyBhIHBob3RvIG9yIGFuIGFsYnVtIGl0ZW0gdG8gdGhlIGZlZWQgZ2VuZXJhdG9yCiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdCBSc3NHZW5lcmF0b3IgJGdlbmVyYXRvciByZWZlcmVuY2UgdG8gdGhlIGdlbmVyYXRvcgogICAgICogQHBhcmFtIG9iamVjdCBHYWxsZXJ5SXRlbSAkaXRlbSBpdGVtIHRvIGFkZAogICAgICogQHBhcmFtIGFycmF5ICRwYXJhbSBmZWVkIHBhcmFtZXRlcnMKICAgICAqIEByZXR1cm4gb2JqZWN0IEdhbGxlcnlTdGF0dXMKICAgICAqLwogICAgZnVuY3Rpb24gYWRkUGhvdG9PckFsYnVtKCYkZ2VuZXJhdG9yLCAkaXRlbSwgJHBhcmFtKSB7CglnbG9iYWwgJGdhbGxlcnk7CgoJLyogZ2VuZXJhdGUgdXJsIHRvIHRoZSBpbWFnZXMgKi8KCSR1cmxHZW5lcmF0b3IgPSYgJGdhbGxlcnktPmdldFVybEdlbmVyYXRvcigpOwoJJHVybCA9ICR1cmxHZW5lcmF0b3ItPmdlbmVyYXRlVXJsKAoJICAgIGFycmF5KCd2aWV3JyA9PiAnY29yZS5TaG93SXRlbScsICdpdGVtSWQnID0+ICRpdGVtLT5nZXRJZCgpKSwKCSAgICBhcnJheSgnZm9yY2VTZXNzaW9uSWQnID0+IGZhbHNlLCAnZm9yY2VGdWxsVXJsJyA9PiB0cnVlKSk7CgoJLyogZ2VuZXJhdGUgZGVzY3JpcHRpb24gKi8KCSRkZXNjcmlwdGlvbiA9ICRpdGVtLT5nZXREZXNjcmlwdGlvbigpOwoJaWYgKCFpc3NldCgkZGVzY3JpcHRpb24pKSB7CgkgICAgJGRlc2NyaXB0aW9uID0gJyc7Cgl9CgoJbGlzdCAoJHJldCwgJHRodW1ibmFpbHMpID0gR2FsbGVyeUNvcmVBcGk6OmZldGNoVGh1bWJuYWlsc0J5SXRlbUlkcyhhcnJheSgkaXRlbS0+Z2V0SWQoKSkpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0KCglpZiAoIWVtcHR5KCR0aHVtYm5haWxzKSAmJiAhZW1wdHkoJHRodW1ibmFpbHNbJGl0ZW0tPmdldElkKCldKSkgewoJICAgICR0aHVtYm5haWwgPSAkdGh1bWJuYWlsc1skaXRlbS0+Z2V0SWQoKV07CgkgICAgJGltYWdlVXJsID0gJHVybEdlbmVyYXRvci0+Z2VuZXJhdGVVcmwoCgkJYXJyYXkoCgkJICAgICd2aWV3JyA9PiAnY29yZS5Eb3dubG9hZEl0ZW0nLAoJCSAgICAnaXRlbUlkJyA9PiAkdGh1bWJuYWlsLT5nZXRJZCgpKSwKCQlhcnJheSgKCQkgICAgJ2ZvcmNlU2Vzc2lvbklkJyA9PiBmYWxzZSwKCQkgICAgJ2ZvcmNlRnVsbFVybCcgPT4gdHJ1ZSkpOwoKCSAgICAkZGVzY3JpcHRpb24gPSAnPGEgaHJlZj0iJyAuICR1cmwgLiciPjxpbWcgYm9yZGVyPSIwIiBzcmM9IicgLiAkaW1hZ2VVcmwgLgoJCSciIHdpZHRoPSInIC4gJHRodW1ibmFpbC0+Z2V0V2lkdGgoKSAuCgkJJyIgaGVpZ2h0PSInIC4gJHRodW1ibmFpbC0+Z2V0SGVpZ2h0KCkgLgoJCSciLz48L2E+JyAuICghZW1wdHkoJGRlc2NyaXB0aW9uKSA/ICc8YnIvPicgLiAkZGVzY3JpcHRpb24gOiAkZGVzY3JpcHRpb24pOwoJfQoKCWlmICgkcGFyYW1bJ2ZlZWRUeXBlJ10gPT0gJ3Bob3Rvc1JlY3Vyc2UnKSB7CgkgICAgLyogYWRkIGEgbGluayB0byB0aGUgcGFyZW50IGFsYnVtICovCgkgICAgbGlzdCAoJHJldCwgJG1vZHVsZSkgPSBHYWxsZXJ5Q29yZUFwaTo6bG9hZFBsdWdpbignbW9kdWxlJywgJ3JzcycpOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuICRyZXQ7CgkgICAgfQoKCSAgICAkdXJsMSA9ICR1cmxHZW5lcmF0b3ItPmdlbmVyYXRlVXJsKAoJCWFycmF5KCd2aWV3JyA9PiAnY29yZS5TaG93SXRlbScsICdpdGVtSWQnID0+ICRpdGVtLT5nZXRQYXJlbnRJZCgpKSwKCQlhcnJheSgnZm9yY2VTZXNzaW9uSWQnID0+IGZhbHNlLCAnZm9yY2VGdWxsVXJsJyA9PiB0cnVlKSk7CgoJICAgICRkZXNjcmlwdGlvbiAuPSAnPGJyLz4nIC4gJG1vZHVsZS0+dHJhbnNsYXRlKAoJCWFycmF5KCd0ZXh0JyA9PiAnSW4gYWxidW0gPGEgaHJlZj0iJXMiPiVzPC9hPicsCgkJJ2FyZzEnID0+ICR1cmwxLAoJCSdhcmcyJyA9PiAkcGFyYW1bJ3BhcmVudHMnXVskaXRlbS0+Z2V0UGFyZW50SWQoKV0tPmdldFRpdGxlKCkpKTsKCX0KCgkkdGl0bGUgPSAkaXRlbS0+Z2V0VGl0bGUoKTsKCWlmICghaXNzZXQoJHRpdGxlKSkgewoJICAgICR0aXRsZSA9ICRpdGVtLT5nZXRQYXRoQ29tcG9uZW50KCk7Cgl9CgoJJGl0ZW1TZXR0aW5ncyA9IGFycmF5KCd0aXRsZScgPT4gJHRpdGxlLAoJCQkgICAgICAnbGluaycgPT4gJHVybCwKCQkJICAgICAgJ2Rlc2NyaXB0aW9uJyA9PiAkZGVzY3JpcHRpb24pOwoKCWlmIChHYWxsZXJ5VXRpbGl0aWVzOjppc0EoJGl0ZW0sICdHYWxsZXJ5QWxidW1JdGVtJykpIHsKCSAgICAkaXRlbVNldHRpbmdzWydjYXRlZ29yeSddID0gJ2FsYnVtJzsKCX0gZWxzZSB7CgkgICAgJGl0ZW1TZXR0aW5nc1snY2F0ZWdvcnknXSA9ICdwaG90byc7Cgl9CgoJJGl0ZW1TZXR0aW5nc1sncHViRGF0ZSddID0gZGF0ZSgncicsICRpdGVtLT5nZXRNb2RpZmljYXRpb25UaW1lc3RhbXAoKSk7CgoJLyogY2hlY2sgaWYgdGhlIGVuY2xvc3VyZSB0YWcgc2hvdWxkIGJlIHVzZWQgKi8KCWlmIChHYWxsZXJ5VXRpbGl0aWVzOjppc0EoJGl0ZW0sICdHYWxsZXJ5RGF0YUl0ZW0nKQoJCSYmIGlzc2V0KCRwYXJhbVsndXNlRW5jbG9zdXJlJ10pCgkJJiYgJHBhcmFtWyd1c2VFbmNsb3N1cmUnXSA9PSAnMScpIHsKCSAgICAkaW1hZ2VVcmwgPSAkdXJsR2VuZXJhdG9yLT5nZW5lcmF0ZVVybCgKCQlhcnJheSgKCQkgICAgJ3ZpZXcnID0+ICdjb3JlLkRvd25sb2FkSXRlbScsCgkJICAgICdpdGVtSWQnID0+ICRpdGVtLT5nZXRJZCgpKSwKCQlhcnJheSgKCQkgICAgJ2ZvcmNlU2Vzc2lvbklkJyA9PiBmYWxzZSwKCQkgICAgJ2ZvcmNlRnVsbFVybCcgPT4gdHJ1ZSkpOwoJICAgICRpdGVtU2V0dGluZ3NbJ2VuY2xvc3VyZSddID0gYXJyYXkoCgkJJ3VybCcgPT4gJGltYWdlVXJsLAoJCSdsZW5ndGgnID0+ICRpdGVtLT5nZXRTaXplKCksCgkJJ3R5cGUnID0+ICRpdGVtLT5nZXRNaW1lVHlwZSgpKTsKCX0KCgkkZ2VuZXJhdG9yLT5hZGRJdGVtKCRpdGVtU2V0dGluZ3MsICRpdGVtLT5nZXRJZCgpKTsKCglyZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIFRoaXMgZnVuY3Rpb24gYWRkcyBhIGNvbW1lbnQgaXRlbSB0byB0aGUgZmVlZCBnZW5lcmF0b3IKICAgICAqCiAgICAgKiBAcGFyYW0gb2JqZWN0IFJzc0dlbmVyYXRvciAkZ2VuZXJhdG9yIHJlZmVyZW5jZSB0byB0aGUgZ2VuZXJhdG9yCiAgICAgKiBAcGFyYW0gb2JqZWN0IEdhbGxlcnlDb21tZW50ICRpdGVtIGl0ZW0gdG8gYWRkCiAgICAgKiBAcGFyYW0gYXJyYXkgJHBhcmFtIGZlZWQgcGFyYW1ldGVycwogICAgICogQHJldHVybiBvYmplY3QgR2FsbGVyeVN0YXR1cwogICAgICovCiAgICBmdW5jdGlvbiBhZGRDb21tZW50KCYkZ2VuZXJhdG9yLCAkaXRlbSwgJHBhcmFtKSB7CglnbG9iYWwgJGdhbGxlcnk7CgoJLyogZ2VuZXJhdGUgdXJsIHRvIHRoZSBpbWFnZXMgKi8KCSR1cmxHZW5lcmF0b3IgPSYgJGdhbGxlcnktPmdldFVybEdlbmVyYXRvcigpOwoJJHVybCA9ICR1cmxHZW5lcmF0b3ItPmdlbmVyYXRlVXJsKAoJICAgIGFycmF5KCd2aWV3JyA9PiAnY29tbWVudC5TaG93QWxsQ29tbWVudHMnLCAnaXRlbUlkJyA9PiAkaXRlbS0+Z2V0UGFyZW50SWQoKSksCgkgICAgYXJyYXkoJ2ZvcmNlU2Vzc2lvbklkJyA9PiBmYWxzZSwgJ2ZvcmNlRnVsbFVybCcgPT4gdHJ1ZSkpOwoKCSRpdGVtU2V0dGluZ3MgPSBhcnJheSgKCSAgICAndGl0bGUnID0+ICRpdGVtLT5nZXRTdWJqZWN0KCksCgkgICAgJ2xpbmsnID0+ICR1cmwsCgkgICAgJ2Rlc2NyaXB0aW9uJyA9PiAkaXRlbS0+Z2V0Q29tbWVudCgpKTsKCgkvKiBjaGVjayBpZiB3ZSBzaG91bGQgdXNlIHRoZSBjYXRlZ29yeSB0YWcgKi8KCWlmIChpc3NldCgkcGFyYW1bJ3VzZUl0ZW1DYXRlZ29yeSddKSAmJiAkcGFyYW1bJ3VzZUl0ZW1DYXRlZ29yeSddID09ICcxJykgewoJICAgICRpdGVtU2V0dGluZ3NbJ2NhdGVnb3J5J10gPSAnY29tbWVudCc7Cgl9CgoJLyogY2hlY2sgaWYgcHViRGF0ZSB0YWcgc2hvdWxkIGJlIHVzZWQgKi8KCWlmIChpc3NldCgkcGFyYW1bJ3VzZVB1YkRhdGUnXSkgJiYgJHBhcmFtWyd1c2VQdWJEYXRlJ10pIHsKCSAgICAkaXRlbVNldHRpbmdzWydwdWJEYXRlJ10gPSBkYXRlKCdyJywgJGl0ZW0tPmdldERhdGUoKSk7Cgl9CgoJJGdlbmVyYXRvci0+YWRkSXRlbSgkaXRlbVNldHRpbmdzLCAkaXRlbS0+Z2V0SWQoKSk7CgoJcmV0dXJuIG51bGw7CiAgICB9CgogICAgLyoqCiAgICAgKiBUaGlzIGZ1bmN0aW9uIGZldGNoZXMgYWxidW1zIG9yIGl0ZW1zIGluc2lkZSBhIHJvb3QgYWxidW0KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRpdGVtSWQgdGhlIHJvb3QgYWxidW0gSWQKICAgICAqIEBwYXJhbSBpbnQgJGxpbWl0IHRoZSBtYXhpbXVtIG51bWJlciBvZiBpdGVtcyB0byBmZXRjaCBmcm9tIHRoZSBEQgogICAgICogQHBhcmFtIGJvb2xlYW4gJG5ld09ubHkgaWYgdHJ1ZSwgb25seSBzZWxlY3QgbmV3IGl0ZW1zIChub3QgY2hhbmdlZCkKICAgICAqIEBwYXJhbSBib29sZWFuICRhbGxvd1Bob3RvcyBpZiB0cnVlLCByZXR1cm5zIHBob3RvczsgaWYgZmFsc2UsIGFsYnVtcwogICAgICogQHBhcmFtIGludCAkcGVyQWxidW1MaW1pdCB0aGUgbWF4aW11bSBudW1iZXIgb2YgcGljdHVyZXMgdG8gcmV0dXJuIGZyb20gYSBzaW5nbGUgYWxidW0KICAgICAqIEByZXR1cm4gYXJyYXkgb2JqZWN0IEdhbGxlcnlTdGF0dXMKICAgICAqICAgICAgICAgICAgICAgYXJyYXkgb2YgaXRlbSBJZHMKICAgICAqCiAgICAgKiBjb3BpZWQgYW5kIG1vZGlmaWVkIGZyb20gR2FsbGVyeUl0ZW1IZWxwZXJfc2ltcGxlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZldGNoQWxidW1UcmVlKCRpdGVtSWQsICRsaW1pdCwgJG5ld09ubHksICRhbGxvd1Bob3RvcywgJHBlckFsYnVtTGltaXQgPSAwKSB7CglnbG9iYWwgJGdhbGxlcnk7Cgkkc3RvcmFnZSA9JiAkZ2FsbGVyeS0+Z2V0U3RvcmFnZSgpOwoJJHVzZXJJZCA9ICRnYWxsZXJ5LT5nZXRBY3RpdmVVc2VySWQoKTsKCglsaXN0ICgkcmV0LCAkYWNsSWRzKSA9IEdhbGxlcnlDb3JlQXBpOjpmZXRjaEFjY2Vzc0xpc3RJZHMoJ2NvcmUudmlldycsICR1c2VySWQpOwoJaWYgKGVtcHR5KCRhY2xJZHMpKSB7CgkgICAgcmV0dXJuIGFycmF5KG51bGwsIGFycmF5KCkpOwoJfQoJJGFjbE1hcmtlcnMgPSBHYWxsZXJ5VXRpbGl0aWVzOjptYWtlTWFya2Vycyhjb3VudCgkYWNsSWRzKSk7CgoJbGlzdCAoJHJldCwgJHBhcmVudFNlcXVlbmNlKSA9IEdhbGxlcnlDb3JlQXBpOjpmZXRjaFBhcmVudFNlcXVlbmNlKCRpdGVtSWQpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjphc3NlcnRIYXNJdGVtUGVybWlzc2lvbigkaXRlbUlkLCAnY29yZS52aWV3Jyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCSRwYXJlbnRTZXF1ZW5jZVtdID0gJGl0ZW1JZDsKCSRwYXJlbnRTZXF1ZW5jZSA9IGltcGxvZGUoJy8nLCAkcGFyZW50U2VxdWVuY2UpOwoKCSR0aW1lc3RhbXAgPSAkbmV3T25seSA/ICdjcmVhdGlvblRpbWVzdGFtcCcgOiAnbW9kaWZpY2F0aW9uVGltZXN0YW1wJzsKCSR0YWJsZSA9ICRhbGxvd1Bob3RvcyA/ICdHYWxsZXJ5RGF0YUl0ZW0nIDogJ0dhbGxlcnlBbGJ1bUl0ZW0nOwoKCWxpc3QgKCRyZXQsICRuZXdEYXlzKSA9CgkgICAgR2FsbGVyeUNvcmVBcGk6OmdldFBsdWdpblBhcmFtZXRlcignbW9kdWxlJywgJ25ld2l0ZW1zJywgJ2RheXMubmV3Jyk7CglpZiAoJHJldCB8fCAhJG5ld0RheXMpIHsKCSAgICAkbmV3RGF5cyA9IDE7IC8qIFVzZSBkZWZhdWx0IG9uIGVycm9yIG9yIHplcm8gc2V0dGluZyAqLwoJfQoJJHRpbWVDdXRPZmYgPSB0aW1lKCkgLSAzNjAwICogMjQgKiAkbmV3RGF5czsKCgkkcXVlcnkgPSAiCgkgICAgU0VMRUNUCgkgICAgICBbJHRhYmxlOjppZF0iOwoKCWlmICgkcGVyQWxidW1MaW1pdCAhPSAwKSB7CgkgICAgJHF1ZXJ5IC49ICcsIFtHYWxsZXJ5SXRlbUF0dHJpYnV0ZXNNYXA6OnBhcmVudFNlcXVlbmNlXSc7Cgl9CgoJJHF1ZXJ5IC49ICIKCSAgICBGUk9NCgkgICAgICBbJHRhYmxlXSwgW0dhbGxlcnlJdGVtQXR0cmlidXRlc01hcF0sCgkgICAgICBbR2FsbGVyeUFjY2Vzc1N1YnNjcmliZXJNYXBdLCBbR2FsbGVyeUVudGl0eV0KCSAgICBXSEVSRQoJICAgICAgW0dhbGxlcnlFbnRpdHk6OiR0aW1lc3RhbXBdID49ICR0aW1lQ3V0T2ZmCgkgICAgICBBTkQKCSAgICAgIFskdGFibGU6OmlkXSA9IFtHYWxsZXJ5SXRlbUF0dHJpYnV0ZXNNYXA6Oml0ZW1JZF0KCSAgICAgIEFORAoJICAgICAgWyR0YWJsZTo6aWRdID0gW0dhbGxlcnlFbnRpdHk6OmlkXSI7CgoJaWYgKCFlbXB0eSgkcGFyZW50U2VxdWVuY2UpKSB7CgkgICAgJHF1ZXJ5IC49ICIKCSAgICAgIEFORAoJICAgICAgW0dhbGxlcnlJdGVtQXR0cmlidXRlc01hcDo6cGFyZW50U2VxdWVuY2VdIExJS0UgJyRwYXJlbnRTZXF1ZW5jZS8lJyI7Cgl9CgoJJHF1ZXJ5IC49ICIKCSAgICAgIEFORAoJICAgICAgWyR0YWJsZTo6aWRdID0gW0dhbGxlcnlBY2Nlc3NTdWJzY3JpYmVyTWFwOjppdGVtSWRdCgkgICAgICBBTkQKCSAgICAgIFtHYWxsZXJ5QWNjZXNzU3Vic2NyaWJlck1hcDo6YWNjZXNzTGlzdElkXSBJTiAoJGFjbE1hcmtlcnMpCgkgICAgT1JERVIgQlkKCSAgICAgIFtHYWxsZXJ5RW50aXR5OjokdGltZXN0YW1wXSBERVNDCgkgICAgIjsKCgkkZGF0YSA9ICRhY2xJZHM7CgoJJHBhcmFtcyA9IGFycmF5KCk7CgoJaWYgKGlzc2V0KCRsaW1pdCkpIHsKCSAgICAkcGFyYW1zWydsaW1pdCddID0gYXJyYXkoJ2NvdW50JyA9PiAkbGltaXQpOwoJfQoKCWxpc3QgKCRyZXQsICRzZWFyY2hSZXN1bHRzKSA9ICRnYWxsZXJ5LT5zZWFyY2goJHF1ZXJ5LCAkZGF0YSwgJHBhcmFtcyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkkbGlzdCA9IGFycmF5KCk7CgkkcGVyQWxidW0gPSBhcnJheSgpOwoJd2hpbGUgKCRyZXN1bHQgPSAkc2VhcmNoUmVzdWx0cy0+bmV4dFJlc3VsdCgpKSB7CgkgICAgaWYgKCRwZXJBbGJ1bUxpbWl0ICE9IDApIHsKCQkvKgoJCSAqIGNoZWNrIG51bWJlciBvZiBpdGVtcyBhbHJlYWR5IGFjY2VwdGVkIGZvciB0aGlzIGFsYnVtCgkJICogaXMgbG93ZXIgdGhhbiB0aGUgbGltaXQKCQkgKi8KCQlpZiAoaXNzZXQoJHBlckFsYnVtWyRyZXN1bHRbMV1dKSkgewoJCSAgICAkbiA9ICRwZXJBbGJ1bVskcmVzdWx0WzFdXTsKCgkJICAgIGlmICgkbiA8ICRwZXJBbGJ1bUxpbWl0KSB7CgkJCS8qIHVuZGVyIHRoZSBsaW1pdCAqLwoJCQkkcGVyQWxidW1bJHJlc3VsdFsxXV0gPSAkbiArIDE7CgkJCSRsaXN0W10gPSAkcmVzdWx0WzBdOwoJCSAgICB9CgkJfSBlbHNlIHsKCQkgICAgLyogZmlyc3QgaXRlbSBmb3IgdGhpcyBhbGJ1bTogYWNjZXB0ICovCgkJICAgICRwZXJBbGJ1bVskcmVzdWx0WzFdXSA9IDE7CgkJICAgICRsaXN0W10gPSAkcmVzdWx0WzBdOwoJCX0KCSAgICB9IGVsc2UgewoJCS8qIGluY2x1ZGUgYWxsIHJlc3VsdHMgKi8KCQkkbGlzdFtdID0gJHJlc3VsdFswXTsKCSAgICB9Cgl9CgoJcmV0dXJuIGFycmF5KG51bGwsICRsaXN0KTsKICAgIH0KCiAgICAvKioKICAgICAqIFRoaXMgcHJvdmlkZXMgYSB0cmFuc2xhdGlvbiBvZiB0aGUgZmVlZCB0eXBlIGNvZGVzCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSBvYmplY3QgR2FsbGVyeVN0YXR1cwogICAgICogICAgICAgICAgICAgICBhcnJheSBvZiBmZWVkVHlwZSA9PiB0cmFuc2xhdGlvbgogICAgICovCiAgICBmdW5jdGlvbiBnZXRGZWVkVHlwZVRyYW5zbGF0aW9uKCkgewoJbGlzdCAoJHJldCwgJG1vZHVsZSkgPSBHYWxsZXJ5Q29yZUFwaTo6bG9hZFBsdWdpbignbW9kdWxlJywgJ3JzcycpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJcmV0dXJuIGFycmF5KG51bGwsIGFycmF5KAoJCSdwaG90b3MnID0+ICRtb2R1bGUtPnRyYW5zbGF0ZSgnSXRlbXMgaW4gYW4gYWxidW0nKSwKCQknYWxidW0nID0+ICRtb2R1bGUtPnRyYW5zbGF0ZSgnU3ViLWFsYnVtcyBvZiBhbiBhbGJ1bScpLAoJCSdwaG90b3NSZWN1cnNlJyA9PiAkbW9kdWxlLT50cmFuc2xhdGUoJ0l0ZW1zIGluIGFuIGFsYnVtIGFuZCBpdHMgc3ViLWFsYnVtcycpLAoJCSdjb21tZW50c0FsYnVtJyA9PiAkbW9kdWxlLT50cmFuc2xhdGUoJ0NvbW1lbnRzIGZvciBhbiBhbGJ1bScpLAoJCSdjb21tZW50c1Bob3RvJyA9PiAkbW9kdWxlLT50cmFuc2xhdGUoJ0NvbW1lbnRzIGZvciBhbiBpdGVtJyksCgkJJ2NvbW1lbnRzUmVjdXJzaXZlJyA9PgoJCSAgICAkbW9kdWxlLT50cmFuc2xhdGUoJ0NvbW1lbnRzIGZvciBhbiBhbGJ1bSBhbmQgaXRzIHN1YmFsYnVtcycpLAoJCSkpOwogICAgfQp9Cj8+Cg==');
expand_c19e8c72e9($outputDir, 'classes/RssMapHelper.class', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogVXRpbGl0eSBmdW5jdGlvbnMgdXNlZnVsIGluIG1hbmFnaW5nIFJzcwogKiBAcGFja2FnZSBSc3MKICogQHN1YnBhY2thZ2UgQ2xhc3NlcwogKiBAYXV0aG9yIFBpZXJyZS1MdWMgUGFvdXIgPGdhbGxlcnlAcGFvdXIuY29tPgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICogQHN0YXRpYwogKi8KY2xhc3MgUnNzTWFwSGVscGVyIHsKCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgZmVlZHMgZGVmaW5lZCBmb3IgYSBnaXZlbiBpdGVtCiAgICAgKgogICAgICogQHBhcmFtIGludCAkaXRlbUlkIChvcHRpb25hbCkgaXRlbSBpZCBvciBudWxsIGZvciBhbGwgZmVlZHMKICAgICAqIEByZXR1cm4gYXJyYXkgb2JqZWN0IEdhbGxlcnlTdGF0dXMgYSBzdGF0dXMgY29kZQogICAgICogICAgICAgICBhcnJheSBvZiBhcnJheSAnbmFtZScgPT4gZmVlZCBuYW1lCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICdpdGVtSWQnID0+IGl0ZW0gYXNzb2NpYXRlZCB3aXRoIHRoZSBmZWVkCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICdvd25lcklkJyA9PiBvd25lciBvZiB0aGUgZmVlZAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAncGFyYW1zJyA9PiBmZWVkIGRlZmluaXRpb24KICAgICAqLwogICAgZnVuY3Rpb24gZmV0Y2hGZWVkc0Zvckl0ZW0oJGl0ZW1JZD1udWxsKSB7CglnbG9iYWwgJGdhbGxlcnk7CgoJaWYgKGlzc2V0KCRpdGVtSWQpKSB7CgkgICAgbGlzdCAoJHJldCwgJHNlYXJjaFJlc3VsdHMpID0gR2FsbGVyeUNvcmVBcGk6OmdldE1hcEVudHJ5KCdSc3NNYXAnLAoJCWFycmF5KCdmZWVkTmFtZScsICdpdGVtSWQnLCAnb3duZXJJZCcsICdwYXJhbXMnKSwKCQlhcnJheSgnaXRlbUlkJyA9PiAkaXRlbUlkKSk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoJfSBlbHNlIHsKCSAgICAkcXVlcnkgPSAnCgkgICAgU0VMRUNUCgkgICAgICBbUnNzTWFwOjpmZWVkTmFtZV0sIFtSc3NNYXA6Oml0ZW1JZF0sIFtSc3NNYXA6Om93bmVySWRdLCBbUnNzTWFwOjpwYXJhbXNdCgkgICAgRlJPTQoJICAgICAgW1Jzc01hcF0KCSAgICAnOwoKCSAgICBsaXN0ICgkcmV0LCAkc2VhcmNoUmVzdWx0cykgPSAkZ2FsbGVyeS0+c2VhcmNoKCRxdWVyeSk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoJfQoKCSRmZWVkcyA9IGFycmF5KCk7Cgl3aGlsZSAoJHJlc3VsdCA9ICRzZWFyY2hSZXN1bHRzLT5uZXh0UmVzdWx0KCkpIHsKCSAgICAkcGFyYW1zID0gdW5zZXJpYWxpemUoJHJlc3VsdFszXSk7CgoJICAgIGlmICgkcGFyYW1zICE9IGZhbHNlKSB7CgkJJGZlZWQgPSBhcnJheSgnbmFtZScgPT4gJHJlc3VsdFswXSwKCQkJICAgICAgJ2l0ZW1JZCcgPT4gJHJlc3VsdFsxXSwKCQkJICAgICAgJ293bmVySWQnID0+ICRyZXN1bHRbMl0sCgkJCSAgICAgICdwYXJhbXMnID0+ICRwYXJhbXMpOwoJCSRmZWVkc1tdID0gJGZlZWQ7CgkgICAgfSBlbHNlIHsKCQkvKiB1bnNlcmlhbGl6YXRpb24gZXJyb3IgKi8KCQlyZXR1cm4gYXJyYXkoR2FsbGVyeUNvcmVBcGk6OmVycm9yKEVSUk9SX1NUT1JBR0VfRkFJTFVSRSksCgkJCSAgICAgbnVsbCk7CgkgICAgfQoJfQoJcmV0dXJuIGFycmF5KG51bGwsICRmZWVkcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gYWxsIHRoZSBmZWVkIG5hbWVzCiAgICAgKgogICAgICogQHBhcmFtIGludCAkbGltaXQgb3B0aW9uYWwgbGltaXQgdG8gdGhlIG51bWJlciBvZiBmZWVkcwogICAgICogQHJldHVybiBhcnJheSBvYmplY3QgR2FsbGVyeVN0YXR1cyBhIHN0YXR1cyBjb2RlCiAgICAgKiAgICAgICAgIGFycmF5IG9mIGZlZWQgbmFtZXMKICAgICAqLwogICAgZnVuY3Rpb24gZmV0Y2hGZWVkTmFtZXMoJGxpbWl0PTApIHsKCWdsb2JhbCAkZ2FsbGVyeTsKCgkkcXVlcnkgPSAnCglTRUxFQ1QKCSAgW1Jzc01hcDo6ZmVlZE5hbWVdCglGUk9NCgkgIFtSc3NNYXBdCgknOwoKCSRwYXJhbXMgPSBhcnJheSgpOwoJaWYgKGlzc2V0KCRsaW1pdCkpIHsKCSAgICAkcGFyYW1zWydsaW1pdCddID0gYXJyYXkoJ2NvdW50JyA9PiAkbGltaXQpOwoJfQoKCWxpc3QgKCRyZXQsICRzZWFyY2hSZXN1bHRzKSA9ICRnYWxsZXJ5LT5zZWFyY2goJHF1ZXJ5LCBudWxsLCAkcGFyYW1zKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoKCSRuYW1lcyA9IGFycmF5KCk7Cgl3aGlsZSAoJHJlc3VsdCA9ICRzZWFyY2hSZXN1bHRzLT5uZXh0UmVzdWx0KCkpIHsKCSAgICAkbmFtZXNbXSA9ICRyZXN1bHRbMF07Cgl9CgoJcmV0dXJuIGFycmF5KG51bGwsICRuYW1lcyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBGZXRjaCBhIGZlZWQKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRmZWVkTmFtZQogICAgICogQHJldHVybiBvYmplY3QgR2FsbGVyeVN0YXR1cyBhIHN0YXR1cyBjb2RlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZldGNoRmVlZCgkZmVlZE5hbWUpIHsKCWxpc3QgKCRyZXQsICRzZWFyY2hSZXN1bHRzKSA9IEdhbGxlcnlDb3JlQXBpOjpnZXRNYXBFbnRyeSgnUnNzTWFwJywKCSAgICBhcnJheSgncGFyYW1zJyksIGFycmF5KCdmZWVkTmFtZScgPT4gJGZlZWROYW1lKSk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkkcGFyYW1zID0gYXJyYXkoKTsKCWlmICgkcmVzdWx0ID0gJHNlYXJjaFJlc3VsdHMtPm5leHRSZXN1bHQoKSkgewoJICAgICRwYXJhbXMgPSB1bnNlcmlhbGl6ZSgkcmVzdWx0WzBdKTsKCgkgICAgaWYgKCRwYXJhbXMgIT0gZmFsc2UpIHsKCQlyZXR1cm4gYXJyYXkobnVsbCwgJHBhcmFtcyk7CgkgICAgfSBlbHNlIHsKCQkvKiB1bnNlcmlhbGl6YXRpb24gZXJyb3IgKi8KCQlyZXR1cm4gYXJyYXkoR2FsbGVyeUNvcmVBcGk6OmVycm9yKEVSUk9SX1NUT1JBR0VfRkFJTFVSRSksCgkJCSAgICAgbnVsbCk7CgkgICAgfQoJfSBlbHNlIHsKCSAgICByZXR1cm4gYXJyYXkoR2FsbGVyeUNvcmVBcGk6OmVycm9yKEVSUk9SX01JU1NJTkdfT0JKRUNUKSwgbnVsbCk7Cgl9CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBmZWVkCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkZmVlZE5hbWUKICAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1zIHBhcmFtZXRlcnMKICAgICAqIEByZXR1cm4gb2JqZWN0IEdhbGxlcnlTdGF0dXMgYSBzdGF0dXMgY29kZQogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGVGZWVkKCRmZWVkTmFtZSwgJHBhcmFtcykgewoJZ2xvYmFsICRnYWxsZXJ5OwoKCS8qIGZpcnN0LCBjaGVjayBmb3IgY29sbGlzaW9uICovCglsaXN0ICgkcmV0LCAkZmVlZCkgPSBSc3NNYXBIZWxwZXI6OmZldGNoRmVlZCgkZmVlZE5hbWUpOwoJaWYgKCEkcmV0KSB7CgkgICAgLyogd2UgZXhwZWN0ZWQgYW4gRVJST1JfTUlTU0lOR19PQkpFQ1QsIHRoaXMgbWVhbnMgd2UgaGF2ZSBhIGNvbGxpc2lvbi4gVGhyb3cgaXQgKi8KCSAgICByZXR1cm4gR2FsbGVyeUNvcmVBcGk6OmVycm9yKEVSUk9SX0NPTExJU0lPTik7Cgl9IGVsc2UgaWYgKCEkcmV0LT5nZXRFcnJvckNvZGUoKSAmIEVSUk9SX01JU1NJTkdfT0JKRUNUKSB7CgkgICAgcmV0dXJuICRyZXQ7Cgl9CgoJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjphZGRNYXBFbnRyeSgnUnNzTWFwJywKCSAgICBhcnJheSgnZmVlZE5hbWUnID0+ICRmZWVkTmFtZSwKCQkgICdpdGVtSWQnID0+ICRwYXJhbXNbJ2l0ZW1JZCddLAoJCSAgJ293bmVySWQnID0+ICRnYWxsZXJ5LT5nZXRBY3RpdmVVc2VySWQoKSwKCQkgICdwYXJhbXMnID0+IHNlcmlhbGl6ZSgkcGFyYW1zKSkpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0KCglyZXR1cm4gbnVsbDsKICAgIH0KCiAgICAvKioKICAgICAqIFVwZGF0ZSBhIGZlZWQKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRmZWVkTmFtZQogICAgICogQHBhcmFtIGFycmF5ICRwYXJhbXMgcGFyYW1ldGVycwogICAgICogQHJldHVybiBvYmplY3QgR2FsbGVyeVN0YXR1cyBhIHN0YXR1cyBjb2RlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHVwZGF0ZUZlZWQoJGZlZWROYW1lLCAkcGFyYW1zKSB7CgkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OnVwZGF0ZU1hcEVudHJ5KCdSc3NNYXAnLAoJICAgIGFycmF5KCdmZWVkTmFtZScgPT4gJGZlZWROYW1lKSwKCQkgIGFycmF5KCdmZWVkTmFtZScgPT4gJGZlZWROYW1lLAoJCQknaXRlbUlkJyA9PiAkcGFyYW1zWydpdGVtSWQnXSwKCQkJJ3BhcmFtcycgPT4gc2VyaWFsaXplKCRwYXJhbXMpKSk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiAkcmV0OwoJfQoKCXJldHVybiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogRGVsZXRlIGEgZmVlZAogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGZlZWROYW1lCiAgICAgKiBAcmV0dXJuIG9iamVjdCBHYWxsZXJ5U3RhdHVzIGEgc3RhdHVzIGNvZGUKICAgICAqLwogICAgZnVuY3Rpb24gZGVsZXRlRmVlZCgkZmVlZE5hbWUpIHsKCSRyZXQgPSBHYWxsZXJ5Q29yZUFwaTo6cmVtb3ZlTWFwRW50cnkoJ1Jzc01hcCcsIGFycmF5KCdmZWVkTmFtZScgPT4gJGZlZWROYW1lKSk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiAkcmV0OwoJfQoKCXJldHVybiBudWxsOwogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2sgd2hldGhlciBjb25maWd1cmluZyBmZWVkcyBpcyBhbGxvd2VkLgogICAgICoKICAgICAqIEBwYXJhbSBvYmplY3QgR2FsbGVyeUl0ZW0gJGl0ZW0KICAgICAqIEBwYXJhbSBhcnJheSAkcGFyYW1zIG1vZHVsZSBwYXJhbWV0ZXJzCiAgICAgKiBAcGFyYW0gaW50ICR1c2VySWQKICAgICAqIEBwYXJhbSBib29sZWFuICRhc3NlcnQgKG9wdGlvbmFsKSBpZiB0cnVlLCB0aHJvdyBlcnJvciBpZiBub3QgYWxsb3dlZAogICAgICogQHJldHVybiBhcnJheSBvYmplY3QgR2FsbGVyeVN0YXR1cyBhIHN0YXR1cyBjb2RlCiAgICAgKiAgICAgICAgICAgICAgIGJvb2xlYW4gdHJ1ZSBpZiBhbGxvd2VkCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNhbkNvbmZpZ3VyZUZlZWQoJGl0ZW0sICRwYXJhbXMsICR1c2VySWQsICRhc3NlcnQ9ZmFsc2UpIHsKCXN0YXRpYyAkaXNBZG1pbjsKCWlmICghaXNzZXQoJGlzQWRtaW5bJHVzZXJJZF0pKSB7CgkgICAgbGlzdCAoJHJldCwgJGlzQWRtaW5bJHVzZXJJZF0pID0gR2FsbGVyeUNvcmVBcGk6OmlzVXNlckluU2l0ZUFkbWluR3JvdXAoJHVzZXJJZCk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoJfQoKCS8qCgkgKiBzaG93IHRoZSBjb25maWd1cmUgZmVlZHMgbGluayBpZjoKCSAqICAgLSB0aGUgdXNlciBpcyB0aGUgaXRlbSBvd25lciBvciB0aGUgYWRtaW4KCSAqICAgLSBjb25maWd1cmFibGUgZmVlZHMgYXJlIGFsbG93ZWQKCSAqICAgLSBhbmQgdGhlIGFsbG93ZWQgZmVlZHMgYXJlIGFwcHJvcHJpYXRlIGZvciB0aGlzIGl0ZW0gdHlwZQoJICovCglpZiAoJHBhcmFtc1snYWxsb3dDb25maWd1cmFibGVGZWVkJ10gPT0gMQoJCSYmICgkaXNBZG1pblskdXNlcklkXSB8fCAkaXRlbS0+Z2V0T3duZXJJZCgpID09ICR1c2VySWQpCgkJJiYgKAoJCSAgICAoR2FsbGVyeVV0aWxpdGllczo6aXNBKCRpdGVtLCAnR2FsbGVyeUFsYnVtSXRlbScpCgkJICAgICAmJiAoJHBhcmFtc1snYWxsb3dBbGJ1bXMnXSA9PSAxCgkJCSB8fCAkcGFyYW1zWydhbGxvd1Bob3RvcyddID09IDEKCQkJIHx8ICRwYXJhbXNbJ2FsbG93UGhvdG9zUmVjdXJzZSddID09IDEKCQkJIHx8ICRwYXJhbXNbJ2FsbG93Q29tbWVudHNBbGJ1bSddID09IDEpKQoJCSAgICB8fCAoR2FsbGVyeVV0aWxpdGllczo6aXNBKCRpdGVtLCAnR2FsbGVyeURhdGFJdGVtJykgJiYKCQkJJHBhcmFtc1snYWxsb3dDb21tZW50c1Bob3RvJ10gPT0gMSkpKSB7CgkgICAgcmV0dXJuIGFycmF5KG51bGwsIHRydWUpOwoJfQoKCWlmICgkYXNzZXJ0KSB7CgkgICAgcmV0dXJuIGFycmF5KEdhbGxlcnlDb3JlQXBpOjplcnJvcihFUlJPUl9QRVJNSVNTSU9OX0RFTklFRCksIG51bGwpOwoJfSBlbHNlIHsKCSAgICByZXR1cm4gYXJyYXkobnVsbCwgZmFsc2UpOwoJfQogICAgfQp9Cj8+Cg==');
expand_c19e8c72e9($outputDir, 'module.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogSW1wbGVtZW50YXRpb24gb2YgdGhlIFJTUyBtb2R1bGUKICoKICogQHBhY2thZ2UgUnNzCiAqIEBhdXRob3IgSm9uYXRhbiBIZXltYW4gPGh0dHA6Ly9oZXltYW4uaW5mbz4KICogQGF1dGhvciBQaWVycmUtTHVjIFBhb3VyCiAqIEBhdXRob3IgRGFuaWVsIEdydW5kIDxodHRwOi8vd3d3LnBob3RvZ3J1bmQubmw+CiAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMTYwMzQgJAogKi8KY2xhc3MgUnNzTW9kdWxlIGV4dGVuZHMgR2FsbGVyeU1vZHVsZSAvKiBhbmQgR2FsbGVyeUV2ZW50TGlzdGVuZXIgKi8gewoKICAgIGZ1bmN0aW9uIFJzc01vZHVsZSgpIHsKCWdsb2JhbCAkZ2FsbGVyeTsKCgkkdGhpcy0+c2V0SWQoJ3JzcycpOwoJJHRoaXMtPnNldE5hbWUoJGdhbGxlcnktPmkxOG4oJ1JTUycpKTsKCSR0aGlzLT5zZXREZXNjcmlwdGlvbigkZ2FsbGVyeS0+aTE4bignUlNTJykpOwoJJHRoaXMtPnNldFZlcnNpb24oJzEuMS4wJyk7CgkkdGhpcy0+c2V0R3JvdXAoJ2V4cG9ydCcsICRnYWxsZXJ5LT5pMThuKCdFeHBvcnQnKSk7CgkkdGhpcy0+c2V0Q2FsbGJhY2tzKCdnZXRTaXRlQWRtaW5WaWV3c3xnZXRJdGVtTGlua3N8cmVnaXN0ZXJFdmVudExpc3RlbmVycycpOwoJJHRoaXMtPnNldFJlcXVpcmVkQ29yZUFwaShhcnJheSg3LCAxMCkpOwoJJHRoaXMtPnNldFJlcXVpcmVkTW9kdWxlQXBpKGFycmF5KDMsIDEpKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeU1vZHVsZTo6Z2V0U2l0ZUFkbWluVmlld3MKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U2l0ZUFkbWluVmlld3MoKSB7CglyZXR1cm4gYXJyYXkobnVsbCwgYXJyYXkoYXJyYXkoJ25hbWUnID0+ICR0aGlzLT50cmFuc2xhdGUoJ1JTUycpLAoJCQkJICAgICAgICd2aWV3JyA9PiAncnNzLlJzc1NpdGVBZG1pbicpKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAc2VlIEdhbGxlcnlNb2R1bGU6OmdldEl0ZW1MaW5rcwogICAgICovCiAgICBmdW5jdGlvbiBnZXRJdGVtTGlua3MoJGl0ZW1zLCAkd2FudHNEZXRhaWxlZExpbmtzLCAkcGVybWlzc2lvbnMsICR1c2VySWQpIHsKCUdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9yc3MvY2xhc3Nlcy9Sc3NNYXBIZWxwZXIuY2xhc3MnKTsKCSRsaW5rcyA9IGFycmF5KCk7CgoJLyogY2hlY2sgdGhhdCB0aGlzIHR5cGUgb2YgbGluayBpcyBhbGxvd2VkICovCglsaXN0ICgkcmV0LCAkcGFyYW0pID0gR2FsbGVyeUNvcmVBcGk6OmZldGNoQWxsUGx1Z2luUGFyYW1ldGVycygnbW9kdWxlJywgJ3JzcycpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKSB7CgkgICAgJGl0ZW1JZCA9ICRpdGVtLT5nZXRJZCgpOwoJICAgIGlmICghaXNzZXQoJHdhbnRzRGV0YWlsZWRMaW5rc1skaXRlbUlkXSkpIHsKCQljb250aW51ZTsKCSAgICB9CgoJICAgIGlmICgkcGFyYW1bJ2FsbG93U2ltcGxlRmVlZCddID09IDEpIHsKCQkkaXRlbVR5cGVOYW1lcyA9IGFycmF5X21lcmdlKCRpdGVtLT5pdGVtVHlwZU5hbWUoKSwgJGl0ZW0tPml0ZW1UeXBlTmFtZShmYWxzZSkpOwoKCQkvKgoJCSAqIFNwZWNpZmljIHRyYW5zbGF0aW9uczoKCQkgKiBfKCdSU1MgRmVlZCBmb3IgdGhpcyBBbGJ1bScpCgkJICogXygnUlNTIEZlZWQgZm9yIHRoaXMgUGhvdG8nKQoJCSAqIF8oJ1JTUyBGZWVkIGZvciB0aGlzIE1vdmllJykKCQkgKi8KCQkkbGlua3NbJGl0ZW1JZF1bXSA9IGFycmF5KAoJCQkndGV4dCcgPT4gJHRoaXMtPl90cmFuc2xhdGUoYXJyYXkoCgkJCSAgICAndGV4dCcgPT4gJ1JTUyBGZWVkIGZvciB0aGlzICVzJywKCQkJICAgICdhcmcxJyA9PiAkaXRlbVR5cGVOYW1lc1swXSksICRpdGVtVHlwZU5hbWVzWzJdKSwKCQkJJ3BhcmFtcycgPT4gYXJyYXkoCgkJCSAgICAndmlldycgPT4gJ3Jzcy5TaW1wbGVSZW5kZXInLAoJCQkgICAgJ2l0ZW1JZCcgPT4gJGl0ZW1JZCkpOwoJICAgIH0KCgkgICAgbGlzdCAoJHJldCwgJGNhbkNvbmZpZ3VyZSkgPSBSc3NNYXBIZWxwZXI6OmNhbkNvbmZpZ3VyZUZlZWQoJGl0ZW0sICRwYXJhbSwgJHVzZXJJZCk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoKCSAgICBpZiAoJGNhbkNvbmZpZ3VyZSkgewoJCSRsaW5rc1skaXRlbUlkXVtdID0gYXJyYXkoCgkJCSd0ZXh0JyA9PiAkdGhpcy0+dHJhbnNsYXRlKCdDb25maWd1cmUgUlNTIEZlZWRzJyksCgkJCSdwYXJhbXMnID0+IGFycmF5KAoJCQkgICAgJ3ZpZXcnID0+ICdjb3JlLkl0ZW1BZG1pbicsCgkJCSAgICAnc3ViVmlldycgPT4gJ3Jzcy5FZGl0RmVlZCcsCgkJCSAgICAnaXRlbUlkJyA9PiAkaXRlbUlkLAoJCQkgICAgJ3JldHVybicgPT4gMSkpOwoJICAgIH0KCX0KCglyZXR1cm4gYXJyYXkobnVsbCwgJGxpbmtzKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeU1vZHVsZTo6Z2V0UmV3cml0ZVJ1bGVzCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFJld3JpdGVSdWxlcygpIHsKCSRydWxlcyA9IGFycmF5KCk7CgkkcnVsZXNbXSA9IGFycmF5KAoJICAgICdjb21tZW50JyA9PiAkdGhpcy0+dHJhbnNsYXRlKCdTaW1wbGUgUlNTIEZlZWQnKSwKCSAgICAnbWF0Y2gnID0+IGFycmF5KCd2aWV3JyA9PiAncnNzLlNpbXBsZVJlbmRlcicpLAoJICAgICdwYXR0ZXJuJyA9PiAnc3Jzcy8laXRlbUlkJScsCgkgICAgJ2hlbHAnID0+ICR0aGlzLT50cmFuc2xhdGUoJ1Nob3J0IFVSTCBmb3IgU2ltcGxlIFJTUyBGZWVkcycpKTsKCgkkcnVsZXNbXSA9IGFycmF5KAoJICAgICdjb21tZW50JyA9PiAkdGhpcy0+dHJhbnNsYXRlKCdSU1MgRmVlZCcpLAoJICAgICdtYXRjaCcgPT4gYXJyYXkoJ3ZpZXcnID0+ICdyc3MuUmVuZGVyJyksCgkgICAgJ3BhdHRlcm4nID0+ICdyc3MvJW5hbWUlJywKCSAgICAna2V5d29yZHMnID0+IGFycmF5KAoJCSduYW1lJyA9PiBhcnJheSgKCQkgICAgJ3BhdHRlcm4nID0+ICcoW15cL1w/XSspJywKCQkgICAgJ2hlbHAnID0+ICR0aGlzLT50cmFuc2xhdGUoJ1RoZSBuYW1lIG9mIHRoZSBjb25maWd1cmVkIFJTUyBGZWVkJykpKSwKCSAgICAnaGVscCcgPT4gJHRoaXMtPnRyYW5zbGF0ZSgnU2hvcnQgVVJMIGZvciBDb25maWd1cmFibGUgUlNTIEZlZWRzJykpOwoKCXJldHVybiAkcnVsZXM7CiAgICB9CgogICAgLyoqCiAgICAgKiBAc2VlIEdhbGxlcnlNb2R1bGU6OnJlZ2lzdGVyRXZlbnRMaXN0ZW5lcnMKICAgICAqLwogICAgZnVuY3Rpb24gcmVnaXN0ZXJFdmVudExpc3RlbmVycygpIHsKCUdhbGxlcnlDb3JlQXBpOjpyZWdpc3RlckV2ZW50TGlzdGVuZXIoJ0dhbGxlcnlFbnRpdHk6OmRlbGV0ZScsIG5ldyBSc3NNb2R1bGUoKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBFdmVudCBIYW5kbGVyOiBnZXQgcmlkIG9mIGFueSBmZWVkcyBmb3IgaXRlbXMgdGhhdCBhcmUgZGVsZXRlZAogICAgICoKICAgICAqIEBzZWUgR2FsbGVyeUV2ZW50TGlzdGVuZXI6OmhhbmRsZUV2ZW50CiAgICAgKi8KICAgIGZ1bmN0aW9uIGhhbmRsZUV2ZW50KCRldmVudCkgewoJJGRhdGEgPSAkZXZlbnQtPmdldERhdGEoKTsKCglpZiAoJGV2ZW50LT5nZXRFdmVudE5hbWUoKSA9PSAnR2FsbGVyeUVudGl0eTo6ZGVsZXRlJykgewoJICAgICRlbnRpdHkgPSAkZXZlbnQtPmdldEVudGl0eSgpOwoJICAgIGlmIChHYWxsZXJ5VXRpbGl0aWVzOjppc0EoJGVudGl0eSwgJ0dhbGxlcnlJdGVtJykpIHsKCQlHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcnNzL2NsYXNzZXMvUnNzTWFwSGVscGVyLmNsYXNzJyk7CgkJbGlzdCAoJHJldCwgJHJlc3VsdHMpID0gUnNzTWFwSGVscGVyOjpmZXRjaEZlZWRzRm9ySXRlbSgkZW50aXR5LT5nZXRJZCgpKTsKCQlpZiAoJHJldCkgewoJCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkJfQoKCQlmb3JlYWNoICgkcmVzdWx0cyBhcyAkZmVlZCkgewoJCSAgICAkcmV0ID0gUnNzTWFwSGVscGVyOjpkZWxldGVGZWVkKCRmZWVkWyduYW1lJ10pOwoJCSAgICBpZiAoJHJldCkgewoJCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkJICAgIH0KCQl9CgkgICAgfQoJfQoKCXJldHVybiBhcnJheShudWxsLCBudWxsKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeU1vZHVsZTo6dXBncmFkZQogICAgICovCiAgICBmdW5jdGlvbiB1cGdyYWRlKCRjdXJyZW50VmVyc2lvbikgewoJc3dpdGNoKCRjdXJyZW50VmVyc2lvbikgewoJICAgIGNhc2UgbnVsbDoKCQkvKiBJbml0aWFsIGluc3RhbGwgKi8KCgkJZm9yZWFjaCAoYXJyYXkoJ2RlZmF1bHRWZXJzaW9uJyA9PiAnMi4wJywKCQkJICAgICAgICdkZWZhdWx0Q291bnQnID0+IDEwLAoJCQkgICAgICAgJ21heENvdW50JyA9PiA1MCwKCQkJICAgICAgICdhbGxvd1NpbXBsZUZlZWQnID0+IDEsCgkJCSAgICAgICAnYWxsb3dDb25maWd1cmFibGVGZWVkJyA9PiAwLAoJCQkgICAgICAgJ2FsbG93QWxidW1zJyA9PiAwLAoJCQkgICAgICAgJ2FsbG93UGhvdG9zJyA9PiAwLAoJCQkgICAgICAgJ2FsbG93UGhvdG9zUmVjdXJzZScgPT4gMCwKCQkJICAgICAgICdhbGxvd0NvbW1lbnRzQWxidW0nID0+IDAsCgkJCSAgICAgICAnYWxsb3dDb21tZW50c1Bob3RvJyA9PiAwLAoJCQkgICAgICAgJ2RlZmF1bHRDb3B5cmlnaHQnID0+ICcnLAoJCQkgICAgICAgJ2RlZmF1bHRUdGwnID0+IDEyMCwKCQkJICAgICkgYXMgJGtleSA9PiAkdmFsdWUpIHsKCQkgICAgJHJldCA9ICR0aGlzLT5zZXRQYXJhbWV0ZXIoJGtleSwgJHZhbHVlKTsKCQkgICAgaWYgKCRyZXQpIHsKCQkJcmV0dXJuICRyZXQ7CgkJICAgIH0KCQl9CgkJLyoga2VlcCBnb2luZyAqLwoKCSAgICBjYXNlICcxLjAuMCc6CgkJZm9yZWFjaCAoYXJyYXkoJ3NmQWxidW1UeXBlJyA9PiAncGhvdG9zJywKCQkJICAgICAgICdzZkRhdGUnID0+ICduZXcnLAoJCQkgICAgICAgJ3NmUGhvdG9zUmVjdXJzZUxpbWl0JyA9PiAnMTAnLAoJCQkgICAgICAgJ2FsbG93Q29tbWVudHNSZWN1cnNpdmUnID0+IDAsCgkJCSAgICApIGFzICRrZXkgPT4gJHZhbHVlKSB7CgkJICAgICRyZXQgPSAkdGhpcy0+c2V0UGFyYW1ldGVyKCRrZXksICR2YWx1ZSk7CgkJICAgIGlmICgkcmV0KSB7CgkJCXJldHVybiAkcmV0OwoJCSAgICB9CgkJfQoJfQoKCXJldHVybiBudWxsOwogICAgfQp9Cj8+Cg==');
expand_c19e8c72e9($outputDir, 'po/GNUmakefile', 'R0FMTEVSWURJUiA/PSAuLi8uLi8uLgpUT09MRElSID89ICQoR0FMTEVSWURJUikvbGliL3Rvb2xzCgppbmNsdWRlICQoVE9PTERJUikvcG8vR05VbWFrZWZpbGUuaW5jCgo=');
expand_c19e8c72e9($outputDir, 'po/strings.raw', 'IyAkSWQ6IHN0cmluZ3MucmF3IDE1MzQyIDIwMDYtMTItMDEgMjE6MTQ6NDZaIGFuZHlfc3QgJAoKLyogUmVuZGVyLmluYyAqLwpnZXR0ZXh0KCJUaGlzIGZlZWQgbm8gbG9uZ2VyIGV4aXN0cyEiKQpnZXR0ZXh0KCJGZWVkcyBvZiB0aGF0IHR5cGUgYXJlIG5vdCBhbGxvd2VkISIpIC8qIGFsc28gaW46IFNpbXBsZVJlbmRlci5pbmMgKi8KZ2V0dGV4dCgiTm90IHBlcm1pdHRlZCB0byB2aWV3IHRoaXMgaXRlbSIpCmdldHRleHQoIkluY29ycmVjdCBmZWVkIHR5cGUhIikKZ2V0dGV4dCgiQ29tbWVudHMgbW9kdWxlIGlzIG5vdCBhY3RpdmUgb3IgY29tbWVudCBmZWVkcyBhcmUgbm90IGFsbG93ZWQhIikKZ2V0dGV4dCgiTm90IHBlcm1pdHRlZCB0byB2aWV3IGNvbW1lbnRzIGZvciB0aGlzIGl0ZW0iKQoKLyogbW9kdWxlLmluYyAqLwpnZXR0ZXh0KCJSU1MiKQpnZXR0ZXh0KCJFeHBvcnQiKQpnZXR0ZXh0KCJSU1MgRmVlZCBmb3IgdGhpcyBBbGJ1bSIpCmdldHRleHQoIlJTUyBGZWVkIGZvciB0aGlzIFBob3RvIikKZ2V0dGV4dCgiUlNTIEZlZWQgZm9yIHRoaXMgTW92aWUiKQpnZXR0ZXh0KCJDb25maWd1cmUgUlNTIEZlZWRzIikKZ2V0dGV4dCgiU2ltcGxlIFJTUyBGZWVkIikKZ2V0dGV4dCgiU2hvcnQgVVJMIGZvciBTaW1wbGUgUlNTIEZlZWRzIikKZ2V0dGV4dCgiUlNTIEZlZWQiKQpnZXR0ZXh0KCJUaGUgbmFtZSBvZiB0aGUgY29uZmlndXJlZCBSU1MgRmVlZCIpCmdldHRleHQoIlNob3J0IFVSTCBmb3IgQ29uZmlndXJhYmxlIFJTUyBGZWVkcyIpCmdldHRleHQoIlJTUyBGZWVkIGZvciB0aGlzICVzIikKCi8qIGNsYXNzZXMvUnNzSGVscGVyLmNsYXNzICovCmdldHRleHQoIkl0ZW1zIGluIGFuIGFsYnVtIikKZ2V0dGV4dCgiU3ViLWFsYnVtcyBvZiBhbiBhbGJ1bSIpCmdldHRleHQoIkl0ZW1zIGluIGFuIGFsYnVtIGFuZCBpdHMgc3ViLWFsYnVtcyIpCmdldHRleHQoIkNvbW1lbnRzIGZvciBhbiBhbGJ1bSIpCmdldHRleHQoIkNvbW1lbnRzIGZvciBhbiBpdGVtIikKZ2V0dGV4dCgiQ29tbWVudHMgZm9yIGFuIGFsYnVtIGFuZCBpdHMgc3ViYWxidW1zIikgLyogYWxzbyBpbjogdGVtcGxhdGVzL1Jzc1NpdGVBZG1pbi50cGwgKi8KZ2V0dGV4dCgiSW4gYWxidW0gPGEgaHJlZj1cIiVzXCI+JXM8L2E+IikKCi8qIHRlbXBsYXRlcy9FZGl0RmVlZC50cGwgKi8KZ2V0dGV4dCgiUlNTIEZlZWRzIikgLyogYWxzbyBpbjogdGVtcGxhdGVzL0ZlZWRMaXN0LnRwbCB0ZW1wbGF0ZXMvYmxvY2tzL1Jzc0Jsb2NrLnRwbCAqLwpnZXR0ZXh0KCJTZXR0aW5ncyBoYXZlIGJlZW4gc2F2ZWQiKSAvKiBhbHNvIGluOiB0ZW1wbGF0ZXMvUnNzU2l0ZUFkbWluLnRwbCAqLwpnZXR0ZXh0KCJGZWVkIHN1Y2Nlc3NmdWxseSBkZWxldGVkIikKZ2V0dGV4dCgiQW4gZXJyb3Igb2NjdXJlZCIpIC8qIGFsc28gaW46IHRlbXBsYXRlcy9Sc3NTaXRlQWRtaW4udHBsICovCmdldHRleHQoIkxpc3QiKSAvKiBhbHNvIGluOiB0ZW1wbGF0ZXMvUnNzU2l0ZUFkbWluLnRwbCAqLwpnZXR0ZXh0KCJFZGl0IEZlZWQiKQpnZXR0ZXh0KCJOZXcgRmVlZCIpCmdldHRleHQoIkZlZWQgVVJMIikKZ2V0dGV4dCgiRmVlZCBuYW1lIikKZ2V0dGV4dCgiWW91IGNhbid0IGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUgZmVlZCIpCmdldHRleHQoIlBpY2sgbmFtZSBmb3IgeW91ciBmZWVkICh0aGlzIG5hbWUgd2lsbCBiZSByZWZlcmVuY2VkIGluIHRoZSBVUkwgdG8geW91ciBmZWVkIHNvIHRyeSB0byB1c2Ugb25seSBsZXR0ZXJzKSIpCmdldHRleHQoIllvdSBtdXN0IGVudGVyIGEgbmFtZSIpCmdldHRleHQoIlRoaXMgbmFtZSBpcyBhbHJlYWR5IHVzZWQsIHBsZWFzZSBzZWxlY3QgYW5vdGhlciBvbmUiKQpnZXR0ZXh0KCJEZXNjcmlwdGlvbiIpIC8qIGFsc28gaW46IHRlbXBsYXRlcy9GZWVkTGlzdC50cGwgKi8KZ2V0dGV4dCgiRmVlZCBzZXR0aW5ncyIpCmdldHRleHQoIkNob29zZSB3aGF0IHR5cGUgb2YgZGF0YSB0aGF0IHdpbGwgYmUgcHJlc2VudCBpbiB0aGUgZmVlZCIpIC8qIGFsc28gaW46IHRlbXBsYXRlcy9Sc3NTaXRlQWRtaW4udHBsICovCmdldHRleHQoIlR5cGUgb2YgZmVlZCIpCmdldHRleHQoIkl0ZW1zIGluIHRoaXMgYWxidW0iKQpnZXR0ZXh0KCJGZWVkcyBvZiB0aGlzIHR5cGUgYXJlIGRpc2FsbG93ZWQgYnkgdGhlIGFkbWluaXN0cmF0b3IuIFVzZXJzIHdvbid0IGJlIGFibGUgdG8gdmlldyB0aGVtLiIpCmdldHRleHQoIlN1Yi1hbGJ1bXMgb2YgdGhpcyBhbGJ1bSIpCmdldHRleHQoIkl0ZW1zIGluIHRoaXMgYWxidW0gYW5kIGl0cyBzdWJhbGJ1bXMiKQpnZXR0ZXh0KCJMaW1pdCB0aGUgbnVtYmVyIG9mIGl0ZW1zIHBlciBhbGJ1bSIpIC8qIGFsc28gaW46IHRlbXBsYXRlcy9Sc3NTaXRlQWRtaW4udHBsICovCmdldHRleHQoIkludmFsaWQgbGltaXQgKG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIsIDAgdG8gZGlzYWJsZSB0aGUgbGltaXQpIikgLyogYWxzbyBpbjogdGVtcGxhdGVzL1Jzc1NpdGVBZG1pbi50cGwgKi8KZ2V0dGV4dCgiKGVudGVyIDAgdG8gZGlzYWJsZSB0aGUgbGltaXQpIikgLyogYWxzbyBpbjogdGVtcGxhdGVzL1Jzc1NpdGVBZG1pbi50cGwgKi8KZ2V0dGV4dCgiQ29tbWVudHMgZm9yIHRoaXMgYWxidW0iKQpnZXR0ZXh0KCJDb21tZW50cyBmb3IgdGhpcyBhbGJ1bSBhbmQgaXRzIHN1YmFsYnVtcyIpCmdldHRleHQoIkNvbW1lbnRzIGZvciB0aGlzIGl0ZW0iKQpnZXR0ZXh0KCJXaGljaCBpdGVtcyIpIC8qIGFsc28gaW46IHRlbXBsYXRlcy9Sc3NTaXRlQWRtaW4udHBsICovCmdldHRleHQoIk5ldyBpdGVtcyBvbmx5IikgLyogYWxzbyBpbjogdGVtcGxhdGVzL1Jzc1NpdGVBZG1pbi50cGwgKi8KZ2V0dGV4dCgiTmV3IGFuZCB1cGRhdGVkIGl0ZW1zIikgLyogYWxzbyBpbjogdGVtcGxhdGVzL1Jzc1NpdGVBZG1pbi50cGwgKi8KZ2V0dGV4dCgiQ2hvb3NlIHRoZSBvcHRpb25zIGZvciB0aGUgZmVlZCIpCmdldHRleHQoIlJTUyB2ZXJzaW9uIikgLyogYWxzbyBpbjogdGVtcGxhdGVzL1Jzc1NpdGVBZG1pbi50cGwgKi8KZ2V0dGV4dCgiSW52YWxpZCB2ZXJzaW9uIikgLyogYWxzbyBpbjogdGVtcGxhdGVzL1Jzc1NpdGVBZG1pbi50cGwgKi8KZ2V0dGV4dCgiTnVtYmVyIG9mIGl0ZW1zIikKZ2V0dGV4dCgiSW52YWxpZCBudW1iZXIiKQpnZXR0ZXh0KCJsYW5ndWFnZSB0YWciKQpnZXR0ZXh0KCJJbnZhbGlkIGxhbmd1YWdlIHZhbHVlIikKZ2V0dGV4dCgiYnkgZGVmYXVsdDogZW4tdXMuIikKZ2V0dGV4dCgiTGlzdCBvZiBhbGwgcG9zc2libGUgdmFsdWVzIikKZ2V0dGV4dCgiY2F0ZWdvcnkgdGFnIikKZ2V0dGV4dCgidHRsIHRhZyIpCmdldHRleHQoIkludmFsaWQgdGltZSB0byBsaXZlLCB0aGlzIG11c3QgYmUgYSBudW1iZXIgb2YgbWludXRlcyAoMCB0byBkaXNhYmxlIHR0bCkiKSAvKiBhbHNvIGluOiB0ZW1wbGF0ZXMvUnNzU2l0ZUFkbWluLnRwbCAqLwpnZXR0ZXh0KCJUaW1lIHRvIGxpdmU6IHRoaXMgbXVzdCBiZSBhIG51bWJlciBvZiBtaW51dGVzICgwIHRvIGRpc2FibGUgdHRsKSBhZ2dyZWdhdG9ycyBzaG91bGQgd2FpdCBiZXR3ZWVuIGNoZWNrcyBvZiB3aGV0aGVyIHRoZSBmZWVkIGhhcyBiZWVuIHVwZGF0ZWQiKSAvKiBhbHNvIGluOiB0ZW1wbGF0ZXMvUnNzU2l0ZUFkbWluLnRwbCAqLwpnZXR0ZXh0KCJDb3B5cmlnaHQiKQpnZXR0ZXh0KCJJbnZhbGlkIGNvcHlyaWdodCIpCmdldHRleHQoIlVzZSBpbWFnZSB0YWciKQpnZXR0ZXh0KCJJbmNsdWRlIGltYWdlIHRhZyIpCmdldHRleHQoIlRoaXMgYWRkcyBhIG1haW4gaW1hZ2UgdG8gdGhlIGZlZWQsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRodW1ibmFpbCBmb3IgdGhpcyBpdGVtIikKZ2V0dGV4dCgiSW52YWxpZCB2YWx1ZSIpCmdldHRleHQoIlVzZSBlbmNsb3N1cmVzIikKZ2V0dGV4dCgiSW5jbHVkZSBlbmNsb3N1cmUgdGFncyIpCmdldHRleHQoIlRoaXMgYWRkcyBhbiBlbmNsb3N1cmUgdG8gZWFjaCBpbWFnZSBpbiB0aGUgZmVlZCwgdGhhdCBjb250YWlucyB0aGUgZnVsbCByZXNvbHV0aW9uIGltYWdlIikKZ2V0dGV4dCgiQ2xvdWQgdGFnIChSU1MgMi4wKSIpCmdldHRleHQoIklmIHlvdSB3YW50IHRvIHVzZSB0aGUgY2xvdWQgdGFnLCB5b3UgY2FuIHNldCB1cCBpdHMgcHJvcGVydGllcyBoZXJlIikKZ2V0dGV4dCgiRXhhbXBsZTogIikKZ2V0dGV4dCgiZG9tYWluIikKZ2V0dGV4dCgicG9ydCIpCmdldHRleHQoInBhdGgiKQpnZXR0ZXh0KCJyZWdpc3RlclByb2NlZHVyZSIpCmdldHRleHQoInByb3RvY29sIikKZ2V0dGV4dCgiQ2xvdWQgdGFnIikKZ2V0dGV4dCgiSW5jbHVkZSB0aGUgY2xvdWQgdGFnIikKZ2V0dGV4dCgiSW52YWxpZCBzdHJpbmciKSAvKiBhbHNvIGluOiB0ZW1wbGF0ZXMvUnNzU2l0ZUFkbWluLnRwbCAqLwpnZXR0ZXh0KCJJbnZhbGlkIHBvcnQgbnVtYmVyIikKZ2V0dGV4dCgiVXBkYXRlIEZlZWQiKQpnZXR0ZXh0KCJDcmVhdGUgRmVlZCIpCmdldHRleHQoIkNhbmNlbCIpCmdldHRleHQoIlJTUyBmZWVkcyBmb3IgdGhpcyBpdGVtIikKZ2V0dGV4dCgiTm8gZmVlZHMgaGF2ZSB5ZXQgYmVlbiBkZWZpbmVkIikgLyogYWxzbyBpbjogdGVtcGxhdGVzL0ZlZWRMaXN0LnRwbCB0ZW1wbGF0ZXMvUnNzU2l0ZUFkbWluLnRwbCB0ZW1wbGF0ZXMvYmxvY2tzL1Jzc0Jsb2NrLnRwbCAqLwpnZXR0ZXh0KCJGZWVkIGxpbmsiKSAvKiBhbHNvIGluOiB0ZW1wbGF0ZXMvRmVlZExpc3QudHBsIHRlbXBsYXRlcy9Sc3NTaXRlQWRtaW4udHBsICovCmdldHRleHQoIkZlZWQgdHlwZSIpIC8qIGFsc28gaW46IHRlbXBsYXRlcy9Sc3NTaXRlQWRtaW4udHBsICovCmdldHRleHQoIkFjdGlvbnMiKSAvKiBhbHNvIGluOiB0ZW1wbGF0ZXMvUnNzU2l0ZUFkbWluLnRwbCAqLwpnZXR0ZXh0KCJkZWxldGUiKSAvKiBhbHNvIGluOiB0ZW1wbGF0ZXMvUnNzU2l0ZUFkbWluLnRwbCAqLwpnZXR0ZXh0KCJlZGl0IikgLyogYWxzbyBpbjogdGVtcGxhdGVzL1Jzc1NpdGVBZG1pbi50cGwgKi8KCi8qIHRlbXBsYXRlcy9GZWVkTGlzdC50cGwgKi8KZ2V0dGV4dCgiVGhpcyBpcyBhIGxpc3Qgb2YgYWxsIHRoZSBmZWVkcyB0aGF0IGFyZSBhdmFpbGFibGUgb24gdGhpcyBHYWxsZXJ5IikKCi8qIHRlbXBsYXRlcy9Sc3NTaXRlQWRtaW4udHBsICovCmdldHRleHQoIlJTUyBTZXR0aW5ncyIpCmdldHRleHQoIlNldHRpbmdzIikKZ2V0dGV4dCgiU2ltcGxlIEZlZWQgU2V0dGluZ3MiKQpnZXR0ZXh0KCJHZW5lcmFsIHNldHRpbmdzIikKZ2V0dGV4dCgiVGhlc2UgYXJlIHRoZSBkZWZhdWx0IGFuZCBtYXhpbXVtIHZhbHVlcyB0aGF0IGFyZSB1c2VkIGJ5IGFsbCBmZWVkcyBvbiB5b3VyIEdhbGxlcnkiKQpnZXR0ZXh0KCJEZWZhdWx0IG51bWJlciBvZiBpdGVtcyBpbiBmZWVkcyIpCmdldHRleHQoIkludmFsaWQgZGVmYXVsdCBudW1iZXIiKQpnZXR0ZXh0KCJNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiBmZWVkcyIpCmdldHRleHQoIkludmFsaWQgbWF4aW11bSBudW1iZXIiKQpnZXR0ZXh0KCJEZWZhdWx0IHR0bCIpCmdldHRleHQoIkRlZmF1bHQgY29weXJpZ2h0IikKZ2V0dGV4dCgiRmVlZCBUeXBlcyIpCmdldHRleHQoIkNvbmZpZ3VyZSB3aGljaCB0eXBlcyBvZiBmZWVkcyBhcmUgYWxsb3dlZCIpCmdldHRleHQoIkFsbG93IFNpbXBsZSBSU1MgRmVlZCB0byBiZSB1c2VkIikKZ2V0dGV4dCgiSWYgeW91IGVuYWJsZSB0aGlzLCB1c2VycyB3aWxsIGJlIGFibGUgdG8gc3Vic2NyaWJlIHRvIGEgZmVlZCBmb3IgYW55IGFsYnVtIG9yIHBob3RvIHRoZXkgY2FuIHZpZXcuIikKZ2V0dGV4dCgiVG8gZWRpdCB0aGUgc2V0dGluZ3MgZm9yIFNpbXBsZSBGZWVkcywgdXNlIHRoZSBjb3JyZXNwb25kaW5nIHRhYiBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4uIikKZ2V0dGV4dCgiQWxsb3cgY29uZmlndXJhYmxlIFJTUyBmZWVkcyB0byBiZSB1c2VkIikKZ2V0dGV4dCgiT25seSBhbGJ1bSBvd25lcnMgd2lsbCBiZSBhYmxlIHRvIGRlZmluZSBzdWNoIGZlZWRzLiBUaGV5IGNhbiBzZXQgcGFyYW1ldGVycyBmb3IgdGhlIHR5cGUgb2YgZmVlZCB0aGV5IHdhbnQuIikKZ2V0dGV4dCgiT25jZSBhIGZlZWQgaXMgZGVmaW5lZCwgdXNlcnMgd2lsbCBiZSBhYmxlIHRvIHN1YnNjcmliZSB0byB0aG9zZSBmZWVkcyBpZiB0aGV5IGNhbiB2aWV3IHRoZSBhc3NvY2lhdGVkIGl0ZW0uIikKZ2V0dGV4dCgiQWxsb3cgUlNTIGZlZWRzIG9mIHBob3RvcyBpbnNpZGUgYW4gYWxidW0iKQpnZXR0ZXh0KCJGYXN0IikKZ2V0dGV4dCgiQWxsb3cgUlNTIGZlZWRzIG9mIHN1YmFsYnVtcyBvZiBhbiBhbGJ1bSIpCmdldHRleHQoIlNsb3ciKQpnZXR0ZXh0KCJBbGxvdyBSU1MgZmVlZHMgb2YgcGhvdG9zIGluc2lkZSBhbiBhbGJ1bSBhbmQgaXRzIHN1YmFsYnVtcyIpCmdldHRleHQoIlNsb3dlciIpCmdldHRleHQoIkFsbG93IFJTUyBmZWVkcyBjb21tZW50cyBvZiBhIHBob3RvIikKZ2V0dGV4dCgiQWxsb3cgUlNTIGZlZWRzIGNvbW1lbnRzIG9mIGFuIGFsYnVtIikKZ2V0dGV4dCgiQWxsb3cgUlNTIGZlZWRzIGNvbW1lbnRzIGZvciBhbiBhbGJ1bSBhbmQgaXRzIHN1YmFsYnVtcyIpCmdldHRleHQoIlNhdmUgU2V0dGluZ3MiKQpnZXR0ZXh0KCJSZXNldCIpCmdldHRleHQoIkhlbHBpbmcgdXNlcnMgZGlzY292ZXIgUlNTIGZlZWRzIikKZ2V0dGV4dCgiSWYgeW91IHdhbnQgdG8gaGVscCB1c2VycyBkaXNjb3ZlciBmZWVkcyBpbiB5b3VyIEdhbGxlcnksIHlvdSBjYW4gYWRkIHRoZSBSU1MgYmxvY2sgdG8gdGhlIHRoZW1lcyB1c2VkIGluIHlvdXIgR2FsbGVyeS4iKQpnZXR0ZXh0KCJUaGlzIHdpbGwgaGF2ZSB0d28gZWZmZWN0czogdGhlIGJsb2NrIGl0c2VsZiwgd2hpY2ggdXNlcnMgY2FuIHNlZSBhbmQgcGljayBmZWVkcyBmcm9tIChhbmQgZ2V0IGEgbGlzdCBvZiBhbGwgZmVlZHMpOyBhbmQgaGlkZGVuIHBhZ2UgaGVhZGVycyB0aGF0IG1vZGVybiB3ZWIgYnJvd3NlcnMgd2lsbCB1c2UgdG8gbWFrZSBpdCBlYXNpZXIgZm9yIHRoZSB1c2VyIHRvIHN1YnNjcmliZSB0byB0aGUgZmVlZHMuIikKZ2V0dGV4dCgiR2xvYmFsIGxpc3Qgb2YgUlNTIGZlZWRzIikKZ2V0dGV4dCgiT24gaXRlbSIpCmdldHRleHQoIlNpbXBsZSBGZWVkIHNldHRpbmdzIikKZ2V0dGV4dCgiRm9yIGFsYnVtcyIpCmdldHRleHQoIkl0ZW1zIGluIHRoZSBhbGJ1bSIpCmdldHRleHQoIlN1Yi1hbGJ1bXMgb2YgdGhlIGFsYnVtIikKZ2V0dGV4dCgiSXRlbXMgaW4gdGhlIGFsYnVtIGFuZCBpdHMgc3ViYWxidW1zIikKZ2V0dGV4dCgiQ29tbWVudHMgZm9yIHRoZSBhbGJ1bSIpCmdldHRleHQoIkZvciBpdGVtcyIpCmdldHRleHQoIkNvbW1lbnRzIGZvciBpdGVtcyAoYWx3YXlzIHNlbGVjdGVkKSIpCgovKiB0ZW1wbGF0ZXMvYmxvY2tzL1Jzc0Jsb2NrLnRwbCAqLwpnZXR0ZXh0KCJMaXN0IGFsbCBSU1MgRmVlZHMiKQoKLyogdGVtcGxhdGVzL2Jsb2Nrcy9ibG9ja3MuaW5jICovCmdldHRleHQoIkxpc3Qgb2YgUlNTIEZlZWRzIikKZ2V0dGV4dCgiTnVtYmVyIG9mIGZlZWRzIHRvIGRpc3BsYXkiKQpnZXR0ZXh0KCIxIikKZ2V0dGV4dCgiNSIpCmdldHRleHQoIjEwIikKZ2V0dGV4dCgiYWxsIikK');
expand_c19e8c72e9($outputDir, 'templates/EditFeed.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0KPGRpdiBjbGFzcz0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aDI+IHtnLT50ZXh0IHRleHQ9IlJTUyBGZWVkcyJ9IDwvaDI+CjwvZGl2PgoKe2lmICFlbXB0eSgkc3RhdHVzKX0KPGRpdiBjbGFzcz0iZ2JCbG9jayI+CiAgPGgyIGNsYXNzPSJnaVN1Y2Nlc3MiPgogIHtpZiBpc3NldCgkc3RhdHVzLnNhdmVkKX0KICAgIHtnLT50ZXh0IHRleHQ9IlNldHRpbmdzIGhhdmUgYmVlbiBzYXZlZCJ9CiAge2Vsc2VpZiBpc3NldCgkc3RhdHVzLmRlbGV0ZWQpfSAgCiAgICB7Zy0+dGV4dCB0ZXh0PSJGZWVkIHN1Y2Nlc3NmdWxseSBkZWxldGVkIn0KICB7L2lmfQogIDwvaDI+CjwvZGl2Pgp7ZWxzZWlmICFlbXB0eSgkZm9ybS5lcnJvcil9CjxkaXYgY2xhc3M9ImdiQmxvY2siPgogIDxoMiBjbGFzcz0iZ2lFcnJvciI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJBbiBlcnJvciBvY2N1cmVkIn0KICA8L2gyPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9ImdiVGFiQmFyIj4KICB7aWYgKCRFZGl0RmVlZC5tb2RlID09ICdsaXN0Jyl9CiAgICA8c3BhbiBjbGFzcz0iZ2lTZWxlY3RlZCBvIj48c3Bhbj4KICAgICAge2ctPnRleHQgdGV4dD0iTGlzdCJ9CiAgICA8L3NwYW4+PC9zcGFuPgogIHtlbHNlfQogICAgPHNwYW4gY2xhc3M9Im8iPjxzcGFuPgogICAgICA8YSBocmVmPSJ7Zy0+dXJsIGFyZzE9InZpZXc9Y29yZS5JdGVtQWRtaW4iIGFyZzI9InN1YlZpZXc9cnNzLkVkaXRGZWVkIgogICAgICAgYXJnMz0ibW9kZT1saXN0IiBhcmc0PSJpdGVtSWQ9YCRFZGl0RmVlZC5pdGVtSWRgIn0iPntnLT50ZXh0IHRleHQ9Ikxpc3QifTwvYT4KICAgIDwvc3Bhbj48L3NwYW4+CiAgey9pZn0KCiAge2lmICgkRWRpdEZlZWQubW9kZSA9PSAnZWRpdCcpfQogICAgPHNwYW4gY2xhc3M9ImdpU2VsZWN0ZWQgbyI+PHNwYW4+CiAgICAgIHtnLT50ZXh0IHRleHQ9IkVkaXQgRmVlZCJ9CiAgICA8L3NwYW4+PC9zcGFuPgogIHsvaWZ9CgogIHtpZiAoJEVkaXRGZWVkLm1vZGUgPT0gJ25ldycpfQogICAgPHNwYW4gY2xhc3M9ImdpU2VsZWN0ZWQgbyI+PHNwYW4+CiAgICAgIHtnLT50ZXh0IHRleHQ9Ik5ldyBGZWVkIn0KICAgIDwvc3Bhbj48L3NwYW4+CiAge2Vsc2V9CiAgICA8c3BhbiBjbGFzcz0ibyI+PHNwYW4+CiAgICAgIDxhIGhyZWY9IntnLT51cmwgYXJnMT0idmlldz1jb3JlLkl0ZW1BZG1pbiIgYXJnMj0ic3ViVmlldz1yc3MuRWRpdEZlZWQiCiAgICAgICBhcmczPSJtb2RlPW5ldyIgYXJnND0iaXRlbUlkPWAkRWRpdEZlZWQuaXRlbUlkYCJ9Ij57Zy0+dGV4dCB0ZXh0PSJOZXcgRmVlZCJ9PC9hPgogICAgPC9zcGFuPjwvc3Bhbj4KICB7L2lmfQo8L2Rpdj4KCjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVttb2RlXSJ9IiB2YWx1ZT0ieyRFZGl0RmVlZC5tb2RlfSIgLz4KCntpZiAkRWRpdEZlZWQubW9kZSA9PSAnZWRpdCcgfHwgJEVkaXRGZWVkLm1vZGUgPT0gJ25ldycgfQoKe2lmIGlzc2V0KCRFZGl0RmVlZC5mZWVkVXJsKX0KICA8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDM+IHtnLT50ZXh0IHRleHQ9IkZlZWQgVVJMIn08L2gzPgogIDxwPjxhIGhyZWY9InskRWRpdEZlZWQuZmVlZFVybH0iPnskRWRpdEZlZWQuZmVlZFVybH08L2E+PC9wPgogIDwvZGl2Pgp7L2lmfQoKICA8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDM+IHtnLT50ZXh0IHRleHQ9IkZlZWQgbmFtZSJ9IDwvaDM+CntpZiAoJEVkaXRGZWVkLm1vZGUgPT0gJ2VkaXQnKX0KICA8cCBjbGFzcz0iZ2lEZXNjcmlwdGlvbiI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJZb3UgY2FuJ3QgY2hhbmdlIHRoZSBuYW1lIG9mIHRoZSBmZWVkIn0KICA8L3A+CgogIDx0YWJsZSBjbGFzcz0iZ2JEYXRhVGFibGUiPgogIDx0cj4KICAgIDx0ZD57Zy0+dGV4dCB0ZXh0PSJGZWVkIG5hbWUifTwvdGQ+CiAgICA8dGQ+eyRmb3JtLmZlZWROYW1lfQogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bZmVlZE5hbWVdIn0iIHZhbHVlPSJ7JGZvcm0uZmVlZE5hbWV9IiAvPgogICAgPC90ZD4KICA8L3RyPgp7ZWxzZX0KICA8cCBjbGFzcz0iZ2lEZXNjcmlwdGlvbiI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJQaWNrIG5hbWUgZm9yIHlvdXIgZmVlZCAodGhpcyBuYW1lIHdpbGwgYmUgcmVmZXJlbmNlZCBpbiB0aGUgVVJMIHRvIHlvdXIgZmVlZCBzbyB0cnkgdG8gdXNlIG9ubHkgbGV0dGVycykifQogIDwvcD4KCiAgPHRhYmxlIGNsYXNzPSJnYkRhdGFUYWJsZSI+CiAgPHRyPgogICAgPHRkPntnLT50ZXh0IHRleHQ9IkZlZWQgbmFtZSJ9PC90ZD4KICAgIDx0ZD4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtmZWVkTmFtZV0ifSIKICAgICAgICB7aWYgaXNzZXQoJGZvcm0uZmVlZE5hbWUpfXZhbHVlPSJ7JGZvcm0uZmVlZE5hbWV9InsvaWZ9IC8+CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci5mZWVkTmFtZSl9CiAgICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IllvdSBtdXN0IGVudGVyIGEgbmFtZSJ9CiAgICAgIDwvZGl2PgogICAgICB7L2lmfQogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IuZmVlZE5hbWVDb2xsaXNpb24pfQogICAgICA8ZGl2IGNsYXNzPSJnaUVycm9yIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJUaGlzIG5hbWUgaXMgYWxyZWFkeSB1c2VkLCBwbGVhc2Ugc2VsZWN0IGFub3RoZXIgb25lIn0KICAgICAgPC9kaXY+CiAgICAgIHsvaWZ9CiAgICA8L3RkPgogIDwvdHI+CnsvaWZ9CiAgPHRyPgogICAgPHRkIHZhbGlnbj0idG9wIj57Zy0+dGV4dCB0ZXh0PSJEZXNjcmlwdGlvbiJ9PC90ZD4KICAgIDx0ZD4KICAgICAgPHRleHRhcmVhIHJvd3M9IjQiIGNvbHM9IjYwIiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bZGVzY3JpcHRpb25dIn0iPgogICAgICAgIHtpZiBpc3NldCgkRWRpdEZlZWQuZGVzY3JpcHRpb24pfXskRWRpdEZlZWQuZGVzY3JpcHRpb259ey9pZn0KICAgICAgPC90ZXh0YXJlYT4KICAgIDwvdGQ+CiAgPC90cj4KICA8L3RhYmxlPgoKICA8aDM+IHtnLT50ZXh0IHRleHQ9IkZlZWQgc2V0dGluZ3MifSA8L2gzPgogIDxwIGNsYXNzPSJnaURlc2NyaXB0aW9uIj4KICAgIHtnLT50ZXh0IHRleHQ9IkNob29zZSB3aGF0IHR5cGUgb2YgZGF0YSB0aGF0IHdpbGwgYmUgcHJlc2VudCBpbiB0aGUgZmVlZCJ9CiAgPC9wPgoKICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1baXRlbUlkXSJ9IiB2YWx1ZT0ieyRFZGl0RmVlZC5pdGVtSWR9IiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVt0eXBlXSJ9IiB2YWx1ZT0ieyRFZGl0RmVlZC50eXBlfSIgLz4KCiAgPHRhYmxlIGNsYXNzPSJnYkRhdGFUYWJsZSI+Cgp7aWYgJEVkaXRGZWVkLnR5cGUgPT0gJ2FsYnVtJ30KICA8dHIgdmFsaWduPSJ0b3AiPgogICAgPHRkIHJvd3NwYW49IjUiPntnLT50ZXh0IHRleHQ9IlR5cGUgb2YgZmVlZCJ9PC90ZD4KICAgIDx0ZD4KICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bZmVlZFR5cGVdIn0iCiAgICAgICAgdmFsdWU9InBob3RvcyIge2lmICRFZGl0RmVlZC5mZWVkVHlwZT09J3Bob3Rvcyd9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfQoJaWQ9IkVkaXRGZWVkX3R5cGVQaG90b3MiIC8+CiAgICA8L3RkPjx0ZD4KICAgICAgPGxhYmVsIGZvcj0iRWRpdEZlZWRfdHlwZVBob3RvcyI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iSXRlbXMgaW4gdGhpcyBhbGJ1bSJ9CiAgICAgIDwvbGFiZWw+CiAgICB7aWYgISRwYXJhbS5hbGxvd1Bob3Rvc30KICAgICAgPGJyLz57Zy0+dGV4dCB0ZXh0PSJGZWVkcyBvZiB0aGlzIHR5cGUgYXJlIGRpc2FsbG93ZWQgYnkgdGhlIGFkbWluaXN0cmF0b3IuIFVzZXJzIHdvbid0IGJlIGFibGUgdG8gdmlldyB0aGVtLiJ9CiAgICB7L2lmfQogICAgPC90ZD4KICA8L3RyPjx0ciB2YWxpZ249InRvcCI+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2ZlZWRUeXBlXSJ9IgogICAgICAgIHZhbHVlPSJhbGJ1bSIge2lmICRFZGl0RmVlZC5mZWVkVHlwZT09J2FsYnVtJ31jaGVja2VkPSJjaGVja2VkInsvaWZ9CglpZD0iRWRpdEZlZWRfdHlwZUFsYnVtIiAvPgogICAgPC90ZD48dGQ+CiAgICAgIDxsYWJlbCBmb3I9IkVkaXRGZWVkX3R5cGVBbGJ1bSI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iU3ViLWFsYnVtcyBvZiB0aGlzIGFsYnVtIn0KICAgICAgPC9sYWJlbD4KICAgIHtpZiAhJHBhcmFtLmFsbG93QWxidW1zfQogICAgICA8YnIvPntnLT50ZXh0IHRleHQ9IkZlZWRzIG9mIHRoaXMgdHlwZSBhcmUgZGlzYWxsb3dlZCBieSB0aGUgYWRtaW5pc3RyYXRvci4gVXNlcnMgd29uJ3QgYmUgYWJsZSB0byB2aWV3IHRoZW0uIn0KICAgIHsvaWZ9CiAgICA8L3RkPgogIDwvdHI+PHRyIHZhbGlnbj0idG9wIj4KICAgIDx0ZD4KICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bZmVlZFR5cGVdIn0iCiAgICAgICAgdmFsdWU9InBob3Rvc1JlY3Vyc2UiIHtpZiAkRWRpdEZlZWQuZmVlZFR5cGU9PSdwaG90b3NSZWN1cnNlJ31jaGVja2VkPSJjaGVja2VkInsvaWZ9CglpZD0iRWRpdEZlZWRfdHlwZVBob3Rvc1JlY3Vyc2UiIC8+CiAgICA8L3RkPjx0ZD4KICAgICAgPGxhYmVsIGZvcj0iRWRpdEZlZWRfdHlwZVBob3Rvc1JlY3Vyc2UiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9Ikl0ZW1zIGluIHRoaXMgYWxidW0gYW5kIGl0cyBzdWJhbGJ1bXMifQogICAgICA8L2xhYmVsPgogICAge2lmICEkcGFyYW0uYWxsb3dQaG90b3NSZWN1cnNlfQogICAgICA8YnIvPntnLT50ZXh0IHRleHQ9IkZlZWRzIG9mIHRoaXMgdHlwZSBhcmUgZGlzYWxsb3dlZCBieSB0aGUgYWRtaW5pc3RyYXRvci4gVXNlcnMgd29uJ3QgYmUgYWJsZSB0byB2aWV3IHRoZW0uIn0KICAgIHsvaWZ9CiAgICAgIDxici8+CiAgICAgIDxsYWJlbCBmb3I9IkVkaXRGZWVkX3R5cGVQaG90b3NSZWN1cnNlTGltaXQiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkxpbWl0IHRoZSBudW1iZXIgb2YgaXRlbXMgcGVyIGFsYnVtIn0KICAgICAgPC9sYWJlbD4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIHNpemU9IjUiIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtwaG90b3NSZWN1cnNlTGltaXRdIn0iCiAgICAgICAge2lmIGlzc2V0KCRFZGl0RmVlZC5waG90b3NSZWN1cnNlTGltaXQpfXZhbHVlPSJ7JEVkaXRGZWVkLnBob3Rvc1JlY3Vyc2VMaW1pdH0iey9pZn0KCWlkPSJFZGl0RmVlZF90eXBlUGhvdG9zUmVjdXJzZUxpbWl0IiAvPgogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IucGhvdG9zUmVjdXJzZUxpbWl0KX0KICAgICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgIHtnLT50ZXh0IHRleHQ9IkludmFsaWQgbGltaXQgKG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIsIDAgdG8gZGlzYWJsZSB0aGUgbGltaXQpIn0KICAgICAgPC9kaXY+CiAgICAgIHtlbHNlfQogICAgICB7Zy0+dGV4dCB0ZXh0PSIoZW50ZXIgMCB0byBkaXNhYmxlIHRoZSBsaW1pdCkifQogICAgICB7L2lmfQogICAgPC90ZD4KICA8L3RyPjx0ciB2YWxpZ249InRvcCI+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2ZlZWRUeXBlXSJ9IgogICAgICAgIHZhbHVlPSJjb21tZW50c0FsYnVtIiB7aWYgJEVkaXRGZWVkLmZlZWRUeXBlPT0nY29tbWVudHNBbGJ1bSd9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfQoJaWQ9IkVkaXRGZWVkX3R5cGVDb21tZW50c0FsYnVtIiAvPgogICAgPC90ZD48dGQ+CiAgICAgIDxsYWJlbCBmb3I9IkVkaXRGZWVkX3R5cGVDb21tZW50c0FsYnVtIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJDb21tZW50cyBmb3IgdGhpcyBhbGJ1bSJ9CiAgICAgIDwvbGFiZWw+CiAgICB7aWYgISRwYXJhbS5hbGxvd0NvbW1lbnRzQWxidW19CiAgICAgIDxici8+e2ctPnRleHQgdGV4dD0iRmVlZHMgb2YgdGhpcyB0eXBlIGFyZSBkaXNhbGxvd2VkIGJ5IHRoZSBhZG1pbmlzdHJhdG9yLiBVc2VycyB3b24ndCBiZSBhYmxlIHRvIHZpZXcgdGhlbS4ifQogICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj48dHIgdmFsaWduPSJ0b3AiPgogICAgPHRkPgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtmZWVkVHlwZV0ifSIKICAgICAgICB2YWx1ZT0iY29tbWVudHNSZWN1cnNpdmUiIHtpZiAkRWRpdEZlZWQuZmVlZFR5cGU9PSdjb21tZW50c1JlY3Vyc2l2ZSd9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfQoJaWQ9IkVkaXRGZWVkX3R5cGVDb21tZW50c1JlY3Vyc2l2ZSIgLz4KICAgIDwvdGQ+PHRkPgogICAgICA8bGFiZWwgZm9yPSJFZGl0RmVlZF90eXBlQ29tbWVudHNSZWN1cnNpdmUiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkNvbW1lbnRzIGZvciB0aGlzIGFsYnVtIGFuZCBpdHMgc3ViYWxidW1zIn0KICAgICAgPC9sYWJlbD4KICAgIHtpZiAhJHBhcmFtLmFsbG93Q29tbWVudHNSZWN1cnNpdmV9CiAgICAgIDxici8+e2ctPnRleHQgdGV4dD0iRmVlZHMgb2YgdGhpcyB0eXBlIGFyZSBkaXNhbGxvd2VkIGJ5IHRoZSBhZG1pbmlzdHJhdG9yLiBVc2VycyB3b24ndCBiZSBhYmxlIHRvIHZpZXcgdGhlbS4ifQogICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj4KICB7ZWxzZX0KICA8dHIgdmFsaWduPSJ0b3AiPgogICAgPHRkPntnLT50ZXh0IHRleHQ9IlR5cGUgb2YgZmVlZCJ9PC90ZD4KICAgIDx0ZD48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtmZWVkVHlwZV0ifSIKICAgICAgICB2YWx1ZT0iY29tbWVudHNQaG90byIgY2hlY2tlZD0iY2hlY2tlZCIgaWQ9IkVkaXRGZWVkX3R5cGVDb21tZW50c1Bob3RvIiAvPgogICAgPC90ZD48dGQ+CiAgICAgIDxsYWJlbCBmb3I9IkVkaXRGZWVkX3R5cGVBbGJ1bSI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iQ29tbWVudHMgZm9yIHRoaXMgaXRlbSJ9CiAgICAgIDwvbGFiZWw+CiAgICB7aWYgISRwYXJhbS5hbGxvd0NvbW1lbnRzUGhvdG99CiAgICAgIDxici8+e2ctPnRleHQgdGV4dD0iRmVlZHMgb2YgdGhpcyB0eXBlIGFyZSBkaXNhbGxvd2VkIGJ5IHRoZSBhZG1pbmlzdHJhdG9yLiBVc2VycyB3b24ndCBiZSBhYmxlIHRvIHZpZXcgdGhlbS4ifQogICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj4Key9pZn0KCiAgPHRyPjx0ZD4mbmJzcDs8L3RkPjwvdHI+CgogIDx0cj4KICAgIDx0ZCByb3dzcGFuPSIyIiB2YWxpZ249InRvcCI+e2ctPnRleHQgdGV4dD0iV2hpY2ggaXRlbXMifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2ZlZWREYXRlXSJ9IgogICAgICAgIHZhbHVlPSJuZXciIHtpZiAkRWRpdEZlZWQuZmVlZERhdGU9PSduZXcnfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gaWQ9IkVkaXRGZWVkX2RhdGVOZXciIC8+CiAgICA8L3RkPjx0ZCBjb2xzcGFuPSIyIj4KICAgICAgPGxhYmVsIGZvcj0iRWRpdEZlZWRfZGF0ZU5ldyI+e2ctPnRleHQgdGV4dD0iTmV3IGl0ZW1zIG9ubHkifTwvbGFiZWw+CiAgICA8L3RkPgogIDwvdHI+PHRyPgogICAgPHRkPgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtmZWVkRGF0ZV0ifSIgdmFsdWU9InVwZGF0ZWQiCiAgICAgICAge2lmICRFZGl0RmVlZC5mZWVkRGF0ZT09J3VwZGF0ZWQnfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gaWQ9IkVkaXRGZWVkX2RhdGVVcGRhdGVkIiAvPgogICAgPC90ZD48dGQgY29sc3Bhbj0iMiI+CiAgICAgIDxsYWJlbCBmb3I9IkVkaXRGZWVkX2RhdGVVcGRhdGVkIj57Zy0+dGV4dCB0ZXh0PSJOZXcgYW5kIHVwZGF0ZWQgaXRlbXMifTwvbGFiZWw+CiAgICA8L3RkPgogIDwvdHI+CiAgPC90YWJsZT4KCiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iQ2hvb3NlIHRoZSBvcHRpb25zIGZvciB0aGUgZmVlZCJ9CiAgPC9wPgoKICA8dGFibGUgY2xhc3M9ImdiRGF0YVRhYmxlIj4KICA8dHI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0iUlNTIHZlcnNpb24ifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxzZWxlY3QgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW3ZlcnNpb25dIn0iPgogICAgICAgIHtodG1sX29wdGlvbnMgdmFsdWVzPSRFZGl0RmVlZC5yc3NWZXJzaW9uTGlzdCBzZWxlY3RlZD0kRWRpdEZlZWQudmVyc2lvbgoJICBvdXRwdXQ9JEVkaXRGZWVkLnJzc1ZlcnNpb25MaXN0fQogICAgICA8L3NlbGVjdD4KICAgIDwvdGQ+CiAgICA8dGQ+CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci52ZXJzaW9uKX0KICAgICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iSW52YWxpZCB2ZXJzaW9uIn0KICAgICAgPC9kaXY+CiAgICAgIHsvaWZ9CiAgICA8L3RkPgogIDwvdHI+CgogIDx0cj4KICAgIDx0ZD57Zy0+dGV4dCB0ZXh0PSJOdW1iZXIgb2YgaXRlbXMifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bY291bnRdIn0iIHZhbHVlPSJ7JEVkaXRGZWVkLmNvdW50fSIgLz4KICAgIDwvdGQ+CiAgICA8dGQ+CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci5jb3VudCl9CiAgICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkludmFsaWQgbnVtYmVyIn0KICAgICAgPC9kaXY+CiAgICAgIHsvaWZ9CiAgICA8L3RkPgogIDwvdHI+CgogIDx0cj4KICAgIDx0ZD57Zy0+dGV4dCB0ZXh0PSJsYW5ndWFnZSB0YWcifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bbGFuZ3VhZ2VdIn0iIHZhbHVlPSJ7JEVkaXRGZWVkLmxhbmd1YWdlfSIgLz4KICAgIDwvdGQ+CiAgICA8dGQ+CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci5sYW5ndWFnZSl9CiAgICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkludmFsaWQgbGFuZ3VhZ2UgdmFsdWUifQogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgICAge2ctPnRleHQgdGV4dD0iYnkgZGVmYXVsdDogZW4tdXMuIn0KICAgICAgPGEgaHJlZj0iaHR0cDovL2Jsb2dzLmxhdy5oYXJ2YXJkLmVkdS90ZWNoL3N0b3JpZXMvc3RvcnlSZWFkZXIkMTUiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9Ikxpc3Qgb2YgYWxsIHBvc3NpYmxlIHZhbHVlcyJ9CiAgICAgIDwvYT4KICAgIDwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgPHRkPntnLT50ZXh0IHRleHQ9ImNhdGVnb3J5IHRhZyJ9PC90ZD4KICAgIDx0ZD4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtjYXRlZ29yeV0ifSIgdmFsdWU9InskRWRpdEZlZWQuY2F0ZWdvcnl9IiAvPgogICAgPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0idHRsIHRhZyJ9PC90ZD4KICAgIDx0ZD4KICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVt0dGxdIn0iIHZhbHVlPSJ7JEVkaXRGZWVkLnR0bH0iIC8+CiAgICA8L3RkPgogICAgPHRkPgogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IudHRsKX0KICAgICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iSW52YWxpZCB0aW1lIHRvIGxpdmUsIHRoaXMgbXVzdCBiZSBhIG51bWJlciBvZiBtaW51dGVzICgwIHRvIGRpc2FibGUgdHRsKSJ9CiAgICAgIDwvZGl2PgogICAgICB7ZWxzZX0KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJUaW1lIHRvIGxpdmU6IHRoaXMgbXVzdCBiZSBhIG51bWJlciBvZiBtaW51dGVzICgwIHRvIGRpc2FibGUgdHRsKSBhZ2dyZWdhdG9ycyBzaG91bGQgd2FpdCBiZXR3ZWVuIGNoZWNrcyBvZiB3aGV0aGVyIHRoZSBmZWVkIGhhcyBiZWVuIHVwZGF0ZWQifQogICAgICB7L2lmfQogICAgPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0iQ29weXJpZ2h0In08L3RkPgogICAgPHRkPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2NvcHlyaWdodF0ifSIgdmFsdWU9InskRWRpdEZlZWQuY29weXJpZ2h0fSIgLz4KICAgIDwvdGQ+CiAgICA8dGQ+CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci5jb3B5cmlnaHQpfQogICAgICA8ZGl2IGNsYXNzPSJnaUVycm9yIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJJbnZhbGlkIGNvcHlyaWdodCJ9CiAgICAgIDwvZGl2PgogICAgICB7L2lmfQogICAgPC90ZD4KICA8L3RyPgoKICA8dHI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0iVXNlIGltYWdlIHRhZyJ9PC90ZD4KICAgIDx0ZD4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IgogICAgICAgIHtpZiBpc3NldCgkRWRpdEZlZWQudXNlSW1hZ2UpICYmICRFZGl0RmVlZC51c2VJbWFnZX0gY2hlY2tlZD0iY2hlY2tlZCJ7L2lmfQogICAgICAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVt1c2VJbWFnZV0ifSIvPiB7Zy0+dGV4dCB0ZXh0PSJJbmNsdWRlIGltYWdlIHRhZyJ9CiAgICA8L3RkPgogICAgPHRkPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJUaGlzIGFkZHMgYSBtYWluIGltYWdlIHRvIHRoZSBmZWVkLCBjb3JyZXNwb25kaW5nIHRvIHRoZSB0aHVtYm5haWwgZm9yIHRoaXMgaXRlbSJ9CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci51c2VJbWFnZSl9CiAgICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkludmFsaWQgdmFsdWUifQogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj4KCiAgPHRyPgogICAgPHRkPntnLT50ZXh0IHRleHQ9IlVzZSBlbmNsb3N1cmVzIn08L3RkPgogICAgPHRkPgogICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3giCiAgICAgICAge2lmIGlzc2V0KCRFZGl0RmVlZC51c2VFbmNsb3N1cmUpICYmICRFZGl0RmVlZC51c2VFbmNsb3N1cmV9IGNoZWNrZWQ9ImNoZWNrZWQiey9pZn0KICAgICAgICBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bdXNlRW5jbG9zdXJlXSJ9Ii8+IHtnLT50ZXh0IHRleHQ9IkluY2x1ZGUgZW5jbG9zdXJlIHRhZ3MifQogICAgPC90ZD4KICAgIDx0ZD4KICAgICAge2ctPnRleHQgdGV4dD0iVGhpcyBhZGRzIGFuIGVuY2xvc3VyZSB0byBlYWNoIGltYWdlIGluIHRoZSBmZWVkLCB0aGF0IGNvbnRhaW5zIHRoZSBmdWxsIHJlc29sdXRpb24gaW1hZ2UifQogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IudXNlRW5jbG9zdXJlKX0KICAgICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iSW52YWxpZCB2YWx1ZSJ9CiAgICAgIDwvZGl2PgogICAgICB7L2lmfQogICAgPC90ZD4KICA8L3RyPgogIDwvdGFibGU+CgogIDxoMz4ge2ctPnRleHQgdGV4dD0iQ2xvdWQgdGFnIChSU1MgMi4wKSJ9IDwvaDM+CiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iSWYgeW91IHdhbnQgdG8gdXNlIHRoZSBjbG91ZCB0YWcsIHlvdSBjYW4gc2V0IHVwIGl0cyBwcm9wZXJ0aWVzIGhlcmUifQogICAgPGJyIC8+CiAgICB7Zy0+dGV4dCB0ZXh0PSJFeGFtcGxlOiAifQogICAgJmx0O2Nsb3VkIGRvbWFpbj0iPGI+e2ctPnRleHQgdGV4dD0iZG9tYWluIn08L2I+IgoJICAgICAgcG9ydD0iPGI+e2ctPnRleHQgdGV4dD0icG9ydCJ9PC9iPiIKCSAgICAgIHBhdGg9IjxiPntnLT50ZXh0IHRleHQ9InBhdGgifTwvYj4iCgkgICAgICByZWdpc3RlclByb2NlZHVyZT0iPGI+e2ctPnRleHQgdGV4dD0icmVnaXN0ZXJQcm9jZWR1cmUifTwvYj4iCgkgICAgICBwcm90b2NvbD0iPGI+e2ctPnRleHQgdGV4dD0icHJvdG9jb2wifTwvYj4iIC8mZ3Q7CiAgPC9wPgogIDx0YWJsZSBjbGFzcz0iZ2JEYXRhVGFibGUiPjx0cj4KICAgIDx0ZD57Zy0+dGV4dCB0ZXh0PSJDbG91ZCB0YWcifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCIKICAgICAgICB7aWYgaXNzZXQoJEVkaXRGZWVkLnVzZUNsb3VkKSAmJiAkRWRpdEZlZWQudXNlQ2xvdWR9IGNoZWNrZWQ9ImNoZWNrZWQiey9pZn0KICAgICAgICBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bdXNlQ2xvdWRdIn0iLz4ge2ctPnRleHQgdGV4dD0iSW5jbHVkZSB0aGUgY2xvdWQgdGFnIn0KICAgIDwvdGQ+CiAgICA8dGQ+CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci51c2VDbG91ZCl9CiAgICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkludmFsaWQgdmFsdWUifQogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj48dHI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0iZG9tYWluIn08L3RkPgogICAgPHRkPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2Nsb3VkRG9tYWluXSJ9IgoJe2lmIGlzc2V0KCRFZGl0RmVlZC5jbG91ZERvbWFpbil9dmFsdWU9InskRWRpdEZlZWQuY2xvdWREb21haW59InsvaWZ9IC8+CiAgICA8L3RkPgogICAgPHRkPgogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IuY2xvdWREb21haW4pfQogICAgICA8ZGl2IGNsYXNzPSJnaUVycm9yIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJJbnZhbGlkIHN0cmluZyJ9CiAgICAgIDwvZGl2PgogICAgICB7L2lmfQogICAgPC90ZD4KICA8L3RyPjx0cj4KICAgIDx0ZD57Zy0+dGV4dCB0ZXh0PSJwb3J0In08L3RkPgogICAgPHRkPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2Nsb3VkUG9ydF0ifSIKICAgICAgICB7aWYgaXNzZXQoJEVkaXRGZWVkLmNsb3VkUG9ydCl9CiAgICAgICAgICB2YWx1ZT0ieyRFZGl0RmVlZC5jbG91ZFBvcnR9IgoJey9pZn0gLz4KICAgIDwvdGQ+CiAgICA8dGQ+CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci5jbG91ZFBvcnQpfQogICAgICA8ZGl2IGNsYXNzPSJnaUVycm9yIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJJbnZhbGlkIHBvcnQgbnVtYmVyIn0KICAgICAgPC9kaXY+CiAgICAgIHsvaWZ9CiAgICA8L3RkPgogIDwvdHI+PHRyPgogICAgPHRkPntnLT50ZXh0IHRleHQ9InBhdGgifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bY2xvdWRQYXRoXSJ9IgogICAgICAgIHtpZiBpc3NldCgkRWRpdEZlZWQuY2xvdWRQYXRoKX0KCSAgdmFsdWU9InskRWRpdEZlZWQuY2xvdWRQYXRofSIKCXsvaWZ9IC8+CiAgICA8L3RkPgogICAgPHRkPgogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IuY2xvdWRQYXRoKX0KICAgICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iSW52YWxpZCBzdHJpbmcifQogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj48dHI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0icmVnaXN0ZXJQcm9jZWR1cmUifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bY2xvdWRSZWdpc3RlclByb2NlZHVyZV0ifSIKICAgICAgICB7aWYgaXNzZXQoJEVkaXRGZWVkLmNsb3VkUmVnaXN0ZXJQcm9jZWR1cmUpfQoJICB2YWx1ZT0ieyRFZGl0RmVlZC5jbG91ZFJlZ2lzdGVyUHJvY2VkdXJlfSIKCXsvaWZ9IC8+CiAgICA8L3RkPgogICAgPHRkPgogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IuY2xvdWRSZWdpc2VyUHJvY2VkdXJlKX0KICAgICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iSW52YWxpZCBzdHJpbmcifQogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj48dHI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0icHJvdG9jb2wifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bY2xvdWRQcm90b2NvbF0ifSIKICAgICAgICB7aWYgaXNzZXQoJEVkaXRGZWVkLmNsb3VkUHJvdG9jb2wpfQogICAgICAgICAgdmFsdWU9InskRWRpdEZlZWQuY2xvdWRQcm90b2NvbH0iCgl7L2lmfSAvPgogICAgPC90ZD4KICAgIDx0ZD4KICAgICAge2lmIGlzc2V0KCRmb3JtLmVycm9yLmNsb3VkUHJvdG9jb2wpfQogICAgICA8ZGl2IGNsYXNzPSJnaUVycm9yIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJJbnZhbGlkIHN0cmluZyJ9CiAgICAgIDwvZGl2PgogICAgICB7L2lmfQogICAgPC90ZD4KICA8L3RyPjwvdGFibGU+CiAgPC9kaXY+Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIGdjQmFja2dyb3VuZDEiPgp7aWYgJEVkaXRGZWVkLm1vZGUgPT0gJ2VkaXQnfQogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthY3Rpb25dW3VwZGF0ZV0ifSIKICAgIHZhbHVlPSJ7Zy0+dGV4dCB0ZXh0PSJVcGRhdGUgRmVlZCJ9Ii8+CntlbHNlfQogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthY3Rpb25dW2NyZWF0ZV0ifSIKICAgIHZhbHVlPSJ7Zy0+dGV4dCB0ZXh0PSJDcmVhdGUgRmVlZCJ9Ii8+CnsvaWZ9CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2FjdGlvbl1bY2FuY2VsXSJ9IgogICAgdmFsdWU9IntnLT50ZXh0IHRleHQ9IkNhbmNlbCJ9Ii8+CjwvZGl2PgoKe2Vsc2V9Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDM+IHtnLT50ZXh0IHRleHQ9IlJTUyBmZWVkcyBmb3IgdGhpcyBpdGVtIn0gPC9oMz4KICB7aWYgZW1wdHkoJEVkaXRGZWVkLmZlZWRzKX0KICAgIDxwPiB7Zy0+dGV4dCB0ZXh0PSJObyBmZWVkcyBoYXZlIHlldCBiZWVuIGRlZmluZWQifSA8L3A+CiAge2Vsc2V9CgogICAgPHRhYmxlIGNsYXNzPSJnYkRhdGFUYWJsZSI+CiAgICA8dHI+CiAgICAgIDx0aD4ge2ctPnRleHQgdGV4dD0iRmVlZCBsaW5rIn0gPC90aD4KICAgICAgPHRoPiB7Zy0+dGV4dCB0ZXh0PSJGZWVkIHR5cGUifSA8L3RoPgogICAgICA8dGg+IHtnLT50ZXh0IHRleHQ9IkFjdGlvbnMifSA8L3RoPgogICAgPC90cj4KICAgIHtmb3JlYWNoIGZyb209JEVkaXRGZWVkLmZlZWRzIGl0ZW09ZmVlZH0KCSAgPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSJnYkV2ZW4sZ2JPZGQifSI+CgkgICAgPHRkPjxhIGhyZWY9IntnLT51cmwgYXJnMT0idmlldz1yc3MuUmVuZGVyIiBhcmcyPSJuYW1lPWAkZmVlZC5uYW1lYCJ9Ij4KCSAgICAgIHskZmVlZC5uYW1lfTwvYT48L3RkPgoJICAgIDx0ZD57JEVkaXRGZWVkLnR5cGVzWyRmZWVkLnBhcmFtcy5mZWVkVHlwZV19PC90ZD4KCSAgICA8dGQ+CgkgICAgICA8YSBocmVmPSJ7Zy0+dXJsIGFyZzE9ImNvbnRyb2xsZXI9cnNzLkVkaXRGZWVkIgoJICAgICAgICBhcmcyPSJmb3JtW2FjdGlvbl1bZGVsZXRlXT1gJGZlZWQubmFtZWAiIGFyZzM9Iml0ZW1JZD1gJGZlZWQuaXRlbUlkYCJ9Ij4KCQl7Zy0+dGV4dCB0ZXh0PSJkZWxldGUifTwvYT4KCSAgICAgIDxhIGhyZWY9IntnLT51cmwgYXJnMT0idmlldz1jb3JlLkl0ZW1BZG1pbiIgYXJnMj0ic3ViVmlldz1yc3MuRWRpdEZlZWQiCgkgICAgICAgIGFyZzM9ImZvcm1bZmVlZE5hbWVdPWAkZmVlZC5uYW1lYCIgYXJnND0iaXRlbUlkPWAkZmVlZC5pdGVtSWRgIgoJCWFyZzU9Im1vZGU9ZWRpdCJ9Ij4KCQl7Zy0+dGV4dCB0ZXh0PSJlZGl0In08L2E+CgkgICAgPC90ZD4KCSAgPC90cj4KICAgIHsvZm9yZWFjaH0KCTwvdGFibGU+CiAgey9pZn0KPC9kaXY+Cgp7L2lmfQo=');
expand_c19e8c72e9($outputDir, 'templates/FeedList.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0KPGRpdiBjbGFzcz0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aDI+IHtnLT50ZXh0IHRleHQ9IlJTUyBGZWVkcyJ9IDwvaDI+CjwvZGl2PgoKPGRpdiBjbGFzcz0iZ2JCbG9jayI+CiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iVGhpcyBpcyBhIGxpc3Qgb2YgYWxsIHRoZSBmZWVkcyB0aGF0IGFyZSBhdmFpbGFibGUgb24gdGhpcyBHYWxsZXJ5In0KICA8L3A+CgogIHtpZiBlbXB0eSgkRmVlZExpc3QuZmVlZHMpfQogICAgPHA+IHtnLT50ZXh0IHRleHQ9Ik5vIGZlZWRzIGhhdmUgeWV0IGJlZW4gZGVmaW5lZCJ9IDwvcD4KICB7ZWxzZX0KCiAgICA8dGFibGUgY2xhc3M9ImdiRGF0YVRhYmxlIj4KICAgIDx0cj4KICAgICAgPHRoPiB7Zy0+dGV4dCB0ZXh0PSJGZWVkIGxpbmsifSA8L3RoPgogICAgICA8dGg+IHtnLT50ZXh0IHRleHQ9IkRlc2NyaXB0aW9uIn0gPC90aD4KICAgIDwvdHI+CiAgICB7Zm9yZWFjaCBmcm9tPSRGZWVkTGlzdC5mZWVkcyBpdGVtPWZlZWR9CiAgICAgIDx0ciBjbGFzcz0ie2N5Y2xlIHZhbHVlcz0iZ2JFdmVuLGdiT2RkIn0iPgoJPHRkPjxhIGhyZWY9IntnLT51cmwgYXJnMT0idmlldz1yc3MuUmVuZGVyIiBhcmcyPSJuYW1lPWAkZmVlZC5uYW1lYCJ9Ij4KCSAgeyRmZWVkLm5hbWV9PC9hPjwvdGQ+Cgk8dGQ+e2lmIGlzc2V0KCRmZWVkLnBhcmFtcy5kZXNjcmlwdGlvbil9eyRmZWVkLnBhcmFtcy5kZXNjcmlwdGlvbn17L2lmfTwvdGQ+CiAgICAgIDwvdHI+CiAgICB7L2ZvcmVhY2h9Cgk8L3RhYmxlPgogIHsvaWZ9CjwvZGl2Pg==');
expand_c19e8c72e9($outputDir, 'templates/RssBlockHead.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0Ke2ctPmNhbGxiYWNrIHR5cGU9InJzcy5GZWVkTGlzdCJ9CntpZiAhZW1wdHkoJGJsb2NrLnJzcy5mZWVkcyl9CiAge2ZvcmVhY2ggZnJvbT0kYmxvY2sucnNzLmZlZWRzIGl0ZW09ZmVlZH0KICAgIDxsaW5rIHJlbD0iYWx0ZXJuYXRlIiB0eXBlPSJhcHBsaWNhdGlvbi9yc3MreG1sIiB0aXRsZT0ieyRmZWVkfSIKICAgICAgaHJlZj0ie2ctPnVybCBhcmcxPSJ2aWV3PXJzcy5SZW5kZXIiIGFyZzI9Im5hbWU9YCRmZWVkYCJ9IiAvPgogIHsvZm9yZWFjaH0Key9pZn0KCg==');
expand_c19e8c72e9($outputDir, 'templates/RssSiteAdmin.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0KPGRpdiBjbGFzcz0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aDI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJSU1MgU2V0dGluZ3MifQogIDwvaDI+CjwvZGl2PgoKe2lmIGlzc2V0KCRzdGF0dXMuc2F2ZWQpfQo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDIgY2xhc3M9ImdpU3VjY2VzcyI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJTZXR0aW5ncyBoYXZlIGJlZW4gc2F2ZWQifQogIDwvaDI+CjwvZGl2Pgp7ZWxzZWlmICFlbXB0eSgkZm9ybS5lcnJvcil9CjxkaXYgY2xhc3M9ImdiQmxvY2siPgogIDxoMiBjbGFzcz0iZ2lFcnJvciI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJBbiBlcnJvciBvY2N1cmVkIn0KICA8L2gyPgo8L2Rpdj4Key9pZn0KCjxkaXYgY2xhc3M9ImdiVGFiQmFyIj4KICB7aWYgKCRSc3NTaXRlQWRtaW4ubW9kZSA9PSAnc2V0dGluZ3MnKX0KICAgIDxzcGFuIGNsYXNzPSJnaVNlbGVjdGVkIG8iPjxzcGFuPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJTZXR0aW5ncyJ9CiAgICA8L3NwYW4+PC9zcGFuPgogIHtlbHNlfQogICAgPHNwYW4gY2xhc3M9Im8iPjxzcGFuPgogICAgICA8YSBocmVmPSJ7Zy0+dXJsIGFyZzE9InZpZXc9Y29yZS5TaXRlQWRtaW4iIGFyZzI9InN1YlZpZXc9cnNzLlJzc1NpdGVBZG1pbiIKICAgICAgIGFyZzM9Im1vZGU9c2V0dGluZ3MifSI+e2ctPnRleHQgdGV4dD0iU2V0dGluZ3MifTwvYT4KICAgIDwvc3Bhbj48L3NwYW4+CiAgey9pZn0KCiAge2lmICgkZm9ybS5hbGxvd1NpbXBsZUZlZWQpIH0KICB7aWYgKCRSc3NTaXRlQWRtaW4ubW9kZSA9PSAnc2ltcGxlZmVlZHNldHRpbmdzJyl9CiAgICA8c3BhbiBjbGFzcz0iZ2lTZWxlY3RlZCBvIj48c3Bhbj4KICAgICAge2ctPnRleHQgdGV4dD0iU2ltcGxlIEZlZWQgU2V0dGluZ3MifQogICAgPC9zcGFuPjwvc3Bhbj4KICB7ZWxzZX0KICAgIDxzcGFuIGNsYXNzPSJvIj48c3Bhbj4KICAgICAgPGEgaHJlZj0ie2ctPnVybCBhcmcxPSJ2aWV3PWNvcmUuU2l0ZUFkbWluIiBhcmcyPSJzdWJWaWV3PXJzcy5Sc3NTaXRlQWRtaW4iCiAgICAgICBhcmczPSJtb2RlPXNpbXBsZWZlZWRzZXR0aW5ncyJ9Ij57Zy0+dGV4dCB0ZXh0PSJTaW1wbGUgRmVlZCBTZXR0aW5ncyJ9PC9hPgogICAgPC9zcGFuPjwvc3Bhbj4KICB7L2lmfQogIHsvaWZ9CgogIHtpZiAoJFJzc1NpdGVBZG1pbi5tb2RlID09ICdsaXN0Jyl9CiAgICA8c3BhbiBjbGFzcz0iZ2lTZWxlY3RlZCBvIj48c3Bhbj4KICAgICAge2ctPnRleHQgdGV4dD0iTGlzdCJ9CiAgICA8L3NwYW4+PC9zcGFuPgogIHtlbHNlfQogICAgPHNwYW4gY2xhc3M9Im8iPjxzcGFuPgogICAgICA8YSBocmVmPSJ7Zy0+dXJsIGFyZzE9InZpZXc9Y29yZS5TaXRlQWRtaW4iIGFyZzI9InN1YlZpZXc9cnNzLlJzc1NpdGVBZG1pbiIKICAgICAgIGFyZzM9Im1vZGU9bGlzdCJ9Ij57Zy0+dGV4dCB0ZXh0PSJMaXN0In08L2E+CiAgICA8L3NwYW4+PC9zcGFuPgogIHsvaWZ9CjwvZGl2PgoKPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW21vZGVdIn0iIHZhbHVlPSJ7JFJzc1NpdGVBZG1pbi5tb2RlfSIgLz4KCntpZiAkUnNzU2l0ZUFkbWluLm1vZGUgPT0gJ3NldHRpbmdzJyB9Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDM+IHtnLT50ZXh0IHRleHQ9IkdlbmVyYWwgc2V0dGluZ3MifSA8L2gzPgogIDxwIGNsYXNzPSJnaURlc2NyaXB0aW9uIj4KICAgIHtnLT50ZXh0IHRleHQ9IlRoZXNlIGFyZSB0aGUgZGVmYXVsdCBhbmQgbWF4aW11bSB2YWx1ZXMgdGhhdCBhcmUgdXNlZCBieSBhbGwgZmVlZHMgb24geW91ciBHYWxsZXJ5In0KICA8L3A+CgogIDx0YWJsZSBjbGFzcz0iZ2JEYXRhVGFibGUiPgogIDx0cj4KICAgIDx0ZD57Zy0+dGV4dCB0ZXh0PSJSU1MgdmVyc2lvbiJ9PC90ZD4KICAgIDx0ZD48c2VsZWN0IG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtkZWZhdWx0VmVyc2lvbl0ifSI+CiAgICAgICAge2h0bWxfb3B0aW9ucyB2YWx1ZXM9JFJzc1NpdGVBZG1pbi5yc3NWZXJzaW9uTGlzdCBzZWxlY3RlZD0kZm9ybS5kZWZhdWx0VmVyc2lvbiBvdXRwdXQ9JFJzc1NpdGVBZG1pbi5yc3NWZXJzaW9uTGlzdH0KICAgIDwvc2VsZWN0PjwvdGQ+CiAgICA8dGQ+CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci5kZWZhdWx0VmVyc2lvbil9CiAgICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJJbnZhbGlkIHZlcnNpb24ifQogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj48dHI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0iRGVmYXVsdCBudW1iZXIgb2YgaXRlbXMgaW4gZmVlZHMifTwvdGQ+CiAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtkZWZhdWx0Q291bnRdIn0iIHZhbHVlPSJ7JGZvcm0uZGVmYXVsdENvdW50fSIgLz48L3RkPgogICAgPHRkPgogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IuZGVmYXVsdENvdW50KX0KICAgICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iSW52YWxpZCBkZWZhdWx0IG51bWJlciJ9CiAgICAgIDwvZGl2PgogICAgICB7L2lmfQogICAgPC90ZD4KICA8L3RyPjx0cj4KICAgIDx0ZD57Zy0+dGV4dCB0ZXh0PSJNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBpbiBmZWVkcyJ9PC90ZD4KICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW21heENvdW50XSJ9IiB2YWx1ZT0ieyRmb3JtLm1heENvdW50fSIgLz48L3RkPgogICAgPHRkPgogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IubWF4Q291bnQpfQogICAgICA8ZGl2IGNsYXNzPSJnaUVycm9yIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJJbnZhbGlkIG1heGltdW0gbnVtYmVyIn0KICAgICAgPC9kaXY+CiAgICAgIHsvaWZ9CiAgICA8L3RkPgogIDwvdHI+PHRyPgogICAgPHRkPntnLT50ZXh0IHRleHQ9IkRlZmF1bHQgdHRsIn08L3RkPgogICAgPHRkPgogICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2RlZmF1bHRUdGxdIn0iIHZhbHVlPSJ7JGZvcm0uZGVmYXVsdFR0bH0iIC8+CiAgICA8L3RkPgogICAgPHRkPgogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IuZGVmYXVsdFR0bCl9CiAgICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkludmFsaWQgdGltZSB0byBsaXZlLCB0aGlzIG11c3QgYmUgYSBudW1iZXIgb2YgbWludXRlcyAoMCB0byBkaXNhYmxlIHR0bCkifQogICAgICA8L2Rpdj4KICAgICAge2Vsc2V9CiAgICAgICAge2ctPnRleHQgdGV4dD0iVGltZSB0byBsaXZlOiB0aGlzIG11c3QgYmUgYSBudW1iZXIgb2YgbWludXRlcyAoMCB0byBkaXNhYmxlIHR0bCkgYWdncmVnYXRvcnMgc2hvdWxkIHdhaXQgYmV0d2VlbiBjaGVja3Mgb2Ygd2hldGhlciB0aGUgZmVlZCBoYXMgYmVlbiB1cGRhdGVkIn0KICAgICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj48dHI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0iRGVmYXVsdCBjb3B5cmlnaHQifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bZGVmYXVsdENvcHlyaWdodF0ifSIgdmFsdWU9InskZm9ybS5kZWZhdWx0Q29weXJpZ2h0fSIgLz4KICAgIDwvdGQ+CiAgICA8dGQ+CiAgICAgIHtpZiBpc3NldCgkZm9ybS5lcnJvci5kZWZhdWx0Q29weXJpZ2h0KX0KICAgICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iSW52YWxpZCBzdHJpbmcifQogICAgICA8L2Rpdj4KICAgICAgey9pZn0KICAgIDwvdGQ+CiAgPC90cj48L3RhYmxlPgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImdiQmxvY2siPgogIDxoMz4ge2ctPnRleHQgdGV4dD0iRmVlZCBUeXBlcyJ9IDwvaDM+CiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iQ29uZmlndXJlIHdoaWNoIHR5cGVzIG9mIGZlZWRzIGFyZSBhbGxvd2VkIn0KICA8L3A+CiAgPHRhYmxlPjxjb2wgd2lkdGg9IjElIi8+PGNvbCB3aWR0aD0iMSUiLz48Y29sIHdpZHRoPSI1MCUiLz48Y29sIHdpZHRoPSI0OCUiLz4KICAgIDx0cj48dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCJ7aWYgJGZvcm0uYWxsb3dTaW1wbGVGZWVkfSBjaGVja2VkPSJjaGVja2VkIiB7L2lmfQogICAgICAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthbGxvd1NpbXBsZUZlZWRdIn0iIGlkPSJSc3NfYWxsb3dTaW1wbGVGZWVkIi8+CiAgICA8L3RkPjx0ZCBjb2xzcGFuPSIyIj4KICAgICAgPGxhYmVsIGZvcj0iUnNzX2FsbG93U2ltcGxlRmVlZCI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iQWxsb3cgU2ltcGxlIFJTUyBGZWVkIHRvIGJlIHVzZWQifQogICAgICA8L2xhYmVsPgogICAgPC90ZD48dGQ+CiAgICA8L3RkPjwvdHI+CiAgICA8dHI+PHRkPjwvdGQ+PHRkIGNvbHNwYW49IjMiPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJJZiB5b3UgZW5hYmxlIHRoaXMsIHVzZXJzIHdpbGwgYmUgYWJsZSB0byBzdWJzY3JpYmUgdG8gYSBmZWVkIGZvciBhbnkgYWxidW0gb3IgcGhvdG8gdGhleSBjYW4gdmlldy4ifQogICAgICA8YnIvPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJUbyBlZGl0IHRoZSBzZXR0aW5ncyBmb3IgU2ltcGxlIEZlZWRzLCB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgdGFiIGF0IHRoZSB0b3Agb2YgdGhlIHNjcmVlbi4ifQogICAgPC90ZD48L3RyPgoKICAgIDx0cj48dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCJ7aWYgJGZvcm0uYWxsb3dDb25maWd1cmFibGVGZWVkfSBjaGVja2VkPSJjaGVja2VkIiB7L2lmfQogICAgICAgIG9uY2xpY2s9InJlZnJlc2godGhpcy5mb3JtKSIKICAgICAgICBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWxsb3dDb25maWd1cmFibGVGZWVkXSJ9IiBpZD0iUnNzX2FsbG93Q29uZmlndXJhYmxlRmVlZCIvPgogICAgPC90ZD48dGQgY29sc3Bhbj0iMyI+CiAgICAgIDxsYWJlbCBmb3I9IlJzc19hbGxvd0NvbmZpZ3VyYWJsZUZlZWQiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkFsbG93IGNvbmZpZ3VyYWJsZSBSU1MgZmVlZHMgdG8gYmUgdXNlZCJ9CiAgICAgIDwvbGFiZWw+CiAgICA8L3RkPjwvdHI+CiAgICA8dHI+PHRkPjwvdGQ+PHRkIGNvbHNwYW49IjMiPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJPbmx5IGFsYnVtIG93bmVycyB3aWxsIGJlIGFibGUgdG8gZGVmaW5lIHN1Y2ggZmVlZHMuIFRoZXkgY2FuIHNldCBwYXJhbWV0ZXJzIGZvciB0aGUgdHlwZSBvZiBmZWVkIHRoZXkgd2FudC4ifQogICAgICA8YnIvPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJPbmNlIGEgZmVlZCBpcyBkZWZpbmVkLCB1c2VycyB3aWxsIGJlIGFibGUgdG8gc3Vic2NyaWJlIHRvIHRob3NlIGZlZWRzIGlmIHRoZXkgY2FuIHZpZXcgdGhlIGFzc29jaWF0ZWQgaXRlbS4ifQogICAgPC90ZD48L3RyPgogICAgPHRyPjx0ZD4KICAgIDwvdGQ+PHRkPgogICAgICA8aW5wdXQgdHlwZT0iY2hlY2tib3gie2lmICRmb3JtLmFsbG93UGhvdG9zfSBjaGVja2VkPSJjaGVja2VkInsvaWZ9CiAgICAgICAge2lmICEkZm9ybS5hbGxvd0NvbmZpZ3VyYWJsZUZlZWR9IGRpc2FibGVkPSJkaXNhYmxlZCIgey9pZn0KICAgICAgICBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWxsb3dQaG90b3NdIn0iIGlkPSJSc3NfYWxsb3dQaG90b3MiLz4KICAgIDwvdGQ+PHRkPgogICAgICA8bGFiZWwgZm9yPSJSc3NfYWxsb3dQaG90b3MiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkFsbG93IFJTUyBmZWVkcyBvZiBwaG90b3MgaW5zaWRlIGFuIGFsYnVtIn0KICAgICAgPC9sYWJlbD4KICAgIDwvdGQ+PHRkPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJGYXN0In0KICAgIDwvdGQ+PC90cj4KICAgIDx0cj48dGQ+CiAgICA8L3RkPjx0ZD4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IntpZiAkZm9ybS5hbGxvd0FsYnVtc30gY2hlY2tlZD0iY2hlY2tlZCJ7L2lmfQogICAgICAgIHtpZiAhJGZvcm0uYWxsb3dDb25maWd1cmFibGVGZWVkfSBkaXNhYmxlZD0iZGlzYWJsZWQiIHsvaWZ9CiAgICAgICAgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2FsbG93QWxidW1zXSJ9IiBpZD0iUnNzX2FsbG93QWxidW1zIi8+CiAgICA8L3RkPjx0ZD4KICAgICAgPGxhYmVsIGZvcj0iUnNzX2FsbG93QWxidW1zIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJBbGxvdyBSU1MgZmVlZHMgb2Ygc3ViYWxidW1zIG9mIGFuIGFsYnVtIn0KICAgICAgPC9sYWJlbD4KICAgIDwvdGQ+PHRkPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJTbG93In0KICAgIDwvdGQ+PC90cj4KICAgIDx0cj48dGQ+CiAgICA8L3RkPjx0ZD4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IntpZiAkZm9ybS5hbGxvd1Bob3Rvc1JlY3Vyc2V9IGNoZWNrZWQ9ImNoZWNrZWQiey9pZn0KICAgICAgICB7aWYgISRmb3JtLmFsbG93Q29uZmlndXJhYmxlRmVlZH0gZGlzYWJsZWQ9ImRpc2FibGVkIiB7L2lmfQogICAgICAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthbGxvd1Bob3Rvc1JlY3Vyc2VdIn0iIGlkPSJSc3NfYWxsb3dQaG90b3NSZWN1cnNlIi8+CiAgICA8L3RkPjx0ZD4KICAgICAgPGxhYmVsIGZvcj0iUnNzX2FsbG93UGhvdG9zUmVjdXJzZSI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iQWxsb3cgUlNTIGZlZWRzIG9mIHBob3RvcyBpbnNpZGUgYW4gYWxidW0gYW5kIGl0cyBzdWJhbGJ1bXMifQogICAgICA8L2xhYmVsPgogICAgPC90ZD48dGQ+CiAgICAgIHtnLT50ZXh0IHRleHQ9IlNsb3dlciJ9CiAgICA8L3RkPjwvdHI+CiAgICA8dHI+PHRkPgogICAgPC90ZD48dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJjaGVja2JveCJ7aWYgJGZvcm0uYWxsb3dDb21tZW50c1Bob3RvfSBjaGVja2VkPSJjaGVja2VkInsvaWZ9CiAgICAgICAge2lmICEkZm9ybS5hbGxvd0NvbmZpZ3VyYWJsZUZlZWR9IGRpc2FibGVkPSJkaXNhYmxlZCIgey9pZn0KICAgICAgICBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWxsb3dDb21tZW50c1Bob3RvXSJ9IiBpZD0iUnNzX2FsbG93Q29tbWVudHNQaG90byIvPgogICAgPC90ZD48dGQ+CiAgICAgIDxsYWJlbCBmb3I9IlJzc19hbGxvd0NvbW1lbnRzUGhvdG8iPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkFsbG93IFJTUyBmZWVkcyBjb21tZW50cyBvZiBhIHBob3RvIn0KICAgICAgPC9sYWJlbD4KICAgIDwvdGQ+PHRkPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJGYXN0In0KICAgIDwvdGQ+PC90cj4KICAgIDx0cj48dGQ+CiAgICA8L3RkPjx0ZD4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IntpZiAkZm9ybS5hbGxvd0NvbW1lbnRzQWxidW19IGNoZWNrZWQ9ImNoZWNrZWQiey9pZn0KICAgICAgICB7aWYgISRmb3JtLmFsbG93Q29uZmlndXJhYmxlRmVlZH0gZGlzYWJsZWQ9ImRpc2FibGVkIiB7L2lmfQogICAgICAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthbGxvd0NvbW1lbnRzQWxidW1dIn0iIGlkPSJSc3NfYWxsb3dDb21tZW50c0FsYnVtIi8+CiAgICA8L3RkPjx0ZD4KICAgICAgPGxhYmVsIGZvcj0iUnNzX2FsbG93Q29tbWVudHNBbGJ1bSI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iQWxsb3cgUlNTIGZlZWRzIGNvbW1lbnRzIG9mIGFuIGFsYnVtIn0KICAgICAgPC9sYWJlbD4KICAgIDwvdGQ+PHRkPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJGYXN0In0KICAgIDwvdGQ+PC90cj4KICAgIDx0cj48dGQ+CiAgICA8L3RkPjx0ZD4KICAgICAgPGlucHV0IHR5cGU9ImNoZWNrYm94IntpZiAkZm9ybS5hbGxvd0NvbW1lbnRzUmVjdXJzaXZlfSBjaGVja2VkPSJjaGVja2VkInsvaWZ9CiAgICAgICAge2lmICEkZm9ybS5hbGxvd0NvbmZpZ3VyYWJsZUZlZWR9IGRpc2FibGVkPSJkaXNhYmxlZCIgey9pZn0KICAgICAgICBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWxsb3dDb21tZW50c1JlY3Vyc2l2ZV0ifSIgaWQ9IlJzc19hbGxvd0NvbW1lbnRzUmVjdXJzaXZlIi8+CiAgICA8L3RkPjx0ZD4KICAgICAgPGxhYmVsIGZvcj0iUnNzX2FsbG93Q29tbWVudHNSZWN1cnNpdmUiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkFsbG93IFJTUyBmZWVkcyBjb21tZW50cyBmb3IgYW4gYWxidW0gYW5kIGl0cyBzdWJhbGJ1bXMifQogICAgICA8L2xhYmVsPgogICAgPC90ZD48dGQ+CiAgICAgIHtnLT50ZXh0IHRleHQ9IkZhc3QifQogICAgPC90ZD48L3RyPgogIDwvdGFibGU+CjwvZGl2PgoKPGRpdiBjbGFzcz0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWN0aW9uXVtzYXZlXSJ9IiB2YWx1ZT0ie2ctPnRleHQgdGV4dD0iU2F2ZSBTZXR0aW5ncyJ9Ii8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2FjdGlvbl1bcmVzZXRdIn0iIHZhbHVlPSJ7Zy0+dGV4dCB0ZXh0PSJSZXNldCJ9Ii8+CjwvZGl2PgoKe2ctPmFkZFRvVHJhaWxlcn0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogIC8vIDwhW0NEQVRBWwogIGZ1bmN0aW9uIHJlZnJlc2goZm9ybSkge2xkZWxpbX0KICAgIGVuYWJsZWQgPSBmb3JtLmVsZW1lbnRzLm5hbWVkSXRlbSgne2ctPmZvcm1WYXIgdmFyPSJmb3JtW2FsbG93Q29uZmlndXJhYmxlRmVlZF0ifScpLmNoZWNrZWQ7CgogICAgZm9ybS5lbGVtZW50cy5uYW1lZEl0ZW0oJ3tnLT5mb3JtVmFyIHZhcj0iZm9ybVthbGxvd0FsYnVtc10ifScpLmRpc2FibGVkID0gIWVuYWJsZWQ7CiAgICBmb3JtLmVsZW1lbnRzLm5hbWVkSXRlbSgne2ctPmZvcm1WYXIgdmFyPSJmb3JtW2FsbG93UGhvdG9zXSJ9JykuZGlzYWJsZWQgPSAhZW5hYmxlZDsKICAgIGZvcm0uZWxlbWVudHMubmFtZWRJdGVtKCd7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWxsb3dQaG90b3NSZWN1cnNlXSJ9JykuZGlzYWJsZWQgPSAhZW5hYmxlZDsKICAgIGZvcm0uZWxlbWVudHMubmFtZWRJdGVtKCd7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWxsb3dDb21tZW50c1Bob3RvXSJ9JykuZGlzYWJsZWQgPSAhZW5hYmxlZDsKICAgIGZvcm0uZWxlbWVudHMubmFtZWRJdGVtKCd7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWxsb3dDb21tZW50c0FsYnVtXSJ9JykuZGlzYWJsZWQgPSAhZW5hYmxlZDsKICAgIGZvcm0uZWxlbWVudHMubmFtZWRJdGVtKCd7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWxsb3dDb21tZW50c1JlY3Vyc2l2ZV0ifScpLmRpc2FibGVkID0gIWVuYWJsZWQ7CiAgICB7cmRlbGltfQogIC8vIF1dPgo8L3NjcmlwdD4Key9nLT5hZGRUb1RyYWlsZXJ9Cgp7ZWxzZWlmICRSc3NTaXRlQWRtaW4ubW9kZSA9PSAnbGlzdCd9Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDM+IHtnLT50ZXh0IHRleHQ9IkhlbHBpbmcgdXNlcnMgZGlzY292ZXIgUlNTIGZlZWRzIn0gPC9oMz4KICA8cD57Zy0+dGV4dCB0ZXh0PSJJZiB5b3Ugd2FudCB0byBoZWxwIHVzZXJzIGRpc2NvdmVyIGZlZWRzIGluIHlvdXIgR2FsbGVyeSwgeW91IGNhbiBhZGQgdGhlIFJTUyBibG9jayB0byB0aGUgdGhlbWVzIHVzZWQgaW4geW91ciBHYWxsZXJ5LiJ9PC9wPgogIDxwPntnLT50ZXh0IHRleHQ9IlRoaXMgd2lsbCBoYXZlIHR3byBlZmZlY3RzOiB0aGUgYmxvY2sgaXRzZWxmLCB3aGljaCB1c2VycyBjYW4gc2VlIGFuZCBwaWNrIGZlZWRzIGZyb20gKGFuZCBnZXQgYSBsaXN0IG9mIGFsbCBmZWVkcyk7IGFuZCBoaWRkZW4gcGFnZSBoZWFkZXJzIHRoYXQgbW9kZXJuIHdlYiBicm93c2VycyB3aWxsIHVzZSB0byBtYWtlIGl0IGVhc2llciBmb3IgdGhlIHVzZXIgdG8gc3Vic2NyaWJlIHRvIHRoZSBmZWVkcy4ifTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDM+IHtnLT50ZXh0IHRleHQ9Ikdsb2JhbCBsaXN0IG9mIFJTUyBmZWVkcyJ9IDwvaDM+CiAge2lmIGVtcHR5KCRSc3NTaXRlQWRtaW4uZmVlZHMpfQogICAgPHA+IHtnLT50ZXh0IHRleHQ9Ik5vIGZlZWRzIGhhdmUgeWV0IGJlZW4gZGVmaW5lZCJ9IDwvcD4KICB7ZWxzZX0KCiAgICA8dGFibGUgY2xhc3M9ImdiRGF0YVRhYmxlIj4KICAgIDx0cj4KICAgICAgPHRoPiB7Zy0+dGV4dCB0ZXh0PSJGZWVkIGxpbmsifSA8L3RoPgogICAgICA8dGg+IHtnLT50ZXh0IHRleHQ9Ik9uIGl0ZW0ifSA8L3RoPgogICAgICA8dGg+IHtnLT50ZXh0IHRleHQ9IkZlZWQgdHlwZSJ9IDwvdGg+CiAgICAgIDx0aD4ge2ctPnRleHQgdGV4dD0iQWN0aW9ucyJ9IDwvdGg+CiAgICA8L3RyPgogICAge2ZvcmVhY2ggZnJvbT0kUnNzU2l0ZUFkbWluLmZlZWRzIGl0ZW09ZmVlZH0KCSAgPHRyIGNsYXNzPSJ7Y3ljbGUgdmFsdWVzPSJnYkV2ZW4sZ2JPZGQifSI+CgkgICAgPHRkPjxhIGhyZWY9IntnLT51cmwgYXJnMT0idmlldz1yc3MuUmVuZGVyIiBhcmcyPSJuYW1lPWAkZmVlZC5uYW1lYCJ9Ij4KCSAgICAgIHskZmVlZC5uYW1lfTwvYT48L3RkPgoJICAgIDx0ZD48YSBocmVmPSJ7Zy0+dXJsIGFyZzE9InZpZXc9Y29yZS5TaG93SXRlbSIgYXJnMj0iaXRlbUlkPWAkZmVlZC5pdGVtSWRgIn0iPgoJICAgICAgeyRmZWVkLml0ZW0tPmdldFRpdGxlKCl9PC9hPjwvdGQ+CgkgICAgPHRkPnskUnNzU2l0ZUFkbWluLnR5cGVzWyRmZWVkLnBhcmFtcy5mZWVkVHlwZV19PC90ZD4KCSAgICA8dGQ+CgkgICAgICA8YSBocmVmPSJ7Zy0+dXJsIGFyZzE9ImNvbnRyb2xsZXI9cnNzLlJzc1NpdGVBZG1pbiIKCSAgICAgICAgYXJnMj0iZm9ybVthY3Rpb25dW2RlbGV0ZV09YCRmZWVkLm5hbWVgIn0iPgoJCXtnLT50ZXh0IHRleHQ9ImRlbGV0ZSJ9PC9hPgoJICAgICAgPGEgaHJlZj0ie2ctPnVybCBhcmcxPSJ2aWV3PWNvcmUuSXRlbUFkbWluIiBhcmcyPSJzdWJWaWV3PXJzcy5FZGl0RmVlZCIKCSAgICAgICAgYXJnMz0iZm9ybVtmZWVkTmFtZV09YCRmZWVkLm5hbWVgIiBhcmc0PSJpdGVtSWQ9YCRmZWVkLml0ZW1JZGAiCgkJYXJnNT0ibW9kZT1lZGl0In0iPgoJCXtnLT50ZXh0IHRleHQ9ImVkaXQifTwvYT4KCSAgICA8L3RkPgoJICA8L3RyPgogICAgey9mb3JlYWNofQoJPC90YWJsZT4KICB7L2lmfQo8L2Rpdj4KCntlbHNlfQoKPGRpdiBjbGFzcz0iZ2JCbG9jayI+CiAgPGgzPiB7Zy0+dGV4dCB0ZXh0PSJTaW1wbGUgRmVlZCBzZXR0aW5ncyJ9IDwvaDM+CiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iQ2hvb3NlIHdoYXQgdHlwZSBvZiBkYXRhIHRoYXQgd2lsbCBiZSBwcmVzZW50IGluIHRoZSBmZWVkIn0KICA8L3A+CgogIDx0YWJsZSBjbGFzcz0iZ2JEYXRhVGFibGUiPgoKICA8dHIgdmFsaWduPSJ0b3AiPgogICAgPHRkIHJvd3NwYW49IjUiPntnLT50ZXh0IHRleHQ9IkZvciBhbGJ1bXMifTwvdGQ+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW3NmQWxidW1UeXBlXSJ9IgogICAgICAgIHZhbHVlPSJwaG90b3MiIHtpZiAkZm9ybS5zZkFsYnVtVHlwZT09J3Bob3Rvcyd9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfQoJaWQ9IlJzc1NpdGVBZG1pbl90eXBlUGhvdG9zIiAvPgogICAgPC90ZD48dGQ+CiAgICAgIDxsYWJlbCBmb3I9IlJzc1NpdGVBZG1pbl90eXBlUGhvdG9zIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJJdGVtcyBpbiB0aGUgYWxidW0ifQogICAgICA8L2xhYmVsPgogICAgPC90ZD48dGQ+CiAgICAgIHtnLT50ZXh0IHRleHQ9IkZhc3QifQogICAgPC90ZD4KICA8L3RyPjx0ciB2YWxpZ249InRvcCI+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW3NmQWxidW1UeXBlXSJ9IgogICAgICAgIHZhbHVlPSJhbGJ1bSIge2lmICRmb3JtLnNmQWxidW1UeXBlPT0nYWxidW0nfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0KCWlkPSJSc3NTaXRlQWRtaW5fdHlwZUFsYnVtIiAvPgogICAgPC90ZD48dGQ+CiAgICAgIDxsYWJlbCBmb3I9IlJzc1NpdGVBZG1pbl90eXBlQWxidW0iPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IlN1Yi1hbGJ1bXMgb2YgdGhlIGFsYnVtIn0KICAgICAgPC9sYWJlbD4KICAgIDwvdGQ+PHRkPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJTbG93In0KICAgIDwvdGQ+CiAgPC90cj48dHIgdmFsaWduPSJ0b3AiPgogICAgPHRkPgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtzZkFsYnVtVHlwZV0ifSIKICAgICAgICB2YWx1ZT0icGhvdG9zUmVjdXJzZSIge2lmICRmb3JtLnNmQWxidW1UeXBlPT0ncGhvdG9zUmVjdXJzZSd9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfQoJaWQ9IlJzc1NpdGVBZG1pbl90eXBlUGhvdG9zUmVjdXJzZSIgLz4KICAgIDwvdGQ+PHRkPgogICAgICA8bGFiZWwgZm9yPSJSc3NTaXRlQWRtaW5fdHlwZVBob3Rvc1JlY3Vyc2UiPgogICAgICAgIHtnLT50ZXh0IHRleHQ9Ikl0ZW1zIGluIHRoZSBhbGJ1bSBhbmQgaXRzIHN1YmFsYnVtcyJ9CiAgICAgIDwvbGFiZWw+CiAgICA8L3RkPjx0ZD4KICAgICAge2ctPnRleHQgdGV4dD0iU2xvd2VyIn0KICAgIDwvdGQ+CiAgPC90cj48dHI+CiAgICA8dGQ+PC90ZD4KICAgIDx0ZCBjb2xzcGFuPSIyIiB2YWxpZ249InRvcCI+CiAgICAgIDxsYWJlbCBmb3I9IlJzc1NpdGVBZG1pbl90eXBlUGhvdG9zUmVjdXJzZUxpbWl0Ij4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJMaW1pdCB0aGUgbnVtYmVyIG9mIGl0ZW1zIHBlciBhbGJ1bSJ9CiAgICAgIDwvbGFiZWw+CiAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI1IiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bc2ZQaG90b3NSZWN1cnNlTGltaXRdIn0iCiAgICAgICAge2lmIGlzc2V0KCRmb3JtLnNmUGhvdG9zUmVjdXJzZUxpbWl0KX12YWx1ZT0ieyRmb3JtLnNmUGhvdG9zUmVjdXJzZUxpbWl0fSJ7L2lmfQoJaWQ9IlJzc1NpdGVBZG1pbl90eXBlUGhvdG9zUmVjdXJzZUxpbWl0IiAvPgogICAgICB7aWYgaXNzZXQoJGZvcm0uZXJyb3Iuc2ZQaG90b3NSZWN1cnNlTGltaXQpfQogICAgICA8ZGl2IGNsYXNzPSJnaUVycm9yIj4KICAgICAge2ctPnRleHQgdGV4dD0iSW52YWxpZCBsaW1pdCAobXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciwgMCB0byBkaXNhYmxlIHRoZSBsaW1pdCkifQogICAgICA8L2Rpdj4KICAgICAge2Vsc2V9CiAgICAgIHtnLT50ZXh0IHRleHQ9IihlbnRlciAwIHRvIGRpc2FibGUgdGhlIGxpbWl0KSJ9CiAgICAgIHsvaWZ9CiAgICA8L3RkPgogIDwvdHI+PHRyPgogICAgPHRkPgogICAgICA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtzZkFsYnVtVHlwZV0ifSIKICAgICAgICB2YWx1ZT0iY29tbWVudHNBbGJ1bSIge2lmICRmb3JtLnNmQWxidW1UeXBlPT0nY29tbWVudHNBbGJ1bSd9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfQoJaWQ9IlJzc1NpdGVBZG1pbl90eXBlQ29tbWVudHNBbGJ1bSIgLz4KICAgIDwvdGQ+PHRkPgogICAgICA8bGFiZWwgZm9yPSJSc3NTaXRlQWRtaW5fdHlwZUNvbW1lbnRzQWxidW0iPgogICAgICAgIHtnLT50ZXh0IHRleHQ9IkNvbW1lbnRzIGZvciB0aGUgYWxidW0ifQogICAgICA8L2xhYmVsPgogICAgPC90ZD48dGQ+CiAgICAgIHtnLT50ZXh0IHRleHQ9IkZhc3QifQogICAgPC90ZD4KICA8L3RyPjx0cj4KICA8dGQ+PC90ZD4KICAgIDx0ZD4KICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bc2ZBbGJ1bVR5cGVdIn0iCiAgICAgICAgdmFsdWU9ImNvbW1lbnRzUmVjdXJzaXZlIiB7aWYgJGZvcm0uc2ZBbGJ1bVR5cGU9PSdjb21tZW50c1JlY3Vyc2l2ZSd9Y2hlY2tlZD0iY2hlY2tlZCJ7L2lmfQoJaWQ9IlJzc1NpdGVBZG1pbl90eXBlQ29tbWVudHNSZWN1cnNpdmUiIC8+CiAgICA8L3RkPjx0ZD4KICAgICAgPGxhYmVsIGZvcj0iUnNzU2l0ZUFkbWluX3R5cGVDb21tZW50c1JlY3Vyc2l2ZSI+CiAgICAgICAge2ctPnRleHQgdGV4dD0iQ29tbWVudHMgZm9yIGFuIGFsYnVtIGFuZCBpdHMgc3ViYWxidW1zIn0KICAgICAgPC9sYWJlbD4KICAgIDwvdGQ+PHRkPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJGYXN0In0KICAgIDwvdGQ+CiAgPC90cj4KCiAgPHRyPjx0ZD4mbmJzcDs8L3RkPjwvdHI+CgogIDx0ciB2YWxpZ249InRvcCI+CiAgICA8dGQ+e2ctPnRleHQgdGV4dD0iRm9yIGl0ZW1zIn08L3RkPgogICAgPHRkPjxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0iZmFrZSIKICAgICAgICB2YWx1ZT0iY29tbWVudHNQaG90byIgY2hlY2tlZD0iY2hlY2tlZCIgaWQ9IlJzc1NpdGVBZG1pbl90eXBlQ29tbWVudHNQaG90byIgLz4KICAgIDwvdGQ+PHRkPgogICAgICA8bGFiZWwgZm9yPSJSc3NTaXRlQWRtaW5fdHlwZUFsYnVtIj4KICAgICAgICB7Zy0+dGV4dCB0ZXh0PSJDb21tZW50cyBmb3IgaXRlbXMgKGFsd2F5cyBzZWxlY3RlZCkifQogICAgICA8L2xhYmVsPgogICAgPC90ZD48dGQ+CiAgICAgIHtnLT50ZXh0IHRleHQ9IkZhc3QifQogICAgPC90ZD4KICA8L3RyPgoKICA8dHI+PHRkPiZuYnNwOzwvdGQ+PC90cj4KCiAgPHRyPgogICAgPHRkIHJvd3NwYW49IjIiIHZhbGlnbj0idG9wIj57Zy0+dGV4dCB0ZXh0PSJXaGljaCBpdGVtcyJ9PC90ZD4KICAgIDx0ZD4KICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bc2ZEYXRlXSJ9IiB2YWx1ZT0ibmV3IgogICAgICAgIHtpZiAkZm9ybS5zZkRhdGU9PSduZXcnfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gaWQ9IlJzc1NpdGVBZG1pbl9kYXRlTmV3IiAvPgogICAgPC90ZD48dGQgY29sc3Bhbj0iMiI+CiAgICAgIDxsYWJlbCBmb3I9IlJzc1NpdGVBZG1pbl9kYXRlTmV3Ij57Zy0+dGV4dCB0ZXh0PSJOZXcgaXRlbXMgb25seSJ9PC9sYWJlbD4KICAgIDwvdGQ+CiAgPC90cj48dHI+CiAgICA8dGQ+CiAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW3NmRGF0ZV0ifSIgdmFsdWU9InVwZGF0ZWQiCiAgICAgICAge2lmICRmb3JtLnNmRGF0ZT09J3VwZGF0ZWQnfWNoZWNrZWQ9ImNoZWNrZWQiey9pZn0gaWQ9IlJzc1NpdGVBZG1pbl9kYXRlVXBkYXRlZCIgLz4KICAgIDwvdGQ+PHRkIGNvbHNwYW49IjIiPgogICAgICA8bGFiZWwgZm9yPSJSc3NTaXRlQWRtaW5fZGF0ZVVwZGF0ZWQiPntnLT50ZXh0IHRleHQ9Ik5ldyBhbmQgdXBkYXRlZCBpdGVtcyJ9PC9sYWJlbD4KICAgIDwvdGQ+CiAgPC90cj4KICA8L3RhYmxlPgoKPC9kaXY+Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIGdjQmFja2dyb3VuZDEiPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthY3Rpb25dW3NhdmVdIn0iIHZhbHVlPSJ7Zy0+dGV4dCB0ZXh0PSJTYXZlIFNldHRpbmdzIn0iLz4KICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWN0aW9uXVtyZXNldF0ifSIgdmFsdWU9IntnLT50ZXh0IHRleHQ9IlJlc2V0In0iLz4KPC9kaXY+Cgp7L2lmfQo=');
expand_c19e8c72e9($outputDir, 'templates/blocks/RssBlock.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0Ke2ctPmNhbGxiYWNrIHR5cGU9InJzcy5GZWVkTGlzdCJ9CjxkaXYgY2xhc3M9InskY2xhc3N9Ij4KICA8aDM+IHtnLT50ZXh0IHRleHQ9IlJTUyBGZWVkcyJ9IDwvaDM+CiAge2lmIGVtcHR5KCRibG9jay5yc3MuZmVlZHMpfQogICAgPHA+IHtnLT50ZXh0IHRleHQ9Ik5vIGZlZWRzIGhhdmUgeWV0IGJlZW4gZGVmaW5lZCJ9IDwvcD4KICB7ZWxzZX0KICAgIHtmb3JlYWNoIGZyb209JGJsb2NrLnJzcy5mZWVkcyBpdGVtPWZlZWR9CiAgICAgIDxhIGhyZWY9IntnLT51cmwgYXJnMT0idmlldz1yc3MuUmVuZGVyIiBhcmcyPSJuYW1lPWAkZmVlZGAifSI+CiAgICAgICAgeyRmZWVkfTwvYT48YnIvPgogICAgey9mb3JlYWNofQogIHsvaWZ9CiAgCiAge2lmICRibG9jay5yc3Muc2hvd01vcmV9CiAgICA8cD48YSBocmVmPSJ7Zy0+dXJsIGFyZzE9InZpZXc9cnNzLkZlZWRMaXN0In0iPntnLT50ZXh0IHRleHQ9Ikxpc3QgYWxsIFJTUyBGZWVkcyJ9PC9hPjwvcD4KICB7L2lmfQo8L2Rpdj4KCg==');
expand_c19e8c72e9($outputDir, 'templates/blocks/blocks.inc', 'PD9waHAKJGJsb2Nrc1snUnNzQmxvY2snXSA9IGFycmF5KAogICAgJ2Rlc2NyaXB0aW9uJyA9PiAkZ2FsbGVyeS0+aTE4bignTGlzdCBvZiBSU1MgRmVlZHMnKSwKICAgICdkZWZhdWx0JyA9PiAndHJ1ZScsCiAgICAndmFycycgPT4gYXJyYXkoCgknbnVtYmVyJyA9PiBhcnJheSgKCSAgICAnZGVzY3JpcHRpb24nID0+ICRnYWxsZXJ5LT5pMThuKCdOdW1iZXIgb2YgZmVlZHMgdG8gZGlzcGxheScpLAoJICAgICd0eXBlJyA9PiAnY2hvaWNlJywKCSAgICAnZGVmYXVsdCcgPT4gJzUnLAoJICAgICdjaG9pY2VzJyA9PiBhcnJheSgKCQknMScgPT4gJGdhbGxlcnktPmkxOG4oJzEnKSwKCQknNScgPT4gJGdhbGxlcnktPmkxOG4oJzUnKSwKCQknMTAnID0+ICRnYWxsZXJ5LT5pMThuKCcxMCcpLAoJCSc5OTknID0+ICRnYWxsZXJ5LT5pMThuKCdhbGwnKSwKCSAgICApCgkpCiAgICApCik7Cj8+Cg==');
}
function expand_c19e8c72e9($outputDir, $relativePath, $data) {
$fd = fopen($outputDir . $relativePath, 'w');
fwrite($fd, base64_decode($data));
fclose($fd);
}
$unpackFunction = "unpack_c19e8c72e9";
?>

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists