text:
/*
 * IMPORTANT: This is a private module, its API must not be used and is subject to change.
 * Code other than the OpenUI5 libraries must not introduce dependencies to this module.
 */
sap.ui.define([
	'sap/base/Version',
	'sap/base/events/PseudoEvents',
	'sap/base/events/checkMouseEnterOrLeave',
	'sap/ui/events/ControlEvents',
	'sap/ui/Device',
	'sap/ui/events/MapTouchToMouse',
	'sap/ui/thirdparty/jquery',
	'sap/ui/thirdparty/jquery-mobile-custom',
	'sap/ui/dom/jquery/control',
	'sap/ui/events/jqueryEvent'
], function(Version, PseudoEvents, checkMouseEnterOrLeave, ControlEvents, Device, MapTouchToMouse, jQuery /*, jQueryMobile, control, jqueryEvent*/) {
	"use strict";

	/**
	 * @exports sap/ui/events/EventSimulation
	 * @private
	 */
	var oEventSimulation = {};

	oEventSimulation.aAdditionalControlEvents = [];
	oEventSimulation.aAdditionalPseudoEvents = [];

	/**
	 * This function adds the simulated event prefixed with string "sap" to ControlEvents.events.
	 *
	 * When UIArea binds to the simulated event with prefix, it internally binds to the original events with the given handler and
	 * also provides the additional configuration data in the follwing format:
	 *
	 * {
	 * 	domRef: // the dom reference of the UIArea
	 * 	eventName: // the simulated event name
	 * 	sapEventName: // the simulated event name with sap prefix
	 * 	eventHandle: // the handler that should be registered to simulated event with sap prefix
	 * }
	 *
	 * @param {string} sSimEventName The name of the simulated event
	 * @param {array} aOrigEvents The array of original events that should be simulated from
	 * @param {function} fnHandler The function which is bound to the original events
	 * @private
	 */
	oEventSimulation._createSimulatedEvent = function(sSimEventName, aOrigEvents, fnHandler) {
		var sHandlerKey = "__" + sSimEventName + "Handler";
		var sSapSimEventName = "sap" + sSimEventName;
		this.aAdditionalControlEvents.push(sSapSimEventName);
		this.aAdditionalPseudoEvents.push({
			sName: sSimEventName,
			aTypes: [sSapSimEventName],
			fnCheck: function(oEvent) {
				return true;
			}
		});

		jQuery.event.special[sSapSimEventName] = {
			// When binding to the simulated event with prefix is done through jQuery, this function is called and redirect the registration
			// to the original events. Doing in this way we can simulate the event from listening to the original events.
			add: function(oHandle) {
				var that = this,
					$this = jQuery(this),
					oAdditionalConfig = {
						domRef: that,
						eventName: sSimEventName,
						sapEventName: sSapSimEventName,
						eventHandle: oHandle
					};

				var fnHandlerWrapper = function(oEvent) {
					fnHandler(oEvent, oAdditionalConfig);
				};

				oHandle.__sapSimulatedEventHandler = fnHandlerWrapper;
				for (var i = 0; i < aOrigEvents.length; i++) {
					$this.on(aOrigEvents[i], fnHandlerWrapper);
				}
			},

			// When unbinding to the simulated event with prefix is done through jQuery, this function is called and redirect the deregistration
			// to the original events.
			remove: function(oHandle) {
				var $this = jQuery(this);
				var fnHandler = oHandle.__sapSimulatedEventHandler;
				$this.removeData(sHandlerKey + oHandle.guid);
				for (var i = 0; i < aOrigEvents.length; i++) {
					jQuery.event.remove(this, aOrigEvents[i], fnHandler);
				}
			}
		};
	};

	/**
	 * This function simulates the corresponding touch event by listening to mouse event.
	 *
	 * The simulated event will be dispatch through UI5 event delegation which means that the on"EventName" function is called
	 * on control's prototype.
	 *
	 * @param {jQuery.Event} oEvent The original event object
	 * @param {object} oConfig Additional configuration passed from createSimulatedEvent function
	 * @private
	 */
	oEventSimulation._fnMouseToTouchHandler = function(oEvent, oConfig) {
		var $DomRef = jQuery(oConfig.domRef);
		// Suppress the delayed mouse events simulated on touch enabled device
		// the mark is done within jquery-mobile-custom.js
		if (oEvent.isMarked("delayedMouseEvent")) {
			return;
		}

		// Checks if the mouseout event should be handled, the mouseout of the inner dom shouldn't be handled when the mouse cursor
		// is still inside the control's root dom node
		if (!(oEvent.type != "mouseout" || (oEvent.type === "mouseout" && checkMouseEnterOrLeave(oEvent, oConfig.domRef)))) {
			var bSkip = true;
			var sControlId = $DomRef.data("__touchstart_control");
			if (sControlId) {
				var oCtrlDom = window.document.getElementById(sControlId);
				if (oCtrlDom && checkMouseEnterOrLeave(oEvent, oCtrlDom)) {
					bSkip = false;
				}
			}
			if (bSkip) {
				return;
			}
		}

		var oNewEvent = jQuery.event.fix(oEvent.originalEvent || oEvent);
		oNewEvent.type = oConfig.sapEventName;

		//reset the _sapui_handledByUIArea flag
		if (oNewEvent.isMarked("firstUIArea")) {
			oNewEvent.setMark("handledByUIArea", false);
		}

		var aTouches = [{
			identifier: 1,
			pageX: oNewEvent.pageX,
			pageY: oNewEvent.pageY,
			clientX: oNewEvent.clientX,
			clientY: oNewEvent.clientY,
			screenX: oNewEvent.screenX,
			screenY: oNewEvent.screenY,
			target: oNewEvent.target,
			radiusX: 1,
			radiusY: 1,
			rotationAngle: 0
		}];

		switch (oConfig.eventName) {
			case "touchstart":
			case "touchmove":
				oNewEvent.touches = oNewEvent.changedTouches = oNewEvent.targetTouches = aTouches;
				break;

			case "touchend":
				oNewEvent.changedTouches = aTouches;
				oNewEvent.touches = oNewEvent.targetTouches = [];
				break;
			// no default
		}

		if (oConfig.eventName === "touchstart" || $DomRef.data("__touch_in_progress")) {
			$DomRef.data("__touch_in_progress", "X");
			var oControl = jQuery.fn.control ? jQuery(oEvent.target).control(0) : null;
			if (oControl) {
				$DomRef.data("__touchstart_control", oControl.getId());
			}

			// When saptouchend event is generated from mouseout event, it has to be marked for being correctly handled inside UIArea.
			// for example, when sap.m.Image control is used inside sap.m.Button control, the following situation can happen:
			// 	1. Mousedown on image.
			// 	2. Keep mousedown and move mouse out of image.
			// 	3. ontouchend function will be called on image control and bubbled up to button control
			// 	4. However, the ontouchend function shouldn't be called on button.
			//
			// With this parameter, UIArea can check if the touchend is generated from mouseout event and check if the target is still
			// inside the current target. Executing the corresponding logic only when the target is out of the current target.
			if (oEvent.type === "mouseout") {
				oNewEvent.setMarked("fromMouseout");
			}

			// dragstart event is only used to determine when to stop the touch process and shouldn't trigger any event
			if (oEvent.type !== "dragstart") {
				oConfig.eventHandle.handler.call(oConfig.domRef, oNewEvent);
			}

			// here the fromMouseout flag is checked, terminate the touch progress when the native event is dragstart or touchend event
			// is not marked with fromMouseout.
			if ((oConfig.eventName === "touchend" || oEvent.type === "dragstart") && !oNewEvent.isMarked("fromMouseout")) {
				$DomRef.removeData("__touch_in_progress");
				$DomRef.removeData("__touchstart_control");
			}
		}
	};

	// Simulate touch events on NOT delayed mouse events (delayed mouse
	// events are filtered out in fnMouseToTouchHandler)
	oEventSimulation._initTouchEventSimulation = function() {
		this._createSimulatedEvent("touchstart", ["mousedown"], this._fnMouseToTouchHandler);
		this._createSimulatedEvent("touchend", ["mouseup", "mouseout"], this._fnMouseToTouchHandler);
		// Browser doesn't fire any mouse event after dragstart, so we need to listen to dragstart to cancel the current touch process in order
		// to correctly stop firing the touchmove event
		this._createSimulatedEvent("touchmove", ["mousemove", "dragstart"], this._fnMouseToTouchHandler);
	};

	// polyfill for iOS context menu event (mapped to taphold)
	oEventSimulation._initContextMenuSimulation = function() {
		//map the taphold event to contextmenu event
		var fnSimulatedFunction = function(oEvent, oConfig) {
			var oNewEvent = jQuery.event.fix(oEvent.originalEvent || oEvent);
			oNewEvent.type = oConfig.sapEventName;

			// The original handler is called only when there's no text selected
			if (!window.getSelection || !window.getSelection() || window.getSelection().toString() === "") {
				oConfig.eventHandle.handler.call(oConfig.domRef, oNewEvent);
			}
		};
		this._createSimulatedEvent("contextmenu", ["taphold"], fnSimulatedFunction);
	};

	// Simulate mouse events on browsers firing touch events
	oEventSimulation._initMouseEventSimulation = function(bBlackberryDevice) {

		var bFingerIsMoved = false,
			iMoveThreshold = jQuery.vmouse.moveDistanceThreshold,
			iStartX, iStartY,
			iOffsetX, iOffsetY,
			iLastTouchMoveTime;

		var fnCreateNewEvent = function(oEvent, oConfig, oMappedEvent) {
			var oNewEvent = jQuery.event.fix(oEvent.originalEvent || oEvent);
			oNewEvent.type = oConfig.sapEventName;

			delete oNewEvent.touches;
			delete oNewEvent.changedTouches;
			delete oNewEvent.targetTouches;

			//TODO: add other properties that should be copied to the new event
			oNewEvent.screenX = oMappedEvent.screenX;
			oNewEvent.screenY = oMappedEvent.screenY;
			oNewEvent.clientX = oMappedEvent.clientX;
			oNewEvent.clientY = oMappedEvent.clientY;
			oNewEvent.ctrlKey = oMappedEvent.ctrlKey;
			oNewEvent.altKey = oMappedEvent.altKey;
			oNewEvent.shiftKey = oMappedEvent.shiftKey;
			// The simulated mouse event should always be clicked by the left key of the mouse
			oNewEvent.button = 0;

			return oNewEvent;
		};

		/**
		 * This function simulates the corresponding mouse event by listening to touch event (touchmove).
		 *
		 * The simulated event will be dispatch through UI5 event delegation which means that the on"EventName" function is called
		 * on control's prototype.
		 *
		 * @param {jQuery.Event} oEvent The original event object
		 * @param {object} oConfig Additional configuration passed from createSimulatedEvent function
		 */
		var fnTouchMoveToMouseHandler = function(oEvent, oConfig) {
			if (oEvent.isMarked("handledByTouchToMouse")) {
				return;
			}
			oEvent.setMarked("handledByTouchToMouse");

			if (!bFingerIsMoved) {
				var oTouch = oEvent.originalEvent.touches[0];
				bFingerIsMoved = (Math.abs(oTouch.pageX - iStartX) > iMoveThreshold ||
					Math.abs(oTouch.pageY - iStartY) > iMoveThreshold);
			}

			if (bBlackberryDevice) {
				//Blackberry sends many touchmoves -> create a simulated mousemove every 50ms
				if (iLastTouchMoveTime && oEvent.timeStamp - iLastTouchMoveTime < 50) {
					return;
				}
				iLastTouchMoveTime = oEvent.timeStamp;
			}

			var oNewEvent = fnCreateNewEvent(oEvent, oConfig, oEvent.touches[0]);

			setTimeout(function() {
				oNewEvent.setMark("handledByUIArea", false);
				oConfig.eventHandle.handler.call(oConfig.domRef, oNewEvent);
			}, 0);
		};

		/**
		 * This function simulates the corresponding mouse event by listening to touch event (touchstart, touchend, touchcancel).
		 *
		 * The simulated event will be dispatch through UI5 event delegation which means that the on"EventName" function is called
		 * on control's prototype.
		 *
		 * @param {jQuery.Event} oEvent The original event object
		 * @param {object} oConfig Additional configuration passed from createSimulatedEvent function
		 */
		var fnTouchToMouseHandler = function(oEvent, oConfig) {
			if (oEvent.isMarked("handledByTouchToMouse")) {
				return;
			}
			oEvent.setMarked("handledByTouchToMouse");

			var oNewStartEvent, oNewEndEvent, bSimulateClick;

			function createNewEvent() {
				return fnCreateNewEvent(oEvent, oConfig, oConfig.eventName === "mouseup" ? oEvent.changedTouches[0] : oEvent.touches[0]);
			}

			if (oEvent.type === "touchstart") {

				var oTouch = oEvent.originalEvent.touches[0];
				bFingerIsMoved = false;
				iLastTouchMoveTime = 0;
				iStartX = oTouch.pageX;
				iStartY = oTouch.pageY;
				iOffsetX = Math.round(oTouch.pageX - jQuery(oEvent.target).offset().left);
				iOffsetY = Math.round(oTouch.pageY - jQuery(oEvent.target).offset().top);

				oNewStartEvent = createNewEvent();
				setTimeout(function() {
					oNewStartEvent.setMark("handledByUIArea", false);
					oConfig.eventHandle.handler.call(oConfig.domRef, oNewStartEvent);
				}, 0);
			} else if (oEvent.type === "touchend") {
				oNewEndEvent = createNewEvent();
				bSimulateClick = !bFingerIsMoved;

				setTimeout(function() {
					oNewEndEvent.setMark("handledByUIArea", false);
					oConfig.eventHandle.handler.call(oConfig.domRef, oNewEndEvent);
					if (bSimulateClick) {
						// also call the onclick event handler when touchend event is received and the movement is within threshold
						oNewEndEvent.type = "click";
						oNewEndEvent.getPseudoTypes = jQuery.Event.prototype.getPseudoTypes; //Reset the pseudo types due to type change
						oNewEndEvent.setMark("handledByUIArea", false);
						oNewEndEvent.offsetX = iOffsetX; // use offset from touchstart
						oNewEndEvent.offsetY = iOffsetY; // use offset from touchstart
						oConfig.eventHandle.handler.call(oConfig.domRef, oNewEndEvent);
					}
				}, 0);
			}
		};
		this._createSimulatedEvent("mousedown", ["touchstart"], fnTouchToMouseHandler);
		this._createSimulatedEvent("mousemove", ["touchmove"], fnTouchMoveToMouseHandler);
		this._createSimulatedEvent("mouseup", ["touchend", "touchcancel"], fnTouchToMouseHandler);
	};

	oEventSimulation._init = function(aEvents) {
		// Define additional jQuery Mobile events to be added to the event list
		// TODO taphold cannot be used (does not bubble / has no target property) -> Maybe provide own solution
		// IMPORTANT: update the public documentation when extending this list
		this.aAdditionalControlEvents.push("swipe", "tap", "swipeleft", "swiperight", "scrollstart", "scrollstop");
		//Define additional pseudo events to be added to the event list
		this.aAdditionalPseudoEvents.push({
			sName: "swipebegin", aTypes: ["swipeleft", "swiperight"], fnCheck: function(oEvent) {
				var bRtl = sap.ui.getCore().getConfiguration().getRTL();
				return (bRtl && oEvent.type === "swiperight") || (!bRtl && oEvent.type === "swipeleft");
			}
		});
		this.aAdditionalPseudoEvents.push({
			sName: "swipeend", aTypes: ["swipeleft", "swiperight"], fnCheck: function(oEvent) {
				var bRtl = sap.ui.getCore().getConfiguration().getRTL();
				return (!bRtl && oEvent.type === "swiperight") || (bRtl && oEvent.type === "swipeleft");
			}
		});
		// Add all defined events to the event infrastructure
		//
		// jQuery has inversed the order of event registration when multiple events are passed into jQuery.on method from version 1.9.1.
		//
		// UIArea binds to both touchstart and saptouchstart event and saptouchstart internally also binds to touchstart event. Before
		// jQuery version 1.9.1, the touchstart event handler is called before the saptouchstart event handler and our flags (e.g. _sapui_handledByUIArea)
		// still work. However since the order of event registration is inversed from jQuery version 1.9.1, the saptouchstart event hanlder is called
		// before the touchstart one, our flags don't work anymore.
		//
		// Therefore jQuery version needs to be checked in order to decide the event order in ControlEvents.events.
		if (Version(jQuery.fn.jquery).compareTo("1.9.1") < 0) {
			aEvents = aEvents.concat(this.aAdditionalControlEvents);
		} else {
			aEvents = this.aAdditionalControlEvents.concat(aEvents);
		}

		for (var i = 0; i < this.aAdditionalPseudoEvents.length; i++) {
			PseudoEvents.addEvent(this.aAdditionalPseudoEvents[i]);
		}
		return aEvents;
	};

	if (Device.browser.webkit && /Mobile/.test(navigator.userAgent) && Device.support.touch) {
		MapTouchToMouse.init(window.document);
		oEventSimulation.disableTouchToMouseHandling = MapTouchToMouse.disableTouchToMouseHandling;
	}

	if (!oEventSimulation.disableTouchToMouseHandling) {
		oEventSimulation.disableTouchToMouseHandling = jQuery.noop;
	}

	// touch events natively supported
	if (Device.support.touch) {

		// Define additional native events to be added to the event list.
		// TODO: maybe add "gesturestart", "gesturechange", "gestureend" later?
		ControlEvents.events.push("touchstart", "touchend", "touchmove", "touchcancel");
	}

	//Add mobile touch events if touch is supported
	(function initTouchEventSupport() {
		oEventSimulation.touchEventMode = "SIM";

		if (Device.support.touch) { // touch events natively supported
			oEventSimulation.touchEventMode = "ON";

			// ensure that "oEvent.touches", ... works (and not only "oEvent.originalEvent.touches", ...)
			jQuery.event.props.push("touches", "targetTouches", "changedTouches");
		}

		// Windows Phone (<10) doesn't need event emulation because IE supports
		// touch events but fires mouse events based on pointer events without
		// delay.
		// In Edge on Windows Phone 10 the mouse events are delayed like in
		// other browsers

		var bEmulationNeeded = !(Device.os.windows_phone && Device.os.version < 10);

		if (bEmulationNeeded) {
			oEventSimulation._initTouchEventSimulation();
		}

		// polyfill for iOS context menu event (mapped to taphold)
		if (Device.os.ios) {
			oEventSimulation._initContextMenuSimulation();
		}

		if (Device.support.touch && bEmulationNeeded) {
			// Deregister the previous touch to mouse event simulation (see line 25 in this file)
			oEventSimulation.disableTouchToMouseHandling();
			oEventSimulation._initMouseEventSimulation(Device.os.blackberry);
		}
		ControlEvents.events = oEventSimulation._init(ControlEvents.events);
	}());

	return oEventSimulation;

});


text:
using Newtonsoft.Json;
using System;
namespace SuperMap.WindowsPhone.REST
{
    ///
    /// 	<para>${WP_REST_Datum_Title}</para>
    /// 	<para>${WP_REST_Datum_Description}</para>
    ///
    public class Datum
    {
        /// ${WP_REST_Datum_constructor_D}
        public Datum()
        { }
        /// ${WP_REST_Datum_attribute_Name_D}
        [JsonProperty("name")]
        public string Name { get; set; }
        /// ${WP_REST_Datum_attribute_Type_D}
        [JsonProperty("type")]
        public DatumType Type { get; set; }
        /// ${WP_REST_Datum_attribute_Spheroid_D}
        [JsonProperty("spheroid")]
        public Spheroid Spheroid { get; set; }

    }
}

redpajama_set_name: RedPajamaGithub


text:
---
uid: SolidEdgeDraft.Table.Titles
summary: This read-only String property collects all titles in the generic Table object.
remarks:
---


text:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.balanceball" >

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <uses-feature android:glEsVersion="0x00020000" android:required="true" />
    <uses-feature android:name="android.hardware.sensor.compass" android:required="true" />
    <uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/GdxTheme" >

        <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
        <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

        <activity
            android:name="com.balanceball.AndroidLauncher"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


text:
<?xml version="1.0" ?><para version="5.0" xml:lang="zh" xmlns="http://docbook.org/ns/docbook">

Description of HP MSA Fiber Channel driver configuration options

    <col width="50%"/>
    <col width="50%"/>

        Configuration option = Default value
        描述

        [DEFAULT]

        <option>msa_vdisk</option> = <replaceable>OpenStack</replaceable>
        (StrOpt) The VDisk to use for volume creation.

</para>


text:
<?php echo Form::open(array("class"=>"form-horizontal")); ?>

	<fieldset>

			<?php echo Form::label('Description', 'description', array('class'=>'control-label')); ?>

				<?php echo Form::input('description', Input::post('description', isset($product) ? $product->description : ''), array('class' => 'col-md-4 form-control', 'placeholder'=>'Description')); ?>

			<?php echo Form::label('Barcode', 'barcode', array('class'=>'control-label')); ?>

				<?php echo Form::input('barcode', Input::post('barcode', isset($product) ? $product->barcode : ''), array('class' => 'col-md-4 form-control', 'placeholder'=>'Barcode')); ?>

			<?php echo Form::label('Short code', 'short_code', array('class'=>'control-label')); ?>

				<?php echo Form::input('short_code', Input::post('short_code', isset($product) ? $product->short_code : ''), array('class' => 'col-md-4 form-control', 'placeholder'=>'Short code')); ?>

			<?php echo Form::label('Cost price', 'cost_price', array('class'=>'control-label')); ?>

				<?php echo Form::input('cost_price', Input::post('cost_price', isset($product) ? $product->cost_price : ''), array('class' => 'col-md-4 form-control', 'placeholder'=>'Cost price')); ?>

			<?php echo Form::label('Retail price', 'retail_price', array('class'=>'control-label')); ?>

				<?php echo Form::input('retail_price', Input::post('retail_price', isset($product) ? $product->retail_price : ''), array('class' => 'col-md-4 form-control', 'placeholder'=>'Retail price')); ?>

			<?php echo Form::label('Is taxable', 'is_taxable', array('class'=>'control-label')); ?>

				<?php echo Form::input('is_taxable', Input::post('is_taxable', isset($product) ? $product->is_taxable : ''), array('class' => 'col-md-4 form-control', 'placeholder'=>'Is taxable')); ?>

			<?php echo Form::label('Discontinued', 'discontinued', array('class'=>'control-label')); ?>

				<?php echo Form::input('discontinued', Input::post('discontinued', isset($product) ? $product->discontinued : ''), array('class' => 'col-md-4 form-control', 'placeholder'=>'Discontinued')); ?>

			<?php echo Form::label('Picture', 'picture', array('class'=>'control-label')); ?>

				<?php echo Form::textarea('picture', Input::post('picture', isset($product) ? $product->picture : ''), array('class' => 'col-md-8 form-control', 'rows' => 8, 'placeholder'=>'Picture')); ?>

			<?php echo Form::label('Product details', 'product_details', array('class'=>'control-label')); ?>

				<?php echo Form::textarea('product_details', Input::post('product_details', isset($product) ? $product->product_details : ''), array('class' => 'col-md-8 form-control', 'rows' => 8, 'placeholder'=>'Product details')); ?>

			<?php echo Form::submit('submit', 'Save', array('class' => 'btn btn-primary')); ?>

	</fieldset>
<?php echo Form::close(); ?>


text:
<?php

namespace Kurt\Repoist\Commands;

use Illuminate\Support\Facades\Artisan;

class MakeRepositoryCommand extends RepoistCommand
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'make:repository {model}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Create a new repository';

    /**
     * Stub paths.
     *
     * @var array
     */
    protected $stubs = [
        'contract'   => __DIR__.'/../stubs/Contracts/ExampleRepository.php',
        'repository' => __DIR__.'/../stubs/Eloquent/EloquentExampleRepository.php',
    ];

    /**
     * Model with full namespace.
     *
     * @var string
     */
    protected $model;

    /**
     * Model class name.
     *
     * @var string
     */
    protected $modelName;

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {

        $this->checkModel();

        list($contract, $contractName) = $this->createContract();

        $this->createRepository($contract, $contractName);
    }

    /**
     * Create a new contract
     */
    protected function createContract()
    {
        $content = $this->fileManager->get($this->stubs['contract']);

        $replacements = [
            '%namespaces.contracts%' => $this->appNamespace.$this->config('namespaces.contracts'),
            '%modelName%'            => $this->modelName,
        ];

        $content = str_replace(array_keys($replacements), array_values($replacements), $content);

        $fileName      = $this->modelName.'Repository';
        $fileDirectory = app()->basePath().'/app/'.$this->config('paths.contracts');
        $filePath      = $fileDirectory.$fileName.'.php';

        if (!$this->fileManager->exists($fileDirectory)) {
            $this->fileManager->makeDirectory($fileDirectory, 0755, true);
        }

        if ($this->laravel->runningInConsole() && $this->fileManager->exists($filePath)) {
            $response = $this->ask("The contract [{$fileName}] already exists. Do you want to overwrite it?", 'Yes');

            if (!$this->isResponsePositive($response)) {
                $this->line("The contract [{$fileName}] will not be overwritten.");
                return;
            }

            $this->fileManager->put($filePath, $content);
        } else {
            $this->fileManager->put($filePath, $content);
        }

        $this->line("The contract [{$fileName}] has been created.");

        return [$this->config('namespaces.contracts').'\\'.$fileName, $fileName];
    }

    /**
     * Create a new repository
     */
    protected function createRepository($contract, $contractName)
    {
        $content = $this->fileManager->get($this->stubs['repository']);

        $replacements = [
            '%contract%'                => $this->appNamespace.$contract,
            '%contractName%'            => $contractName,
            '%model%'                   => $this->model,
            '%modelName%'               => $this->modelName,
            '%namespaces.repositories%' => $this->appNamespace.$this->config('namespaces.repositories'),
        ];

        $content = str_replace(array_keys($replacements), array_values($replacements), $content);

        $fileName      = 'Eloquent'.$this->modelName.'Repository';
        $fileDirectory = app()->basePath().'/app/'.$this->config('paths.repositories');
        $filePath      = $fileDirectory.$fileName.'.php';

        // Check if the directory exists, if not create...
        if (!$this->fileManager->exists($fileDirectory)) {
            $this->fileManager->makeDirectory($fileDirectory, 0755, true);
        }

        if ($this->laravel->runningInConsole() && $this->fileManager->exists($filePath)) {
            $response = $this->ask("The repository [{$fileName}] already exists. Do you want to overwrite it?", 'Yes');

            if (!$this->isResponsePositive($response)) {
                $this->line("The repository [{$fileName}] will not be overwritten.");
                return;
            }
        }

        $this->line("The repository [{$fileName}] has been created.");

        $this->fileManager->put($filePath, $content);
    }

    /**
     * Check the models existance, create if wanted.
     */
    protected function checkModel()
    {
        $model = $this->appNamespace.$this->argument('model');

        $this->model = str_replace('/', '\\', $model);

        if (!$this->isLumen() && $this->laravel->runningInConsole()) {
            if (!class_exists($this->model)) {
                $response = $this->ask("Model [{$this->model}] does not exist. Would you like to create it?", 'Yes');

                if ($this->isResponsePositive($response)) {
                    Artisan::call('make:model', [
                        'name' => $this->model,
                    ]);

                    $this->line("Model [{$this->model}] has been successfully created.");
                } else {
                    $this->line("Model [{$this->model}] is not being created.");
                }
            }
        }

        $modelParts = explode('\\', $this->model);

        $this->modelName = array_pop($modelParts);
    }

    protected function isLumen()
    {
        return str_contains(app()->version(), 'Lumen');
    }
}


text:
vti_encoding:SR|utf8-nl
vti_timelastmodified:TR|28 Aug 2018 06:27:00 -0000
vti_extenderversion:SR|6.0.2.8161
vti_author:SR|KOC-T470S\\zszth
vti_modifiedby:SR|KOC-T470S\\zszth
vti_timecreated:TR|26 Nov 2017 11:06:36 -0000
vti_backlinkinfo:VX|design.html
vti_nexttolasttimemodified:TW|28 Aug 2018 06:26:42 -0000
vti_title:SR|網頁設計要義
vti_cacheddtm:TX|28 Aug 2018 06:27:00 -0000
vti_filesize:IR|335
vti_cachedtitle:SR|網頁設計要義
vti_cachedbodystyle:SR|<body bgcolor="#000000">
vti_cachedlinkinfo:VX|H|index.html S|design.gif K|design.html
vti_cachedsvcrellinks:VX|FHUS|index.html FSUS|design.gif FKUS|design.html
vti_cachedneedsrewrite:BR|false
vti_cachedhasbots:BR|false
vti_cachedhastheme:BR|false
vti_cachedhasborder:BR|false
vti_metatags:VR|HTTP-EQUIV=Content-Type text/html;\\ charset=utf-8
vti_charset:SR|utf-8


text:
package org.mmtk.utility;

import org.mmtk.utility.gcspy.drivers.AbstractDriver;

import org.mmtk.vm.Lock;
import org.mmtk.vm.VM;

import org.vmmagic.pragma.*;
import org.vmmagic.unboxed.*;

/**
 * FIXME This class must be re-written as it makes the assumption that
 * the implementation language (Java) and the language being
 * implemented are the same.  This is true in the case of Jikes RVM,
 * but it is not true for any VM implementing a language other than
 * Java.
 *
 *
 * Each instance of this class is a doubly-linked list, in which
 * each item or node is a piece of memory.  The first two words of each node
 * contains the forward and backward links.  The third word contains
 * the treadmill.  The remaining portion is the payload.
 *
 * The treadmill object itself must not be moved.
 *
 * Access to the instances may be synchronized depending on the
 * constructor argument.
 */
@Uninterruptible public final class DoublyLinkedList implements Constants {

  /****************************************************************************
   *
   * Class variables
   */

  /****************************************************************************
   *
   * Instance variables
   */
  private Address head;
  private final Lock lock;
  private final int logGranularity;  // Each node on the treadmill is guaranteed to be a multiple of granularity.

  /****************************************************************************
   *
   * Instance Methods
   */

  /**
   * Constructor
   */
  public DoublyLinkedList(int logGranularity, boolean shared) {
    head = Address.zero();
    lock = shared ? VM.newLock("DoublyLinkedList") : null;
    this.logGranularity = logGranularity;

    // ensure that granularity is big enough for midPayloadToNode to work
    Word tmp = Word.one().lsh(logGranularity);
    if (VM.VERIFY_ASSERTIONS) VM.assertions._assert(tmp.and(nodeMask).EQ(tmp));
  }

  // Offsets are relative to the node (not the payload)
  //
  private static final Offset PREV_OFFSET = Offset.fromIntSignExtend(0 * BYTES_IN_ADDRESS);
  private static Offset NEXT_OFFSET = Offset.fromIntSignExtend(1 * BYTES_IN_ADDRESS);
  private static Offset HEADER_SIZE = Offset.fromIntSignExtend(2 * BYTES_IN_ADDRESS);

  private static final Word nodeMask;
  static {
    Word mask = Word.one();
    while (mask.LE(HEADER_SIZE.plus(MAX_BYTES_PADDING).toWord())) mask = mask.lsh(1);
    nodeMask = mask.minus(Word.one()).not();
  }

  @Inline
  public static int headerSize() {
    return HEADER_SIZE.toInt();
  }

  public boolean isNode(Address node) {
    return node.toWord().rshl(logGranularity).lsh(logGranularity).EQ(node.toWord());
  }

  @Inline
  public static Address nodeToPayload(Address node) {
    return node.plus(HEADER_SIZE);
  }

  @Inline
  public static Address payloadToNode(Address payload) {
    return payload.minus(HEADER_SIZE);
  }

  @Inline
  public static Address midPayloadToNode(Address payload) {
    // This method words as long as you are less than MAX_BYTES_PADDING into the payload.
    return payload.toWord().and(nodeMask).toAddress();
  }

  @Inline
  public void add(Address node) {
    if (VM.VERIFY_ASSERTIONS) VM.assertions._assert(isNode(node));
    if (lock != null) lock.acquire();
    node.store(Address.zero(), PREV_OFFSET);
    node.store(head, NEXT_OFFSET);
    if (!head.isZero())
      head.store(node, PREV_OFFSET);
    head = node;
    if (lock != null) lock.release();
  }

  @Inline
  public void remove(Address node) {
    if (VM.VERIFY_ASSERTIONS) VM.assertions._assert(isNode(node));
    if (lock != null) lock.acquire();
    Address prev = node.loadAddress(PREV_OFFSET);
    Address next = node.loadAddress(NEXT_OFFSET);
    // Splice the node out of the list
    if (!next.isZero())
      next.store(prev, PREV_OFFSET);
    if (prev.isZero())
      head = next;
    else
      prev.store(next, NEXT_OFFSET);
    // Null out node's reference to the list
    node.store(Address.zero(), PREV_OFFSET);
    node.store(Address.zero(), NEXT_OFFSET);
    if (lock != null) lock.release();
  }

  @Inline
  public Address getHead() {
    return head;
  }

  @Inline
  public Address getNext(Address node) {
    return node.loadAddress(NEXT_OFFSET);
  }

  @Inline
  public Address pop() {
    Address first = head;
    if (!first.isZero())
      remove(first);
    return first;
  }

  @Inline
  public boolean isEmpty() {
    return head.isZero();
  }

  /**
   * Return true if a cell is on a given treadmill
   *
   * @param node The cell being searched for
   * @return True if the cell is found on the treadmill
   */
  public boolean isMember(Address node) {
    if (VM.VERIFY_ASSERTIONS) VM.assertions._assert(isNode(node));
    boolean result = false;
    if (lock != null) lock.acquire();
    Address cur = head;
    while (!cur.isZero()) {
      if (cur.EQ(node)) {
        result = true;
        break;
      }
      cur = cur.loadAddress(NEXT_OFFSET);
    }
    if (lock != null) lock.release();
    return result;
  }

  public void show() {
    if (lock != null) lock.acquire();
    Address cur = head;
    Log.write(cur);
    while (!cur.isZero()) {
      cur = cur.loadAddress(NEXT_OFFSET);
      Log.write(" -> "); Log.write(cur);
    }
    Log.writeln();
    if (lock != null) lock.release();
  }

  /**
   * Gather data for GCSpy
   * @param driver the GCSpy space driver
   */
  void gcspyGatherData(AbstractDriver driver) {
    // GCSpy doesn't need a lock (in its stop the world config)
    Address cur = head;
    while (!cur.isZero()) {
      driver.scan(cur);
      cur = cur.loadAddress(NEXT_OFFSET);
    }
  }
}


text:
const express = require('express')
const app = express()
const swaggerUi = require('swagger-ui-express');
//const swaggerDocument = require('./swagger.json');
const YAML = require('yamljs');
const swaggerDocument = YAML.load('./swagger.yaml');
const port = 3000

var options = {
    customCss: '.swagger-ui .topbar { display: none }'
};

app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerDocument, options));
app.get('/', (req, res) => res.send('Hello World!'))

app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))


text:
/**
 * @file 字体编辑控制器
 * @author mengke01(kekee000@gmail.com)
 */

import observable from 'common/observable';
import modeSupport from './mode/support';
import ContextMenu from './widget/ContextMenu';
import commandSupport from './command/support';
import clipboard from './widget/clipboard';
import History from './widget/History';
import Sorption from './widget/Sorption';
import getFontHash from './util/getFontHash';
import defaultIniters from './controller/index';

export default class Editor {

    /**
     * Render控制器
     *
     * @param {HTMLElement} main 主元素
     * @param {Object} options 参数
     * @constructor
     */
    constructor(main, options) {
        this.options = options || {};
        this.contextMenu = new ContextMenu(main, this.options.contextMenu);
        this.sorption = new Sorption(this.options.sorption);
        this.history = new History();
        this.initers = defaultIniters.concat(options.initers || []);
    }

    /**
     * 设置渲染器
     *
     * @param {Render} render 渲染器对象
     * @return {this}
     */
    setRender(render) {
        this.render = render;

        // 按顺序执行editor的控制器
        for (let i = 0, l = this.initers.length; i < l; i++) {
            this.initers[i].call(this);
        }

        this.axisLayer.refresh();
        this.graduationLayer.refresh();
        this.setMode();
        return this;
    }

    /**
     * 切换编辑模式
     *
     * @param {string} modeName 模式名称
     * @param {...Array} args args
     * @return {this}
     */
    setMode(modeName, ...args) {
        if (this.mode) {
            this.mode.end && this.mode.end.call(this);
        }
        this.mode = modeSupport[modeName] || modeSupport.default;
        this.mode.begin && this.mode.begin.apply(this, args);
        return this;
    }

    /**
     * 重置编辑器组件
     *
     * @return {this}
     */
    reset() {
        this.fontLayer.clearShapes();
        this.coverLayer.clearShapes();
        this.font = null;
        this.refresh();
        return this;
    }

    /**
     * 刷新编辑器组件
     *
     * @return {this}
     */
    refresh() {
        this.render.refresh();
        return this;
    }

    /**
     * 设置选中的shapes
     *
     * @param {Array} shapes 选中的shapes
     */
    setSelected(shapes) {
        this.setMode('shapes', shapes);
    }

    /**
     * 刷新选中的shapes
     *
     * @param {Array} shapes 选中的shapes
     */
    refreshSelected(shapes) {
        if (this.currentGroup) {
            let lastShapes = this.currentGroup.shapes;
            this.currentGroup.setShapes(shapes);
            this.currentGroup.refresh();

            if (shapes !== lastShapes) {
                this.fire('selection:change', {
                    shapes
                });
            }
        }
    }

    /**
     * 获取选中的shapes
     *
     * @return {Array} 选中的shapes
     */
    getSelected() {
        return this.currentGroup ? this.currentGroup.shapes : null;
    }

    /**
     * 执行指定命令
     *
     * @param {...string} command 指令名,后续为命令参数集合
     * @param {...Array} args args
     * @return {boolean} 是否执行成功
     */
    execCommand(command, ...args) {
        let event = {
            command,
            args
        };
        this.fire('beforecommand', event);

        if (event.returnValue === false) {
            return false;
        }

        if (commandSupport[command]) {
            let ret = commandSupport[command].apply(this, args);
            event.result = ret;
            this.fire('command', event);
            return ret;
        }

        return false;
    }

    /**
     * 是否支持指令
     *
     * @param {string} command 指令名
     * @return {boolean} 是否
     */
    supportCommand(command) {
        return !!commandSupport[command];
    }

    /**
     * 添加指令
     *
     * @param {string} command 指令名
     * @param {Function} worker 执行函数
     * @return {boolean} 是否成功
     */
    addCommand(command, worker) {
        if (commandSupport[command]) {
            return false;
        }
        commandSupport[command] = worker;
        return true;
    }

    /**
     * 是否改变过
     *
     * @return {boolean}
     */
    isChanged() {
        let font = this.getFont();
        return this.fontHash !== getFontHash(font);
    }

    /**
     * 重置改变状态
     *
     * @param {boolean} changed 状态
     */
    setChanged(changed) {
        if (changed) {
            this.fontHash = 0;
        }
        else {
            let font = this.getFont();
            this.fontHash = getFontHash(font);
        }
    }

    /**
     * 添加到剪切板
     *
     * @param {Array} shapes 形状集合
     * @return {this}
     */
    setClipBoard(shapes) {
        clipboard.set(shapes, 'editor-shape');
        return this;
    }

    /**
     * 从剪切板中获取
     *
     * @return {this}
     */
    getClipBoard() {
        return clipboard.get('editor-shape');
    }

    /**
     * 获取焦点
     *
     */
    focus() {
        this.render.focus();
    }

    /**
     * 离开焦点
     *
     */
    blur() {
        this.render.blur();
    }

    /**
     * 注销
     */
    dispose() {
        this.un();
        this.contextMenu.dispose();
        this.render && this.render.dispose();
        this.graduationMarker.dispose();

        this.options = this.contextMenu = this.render = null;
        this.fontLayer = this.coverLayer = this.axisLayer
            = this.referenceLineLayer = this.graduationLayer = null;
        this.axis = this.rightSideBearing = this.graduation
            = this.graduationMarker = this.font = null;

        this.sorption.dispose();
        this.sorption = null;

        this.history.reset();
        this.history = null;

        this.mode = null;
    }
}

observable.mixin(Editor.prototype);


text:
function write(v) { WScript.Echo(v + ""); }

Object.prototype.oString = Object.prototype.toString;
Array.prototype.oString = Object.prototype.toString;
Boolean.prototype.oString = Object.prototype.toString;
Date.prototype.oString = Object.prototype.toString;
Function.prototype.oString = Object.prototype.toString;
Number.prototype.oString = Object.prototype.toString;
RegExp.prototype.oString = Object.prototype.toString;
String.prototype.oString = Object.prototype.toString;

var x = 0;

function testEval(str) {
    eval(str);
    write(str + " x:"  + x + " typeof(x):" + typeof(x) + " x.str():" + x.oString());
}

function foo() {}

var objs = [ "undefined", "null",
            "true", "false",
            "Boolean(true)", "Boolean(false)",
            "new Boolean(true)", "new Boolean(false)",
            "NaN", "+0", "-0", "0", "0.0", "-0.0", "+0.0",
            "1", "10", "10.0", "10.1", "-1",
            "-10", "-10.0", "-10.1",
            "Number.MAX_VALUE", "Number.MIN_VALUE", "Number.NaN", "Number.POSITIVE_INFINITY", "Number.NEGATIVE_INFINITY",
            "new Number(NaN)", "new Number(+0)", "new Number(-0)", "new Number(0)",
            "new Number(0.0)", "new Number(-0.0)", "new Number(+0.0)",
            "new Number(1)", "new Number(10)", "new Number(10.0)", "new Number(10.1)", "new Number(-1)",
            "new Number(-10)", "new Number(-10.0)", "new Number(-10.1)",
            "new Number(Number.MAX_VALUE)", "new Number(Number.MIN_VALUE)", "new Number(Number.NaN)",
            "new Number(Number.POSITIVE_INFINITY)", "new Number(Number.NEGATIVE_INFINITY)",
            "''", "0xa", "04", "'hello'", "'hel' + 'lo'",
            "String('')", "String('hello')", "String('h' + 'ello')",
            "new String('')", "new String('hello')", "new String('he' + 'llo')",
            "new Object()", "new Object()",
            "[1, 2, 3]", "[1 ,2 , 3]",
            "new Array(3)", "Array(3)", "new Array(1 ,2 ,3)", "Array(1)",
            "foo"
          ];

testEval("x = Object();");
testEval("x = new Object();");

for (var i=0; i< objs.length; i++) {
    testEval("x = Object(" + objs[i] + ");");
    testEval("x = new Object(" + objs[i] + ");");
}

Object.prototype.protoFunc = function () { WScript.Echo("ObjectprotoFunc");}

var customPrototype = { protoFunc: function () { WScript.Echo("protoFunc");}}
// Constructor with only this statements
function constr(arg1, arg2)
{
    this.a = arg1;
    this.b = arg1;
}
// Constructor with more than only this statements
function constr1(arg1, arg2)
{
    if(!arg1) arg1 = 0;
    if(!arg2) arg2 = 0;
    this.a = arg1;
    this.b = arg1;
}

function body()
{
  var arr = [];
  for(var i= 0; i < 2; i++)
  {
    arr.push(new constr(1, 2, 3)); // with arg constructor cache
    arr.push(new constr());        // no arg constructor cache test

    arr.push(new constr1(1, 2, 3)); // with arg constructor cache
    arr.push(new constr1());        // no arg constructor cache test
  }
  return arr;
}

WScript.Echo("Testing no prototype property construction");
var arrayOfObjects = body();
Dump(arrayOfObjects);

WScript.Echo("Testing custom object prototype construction");
constr.prototype = customPrototype;
constr1.prototype = customPrototype;
arrayOfObjects = body();
Dump(arrayOfObjects);

WScript.Echo("Testing integer prototype construction");
constr.prototype = 1;
constr1.prototype = 1;
arrayOfObjects = body();
Dump(arrayOfObjects);

WScript.Echo("Testing no prototype property construction");
delete constr.prototype;
delete constr1.prototype;
arrayOfObjects = body();
Dump(arrayOfObjects);

function Dump(arrayOfObjects)
{
   for(var j= 0; j < arrayOfObjects.length; j++)
   {
      arrayOfObjects[j].protoFunc();
   }
}

WScript.Echo("Testing cross script context object creation");

var otherScriptContext = WScript.LoadScriptFile("constructor-crossScript.js", "samethread");

var obj = new otherScriptContext.crossContextObject();
WScript.Echo(obj.prop);
obj = new otherScriptContext.crossContextObject();
WScript.Echo(obj.prop);
obj = otherScriptContext.createObject();
WScript.Echo(obj.prop);
obj = otherScriptContext.createObject();
WScript.Echo(obj.prop);
obj = new otherScriptContext.crossContextObject();
WScript.Echo(obj.prop);


text:
using System;
using System.Collections.Generic;

namespace HerpDesk.Models.TicketsViewModels
{
    public class TicketIndexViewModel
    {
        public int ID {get; set;}
        public string Author {get; set;}
        public string Title {get; set;}
        public DateTime CreatedDate {get; set;}
        public DateTime DueDate {get; set;}

        public TicketIndexViewModel(Ticket ticket, string author)
        {
            ID = ticket.ID;
            Author = author;
            Title = ticket.Title;
            CreatedDate = ticket.CreatedDate;
            DueDate = ticket.DueDate;
        }
    }
}


text:
    Enabling security allows configuring authentication (how people can identify themselves) and authorization (what
    permissions they get).

    A number of options are built in. Please note that granting significant permissions to anonymous users, or allowing
    users to sign up and granting permissions to all authenticated users, does not actually increase security.

    For more information about security and Jenkins, see
    this document.


text:
using namespace std;

class WrapperGenerator
{
    public:
        WrapperGenerator(string filename, vector<Argument>* arguments, Parameters params, KernelInfo kernelInfo, Settings settings);
        void generate();

    private:
        KernelInfo kernelInfo;
        string filename;
        ofstream file;
        Parameters params;
        Settings settings;
        vector<Argument>* arguments;
        static const string includeText;

        bool generateTimingCode;
        int nLaunches = 3;
        int platformId = 0;
        int deviceId = 0;

        void writeOpenCLSetup();
        void writeFunctionDeclaration();
        void writeFunctionDeclarationArguments(bool ignoreOmpMpiArgs);
        void writeMemoryAllocations();
        void writeMemoryTransferToDevice();
        void writeArguments();
        void writeWorkGroupSetUp();
        void writeKernelLaunch();
        void writeMemoryTransferFromDevice();
        void writeCleanUp();

        void writeMpiFunctionDeclaration();
        void writeMpiSetup();
        void writeMpiLocalAllocation();
        void writeMpiDistribution();
        void writeMpiBorderExchange(string argName);
        void writeMpiTypeDeclaration(string argName);
        void writeMpiCollection();
        void writeMpiVectorTypeDeclaration(string typeName, string count, string blockLength, string stride, string oldType);
        void writeProcessCall(string processName);

        void writeOmpFunctionDeclaration();
        void writeOmpSetup();
};

#endif


text:
<?php

namespace app\models;

use Yii;

/**
 * This is the model class for table "video_screens".
 *
 * @property integer $id
 * @property integer $video_id
 * @property string $screen_url
 *
 * @property Video $video
 */
class VideoScreens extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'video_screens';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['video_id'], 'integer'],
            [['screen_url'], 'string', 'max' => 255]
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'video_id' => 'Video ID',
            'screen_url' => 'Screen Url',
        ];
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getVideo()
    {
        return $this->hasOne(Video::className(), ['id' => 'video_id']);
    }
}