<?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.

-->

<Application>
    <Entry>cordova-bada-wac</Entry>
    <Name>
        <English>cordova-bada-wac</English>
        <eng-GB>cordova-bada-wac</eng-GB>
    </Name>
    <Vendor/>
    <Description/>
    <Icons>
        <MainMenu>cordova_bada_wac_icon_type4.png<Type1/>
            <Type2/>
            <Type3>cordova_bada_wac_icon_type3.png</Type3>
            <Type4>cordova_bada_wac_icon_type4.png</Type4>
            <Type5>cordova_bada_wac_icon_type5.png</Type5>
        </MainMenu>
        <Setting/>
        <Ticker/>
        <QuickPanel/>
        <LaunchImage>codova_bada_wac_splash_type4.png<Type1/>
            <Type2/>
            <Type3>codova_bada_wac_splash_type3.png</Type3>
            <Type4>codova_bada_wac_splash_type4.png</Type4>
            <Type5>codova_bada_wac_splash_type5.png</Type5>
        </LaunchImage>
    </Icons>
    <AutoScaling>
        <Enabled>false</Enabled>
    </AutoScaling>
</Application>
