mrutkows closed pull request #760: WIP: rewrite deploymentreader_test.go 
URL: https://github.com/apache/incubator-openwhisk-wskdeploy/pull/760
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/deployers/deploymentreader.go b/deployers/deploymentreader.go
index dd15c8bc..4b331b3f 100644
--- a/deployers/deploymentreader.go
+++ b/deployers/deploymentreader.go
@@ -18,10 +18,10 @@
 package deployers
 
 import (
+       "fmt"
        "github.com/apache/incubator-openwhisk-client-go/whisk"
        "github.com/apache/incubator-openwhisk-wskdeploy/parsers"
        "github.com/apache/incubator-openwhisk-wskdeploy/utils"
-       "github.com/apache/incubator-openwhisk-wskdeploy/wskderrors"
        "github.com/apache/incubator-openwhisk-wskdeploy/wskenv"
        "github.com/apache/incubator-openwhisk-wskdeploy/wski18n"
        "github.com/apache/incubator-openwhisk-wskdeploy/wskprint"
@@ -46,7 +46,6 @@ func (reader *DeploymentReader) HandleYaml() error {
 
        deploymentParser := parsers.NewYAMLParser()
        deployment, err := deploymentParser.ParseDeployment(dep.DeploymentPath)
-
        reader.DeploymentDescriptor = deployment
 
        return err
@@ -68,41 +67,58 @@ func (reader *DeploymentReader) BindAssets() error {
        return nil
 }
 
-func (reader *DeploymentReader) bindPackageInputsAndAnnotations() error {
-
+func (reader *DeploymentReader) getPackageMap() map[string]parsers.Package {
        packMap := make(map[string]parsers.Package)
 
-       if reader.DeploymentDescriptor.GetProject().Packages == nil {
-               if reader.DeploymentDescriptor.Packages != nil {
+       //fmt.Println(fmt.Sprintf("length[%s]=%v", 
"packages",len(reader.DeploymentDescriptor.Packages) ))
+       //fmt.Println(fmt.Sprintf("length[%s]=%v", 
"application",len(reader.DeploymentDescriptor.Application.Packages) ))
+       //fmt.Println(fmt.Sprintf("length[%s]=%v", 
"project.packages",len(reader.DeploymentDescriptor.GetProject().Packages) ))
+
+       // Create local packages list from Deployment file for us to iterate 
over
+       // either from top-level or under project schema
+       if len(reader.DeploymentDescriptor.GetProject().Packages) == 0 {
+
+               if len(reader.DeploymentDescriptor.Packages) > 0 {
+                       wskprint.PrintOpenWhiskVerbose(true,
+                               fmt.Sprintf("Deployment file [%s]: Found 
top-level packages",
+                                       reader.DeploymentDescriptor.Filepath,
+                                       reader.DeploymentDescriptor.Filepath))
                        for packName, depPacks := range 
reader.DeploymentDescriptor.Packages {
                                depPacks.Packagename = packName
                                packMap[packName] = depPacks
                        }
                }
        } else {
+               wskprint.PrintOpenWhiskVerbose(true,
+                       fmt.Sprintf("Deployment file [%s]: Found packages under 
project [%s]",
+                               reader.DeploymentDescriptor.Filepath, 
reader.DeploymentDescriptor.GetProject().Name))
                for packName, depPacks := range 
reader.DeploymentDescriptor.GetProject().Packages {
                        depPacks.Packagename = packName
                        packMap[packName] = depPacks
                }
        }
 
+       return packMap
+}
+
+func (reader *DeploymentReader) bindPackageInputsAndAnnotations() error {
+
+       // retrieve "packages" list from depl. file; either at top-level or 
under "Project" schema
+       packMap := reader.getPackageMap()
+
        for packName, pack := range packMap {
 
                serviceDeployPack := 
reader.serviceDeployer.Deployment.Packages[packName]
 
                if serviceDeployPack == nil {
-                       warningString := wski18n.T(
-                               
wski18n.ID_ERR_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X,
-                               map[string]interface{}{
-                                       wski18n.KEY_KEY:  wski18n.PACKAGE_NAME,
-                                       wski18n.KEY_NAME: packName})
-                       wskprint.PrintlnOpenWhiskWarning(warningString)
+                       
displayEntityNotFoundInDeploymentWarning(parsers.YAML_KEY_PACKAGE, packName)
                        break
                }
 
-               keyValArr := make(whisk.KeyValueArr, 0)
-
                if len(pack.Inputs) > 0 {
+
+                       keyValArr := make(whisk.KeyValueArr, 0)
+
                        for name, input := range pack.Inputs {
                                var keyVal whisk.KeyValue
 
@@ -144,13 +160,7 @@ func (reader *DeploymentReader) 
bindPackageInputsAndAnnotations() error {
                                        }
                                }
                                if !keyExistsInManifest {
-                                       warningString := wski18n.T(
-                                               
wski18n.ID_ERR_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X,
-                                               map[string]interface{}{
-                                                       wski18n.KEY_KEY:  
parsers.YAML_KEY_ANNOTATION,
-                                                       wski18n.KEY_NAME: name})
-                                       
wskprint.PrintlnOpenWhiskWarning(warningString)
-                                       return 
wskderrors.NewYAMLFileFormatError(reader.DeploymentDescriptor.Filepath, 
warningString)
+                                       
displayEntityNotFoundInDeploymentWarning(parsers.YAML_KEY_ANNOTATION, name)
                                }
                        }
                }
@@ -160,30 +170,15 @@ func (reader *DeploymentReader) 
bindPackageInputsAndAnnotations() error {
 
 func (reader *DeploymentReader) bindActionInputsAndAnnotations() error {
 
-       packMap := make(map[string]parsers.Package)
-
-       if reader.DeploymentDescriptor.GetProject().Packages == nil {
-               if reader.DeploymentDescriptor.Packages != nil {
-                       for packName, depPacks := range 
reader.DeploymentDescriptor.Packages {
-                               depPacks.Packagename = packName
-                               packMap[packName] = depPacks
-                       }
-               }
-               //else {
-               //              
packMap[reader.DeploymentDescriptor.Package.Packagename] = 
reader.DeploymentDescriptor.Package
-               //      }
-       } else {
-               for packName, depPacks := range 
reader.DeploymentDescriptor.GetProject().Packages {
-                       depPacks.Packagename = packName
-                       packMap[packName] = depPacks
-               }
-       }
+       // retrieve "packages" list from depl. file; either at top-level or 
under "Project" schema
+       packMap := reader.getPackageMap()
 
        for packName, pack := range packMap {
 
                serviceDeployPack := 
reader.serviceDeployer.Deployment.Packages[packName]
 
                if serviceDeployPack == nil {
+                       
displayEntityNotFoundInDeploymentWarning(parsers.YAML_KEY_PACKAGE, packName)
                        break
                }
 
@@ -214,6 +209,8 @@ func (reader *DeploymentReader) 
bindActionInputsAndAnnotations() error {
                                                }
                                        }
                                        wskAction.Action.Parameters = keyValArr
+                               } else {
+                                       
displayEntityNotFoundInDeploymentWarning(parsers.YAML_KEY_ACTION, actionName)
                                }
                        }
 
@@ -234,14 +231,11 @@ func (reader *DeploymentReader) 
bindActionInputsAndAnnotations() error {
                                                }
                                        }
                                        if !keyExistsInManifest {
-                                               errMsg := wski18n.T(
-                                                       
wski18n.ID_ERR_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X,
-                                                       map[string]interface{}{
-                                                               
wski18n.KEY_KEY:  parsers.YAML_KEY_ANNOTATION,
-                                                               
wski18n.KEY_NAME: name})
-                                               return 
wskderrors.NewYAMLFileFormatError(reader.DeploymentDescriptor.Filepath, errMsg)
+                                               
displayEntityNotFoundInDeploymentWarning(parsers.YAML_KEY_ANNOTATION, name)
                                        }
                                }
+                       } else {
+                               
displayEntityNotFoundInDeploymentWarning(parsers.YAML_KEY_ACTION, actionName)
                        }
                }
        }
@@ -250,31 +244,27 @@ func (reader *DeploymentReader) 
bindActionInputsAndAnnotations() error {
 
 func (reader *DeploymentReader) bindTriggerInputsAndAnnotations() error {
 
-       packMap := make(map[string]parsers.Package)
-
-       if reader.DeploymentDescriptor.GetProject().Packages == nil {
-               if reader.DeploymentDescriptor.Packages != nil {
-                       for packName, depPacks := range 
reader.DeploymentDescriptor.Packages {
-                               depPacks.Packagename = packName
-                               packMap[packName] = depPacks
-                       }
-               }
-       } else {
-               for packName, depPacks := range 
reader.DeploymentDescriptor.GetProject().Packages {
-                       depPacks.Packagename = packName
-                       packMap[packName] = depPacks
-               }
-       }
+       // retrieve "packages" list from depl. file; either at top-level or 
under "Project" schema
+       packMap := reader.getPackageMap()
 
+       // go through all packages in our local package map
        for _, pack := range packMap {
 
+               //fmt.Println(utils.ConvertMapToJSONString("BEFORE: 
["+pack.Packagename+"]", pack))
+
                serviceDeployment := reader.serviceDeployer.Deployment
 
+               // for each Deployment file Trigger found in the current package
                for triggerName, trigger := range pack.Triggers {
 
-                       keyValArr := make(whisk.KeyValueArr, 0)
+                       //fmt.Println(utils.ConvertMapToJSONString("BEFORE: 
["+triggerName+"]", trigger))
 
+                       // If the Deployment file trigger has Input values we 
will attempt to bind them
                        if len(trigger.Inputs) > 0 {
+
+                               keyValArr := make(whisk.KeyValueArr, 0)
+
+                               // Interpolate values before we bind
                                for name, input := range trigger.Inputs {
                                        var keyVal whisk.KeyValue
 
@@ -284,6 +274,7 @@ func (reader *DeploymentReader) 
bindTriggerInputsAndAnnotations() error {
                                        keyValArr = append(keyValArr, keyVal)
                                }
 
+                               // See if a matching Trigger (name) exists in 
manifest
                                if wskTrigger, exists := 
serviceDeployment.Triggers[triggerName]; exists {
 
                                        depParams := 
make(map[string]whisk.KeyValue)
@@ -306,6 +297,8 @@ func (reader *DeploymentReader) 
bindTriggerInputsAndAnnotations() error {
                                                }
                                        }
                                        wskTrigger.Parameters = keyValArr
+                               } else {
+                                       
displayEntityNotFoundInDeploymentWarning(parsers.YAML_KEY_TRIGGER, triggerName)
                                }
                        }
 
@@ -326,14 +319,11 @@ func (reader *DeploymentReader) 
bindTriggerInputsAndAnnotations() error {
                                                }
                                        }
                                        if !keyExistsInManifest {
-                                               errMsg := wski18n.T(
-                                                       
wski18n.ID_ERR_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X,
-                                                       map[string]interface{}{
-                                                               
wski18n.KEY_KEY:  parsers.YAML_KEY_ANNOTATION,
-                                                               
wski18n.KEY_NAME: name})
-                                               return 
wskderrors.NewYAMLFileFormatError(reader.DeploymentDescriptor.Filepath, errMsg)
+                                               
displayEntityNotFoundInDeploymentWarning(parsers.YAML_KEY_ANNOTATION, name)
                                        }
                                }
+                       } else {
+                               
displayEntityNotFoundInDeploymentWarning(parsers.YAML_KEY_TRIGGER, triggerName)
                        }
 
                }
@@ -341,3 +331,21 @@ func (reader *DeploymentReader) 
bindTriggerInputsAndAnnotations() error {
        }
        return nil
 }
+
+func displayEntityNotFoundInDeploymentWarning(entityType string, entityName 
string) {
+       warnMsg := wski18n.T(
+               wski18n.ID_WARN_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X,
+               map[string]interface{}{
+                       wski18n.KEY_KEY:  entityType,
+                       wski18n.KEY_NAME: entityName})
+       wskprint.PrintOpenWhiskWarning(warnMsg)
+}
+
+func displayEntityFoundInDeploymentInfi(entityType string, entityName string) {
+       infoMsg := wski18n.T(
+               wski18n.ID_WARN_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X,
+               map[string]interface{}{
+                       wski18n.KEY_KEY:  entityType,
+                       wski18n.KEY_NAME: entityName})
+       wskprint.PrintOpenWhiskVerbose(utils.Flags.Verbose, infoMsg)
+}
diff --git a/deployers/deploymentreader_test.go 
b/deployers/deploymentreader_test.go
index d5312d1e..466654f4 100644
--- a/deployers/deploymentreader_test.go
+++ b/deployers/deploymentreader_test.go
@@ -20,8 +20,10 @@
 package deployers
 
 import (
+       "fmt"
        "github.com/apache/incubator-openwhisk-client-go/whisk"
        "github.com/stretchr/testify/assert"
+       "os"
        "reflect"
        "testing"
 )
@@ -31,6 +33,16 @@ var dr *DeploymentReader
 var deployment_file = "../tests/usecases/github/deployment.yaml"
 var manifest_file = "../tests/usecases/github/manifest.yaml"
 
+const (
+       // local error messages
+       TEST_ERROR_DEPLOYMENT_PARSE_FAILURE        = "Deployment [%s]: Failed 
to parse."
+       TEST_ERROR_DEPLOYMENT_BIND_TRIGGER_FAILURE = "Deployment [%s]: Failed 
to bind Trigger."
+       TEST_ERROR_DEPLOYMENT_FIND_PROJECT         = "Deployment [%s]: Failed 
to find Project [%s]."
+       TEST_ERROR_DEPLOYMENT_FIND_PACKAGES        = "Deployment [%s]: Failed 
to find Packages for project [%s]."
+       TEST_ERROR_DEPLOYMENT_FIND_PACKAGE         = "Deployment [%s]: Failed 
to find Package [%s]."
+       TEST_ERROR_DEPLOYMENT_FIND_TRIGGER         = "Deployment [%s]: Failed 
to find Trigger [%s]."
+)
+
 func init() {
        sd = NewServiceDeployer()
        sd.DeploymentPath = deployment_file
@@ -45,27 +57,80 @@ func TestDeploymentReader_HandleYaml(t *testing.T) {
        assert.NotNil(t, 
dr.DeploymentDescriptor.GetProject().Packages["GitHubCommits"], 
"DeploymentReader handle deployment yaml failed.")
 }
 
-// TODO(750) remove this unused test?
-func TestDeployerCheck(t *testing.T) {
-       sd := NewServiceDeployer()
-       sd.DeploymentPath = "../tests/usecases/badyaml/deployment.yaml"
-       sd.ManifestPath = "../tests/usecases/badyaml/manifest.yaml"
-       // The system will exit thus the test will fail.
-       // sd.Check()
+func createAnnotationArray(t *testing.T, kv whisk.KeyValue) whisk.KeyValueArr {
+       kva := make(whisk.KeyValueArr, 0)
+       kva = append(kva, kv)
+       return kva
 }
 
-func TestDeploymentReader_bindTrigger(t *testing.T) {
-       //init variables
+// Create a ServiceDeployer with a "dummy" DeploymentPlan (i.e., simulate a 
fake manifest parse)
+// load the deployment YAMl into dReader.DeploymentDescriptor
+// bind the deployment inputs and annotations to the named Trigger from 
Deployment to Manifest YAML
+func testLoadAndBindDeploymentYAML(t *testing.T, path string, triggerName 
string, kv whisk.KeyValue) (*ServiceDeployer, *DeploymentReader) {
+
        sDeployer := NewServiceDeployer()
-       sDeployer.DeploymentPath = 
"../tests/dat/deployment-deploymentreader-test.yml"
-       sDeployer.Deployment.Triggers["locationUpdate"] = new(whisk.Trigger)
+       sDeployer.DeploymentPath = path
 
-       //parse deployment and bind triggers input and annotation
+       // Create Trigger for "bind" function to use (as a Manifest parse would 
have created)
+       sDeployer.Deployment.Triggers[triggerName] = new(whisk.Trigger)
+       sDeployer.Deployment.Triggers[triggerName].Annotations = 
createAnnotationArray(t, kv)
+
+       //parse deployment and bind triggers input and annotations
        dReader := NewDeploymentReader(sDeployer)
-       dReader.HandleYaml()
-       dReader.bindTriggerInputsAndAnnotations()
+       err := dReader.HandleYaml()
+
+       // DEBUG() Uncomment to display initial DeploymentDescriptor (manifest, 
deployemnt befopre binding)
+       //fmt.Println(utils.ConvertMapToJSONString("BEFORE: 
dReader.DeploymentDescriptor", dReader.DeploymentDescriptor))
+       //fmt.Println(utils.ConvertMapToJSONString("BEFORE: 
sDeployer.Deployment", sDeployer.Deployment))
+
+       // test load of deployment YAML
+       if err != nil {
+               assert.Fail(t, fmt.Sprintf(TEST_ERROR_DEPLOYMENT_PARSE_FAILURE, 
sDeployer.DeploymentPath))
+       }
+
+       // Test that we can bind Triggers and Annotations
+       err = dReader.bindTriggerInputsAndAnnotations()
+
+       // test load of deployment YAML
+       if err != nil {
+               fmt.Println(err)
+               assert.Fail(t, 
fmt.Sprintf(TEST_ERROR_DEPLOYMENT_BIND_TRIGGER_FAILURE, 
sDeployer.DeploymentPath))
+       }
+
+       // DEBUG() Uncomment to display resultant DeploymentDescriptor 
(manifest + deployment file binding)
+       //fmt.Println(utils.ConvertMapToJSONString("AFTER: 
dReader.DeploymentDescriptor", dReader.DeploymentDescriptor))
+       //fmt.Println(utils.ConvertMapToJSONString("AFTER: 
sDeployer.Deployment", sDeployer.Deployment))
+
+       return sDeployer, dReader
+}
+
+func TestDeploymentReader_ProjectBindTrigger(t *testing.T) {
+
+       //init variables
+       TEST_DATA := 
"../tests/dat/deployment_deploymentreader_project_bind_trigger.yml"
+       TEST_TRIGGER := "locationUpdate"
+       TEST_PROJECT := "AppWithTriggerRule"
+       TEST_ANNOTATION_KEY := "bbb"
+       // Create an annotation (in manifest representation) with key we 
expect, with value that should be overwritten
+       TEST_ANNOTATION := whisk.KeyValue{TEST_ANNOTATION_KEY, "foo"}
+
+       // create ServicedEployer
+       sDeployer, dReader := testLoadAndBindDeploymentYAML(t, TEST_DATA, 
TEST_TRIGGER, TEST_ANNOTATION)
+
+       // test Project exists with expected name in Deployment file
+       projectNameDeploy := dReader.DeploymentDescriptor.GetProject().Name
+       if projectNameDeploy != TEST_PROJECT {
+               assert.Fail(t, fmt.Sprintf(TEST_ERROR_DEPLOYMENT_FIND_PROJECT, 
TEST_PROJECT))
+       }
+
+       // test that the Project has Packages
+       if len(dReader.DeploymentDescriptor.GetProject().Packages) == 0 {
+               assert.Fail(t, fmt.Sprintf(TEST_ERROR_DEPLOYMENT_FIND_PACKAGES, 
TEST_PROJECT))
+       }
+
+       trigger := sDeployer.Deployment.Triggers[TEST_TRIGGER]
 
-       trigger := sDeployer.Deployment.Triggers["locationUpdate"]
+       // test that Input values from dReader.DeploymentDescriptor wore 
"bound" onto sDeployer.Deployment
        for _, param := range trigger.Parameters {
                switch param.Key {
                case "name":
@@ -77,9 +142,12 @@ func TestDeploymentReader_bindTrigger(t *testing.T) {
 
                }
        }
+
+       // test that Annotations from dReader.DeploymentDescriptor wore "bound" 
onto sDeployer.Deployment
        for _, annos := range trigger.Annotations {
                switch annos.Key {
-               case "bbb":
+               case TEST_ANNOTATION_KEY:
+                       // Manifest's value should be overwritten
                        assert.Equal(t, "this is an annotation", annos.Value, 
"Failed to set annotations")
                default:
                        assert.Fail(t, "Failed to get annotation key")
@@ -88,53 +156,66 @@ func TestDeploymentReader_bindTrigger(t *testing.T) {
        }
 }
 
-func TestDeploymentReader_bindTrigger_packages(t *testing.T) {
+func TestDeploymentReader_PackagesBindTrigger(t *testing.T) {
        //init variables
-       sDeployer := NewServiceDeployer()
-       sDeployer.DeploymentPath = 
"../tests/dat/deployment-deploymentreader-test-packages.yml"
-       sDeployer.Deployment.Triggers["locationUpdate"] = new(whisk.Trigger)
+       TEST_DATA := 
"../tests/dat/deployment_deploymentreader_packages_bind_trigger.yml"
+       //TEST_PACKAGE := "triggerrule"
+       TEST_TRIGGER := "locationUpdate"
+       TEST_ANOTATION_KEY := "bbb"
+       // Create an annotation (in manifest representation) with key we 
expect, with value that should be overwritten
+       TEST_ANNOTATION := whisk.KeyValue{TEST_ANOTATION_KEY, "bar"}
 
-       //parse deployment and bind triggers input and annotation
-       dReader := NewDeploymentReader(sDeployer)
-       dReader.HandleYaml()
-       dReader.bindTriggerInputsAndAnnotations()
+       fmt.Println("TEST: " + os.Getenv("PKGDIR"))
 
-       trigger := sDeployer.Deployment.Triggers["locationUpdate"]
-       for _, param := range trigger.Parameters {
-               switch param.Key {
-               case "name":
-                       assert.Equal(t, "Bernie", param.Value, "Failed to set 
inputs")
-               case "place":
-                       assert.Equal(t, "DC", param.Value, "Failed to set 
inputs")
-               default:
-                       assert.Fail(t, "Failed to get inputs key")
+       sDeployer, _ := testLoadAndBindDeploymentYAML(t, TEST_DATA, 
TEST_TRIGGER, TEST_ANNOTATION)
+
+       // Test that
+       if trigger, ok := sDeployer.Deployment.Triggers[TEST_TRIGGER]; ok {
+
+               for _, param := range trigger.Parameters {
 
+                       //dbg := utils.ConvertMapToJSONString("value", value)
+                       //fmt.Println(dbg)
+                       switch param.Key {
+                       case "name":
+                               assert.Equal(t, "Bernie", param.Value, "Failed 
to set inputs")
+                       case "place":
+                               assert.Equal(t, "DC", param.Value, "Failed to 
set inputs")
+                       default:
+                               assert.Fail(t, "Failed to get inputs key")
+
+                       }
                }
-       }
-       for _, annos := range trigger.Annotations {
-               switch annos.Key {
-               case "bbb":
-                       assert.Equal(t, "this is an annotation", annos.Value, 
"Failed to set annotations")
-               default:
-                       assert.Fail(t, "Failed to get annotation key")
+               for _, annos := range trigger.Annotations {
+                       switch annos.Key {
+                       case "bbb":
+                               assert.Equal(t, "this is an annotation", 
annos.Value, "Failed to set annotations")
+                       default:
+                               assert.Fail(t, "Failed to get annotation key")
 
+                       }
                }
+       } else {
+               assert.Fail(t, fmt.Sprintf(TEST_ERROR_DEPLOYMENT_FIND_TRIGGER,
+                       sDeployer.DeploymentPath,
+                       TEST_TRIGGER))
        }
 }
 
-// TODO(749) - rewrite test to remove "package"
-//func TestDeploymentReader_bindTrigger_package(t *testing.T) {
+// TODO() XXX this test need to be rewritten perhaps
+//func TestDeploymentReader_bindTrigger_packages_2(t *testing.T) {
 //     //init variables
 //     sDeployer := NewServiceDeployer()
-//     sDeployer.DeploymentPath = 
"../tests/dat/deployment-deploymentreader-test-package.yml"
+//     sDeployer.DeploymentPath = 
"../tests/dat/deployment_deploymentreader_packages_bind_trigger.yml"
 //     sDeployer.Deployment.Triggers["locationUpdate"] = new(whisk.Trigger)
 //
 //     //parse deployment and bind triggers input and annotation
 //     dReader := NewDeploymentReader(sDeployer)
 //     dReader.HandleYaml()
-//     dReader.bindTriggerInputsAndAnnotations()
 //
-//     assert.Equal(t, "triggerrule", 
dReader.DeploymentDescriptor.Package.Packagename)
+//     //fmt.Println(utils.ConvertMapToJSONString("BEFORE: 
dReader.DeploymentDescriptor", dReader.DeploymentDescriptor))
+//     dReader.bindTriggerInputsAndAnnotations()
+//     //fmt.Println(utils.ConvertMapToJSONString("AFTER: 
dReader.DeploymentDescriptor", dReader.DeploymentDescriptor))
 //     trigger := sDeployer.Deployment.Triggers["locationUpdate"]
 //     for _, param := range trigger.Parameters {
 //             switch param.Key {
diff --git a/deployers/servicedeployer.go b/deployers/servicedeployer.go
index 7e96df27..7c155193 100644
--- a/deployers/servicedeployer.go
+++ b/deployers/servicedeployer.go
@@ -138,7 +138,7 @@ func (deployer *ServiceDeployer) ConstructDeploymentPlan() 
error {
                // Project Name in manifest/deployment file is mandatory for 
managed deployments
                if deployer.ProjectName == "" {
                        errmsg := wski18n.T(wski18n.ID_ERR_KEY_MISSING_X_key_X,
-                               map[string]interface{}{wski18n.KEY_KEY: 
wski18n.PROJECT_NAME})
+                               map[string]interface{}{wski18n.KEY_KEY: 
wski18n.NAME_PROJECT})
 
                        return 
wskderrors.NewYAMLFileFormatError(manifest.Filepath, errmsg)
                }
diff --git a/parsers/yamlparser.go b/parsers/yamlparser.go
index a9f68065..dd6ae2ea 100644
--- a/parsers/yamlparser.go
+++ b/parsers/yamlparser.go
@@ -26,7 +26,7 @@ import (
 // DO NOT translate
 const (
        YAML_KEY_ACTION      = "action"
-       YAML_KEY_ANNOTATION  = "annotoation"
+       YAML_KEY_ANNOTATION  = "annotation"
        YAML_KEY_API         = "api"
        YAML_KEY_FEED        = "feed"
        YAML_KEY_MANIFEST    = "manifest"
diff --git a/tests/dat/deployment-deploymentreader-test-package.yml 
b/tests/dat/deployment-deploymentreader-test-package.yml
deleted file mode 100644
index 15c5d4e9..00000000
--- a/tests/dat/deployment-deploymentreader-test-package.yml
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# 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.
-#
-
-package:
-      name: triggerrule
-      actions:
-        greeting:
-          inputs:
-            name: Amy
-            place: Paris
-          annotations:
-            aaa: this is an annotation
-      triggers:
-        locationUpdate:
-          inputs:
-            name: Bernie
-            place: DC
-          annotations:
-            bbb: this is an annotation
diff --git a/tests/dat/deployment-deploymentreader-test-packages.yml 
b/tests/dat/deployment_deploymentreader_packages_bind_trigger.yml
similarity index 69%
rename from tests/dat/deployment-deploymentreader-test-packages.yml
rename to tests/dat/deployment_deploymentreader_packages_bind_trigger.yml
index 6c76f03a..31749b0c 100644
--- a/tests/dat/deployment-deploymentreader-test-packages.yml
+++ b/tests/dat/deployment_deploymentreader_packages_bind_trigger.yml
@@ -15,18 +15,18 @@
 #
 
 packages:
-    triggerrule:
-      actions:
-        greeting:
-          inputs:
-            name: Amy
-            place: Paris
-          annotations:
-            aaa: this is an annotation
-      triggers:
-        locationUpdate:
-          inputs:
-            name: Bernie
-            place: DC
-          annotations:
-            bbb: this is an annotation
+  triggerrule:
+    actions:
+      greeting:
+        inputs:
+          name: Amy
+          place: Paris
+        annotations:
+          aaa: this is an annotation
+    triggers:
+      locationUpdate:
+        inputs:
+          name: Bernie
+          place: DC
+        annotations:
+          bbb: this is an annotation
diff --git a/tests/dat/deployment-deploymentreader-test.yml 
b/tests/dat/deployment_deploymentreader_project_bind_trigger.yml
similarity index 98%
rename from tests/dat/deployment-deploymentreader-test.yml
rename to tests/dat/deployment_deploymentreader_project_bind_trigger.yml
index fb651349..54d6fdfe 100644
--- a/tests/dat/deployment-deploymentreader-test.yml
+++ b/tests/dat/deployment_deploymentreader_project_bind_trigger.yml
@@ -14,7 +14,7 @@
 # specific language governing permissions and limitations under the License.
 #
 
-application:
+project:
   name: AppWithTriggerRule
   packages:
     triggerrule:
diff --git 
a/tests/src/integration/validate-action-annotations/deployment-with-invalid-annotations.yaml
 
b/tests/src/integration/validate-action-annotations/deployment-with-invalid-annotations.yaml
deleted file mode 100644
index cd3168b5..00000000
--- 
a/tests/src/integration/validate-action-annotations/deployment-with-invalid-annotations.yaml
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# 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.
-#
-
-project:
-    name: TestActionAnnotations
-    packages:
-        packageActionAnnotations:
-            actions:
-                helloworld:
-                    inputs:
-                        name: Amy
-                        place: New York
-                    annotations:
-                        action_annotation_5: this is annotation 5
-                        action_annotation_6: this is annotation 6
-        packageActionAnnotationsWithWebAction:
-            actions:
-                helloworld:
-                    inputs:
-                        name: Amy
-                        place: New York
-                    annotations:
-                        action_annotation_5: this is annotation 5
-                        action_annotation_6: this is annotation 6
-                        web-export: true
diff --git 
a/tests/src/integration/validate-action-annotations/validate-action-annotations_test.go
 
b/tests/src/integration/validate-action-annotations/validate-action-annotations_test.go
index 78f86fb4..842c4e8e 100644
--- 
a/tests/src/integration/validate-action-annotations/validate-action-annotations_test.go
+++ 
b/tests/src/integration/validate-action-annotations/validate-action-annotations_test.go
@@ -37,11 +37,3 @@ func TestActionAnnotations(t *testing.T) {
        _, err = wskdeploy.Undeploy(manifestPath, deploymentPath)
        assert.Equal(t, nil, err, "Failed to undeploy based on the manifest and 
deployment files.")
 }
-
-func TestInvalidActionAnnotations(t *testing.T) {
-       manifestPath := os.Getenv("GOPATH") + path + "manifest.yaml"
-       deploymentPath := os.Getenv("GOPATH") + path + 
"deployment-with-invalid-annotations.yaml"
-       wskdeploy := common.NewWskdeploy()
-       _, err := wskdeploy.Deploy(manifestPath, deploymentPath)
-       assert.NotNil(t, err, "Failed to validate invalid annotations in 
deployment file")
-}
diff --git a/utils/conversion.go b/utils/conversion.go
index e6c1e345..30d49e4e 100644
--- a/utils/conversion.go
+++ b/utils/conversion.go
@@ -57,7 +57,6 @@ func PrintTypeInfo(name string, value interface{}) {
 }
 
 func ConvertMapToJSONString(name string, mapIn interface{}) string {
-       PrintTypeInfo(name, mapIn)
        strMapOut, _ := json.MarshalIndent(mapIn, "", "  ")
-       return string(strMapOut)
+       return fmt.Sprintf("%s: %s", name, string(strMapOut))
 }
diff --git a/wski18n/i18n_ids.go b/wski18n/i18n_ids.go
index 564ef274..3949a336 100644
--- a/wski18n/i18n_ids.go
+++ b/wski18n/i18n_ids.go
@@ -29,18 +29,18 @@ const (
        DEPLOYMENT         = "deployment"
        CONFIGURATION      = "Configuration"
        MANIFEST           = "manifest"
-       NAME_ACTION        = "Action Name"
-       NAME_FEED          = "Feed Name"
-       NAME_RULE          = "Rule Name"
-       NAME_RUNTIME       = "Runtime Name"
-       NAME_TRIGGER       = "Trigger Name"
+       NAME_ACTION        = "action Name"
+       NAME_FEED          = "feed Name"
+       NAME_PACKAGE       = "package name"
+       NAME_PROJECT       = "project name"
+       NAME_RULE          = "rule Name"
+       NAME_RUNTIME       = "runtime Name"
+       NAME_TRIGGER       = "trigger Name"
        NAMESPACES         = "Namespaces"
        PACKAGE_BINDING    = "package binding"
        PACKAGE_LICENSE    = "package license"
-       PACKAGE_NAME       = "package name"
        PACKAGE_VERSION    = "package version"
        PACKAGES           = "Packages"
-       PROJECT_NAME       = "project name"
        REGISTRY           = "registry"
        REGISTRY_URL       = "registry URL"
        REPOSITORY         = "repository"
@@ -61,15 +61,15 @@ const (
        ID_MSG_PREFIX_WARNING = "msg_prefix_warning" // "Warning"
 
        // Cobra command descriptions
-       ID_CMD_DESC_LONG_PUBLISH      = "msg_cmd_desc_long_publish"
-       ID_CMD_DESC_LONG_REPORT       = "msg_cmd_desc_long_report"
-       ID_CMD_DESC_LONG_ROOT         = "msg_cmd_desc_long_root"
-       ID_CMD_DESC_SHORT_ADD         = "msg_cmd_desc_short_add"
-       ID_CMD_DESC_SHORT_ADD_X_key_X = "msg_cmd_desc_short_add_entity"
-       ID_CMD_DESC_SHORT_PUBLISH     = "msg_cmd_desc_short_publish"
-       ID_CMD_DESC_SHORT_REPORT      = "msg_cmd_desc_short_report"
-       ID_CMD_DESC_SHORT_ROOT        = "msg_cmd_desc_short_root"
-       ID_CMD_DESC_SHORT_VERSION     = "msg_cmd_desc_short_version"
+       //ID_CMD_DESC_LONG_PUBLISH      = "msg_cmd_desc_long_publish"
+       ID_CMD_DESC_LONG_REPORT = "msg_cmd_desc_long_report"
+       ID_CMD_DESC_LONG_ROOT   = "msg_cmd_desc_long_root"
+       //ID_CMD_DESC_SHORT_ADD         = "msg_cmd_desc_short_add"
+       //ID_CMD_DESC_SHORT_ADD_X_key_X = "msg_cmd_desc_short_add_entity"
+       //ID_CMD_DESC_SHORT_PUBLISH     = "msg_cmd_desc_short_publish"
+       ID_CMD_DESC_SHORT_REPORT  = "msg_cmd_desc_short_report"
+       ID_CMD_DESC_SHORT_ROOT    = "msg_cmd_desc_short_root"
+       ID_CMD_DESC_SHORT_VERSION = "msg_cmd_desc_short_version"
 
        // Cobra Flag messages
        ID_CMD_FLAG_API_HOST    = "msg_cmd_flag_api_host"
@@ -143,7 +143,6 @@ const (
 
        // Errors
        ID_ERR_DEPENDENCY_UNKNOWN_TYPE                               = 
"msg_err_dependency_unknown_type"
-       ID_ERR_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X              = 
"msg_err_deployment_name_not_found"
        ID_ERR_ENTITY_CREATE_X_key_X_err_X_code_X                    = 
"msg_err_entity_create"
        ID_ERR_ENTITY_DELETE_X_key_X_err_X_code_X                    = 
"msg_err_entity_delete"
        ID_ERR_FEED_INVOKE_X_err_X_code_X                            = 
"msg_err_feed_invoke"
@@ -178,6 +177,7 @@ const (
        ID_WARN_WHISK_PROPS_DEPRECATED                            = 
"msg_warn_whisk_properties"
        ID_WARN_ENTITY_NAME_EXISTS_X_key_X_name_X                 = 
"msg_warn_entity_name_exists"
        ID_WARN_PACKAGES_NOT_FOUND_X_path_X                       = 
"msg_warn_packages_not_found"
+       ID_WARN_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X          = 
"msg_warn_deployment_name_not_found"
 
        // Verbose (Debug/Trace) messages
        ID_DEBUG_KEY_VERIFY_X_name_X_key_X     = "msg_dbg_key_verify"
@@ -220,12 +220,8 @@ const (
 
 // Used to unit test that translations exist with these IDs
 var I18N_ID_SET = [](string){
-       ID_CMD_DESC_LONG_PUBLISH,
        ID_CMD_DESC_LONG_REPORT,
        ID_CMD_DESC_LONG_ROOT,
-       ID_CMD_DESC_SHORT_ADD,
-       ID_CMD_DESC_SHORT_ADD_X_key_X,
-       ID_CMD_DESC_SHORT_PUBLISH,
        ID_CMD_DESC_SHORT_REPORT,
        ID_CMD_DESC_SHORT_ROOT,
        ID_CMD_DESC_SHORT_VERSION,
@@ -250,7 +246,6 @@ var I18N_ID_SET = [](string){
        ID_DEBUG_PROJECT_SEARCH_X_path_X_key_X,
        ID_DEBUG_UNDEPLOYING_USING,
        ID_ERR_DEPENDENCY_UNKNOWN_TYPE,
-       ID_ERR_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X,
        ID_ERR_ENTITY_CREATE_X_key_X_err_X_code_X,
        ID_ERR_ENTITY_DELETE_X_key_X_err_X_code_X,
        ID_ERR_JSON_MISSING_KEY_CMD,
@@ -316,4 +311,5 @@ var I18N_ID_SET = [](string){
        ID_WARN_PACKAGES_NOT_FOUND_X_path_X,
        ID_WARN_RUNTIME_CHANGED_X_runtime_X_action_X,
        ID_WARN_WHISK_PROPS_DEPRECATED,
+       ID_WARN_DEPLOYMENT_NAME_NOT_FOUND_X_key_X_name_X,
 }
diff --git a/wski18n/i18n_resources.go b/wski18n/i18n_resources.go
index 9d3620dc..3908e0ed 100644
--- a/wski18n/i18n_resources.go
+++ b/wski18n/i18n_resources.go
@@ -97,7 +97,7 @@ func wski18nResourcesDe_deAllJson() (*asset, error) {
        return a, nil
 }
 
-var _wski18nResourcesEn_usAllJson = 
[]byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x1a\x6b\x8f\x1b\xb7\xf1\xbb\x7f\xc5\xc0\x28\xe0\x04\x38\xcb\x4e\x8a\x02\x85\x81\x43\xe1\xd6\x6e\x72\x4d\xec\x33\xee\xec\x04\x81\x73\x58\x53\xcb\x91\xc4\x68\x97\x5c\x90\xdc\x93\x95\x83\xfa\xdb\x8b\xe1\x63\x77\xa5\x3b\xee\x52\x72\x82\xe6\x4b\xe4\xe3\x70\xde\x9c\xe7\x7e\x7c\x04\x70\xf7\x08\x00\xe0\xb1\xe0\x8f\x5f\xc0\xe3\xda\x2c\x8b\x46\xe3\x42\x7c\x2e\x50\x6b\xa5\x1f\x9f\xf9\x53\xab\x99\x34\x15\xb3\x42\x49\x02\x7b\xed\xce\x1e\x01\xec\xce\x46\x30\x08\xb9\x50\x09\x04\x17\x74\x34\x75\xdf\xb4\x65\x89\xc6\x24\x50\x5c\x87\xd3\x29\x2c\x1b\xa6\xa5\x90\xcb\x04\x96\x9f\xc3\x69\x12\x4b\x59\xf3\x82\xa3\x29\x8b\x4a\xc9\x65\xd1\xb4\xf3\x4a\x98\x55\x02\xd9\x3b\x7f\x0a\x0c\x1a\x56\xae\xd9\x12\xc1\x2a\xb0\x2b\x04\x8d\x4b\x61\xac\xde\x82\x41\x0b\x42\xc2\x7f\x9f\xcd\x36\x66\xdd\x68\xd5\x98\x59\x2e\x69\x8d\x8d\xd2\x36\x41\xf9\xca\x1d\x1a\x50\x12\x38\x36\x95\xda\x22\x07\x94\x56\x58\x81\x06\xbe\x12\x33\x9c\x9d\xc1\x3b\xcf\x93\x39\x83\x97\x25\xdd\x33\x67\xf0\x5e\x8b\xe5\x12\xb5\x39\x83\xab\xb6\xa2\x13\xb4\xe5\xec\x6b\x60\x06\x36\x58\x55\xf4\x7f\x8d\x25\x4a\xeb\x6e\xdc\x3a\x6a\x86\xf8\x27\x99\x4c\x83\xa5\x58\x08\xe4\x20\x59\x8d\xa6\x61\x25\xe6\xcb\xa2\x54\x4a\x92\x97\x60\x95\xaa\x48\x71\x5e\x90\x33\x68\xa5\xff\x05\x4c\x72\x30\x5b\x59\x82\x6a\x50\x6e\x56\xc2\xac\xa3\x9e\x0d\xb4\x46\xc8\x25\x30\xa8\x99\x14\x0b\x34\xd6\x01\xab\x86\xb0\xb2\x2a\xa0\xaa\x49\x92\x85\xa8\x3a\xf0\x5f\x5e\xbe\xf9\x31\x87\x67\xb3\x52\xda\x9e\x62\x7b\xd6\x59\x3e\x9f\xcc\xa8\x9d\xdf\x69\x75\x2b\x38\x1a\x60\x60\xda\xba\x66\x7a\x0b\x1e\x1e\xd4\x02\x36\x2b\x66\x9f\x18\x98\x23\x0e\xbc\xe0\xcb\xac\x15\x58\x9a\x34\x17\xf9\xb5\x55\xb0\xc2\xaa\x09\xa4\x61\xab\x5a\x9d\x65\x29\xb2\x48\x3e\x2f\x8c\xf3\x14\x2b\x9c\x03\x93\xc0\x9c\x73\x9f\xc1\x02\x91\x9f\x81\xf5\x1e\x0e\x4a\x83\x6e\xab\xee\x41\x46\xe2\xc7\x90\x2d\xdc\x83\xda\x8e\x51\x7f\xc6\x24\xdc\xdd\xcd\xd6\xb8\xdd\xed\x0e\x49\x39\x39\xb3\xe9\xdd\xa2\x36\x84\x39\xe5\x06\x42\x5a\x87\x3d\xc0\x81\x6c\xeb\x39\x89\xb9\x80\x8d\x59\x7b\x0b\x8c\xd3\x5a\x54\x6c\x59\xb0\x46\x14\x2b\x65\x52\xc6\xf5\x96\x7b\xf9\xee\x02\x3e\x7d\x7f\x79\xfd\xfe\x53\x26\xc6\x71\xde\x07\x48\x7f\x7a\x7d\x75\x7d\x71\xf9\x36\x0b\x6f\x6b\x57\xc5\x1a\x53\xda\xa7\x63\xa5\xc5\xef\xee\x0f\xf0\xe9\x87\xd7\xbf\xe4\x20\x2d\x51\xdb\xc2\x99\xe5\x61\xac\x0d\xb3\x2b\x52\x29\x29\x7a\x46\xc0\x19\x36\xf4\x88\x95\x5c\x88\x54\xca\xf1\x87\x0e\x15\x7c\xc5\x71\xc1\xda\xca\x82\x30\xf0\x97\xef\x2f\xdf\xbc\xee\x13\xc3\xd7\x39\x5a\xa9\x2a\xb5\x29\x02\x8e\x54\xa2\x74\x40\xd0\x01\x4d\x63\xed\xa3\xe5\x98\x5e\xba\x08\xdd\x85\xd5\x0c\xd4\x42\x5a\xd4\xf4\x42\x6f\x53\x3a\xf7\xdc\x0e\xe0\xa0\xd1\xaa\x6e\xb2\x18\x5f\xe3\x36\xdb\x9c\x6b\xdc\xe6\x32\xed\xb5\x5c\x33\xc9\x96\x98\x0a\x3e\x9e\xed\x46\xab\xdf\xb0\xb4\x7d\xea\xb5\x0a\xe6\x14\x02\xf4\x1a\x39\x44\x0c\xd3\x14\xbb\xf0\x34\xae\xff\x23\x42\x8b\x43\xdb\x85\xfe\x04\xde\xfe\x7c\x1a\x57\x10\x75\x82\x43\x83\xfa\x16\x75\x85\xc6\x44\xdd\x64\xa0\x36\x56\x8b\x24\x66\xaf\xe8\xd6\xa0\x26\x97\x16\x12\x39\xe8\x56\x5a\x51\x77\xb1\x30\x83\x82\x55\xcb\x65\x85\x05\xa5\xab\x04\x99\xf7\x0e\x02\xbe\xa7\x84\x56\xa3\x31\x6c\x99\xef\x29\xb7\xa8\xe7\xca\xa4\x94\x1c\x4e\x41\xb5\xb6\x69\xc7\xd4\xe1\xc2\x44\x51\x0b\x43\x09\xd3\x05\xc0\x74\xfc\x7b\xbf\x42\x20\x08\x72\xbc\xd2\x07\x41\x72\x70\x61\x40\x2a\x0b\x1e\x55\xab\x91\xcf\x7e\x1d\x53\xcf\x01\xc5\x46\x8c\xe4\x06\xa2\x48\x41\x9c\x40\xbe\x8c\xce\x94\x57\x12\xa5\x0e\xe6\x34\x52\x41\x94\xb1\x8e\xe4\x50\x9e\x8f\x77\x77\x33\xfa\xbd\xdb\xdd\x9c\xc1\x42\xab\x9a\x12\xbb\x51\xad\x2e\x71\xb7\xcb\xa2\xe9\x0d\x36\x45\x93\xc0\xa2\xad\x0c\xda\xd3\x68\x75\xea\x99\xa2\xb6\xa7\x47\x12\xb1\xfb\xc3\xe9\x72\x36\x62\xb9\x29\x98\x6b\xc6\x0a\xab\xd6\x28\x27\x45\xa6\x1b\xe0\x6f\x80\xbb\x71\x9a\xf0\xad\xac\x99\x36\x2b\x56\x15\x95\x2a\x59\x95\xa0\xf8\x21\x42\xc1\x65\x83\xf2\x67\x57\x7d\x84\x88\x61\x3c\x3d\x77\x1b\x6e\x59\xd5\xa2\xc9\x24\x28\xd1\x6e\x94\x5e\x9f\x4c\xd2\xe5\x37\x89\x16\x98\x25\x71\x5b\x5d\x4d\xc8\xda\xa7\xda\xa2\x64\xb2\xc4\xaa\x4a\xa6\xa2\xcb\x1f\x66\xf0\x2f\x0f\x43\x95\x76\x7f\x33\x97\xc0\x82\x89\x34\xf6\x57\x7d\xce\xe7\x82\x87\xb7\x58\x37\x15\x5a\x04\xd3\x92\x49\x17\x6d\x55\x6d\x67\x70\xd5\x4a\xf8\xd4\x15\xa3\x5d\x17\xf7\x89\xd2\x82\xc6\x5a\x51\x66\x67\xda\x0a\x56\x55\xdb\xbe\x5d\x61\xc6\xa0\x1d\xb7\xc2\x80\x53\xdf\xfb\x14\xc6\x32\xdb\xa6\xca\x9f\xa7\x4f\x9f\x3e\x3d\x3f\x3f\x3f\x1f\xd8\x62\x20\xc3\xb5\xbb\x0a\x04\x40\x80\x59\x54\xdd\x5c\x02\x79\x8e\x8a\xa2\x6a\x38\x84\x61\x86\x57\xce\xb8\x93\x9d\x6e\xeb\xe1\xdd\x7c\x22\xa3\xf6\xfe\x30\x80\x1c\xb7\x78\x36\xbd\x29\xfd\xed\x91\x3c\x41\x83\xb1\x2c\x2a\x5c\xab\x39\x5d\xce\x7e\x70\x1d\x29\x45\x43\x2a\x5b\x76\xbb\x1b\x58\x28\x9d\xfb\x6e\x0e\x88\x0d\x05\x3d\x8a\x5c\xb6\xe9\x7c\x17\x5a\xc4\x17\x33\x31\x25\xeb\xba\xd1\x18\xec\x89\xde\x8a\x85\x29\xc1\x50\xa5\xdd\x1b\xcc\xa7\x9e\x1e\xab\xbd\x8a\xe7\xf0\x20\x03\xb3\xd9\x48\xc3\x1f\x48\x44\x85\xfc\x91\x22\xf6\x38\x73\x84\x8c\xd0\x69\x31\x3f\xf4\x10\x27\x08\xca\xb1\x41\xc9\x51\x96\xc7\xe8\xb3\xbf\x34\x24\x74\x1c\x9d\xfe\x15\x26\x95\xfa\xea\x41\x32\x5f\xe2\x39\x0f\x73\x41\xb1\xa7\xd5\xa9\xd2\x6f\x10\x49\xd5\x22\x21\xfa\xff\x31\x0d\x45\x79\x8e\x73\x94\x2f\xb3\xe0\xfd\x48\xfa\xc7\xd8\x30\xf3\x69\xa4\x38\x19\xb7\xe3\x5e\x44\x3f\xd1\x92\x13\x41\x98\x3a\xeb\x53\xd3\x9a\xe3\xc8\x27\x99\xae\x73\x1f\xe3\x05\x78\xab\xc9\x92\x81\xec\x30\x55\xfc\x79\xfe\x16\x65\x5c\xa8\x56\xf2\x22\xf0\x3b\x3e\x93\x7c\x45\x40\xc9\xd8\xb4\x59\x89\x72\x05\x1b\x37\xe4\x27\xbe\xb8\x2f\x4d\xed\x0a\xa1\x6c\xb5\x26\xc5\x44\x01\xe3\x5c\xc3\x25\x2d\xff\x9b\x30\x30\xe3\x64\x21\xfd\x65\xa7\x2f\x3f\xcd\x99\x68\x2e\x7f\x95\xef\x2a\x64\xc6\xcd\x7e\x6e\x05\x47\xc7\x14\xc1\x13\xef\x2e\x5d\x76\xc5\xdc\x0b\x98\xa6\x35\xda\x3a\xdf\xa3\xc5\xe4\x61\x2b\xed\x7a\x94\x0c\x42\x61\xee\x9a\x30\x86\x82\xad\x6a\x41\xa3\xb3\xfc\x86\x49\xdb\x8f\xd0\xc0\xae\x84\xf9\x07\x7c\xb5\x7d\xf6\xf6\xeb\x0c\x3a\x53\x1d\xf3\x7d\x91\x06\x8d\xdf\xc7\x38\x72\x74\x0d\x0f\x75\x5e\xcb\x16\x8d\xbd\xc9\xa0\x1b\x8d\x7c\x94\x84\xdd\xfa\x26\x53\xc6\xc0\x5e\x11\x16\x06\xa9\x09\x78\x58\xb2\x38\x87\x18\x0c\x51\x35\xba\x91\x13\x3f\x03\x56\x0d\xdb\xaf\xee\x5d\x13\x3b\xba\xbb\x11\x77\x35\x4c\x63\xf7\x18\x9f\xf5\xa1\x10\xb8\xd0\x58\xda\x10\x1e\xb5\xdf\x69\x4c\x2d\x50\x5e\x5f\x5d\x5d\x5e\x5d\x27\xf8\x3e\x3f\xfc\x0f\x3c\x38\xdc\x3b\x38\x3f\x1f\x29\x50\xb4\xde\x8f\xc4\x6b\xa9\x36\xb2\xb0\xdb\x66\x24\x93\xc6\x88\x4b\x50\xa4\xaa\x70\x6b\x06\xfd\xca\x00\x94\xac\xb6\x60\xda\xc6\x6f\x13\x9f\xb9\x59\xfd\xcc\x6c\x8d\xc5\x1a\xe6\x42\x72\x21\x97\x06\x94\x86\xa5\xb0\xab\x76\x3e\x2b\x55\xdd\x2d\x76\xc6\x2b\x2a\xcf\x70\x0c\xcd\xa4\xc2\x42\x2a\xeb\x83\xd9\xc8\xa8\xe0\xc1\xc0\x25\xe4\xe1\xe4\xd9\x45\x6a\x87\x8b\x0e\xf7\x37\x4b\x53\x6c\x85\x62\xaf\xd4\xc8\x6c\x4a\x7b\x6e\xdf\x0d\x0e\x64\x2f\x9c\x6e\x84\x5d\x81\x5b\x94\xc7\x21\xe1\x0b\x3a\x44\xad\x77\x3b\xb7\x81\xf4\x67\xa5\xe2\xfe\x80\x7e\x4c\x34\xfa\x03\x96\x7c\x8c\x1f\x65\x89\xdf\x8b\xf0\x7f\x12\x4b\x0b\x44\x5e\x08\x79\xab\xd6\x29\x86\xfe\xed\xd2\x2d\xbd\x78\x0f\xe6\x62\x36\x5d\x83\xcd\xca\x2d\x24\x03\xa7\x71\x23\xe7\x8f\xfe\x1c\x6e\xd7\xb8\xed\xc6\x8b\x35\x93\x9c\x59\xa5\xc7\x46\xa7\x1d\x8c\x9b\xc4\x7d\x8c\xca\xbc\xa1\x67\x12\xf0\x4c\xd2\xec\x1a\xc1\x29\xbf\x7e\x33\x74\xcf\x81\xe7\x32\x0a\x47\x76\x35\xec\x0c\x27\x89\xba\x87\x54\x0b\x53\x33\x5b\xa6\x36\xd3\x7b\xef\x88\x2e\x70\x47\x82\x8f\x3c\x27\x77\x1e\xbb\x53\xae\xd0\xcf\x5c\x1d\x11\x67\x56\x17\x75\x09\xa8\x1e\x20\xd9\x7b\x76\xfe\x34\x8a\x31\x2e\x44\x18\x8d\x91\x7b\xb1\x4a\xa4\xd4\x76\xe1\x4f\x29\xfa\x04\x93\x74\x83\x7f\xa2\x15\x7e\x13\x2f\xfd\xae\x7b\x8f\x2b\xa5\x1d\xef\x7e\x3f\xec\xee\xf8\x9f\x39\x7a\x8e\x2c\x4e\xa8\xfa\xea\x18\x86\x0e\xf4\xea\x9e\x82\xe7\xe8\x89\x01\x3f\x00\xf5\xaa\xc4\xcf\x16\xa5\x89\x4c\xe3\x67\x1b\x67\x06\x5f\x22\x8a\x29\x96\x98\x2a\xbf\xfa\xa7\xbc\x44\xbf\x66\x0e\x29\xa1\x5f\xb6\x84\x39\x66\x9f\x60\x29\xed\x8a\x72\xf0\x7c\x27\x19\x69\x75\x75\xbc\xc9\xfd\xb0\x94\x52\xd8\x6e\x07\x1f\xae\x7e\x74\xc2\xbb\xf1\xa9\xf3\x41\xfa\x17\xe9\xcc\x03\xdc\xe4\x65\x00\x62\xa4\x66\xd5\x42\xe9\x3a\xd9\x2f\xbc\x89\xe7\x63\x1c\xcc\xe0\xbd\xde\x02\x5b\x32\x21\x67\xb3\x49\xb2\xbf\x19\x25\xbb\x28\x55\xd6\x7c\x64\xbd\xfd\x9f\xeb\xcb\xb7\x20\x64\xd3\x5a\xe0\xcc\x32\x78\x13\xb4\xf1\xa4\xac\xf9\x13\x8a\x59\xe3\x94\x58\x23\x3a\x42\x1b\x9c\x17\xde\x59\x52\x1f\x32\x3c\xe0\x54\x71\xeb\xc2\x60\x83\xf3\xee\x0b\x8b\x97\xef\x2e\x3c\x58\x23\x08\xa6\x64\xd2\xd7\x0f\x73\xf4\xa9\x12\x79\xf8\xd8\xa3\xbf\x34\x83\x50\x99\xb6\x0d\x67\xf6\xe0\xe3\x08\x72\xb8\x52\xc9\x5b\xd4\xf6\x80\xbc\x55\x43\x1c\x53\x8a\x1d\x8a\x7b\x92\xa8\xd1\xd9\x9c\x8b\xef\xb1\x98\x25\xf4\x9c\x19\xe4\xa0\xe4\x30\xdc\xdc\x47\x35\xa9\x0a\x21\xcb\xaa\xe5\x78\xc0\x1e\x33\x7b\x56\x48\x2a\xe3\xe7\x97\x57\x6f\x2f\xde\x7e\x97\x5f\x87\xc6\x0b\xc7\x55\xa2\x1b\xa6\x65\x51\xaa\x9a\x32\x68\xa1\xd1\x26\xd3\xec\x15\x9d\xc5\xc1\x67\x59\x73\x27\xcb\xc2\xa2\xf6\x29\xfe\x85\x8f\x6d\x14\x38\x6e\xc6\xec\x1b\xe8\xb9\xcd\xd3\xd1\xc1\x63\xf8\xe5\xc5\x70\xfe\xca\xd1\x62\x69\x27\x26\x1f\x8e\x32\x15\x16\x1c\x1b\x8d\x25\x59\xba\xd0\xd8\x54\xac\x4c\x06\x0d\xca\xbc\x44\x47\x55\x3c\xd4\x13\x6e\xd1\xe7\x1d\x63\x2f\x52\x79\x9e\x36\xa2\xaa\xc0\x28\x25\xc9\x9b\x7a\x32\x67\xd0\x04\x4f\x31\xbe\xaa\x72\xc5\x30\x6e\xf6\x70\x1a\x8b\x2c\x53\x80\xa0\x8e\x53\xea\x21\xb3\x52\x6d\xc5\x89\x3d\x83\x76\x06\x7e\x94\xbd\xdf\x50\x12\xb4\xfb\xe5\x87\x5a\x59\x1c\x39\xf8\x09\x7b\x12\x5f\x9e\x02\xa5\xbe\xfb\x75\x1a\xc5\x27\x77\xff\x18\x92\x54\xab\x19\x76\x3b\x6a\xc1\x29\xa2\xee\x7e\xb4\x6a\x9c\x9c\xc4\xef\xb2\x86\x1f\x64\x4d\x33\x56\x89\x5a\xd8\x42\x2c\xa5\xd2\x49\x96\xa2\x5f\x87\xc0\xe2\xae\x38\xae\xdc\xaf\xc3\x5a\x4c\x18\x08\xe8\x72\xa9\x97\x2b\x26\x97\xc8\xe6\xc9\xcf\x68\x7e\xec\x28\x76\xc5\x9f\x89\x72\x57\x5b\x3f\x34\xeb\x70\xcc\xe0\x82\xc8\x53\x01\x9d\xe1\x0b\x8e\x03\x53\x54\x6a\x59\x18\xf1\x7b\x8a\x81\x4a\x2d\xaf\xc5\xef\x48\xba\xf5\x17\xf6\x24\xee\x5d\x94\x49\xb7\x67\xa5\x66\x63\x8e\x76\x83\x28\xe1\xb9\x6b\x2a\xbe\x79\x9e\xcd\x4a\x8d\xb5\xd2\xdb\x31\x6e\x3c\xc4\xa9\x0c\x7d\xf3\xed\xdf\x1d\x4b\x7f\xfb\xe6\xdb\x6c\x9e\xa8\xfe\x52\x6d\xaa\x78\x0b\xa7\x27\x31\xf3\xdc\xeb\xe7\xaf\xcf\xe9\xbf\x69\x7e\xdc\x78\xa0\x68\xb4\x6a\x50\x5b\x81\xa9\x39\x74\x0c\x83\x83\x78\xe5\xa7\x8e\x56\x0b\xec\xe6\x8e\x7e\xd6\xd0\x23\x8b\xf3\xc9\x87\x63\x62\x0c\x89\x5c\x39\x87\xa3\xc8\x28\x2c\xa8\xd6\x1a\xc1\x9d\x21\xde\x6b\x76\x2b\x0c\xcc\x5b\x51\xf1\xf1\xd9\x84\x13\xc5\x87\x03\x4d\x6e\x9b\x15\x0a\x3a\xef\xdf\x0b\x08\xf2\x20\xaa\x07\x6d\xbb\x89\xcb\xdd\xdd\x2c\xfc\x35\xaa\x9b\x3a\x24\x21\x43\xa3\x4b\xff\x60\xe5\x44\xd9\xec\x58\x8d\xbd\x88\x7f\x64\xa9\x30\x11\x5b\x91\x00\x45\x05\xc5\x41\x57\xf2\x40\x99\x92\x6c\x3c\x4e\xea\x36\x1c\xb7\x61\x96\xe1\x1a\x55\xfc\x2c\x4c\xf2\x33\xc5\x7b\x6d\xea\x5e\x88\x61\x95\x46\xc6\xb7\xe0\x51\x74\xb5\x93\xc1\x0a\x4b\x0b\x4c\x2a\xbb\x42\x3f\x9a\x9b\x66\x29\x4e\xac\xb2\x26\x50\xf7\xbb\xda\x58\x35\x94\x4a\x5a\xe6\x3e\x40\x93\x6a\x7a\x0a\xf6\xea\xf5\x3f\x3f\x7c\x97\x5d\x8c\x39\xe8\xe3\x2a\x31\x3e\xf7\x1f\x40\xde\xa2\x16\x8b\x54\x15\xf6\x93\x3b\x0c\x8d\xd4\x7d\x07\x0e\xda\x1d\x8f\xd4\x44\xa8\xdb\x66\xf9\xb5\xf7\xe4\xd6\xd2\x41\xbd\x98\xc2\x3a\xd8\xa3\x8d\xe2\x1d\x6e\xd3\xf2\x30\x1b\x64\xba\x5c\x11\xde\xb0\xbe\x28\xfc\x64\x37\x3d\x16\xba\x8e\x37\xba\xe5\x47\x77\xe3\xde\xee\xbe\xd7\x60\xaf\xba\x47\x37\x8f\xfe\x17\x00\x00\xff\xff\xfc\x20\x12\xb6\x5e\x33\x00\x00")
+var _wski18nResourcesEn_usAllJson = 
[]byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xc4\x5a\x69\x8f\x1b\x37\xd2\xfe\xee\x5f\x51\x30\x5e\xc0\x09\x30\x56\x9c\xbc\x58\x60\x61\x60\xb0\xf0\xae\xbd\x89\x37\xb1\xc7\x98\x23\x41\xe0\x0c\xda\x54\xb3\x24\x31\x62\x93\x0d\x92\x2d\x59\x19\xe8\xbf\x2f\x8a\x64\x1f\xd2\x0c\xbb\x39\x72\x82\xcd\x97\xb4\x87\xc5\x7a\xea\x20\xeb\xa2\x3e\x3e\x01\xb8\x7b\x02\x00\xf0\x54\xf0\xa7\x2f\xe1\x69\x65\x97\x45\x6d\x70\x21\x3e\x17\x68\x8c\x36\x4f\xcf\xc2\xaa\x33\x4c\x59\xc9\x9c\xd0\x8a\xc8\xde\xf8\xb5\x27\x00\xfb\xb3\x11\x0e\x42\x2d\x74\x82\xc1\x5b\x5a\x9a\xda\x6f\x9b\xb2\x44\x6b\x13\x2c\xae\xe2\xea\x14\x97\x2d\x33\x4a\xa8\x65\x82\xcb\x2f\x71\x35\xc9\xa5\xac\x78\xc1\xd1\x96\x85\xd4\x6a\x59\x18\xac\xb5\x71\x09\x5e\x97\x7e\xd1\x82\x56\xc0\xb1\x96\x7a\x87\x1c\x50\x39\xe1\x04\x5a\xf8\x4a\xcc\x70\x76\x06\x1f\x58\xb9\x66\x4b\xb4\x67\xf0\xaa\xa4\x7d\xf6\x0c\xae\x8d\x58\x2e\xd1\xd8\x33\xb8\x6c\x24\xad\xa0\x2b\x67\x5f\x03\xb3\xb0\x45\x29\xe9\xff\x06\x4b\x54\xce\xef\xd8\x78\x34\x0b\x42\x81\x5b\x21\xd8\x1a\x4b\xb1\x10\xc8\x41\xb1\x0a\x6d\xcd\x4a\x9c\x65\xeb\xa2\x75\x4a\x93\x57\xe0\xb4\x96\xe0\x74\x54\xe4\x0c\x1a\x15\xbe\x80\x29\x0e\x76\xa7\x4a\xd0\x35\xaa\xed\x4a\xd8\x35\xd4\x51\x27\x68\xac\x50\x4b\x60\x50\x31\x25\x16\x68\x9d\x27\xd6\x35\x71\x65\x32\xb2\xaa\x48\x93\x85\x90\x1d\xf9\xaf\xaf\xde\xfd\x94\x23\xb3\x5d\x69\xe3\xc6\x1d\xf0\xc1\xe8\x8d\xe0\x68\x81\x81\x6d\xaa\x8a\x99\x1d\x04\x7a\xd0\x0b\xd8\xae\x98\x7b\x66\x61\x8e\x38\x70\xcf\x97\x99\x31\x8a\x34\x69\x47\x8b\x8e\x6c\xb9\x42\x59\x47\x68\xd8\xe9\xc6\x64\x99\x90\x4c\x95\x2f\xcb\x06\x8d\x25\xec\x94\x7d\x84\x72\x5e\xe1\x48\x07\xaa\xa9\xe6\x68\xbc\x79\xec\x3a\x88\x36\x8e\xb5\x90\x6c\x59\xb0\x5a\x14\x2b\x6d\x53\x5a\x07\x95\x5e\x7d\x78\x0b\x9f\x7e\xb8\xb8\xba\xfe\x94\xc9\x71\x5c\xf6\x01\xd3\x9f\xdf\x5c\x5e\xbd\xbd\x78\x9f\xc5\xb7\x71\xab\x62\x8d\xbb\x04\x53\x5a\xd6\x46\xfc\xe1\xff\x00\x9f\x7e\x7c\xf3\x6b\x0e\xd3\x12\x8d\x2b\xc8\x2f\x09\xae\x35\x73\x2b\x32\x29\x19\x7a\x46\xc4\xde\x89\x39\x8c\xb5\x5a\x88\x54\xa4\x0a\x8b\x9e\x15\x7c\xc5\x71\xc1\x1a\xe9\x40\x58\xf8\xbf\x1f\x2e\xde\xbd\xf9\x66\xb6\xb5\xeb\xda\xe8\xda\x7e\x9d\x63\x15\x29\xf5\xb6\x88\x3c\x52\xf1\xd5\x13\x41\x47\x34\xcd\xb5\xbf\xdf\x63\x76\xe9\x62\x4a\x17\x08\x32\x58\x0b\xe5\xd0\x30\x0a\x7f\x29\x9b\x07\x69\x07\x74\x50\x1b\x5d\xd5\x59\x82\xaf\x71\x97\xed\xce\x35\xee\x72\x85\x0e\x56\xae\x98\x62\x4b\xe4\xa3\x62\xd7\x46\xff\x8e\xa5\xeb\x93\x85\xd3\x30\x47\xa8\x98\x59\x23\x87\x96\xc3\x34\x62\x1b\x34\x26\xec\x7f\x10\x5b\x32\xd8\x76\x31\x31\xc1\xb7\x5f\x9f\xe6\x15\x55\x9d\x90\xd0\xa2\xd9\xa0\x91\x68\x6d\x6b\x9b\x0c\xd6\xd6\x19\x91\xe4\x1c\x0c\xdd\x58\x34\x74\xa4\x85\x42\x0e\xa6\x51\x4e\x54\x5d\x2c\xcc\x40\x70\x7a\xb9\x94\x58\x50\x1c\x4f\xc0\x5c\x7b\x0a\xf8\x81\x22\x7d\x85\xd6\xb2\x65\xfe\x49\xd9\xa0\x99\x6b\x9b\x32\x72\x5c\x05\xdd\xb8\xba\x19\x33\x87\x0f\x13\x45\x25\x2c\x65\x12\x1f\x00\xd3\xf1\xef\x7a\x85\x40\x14\x74\xf0\xca\x10\x04\xe9\x80\x0b\x0b\x4a\x3b\x08\xac\x1a\x83\x7c\xf6\xdb\x98\x79\x8e\x10\x6b\x31\x92\x1b\x08\x91\x82\x38\x91\x7c\x19\xce\xd4\xa9\x24\xa4\x8e\xe6\x34\xa8\xa8\xca\x58\x21\x7b\xac\xcf\xc7\xbb\xbb\x19\x7d\xef\xf7\xb7\x67\xb0\x30\xba\x82\xbb\xbb\x99\xd5\x8d\x29\x71\xbf\xcf\xc2\x0c\x0e\x9b\xc2\x24\xb2\xd6\x57\x16\xdd\x69\x58\x9d\x79\xa6\xd0\x0e\xec\x48\x2a\x76\x7f\x38\x5d\xcf\x5a\x2c\xb7\x05\xf3\x35\x7c\xe1\xf4\x1a\xd5\xa4\xca\xb4\x03\xc2\x0e\xf0\x3b\x4e\x53\xbe\x51\x15\x33\x76\xc5\x64\x21\x75\xc9\x64\x02\xf1\xa6\xa5\x82\x8b\x1a\xd5\x2f\xbe\xfa\x88\x11\xc3\x06\x3c\xbf\x1b\x36\x4c\x36\x68\x33\x01\x15\xba\xad\x36\xeb\x93\x21\x7d\x7e\x53\xe8\x80\x39\x52\xb7\x31\x72\x42\xd7\x3e\xd5\x16\x25\x53\x25\x4a\x99\x4c\x45\x17\x3f\xce\xe0\x5f\x81\x86\x4a\xd0\x7e\x67\x2e\xc0\x82\x89\x34\xf7\xd7\x7d\xce\xe7\x82\xc7\xbb\x58\xd5\x12\x1d\x82\x6d\xc8\xa5\x8b\x46\xca\xdd\x0c\x2e\x1b\x05\x9f\xba\x62\xb4\xeb\x3b\x3e\x51\x5a\x30\x58\x69\xca\xec\xcc\x38\xc1\xa4\xdc\xf5\x75\x3c\xb3\x16\xdd\xb8\x17\x06\x92\x86\xa6\xa0\xb0\x8e\xb9\x26\x55\xfe\x3c\x7f\xfe\xfc\xf9\xf9\xf9\xf9\xf9\xc0\x17\x03\x1d\xae\xfc\x56\x20\x02\x22\xcc\x42\xf5\xed\x2c\xf2\x1c\x13\xb5\xa6\xe1\x10\x7b\xe0\x60\x9c\xf1\x43\x76\xba\xaf\x87\x7b\xf3\x41\x46\xfd\x7d\x33\xa0\x1c\xf7\x78\x36\xde\x94\xfd\x0e\x20\x4f\xb0\x60\x5b\x16\x15\xbe\x07\x9b\x2e\x67\x6f\x7c\xab\x46\xd1\x90\xca\x96\xfd\xfe\x16\x16\xda\xe4\xde\x9b\x23\xb0\xa1\xa2\x8f\x82\xcb\x76\x9d\xaf\x2d\x77\x45\x7b\x63\x26\x86\x2b\x77\x77\x54\xe9\xee\xf7\x5d\xb0\x27\xbc\x15\x8b\xed\xf3\xd0\xa4\xdd\x1d\xcc\x47\x4f\x4f\x63\x5e\xb7\xeb\xf0\xa0\x00\xb3\xd9\x48\x27\x1c\x21\x5a\x83\xfc\x99\x2a\xf6\x3c\x73\x94\x6c\xa9\xd3\x6a\xde\xf4\x14\x27\x28\xca\xb1\x46\xc5\x51\x95\x8f\xb1\x67\xbf\x69\x08\xf4\x38\x9c\xfe\x16\x26\x8d\xfa\xfa\x41\x98\x2f\x39\x39\x0f\x4b\x41\xb1\xa7\x31\xa9\xd2\x6f\x10\x49\xf5\x22\xa1\xfa\xff\x30\x0d\xb5\xfa\x3c\xee\xa0\x7c\x99\x07\xef\x47\xd2\x3f\xc7\x87\x99\x57\x23\x25\xc9\xb8\x1f\x0f\x22\xfa\x89\x9e\x9c\x08\xc2\xd4\x59\x9f\x9a\xd6\xbc\x44\x21\xc9\x74\x9d\xfb\x98\x2c\xc0\x1b\x43\x9e\x8c\xb0\xc3\x54\xf1\xd7\x9d\xb7\x56\xc7\x85\x6e\x14\x2f\xa2\xbc\x31\x54\x25\x0f\x80\x44\x97\x8c\x4d\xdb\x95\x28\x57\xb0\xf5\x63\x69\x92\x8b\x87\xd2\xd4\xad\x10\xca\xc6\x18\x32\x4c\xab\x60\x3b\xd7\xf0\x49\x2b\x7c\x13\x07\x66\xbd\x2e\x64\xbf\xec\xf4\x15\xa6\x39\x13\xcd\xe5\x6f\xea\x83\x44\x66\xfd\xec\x67\x23\x38\x7a\xa1\x88\x9e\x64\xf7\xe9\xb2\x2b\xe6\x5e\xc2\x34\xd6\x68\xeb\x7c\x0f\x8b\xa9\xe3\x56\xda\xf7\x28\x19\x40\x71\xee\x9a\x70\x86\x86\x9d\x6e\xc0\xa0\xf7\xfc\x96\x29\xd7\x8f\xd0\xc0\xad\x84\xfd\x07\x7c\xb5\xfb\xe6\xfd\xd7\x19\x38\x53\x1d\xf3\x7d\x95\x06\x8d\xdf\xc7\x76\xe4\xe8\x1b\x1e\xea\xbc\x96\x0d\x5a\x77\x9b\x81\xdb\x3a\xf9\x51\x1a\x76\x0f\x0e\x19\x3a\xbe\xb9\xbc\xbc\xb8\xbc\x4a\xb0\x3f\x3f\xfe\x0f\x02\x39\xdc\x5b\x38\x3f\x1f\xc9\xed\xc6\x1c\x06\xb1\xb5\xd2\x5b\x55\xb8\x5d\x3d\x92\x84\xda\x60\x45\x54\x64\xb1\xb8\x6b\x06\xfd\xb4\x1d\xb4\x92\x3b\xb0\x4d\x1d\x9e\x8e\xbe\xf1\x63\xee\x99\xdd\x59\x87\x15\xcc\x85\xe2\x42\x2d\x2d\x68\x03\x4b\xe1\x56\xcd\x7c\x56\xea\xaa\x7b\x2c\x18\x2f\x46\x8c\x69\x0b\x92\xd2\x20\x73\x29\x31\xfd\x53\x1e\x78\x92\x83\x2b\xbf\x15\x6e\x05\xfe\x0d\xb0\x1d\x64\xbd\xa4\x45\x34\x66\xbf\xf7\xef\x3a\x61\xad\xd4\x3c\x2c\xd0\xc7\x44\x33\x3a\x10\x29\xc4\xa1\x51\x91\xf8\xbd\x28\xf4\x17\x89\xb4\x40\xe4\x85\x50\x1b\xbd\x4e\x09\xf4\x6f\x9f\x12\xe8\x54\x06\x32\x1f\x57\x68\x1b\x6c\x57\xfe\x35\x29\x4a\xea\xc2\x4b\x5e\x5c\xfa\x6b\xa4\x5d\xe3\xae\x1b\x81\x55\x4c\x71\xe6\xb4\x19\x1b\xef\x75\x34\x7e\x5a\xf4\xb1\x35\xe6\x2d\x9d\xc7\xc8\x67\x12\xb3\x6b\x56\x94\x76\x21\x91\x24\x00\xdf\x0d\x27\xcb\x3e\x0f\x7a\x6a\x60\x0e\xfc\x68\x77\xd0\xbd\x4c\x82\x52\xe8\x21\x4d\x2b\xe6\xca\xd5\x88\x82\xdd\xf1\xa0\x0d\xdc\x43\xf0\x36\x57\x09\x75\xfc\xd8\x10\xd6\xdb\x0e\x8a\x6b\x0c\x73\x41\x0f\xe2\xdd\xea\x53\x05\x11\x55\x03\x26\x07\x13\xf3\xb0\xda\xaa\x31\xae\x44\x1c\xdf\xd0\xf1\x62\x52\xa4\xcc\xf6\x36\xac\xd2\x35\x8f\x2e\xe9\x86\xd3\x84\x15\xbf\x49\x96\xfe\xa1\xf2\x40\x2a\x6d\xbc\xec\xcc\x3f\x29\xfb\x3d\xe1\x33\xc7\xce\xad\x88\x13\xa6\xbe\x7c\x8c\x40\x47\x76\xf5\x57\x21\x48\xf4\xcc\x42\x18\xd2\x05\x53\xe2\x67\x87\xca\xb6\x42\xe3\x67\xd7\xf6\xb5\x5f\xa2\x8a\x2d\x96\x98\x2a\x11\xfa\xab\xbc\xc4\xf0\x14\x1a\x63\x6f\xff\x20\x10\x67\x6d\xfd\xdc\xc7\xa2\xd9\x88\x72\x70\x7d\x27\x05\x69\x8c\x7c\xbc\xcb\xc3\x40\x8f\x72\xc5\x7e\x0f\x37\x97\x3f\x79\xe5\xfd\x88\xcf\x9f\x41\xfa\x17\xd9\x2c\x10\xdc\x86\x87\xe1\x1c\x41\x2a\x26\x17\xda\x54\xc9\x9a\xf6\x5d\xbb\x3e\x26\xc1\x0c\xae\xcd\x0e\xd8\x92\x09\x35\x9b\x4d\xc2\xfe\x6e\xb5\xea\xa2\x54\x59\xf1\x91\x27\xd8\xff\x5c\x5d\xbc\x07\xa1\xea\xc6\x01\x67\x8e\xc1\xbb\x68\x8d\x67\x65\xc5\x9f\x51\xcc\x1a\x47\x62\xb5\xe8\x80\xb6\x38\x2f\xc2\x61\x49\x3d\xc7\x3f\x70\xa8\xda\x97\x01\x06\x5b\x9c\xc7\x63\x77\xe6\x47\xfa\x9e\xac\x16\x44\x53\x32\x15\x12\xf5\x1c\x43\xaa\x44\x1e\x5f\xea\xfb\x4d\x33\x88\xd5\x53\x53\x73\xe6\xf0\x28\x66\x38\x0d\xa5\x56\x1b\x34\xee\x08\xde\xe9\x21\x8f\x29\xc3\x0e\xd5\x3d\x49\xd5\xf6\xb0\xf9\x23\x7e\x20\x62\x96\xd2\x73\x66\x91\x83\x56\xc3\x70\x73\x9f\xd5\xa4\x29\x84\x2a\x65\xc3\xf1\x48\x3c\x66\x0f\xbc\x90\x34\xc6\x2f\xaf\x2e\xdf\xbf\x7d\xff\x7d\x7e\xc1\xd7\x6e\x78\x5c\xc9\xb7\x65\x46\x15\xa5\xae\x28\x83\x16\x06\x5d\x32\xcd\x5e\xd2\x5a\x3b\x9c\x2b\x2b\xee\x75\x59\x38\x34\x21\xc5\xbf\x0c\xb1\x8d\x02\xc7\xed\x98\x7f\x23\x9e\x7f\x1d\x79\x74\xf0\x18\xfe\x3a\x60\x38\x23\xe4\xe8\xb0\x74\x13\xdd\xb9\x47\xa6\xc2\x82\x63\x6d\xb0\x24\x4f\x17\x06\x6b\xc9\xca\x64\xd0\xa0\xcc\x4b\x38\x5a\xf2\x58\x4f\xf8\xc7\xa8\x70\x30\x0e\x22\x55\x90\x69\x2b\xa4\x04\xab\xb5\xa2\xd3\xd4\xc3\x9c\x41\x1d\x4f\x8a\x0d\x55\x95\xef\x34\x71\x7b\xc0\xd3\x3a\x64\x99\x0a\x44\x73\x9c\x52\x0f\xd9\x95\x6e\x24\x27\xf1\x2c\xba\x19\x84\x71\xeb\x61\xd3\x43\xd4\xfe\x2b\x0c\x5e\xb2\x24\xf2\xf4\x13\xfe\x24\xb9\x02\x02\xa5\xbe\xfb\x75\x1a\xc5\x27\xbf\xff\x31\x90\x54\xab\x59\xb6\x19\xf5\xe0\x14\xa8\xdf\xdf\x7a\xb5\xed\xee\xdb\xdf\x0e\x0d\x7f\x34\x34\x2d\x98\x14\x95\x70\x85\x58\x2a\x6d\x92\x22\xb5\xe7\x3a\x06\x16\xbf\xc5\x4b\xe5\xbf\x8e\x6b\x31\x61\x21\xb2\xcb\x45\x2f\x57\x4c\x2d\x91\xcd\x93\x3f\xf5\xf8\xa9\x43\xec\x8a\x3f\xdb\xea\x2d\x77\x61\xb0\xd3\xf1\x98\xc1\x5b\x82\xa7\x02\x3a\xe3\x2c\x78\x09\x6c\x21\xf5\xb2\xb0\xe2\x8f\x94\x00\x52\x2f\xaf\xc4\x1f\x48\xb6\x0d\x1b\x0e\x34\xee\x8f\x28\x53\xfe\x2d\x90\x9a\x8d\x39\xba\x2d\xa2\x82\x17\xbe\xa9\xf8\xf6\x45\xb6\x28\x15\x56\xda\xec\xc6\xa4\x09\x14\xa7\x0a\xf4\xed\x77\x7f\xf7\x22\xfd\xed\xdb\xef\xb2\x65\xa2\xfa\x4b\x37\xa9\xe2\x2d\xae\x9e\x24\xcc\x8b\x60\x9f\xff\x7f\x41\xff\x4d\xcb\xe3\xfb\xf0\xa2\x36\xba\x46\xe3\x04\xa6\x66\xa5\x6d\x18\x1c\xc4\xab\x30\x19\x73\x46\x60\x37\x1b\x0b\x4d\x7d\xcf\xac\x9d\xa1\x3d\x1c\x13\xdb\x90\xc8\xb5\x3f\x70\x14\x19\x85\x03\xdd\x38\x2b\xb8\x77\xc4\xb5\x61\x1b\x61\x61\xde\x08\xc9\xc7\x87\x00\x5e\x95\x10\x0e\x0c\x1d\xdb\xac\x50\xd0\x9d\xfe\x83\x80\xa0\x8e\xa2\x7a\xb4\xb6\x1f\x6d\xdc\xdd\xcd\xe2\x5f\x5b\x73\x53\x87\x24\x54\x6c\x74\xe9\x1f\xac\x9c\x28\x9b\xbd\xa8\x6d\x2f\x12\x2e\x59\x2a\x4c\xb4\xad\x48\xa4\xa2\x82\xe2\xa8\x2b\x79\xa0\x4c\x49\x36\x1e\x27\x75\x1b\x5e\xda\x38\xcb\xf0\x8d\x2a\x7e\x16\x36\xf9\x53\xba\x7b\x6d\xea\x41\x88\x61\xd2\x20\xe3\x3b\x08\x2c\xba\xda\xc9\xa2\xc4\xd2\x01\x53\xda\xad\xd0\xf8\x6d\xd3\x22\xb5\xa3\xa1\xc9\x4e\x3d\xa6\xc2\xa3\xae\xb6\xad\x1a\x4a\xad\x1c\xf3\x3f\x92\x52\x3a\x6f\xdc\xe4\xd1\x07\x53\x74\x6f\x94\x1c\x21\x1e\x9c\x31\xc7\x8c\x73\xdc\xbb\xd3\xd5\xea\x87\x0a\x91\xe8\xb0\xf2\x4c\xc9\xf8\xfa\xcd\x3f\x6f\xbe\xcf\x2e\x18\x3d\xf5\xe3\xaa\x45\x3e\x0f\x3f\x24\xdc\xa0\x11\x8b\x54\xa5\xf8\xb3\x5f\x8c\xcd\xde\xfd\x4b\x16\x4f\xc0\x78\x36\x21\xa0\xee\x55\x28\x3c\x1f\x4f\xbe\xfe\x79\xaa\x97\x53\x5c\x07\xef\x51\xa3\x7c\x87\xaf\x52\x79\x9c\x2d\x32\x53\xae\x88\x6f\x7c\x06\x28\xb8\x30\x58\x8e\x8c\xae\xae\xda\x1d\xdd\x23\x42\xb7\xe3\xde\x1b\x78\x6f\xc1\xde\x74\x4f\x6e\x9f\xfc\x37\x00\x00\xff\xff\xbf\xc6\xc6\x42\xdd\x30\x00\x00")
 
 func wski18nResourcesEn_usAllJsonBytes() ([]byte, error) {
        return bindataRead(
@@ -112,7 +112,7 @@ func wski18nResourcesEn_usAllJson() (*asset, error) {
                return nil, err
        }
 
-       info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 
13150, mode: os.FileMode(420), modTime: time.Unix(1519437986, 0)}
+       info := bindataFileInfo{name: "wski18n/resources/en_US.all.json", size: 
12509, mode: os.FileMode(420), modTime: time.Unix(1519918156, 0)}
        a := &asset{bytes: bytes, info: info}
        return a, nil
 }
diff --git a/wski18n/resources/en_US.all.json b/wski18n/resources/en_US.all.json
index b98062ad..f5eb570b 100644
--- a/wski18n/resources/en_US.all.json
+++ b/wski18n/resources/en_US.all.json
@@ -15,10 +15,6 @@
     "id": "msg_prefix_warning",
     "translation": "Warning"
   },
-  {
-    "id": "msg_cmd_desc_long_publish",
-    "translation": "Publish a package to the registry set in ~/.wskprops."
-  },
   {
     "id": "msg_cmd_desc_long_report",
     "translation": "Reports on deployed entities (i.e., Packages, Actions, 
Triggers, Rules, etc.) as well as recent Activations in the specified 
namespace."
@@ -27,10 +23,6 @@
     "id": "msg_cmd_desc_long_root",
     "translation": "A tool to deploy, undeploy and sync openwhisk packages 
using a manifest and optional deployment files using YAML."
   },
-  {
-    "id": "msg_cmd_desc_short_publish",
-    "translation": "Publish a package to a registry."
-  },
   {
     "id": "msg_cmd_desc_short_report",
     "translation": "Provides a summary report of what's been deployed in the 
specified namespace."
@@ -39,14 +31,6 @@
     "id": "msg_cmd_desc_short_root",
     "translation": "A tool set to help deploy your openwhisk packages using a 
manifest file."
   },
-  {
-    "id": "msg_cmd_desc_short_add",
-    "translation": "Add an action, feed, trigger or rule to the manifest"
-  },
-  {
-    "id": "msg_cmd_desc_short_add_entity",
-    "translation": "Add a/an {{.key}} to the manifest file"
-  },
   {
     "id": "msg_cmd_desc_short_version",
     "translation": "Print the version number of wskdeploy"
@@ -267,10 +251,6 @@
     "id": "msg_err_dependency_unknown_type",
     "translation": "Dependency type is unknown.  wskdeploy only supports 
/whisk.system bindings or github.com packages.\n"
   },
-  {
-    "id": "msg_err_deployment_name_not_found",
-    "translation": "The {{.key}} [{{.name}}] in deployment file not found in 
manifest file.\n"
-  },
   {
     "id": "msg_err_entity_create",
     "translation": "Error creating {{.key}} with error message: {{.err}} and 
error code: {{.code}}.\n"
@@ -395,6 +375,10 @@
     "id": "msg_warn_packages_not_found",
     "translation": "The manifest file [{{.path}}] contained no packages.\n"
   },
+  {
+    "id": "msg_warn_deployment_name_not_found",
+    "translation": "The {{.key}} [{{.name}}] in the deployment file was not 
found in the manifest file.\n"
+  },
   {
     "id": "DEBUG",
     "translation": "================= DEBUG ==================="


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to