VE Lua Documentation

Press F to search!

init

Definition


-- @/lua/vehicle/fire.lua:289

local function init()
  if fireBurnSoundObj then
    obj:stopSFX(fireBurnSoundObj)
    fireBurnSoundPlaying = false
  end
  M.updateGFX = nop

  table.clear(flammableNodes)
  M.debugData.flammableNodes = flammableNodes
  table.clear(hotNodes)
  wheelNodes = {}
  currentNodeKey = nil
  centreNode = 0
  fireNodeCounter = 0
  fireballSoundTimer = 0
  tEnv = obj:getEnvTemperature() - 273.15

  local containerBeamCache = {}

  --create a cache of all available container beams for easy access
  if v.data.beams then
    for k, b in pairs(v.data.beams) do
      if b.containerBeam then
        containerBeamCache[b.containerBeam] = k
      end
    end
  end

  if v.data.nodes then
    local centreNodeDist = 100
    for _, node in pairs(v.data.nodes) do
      local nodeDist = sqrt((node.pos.x * node.pos.x) + (node.pos.y * node.pos.y) + (node.pos.z * node.pos.z))
      if nodeDist < centreNodeDist then --find the centre-most node and store it for particle reference
        centreNodeDist = nodeDist
        centreNode = node.cid
      end

      if node.flashPoint then
        --we can assume this node is part of the fire system
        local staticBaseTemp = (type(node.baseTemp) == "number") and node.baseTemp or tEnv
        flammableNodes[node.cid] = {
          name = node.name,
          flashPoint = node.flashPoint,
          smokePoint = node.smokePoint or node.flashPoint,
          burnRate = node.burnRate,
          staticBaseTemp = staticBaseTemp,
          useThermalsBaseTemp = node.baseTemp == "thermals",
          conductionRadius = node.conductionRadius or 0,
          selfIgnitionCoef = node.selfIgnitionCoef or 0,
          temperature = tEnv,
          intensity = 0,
          chemEnergy = node.chemEnergy or 0,
          originalChemEnergy = node.chemEnergy or 0,
          weightSpecHeatCoef = node.nodeWeight * (node.specHeat or 1),
          lastUnderWaterValue = 0,
          flameTick = 0,
          smokeTick = 0,
          vaporState = 0,
          vaporPoint = node.vaporPoint,
          isVapor = 0,
          containerBeam = containerBeamCache[node.containerBeam],
          ignoreContainerBeamBreakMessage = node.ignoreContainerBeamBreakMessage or false,
          containerBeamBroken = false,
          canIgnite = containerBeamCache[node.containerBeam] == nil
        }

        fireNodeCounter = fireNodeCounter + 1
      end
    end
  end

  --cache wheelnodes for easy access from update
  if wheels.wheels then
    for id, wd in pairs(wheels.wheels) do
      wheelNodes[wd.node1] = {wheelID = id, node1 = wd.node1, node2 = wd.node2}
      wheelNodes[wd.node2] = {wheelID = id, node1 = wd.node1, node2 = wd.node2}
    end
  end

  --activate fire sim if configured nodes are found
  if fireNodeCounter > 0 then
    M.updateGFX = updateGFX
    M.nodeCollision = nodeCollision
  end
end

Callers

@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/rallySuperCountdown.lua

function C:init(mgr, ...)
  self.data.useImgui = false
@/lua/ge/extensions/flowgraph/nodes/util/time.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/editor/missionEditor/progressMulti.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/tech/tyreBarrier.lua
-- Initialisation callback (called once when this controller is instantiated).
local function init(data)
  isPreamble = true
@/inspector/External/CodeMirror/codemirror.js

  input.init(d)
}
@/lua/ge/extensions/flowgraph/nodes/util/routePosition.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/activity/attemptStars.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/util/file/loadData.lua

function C:init(mgr)
  self.savePins = true
@/gameplay/missions/gridmap_v2/aiRace/001-grindergrandprix/script.lua
  if o.init then
    o:init(...)
  end
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleMapData.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/environment/planet.lua
C.gConst = 6.6742 * math.pow(10, -11) --(m3,s-2,kg-1)
function C:init()
  --self.data.clearPlanets = true
@/lua/ge/extensions/flowgraph/nodes/types/bool.lua

function C:init()
  self.data.value = true
@/lua/ge/extensions/flowgraph/nodes/vehicle/setGearbox.lua

function C:init()
@/lua/ge/extensions/gameplay/markers/driftLineMarker.lua

function C:init()
  self.id = idCounter
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/flowgraph/editor.lua

function C:init()
  self.currentConfig = nil
@/lua/ge/extensions/editor/missionEditor/general.lua
local noTranslation = "No Translation found!"
function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/startCrawl.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/gameplay/missionTypes/rallyStage/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/timetrials/onRaceConfig.lua

function C:init(mgr, ...)
  self.done = false
@/gameplay/missions/italy/flowgraph/001-Gravity/constructor.lua

function C:init()
  self.defaultAggregateValues = {
return function()
  C:init()
  return C
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficSpawnGroup.lua

function C:init()
  self:resetState()
@/lua/ge/extensions/flowgraph/modules/uiModule.lua

function C:init()
  self:clear()
@/lua/ge/extensions/flowgraph/nodes/string/match.lua

function C:init()
  self.data.pattern = "%d"
@/lua/objectpool/main.lua
-- called in object Lua VM
function init(path, initData)
  local object
@/lua/ge/extensions/editor/rallyEditor/static.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/ui/ui-vue/src/services/settings.js
  constructor(eventBus = undefined, lua = undefined) {
    if (eventBus && lua) this.init(eventBus, lua)
  }

  init(eventBus = undefined, lua = undefined) {
    if (this.inited || this.loaded) return
export function useSettings() {
  settings.init()
  return settings
export async function useSettingsAsync() {
  settings.init()
  await settings.waitForData()
@/lua/ge/extensions/scenario/nomoveGoal.lua

local function init(scenario)
  M.instances = {}
@/lua/vehicle/controller/gauges/customModules/electricMotorData.lua

local function init(jbeamData)
end
@/gameplay/missionTypes/hypermiling/editor.lua

function C:init()
  self:addString("Start Screen Text","introText","Hypermiling Intro Text",9000, {tooltip = "The text that displays on the start screen.", isTranslation = true})
@/lua/ge/extensions/flowgraph/nodes/vehicle/touching.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/modules/prefabModule.lua

function C:init()
  self.prefabs = {}
@/lua/ge/extensions/editor/util/vehicleSelectUtil.lua

function C:init(name, data)
  self.id = getNextUniqueIdentifier()
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/setUILayout.lua

function C:init()
  self.useFreeroamMenuWhenUnrestricted = true
@/lua/ge/extensions/flowgraph/nodes/math/smoothers/spring.lua

function C:init()
  C.oldSet = 0
@/lua/ge/extensions/flowgraph/nodes/activity/activityHook.lua

function C:init()
  self.data.eventName = "start"
@/lua/ge/extensions/career/modules/missionWrapper.lua

local function init() end
@/lua/ge/extensions/flowgraph/nodes/logic/flowSwitch.lua

function C:init(mgr, ...)
  self.on = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/simpleFollowDecalroad.lua

function C:init()
  self.path = nil
@/ui/lib/int/utilities.js
          // otherwise we would never be able to apply new data that was available only after compilation
          function init () {
            if (scope.visibleItems.length === 0) {
            scope.allData = val || []
            init()
          })
          window.onresize = function () {
            init()
          }
@/lua/ge/extensions/gameplay/race/path.lua
local prefabFields = {"prefabs","forwardPrefabs","reversePrefabs"}
function C:init(name)
  self._uid = 0
  local path = self
  path:init("New Race")
  local nodeToId = {}
  local path = self
  path:init("New Race")
  local nodeToId = {}
  local path = self
  path:init("New Race")
  path.hideMission = trackInfo.hideMission or false
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/vehicle/toShowroom.lua

function C:init() end
@/gameplay/missions/automation_test_track/flowgraph/001-Dam/customNodes/hitTargetNode.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/mission/clearLightsDragRace.lua

function C:init()
  self.lights = {}
@/lua/ge/extensions/flowgraph/nodes/career/garageTutorialUtil.lua

function C:init()
  self.timer = 0
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/fileTrafficSignals.lua

function C:init()
  self.signalsData = nil
@/lua/ge/extensions/core/cameraModes/fallback.lua

function C:init()
  self.isGlobal = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/core/settings/graphic.lua
    if graphicsOptions[k] and type(graphicsOptions[k].init) == 'function' then
      graphicsOptions[k].init(v)
    end
@/lua/ge/extensions/gameplay/rally/notebook/codriver.lua

function C:init(notebook, name, forceId)
  self.notebook = notebook
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/flowgraph/execution.lua

function C:init()
  self.contextMenuElement = nil
@/lua/vehicle/controller/tech/vehicleSystemsCoupling.lua
-- The controller initialisation function. This is called once when the controller is loaded, and sets up the UDP sockets for all future communication.
local function init(jbeamData)
  debugFile = jbeamData.debugFile
@/lua/ge/extensions/editor/rallyEditor/pacenotes.lua

function C:init(rallyEditor)
  self.rallyEditor = rallyEditor
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/generatedTimeTrial/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/applyPenalty.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/gameplay/missionTypes/evade/customNodes/multiVehicleLuaNode.lua

function C:init()
  self.data.ignoreUndrivableVehicles = true
@/lua/ge/extensions/editor/gen/exp_solidflex.lua
--        W.test()
        W.init()
    else
    else
        W.init()
    end
        aa = {0}
        W.init()
    elseif k == 'visc_in' then
    if true then
        W.init()
--[[
@/lua/ge/extensions/gameplay/rally/transcripts/path.lua

function C:init(fname)
  self.fname = fname
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/util/timedSequence.lua

function C:init()
  self.count = 0
@/lua/ge/extensions/gameplay/rally/loop/stagedCountdownTest.lua

function C:init()
  self.epoch = 0
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/tech/MQTToutput.lua

local function init(jbeamData)
  for wheelId, wheel in pairs(wheels.wheels) do
@/lua/vehicle/controller/gauges/customModules/dynamicRedlineData.lua

local function init(jbeamData)
  minOutput = jbeamData.minOutput or 0
@/lua/vehicle/controller/trailerFeet.lua

local function init(jbeamData)
  electricsName = jbeamData.electricsName or "feet"
@/lua/ge/extensions/core/cameraModes/onboard.lua

function C:init()
  self.manualzoom = manualzoom()
  self.manualzoom = manualzoom()
  self.manualzoom:init(self.fov)
  self:onVehicleCameraConfigChanged()
  setmetatable(o, C)
  o:init()
  return o
@/gameplay/missionTypes/drift/customNodes/waitTriggerNode.lua

function C:init(mgr, ...)
  --self.data.duration = 3
@/lua/vehicle/controller/propAnimation/hPattern.lua

local function init(jbeamData)
  local gearCoordinateTable = tableFromHeaderTable(jbeamData.gearCoordinates or {})
@/lua/ge/extensions/flowgraph/nodes/activity/aggregateAttempt.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/vehicle/alignForCoupling.lua

function C:init()
@/gameplay/missionTypes/crawl/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/vehicle/controller/pyrotechnicCharge.lua

local function init(jbeamData)
  hasTriggered = false
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalSingle.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/mission/ARunForLife.lua

function C:init(mgr, ...)
end
@/gameplay/missionTypes/aiRace/customNodes/activateRaceNode.lua

function C:init(mgr, ...)
  self.started = false
@/lua/ge/extensions/editor/flowgraph/variables.lua
local scale = 1
function C:init()
  self.target = nil
@/lua/ge/extensions/flowgraph/nodes/ui/customUiLayout.lua

function C:init()
@/lua/ge/extensions/gameplay/race/pacenote.lua

function C:init(path, name, forceId)
  self.path = path
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/thread/receiveMessage.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/pathEndTransform.lua

function C:init(mgr, ...)
  self.path = nil
@/lua/ge/extensions/flowgraph/nodes/scene/camera/cameraAngle.lua

function C:init()
@/lua/vehicle/controller/tirePressureControl.lua

local function init(jbeamData)
end
@/lua/ge/extensions/scenario/positionGoal.lua

local function init(scenario)
  M.instances = {}
@/lua/ge/extensions/flowgraph/nodes/logic/and.lua

function C:init()
  self.count = 2
@/lua/ge/extensions/flowgraph/nodes/logic/timedTrigger.lua

function C:init(mgr, ...)
  self.data.resetTimer = 1
@/lua/vehicle/controller/drivingDynamics/supervisors/components/diffControl.lua

local function init(jbeamData)
  M.isActingAsTC = false
@/lua/ge/extensions/editor/raceEditor/pathnodes.lua

function C:init(raceEditor)
  self.raceEditor = raceEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/logic/once.lua

function C:init(mgr, ...)
  self.ready = true
@/lua/ge/extensions/gameplay/markers/crawlMarker.lua
local screenObjTemp = nil
function C:init()
  self.visible = true
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/driveModes.lua

local function init(jbeamData)
  uiName = jbeamData.uiName
@/gameplay/missionTypes/dragStripAPM/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/types/genericValue.lua

function C:init()
  self.getter = true
@/ui/lib/ext/angular-material-paging.js
    $scope.$watch('wmpTotal', function() {
      vm_paging.init();
    });
@/lua/ge/extensions/flowgraph/nodes/career/onGarageEvent.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/core/cameraModes/driver.lua

function C:init()
  self.saveTimeout = nil
  self.lookAheadSmoothness = settings.getValue("cameraDriverLookAheadSmoothness") / 100
  self.manualzoom:init(settings.getValue('cameraDriverFov'), nil, nil, "ui.camera.fovDriver")
  self.openXRsnapTurnDriver = settings.getValue('openXRsnapTurnDriver')
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/gameplay/rally/loop/roadSectionPenaltyKeeper.lua

function C:init(manager)
  self.manager = manager
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalCircle.lua

function C:init()
  self.data.snapToTerrain = true
@/ui/modules/scenariocontrol/scenariocontrol.js
      // returned funciton will start the loaded comic
      function init (assets, path, sounds) {
        var assetManager = new spine.canvas.AssetManager()
          var soundFiles = data.filter((elem) => ['.ogg'].filter((e) => elem.endsWith(e)).length > 0)
          init(animationFiles, animationPath, soundFiles).then((renderFunc) => {
            deferred.resolve(renderFunc)
@/lua/vehicle/controller/propAnimation/googlyEyes.lua

local function init(jbeamData)
  local eyeBeamTag = jbeamData.eyeBeamTag or "eyeBeam"
@/lua/ge/extensions/flowgraph/nodes/timetrials/onRaceRestarted.lua

function C:init(mgr, ...)
  self.restart = false
@/lua/vehicle/controller/playerController.lua

local function init(jbeamData)
  isCrouching = false
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/parkingspot.lua

function C:init(mgr, ...)
  self.options = {"key"}
@/lua/ge/extensions/editor/rallyEditor/drivelineTab.lua

function C:init(rallyEditor)
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/vehicleController/vehicleController.lua
  if controlLogicModule then
    controlLogicModule.init(jbeamData, sharedFunctions)
    controlLogicModule.gearboxHandling = gearboxHandling

local function init(jbeamData)
  M.throttle = 0

  controlLogicModule.init(jbeamData, sharedFunctions)
  controlLogicModule.gearboxHandling = gearboxHandling
  --drivingStrategy.core = require(drivingStrategyCoreModulePath)
  --drivingStrategy.core.init(M)
  --  drivingStrategy[v] = require(drivingStrategyModuleDirectory .. v)
  --  drivingStrategy[v].init(M)
  --end
@/lua/ge/extensions/gameplay/rally/notebook/structured/visualCompositor.lua

function C:init(textCompositor)
  self.textCompositor = textCompositor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/powertrainControl/combustionEngineGovenor.lua

local function init(jbeamData)
  local controlledEngineName = jbeamData.controlledEngineName or "mainEngine"
@/lua/ge/extensions/editor/flowgraph/references.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150, 300), nil, false)
@/lua/ge/extensions/flowgraph/nodes/career/setFuelLevel.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/gameplay/race/race.lua

function C:init()
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/flowgraph/welcome.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, true)
@/lua/ge/extensions/flowgraph/nodes/math/smoothers/nonLinear.lua

function C:init()
  C.oldSet = 0
@/lua/vehicle/controller/braking/hydraulicPumpBrake.lua

local function init(jbeamData)
  local relevantEngineName = jbeamData.relevantEngineName or "mainEngine"
@/gameplay/missionTypes/chase/customNodes/suspectDistanceNode.lua

function C:init()
  self:reset()
@/lua/vehicle/controller/drivingDynamics/supervisors/yawControl.lua

local function init(jbeamData)
  controlParameters = {isEnabled = true}
@/lua/ge/extensions/flowgraph/nodes/scene/getPointOnDecalroad.lua
C.tags = {}
function C:init()
@/lua/ge/extensions/flowgraph/nodes/events/onMissionEnded.lua

function C:init(mgr, ...)
end
@/lua/vehicle/controller/vehicleController/shiftLogic/dctGearbox.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/lua/ge/extensions/tech/terrainImporter.lua
  local bmp = GBitmap()
  bmp:init(bmpSize, bmpSize)
  bmp:allocateBitmap(bmpSize, bmpSize, false, "GFXFormatR16")
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/goToEndLine.lua

function C:init()
  self.data.autoDisableOnArrive = true
@/lua/ge/extensions/flowgraph/nodes/logic/compare.lua

function C:init()
  local mySortFunct = function (a,b)
@/lua/ge/extensions/flowgraph/nodes/gameplay/blacklistWalking.lua
C.dependencies = {'gameplay_walk'}
function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/stop.lua

function C:init()
  self.complete = false
@/lua/ge/extensions/flowgraph/nodes/types/setVariable.lua
C.hidden = true
function C:init()
  self.varName = nil
@/gameplay/missionTypes/aiRace/customNodes/multiVehicleLuaNode.lua

function C:init()
  self.data.ignoreUndrivableVehicles = true
@/lua/ge/extensions/flowgraph/nodes/util/ghost.lua

function C:init()
  self.formerNodeType = "NOT GHOST"
@/lua/ge/extensions/gameplay/rally/tools/devTools.lua

function C:init()
  -- self:_reset()
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/events/onBeamNGTrigger.lua

function C:init(mgr, ...)
  self.data.filterName = ""
@/lua/ge/extensions/flowgraph/nodes/career/getTutorialFlag.lua

function C:init()
@/lua/vehicle/controller/controllerTemplate.lua

local function init(jbeamData)
end
@/lua/ge/extensions/flowgraph/nodes/career/onVehicleShoppingEvent.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/editor/missionEditor/startTrigger.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/drift/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/ui/updatedUI/endScreenWhole.lua

function C:init()
  self.open = false
@/lua/ge/extensions/flowgraph/nodes/math/increaser.lua

function C:init()
  self.data.currentValue = 0
@/lua/ge/extensions/editor/missionEditor/genericTypeData.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/events/onUpdate.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/setNoteSearch.lua

-- function C:init()
-- end
@/lua/ge/extensions/gameplay/markers/zoneMarker.lua

function C:init() end
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/util/hideLoadingScreen.lua

function C:init()
  self.clearOutPinsOnStart = false
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/signals/sequenceByName.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/editor/flowgraph/events.lua

function C:init()
    editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, false)
@/lua/ge/extensions/flowgraph/nodes/ui/startScreen.lua

function C:init()
  self.open = false
@/lua/vehicle/controller/sound/reverseWarn.lua

local function init(jbeamData)
  electricsName = jbeamData.electricsName or "reverse"
@/lua/common/utils/httpJsonServer.lua
local bindHost = 'localhost'
httpJsonServer.init(bindHost, port, handleServerRequest)

local function init(_bindhost, _bindport, _callback)
    bindhost = _bindhost
@/gameplay/missionTypes/dragStripRace/editor.lua

function C:init()
@/ui/ui-vue/src/modules/liveryEditor/stores/layerSettingsStore.js

  function init() {
    if (!active.value) rootStore.toggleShowDecalSelector()
@/lua/ge/extensions/flowgraph/nodes/mission/lightsController.lua

function C:init()
  self.started = false
@/lua/ge/extensions/flowgraph/nodes/debug/debugSphere.lua

function C:init()
end
@/lua/ge/extensions/gameplay/rally/cutCapture.lua

function C:init(vehicle, missionDir)
  log('I', logTag, 'initializing cutCapture for vehicle='..vehicle:getId())
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/raceEditor/pacenotes.lua

function C:init(raceEditor)
  self.raceEditor = raceEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/modules/timerModule.lua

function C:init()
  self.variables = require('/lua/ge/extensions/flowgraph/variableStorage')(self.mgr)
@/lua/ge/extensions/flowgraph/nodes/mission/stageLightsDragRace.lua

function C:init()
  self.lights = {}
@/lua/ge/extensions/gameplay/traffic/baseRole.lua

function C:init(veh, name, data)
  data = data or {}
  C.__index = C
  o:init(o.veh, o.name)

  o:init()
  o:postInit()
@/lua/vehicle/controller/pneumatics/actuators.lua

local function init(jbeamData)
  local airTankName = jbeamData.airTankName or "mainAirTank"
@/lua/ge/extensions/flowgraph/nodes/mission/selectGarage2GarageZones.lua

function C:init()
  self.startSpot = nil
@/lua/ge/extensions/flowgraph/nodes/ui/vehicleSelector.lua

function C:init()
  self.open = false
@/lua/ge/extensions/flowgraph/nodes/gameplay/decalLine.lua

function C:init()
  self.data.snapToTerrain = false
@/lua/vehicle/controller/drivingDynamics/supervisors/components/brakeControl.lua

local function init(jbeamData)
  M.isActingAsTC = false
@/lua/ge/extensions/flowgraph/nodes/mission/selectGarageSpots.lua

function C:init()
  self.spots = {}
@/lua/ge/extensions/flowgraph/nodes/types/string.lua

function C:init()
  self.string = "Hello World"
@/lua/ge/extensions/flowgraph/nodes/ui/flashMessage.lua

function C:init()
  self.helper = require('scenario/scenariohelper')
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceCpLapChange.lua
      self.markers = require('scenario/race_marker')
      self.markers.init()
      local wps = {}
@/lua/ge/extensions/flowgraph/nodes/scene/getPlayerVehicle.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/input/blacklistAction.lua

function C:init()
  self.list = {}
@/lua/vehicle/protocols/outgauge.lua
local hasShiftLights = false
local function init()
  local shiftLightControllers = controller.getControllersByType("shiftLights")
@/lua/ge/extensions/gameplay/traffic/roles/police.lua

function C:init()
  self.class = 'emergency'
@/lua/vehicle/drivetrain.lua

local function init()
  M.wheels = wheels.wheels
@/lua/vehicle/controller/gauges/customModules/combustionEngineData.lua

local function init(jbeamData)
  avgConsumptionSmoother:set(avgConsumptionDefaultValue)
@/lua/ge/extensions/flowgraph/nodes/vehicle/beamstate/couple.lua

function C:init(mgr, ...)
  self.data.mode = "activate"
@/lua/vehicle/controller/airplaneSurfaces.lua

local function init(jbeamData)
  electrics.values.rudder = 0
@/lua/ge/extensions/editor/rallyEditor/pacenotes/pacenoteForm.lua

function C:init(pacenoteToolsWindow)
  self.pacenoteToolsWindow = pacenoteToolsWindow
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/drivingDynamics/supervisors/slipProviders/virtualSpeedSlip.lua

local function init(jbeamData)
  M.isActive = true
@/lua/ge/extensions/flowgraph/nodes/environment/setTimeOfDay.lua

function C:init(mgr)
  self.data.restoreTod = true
@/lua/ge/extensions/flowgraph/nodes/career/onMissionPromptShown.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/gameplay/route/route.lua

function C:init()
  self.path = {}
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/gameplay/markers/invisibleTrigger.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init() end
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/trafficMoveGroup.lua

function C:init()
  self:onNodeReset()
@/gameplay/missionTypes/delivery/constructor.lua

function C:init()
  self.latestVersion = version
@/gameplay/missionTypes/arrive/editor.lua

function C:init()
  self:addDecoHeader("Mandatory Mission Settings",'orange')
@/lua/ge/extensions/scenario/race_marker.lua

local function init()
  -- clear previous markers.
@/lua/vehicle/input.lua

local function init()
  --inRate (towards the center), outRate (away from the center), autoCenterRate, startingValue
@/lua/vehicle/recovery.lua

local function init(path)
  M.updateGFX = updateGFXRecord
@/lua/ge/extensions/flowgraph/nodes/environment/simplePlanet.lua

function C:init()
  self.vehicle = nil
@/lua/ge/extensions/flowgraph/nodes/recording/recordCamera.lua

function C:init()
  self:setDurationState('inactive')
@/lua/ge/extensions/core/hotlapping.lua
    markers = require('scenario/race_marker')
    markers.init()
    local wps = {}
@/lua/ge/extensions/gameplay/rally/driveline/drivelineV3.lua

function C:init(missionDir)
  self.missionDir = missionDir
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/activity/attemptVehicle.lua

function C:init()
@/lua/ge/extensions/scenario/distanceGoal.lua

local function init(scenario)
  M.instances = {}
@/lua/ge/extensions/gameplay/drift/general.lua

local function init()
  setContext("inFreeroam")
  if not firstUpdateFlag then
    init()
    firstUpdateFlag = true
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/vehicleAction.lua

function C:init()
  self.models = {}
@/gameplay/missionTypes/timeTrial/editor.lua

function C:init()
  self:addDecoHeader("Mission Settings",'orange')
@/lua/ge/extensions/flowgraph/nodes/math/smoothers/linear.lua

function C:init()
  C.oldSet = 0
@/lua/ge/extensions/flowgraph/nodes/vehicle/trackVehicle.lua

function C:init()
end
@/lua/ge/extensions/gameplay/rally/notebook/structured/textCompositor.lua

function C:init(compositorName)
  if not compositorName then
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/drivingDynamics/actuators/activeDiffBias.lua

local function init(jbeamData)
  M.isActing = false
@/lua/ge/extensions/flowgraph/nodes/debug/debugLine.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/vehicle/playerUsable.lua
}
function C:init()
@/lua/vehicle/controller/drivingDynamics/sensors/sensorHub.lua

local function init(jbeamData)
  M.gravity = obj:getGravity()
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/disable.lua

function C:init()
  self.data.useScriptStop = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/onVehicleSwitched.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/states/stateExit.lua
-- This gets called when the node has been created for the first time. Init field here
function C:init(mgr)
  self.autoStart = false
@/ui/lib/ext/angular/angular-animate.js

    return function init(element, initialOptions) {
      // all of the animation functions should create
@/lua/ge/extensions/core/cameraModes/predictor.lua

function C:init(dtFuture)
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/crawl/getCrawlResults.lua

function C:init(mgr)
  self.bridge = require('ge/extensions/gameplay/crawl/flowgraphBridge')
@/lua/ge/extensions/scenario/raceMarkers/crawlMarker.lua

function C:init(id)
  self.id = id
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/math/math.lua

function C:init()
  self.data.safeMode = true
@/lua/ge/extensions/flowgraph/nodes/vehicle/toggleVehicleControls.lua

function C:init()
@/lua/vehicle/controller/sound/linearMovement.lua

local function init(jbeamData)
  --used when the sound has a segment sound in addition to the base noise
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/location.lua

function C:init(mgr, ...)
  self.options = {"key"}
@/lua/vehicle/controller/sound/airbrakes.lua

local function init(jbeamData)
  lastBrake = 0
@/lua/ge/extensions/flowgraph/nodes/util/loadLevel.lua

function C:init()
  self.state = 1
@/lua/ge/extensions/core/cameraModes/bigMap.lua

function C:init()
  self.fovMin = 25 -- This will be overwritten in bigMapMode.lua based on map size
  self.manualzoom = manualzoom()
  self.manualzoom:init(self.fovMax, self.fovMin, self.fovMax)
  self:reset()
function C:setLevelProperties()
  self:init()
end
  self.firstUpdate = true
  self.manualzoom:init(self.fovMax, self.fovMin, self.fovMax)
end
function C:onDeserialized()
  self:init()
  if self.mapBoundaries then
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/debug/flowButton.lua

function C:init(mgr, ...)
  self.data.btnName = "Push"
@/lua/vehicle/controller/pneumatics/crossFlowValve.lua

local function init(jbeamData)
  local sourceTankName = jbeamData.sourceTankName or "mainAirTank"
@/lua/vehicle/damageTracker.lua

local function init()
  damageData = {}
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/fileRace.lua

function C:init(mgr, ...)
  self.started = false
@/lua/ge/extensions/gameplay/race/segment.lua

function C:init(path, name, forceId)
  self.path = path
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/buttons/simpleMultipleButtons.lua

function C:init()
  self.count = 1
@/gameplay/missions/gridmap_v2/collection/002-blenderbowl/script.lua
  if o.init then
    o:init(...)
  end
@/lua/ge/extensions/flowgraph/nodes/scene/camera/setCameraPosition.lua

function C:init()
  self.position = vec3(0,0,0)
@/lua/vehicle/controller/braking/brakedDifferentialSteering.lua

local function init(jbeamData)
  steeringPlay = jbeamData.steeringPlay or 0
@/lua/ge/extensions/gameplay/delivery/delivery.lua

function C:init()
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/onBigmapPoiSelected.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/editor/raceEditor/testing.lua

function C:init(raceEditor)
  self.raceEditor = raceEditor
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/cannon/customNodes/cannonBallTouchdownNode.lua

function C:init()
@/lua/ge/extensions/gameplay/rally/rallyManager.lua

function C:init(missionDir, missionId)
  if gameplay_rally and gameplay_rally.getDebugLogging() then log('D', logTag, '<<<<< RallyManager init >>>>>') end
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceMarkers.lua

function C:init()
  self.markers = nil
        self.markers = require('scenario/race_marker')
        self.markers.init()
        local wps = {}
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/raceHighscoresComplete.lua

function C:init()
  self.markers = nil
@/lua/ge/extensions/flowgraph/baseStateNode.lua

function C:init(mgr)
  -- make our own custom pins for the borders
  C.__index = C
  o:init(...)
  return o
  if o.init ~= baseInit then
    o:init()
  end
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/countdown.lua

function C:init(mgr, ...)
  self.data.useImgui = false
@/lua/vehicle/sounds.lua

local function init()
  if not v.data.nodes then
@/lua/vehicle/controller/drivingDynamics/actuators/activeCenterDiffLock.lua

local function init(jbeamData)
  M.isActing = false
@/lua/ge/extensions/flowgraph/nodes/vehicle/setLights.lua

function C:init()
@/lua/ge/extensions/gameplay/rally/loop/speedingDetector.lua

function C:init(manager)
  self.manager = manager
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/util/editorElementHelper.lua
  if o.init then
    o:init()
  end
@/lua/ge/extensions/gameplay/markers/bigmapMarker.lua
-- called when this object is created. initialize variables here (but dont spawn objects)
function C:init()
  self.id = idCounter
    C.__index = C
    o:init(...)
    return o
@/lua/ge/extensions/editor/flowgraph/search.lua

function C:init()
  editor.registerWindow(self.windowName, im.ImVec2(150,300), nil, false)
@/gameplay/missionTypes/generatedTimeTrial/editor.lua

function C:init()
  self:addDecoHeader("Creating a Time Trial")
@/lua/ge/extensions/core/cameraModes/autozoom.lua

function C:init(smoother)
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/debug/debugPrism.lua

function C:init()
end
@/lua/ge/extensions/flowgraph/nodes/util/popActionMap.lua

function C:init(mgr, ...)
  self:_executionStopped()
@/lua/ge/extensions/flowgraph/nodes/vehicle/setLicensePlate.lua

function C:init(mgr, ...)
  self.ready = true
@/gameplay/missionTypes/rallyLoop/editor.lua

function C:init()
  self:addDecoHeader("Mission Screen Text",'orange')
@/lua/ge/extensions/flowgraph/nodes/vehicle/special/customVehicleGetter.lua

function C:init()
  self.data.fun = functions[1].fun
@/lua/ge/extensions/gameplay/rally/tools/loopToolbox.lua

function C:init()
  self.missionDropdownItems = {""}
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/environment/setFogDensity.lua

function C:init(mgr)
  self.data.restoreTod = true
@/lua/ge/extensions/editor/crawlEditor/presets.lua

function C:init()
  self.presets = {
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/util/perlinNoise.lua

function C:init()
  self.graphData = {}
@/ui/ui-vue/src/main.js
// initialise systemInfo service
SysInfo.init()
@/lua/vehicle/controller/pneumatics/lowAirPressureWarning.lua

local function init(jbeamData)
  lowAirWarningElectric = jbeamData.lowAirWarningElectric or "lowAirPressure"
@/lua/vehicle/controller/hydraulics/orbitrolSteering.lua

local function init(jbeamData)
  steeringPID = newPIDParallel(jbeamData.steeringPIDKp or 0.5, jbeamData.steeringPIDKi or 0.3, jbeamData.steeringPIDKd or 0.01, -1, 1, 1000, 1000, -1, 1, 0.002)
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/zoneByName.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/parkingTrackVehicle.lua

function C:init()
  self:reset()
@/lua/ge/extensions/editor/missionEditor/playbookUtils.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/gameplay/missionTypes/garageToGarage/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/pursuitInformation.lua

function C:init()
  self:reset()
@/lua/vehicle/controller/drivingDynamics/supervisors/yawProviders/STMEstimate.lua

local function init(jbeamData)
  M.isActive = true
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/countdownSynced.lua

function C:init(mgr, ...)
  self.data.useImgui = false
@/lua/ge/extensions/flowgraph/link.lua

function C:init(graph, sourcePin, targetPin)
  self.graph = graph
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/editor/assetBrowser.lua
    local bitmap = GBitmap()
    bitmap:init(var.meshPreviewCacheThumbnailSize,var.meshPreviewCacheThumbnailSize)
    shapePrev:copyToBmp(bitmap:getPtr())
    local bitmap = GBitmap()
    bitmap:init(var.meshPreviewCacheThumbnailSize,var.meshPreviewCacheThumbnailSize)
    shapePrev:copyToBmp(bitmap:getPtr())
@/gameplay/missionTypes/busMode/constructor.lua

function C:init()
  self.latestVersion = version
@/lua/ge/extensions/gameplay/rally/loop/rallyLoopManager.lua

function C:init(missionId, missionDir)
  if gameplay_rallyLoop and gameplay_rallyLoop.getDebugLogging() then log('D', logTag, '<<<<< RallyLoopManager init >>>>>') end
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/drivingDynamics/sensors/virtualSensors.lua

local function init(jbeamData)
  M.reference.bodySlipAngle = 0
@/lua/ge/extensions/flowgraph/nodes/vehicle/gForce.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/gameplay/race/moveVehicleToStartposition.lua

function C:init(mgr, ...)
  self.path = nil
@/lua/ge/extensions/flowgraph/nodes/ui/rtMessage.lua

function C:init()
@/ui/uidevtools/src/stores/messageStore.js

  async function init() {
    db = await openDatabase()
@/lua/ge/extensions/flowgraph/nodes/ui/customButtonTEST.lua

function C:init()
  self.open = false
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/posInZone.lua

function C:init(mgr, ...)
end
@/lua/vehicle/wheels.lua

local function init()
  initWheels()
@/lua/ge/extensions/flowgraph/nodes/util/file/saveData.lua

function C:init(mgr)
  self.savePins = true
@/lua/ge/extensions/flowgraph/nodes/activity/starsActive.lua

function C:init()
  self.savePins = true
@/lua/ge/extensions/editor/rallyEditor/recceTab.lua

function C:init(rallyEditor)
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/ui/ambientSound.lua
]]
local function init(json)
  if not FS:fileExists(json) then
@/lua/ge/extensions/flowgraph/nodes/vehicle/vehicleWheels.lua

function C:init(mgr, ...)
end
@/lua/vehicle/controller/vehicleController/shiftLogic/sequentialGearbox.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/lua/ge/extensions/flowgraph/nodes/environment/setWind.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/timetrials/onRaceCheckpoint.lua

function C:init(mgr, ...)
  self.enterFlag = false
@/lua/ge/extensions/flowgraph/nodes/ui/fadeToBlack.lua

function C:init()
  self:setDurationState('inactive')
@/gameplay/missionTypes/rallyStage/editor.lua

function C:init()
  self:addDecoHeader("Mission Screen Text",'orange')
@/lua/ge/extensions/editor/sitesEditor/zones.lua

function C:init(sitesEditor, key)
  self.sitesEditor = sitesEditor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/vehicleController/shiftLogic/cvtGearbox.lua

local function init(jbeamData, sharedFunctionTable)
  sharedFunctions = sharedFunctionTable
@/lua/ge/extensions/gameplay/sites/customFields.lua

function C:init()
  self.names = {}
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/powertrain/nitrousOxideInjection.lua

local function init(device, data)
  M.isArmed = false
@/gameplay/missionTypes/timeTrial/constructor.lua

function C:init()
  self.supportsReplay = true
@/lua/vehicle/controller/beaconSpin.lua

local function init(jbeamData)
  beaconSpeed = jbeamData.spinSpeed or 320
@/lua/vehicle/electrics.lua

local function init()
  M.disabledState = {}
@/lua/ge/extensions/gameplay/traffic/roles/suspect.lua

function C:init()
  self.personalityModifiers = {
@/gameplay/missionTypes/evade/customNodes/getClosestTrafficNode.lua

function C:init()
  self.pos = vec3()
@/lua/ge/extensions/flowgraph/nodes/scene/spawnLight.lua

function C:init(mgr, ...)
  self.objects = {}
@/lua/ge/extensions/flowgraph/nodes/scene/customLuaCommand.lua

function C:init()
  self.clearOutPinsOnStart = false
@/lua/ge/extensions/editor/flowgraph/main.lua

function C:init()
@/lua/vehicle/controller/bypassDampers.lua

local function init(jbeamData)
  dampers = {}
@/lua/ge/extensions/flowgraph/nodes/gfx/blur.lua

function C:init(mgr, ...)
  self.lastWorking = 0
@/lua/ge/extensions/editor/api/valueInspector.lua

function C:init()
  self.inputTextShortStringMaxSize = inputTextShortStringMaxSize
  C.__index = C
  o:init()
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/traffic/parkingParams.lua

function C:init()
  self.vars = {}
@/gameplay/missionTypes/simpleLapconfigScenario/editor.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/vehicle/fire/fire.lua

function C:init()
  self.functions = {
@/lua/ge/extensions/gameplay/traffic/vehicle.lua

function C:init(id, role)
  id = id or 0
  C.__index = C
  o:init(o.id)
  return o.model and o -- returns nil if invalid object
@/lua/vehicle/backwardsCompatibility.lua

local function init()
  checkOldESC() --convert hardcoded ESC to controller
@/lua/ge/extensions/flowgraph/nodes/gameplay/sites/locationByName.lua

function C:init(mgr, ...)
@/lua/ge/extensions/core/cameraModes/shake.lua

function C:init()
  self.isFilter = true
  setmetatable(o, C)
  o:init()
  return o
@/lua/ge/extensions/editor/missionEditor/setupModules.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/types/transform.lua

function C:init()
  local cameraPosition = core_camera.getPosition()
@/gameplay/missionTypes/aiRace/constructor.lua

function C:init()
  self.supportsReplay = true
@/lua/ge/extensions/editor/crawlEditor/paths.lua

function C:init(crawlEditorParam)
  self.crawlEditor = crawlEditorParam
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/elemental/imCheckbox.lua

function C:init()
  self.data.startState = false
@/lua/ge/extensions/flowgraph/nodes/scene/keepPrefab.lua

function C:init()
@/lua/ge/extensions/flowgraph/nodes/vehicle/teleportToLastRoad.lua

function C:init()
  --self.data.useWheelCenter = false
@/lua/vehicle/controller/linearActuators/linearActuatorTrailerFeet.lua

local function init(jbeamData)
  attachedPosition = jbeamData.attachedDefaultPosition or 0
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/trackStageTime.lua

function C:init(mgr, ...)
end
@/lua/ge/extensions/flowgraph/nodes/career/onRefueling.lua

function C:init()
  self.flags = {}
@/lua/ge/extensions/flowgraph/nodes/career/onTestDriveChanged.lua

function C:init()
  self.flags = {}
@/lua/vehicle/powertrain/combustionEngine.lua
  device.thermals = rerequire(thermalsFileName)
  device.thermals.init(device, jbeamData)
    device.turbocharger = rerequire(turbochargerFileName)
    device.turbocharger.init(device, v.data[jbeamData.turbocharger])
  else
    device.supercharger = rerequire(superchargerFileName)
    device.supercharger.init(device, v.data[jbeamData.supercharger])
  else
    device.nitrousOxideInjection = rerequire(nitrousOxideFileName)
    device.nitrousOxideInjection.init(device, v.data[jbeamData.nitrousOxideInjection])
  else
@/lua/ge/extensions/gameplay/missions/missionTypes/editorHelper.lua
  if o.init then
    o:init()
  end
@/lua/ge/extensions/flowgraph/baseModule.lua

function C:init(mgr)
  self.mgr = mgr
  C.__index = C
  o:init(...)
  return o
  if o.init ~= baseInit then
    o:init()
  end
@/lua/ge/extensions/flowgraph/nodes/string/subString.lua

function C:init()
  self.data.from = 0
@/lua/ge/extensions/flowgraph/nodes/career/careerVehicleSelect.lua

function C:init()
  self.open = false
@/lua/ge/extensions/flowgraph/nodes/string/stringconcat.lua

function C:init()
  self.pinOut.value.value = ""
@/lua/ge/extensions/flowgraph/nodes/scene/camera/setCameraRotation.lua

function C:init()
  self.rotation = quat(0,0,0,0)
@/lua/ge/extensions/flowgraph/nodes/vehicle/onVehicleReset.lua

function C:init(mgr, ...)
@/lua/ge/extensions/flowgraph/nodes/scene/storeStatics.lua

function C:init(mgr, ...)
  self.objects = {}
@/lua/vehicle/bdebug.lua
    bdebugImpl = require('bdebugImpl')
    bdebugImpl.init(bdebugImplSavedState, _state)

local function init()
end
@/lua/vehicle/controller/drivingDynamics/actuators/adaptiveTorsionBars.lua

local function init(jbeamData)
  local torsionBarNames = jbeamData.torsionBarNames or {}
@/lua/ge/extensions/gameplay/util/sortedList.lua
-- This creates objects.
function C:init(name, parent, objectConstructor)
  self.objectConstructor = objectConstructor
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/mission/goToStartLine.lua

function C:init()
  self.vehicle = nil
@/lua/ge/extensions/editor/rallyEditor/testTab.lua

function C:init(rallyEditor)
  self.path = nil
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/nodes/gameplay/rally/vehicleStoppedNearPlane.lua

function C:init(mgr, ...)
  self.timer = 0
@/lua/ge/extensions/flowgraph/nodes/vehicle/ai/scriptAI/pathFromFile.lua

function C:init()
   self.files = FS:findFiles(trackFilePath, '*' .. trackFileExt, -1, true, false)
@/lua/ge/extensions/editor/dynamicDecals/textures.lua

-- reference to the editor tool, set in init()
local tool = nil
@/gameplay/missionTypes/chase/customNodes/suspectAiNode.lua

function C:init()
  self:onNodeReset()
@/lua/ge/extensions/flowgraph/nodes/ui/imgui/elemental/imNumbers.lua

function C:init()
  self.modes = {
@/lua/vehicle/controller/tech/powertrainSensor.lua
-- Initialises this powertrain sensor instance.
local function init(data)
  sensorId = data.sensorId
@/lua/vehicle/controller/tech/advancedIMU.lua
-- Initialises this sensor instance.
local function init(data)
  state.sensorId = data.sensorId -- The unique Id (integer) for this sensor instance.
@/lua/ge/extensions/flowgraph/nodes/vehicle/groundDistance.lua

function C:init()
  self.data.drawDebug = false
@/lua/ge/extensions/editor/missionEditor/previewChecker.lua

function C:init(missionEditor)
  self.missionEditor = missionEditor
  C.__index = C
  o:init(...)
  return o
@/lua/vehicle/controller/drivingDynamics/supervisors/components/aeroControl.lua

local function init(jbeamData)
  M.isActingAsTC = false
@/lua/ge/extensions/editor/crawlEditor/boundaries.lua

function C:init(crawlEditorParam)
  self.crawlEditor = crawlEditorParam
  C.__index = C
  o:init(...)
  return o
@/lua/ge/extensions/flowgraph/modules/vehicleModule.lua
C.hooks = {'onCouplerAttached', 'onCouplerDetached','onBusUpdate', 'onVehicleResetted'}
function C:init()
  self.vehicles = {}
@/ui/lib/ext/angular-material/angular-material.min.js
A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff",contrastDefaultColor:"light",contrastDarkColors:"100 200 300 400 A100",contrastStrongLightColors:"500 600 700 A200 A400 A700"},"light-blue":{50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900 A700",contrastStrongLightColors:"500 600 700 800 A700"},cyan:{50:"#e0f7fa",100:"#b2ebf2",200:"#80deea",300:"#4dd0e1",400:"#26c6da",500:"#00bcd4",600:"#00acc1",700:"#0097a7",800:"#00838f",900:"#006064",A100:"#84ffff",A200:"#18ffff",A400:"#00e5ff",A700:"#00b8d4",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700 800"},teal:{50:"#e0f2f1",100:"#b2dfdb",200:"#80cbc4",300:"#4db6ac",400:"#26a69a",500:"#009688",600:"#00897b",700:"#00796b",800:"#00695c",900:"#004d40",A100:"#a7ffeb",A200:"#64ffda",A400:"#1de9b6",A700:"#00bfa5",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},green:{50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853",contrastDefaultColor:"dark",contrastLightColors:"500 600 700 800 900",contrastStrongLightColors:"500 600 700"},"light-green":{50:"#f1f8e9",100:"#dcedc8",200:"#c5e1a5",300:"#aed581",400:"#9ccc65",500:"#8bc34a",600:"#7cb342",700:"#689f38",800:"#558b2f",900:"#33691e",A100:"#ccff90",A200:"#b2ff59",A400:"#76ff03",A700:"#64dd17",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},lime:{50:"#f9fbe7",100:"#f0f4c3",200:"#e6ee9c",300:"#dce775",400:"#d4e157",500:"#cddc39",600:"#c0ca33",700:"#afb42b",800:"#9e9d24",900:"#827717",A100:"#f4ff81",A200:"#eeff41",A400:"#c6ff00",A700:"#aeea00",contrastDefaultColor:"dark",contrastLightColors:"900",contrastStrongLightColors:"900"},yellow:{50:"#fffde7",100:"#fff9c4",200:"#fff59d",300:"#fff176",400:"#ffee58",500:"#ffeb3b",600:"#fdd835",700:"#fbc02d",800:"#f9a825",900:"#f57f17",A100:"#ffff8d",A200:"#ffff00",A400:"#ffea00",A700:"#ffd600",contrastDefaultColor:"dark"},amber:{50:"#fff8e1",100:"#ffecb3",200:"#ffe082",300:"#ffd54f",400:"#ffca28",500:"#ffc107",600:"#ffb300",700:"#ffa000",800:"#ff8f00",900:"#ff6f00",A100:"#ffe57f",A200:"#ffd740",A400:"#ffc400",A700:"#ffab00",contrastDefaultColor:"dark"},orange:{50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00",contrastDefaultColor:"dark",contrastLightColors:"800 900",contrastStrongLightColors:"800 900"},"deep-orange":{50:"#fbe9e7",100:"#ffccbc",200:"#ffab91",300:"#ff8a65",400:"#ff7043",500:"#ff5722",600:"#f4511e",700:"#e64a19",800:"#d84315",900:"#bf360c",A100:"#ff9e80",A200:"#ff6e40",A400:"#ff3d00",A700:"#dd2c00",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300 400 A100 A200",contrastStrongLightColors:"500 600 700 800 900 A400 A700"},brown:{50:"#efebe9",100:"#d7ccc8",200:"#bcaaa4",300:"#a1887f",400:"#8d6e63",500:"#795548",600:"#6d4c41",700:"#5d4037",800:"#4e342e",900:"#3e2723",A100:"#d7ccc8",A200:"#bcaaa4",A400:"#8d6e63",A700:"#5d4037",contrastDefaultColor:"light",contrastDarkColors:"50 100 200",contrastStrongLightColors:"300 400"},grey:{50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",1000:"#000000",A100:"#ffffff",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161",contrastDefaultColor:"dark",contrastLightColors:"600 700 800 900"},"blue-grey":{50:"#eceff1",100:"#cfd8dc",200:"#b0bec5",300:"#90a4ae",400:"#78909c",500:"#607d8b",600:"#546e7a",700:"#455a64",800:"#37474f",900:"#263238",A100:"#cfd8dc",A200:"#b0bec5",A400:"#78909c",A700:"#455a64",contrastDefaultColor:"light",contrastDarkColors:"50 100 200 300",contrastStrongLightColors:"400 500"}})}(),function(){function e(e){function o(e,t){return t=t||{},m[e]=a(e,t),g}function r(e,n){return a(e,t.extend({},m[e]||{},n))}function a(e,t){var n=C.filter(function(e){return!t[e]});if(n.length)throw new Error("Missing colors %1 in palette %2!".replace("%1",n.join(", ")).replace("%2",e));return t}function d(e,n){if(s[e])return s[e];n=n||"default";var o="string"==typeof n?s[n]:n,r=new c(e);return o&&t.forEach(o.colors,function(e,n){r.colors[n]={name:e.name,hues:t.extend({},e.hues)}}),s[e]=r,r}function c(e){function n(e){if(e=0===arguments.length?!0:!!e,e!==o.isDark){o.isDark=e,o.foregroundPalette=o.isDark?f:p,o.foregroundShadow=o.isDark?h:b;var n=o.isDark?T:A,r=o.isDark?A:T;return t.forEach(n,function(e,t){var n=o.colors[t],i=r[t];if(n)for(var a in n.hues)n.hues[a]===i[a]&&(n.hues[a]=e[a])}),o}}var o=this;o.name=e,o.colors={},o.dark=n,n(!1),M.forEach(function(e){var n=(o.isDark?T:A)[e];o[e+"Palette"]=function(r,i){var a=o.colors[e]={name:r,hues:t.extend({},n,i)};return Object.keys(a.hues).forEach(function(e){if(!n[e])throw new Error("Invalid hue name '%1' in theme %2's %3 color %4. Available hue names: %4".replace("%1",e).replace("%2",o.name).replace("%3",r).replace("%4",Object.keys(n).join(", ")))}),Object.keys(a.hues).map(function(e){return a.hues[e]}).forEach(function(t){if(-1==C.indexOf(t))throw new Error("Invalid hue value '%1' in theme %2's %3 color %4. Available hue values: %5".replace("%1",t).replace("%2",o.name).replace("%3",e).replace("%4",r).replace("%5",C.join(", ")))}),o},o[e+"Color"]=function(){var t=Array.prototype.slice.call(arguments);return console.warn("$mdThemingProviderTheme."+e+"Color() has been deprecated. Use $mdThemingProviderTheme."+e+"Palette() instead."),o[e+"Palette"].apply(o,t)}})}function u(e,o){function r(e){return e===n||""===e?!0:i.THEMES[e]!==n}function i(t,o){o===n&&(o=t,t=n),t===n&&(t=e),i.inherit(o,o)}return i.inherit=function(n,i){function a(e){r(e)||o.warn("Attempted to use unregistered theme '"+e+"'. Register it with $mdThemingProvider.theme().");var t=n.data("$mdThemeName");t&&n.removeClass("md-"+t+"-theme"),n.addClass("md-"+e+"-theme"),n.data("$mdThemeName",e),d&&n.data("$mdThemeController",d)}var d=i.controller("mdTheme"),c=n.attr("md-theme-watch");if((v||t.isDefined(c))&&"false"!=c){var l=e.$watch(function(){return d&&d.$mdTheme||E},a);n.on("$destroy",l)}else{var m=d&&d.$mdTheme||E;a(m)}},i.THEMES=t.extend({},s),i.defaultTheme=function(){return E},i.registered=r,i}m={},s={};var g,E="default",v=!1;return t.extend(m,e),u.$inject=["$rootScope","$log"],g={definePalette:o,extendPalette:r,theme:d,setDefaultTheme:function(e){E=e},alwaysWatchTheme:function(e){v=e},$get:u,_LIGHT_DEFAULT_HUES:A,_DARK_DEFAULT_HUES:T,_PALETTES:m,_THEMES:s,_parseRules:i,_rgba:l}}function o(e,t,n){return{priority:100,link:{pre:function(o,r,i){var a={$setTheme:function(t){e.registered(t)||n.warn("attempted to use unregistered theme '"+t+"'"),a.$mdTheme=t}};r.data("$mdThemeController",a),a.$setTheme(t(i.mdTheme)(o)),i.$observe("mdTheme",a.$setTheme)}}}}function r(e){return e}function i(e,n,o){d(e,n),o=o.replace(/THEME_NAME/g,e.name);var r=[],i=e.colors[n],a=new RegExp(".md-"+e.name+"-theme","g"),c=new RegExp("('|\")?{{\\s*("+n+")-(color|contrast)-?(\\d\\.?\\d*)?\\s*}}(\"|')?","g"),s=/'?"?\{\{\s*([a-zA-Z]+)-(A?\d+|hue\-[0-3]|shadow)-?(\d\.?\d*)?\s*\}\}'?"?/g,u=m[i.name];return o=o.replace(s,function(t,n,o,r){return"foreground"===n?"shadow"==o?e.foregroundShadow:e.foregroundPalette[o]||e.foregroundPalette[1]:(0===o.indexOf("hue")&&(o=e.colors[n].hues[o]),l((m[e.colors[n].name][o]||"").value,r))}),t.forEach(i.hues,function(t,n){var i=o.replace(c,function(e,n,o,r,i){return l(u[t]["color"===r?"value":"contrast"],i)});"default"!==n&&(i=i.replace(a,".md-"+e.name+"-theme.md-"+n)),"default"==e.name&&(i=i.replace(/\.md-default-theme/g,"")),r.push(i)}),r}function a(e){function n(e){var n=e.contrastDefaultColor,o=e.contrastLightColors||[],r=e.contrastStrongLightColors||[],i=e.contrastDarkColors||[];"string"==typeof o&&(o=o.split(" ")),"string"==typeof r&&(r=r.split(" ")),"string"==typeof i&&(i=i.split(" ")),delete e.contrastDefaultColor,delete e.contrastLightColors,delete e.contrastStrongLightColors,delete e.contrastDarkColors,t.forEach(e,function(a,d){function l(){return"light"===n?i.indexOf(d)>-1?g:r.indexOf(d)>-1?v:E:o.indexOf(d)>-1?r.indexOf(d)>-1?v:E:g}if(!t.isObject(a)){var m=c(a);if(!m)throw new Error("Color %1, in palette %2's hue %3, is invalid. Hex or rgb(a) color expected.".replace("%1",a).replace("%2",e.name).replace("%3",d));e[d]={value:m,contrast:l()}}})}var o=document.getElementsByTagName("head")[0],r=o?o.firstElementChild:null,a=e.has("$MD_THEME_CSS")?e.get("$MD_THEME_CSS"):"";if(r&&0!==a.length){t.forEach(m,n);var d={},l=a.split(/\}(?!(\}|'|"|;))/).filter(function(e){return e&&e.length}).map(function(e){return e.trim()+"}"}),p=new RegExp("md-("+M.join("|")+")","g");M.forEach(function(e){d[e]=""}),l.forEach(function(e){for(var t,n=(e.match(p),0);t=M[n];n++)if(e.indexOf(".md-"+t)>-1)return d[t]+=e;for(n=0;t=M[n];n++)if(e.indexOf(t)>-1)return d[t]+=e;return d[$]+=e}),t.forEach(s,function(e){u[e.name]||(M.forEach(function(t){for(var n=i(e,t,d[t]);n.length;){var a=document.createElement("style");a.setAttribute("type","text/css"),a.appendChild(document.createTextNode(n.shift())),o.insertBefore(a,r)}}),e.colors.primary.name==e.colors.accent.name&&console.warn("$mdThemingProvider: Using the same palette for primary and accent. This violates the material design spec."),u[e.name]=!0)})}}function d(e,t){if(!m[(e.colors[t]||{}).name])throw new Error("You supplied an invalid color palette for theme %1's %2 palette. Available palettes: %3".replace("%1",e.name).replace("%2",t).replace("%3",Object.keys(m).join(", ")))}function c(e){if(t.isArray(e)&&3==e.length)return e;if(/^rgb/.test(e))return e.replace(/(^\s*rgba?\(|\)\s*$)/g,"").split(",").map(function(e,t){return 3==t?parseFloat(e,10):parseInt(e,10)});if("#"==e.charAt(0)&&(e=e.substring(1)),/^([a-fA-F0-9]{3}){1,2}$/g.test(e)){var n=e.length/3,o=e.substr(0,n),r=e.substr(n,n),i=e.substr(2*n);return 1===n&&(o+=o,r+=r,i+=i),[parseInt(o,16),parseInt(r,16),parseInt(i,16)]}}function l(e,n){return e?(4==e.length&&(e=t.copy(e),n?e.pop():n=e.pop()),n&&("number"==typeof n||"string"==typeof n&&n.length)?"rgba("+e.join(",")+","+n+")":"rgb("+e.join(",")+")"):"rgb('0,0,0')"}t.module("material.core.theming",["material.core.theming.palette"]).directive("mdTheme",o).directive("mdThemable",r).provider("$mdTheming",e).run(a);var m,s,u={},p={name:"dark",1:"rgba(0,0,0,0.87)",2:"rgba(0,0,0,0.54)",3:"rgba(0,0,0,0.26)",4:"rgba(0,0,0,0.12)"},f={name:"light",1:"rgba(255,255,255,1.0)",2:"rgba(255,255,255,0.7)",3:"rgba(255,255,255,0.3)",4:"rgba(255,255,255,0.12)"},h="1px 1px 0px rgba(0,0,0,0.4), -1px -1px 0px rgba(0,0,0,0.4)",b="",g=c("rgba(0,0,0,0.87)"),E=c("rgba(255,255,255,0.87"),v=c("rgb(255,255,255)"),M=["primary","accent","warn","background"],$="primary",A={accent:{"default":"A200","hue-1":"A100","hue-2":"A400","hue-3":"A700"},background:{"default":"A100","hue-1":"300","hue-2":"800","hue-3":"900"}},T={background:{"default":"800","hue-1":"300","hue-2":"600","hue-3":"900"}};M.forEach(function(e){var t={"default":"500","hue-1":"300","hue-2":"800","hue-3":"A100"};A[e]||(A[e]=t),T[e]||(T[e]=t)});var C=["50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700"];e.$inject=["$mdColorPalette"],o.$inject=["$mdTheming","$interpolate","$log"],r.$inject=["$mdTheming"],a.$inject=["$injector"]}(),function(){t.module("material.components.autocomplete",["material.core","material.components.icon"])}(),function(){function e(){return{restrict:"E"}}function n(e){function n(e,n,i,a,d,c,l){function m(o,r,l){r=i.extractElementByName(r,"md-bottom-sheet"),p=i.createBackdrop(o,"md-bottom-sheet-backdrop md-opaque"),p.on("click",function(){i.nextTick(d.cancel,!0)}),a.inherit(p,l.parent),e.enter(p,l.parent,null);var m=new u(r,l.parent);return l.bottomSheet=m,l.targetEvent&&t.element(l.targetEvent.target).blur(),a.inherit(m.element,l.parent),l.disableParentScroll&&(l.lastOverflow=l.parent.css("overflow"),l.parent.css("overflow","hidden")),e.enter(m.element,l.parent).then(function(){var e=t.element(r[0].querySelector("button")||r[0].querySelector("a")||r[0].querySelector("[ng-click]"));e.focus(),l.escapeToClose&&(l.rootElementKeyupCallback=function(e){e.keyCode===n.KEY_CODE.ESCAPE&&i.nextTick(d.cancel,!0)},c.on("keyup",l.rootElementKeyupCallback))})}function s(n,o,r){var i=r.bottomSheet;return e.leave(p),e.leave(i.element).then(function(){r.disableParentScroll&&(r.parent.css("overflow",r.lastOverflow),delete r.lastOverflow),i.cleanup(),r.targetEvent&&t.element(r.targetEvent.target).focus()})}function u(e,t){function a(t){e.css(n.CSS.TRANSITION_DURATION,"0ms")}function c(t){var o=t.pointer.distanceY;5>o&&(o=Math.max(-r,o/2)),e.css(n.CSS.TRANSFORM,"translate3d(0,"+(r+o)+"px,0)")}function m(t){if(t.pointer.distanceY>0&&(t.pointer.distanceY>20||Math.abs(t.pointer.velocityY)>o)){var r=e.prop("offsetHeight")-t.pointer.distanceY,a=Math.min(r/t.pointer.velocityY*.75,500);e.css(n.CSS.TRANSITION_DURATION,a+"ms"),i.nextTick(d.cancel,!0)}else e.css(n.CSS.TRANSITION_DURATION,""),e.css(n.CSS.TRANSFORM,"")}var s=l.register(t,"drag",{horizontal:!1});return t.on("$md.dragstart",a).on("$md.drag",c).on("$md.dragend",m),{element:e,cleanup:function(){s(),t.off("$md.dragstart",a).off("$md.drag",c).off("$md.dragend",m)}}}var p;return{themable:!0,targetEvent:null,onShow:m,onRemove:s,escapeToClose:!0,disableParentScroll:!0}}var o=.5,r=80;return n.$inject=["$animate","$mdConstant","$mdUtil","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture"],e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","targetEvent"],options:n})}t.module("material.components.bottomSheet",["material.core","material.components.backdrop"]).directive("mdBottomSheet",e).provider("$mdBottomSheet",n),n.$inject=["$$interimElementProvider"]}(),function(){t.module("material.components.backdrop",["material.core"]).directive("mdBackdrop",["$mdTheming","$animate","$rootElement","$window","$log","$$rAF","$document",function(e,t,n,o,r,i,a){function d(d,l,m){var s=o.getComputedStyle(a[0].body);if("fixed"==s.position){var u=parseInt(s.height,10)+Math.abs(parseInt(s.top,10));l.css({height:u+"px"})}t.pin&&t.pin(l,n),i(function(){var t=l.parent()[0];if(t){var n=o.getComputedStyle(t);"static"==n.position&&r.warn(c)}e.inherit(l,l.parent())})}var c=" may not work properly in a scrolled, static-positioned parent container.";return{restrict:"E",link:d}}])}(),function(){function e(e){return{restrict:"E",link:function(t,n,o){e(n)}}}t.module("material.components.card",["material.core"]).directive("mdCard",e),e.$inject=["$mdTheming"]}(),function(){function e(e,n,o,r,i,a,d){function c(n,c){return c.type="checkbox",c.tabindex=c.tabindex||"0",n.attr("role",c.type),function(n,c,m,s){function u(e,t,o){m[e]&&n.$watch(m[e],function(e){o[e]&&c.attr(t,o[e])})}function p(e){var t=e.which||e.keyCode;(t===r.KEY_CODE.SPACE||t===r.KEY_CODE.ENTER)&&(e.preventDefault(),c.hasClass("md-focused")||c.addClass("md-focused"),f(e))}function f(e){c[0].hasAttribute("disabled")||n.$apply(function(){var t=m.ngChecked?m.checked:!s.$viewValue;s.$setViewValue(t,e&&e.type),s.$render()})}function h(){s.$viewValue?c.addClass(l):c.removeClass(l)}s=s||a.fakeNgModel(),i(c),m.ngChecked&&n.$watch(n.$eval.bind(n,m.ngChecked),s.$setViewValue.bind(s)),u("ngDisabled","tabindex",{"true":"-1","false":m.tabindex}),o.expectWithText(c,"aria-label"),e.link.pre(n,{on:t.noop,0:{}},m,[s]),n.mouseActive=!1,c.on("click",f).on("keypress",p).on("mousedown",function(){n.mouseActive=!0,d(function(){n.mouseActive=!1},100)}).on("focus",function(){n.mouseActive===!1&&c.addClass("md-focused")}).on("blur",function(){c.removeClass("md-focused")}),s.$render=h}}e=e[0];var l="md-checked";return{restrict:"E",transclude:!0,require:"?ngModel",priority:210,template:'
',compile:c}}t.module("material.components.checkbox",["material.core"]).directive("mdCheckbox",e),e.$inject=["inputDirective","$mdInkRipple","$mdAria","$mdConstant","$mdTheming","$mdUtil","$timeout"]}(),function(){function e(e){function t(e,t){this.$scope=e,this.$element=t}return{restrict:"E",controller:["$scope","$element",t],link:function(t,o,r){o[0];e(o),t.$broadcast("$mdContentLoaded",o),n(o[0])}}}function n(e){t.element(e).on("$md.pressdown",function(t){"t"===t.pointer.type&&(t.$materialScrollFixed||(t.$materialScrollFixed=!0,0===e.scrollTop?e.scrollTop=1:e.scrollHeight===e.scrollTop+e.offsetHeight&&(e.scrollTop-=1)))})}t.module("material.components.content",["material.core"]).directive("mdContent",e),e.$inject=["$mdTheming"]}(),function(){function e(e,n,o,r){function i(e){return t.isDefined(e.href)||t.isDefined(e.ngHref)||t.isDefined(e.ngLink)||t.isDefined(e.uiSref)}function a(e,t){return i(t)?'':''}function d(a,d,c){var l=d[0];n(d),e.attach(a,d);var m=l.textContent.trim();m||o.expect(d,"aria-label"),i(c)&&t.isDefined(c.ngDisabled)&&a.$watch(c.ngDisabled,function(e){d.attr("tabindex",e?-1:0)}),d.on("click",function(e){c.disabled===!0&&(e.preventDefault(),e.stopImmediatePropagation())}),a.mouseActive=!1,d.on("mousedown",function(){a.mouseActive=!0,r(function(){a.mouseActive=!1},100)}).on("focus",function(){a.mouseActive===!1&&d.addClass("md-focused")}).on("blur",function(){d.removeClass("md-focused")})}return{restrict:"EA",replace:!0,transclude:!0,template:a,link:d}}t.module("material.components.button",["material.core"]).directive("mdButton",e),e.$inject=["$mdButtonInkRipple","$mdTheming","$mdAria","$timeout"]}(),function(){function e(e){return{restrict:"E",link:e}}t.module("material.components.divider",["material.core"]).directive("mdDivider",e),e.$inject=["$mdTheming"]}(),function(){t.module("material.components.chips",["material.core","material.components.autocomplete"])}(),function(){function e(e,n){return{restrict:"E",link:function(o,r,i){n(r),e(function(){function e(){r.toggleClass("md-content-overflow",o.scrollHeight>o.clientHeight)}var n,o=r[0].querySelector("md-dialog-content");o&&(n=o.getElementsByTagName("img"),e(),t.element(n).on("load",e))})}}}function n(e){function n(e,t){return{template:['',' ','

{{ dialog.title }}

',"

{{ dialog.content }}

","
",'
',' '," {{ dialog.cancel }}"," ",' '," {{ dialog.ok }}"," ","
","
"].join("").replace(/\s\s+/g,""),controller:function(){this.hide=function(){e.hide(!0)},this.abort=function(){e.cancel()}},controllerAs:"dialog",bindToController:!0,theme:t.defaultTheme()}}function o(e,n,o,r,i,a,d,c){function l(e,n,r){function i(){function e(){var e=n[0].querySelector(".dialog-close");if(!e){var o=n[0].querySelectorAll(".md-actions button");e=o[o.length-1]}return t.element(e)}if(r.focusOnOpen){var o="alert"===r.$type?n.find("md-dialog-content"):e();o.focus()}}return n=o.extractElementByName(n,"md-dialog"),t.element(a[0].body).addClass("md-dialog-is-showing"),s(n,r),f(n.find("md-dialog"),r),p(e,n,r),g(n,r).then(function(){u(n,r),h(n,r),i()})}function m(e,n,o){return o.deactivateListeners(),o.unlockScreenReader(),o.hideBackdrop(),E(n,o)["finally"](function(){t.element(a[0].body).removeClass("md-dialog-is-showing"),n.remove(),o.origin.focus()})}function s(e,n){var r={element:null,bounds:null,focus:t.noop};n.origin=t.extend({},r,n.origin||{});var i=t.element((n.targetEvent||{}).target);i&&i.length&&(n.origin.element=i,n.origin.bounds=i[0].getBoundingClientRect(),n.origin.focus=function(){i.focus()}),n.parent=t.element(n.parent||c),n.disableParentScroll&&(n.restoreScroll=o.disableScrollAround(e,n.parent))}function u(t,n){var i=[],a=function(){var t="alert"==n.$type?e.hide:e.cancel;o.nextTick(t,!0)};if(n.escapeToClose){var d=n.parent,c=function(e){e.keyCode===r.KEY_CODE.ESCAPE&&(e.stopPropagation(),e.preventDefault(),a())};t.on("keyup",c),d.on("keyup",c),i.push(function(){t.off("keyup",c),d.off("keyup",c)})}if(n.clickOutsideToClose){var d=t,l=function(e){e.target===d[0]&&(e.stopPropagation(),e.preventDefault(),a())};d.on("click",l),i.push(function(){d.off("click",l)})}n.deactivateListeners=function(){i.forEach(function(e){e()}),n.deactivateListeners=null}}function p(e,t,n){n.hasBackdrop&&(n.backdrop=o.createBackdrop(e,"md-dialog-backdrop md-opaque"),i.enter(n.backdrop,n.parent)),n.hideBackdrop=function(){n.backdrop&&i.leave(n.backdrop),n.disableParentScroll&&n.restoreScroll(),n.hideBackdrop=null}}function f(e,t){var r="alert"===t.$type?"alertdialog":"dialog",i=e.find("md-dialog-content"),a=e.attr("id")||"dialog_"+o.nextUid();e.attr({role:r,tabIndex:"-1"}),0===i.length&&(i=e),i.attr("id",a),e.attr("aria-describedby",a),t.ariaLabel?n.expect(e,"aria-label",t.ariaLabel):n.expectAsync(e,"aria-label",function(){var e=i.text().split(/\s+/);return e.length>3&&(e=e.slice(0,3).concat("...")),e.join(" ")})}function h(e,t){function n(e){for(;e.parentNode;){if(e===document.body)return;for(var t=e.parentNode.children,r=0;r'+e+"
"}}}return n.$inject=["$mdDialog","$mdTheming"],o.$inject=["$mdDialog","$mdAria","$mdUtil","$mdConstant","$animate","$document","$window","$rootElement"],e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","parent"],options:o}).addPreset("alert",{methods:["title","content","ariaLabel","ok","theme"],options:n}).addPreset("confirm",{methods:["title","content","ariaLabel","ok","cancel","theme"],options:n})}t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",e).provider("$mdDialog",n),e.$inject=["$$rAF","$mdTheming"],n.$inject=["$$interimElementProvider"]}(),function(){!function(){function e(){function e(e,t){t.prepend('
')}function t(e,t,n,o){function r(){d.direction=d.direction||"down",d.isOpen=d.isOpen||!1}function i(){t.on("mouseenter",d.mouseenter),t.on("mouseleave",d.mouseleave)}function a(){e.$watch("vm.direction",function(e,o){n.removeClass(t,"md-"+o),n.addClass(t,"md-"+e)}),e.$watch("vm.isOpen",function(e){var o=e?"md-is-open":"",r=e?"":"md-is-open";n.setClass(t,o,r)})}var d=this;d.open=function(){e.$evalAsync("vm.isOpen = true")},d.close=function(){!d.moused&&e.$evalAsync("vm.isOpen = false")},d.mouseenter=function(){d.moused=!0,d.open()},d.mouseleave=function(){d.moused=!1,d.close()},r(),i(),a(),o.nextTick(function(){n.addClass(t,"md-noop")})}return t.$inject=["$scope","$element","$animate","$mdUtil"],{restrict:"E",scope:{direction:"@?mdDirection",isOpen:"=?mdOpen"},bindToController:!0,controller:t,controllerAs:"vm",link:e}}function n(){function e(e){var n=e[0],o=e.controller("mdFabSpeedDial"),r=n.querySelectorAll(".md-fab-action-item"),i=n.querySelector(".md-css-variables"),a=i.style.zIndex;t.forEach(r,function(e,t){var n=e.style;n.transform=n.webkitTransform="",n.transitionDelay="",n.opacity=1,n.zIndex=r.length-t+a}),o.isOpen||t.forEach(r,function(e,t){var n,r,i=e.style;switch(o.direction){case"up":n=e.scrollHeight*(t+1),r="Y";break;case"down":n=-e.scrollHeight*(t+1),r="Y";break;case"left":n=e.scrollWidth*(t+1),r="X";break;case"right":n=-e.scrollWidth*(t+1),r="X"}var a="translate"+r+"("+n+"px)";i.transform=i.webkitTransform=a})}return{addClass:function(t,n,o){t.hasClass("md-fling")&&(e(t),o())},removeClass:function(t,n,o){e(t),o()}}}function o(){function e(e){var o=e[0],r=e.controller("mdFabSpeedDial"),i=o.querySelectorAll(".md-fab-action-item");t.forEach(i,function(e,t){var o=e.style,a=t*n;o.opacity=r.isOpen?1:0,o.transform=o.webkitTransform=r.isOpen?"scale(1)":"scale(0)",o.transitionDelay=(r.isOpen?a:i.length-a)+"ms"})}var n=65;return{addClass:function(t,n,o){e(t),o()},removeClass:function(t,n,o){e(t),o()}}}t.module("material.components.fabSpeedDial",["material.core","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabSpeedDial",e).animation(".md-fling",n).animation(".md-scale",o).service("mdFabSpeedDialFlingAnimation",n).service("mdFabSpeedDialScaleAnimation",o)}()}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],compile:function(e,n){var o=e.children();return o.attr("ng-repeat")?o.addClass("md-fab-action-item"):o.wrap('
'),function(e,n,o,r){var i=r[0]||r[1];i&&t.forEach(n.children(),function(e){e=t.element(e).children()[0],t.element(e).on("focus",i.open),t.element(e).on("blur",i.close)})}}}}t.module("material.components.fabActions",["material.core"]).directive("mdFabActions",e)}()}(),function(){!function(){function n(){function e(e,t,n){var o=this;o.isOpen=o.isOpen||!1,o.open=function(){o.isOpen=!0,e.$apply()},o.close=function(){o.isOpen=!1,e.$apply()},t.addClass("md-fab-toolbar"),t.on("mouseenter",o.open),t.on("mouseleave",o.close),e.$watch("vm.isOpen",function(e){var o=e?"md-is-open":"",r=e?"":"md-is-open";n.setClass(t,o,r)})}function t(e,t,n){t.find("md-fab-trigger").find("button").attr("tabindex","-1"),t.find("md-fab-trigger").find("button").prepend('
')}return e.$inject=["$scope","$element","$animate"],{restrict:"E",transclude:!0,template:'
',scope:{isOpen:"=?mdOpen"},bindToController:!0,controller:e,controllerAs:"vm",link:t}}function o(){function n(n,o,r){var i=n[0],a=n.controller("mdFabToolbar"),d=i.querySelector(".md-fab-toolbar-background"),c=i.querySelector("md-fab-trigger button"),l=i.querySelector("md-fab-trigger button md-icon"),m=n.find("md-fab-actions").children();if(c&&d){var s=e.getComputedStyle(c).getPropertyValue("background-color"),u=i.offsetWidth,p=(i.offsetHeight,2*u);d.style.backgroundColor=s,d.style.borderRadius=u+"px",a.isOpen?(d.style.width=p+"px",d.style.height=p+"px",d.style.top=-(p/2)+"px",n.hasClass("md-left")&&(d.style.left=-(p/2)+"px",d.style.right=null),n.hasClass("md-right")&&(d.style.right=-(p/2)+"px",d.style.left=null),d.style.transitionDelay="0ms",l&&(l.style.transitionDelay=".3s"),t.forEach(m,function(e,t){e.style.transitionDelay=25*(m.length-t)+"ms"})):(d.style.width=c.offsetWidth+"px",d.style.height=c.offsetHeight+"px",d.style.top="0px",n.hasClass("md-left")&&(d.style.left="0px",d.style.right=null),n.hasClass("md-right")&&(d.style.right="0px",d.style.left=null),d.style.transitionDelay="200ms",l&&(l.style.transitionDelay="0ms"),t.forEach(m,function(e,t){e.style.transitionDelay=25*t+"ms"}))}}return{addClass:function(e,t,o){n(e,t,o),o()},removeClass:function(e,t,o){n(e,t,o),o()}}}t.module("material.components.fabToolbar",["material.core","material.components.fabTrigger","material.components.fabActions"]).directive("mdFabToolbar",n).animation(".md-fab-toolbar",o).service("mdFabToolbarAnimation",o)}()}(),function(){!function(){function e(){return{restrict:"E",require:["^?mdFabSpeedDial","^?mdFabToolbar"],link:function(e,n,o,r){var i=r[0]||r[1];i&&t.forEach(n.children(),function(e){t.element(e).on("focus",i.open),t.element(e).on("blur",i.close)})}}}t.module("material.components.fabTrigger",["material.core"]).directive("mdFabTrigger",e)}()}(),function(){function e(e,o,r,i){function a(n,a,d,c){function l(){for(var e in o.MEDIA)i(e),i.getQuery(o.MEDIA[e]).addListener(T);return i.watchResponsiveAttributes(["md-cols","md-row-height"],d,s)}function m(){c.layoutDelegate=t.noop,C();for(var e in o.MEDIA)i.getQuery(o.MEDIA[e]).removeListener(T)}function s(e){null==e?c.invalidateLayout():i(e)&&c.invalidateLayout()}function u(e){var o=b(),i={tileSpans:g(o),colCount:E(),rowMode:$(),rowHeight:M(),gutter:v()};if(e||!t.equals(i,y)){var d=r(i.colCount,i.tileSpans,o).map(function(e,n){return{grid:{element:a,style:h(i.colCount,n,i.gutter,i.rowMode,i.rowHeight)},tiles:e.map(function(e,n){return{element:t.element(o[n]),style:f(e.position,e.spans,i.colCount,i.rowCount,i.gutter,i.rowMode,i.rowHeight)}})}}).reflow().performance();n.mdOnLayout({$event:{performance:d}}),y=i}}function p(e){return w+e+k}function f(e,t,n,o,r,i,a){var d=1/n*100,c=(n-1)/n,l=x({share:d,gutterShare:c,gutter:r}),m={left:N({unit:l,offset:e.col,gutter:r}),width:_({unit:l,span:t.col,gutter:r}),paddingTop:"",marginTop:"",top:"",height:""};switch(i){case"fixed":m.top=N({unit:a,offset:e.row,gutter:r}),m.height=_({unit:a,span:t.row,gutter:r});break;case"ratio":var s=d/a,u=x({share:s,gutterShare:c,gutter:r});m.paddingTop=_({unit:u,span:t.row,gutter:r}),m.marginTop=N({unit:u,offset:e.row,gutter:r});break;case"fit":var p=(o-1)/o,s=1/o*100,u=x({share:s,gutterShare:p,gutter:r});m.top=N({unit:u,offset:e.row,gutter:r}),m.height=_({unit:u,span:t.row,gutter:r})}return m}function h(e,t,n,o,r){var i={height:"",paddingBottom:""};switch(o){case"fixed":i.height=_({unit:r,span:t,gutter:n});break;case"ratio":var a=1===e?0:(e-1)/e,d=1/e*100,c=d*(1/r),l=x({share:c,gutterShare:a,gutter:n});i.paddingBottom=_({unit:l,span:t,gutter:n});break;case"fit":}return i}function b(){return[].filter.call(a.children(),function(e){return"MD-GRID-TILE"==e.tagName})}function g(e){return[].map.call(e,function(e){var n=t.element(e).controller("mdGridTile");return{row:parseInt(i.getResponsiveAttribute(n.$attrs,"md-rowspan"),10)||1,col:parseInt(i.getResponsiveAttribute(n.$attrs,"md-colspan"),10)||1}})}function E(){var e=parseInt(i.getResponsiveAttribute(d,"md-cols"),10);if(isNaN(e))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";return e}function v(){return A(i.getResponsiveAttribute(d,"md-gutter")||1)}function M(){var e=i.getResponsiveAttribute(d,"md-row-height");switch($()){case"fixed":return A(e);case"ratio":var t=e.split(":");return parseFloat(t[0])/parseFloat(t[1]);case"fit":return 0}}function $(){var e=i.getResponsiveAttribute(d,"md-row-height");return"fit"==e?"fit":-1!==e.indexOf(":")?"ratio":"fixed"}function A(e){return/\D$/.test(e)?e:e+"px"}a.attr("role","list"),c.layoutDelegate=u;var T=t.bind(c,c.invalidateLayout),C=l();n.$on("$destroy",m);var y,w=e.startSymbol(),k=e.endSymbol(),x=e(p("share")+"% - ("+p("gutter")+" * "+p("gutterShare")+")"),N=e("calc(("+p("unit")+" + "+p("gutter")+") * "+p("offset")+")"),_=e("calc(("+p("unit")+") * "+p("span")+" + ("+p("span")+" - 1) * "+p("gutter")+")")}return{restrict:"E",controller:n, scope:{mdOnLayout:"&"},link:a}}function n(e){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=e.nextTick,this.layoutDelegate=t.noop}function o(e){function n(t,n){var o,a,d,c,l,m;return c=e.time(function(){a=r(t,n)}),o={layoutInfo:function(){return a},map:function(t){return l=e.time(function(){var e=o.layoutInfo();d=t(e.positioning,e.rowCount)}),o},reflow:function(t){return m=e.time(function(){var e=t||i;e(d.grid,d.tiles)}),o},performance:function(){return{tileCount:n.length,layoutTime:c,mapTime:l,reflowTime:m,totalTime:c+l+m}}}}function o(e,t){e.element.css(e.style),t.forEach(function(e){e.element.css(e.style)})}function r(e,t){function n(t,n){if(t.col>e)throw"md-grid-list: Tile at position "+n+" has a colspan ("+t.col+") that exceeds the column count ("+e+")";for(var a=0,m=0;m-a=e?o():(a=l.indexOf(0,d),-1!==a&&-1!==(m=i(a+1))?d=m+1:(a=m=0,o()));return r(a,t.col,t.row),d=a+t.col,{col:a,row:c}}function o(){d=0,c++,r(0,e,-1)}function r(e,t,n){for(var o=e;e+t>o;o++)l[o]=Math.max(l[o]+n,0)}function i(e){var t;for(t=e;tn;n++)t.push(0);return t}var d=0,c=0,l=a();return{positioning:t.map(function(e,t){return{spans:e,position:n(e,t)}}),rowCount:c+Math.max.apply(Math,l)}}var i=o;return n.animateWith=function(e){i=t.isFunction(e)?e:o},n}function r(e){function n(n,o,r,i){o.attr("role","listitem");var a=e.watchResponsiveAttributes(["md-colspan","md-rowspan"],r,t.bind(i,i.invalidateLayout));i.invalidateTiles(),n.$on("$destroy",function(){a(),i.invalidateLayout()}),t.isDefined(n.$parent.$index)&&n.$watch(function(){return n.$parent.$index},function(e,t){e!==t&&i.invalidateTiles()})}return{restrict:"E",require:"^mdGridList",template:"
",transclude:!0,scope:{},controller:["$attrs",function(e){this.$attrs=e}],link:n}}function i(){return{template:"
",transclude:!0}}t.module("material.components.gridList",["material.core"]).directive("mdGridList",e).directive("mdGridTile",r).directive("mdGridTileFooter",i).directive("mdGridTileHeader",i).factory("$mdGridLayout",o),e.$inject=["$interpolate","$mdConstant","$mdGridLayout","$mdMedia"],n.$inject=["$mdUtil"],n.prototype={invalidateTiles:function(){this.tilesInvalidated=!0,this.invalidateLayout()},invalidateLayout:function(){this.layoutInvalidated||(this.layoutInvalidated=!0,this.$timeout_(t.bind(this,this.layout)))},layout:function(){try{this.layoutDelegate(this.tilesInvalidated)}finally{this.layoutInvalidated=!1,this.tilesInvalidated=!1}}},o.$inject=["$mdUtil"],r.$inject=["$mdMedia"]}(),function(){function e(e,t,n){function o(o,r,i){function a(){var e=r.parent();return e.attr("aria-label")||e.text()?!0:e.parent().attr("aria-label")||e.parent().text()?!0:!1}function d(){function t(){return!o.fontIcon&&!o.fontSet&&!i.hasOwnProperty("class")}o.svgIcon||o.svgSrc||(o.fontIcon&&r.addClass("md-font "+o.fontIcon),o.fontSet&&r.addClass(e.fontSet(o.fontSet)),t()&&r.addClass(e.fontSet()))}t(r),d();var c=i.alt||o.fontIcon||o.svgIcon||r.text(),l=i.$normalize(i.$attr.mdSvgIcon||i.$attr.mdSvgSrc||"");i["aria-label"]||(""==c||a()?r.text()||n.expect(r,"aria-hidden","true"):(n.expect(r,"aria-label",c),n.expect(r,"role","img"))),l&&i.$observe(l,function(t){r.empty(),t&&e(t).then(function(e){r.append(e)})})}return{scope:{fontSet:"@mdFontSet",fontIcon:"@mdFontIcon",svgIcon:"@mdSvgIcon",svgSrc:"@mdSvgSrc"},restrict:"E",link:o}}t.module("material.components.icon",["material.core"]).directive("mdIcon",e),e.$inject=["$mdIcon","$mdTheming","$mdAria"]}(),function(){function e(){}function n(e,t){this.url=e,this.viewBoxSize=t||r.defaultViewBoxSize}function o(e,n,o,r,i){function a(e){return e=e||"",E[e]?o.when(E[e].clone()):v.test(e)?s(e).then(c(e)):(-1==e.indexOf(":")&&(e="$default:"+e),l(e)["catch"](m)["catch"](u)["catch"](p).then(c(e)))}function d(n){var o=t.isUndefined(n)||!(n&&n.length);if(o)return e.defaultFontSet;var r=n;return t.forEach(e.fontSets,function(e){e.alias==n&&(r=e.fontSet||r)}),r}function c(t){return function(n){return E[t]=f(n)?n:new h(n,e[t]),E[t].clone()}}function l(t){var n=e[t];return n?s(n.url).then(function(e){return new h(e,n)}):o.reject(t)}function m(t){function n(e){var n=t.slice(t.lastIndexOf(":")+1),r=e.querySelector("#"+n);return r?new h(r,i):o.reject(t)}var r=t.substring(0,t.lastIndexOf(":"))||"$default",i=e[r];return i?s(i.url).then(n):o.reject(t)}function s(e){return n.get(e,{cache:i}).then(function(e){return t.element("
").append(e.data).find("svg")[0]})}function u(e){var n;return t.isString(e)&&(n="icon "+e+" not found",r.warn(n)),o.reject(n||e)}function p(e){var n=t.isString(e)?e:e.message||e.data||e.statusText;return r.warn(n),o.reject(n)}function f(e){return t.isDefined(e.element)&&t.isDefined(e.config)}function h(e,n){"svg"!=e.tagName&&(e=t.element('').append(e)[0]),e.getAttribute("xmlns")||e.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.element=e,this.config=n,this.prepare()}function b(){var n=this.config?this.config.viewBoxSize:e.defaultViewBoxSize;t.forEach({fit:"",height:"100%",width:"100%",preserveAspectRatio:"xMidYMid meet",viewBox:this.element.getAttribute("viewBox")||"0 0 "+n+" "+n},function(e,t){this.element.setAttribute(t,e)},this),t.forEach({"pointer-events":"none",display:"block"},function(e,t){this.element.style[t]=e},this)}function g(){return this.element.cloneNode(!0)}var E={},v=/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/i;return h.prototype={clone:g,prepare:b},a.fontSet=d,a}t.module("material.components.icon").provider("$mdIcon",e);var r={defaultViewBoxSize:24,defaultFontSet:"material-icons",fontSets:[]};e.prototype={icon:function(e,t,o){return-1==e.indexOf(":")&&(e="$default:"+e),r[e]=new n(t,o),this},iconSet:function(e,t,o){return r[e]=new n(t,o),this},defaultIconSet:function(e,t){var o="$default";return r[o]||(r[o]=new n(e,t)),r[o].viewBoxSize=t||r.defaultViewBoxSize,this},defaultViewBoxSize:function(e){return r.defaultViewBoxSize=e,this},fontSet:function(e,t){return r.fontSets.push({alias:e,fontSet:t||e}),this},defaultFontSet:function(e){return r.defaultFontSet=e?e:"",this},defaultIconSize:function(e){return r.defaultIconSize=e,this},preloadIcons:function(e){var t=this,n=[{id:"md-tabs-arrow",url:"md-tabs-arrow.svg",svg:''},{id:"md-close",url:"md-close.svg",svg:''},{id:"md-cancel",url:"md-cancel.svg",svg:''},{id:"md-menu",url:"md-menu.svg",svg:''},{id:"md-toggle-arrow",url:"md-toggle-arrow-svg",svg:''}];n.forEach(function(n){t.icon(n.id,n.url),e.put(n.url,n.svg)})},$get:["$http","$q","$log","$templateCache",function(e,t,n,i){return this.preloadIcons(i),o(r,e,t,n,i)}]}}(),function(){function e(e,t){function n(t,n,o){e(n)}function o(e,n,o){var r=this;r.isErrorGetter=o.mdIsError&&t(o.mdIsError),r.delegateClick=function(){r.input.focus()},r.element=n,r.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},r.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},r.setInvalid=function(e){n.toggleClass("md-input-invalid",!!e)},e.$watch(function(){return r.label&&r.input},function(e){e&&!r.label.attr("for")&&r.label.attr("for",r.input.attr("id"))})}return o.$inject=["$scope","$element","$attrs"],{restrict:"E",link:n,controller:o}}function n(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,o){o&&!n.mdNoFloat&&(o.label=t,e.$on("$destroy",function(){o.label=null}))}}}function o(e,n,o){function r(r,i,a,d){function c(e){return s.setHasValue(!u.$isEmpty(e)),e}function l(){s.setHasValue(i.val().length>0||(i[0].validity||{}).badInput)}function m(){function o(e){return h(),e}function a(){if(m.style.height=m.offsetHeight+"px",i.addClass("md-no-flex"),isNaN(p)){l.style.height="auto",l.scrollTop=0;var e=d();e&&(l.style.height=e+"px")}else{l.setAttribute("rows",1),f||(l.style.minHeight="0",f=i.prop("clientHeight"),l.style.minHeight=null);var t=Math.max(p,Math.round(l.scrollHeight/f));l.setAttribute("rows",t)}i.removeClass("md-no-flex"),m.style.height="auto"}function d(){var e=l.scrollHeight-l.offsetHeight;return l.offsetHeight+(e>0?e:0)}function c(e){l.scrollTop=0;var t=l.scrollHeight-l.offsetHeight,n=l.offsetHeight+t;l.style.height=n+"px"}if(!t.isDefined(i.attr("md-no-autogrow"))){var l=i[0],m=s.element[0],p=0/0,f=null;l.hasAttribute("rows")&&(p=parseInt(l.getAttribute("rows")));var h=e.debounce(a,1);u?(u.$formatters.push(o),u.$viewChangeListeners.push(o)):h(),i.on("keydown input",h),isNaN(p)&&(i.attr("rows","1"),i.on("scroll",c)),t.element(n).on("resize",h),r.$on("$destroy",function(){t.element(n).off("resize",h)})}}var s=d[0],u=d[1]||e.fakeNgModel(),p=t.isDefined(a.readonly);if(s){if(s.input)throw new Error(" can only have *one*
');r.$set("ngTrim","false"),l.element.append(m),c.$formatters.push(a),c.$viewChangeListeners.push(a),o.on("input keydown",function(){a()}),n.$watch(r.mdMaxlength,function(n){d=n,t.isNumber(n)&&n>0?(m.parent().length||e.enter(m,l.element,t.element(l.element[0].lastElementChild)),a()):e.leave(m)}),c.$validators["md-maxlength"]=function(e,n){return!t.isNumber(d)||0>d?!0:(e||o.val()||n||"").length<=d}}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:n}}function i(e){function n(n,o,r,i){if(i&&!t.isDefined(i.element.attr("md-no-float"))){var a=r.placeholder;if(o.removeAttr("placeholder"),0==i.element.find("label").length){if(i.input&&"MD-SELECT"!=i.input[0].nodeName){var d='";i.element.addClass("md-icon-float"),i.element.prepend(d)}}else"MD-SELECT"!=o[0].nodeName&&e.warn("The placeholder='"+a+"' will be ignored since this md-input-container has a child label element.")}}return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:n}}t.module("material.components.input",["material.core"]).directive("mdInputContainer",e).directive("label",n).directive("input",o).directive("textarea",o).directive("mdMaxlength",r).directive("placeholder",i),e.$inject=["$mdTheming","$parse"],o.$inject=["$mdUtil","$window","$mdAria"],r.$inject=["$animate"],i.$inject=["$log"]}(),function(){function e(e){return{restrict:"E",compile:function(t){return t[0].setAttribute("role","list"),e}}}function n(e,n,o){var r=["md-checkbox","md-switch"];return{restrict:"E",controller:"MdListController",compile:function(i,a){function d(){for(var e,t,n=["md-switch","md-checkbox"],o=0;t=n[o];++o)if((e=i.find(t)[0])&&!e.hasAttribute("aria-label")){var r=i.find("p")[0];if(!r)return;e.setAttribute("aria-label","Toggle "+r.textContent)}}function c(n){var o;if("div"==n)o=t.element('
'),o.append(i.contents()),i.addClass("md-proxy-focus");else{o=t.element('
');var r=["ng-click","aria-label","ng-disabled"];t.forEach(r,function(e){i[0].hasAttribute(e)&&(o[0].setAttribute(e,i[0].getAttribute(e)),i[0].removeAttribute(e))}),o.children().eq(0).append(i.contents())}if(i[0].setAttribute("tabindex","-1"),i.append(o),p&&p.hasAttribute("ng-click")){e.expect(p,"aria-label");var d=t.element('');d.attr("ng-click",p.getAttribute("ng-click")),p.removeAttribute("ng-click"),p.setAttribute("tabindex","-1"),p.classList.remove("md-secondary"),d.append(p),p=d[0]}p&&(p.hasAttribute("ng-click")||a.ngClick&&l(p))&&(i.addClass("md-with-secondary"),i.append(p))}function l(e){return-1!=r.indexOf(e.nodeName.toLowerCase())}function m(e,i,a,d){function c(){var e=i.children();e.length&&!e[0].hasAttribute("ng-click")&&t.forEach(r,function(e){t.forEach(s.querySelectorAll(e),function(e){m.push(e)})})}function l(){(m.length||u)&&(i.addClass("md-clickable"),d.attachRipple(e,t.element(i[0].querySelector(".md-no-style"))))}var m=[],s=i[0].firstElementChild,u=s&&s.hasAttribute("ng-click");c(),l(),i.hasClass("md-proxy-focus")&&m.length&&t.forEach(m,function(n){n=t.element(n),e.mouseActive=!1,n.on("mousedown",function(){e.mouseActive=!0,o(function(){e.mouseActive=!1},100)}).on("focus",function(){e.mouseActive===!1&&i.addClass("md-focused"),n.on("blur",function t(){i.removeClass("md-focused"),n.off("blur",t)})})}),u||m.length||s&&s.addEventListener("keypress",function(e){if("INPUT"!=e.target.nodeName&&"TEXTAREA"!=e.target.nodeName){var t=e.which||e.keyCode;t==n.KEY_CODE.SPACE&&s&&(s.click(),e.preventDefault(),e.stopPropagation())}}),i.off("click"),i.off("keypress"),m.length&&s&&i.children().eq(0).on("click",function(e){s.contains(e.target)&&t.forEach(m,function(n){e.target===n||n.contains(e.target)||t.element(n).triggerHandler("click")})})}var s,u,p=i[0].querySelector(".md-secondary");if(i[0].setAttribute("role","listitem"),a.ngClick)c("button");else{for(var f,h=0;f=r[h];++h)if(u=i[0].querySelector(f)){s=!0;break}s?c("div"):i[0].querySelector("md-button")||i.addClass("md-no-proxy")}return d(),m}}}function o(e,t,n){function o(e,t){var o={};n.attach(e,t,o)}var r=this;r.attachRipple=o}t.module("material.components.list",["material.core"]).controller("MdListController",o).directive("mdList",e).directive("mdListItem",n),e.$inject=["$mdTheming"],n.$inject=["$mdAria","$mdConstant","$timeout"],o.$inject=["$scope","$element","$mdListInkRipple"]}(),function(){function e(e){function n(e){e.addClass("md-menu");var t=e.children()[0];if(t.hasAttribute("ng-click")||(t=t.querySelector("[ng-click]")),t&&t.setAttribute("aria-haspopup","true"),2!=e.children().length)throw Error("Invalid HTML for md-menu. Expected two children elements.");return o}function o(e,n,o,r){var i=t.element('
'),a=n.children()[1];i.append(a),r.init(i),e.$on("$destroy",function(){i.remove(),r.close()})}return{restrict:"E",require:"mdMenu",controller:"mdMenuCtrl",scope:!0,compile:n}}function n(e,t,n,o){var r,i,a=this;this.init=function(e){r=e,i=n[0].querySelector("[ng-click]")},this.open=function(t){t&&t.stopPropagation(),a.isOpen=!0,i.setAttribute("aria-expanded","true"),e.show({scope:o,mdMenuCtrl:a,element:r,target:n[0]})},o.$mdOpenMenu=this.open,this.close=function(t){a.isOpen&&(a.isOpen=!1,i.setAttribute("aria-expanded","false"),e.hide(),t||n.children()[0].focus())},this.positionMode=function(){var e=(t.mdPositionMode||"target").split(" ");return 1==e.length&&e.push(e[0]),{left:e[0],top:e[1]}},this.offsets=function(){var e=(t.mdOffset||"0 0").split(" ").map(parseFloat);if(2==e.length)return{left:e[0],top:e[1]};if(1==e.length)return{top:e[0],left:e[0]};throw Error("Invalid offsets specified. Please follow format or ")}}t.module("material.components.menu",["material.core","material.components.backdrop"]).directive("mdMenu",e).controller("mdMenuCtrl",n),e.$inject=["$mdMenu"],n.$inject=["$mdMenu","$attrs","$element","$scope"]}(),function(){function o(o){function r(o,r,a,d,c,l){function m(e,n,i){function l(){if(!i.target)throw Error("$mdMenu.show() expected a target to animate from in options.target");t.extend(i,{alreadyOpen:!1,isRemoved:!1,target:t.element(i.target),parent:t.element(i.parent),menuContentEl:t.element(n[0].querySelector("md-menu-content")),backdrop:i.hasBackdrop&&a.createBackdrop(e,"md-menu-backdrop md-click-catcher")})}function m(){i.resizeFn=function(){f(n,i)},t.element(r).on("resize",i.resizeFn),t.element(r).on("orientationchange",i.resizeFn)}function u(){i.parent.append(n),n.removeClass("md-leave"),o(function(){o(function(){f(n,i),o(function(){n.addClass("md-active"),i.alreadyOpen=!0,n[0].style[c.CSS.TRANSFORM]=""})})})}function p(){n.addClass("md-clickable"),i.backdrop&&i.backdrop.on("click",function(t){t.preventDefault(),t.stopPropagation(),e.$apply(function(){i.mdMenuCtrl.close(!0)})}),i.menuContentEl.on("keydown",function(t){e.$apply(function(){switch(t.keyCode){case c.KEY_CODE.ESCAPE:i.mdMenuCtrl.close();break;case c.KEY_CODE.UP_ARROW:s(t,i.menuContentEl,i,-1);break;case c.KEY_CODE.DOWN_ARROW:s(t,i.menuContentEl,i,1)}})});var t=function(t){function n(){e.$apply(function(){i.mdMenuCtrl.close()})}function o(e,t){if(!e)return!1;for(var n,o=0;n=t[o];++o)for(var r,i=[n,"data-"+n,"x-"+n],a=0;r=i[a];++a)if(e.hasAttribute(r))return!0;return!1}var r=t.target;do{if(r==i.menuContentEl[0])return;if(o(r,["ng-click","ng-href","ui-sref"])){r.hasAttribute("disabled")||n();break}}while(r=r.parentNode)};i.menuContentEl[0].addEventListener("click",t,!0);var o=i.menuContentEl[0].querySelector("[md-menu-focus-target]");return o||(o=i.menuContentEl[0].firstElementChild.firstElementChild),o.focus(),function(){n.removeClass("md-clickable"),i.backdrop.off("click"),i.menuContentEl.off("keydown"),i.menuContentEl[0].removeEventListener("click",t,!0)}}return l(i),d.inherit(i.menuContentEl,i.target),m(),i.disableParentScroll&&(i.restoreScroll=a.disableScrollAround(i.element)),i.backdrop&&(d.inherit(i.backdrop,i.parent),i.parent.append(i.backdrop)),u(),h.waitTransitionEnd(n,{timeout:370})["finally"](function(e){return i.cleanupInteraction=p(),e})}function s(e,t,n,o){for(var r=a.getClosest(e.target,"MD-MENU-ITEM"),i=a.nodesToArray(t[0].children),d=i.indexOf(r),c=d+o;c>=0&&c
',compile:n}}t.module("material.components.progressCircular",["material.core"]).directive("mdProgressCircular",e),e.$inject=["$mdConstant","$mdTheming"]}(),function(){function e(e,o,r){function i(e,t,n){return e.attr("aria-valuemin",0),e.attr("aria-valuemax",100),e.attr("role","progressbar"),a}function a(i,a,c){r(a);var l=a[0].querySelector(".md-bar1").style,m=a[0].querySelector(".md-bar2").style,s=t.element(a[0].querySelector(".md-container"));c.$observe("value",function(e){if("query"!=c.mdMode){var t=d(e);a.attr("aria-valuenow",t),m[o.CSS.TRANSFORM]=n[t]}}),c.$observe("mdBufferValue",function(e){l[o.CSS.TRANSFORM]=n[d(e)]}),e(function(){s.addClass("md-ready")})}function d(e){return e>100?100:0>e?0:Math.ceil(e||0)}return{restrict:"E",template:'
',compile:i}}t.module("material.components.progressLinear",["material.core"]).directive("mdProgressLinear",e),e.$inject=["$$rAF","$mdConstant","$mdTheming"];var n=function(){function e(e){var t=e/100,n=(e-100)/2;return"translateX("+n.toString()+"%) scale("+t.toString()+", 1)"}for(var t=new Array(101),n=0;101>n;n++)t[n]=e(n);return t}()}(),function(){function e(e,n,o,r){function i(i,a,d,c){function l(){a.hasClass("md-focused")||a.addClass("md-focused")}function m(o){var r=o.which||o.keyCode;switch(r){case n.KEY_CODE.LEFT_ARROW:case n.KEY_CODE.UP_ARROW:o.preventDefault(),s.selectPrevious(),l();break;case n.KEY_CODE.RIGHT_ARROW:case n.KEY_CODE.DOWN_ARROW:o.preventDefault(),s.selectNext(),l();break;case n.KEY_CODE.ENTER:var i=t.element(e.getClosest(a[0],"form"));i.length>0&&i.triggerHandler("submit")}}o(a);var s=c[0],u=c[1]||e.fakeNgModel();s.init(u),i.mouseActive=!1,a.attr({role:"radiogroup",tabIndex:a.attr("tabindex")||"0"}).on("keydown",m).on("mousedown",function(e){i.mouseActive=!0,r(function(){i.mouseActive=!1},100)}).on("focus",function(){i.mouseActive===!1&&s.$element.addClass("md-focused")}).on("blur",function(){s.$element.removeClass("md-focused")})}function a(e){this._radioButtonRenderFns=[],this.$element=e}function d(){return{init:function(e){this._ngModelCtrl=e,this._ngModelCtrl.$render=t.bind(this,this.render)},add:function(e){this._radioButtonRenderFns.push(e)},remove:function(e){var t=this._radioButtonRenderFns.indexOf(e);-1!==t&&this._radioButtonRenderFns.splice(t,1)},render:function(){this._radioButtonRenderFns.forEach(function(e){e()})},setViewValue:function(e,t){this._ngModelCtrl.$setViewValue(e,t),this.render()},getViewValue:function(){return this._ngModelCtrl.$viewValue},selectNext:function(){return c(this.$element,1)},selectPrevious:function(){return c(this.$element,-1)},setActiveDescendant:function(e){this.$element.attr("aria-activedescendant",e)}}}function c(n,o){var r=e.iterator(n[0].querySelectorAll("md-radio-button"),!0);if(r.count()){var i=function(e){return!t.element(e).attr("disabled")},a=n[0].querySelector("md-radio-button.md-checked"),d=r[0>o?"previous":"next"](a,i)||r.first();t.element(d).triggerHandler("click")}}return a.prototype=d(),{restrict:"E",controller:["$element",a],require:["mdRadioGroup","?ngModel"],link:{pre:i}}}function n(e,t,n){function o(o,i,a,d){function c(e){i[0].hasAttribute("disabled")||o.$apply(function(){d.setViewValue(a.value,e&&e.type)})}function l(){var e=d.getViewValue()==a.value;e!==s&&(s=e,i.attr("aria-checked",e),e?(i.addClass(r),d.setActiveDescendant(i.attr("id"))):i.removeClass(r))}function m(n,o){function r(){return a.id||"radio_"+t.nextUid()}o.ariaId=r(),n.attr({id:o.ariaId,role:"radio","aria-checked":"false"}),e.expectWithText(n,"aria-label")}var s;n(i),m(i,o),d.add(l),a.$observe("value",l),i.on("click",c).on("$destroy",function(){d.remove(l)})}var r="md-checked";return{restrict:"E",require:"^mdRadioGroup",transclude:!0,template:'
',link:o}}t.module("material.components.radioButton",["material.core"]).directive("mdRadioGroup",e).directive("mdRadioButton",n),e.$inject=["$mdUtil","$mdConstant","$mdTheming","$timeout"],n.$inject=["$mdAria","$mdUtil","$mdTheming"]}(),function(){function e(e,o,r,i,a,d,c){function l(a,l){var m=t.element("");if(m.append(''),m.addClass("md-select-value"),m[0].hasAttribute("id")||m.attr("id","select_value_label_"+o.nextUid()),a.find("md-content").length||a.append(t.element("").append(a.contents())),l.mdOnOpen&&a.find("md-content").prepend(t.element("").attr("md-mode","indeterminate").attr("ng-hide","$$loadingAsyncDone").wrap("
").parent()),l.name){var s=t.element(',