403Webshell
Server IP : 85.158.181.41  /  Your IP : 216.73.217.12
Web Server : Apache
System : Linux cloud9-vm129 6.1.178+1-ph #ph SMP PREEMPT_DYNAMIC Wed Jul 29 09:00:54 UTC 2026 x86_64
User : moncbefd ( 1024)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/moncbefd/www.moneta.at/themes/Honeygrid_preview/javascripts/system/widgets/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/moncbefd/www.moneta.at/themes/Honeygrid_preview/javascripts/system/widgets/image_gallery.js
'use strict';

/* --------------------------------------------------------------
 image_gallery.js 2016-03-09
 Gambio GmbH
 http://www.gambio.de
 Copyright (c) 2015 Gambio GmbH
 Released under the GNU General Public License (Version 2)
 [http://www.gnu.org/licenses/gpl-2.0.html]
 --------------------------------------------------------------
 */

/**
 * Widget that opens the gallery modal layer (which is
 * used for the article pictures)
 */
gambio.widgets.module('image_gallery', [gambio.source + '/libs/modal.ext-magnific', gambio.source + '/libs/modal', gambio.source + '/libs/events', gambio.source + '/libs/responsive'], function (data) {

    'use strict';

    // ########## VARIABLE INITIALIZATION ##########

    var $this = $(this),
        $theme = null,
        $body = $('body'),
        layer = null,
        configuration = { // Modal layer configuration
        notheme: false,
        preloader: true,
        closeOnOuter: true,
        dialogClass: 'product_images',
        gallery: {
            enabled: true
        }
    },
        defaults = {
        target: '.swiper-slide', // Selector for the click event listener
        theme: '#product_image_layer', // theme that is used for the layer
        breakpoint: 40 // Maximum breakpoint for mobile view mode
    },
        options = $.extend(true, {}, defaults, data),
        module = {};

    // ########## EVENT HANDLER ##########

    /**
     * Click event handler that configures the swiper(s)
     * inside the layer and opens it afterwards
     * @param       {object}    e       jQuery event object
     * @private
     */
    var _clickHandler = function _clickHandler(e) {
        e.preventDefault();

        // Only open in desktop mode
        if (jse.libs.theme.responsive.breakpoint().id > options.breakpoint) {
            var $self = $(this),
                $swiper = $theme.find('[data-swiper-slider-options]'),
                dataset = $self.data(),
                index = dataset.index || dataset.swiperSlideIndex || 0;

            // Loop that replaces the initial slide of
            // each swiper inside the layer
            $swiper.each(function () {
                $(this).attr('data-swiper-init-slide', index);
            });

            // Opens the modal layer
            layer = jse.libs.theme.modal.custom(configuration);
        }
    };

    /**
     * Handler which closes an opened gallery if the
     * screen width gets under the size of an desktop mode
     * @private
     */
    var _breakpointHandler = function _breakpointHandler() {
        if (jse.libs.theme.responsive.breakpoint().id <= options.breakpoint && layer) {
            layer.close(true);
        }
    };

    /**
     * Event handler to append / remove slides from the
     * gallery layer swipers
     * @param       {object}        e           jQuery event object
     * @param       {object}        d           JSON data of the images
     * @private
     */
    var _addSlides = function _addSlides(e, d) {

        // Loops through all swipers inside the layer
        $theme.find('.swiper-container theme').each(function () {
            var $tpl = $(this),
                $slideContainer = $tpl.siblings('.swiper-wrapper');

            // Loops through each category inside the images array
            $.each(d, function (category, dataset) {
                var catName = category + '-category',
                    add = '',
                    markup = $tpl.html();

                // Generate the markup for the new slides
                // and replace the old images of that category
                // eith the new ones
                $.each(dataset || [], function (i, v) {
                    v.className = catName;
                    add += Mustache.render(markup, v);
                });

                $slideContainer.find('.' + catName).remove();

                $slideContainer.append(add);
            });
        });
    };

    // ########## INITIALIZATION ##########

    /**
     * Init function of the widget
     *
     * @constructor
     */
    module.init = function (done) {
        configuration.theme = options.theme;
        $theme = $(options.theme);

        $this.on('click', options.target, _clickHandler).on(jse.libs.theme.events.SLIDES_UPDATE(), _addSlides);

        $body.on(jse.libs.theme.events.BREAKPOINT(), _breakpointHandler);

        done();
    };

    // Return data to widget engine
    return module;
});
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndpZGdldHMvaW1hZ2VfZ2FsbGVyeS5qcyJdLCJuYW1lcyI6WyJnYW1iaW8iLCJ3aWRnZXRzIiwibW9kdWxlIiwic291cmNlIiwiZGF0YSIsIiR0aGlzIiwiJCIsIiR0aGVtZSIsIiRib2R5IiwibGF5ZXIiLCJjb25maWd1cmF0aW9uIiwibm90aGVtZSIsInByZWxvYWRlciIsImNsb3NlT25PdXRlciIsImRpYWxvZ0NsYXNzIiwiZ2FsbGVyeSIsImVuYWJsZWQiLCJkZWZhdWx0cyIsInRhcmdldCIsInRoZW1lIiwiYnJlYWtwb2ludCIsIm9wdGlvbnMiLCJleHRlbmQiLCJfY2xpY2tIYW5kbGVyIiwiZSIsInByZXZlbnREZWZhdWx0IiwianNlIiwibGlicyIsInJlc3BvbnNpdmUiLCJpZCIsIiRzZWxmIiwiJHN3aXBlciIsImZpbmQiLCJkYXRhc2V0IiwiaW5kZXgiLCJzd2lwZXJTbGlkZUluZGV4IiwiZWFjaCIsImF0dHIiLCJtb2RhbCIsImN1c3RvbSIsIl9icmVha3BvaW50SGFuZGxlciIsImNsb3NlIiwiX2FkZFNsaWRlcyIsImQiLCIkdHBsIiwiJHNsaWRlQ29udGFpbmVyIiwic2libGluZ3MiLCJjYXRlZ29yeSIsImNhdE5hbWUiLCJhZGQiLCJtYXJrdXAiLCJodG1sIiwiaSIsInYiLCJjbGFzc05hbWUiLCJNdXN0YWNoZSIsInJlbmRlciIsInJlbW92ZSIsImFwcGVuZCIsImluaXQiLCJkb25lIiwib24iLCJldmVudHMiLCJTTElERVNfVVBEQVRFIiwiQlJFQUtQT0lOVCJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7Ozs7OztBQVVBOzs7O0FBSUFBLE9BQU9DLE9BQVAsQ0FBZUMsTUFBZixDQUNJLGVBREosRUFHSSxDQUNJRixPQUFPRyxNQUFQLEdBQWdCLDBCQURwQixFQUVJSCxPQUFPRyxNQUFQLEdBQWdCLGFBRnBCLEVBR0lILE9BQU9HLE1BQVAsR0FBZ0IsY0FIcEIsRUFJSUgsT0FBT0csTUFBUCxHQUFnQixrQkFKcEIsQ0FISixFQVVJLFVB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UixnQ0FDS2IsSUFETCxDQUNVLE1BQU1nQixPQURoQixFQUVLUyxNQUZMOztBQUlBWixnQ0FBZ0JhLE1BQWhCLENBQXVCVCxHQUF2QjtBQUNILGFBbEJEO0FBbUJILFNBMUJMO0FBMkJILEtBOUJEOztBQWlDUjs7QUFFUTs7Ozs7QUFLQS9DLFdBQU95RCxJQUFQLEdBQWMsVUFBVUMsSUFBVixFQUFnQjtBQUMxQmxELHNCQUFjUyxLQUFkLEdBQXNCRSxRQUFRRixLQUE5QjtBQUNBWixpQkFBU0QsRUFBRWUsUUFBUUYsS0FBVixDQUFUOztBQUVBZCxjQUNLd0QsRUFETCxDQUNRLE9BRFIsRUFDaUJ4QyxRQUFRSCxNQUR6QixFQUNpQ0ssYUFEakMsRUFFS3NDLEVBRkwsQ0FFUW5DLElBQUlDLElBQUosQ0FBU1IsS0FBVCxDQUFlMkMsTUFBZixDQUFzQkMsYUFBdEIsRUFGUixFQUUrQ3JCLFVBRi9DOztBQUlBbEMsY0FDS3FELEVBREwsQ0FDUW5DLElBQUlDLElBQUosQ0FBU1IsS0FBVCxDQUFlMkMsTUFBZixDQUFzQkUsVUFBdEIsRUFEUixFQUM0Q3hCLGtCQUQ1Qzs7QUFHQW9CO0FBQ0gsS0FaRDs7QUFjQTtBQUNBLFdBQU8xRCxNQUFQO0FBQ0gsQ0E3SUwiLCJmaWxlIjoid2lkZ2V0cy9pbWFnZV9nYWxsZXJ5LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiBpbWFnZV9nYWxsZXJ5LmpzIDIwMTYtMDMtMDlcbiBHYW1iaW8gR21iSFxuIGh0dHA6Ly93d3cuZ2FtYmlvLmRlXG4gQ29weXJpZ2h0IChjKSAyMDE1IEdhbWJpbyBHbWJIXG4gUmVsZWFzZWQgdW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIChWZXJzaW9uIDIpXG4gW2h0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMi4wLmh0bWxdXG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqL1xuXG4vKipcbiAqIFdpZGdldCB0aGF0IG9wZW5zIHRoZSBnYWxsZXJ5IG1vZGFsIGxheWVyICh3aGljaCBpc1xuICogdXNlZCBmb3IgdGhlIGFydGljbGUgcGljdHVyZXMpXG4gKi9cbmdhbWJpby53aWRnZXRzLm1vZHVsZShcbiAgICAnaW1hZ2VfZ2FsbGVyeScsXG5cbiAgICBbXG4gICAgICAgIGdhbWJpby5zb3VyY2UgKyAnL2xpYnMvbW9kYWwuZXh0LW1hZ25pZmljJyxcbiAgICAgICAgZ2FtYmlvLnNvdXJjZSArICcvbGlicy9tb2RhbCcsXG4gICAgICAgIGdhbWJpby5zb3VyY2UgKyAnL2xpYnMvZXZlbnRzJyxcbiAgICAgICAgZ2FtYmlvLnNvdXJjZSArICcvbGlicy9yZXNwb25zaXZlJ1xuICAgIF0sXG5cbiAgICBmdW5jdGlvbiAoZGF0YSkge1xuXG4gICAgICAgICd1c2Ugc3RyaWN0JztcblxuLy8gIyMjIyMjIyMjIyBWQVJJQUJMRSBJTklUSUFMSVpBVElPTiAjIyMjIyMjIyMjXG5cbiAgICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSxcbiAgICAgICAgICAgICR0aGVtZSA9IG51bGwsXG4gICAgICAgICAgICAkYm9keSA9ICQoJ2JvZHknKSxcbiAgICAgICAgICAgIGxheWVyID0gbnVsbCxcbiAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTW9kYWwgbGF5ZXIgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgICAgIG5vdGhlbWU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHByZWxvYWRlcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjbG9zZU9uT3V0ZXI6IHRydWUsXG4gICAgICAgICAgICAgICAgZGlhbG9nQ2xhc3M6ICdwcm9kdWN0X2ltYWdlcycsXG4gICAgICAgICAgICAgICAgZ2FsbGVyeToge1xuICAgICAgICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlZmF1bHRzID0ge1xuICAgICAgICAgICAgICAgIHRhcmdldDogJy5zd2lwZXItc2xpZGUnLCAvLyBTZWxlY3RvciBmb3IgdGhlIGNsaWNrIGV2ZW50IGxpc3RlbmVyXG4gICAgICAgICAgICAgICAgdGhlbWU6ICcjcHJvZHVjdF9pbWFnZV9sYXllcicsIC8vIHRoZW1lIHRoYXQgaXMgdXNlZCBmb3IgdGhlIGxheWVyXG4gICAgICAgICAgICAgICAgYnJlYWtwb2ludDogNDAgLy8gTWF4aW11bSBicmVha3BvaW50IGZvciBtb2JpbGUgdmlldyBtb2RlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb3B0aW9ucyA9ICQuZXh0ZW5kKHRydWUsIHt9LCBkZWZhdWx0cywgZGF0YSksXG4gICAgICAgICAgICBtb2R1bGUgPSB7fTtcblxuLy8gIyMjIyMjIyMjIyBFVkVOVCBIQU5ETEVSICMjIyMjIyMjIyNcblxuICAgICAgICAvKipcbiAgICAgICAgICogQ2xpY2sgZXZlbnQgaGFuZGxlciB0aGF0IGNvbmZpZ3VyZXMgdGhlIHN3aXBlcihzKVxuICAgICAgICAgKiBpbnNpZGUgdGhlIGxheWVyIGFuZCBvcGVucyBpdCBhZnRlcndhcmRzXG4gICAgICAgICAqIEBwYXJhbSAgICAgICB7b2JqZWN0fSAgICBlICAgICAgIGpRdWVyeSBldmVudCBvYmplY3RcbiAgICAgICAgICogQHByaXZhdGVcbiAgICAgICAgICovXG4gICAgICAgIHZhciBfY2xpY2tIYW5kbGVyID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgLy8gT25seSBvcGVuIGluIGRlc2t0b3AgbW9kZVxuICAgICAgICAgICAgaWYgKGpzZS5saWJzLnRoZW1lLnJlc3BvbnNpdmUuYnJlYWtwb2ludCgpLmlkID4gb3B0aW9ucy5icmVha3BvaW50KSB7XG4gICAgICAgICAgICAgICAgdmFyICRzZWxmID0gJCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgJHN3aXBlciA9ICR0aGVtZS5maW5kKCdbZGF0YS1zd2lwZXItc2xpZGVyLW9wdGlvbnNdJyksXG4gICAgICAgICAgICAgICAgICAgIGRhdGFzZXQgPSAkc2VsZi5kYXRhKCksXG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID0gZGF0YXNldC5pbmRleCB8fCBkYXRhc2V0LnN3aXBlclNsaWRlSW5kZXggfHwgMDtcblxuICAgICAgICAgICAgICAgIC8vIExvb3AgdGhhdCByZXBsYWNlcyB0aGUgaW5pdGlhbCBzbGlkZSBvZlxuICAgICAgICAgICAgICAgIC8vIGVhY2ggc3dpcGVyIGluc2lkZSB0aGUgbGF5ZXJcbiAgICAgICAgICAgICAgICAkc3dpcGVyLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmF0dHIoJ2RhdGEtc3dpcGVyLWluaXQtc2xpZGUnLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAvLyBPcGVucyB0aGUgbW9kYWwgbGF5ZXJcbiAgICAgICAgICAgICAgICBsYXllciA9IGpzZS5saWJzLnRoZW1lLm1vZGFsLmN1c3RvbShjb25maWd1cmF0aW9uKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIYW5kbGVyIHdoaWNoIGNsb3NlcyBhbiBvcGVuZWQgZ2FsbGVyeSBpZiB0aGVcbiAgICAgICAgICogc2NyZWVuIHdpZHRoIGdldHMgdW5kZXIgdGhlIHNpemUgb2YgYW4gZGVza3RvcCBtb2RlXG4gICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgX2JyZWFrcG9pbnRIYW5kbGVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgaWYgKGpzZS5saWJzLnRoZW1lLnJlc3BvbnNpdmUuYnJlYWtwb2ludCgpLmlkIDw9IG9wdGlvbnMuYnJlYWtwb2ludCAmJiBsYXllcikge1xuICAgICAgICAgICAgICAgIGxheWVyLmNsb3NlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBFdmVudCBoYW5kbGVyIHRvIGFwcGVuZCAvIHJlbW92ZSBzbGlkZXMgZnJvbSB0aGVcbiAgICAgICAgICogZ2FsbGVyeSBsYXllciBzd2lwZXJzXG4gICAgICAgICAqIEBwYXJhbSAgICAgICB7b2JqZWN0fSAgICAgICAgZSAgICAgICAgICAgalF1ZXJ5IGV2ZW50IG9iamVjdFxuICAgICAgICAgKiBAcGFyYW0gICAgICAge29iamVjdH0gICAgICAgIGQgICAgICAgICAgIEpTT04gZGF0YSBvZiB0aGUgaW1hZ2VzXG4gICAgICAgICAqIEBwcml2YXRlXG4gICAgICAgICAqL1xuICAgICAgICB2YXIgX2FkZFNsaWRlcyA9IGZ1bmN0aW9uIChlLCBkKSB7XG5cbiAgICAgICAgICAgIC8vIExvb3BzIHRocm91Z2ggYWxsIHN3aXBlcnMgaW5zaWRlIHRoZSBsYXllclxuICAgICAgICAgICAgJHRoZW1lXG4gICAgICAgICAgICAgICAgLmZpbmQoJy5zd2lwZXItY29udGFpbmVyIHRoZW1lJylcbiAgICAgICAgICAgICAgICAuZWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciAkdHBsID0gJCh0aGlzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICRzbGlkZUNvbnRhaW5lciA9ICR0cGwuc2libGluZ3MoJy5zd2lwZXItd3JhcHBlcicpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIExvb3BzIHRocm91Z2ggZWFjaCBjYXRlZ29yeSBpbnNpZGUgdGhlIGltYWdlcyBhcnJheVxuICAgICAgICAgICAgICAgICAgICAkLmVhY2goZCwgZnVuY3Rpb24gKGNhdGVnb3J5LCBkYXRhc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2F0TmFtZSA9IGNhdGVnb3J5ICsgJy1jYXRlZ29yeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkID0gJycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya3VwID0gJHRwbC5odG1sKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdlbmVyYXRlIHRoZSBtYXJrdXAgZm9yIHRoZSBuZXcgc2xpZGVzXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBhbmQgcmVwbGFjZSB0aGUgb2xkIGltYWdlcyBvZiB0aGF0IGNhdGVnb3J5XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBlaXRoIHRoZSBuZXcgb25lc1xuICAgICAgICAgICAgICAgICAgICAgICAgJC5lYWNoKGRhdGFzZXQgfHwgW10sIGZ1bmN0aW9uIChpLCB2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5jbGFzc05hbWUgPSBjYXROYW1lO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZCArPSBNdXN0YWNoZS5yZW5kZXIobWFya3VwLCB2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAkc2xpZGVDb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZCgnLicgKyBjYXROYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5yZW1vdmUoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgJHNsaWRlQ29udGFpbmVyLmFwcGVuZChhZGQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuXG4vLyAjIyMjIyMjIyMjIElOSVRJQUxJWkFUSU9OICMjIyMjIyMjIyNcblxuICAgICAgICAvKipcbiAgICAgICAgICogSW5pdCBmdW5jdGlvbiBvZiB0aGUgd2lkZ2V0XG4gICAgICAgICAqXG4gICAgICAgICAqIEBjb25zdHJ1Y3RvclxuICAgICAgICAgKi9cbiAgICAgICAgbW9kdWxlLmluaXQgPSBmdW5jdGlvbiAoZG9uZSkge1xuICAgICAgICAgICAgY29uZmlndXJhdGlvbi50aGVtZSA9IG9wdGlvbnMudGhlbWU7XG4gICAgICAgICAgICAkdGhlbWUgPSAkKG9wdGlvbnMudGhlbWUpO1xuXG4gICAgICAgICAgICAkdGhpc1xuICAgICAgICAgICAgICAgIC5vbignY2xpY2snLCBvcHRpb25zLnRhcmdldCwgX2NsaWNrSGFuZGxlcilcbiAgICAgICAgICAgICAgICAub24oanNlLmxpYnMudGhlbWUuZXZlbnRzLlNMSURFU19VUERBVEUoKSwgX2FkZFNsaWRlcyk7XG5cbiAgICAgICAgICAgICRib2R5XG4gICAgICAgICAgICAgICAgLm9uKGpzZS5saWJzLnRoZW1lLmV2ZW50cy5CUkVBS1BPSU5UKCksIF9icmVha3BvaW50SGFuZGxlcik7XG5cbiAgICAgICAgICAgIGRvbmUoKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBSZXR1cm4gZGF0YSB0byB3aWRnZXQgZW5naW5lXG4gICAgICAgIHJldHVybiBtb2R1bGU7XG4gICAgfSk7XG4iXX0=

Youez - 2016 - github.com/yon3zu
LinuXploit