<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<actionScriptProperties mainApplicationPath="authoringsupport.as" version="6">
  <compiler additionalCompilerArguments="-library-path= --locale=" autoRSLOrdering="true" copyDependentFiles="false" fteInMXComponents="false" generateAccessible="false" htmlExpressInstall="true" htmlGenerate="false" htmlHistoryManagement="false" htmlPlayerVersionCheck="true" includeNetmonSwc="false" outputFolderPath="bin" sourceFolderPath="src" strict="true" targetPlayerVersion="0.0.0" useApolloConfig="false" useDebugRSLSwfs="true" verifyDigests="true" warn="true">
    <compilerSourcePath/>
    <libraryPath defaultLinkType="0">
      <libraryPathEntry kind="3" linkType="2" path="${PROJECT_FRAMEWORKS}/libs/player/11.1/playerglobal.swc" useDefaultLinkType="false"/>
      <libraryPathEntry kind="3" linkType="2" path="${PROJECT_FRAMEWORKS}/projects/authoringsupport/libs/FlexContentHolderThumbnail.swc" useDefaultLinkType="false"/>
      <libraryPathEntry kind="3" linkType="2" path="${PROJECT_FRAMEWORKS}/libs/textLayout.swc" useDefaultLinkType="false"/>
      <libraryPathEntry kind="3" linkType="2" path="/flash-integration/bin/flash-integration.swc" useDefaultLinkType="false"/>
      <libraryPathEntry kind="3" linkType="2" path="/framework/bin/framework.swc" useDefaultLinkType="false"/>
      <libraryPathEntry kind="3" linkType="2" path="/mx/bin/mx.swc" useDefaultLinkType="false"/>
    </libraryPath>
    <sourceAttachmentPath/>
  </compiler>
  <applications>
    <application path="authoringsupport.as"/>
  </applications>
  <modules/>
  <buildCSSFiles/>
</actionScriptProperties>

