/*
Package tapi is a generated package which contains definitions
of structs which represent a YANG schema. The generated schema can be
compressed by a series of transformations (compression was false
in this case).

This package was generated by /Users/mk/go/pkg/mod/github.com/openconfig/ygot@v0.10.0/genutil/names.go
using the following YANG input files:
	- ../../models/tapi/tapi-topology@2019-03-31.yang
	- ../../models/tapi/tapi-connectivity@2019-03-31.yang
	- ../../models/tapi/tapi-common@2019-03-31.yang
	- ../../models/tapi/tapi-photonic-media@2019-03-31.yang
Imported modules were sourced from:
	- ../../yang/...
*/
package tapi

import (
	"encoding/json"
	"fmt"
	"reflect"

	"github.com/openconfig/ygot/ygot"
	"github.com/openconfig/goyang/pkg/yang"
	"github.com/openconfig/ygot/ytypes"
)

// Binary is a type that is used for fields that have a YANG type of
// binary. It is used such that binary fields can be distinguished from
// leaf-lists of uint8s (which are mapped to []uint8, equivalent to
// []byte in reflection).
type Binary []byte

// YANGEmpty is a type that is used for fields that have a YANG type of
// empty. It is used such that empty fields can be distinguished from boolean fields
// in the generated code.
type YANGEmpty bool

var (
	SchemaTree map[string]*yang.Entry
)

func init() {
	var err error
	if SchemaTree, err = UnzipSchema(); err != nil {
		panic("schema error: " +  err.Error())
	}
}

// Schema returns the details of the generated schema.
func Schema() (*ytypes.Schema, error) {
	uzp, err := UnzipSchema()
	if err != nil {
		return nil, fmt.Errorf("cannot unzip schema, %v", err)
	}

	return &ytypes.Schema{
		Root: &Device{},
		SchemaTree: uzp,
		Unmarshal: Unmarshal,
	}, nil
}

// UnzipSchema unzips the zipped schema and returns a map of yang.Entry nodes,
// keyed by the name of the struct that the yang.Entry describes the schema for.
func UnzipSchema() (map[string]*yang.Entry, error) {
	var schemaTree map[string]*yang.Entry
	var err error
	if schemaTree, err = ygot.GzipToSchema(ySchema); err != nil {
		return nil, fmt.Errorf("could not unzip the schema; %v", err)
	}
	return schemaTree, nil
}

// Unmarshal unmarshals data, which must be RFC7951 JSON format, into
// destStruct, which must be non-nil and the correct GoStruct type. It returns
// an error if the destStruct is not found in the schema or the data cannot be
// unmarshaled. The supplied options (opts) are used to control the behaviour
// of the unmarshal function - for example, determining whether errors are
// thrown for unknown fields in the input JSON.
func Unmarshal(data []byte, destStruct ygot.GoStruct, opts ...ytypes.UnmarshalOpt) error {
	tn := reflect.TypeOf(destStruct).Elem().Name()
	schema, ok := SchemaTree[tn]
	if !ok {
		return fmt.Errorf("could not find schema for type %s", tn )
	}
	var jsonTree interface{}
	if err := json.Unmarshal([]byte(data), &jsonTree); err != nil {
		return err
	}
	return ytypes.Unmarshal(schema, destStruct, jsonTree, opts...)
}

// Device represents the /device YANG schema element.
type Device struct {
	Context	*TapiCommon_Context	`path:"context" module:"tapi-common"`
}

// IsYANGGoStruct ensures that Device implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*Device) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *Device) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["Device"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *Device) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context represents the /tapi-common/context YANG schema element.
type TapiCommon_Context struct {
	ConnectivityContext	*TapiCommon_Context_ConnectivityContext	`path:"connectivity-context" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_Name	`path:"name" module:"tapi-common"`
	PathComputationContext	*TapiCommon_Context_PathComputationContext	`path:"path-computation-context" module:"tapi-path-computation"`
	ServiceInterfacePoint	map[string]*TapiCommon_Context_ServiceInterfacePoint	`path:"service-interface-point" module:"tapi-common"`
	TopologyContext	*TapiCommon_Context_TopologyContext	`path:"topology-context" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context) NewName(ValueName string) (*TapiCommon_Context_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewServiceInterfacePoint creates a new entry in the ServiceInterfacePoint list of the
// TapiCommon_Context struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context) NewServiceInterfacePoint(Uuid string) (*TapiCommon_Context_ServiceInterfacePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ServiceInterfacePoint == nil {
		t.ServiceInterfacePoint = make(map[string]*TapiCommon_Context_ServiceInterfacePoint)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ServiceInterfacePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ServiceInterfacePoint", key)
	}

	t.ServiceInterfacePoint[key] = &TapiCommon_Context_ServiceInterfacePoint{
		Uuid: &Uuid,
	}

	return t.ServiceInterfacePoint[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext represents the /tapi-common/context/connectivity-context YANG schema element.
type TapiCommon_Context_ConnectivityContext struct {
	Connection	map[string]*TapiCommon_Context_ConnectivityContext_Connection	`path:"connection" module:"tapi-connectivity"`
	ConnectivityService	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService	`path:"connectivity-service" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext) IsYANGGoStruct() {}

// NewConnection creates a new entry in the Connection list of the
// TapiCommon_Context_ConnectivityContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext) NewConnection(Uuid string) (*TapiCommon_Context_ConnectivityContext_Connection, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Connection == nil {
		t.Connection = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Connection[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Connection", key)
	}

	t.Connection[key] = &TapiCommon_Context_ConnectivityContext_Connection{
		Uuid: &Uuid,
	}

	return t.Connection[key], nil
}

// NewConnectivityService creates a new entry in the ConnectivityService list of the
// TapiCommon_Context_ConnectivityContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext) NewConnectivityService(Uuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectivityService == nil {
		t.ConnectivityService = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectivityService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectivityService", key)
	}

	t.ConnectivityService[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService{
		Uuid: &Uuid,
	}

	return t.ConnectivityService[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection represents the /tapi-common/context/connectivity-context/connection YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection struct {
	BoundingNode	*TapiCommon_Context_ConnectivityContext_Connection_BoundingNode	`path:"bounding-node" module:"tapi-connectivity"`
	ConnectionEndPoint	map[TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint	`path:"connection-end-point" module:"tapi-connectivity"`
	Direction	E_TapiConnectivity_ForwardingDirection	`path:"direction" module:"tapi-connectivity"`
	LayerProtocolName	E_TapiConnectivity_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-connectivity"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-connectivity"`
	LowerConnection	map[string]*TapiCommon_Context_ConnectivityContext_Connection_LowerConnection	`path:"lower-connection" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_Name	`path:"name" module:"tapi-connectivity"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-connectivity"`
	Route	map[string]*TapiCommon_Context_ConnectivityContext_Connection_Route	`path:"route" module:"tapi-connectivity"`
	SupportedClientLink	map[TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key]*TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink	`path:"supported-client-link" module:"tapi-connectivity"`
	SwitchControl	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl	`path:"switch-control" module:"tapi-connectivity"`
	Uuid	*string	`path:"uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key represents the key for list ConnectionEndPoint of element /tapi-common/context/connectivity-context/connection.
type TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key represents the key for list SupportedClientLink of element /tapi-common/context/connectivity-context/connection.
type TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	LinkUuid	string	`path:"link-uuid"`
}

// NewConnectionEndPoint creates a new entry in the ConnectionEndPoint list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionEndPoint == nil {
		t.ConnectionEndPoint = make(map[TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectionEndPoint", key)
	}

	t.ConnectionEndPoint[key] = &TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.ConnectionEndPoint[key], nil
}

// NewLowerConnection creates a new entry in the LowerConnection list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewLowerConnection(ConnectionUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_LowerConnection, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LowerConnection == nil {
		t.LowerConnection = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_LowerConnection)
	}

	key := ConnectionUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LowerConnection[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LowerConnection", key)
	}

	t.LowerConnection[key] = &TapiCommon_Context_ConnectivityContext_Connection_LowerConnection{
		ConnectionUuid: &ConnectionUuid,
	}

	return t.LowerConnection[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewRoute creates a new entry in the Route list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewRoute(LocalId string) (*TapiCommon_Context_ConnectivityContext_Connection_Route, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Route == nil {
		t.Route = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_Route)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Route[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Route", key)
	}

	t.Route[key] = &TapiCommon_Context_ConnectivityContext_Connection_Route{
		LocalId: &LocalId,
	}

	return t.Route[key], nil
}

// NewSupportedClientLink creates a new entry in the SupportedClientLink list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewSupportedClientLink(TopologyUuid string, LinkUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SupportedClientLink == nil {
		t.SupportedClientLink = make(map[TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key]*TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink_Key{
		TopologyUuid: TopologyUuid,
		LinkUuid: LinkUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SupportedClientLink[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SupportedClientLink", key)
	}

	t.SupportedClientLink[key] = &TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink{
		TopologyUuid: &TopologyUuid,
		LinkUuid: &LinkUuid,
	}

	return t.SupportedClientLink[key], nil
}

// NewSwitchControl creates a new entry in the SwitchControl list of the
// TapiCommon_Context_ConnectivityContext_Connection struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection) NewSwitchControl(Uuid string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SwitchControl == nil {
		t.SwitchControl = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SwitchControl[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SwitchControl", key)
	}

	t.SwitchControl[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl{
		Uuid: &Uuid,
	}

	return t.SwitchControl[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_BoundingNode represents the /tapi-common/context/connectivity-context/connection/bounding-node YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_BoundingNode struct {
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_BoundingNode implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_BoundingNode) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_BoundingNode) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_BoundingNode"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_BoundingNode) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint represents the /tapi-common/context/connectivity-context/connection/connection-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_ConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_LowerConnection represents the /tapi-common/context/connectivity-context/connection/lower-connection YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_LowerConnection struct {
	ConnectionUuid	*string	`path:"connection-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_LowerConnection implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_LowerConnection) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_LowerConnection struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_LowerConnection) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionUuid")
	}

	return map[string]interface{}{
		"connection-uuid": *t.ConnectionUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_LowerConnection) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_LowerConnection"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_LowerConnection) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Name represents the /tapi-common/context/connectivity-context/connection/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Route represents the /tapi-common/context/connectivity-context/connection/route YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Route struct {
	ConnectionEndPoint	map[TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint	`path:"connection-end-point" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_Route_Name	`path:"name" module:"tapi-connectivity"`
	ResilienceRoute	*TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute	`path:"resilience-route" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Route implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Route) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key represents the key for list ConnectionEndPoint of element /tapi-common/context/connectivity-context/connection/route.
type TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// NewConnectionEndPoint creates a new entry in the ConnectionEndPoint list of the
// TapiCommon_Context_ConnectivityContext_Connection_Route struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) NewConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionEndPoint == nil {
		t.ConnectionEndPoint = make(map[TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectionEndPoint", key)
	}

	t.ConnectionEndPoint[key] = &TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.ConnectionEndPoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_Route struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_Route_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_Route_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_Route_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_Route struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Route"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint represents the /tapi-common/context/connectivity-context/connection/route/connection-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Route_Name represents the /tapi-common/context/connectivity-context/connection/route/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Route_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Route_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Route_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_Route_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Route_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute represents the /tapi-common/context/connectivity-context/connection/route/resilience-route YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	RouteState	E_TapiConnectivity_RouteState	`path:"route-state" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_Route_ResilienceRoute) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink represents the /tapi-common/context/connectivity-context/connection/supported-client-link YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink struct {
	LinkUuid	*string	`path:"link-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LinkUuid == nil {
		return nil, fmt.Errorf("nil value for key LinkUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"link-uuid": *t.LinkUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SupportedClientLink) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl represents the /tapi-common/context/connectivity-context/connection/switch-control YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct {
	FaultConditionDetermination	E_TapiConnectivity_FaultConditionDetermination	`path:"fault-condition-determination" module:"tapi-connectivity"`
	HoldOffTime	*uint64	`path:"hold-off-time" module:"tapi-connectivity"`
	IsCoordinatedSwitchingBothEnds	*bool	`path:"is-coordinated-switching-both-ends" module:"tapi-connectivity"`
	IsFrozen	*bool	`path:"is-frozen" module:"tapi-connectivity"`
	IsLockOut	*bool	`path:"is-lock-out" module:"tapi-connectivity"`
	MaxSwitchTimes	*uint64	`path:"max-switch-times" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name	`path:"name" module:"tapi-connectivity"`
	PreferredRestorationLayer	[]E_TapiConnectivity_LayerProtocolName	`path:"preferred-restoration-layer" module:"tapi-connectivity"`
	ResilienceType	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType	`path:"resilience-type" module:"tapi-connectivity"`
	ResiliencyRouteConstraint	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint	`path:"resiliency-route-constraint" module:"tapi-connectivity"`
	RestorationCoordinateType	E_TapiConnectivity_CoordinateType	`path:"restoration-coordinate-type" module:"tapi-connectivity"`
	RestorePriority	*uint64	`path:"restore-priority" module:"tapi-connectivity"`
	ReversionMode	E_TapiConnectivity_ReversionMode	`path:"reversion-mode" module:"tapi-connectivity"`
	SelectionControl	E_TapiConnectivity_SelectionControl	`path:"selection-control" module:"tapi-connectivity"`
	SubSwitchControl	map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl	`path:"sub-switch-control" module:"tapi-connectivity"`
	Switch	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch	`path:"switch" module:"tapi-connectivity"`
	Uuid	*string	`path:"uuid" module:"tapi-connectivity"`
	WaitToRevertTime	*uint64	`path:"wait-to-revert-time" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key represents the key for list SubSwitchControl of element /tapi-common/context/connectivity-context/connection/switch-control.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key struct {
	ConnectionUuid	string	`path:"connection-uuid"`
	SwitchControlUuid	string	`path:"switch-control-uuid"`
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewResiliencyRouteConstraint creates a new entry in the ResiliencyRouteConstraint list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) NewResiliencyRouteConstraint(LocalId string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ResiliencyRouteConstraint == nil {
		t.ResiliencyRouteConstraint = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ResiliencyRouteConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ResiliencyRouteConstraint", key)
	}

	t.ResiliencyRouteConstraint[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint{
		LocalId: &LocalId,
	}

	return t.ResiliencyRouteConstraint[key], nil
}

// NewSubSwitchControl creates a new entry in the SubSwitchControl list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) NewSubSwitchControl(ConnectionUuid string, SwitchControlUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SubSwitchControl == nil {
		t.SubSwitchControl = make(map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl_Key{
		ConnectionUuid: ConnectionUuid,
		SwitchControlUuid: SwitchControlUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SubSwitchControl[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SubSwitchControl", key)
	}

	t.SubSwitchControl[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl{
		ConnectionUuid: &ConnectionUuid,
		SwitchControlUuid: &SwitchControlUuid,
	}

	return t.SubSwitchControl[key], nil
}

// NewSwitch creates a new entry in the Switch list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) NewSwitch(LocalId string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Switch == nil {
		t.Switch = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Switch[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Switch", key)
	}

	t.Switch[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch{
		LocalId: &LocalId,
	}

	return t.Switch[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name represents the /tapi-common/context/connectivity-context/connection/switch-control/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType represents the /tapi-common/context/connectivity-context/connection/switch-control/resilience-type YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType struct {
	ProtectionType	E_TapiTopology_ProtectionType	`path:"protection-type" module:"tapi-connectivity"`
	RestorationPolicy	E_TapiTopology_RestorationPolicy	`path:"restoration-policy" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResilienceType) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint struct {
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name	`path:"name" module:"tapi-connectivity"`
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	RoutingConstraint	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint	`path:"routing-constraint" module:"tapi-connectivity"`
	TopologyConstraint	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint	`path:"topology-constraint" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-connectivity"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-connectivity"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-connectivity"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-connectivity"`
	MaxAllowedCost	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-connectivity"`
	MaxAllowedDelay	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-connectivity"`
	MaxAllowedHops	*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-connectivity"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-connectivity"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-connectivity"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-connectivity"`
	CostName	*string	`path:"cost-name" module:"tapi-connectivity"`
	CostValue	*string	`path:"cost-value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-connectivity"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-connectivity"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-connectivity"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-connectivity"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-connectivity"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/topology-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint struct {
	AvoidTopology	*string	`path:"avoid-topology" module:"tapi-connectivity"`
	ConstraintWeight	*uint64	`path:"constraint-weight" module:"tapi-connectivity"`
	ExcludeLink	*string	`path:"exclude-link" module:"tapi-connectivity"`
	ExcludeNode	*string	`path:"exclude-node" module:"tapi-connectivity"`
	ExcludeNodeEdgePoint	*string	`path:"exclude-node-edge-point" module:"tapi-connectivity"`
	ExcludePath	*string	`path:"exclude-path" module:"tapi-connectivity"`
	IncludeLink	*string	`path:"include-link" module:"tapi-connectivity"`
	IncludeNode	*string	`path:"include-node" module:"tapi-connectivity"`
	IncludeNodeEdgePoint	*string	`path:"include-node-edge-point" module:"tapi-connectivity"`
	IncludePath	*string	`path:"include-path" module:"tapi-connectivity"`
	IncludeTopology	*string	`path:"include-topology" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name	`path:"name" module:"tapi-connectivity"`
	PreferredTransportLayer	E_TapiPathComputation_LayerProtocolName	`path:"preferred-transport-layer" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name represents the /tapi-common/context/connectivity-context/connection/switch-control/resiliency-route-constraint/topology-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_ResiliencyRouteConstraint_TopologyConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl represents the /tapi-common/context/connectivity-context/connection/switch-control/sub-switch-control YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl struct {
	ConnectionUuid	*string	`path:"connection-uuid" module:"tapi-connectivity"`
	SwitchControlUuid	*string	`path:"switch-control-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionUuid")
	}

	if t.SwitchControlUuid == nil {
		return nil, fmt.Errorf("nil value for key SwitchControlUuid")
	}

	return map[string]interface{}{
		"connection-uuid": *t.ConnectionUuid,
		"switch-control-uuid": *t.SwitchControlUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_SubSwitchControl) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch represents the /tapi-common/context/connectivity-context/connection/switch-control/switch YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct {
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name	`path:"name" module:"tapi-connectivity"`
	SelectedConnectionEndPoint	map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint	`path:"selected-connection-end-point" module:"tapi-connectivity"`
	SelectedRoute	map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute	`path:"selected-route" module:"tapi-connectivity"`
	SelectionReason	E_TapiConnectivity_SelectionReason	`path:"selection-reason" module:"tapi-connectivity"`
	SwitchDirection	E_TapiConnectivity_PortDirection	`path:"switch-direction" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key represents the key for list SelectedConnectionEndPoint of element /tapi-common/context/connectivity-context/connection/switch-control/switch.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key represents the key for list SelectedRoute of element /tapi-common/context/connectivity-context/connection/switch-control/switch.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key struct {
	ConnectionUuid	string	`path:"connection-uuid"`
	RouteLocalId	string	`path:"route-local-id"`
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewSelectedConnectionEndPoint creates a new entry in the SelectedConnectionEndPoint list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) NewSelectedConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SelectedConnectionEndPoint == nil {
		t.SelectedConnectionEndPoint = make(map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SelectedConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SelectedConnectionEndPoint", key)
	}

	t.SelectedConnectionEndPoint[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.SelectedConnectionEndPoint[key], nil
}

// NewSelectedRoute creates a new entry in the SelectedRoute list of the
// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) NewSelectedRoute(ConnectionUuid string, RouteLocalId string) (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SelectedRoute == nil {
		t.SelectedRoute = make(map[TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key]*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute)
	}

	key := TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute_Key{
		ConnectionUuid: ConnectionUuid,
		RouteLocalId: RouteLocalId,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SelectedRoute[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SelectedRoute", key)
	}

	t.SelectedRoute[key] = &TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute{
		ConnectionUuid: &ConnectionUuid,
		RouteLocalId: &RouteLocalId,
	}

	return t.SelectedRoute[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name represents the /tapi-common/context/connectivity-context/connection/switch-control/switch/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint represents the /tapi-common/context/connectivity-context/connection/switch-control/switch/selected-connection-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute represents the /tapi-common/context/connectivity-context/connection/switch-control/switch/selected-route YANG schema element.
type TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute struct {
	ConnectionUuid	*string	`path:"connection-uuid" module:"tapi-connectivity"`
	RouteLocalId	*string	`path:"route-local-id" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionUuid")
	}

	if t.RouteLocalId == nil {
		return nil, fmt.Errorf("nil value for key RouteLocalId")
	}

	return map[string]interface{}{
		"connection-uuid": *t.ConnectionUuid,
		"route-local-id": *t.RouteLocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_Connection_SwitchControl_Switch_SelectedRoute) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService represents the /tapi-common/context/connectivity-context/connectivity-service YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-connectivity"`
	Connection	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection	`path:"connection" module:"tapi-connectivity"`
	ConnectivityConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint	`path:"connectivity-constraint" module:"tapi-connectivity"`
	ConnectivityService	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService	`path:"connectivity-service" module:"tapi-connectivity"`
	Direction	E_TapiConnectivity_ForwardingDirection	`path:"direction" module:"tapi-connectivity"`
	EndPoint	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint	`path:"end-point" module:"tapi-connectivity"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_Name	`path:"name" module:"tapi-connectivity"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-connectivity"`
	ResilienceConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint	`path:"resilience-constraint" module:"tapi-connectivity"`
	RoutingConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint	`path:"routing-constraint" module:"tapi-connectivity"`
	TopologyConstraint	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint	`path:"topology-constraint" module:"tapi-connectivity"`
	Uuid	*string	`path:"uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService) IsYANGGoStruct() {}

// NewConnection creates a new entry in the Connection list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewConnection(ConnectionUuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Connection == nil {
		t.Connection = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection)
	}

	key := ConnectionUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Connection[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Connection", key)
	}

	t.Connection[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection{
		ConnectionUuid: &ConnectionUuid,
	}

	return t.Connection[key], nil
}

// NewConnectivityService creates a new entry in the ConnectivityService list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewConnectivityService(ConnectivityServiceUuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectivityService == nil {
		t.ConnectivityService = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService)
	}

	key := ConnectivityServiceUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectivityService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectivityService", key)
	}

	t.ConnectivityService[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService{
		ConnectivityServiceUuid: &ConnectivityServiceUuid,
	}

	return t.ConnectivityService[key], nil
}

// NewEndPoint creates a new entry in the EndPoint list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewEndPoint(LocalId string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EndPoint == nil {
		t.EndPoint = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.EndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list EndPoint", key)
	}

	t.EndPoint[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint{
		LocalId: &LocalId,
	}

	return t.EndPoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewTopologyConstraint creates a new entry in the TopologyConstraint list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) NewTopologyConstraint(LocalId string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TopologyConstraint == nil {
		t.TopologyConstraint = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TopologyConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TopologyConstraint", key)
	}

	t.TopologyConstraint[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint{
		LocalId: &LocalId,
	}

	return t.TopologyConstraint[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection represents the /tapi-common/context/connectivity-context/connectivity-service/connection YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection struct {
	ConnectionUuid	*string	`path:"connection-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionUuid")
	}

	return map[string]interface{}{
		"connection-uuid": *t.ConnectionUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Connection) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint struct {
	ConnectionExclusion	[]string	`path:"connection-exclusion" module:"tapi-connectivity"`
	ConnectionInclusion	[]string	`path:"connection-inclusion" module:"tapi-connectivity"`
	CorouteInclusion	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion	`path:"coroute-inclusion" module:"tapi-connectivity"`
	DiversityExclusion	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion	`path:"diversity-exclusion" module:"tapi-connectivity"`
	RequestedCapacity	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity	`path:"requested-capacity" module:"tapi-connectivity"`
	Schedule	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule	`path:"schedule" module:"tapi-connectivity"`
	ServiceLevel	*string	`path:"service-level" module:"tapi-connectivity"`
	ServiceType	E_TapiConnectivity_ServiceType	`path:"service-type" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint) IsYANGGoStruct() {}

// NewDiversityExclusion creates a new entry in the DiversityExclusion list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint) NewDiversityExclusion(ConnectivityServiceUuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.DiversityExclusion == nil {
		t.DiversityExclusion = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion)
	}

	key := ConnectivityServiceUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.DiversityExclusion[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list DiversityExclusion", key)
	}

	t.DiversityExclusion[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion{
		ConnectivityServiceUuid: &ConnectivityServiceUuid,
	}

	return t.DiversityExclusion[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/coroute-inclusion YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion struct {
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_CorouteInclusion) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/diversity-exclusion YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion struct {
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectivityServiceUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectivityServiceUuid")
	}

	return map[string]interface{}{
		"connectivity-service-uuid": *t.ConnectivityServiceUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_DiversityExclusion) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/requested-capacity YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity struct {
	TotalSize	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize	`path:"total-size" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/requested-capacity/total-size YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_RequestedCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-constraint/schedule YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule struct {
	EndTime	*string	`path:"end-time" module:"tapi-connectivity"`
	StartTime	*string	`path:"start-time" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityConstraint_Schedule) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService represents the /tapi-common/context/connectivity-context/connectivity-service/connectivity-service YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService struct {
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectivityServiceUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectivityServiceUuid")
	}

	return map[string]interface{}{
		"connectivity-service-uuid": *t.ConnectivityServiceUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ConnectivityService) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-connectivity"`
	Capacity	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity	`path:"capacity" module:"tapi-connectivity"`
	ConnectionEndPoint	map[TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint	`path:"connection-end-point" module:"tapi-connectivity"`
	Direction	E_TapiConnectivity_PortDirection	`path:"direction" module:"tapi-connectivity"`
	LayerProtocolName	E_TapiConnectivity_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-connectivity"`
	LayerProtocolQualifier	E_TapiConnectivity_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-connectivity"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	MediaChannelConnectivityServiceEndPointSpec	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec	`path:"media-channel-connectivity-service-end-point-spec" module:"tapi-photonic-media"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name	`path:"name" module:"tapi-connectivity"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-connectivity"`
	OtsiConnectivityServiceEndPointSpec	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec	`path:"otsi-connectivity-service-end-point-spec" module:"tapi-photonic-media"`
	PeerFwdConnectivityServiceEndPoint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint	`path:"peer-fwd-connectivity-service-end-point" module:"tapi-connectivity"`
	ProtectingConnectivityServiceEndPoint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint	`path:"protecting-connectivity-service-end-point" module:"tapi-connectivity"`
	ProtectionRole	E_TapiConnectivity_ProtectionRole	`path:"protection-role" module:"tapi-connectivity"`
	Role	E_TapiConnectivity_PortRole	`path:"role" module:"tapi-connectivity"`
	ServerConnectivityServiceEndPoint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint	`path:"server-connectivity-service-end-point" module:"tapi-connectivity"`
	ServiceInterfacePoint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint	`path:"service-interface-point" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) IsYANGGoStruct() {}

// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key represents the key for list ConnectionEndPoint of element /tapi-common/context/connectivity-context/connectivity-service/end-point.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// NewConnectionEndPoint creates a new entry in the ConnectionEndPoint list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) NewConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionEndPoint == nil {
		t.ConnectionEndPoint = make(map[TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint)
	}

	key := TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectionEndPoint", key)
	}

	t.ConnectionEndPoint[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.ConnectionEndPoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/capacity YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity struct {
	TotalSize	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize	`path:"total-size" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/capacity/total-size YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Capacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/connection-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec struct {
	McConfig	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig	`path:"mc-config" module:"tapi-photonic-media"`
	PowerManagementConfig	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig	`path:"power-management-config" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/mc-config YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig struct {
	Spectrum	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum	`path:"spectrum" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/mc-config/spectrum YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum struct {
	FrequencyConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum_FrequencyConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/mc-config/spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_McConfig_Spectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/power-management-config YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig struct {
	ExpectedMaximumInputPower	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMaximumInputPower	`path:"expected-maximum-input-power" module:"tapi-photonic-media"`
	ExpectedMinimumInputPower	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMinimumInputPower	`path:"expected-minimum-input-power" module:"tapi-photonic-media"`
	IntendedMaximumOutputPower	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMaximumOutputPower	`path:"intended-maximum-output-power" module:"tapi-photonic-media"`
	IntendedMinimumOutputPower	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMinimumOutputPower	`path:"intended-minimum-output-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMaximumInputPower represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/power-management-config/expected-maximum-input-power YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMaximumInputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMaximumInputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMaximumInputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMaximumInputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMaximumInputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMaximumInputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMinimumInputPower represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/power-management-config/expected-minimum-input-power YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMinimumInputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMinimumInputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMinimumInputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMinimumInputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMinimumInputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_ExpectedMinimumInputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMaximumOutputPower represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/power-management-config/intended-maximum-output-power YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMaximumOutputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMaximumOutputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMaximumOutputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMaximumOutputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMaximumOutputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMaximumOutputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMinimumOutputPower represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/power-management-config/intended-minimum-output-power YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMinimumOutputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMinimumOutputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMinimumOutputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMinimumOutputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMinimumOutputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_MediaChannelConnectivityServiceEndPointSpec_PowerManagementConfig_IntendedMinimumOutputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec struct {
	OtsiConfig	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig	`path:"otsi-config" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig struct {
	ApplicationIdentifier	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_ApplicationIdentifier	`path:"application-identifier" module:"tapi-photonic-media"`
	CentralFrequency	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency	`path:"central-frequency" module:"tapi-photonic-media"`
	LaserControl	E_TapiPhotonicMedia_LaserControlType	`path:"laser-control" module:"tapi-photonic-media"`
	Modulation	E_TapiPhotonicMedia_ModulationTechnique	`path:"modulation" module:"tapi-photonic-media"`
	Spectrum	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum	`path:"spectrum" module:"tapi-photonic-media"`
	TotalPowerWarnThresholdLower	*float64	`path:"total-power-warn-threshold-lower" module:"tapi-photonic-media"`
	TotalPowerWarnThresholdUpper	*float64	`path:"total-power-warn-threshold-upper" module:"tapi-photonic-media"`
	TransmitPower	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_TransmitPower	`path:"transmit-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_ApplicationIdentifier represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/application-identifier YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_ApplicationIdentifier struct {
	ApplicationCode	*string	`path:"application-code" module:"tapi-photonic-media"`
	ApplicationIdentifierType	E_TapiPhotonicMedia_ApplicationIdentifierType	`path:"application-identifier-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_ApplicationIdentifier implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_ApplicationIdentifier) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_ApplicationIdentifier) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_ApplicationIdentifier"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_ApplicationIdentifier) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/central-frequency YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency struct {
	CentralFrequency	*uint64	`path:"central-frequency" module:"tapi-photonic-media"`
	FrequencyConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency_FrequencyConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/central-frequency/frequency-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_CentralFrequency_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/spectrum YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum struct {
	FrequencyConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum_FrequencyConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_Spectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_TransmitPower represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/transmit-power YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_TransmitPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_TransmitPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_TransmitPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_TransmitPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_TransmitPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_OtsiConnectivityServiceEndPointSpec_OtsiConfig_TransmitPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/peer-fwd-connectivity-service-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint struct {
	ConnectivityServiceEndPointLocalId	*string	`path:"connectivity-service-end-point-local-id" module:"tapi-connectivity"`
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_PeerFwdConnectivityServiceEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/protecting-connectivity-service-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint struct {
	ConnectivityServiceEndPointLocalId	*string	`path:"connectivity-service-end-point-local-id" module:"tapi-connectivity"`
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ProtectingConnectivityServiceEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/server-connectivity-service-end-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint struct {
	ConnectivityServiceEndPointLocalId	*string	`path:"connectivity-service-end-point-local-id" module:"tapi-connectivity"`
	ConnectivityServiceUuid	*string	`path:"connectivity-service-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServerConnectivityServiceEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint represents the /tapi-common/context/connectivity-context/connectivity-service/end-point/service-interface-point YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint struct {
	ServiceInterfacePointUuid	*string	`path:"service-interface-point-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_EndPoint_ServiceInterfacePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_Name represents the /tapi-common/context/connectivity-context/connectivity-service/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint struct {
	FaultConditionDetermination	E_TapiConnectivity_FaultConditionDetermination	`path:"fault-condition-determination" module:"tapi-connectivity"`
	HoldOffTime	*uint64	`path:"hold-off-time" module:"tapi-connectivity"`
	IsCoordinatedSwitchingBothEnds	*bool	`path:"is-coordinated-switching-both-ends" module:"tapi-connectivity"`
	IsFrozen	*bool	`path:"is-frozen" module:"tapi-connectivity"`
	IsLockOut	*bool	`path:"is-lock-out" module:"tapi-connectivity"`
	MaxSwitchTimes	*uint64	`path:"max-switch-times" module:"tapi-connectivity"`
	PreferredRestorationLayer	[]E_TapiConnectivity_LayerProtocolName	`path:"preferred-restoration-layer" module:"tapi-connectivity"`
	ResilienceType	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType	`path:"resilience-type" module:"tapi-connectivity"`
	ResiliencyRouteConstraint	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint	`path:"resiliency-route-constraint" module:"tapi-connectivity"`
	RestorationCoordinateType	E_TapiConnectivity_CoordinateType	`path:"restoration-coordinate-type" module:"tapi-connectivity"`
	RestorePriority	*uint64	`path:"restore-priority" module:"tapi-connectivity"`
	ReversionMode	E_TapiConnectivity_ReversionMode	`path:"reversion-mode" module:"tapi-connectivity"`
	SelectionControl	E_TapiConnectivity_SelectionControl	`path:"selection-control" module:"tapi-connectivity"`
	WaitToRevertTime	*uint64	`path:"wait-to-revert-time" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint) IsYANGGoStruct() {}

// NewResiliencyRouteConstraint creates a new entry in the ResiliencyRouteConstraint list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint) NewResiliencyRouteConstraint(LocalId string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ResiliencyRouteConstraint == nil {
		t.ResiliencyRouteConstraint = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ResiliencyRouteConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ResiliencyRouteConstraint", key)
	}

	t.ResiliencyRouteConstraint[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint{
		LocalId: &LocalId,
	}

	return t.ResiliencyRouteConstraint[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resilience-type YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType struct {
	ProtectionType	E_TapiTopology_ProtectionType	`path:"protection-type" module:"tapi-connectivity"`
	RestorationPolicy	E_TapiTopology_RestorationPolicy	`path:"restoration-policy" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResilienceType) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint struct {
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name	`path:"name" module:"tapi-connectivity"`
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	RoutingConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint	`path:"routing-constraint" module:"tapi-connectivity"`
	TopologyConstraint	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint	`path:"topology-constraint" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-connectivity"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-connectivity"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-connectivity"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-connectivity"`
	MaxAllowedCost	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-connectivity"`
	MaxAllowedDelay	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-connectivity"`
	MaxAllowedHops	*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-connectivity"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-connectivity"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-connectivity"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-connectivity"`
	CostName	*string	`path:"cost-name" module:"tapi-connectivity"`
	CostValue	*string	`path:"cost-value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-connectivity"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-connectivity"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-connectivity"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-connectivity"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-connectivity"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/topology-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint struct {
	AvoidTopology	*string	`path:"avoid-topology" module:"tapi-connectivity"`
	ConstraintWeight	*uint64	`path:"constraint-weight" module:"tapi-connectivity"`
	ExcludeLink	*string	`path:"exclude-link" module:"tapi-connectivity"`
	ExcludeNode	*string	`path:"exclude-node" module:"tapi-connectivity"`
	ExcludeNodeEdgePoint	*string	`path:"exclude-node-edge-point" module:"tapi-connectivity"`
	ExcludePath	*string	`path:"exclude-path" module:"tapi-connectivity"`
	IncludeLink	*string	`path:"include-link" module:"tapi-connectivity"`
	IncludeNode	*string	`path:"include-node" module:"tapi-connectivity"`
	IncludeNodeEdgePoint	*string	`path:"include-node-edge-point" module:"tapi-connectivity"`
	IncludePath	*string	`path:"include-path" module:"tapi-connectivity"`
	IncludeTopology	*string	`path:"include-topology" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name	`path:"name" module:"tapi-connectivity"`
	PreferredTransportLayer	E_TapiPathComputation_LayerProtocolName	`path:"preferred-transport-layer" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name represents the /tapi-common/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/topology-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_ResilienceConstraint_ResiliencyRouteConstraint_TopologyConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-connectivity"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-connectivity"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-connectivity"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-connectivity"`
	MaxAllowedCost	*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-connectivity"`
	MaxAllowedDelay	*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-connectivity"`
	MaxAllowedHops	*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-connectivity"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-connectivity"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-connectivity"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-connectivity"`
	CostName	*string	`path:"cost-name" module:"tapi-connectivity"`
	CostValue	*string	`path:"cost-value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-connectivity"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-connectivity"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-connectivity"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-connectivity"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-connectivity"`
	Value	*uint64	`path:"value" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/connectivity-context/connectivity-service/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-connectivity"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint represents the /tapi-common/context/connectivity-context/connectivity-service/topology-constraint YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint struct {
	AvoidTopology	*string	`path:"avoid-topology" module:"tapi-connectivity"`
	ConstraintWeight	*uint64	`path:"constraint-weight" module:"tapi-connectivity"`
	ExcludeLink	*string	`path:"exclude-link" module:"tapi-connectivity"`
	ExcludeNode	*string	`path:"exclude-node" module:"tapi-connectivity"`
	ExcludeNodeEdgePoint	*string	`path:"exclude-node-edge-point" module:"tapi-connectivity"`
	ExcludePath	*string	`path:"exclude-path" module:"tapi-connectivity"`
	IncludeLink	*string	`path:"include-link" module:"tapi-connectivity"`
	IncludeNode	*string	`path:"include-node" module:"tapi-connectivity"`
	IncludeNodeEdgePoint	*string	`path:"include-node-edge-point" module:"tapi-connectivity"`
	IncludePath	*string	`path:"include-path" module:"tapi-connectivity"`
	IncludeTopology	*string	`path:"include-topology" module:"tapi-connectivity"`
	LocalId	*string	`path:"local-id" module:"tapi-connectivity"`
	Name	map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name	`path:"name" module:"tapi-connectivity"`
	PreferredTransportLayer	E_TapiPathComputation_LayerProtocolName	`path:"preferred-transport-layer" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) NewName(ValueName string) (*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name represents the /tapi-common/context/connectivity-context/connectivity-service/topology-constraint/name YANG schema element.
type TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ConnectivityContext_ConnectivityService_TopologyConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_Name represents the /tapi-common/context/name YANG schema element.
type TapiCommon_Context_Name struct {
	Value	*string	`path:"value" module:"tapi-common"`
	ValueName	*string	`path:"value-name" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext represents the /tapi-common/context/path-computation-context YANG schema element.
type TapiCommon_Context_PathComputationContext struct {
	Path	map[string]*TapiCommon_Context_PathComputationContext_Path	`path:"path" module:"tapi-path-computation"`
	PathCompService	map[string]*TapiCommon_Context_PathComputationContext_PathCompService	`path:"path-comp-service" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext) IsYANGGoStruct() {}

// NewPath creates a new entry in the Path list of the
// TapiCommon_Context_PathComputationContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext) NewPath(Uuid string) (*TapiCommon_Context_PathComputationContext_Path, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[string]*TapiCommon_Context_PathComputationContext_Path)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Path[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Path", key)
	}

	t.Path[key] = &TapiCommon_Context_PathComputationContext_Path{
		Uuid: &Uuid,
	}

	return t.Path[key], nil
}

// NewPathCompService creates a new entry in the PathCompService list of the
// TapiCommon_Context_PathComputationContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext) NewPathCompService(Uuid string) (*TapiCommon_Context_PathComputationContext_PathCompService, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.PathCompService == nil {
		t.PathCompService = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.PathCompService[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list PathCompService", key)
	}

	t.PathCompService[key] = &TapiCommon_Context_PathComputationContext_PathCompService{
		Uuid: &Uuid,
	}

	return t.PathCompService[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path represents the /tapi-common/context/path-computation-context/path YANG schema element.
type TapiCommon_Context_PathComputationContext_Path struct {
	Direction	E_TapiPathComputation_ForwardingDirection	`path:"direction" module:"tapi-path-computation"`
	LayerProtocolName	E_TapiPathComputation_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-path-computation"`
	Link	map[TapiCommon_Context_PathComputationContext_Path_Link_Key]*TapiCommon_Context_PathComputationContext_Path_Link	`path:"link" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_Path_Name	`path:"name" module:"tapi-path-computation"`
	RoutingConstraint	*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint	`path:"routing-constraint" module:"tapi-path-computation"`
	Uuid	*string	`path:"uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path) IsYANGGoStruct() {}

// TapiCommon_Context_PathComputationContext_Path_Link_Key represents the key for list Link of element /tapi-common/context/path-computation-context/path.
type TapiCommon_Context_PathComputationContext_Path_Link_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	LinkUuid	string	`path:"link-uuid"`
}

// NewLink creates a new entry in the Link list of the
// TapiCommon_Context_PathComputationContext_Path struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path) NewLink(TopologyUuid string, LinkUuid string) (*TapiCommon_Context_PathComputationContext_Path_Link, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Link == nil {
		t.Link = make(map[TapiCommon_Context_PathComputationContext_Path_Link_Key]*TapiCommon_Context_PathComputationContext_Path_Link)
	}

	key := TapiCommon_Context_PathComputationContext_Path_Link_Key{
		TopologyUuid: TopologyUuid,
		LinkUuid: LinkUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Link[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Link", key)
	}

	t.Link[key] = &TapiCommon_Context_PathComputationContext_Path_Link{
		TopologyUuid: &TopologyUuid,
		LinkUuid: &LinkUuid,
	}

	return t.Link[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_Path struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_Path_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_Path_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_Path_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService represents the /tapi-common/context/path-computation-context/path-comp-service YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService struct {
	Direction	E_TapiPathComputation_ForwardingDirection	`path:"direction" module:"tapi-path-computation"`
	EndPoint	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint	`path:"end-point" module:"tapi-path-computation"`
	LayerProtocolName	E_TapiPathComputation_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_Name	`path:"name" module:"tapi-path-computation"`
	ObjectiveFunction	*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction	`path:"objective-function" module:"tapi-path-computation"`
	OptimizationConstraint	*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint	`path:"optimization-constraint" module:"tapi-path-computation"`
	Path	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_Path	`path:"path" module:"tapi-path-computation"`
	RoutingConstraint	*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint	`path:"routing-constraint" module:"tapi-path-computation"`
	TopologyConstraint	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint	`path:"topology-constraint" module:"tapi-path-computation"`
	Uuid	*string	`path:"uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService) IsYANGGoStruct() {}

// NewEndPoint creates a new entry in the EndPoint list of the
// TapiCommon_Context_PathComputationContext_PathCompService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) NewEndPoint(LocalId string) (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.EndPoint == nil {
		t.EndPoint = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.EndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list EndPoint", key)
	}

	t.EndPoint[key] = &TapiCommon_Context_PathComputationContext_PathCompService_EndPoint{
		LocalId: &LocalId,
	}

	return t.EndPoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewPath creates a new entry in the Path list of the
// TapiCommon_Context_PathComputationContext_PathCompService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) NewPath(PathUuid string) (*TapiCommon_Context_PathComputationContext_PathCompService_Path, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Path == nil {
		t.Path = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_Path)
	}

	key := PathUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Path[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Path", key)
	}

	t.Path[key] = &TapiCommon_Context_PathComputationContext_PathCompService_Path{
		PathUuid: &PathUuid,
	}

	return t.Path[key], nil
}

// NewTopologyConstraint creates a new entry in the TopologyConstraint list of the
// TapiCommon_Context_PathComputationContext_PathCompService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) NewTopologyConstraint(LocalId string) (*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.TopologyConstraint == nil {
		t.TopologyConstraint = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.TopologyConstraint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list TopologyConstraint", key)
	}

	t.TopologyConstraint[key] = &TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint{
		LocalId: &LocalId,
	}

	return t.TopologyConstraint[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint represents the /tapi-common/context/path-computation-context/path-comp-service/end-point YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint struct {
	Capacity	*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity	`path:"capacity" module:"tapi-path-computation"`
	Direction	E_TapiPathComputation_PortDirection	`path:"direction" module:"tapi-path-computation"`
	LayerProtocolName	E_TapiPathComputation_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-path-computation"`
	LayerProtocolQualifier	E_TapiPathComputation_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-path-computation"`
	LocalId	*string	`path:"local-id" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name	`path:"name" module:"tapi-path-computation"`
	Role	E_TapiPathComputation_PortRole	`path:"role" module:"tapi-path-computation"`
	ServiceInterfacePoint	*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint	`path:"service-interface-point" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_EndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity represents the /tapi-common/context/path-computation-context/path-comp-service/end-point/capacity YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity struct {
	TotalSize	*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize	`path:"total-size" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize represents the /tapi-common/context/path-computation-context/path-comp-service/end-point/capacity/total-size YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Capacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name represents the /tapi-common/context/path-computation-context/path-comp-service/end-point/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint represents the /tapi-common/context/path-computation-context/path-comp-service/end-point/service-interface-point YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint struct {
	ServiceInterfacePointUuid	*string	`path:"service-interface-point-uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_EndPoint_ServiceInterfacePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_Name represents the /tapi-common/context/path-computation-context/path-comp-service/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction represents the /tapi-common/context/path-computation-context/path-comp-service/objective-function YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction struct {
	BandwidthOptimization	E_TapiPathComputation_DirectiveValue	`path:"bandwidth-optimization" module:"tapi-path-computation"`
	ConcurrentPaths	E_TapiPathComputation_DirectiveValue	`path:"concurrent-paths" module:"tapi-path-computation"`
	CostOptimization	E_TapiPathComputation_DirectiveValue	`path:"cost-optimization" module:"tapi-path-computation"`
	LinkUtilization	E_TapiPathComputation_DirectiveValue	`path:"link-utilization" module:"tapi-path-computation"`
	LocalId	*string	`path:"local-id" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name	`path:"name" module:"tapi-path-computation"`
	ResourceSharing	E_TapiPathComputation_DirectiveValue	`path:"resource-sharing" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name represents the /tapi-common/context/path-computation-context/path-comp-service/objective-function/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_ObjectiveFunction_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint represents the /tapi-common/context/path-computation-context/path-comp-service/optimization-constraint YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint struct {
	LocalId	*string	`path:"local-id" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name	`path:"name" module:"tapi-path-computation"`
	TrafficInterruption	E_TapiPathComputation_DirectiveValue	`path:"traffic-interruption" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name represents the /tapi-common/context/path-computation-context/path-comp-service/optimization-constraint/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_OptimizationConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_Path represents the /tapi-common/context/path-computation-context/path-comp-service/path YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_Path struct {
	PathUuid	*string	`path:"path-uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_Path implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_Path) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_Path struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Path) ΛListKeyMap() (map[string]interface{}, error) {
	if t.PathUuid == nil {
		return nil, fmt.Errorf("nil value for key PathUuid")
	}

	return map[string]interface{}{
		"path-uuid": *t.PathUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Path) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_Path"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_Path) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-path-computation"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-path-computation"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-path-computation"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-path-computation"`
	MaxAllowedCost	*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-path-computation"`
	MaxAllowedDelay	*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-path-computation"`
	MaxAllowedHops	*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-path-computation"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-path-computation"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-path-computation"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-path-computation"`
	CostName	*string	`path:"cost-name" module:"tapi-path-computation"`
	CostValue	*string	`path:"cost-value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-path-computation"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-path-computation"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-path-computation"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-path-computation"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/path-computation-context/path-comp-service/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-path-computation"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint represents the /tapi-common/context/path-computation-context/path-comp-service/topology-constraint YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint struct {
	AvoidTopology	*string	`path:"avoid-topology" module:"tapi-path-computation"`
	ConstraintWeight	*uint64	`path:"constraint-weight" module:"tapi-path-computation"`
	ExcludeLink	*string	`path:"exclude-link" module:"tapi-path-computation"`
	ExcludeNode	*string	`path:"exclude-node" module:"tapi-path-computation"`
	ExcludeNodeEdgePoint	*string	`path:"exclude-node-edge-point" module:"tapi-path-computation"`
	ExcludePath	*string	`path:"exclude-path" module:"tapi-path-computation"`
	IncludeLink	*string	`path:"include-link" module:"tapi-path-computation"`
	IncludeNode	*string	`path:"include-node" module:"tapi-path-computation"`
	IncludeNodeEdgePoint	*string	`path:"include-node-edge-point" module:"tapi-path-computation"`
	IncludePath	*string	`path:"include-path" module:"tapi-path-computation"`
	IncludeTopology	*string	`path:"include-topology" module:"tapi-path-computation"`
	LocalId	*string	`path:"local-id" module:"tapi-path-computation"`
	Name	map[string]*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name	`path:"name" module:"tapi-path-computation"`
	PreferredTransportLayer	E_TapiPathComputation_LayerProtocolName	`path:"preferred-transport-layer" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) NewName(ValueName string) (*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name represents the /tapi-common/context/path-computation-context/path-comp-service/topology-constraint/name YANG schema element.
type TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_PathCompService_TopologyConstraint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_Link represents the /tapi-common/context/path-computation-context/path/link YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_Link struct {
	LinkUuid	*string	`path:"link-uuid" module:"tapi-path-computation"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_Link implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_Link) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_Link struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_Link) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LinkUuid == nil {
		return nil, fmt.Errorf("nil value for key LinkUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"link-uuid": *t.LinkUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_Link) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_Link"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_Link) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_Name represents the /tapi-common/context/path-computation-context/path/name YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_Name struct {
	Value	*string	`path:"value" module:"tapi-path-computation"`
	ValueName	*string	`path:"value-name" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint represents the /tapi-common/context/path-computation-context/path/routing-constraint YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint struct {
	CostCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic	`path:"cost-characteristic" module:"tapi-path-computation"`
	DiversityPolicy	E_TapiPathComputation_DiversityPolicy	`path:"diversity-policy" module:"tapi-path-computation"`
	IsExclusive	*bool	`path:"is-exclusive" module:"tapi-path-computation"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-path-computation"`
	MaxAllowedCost	*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost	`path:"max-allowed-cost" module:"tapi-path-computation"`
	MaxAllowedDelay	*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay	`path:"max-allowed-delay" module:"tapi-path-computation"`
	MaxAllowedHops	*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops	`path:"max-allowed-hops" module:"tapi-path-computation"`
	RiskDiversityCharacteristic	map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic	`path:"risk-diversity-characteristic" module:"tapi-path-computation"`
	RouteObjectiveFunction	E_TapiPathComputation_RouteObjectiveFunction	`path:"route-objective-function" module:"tapi-path-computation"`
	TolerableImpact	E_TapiPathComputation_GradesOfImpact	`path:"tolerable-impact" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) IsYANGGoStruct() {}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) NewCostCharacteristic(CostName string) (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewRiskDiversityCharacteristic creates a new entry in the RiskDiversityCharacteristic list of the
// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) NewRiskDiversityCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskDiversityCharacteristic == nil {
		t.RiskDiversityCharacteristic = make(map[string]*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskDiversityCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskDiversityCharacteristic", key)
	}

	t.RiskDiversityCharacteristic[key] = &TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskDiversityCharacteristic[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic represents the /tapi-common/context/path-computation-context/path/routing-constraint/cost-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-path-computation"`
	CostName	*string	`path:"cost-name" module:"tapi-path-computation"`
	CostValue	*string	`path:"cost-value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic represents the /tapi-common/context/path-computation-context/path/routing-constraint/latency-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-path-computation"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-path-computation"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-path-computation"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-path-computation"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost represents the /tapi-common/context/path-computation-context/path/routing-constraint/max-allowed-cost YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedCost) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay represents the /tapi-common/context/path-computation-context/path/routing-constraint/max-allowed-delay YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedDelay) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops represents the /tapi-common/context/path-computation-context/path/routing-constraint/max-allowed-hops YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops struct {
	Priority	*uint64	`path:"priority" module:"tapi-path-computation"`
	Value	*uint64	`path:"value" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_MaxAllowedHops) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic represents the /tapi-common/context/path-computation-context/path/routing-constraint/risk-diversity-characteristic YANG schema element.
type TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-path-computation"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-path-computation"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_PathComputationContext_Path_RoutingConstraint_RiskDiversityCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint represents the /tapi-common/context/service-interface-point YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-common"`
	AvailableCapacity	*TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity	`path:"available-capacity" module:"tapi-common"`
	Direction	E_TapiCommon_PortDirection	`path:"direction" module:"tapi-common"`
	LayerProtocolName	E_TapiCommon_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-common"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-common"`
	MediaChannelServiceInterfacePointSpec	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec	`path:"media-channel-service-interface-point-spec" module:"tapi-photonic-media"`
	Name	map[string]*TapiCommon_Context_ServiceInterfacePoint_Name	`path:"name" module:"tapi-common"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-common"`
	OtsiServiceInterfacePointSpec	*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec	`path:"otsi-service-interface-point-spec" module:"tapi-photonic-media"`
	SupportedLayerProtocolQualifier	[]E_TapiCommon_LayerProtocolQualifier	`path:"supported-layer-protocol-qualifier" module:"tapi-common"`
	TotalPotentialCapacity	*TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-common"`
	Uuid	*string	`path:"uuid" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_ServiceInterfacePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ServiceInterfacePoint) NewName(ValueName string) (*TapiCommon_Context_ServiceInterfacePoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_ServiceInterfacePoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_ServiceInterfacePoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ServiceInterfacePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_ServiceInterfacePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity represents the /tapi-common/context/service-interface-point/available-capacity YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize represents the /tapi-common/context/service-interface-point/available-capacity/total-size YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-common"`
	Value	*uint64	`path:"value" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec struct {
	McPool	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool	`path:"mc-pool" module:"tapi-photonic-media"`
	PowerManagementCapability	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability	`path:"power-management-capability" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool struct {
	AvailableSpectrum	map[TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_Key]*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum	`path:"available-spectrum" module:"tapi-photonic-media"`
	OccupiedSpectrum	map[TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_Key]*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum	`path:"occupied-spectrum" module:"tapi-photonic-media"`
	SupportableSpectrum	map[TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_Key]*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum	`path:"supportable-spectrum" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool) IsYANGGoStruct() {}

// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_Key represents the key for list AvailableSpectrum of element /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_Key struct {
	UpperFrequency	uint64	`path:"upper-frequency"`
	LowerFrequency	uint64	`path:"lower-frequency"`
}

// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_Key represents the key for list OccupiedSpectrum of element /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_Key struct {
	UpperFrequency	uint64	`path:"upper-frequency"`
	LowerFrequency	uint64	`path:"lower-frequency"`
}

// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_Key represents the key for list SupportableSpectrum of element /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_Key struct {
	UpperFrequency	uint64	`path:"upper-frequency"`
	LowerFrequency	uint64	`path:"lower-frequency"`
}

// NewAvailableSpectrum creates a new entry in the AvailableSpectrum list of the
// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool) NewAvailableSpectrum(UpperFrequency uint64, LowerFrequency uint64) (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AvailableSpectrum == nil {
		t.AvailableSpectrum = make(map[TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_Key]*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum)
	}

	key := TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_Key{
		UpperFrequency: UpperFrequency,
		LowerFrequency: LowerFrequency,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AvailableSpectrum[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AvailableSpectrum", key)
	}

	t.AvailableSpectrum[key] = &TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum{
		UpperFrequency: &UpperFrequency,
		LowerFrequency: &LowerFrequency,
	}

	return t.AvailableSpectrum[key], nil
}

// NewOccupiedSpectrum creates a new entry in the OccupiedSpectrum list of the
// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool) NewOccupiedSpectrum(UpperFrequency uint64, LowerFrequency uint64) (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.OccupiedSpectrum == nil {
		t.OccupiedSpectrum = make(map[TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_Key]*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum)
	}

	key := TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_Key{
		UpperFrequency: UpperFrequency,
		LowerFrequency: LowerFrequency,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.OccupiedSpectrum[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list OccupiedSpectrum", key)
	}

	t.OccupiedSpectrum[key] = &TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum{
		UpperFrequency: &UpperFrequency,
		LowerFrequency: &LowerFrequency,
	}

	return t.OccupiedSpectrum[key], nil
}

// NewSupportableSpectrum creates a new entry in the SupportableSpectrum list of the
// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool) NewSupportableSpectrum(UpperFrequency uint64, LowerFrequency uint64) (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SupportableSpectrum == nil {
		t.SupportableSpectrum = make(map[TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_Key]*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum)
	}

	key := TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_Key{
		UpperFrequency: UpperFrequency,
		LowerFrequency: LowerFrequency,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SupportableSpectrum[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SupportableSpectrum", key)
	}

	t.SupportableSpectrum[key] = &TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum{
		UpperFrequency: &UpperFrequency,
		LowerFrequency: &LowerFrequency,
	}

	return t.SupportableSpectrum[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/available-spectrum YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum struct {
	FrequencyConstraint	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum struct, which is a YANG list entry.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LowerFrequency == nil {
		return nil, fmt.Errorf("nil value for key LowerFrequency")
	}

	if t.UpperFrequency == nil {
		return nil, fmt.Errorf("nil value for key UpperFrequency")
	}

	return map[string]interface{}{
		"lower-frequency": *t.LowerFrequency,
		"upper-frequency": *t.UpperFrequency,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_FrequencyConstraint represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/available-spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_AvailableSpectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/occupied-spectrum YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum struct {
	FrequencyConstraint	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum struct, which is a YANG list entry.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LowerFrequency == nil {
		return nil, fmt.Errorf("nil value for key LowerFrequency")
	}

	if t.UpperFrequency == nil {
		return nil, fmt.Errorf("nil value for key UpperFrequency")
	}

	return map[string]interface{}{
		"lower-frequency": *t.LowerFrequency,
		"upper-frequency": *t.UpperFrequency,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/occupied-spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/supportable-spectrum YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum struct {
	FrequencyConstraint	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum struct, which is a YANG list entry.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LowerFrequency == nil {
		return nil, fmt.Errorf("nil value for key LowerFrequency")
	}

	if t.UpperFrequency == nil {
		return nil, fmt.Errorf("nil value for key UpperFrequency")
	}

	return map[string]interface{}{
		"lower-frequency": *t.LowerFrequency,
		"upper-frequency": *t.UpperFrequency,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_FrequencyConstraint represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/supportable-spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_McPool_SupportableSpectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/power-management-capability YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability struct {
	SupportableMaximumOutputPower	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower	`path:"supportable-maximum-output-power" module:"tapi-photonic-media"`
	SupportableMinimumOutputPower	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower	`path:"supportable-minimum-output-power" module:"tapi-photonic-media"`
	TolerableMaximumInputPower	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower	`path:"tolerable-maximum-input-power" module:"tapi-photonic-media"`
	TolerableMinimumInputPower	*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower	`path:"tolerable-minimum-input-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/power-management-capability/supportable-maximum-output-power YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/power-management-capability/supportable-minimum-output-power YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/power-management-capability/tolerable-maximum-input-power YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower represents the /tapi-common/context/service-interface-point/media-channel-service-interface-point-spec/power-management-capability/tolerable-minimum-input-power YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_MediaChannelServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_Name represents the /tapi-common/context/service-interface-point/name YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_Name struct {
	Value	*string	`path:"value" module:"tapi-common"`
	ValueName	*string	`path:"value-name" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ServiceInterfacePoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_ServiceInterfacePoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec struct {
	OtsiCapability	*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability	`path:"otsi-capability" module:"tapi-photonic-media"`
	PowerManagementCapability	*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability	`path:"power-management-capability" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability struct {
	SupportableApplicationIdentifier	map[string]*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier	`path:"supportable-application-identifier" module:"tapi-photonic-media"`
	SupportableCentralFrequencySpectrumBand	map[TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_Key]*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand	`path:"supportable-central-frequency-spectrum-band" module:"tapi-photonic-media"`
	SupportableModulation	[]E_TapiPhotonicMedia_ModulationTechnique	`path:"supportable-modulation" module:"tapi-photonic-media"`
	TotalPowerWarnThreshold	*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_TotalPowerWarnThreshold	`path:"total-power-warn-threshold" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability) IsYANGGoStruct() {}

// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_Key represents the key for list SupportableCentralFrequencySpectrumBand of element /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_Key struct {
	LowerCentralFrequency	uint64	`path:"lower-central-frequency"`
	UpperCentralFrequency	uint64	`path:"upper-central-frequency"`
}

// NewSupportableApplicationIdentifier creates a new entry in the SupportableApplicationIdentifier list of the
// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability) NewSupportableApplicationIdentifier(ApplicationCode string) (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SupportableApplicationIdentifier == nil {
		t.SupportableApplicationIdentifier = make(map[string]*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier)
	}

	key := ApplicationCode

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SupportableApplicationIdentifier[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SupportableApplicationIdentifier", key)
	}

	t.SupportableApplicationIdentifier[key] = &TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier{
		ApplicationCode: &ApplicationCode,
	}

	return t.SupportableApplicationIdentifier[key], nil
}

// NewSupportableCentralFrequencySpectrumBand creates a new entry in the SupportableCentralFrequencySpectrumBand list of the
// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability) NewSupportableCentralFrequencySpectrumBand(LowerCentralFrequency uint64, UpperCentralFrequency uint64) (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SupportableCentralFrequencySpectrumBand == nil {
		t.SupportableCentralFrequencySpectrumBand = make(map[TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_Key]*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand)
	}

	key := TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_Key{
		LowerCentralFrequency: LowerCentralFrequency,
		UpperCentralFrequency: UpperCentralFrequency,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SupportableCentralFrequencySpectrumBand[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SupportableCentralFrequencySpectrumBand", key)
	}

	t.SupportableCentralFrequencySpectrumBand[key] = &TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand{
		LowerCentralFrequency: &LowerCentralFrequency,
		UpperCentralFrequency: &UpperCentralFrequency,
	}

	return t.SupportableCentralFrequencySpectrumBand[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability/supportable-application-identifier YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier struct {
	ApplicationCode	*string	`path:"application-code" module:"tapi-photonic-media"`
	ApplicationIdentifierType	E_TapiPhotonicMedia_ApplicationIdentifierType	`path:"application-identifier-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier struct, which is a YANG list entry.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ApplicationCode == nil {
		return nil, fmt.Errorf("nil value for key ApplicationCode")
	}

	return map[string]interface{}{
		"application-code": *t.ApplicationCode,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableApplicationIdentifier) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability/supportable-central-frequency-spectrum-band YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand struct {
	FrequencyConstraint	*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerCentralFrequency	*uint64	`path:"lower-central-frequency" module:"tapi-photonic-media"`
	UpperCentralFrequency	*uint64	`path:"upper-central-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand struct, which is a YANG list entry.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LowerCentralFrequency == nil {
		return nil, fmt.Errorf("nil value for key LowerCentralFrequency")
	}

	if t.UpperCentralFrequency == nil {
		return nil, fmt.Errorf("nil value for key UpperCentralFrequency")
	}

	return map[string]interface{}{
		"lower-central-frequency": *t.LowerCentralFrequency,
		"upper-central-frequency": *t.UpperCentralFrequency,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_FrequencyConstraint represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability/supportable-central-frequency-spectrum-band/frequency-constraint YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_SupportableCentralFrequencySpectrumBand_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_TotalPowerWarnThreshold represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability/total-power-warn-threshold YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_TotalPowerWarnThreshold struct {
	TotalPowerLowerWarnThresholdDefault	*float64	`path:"total-power-lower-warn-threshold-default" module:"tapi-photonic-media"`
	TotalPowerLowerWarnThresholdMax	*float64	`path:"total-power-lower-warn-threshold-max" module:"tapi-photonic-media"`
	TotalPowerLowerWarnThresholdMin	*float64	`path:"total-power-lower-warn-threshold-min" module:"tapi-photonic-media"`
	TotalPowerUpperWarnThresholdDefault	*float64	`path:"total-power-upper-warn-threshold-default" module:"tapi-photonic-media"`
	TotalPowerUpperWarnThresholdMax	*float64	`path:"total-power-upper-warn-threshold-max" module:"tapi-photonic-media"`
	TotalPowerUpperWarnThresholdMin	*float64	`path:"total-power-upper-warn-threshold-min" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_TotalPowerWarnThreshold implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_TotalPowerWarnThreshold) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_TotalPowerWarnThreshold) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_TotalPowerWarnThreshold"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_OtsiCapability_TotalPowerWarnThreshold) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/power-management-capability YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability struct {
	SupportableMaximumOutputPower	*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower	`path:"supportable-maximum-output-power" module:"tapi-photonic-media"`
	SupportableMinimumOutputPower	*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower	`path:"supportable-minimum-output-power" module:"tapi-photonic-media"`
	TolerableMaximumInputPower	*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower	`path:"tolerable-maximum-input-power" module:"tapi-photonic-media"`
	TolerableMinimumInputPower	*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower	`path:"tolerable-minimum-input-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/power-management-capability/supportable-maximum-output-power YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMaximumOutputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/power-management-capability/supportable-minimum-output-power YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_SupportableMinimumOutputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/power-management-capability/tolerable-maximum-input-power YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMaximumInputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower represents the /tapi-common/context/service-interface-point/otsi-service-interface-point-spec/power-management-capability/tolerable-minimum-input-power YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_OtsiServiceInterfacePointSpec_PowerManagementCapability_TolerableMinimumInputPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity represents the /tapi-common/context/service-interface-point/total-potential-capacity YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/service-interface-point/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-common"`
	Value	*uint64	`path:"value" module:"tapi-common"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_ServiceInterfacePoint_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext represents the /tapi-common/context/topology-context YANG schema element.
type TapiCommon_Context_TopologyContext struct {
	NwTopologyService	*TapiCommon_Context_TopologyContext_NwTopologyService	`path:"nw-topology-service" module:"tapi-topology"`
	Topology	map[string]*TapiCommon_Context_TopologyContext_Topology	`path:"topology" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext) IsYANGGoStruct() {}

// NewTopology creates a new entry in the Topology list of the
// TapiCommon_Context_TopologyContext struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext) NewTopology(Uuid string) (*TapiCommon_Context_TopologyContext_Topology, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Topology == nil {
		t.Topology = make(map[string]*TapiCommon_Context_TopologyContext_Topology)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Topology[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Topology", key)
	}

	t.Topology[key] = &TapiCommon_Context_TopologyContext_Topology{
		Uuid: &Uuid,
	}

	return t.Topology[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_NwTopologyService represents the /tapi-common/context/topology-context/nw-topology-service YANG schema element.
type TapiCommon_Context_TopologyContext_NwTopologyService struct {
	Name	map[string]*TapiCommon_Context_TopologyContext_NwTopologyService_Name	`path:"name" module:"tapi-topology"`
	Topology	map[string]*TapiCommon_Context_TopologyContext_NwTopologyService_Topology	`path:"topology" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_NwTopologyService implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_NwTopologyService) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_NwTopologyService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_NwTopologyService_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_NwTopologyService_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_NwTopologyService_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewTopology creates a new entry in the Topology list of the
// TapiCommon_Context_TopologyContext_NwTopologyService struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService) NewTopology(TopologyUuid string) (*TapiCommon_Context_TopologyContext_NwTopologyService_Topology, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Topology == nil {
		t.Topology = make(map[string]*TapiCommon_Context_TopologyContext_NwTopologyService_Topology)
	}

	key := TopologyUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Topology[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Topology", key)
	}

	t.Topology[key] = &TapiCommon_Context_TopologyContext_NwTopologyService_Topology{
		TopologyUuid: &TopologyUuid,
	}

	return t.Topology[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_NwTopologyService"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_NwTopologyService_Name represents the /tapi-common/context/topology-context/nw-topology-service/name YANG schema element.
type TapiCommon_Context_TopologyContext_NwTopologyService_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_NwTopologyService_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_NwTopologyService_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_NwTopologyService_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_NwTopologyService_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_NwTopologyService_Topology represents the /tapi-common/context/topology-context/nw-topology-service/topology YANG schema element.
type TapiCommon_Context_TopologyContext_NwTopologyService_Topology struct {
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_NwTopologyService_Topology implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_NwTopologyService_Topology) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_NwTopologyService_Topology struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Topology) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Topology) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_NwTopologyService_Topology"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_NwTopologyService_Topology) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology represents the /tapi-common/context/topology-context/topology YANG schema element.
type TapiCommon_Context_TopologyContext_Topology struct {
	BoundaryNodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint	`path:"boundary-node-edge-point" module:"tapi-topology"`
	LayerProtocolName	[]E_TapiTopology_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-topology"`
	Link	map[string]*TapiCommon_Context_TopologyContext_Topology_Link	`path:"link" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Name	`path:"name" module:"tapi-topology"`
	Node	map[string]*TapiCommon_Context_TopologyContext_Topology_Node	`path:"node" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key represents the key for list BoundaryNodeEdgePoint of element /tapi-common/context/topology-context/topology.
type TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewBoundaryNodeEdgePoint creates a new entry in the BoundaryNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology) NewBoundaryNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.BoundaryNodeEdgePoint == nil {
		t.BoundaryNodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.BoundaryNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list BoundaryNodeEdgePoint", key)
	}

	t.BoundaryNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.BoundaryNodeEdgePoint[key], nil
}

// NewLink creates a new entry in the Link list of the
// TapiCommon_Context_TopologyContext_Topology struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology) NewLink(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Link, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Link == nil {
		t.Link = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Link[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Link", key)
	}

	t.Link[key] = &TapiCommon_Context_TopologyContext_Topology_Link{
		Uuid: &Uuid,
	}

	return t.Link[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewNode creates a new entry in the Node list of the
// TapiCommon_Context_TopologyContext_Topology struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology) NewNode(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Node == nil {
		t.Node = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Node[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Node", key)
	}

	t.Node[key] = &TapiCommon_Context_TopologyContext_Topology_Node{
		Uuid: &Uuid,
	}

	return t.Node[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint represents the /tapi-common/context/topology-context/topology/boundary-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_BoundaryNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link represents the /tapi-common/context/topology-context/topology/link YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-topology"`
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	CostCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic	`path:"cost-characteristic" module:"tapi-topology"`
	DeliveryOrderCharacteristic	*string	`path:"delivery-order-characteristic" module:"tapi-topology"`
	Direction	E_TapiTopology_ForwardingDirection	`path:"direction" module:"tapi-topology"`
	ErrorCharacteristic	*string	`path:"error-characteristic" module:"tapi-topology"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-topology"`
	LayerProtocolName	[]E_TapiTopology_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-topology"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-topology"`
	LossCharacteristic	*string	`path:"loss-characteristic" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_Name	`path:"name" module:"tapi-topology"`
	NodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint	`path:"node-edge-point" module:"tapi-topology"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-topology"`
	RepeatDeliveryCharacteristic	*string	`path:"repeat-delivery-characteristic" module:"tapi-topology"`
	ResilienceType	*TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType	`path:"resilience-type" module:"tapi-topology"`
	RiskCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic	`path:"risk-characteristic" module:"tapi-topology"`
	ServerIntegrityProcessCharacteristic	*string	`path:"server-integrity-process-characteristic" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	TransitionedLayerProtocolName	[]string	`path:"transitioned-layer-protocol-name" module:"tapi-topology"`
	UnavailableTimeCharacteristic	*string	`path:"unavailable-time-characteristic" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
	ValidationMechanism	map[string]*TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism	`path:"validation-mechanism" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key represents the key for list NodeEdgePoint of element /tapi-common/context/topology-context/topology/link.
type TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewCostCharacteristic(CostName string) (*TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Link_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Link_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewNodeEdgePoint creates a new entry in the NodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NodeEdgePoint == nil {
		t.NodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NodeEdgePoint", key)
	}

	t.NodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.NodeEdgePoint[key], nil
}

// NewRiskCharacteristic creates a new entry in the RiskCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewRiskCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskCharacteristic == nil {
		t.RiskCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskCharacteristic", key)
	}

	t.RiskCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskCharacteristic[key], nil
}

// NewValidationMechanism creates a new entry in the ValidationMechanism list of the
// TapiCommon_Context_TopologyContext_Topology_Link struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) NewValidationMechanism(ValidationMechanism string) (*TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ValidationMechanism == nil {
		t.ValidationMechanism = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism)
	}

	key := ValidationMechanism

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ValidationMechanism[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ValidationMechanism", key)
	}

	t.ValidationMechanism[key] = &TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism{
		ValidationMechanism: &ValidationMechanism,
	}

	return t.ValidationMechanism[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity represents the /tapi-common/context/topology-context/topology/link/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/link/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic represents the /tapi-common/context/topology-context/topology/link/cost-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-topology"`
	CostName	*string	`path:"cost-name" module:"tapi-topology"`
	CostValue	*string	`path:"cost-value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic represents the /tapi-common/context/topology-context/topology/link/latency-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-topology"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-topology"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-topology"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-topology"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_Name represents the /tapi-common/context/topology-context/topology/link/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint represents the /tapi-common/context/topology-context/topology/link/node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_NodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType represents the /tapi-common/context/topology-context/topology/link/resilience-type YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType struct {
	ProtectionType	E_TapiTopology_ProtectionType	`path:"protection-type" module:"tapi-topology"`
	RestorationPolicy	E_TapiTopology_RestorationPolicy	`path:"restoration-policy" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ResilienceType) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic represents the /tapi-common/context/topology-context/topology/link/risk-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-topology"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_RiskCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/link/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/link/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism represents the /tapi-common/context/topology-context/topology/link/validation-mechanism YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism struct {
	LayerProtocolAdjacencyValidated	*string	`path:"layer-protocol-adjacency-validated" module:"tapi-topology"`
	ValidationMechanism	*string	`path:"validation-mechanism" module:"tapi-topology"`
	ValidationRobustness	*string	`path:"validation-robustness" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValidationMechanism == nil {
		return nil, fmt.Errorf("nil value for key ValidationMechanism")
	}

	return map[string]interface{}{
		"validation-mechanism": *t.ValidationMechanism,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Link_ValidationMechanism) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Name represents the /tapi-common/context/topology-context/topology/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node represents the /tapi-common/context/topology-context/topology/node YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-topology"`
	AggregatedNodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint	`path:"aggregated-node-edge-point" module:"tapi-topology"`
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	CostCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic	`path:"cost-characteristic" module:"tapi-topology"`
	DeliveryOrderCharacteristic	*string	`path:"delivery-order-characteristic" module:"tapi-topology"`
	EncapTopology	*TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology	`path:"encap-topology" module:"tapi-topology"`
	ErrorCharacteristic	*string	`path:"error-characteristic" module:"tapi-topology"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-topology"`
	LayerProtocolName	[]E_TapiTopology_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-topology"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-topology"`
	LossCharacteristic	*string	`path:"loss-characteristic" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_Name	`path:"name" module:"tapi-topology"`
	NodeRuleGroup	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup	`path:"node-rule-group" module:"tapi-topology"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-topology"`
	OwnedNodeEdgePoint	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint	`path:"owned-node-edge-point" module:"tapi-topology"`
	RepeatDeliveryCharacteristic	*string	`path:"repeat-delivery-characteristic" module:"tapi-topology"`
	ServerIntegrityProcessCharacteristic	*string	`path:"server-integrity-process-characteristic" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	UnavailableTimeCharacteristic	*string	`path:"unavailable-time-characteristic" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key represents the key for list AggregatedNodeEdgePoint of element /tapi-common/context/topology-context/topology/node.
type TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewAggregatedNodeEdgePoint creates a new entry in the AggregatedNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewAggregatedNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AggregatedNodeEdgePoint == nil {
		t.AggregatedNodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AggregatedNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AggregatedNodeEdgePoint", key)
	}

	t.AggregatedNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.AggregatedNodeEdgePoint[key], nil
}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewCostCharacteristic(CostName string) (*TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewNodeRuleGroup creates a new entry in the NodeRuleGroup list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewNodeRuleGroup(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NodeRuleGroup == nil {
		t.NodeRuleGroup = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NodeRuleGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NodeRuleGroup", key)
	}

	t.NodeRuleGroup[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup{
		Uuid: &Uuid,
	}

	return t.NodeRuleGroup[key], nil
}

// NewOwnedNodeEdgePoint creates a new entry in the OwnedNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) NewOwnedNodeEdgePoint(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.OwnedNodeEdgePoint == nil {
		t.OwnedNodeEdgePoint = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.OwnedNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list OwnedNodeEdgePoint", key)
	}

	t.OwnedNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint{
		Uuid: &Uuid,
	}

	return t.OwnedNodeEdgePoint[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/aggregated-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AggregatedNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity represents the /tapi-common/context/topology-context/topology/node/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic represents the /tapi-common/context/topology-context/topology/node/cost-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-topology"`
	CostName	*string	`path:"cost-name" module:"tapi-topology"`
	CostValue	*string	`path:"cost-value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology represents the /tapi-common/context/topology-context/topology/node/encap-topology YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology struct {
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_EncapTopology) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic represents the /tapi-common/context/topology-context/topology/node/latency-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-topology"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-topology"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-topology"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-topology"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_Name represents the /tapi-common/context/topology-context/topology/node/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup represents the /tapi-common/context/topology-context/topology/node/node-rule-group YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct {
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	ComposedRuleGroup	map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup	`path:"composed-rule-group" module:"tapi-topology"`
	CostCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic	`path:"cost-characteristic" module:"tapi-topology"`
	InterRuleGroup	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup	`path:"inter-rule-group" module:"tapi-topology"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name	`path:"name" module:"tapi-topology"`
	NodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint	`path:"node-edge-point" module:"tapi-topology"`
	RiskCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic	`path:"risk-characteristic" module:"tapi-topology"`
	Rule	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule	`path:"rule" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key represents the key for list ComposedRuleGroup of element /tapi-common/context/topology-context/topology/node/node-rule-group.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeRuleGroupUuid	string	`path:"node-rule-group-uuid"`
}

// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key represents the key for list NodeEdgePoint of element /tapi-common/context/topology-context/topology/node/node-rule-group.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewComposedRuleGroup creates a new entry in the ComposedRuleGroup list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewComposedRuleGroup(TopologyUuid string, NodeUuid string, NodeRuleGroupUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ComposedRuleGroup == nil {
		t.ComposedRuleGroup = make(map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeRuleGroupUuid: NodeRuleGroupUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ComposedRuleGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ComposedRuleGroup", key)
	}

	t.ComposedRuleGroup[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeRuleGroupUuid: &NodeRuleGroupUuid,
	}

	return t.ComposedRuleGroup[key], nil
}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewCostCharacteristic(CostName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewInterRuleGroup creates a new entry in the InterRuleGroup list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewInterRuleGroup(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.InterRuleGroup == nil {
		t.InterRuleGroup = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.InterRuleGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list InterRuleGroup", key)
	}

	t.InterRuleGroup[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup{
		Uuid: &Uuid,
	}

	return t.InterRuleGroup[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewNodeEdgePoint creates a new entry in the NodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.NodeEdgePoint == nil {
		t.NodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.NodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list NodeEdgePoint", key)
	}

	t.NodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.NodeEdgePoint[key], nil
}

// NewRiskCharacteristic creates a new entry in the RiskCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewRiskCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskCharacteristic == nil {
		t.RiskCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskCharacteristic", key)
	}

	t.RiskCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskCharacteristic[key], nil
}

// NewRule creates a new entry in the Rule list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) NewRule(LocalId string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Rule == nil {
		t.Rule = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Rule[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Rule", key)
	}

	t.Rule[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule{
		LocalId: &LocalId,
	}

	return t.Rule[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity represents the /tapi-common/context/topology-context/topology/node/node-rule-group/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/node-rule-group/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup represents the /tapi-common/context/topology-context/topology/node/node-rule-group/composed-rule-group YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup struct {
	NodeRuleGroupUuid	*string	`path:"node-rule-group-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeRuleGroupUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeRuleGroupUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-rule-group-uuid": *t.NodeRuleGroupUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_ComposedRuleGroup) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/cost-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-topology"`
	CostName	*string	`path:"cost-name" module:"tapi-topology"`
	CostValue	*string	`path:"cost-value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct {
	AssociatedNodeRuleGroup	map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup	`path:"associated-node-rule-group" module:"tapi-topology"`
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	CostCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic	`path:"cost-characteristic" module:"tapi-topology"`
	LatencyCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic	`path:"latency-characteristic" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name	`path:"name" module:"tapi-topology"`
	RiskCharacteristic	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic	`path:"risk-characteristic" module:"tapi-topology"`
	Rule	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule	`path:"rule" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key represents the key for list AssociatedNodeRuleGroup of element /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeRuleGroupUuid	string	`path:"node-rule-group-uuid"`
}

// NewAssociatedNodeRuleGroup creates a new entry in the AssociatedNodeRuleGroup list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewAssociatedNodeRuleGroup(TopologyUuid string, NodeUuid string, NodeRuleGroupUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AssociatedNodeRuleGroup == nil {
		t.AssociatedNodeRuleGroup = make(map[TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeRuleGroupUuid: NodeRuleGroupUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AssociatedNodeRuleGroup[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AssociatedNodeRuleGroup", key)
	}

	t.AssociatedNodeRuleGroup[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeRuleGroupUuid: &NodeRuleGroupUuid,
	}

	return t.AssociatedNodeRuleGroup[key], nil
}

// NewCostCharacteristic creates a new entry in the CostCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewCostCharacteristic(CostName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.CostCharacteristic == nil {
		t.CostCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic)
	}

	key := CostName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.CostCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list CostCharacteristic", key)
	}

	t.CostCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic{
		CostName: &CostName,
	}

	return t.CostCharacteristic[key], nil
}

// NewLatencyCharacteristic creates a new entry in the LatencyCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewLatencyCharacteristic(TrafficPropertyName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.LatencyCharacteristic == nil {
		t.LatencyCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic)
	}

	key := TrafficPropertyName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.LatencyCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list LatencyCharacteristic", key)
	}

	t.LatencyCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic{
		TrafficPropertyName: &TrafficPropertyName,
	}

	return t.LatencyCharacteristic[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// NewRiskCharacteristic creates a new entry in the RiskCharacteristic list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewRiskCharacteristic(RiskCharacteristicName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.RiskCharacteristic == nil {
		t.RiskCharacteristic = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic)
	}

	key := RiskCharacteristicName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.RiskCharacteristic[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list RiskCharacteristic", key)
	}

	t.RiskCharacteristic[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic{
		RiskCharacteristicName: &RiskCharacteristicName,
	}

	return t.RiskCharacteristic[key], nil
}

// NewRule creates a new entry in the Rule list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) NewRule(LocalId string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Rule == nil {
		t.Rule = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule)
	}

	key := LocalId

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Rule[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Rule", key)
	}

	t.Rule[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule{
		LocalId: &LocalId,
	}

	return t.Rule[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/associated-node-rule-group YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup struct {
	NodeRuleGroupUuid	*string	`path:"node-rule-group-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeRuleGroupUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeRuleGroupUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-rule-group-uuid": *t.NodeRuleGroupUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AssociatedNodeRuleGroup) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/cost-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic struct {
	CostAlgorithm	*string	`path:"cost-algorithm" module:"tapi-topology"`
	CostName	*string	`path:"cost-name" module:"tapi-topology"`
	CostValue	*string	`path:"cost-value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.CostName == nil {
		return nil, fmt.Errorf("nil value for key CostName")
	}

	return map[string]interface{}{
		"cost-name": *t.CostName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_CostCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/latency-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-topology"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-topology"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-topology"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-topology"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/risk-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-topology"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_RiskCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule struct {
	CepDirection	[]E_TapiTopology_PortDirection	`path:"cep-direction" module:"tapi-topology"`
	CepPortRole	[]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole	`path:"cep-port-role" module:"tapi-topology"`
	ComplexRule	[]string	`path:"complex-rule" module:"tapi-topology"`
	ConnectionSpecReference	[]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference	`path:"connection-spec-reference" module:"tapi-topology"`
	ForwardingRule	E_TapiTopology_ForwardingRule	`path:"forwarding-rule" module:"tapi-topology"`
	LayerProtocolQualifier	[]E_TapiTopology_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-topology"`
	LocalId	*string	`path:"local-id" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name	`path:"name" module:"tapi-topology"`
	OverridePriority	*uint64	`path:"override-priority" module:"tapi-topology"`
	RuleType	E_TapiTopology_RuleType	`path:"rule-type" module:"tapi-topology"`
	SignalProperty	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty	`path:"signal-property" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/cep-port-role YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole struct {
	PortRole	[]string	`path:"port-role" module:"tapi-topology"`
	PortRoleRule	[]E_TapiTopology_PortRoleRuleOption	`path:"port-role-rule" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_CepPortRole) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/connection-spec-reference YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference struct {
	ConnectionSpec	*string	`path:"connection-spec" module:"tapi-topology"`
	ConnectionSpecName	*string	`path:"connection-spec-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_ConnectionSpecReference) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/signal-property YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty struct {
	ApplicableSignalValue	[]string	`path:"applicable-signal-value" module:"tapi-topology"`
	NumberOfSignalValues	*uint64	`path:"number-of-signal-values" module:"tapi-topology"`
	SignalPropertyName	*string	`path:"signal-property-name" module:"tapi-topology"`
	SignalPropertyValueRule	E_TapiTopology_SignalPropertyValueRule	`path:"signal-property-value-rule" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_Rule_SignalProperty) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/node-rule-group/inter-rule-group/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_InterRuleGroup_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/latency-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic struct {
	FixedLatencyCharacteristic	*string	`path:"fixed-latency-characteristic" module:"tapi-topology"`
	JitterCharacteristic	*string	`path:"jitter-characteristic" module:"tapi-topology"`
	QueingLatencyCharacteristic	*string	`path:"queing-latency-characteristic" module:"tapi-topology"`
	TrafficPropertyName	*string	`path:"traffic-property-name" module:"tapi-topology"`
	WanderCharacteristic	*string	`path:"wander-characteristic" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.TrafficPropertyName == nil {
		return nil, fmt.Errorf("nil value for key TrafficPropertyName")
	}

	return map[string]interface{}{
		"traffic-property-name": *t.TrafficPropertyName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_LatencyCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name represents the /tapi-common/context/topology-context/topology/node/node-rule-group/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/node-rule-group/node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_NodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic represents the /tapi-common/context/topology-context/topology/node/node-rule-group/risk-characteristic YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic struct {
	RiskCharacteristicName	*string	`path:"risk-characteristic-name" module:"tapi-topology"`
	RiskIdentifierList	[]string	`path:"risk-identifier-list" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic) ΛListKeyMap() (map[string]interface{}, error) {
	if t.RiskCharacteristicName == nil {
		return nil, fmt.Errorf("nil value for key RiskCharacteristicName")
	}

	return map[string]interface{}{
		"risk-characteristic-name": *t.RiskCharacteristicName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_RiskCharacteristic) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule struct {
	CepDirection	[]E_TapiTopology_PortDirection	`path:"cep-direction" module:"tapi-topology"`
	CepPortRole	[]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole	`path:"cep-port-role" module:"tapi-topology"`
	ComplexRule	[]string	`path:"complex-rule" module:"tapi-topology"`
	ConnectionSpecReference	[]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference	`path:"connection-spec-reference" module:"tapi-topology"`
	ForwardingRule	E_TapiTopology_ForwardingRule	`path:"forwarding-rule" module:"tapi-topology"`
	LayerProtocolQualifier	[]E_TapiTopology_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-topology"`
	LocalId	*string	`path:"local-id" module:"tapi-topology"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name	`path:"name" module:"tapi-topology"`
	OverridePriority	*uint64	`path:"override-priority" module:"tapi-topology"`
	RuleType	E_TapiTopology_RuleType	`path:"rule-type" module:"tapi-topology"`
	SignalProperty	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty	`path:"signal-property" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) IsYANGGoStruct() {}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LocalId == nil {
		return nil, fmt.Errorf("nil value for key LocalId")
	}

	return map[string]interface{}{
		"local-id": *t.LocalId,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule/cep-port-role YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole struct {
	PortRole	[]string	`path:"port-role" module:"tapi-topology"`
	PortRoleRule	[]E_TapiTopology_PortRoleRuleOption	`path:"port-role-rule" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_CepPortRole) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule/connection-spec-reference YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference struct {
	ConnectionSpec	*string	`path:"connection-spec" module:"tapi-topology"`
	ConnectionSpecName	*string	`path:"connection-spec-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_ConnectionSpecReference) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty represents the /tapi-common/context/topology-context/topology/node/node-rule-group/rule/signal-property YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty struct {
	ApplicableSignalValue	[]string	`path:"applicable-signal-value" module:"tapi-topology"`
	NumberOfSignalValues	*uint64	`path:"number-of-signal-values" module:"tapi-topology"`
	SignalPropertyName	*string	`path:"signal-property-name" module:"tapi-topology"`
	SignalPropertyValueRule	E_TapiTopology_SignalPropertyValueRule	`path:"signal-property-value-rule" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_Rule_SignalProperty) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/node/node-rule-group/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/node-rule-group/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_NodeRuleGroup_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct {
	AdministrativeState	E_TapiCommon_AdministrativeState	`path:"administrative-state" module:"tapi-topology"`
	AggregatedNodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint	`path:"aggregated-node-edge-point" module:"tapi-topology"`
	AvailableCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity	`path:"available-capacity" module:"tapi-topology"`
	AvailableCepLayerProtocol	map[E_TapiTopology_LayerProtocolQualifier]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol	`path:"available-cep-layer-protocol" module:"tapi-topology"`
	CepList	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList	`path:"cep-list" module:"tapi-connectivity"`
	LayerProtocolName	E_TapiTopology_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-topology"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-topology"`
	LinkPortDirection	E_TapiTopology_PortDirection	`path:"link-port-direction" module:"tapi-topology"`
	LinkPortRole	E_TapiTopology_PortRole	`path:"link-port-role" module:"tapi-topology"`
	MappedServiceInterfacePoint	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint	`path:"mapped-service-interface-point" module:"tapi-topology"`
	MediaChannelNodeEdgePointSpec	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec	`path:"media-channel-node-edge-point-spec" module:"tapi-photonic-media"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name	`path:"name" module:"tapi-topology"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-topology"`
	TerminationDirection	E_TapiCommon_TerminationDirection	`path:"termination-direction" module:"tapi-topology"`
	TerminationState	E_TapiCommon_TerminationState	`path:"termination-state" module:"tapi-topology"`
	TotalPotentialCapacity	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity	`path:"total-potential-capacity" module:"tapi-topology"`
	Uuid	*string	`path:"uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key represents the key for list AggregatedNodeEdgePoint of element /tapi-common/context/topology-context/topology/node/owned-node-edge-point.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewAggregatedNodeEdgePoint creates a new entry in the AggregatedNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) NewAggregatedNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AggregatedNodeEdgePoint == nil {
		t.AggregatedNodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AggregatedNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AggregatedNodeEdgePoint", key)
	}

	t.AggregatedNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.AggregatedNodeEdgePoint[key], nil
}

// NewAvailableCepLayerProtocol creates a new entry in the AvailableCepLayerProtocol list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) NewAvailableCepLayerProtocol(LayerProtocolQualifier E_TapiTopology_LayerProtocolQualifier) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AvailableCepLayerProtocol == nil {
		t.AvailableCepLayerProtocol = make(map[E_TapiTopology_LayerProtocolQualifier]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol)
	}

	key := LayerProtocolQualifier

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AvailableCepLayerProtocol[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AvailableCepLayerProtocol", key)
	}

	t.AvailableCepLayerProtocol[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol{
		LayerProtocolQualifier: LayerProtocolQualifier,
	}

	return t.AvailableCepLayerProtocol[key], nil
}

// NewMappedServiceInterfacePoint creates a new entry in the MappedServiceInterfacePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) NewMappedServiceInterfacePoint(ServiceInterfacePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.MappedServiceInterfacePoint == nil {
		t.MappedServiceInterfacePoint = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint)
	}

	key := ServiceInterfacePointUuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.MappedServiceInterfacePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list MappedServiceInterfacePoint", key)
	}

	t.MappedServiceInterfacePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint{
		ServiceInterfacePointUuid: &ServiceInterfacePointUuid,
	}

	return t.MappedServiceInterfacePoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/aggregated-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-topology"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-topology"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AggregatedNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/available-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/available-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/available-cep-layer-protocol YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol struct {
	LayerProtocolQualifier	E_TapiTopology_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-topology"`
	NumberOfCepInstances	*uint64	`path:"number-of-cep-instances" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol) ΛListKeyMap() (map[string]interface{}, error) {

	return map[string]interface{}{
		"layer-protocol-qualifier": t.LayerProtocolQualifier,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_AvailableCepLayerProtocol) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList struct {
	ConnectionEndPoint	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint	`path:"connection-end-point" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList) IsYANGGoStruct() {}

// NewConnectionEndPoint creates a new entry in the ConnectionEndPoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList) NewConnectionEndPoint(Uuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ConnectionEndPoint == nil {
		t.ConnectionEndPoint = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint)
	}

	key := Uuid

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ConnectionEndPoint", key)
	}

	t.ConnectionEndPoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint{
		Uuid: &Uuid,
	}

	return t.ConnectionEndPoint[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct {
	AggregatedConnectionEndPoint	map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint	`path:"aggregated-connection-end-point" module:"tapi-connectivity"`
	ClientNodeEdgePoint	map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint	`path:"client-node-edge-point" module:"tapi-connectivity"`
	ConnectionPortDirection	E_TapiConnectivity_PortDirection	`path:"connection-port-direction" module:"tapi-connectivity"`
	ConnectionPortRole	E_TapiConnectivity_PortRole	`path:"connection-port-role" module:"tapi-connectivity"`
	LayerProtocolName	E_TapiConnectivity_LayerProtocolName	`path:"layer-protocol-name" module:"tapi-connectivity"`
	LayerProtocolQualifier	E_TapiConnectivity_LayerProtocolQualifier	`path:"layer-protocol-qualifier" module:"tapi-connectivity"`
	LifecycleState	E_TapiCommon_LifecycleState	`path:"lifecycle-state" module:"tapi-connectivity"`
	MediaChannelConnectionEndPointSpec	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec	`path:"media-channel-connection-end-point-spec" module:"tapi-photonic-media"`
	Name	map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name	`path:"name" module:"tapi-connectivity"`
	OperationalState	E_TapiCommon_OperationalState	`path:"operational-state" module:"tapi-connectivity"`
	OtsiAssemblyConnectionEndPointSpec	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec	`path:"otsi-assembly-connection-end-point-spec" module:"tapi-photonic-media"`
	OtsiConnectionEndPointSpec	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec	`path:"otsi-connection-end-point-spec" module:"tapi-photonic-media"`
	ParentNodeEdgePoint	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint	`path:"parent-node-edge-point" module:"tapi-connectivity"`
	ProtectionRole	E_TapiConnectivity_ProtectionRole	`path:"protection-role" module:"tapi-connectivity"`
	TerminationDirection	E_TapiCommon_TerminationDirection	`path:"termination-direction" module:"tapi-connectivity"`
	TerminationState	E_TapiCommon_TerminationState	`path:"termination-state" module:"tapi-connectivity"`
	Uuid	*string	`path:"uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key represents the key for list AggregatedConnectionEndPoint of element /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
	ConnectionEndPointUuid	string	`path:"connection-end-point-uuid"`
}

// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key represents the key for list ClientNodeEdgePoint of element /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key struct {
	TopologyUuid	string	`path:"topology-uuid"`
	NodeUuid	string	`path:"node-uuid"`
	NodeEdgePointUuid	string	`path:"node-edge-point-uuid"`
}

// NewAggregatedConnectionEndPoint creates a new entry in the AggregatedConnectionEndPoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) NewAggregatedConnectionEndPoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string, ConnectionEndPointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AggregatedConnectionEndPoint == nil {
		t.AggregatedConnectionEndPoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
		ConnectionEndPointUuid: ConnectionEndPointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AggregatedConnectionEndPoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AggregatedConnectionEndPoint", key)
	}

	t.AggregatedConnectionEndPoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
		ConnectionEndPointUuid: &ConnectionEndPointUuid,
	}

	return t.AggregatedConnectionEndPoint[key], nil
}

// NewClientNodeEdgePoint creates a new entry in the ClientNodeEdgePoint list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) NewClientNodeEdgePoint(TopologyUuid string, NodeUuid string, NodeEdgePointUuid string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.ClientNodeEdgePoint == nil {
		t.ClientNodeEdgePoint = make(map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint_Key{
		TopologyUuid: TopologyUuid,
		NodeUuid: NodeUuid,
		NodeEdgePointUuid: NodeEdgePointUuid,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.ClientNodeEdgePoint[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list ClientNodeEdgePoint", key)
	}

	t.ClientNodeEdgePoint[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint{
		TopologyUuid: &TopologyUuid,
		NodeUuid: &NodeUuid,
		NodeEdgePointUuid: &NodeEdgePointUuid,
	}

	return t.ClientNodeEdgePoint[key], nil
}

// NewName creates a new entry in the Name list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) NewName(ValueName string) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.Name == nil {
		t.Name = make(map[string]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name)
	}

	key := ValueName

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.Name[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list Name", key)
	}

	t.Name[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name{
		ValueName: &ValueName,
	}

	return t.Name[key], nil
}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.Uuid == nil {
		return nil, fmt.Errorf("nil value for key Uuid")
	}

	return map[string]interface{}{
		"uuid": *t.Uuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/aggregated-connection-end-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint struct {
	ConnectionEndPointUuid	*string	`path:"connection-end-point-uuid" module:"tapi-connectivity"`
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ConnectionEndPointUuid == nil {
		return nil, fmt.Errorf("nil value for key ConnectionEndPointUuid")
	}

	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"connection-end-point-uuid": *t.ConnectionEndPointUuid,
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_AggregatedConnectionEndPoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/client-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.NodeEdgePointUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeEdgePointUuid")
	}

	if t.NodeUuid == nil {
		return nil, fmt.Errorf("nil value for key NodeUuid")
	}

	if t.TopologyUuid == nil {
		return nil, fmt.Errorf("nil value for key TopologyUuid")
	}

	return map[string]interface{}{
		"node-edge-point-uuid": *t.NodeEdgePointUuid,
		"node-uuid": *t.NodeUuid,
		"topology-uuid": *t.TopologyUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ClientNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/media-channel-connection-end-point-spec YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec struct {
	MediaChannel	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel	`path:"media-channel" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/media-channel-connection-end-point-spec/media-channel YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel struct {
	MeasuredPowerEgress	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerEgress	`path:"measured-power-egress" module:"tapi-photonic-media"`
	MeasuredPowerIngress	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerIngress	`path:"measured-power-ingress" module:"tapi-photonic-media"`
	OccupiedSpectrum	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum	`path:"occupied-spectrum" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerEgress represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/media-channel-connection-end-point-spec/media-channel/measured-power-egress YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerEgress struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerEgress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerEgress) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerEgress) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerEgress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerEgress) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerIngress represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/media-channel-connection-end-point-spec/media-channel/measured-power-ingress YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerIngress struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerIngress implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerIngress) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerIngress) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerIngress"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_MeasuredPowerIngress) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/media-channel-connection-end-point-spec/media-channel/occupied-spectrum YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum struct {
	FrequencyConstraint	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum_FrequencyConstraint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/media-channel-connection-end-point-spec/media-channel/occupied-spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_MediaChannelConnectionEndPointSpec_MediaChannel_OccupiedSpectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name struct {
	Value	*string	`path:"value" module:"tapi-connectivity"`
	ValueName	*string	`path:"value-name" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-assembly-connection-end-point-spec YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec struct {
	OtsiAdapter	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter	`path:"otsi-adapter" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-assembly-connection-end-point-spec/otsi-adapter YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter struct {
	FecParameters	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter_FecParameters	`path:"fec-parameters" module:"tapi-photonic-media"`
	NumberOfOtsi	*uint64	`path:"number-of-otsi" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter_FecParameters represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-assembly-connection-end-point-spec/otsi-adapter/fec-parameters YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter_FecParameters struct {
	CorrectedBits	*uint64	`path:"corrected-bits" module:"tapi-photonic-media"`
	CorrectedBytes	*uint64	`path:"corrected-bytes" module:"tapi-photonic-media"`
	PostFecBer	*uint64	`path:"post-fec-ber" module:"tapi-photonic-media"`
	PreFecBer	*uint64	`path:"pre-fec-ber" module:"tapi-photonic-media"`
	UncorrectableBits	*uint64	`path:"uncorrectable-bits" module:"tapi-photonic-media"`
	UncorrectableBytes	*uint64	`path:"uncorrectable-bytes" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter_FecParameters implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter_FecParameters) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter_FecParameters) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter_FecParameters"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiAssemblyConnectionEndPointSpec_OtsiAdapter_FecParameters) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec struct {
	OtsiTermination	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination	`path:"otsi-termination" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination struct {
	LaserProperties	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_LaserProperties	`path:"laser-properties" module:"tapi-photonic-media"`
	ReceivedPower	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_ReceivedPower	`path:"received-power" module:"tapi-photonic-media"`
	SelectedApplicationIdentifier	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedApplicationIdentifier	`path:"selected-application-identifier" module:"tapi-photonic-media"`
	SelectedCentralFrequency	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency	`path:"selected-central-frequency" module:"tapi-photonic-media"`
	SelectedModulation	E_TapiPhotonicMedia_ModulationTechnique	`path:"selected-modulation" module:"tapi-photonic-media"`
	SelectedSpectrum	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum	`path:"selected-spectrum" module:"tapi-photonic-media"`
	TransmitedPower	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_TransmitedPower	`path:"transmited-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_LaserProperties represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/laser-properties YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_LaserProperties struct {
	LaserApplicationType	E_TapiPhotonicMedia_LaserType	`path:"laser-application-type" module:"tapi-photonic-media"`
	LaserBiasCurrent	*float64	`path:"laser-bias-current" module:"tapi-photonic-media"`
	LaserStatus	E_TapiPhotonicMedia_LaserControlStatusType	`path:"laser-status" module:"tapi-photonic-media"`
	LaserTemperature	*float64	`path:"laser-temperature" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_LaserProperties implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_LaserProperties) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_LaserProperties) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_LaserProperties"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_LaserProperties) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_ReceivedPower represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/received-power YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_ReceivedPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_ReceivedPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_ReceivedPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_ReceivedPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_ReceivedPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_ReceivedPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedApplicationIdentifier represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-application-identifier YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedApplicationIdentifier struct {
	ApplicationCode	*string	`path:"application-code" module:"tapi-photonic-media"`
	ApplicationIdentifierType	E_TapiPhotonicMedia_ApplicationIdentifierType	`path:"application-identifier-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedApplicationIdentifier implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedApplicationIdentifier) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedApplicationIdentifier) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedApplicationIdentifier"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedApplicationIdentifier) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-central-frequency YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency struct {
	CentralFrequency	*uint64	`path:"central-frequency" module:"tapi-photonic-media"`
	FrequencyConstraint	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency_FrequencyConstraint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-central-frequency/frequency-constraint YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedCentralFrequency_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-spectrum YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum struct {
	FrequencyConstraint	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum_FrequencyConstraint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_SelectedSpectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_TransmitedPower represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/transmited-power YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_TransmitedPower struct {
	PowerSpectralDensity	*float64	`path:"power-spectral-density" module:"tapi-photonic-media"`
	TotalPower	*float64	`path:"total-power" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_TransmitedPower implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_TransmitedPower) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_TransmitedPower) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_TransmitedPower"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_OtsiConnectionEndPointSpec_OtsiTermination_TransmitedPower) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/parent-node-edge-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint struct {
	NodeEdgePointUuid	*string	`path:"node-edge-point-uuid" module:"tapi-connectivity"`
	NodeUuid	*string	`path:"node-uuid" module:"tapi-connectivity"`
	TopologyUuid	*string	`path:"topology-uuid" module:"tapi-connectivity"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_CepList_ConnectionEndPoint_ParentNodeEdgePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/mapped-service-interface-point YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint struct {
	ServiceInterfacePointUuid	*string	`path:"service-interface-point-uuid" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ServiceInterfacePointUuid == nil {
		return nil, fmt.Errorf("nil value for key ServiceInterfacePointUuid")
	}

	return map[string]interface{}{
		"service-interface-point-uuid": *t.ServiceInterfacePointUuid,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MappedServiceInterfacePoint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec struct {
	McPool	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool	`path:"mc-pool" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool struct {
	AvailableSpectrum	map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum	`path:"available-spectrum" module:"tapi-photonic-media"`
	OccupiedSpectrum	map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum	`path:"occupied-spectrum" module:"tapi-photonic-media"`
	SupportableSpectrum	map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum	`path:"supportable-spectrum" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool) IsYANGGoStruct() {}

// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_Key represents the key for list AvailableSpectrum of element /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_Key struct {
	UpperFrequency	uint64	`path:"upper-frequency"`
	LowerFrequency	uint64	`path:"lower-frequency"`
}

// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_Key represents the key for list OccupiedSpectrum of element /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_Key struct {
	UpperFrequency	uint64	`path:"upper-frequency"`
	LowerFrequency	uint64	`path:"lower-frequency"`
}

// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_Key represents the key for list SupportableSpectrum of element /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_Key struct {
	UpperFrequency	uint64	`path:"upper-frequency"`
	LowerFrequency	uint64	`path:"lower-frequency"`
}

// NewAvailableSpectrum creates a new entry in the AvailableSpectrum list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool) NewAvailableSpectrum(UpperFrequency uint64, LowerFrequency uint64) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.AvailableSpectrum == nil {
		t.AvailableSpectrum = make(map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_Key{
		UpperFrequency: UpperFrequency,
		LowerFrequency: LowerFrequency,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.AvailableSpectrum[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list AvailableSpectrum", key)
	}

	t.AvailableSpectrum[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum{
		UpperFrequency: &UpperFrequency,
		LowerFrequency: &LowerFrequency,
	}

	return t.AvailableSpectrum[key], nil
}

// NewOccupiedSpectrum creates a new entry in the OccupiedSpectrum list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool) NewOccupiedSpectrum(UpperFrequency uint64, LowerFrequency uint64) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.OccupiedSpectrum == nil {
		t.OccupiedSpectrum = make(map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_Key{
		UpperFrequency: UpperFrequency,
		LowerFrequency: LowerFrequency,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.OccupiedSpectrum[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list OccupiedSpectrum", key)
	}

	t.OccupiedSpectrum[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum{
		UpperFrequency: &UpperFrequency,
		LowerFrequency: &LowerFrequency,
	}

	return t.OccupiedSpectrum[key], nil
}

// NewSupportableSpectrum creates a new entry in the SupportableSpectrum list of the
// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool struct. The keys of the list are populated from the input
// arguments.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool) NewSupportableSpectrum(UpperFrequency uint64, LowerFrequency uint64) (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum, error){

	// Initialise the list within the receiver struct if it has not already been
	// created.
	if t.SupportableSpectrum == nil {
		t.SupportableSpectrum = make(map[TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_Key]*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum)
	}

	key := TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_Key{
		UpperFrequency: UpperFrequency,
		LowerFrequency: LowerFrequency,
	}

	// Ensure that this key has not already been used in the
	// list. Keyed YANG lists do not allow duplicate keys to
	// be created.
	if _, ok := t.SupportableSpectrum[key]; ok {
		return nil, fmt.Errorf("duplicate key %v for list SupportableSpectrum", key)
	}

	t.SupportableSpectrum[key] = &TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum{
		UpperFrequency: &UpperFrequency,
		LowerFrequency: &LowerFrequency,
	}

	return t.SupportableSpectrum[key], nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/available-spectrum YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum struct {
	FrequencyConstraint	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LowerFrequency == nil {
		return nil, fmt.Errorf("nil value for key LowerFrequency")
	}

	if t.UpperFrequency == nil {
		return nil, fmt.Errorf("nil value for key UpperFrequency")
	}

	return map[string]interface{}{
		"lower-frequency": *t.LowerFrequency,
		"upper-frequency": *t.UpperFrequency,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_FrequencyConstraint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/available-spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_AvailableSpectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/occupied-spectrum YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum struct {
	FrequencyConstraint	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LowerFrequency == nil {
		return nil, fmt.Errorf("nil value for key LowerFrequency")
	}

	if t.UpperFrequency == nil {
		return nil, fmt.Errorf("nil value for key UpperFrequency")
	}

	return map[string]interface{}{
		"lower-frequency": *t.LowerFrequency,
		"upper-frequency": *t.UpperFrequency,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/occupied-spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_OccupiedSpectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/supportable-spectrum YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum struct {
	FrequencyConstraint	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_FrequencyConstraint	`path:"frequency-constraint" module:"tapi-photonic-media"`
	LowerFrequency	*uint64	`path:"lower-frequency" module:"tapi-photonic-media"`
	UpperFrequency	*uint64	`path:"upper-frequency" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum) ΛListKeyMap() (map[string]interface{}, error) {
	if t.LowerFrequency == nil {
		return nil, fmt.Errorf("nil value for key LowerFrequency")
	}

	if t.UpperFrequency == nil {
		return nil, fmt.Errorf("nil value for key UpperFrequency")
	}

	return map[string]interface{}{
		"lower-frequency": *t.LowerFrequency,
		"upper-frequency": *t.UpperFrequency,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_FrequencyConstraint represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/supportable-spectrum/frequency-constraint YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_FrequencyConstraint struct {
	AdjustmentGranularity	E_TapiPhotonicMedia_AdjustmentGranularity	`path:"adjustment-granularity" module:"tapi-photonic-media"`
	GridType	E_TapiPhotonicMedia_GridType	`path:"grid-type" module:"tapi-photonic-media"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_FrequencyConstraint implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_FrequencyConstraint) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_FrequencyConstraint) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_FrequencyConstraint"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_MediaChannelNodeEdgePointSpec_McPool_SupportableSpectrum_FrequencyConstraint) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/name YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name struct {
	Value	*string	`path:"value" module:"tapi-topology"`
	ValueName	*string	`path:"value-name" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name) IsYANGGoStruct() {}

// ΛListKeyMap returns the keys of the TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name struct, which is a YANG list entry.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name) ΛListKeyMap() (map[string]interface{}, error) {
	if t.ValueName == nil {
		return nil, fmt.Errorf("nil value for key ValueName")
	}

	return map[string]interface{}{
		"value-name": *t.ValueName,
	}, nil
}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_Name) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/owned-node-edge-point/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_OwnedNodeEdgePoint_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity represents the /tapi-common/context/topology-context/topology/node/total-potential-capacity YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity struct {
	TotalSize	*TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize	`path:"total-size" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize represents the /tapi-common/context/topology-context/topology/node/total-potential-capacity/total-size YANG schema element.
type TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize struct {
	Unit	E_TapiCommon_CapacityUnit	`path:"unit" module:"tapi-topology"`
	Value	*uint64	`path:"value" module:"tapi-topology"`
}

// IsYANGGoStruct ensures that TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize implements the yang.GoStruct
// interface. This allows functions that need to handle this struct to
// identify it as being generated by ygen.
func (*TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize) IsYANGGoStruct() {}

// Validate validates s against the YANG schema corresponding to its type.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize) Validate(opts ...ygot.ValidationOption) error {
	if err := ytypes.Validate(SchemaTree["TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize"], t, opts...); err != nil {
		return err
	}
	return nil
}

// ΛEnumTypeMap returns a map, keyed by YANG schema path, of the enumerated types
// that are included in the generated code.
func (t *TapiCommon_Context_TopologyContext_Topology_Node_TotalPotentialCapacity_TotalSize) ΛEnumTypeMap() map[string][]reflect.Type { return ΛEnumTypes }


// E_TapiCommon_AdministrativeState is a derived int64 type which is used to represent
// the enumerated node TapiCommon_AdministrativeState. An additional value named
// TapiCommon_AdministrativeState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_AdministrativeState int64

// IsYANGGoEnum ensures that TapiCommon_AdministrativeState implements the yang.GoEnum
// interface. This ensures that TapiCommon_AdministrativeState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_AdministrativeState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_AdministrativeState.
func (E_TapiCommon_AdministrativeState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_AdministrativeState.
func (e E_TapiCommon_AdministrativeState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_AdministrativeState")
}

const (
	// TapiCommon_AdministrativeState_UNSET corresponds to the value UNSET of TapiCommon_AdministrativeState
	TapiCommon_AdministrativeState_UNSET E_TapiCommon_AdministrativeState = 0
	// TapiCommon_AdministrativeState_LOCKED corresponds to the value LOCKED of TapiCommon_AdministrativeState
	TapiCommon_AdministrativeState_LOCKED E_TapiCommon_AdministrativeState = 1
	// TapiCommon_AdministrativeState_UNLOCKED corresponds to the value UNLOCKED of TapiCommon_AdministrativeState
	TapiCommon_AdministrativeState_UNLOCKED E_TapiCommon_AdministrativeState = 2
)


// E_TapiCommon_CapacityUnit is a derived int64 type which is used to represent
// the enumerated node TapiCommon_CapacityUnit. An additional value named
// TapiCommon_CapacityUnit_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_CapacityUnit int64

// IsYANGGoEnum ensures that TapiCommon_CapacityUnit implements the yang.GoEnum
// interface. This ensures that TapiCommon_CapacityUnit can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_CapacityUnit) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_CapacityUnit.
func (E_TapiCommon_CapacityUnit) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_CapacityUnit.
func (e E_TapiCommon_CapacityUnit) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_CapacityUnit")
}

const (
	// TapiCommon_CapacityUnit_UNSET corresponds to the value UNSET of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_UNSET E_TapiCommon_CapacityUnit = 0
	// TapiCommon_CapacityUnit_TB corresponds to the value TB of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_TB E_TapiCommon_CapacityUnit = 1
	// TapiCommon_CapacityUnit_TBPS corresponds to the value TBPS of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_TBPS E_TapiCommon_CapacityUnit = 2
	// TapiCommon_CapacityUnit_GB corresponds to the value GB of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_GB E_TapiCommon_CapacityUnit = 3
	// TapiCommon_CapacityUnit_GBPS corresponds to the value GBPS of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_GBPS E_TapiCommon_CapacityUnit = 4
	// TapiCommon_CapacityUnit_MB corresponds to the value MB of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_MB E_TapiCommon_CapacityUnit = 5
	// TapiCommon_CapacityUnit_MBPS corresponds to the value MBPS of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_MBPS E_TapiCommon_CapacityUnit = 6
	// TapiCommon_CapacityUnit_KB corresponds to the value KB of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_KB E_TapiCommon_CapacityUnit = 7
	// TapiCommon_CapacityUnit_KBPS corresponds to the value KBPS of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_KBPS E_TapiCommon_CapacityUnit = 8
	// TapiCommon_CapacityUnit_GHz corresponds to the value GHz of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_GHz E_TapiCommon_CapacityUnit = 9
	// TapiCommon_CapacityUnit_MHz corresponds to the value MHz of TapiCommon_CapacityUnit
	TapiCommon_CapacityUnit_MHz E_TapiCommon_CapacityUnit = 10
)


// E_TapiCommon_LayerProtocolName is a derived int64 type which is used to represent
// the enumerated node TapiCommon_LayerProtocolName. An additional value named
// TapiCommon_LayerProtocolName_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_LayerProtocolName int64

// IsYANGGoEnum ensures that TapiCommon_LayerProtocolName implements the yang.GoEnum
// interface. This ensures that TapiCommon_LayerProtocolName can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_LayerProtocolName) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_LayerProtocolName.
func (E_TapiCommon_LayerProtocolName) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_LayerProtocolName.
func (e E_TapiCommon_LayerProtocolName) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_LayerProtocolName")
}

const (
	// TapiCommon_LayerProtocolName_UNSET corresponds to the value UNSET of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_UNSET E_TapiCommon_LayerProtocolName = 0
	// TapiCommon_LayerProtocolName_ODU corresponds to the value ODU of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_ODU E_TapiCommon_LayerProtocolName = 1
	// TapiCommon_LayerProtocolName_ETH corresponds to the value ETH of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_ETH E_TapiCommon_LayerProtocolName = 2
	// TapiCommon_LayerProtocolName_DSR corresponds to the value DSR of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_DSR E_TapiCommon_LayerProtocolName = 3
	// TapiCommon_LayerProtocolName_PHOTONIC_MEDIA corresponds to the value PHOTONIC_MEDIA of TapiCommon_LayerProtocolName
	TapiCommon_LayerProtocolName_PHOTONIC_MEDIA E_TapiCommon_LayerProtocolName = 4
)


// E_TapiCommon_LayerProtocolQualifier is a derived int64 type which is used to represent
// the enumerated node TapiCommon_LayerProtocolQualifier. An additional value named
// TapiCommon_LayerProtocolQualifier_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_LayerProtocolQualifier int64

// IsYANGGoEnum ensures that TapiCommon_LayerProtocolQualifier implements the yang.GoEnum
// interface. This ensures that TapiCommon_LayerProtocolQualifier can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_LayerProtocolQualifier) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_LayerProtocolQualifier.
func (E_TapiCommon_LayerProtocolQualifier) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_LayerProtocolQualifier.
func (e E_TapiCommon_LayerProtocolQualifier) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_LayerProtocolQualifier")
}

const (
	// TapiCommon_LayerProtocolQualifier_UNSET corresponds to the value UNSET of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_UNSET E_TapiCommon_LayerProtocolQualifier = 0
	// TapiCommon_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED corresponds to the value LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED E_TapiCommon_LayerProtocolQualifier = 1
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER corresponds to the value PHOTONIC_LAYER_QUALIFIER of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER E_TapiCommon_LayerProtocolQualifier = 2
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MC corresponds to the value PHOTONIC_LAYER_QUALIFIER_MC of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MC E_TapiCommon_LayerProtocolQualifier = 3
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MCA corresponds to the value PHOTONIC_LAYER_QUALIFIER_MCA of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MCA E_TapiCommon_LayerProtocolQualifier = 4
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OCH corresponds to the value PHOTONIC_LAYER_QUALIFIER_OCH of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OCH E_TapiCommon_LayerProtocolQualifier = 5
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMS corresponds to the value PHOTONIC_LAYER_QUALIFIER_OMS of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMS E_TapiCommon_LayerProtocolQualifier = 6
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMSA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OMSA of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMSA E_TapiCommon_LayerProtocolQualifier = 7
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTS corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTS of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTS E_TapiCommon_LayerProtocolQualifier = 8
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSA of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSA E_TapiCommon_LayerProtocolQualifier = 9
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSi corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSi of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSi E_TapiCommon_LayerProtocolQualifier = 10
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiA of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiA E_TapiCommon_LayerProtocolQualifier = 11
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMC corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiMC of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMC E_TapiCommon_LayerProtocolQualifier = 12
	// TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMCA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiMCA of TapiCommon_LayerProtocolQualifier
	TapiCommon_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMCA E_TapiCommon_LayerProtocolQualifier = 13
)


// E_TapiCommon_LifecycleState is a derived int64 type which is used to represent
// the enumerated node TapiCommon_LifecycleState. An additional value named
// TapiCommon_LifecycleState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_LifecycleState int64

// IsYANGGoEnum ensures that TapiCommon_LifecycleState implements the yang.GoEnum
// interface. This ensures that TapiCommon_LifecycleState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_LifecycleState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_LifecycleState.
func (E_TapiCommon_LifecycleState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_LifecycleState.
func (e E_TapiCommon_LifecycleState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_LifecycleState")
}

const (
	// TapiCommon_LifecycleState_UNSET corresponds to the value UNSET of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_UNSET E_TapiCommon_LifecycleState = 0
	// TapiCommon_LifecycleState_PLANNED corresponds to the value PLANNED of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_PLANNED E_TapiCommon_LifecycleState = 1
	// TapiCommon_LifecycleState_POTENTIAL_AVAILABLE corresponds to the value POTENTIAL_AVAILABLE of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_POTENTIAL_AVAILABLE E_TapiCommon_LifecycleState = 2
	// TapiCommon_LifecycleState_POTENTIAL_BUSY corresponds to the value POTENTIAL_BUSY of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_POTENTIAL_BUSY E_TapiCommon_LifecycleState = 3
	// TapiCommon_LifecycleState_INSTALLED corresponds to the value INSTALLED of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_INSTALLED E_TapiCommon_LifecycleState = 4
	// TapiCommon_LifecycleState_PENDING_REMOVAL corresponds to the value PENDING_REMOVAL of TapiCommon_LifecycleState
	TapiCommon_LifecycleState_PENDING_REMOVAL E_TapiCommon_LifecycleState = 5
)


// E_TapiCommon_OperationalState is a derived int64 type which is used to represent
// the enumerated node TapiCommon_OperationalState. An additional value named
// TapiCommon_OperationalState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_OperationalState int64

// IsYANGGoEnum ensures that TapiCommon_OperationalState implements the yang.GoEnum
// interface. This ensures that TapiCommon_OperationalState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_OperationalState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_OperationalState.
func (E_TapiCommon_OperationalState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_OperationalState.
func (e E_TapiCommon_OperationalState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_OperationalState")
}

const (
	// TapiCommon_OperationalState_UNSET corresponds to the value UNSET of TapiCommon_OperationalState
	TapiCommon_OperationalState_UNSET E_TapiCommon_OperationalState = 0
	// TapiCommon_OperationalState_DISABLED corresponds to the value DISABLED of TapiCommon_OperationalState
	TapiCommon_OperationalState_DISABLED E_TapiCommon_OperationalState = 1
	// TapiCommon_OperationalState_ENABLED corresponds to the value ENABLED of TapiCommon_OperationalState
	TapiCommon_OperationalState_ENABLED E_TapiCommon_OperationalState = 2
)


// E_TapiCommon_PortDirection is a derived int64 type which is used to represent
// the enumerated node TapiCommon_PortDirection. An additional value named
// TapiCommon_PortDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_PortDirection int64

// IsYANGGoEnum ensures that TapiCommon_PortDirection implements the yang.GoEnum
// interface. This ensures that TapiCommon_PortDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_PortDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_PortDirection.
func (E_TapiCommon_PortDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_PortDirection.
func (e E_TapiCommon_PortDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_PortDirection")
}

const (
	// TapiCommon_PortDirection_UNSET corresponds to the value UNSET of TapiCommon_PortDirection
	TapiCommon_PortDirection_UNSET E_TapiCommon_PortDirection = 0
	// TapiCommon_PortDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiCommon_PortDirection
	TapiCommon_PortDirection_BIDIRECTIONAL E_TapiCommon_PortDirection = 1
	// TapiCommon_PortDirection_INPUT corresponds to the value INPUT of TapiCommon_PortDirection
	TapiCommon_PortDirection_INPUT E_TapiCommon_PortDirection = 2
	// TapiCommon_PortDirection_OUTPUT corresponds to the value OUTPUT of TapiCommon_PortDirection
	TapiCommon_PortDirection_OUTPUT E_TapiCommon_PortDirection = 3
	// TapiCommon_PortDirection_UNIDENTIFIED_OR_UNKNOWN corresponds to the value UNIDENTIFIED_OR_UNKNOWN of TapiCommon_PortDirection
	TapiCommon_PortDirection_UNIDENTIFIED_OR_UNKNOWN E_TapiCommon_PortDirection = 4
)


// E_TapiCommon_TerminationDirection is a derived int64 type which is used to represent
// the enumerated node TapiCommon_TerminationDirection. An additional value named
// TapiCommon_TerminationDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_TerminationDirection int64

// IsYANGGoEnum ensures that TapiCommon_TerminationDirection implements the yang.GoEnum
// interface. This ensures that TapiCommon_TerminationDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_TerminationDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_TerminationDirection.
func (E_TapiCommon_TerminationDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_TerminationDirection.
func (e E_TapiCommon_TerminationDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_TerminationDirection")
}

const (
	// TapiCommon_TerminationDirection_UNSET corresponds to the value UNSET of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_UNSET E_TapiCommon_TerminationDirection = 0
	// TapiCommon_TerminationDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_BIDIRECTIONAL E_TapiCommon_TerminationDirection = 1
	// TapiCommon_TerminationDirection_SINK corresponds to the value SINK of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_SINK E_TapiCommon_TerminationDirection = 2
	// TapiCommon_TerminationDirection_SOURCE corresponds to the value SOURCE of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_SOURCE E_TapiCommon_TerminationDirection = 3
	// TapiCommon_TerminationDirection_UNDEFINED_OR_UNKNOWN corresponds to the value UNDEFINED_OR_UNKNOWN of TapiCommon_TerminationDirection
	TapiCommon_TerminationDirection_UNDEFINED_OR_UNKNOWN E_TapiCommon_TerminationDirection = 4
)


// E_TapiCommon_TerminationState is a derived int64 type which is used to represent
// the enumerated node TapiCommon_TerminationState. An additional value named
// TapiCommon_TerminationState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiCommon_TerminationState int64

// IsYANGGoEnum ensures that TapiCommon_TerminationState implements the yang.GoEnum
// interface. This ensures that TapiCommon_TerminationState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiCommon_TerminationState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiCommon_TerminationState.
func (E_TapiCommon_TerminationState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiCommon_TerminationState.
func (e E_TapiCommon_TerminationState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiCommon_TerminationState")
}

const (
	// TapiCommon_TerminationState_UNSET corresponds to the value UNSET of TapiCommon_TerminationState
	TapiCommon_TerminationState_UNSET E_TapiCommon_TerminationState = 0
	// TapiCommon_TerminationState_LP_CAN_NEVER_TERMINATE corresponds to the value LP_CAN_NEVER_TERMINATE of TapiCommon_TerminationState
	TapiCommon_TerminationState_LP_CAN_NEVER_TERMINATE E_TapiCommon_TerminationState = 1
	// TapiCommon_TerminationState_LT_NOT_TERMINATED corresponds to the value LT_NOT_TERMINATED of TapiCommon_TerminationState
	TapiCommon_TerminationState_LT_NOT_TERMINATED E_TapiCommon_TerminationState = 2
	// TapiCommon_TerminationState_TERMINATED_SERVER_TO_CLIENT_FLOW corresponds to the value TERMINATED_SERVER_TO_CLIENT_FLOW of TapiCommon_TerminationState
	TapiCommon_TerminationState_TERMINATED_SERVER_TO_CLIENT_FLOW E_TapiCommon_TerminationState = 3
	// TapiCommon_TerminationState_TERMINATED_CLIENT_TO_SERVER_FLOW corresponds to the value TERMINATED_CLIENT_TO_SERVER_FLOW of TapiCommon_TerminationState
	TapiCommon_TerminationState_TERMINATED_CLIENT_TO_SERVER_FLOW E_TapiCommon_TerminationState = 4
	// TapiCommon_TerminationState_TERMINATED_BIDIRECTIONAL corresponds to the value TERMINATED_BIDIRECTIONAL of TapiCommon_TerminationState
	TapiCommon_TerminationState_TERMINATED_BIDIRECTIONAL E_TapiCommon_TerminationState = 5
	// TapiCommon_TerminationState_LT_PERMENANTLY_TERMINATED corresponds to the value LT_PERMENANTLY_TERMINATED of TapiCommon_TerminationState
	TapiCommon_TerminationState_LT_PERMENANTLY_TERMINATED E_TapiCommon_TerminationState = 6
	// TapiCommon_TerminationState_TERMINATION_STATE_UNKNOWN corresponds to the value TERMINATION_STATE_UNKNOWN of TapiCommon_TerminationState
	TapiCommon_TerminationState_TERMINATION_STATE_UNKNOWN E_TapiCommon_TerminationState = 7
)


// E_TapiConnectivity_CoordinateType is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_CoordinateType. An additional value named
// TapiConnectivity_CoordinateType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_CoordinateType int64

// IsYANGGoEnum ensures that TapiConnectivity_CoordinateType implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_CoordinateType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_CoordinateType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_CoordinateType.
func (E_TapiConnectivity_CoordinateType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_CoordinateType.
func (e E_TapiConnectivity_CoordinateType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_CoordinateType")
}

const (
	// TapiConnectivity_CoordinateType_UNSET corresponds to the value UNSET of TapiConnectivity_CoordinateType
	TapiConnectivity_CoordinateType_UNSET E_TapiConnectivity_CoordinateType = 0
	// TapiConnectivity_CoordinateType_NO_COORDINATE corresponds to the value NO_COORDINATE of TapiConnectivity_CoordinateType
	TapiConnectivity_CoordinateType_NO_COORDINATE E_TapiConnectivity_CoordinateType = 1
	// TapiConnectivity_CoordinateType_HOLD_OFF_TIME corresponds to the value HOLD_OFF_TIME of TapiConnectivity_CoordinateType
	TapiConnectivity_CoordinateType_HOLD_OFF_TIME E_TapiConnectivity_CoordinateType = 2
	// TapiConnectivity_CoordinateType_WAIT_FOR_NOTIFICATION corresponds to the value WAIT_FOR_NOTIFICATION of TapiConnectivity_CoordinateType
	TapiConnectivity_CoordinateType_WAIT_FOR_NOTIFICATION E_TapiConnectivity_CoordinateType = 3
)


// E_TapiConnectivity_FaultConditionDetermination is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_FaultConditionDetermination. An additional value named
// TapiConnectivity_FaultConditionDetermination_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_FaultConditionDetermination int64

// IsYANGGoEnum ensures that TapiConnectivity_FaultConditionDetermination implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_FaultConditionDetermination can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_FaultConditionDetermination) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_FaultConditionDetermination.
func (E_TapiConnectivity_FaultConditionDetermination) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_FaultConditionDetermination.
func (e E_TapiConnectivity_FaultConditionDetermination) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_FaultConditionDetermination")
}

const (
	// TapiConnectivity_FaultConditionDetermination_UNSET corresponds to the value UNSET of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_UNSET E_TapiConnectivity_FaultConditionDetermination = 0
	// TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_INHERENT corresponds to the value FAULT_CONDITION_DETERMINATION_INHERENT of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_INHERENT E_TapiConnectivity_FaultConditionDetermination = 1
	// TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_NON_INTRUSIVE corresponds to the value FAULT_CONDITION_DETERMINATION_NON_INTRUSIVE of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_NON_INTRUSIVE E_TapiConnectivity_FaultConditionDetermination = 2
	// TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_SUBLAYER corresponds to the value FAULT_CONDITION_DETERMINATION_SUBLAYER of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_SUBLAYER E_TapiConnectivity_FaultConditionDetermination = 3
	// TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_TEST corresponds to the value FAULT_CONDITION_DETERMINATION_TEST of TapiConnectivity_FaultConditionDetermination
	TapiConnectivity_FaultConditionDetermination_FAULT_CONDITION_DETERMINATION_TEST E_TapiConnectivity_FaultConditionDetermination = 4
)


// E_TapiConnectivity_ForwardingDirection is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_ForwardingDirection. An additional value named
// TapiConnectivity_ForwardingDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_ForwardingDirection int64

// IsYANGGoEnum ensures that TapiConnectivity_ForwardingDirection implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_ForwardingDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_ForwardingDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_ForwardingDirection.
func (E_TapiConnectivity_ForwardingDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_ForwardingDirection.
func (e E_TapiConnectivity_ForwardingDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_ForwardingDirection")
}

const (
	// TapiConnectivity_ForwardingDirection_UNSET corresponds to the value UNSET of TapiConnectivity_ForwardingDirection
	TapiConnectivity_ForwardingDirection_UNSET E_TapiConnectivity_ForwardingDirection = 0
	// TapiConnectivity_ForwardingDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiConnectivity_ForwardingDirection
	TapiConnectivity_ForwardingDirection_BIDIRECTIONAL E_TapiConnectivity_ForwardingDirection = 1
	// TapiConnectivity_ForwardingDirection_UNIDIRECTIONAL corresponds to the value UNIDIRECTIONAL of TapiConnectivity_ForwardingDirection
	TapiConnectivity_ForwardingDirection_UNIDIRECTIONAL E_TapiConnectivity_ForwardingDirection = 2
	// TapiConnectivity_ForwardingDirection_UNDEFINED_OR_UNKNOWN corresponds to the value UNDEFINED_OR_UNKNOWN of TapiConnectivity_ForwardingDirection
	TapiConnectivity_ForwardingDirection_UNDEFINED_OR_UNKNOWN E_TapiConnectivity_ForwardingDirection = 3
)


// E_TapiConnectivity_LayerProtocolName is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_LayerProtocolName. An additional value named
// TapiConnectivity_LayerProtocolName_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_LayerProtocolName int64

// IsYANGGoEnum ensures that TapiConnectivity_LayerProtocolName implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_LayerProtocolName can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_LayerProtocolName) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_LayerProtocolName.
func (E_TapiConnectivity_LayerProtocolName) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_LayerProtocolName.
func (e E_TapiConnectivity_LayerProtocolName) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_LayerProtocolName")
}

const (
	// TapiConnectivity_LayerProtocolName_UNSET corresponds to the value UNSET of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_UNSET E_TapiConnectivity_LayerProtocolName = 0
	// TapiConnectivity_LayerProtocolName_ODU corresponds to the value ODU of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_ODU E_TapiConnectivity_LayerProtocolName = 1
	// TapiConnectivity_LayerProtocolName_ETH corresponds to the value ETH of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_ETH E_TapiConnectivity_LayerProtocolName = 2
	// TapiConnectivity_LayerProtocolName_DSR corresponds to the value DSR of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_DSR E_TapiConnectivity_LayerProtocolName = 3
	// TapiConnectivity_LayerProtocolName_PHOTONIC_MEDIA corresponds to the value PHOTONIC_MEDIA of TapiConnectivity_LayerProtocolName
	TapiConnectivity_LayerProtocolName_PHOTONIC_MEDIA E_TapiConnectivity_LayerProtocolName = 4
)


// E_TapiConnectivity_LayerProtocolQualifier is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_LayerProtocolQualifier. An additional value named
// TapiConnectivity_LayerProtocolQualifier_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_LayerProtocolQualifier int64

// IsYANGGoEnum ensures that TapiConnectivity_LayerProtocolQualifier implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_LayerProtocolQualifier can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_LayerProtocolQualifier) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_LayerProtocolQualifier.
func (E_TapiConnectivity_LayerProtocolQualifier) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_LayerProtocolQualifier.
func (e E_TapiConnectivity_LayerProtocolQualifier) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_LayerProtocolQualifier")
}

const (
	// TapiConnectivity_LayerProtocolQualifier_UNSET corresponds to the value UNSET of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_UNSET E_TapiConnectivity_LayerProtocolQualifier = 0
	// TapiConnectivity_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED corresponds to the value LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED E_TapiConnectivity_LayerProtocolQualifier = 1
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER corresponds to the value PHOTONIC_LAYER_QUALIFIER of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER E_TapiConnectivity_LayerProtocolQualifier = 2
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MC corresponds to the value PHOTONIC_LAYER_QUALIFIER_MC of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MC E_TapiConnectivity_LayerProtocolQualifier = 3
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MCA corresponds to the value PHOTONIC_LAYER_QUALIFIER_MCA of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MCA E_TapiConnectivity_LayerProtocolQualifier = 4
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OCH corresponds to the value PHOTONIC_LAYER_QUALIFIER_OCH of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OCH E_TapiConnectivity_LayerProtocolQualifier = 5
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMS corresponds to the value PHOTONIC_LAYER_QUALIFIER_OMS of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMS E_TapiConnectivity_LayerProtocolQualifier = 6
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMSA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OMSA of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMSA E_TapiConnectivity_LayerProtocolQualifier = 7
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTS corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTS of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTS E_TapiConnectivity_LayerProtocolQualifier = 8
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSA of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSA E_TapiConnectivity_LayerProtocolQualifier = 9
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSi corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSi of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSi E_TapiConnectivity_LayerProtocolQualifier = 10
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiA of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiA E_TapiConnectivity_LayerProtocolQualifier = 11
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMC corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiMC of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMC E_TapiConnectivity_LayerProtocolQualifier = 12
	// TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMCA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiMCA of TapiConnectivity_LayerProtocolQualifier
	TapiConnectivity_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMCA E_TapiConnectivity_LayerProtocolQualifier = 13
)


// E_TapiConnectivity_PortDirection is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_PortDirection. An additional value named
// TapiConnectivity_PortDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_PortDirection int64

// IsYANGGoEnum ensures that TapiConnectivity_PortDirection implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_PortDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_PortDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_PortDirection.
func (E_TapiConnectivity_PortDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_PortDirection.
func (e E_TapiConnectivity_PortDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_PortDirection")
}

const (
	// TapiConnectivity_PortDirection_UNSET corresponds to the value UNSET of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_UNSET E_TapiConnectivity_PortDirection = 0
	// TapiConnectivity_PortDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_BIDIRECTIONAL E_TapiConnectivity_PortDirection = 1
	// TapiConnectivity_PortDirection_INPUT corresponds to the value INPUT of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_INPUT E_TapiConnectivity_PortDirection = 2
	// TapiConnectivity_PortDirection_OUTPUT corresponds to the value OUTPUT of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_OUTPUT E_TapiConnectivity_PortDirection = 3
	// TapiConnectivity_PortDirection_UNIDENTIFIED_OR_UNKNOWN corresponds to the value UNIDENTIFIED_OR_UNKNOWN of TapiConnectivity_PortDirection
	TapiConnectivity_PortDirection_UNIDENTIFIED_OR_UNKNOWN E_TapiConnectivity_PortDirection = 4
)


// E_TapiConnectivity_PortRole is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_PortRole. An additional value named
// TapiConnectivity_PortRole_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_PortRole int64

// IsYANGGoEnum ensures that TapiConnectivity_PortRole implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_PortRole can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_PortRole) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_PortRole.
func (E_TapiConnectivity_PortRole) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_PortRole.
func (e E_TapiConnectivity_PortRole) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_PortRole")
}

const (
	// TapiConnectivity_PortRole_UNSET corresponds to the value UNSET of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_UNSET E_TapiConnectivity_PortRole = 0
	// TapiConnectivity_PortRole_SYMMETRIC corresponds to the value SYMMETRIC of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_SYMMETRIC E_TapiConnectivity_PortRole = 1
	// TapiConnectivity_PortRole_ROOT corresponds to the value ROOT of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_ROOT E_TapiConnectivity_PortRole = 2
	// TapiConnectivity_PortRole_LEAF corresponds to the value LEAF of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_LEAF E_TapiConnectivity_PortRole = 3
	// TapiConnectivity_PortRole_TRUNK corresponds to the value TRUNK of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_TRUNK E_TapiConnectivity_PortRole = 4
	// TapiConnectivity_PortRole_UNKNOWN corresponds to the value UNKNOWN of TapiConnectivity_PortRole
	TapiConnectivity_PortRole_UNKNOWN E_TapiConnectivity_PortRole = 5
)


// E_TapiConnectivity_ProtectionRole is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_ProtectionRole. An additional value named
// TapiConnectivity_ProtectionRole_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_ProtectionRole int64

// IsYANGGoEnum ensures that TapiConnectivity_ProtectionRole implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_ProtectionRole can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_ProtectionRole) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_ProtectionRole.
func (E_TapiConnectivity_ProtectionRole) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_ProtectionRole.
func (e E_TapiConnectivity_ProtectionRole) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_ProtectionRole")
}

const (
	// TapiConnectivity_ProtectionRole_UNSET corresponds to the value UNSET of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_UNSET E_TapiConnectivity_ProtectionRole = 0
	// TapiConnectivity_ProtectionRole_WORK corresponds to the value WORK of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_WORK E_TapiConnectivity_ProtectionRole = 1
	// TapiConnectivity_ProtectionRole_PROTECT corresponds to the value PROTECT of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_PROTECT E_TapiConnectivity_ProtectionRole = 2
	// TapiConnectivity_ProtectionRole_PROTECTED corresponds to the value PROTECTED of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_PROTECTED E_TapiConnectivity_ProtectionRole = 3
	// TapiConnectivity_ProtectionRole_NA corresponds to the value NA of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_NA E_TapiConnectivity_ProtectionRole = 4
	// TapiConnectivity_ProtectionRole_WORK_RESTORE corresponds to the value WORK_RESTORE of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_WORK_RESTORE E_TapiConnectivity_ProtectionRole = 5
	// TapiConnectivity_ProtectionRole_PROTECT_RESTORE corresponds to the value PROTECT_RESTORE of TapiConnectivity_ProtectionRole
	TapiConnectivity_ProtectionRole_PROTECT_RESTORE E_TapiConnectivity_ProtectionRole = 6
)


// E_TapiConnectivity_ReversionMode is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_ReversionMode. An additional value named
// TapiConnectivity_ReversionMode_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_ReversionMode int64

// IsYANGGoEnum ensures that TapiConnectivity_ReversionMode implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_ReversionMode can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_ReversionMode) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_ReversionMode.
func (E_TapiConnectivity_ReversionMode) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_ReversionMode.
func (e E_TapiConnectivity_ReversionMode) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_ReversionMode")
}

const (
	// TapiConnectivity_ReversionMode_UNSET corresponds to the value UNSET of TapiConnectivity_ReversionMode
	TapiConnectivity_ReversionMode_UNSET E_TapiConnectivity_ReversionMode = 0
	// TapiConnectivity_ReversionMode_REVERTIVE corresponds to the value REVERTIVE of TapiConnectivity_ReversionMode
	TapiConnectivity_ReversionMode_REVERTIVE E_TapiConnectivity_ReversionMode = 1
	// TapiConnectivity_ReversionMode_NON_REVERTIVE corresponds to the value NON_REVERTIVE of TapiConnectivity_ReversionMode
	TapiConnectivity_ReversionMode_NON_REVERTIVE E_TapiConnectivity_ReversionMode = 2
)


// E_TapiConnectivity_RouteState is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_RouteState. An additional value named
// TapiConnectivity_RouteState_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_RouteState int64

// IsYANGGoEnum ensures that TapiConnectivity_RouteState implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_RouteState can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_RouteState) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_RouteState.
func (E_TapiConnectivity_RouteState) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_RouteState.
func (e E_TapiConnectivity_RouteState) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_RouteState")
}

const (
	// TapiConnectivity_RouteState_UNSET corresponds to the value UNSET of TapiConnectivity_RouteState
	TapiConnectivity_RouteState_UNSET E_TapiConnectivity_RouteState = 0
	// TapiConnectivity_RouteState_ROUTE_STATE_CURRENT corresponds to the value ROUTE_STATE_CURRENT of TapiConnectivity_RouteState
	TapiConnectivity_RouteState_ROUTE_STATE_CURRENT E_TapiConnectivity_RouteState = 1
	// TapiConnectivity_RouteState_ROUTE_STATE_NOT_CURRENT corresponds to the value ROUTE_STATE_NOT_CURRENT of TapiConnectivity_RouteState
	TapiConnectivity_RouteState_ROUTE_STATE_NOT_CURRENT E_TapiConnectivity_RouteState = 2
	// TapiConnectivity_RouteState_ROUTE_STATE_UNKNOWN corresponds to the value ROUTE_STATE_UNKNOWN of TapiConnectivity_RouteState
	TapiConnectivity_RouteState_ROUTE_STATE_UNKNOWN E_TapiConnectivity_RouteState = 3
)


// E_TapiConnectivity_SelectionControl is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_SelectionControl. An additional value named
// TapiConnectivity_SelectionControl_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_SelectionControl int64

// IsYANGGoEnum ensures that TapiConnectivity_SelectionControl implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_SelectionControl can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_SelectionControl) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_SelectionControl.
func (E_TapiConnectivity_SelectionControl) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_SelectionControl.
func (e E_TapiConnectivity_SelectionControl) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_SelectionControl")
}

const (
	// TapiConnectivity_SelectionControl_UNSET corresponds to the value UNSET of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_UNSET E_TapiConnectivity_SelectionControl = 0
	// TapiConnectivity_SelectionControl_LOCK_OUT corresponds to the value LOCK_OUT of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_LOCK_OUT E_TapiConnectivity_SelectionControl = 1
	// TapiConnectivity_SelectionControl_NORMAL corresponds to the value NORMAL of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_NORMAL E_TapiConnectivity_SelectionControl = 2
	// TapiConnectivity_SelectionControl_MANUAL corresponds to the value MANUAL of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_MANUAL E_TapiConnectivity_SelectionControl = 3
	// TapiConnectivity_SelectionControl_FORCED corresponds to the value FORCED of TapiConnectivity_SelectionControl
	TapiConnectivity_SelectionControl_FORCED E_TapiConnectivity_SelectionControl = 4
)


// E_TapiConnectivity_SelectionReason is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_SelectionReason. An additional value named
// TapiConnectivity_SelectionReason_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_SelectionReason int64

// IsYANGGoEnum ensures that TapiConnectivity_SelectionReason implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_SelectionReason can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_SelectionReason) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_SelectionReason.
func (E_TapiConnectivity_SelectionReason) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_SelectionReason.
func (e E_TapiConnectivity_SelectionReason) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_SelectionReason")
}

const (
	// TapiConnectivity_SelectionReason_UNSET corresponds to the value UNSET of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_UNSET E_TapiConnectivity_SelectionReason = 0
	// TapiConnectivity_SelectionReason_LOCKOUT corresponds to the value LOCKOUT of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_LOCKOUT E_TapiConnectivity_SelectionReason = 1
	// TapiConnectivity_SelectionReason_NORMAL corresponds to the value NORMAL of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_NORMAL E_TapiConnectivity_SelectionReason = 2
	// TapiConnectivity_SelectionReason_MANUAL corresponds to the value MANUAL of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_MANUAL E_TapiConnectivity_SelectionReason = 3
	// TapiConnectivity_SelectionReason_FORCED corresponds to the value FORCED of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_FORCED E_TapiConnectivity_SelectionReason = 4
	// TapiConnectivity_SelectionReason_WAIT_TO_REVERT corresponds to the value WAIT_TO_REVERT of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_WAIT_TO_REVERT E_TapiConnectivity_SelectionReason = 5
	// TapiConnectivity_SelectionReason_SIGNAL_DEGRADE corresponds to the value SIGNAL_DEGRADE of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_SIGNAL_DEGRADE E_TapiConnectivity_SelectionReason = 6
	// TapiConnectivity_SelectionReason_SIGNAL_FAIL corresponds to the value SIGNAL_FAIL of TapiConnectivity_SelectionReason
	TapiConnectivity_SelectionReason_SIGNAL_FAIL E_TapiConnectivity_SelectionReason = 7
)


// E_TapiConnectivity_ServiceType is a derived int64 type which is used to represent
// the enumerated node TapiConnectivity_ServiceType. An additional value named
// TapiConnectivity_ServiceType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiConnectivity_ServiceType int64

// IsYANGGoEnum ensures that TapiConnectivity_ServiceType implements the yang.GoEnum
// interface. This ensures that TapiConnectivity_ServiceType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiConnectivity_ServiceType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiConnectivity_ServiceType.
func (E_TapiConnectivity_ServiceType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiConnectivity_ServiceType.
func (e E_TapiConnectivity_ServiceType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiConnectivity_ServiceType")
}

const (
	// TapiConnectivity_ServiceType_UNSET corresponds to the value UNSET of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_UNSET E_TapiConnectivity_ServiceType = 0
	// TapiConnectivity_ServiceType_POINT_TO_POINT_CONNECTIVITY corresponds to the value POINT_TO_POINT_CONNECTIVITY of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_POINT_TO_POINT_CONNECTIVITY E_TapiConnectivity_ServiceType = 1
	// TapiConnectivity_ServiceType_POINT_TO_MULTIPOINT_CONNECTIVITY corresponds to the value POINT_TO_MULTIPOINT_CONNECTIVITY of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_POINT_TO_MULTIPOINT_CONNECTIVITY E_TapiConnectivity_ServiceType = 2
	// TapiConnectivity_ServiceType_MULTIPOINT_CONNECTIVITY corresponds to the value MULTIPOINT_CONNECTIVITY of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_MULTIPOINT_CONNECTIVITY E_TapiConnectivity_ServiceType = 3
	// TapiConnectivity_ServiceType_ROOTED_MULTIPOINT_CONNECTIVITY corresponds to the value ROOTED_MULTIPOINT_CONNECTIVITY of TapiConnectivity_ServiceType
	TapiConnectivity_ServiceType_ROOTED_MULTIPOINT_CONNECTIVITY E_TapiConnectivity_ServiceType = 4
)


// E_TapiPathComputation_DirectiveValue is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_DirectiveValue. An additional value named
// TapiPathComputation_DirectiveValue_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_DirectiveValue int64

// IsYANGGoEnum ensures that TapiPathComputation_DirectiveValue implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_DirectiveValue can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_DirectiveValue) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_DirectiveValue.
func (E_TapiPathComputation_DirectiveValue) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_DirectiveValue.
func (e E_TapiPathComputation_DirectiveValue) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_DirectiveValue")
}

const (
	// TapiPathComputation_DirectiveValue_UNSET corresponds to the value UNSET of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_UNSET E_TapiPathComputation_DirectiveValue = 0
	// TapiPathComputation_DirectiveValue_MINIMIZE corresponds to the value MINIMIZE of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_MINIMIZE E_TapiPathComputation_DirectiveValue = 1
	// TapiPathComputation_DirectiveValue_MAXIMIZE corresponds to the value MAXIMIZE of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_MAXIMIZE E_TapiPathComputation_DirectiveValue = 2
	// TapiPathComputation_DirectiveValue_ALLOW corresponds to the value ALLOW of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_ALLOW E_TapiPathComputation_DirectiveValue = 3
	// TapiPathComputation_DirectiveValue_DISALLOW corresponds to the value DISALLOW of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_DISALLOW E_TapiPathComputation_DirectiveValue = 4
	// TapiPathComputation_DirectiveValue_DONT_CARE corresponds to the value DONT_CARE of TapiPathComputation_DirectiveValue
	TapiPathComputation_DirectiveValue_DONT_CARE E_TapiPathComputation_DirectiveValue = 5
)


// E_TapiPathComputation_DiversityPolicy is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_DiversityPolicy. An additional value named
// TapiPathComputation_DiversityPolicy_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_DiversityPolicy int64

// IsYANGGoEnum ensures that TapiPathComputation_DiversityPolicy implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_DiversityPolicy can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_DiversityPolicy) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_DiversityPolicy.
func (E_TapiPathComputation_DiversityPolicy) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_DiversityPolicy.
func (e E_TapiPathComputation_DiversityPolicy) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_DiversityPolicy")
}

const (
	// TapiPathComputation_DiversityPolicy_UNSET corresponds to the value UNSET of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_UNSET E_TapiPathComputation_DiversityPolicy = 0
	// TapiPathComputation_DiversityPolicy_SRLG corresponds to the value SRLG of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_SRLG E_TapiPathComputation_DiversityPolicy = 1
	// TapiPathComputation_DiversityPolicy_SRNG corresponds to the value SRNG of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_SRNG E_TapiPathComputation_DiversityPolicy = 2
	// TapiPathComputation_DiversityPolicy_SNG corresponds to the value SNG of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_SNG E_TapiPathComputation_DiversityPolicy = 3
	// TapiPathComputation_DiversityPolicy_NODE corresponds to the value NODE of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_NODE E_TapiPathComputation_DiversityPolicy = 4
	// TapiPathComputation_DiversityPolicy_LINK corresponds to the value LINK of TapiPathComputation_DiversityPolicy
	TapiPathComputation_DiversityPolicy_LINK E_TapiPathComputation_DiversityPolicy = 5
)


// E_TapiPathComputation_ForwardingDirection is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_ForwardingDirection. An additional value named
// TapiPathComputation_ForwardingDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_ForwardingDirection int64

// IsYANGGoEnum ensures that TapiPathComputation_ForwardingDirection implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_ForwardingDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_ForwardingDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_ForwardingDirection.
func (E_TapiPathComputation_ForwardingDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_ForwardingDirection.
func (e E_TapiPathComputation_ForwardingDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_ForwardingDirection")
}

const (
	// TapiPathComputation_ForwardingDirection_UNSET corresponds to the value UNSET of TapiPathComputation_ForwardingDirection
	TapiPathComputation_ForwardingDirection_UNSET E_TapiPathComputation_ForwardingDirection = 0
	// TapiPathComputation_ForwardingDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiPathComputation_ForwardingDirection
	TapiPathComputation_ForwardingDirection_BIDIRECTIONAL E_TapiPathComputation_ForwardingDirection = 1
	// TapiPathComputation_ForwardingDirection_UNIDIRECTIONAL corresponds to the value UNIDIRECTIONAL of TapiPathComputation_ForwardingDirection
	TapiPathComputation_ForwardingDirection_UNIDIRECTIONAL E_TapiPathComputation_ForwardingDirection = 2
	// TapiPathComputation_ForwardingDirection_UNDEFINED_OR_UNKNOWN corresponds to the value UNDEFINED_OR_UNKNOWN of TapiPathComputation_ForwardingDirection
	TapiPathComputation_ForwardingDirection_UNDEFINED_OR_UNKNOWN E_TapiPathComputation_ForwardingDirection = 3
)


// E_TapiPathComputation_GradesOfImpact is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_GradesOfImpact. An additional value named
// TapiPathComputation_GradesOfImpact_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_GradesOfImpact int64

// IsYANGGoEnum ensures that TapiPathComputation_GradesOfImpact implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_GradesOfImpact can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_GradesOfImpact) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_GradesOfImpact.
func (E_TapiPathComputation_GradesOfImpact) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_GradesOfImpact.
func (e E_TapiPathComputation_GradesOfImpact) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_GradesOfImpact")
}

const (
	// TapiPathComputation_GradesOfImpact_UNSET corresponds to the value UNSET of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_UNSET E_TapiPathComputation_GradesOfImpact = 0
	// TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_HITLESS corresponds to the value GRADES_OF_IMPACT_HITLESS of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_HITLESS E_TapiPathComputation_GradesOfImpact = 1
	// TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_LONG_IMPACT corresponds to the value GRADES_OF_IMPACT_LONG_IMPACT of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_LONG_IMPACT E_TapiPathComputation_GradesOfImpact = 2
	// TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_MAJOR_IMPACT corresponds to the value GRADES_OF_IMPACT_MAJOR_IMPACT of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_MAJOR_IMPACT E_TapiPathComputation_GradesOfImpact = 3
	// TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_MINOR_IMPACT corresponds to the value GRADES_OF_IMPACT_MINOR_IMPACT of TapiPathComputation_GradesOfImpact
	TapiPathComputation_GradesOfImpact_GRADES_OF_IMPACT_MINOR_IMPACT E_TapiPathComputation_GradesOfImpact = 4
)


// E_TapiPathComputation_LayerProtocolName is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_LayerProtocolName. An additional value named
// TapiPathComputation_LayerProtocolName_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_LayerProtocolName int64

// IsYANGGoEnum ensures that TapiPathComputation_LayerProtocolName implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_LayerProtocolName can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_LayerProtocolName) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_LayerProtocolName.
func (E_TapiPathComputation_LayerProtocolName) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_LayerProtocolName.
func (e E_TapiPathComputation_LayerProtocolName) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_LayerProtocolName")
}

const (
	// TapiPathComputation_LayerProtocolName_UNSET corresponds to the value UNSET of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_UNSET E_TapiPathComputation_LayerProtocolName = 0
	// TapiPathComputation_LayerProtocolName_ODU corresponds to the value ODU of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_ODU E_TapiPathComputation_LayerProtocolName = 1
	// TapiPathComputation_LayerProtocolName_ETH corresponds to the value ETH of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_ETH E_TapiPathComputation_LayerProtocolName = 2
	// TapiPathComputation_LayerProtocolName_DSR corresponds to the value DSR of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_DSR E_TapiPathComputation_LayerProtocolName = 3
	// TapiPathComputation_LayerProtocolName_PHOTONIC_MEDIA corresponds to the value PHOTONIC_MEDIA of TapiPathComputation_LayerProtocolName
	TapiPathComputation_LayerProtocolName_PHOTONIC_MEDIA E_TapiPathComputation_LayerProtocolName = 4
)


// E_TapiPathComputation_LayerProtocolQualifier is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_LayerProtocolQualifier. An additional value named
// TapiPathComputation_LayerProtocolQualifier_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_LayerProtocolQualifier int64

// IsYANGGoEnum ensures that TapiPathComputation_LayerProtocolQualifier implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_LayerProtocolQualifier can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_LayerProtocolQualifier) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_LayerProtocolQualifier.
func (E_TapiPathComputation_LayerProtocolQualifier) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_LayerProtocolQualifier.
func (e E_TapiPathComputation_LayerProtocolQualifier) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_LayerProtocolQualifier")
}

const (
	// TapiPathComputation_LayerProtocolQualifier_UNSET corresponds to the value UNSET of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_UNSET E_TapiPathComputation_LayerProtocolQualifier = 0
	// TapiPathComputation_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED corresponds to the value LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED E_TapiPathComputation_LayerProtocolQualifier = 1
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER corresponds to the value PHOTONIC_LAYER_QUALIFIER of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER E_TapiPathComputation_LayerProtocolQualifier = 2
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MC corresponds to the value PHOTONIC_LAYER_QUALIFIER_MC of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MC E_TapiPathComputation_LayerProtocolQualifier = 3
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MCA corresponds to the value PHOTONIC_LAYER_QUALIFIER_MCA of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MCA E_TapiPathComputation_LayerProtocolQualifier = 4
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OCH corresponds to the value PHOTONIC_LAYER_QUALIFIER_OCH of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OCH E_TapiPathComputation_LayerProtocolQualifier = 5
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMS corresponds to the value PHOTONIC_LAYER_QUALIFIER_OMS of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMS E_TapiPathComputation_LayerProtocolQualifier = 6
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMSA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OMSA of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMSA E_TapiPathComputation_LayerProtocolQualifier = 7
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTS corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTS of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTS E_TapiPathComputation_LayerProtocolQualifier = 8
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSA of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSA E_TapiPathComputation_LayerProtocolQualifier = 9
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSi corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSi of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSi E_TapiPathComputation_LayerProtocolQualifier = 10
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiA of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiA E_TapiPathComputation_LayerProtocolQualifier = 11
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMC corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiMC of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMC E_TapiPathComputation_LayerProtocolQualifier = 12
	// TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMCA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiMCA of TapiPathComputation_LayerProtocolQualifier
	TapiPathComputation_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMCA E_TapiPathComputation_LayerProtocolQualifier = 13
)


// E_TapiPathComputation_PortDirection is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_PortDirection. An additional value named
// TapiPathComputation_PortDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_PortDirection int64

// IsYANGGoEnum ensures that TapiPathComputation_PortDirection implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_PortDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_PortDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_PortDirection.
func (E_TapiPathComputation_PortDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_PortDirection.
func (e E_TapiPathComputation_PortDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_PortDirection")
}

const (
	// TapiPathComputation_PortDirection_UNSET corresponds to the value UNSET of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_UNSET E_TapiPathComputation_PortDirection = 0
	// TapiPathComputation_PortDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_BIDIRECTIONAL E_TapiPathComputation_PortDirection = 1
	// TapiPathComputation_PortDirection_INPUT corresponds to the value INPUT of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_INPUT E_TapiPathComputation_PortDirection = 2
	// TapiPathComputation_PortDirection_OUTPUT corresponds to the value OUTPUT of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_OUTPUT E_TapiPathComputation_PortDirection = 3
	// TapiPathComputation_PortDirection_UNIDENTIFIED_OR_UNKNOWN corresponds to the value UNIDENTIFIED_OR_UNKNOWN of TapiPathComputation_PortDirection
	TapiPathComputation_PortDirection_UNIDENTIFIED_OR_UNKNOWN E_TapiPathComputation_PortDirection = 4
)


// E_TapiPathComputation_PortRole is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_PortRole. An additional value named
// TapiPathComputation_PortRole_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_PortRole int64

// IsYANGGoEnum ensures that TapiPathComputation_PortRole implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_PortRole can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_PortRole) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_PortRole.
func (E_TapiPathComputation_PortRole) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_PortRole.
func (e E_TapiPathComputation_PortRole) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_PortRole")
}

const (
	// TapiPathComputation_PortRole_UNSET corresponds to the value UNSET of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_UNSET E_TapiPathComputation_PortRole = 0
	// TapiPathComputation_PortRole_SYMMETRIC corresponds to the value SYMMETRIC of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_SYMMETRIC E_TapiPathComputation_PortRole = 1
	// TapiPathComputation_PortRole_ROOT corresponds to the value ROOT of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_ROOT E_TapiPathComputation_PortRole = 2
	// TapiPathComputation_PortRole_LEAF corresponds to the value LEAF of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_LEAF E_TapiPathComputation_PortRole = 3
	// TapiPathComputation_PortRole_TRUNK corresponds to the value TRUNK of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_TRUNK E_TapiPathComputation_PortRole = 4
	// TapiPathComputation_PortRole_UNKNOWN corresponds to the value UNKNOWN of TapiPathComputation_PortRole
	TapiPathComputation_PortRole_UNKNOWN E_TapiPathComputation_PortRole = 5
)


// E_TapiPathComputation_RouteObjectiveFunction is a derived int64 type which is used to represent
// the enumerated node TapiPathComputation_RouteObjectiveFunction. An additional value named
// TapiPathComputation_RouteObjectiveFunction_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPathComputation_RouteObjectiveFunction int64

// IsYANGGoEnum ensures that TapiPathComputation_RouteObjectiveFunction implements the yang.GoEnum
// interface. This ensures that TapiPathComputation_RouteObjectiveFunction can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPathComputation_RouteObjectiveFunction) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPathComputation_RouteObjectiveFunction.
func (E_TapiPathComputation_RouteObjectiveFunction) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPathComputation_RouteObjectiveFunction.
func (e E_TapiPathComputation_RouteObjectiveFunction) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPathComputation_RouteObjectiveFunction")
}

const (
	// TapiPathComputation_RouteObjectiveFunction_UNSET corresponds to the value UNSET of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_UNSET E_TapiPathComputation_RouteObjectiveFunction = 0
	// TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_HOP corresponds to the value MIN_WORK_ROUTE_HOP of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_HOP E_TapiPathComputation_RouteObjectiveFunction = 1
	// TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_COST corresponds to the value MIN_WORK_ROUTE_COST of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_COST E_TapiPathComputation_RouteObjectiveFunction = 2
	// TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_LATENCY corresponds to the value MIN_WORK_ROUTE_LATENCY of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_WORK_ROUTE_LATENCY E_TapiPathComputation_RouteObjectiveFunction = 3
	// TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP corresponds to the value MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP E_TapiPathComputation_RouteObjectiveFunction = 4
	// TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST corresponds to the value MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST E_TapiPathComputation_RouteObjectiveFunction = 5
	// TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY corresponds to the value MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY E_TapiPathComputation_RouteObjectiveFunction = 6
	// TapiPathComputation_RouteObjectiveFunction_LOAD_BALANCE_MAX_UNUSED_CAPACITY corresponds to the value LOAD_BALANCE_MAX_UNUSED_CAPACITY of TapiPathComputation_RouteObjectiveFunction
	TapiPathComputation_RouteObjectiveFunction_LOAD_BALANCE_MAX_UNUSED_CAPACITY E_TapiPathComputation_RouteObjectiveFunction = 7
)


// E_TapiPhotonicMedia_AdjustmentGranularity is a derived int64 type which is used to represent
// the enumerated node TapiPhotonicMedia_AdjustmentGranularity. An additional value named
// TapiPhotonicMedia_AdjustmentGranularity_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPhotonicMedia_AdjustmentGranularity int64

// IsYANGGoEnum ensures that TapiPhotonicMedia_AdjustmentGranularity implements the yang.GoEnum
// interface. This ensures that TapiPhotonicMedia_AdjustmentGranularity can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPhotonicMedia_AdjustmentGranularity) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPhotonicMedia_AdjustmentGranularity.
func (E_TapiPhotonicMedia_AdjustmentGranularity) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPhotonicMedia_AdjustmentGranularity.
func (e E_TapiPhotonicMedia_AdjustmentGranularity) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPhotonicMedia_AdjustmentGranularity")
}

const (
	// TapiPhotonicMedia_AdjustmentGranularity_UNSET corresponds to the value UNSET of TapiPhotonicMedia_AdjustmentGranularity
	TapiPhotonicMedia_AdjustmentGranularity_UNSET E_TapiPhotonicMedia_AdjustmentGranularity = 0
	// TapiPhotonicMedia_AdjustmentGranularity_G_100GHZ corresponds to the value G_100GHZ of TapiPhotonicMedia_AdjustmentGranularity
	TapiPhotonicMedia_AdjustmentGranularity_G_100GHZ E_TapiPhotonicMedia_AdjustmentGranularity = 1
	// TapiPhotonicMedia_AdjustmentGranularity_G_50GHZ corresponds to the value G_50GHZ of TapiPhotonicMedia_AdjustmentGranularity
	TapiPhotonicMedia_AdjustmentGranularity_G_50GHZ E_TapiPhotonicMedia_AdjustmentGranularity = 2
	// TapiPhotonicMedia_AdjustmentGranularity_G_25GHZ corresponds to the value G_25GHZ of TapiPhotonicMedia_AdjustmentGranularity
	TapiPhotonicMedia_AdjustmentGranularity_G_25GHZ E_TapiPhotonicMedia_AdjustmentGranularity = 3
	// TapiPhotonicMedia_AdjustmentGranularity_G_12_5GHZ corresponds to the value G_12_5GHZ of TapiPhotonicMedia_AdjustmentGranularity
	TapiPhotonicMedia_AdjustmentGranularity_G_12_5GHZ E_TapiPhotonicMedia_AdjustmentGranularity = 4
	// TapiPhotonicMedia_AdjustmentGranularity_G_6_25GHZ corresponds to the value G_6_25GHZ of TapiPhotonicMedia_AdjustmentGranularity
	TapiPhotonicMedia_AdjustmentGranularity_G_6_25GHZ E_TapiPhotonicMedia_AdjustmentGranularity = 5
	// TapiPhotonicMedia_AdjustmentGranularity_G_3_125GHZ corresponds to the value G_3_125GHZ of TapiPhotonicMedia_AdjustmentGranularity
	TapiPhotonicMedia_AdjustmentGranularity_G_3_125GHZ E_TapiPhotonicMedia_AdjustmentGranularity = 6
	// TapiPhotonicMedia_AdjustmentGranularity_UNCONSTRAINED corresponds to the value UNCONSTRAINED of TapiPhotonicMedia_AdjustmentGranularity
	TapiPhotonicMedia_AdjustmentGranularity_UNCONSTRAINED E_TapiPhotonicMedia_AdjustmentGranularity = 7
)


// E_TapiPhotonicMedia_ApplicationIdentifierType is a derived int64 type which is used to represent
// the enumerated node TapiPhotonicMedia_ApplicationIdentifierType. An additional value named
// TapiPhotonicMedia_ApplicationIdentifierType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPhotonicMedia_ApplicationIdentifierType int64

// IsYANGGoEnum ensures that TapiPhotonicMedia_ApplicationIdentifierType implements the yang.GoEnum
// interface. This ensures that TapiPhotonicMedia_ApplicationIdentifierType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPhotonicMedia_ApplicationIdentifierType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPhotonicMedia_ApplicationIdentifierType.
func (E_TapiPhotonicMedia_ApplicationIdentifierType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPhotonicMedia_ApplicationIdentifierType.
func (e E_TapiPhotonicMedia_ApplicationIdentifierType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPhotonicMedia_ApplicationIdentifierType")
}

const (
	// TapiPhotonicMedia_ApplicationIdentifierType_UNSET corresponds to the value UNSET of TapiPhotonicMedia_ApplicationIdentifierType
	TapiPhotonicMedia_ApplicationIdentifierType_UNSET E_TapiPhotonicMedia_ApplicationIdentifierType = 0
	// TapiPhotonicMedia_ApplicationIdentifierType_PROPRIETARY corresponds to the value PROPRIETARY of TapiPhotonicMedia_ApplicationIdentifierType
	TapiPhotonicMedia_ApplicationIdentifierType_PROPRIETARY E_TapiPhotonicMedia_ApplicationIdentifierType = 1
	// TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G959_1 corresponds to the value ITUT_G959_1 of TapiPhotonicMedia_ApplicationIdentifierType
	TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G959_1 E_TapiPhotonicMedia_ApplicationIdentifierType = 2
	// TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G698_1 corresponds to the value ITUT_G698_1 of TapiPhotonicMedia_ApplicationIdentifierType
	TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G698_1 E_TapiPhotonicMedia_ApplicationIdentifierType = 3
	// TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G698_2 corresponds to the value ITUT_G698_2 of TapiPhotonicMedia_ApplicationIdentifierType
	TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G698_2 E_TapiPhotonicMedia_ApplicationIdentifierType = 4
	// TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G696_1 corresponds to the value ITUT_G696_1 of TapiPhotonicMedia_ApplicationIdentifierType
	TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G696_1 E_TapiPhotonicMedia_ApplicationIdentifierType = 5
	// TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G695 corresponds to the value ITUT_G695 of TapiPhotonicMedia_ApplicationIdentifierType
	TapiPhotonicMedia_ApplicationIdentifierType_ITUT_G695 E_TapiPhotonicMedia_ApplicationIdentifierType = 6
)


// E_TapiPhotonicMedia_GridType is a derived int64 type which is used to represent
// the enumerated node TapiPhotonicMedia_GridType. An additional value named
// TapiPhotonicMedia_GridType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPhotonicMedia_GridType int64

// IsYANGGoEnum ensures that TapiPhotonicMedia_GridType implements the yang.GoEnum
// interface. This ensures that TapiPhotonicMedia_GridType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPhotonicMedia_GridType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPhotonicMedia_GridType.
func (E_TapiPhotonicMedia_GridType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPhotonicMedia_GridType.
func (e E_TapiPhotonicMedia_GridType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPhotonicMedia_GridType")
}

const (
	// TapiPhotonicMedia_GridType_UNSET corresponds to the value UNSET of TapiPhotonicMedia_GridType
	TapiPhotonicMedia_GridType_UNSET E_TapiPhotonicMedia_GridType = 0
	// TapiPhotonicMedia_GridType_DWDM corresponds to the value DWDM of TapiPhotonicMedia_GridType
	TapiPhotonicMedia_GridType_DWDM E_TapiPhotonicMedia_GridType = 1
	// TapiPhotonicMedia_GridType_CWDM corresponds to the value CWDM of TapiPhotonicMedia_GridType
	TapiPhotonicMedia_GridType_CWDM E_TapiPhotonicMedia_GridType = 2
	// TapiPhotonicMedia_GridType_FLEX corresponds to the value FLEX of TapiPhotonicMedia_GridType
	TapiPhotonicMedia_GridType_FLEX E_TapiPhotonicMedia_GridType = 3
	// TapiPhotonicMedia_GridType_GRIDLESS corresponds to the value GRIDLESS of TapiPhotonicMedia_GridType
	TapiPhotonicMedia_GridType_GRIDLESS E_TapiPhotonicMedia_GridType = 4
	// TapiPhotonicMedia_GridType_UNSPECIFIED corresponds to the value UNSPECIFIED of TapiPhotonicMedia_GridType
	TapiPhotonicMedia_GridType_UNSPECIFIED E_TapiPhotonicMedia_GridType = 5
)


// E_TapiPhotonicMedia_LaserControlStatusType is a derived int64 type which is used to represent
// the enumerated node TapiPhotonicMedia_LaserControlStatusType. An additional value named
// TapiPhotonicMedia_LaserControlStatusType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPhotonicMedia_LaserControlStatusType int64

// IsYANGGoEnum ensures that TapiPhotonicMedia_LaserControlStatusType implements the yang.GoEnum
// interface. This ensures that TapiPhotonicMedia_LaserControlStatusType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPhotonicMedia_LaserControlStatusType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPhotonicMedia_LaserControlStatusType.
func (E_TapiPhotonicMedia_LaserControlStatusType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPhotonicMedia_LaserControlStatusType.
func (e E_TapiPhotonicMedia_LaserControlStatusType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPhotonicMedia_LaserControlStatusType")
}

const (
	// TapiPhotonicMedia_LaserControlStatusType_UNSET corresponds to the value UNSET of TapiPhotonicMedia_LaserControlStatusType
	TapiPhotonicMedia_LaserControlStatusType_UNSET E_TapiPhotonicMedia_LaserControlStatusType = 0
	// TapiPhotonicMedia_LaserControlStatusType_ON corresponds to the value ON of TapiPhotonicMedia_LaserControlStatusType
	TapiPhotonicMedia_LaserControlStatusType_ON E_TapiPhotonicMedia_LaserControlStatusType = 1
	// TapiPhotonicMedia_LaserControlStatusType_OFF corresponds to the value OFF of TapiPhotonicMedia_LaserControlStatusType
	TapiPhotonicMedia_LaserControlStatusType_OFF E_TapiPhotonicMedia_LaserControlStatusType = 2
	// TapiPhotonicMedia_LaserControlStatusType_PULSING corresponds to the value PULSING of TapiPhotonicMedia_LaserControlStatusType
	TapiPhotonicMedia_LaserControlStatusType_PULSING E_TapiPhotonicMedia_LaserControlStatusType = 3
	// TapiPhotonicMedia_LaserControlStatusType_UNDEFINED corresponds to the value UNDEFINED of TapiPhotonicMedia_LaserControlStatusType
	TapiPhotonicMedia_LaserControlStatusType_UNDEFINED E_TapiPhotonicMedia_LaserControlStatusType = 4
)


// E_TapiPhotonicMedia_LaserControlType is a derived int64 type which is used to represent
// the enumerated node TapiPhotonicMedia_LaserControlType. An additional value named
// TapiPhotonicMedia_LaserControlType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPhotonicMedia_LaserControlType int64

// IsYANGGoEnum ensures that TapiPhotonicMedia_LaserControlType implements the yang.GoEnum
// interface. This ensures that TapiPhotonicMedia_LaserControlType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPhotonicMedia_LaserControlType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPhotonicMedia_LaserControlType.
func (E_TapiPhotonicMedia_LaserControlType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPhotonicMedia_LaserControlType.
func (e E_TapiPhotonicMedia_LaserControlType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPhotonicMedia_LaserControlType")
}

const (
	// TapiPhotonicMedia_LaserControlType_UNSET corresponds to the value UNSET of TapiPhotonicMedia_LaserControlType
	TapiPhotonicMedia_LaserControlType_UNSET E_TapiPhotonicMedia_LaserControlType = 0
	// TapiPhotonicMedia_LaserControlType_FORCED_ON corresponds to the value FORCED_ON of TapiPhotonicMedia_LaserControlType
	TapiPhotonicMedia_LaserControlType_FORCED_ON E_TapiPhotonicMedia_LaserControlType = 1
	// TapiPhotonicMedia_LaserControlType_FORCED_OFF corresponds to the value FORCED_OFF of TapiPhotonicMedia_LaserControlType
	TapiPhotonicMedia_LaserControlType_FORCED_OFF E_TapiPhotonicMedia_LaserControlType = 2
	// TapiPhotonicMedia_LaserControlType_AUTOMATIC_LASER_SHUTDOWN corresponds to the value AUTOMATIC_LASER_SHUTDOWN of TapiPhotonicMedia_LaserControlType
	TapiPhotonicMedia_LaserControlType_AUTOMATIC_LASER_SHUTDOWN E_TapiPhotonicMedia_LaserControlType = 3
	// TapiPhotonicMedia_LaserControlType_UNDEFINED corresponds to the value UNDEFINED of TapiPhotonicMedia_LaserControlType
	TapiPhotonicMedia_LaserControlType_UNDEFINED E_TapiPhotonicMedia_LaserControlType = 4
)


// E_TapiPhotonicMedia_LaserType is a derived int64 type which is used to represent
// the enumerated node TapiPhotonicMedia_LaserType. An additional value named
// TapiPhotonicMedia_LaserType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPhotonicMedia_LaserType int64

// IsYANGGoEnum ensures that TapiPhotonicMedia_LaserType implements the yang.GoEnum
// interface. This ensures that TapiPhotonicMedia_LaserType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPhotonicMedia_LaserType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPhotonicMedia_LaserType.
func (E_TapiPhotonicMedia_LaserType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPhotonicMedia_LaserType.
func (e E_TapiPhotonicMedia_LaserType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPhotonicMedia_LaserType")
}

const (
	// TapiPhotonicMedia_LaserType_UNSET corresponds to the value UNSET of TapiPhotonicMedia_LaserType
	TapiPhotonicMedia_LaserType_UNSET E_TapiPhotonicMedia_LaserType = 0
	// TapiPhotonicMedia_LaserType_PUMP corresponds to the value PUMP of TapiPhotonicMedia_LaserType
	TapiPhotonicMedia_LaserType_PUMP E_TapiPhotonicMedia_LaserType = 1
	// TapiPhotonicMedia_LaserType_MODULATED corresponds to the value MODULATED of TapiPhotonicMedia_LaserType
	TapiPhotonicMedia_LaserType_MODULATED E_TapiPhotonicMedia_LaserType = 2
	// TapiPhotonicMedia_LaserType_PULSE corresponds to the value PULSE of TapiPhotonicMedia_LaserType
	TapiPhotonicMedia_LaserType_PULSE E_TapiPhotonicMedia_LaserType = 3
)


// E_TapiPhotonicMedia_ModulationTechnique is a derived int64 type which is used to represent
// the enumerated node TapiPhotonicMedia_ModulationTechnique. An additional value named
// TapiPhotonicMedia_ModulationTechnique_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiPhotonicMedia_ModulationTechnique int64

// IsYANGGoEnum ensures that TapiPhotonicMedia_ModulationTechnique implements the yang.GoEnum
// interface. This ensures that TapiPhotonicMedia_ModulationTechnique can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiPhotonicMedia_ModulationTechnique) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiPhotonicMedia_ModulationTechnique.
func (E_TapiPhotonicMedia_ModulationTechnique) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiPhotonicMedia_ModulationTechnique.
func (e E_TapiPhotonicMedia_ModulationTechnique) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiPhotonicMedia_ModulationTechnique")
}

const (
	// TapiPhotonicMedia_ModulationTechnique_UNSET corresponds to the value UNSET of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_UNSET E_TapiPhotonicMedia_ModulationTechnique = 0
	// TapiPhotonicMedia_ModulationTechnique_RZ corresponds to the value RZ of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_RZ E_TapiPhotonicMedia_ModulationTechnique = 1
	// TapiPhotonicMedia_ModulationTechnique_NRZ corresponds to the value NRZ of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_NRZ E_TapiPhotonicMedia_ModulationTechnique = 2
	// TapiPhotonicMedia_ModulationTechnique_BPSK corresponds to the value BPSK of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_BPSK E_TapiPhotonicMedia_ModulationTechnique = 3
	// TapiPhotonicMedia_ModulationTechnique_DPSK corresponds to the value DPSK of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_DPSK E_TapiPhotonicMedia_ModulationTechnique = 4
	// TapiPhotonicMedia_ModulationTechnique_QPSK corresponds to the value QPSK of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_QPSK E_TapiPhotonicMedia_ModulationTechnique = 5
	// TapiPhotonicMedia_ModulationTechnique_8QAM corresponds to the value 8QAM of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_8QAM E_TapiPhotonicMedia_ModulationTechnique = 6
	// TapiPhotonicMedia_ModulationTechnique_16QAM corresponds to the value 16QAM of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_16QAM E_TapiPhotonicMedia_ModulationTechnique = 7
	// TapiPhotonicMedia_ModulationTechnique_PAM4 corresponds to the value PAM4 of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_PAM4 E_TapiPhotonicMedia_ModulationTechnique = 8
	// TapiPhotonicMedia_ModulationTechnique_PAM8 corresponds to the value PAM8 of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_PAM8 E_TapiPhotonicMedia_ModulationTechnique = 9
	// TapiPhotonicMedia_ModulationTechnique_UNDEFINED corresponds to the value UNDEFINED of TapiPhotonicMedia_ModulationTechnique
	TapiPhotonicMedia_ModulationTechnique_UNDEFINED E_TapiPhotonicMedia_ModulationTechnique = 10
)


// E_TapiTopology_ForwardingDirection is a derived int64 type which is used to represent
// the enumerated node TapiTopology_ForwardingDirection. An additional value named
// TapiTopology_ForwardingDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_ForwardingDirection int64

// IsYANGGoEnum ensures that TapiTopology_ForwardingDirection implements the yang.GoEnum
// interface. This ensures that TapiTopology_ForwardingDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_ForwardingDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_ForwardingDirection.
func (E_TapiTopology_ForwardingDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_ForwardingDirection.
func (e E_TapiTopology_ForwardingDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_ForwardingDirection")
}

const (
	// TapiTopology_ForwardingDirection_UNSET corresponds to the value UNSET of TapiTopology_ForwardingDirection
	TapiTopology_ForwardingDirection_UNSET E_TapiTopology_ForwardingDirection = 0
	// TapiTopology_ForwardingDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiTopology_ForwardingDirection
	TapiTopology_ForwardingDirection_BIDIRECTIONAL E_TapiTopology_ForwardingDirection = 1
	// TapiTopology_ForwardingDirection_UNIDIRECTIONAL corresponds to the value UNIDIRECTIONAL of TapiTopology_ForwardingDirection
	TapiTopology_ForwardingDirection_UNIDIRECTIONAL E_TapiTopology_ForwardingDirection = 2
	// TapiTopology_ForwardingDirection_UNDEFINED_OR_UNKNOWN corresponds to the value UNDEFINED_OR_UNKNOWN of TapiTopology_ForwardingDirection
	TapiTopology_ForwardingDirection_UNDEFINED_OR_UNKNOWN E_TapiTopology_ForwardingDirection = 3
)


// E_TapiTopology_ForwardingRule is a derived int64 type which is used to represent
// the enumerated node TapiTopology_ForwardingRule. An additional value named
// TapiTopology_ForwardingRule_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_ForwardingRule int64

// IsYANGGoEnum ensures that TapiTopology_ForwardingRule implements the yang.GoEnum
// interface. This ensures that TapiTopology_ForwardingRule can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_ForwardingRule) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_ForwardingRule.
func (E_TapiTopology_ForwardingRule) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_ForwardingRule.
func (e E_TapiTopology_ForwardingRule) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_ForwardingRule")
}

const (
	// TapiTopology_ForwardingRule_UNSET corresponds to the value UNSET of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_UNSET E_TapiTopology_ForwardingRule = 0
	// TapiTopology_ForwardingRule_MAY_FORWARD_ACROSS_GROUP corresponds to the value MAY_FORWARD_ACROSS_GROUP of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_MAY_FORWARD_ACROSS_GROUP E_TapiTopology_ForwardingRule = 1
	// TapiTopology_ForwardingRule_MUST_FORWARD_ACROSS_GROUP corresponds to the value MUST_FORWARD_ACROSS_GROUP of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_MUST_FORWARD_ACROSS_GROUP E_TapiTopology_ForwardingRule = 2
	// TapiTopology_ForwardingRule_CANNOT_FORWARD_ACROSS_GROUP corresponds to the value CANNOT_FORWARD_ACROSS_GROUP of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_CANNOT_FORWARD_ACROSS_GROUP E_TapiTopology_ForwardingRule = 3
	// TapiTopology_ForwardingRule_NO_STATEMENT_ON_FORWARDING corresponds to the value NO_STATEMENT_ON_FORWARDING of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_NO_STATEMENT_ON_FORWARDING E_TapiTopology_ForwardingRule = 4
	// TapiTopology_ForwardingRule_INTER_CONNECTION_CONTENTION corresponds to the value INTER_CONNECTION_CONTENTION of TapiTopology_ForwardingRule
	TapiTopology_ForwardingRule_INTER_CONNECTION_CONTENTION E_TapiTopology_ForwardingRule = 5
)


// E_TapiTopology_LayerProtocolName is a derived int64 type which is used to represent
// the enumerated node TapiTopology_LayerProtocolName. An additional value named
// TapiTopology_LayerProtocolName_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_LayerProtocolName int64

// IsYANGGoEnum ensures that TapiTopology_LayerProtocolName implements the yang.GoEnum
// interface. This ensures that TapiTopology_LayerProtocolName can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_LayerProtocolName) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_LayerProtocolName.
func (E_TapiTopology_LayerProtocolName) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_LayerProtocolName.
func (e E_TapiTopology_LayerProtocolName) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_LayerProtocolName")
}

const (
	// TapiTopology_LayerProtocolName_UNSET corresponds to the value UNSET of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_UNSET E_TapiTopology_LayerProtocolName = 0
	// TapiTopology_LayerProtocolName_ODU corresponds to the value ODU of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_ODU E_TapiTopology_LayerProtocolName = 1
	// TapiTopology_LayerProtocolName_ETH corresponds to the value ETH of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_ETH E_TapiTopology_LayerProtocolName = 2
	// TapiTopology_LayerProtocolName_DSR corresponds to the value DSR of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_DSR E_TapiTopology_LayerProtocolName = 3
	// TapiTopology_LayerProtocolName_PHOTONIC_MEDIA corresponds to the value PHOTONIC_MEDIA of TapiTopology_LayerProtocolName
	TapiTopology_LayerProtocolName_PHOTONIC_MEDIA E_TapiTopology_LayerProtocolName = 4
)


// E_TapiTopology_LayerProtocolQualifier is a derived int64 type which is used to represent
// the enumerated node TapiTopology_LayerProtocolQualifier. An additional value named
// TapiTopology_LayerProtocolQualifier_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_LayerProtocolQualifier int64

// IsYANGGoEnum ensures that TapiTopology_LayerProtocolQualifier implements the yang.GoEnum
// interface. This ensures that TapiTopology_LayerProtocolQualifier can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_LayerProtocolQualifier) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_LayerProtocolQualifier.
func (E_TapiTopology_LayerProtocolQualifier) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_LayerProtocolQualifier.
func (e E_TapiTopology_LayerProtocolQualifier) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_LayerProtocolQualifier")
}

const (
	// TapiTopology_LayerProtocolQualifier_UNSET corresponds to the value UNSET of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_UNSET E_TapiTopology_LayerProtocolQualifier = 0
	// TapiTopology_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED corresponds to the value LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED E_TapiTopology_LayerProtocolQualifier = 1
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER corresponds to the value PHOTONIC_LAYER_QUALIFIER of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER E_TapiTopology_LayerProtocolQualifier = 2
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MC corresponds to the value PHOTONIC_LAYER_QUALIFIER_MC of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MC E_TapiTopology_LayerProtocolQualifier = 3
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MCA corresponds to the value PHOTONIC_LAYER_QUALIFIER_MCA of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_MCA E_TapiTopology_LayerProtocolQualifier = 4
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OCH corresponds to the value PHOTONIC_LAYER_QUALIFIER_OCH of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OCH E_TapiTopology_LayerProtocolQualifier = 5
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMS corresponds to the value PHOTONIC_LAYER_QUALIFIER_OMS of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMS E_TapiTopology_LayerProtocolQualifier = 6
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMSA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OMSA of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OMSA E_TapiTopology_LayerProtocolQualifier = 7
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTS corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTS of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTS E_TapiTopology_LayerProtocolQualifier = 8
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSA of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSA E_TapiTopology_LayerProtocolQualifier = 9
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSi corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSi of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSi E_TapiTopology_LayerProtocolQualifier = 10
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiA of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiA E_TapiTopology_LayerProtocolQualifier = 11
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMC corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiMC of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMC E_TapiTopology_LayerProtocolQualifier = 12
	// TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMCA corresponds to the value PHOTONIC_LAYER_QUALIFIER_OTSiMCA of TapiTopology_LayerProtocolQualifier
	TapiTopology_LayerProtocolQualifier_PHOTONIC_LAYER_QUALIFIER_OTSiMCA E_TapiTopology_LayerProtocolQualifier = 13
)


// E_TapiTopology_PortDirection is a derived int64 type which is used to represent
// the enumerated node TapiTopology_PortDirection. An additional value named
// TapiTopology_PortDirection_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_PortDirection int64

// IsYANGGoEnum ensures that TapiTopology_PortDirection implements the yang.GoEnum
// interface. This ensures that TapiTopology_PortDirection can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_PortDirection) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_PortDirection.
func (E_TapiTopology_PortDirection) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_PortDirection.
func (e E_TapiTopology_PortDirection) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_PortDirection")
}

const (
	// TapiTopology_PortDirection_UNSET corresponds to the value UNSET of TapiTopology_PortDirection
	TapiTopology_PortDirection_UNSET E_TapiTopology_PortDirection = 0
	// TapiTopology_PortDirection_BIDIRECTIONAL corresponds to the value BIDIRECTIONAL of TapiTopology_PortDirection
	TapiTopology_PortDirection_BIDIRECTIONAL E_TapiTopology_PortDirection = 1
	// TapiTopology_PortDirection_INPUT corresponds to the value INPUT of TapiTopology_PortDirection
	TapiTopology_PortDirection_INPUT E_TapiTopology_PortDirection = 2
	// TapiTopology_PortDirection_OUTPUT corresponds to the value OUTPUT of TapiTopology_PortDirection
	TapiTopology_PortDirection_OUTPUT E_TapiTopology_PortDirection = 3
	// TapiTopology_PortDirection_UNIDENTIFIED_OR_UNKNOWN corresponds to the value UNIDENTIFIED_OR_UNKNOWN of TapiTopology_PortDirection
	TapiTopology_PortDirection_UNIDENTIFIED_OR_UNKNOWN E_TapiTopology_PortDirection = 4
)


// E_TapiTopology_PortRole is a derived int64 type which is used to represent
// the enumerated node TapiTopology_PortRole. An additional value named
// TapiTopology_PortRole_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_PortRole int64

// IsYANGGoEnum ensures that TapiTopology_PortRole implements the yang.GoEnum
// interface. This ensures that TapiTopology_PortRole can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_PortRole) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_PortRole.
func (E_TapiTopology_PortRole) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_PortRole.
func (e E_TapiTopology_PortRole) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_PortRole")
}

const (
	// TapiTopology_PortRole_UNSET corresponds to the value UNSET of TapiTopology_PortRole
	TapiTopology_PortRole_UNSET E_TapiTopology_PortRole = 0
	// TapiTopology_PortRole_SYMMETRIC corresponds to the value SYMMETRIC of TapiTopology_PortRole
	TapiTopology_PortRole_SYMMETRIC E_TapiTopology_PortRole = 1
	// TapiTopology_PortRole_ROOT corresponds to the value ROOT of TapiTopology_PortRole
	TapiTopology_PortRole_ROOT E_TapiTopology_PortRole = 2
	// TapiTopology_PortRole_LEAF corresponds to the value LEAF of TapiTopology_PortRole
	TapiTopology_PortRole_LEAF E_TapiTopology_PortRole = 3
	// TapiTopology_PortRole_TRUNK corresponds to the value TRUNK of TapiTopology_PortRole
	TapiTopology_PortRole_TRUNK E_TapiTopology_PortRole = 4
	// TapiTopology_PortRole_UNKNOWN corresponds to the value UNKNOWN of TapiTopology_PortRole
	TapiTopology_PortRole_UNKNOWN E_TapiTopology_PortRole = 5
)


// E_TapiTopology_PortRoleRuleOption is a derived int64 type which is used to represent
// the enumerated node TapiTopology_PortRoleRuleOption. An additional value named
// TapiTopology_PortRoleRuleOption_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_PortRoleRuleOption int64

// IsYANGGoEnum ensures that TapiTopology_PortRoleRuleOption implements the yang.GoEnum
// interface. This ensures that TapiTopology_PortRoleRuleOption can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_PortRoleRuleOption) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_PortRoleRuleOption.
func (E_TapiTopology_PortRoleRuleOption) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_PortRoleRuleOption.
func (e E_TapiTopology_PortRoleRuleOption) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_PortRoleRuleOption")
}

const (
	// TapiTopology_PortRoleRuleOption_UNSET corresponds to the value UNSET of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_UNSET E_TapiTopology_PortRoleRuleOption = 0
	// TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_ANY_ROLE corresponds to the value PORT_ROLE_RULE_OPTION_ANY_ROLE of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_ANY_ROLE E_TapiTopology_PortRoleRuleOption = 1
	// TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE corresponds to the value PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE E_TapiTopology_PortRoleRuleOption = 2
	// TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_NOT_ROLE corresponds to the value PORT_ROLE_RULE_OPTION_NOT_ROLE of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_NOT_ROLE E_TapiTopology_PortRoleRuleOption = 3
	// TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_SAME_ROLE corresponds to the value PORT_ROLE_RULE_OPTION_SAME_ROLE of TapiTopology_PortRoleRuleOption
	TapiTopology_PortRoleRuleOption_PORT_ROLE_RULE_OPTION_SAME_ROLE E_TapiTopology_PortRoleRuleOption = 4
)


// E_TapiTopology_ProtectionType is a derived int64 type which is used to represent
// the enumerated node TapiTopology_ProtectionType. An additional value named
// TapiTopology_ProtectionType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_ProtectionType int64

// IsYANGGoEnum ensures that TapiTopology_ProtectionType implements the yang.GoEnum
// interface. This ensures that TapiTopology_ProtectionType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_ProtectionType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_ProtectionType.
func (E_TapiTopology_ProtectionType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_ProtectionType.
func (e E_TapiTopology_ProtectionType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_ProtectionType")
}

const (
	// TapiTopology_ProtectionType_UNSET corresponds to the value UNSET of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_UNSET E_TapiTopology_ProtectionType = 0
	// TapiTopology_ProtectionType_NO_PROTECTION corresponds to the value NO_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_NO_PROTECTION E_TapiTopology_ProtectionType = 1
	// TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION corresponds to the value ONE_PLUS_ONE_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION E_TapiTopology_ProtectionType = 2
	// TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION corresponds to the value ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION E_TapiTopology_ProtectionType = 3
	// TapiTopology_ProtectionType_PERMANENT_ONE_PLUS_ONE_PROTECTION corresponds to the value PERMANENT_ONE_PLUS_ONE_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_PERMANENT_ONE_PLUS_ONE_PROTECTION E_TapiTopology_ProtectionType = 4
	// TapiTopology_ProtectionType_ONE_FOR_ONE_PROTECTION corresponds to the value ONE_FOR_ONE_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_FOR_ONE_PROTECTION E_TapiTopology_ProtectionType = 5
	// TapiTopology_ProtectionType_DYNAMIC_RESTORATION corresponds to the value DYNAMIC_RESTORATION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_DYNAMIC_RESTORATION E_TapiTopology_ProtectionType = 6
	// TapiTopology_ProtectionType_PRE_COMPUTED_RESTORATION corresponds to the value PRE_COMPUTED_RESTORATION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_PRE_COMPUTED_RESTORATION E_TapiTopology_ProtectionType = 7
	// TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION corresponds to the value ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION E_TapiTopology_ProtectionType = 8
	// TapiTopology_ProtectionType_ONE_FOR_N_PROTECTION corresponds to the value ONE_FOR_N_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_FOR_N_PROTECTION E_TapiTopology_ProtectionType = 9
	// TapiTopology_ProtectionType_M_FOR_N_PROTECTION corresponds to the value M_FOR_N_PROTECTION of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_M_FOR_N_PROTECTION E_TapiTopology_ProtectionType = 10
	// TapiTopology_ProtectionType_ONE_FOR_ONE_BY_N corresponds to the value ONE_FOR_ONE_BY_N of TapiTopology_ProtectionType
	TapiTopology_ProtectionType_ONE_FOR_ONE_BY_N E_TapiTopology_ProtectionType = 11
)


// E_TapiTopology_RestorationPolicy is a derived int64 type which is used to represent
// the enumerated node TapiTopology_RestorationPolicy. An additional value named
// TapiTopology_RestorationPolicy_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_RestorationPolicy int64

// IsYANGGoEnum ensures that TapiTopology_RestorationPolicy implements the yang.GoEnum
// interface. This ensures that TapiTopology_RestorationPolicy can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_RestorationPolicy) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_RestorationPolicy.
func (E_TapiTopology_RestorationPolicy) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_RestorationPolicy.
func (e E_TapiTopology_RestorationPolicy) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_RestorationPolicy")
}

const (
	// TapiTopology_RestorationPolicy_UNSET corresponds to the value UNSET of TapiTopology_RestorationPolicy
	TapiTopology_RestorationPolicy_UNSET E_TapiTopology_RestorationPolicy = 0
	// TapiTopology_RestorationPolicy_PER_DOMAIN_RESTORATION corresponds to the value PER_DOMAIN_RESTORATION of TapiTopology_RestorationPolicy
	TapiTopology_RestorationPolicy_PER_DOMAIN_RESTORATION E_TapiTopology_RestorationPolicy = 1
	// TapiTopology_RestorationPolicy_END_TO_END_RESTORATION corresponds to the value END_TO_END_RESTORATION of TapiTopology_RestorationPolicy
	TapiTopology_RestorationPolicy_END_TO_END_RESTORATION E_TapiTopology_RestorationPolicy = 2
	// TapiTopology_RestorationPolicy_NA corresponds to the value NA of TapiTopology_RestorationPolicy
	TapiTopology_RestorationPolicy_NA E_TapiTopology_RestorationPolicy = 3
)


// E_TapiTopology_RuleType is a derived int64 type which is used to represent
// the enumerated node TapiTopology_RuleType. An additional value named
// TapiTopology_RuleType_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_RuleType int64

// IsYANGGoEnum ensures that TapiTopology_RuleType implements the yang.GoEnum
// interface. This ensures that TapiTopology_RuleType can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_RuleType) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_RuleType.
func (E_TapiTopology_RuleType) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_RuleType.
func (e E_TapiTopology_RuleType) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_RuleType")
}

const (
	// TapiTopology_RuleType_UNSET corresponds to the value UNSET of TapiTopology_RuleType
	TapiTopology_RuleType_UNSET E_TapiTopology_RuleType = 0
	// TapiTopology_RuleType_FORWARDING corresponds to the value FORWARDING of TapiTopology_RuleType
	TapiTopology_RuleType_FORWARDING E_TapiTopology_RuleType = 1
	// TapiTopology_RuleType_CAPACITY corresponds to the value CAPACITY of TapiTopology_RuleType
	TapiTopology_RuleType_CAPACITY E_TapiTopology_RuleType = 2
	// TapiTopology_RuleType_COST corresponds to the value COST of TapiTopology_RuleType
	TapiTopology_RuleType_COST E_TapiTopology_RuleType = 3
	// TapiTopology_RuleType_TIMING corresponds to the value TIMING of TapiTopology_RuleType
	TapiTopology_RuleType_TIMING E_TapiTopology_RuleType = 4
	// TapiTopology_RuleType_RISK corresponds to the value RISK of TapiTopology_RuleType
	TapiTopology_RuleType_RISK E_TapiTopology_RuleType = 5
	// TapiTopology_RuleType_GROUPING corresponds to the value GROUPING of TapiTopology_RuleType
	TapiTopology_RuleType_GROUPING E_TapiTopology_RuleType = 6
)


// E_TapiTopology_SignalPropertyValueRule is a derived int64 type which is used to represent
// the enumerated node TapiTopology_SignalPropertyValueRule. An additional value named
// TapiTopology_SignalPropertyValueRule_UNSET is added to the enumeration which is used as
// the nil value, indicating that the enumeration was not explicitly set by
// the program importing the generated structures.
type E_TapiTopology_SignalPropertyValueRule int64

// IsYANGGoEnum ensures that TapiTopology_SignalPropertyValueRule implements the yang.GoEnum
// interface. This ensures that TapiTopology_SignalPropertyValueRule can be identified as a
// mapped type for a YANG enumeration.
func (E_TapiTopology_SignalPropertyValueRule) IsYANGGoEnum() {}

// ΛMap returns the value lookup map associated with  TapiTopology_SignalPropertyValueRule.
func (E_TapiTopology_SignalPropertyValueRule) ΛMap() map[string]map[int64]ygot.EnumDefinition { return ΛEnum; }

// String returns a logging-friendly string for E_TapiTopology_SignalPropertyValueRule.
func (e E_TapiTopology_SignalPropertyValueRule) String() string {
	return ygot.EnumLogString(e, int64(e), "E_TapiTopology_SignalPropertyValueRule")
}

const (
	// TapiTopology_SignalPropertyValueRule_UNSET corresponds to the value UNSET of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_UNSET E_TapiTopology_SignalPropertyValueRule = 0
	// TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE corresponds to the value SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE E_TapiTopology_SignalPropertyValueRule = 1
	// TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_DIFFERENT_VALUE corresponds to the value SIGNAL_PROPERTY_VALUE_RULE_DIFFERENT_VALUE of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_DIFFERENT_VALUE E_TapiTopology_SignalPropertyValueRule = 2
	// TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_NOT_VALUE corresponds to the value SIGNAL_PROPERTY_VALUE_RULE_NOT_VALUE of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_NOT_VALUE E_TapiTopology_SignalPropertyValueRule = 3
	// TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE corresponds to the value SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE of TapiTopology_SignalPropertyValueRule
	TapiTopology_SignalPropertyValueRule_SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE E_TapiTopology_SignalPropertyValueRule = 4
)


// ΛEnum is a map, keyed by the name of the type defined for each enum in the
// generated Go code, which provides a mapping between the constant int64 value
// of each value of the enumeration, and the string that is used to represent it
// in the YANG schema. The map is named ΛEnum in order to avoid clash with any
// valid YANG identifier.
var ΛEnum = map[string]map[int64]ygot.EnumDefinition{
	"E_TapiCommon_AdministrativeState": {
		1: {Name: "LOCKED"},
		2: {Name: "UNLOCKED"},
	},
	"E_TapiCommon_CapacityUnit": {
		1: {Name: "TB"},
		2: {Name: "TBPS"},
		3: {Name: "GB"},
		4: {Name: "GBPS"},
		5: {Name: "MB"},
		6: {Name: "MBPS"},
		7: {Name: "KB"},
		8: {Name: "KBPS"},
		9: {Name: "GHz"},
		10: {Name: "MHz"},
	},
	"E_TapiCommon_LayerProtocolName": {
		1: {Name: "ODU"},
		2: {Name: "ETH"},
		3: {Name: "DSR"},
		4: {Name: "PHOTONIC_MEDIA"},
	},
	"E_TapiCommon_LayerProtocolQualifier": {
		1: {Name: "LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED", DefiningModule: "tapi-common"},
		2: {Name: "PHOTONIC_LAYER_QUALIFIER", DefiningModule: "tapi-photonic-media"},
		3: {Name: "PHOTONIC_LAYER_QUALIFIER_MC", DefiningModule: "tapi-photonic-media"},
		4: {Name: "PHOTONIC_LAYER_QUALIFIER_MCA", DefiningModule: "tapi-photonic-media"},
		5: {Name: "PHOTONIC_LAYER_QUALIFIER_OCH", DefiningModule: "tapi-photonic-media"},
		6: {Name: "PHOTONIC_LAYER_QUALIFIER_OMS", DefiningModule: "tapi-photonic-media"},
		7: {Name: "PHOTONIC_LAYER_QUALIFIER_OMSA", DefiningModule: "tapi-photonic-media"},
		8: {Name: "PHOTONIC_LAYER_QUALIFIER_OTS", DefiningModule: "tapi-photonic-media"},
		9: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSA", DefiningModule: "tapi-photonic-media"},
		10: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSi", DefiningModule: "tapi-photonic-media"},
		11: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiA", DefiningModule: "tapi-photonic-media"},
		12: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiMC", DefiningModule: "tapi-photonic-media"},
		13: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiMCA", DefiningModule: "tapi-photonic-media"},
	},
	"E_TapiCommon_LifecycleState": {
		1: {Name: "PLANNED"},
		2: {Name: "POTENTIAL_AVAILABLE"},
		3: {Name: "POTENTIAL_BUSY"},
		4: {Name: "INSTALLED"},
		5: {Name: "PENDING_REMOVAL"},
	},
	"E_TapiCommon_OperationalState": {
		1: {Name: "DISABLED"},
		2: {Name: "ENABLED"},
	},
	"E_TapiCommon_PortDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "INPUT"},
		3: {Name: "OUTPUT"},
		4: {Name: "UNIDENTIFIED_OR_UNKNOWN"},
	},
	"E_TapiCommon_TerminationDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "SINK"},
		3: {Name: "SOURCE"},
		4: {Name: "UNDEFINED_OR_UNKNOWN"},
	},
	"E_TapiCommon_TerminationState": {
		1: {Name: "LP_CAN_NEVER_TERMINATE"},
		2: {Name: "LT_NOT_TERMINATED"},
		3: {Name: "TERMINATED_SERVER_TO_CLIENT_FLOW"},
		4: {Name: "TERMINATED_CLIENT_TO_SERVER_FLOW"},
		5: {Name: "TERMINATED_BIDIRECTIONAL"},
		6: {Name: "LT_PERMENANTLY_TERMINATED"},
		7: {Name: "TERMINATION_STATE_UNKNOWN"},
	},
	"E_TapiConnectivity_CoordinateType": {
		1: {Name: "NO_COORDINATE"},
		2: {Name: "HOLD_OFF_TIME"},
		3: {Name: "WAIT_FOR_NOTIFICATION"},
	},
	"E_TapiConnectivity_FaultConditionDetermination": {
		1: {Name: "FAULT_CONDITION_DETERMINATION_INHERENT", DefiningModule: "tapi-connectivity"},
		2: {Name: "FAULT_CONDITION_DETERMINATION_NON_INTRUSIVE", DefiningModule: "tapi-connectivity"},
		3: {Name: "FAULT_CONDITION_DETERMINATION_SUBLAYER", DefiningModule: "tapi-connectivity"},
		4: {Name: "FAULT_CONDITION_DETERMINATION_TEST", DefiningModule: "tapi-connectivity"},
	},
	"E_TapiConnectivity_ForwardingDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "UNIDIRECTIONAL"},
		3: {Name: "UNDEFINED_OR_UNKNOWN"},
	},
	"E_TapiConnectivity_LayerProtocolName": {
		1: {Name: "ODU"},
		2: {Name: "ETH"},
		3: {Name: "DSR"},
		4: {Name: "PHOTONIC_MEDIA"},
	},
	"E_TapiConnectivity_LayerProtocolQualifier": {
		1: {Name: "LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED", DefiningModule: "tapi-common"},
		2: {Name: "PHOTONIC_LAYER_QUALIFIER", DefiningModule: "tapi-photonic-media"},
		3: {Name: "PHOTONIC_LAYER_QUALIFIER_MC", DefiningModule: "tapi-photonic-media"},
		4: {Name: "PHOTONIC_LAYER_QUALIFIER_MCA", DefiningModule: "tapi-photonic-media"},
		5: {Name: "PHOTONIC_LAYER_QUALIFIER_OCH", DefiningModule: "tapi-photonic-media"},
		6: {Name: "PHOTONIC_LAYER_QUALIFIER_OMS", DefiningModule: "tapi-photonic-media"},
		7: {Name: "PHOTONIC_LAYER_QUALIFIER_OMSA", DefiningModule: "tapi-photonic-media"},
		8: {Name: "PHOTONIC_LAYER_QUALIFIER_OTS", DefiningModule: "tapi-photonic-media"},
		9: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSA", DefiningModule: "tapi-photonic-media"},
		10: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSi", DefiningModule: "tapi-photonic-media"},
		11: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiA", DefiningModule: "tapi-photonic-media"},
		12: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiMC", DefiningModule: "tapi-photonic-media"},
		13: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiMCA", DefiningModule: "tapi-photonic-media"},
	},
	"E_TapiConnectivity_PortDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "INPUT"},
		3: {Name: "OUTPUT"},
		4: {Name: "UNIDENTIFIED_OR_UNKNOWN"},
	},
	"E_TapiConnectivity_PortRole": {
		1: {Name: "SYMMETRIC"},
		2: {Name: "ROOT"},
		3: {Name: "LEAF"},
		4: {Name: "TRUNK"},
		5: {Name: "UNKNOWN"},
	},
	"E_TapiConnectivity_ProtectionRole": {
		1: {Name: "WORK"},
		2: {Name: "PROTECT"},
		3: {Name: "PROTECTED"},
		4: {Name: "NA"},
		5: {Name: "WORK_RESTORE"},
		6: {Name: "PROTECT_RESTORE"},
	},
	"E_TapiConnectivity_ReversionMode": {
		1: {Name: "REVERTIVE"},
		2: {Name: "NON-REVERTIVE"},
	},
	"E_TapiConnectivity_RouteState": {
		1: {Name: "ROUTE_STATE_CURRENT", DefiningModule: "tapi-connectivity"},
		2: {Name: "ROUTE_STATE_NOT_CURRENT", DefiningModule: "tapi-connectivity"},
		3: {Name: "ROUTE_STATE_UNKNOWN", DefiningModule: "tapi-connectivity"},
	},
	"E_TapiConnectivity_SelectionControl": {
		1: {Name: "LOCK_OUT"},
		2: {Name: "NORMAL"},
		3: {Name: "MANUAL"},
		4: {Name: "FORCED"},
	},
	"E_TapiConnectivity_SelectionReason": {
		1: {Name: "LOCKOUT"},
		2: {Name: "NORMAL"},
		3: {Name: "MANUAL"},
		4: {Name: "FORCED"},
		5: {Name: "WAIT_TO_REVERT"},
		6: {Name: "SIGNAL_DEGRADE"},
		7: {Name: "SIGNAL_FAIL"},
	},
	"E_TapiConnectivity_ServiceType": {
		1: {Name: "POINT_TO_POINT_CONNECTIVITY"},
		2: {Name: "POINT_TO_MULTIPOINT_CONNECTIVITY"},
		3: {Name: "MULTIPOINT_CONNECTIVITY"},
		4: {Name: "ROOTED_MULTIPOINT_CONNECTIVITY"},
	},
	"E_TapiPathComputation_DirectiveValue": {
		1: {Name: "MINIMIZE"},
		2: {Name: "MAXIMIZE"},
		3: {Name: "ALLOW"},
		4: {Name: "DISALLOW"},
		5: {Name: "DONT_CARE"},
	},
	"E_TapiPathComputation_DiversityPolicy": {
		1: {Name: "SRLG"},
		2: {Name: "SRNG"},
		3: {Name: "SNG"},
		4: {Name: "NODE"},
		5: {Name: "LINK"},
	},
	"E_TapiPathComputation_ForwardingDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "UNIDIRECTIONAL"},
		3: {Name: "UNDEFINED_OR_UNKNOWN"},
	},
	"E_TapiPathComputation_GradesOfImpact": {
		1: {Name: "GRADES_OF_IMPACT_HITLESS", DefiningModule: "tapi-path-computation"},
		2: {Name: "GRADES_OF_IMPACT_LONG_IMPACT", DefiningModule: "tapi-path-computation"},
		3: {Name: "GRADES_OF_IMPACT_MAJOR_IMPACT", DefiningModule: "tapi-path-computation"},
		4: {Name: "GRADES_OF_IMPACT_MINOR_IMPACT", DefiningModule: "tapi-path-computation"},
	},
	"E_TapiPathComputation_LayerProtocolName": {
		1: {Name: "ODU"},
		2: {Name: "ETH"},
		3: {Name: "DSR"},
		4: {Name: "PHOTONIC_MEDIA"},
	},
	"E_TapiPathComputation_LayerProtocolQualifier": {
		1: {Name: "LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED", DefiningModule: "tapi-common"},
		2: {Name: "PHOTONIC_LAYER_QUALIFIER", DefiningModule: "tapi-photonic-media"},
		3: {Name: "PHOTONIC_LAYER_QUALIFIER_MC", DefiningModule: "tapi-photonic-media"},
		4: {Name: "PHOTONIC_LAYER_QUALIFIER_MCA", DefiningModule: "tapi-photonic-media"},
		5: {Name: "PHOTONIC_LAYER_QUALIFIER_OCH", DefiningModule: "tapi-photonic-media"},
		6: {Name: "PHOTONIC_LAYER_QUALIFIER_OMS", DefiningModule: "tapi-photonic-media"},
		7: {Name: "PHOTONIC_LAYER_QUALIFIER_OMSA", DefiningModule: "tapi-photonic-media"},
		8: {Name: "PHOTONIC_LAYER_QUALIFIER_OTS", DefiningModule: "tapi-photonic-media"},
		9: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSA", DefiningModule: "tapi-photonic-media"},
		10: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSi", DefiningModule: "tapi-photonic-media"},
		11: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiA", DefiningModule: "tapi-photonic-media"},
		12: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiMC", DefiningModule: "tapi-photonic-media"},
		13: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiMCA", DefiningModule: "tapi-photonic-media"},
	},
	"E_TapiPathComputation_PortDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "INPUT"},
		3: {Name: "OUTPUT"},
		4: {Name: "UNIDENTIFIED_OR_UNKNOWN"},
	},
	"E_TapiPathComputation_PortRole": {
		1: {Name: "SYMMETRIC"},
		2: {Name: "ROOT"},
		3: {Name: "LEAF"},
		4: {Name: "TRUNK"},
		5: {Name: "UNKNOWN"},
	},
	"E_TapiPathComputation_RouteObjectiveFunction": {
		1: {Name: "MIN_WORK_ROUTE_HOP"},
		2: {Name: "MIN_WORK_ROUTE_COST"},
		3: {Name: "MIN_WORK_ROUTE_LATENCY"},
		4: {Name: "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_HOP"},
		5: {Name: "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_COST"},
		6: {Name: "MIN_SUM_OF_WORK_AND_PROTECTION_ROUTE_LATENCY"},
		7: {Name: "LOAD_BALANCE_MAX_UNUSED_CAPACITY"},
	},
	"E_TapiPhotonicMedia_AdjustmentGranularity": {
		1: {Name: "G_100GHZ"},
		2: {Name: "G_50GHZ"},
		3: {Name: "G_25GHZ"},
		4: {Name: "G_12_5GHZ"},
		5: {Name: "G_6_25GHZ"},
		6: {Name: "G_3_125GHZ"},
		7: {Name: "UNCONSTRAINED"},
	},
	"E_TapiPhotonicMedia_ApplicationIdentifierType": {
		1: {Name: "PROPRIETARY"},
		2: {Name: "ITUT_G959_1"},
		3: {Name: "ITUT_G698_1"},
		4: {Name: "ITUT_G698_2"},
		5: {Name: "ITUT_G696_1"},
		6: {Name: "ITUT_G695"},
	},
	"E_TapiPhotonicMedia_GridType": {
		1: {Name: "DWDM"},
		2: {Name: "CWDM"},
		3: {Name: "FLEX"},
		4: {Name: "GRIDLESS"},
		5: {Name: "UNSPECIFIED"},
	},
	"E_TapiPhotonicMedia_LaserControlStatusType": {
		1: {Name: "ON"},
		2: {Name: "OFF"},
		3: {Name: "PULSING"},
		4: {Name: "UNDEFINED"},
	},
	"E_TapiPhotonicMedia_LaserControlType": {
		1: {Name: "FORCED-ON"},
		2: {Name: "FORCED-OFF"},
		3: {Name: "AUTOMATIC-LASER-SHUTDOWN"},
		4: {Name: "UNDEFINED"},
	},
	"E_TapiPhotonicMedia_LaserType": {
		1: {Name: "PUMP"},
		2: {Name: "MODULATED"},
		3: {Name: "PULSE"},
	},
	"E_TapiPhotonicMedia_ModulationTechnique": {
		1: {Name: "RZ"},
		2: {Name: "NRZ"},
		3: {Name: "BPSK"},
		4: {Name: "DPSK"},
		5: {Name: "QPSK"},
		6: {Name: "8QAM"},
		7: {Name: "16QAM"},
		8: {Name: "PAM4"},
		9: {Name: "PAM8"},
		10: {Name: "UNDEFINED"},
	},
	"E_TapiTopology_ForwardingDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "UNIDIRECTIONAL"},
		3: {Name: "UNDEFINED_OR_UNKNOWN"},
	},
	"E_TapiTopology_ForwardingRule": {
		1: {Name: "MAY_FORWARD_ACROSS_GROUP"},
		2: {Name: "MUST_FORWARD_ACROSS_GROUP"},
		3: {Name: "CANNOT_FORWARD_ACROSS_GROUP"},
		4: {Name: "NO_STATEMENT_ON_FORWARDING"},
		5: {Name: "INTER_CONNECTION_CONTENTION"},
	},
	"E_TapiTopology_LayerProtocolName": {
		1: {Name: "ODU"},
		2: {Name: "ETH"},
		3: {Name: "DSR"},
		4: {Name: "PHOTONIC_MEDIA"},
	},
	"E_TapiTopology_LayerProtocolQualifier": {
		1: {Name: "LAYER_PROTOCOL_QUALIFIER_UNSPECIFIED", DefiningModule: "tapi-common"},
		2: {Name: "PHOTONIC_LAYER_QUALIFIER", DefiningModule: "tapi-photonic-media"},
		3: {Name: "PHOTONIC_LAYER_QUALIFIER_MC", DefiningModule: "tapi-photonic-media"},
		4: {Name: "PHOTONIC_LAYER_QUALIFIER_MCA", DefiningModule: "tapi-photonic-media"},
		5: {Name: "PHOTONIC_LAYER_QUALIFIER_OCH", DefiningModule: "tapi-photonic-media"},
		6: {Name: "PHOTONIC_LAYER_QUALIFIER_OMS", DefiningModule: "tapi-photonic-media"},
		7: {Name: "PHOTONIC_LAYER_QUALIFIER_OMSA", DefiningModule: "tapi-photonic-media"},
		8: {Name: "PHOTONIC_LAYER_QUALIFIER_OTS", DefiningModule: "tapi-photonic-media"},
		9: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSA", DefiningModule: "tapi-photonic-media"},
		10: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSi", DefiningModule: "tapi-photonic-media"},
		11: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiA", DefiningModule: "tapi-photonic-media"},
		12: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiMC", DefiningModule: "tapi-photonic-media"},
		13: {Name: "PHOTONIC_LAYER_QUALIFIER_OTSiMCA", DefiningModule: "tapi-photonic-media"},
	},
	"E_TapiTopology_PortDirection": {
		1: {Name: "BIDIRECTIONAL"},
		2: {Name: "INPUT"},
		3: {Name: "OUTPUT"},
		4: {Name: "UNIDENTIFIED_OR_UNKNOWN"},
	},
	"E_TapiTopology_PortRole": {
		1: {Name: "SYMMETRIC"},
		2: {Name: "ROOT"},
		3: {Name: "LEAF"},
		4: {Name: "TRUNK"},
		5: {Name: "UNKNOWN"},
	},
	"E_TapiTopology_PortRoleRuleOption": {
		1: {Name: "PORT_ROLE_RULE_OPTION_ANY_ROLE", DefiningModule: "tapi-topology"},
		2: {Name: "PORT_ROLE_RULE_OPTION_DIFFERENT_ROLE", DefiningModule: "tapi-topology"},
		3: {Name: "PORT_ROLE_RULE_OPTION_NOT_ROLE", DefiningModule: "tapi-topology"},
		4: {Name: "PORT_ROLE_RULE_OPTION_SAME_ROLE", DefiningModule: "tapi-topology"},
	},
	"E_TapiTopology_ProtectionType": {
		1: {Name: "NO_PROTECTION"},
		2: {Name: "ONE_PLUS_ONE_PROTECTION"},
		3: {Name: "ONE_PLUS_ONE_PROTECTION_WITH_DYNAMIC_RESTORATION"},
		4: {Name: "PERMANENT_ONE_PLUS_ONE_PROTECTION"},
		5: {Name: "ONE_FOR_ONE_PROTECTION"},
		6: {Name: "DYNAMIC_RESTORATION"},
		7: {Name: "PRE_COMPUTED_RESTORATION"},
		8: {Name: "ONE_PLUS_ONE_PROTECTION_WITH_PRE_COMPUTED_RESTORATION"},
		9: {Name: "ONE_FOR_N_PROTECTION"},
		10: {Name: "M_FOR_N_PROTECTION"},
		11: {Name: "ONE_FOR_ONE_BY_N"},
	},
	"E_TapiTopology_RestorationPolicy": {
		1: {Name: "PER_DOMAIN_RESTORATION"},
		2: {Name: "END_TO_END_RESTORATION"},
		3: {Name: "NA"},
	},
	"E_TapiTopology_RuleType": {
		1: {Name: "FORWARDING"},
		2: {Name: "CAPACITY"},
		3: {Name: "COST"},
		4: {Name: "TIMING"},
		5: {Name: "RISK"},
		6: {Name: "GROUPING"},
	},
	"E_TapiTopology_SignalPropertyValueRule": {
		1: {Name: "SIGNAL_PROPERTY_VALUE_RULE_ANY_VALUE", DefiningModule: "tapi-topology"},
		2: {Name: "SIGNAL_PROPERTY_VALUE_RULE_DIFFERENT_VALUE", DefiningModule: "tapi-topology"},
		3: {Name: "SIGNAL_PROPERTY_VALUE_RULE_NOT_VALUE", DefiningModule: "tapi-topology"},
		4: {Name: "SIGNAL_PROPERTY_VALUE_RULE_SAME_VALUE", DefiningModule: "tapi-topology"},
	},
}


var (
	// ySchema is a byte slice contain a gzip compressed representation of the
	// YANG schema from which the Go code was generated. When uncompressed the
	// contents of the byte slice is a JSON document containing an object, keyed
	// on the name of the generated struct, and containing the JSON marshalled
	// contents of a goyang yang.Entry struct, which defines the schema for the
	// fields within the struct.
	ySchema = []byte{
		0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x7d, 0x5b, 0x73, 0xdb, 0x48,
		0x92, 0xf5, 0xbb, 0x7f, 0x05, 0x82, 0xcf, 0x46, 0xc8, 0xf2, 0xb8, 0xdb, 0x5a, 0xbf, 0xa9, 0x65,
		0xb9, 0x5b, 0xbb, 0xba, 0xad, 0xa4, 0x9e, 0x2f, 0x26, 0x26, 0x14, 0x0a, 0x18, 0x28, 0x52, 0xd5,
		0x86, 0x00, 0x36, 0x00, 0xea, 0x32, 0x1b, 0xfe, 0xef, 0x5f, 0x10, 0x24, 0xc1, 0x0b, 0x40, 0x12,
		0xa8, 0xcc, 0x02, 0x0a, 0xc0, 0xf1, 0xcb, 0x4c, 0x4b, 0x62, 0x12, 0xa8, 0xaa, 0x3c, 0x75, 0xf2,
		0x64, 0x56, 0xd6, 0xff, 0xbd, 0xb3, 0x2c, 0xcb, 0x1a, 0x5c, 0x3a, 0x4f, 0x62, 0xf0, 0xc5, 0x1a,
		0x78, 0xe2, 0x59, 0xba, 0x62, 0xf0, 0x7e, 0xf6, 0xd3, 0xff, 0x91, 0x81, 0x37, 0xf8, 0x62, 0x1d,
		0xce, 0xff, 0xf3, 0x24, 0x0c, 0x86, 0x72, 0x34, 0xf8, 0x62, 0x7d, 0x98, 0xff, 0xe0, 0xab, 0x8c,
		0x06, 0x5f, 0xac, 0x99, 0x89, 0xf4, 0x07, 0x6e, 0x18, 0x24, 0xe2, 0x35, 0x59, 0xfb, 0xe1, 0x9a,
		0xfd, 0xc5, 0x1f, 0xbc, 0x5f, 0xff, 0xf5, 0xfa, 0x17, 0x65, 0x3f, 0xde, 0xfc, 0xc2, 0xec, 0x17,
		0xd7, 0x91, 0x18, 0xca, 0xd7, 0xdc, 0xd7, 0xac, 0x7d, 0x55, 0xe2, 0x8c, 0xa5, 0xed, 0x86, 0x4f,
		0x4f, 0x61, 0xb0, 0xf1, 0x75, 0xe9, 0x9f, 0xdd, 0x86, 0x93, 0xc8, 0x15, 0x85, 0x26, 0x66, 0x8f,
		0x24, 0xde, 0x5e, 0xc2, 0x68, 0xfa, 0x54, 0x83, 0xf1, 0xec, 0xdb, 0xde, 0x17, 0xff, 0xe1, 0x1f,
		0x4e, 0x7c, 0x1c, 0x8d, 0x26, 0x4f, 0x22, 0x98, 0xbe, 0x77, 0x12, 0x4d, 0xc4, 0x96, 0x3f, 0x5c,
		0xf9, 0xab, 0xb5, 0x87, 0xcb, 0xfd, 0xf5, 0xcf, 0xb5, 0x9f, 0xfc, 0xdc, 0x78, 0xf7, 0xcd, 0x41,
		0x5f, 0x1d, 0xfc, 0x40, 0xb8, 0x89, 0x7c, 0x96, 0xc9, 0x9b, 0xbd, 0x6d, 0x26, 0x8a, 0x66, 0x24,
		0xff, 0xa9, 0x2d, 0x6f, 0x50, 0x3c, 0x4d, 0x7b, 0xa7, 0xab, 0xcc, 0xb4, 0x6d, 0x9b, 0xbe, 0xe5,
		0xc3, 0x6d, 0x79, 0xa8, 0x32, 0x93, 0x59, 0x79, 0x52, 0x2b, 0x4f, 0xee, 0xae, 0x49, 0x5e, 0x79,
		0x85, 0xad, 0x9f, 0xfd, 0x59, 0xf8, 0x9b, 0x9f, 0x5b, 0xc6, 0x71, 0xdb, 0x12, 0xc8, 0x2d, 0x85,
		0x30, 0xd8, 0x3f, 0x26, 0x9b, 0x0b, 0xa1, 0xd0, 0x5d, 0x2a, 0x2c, 0x83, 0xfc, 0x72, 0xf8, 0xb8,
		0xe7, 0x0f, 0x4b, 0x2c, 0x0b, 0xd2, 0xf2, 0xa8, 0xba, 0x4c, 0x94, 0x97, 0x8b, 0xf2, 0xb2, 0xa1,
		0x2e, 0x9f, 0xdd, 0xcb, 0x68, 0xcf, 0x72, 0x2a, 0xbd, 0xac, 0xb2, 0x3f, 0xfc, 0x1e, 0x4e, 0x02,
		0x4f, 0x06, 0x23, 0x3b, 0x08, 0xbd, 0x0a, 0xc3, 0xb9, 0x98, 0xbb, 0xf5, 0x8f, 0x97, 0x1c, 0x99,
		0x72, 0x8b, 0xae, 0xf2, 0xe2, 0x53, 0x59, 0x84, 0x2c, 0x8b, 0x51, 0x75, 0x51, 0x92, 0x17, 0x27,
		0x79, 0x91, 0x72, 0x2d, 0xd6, 0x72, 0x8b, 0xb6, 0xe4, 0xe2, 0xad, 0xbc, 0x88, 0xb3, 0x0f, 0x4c,
		0x17, 0xa1, 0x3d, 0x99, 0x48, 0xaf, 0xfa, 0x14, 0x2c, 0xe6, 0x7f, 0x69, 0xa2, 0xe2, 0x08, 0xce,
		0x17, 0xf5, 0x87, 0x8a, 0x1f, 0xdb, 0xb7, 0xd1, 0x72, 0x2e, 0xf2, 0xe2, 0xc5, 0x9e, 0x84, 0xe3,
		0xd0, 0x0f, 0x47, 0x6f, 0x15, 0x5f, 0x98, 0xb2, 0xe0, 0xd9, 0x16, 0x3e, 0x9b, 0x03, 0x6c, 0x77,
		0x84, 0x6c, 0x78, 0x2a, 0xdb, 0xfb, 0x59, 0xe9, 0x13, 0x3f, 0x2b, 0xce, 0xff, 0xdd, 0xdb, 0x58,
		0xd0, 0x66, 0xdf, 0x17, 0xce, 0x30, 0x12, 0x43, 0x95, 0x79, 0x5f, 0x20, 0xf8, 0x67, 0x85, 0xcf,
		0x5e, 0x3b, 0xc9, 0xe3, 0xf4, 0xeb, 0x0f, 0x56, 0x88, 0xf3, 0x97, 0x39, 0x5b, 0x3d, 0x58, 0x1b,
		0xf2, 0x2f, 0x8b, 0xff, 0x63, 0xef, 0xfe, 0xf5, 0xc6, 0x8f, 0xa7, 0x2e, 0xbc, 0xf1, 0xa3, 0xd4,
		0xa1, 0xdf, 0xe9, 0x99, 0xbc, 0x0a, 0x13, 0x37, 0xc8, 0x5e, 0x88, 0x06, 0x52, 0xeb, 0x66, 0x00,
		0x54, 0x00, 0x2a, 0x00, 0x55, 0x0b, 0x81, 0x4a, 0x2b, 0x2a, 0xb1, 0x32, 0xb1, 0xe3, 0x20, 0x08,
		0x13, 0xa7, 0x54, 0x10, 0xba, 0xf6, 0xb9, 0xd8, 0x7d, 0x14, 0x4f, 0xce, 0xb8, 0x60, 0x20, 0x0f,
		0x16, 0x23, 0x55, 0x24, 0x5a, 0x1c, 0x2c, 0x03, 0xd8, 0x03, 0x95, 0x08, 0x63, 0xf6, 0xdd, 0x49,
		0x34, 0x71, 0x93, 0x60, 0xbe, 0x86, 0xee, 0x9c, 0xb1, 0x3c, 0x49, 0xbf, 0xf9, 0xe1, 0x64, 0xf6,
		0x25, 0xd3, 0xff, 0xcd, 0xbe, 0x79, 0xf3, 0x67, 0x61, 0xf0, 0xf0, 0xdb, 0xfc, 0x8b, 0x2f, 0xa7,
		0xdf, 0xfb, 0x8e, 0x67, 0xcc, 0x4b, 0x8c, 0xf7, 0x4a, 0xf0, 0x6e, 0x8b, 0xc0, 0xb3, 0xc7, 0xa1,
		0x0c, 0x92, 0xea, 0x81, 0x59, 0xa1, 0x15, 0xc4, 0x67, 0x88, 0xcf, 0x9a, 0x8c, 0xcf, 0x8a, 0x16,
		0x25, 0x91, 0x0a, 0x6d, 0x37, 0xd9, 0x17, 0x5a, 0xa4, 0xe8, 0x0c, 0x7d, 0xa2, 0x46, 0x6a, 0xce,
		0x02, 0x7a, 0x64, 0x5c, 0x1c, 0x17, 0xbe, 0x04, 0xc2, 0x4b, 0x99, 0x80, 0x2d, 0xbc, 0x91, 0x98,
		0xb9, 0xfb, 0x41, 0x6e, 0x8e, 0xbf, 0xb8, 0x62, 0x6c, 0xfb, 0x32, 0x2e, 0xfc, 0x55, 0x01, 0x60,
		0x14, 0xfc, 0x99, 0x29, 0x11, 0xe3, 0xc6, 0xbb, 0x72, 0xa8, 0x5b, 0x9b, 0xd6, 0x10, 0x3f, 0x02,
		0x24, 0x11, 0x3f, 0x76, 0x1e, 0x20, 0x8d, 0x13, 0xc3, 0xa0, 0xd6, 0x03, 0xc4, 0x00, 0x62, 0x00,
		0x31, 0xa8, 0xf5, 0x00, 0x2a, 0x00, 0x15, 0x80, 0x0a, 0x6a, 0x3d, 0x93, 0x2e, 0xf7, 0x3f, 0xe2,
		0x2d, 0x87, 0x3b, 0x56, 0x46, 0x95, 0xac, 0xa2, 0x20, 0xd0, 0xa2, 0xea, 0x68, 0x83, 0x73, 0x19,
		0x27, 0xc7, 0x49, 0x52, 0x51, 0x11, 0xbc, 0x90, 0xc1, 0xa9, 0x2f, 0xa6, 0x9e, 0x11, 0x97, 0x17,
		0x90, 0x67, 0x9f, 0x74, 0x5e, 0x57, 0x3e, 0x79, 0x78, 0xf4, 0xe9, 0xd3, 0xaf, 0x9f, 0x3f, 0x7d,
		0xfa, 0xf0, 0xf9, 0x1f, 0x9f, 0x3f, 0xfc, 0xd7, 0x2f, 0xbf, 0x1c, 0xfe, 0x7a, 0xf8, 0x4b, 0x05,
		0x63, 0x57, 0x91, 0x27, 0x22, 0xe1, 0xfd, 0x36, 0x1d, 0xb7, 0x60, 0xe2, 0xfb, 0x5d, 0x49, 0x9e,
		0x10, 0xb2, 0x00, 0x2c, 0x39, 0x94, 0xe5, 0xff, 0x3d, 0x0d, 0xbc, 0xeb, 0xf4, 0xdb, 0x6b, 0xcc,
		0xa4, 0x78, 0x32, 0x2a, 0x59, 0x39, 0x99, 0x03, 0xb1, 0xe5, 0x47, 0xab, 0xe5, 0x4c, 0x3e, 0x20,
		0x67, 0x82, 0x9c, 0x09, 0xeb, 0xfe, 0x9a, 0xcd, 0xe2, 0x30, 0x8c, 0x5e, 0x9c, 0x28, 0x4d, 0x85,
		0x56, 0x5d, 0x9d, 0x6b, 0x9b, 0xeb, 0xa7, 0x0a, 0x9f, 0x39, 0x0d, 0x26, 0x4f, 0xd3, 0xa7, 0xfd,
		0x59, 0xa3, 0xd7, 0xfa, 0xce, 0x9b, 0x88, 0xec, 0x71, 0x14, 0x26, 0xa1, 0x1b, 0xfa, 0xf6, 0x1c,
		0x7c, 0x2a, 0xfa, 0x6f, 0x91, 0x11, 0x78, 0x32, 0x3c, 0xd9, 0x08, 0x4f, 0x56, 0x5f, 0x9c, 0xed,
		0x72, 0x64, 0x39, 0x14, 0xee, 0x9b, 0xeb, 0x0b, 0x3b, 0x4e, 0x9c, 0x44, 0xc5, 0x89, 0x37, 0x0c,
		0x74, 0xc7, 0x81, 0xb7, 0x9c, 0x64, 0xea, 0x87, 0xeb, 0x16, 0x9f, 0x94, 0x32, 0xde, 0x69, 0x95,
		0x16, 0x63, 0xbb, 0x1c, 0x36, 0x7c, 0x11, 0x91, 0x5d, 0xe1, 0xc0, 0x51, 0x7e, 0x90, 0x36, 0x2d,
		0xa0, 0xe2, 0x08, 0x7b, 0x2e, 0xa3, 0xfb, 0x52, 0x2a, 0x8e, 0xd8, 0xea, 0x8c, 0x50, 0x5d, 0x04,
		0x29, 0x17, 0xd5, 0x45, 0x8d, 0xcb, 0xb9, 0x85, 0x55, 0x3d, 0x6b, 0x42, 0xd8, 0xae, 0xe2, 0x9f,
		0xba, 0x4b, 0x7e, 0x74, 0x08, 0xbc, 0x6a, 0x98, 0xc4, 0xa2, 0xd4, 0x7e, 0x80, 0x52, 0xcb, 0xab,
		0xd4, 0x2a, 0x32, 0x27, 0x16, 0x95, 0xf6, 0x7c, 0xfa, 0xdd, 0xcb, 0xff, 0xae, 0x53, 0xa2, 0x55,
		0x53, 0x77, 0x14, 0xe4, 0x9c, 0xca, 0xd4, 0xf2, 0x03, 0xa2, 0xc1, 0xce, 0x47, 0x83, 0x95, 0xe9,
		0xe4, 0xb3, 0xe3, 0x4f, 0x84, 0x3a, 0x89, 0x9c, 0x7d, 0xbc, 0x3f, 0xd4, 0xb1, 0xe2, 0xc2, 0xee,
		0x17, 0x69, 0xac, 0xb6, 0xf0, 0xdb, 0x42, 0x17, 0xe3, 0x24, 0x92, 0xc1, 0x88, 0xc2, 0x16, 0x8f,
		0x0c, 0xa8, 0xfc, 0x49, 0x1d, 0xb5, 0x5a, 0xea, 0xa1, 0xd8, 0xd9, 0xab, 0x8a, 0xbb, 0xf0, 0x78,
		0x78, 0x3c, 0x3c, 0xde, 0xe4, 0xa0, 0xab, 0xb2, 0x5b, 0x23, 0xde, 0x32, 0x31, 0xde, 0xaa, 0x9a,
		0x74, 0xa3, 0xc6, 0x58, 0xa9, 0xb7, 0xd4, 0x18, 0x58, 0x85, 0x63, 0x11, 0xa5, 0x23, 0xeb, 0xf8,
		0xaa, 0xe9, 0xb7, 0xbc, 0x09, 0x24, 0xe0, 0x10, 0x72, 0x11, 0x5d, 0x5e, 0x3d, 0x01, 0xa7, 0xba,
		0x1c, 0xad, 0x36, 0xa5, 0xe0, 0xa2, 0x70, 0xa2, 0xe2, 0xaa, 0xb3, 0x8f, 0x21, 0xd9, 0x86, 0x64,
		0x5b, 0x93, 0xea, 0x08, 0xa9, 0x73, 0x45, 0x6e, 0x29, 0x10, 0x6b, 0x57, 0x15, 0x96, 0xba, 0xf2,
		0x92, 0xd7, 0x11, 0x49, 0x21, 0xed, 0xa6, 0xc5, 0x45, 0xea, 0x89, 0xaa, 0xaa, 0xba, 0xce, 0x4e,
		0x17, 0x52, 0xcb, 0x5c, 0x97, 0xf2, 0x27, 0x95, 0x5c, 0x36, 0x51, 0xa6, 0x20, 0xcb, 0x15, 0x1c,
		0xce, 0xa6, 0xc5, 0xe9, 0xb8, 0x9c, 0x8f, 0xdd, 0x09, 0xd9, 0x9d, 0x51, 0x97, 0x53, 0xaa, 0x39,
		0xa7, 0xa2, 0x93, 0xd2, 0x25, 0x90, 0xdc, 0x2a, 0x52, 0xcf, 0x95, 0xe7, 0x76, 0xac, 0xcf, 0x04,
		0x1b, 0xe8, 0xcc, 0xc1, 0xb5, 0xac, 0x14, 0x96, 0x14, 0x4f, 0xc7, 0x8e, 0xdc, 0xd2, 0x62, 0xe8,
		0xdc, 0xd1, 0x5d, 0xe0, 0x26, 0x9c, 0x35, 0x05, 0x68, 0x53, 0xce, 0xa2, 0x02, 0xb0, 0xbb, 0x08,
		0xd8, 0x84, 0x23, 0xaf, 0x0d, 0x40, 0x2d, 0x23, 0xbe, 0x02, 0x54, 0x01, 0xaa, 0x00, 0x55, 0x80,
		0x6a, 0x8d, 0x9d, 0x4b, 0xea, 0x05, 0x4c, 0x5a, 0x47, 0x93, 0x3c, 0x4e, 0x10, 0x3a, 0x9b, 0x00,
		0x38, 0x01, 0x9c, 0x00, 0xce, 0x5e, 0x02, 0x67, 0xad, 0x28, 0xa9, 0x55, 0xe7, 0x6d, 0xa2, 0xd3,
		0x4a, 0xf6, 0xe5, 0x4a, 0x75, 0x25, 0xd9, 0xa7, 0x95, 0x3b, 0xaf, 0x2c, 0x2d, 0x30, 0xd6, 0x99,
		0x64, 0x46, 0x95, 0xea, 0x4d, 0x54, 0xa7, 0x4f, 0xb1, 0xfe, 0x24, 0xfb, 0x3c, 0x43, 0x1d, 0x4a,
		0x9a, 0xb9, 0x3d, 0x60, 0xc8, 0x75, 0x59, 0x1c, 0x55, 0x2a, 0x37, 0xd3, 0xa7, 0x51, 0xee, 0xda,
		0x52, 0xdd, 0xe7, 0xaa, 0xd4, 0x64, 0xfa, 0xa1, 0xeb, 0xf8, 0x36, 0xe5, 0x0c, 0x5f, 0x66, 0x01,
		0xf5, 0x98, 0x9a, 0xf9, 0x07, 0xea, 0x31, 0x55, 0x21, 0x09, 0x15, 0xd8, 0x73, 0x69, 0x87, 0x54,
		0x7b, 0x4d, 0xa8, 0xba, 0x3e, 0x84, 0x97, 0xc3, 0xcb, 0x8d, 0xad, 0x0f, 0x50, 0x3b, 0x80, 0x94,
		0x5b, 0x37, 0x2a, 0x07, 0x91, 0xba, 0x1b, 0xb0, 0x2b, 0x3b, 0x10, 0xc2, 0x75, 0x75, 0x07, 0x6b,
		0x7b, 0xb0, 0xae, 0xbc, 0xcd, 0x12, 0xb7, 0xdb, 0x7a, 0x05, 0x43, 0xc2, 0x41, 0xa8, 0x62, 0xd0,
		0x51, 0x39, 0x10, 0x05, 0xe4, 0x01, 0xf2, 0x00, 0x79, 0xda, 0x8c, 0x3c, 0x75, 0x88, 0x70, 0xea,
		0xe7, 0x2d, 0x39, 0x85, 0xb4, 0x0f, 0x10, 0xd2, 0x9a, 0x14, 0xd2, 0x14, 0x77, 0x17, 0x26, 0xe1,
		0xac, 0xfc, 0x21, 0x2f, 0xbd, 0xc1, 0x73, 0x24, 0x62, 0xe9, 0x4b, 0x11, 0xb8, 0xc2, 0xae, 0x76,
		0xa0, 0x24, 0x87, 0x35, 0x39, 0x4b, 0xfd, 0x09, 0xaa, 0x51, 0x80, 0xbf, 0x77, 0xff, 0xed, 0x60,
		0x01, 0xfe, 0x38, 0x92, 0x61, 0x34, 0x7d, 0x21, 0x32, 0xdd, 0xcd, 0x2c, 0x35, 0x4c, 0x76, 0x3f,
		0xa2, 0xbc, 0xbe, 0x43, 0x94, 0xb7, 0xcf, 0xe5, 0xf5, 0x13, 0x19, 0x24, 0xbf, 0x7e, 0x62, 0x20,
		0xbe, 0x47, 0x04, 0x13, 0x37, 0x4e, 0x30, 0x9a, 0x3e, 0xcd, 0xbf, 0x49, 0x53, 0x4b, 0x5b, 0xba,
		0x0b, 0xde, 0x49, 0xf6, 0x01, 0x26, 0xb0, 0xc9, 0x99, 0xfb, 0xe7, 0x5c, 0xa6, 0xe4, 0xb2, 0xf7,
		0x2d, 0x72, 0x52, 0x9e, 0xf5, 0x55, 0x8e, 0xe4, 0x8c, 0x66, 0x93, 0xed, 0xfe, 0x7c, 0xcf, 0x30,
		0x05, 0xce, 0xab, 0xf1, 0x53, 0xc0, 0x13, 0x4e, 0xd4, 0x36, 0x2b, 0xef, 0x9a, 0xf9, 0xf4, 0xbd,
		0xc1, 0x1a, 0x5c, 0x4a, 0xbc, 0x2b, 0x36, 0x71, 0xd8, 0x4e, 0xe8, 0x57, 0x8c, 0x81, 0x98, 0x80,
		0x98, 0x80, 0x98, 0x30, 0xac, 0x22, 0xba, 0x53, 0xad, 0x05, 0xcb, 0x04, 0x7c, 0x1e, 0x9c, 0x79,
		0x22, 0x48, 0x64, 0xf2, 0xf6, 0x9b, 0x13, 0x33, 0xac, 0xc4, 0xc5, 0x0b, 0xde, 0x5c, 0xfd, 0x79,
		0x77, 0xfa, 0x70, 0x7b, 0x77, 0x7c, 0x77, 0x4a, 0x5d, 0x8b, 0xe9, 0xbe, 0x14, 0x93, 0x09, 0x14,
		0x0f, 0x89, 0xda, 0xf6, 0x92, 0x0f, 0x7f, 0x5e, 0xfe, 0xcf, 0xe5, 0xd5, 0xff, 0xbb, 0x1c, 0x98,
		0x40, 0x33, 0x34, 0xbe, 0xe6, 0xc9, 0x9f, 0x37, 0x37, 0xa7, 0x97, 0x77, 0x5d, 0x7f, 0xcd, 0xcb,
		0xab, 0x3b, 0xc6, 0x57, 0x25, 0x59, 0xb8, 0xaf, 0x1b, 0x1c, 0x0d, 0x13, 0x66, 0x8c, 0x51, 0x8a,
		0x89, 0xca, 0xa6, 0xc5, 0xa7, 0x1a, 0xdf, 0x64, 0x4f, 0x92, 0xfe, 0x77, 0xab, 0x5a, 0x90, 0x57,
		0x2c, 0xa9, 0x44, 0x2f, 0x3c, 0x6e, 0xc7, 0x60, 0x73, 0x88, 0x3a, 0x9b, 0xe1, 0x55, 0x58, 0xe7,
		0x3c, 0x6d, 0xb5, 0xe2, 0xc9, 0x78, 0x1c, 0x46, 0x89, 0xf0, 0x6c, 0x77, 0xea, 0x69, 0x89, 0xed,
		0xcb, 0xe0, 0x47, 0xf5, 0x36, 0x5b, 0xc5, 0x66, 0xd0, 0x76, 0x0b, 0x6d, 0xb7, 0x18, 0x81, 0xa0,
		0x72, 0xdb, 0xad, 0xe9, 0x22, 0x24, 0xde, 0x6e, 0xb3, 0x34, 0x81, 0xeb, 0xc9, 0xb5, 0xc7, 0xf9,
		0xb8, 0x9e, 0x5c, 0x9d, 0x3e, 0xe2, 0x7a, 0xf2, 0x6d, 0x87, 0xea, 0xa6, 0x2e, 0x5c, 0xe7, 0x8d,
		0xe5, 0x15, 0x36, 0x08, 0xda, 0xa9, 0x63, 0x96, 0xd3, 0xc6, 0x00, 0x2a, 0x00, 0x15, 0x80, 0xca,
		0x08, 0xa0, 0x6a, 0xdd, 0x35, 0x5b, 0xeb, 0xa7, 0x7b, 0xab, 0x52, 0x25, 0x84, 0xbc, 0x26, 0x86,
		0xbc, 0x94, 0x48, 0x8e, 0x25, 0x04, 0xbe, 0x5d, 0x3c, 0xc0, 0x49, 0xfa, 0xfd, 0xe7, 0xd3, 0xaf,
		0xaf, 0x33, 0x20, 0x7e, 0x91, 0x89, 0xfb, 0x98, 0x8e, 0x4c, 0x14, 0xfa, 0x0a, 0x91, 0xf0, 0xfa,
		0xe7, 0x11, 0x02, 0x23, 0x04, 0x6e, 0x32, 0x04, 0x1e, 0x3a, 0x13, 0x3f, 0x99, 0x3e, 0xba, 0x27,
		0xd3, 0x43, 0xf4, 0x9e, 0x48, 0x44, 0xf4, 0x24, 0x03, 0x35, 0xa1, 0x39, 0x5b, 0x13, 0xbb, 0xcd,
		0xe2, 0x0a, 0x58, 0xb0, 0xd0, 0x5e, 0x5c, 0x01, 0xcb, 0xe9, 0x06, 0x16, 0x31, 0xd1, 0xcd, 0x93,
		0xe0, 0xce, 0x5e, 0xed, 0xdb, 0xf1, 0x9f, 0xe7, 0x77, 0x0f, 0x27, 0x57, 0x97, 0x5f, 0xcf, 0xee,
		0xce, 0xae, 0x2e, 0x1f, 0xbe, 0x9e, 0xde, 0x9d, 0xde, 0x5c, 0x9c, 0x5d, 0x1e, 0x4f, 0xff, 0x4b,
		0x75, 0x9d, 0x31, 0xa4, 0xb8, 0x99, 0xf2, 0xf6, 0x3b, 0x5f, 0xef, 0xe1, 0xf2, 0xea, 0xf2, 0xe1,
		0xec, 0xf2, 0xee, 0xe6, 0xcf, 0xdb, 0xb3, 0x7f, 0x9e, 0x12, 0xaa, 0x36, 0xde, 0x9b, 0xfd, 0x9a,
		0x77, 0xa7, 0xb7, 0x77, 0xdd, 0x7d, 0xbb, 0xb3, 0xcb, 0x3f, 0x4e, 0x69, 0x89, 0x6d, 0xd3, 0xdf,
		0xf0, 0xf6, 0xcf, 0xdf, 0xce, 0x8f, 0xff, 0x75, 0x7a, 0x53, 0x77, 0x5d, 0xd1, 0xbd, 0x6e, 0x20,
		0xd7, 0x22, 0xb6, 0x3d, 0x86, 0xbe, 0x67, 0x87, 0xc3, 0xa1, 0x9d, 0x48, 0x4a, 0x07, 0x8d, 0x75,
		0x33, 0xa0, 0x3a, 0xa0, 0x3a, 0xbd, 0xa0, 0x3a, 0xca, 0x47, 0x0c, 0x08, 0x47, 0x0b, 0x88, 0x47,
		0x0a, 0x08, 0xf5, 0x8b, 0x1c, 0x47, 0x08, 0x98, 0xea, 0xd6, 0xb9, 0x8e, 0x0c, 0x70, 0x16, 0xa5,
		0x13, 0x36, 0x46, 0x96, 0xa3, 0x01, 0xdc, 0x43, 0xcb, 0x7f, 0x14, 0x80, 0x75, 0xb4, 0x6b, 0xaa,
		0x6f, 0xbb, 0x37, 0x60, 0x93, 0x96, 0xb1, 0xed, 0x86, 0x61, 0xe4, 0x4d, 0x63, 0x28, 0xe1, 0xd9,
		0x33, 0x35, 0x4d, 0x06, 0x23, 0xfb, 0x7b, 0x98, 0x3c, 0xda, 0x22, 0xf0, 0x62, 0xf5, 0x9d, 0xbb,
		0x84, 0x6d, 0x6c, 0xe7, 0xd8, 0xce, 0x7b, 0xb1, 0x9d, 0x7f, 0x0f, 0x43, 0x5f, 0x38, 0x24, 0x8d,
		0xe2, 0xd0, 0x0c, 0xb8, 0x18, 0x46, 0xe1, 0x7f, 0x44, 0x40, 0x42, 0x85, 0xb9, 0x09, 0x38, 0x3f,
		0x9c, 0x1f, 0xce, 0xdf, 0x2a, 0xe7, 0xf7, 0x43, 0xf7, 0x87, 0x1d, 0x4e, 0x12, 0x92, 0xfb, 0x67,
		0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7b, 0x00, 0xe0, 0xc9, 0x79, 0x9d, 0xb3, 0xf8, 0x54,
		0x8c, 0x23, 0x84, 0x06, 0x39, 0x4b, 0x80, 0x02, 0x40, 0x01, 0x74, 0x3d, 0xe8, 0x7a, 0xd0, 0xf5,
		0xa0, 0xeb, 0x41, 0xd7, 0xa3, 0x6f, 0xd5, 0xe8, 0x5a, 0x5f, 0x61, 0x4b, 0x46, 0xd7, 0xfa, 0x1d,
		0x9b, 0x31, 0xba, 0xd6, 0xe7, 0xd7, 0x0d, 0xba, 0xd6, 0xa3, 0x77, 0xb4, 0xd5, 0xac, 0x83, 0x11,
		0x37, 0x35, 0xf4, 0x8e, 0x46, 0xd7, 0x7a, 0x20, 0x0f, 0x90, 0x07, 0xc8, 0xd3, 0x06, 0xe4, 0x41,
		0xd7, 0xfa, 0x3d, 0x91, 0x30, 0xba, 0xd6, 0x93, 0xcf, 0xa1, 0xad, 0x9d, 0xa3, 0x6a, 0xac, 0x7d,
		0xfd, 0x6d, 0xfa, 0x18, 0x27, 0xb3, 0xa7, 0x30, 0xa6, 0x8d, 0xfd, 0x14, 0xd2, 0x45, 0x14, 0x09,
		0xcf, 0x8e, 0x44, 0x9c, 0x84, 0x51, 0x3a, 0x55, 0xb6, 0xef, 0xbc, 0x89, 0x48, 0x3d, 0xc8, 0xde,
		0x65, 0x14, 0x72, 0x38, 0x22, 0xf0, 0x5e, 0xc8, 0xe1, 0xe9, 0x72, 0xb7, 0xc7, 0x51, 0x98, 0x84,
		0x6e, 0xe8, 0xab, 0xb2, 0xdb, 0x6c, 0x47, 0xfe, 0xa4, 0xf0, 0xd9, 0xd3, 0x60, 0xf2, 0x34, 0x7d,
		0x09, 0xbd, 0x43, 0x85, 0x4d, 0xb2, 0x1e, 0xa8, 0x5e, 0xe9, 0xa6, 0x97, 0xa8, 0xac, 0xce, 0xa2,
		0x0b, 0x47, 0x52, 0x43, 0xb8, 0x6f, 0x04, 0x90, 0xdc, 0xed, 0xfb, 0x46, 0xc2, 0x64, 0x7e, 0xf3,
		0x77, 0x42, 0x89, 0xb5, 0x56, 0xf8, 0xcd, 0xba, 0x41, 0x88, 0x16, 0xe4, 0x3e, 0x3a, 0x90, 0x2d,
		0x28, 0x7d, 0x76, 0xda, 0x2e, 0x5c, 0xf0, 0x38, 0x14, 0x95, 0x2f, 0x11, 0x79, 0x53, 0xbd, 0xfa,
		0xeb, 0x6a, 0x64, 0x35, 0x0e, 0x7d, 0xe9, 0x32, 0x5c, 0xa7, 0x54, 0x60, 0x13, 0xd0, 0x06, 0x68,
		0x03, 0xb4, 0x99, 0xe0, 0x53, 0xed, 0x45, 0xb7, 0x9e, 0x09, 0x8c, 0xb4, 0xf0, 0x4a, 0x83, 0xd6,
		0xb8, 0x6c, 0x7e, 0x9e, 0x2e, 0x6b, 0x93, 0x42, 0xd9, 0xb7, 0x59, 0x63, 0xf8, 0xe9, 0xd8, 0xc5,
		0x49, 0xe4, 0xc8, 0x20, 0x61, 0x08, 0x6b, 0x0b, 0x8c, 0x22, 0xc4, 0x45, 0x88, 0xdb, 0xe5, 0x10,
		0x37, 0xbb, 0x23, 0x80, 0xcc, 0x01, 0x2b, 0xde, 0x36, 0xd0, 0x7d, 0xe6, 0x87, 0x4c, 0x3c, 0xc9,
		0xd9, 0x90, 0x89, 0xa7, 0x31, 0x3d, 0x93, 0x6b, 0x80, 0x78, 0xaa, 0x7f, 0x18, 0xea, 0x7e, 0x0e,
		0x81, 0x36, 0x40, 0x9b, 0xb6, 0xa1, 0x8d, 0xea, 0x66, 0x9f, 0x19, 0xa0, 0x95, 0xfc, 0xe6, 0xd6,
		0x1f, 0xa5, 0xf4, 0x97, 0x69, 0xfb, 0x67, 0x73, 0x4c, 0x4e, 0x07, 0xd5, 0xe4, 0xa8, 0xdc, 0x0e,
		0xab, 0xcd, 0x71, 0xb5, 0x39, 0xb0, 0x3e, 0x47, 0xa6, 0x39, 0x34, 0xd1, 0xb1, 0xf9, 0xe8, 0x04,
		0x3f, 0xad, 0x60, 0xa2, 0x17, 0xf4, 0xf1, 0xa5, 0x9c, 0x0f, 0x63, 0x28, 0x3d, 0x2e, 0x06, 0x3f,
		0x4a, 0x09, 0x32, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x02, 0x1a, 0x4a, 0x36, 0xa9, 0xa5, 0xd0,
		0x99, 0x21, 0x52, 0xb5, 0x57, 0x66, 0x85, 0x5c, 0xf5, 0xb5, 0xb4, 0xa4, 0xa1, 0xfa, 0x2b, 0x33,
		0x4e, 0xaa, 0x02, 0xa3, 0x4e, 0x19, 0x31, 0xb3, 0x91, 0xd9, 0xd1, 0x98, 0xe1, 0xc8, 0x2b, 0xed,
		0x07, 0xc4, 0x2d, 0x54, 0x57, 0xea, 0xe3, 0x2d, 0xbd, 0x0f, 0xf3, 0x24, 0x7b, 0x4e, 0x85, 0x02,
		0xec, 0x7a, 0xb5, 0x95, 0x71, 0x24, 0xc3, 0x48, 0x26, 0x6f, 0x1c, 0xd5, 0x4a, 0x73, 0x4b, 0x50,
		0x74, 0x59, 0x92, 0x24, 0x50, 0x5a, 0xa8, 0x49, 0x94, 0x66, 0xb6, 0x40, 0x3e, 0x75, 0x57, 0xb9,
		0xd3, 0xc9, 0xa6, 0x4f, 0x1d, 0x11, 0x4c, 0xd0, 0x3a, 0x9f, 0x2c, 0xfe, 0x31, 0x50, 0x33, 0x8e,
		0x4e, 0x28, 0xcc, 0xd1, 0x53, 0x66, 0x8e, 0xa9, 0x33, 0x4a, 0x66, 0x8f, 0xb1, 0x67, 0x07, 0x13,
		0xc7, 0xb6, 0xb8, 0x3a, 0xa6, 0xe8, 0x9e, 0x02, 0xfe, 0x0e, 0x2a, 0x5a, 0x67, 0xa5, 0xa1, 0xa8,
		0xe0, 0xde, 0xe4, 0x92, 0xc3, 0x70, 0x92, 0xc8, 0x60, 0x44, 0x29, 0xd6, 0xc8, 0x41, 0x69, 0x81,
		0x4d, 0xa4, 0x82, 0x40, 0x53, 0x7a, 0x4c, 0x53, 0xc8, 0x69, 0x21, 0x37, 0x8c, 0x13, 0xdb, 0x7d,
		0x74, 0xa6, 0xa0, 0x28, 0x22, 0x19, 0x27, 0xd2, 0xe5, 0xd3, 0x49, 0x8b, 0x8c, 0xf3, 0x08, 0xa6,
		0x87, 0x9d, 0x17, 0x4c, 0xa7, 0x21, 0xf8, 0x34, 0xf2, 0x1e, 0x4f, 0x12, 0xd5, 0x6b, 0xbd, 0x20,
		0x9d, 0xee, 0x77, 0xfa, 0xdc, 0x30, 0xb7, 0x5c, 0x44, 0xa5, 0x02, 0xc2, 0x3a, 0x30, 0x38, 0xfe,
		0x28, 0x8c, 0x64, 0xf2, 0xf8, 0xc4, 0xb7, 0x66, 0xd6, 0xb0, 0x61, 0x69, 0xff, 0xbd, 0x91, 0x74,
		0x94, 0x0b, 0x26, 0x74, 0xc0, 0x45, 0x31, 0x6c, 0x30, 0x1c, 0x3d, 0xd0, 0x0d, 0x1b, 0xda, 0xe1,
		0x43, 0x3b, 0x8c, 0x6c, 0x87, 0x13, 0xfa, 0xd1, 0x05, 0x5e, 0x38, 0x61, 0x8c, 0x1b, 0x2d, 0xd6,
		0x1c, 0x4d, 0x6e, 0xf5, 0xb2, 0xe5, 0x6a, 0x72, 0x54, 0xe1, 0xe8, 0x9d, 0x19, 0xf3, 0xc0, 0x11,
		0xbb, 0xa7, 0xa8, 0xc9, 0x92, 0xcc, 0x2e, 0x06, 0x64, 0x86, 0x9c, 0x36, 0xb0, 0x18, 0x58, 0x0c,
		0x2c, 0x06, 0x16, 0xf7, 0x03, 0x8b, 0x79, 0xca, 0x2a, 0x8b, 0xc1, 0x98, 0xa3, 0xc6, 0x12, 0x68,
		0x0c, 0x34, 0x06, 0x1a, 0x03, 0x8d, 0xcd, 0x46, 0xe3, 0x46, 0x25, 0x93, 0x79, 0xb5, 0x13, 0x17,
		0xff, 0xe5, 0x29, 0x7a, 0xca, 0xac, 0xb1, 0x15, 0x3f, 0x2d, 0x2d, 0x6a, 0x2c, 0x82, 0xca, 0xbe,
		0x84, 0xa5, 0x18, 0x8a, 0x6b, 0x86, 0x99, 0x8a, 0xa3, 0x32, 0x7b, 0xf5, 0x16, 0x49, 0xe5, 0xb3,
		0x5e, 0x07, 0xfc, 0xc2, 0xba, 0x55, 0x67, 0x39, 0xd5, 0xcd, 0xec, 0x8d, 0x56, 0x7e, 0x72, 0x12,
		0xc6, 0xc9, 0xc9, 0xfa, 0xfb, 0xb4, 0xb0, 0xd6, 0xdc, 0x93, 0xcf, 0x22, 0x8a, 0xa7, 0x33, 0x4e,
		0x6c, 0xb2, 0x92, 0xdb, 0x03, 0x72, 0x96, 0x51, 0x77, 0x5e, 0x8e, 0xf5, 0x21, 0x8d, 0x82, 0x34,
		0x4a, 0x93, 0x6c, 0x4e, 0x97, 0x07, 0x5b, 0x4c, 0x0d, 0x5e, 0x32, 0x5b, 0xb4, 0x46, 0x2f, 0xcd,
		0xe2, 0xae, 0x8c, 0x6d, 0xf1, 0xea, 0xfa, 0x93, 0x58, 0x3e, 0x33, 0x9e, 0xf2, 0x59, 0xb3, 0x4a,
		0x4d, 0xcb, 0x89, 0xa1, 0x33, 0xf1, 0x67, 0xfe, 0x12, 0xe1, 0xe0, 0x24, 0xe0, 0x1b, 0xf0, 0xdd,
		0x2e, 0xf8, 0x56, 0xbf, 0xba, 0x74, 0x2b, 0x6a, 0x1f, 0xb6, 0x10, 0x69, 0x7d, 0x27, 0x49, 0x83,
		0x14, 0x5d, 0x15, 0x43, 0x5b, 0xec, 0xa3, 0x68, 0x08, 0x70, 0x09, 0xb8, 0xd4, 0x06, 0x97, 0x6c,
		0x45, 0x43, 0x43, 0xf9, 0x2a, 0x3c, 0x5b, 0x13, 0x48, 0xe4, 0x96, 0xfc, 0xce, 0x6f, 0x33, 0x3c,
		0x6d, 0xf2, 0x11, 0x69, 0x13, 0xa4, 0x4d, 0x4a, 0x40, 0x0d, 0xd2, 0x26, 0xaa, 0xab, 0x17, 0x49,
		0xec, 0x32, 0xef, 0xf4, 0x97, 0x4c, 0x12, 0x11, 0x69, 0x87, 0xea, 0xe2, 0xaf, 0x01, 0x46, 0x03,
		0xa3, 0x81, 0xd1, 0xc0, 0x68, 0x60, 0xf4, 0xce, 0x77, 0xfa, 0x7b, 0x22, 0x64, 0x30, 0xaa, 0x8d,
		0x56, 0xef, 0xfe, 0x3a, 0x94, 0x23, 0x01, 0xb3, 0x81, 0xd9, 0xc0, 0x6c, 0x60, 0xf6, 0xce, 0x77,
		0x4a, 0x22, 0x67, 0x38, 0x94, 0xae, 0x3d, 0x8e, 0xc2, 0xb1, 0x88, 0x92, 0x37, 0x4d, 0x45, 0xfb,
		0xc5, 0x5f, 0x03, 0x8c, 0x06, 0x46, 0x03, 0xa3, 0x81, 0xd1, 0xc0, 0xe8, 0x9d, 0xef, 0xf4, 0xe2,
		0x04, 0x5e, 0x0d, 0xda, 0x47, 0xf1, 0xd7, 0x40, 0xfb, 0x00, 0x46, 0x03, 0xa3, 0x81, 0xd1, 0x28,
		0xeb, 0xd7, 0x33, 0x83, 0x8b, 0xb2, 0x7e, 0x1d, 0x0c, 0x19, 0x25, 0xfe, 0x28, 0xf1, 0xd7, 0x5d,
		0xe2, 0xaf, 0x4d, 0x7e, 0x6b, 0xb0, 0xca, 0xff, 0x7c, 0xf6, 0x4e, 0xed, 0x2f, 0xf4, 0x7f, 0x72,
		0x5e, 0x6d, 0xc7, 0xf7, 0xc3, 0x17, 0xe1, 0xd9, 0x6e, 0x18, 0x27, 0x7c, 0x05, 0x50, 0x39, 0xcb,
		0x28, 0x7d, 0x2a, 0xc7, 0x03, 0x51, 0xfa, 0x84, 0xd2, 0x27, 0x85, 0x17, 0x64, 0x2b, 0x7d, 0x22,
		0xb7, 0x60, 0xde, 0xba, 0xbc, 0x89, 0x2d, 0x99, 0x21, 0xeb, 0xd5, 0x00, 0x15, 0x08, 0x1d, 0x4d,
		0x80, 0x92, 0xbe, 0x85, 0x90, 0xe4, 0xd6, 0xd2, 0xdb, 0xb0, 0xe1, 0x88, 0xd1, 0x24, 0x4f, 0xeb,
		0xe9, 0xcd, 0x7f, 0xbc, 0xee, 0x65, 0x71, 0xb7, 0xa6, 0xd6, 0x0c, 0xba, 0x39, 0xf3, 0xcc, 0xad,
		0xab, 0x73, 0xf6, 0x35, 0x34, 0x4d, 0xd6, 0xe4, 0x6e, 0x9b, 0x71, 0x70, 0xeb, 0xa7, 0x54, 0x5f,
		0x2b, 0xec, 0x46, 0x66, 0xf9, 0x9d, 0x99, 0xd6, 0xee, 0x3b, 0x94, 0xd7, 0xd0, 0xd4, 0x93, 0x08,
		0xed, 0x88, 0x40, 0x42, 0x41, 0x42, 0x41, 0x42, 0x41, 0x42, 0x41, 0x42, 0x41, 0x42, 0x41, 0x42,
		0x41, 0x42, 0x3b, 0x4b, 0x42, 0x91, 0xca, 0xe3, 0x4c, 0xe5, 0x31, 0xe7, 0x74, 0xac, 0x66, 0x93,
		0x78, 0x17, 0xce, 0xeb, 0xf1, 0xec, 0x65, 0x4e, 0xa6, 0xef, 0xd2, 0xf2, 0xec, 0x9d, 0x27, 0x7c,
		0xe7, 0x4d, 0x4f, 0xfa, 0x6e, 0x66, 0x1a, 0xf9, 0xbb, 0xc6, 0xe2, 0x21, 0xe4, 0xef, 0x90, 0xbf,
		0x2b, 0x6d, 0x08, 0xf9, 0x3b, 0x48, 0x27, 0x90, 0x4e, 0x20, 0x9d, 0x40, 0x3a, 0x81, 0x74, 0x02,
		0xe9, 0x04, 0xd2, 0x09, 0xa4, 0x13, 0x48, 0x27, 0xcd, 0x78, 0x01, 0xf2, 0x77, 0x20, 0xa1, 0x20,
		0xa1, 0x20, 0xa1, 0x20, 0xa1, 0x20, 0xa1, 0x20, 0xa1, 0x20, 0xa1, 0x20, 0xa1, 0x20, 0xa1, 0x75,
		0x5a, 0x40, 0xfe, 0x6e, 0x47, 0xfe, 0x8e, 0x23, 0xa9, 0x63, 0x99, 0x92, 0xc0, 0xfb, 0x9a, 0xbe,
		0x4c, 0xcb, 0x33, 0x78, 0x8f, 0xe1, 0x38, 0xd6, 0x93, 0xc0, 0x4b, 0x2d, 0x23, 0x7f, 0xd7, 0x58,
		0x3c, 0x84, 0xfc, 0x1d, 0xf2, 0x77, 0xa5, 0x0d, 0x21, 0x7f, 0x07, 0xe9, 0x04, 0xd2, 0x09, 0xa4,
		0x13, 0x48, 0x27, 0x90, 0x4e, 0x20, 0x9d, 0x40, 0x3a, 0x81, 0x74, 0x02, 0xe9, 0xa4, 0x19, 0x2f,
		0x40, 0xfe, 0x0e, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24,
		0x14, 0x24, 0x14, 0x24, 0xb4, 0x4e, 0x0b, 0xc8, 0xdf, 0xed, 0xc8, 0xdf, 0x31, 0xe4, 0x74, 0x2c,
		0x53, 0xd2, 0x77, 0x7f, 0x4c, 0xdf, 0xa5, 0x85, 0xd9, 0xbb, 0x48, 0xc6, 0x3f, 0xec, 0xe5, 0x7d,
		0xf8, 0xba, 0xee, 0x12, 0xde, 0xfd, 0x35, 0xc8, 0xeb, 0x35, 0x16, 0x27, 0x21, 0xaf, 0x87, 0xbc,
		0x5e, 0x35, 0xb0, 0x58, 0xf7, 0x5d, 0x4d, 0x77, 0xe9, 0x6c, 0xfd, 0x26, 0x48, 0x2e, 0x3c, 0x50,
		0x82, 0xab, 0x1a, 0x1a, 0x95, 0x5a, 0x70, 0x55, 0x83, 0xea, 0xea, 0xc5, 0x75, 0x3a, 0xa5, 0x91,
		0x5a, 0x7a, 0x22, 0x48, 0xe4, 0x50, 0x8a, 0xc8, 0xf6, 0x25, 0x43, 0x63, 0xf4, 0x62, 0x94, 0xde,
		0xfc, 0x16, 0x20, 0x34, 0x10, 0x1a, 0x08, 0x0d, 0x84, 0x36, 0x17, 0xa1, 0x99, 0x46, 0x90, 0xf5,
		0xe2, 0x99, 0xa5, 0x42, 0xba, 0x76, 0x01, 0xcd, 0x21, 0xe3, 0x28, 0xd6, 0x71, 0x11, 0x4d, 0xf6,
		0x65, 0xac, 0x17, 0xd2, 0x74, 0x45, 0xcd, 0x9b, 0x5f, 0x83, 0xa4, 0x29, 0xb8, 0xc1, 0x4d, 0x48,
		0xb8, 0x09, 0x49, 0xb7, 0x7c, 0xab, 0x53, 0xc7, 0x6b, 0x58, 0xcb, 0xbd, 0x91, 0xf1, 0x8f, 0xaf,
		0x8b, 0x37, 0x6b, 0xff, 0xb5, 0x48, 0xb3, 0xd9, 0x0c, 0xbf, 0xff, 0x95, 0x0e, 0x96, 0xb0, 0x87,
		0x93, 0xc0, 0x65, 0x59, 0x88, 0x4b, 0xf6, 0xbf, 0xed, 0x1b, 0x78, 0xe4, 0xdc, 0x0f, 0x90, 0x73,
		0x21, 0xe7, 0x42, 0xce, 0xd5, 0xc8, 0xdc, 0x75, 0x7b, 0xf2, 0x1a, 0x77, 0xff, 0xc4, 0x60, 0xeb,
		0x34, 0x98, 0x3c, 0x4d, 0xdf, 0xfc, 0x67, 0x0b, 0xf1, 0x38, 0x09, 0x7d, 0x11, 0x39, 0xdf, 0x7d,
		0x61, 0xcb, 0xa7, 0xb1, 0xe3, 0x32, 0x5e, 0x53, 0x97, 0xb3, 0x0c, 0xfc, 0x05, 0xfe, 0x02, 0x7f,
		0x5b, 0x84, 0xbf, 0xa3, 0xc8, 0xf1, 0x44, 0x6c, 0x87, 0x43, 0x1e, 0x0f, 0x5e, 0xc3, 0x5d, 0x8e,
		0x98, 0xea, 0x2c, 0x95, 0x78, 0x93, 0xb7, 0xdf, 0x9c, 0x58, 0x43, 0xae, 0xef, 0xf7, 0x9b, 0xe3,
		0xaf, 0xa7, 0xb7, 0x0f, 0x57, 0xdf, 0x1e, 0xce, 0x2e, 0xae, 0x8f, 0x4f, 0xee, 0xb8, 0x56, 0x78,
		0x5a, 0xaf, 0x15, 0xb3, 0x16, 0x3a, 0x32, 0xcb, 0xa6, 0xdb, 0x46, 0xe0, 0xe1, 0xe2, 0xec, 0xf2,
		0xea, 0x66, 0x31, 0x1c, 0x7c, 0x02, 0xe4, 0xfb, 0xd6, 0x0d, 0xc4, 0x1f, 0x67, 0x77, 0xe7, 0xa7,
		0xb7, 0xb7, 0xbd, 0x1e, 0x83, 0xf3, 0xab, 0xcb, 0xdf, 0xb1, 0x16, 0xee, 0x1e, 0x2e, 0x8e, 0xff,
		0x5b, 0x87, 0x53, 0xb0, 0x58, 0xba, 0x6f, 0x7a, 0x4f, 0x7b, 0x57, 0xef, 0x27, 0x15, 0x97, 0x0f,
		0x97, 0x20, 0xd6, 0xb8, 0x10, 0x46, 0xd8, 0xa3, 0x9a, 0x93, 0xb8, 0xd4, 0x9c, 0xa6, 0xfa, 0x02,
		0x51, 0x58, 0x1c, 0x83, 0x45, 0xba, 0x6d, 0x75, 0x8c, 0x55, 0x57, 0xc8, 0x4a, 0x64, 0x94, 0x37,
		0xaa, 0xb8, 0x70, 0x69, 0x35, 0x86, 0xe4, 0x60, 0x88, 0x23, 0x08, 0x5a, 0x0f, 0x7e, 0x56, 0xdd,
		0x83, 0xb2, 0x9a, 0x99, 0x02, 0x1e, 0xf6, 0x40, 0x87, 0x3d, 0xc0, 0xc9, 0x07, 0x36, 0x6b, 0x43,
		0xd8, 0x12, 0x00, 0xa6, 0xd6, 0x02, 0x0e, 0x9c, 0xe7, 0x50, 0x7a, 0xcb, 0xec, 0x38, 0x9b, 0x8a,
		0xb1, 0x61, 0x17, 0x1a, 0x06, 0x34, 0x0c, 0x68, 0x18, 0x2d, 0xd2, 0x30, 0x26, 0x13, 0xe9, 0x71,
		0xea, 0x16, 0x47, 0x2d, 0xd4, 0x78, 0x97, 0x34, 0xc3, 0x7e, 0x11, 0x72, 0xf4, 0xc8, 0x28, 0xf2,
		0xe6, 0x4d, 0x03, 0x21, 0x81, 0x90, 0x40, 0xc8, 0x36, 0x21, 0x24, 0xd7, 0xe1, 0x70, 0xc6, 0x43,
		0xe1, 0xcc, 0x87, 0xc1, 0x79, 0xeb, 0xe0, 0x34, 0xd4, 0xa9, 0x6a, 0x39, 0x21, 0xac, 0xeb, 0xb0,
		0xb7, 0xce, 0xe3, 0xbf, 0x3f, 0x79, 0x0b, 0x0b, 0x5b, 0x37, 0x55, 0xfa, 0x0f, 0x71, 0x6b, 0x9d,
		0x3d, 0x43, 0xca, 0x29, 0xef, 0x5b, 0x48, 0xd2, 0xc4, 0xab, 0xeb, 0x4f, 0x3c, 0x61, 0xfb, 0x32,
		0xf8, 0xc1, 0xc7, 0xcf, 0xd6, 0xac, 0x82, 0x9a, 0x81, 0x9a, 0x81, 0x9a, 0x21, 0x78, 0x6d, 0x25,
		0x2e, 0x06, 0xa1, 0x27, 0xf8, 0x71, 0x31, 0xb5, 0x0a, 0x5c, 0x04, 0x2e, 0x02, 0x17, 0x81, 0x8b,
		0xad, 0xc5, 0x45, 0x5b, 0x78, 0x23, 0x61, 0x8f, 0x43, 0x4a, 0x76, 0x72, 0x27, 0x44, 0xae, 0x7e,
		0x01, 0xd0, 0x12, 0x68, 0x09, 0xb4, 0x04, 0x5a, 0xb6, 0x12, 0x2d, 0xe7, 0xa5, 0x39, 0xcc, 0x10,
		0x99, 0x5a, 0x05, 0x2e, 0x02, 0x17, 0x81, 0x8b, 0xc0, 0xc5, 0x56, 0xe1, 0xa2, 0x0c, 0x74, 0xa8,
		0x8e, 0x6b, 0x56, 0x81, 0x8b, 0xc0, 0x45, 0xe0, 0x22, 0x70, 0xb1, 0x95, 0xb8, 0xc8, 0xab, 0x3a,
		0xae, 0x59, 0x05, 0x2e, 0x02, 0x17, 0x81, 0x8b, 0xc0, 0xc5, 0xd6, 0xe2, 0xa2, 0x16, 0xd5, 0x71,
		0xdb, 0x17, 0x00, 0x2d, 0x81, 0x96, 0x40, 0x4b, 0xa0, 0x65, 0x2b, 0xd1, 0x92, 0x57, 0x75, 0x5c,
		0xb3, 0x0a, 0x5c, 0x04, 0x2e, 0x02, 0x17, 0x81, 0x8b, 0xad, 0xc4, 0x45, 0xfe, 0xe3, 0x7a, 0x39,
		0xcb, 0xc0, 0x47, 0xe0, 0x23, 0xf0, 0x11, 0xf8, 0xd8, 0x2a, 0x7c, 0xf4, 0x43, 0xd7, 0xf1, 0x6d,
		0xe9, 0xf1, 0xe1, 0x62, 0x66, 0x11, 0x78, 0x58, 0x0e, 0x0f, 0x67, 0x5d, 0x3b, 0x80, 0x82, 0x5a,
		0x50, 0x70, 0x3e, 0xb8, 0xc0, 0xbe, 0x8d, 0x95, 0xc7, 0xd6, 0xa2, 0xbe, 0xd5, 0xe8, 0xc7, 0x72,
		0x75, 0x53, 0x36, 0xa6, 0x1c, 0x1d, 0xcc, 0x7b, 0x73, 0x93, 0x1b, 0x50, 0x0f, 0xa8, 0xb7, 0xe7,
		0xb5, 0xd8, 0x6e, 0x6d, 0xc3, 0x15, 0xf8, 0x74, 0x83, 0xda, 0x6f, 0xfb, 0x61, 0x03, 0x04, 0x5d,
		0xc0, 0xa0, 0x1d, 0x20, 0xb4, 0x03, 0x85, 0x7e, 0xc0, 0xe0, 0x01, 0x0e, 0x26, 0x00, 0xe1, 0xa7,
		0x4f, 0xfa, 0x68, 0x14, 0x33, 0x9d, 0xe2, 0x9b, 0x07, 0x8e, 0xbb, 0xd8, 0x52, 0xa0, 0xd4, 0x74,
		0x4f, 0xe6, 0x8a, 0x6d, 0x20, 0x31, 0x90, 0x18, 0x48, 0x0c, 0x24, 0xee, 0x2a, 0x12, 0x9b, 0x70,
		0x73, 0x17, 0x1b, 0xdc, 0xe2, 0xae, 0x2e, 0xdc, 0xd5, 0xc5, 0xda, 0xa2, 0xb8, 0xa0, 0xd5, 0xed,
		0x01, 0x13, 0x2d, 0xa8, 0xad, 0x61, 0xf1, 0xdd, 0xfc, 0x1d, 0x56, 0x7e, 0x94, 0xe2, 0x5b, 0x0b,
		0xa5, 0xb5, 0xe9, 0x7e, 0x2c, 0xa2, 0x48, 0x78, 0x76, 0x12, 0x39, 0x41, 0x3c, 0x0e, 0xa3, 0xc4,
		0xf6, 0x9d, 0x37, 0x11, 0xf1, 0xe9, 0x6d, 0xdb, 0xbf, 0x02, 0xa9, 0x87, 0x72, 0x4c, 0x0f, 0xa9,
		0x58, 0xa4, 0x62, 0x9b, 0x64, 0x71, 0xcb, 0xa4, 0xe1, 0xd4, 0x6d, 0xed, 0x71, 0x14, 0x26, 0xa1,
		0x1b, 0xfa, 0x5c, 0xe1, 0x5c, 0xb7, 0xae, 0xde, 0xc2, 0x35, 0x05, 0x2a, 0x1c, 0xa0, 0x0d, 0xf7,
		0x14, 0xe4, 0xb7, 0xfd, 0xda, 0x2e, 0x2a, 0x78, 0xa7, 0x71, 0x31, 0x2d, 0x62, 0x06, 0xc5, 0x8a,
		0x00, 0x5a, 0x84, 0x40, 0x8f, 0x08, 0xb4, 0x44, 0x00, 0x34, 0xc6, 0x5f, 0x75, 0x02, 0x88, 0x5e,
		0x5c, 0xaf, 0xf7, 0x2a, 0x78, 0x6a, 0x5d, 0x1e, 0x5a, 0xcd, 0x1d, 0xcb, 0x3b, 0x55, 0x85, 0xf9,
		0x1c, 0x44, 0x22, 0x4e, 0xc2, 0x28, 0x9d, 0x4c, 0xdb, 0x0d, 0xc3, 0xc8, 0x93, 0x81, 0x93, 0x08,
		0x3b, 0x51, 0xd9, 0x8b, 0x97, 0xf7, 0x5e, 0xee, 0x30, 0x5a, 0xd5, 0xd9, 0x95, 0x48, 0xb3, 0x32,
		0x49, 0xa6, 0x90, 0x62, 0xd6, 0x7b, 0x40, 0xa8, 0x84, 0x97, 0x8d, 0xe0, 0xb2, 0x11, 0x5a, 0xee,
		0x7b, 0x3e, 0xf4, 0x6e, 0x32, 0xca, 0x64, 0x74, 0xa5, 0xb3, 0x3c, 0x65, 0xe1, 0x53, 0x89, 0xa6,
		0x22, 0xb1, 0xd4, 0x09, 0x32, 0xc2, 0x1e, 0x47, 0x32, 0x8c, 0xa6, 0x93, 0x4d, 0x44, 0x96, 0x15,
		0x4b, 0x80, 0x13, 0xc0, 0x49, 0x2f, 0xe0, 0x44, 0xb9, 0xcb, 0x3d, 0xa1, 0xab, 0x3d, 0xb1, 0x8b,
		0x3d, 0x21, 0xc0, 0xe3, 0xe8, 0x52, 0xcf, 0x25, 0xb8, 0x31, 0x75, 0xa1, 0xe7, 0xec, 0x5b, 0x4e,
		0x91, 0x50, 0x39, 0xba, 0xca, 0x73, 0x0f, 0x2d, 0x7f, 0x1e, 0x84, 0x75, 0xb4, 0x6b, 0x0a, 0x9b,
		0xef, 0x8d, 0xd8, 0xaa, 0x9f, 0x45, 0x14, 0x4f, 0x89, 0xfb, 0x93, 0x4a, 0xe7, 0x90, 0x95, 0x8d,
		0x7a, 0xcd, 0x0e, 0xb6, 0x69, 0x6c, 0xd3, 0xbd, 0xd8, 0xa6, 0x49, 0xeb, 0xbe, 0x53, 0xa4, 0x3f,
		0x16, 0xfe, 0x4c, 0x0e, 0x59, 0xa8, 0x34, 0xea, 0x60, 0x92, 0x37, 0x05, 0x3c, 0x01, 0x9e, 0xf4,
		0x02, 0x4f, 0xa8, 0x4b, 0xbf, 0x5b, 0x90, 0x32, 0xf9, 0x6e, 0xaf, 0x2b, 0xbf, 0x04, 0x4c, 0xc9,
		0xdb, 0x52, 0x03, 0x95, 0x43, 0x55, 0x50, 0xf9, 0x08, 0x50, 0x01, 0xa8, 0x28, 0x80, 0x8a, 0xea,
		0x01, 0x96, 0xc1, 0x32, 0x7f, 0x62, 0xa7, 0x87, 0x94, 0xc9, 0xf7, 0x80, 0x6f, 0x1a, 0xa4, 0xdd,
		0x01, 0xfe, 0x01, 0x77, 0x80, 0xf3, 0x3a, 0x1a, 0xbb, 0xc3, 0xb1, 0x3b, 0x9e, 0x2e, 0x07, 0x24,
		0x46, 0xee, 0x8a, 0xeb, 0x88, 0x5c, 0xc0, 0xb2, 0x2c, 0x5c, 0x11, 0xce, 0x30, 0x12, 0x43, 0xca,
		0xda, 0x59, 0xec, 0x4e, 0x9f, 0x09, 0x36, 0xae, 0x0b, 0x52, 0xb4, 0x5f, 0x16, 0xd9, 0xd8, 0xdc,
		0x34, 0x7d, 0x29, 0x4c, 0xda, 0x6e, 0xff, 0xb3, 0x30, 0x28, 0xf8, 0x65, 0x8a, 0x23, 0x75, 0x95,
		0x29, 0xa8, 0xa4, 0x86, 0xd7, 0x28, 0x03, 0x13, 0x8e, 0x16, 0x19, 0x05, 0x96, 0x02, 0x4b, 0x81,
		0xa5, 0xc0, 0x52, 0x02, 0x96, 0x6e, 0x14, 0xc9, 0x34, 0x0c, 0xb6, 0x75, 0xd4, 0x84, 0x6d, 0x10,
		0x52, 0x8b, 0x0e, 0xac, 0x28, 0x17, 0x23, 0xcf, 0x8d, 0x79, 0xe5, 0x62, 0xe4, 0xd8, 0xdf, 0xe2,
		0xaf, 0x12, 0xbb, 0x9d, 0x7c, 0x5f, 0xfb, 0x81, 0x09, 0xc5, 0x61, 0xb3, 0x31, 0x22, 0x68, 0x2c,
		0xb3, 0xcf, 0xd7, 0xac, 0xab, 0x40, 0xac, 0x85, 0xae, 0x52, 0xab, 0xae, 0x42, 0xee, 0x76, 0xc6,
		0xd5, 0xe5, 0xac, 0x8b, 0xec, 0x9f, 0x78, 0x68, 0xbc, 0xdf, 0xbc, 0x9f, 0x76, 0xe8, 0xbb, 0xad,
		0x8c, 0x9f, 0x7c, 0x68, 0x9b, 0x78, 0x48, 0xbb, 0x1e, 0x25, 0x82, 0xd4, 0xf8, 0x82, 0xa3, 0xbb,
		0x18, 0xb1, 0xab, 0x18, 0xd0, 0x06, 0x68, 0xd3, 0x1c, 0xda, 0x50, 0xbb, 0x80, 0x31, 0x75, 0xff,
		0x62, 0xed, 0xfa, 0x85, 0xe6, 0xa6, 0x8d, 0x39, 0xac, 0x36, 0xc7, 0xd5, 0xe6, 0xc0, 0xfa, 0x1c,
		0x99, 0xe6, 0xd0, 0x44, 0xc7, 0xe6, 0xa3, 0x13, 0xfc, 0xb4, 0x82, 0x89, 0x5e, 0xd0, 0xc7, 0x97,
		0x52, 0x3e, 0xcc, 0xd8, 0x75, 0x8b, 0xbf, 0xdb, 0x16, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04, 0x02,
		0x1a, 0x46, 0x36, 0xb9, 0xba, 0x5c, 0xf1, 0x74, 0xb7, 0xe2, 0xeb, 0x6a, 0xa5, 0xb5, 0x9b, 0x15,
		0x4f, 0x17, 0xab, 0xee, 0x75, 0xaa, 0x98, 0xfd, 0x27, 0xb5, 0x09, 0x15, 0x77, 0xf6, 0x22, 0xfd,
		0x2f, 0x42, 0x5b, 0xa9, 0x9a, 0xaa, 0x37, 0xd2, 0x6a, 0x5a, 0xe1, 0xd9, 0x2b, 0x89, 0x42, 0x11,
		0x78, 0xc4, 0x3b, 0x20, 0x37, 0x8a, 0x75, 0xb7, 0x99, 0x6f, 0x58, 0x65, 0xf9, 0x88, 0x8a, 0x8e,
		0x0e, 0x69, 0x2d, 0xed, 0xab, 0xe8, 0x20, 0x2b, 0x2e, 0x45, 0x4e, 0x45, 0x2b, 0xc0, 0xca, 0xad,
		0xcf, 0xed, 0x5f, 0x81, 0xb8, 0xa4, 0x56, 0xe7, 0x46, 0x74, 0xa2, 0xdb, 0xf9, 0xbb, 0x1a, 0xa3,
		0xd0, 0xcb, 0xbd, 0x72, 0x3b, 0xef, 0x67, 0x06, 0x5b, 0xfb, 0xcb, 0xbf, 0x16, 0x5d, 0xc6, 0xbe,
		0xac, 0xb6, 0x1b, 0xdb, 0xf1, 0xeb, 0x8d, 0x1f, 0x07, 0xa1, 0x27, 0x36, 0x7e, 0x14, 0xbe, 0x04,
		0xc2, 0xdb, 0xbc, 0x88, 0xba, 0xa8, 0x88, 0x4c, 0x8c, 0x6d, 0x5f, 0xc6, 0xbb, 0xeb, 0xcb, 0x96,
		0x80, 0xc8, 0x5a, 0x48, 0xd6, 0xac, 0x98, 0xb5, 0x31, 0x36, 0xcc, 0xbb, 0x49, 0xa1, 0x75, 0x6c,
		0x24, 0xe5, 0x36, 0x12, 0xa6, 0x0b, 0x30, 0xb1, 0x89, 0x14, 0x6f, 0x22, 0xd9, 0xf0, 0x62, 0x03,
		0xc1, 0x06, 0xa2, 0xb0, 0x81, 0x64, 0x7f, 0xd3, 0x6a, 0xe8, 0xd7, 0x80, 0xf7, 0x00, 0x79, 0x80,
		0x3c, 0x40, 0x1e, 0x20, 0xdf, 0x1a, 0x90, 0x6f, 0x2b, 0x80, 0x67, 0x03, 0xc0, 0x0b, 0xe2, 0xeb,
		0x66, 0x01, 0xe4, 0x00, 0x72, 0x00, 0x39, 0x80, 0xdc, 0x38, 0x20, 0x6f, 0x14, 0xb5, 0x9b, 0x48,
		0x9e, 0xaf, 0xe1, 0xb2, 0x95, 0x51, 0x6d, 0xab, 0x48, 0x64, 0xb1, 0xb8, 0x75, 0x7c, 0x2d, 0x89,
		0xf7, 0x43, 0x24, 0xde, 0x8b, 0xb0, 0xcf, 0xf4, 0xc4, 0xbb, 0x8e, 0x24, 0xaf, 0xa5, 0x2d, 0x23,
		0x7f, 0x3b, 0x7f, 0xda, 0xe5, 0xdf, 0x9d, 0x06, 0xde, 0x75, 0x58, 0xe7, 0x65, 0x10, 0x94, 0x3c,
		0x7d, 0xda, 0xcd, 0x9f, 0x31, 0x31, 0x3f, 0xb3, 0x87, 0x4c, 0x3c, 0x32, 0xf1, 0x4c, 0xcc, 0xac,
		0xef, 0x99, 0x78, 0x6d, 0xf9, 0x77, 0x84, 0x5f, 0xf5, 0x3b, 0x32, 0x42, 0x30, 0xdd, 0x8e, 0x8e,
		0x30, 0xcc, 0xb0, 0x30, 0xcc, 0xa0, 0x06, 0x56, 0xcd, 0xca, 0x69, 0xb3, 0x7b, 0x93, 0xc8, 0x47,
		0xd9, 0x73, 0x2b, 0x63, 0xc3, 0x2e, 0x10, 0x1d, 0x88, 0x0e, 0x44, 0x07, 0xa2, 0xb7, 0x08, 0xd1,
		0x53, 0x04, 0x2b, 0xf8, 0x79, 0x86, 0x69, 0x7d, 0x92, 0xe1, 0x36, 0x3b, 0x6c, 0xb1, 0xc0, 0x3b,
		0xe4, 0x35, 0xc8, 0x6b, 0x39, 0x79, 0x8d, 0x22, 0xd5, 0xe8, 0xd7, 0xd3, 0xd2, 0xab, 0x1c, 0xcd,
		0x97, 0xd0, 0xa6, 0x7e, 0x1a, 0x09, 0x27, 0x26, 0x4c, 0x77, 0x41, 0x2b, 0xfa, 0xb9, 0xc5, 0x86,
		0x9b, 0x14, 0x41, 0x46, 0x83, 0x8c, 0xd6, 0xe4, 0x8e, 0xc8, 0xd8, 0xb0, 0x88, 0xc7, 0xb3, 0x2c,
		0xa6, 0xcb, 0xc9, 0x89, 0x97, 0x92, 0xd7, 0xda, 0x88, 0xd9, 0x93, 0xd1, 0x6c, 0xe8, 0xd8, 0xba,
		0x30, 0x2f, 0x2d, 0xa2, 0x09, 0x1b, 0xf0, 0x0d, 0xf8, 0xc6, 0xb0, 0x8a, 0xc6, 0x61, 0x94, 0x90,
		0xfd, 0xaa, 0xbd, 0xe8, 0x86, 0xdb, 0xf0, 0xeb, 0x8d, 0xb4, 0x7a, 0xdf, 0xde, 0x58, 0xa5, 0xed,
		0xae, 0xb6, 0x90, 0xc9, 0x84, 0x46, 0xc6, 0x4a, 0x59, 0xca, 0xe5, 0xd5, 0xbb, 0x0a, 0x6d, 0xc3,
		0x5b, 0x7c, 0xe3, 0x9c, 0x62, 0x63, 0xa1, 0x7e, 0xb4, 0x2f, 0x56, 0x6b, 0x0c, 0x64, 0xfc, 0xe5,
		0xd2, 0x6a, 0xc9, 0x76, 0xc5, 0x36, 0x3e, 0x7a, 0x7c, 0xfc, 0xc5, 0x91, 0x89, 0x9d, 0x84, 0x76,
		0x7a, 0x03, 0x67, 0x62, 0x27, 0xf2, 0x89, 0x70, 0x7d, 0x6d, 0x91, 0xb1, 0xaa, 0xed, 0xa4, 0xc5,
		0xd0, 0x99, 0xf8, 0xe9, 0xda, 0x39, 0xfc, 0x05, 0x17, 0x56, 0x02, 0x44, 0x70, 0x4f, 0x7d, 0xa9,
		0x35, 0x8f, 0x7b, 0xea, 0x15, 0xcd, 0xe0, 0x9e, 0x7a, 0xed, 0x43, 0x8b, 0x7b, 0xea, 0x2d, 0x9d,
		0xf7, 0xd4, 0xbf, 0x63, 0x5c, 0x53, 0x8b, 0xc0, 0xb8, 0x02, 0xb5, 0x51, 0x0b, 0x86, 0xd5, 0x83,
		0x60, 0xd6, 0xe0, 0x57, 0x2d, 0xe8, 0x2d, 0x3b, 0x98, 0x8a, 0x41, 0x2e, 0x7f, 0x70, 0x3b, 0xa8,
		0x72, 0x7d, 0x0d, 0x67, 0x34, 0x5b, 0x6e, 0xa7, 0xde, 0xbf, 0x84, 0x4b, 0x8c, 0x78, 0xb5, 0x70,
		0x55, 0x85, 0xc4, 0x57, 0xc4, 0xc5, 0xca, 0xbc, 0x52, 0x85, 0x4f, 0x12, 0xc3, 0x50, 0x55, 0xe6,
		0x48, 0x66, 0x8c, 0x64, 0xa6, 0x48, 0x0f, 0x33, 0x79, 0x81, 0xb3, 0x32, 0x07, 0x54, 0x0d, 0x23,
		0x2b, 0x86, 0x8f, 0x25, 0x7c, 0xeb, 0x1d, 0xe1, 0xfd, 0x2b, 0x6c, 0x18, 0xd5, 0x36, 0x8a, 0xea,
		0x1b, 0x04, 0xcb, 0xc6, 0x50, 0x6d, 0x43, 0xd8, 0x37, 0x38, 0x15, 0x37, 0x00, 0x06, 0xe0, 0x2f,
		0xb1, 0x90, 0xa8, 0x08, 0xbf, 0xdb, 0xc3, 0xb6, 0xaf, 0xa6, 0x1d, 0x83, 0x35, 0x58, 0x7b, 0xab,
		0x58, 0x44, 0xcf, 0xb2, 0x04, 0x28, 0xe5, 0x0e, 0x40, 0xac, 0x7d, 0x7a, 0xdf, 0xba, 0x2d, 0x75,
		0x2c, 0xa9, 0x34, 0x86, 0x57, 0xc1, 0x6e, 0x52, 0xec, 0x5f, 0x15, 0xb1, 0x95, 0x91, 0x5a, 0x19,
		0xa1, 0xa9, 0xb1, 0x3b, 0x0d, 0x8f, 0xca, 0x1e, 0xd3, 0x19, 0x38, 0xde, 0x93, 0x0c, 0x64, 0x9c,
		0x44, 0x4e, 0x22, 0x9f, 0x85, 0x1d, 0x27, 0x4e, 0x85, 0x33, 0x73, 0xd9, 0x14, 0x16, 0x5a, 0x01,
		0x9d, 0x00, 0x9d, 0x68, 0x8c, 0x4e, 0x10, 0x56, 0xa4, 0xa5, 0x98, 0x2c, 0xae, 0x98, 0x1c, 0xe6,
		0xa1, 0xfb, 0x2b, 0x7b, 0x5e, 0x65, 0xaf, 0xad, 0xb4, 0x5f, 0x5a, 0xd5, 0x4f, 0xb1, 0x56, 0x2e,
		0xb7, 0xe3, 0xf0, 0x55, 0x25, 0x09, 0xb9, 0x5b, 0x1e, 0xab, 0x22, 0x11, 0xf3, 0xfa, 0x6d, 0xd5,
		0x53, 0xa2, 0xe4, 0x53, 0xa1, 0x4c, 0xa7, 0x40, 0x91, 0x3b, 0x41, 0xee, 0x84, 0x45, 0xea, 0xac,
		0x3f, 0x77, 0xa2, 0x7e, 0xe6, 0x86, 0x72, 0xc6, 0xa6, 0x1d, 0xa7, 0x24, 0x1b, 0x96, 0x91, 0xd5,
		0x30, 0x09, 0x8a, 0xb2, 0x71, 0x8a, 0xf2, 0x6a, 0x64, 0x7d, 0x50, 0x99, 0x3d, 0xd1, 0x55, 0x87,
		0xe9, 0xcf, 0x6e, 0x67, 0x5f, 0x5f, 0x5a, 0x89, 0xd0, 0x43, 0x37, 0x17, 0xc3, 0x33, 0x25, 0xd8,
		0x55, 0xae, 0x3f, 0x29, 0x16, 0x2b, 0x56, 0x0c, 0x69, 0x26, 0xa2, 0x1f, 0x40, 0x44, 0x41, 0x44,
		0x4b, 0x12, 0x51, 0xf1, 0xea, 0xfa, 0x93, 0x58, 0xa5, 0x36, 0xb3, 0xf0, 0x4e, 0x90, 0xcc, 0x1a,
		0x28, 0x29, 0x28, 0x69, 0x3f, 0xca, 0x79, 0xea, 0xad, 0x0c, 0x44, 0xf5, 0x3a, 0xb5, 0x7a, 0x5d,
		0x4b, 0x6d, 0xe5, 0x0a, 0x06, 0xca, 0x80, 0x13, 0x51, 0x97, 0xd6, 0x80, 0xa8, 0x40, 0x54, 0x20,
		0x2a, 0x10, 0xb5, 0x37, 0x88, 0x3a, 0xeb, 0x9c, 0xc1, 0x02, 0xa7, 0x9b, 0xa6, 0xd4, 0xb0, 0xf4,
		0x10, 0x58, 0x0a, 0x2c, 0xad, 0x13, 0x4b, 0x55, 0xfb, 0x50, 0x16, 0x56, 0x49, 0xd0, 0x3a, 0x51,
		0xee, 0x2c, 0xc0, 0x20, 0x75, 0x8e, 0xc6, 0x69, 0x70, 0x3d, 0xce, 0xc7, 0xee, 0x84, 0xec, 0xce,
		0xa8, 0xcb, 0x29, 0xd5, 0x9c, 0x53, 0xd1, 0x49, 0xe9, 0xc4, 0x27, 0xb7, 0x8a, 0xe8, 0x9d, 0xc5,
		0x38, 0x3a, 0x8a, 0x69, 0xce, 0x7a, 0xac, 0xc9, 0xcc, 0x9c, 0x5d, 0x22, 0x4d, 0x3b, 0x7f, 0xde,
		0xf4, 0xf1, 0xe7, 0x42, 0x3d, 0x7f, 0x43, 0x91, 0x3e, 0xa0, 0x52, 0x24, 0x3d, 0xb2, 0xff, 0xfc,
		0xef, 0xe6, 0x0f, 0xf9, 0x70, 0x32, 0x7b, 0xc8, 0xb3, 0xec, 0x19, 0x0d, 0xa0, 0xa9, 0x9e, 0x7c,
		0x16, 0x51, 0x3c, 0x1d, 0x4d, 0x06, 0x25, 0xb5, 0xc8, 0x18, 0xa8, 0x2a, 0xa8, 0x2a, 0xa8, 0x2a,
		0xa8, 0x2a, 0xa8, 0x2a, 0xa8, 0x2a, 0xa8, 0x2a, 0xa8, 0xaa, 0x4e, 0x10, 0xdf, 0x28, 0xe5, 0xa1,
		0xe2, 0x26, 0xb4, 0xd2, 0x7e, 0x04, 0x0f, 0x74, 0xda, 0x5a, 0x4b, 0xf8, 0xf0, 0x75, 0xf1, 0x98,
		0xa7, 0xaf, 0x06, 0x05, 0x10, 0x91, 0xf8, 0x7b, 0x22, 0xe2, 0xf4, 0xba, 0x2c, 0x67, 0xec, 0xb8,
		0xd3, 0x5d, 0x44, 0x39, 0x7e, 0x28, 0xb0, 0x85, 0xf0, 0x01, 0xe1, 0x43, 0x97, 0xc3, 0x87, 0x24,
		0x4c, 0x1c, 0xdf, 0x8e, 0xe5, 0x7f, 0x18, 0x2e, 0x41, 0x5b, 0xb1, 0xd5, 0xf0, 0x05, 0x68, 0x06,
		0x05, 0x08, 0x8a, 0xcd, 0xce, 0x10, 0x1a, 0xa8, 0x37, 0x43, 0x6b, 0x26, 0x28, 0x20, 0x5f, 0x7a,
		0x36, 0x09, 0x64, 0xc2, 0x77, 0x2d, 0x4e, 0x6a, 0x0d, 0x97, 0xe1, 0xd4, 0xe4, 0xa6, 0xdc, 0xee,
		0xaa, 0xcd, 0x6d, 0xb5, 0xb9, 0xaf, 0x3e, 0x37, 0xa6, 0xb9, 0x33, 0xd1, 0xad, 0xf9, 0x62, 0xfe,
		0xbc, 0xbc, 0x36, 0xe7, 0x98, 0x36, 0x83, 0xab, 0x5a, 0x4c, 0xbd, 0x8b, 0x33, 0x5b, 0xb4, 0x1e,
		0xc6, 0xf4, 0x29, 0xa3, 0x34, 0xf6, 0x7a, 0x9e, 0x37, 0xd3, 0x62, 0x42, 0xd2, 0x99, 0x39, 0x40,
		0x29, 0xa0, 0x14, 0x50, 0x6a, 0x28, 0x94, 0x2a, 0xf7, 0x84, 0xdc, 0xe6, 0xa7, 0x47, 0x0c, 0xa6,
		0x68, 0x3d, 0x23, 0x37, 0xff, 0xf1, 0x38, 0x81, 0xc5, 0xd5, 0x53, 0x52, 0x13, 0xc0, 0xe5, 0xcc,
		0x32, 0xf5, 0x9c, 0xcc, 0xd9, 0x65, 0xec, 0x8a, 0xc8, 0xec, 0x1e, 0x9b, 0x0a, 0x6c, 0xeb, 0xa6,
		0x8a, 0xbf, 0x87, 0x65, 0xad, 0xb3, 0xf7, 0xce, 0x0c, 0x2b, 0xf7, 0xbd, 0xb8, 0xf4, 0xcf, 0x94,
		0xdb, 0xe2, 0x4a, 0xe9, 0xf4, 0x79, 0x79, 0xf8, 0x80, 0x2c, 0x79, 0x59, 0x75, 0x28, 0xf7, 0x37,
		0x8b, 0x07, 0x3f, 0x99, 0x3f, 0xf7, 0xc3, 0xdd, 0xf4, 0xb9, 0x6f, 0xa7, 0x8f, 0x8d, 0x1a, 0xb1,
		0xe6, 0x96, 0x8f, 0x89, 0x59, 0x9e, 0xdc, 0x5a, 0x31, 0x21, 0xc9, 0x33, 0x9d, 0x1f, 0x6f, 0xe2,
		0x13, 0xfa, 0xed, 0x67, 0x16, 0x90, 0xd0, 0xa9, 0x25, 0xfa, 0x42, 0x42, 0x87, 0x86, 0x68, 0xca,
		0x09, 0x1d, 0x11, 0x78, 0x6a, 0x57, 0x53, 0xe4, 0x96, 0x51, 0x66, 0x09, 0xd5, 0x5e, 0x48, 0xe6,
		0x34, 0x2e, 0x5d, 0xb4, 0xb5, 0xc2, 0xcb, 0x73, 0x12, 0x61, 0x3b, 0x34, 0x57, 0xb2, 0xd4, 0x8f,
		0x67, 0x12, 0x18, 0x9b, 0x12, 0x39, 0x71, 0x54, 0x6f, 0xc6, 0xc9, 0xef, 0xd8, 0x4b, 0x5b, 0x00,
		0x20, 0x00, 0x10, 0x00, 0xa8, 0x77, 0x00, 0x84, 0x90, 0x51, 0x31, 0x6a, 0xa9, 0x25, 0x50, 0xbc,
		0x5d, 0x3c, 0x9b, 0x09, 0xf1, 0xe1, 0xbc, 0xc8, 0xd6, 0x17, 0xcf, 0xc2, 0x27, 0x04, 0x89, 0x6b,
		0x66, 0xd0, 0x30, 0x04, 0x91, 0x62, 0x2f, 0x1a, 0x86, 0xc4, 0x49, 0x24, 0x83, 0x51, 0xdb, 0xaf,
		0x67, 0x5c, 0x38, 0x6f, 0xa2, 0x32, 0x1e, 0x39, 0x08, 0x48, 0xad, 0x00, 0x01, 0x80, 0x00, 0xfd,
		0x40, 0x00, 0xf5, 0x55, 0x6f, 0x11, 0x2b, 0x8f, 0x14, 0x2b, 0x8d, 0x9a, 0xea, 0xd6, 0x6b, 0x54,
		0x57, 0x59, 0xb5, 0xbe, 0xa8, 0x75, 0xb0, 0xc3, 0xc6, 0xda, 0xcd, 0x96, 0xbd, 0x10, 0x27, 0xe7,
		0x02, 0x0a, 0x17, 0xe3, 0xe4, 0x96, 0x3f, 0x6e, 0x3c, 0x60, 0x02, 0x74, 0x34, 0x9a, 0xdd, 0xbe,
		0xb4, 0x99, 0xee, 0x3e, 0x20, 0x1f, 0x4e, 0x04, 0xdb, 0x01, 0xdb, 0x69, 0x27, 0xdb, 0xe9, 0xe4,
		0x2d, 0x08, 0xec, 0x87, 0xac, 0x0d, 0xb9, 0x0f, 0x41, 0x15, 0xa7, 0x70, 0x33, 0x42, 0x8b, 0x38,
		0x6c, 0x35, 0xbe, 0xa5, 0x8f, 0xc0, 0xce, 0x7f, 0x56, 0x27, 0x7b, 0xf5, 0x64, 0xa4, 0x7a, 0x35,
		0xd7, 0xf2, 0xa3, 0x9a, 0x6f, 0xd1, 0x03, 0x4f, 0xed, 0x17, 0x4f, 0x55, 0xbf, 0x51, 0x6f, 0x18,
		0x46, 0x2f, 0x4e, 0xe4, 0xc9, 0x60, 0x64, 0x57, 0x5d, 0x9d, 0x56, 0x9b, 0x6e, 0xd4, 0x13, 0x81,
		0x67, 0x8f, 0x43, 0xa5, 0x4b, 0x4d, 0x96, 0x1f, 0xc5, 0x35, 0x26, 0xf0, 0xda, 0x26, 0xa3, 0x4b,
		0xd2, 0xb5, 0xae, 0xb9, 0xa5, 0x40, 0xbc, 0x4c, 0xb3, 0xed, 0x31, 0xa5, 0x62, 0x65, 0x46, 0x3f,
		0xa2, 0x49, 0xb5, 0xca, 0x0b, 0xd3, 0xe3, 0x48, 0x86, 0x15, 0x6f, 0xbe, 0x7a, 0x5e, 0xa5, 0xe5,
		0x3c, 0xb9, 0x01, 0x0f, 0xda, 0xee, 0x00, 0x3d, 0xd0, 0x76, 0xa7, 0xea, 0x42, 0x42, 0xdb, 0x1d,
		0x14, 0x4a, 0xaa, 0x1b, 0x44, 0xdb, 0x1d, 0xb4, 0xdd, 0xd1, 0xee, 0x9e, 0x9a, 0xdc, 0x94, 0xdb,
		0x5d, 0xb5, 0xb9, 0xad, 0x36, 0xf7, 0xd5, 0xe7, 0xc6, 0x34, 0x77, 0x26, 0xba, 0x35, 0x9d, 0xa5,
		0xef, 0xe5, 0x98, 0x68, 0xbb, 0xc3, 0x3b, 0x5d, 0x68, 0xbb, 0x03, 0x28, 0x05, 0x94, 0xf6, 0x0a,
		0x4a, 0xd1, 0x76, 0xa7, 0xca, 0x83, 0xa1, 0xed, 0x0e, 0xda, 0xee, 0xa0, 0xed, 0x8e, 0x16, 0x68,
		0xe4, 0xb3, 0x82, 0xb6, 0x3b, 0x55, 0xec, 0xb0, 0x56, 0x84, 0x64, 0x89, 0xd1, 0x03, 0x53, 0xdb,
		0xeb, 0x9c, 0x06, 0xde, 0x75, 0x98, 0xde, 0xa4, 0x85, 0x3e, 0x3a, 0x4d, 0xac, 0x87, 0x46, 0x8f,
		0x41, 0xe6, 0x26, 0x7f, 0x60, 0xd6, 0xbd, 0xe9, 0xd5, 0x4b, 0x12, 0xf2, 0xa1, 0x71, 0x91, 0xb5,
		0x9a, 0x53, 0x31, 0x1f, 0x91, 0x8a, 0x41, 0x2a, 0xa6, 0x89, 0x0b, 0xd4, 0x56, 0x17, 0x3d, 0xf3,
		0x05, 0x6a, 0x79, 0xd3, 0xe8, 0x68, 0x81, 0x0b, 0xd4, 0x2c, 0x13, 0x9c, 0xb2, 0x19, 0xfe, 0xd9,
		0xc3, 0x0b, 0xd4, 0x92, 0x70, 0x1c, 0xfa, 0xe1, 0xe8, 0xed, 0xcb, 0xe2, 0xff, 0xd8, 0xbb, 0x7f,
		0xbd, 0xf1, 0xe3, 0x20, 0xf4, 0xc4, 0xc6, 0x8f, 0xc2, 0x97, 0x40, 0x78, 0xf6, 0xf4, 0x17, 0xb6,
		0xf0, 0x46, 0x62, 0xce, 0x95, 0x0a, 0x4e, 0x08, 0x88, 0xb1, 0xed, 0xcb, 0x78, 0xd7, 0xe1, 0x81,
		0x55, 0x80, 0x6a, 0xfa, 0x86, 0x36, 0x85, 0xad, 0x77, 0x63, 0x0c, 0x98, 0xd0, 0xbb, 0xd0, 0x2a,
		0x80, 0x7b, 0xb0, 0xb6, 0x0a, 0x01, 0xda, 0x4a, 0xa0, 0x9d, 0x0d, 0x1f, 0x00, 0x1b, 0x80, 0xbd,
		0xfa, 0x37, 0xad, 0x80, 0x5a, 0x46, 0x7c, 0x05, 0xa8, 0x02, 0x54, 0x01, 0xaa, 0x00, 0x55, 0x65,
		0x50, 0x35, 0x1d, 0x30, 0xb3, 0x17, 0xe5, 0x01, 0xcd, 0x75, 0x73, 0x00, 0x4e, 0x00, 0x27, 0x80,
		0x13, 0xc0, 0xb9, 0x17, 0x38, 0x3b, 0x77, 0xc7, 0xfa, 0x1a, 0x0e, 0x5a, 0x19, 0x95, 0xb4, 0x8a,
		0x82, 0x76, 0x8b, 0x4b, 0x87, 0xc5, 0x85, 0xec, 0xe4, 0xe9, 0x33, 0x35, 0xc3, 0x48, 0xcf, 0x7c,
		0x59, 0x9a, 0xb2, 0x8d, 0xd9, 0x93, 0x2d, 0x7e, 0x64, 0x42, 0xde, 0xb1, 0x7a, 0xd7, 0x82, 0x1c,
		0xf4, 0xaa, 0x9c, 0x0f, 0xb7, 0xd0, 0x78, 0x08, 0x19, 0xc6, 0xa6, 0x76, 0x1e, 0xfa, 0x81, 0xd1,
		0x71, 0x18, 0x25, 0xb6, 0xea, 0xba, 0xb7, 0xba, 0x74, 0x54, 0xd4, 0x77, 0xde, 0x44, 0x64, 0x8f,
		0xa3, 0x30, 0x09, 0xdd, 0xd0, 0xb7, 0xe7, 0x80, 0xa9, 0x88, 0x24, 0x45, 0xc6, 0x80, 0x29, 0xc0,
		0x94, 0x7e, 0x34, 0x33, 0x23, 0x2f, 0xfe, 0x2e, 0x03, 0xcb, 0xdf, 0x13, 0xc7, 0x97, 0x43, 0x29,
		0x22, 0x36, 0x74, 0x59, 0x5a, 0x04, 0xc4, 0x00, 0x62, 0xfa, 0x08, 0x31, 0xaa, 0x1e, 0xb0, 0x86,
		0x33, 0x2a, 0x81, 0xea, 0x99, 0x27, 0x82, 0x44, 0x26, 0x6f, 0xbf, 0x39, 0x31, 0xc3, 0xb1, 0xf9,
		0xf3, 0xe3, 0x7f, 0x9d, 0xde, 0x3c, 0x5c, 0xdf, 0x5c, 0xdd, 0x5d, 0x9d, 0x5c, 0x9d, 0x3f, 0xfc,
		0xef, 0x9f, 0xc7, 0xe7, 0x67, 0xdf, 0xce, 0x4e, 0x6f, 0x54, 0x57, 0x57, 0x5a, 0x87, 0x1f, 0x93,
		0x0e, 0x9e, 0x30, 0x9d, 0x9c, 0xbb, 0xfe, 0xe3, 0xea, 0xee, 0xea, 0xf2, 0xec, 0xe4, 0x61, 0xf6,
		0x8a, 0xd4, 0x37, 0xe3, 0x7c, 0x43, 0x9e, 0x37, 0x2d, 0xfd, 0xc6, 0x0f, 0x17, 0x27, 0x0c, 0xa7,
		0xb6, 0xde, 0xb7, 0xe6, 0x75, 0xaf, 0xee, 0x6e, 0x65, 0xdf, 0x5e, 0xf8, 0xb8, 0x5f, 0x2f, 0x7c,
		0xf2, 0x47, 0xbf, 0xde, 0xf7, 0xe2, 0xb6, 0x57, 0xef, 0x7b, 0x71, 0x72, 0xdc, 0x3b, 0xc4, 0xea,
		0xdf, 0x1b, 0xf7, 0x70, 0x96, 0x7b, 0x38, 0xc7, 0x7d, 0x03, 0xea, 0xe3, 0xa6, 0x4f, 0xc8, 0xdf,
		0x37, 0xd1, 0xf7, 0x42, 0x33, 0x69, 0x27, 0x51, 0x58, 0x83, 0x5f, 0x8b, 0x46, 0x55, 0xcd, 0x7e,
		0xb1, 0xe3, 0x6e, 0xbe, 0x18, 0x85, 0x7a, 0x9a, 0xfc, 0x5e, 0x14, 0x8a, 0x69, 0x34, 0x70, 0x1c,
		0x77, 0x16, 0x39, 0xba, 0xfb, 0x66, 0x1d, 0x9e, 0xb5, 0x0e, 0xcf, 0x59, 0x57, 0x81, 0xb1, 0xd5,
		0x6b, 0x71, 0x9b, 0xc2, 0xfb, 0xf0, 0xe7, 0xe5, 0xed, 0xf5, 0xe9, 0xc9, 0xf4, 0xff, 0x7f, 0xad,
		0xbb, 0xe4, 0xf1, 0x5e, 0x77, 0x76, 0x40, 0x4f, 0x56, 0x4d, 0x0e, 0x85, 0xfb, 0xe6, 0xfa, 0xe4,
		0x26, 0xf1, 0x9b, 0x86, 0x6a, 0xce, 0xa1, 0x7d, 0x44, 0x7f, 0x78, 0xf4, 0x87, 0x2f, 0xf9, 0x98,
		0x0c, 0x79, 0x33, 0xd2, 0x62, 0xb7, 0x3a, 0x95, 0x96, 0x0f, 0x5d, 0xc7, 0xb7, 0x29, 0xf7, 0x16,
		0x66, 0x16, 0x70, 0xa5, 0x04, 0x20, 0xa3, 0xb3, 0x90, 0xd1, 0x8d, 0xab, 0xd8, 0x9f, 0x84, 0x27,
		0x1d, 0xdb, 0x7d, 0x74, 0x82, 0x40, 0xf8, 0x76, 0xe1, 0x4d, 0x7e, 0xcb, 0x3a, 0xfc, 0x78, 0x2c,
		0x5c, 0x75, 0x58, 0xa8, 0xfe, 0x55, 0x7d, 0xb9, 0x5a, 0x62, 0xfc, 0x18, 0x26, 0x61, 0x20, 0x5d,
		0x3b, 0x1d, 0x22, 0xe0, 0x48, 0x21, 0x8e, 0x6c, 0x0c, 0x52, 0x57, 0x7a, 0x1a, 0x3d, 0xb9, 0x53,
		0x57, 0x98, 0x2d, 0x40, 0x62, 0x99, 0xcc, 0xd2, 0x14, 0x2e, 0x97, 0x60, 0x72, 0x2c, 0x2e, 0x07,
		0x63, 0x77, 0x34, 0x76, 0x87, 0xd3, 0xe7, 0x78, 0xb4, 0x28, 0xbc, 0xb1, 0xcb, 0x26, 0xa6, 0x3b,
		0x50, 0x12, 0xcd, 0x78, 0x39, 0x8f, 0xc8, 0x91, 0x59, 0xe4, 0xe9, 0x94, 0x7e, 0xd8, 0xf9, 0x4e,
		0xe9, 0x6c, 0xee, 0xcb, 0xed, 0xc6, 0xda, 0xdc, 0x59, 0x9b, 0x5b, 0xeb, 0x77, 0x6f, 0x9a, 0x9b,
		0x33, 0x48, 0x91, 0x2c, 0x6e, 0x9f, 0x19, 0x1a, 0x46, 0xe2, 0xef, 0x89, 0x08, 0xdc, 0xf4, 0x5c,
		0x62, 0x9c, 0x44, 0x8e, 0x4a, 0xbb, 0xce, 0xbd, 0xcb, 0xbc, 0xf0, 0x5b, 0x98, 0x66, 0x9a, 0x07,
		0x26, 0xd8, 0xe1, 0x42, 0x07, 0x6c, 0xd4, 0x04, 0x1f, 0xba, 0x60, 0x44, 0x3b, 0x9c, 0x68, 0x87,
		0x95, 0xfa, 0xe0, 0x85, 0x07, 0x66, 0x98, 0xe0, 0x86, 0x1d, 0x76, 0x32, 0x83, 0x8e, 0xf7, 0xd7,
		0x24, 0x4e, 0xa6, 0x23, 0x69, 0x8f, 0x22, 0x27, 0x98, 0xf8, 0x4e, 0xa4, 0x72, 0x5d, 0x63, 0x69,
		0x87, 0xd9, 0xf2, 0x7d, 0xef, 0x5b, 0xd1, 0x57, 0x9f, 0x1b, 0x9a, 0x74, 0x42, 0x54, 0xcd, 0x50,
		0xa5, 0x1b, 0xb2, 0x6a, 0x83, 0xae, 0xda, 0x20, 0xac, 0x7e, 0x28, 0xe3, 0x85, 0x34, 0x66, 0x68,
		0xa3, 0x2b, 0xa6, 0x66, 0x61, 0x90, 0xc5, 0x7c, 0x0f, 0x58, 0xce, 0x36, 0xcf, 0xbd, 0x60, 0xfa,
		0xd6, 0x06, 0xe7, 0xe5, 0x2b, 0xa3, 0x48, 0x7a, 0x76, 0xa2, 0x63, 0x61, 0x64, 0x8b, 0x62, 0xf9,
		0x15, 0xd8, 0x8b, 0xb0, 0x17, 0x61, 0x2f, 0xc2, 0x5e, 0x54, 0xcb, 0x5e, 0xa4, 0x0b, 0x76, 0xb0,
		0xfd, 0x18, 0x15, 0xb7, 0x31, 0xdd, 0xae, 0x94, 0xb3, 0xab, 0xa9, 0xf7, 0x55, 0xe5, 0x14, 0xea,
		0x41, 0x96, 0x13, 0x3a, 0x58, 0xa8, 0xcf, 0x07, 0x1a, 0x35, 0x27, 0x4b, 0x4f, 0x63, 0xad, 0x8b,
		0xe9, 0x6b, 0x9f, 0xcc, 0xde, 0xba, 0xe0, 0x0f, 0x17, 0x7f, 0x77, 0x3b, 0x16, 0xee, 0xc3, 0x85,
		0x3b, 0xdb, 0x81, 0x1f, 0x6e, 0xe7, 0xef, 0xfb, 0xf0, 0x6d, 0xf1, 0xbe, 0x27, 0xcb, 0xd7, 0x35,
		0xe4, 0x0a, 0x33, 0x86, 0x65, 0x3c, 0xf0, 0xc3, 0x17, 0x11, 0xd9, 0xd9, 0xa4, 0xf2, 0x6b, 0x94,
		0x9b, 0x5f, 0xc0, 0x2b, 0x4f, 0x7e, 0x80, 0x3c, 0x09, 0x79, 0x12, 0xf2, 0xa4, 0xde, 0x6d, 0x8e,
		0x9d, 0x2f, 0xf1, 0xdf, 0x2b, 0xbb, 0x89, 0x0b, 0x47, 0x8c, 0x26, 0x79, 0xef, 0x99, 0x5d, 0xfc,
		0xd3, 0xc0, 0x3e, 0x75, 0xdc, 0x3b, 0xab, 0x39, 0xe0, 0xcd, 0xcc, 0x6b, 0xba, 0x87, 0x36, 0xb3,
		0xaf, 0xf1, 0x46, 0x53, 0x4d, 0x61, 0x8a, 0xa5, 0xeb, 0x7e, 0xda, 0xba, 0xa7, 0x54, 0xff, 0x7d,
		0xb5, 0xb5, 0xce, 0xb2, 0xa1, 0x91, 0xd1, 0x7d, 0x87, 0x48, 0xe9, 0x64, 0x3c, 0xd6, 0x4b, 0x4a,
		0x37, 0xbf, 0x00, 0xa4, 0x14, 0xa4, 0x14, 0xa4, 0x14, 0xa4, 0x14, 0xa4, 0x14, 0xa4, 0x14, 0xa4,
		0x14, 0xa4, 0x14, 0xa4, 0xb4, 0x63, 0xa4, 0xb4, 0xd1, 0xaa, 0x52, 0xe6, 0x34, 0x81, 0xc9, 0xe9,
		0x01, 0x8e, 0x2a, 0x6b, 0xc3, 0x32, 0x00, 0x34, 0x02, 0xf5, 0xb3, 0x25, 0x07, 0x1e, 0x98, 0xd6,
		0xa8, 0x81, 0x6b, 0x93, 0x72, 0x6e, 0xc7, 0x8c, 0xa5, 0x68, 0xf2, 0xad, 0x77, 0xe3, 0x34, 0xbd,
		0xf3, 0xe4, 0x04, 0xce, 0x28, 0xbd, 0xae, 0x88, 0xed, 0x38, 0xda, 0x36, 0xc3, 0x38, 0x9c, 0x86,
		0xc3, 0x69, 0xc6, 0x85, 0xca, 0x2d, 0x3b, 0x9c, 0x26, 0x5e, 0xa7, 0x7b, 0x9b, 0xf0, 0xec, 0x27,
		0xe7, 0x55, 0x3e, 0x4d, 0x9e, 0x6c, 0x19, 0x8c, 0x27, 0x89, 0x9d, 0xba, 0x1c, 0xdf, 0x81, 0xb5,
		0x9d, 0xdf, 0x82, 0x43, 0x6c, 0x0d, 0x29, 0x6a, 0x38, 0xc4, 0x86, 0x43, 0x6c, 0x95, 0xf6, 0xf6,
		0x19, 0xb5, 0x77, 0x7c, 0xdb, 0x13, 0x41, 0xcc, 0x79, 0x8a, 0x64, 0x63, 0xab, 0xcf, 0x7d, 0x0f,
		0x44, 0x79, 0x43, 0x21, 0x44, 0x17, 0x94, 0x68, 0x87, 0x14, 0xed, 0xd0, 0x52, 0x1f, 0xc4, 0xf0,
		0x6a, 0x35, 0xe6, 0x8b, 0xf2, 0x9e, 0x70, 0xe5, 0x93, 0xe3, 0x6b, 0xd1, 0xe5, 0x0f, 0x3f, 0x32,
		0xda, 0xcc, 0xa9, 0x7d, 0x9f, 0xa1, 0xfa, 0xeb, 0x91, 0x88, 0x3f, 0x42, 0xf5, 0xd7, 0xec, 0xcf,
		0xeb, 0x53, 0x5a, 0x83, 0xea, 0xff, 0x0f, 0x4c, 0xa9, 0x5e, 0xa0, 0xe7, 0xb7, 0xd6, 0xa5, 0xba,
		0x93, 0x24, 0x4c, 0x1c, 0x9f, 0x29, 0x0c, 0xce, 0x73, 0xb1, 0x15, 0xe3, 0xa0, 0xb6, 0xa0, 0xb6,
		0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6,
		0xba, 0x2c, 0xa0, 0x7a, 0x65, 0x4b, 0x85, 0xc0, 0x96, 0x0c, 0xf3, 0x81, 0xc6, 0xbc, 0x95, 0xd5,
		0x7c, 0x51, 0xc1, 0xf5, 0xf4, 0x35, 0x2e, 0xb2, 0x97, 0x9e, 0x17, 0xbb, 0x9c, 0xce, 0xdf, 0xf9,
		0x62, 0xf6, 0xca, 0x67, 0xd3, 0x37, 0x4e, 0xff, 0xb2, 0xb1, 0xea, 0x97, 0xf7, 0x1c, 0xe9, 0x4d,
		0x19, 0xd4, 0x91, 0xde, 0x2c, 0xf8, 0x16, 0xa4, 0x37, 0x1b, 0x0a, 0xe0, 0x90, 0xde, 0x44, 0x7a,
		0xb3, 0xa4, 0x21, 0xa4, 0x37, 0xa1, 0x01, 0x41, 0x03, 0x82, 0x06, 0x04, 0x0d, 0x08, 0x1a, 0x10,
		0x34, 0x20, 0x68, 0x40, 0xd0, 0x80, 0xa0, 0x01, 0x99, 0xab, 0x01, 0x21, 0xbd, 0x09, 0x6a, 0x0b,
		0x6a, 0x0b, 0x6a, 0x0b, 0x6a, 0x0b, 0x6a, 0x0b, 0x6a, 0x0b, 0x6a, 0x0b, 0x6a, 0x0b, 0x6a, 0xdb,
		0x11, 0x6a, 0x8b, 0xf4, 0x66, 0x33, 0xe9, 0x4d, 0xf6, 0xbc, 0x95, 0x65, 0x7c, 0x7a, 0x73, 0xf6,
		0xca, 0xed, 0x4e, 0x6f, 0xca, 0x20, 0x11, 0x81, 0xb7, 0x92, 0x9f, 0x0e, 0x27, 0x89, 0x86, 0xfc,
		0xe6, 0xee, 0xaf, 0x41, 0x82, 0xb3, 0xa1, 0x10, 0x0e, 0x09, 0x4e, 0x24, 0x38, 0x4b, 0x1a, 0x42,
		0x82, 0x13, 0x2a, 0x10, 0x54, 0x20, 0xa8, 0x40, 0x50, 0x81, 0xa0, 0x02, 0x41, 0x05, 0x82, 0x0a,
		0x04, 0x15, 0x08, 0x2a, 0x90, 0xb9, 0x2a, 0x10, 0x12, 0x9c, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6,
		0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0x1d, 0xa1, 0xb6, 0x48,
		0x70, 0xd6, 0x99, 0xe0, 0xd4, 0x99, 0xb8, 0xb2, 0x4c, 0xcd, 0x70, 0x9e, 0xcd, 0x5f, 0x7a, 0x7e,
		0x80, 0xf3, 0x2a, 0x7d, 0xe5, 0x0e, 0xa4, 0x38, 0xe7, 0x39, 0x6a, 0xdd, 0x29, 0xce, 0xa2, 0xaf,
		0x41, 0x8a, 0xb3, 0xa1, 0x20, 0x0e, 0x29, 0x4e, 0xa4, 0x38, 0x4b, 0x1a, 0x42, 0x8a, 0x13, 0x3a,
		0x10, 0x74, 0x20, 0xe8, 0x40, 0xd0, 0x81, 0xa0, 0x03, 0x41, 0x07, 0x82, 0x0e, 0x04, 0x1d, 0x08,
		0x3a, 0x90, 0xb9, 0x3a, 0x10, 0x52, 0x9c, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0,
		0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0xa0, 0xb6, 0x1d, 0xa1, 0xb6, 0x48, 0x71, 0x36, 0x93,
		0xe2, 0xe4, 0x4f, 0x5c, 0x59, 0xc6, 0xa7, 0x38, 0x67, 0xef, 0x6c, 0x42, 0x8a, 0x13, 0x57, 0x34,
		0x6b, 0x58, 0xdd, 0xed, 0xbd, 0xb0, 0xb9, 0x70, 0xdd, 0xd6, 0x76, 0x7b, 0xf3, 0x3b, 0x8d, 0x8b,
		0x90, 0xba, 0xf8, 0x8c, 0x59, 0x74, 0x0a, 0x8b, 0xab, 0xd9, 0x45, 0x55, 0x6d, 0xf9, 0x94, 0x5f,
		0x04, 0x15, 0x16, 0xc0, 0x60, 0xfe, 0xea, 0xd5, 0xa6, 0x3d, 0x0b, 0x1e, 0xd3, 0x4f, 0x57, 0x5c,
		0x6e, 0x6a, 0xc5, 0x13, 0xca, 0xf2, 0x10, 0x45, 0x06, 0x5a, 0x97, 0x7b, 0x66, 0x6b, 0x5a, 0x65,
		0x95, 0x11, 0xe5, 0x1c, 0x36, 0xd9, 0x86, 0x4d, 0x9e, 0xc9, 0xcb, 0x30, 0xf3, 0xc1, 0x31, 0x0c,
		0xda, 0x54, 0x8b, 0x11, 0x06, 0xcf, 0xf3, 0xb8, 0x86, 0x78, 0xd3, 0xfd, 0xcc, 0x0c, 0xed, 0x5e,
		0xfb, 0x0f, 0x9d, 0xb9, 0xd7, 0x5e, 0xd9, 0x81, 0xb8, 0x75, 0xd1, 0x36, 0xde, 0x67, 0xaf, 0xea,
		0x60, 0xcd, 0x10, 0x5a, 0xb2, 0x5e, 0x99, 0xad, 0x9c, 0x38, 0x89, 0x64, 0x40, 0x22, 0x8e, 0x8b,
		0x0d, 0xe7, 0xa8, 0x2e, 0xb6, 0xf6, 0x5e, 0x11, 0x6f, 0x6c, 0xa5, 0xcd, 0xb8, 0x18, 0x74, 0x6c,
		0x85, 0xad, 0x19, 0xc8, 0x03, 0xe4, 0x01, 0xf2, 0xb4, 0x19, 0x79, 0xb4, 0x92, 0xa9, 0xff, 0x11,
		0x6f, 0x24, 0x78, 0x19, 0x9c, 0xcb, 0x38, 0x39, 0x4e, 0x12, 0x45, 0x4a, 0x76, 0x21, 0x83, 0x53,
		0x3f, 0x0d, 0xbe, 0x63, 0x35, 0x68, 0x19, 0x5c, 0x38, 0xaf, 0x2b, 0x16, 0x0e, 0x8f, 0x3e, 0x7d,
		0xfa, 0xf5, 0xf3, 0xa7, 0x4f, 0x1f, 0x3e, 0xff, 0xe3, 0xf3, 0x87, 0xff, 0xfa, 0xe5, 0x97, 0xc3,
		0x5f, 0x0f, 0x7f, 0x51, 0x30, 0x7a, 0x15, 0x79, 0x22, 0x12, 0xde, 0x6f, 0xd3, 0xb1, 0x09, 0x26,
		0xbe, 0xdf, 0xc7, 0x50, 0x5d, 0x71, 0xaf, 0xd1, 0x10, 0x7d, 0xa7, 0xbe, 0x6b, 0x40, 0x58, 0x1d,
		0x8e, 0x45, 0x94, 0xce, 0x93, 0xe3, 0xdb, 0x71, 0xe2, 0x24, 0x84, 0x18, 0x3b, 0x6f, 0x4a, 0x2d,
		0xe0, 0xfe, 0xa0, 0x1a, 0x70, 0x7f, 0x44, 0xc0, 0x8d, 0x80, 0x5b, 0xf7, 0xee, 0xcb, 0xb6, 0xdc,
		0xd7, 0x36, 0xde, 0x4f, 0x0a, 0x9f, 0x3d, 0x0d, 0x26, 0x4f, 0xd3, 0x57, 0xf8, 0x69, 0x02, 0x8c,
		0x24, 0xb1, 0x2c, 0x25, 0x7d, 0xaa, 0xa3, 0x4b, 0xd9, 0x6f, 0xe8, 0x8b, 0xca, 0x47, 0x2e, 0xea,
		0xea, 0x03, 0xf8, 0x50, 0x8b, 0xae, 0x0c, 0x55, 0xfd, 0x16, 0xce, 0x30, 0x5b, 0x82, 0xc4, 0x30,
		0x7c, 0xd5, 0x18, 0x2d, 0x0e, 0x3f, 0xec, 0x4c, 0x1c, 0xce, 0x56, 0x31, 0xd9, 0xe7, 0x78, 0x9c,
		0xab, 0xe2, 0xb1, 0xde, 0xb8, 0x9c, 0x7a, 0x2e, 0x70, 0xe0, 0x8c, 0xc7, 0xbe, 0x74, 0x53, 0x6a,
		0x60, 0x4b, 0x4f, 0x04, 0x89, 0x1c, 0x4a, 0xce, 0x13, 0xc3, 0x5b, 0xec, 0xe3, 0xa8, 0x70, 0xcd,
		0xae, 0xcd, 0xed, 0xe2, 0xda, 0x5c, 0x5d, 0x9b, 0xcb, 0xeb, 0x77, 0x7d, 0x1a, 0x04, 0x10, 0xa1,
		0x80, 0x0d, 0x12, 0x0a, 0xa1, 0xc1, 0x0d, 0x3d, 0xc1, 0x7f, 0x7c, 0x22, 0xf7, 0x0d, 0x38, 0x43,
		0x61, 0x28, 0x6c, 0xe8, 0x82, 0x0f, 0xed, 0x30, 0xa2, 0x1d, 0x4e, 0xea, 0x83, 0x15, 0x1e, 0x78,
		0x61, 0x82, 0x19, 0xba, 0x36, 0xb1, 0x77, 0x25, 0x93, 0x33, 0x05, 0x5b, 0x69, 0xc3, 0x51, 0x87,
		0xce, 0xb7, 0x15, 0x13, 0x2c, 0x3b, 0xe1, 0x9c, 0x96, 0x3d, 0x6c, 0x6e, 0xf6, 0x65, 0xc0, 0x6e,
		0x60, 0x37, 0xb0, 0x1b, 0xd8, 0x5d, 0x13, 0x50, 0x58, 0x44, 0x45, 0x7a, 0xab, 0x4d, 0x35, 0xa5,
		0x5a, 0xe3, 0x26, 0x81, 0x93, 0x22, 0xfb, 0x73, 0xa5, 0x65, 0x05, 0xf7, 0x83, 0x15, 0xfd, 0xf0,
		0x40, 0x8b, 0x36, 0x61, 0xe9, 0x49, 0xc1, 0x5e, 0x25, 0xb1, 0xdc, 0x57, 0x4d, 0x3f, 0xff, 0x9b,
		0xa1, 0x1c, 0x3d, 0x1c, 0x2f, 0x5f, 0xed, 0x6c, 0xf9, 0x66, 0x2d, 0x6c, 0x6c, 0xe7, 0x8a, 0x20,
		0x6d, 0x20, 0x35, 0x8c, 0xc4, 0xdf, 0x13, 0x11, 0xb8, 0x6f, 0x7c, 0xd2, 0x54, 0xde, 0x34, 0x54,
		0x29, 0xa8, 0x52, 0x50, 0xa5, 0xcc, 0x56, 0xa5, 0xf8, 0x01, 0x41, 0x3b, 0x30, 0x20, 0xb6, 0x41,
		0x6c, 0x83, 0xd8, 0xa6, 0x33, 0xb1, 0xcd, 0x44, 0x06, 0x89, 0x96, 0xc6, 0x1e, 0x47, 0x68, 0xbd,
		0xc1, 0x6c, 0x9c, 0x17, 0x70, 0x73, 0xe6, 0xd1, 0x7a, 0xa3, 0x78, 0x4a, 0x6b, 0x68, 0xbd, 0xa1,
		0x7b, 0x4a, 0x79, 0xea, 0x98, 0x8d, 0x99, 0x65, 0x74, 0xe3, 0xd0, 0xed, 0x05, 0x83, 0x8c, 0x2d,
		0xda, 0x6e, 0x18, 0xc4, 0x49, 0xe4, 0xc8, 0x74, 0xcf, 0x65, 0xe6, 0xa6, 0x85, 0xdf, 0xc2, 0x4b,
		0x4f, 0x0f, 0x41, 0x4f, 0x41, 0x4f, 0x41, 0x4f, 0xf5, 0xd2, 0x53, 0xae, 0x78, 0x38, 0x33, 0xe8,
		0x78, 0x7f, 0x4d, 0xe2, 0x24, 0xed, 0x0a, 0x32, 0x8a, 0x9c, 0x60, 0xe2, 0x3b, 0x11, 0x67, 0x63,
		0xf7, 0x9c, 0xc3, 0x6c, 0xf9, 0x3e, 0xe6, 0xd5, 0xa1, 0x67, 0xb7, 0x67, 0x87, 0x26, 0x9d, 0x10,
		0x55, 0x33, 0x54, 0xe9, 0x86, 0xac, 0xda, 0xa0, 0xab, 0x36, 0x08, 0xab, 0x1f, 0xca, 0x34, 0xd1,
		0x3a, 0x66, 0x5f, 0x60, 0x8f, 0xc0, 0x9b, 0xc1, 0x20, 0x4b, 0x53, 0xa2, 0x31, 0xb3, 0xcd, 0x9b,
		0x70, 0xe4, 0x5f, 0x1b, 0x8c, 0xeb, 0x62, 0x30, 0x8a, 0xa4, 0xc7, 0x5b, 0x9b, 0x92, 0x5b, 0x14,
		0xcb, 0xaf, 0xc0, 0x5e, 0x84, 0xbd, 0x08, 0x7b, 0x11, 0xf6, 0xa2, 0x5a, 0xf6, 0x22, 0x5d, 0xb0,
		0x83, 0xed, 0xc7, 0xa8, 0xb8, 0x8d, 0xb9, 0x1e, 0x26, 0xb3, 0x6b, 0x52, 0x5d, 0x4c, 0x2e, 0xff,
		0x79, 0xa0, 0x51, 0x75, 0xb2, 0x8c, 0xa8, 0x97, 0x39, 0x99, 0xbd, 0xf2, 0xb7, 0xc5, 0x7b, 0x3e,
		0x64, 0xff, 0xef, 0x64, 0xf9, 0xc2, 0x28, 0x08, 0xeb, 0x78, 0x41, 0x98, 0x8e, 0xc4, 0xbf, 0x79,
		0x6b, 0xbb, 0x8d, 0x65, 0x60, 0xbe, 0x13, 0x8b, 0x28, 0x9d, 0xfb, 0x28, 0xf4, 0xf9, 0x4a, 0xc0,
		0xd6, 0xcd, 0xf2, 0x94, 0x7f, 0x7d, 0x40, 0xf9, 0x57, 0xd3, 0xfc, 0x1e, 0xe5, 0x5f, 0xa6, 0xed,
		0x1a, 0x6c, 0xfc, 0xbb, 0xd8, 0x75, 0xb9, 0x88, 0x37, 0x27, 0xd1, 0x66, 0x22, 0xd6, 0xcd, 0xe0,
		0xed, 0x53, 0xe8, 0x4d, 0x7c, 0x9e, 0x5d, 0x3e, 0x9b, 0xb1, 0x15, 0x9b, 0x40, 0x5a, 0x20, 0x2d,
		0x90, 0xb6, 0x25, 0x48, 0xbb, 0xf4, 0x5b, 0x3b, 0x11, 0xee, 0x63, 0x20, 0xff, 0x9e, 0x00, 0x6b,
		0x19, 0xb1, 0x76, 0x76, 0x49, 0xf6, 0xec, 0xf9, 0x79, 0x90, 0x36, 0xb3, 0x88, 0x03, 0x0d, 0xc0,
		0x59, 0xe0, 0xac, 0x16, 0x9c, 0x65, 0x3b, 0xd0, 0x80, 0xba, 0x31, 0x4d, 0x70, 0xa1, 0x03, 0x36,
		0x6a, 0x82, 0x0f, 0x5d, 0x30, 0xa2, 0x1d, 0x4e, 0xb4, 0xc3, 0x4a, 0x7d, 0xf0, 0xc2, 0x27, 0xd8,
		0x5a, 0xa8, 0x1b, 0x43, 0xdd, 0x58, 0xed, 0x10, 0x55, 0x33, 0x54, 0xe9, 0x86, 0xac, 0xda, 0xa0,
		0xab, 0x36, 0x08, 0xab, 0x1f, 0xca, 0x78, 0x21, 0x8d, 0x19, 0xda, 0xf8, 0x23, 0xd8, 0x66, 0x31,
		0xc8, 0x42, 0xdd, 0x18, 0xea, 0xc6, 0xb0, 0x17, 0x61, 0x2f, 0xc2, 0x5e, 0x84, 0xbd, 0xa8, 0x7e,
		0xd8, 0xc1, 0xf6, 0x83, 0xba, 0xb1, 0x9a, 0xcb, 0x67, 0x16, 0xb2, 0x73, 0xf7, 0xcb, 0xc5, 0x6e,
		0xe7, 0x6f, 0x6a, 0x74, 0x99, 0x18, 0x83, 0x8a, 0xed, 0xa7, 0x17, 0x4e, 0x6b, 0x6c, 0xb5, 0xb2,
		0xf9, 0x05, 0x68, 0xb4, 0x02, 0x45, 0x12, 0x8a, 0x64, 0xab, 0x76, 0x36, 0x34, 0x5a, 0x41, 0xa3,
		0x15, 0x34, 0x5a, 0xa9, 0x3b, 0x32, 0xb1, 0xd0, 0x68, 0xc5, 0xc8, 0x59, 0x46, 0xa3, 0x15, 0xed,
		0xa4, 0x74, 0x32, 0x1e, 0xeb, 0x25, 0xa5, 0x9b, 0x5f, 0x00, 0x52, 0x0a, 0x52, 0x0a, 0x52, 0x0a,
		0x52, 0x0a, 0x52, 0x0a, 0x52, 0x0a, 0x52, 0x0a, 0x52, 0x0a, 0x52, 0xda, 0x31, 0x52, 0x8a, 0x03,
		0xb5, 0x9a, 0x33, 0x02, 0x9d, 0x38, 0x47, 0xbb, 0x10, 0xfd, 0xdb, 0x78, 0x7e, 0x36, 0x09, 0x13,
		0xc7, 0xb7, 0xc7, 0xa9, 0xda, 0xfe, 0xe2, 0x44, 0x81, 0x9d, 0x3c, 0x46, 0x22, 0x7e, 0x0c, 0x7d,
		0xcf, 0x4e, 0x25, 0x78, 0xbe, 0xb3, 0x07, 0x7b, 0xbf, 0x09, 0x67, 0xbf, 0x1a, 0x8a, 0x96, 0x70,
		0x26, 0x01, 0x67, 0xbf, 0xaa, 0xae, 0x44, 0x4f, 0xb8, 0xf2, 0xc9, 0xf1, 0x59, 0x02, 0x9e, 0xac,
		0x1a, 0xe1, 0x23, 0x83, 0xad, 0x1c, 0x6d, 0xfa, 0xcc, 0x60, 0x94, 0x37, 0x6c, 0x62, 0x0c, 0x3e,
		0x75, 0x84, 0x49, 0x8b, 0xe9, 0xf8, 0xc8, 0xac, 0x38, 0x68, 0x0a, 0x8b, 0x74, 0x12, 0x65, 0xce,
		0x4a, 0x45, 0x1d, 0xe1, 0xcf, 0x62, 0xaa, 0xfe, 0x81, 0xa9, 0x32, 0xe5, 0x56, 0xb6, 0xfb, 0x6e,
		0x91, 0xc0, 0x54, 0xf2, 0xae, 0x85, 0x04, 0xce, 0xbe, 0x09, 0x24, 0x10, 0x24, 0x10, 0x24, 0x10,
		0x24, 0x10, 0x24, 0x10, 0x24, 0x10, 0x24, 0x10, 0x24, 0x10, 0x24, 0xb0, 0x36, 0x12, 0x18, 0x39,
		0x41, 0xfc, 0x24, 0x93, 0x19, 0x3b, 0x63, 0xa4, 0x7c, 0xeb, 0x76, 0xd1, 0x79, 0x04, 0x04, 0x0f,
		0x04, 0x4f, 0x0b, 0xc1, 0x63, 0xeb, 0x3c, 0x32, 0x8b, 0xcf, 0x66, 0x39, 0x1a, 0xc7, 0xb7, 0x3d,
		0x11, 0xc4, 0x9c, 0x47, 0xff, 0xb3, 0x85, 0xbe, 0xe5, 0x7b, 0x50, 0x56, 0x65, 0x28, 0x84, 0xe8,
		0x82, 0x12, 0xed, 0x90, 0xa2, 0x1d, 0x5a, 0xea, 0x83, 0x18, 0x66, 0xaa, 0x63, 0x7c, 0x59, 0x15,
		0x67, 0x8c, 0xa9, 0x23, 0xd6, 0xd4, 0x1a, 0x73, 0x6a, 0x8a, 0x3d, 0xf9, 0x63, 0x50, 0xad, 0xb1,
		0xa8, 0xe6, 0x98, 0x54, 0x77, 0xc0, 0x53, 0x47, 0xe0, 0xa3, 0x21, 0x56, 0xd5, 0x1a, 0xb3, 0x6a,
		0x8e, 0x5d, 0x3b, 0x35, 0xa5, 0x28, 0xd2, 0xd2, 0xbd, 0xe4, 0x57, 0xd3, 0x12, 0xfc, 0x2c, 0x77,
		0xd5, 0x38, 0xa8, 0x2d, 0xa8, 0x2d, 0xa8, 0x2d, 0xa8, 0x2d, 0xa8, 0x2d, 0xa8, 0x2d, 0xa8, 0x2d,
		0xa8, 0x2d, 0xa8, 0x2d, 0xa8, 0xad, 0x2e, 0x0b, 0x38, 0x7f, 0xb0, 0xfd, 0xfc, 0x01, 0x6b, 0x52,
		0xca, 0x32, 0xe2, 0x14, 0xc2, 0xdd, 0xfc, 0x95, 0xae, 0xd3, 0x37, 0x6a, 0x2a, 0x01, 0xf9, 0xae,
		0xc6, 0x95, 0xca, 0xb5, 0x42, 0x4d, 0x5a, 0x99, 0x03, 0xca, 0x7d, 0x11, 0x0d, 0x2f, 0x41, 0xb5,
		0x45, 0x57, 0x7d, 0xc9, 0x54, 0xfb, 0x44, 0xc5, 0xc5, 0x45, 0x5d, 0x54, 0x4d, 0x2f, 0x26, 0x85,
		0x05, 0xd4, 0xcc, 0xc2, 0xa9, 0xb6, 0x5a, 0xca, 0xcf, 0x79, 0x85, 0xf9, 0x1e, 0x8c, 0x85, 0x88,
		0xec, 0xe1, 0x8b, 0xb7, 0x67, 0x60, 0x2b, 0x2f, 0x84, 0x65, 0x86, 0xb3, 0xe4, 0x17, 0x54, 0x5c,
		0xa3, 0x6a, 0x55, 0x10, 0xca, 0x3a, 0x0f, 0x45, 0xcf, 0x59, 0xd7, 0x6d, 0x56, 0x87, 0x41, 0x65,
		0xa5, 0x12, 0xd5, 0x19, 0x36, 0x15, 0x86, 0x4d, 0x6d, 0xc9, 0xab, 0x2a, 0x6b, 0x43, 0x64, 0x18,
		0x36, 0xaa, 0x56, 0x18, 0x0c, 0xf6, 0x00, 0x97, 0x1f, 0xba, 0x8e, 0x6f, 0x4b, 0x4f, 0x7d, 0x62,
		0x17, 0xab, 0xac, 0xec, 0x17, 0x29, 0xce, 0x16, 0x4d, 0x78, 0x25, 0x0b, 0xad, 0x1c, 0xc2, 0x2a,
		0xab, 0x43, 0x72, 0xcb, 0xa6, 0xec, 0x32, 0x29, 0xbb, 0x2c, 0xca, 0xed, 0xb0, 0xcd, 0x30, 0x67,
		0xb2, 0xa8, 0xb9, 0x6c, 0xd4, 0x29, 0x9c, 0x61, 0x24, 0x86, 0x94, 0xb5, 0xb3, 0xd8, 0xcd, 0x08,
		0xaa, 0xe2, 0xe0, 0xba, 0x80, 0x6f, 0x7d, 0x59, 0x50, 0xab, 0xdc, 0x34, 0x7d, 0x29, 0x64, 0x60,
		0x7b, 0xfe, 0x6c, 0xc1, 0xc9, 0xf2, 0x7f, 0xb6, 0x64, 0x69, 0xf9, 0xdf, 0x65, 0x88, 0x53, 0x17,
		0x39, 0x7e, 0xcf, 0x84, 0xce, 0x93, 0x89, 0x36, 0x3c, 0x4e, 0x4d, 0x03, 0x81, 0x81, 0xc0, 0x40,
		0x60, 0x20, 0x30, 0x0b, 0x02, 0xa7, 0x88, 0x02, 0xf9, 0x41, 0x9f, 0xfc, 0xa0, 0x27, 0x90, 0xd5,
		0xa4, 0x3e, 0x5c, 0x0b, 0x11, 0x7d, 0x7b, 0xf1, 0x76, 0x08, 0x10, 0x46, 0x88, 0x0f, 0x51, 0x98,
		0x4c, 0x1f, 0x2f, 0x18, 0xe9, 0x93, 0x1f, 0x4a, 0x7f, 0x05, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20,
		0x20, 0x40, 0x80, 0xfe, 0x82, 0xfe, 0x82, 0xfe, 0x42, 0x80, 0x80, 0x00, 0x01, 0x04, 0x06, 0x02,
		0x03, 0x81, 0x81, 0xc0, 0x10, 0x20, 0xcc, 0x10, 0x20, 0x34, 0x85, 0xb2, 0xba, 0x24, 0x88, 0xec,
		0x71, 0x5b, 0xa2, 0x42, 0x84, 0x81, 0x1d, 0x85, 0xbe, 0xa0, 0x6b, 0x0d, 0x0b, 0x43, 0x6a, 0x8a,
		0xc2, 0x07, 0x28, 0x0a, 0x50, 0x14, 0xea, 0x84, 0x3b, 0xe5, 0x6d, 0x90, 0x69, 0xe1, 0x5b, 0xc4,
		0xeb, 0x58, 0x15, 0xaf, 0x5b, 0xd5, 0x03, 0x26, 0x34, 0x04, 0x01, 0x6c, 0x00, 0x36, 0x7a, 0x04,
		0x1b, 0x61, 0x94, 0xf4, 0x1e, 0x30, 0xa6, 0xec, 0x4d, 0x44, 0xda, 0xf2, 0x1f, 0xe5, 0xcc, 0x23,
		0xf7, 0x01, 0xc8, 0x41, 0xee, 0x03, 0xb9, 0x0f, 0x28, 0x6f, 0x50, 0xde, 0xa0, 0xbc, 0xb5, 0x4d,
		0x79, 0x43, 0xee, 0xa3, 0x1a, 0x1e, 0x23, 0xf7, 0x01, 0x04, 0x06, 0x02, 0x03, 0x81, 0x91, 0xfb,
		0x28, 0x58, 0xdc, 0x66, 0xe6, 0x3e, 0x74, 0x84, 0xb1, 0x96, 0x9e, 0xbc, 0xc7, 0x6d, 0xfa, 0xa8,
		0x86, 0xe7, 0x3c, 0x16, 0x63, 0x27, 0x83, 0x44, 0x44, 0x43, 0xc7, 0x15, 0x1c, 0x3a, 0x43, 0x91,
		0x41, 0x28, 0x0b, 0x50, 0x16, 0xba, 0xac, 0x2c, 0x6c, 0x59, 0xf7, 0x4c, 0xf4, 0x75, 0xa7, 0x75,
		0x30, 0xd8, 0xc1, 0xca, 0xf6, 0x02, 0xee, 0xaa, 0xe8, 0x94, 0xe9, 0xe0, 0x81, 0xb5, 0x9a, 0xcb,
		0x5a, 0xd3, 0x9f, 0x6d, 0x41, 0x82, 0xb5, 0xbf, 0x01, 0x0b, 0xad, 0x81, 0x85, 0xd2, 0x49, 0x8e,
		0x46, 0xde, 0x29, 0x5d, 0x71, 0xb6, 0x78, 0x36, 0xbd, 0x5c, 0xf3, 0x1d, 0xe3, 0xb4, 0x4f, 0x71,
		0x33, 0xf5, 0xc9, 0x6a, 0xea, 0xf8, 0xe0, 0x5c, 0xc6, 0xc9, 0x71, 0x92, 0x54, 0xdb, 0xb9, 0x07,
		0x17, 0x32, 0x38, 0xf5, 0xc5, 0x14, 0x04, 0xe3, 0x6a, 0xed, 0x06, 0x07, 0x17, 0xce, 0xeb, 0xca,
		0x27, 0x69, 0x17, 0xe1, 0x0f, 0xae, 0x22, 0x4f, 0x44, 0xc2, 0xfb, 0x6d, 0xfa, 0xe6, 0xc1, 0xc4,
		0xf7, 0x59, 0x07, 0xf4, 0x78, 0x32, 0x9a, 0x3e, 0xa6, 0xf0, 0x2a, 0x75, 0x95, 0x54, 0xa4, 0xfe,
		0xcd, 0x6a, 0x9e, 0x55, 0x23, 0x8c, 0xaf, 0x22, 0x76, 0x23, 0x39, 0x9e, 0x63, 0xcb, 0x20, 0x08,
		0x03, 0xd1, 0x9b, 0x20, 0x85, 0xdc, 0x33, 0xb8, 0x0f, 0x61, 0x0a, 0xb5, 0xa7, 0xaf, 0xa1, 0x81,
		0x4a, 0xe9, 0xee, 0x59, 0xe4, 0xa0, 0x45, 0x63, 0x9f, 0x2e, 0x26, 0x0f, 0x26, 0x7a, 0xb2, 0xc1,
		0xb1, 0x10, 0x5b, 0x57, 0xf0, 0x3e, 0xc7, 0x44, 0x5c, 0x5d, 0xbd, 0x7f, 0x9a, 0xc9, 0xc5, 0x75,
		0x08, 0x8a, 0xa0, 0x0e, 0xa0, 0x0e, 0xa0, 0x0e, 0x1d, 0xa5, 0x0e, 0xe9, 0xdb, 0xd8, 0xee, 0xa3,
		0x13, 0x04, 0xc2, 0xaf, 0x87, 0x43, 0x54, 0xff, 0x4a, 0x90, 0x09, 0x90, 0x09, 0x90, 0x09, 0x83,
		0xc9, 0x44, 0xa9, 0xbf, 0xbc, 0x2f, 0x2b, 0x70, 0xa8, 0x09, 0x84, 0x9a, 0x84, 0xc1, 0x41, 0x95,
		0xcc, 0x2b, 0xb7, 0xf0, 0x57, 0x6e, 0x49, 0xed, 0x1f, 0xfe, 0x12, 0xdb, 0xc9, 0xc0, 0x97, 0x43,
		0xe1, 0xbe, 0xb9, 0xbe, 0xb0, 0xe3, 0xc4, 0x49, 0xca, 0x3b, 0xf4, 0x52, 0x76, 0xdf, 0x30, 0x50,
		0x56, 0x20, 0xac, 0x94, 0xb3, 0x5a, 0x42, 0x69, 0x49, 0x75, 0x4f, 0x05, 0x3a, 0x89, 0x39, 0x28,
		0x55, 0x48, 0x24, 0x43, 0x20, 0x19, 0xf2, 0xe8, 0x39, 0x24, 0x5e, 0xf1, 0xb8, 0x72, 0x4e, 0x88,
		0xb8, 0x18, 0x2d, 0xc5, 0xd3, 0x27, 0x15, 0x4f, 0x9d, 0xf0, 0x38, 0xec, 0x1c, 0x67, 0x2a, 0x7a,
		0x69, 0xfa, 0xa9, 0x6a, 0xae, 0x79, 0x58, 0xd5, 0x35, 0x3f, 0xc0, 0x35, 0x3b, 0xef, 0x9a, 0x55,
		0x23, 0x8e, 0xc1, 0xf3, 0xfc, 0x46, 0x1f, 0x45, 0x39, 0x61, 0xf6, 0xf1, 0xfe, 0x9c, 0x9f, 0x54,
		0xac, 0x7b, 0xe8, 0x47, 0xb1, 0x91, 0x5a, 0x5d, 0x83, 0xe9, 0x67, 0x26, 0xe3, 0x24, 0x92, 0xc1,
		0x88, 0x72, 0x60, 0xf2, 0xc8, 0x80, 0xf2, 0xc3, 0xd4, 0x51, 0xed, 0x4a, 0x9b, 0x53, 0xb1, 0xb3,
		0xdb, 0x15, 0xb6, 0x2a, 0x78, 0x3c, 0x3c, 0x1e, 0x1e, 0x5f, 0x7b, 0x48, 0x5f, 0xb1, 0x08, 0xa4,
		0xb2, 0x5b, 0xb3, 0x94, 0x81, 0x7c, 0xe8, 0x66, 0x19, 0x88, 0x09, 0x2a, 0x49, 0x45, 0x84, 0xe6,
		0x13, 0x48, 0x52, 0x07, 0xaa, 0x31, 0xd6, 0x0a, 0xc7, 0x22, 0x4a, 0x07, 0xdb, 0xf1, 0x55, 0xe5,
		0x91, 0xbc, 0x09, 0x08, 0x24, 0x88, 0xc2, 0x1a, 0x13, 0x48, 0x54, 0x97, 0x63, 0xab, 0x24, 0x92,
		0x48, 0xc4, 0xd2, 0x97, 0x22, 0x70, 0xc5, 0x14, 0xc7, 0xe2, 0x24, 0x72, 0xaa, 0x1c, 0x84, 0x59,
		0xb6, 0xee, 0x29, 0x34, 0xd3, 0x1d, 0x11, 0x45, 0xe9, 0x78, 0x4b, 0xb7, 0x9c, 0x58, 0xe5, 0xf8,
		0x4a, 0xc3, 0x82, 0xca, 0xd0, 0x99, 0xf8, 0xc9, 0xf4, 0xd1, 0x3d, 0x99, 0xb6, 0xe7, 0xf2, 0x44,
		0x22, 0xa2, 0x27, 0x19, 0xa8, 0xd5, 0x56, 0x67, 0x6b, 0x62, 0xb7, 0x59, 0x34, 0xb0, 0x42, 0x50,
		0xd6, 0x8b, 0x06, 0x56, 0x9c, 0x6e, 0xb0, 0xb6, 0x0f, 0xfc, 0xa2, 0xf0, 0xd9, 0x33, 0x4f, 0x04,
		0x89, 0x4c, 0xde, 0x7e, 0x73, 0x62, 0x41, 0x2f, 0xc0, 0xf8, 0x76, 0xfc, 0xe7, 0xf9, 0xdd, 0xc3,
		0xc9, 0xd5, 0xe5, 0xd7, 0xb3, 0xbb, 0xb3, 0xab, 0xcb, 0x87, 0xaf, 0xa7, 0x77, 0xa7, 0x37, 0x17,
		0x67, 0x97, 0xc7, 0xd3, 0xff, 0x52, 0x5d, 0x67, 0xe9, 0x85, 0xed, 0x71, 0xa5, 0x9a, 0xf4, 0xcd,
		0x7f, 0xc4, 0x02, 0x82, 0x52, 0xaf, 0xf7, 0x70, 0x79, 0x75, 0xf9, 0x70, 0x76, 0x79, 0x77, 0xf3,
		0xe7, 0xed, 0xd9, 0x3f, 0x4f, 0x09, 0x29, 0xfb, 0xf7, 0x66, 0xbf, 0xe6, 0xdd, 0xe9, 0xed, 0x5d,
		0x77, 0xdf, 0xee, 0xec, 0xf2, 0x8f, 0xd3, 0x9b, 0xd3, 0xcb, 0x0e, 0xbf, 0xe1, 0xed, 0x9f, 0xbf,
		0x9d, 0x1f, 0xff, 0xeb, 0xf4, 0xa6, 0xee, 0xa2, 0x92, 0xfb, 0x36, 0x56, 0xa8, 0x0e, 0x1e, 0x43,
		0xdf, 0xb3, 0xc3, 0xe1, 0xd0, 0x4e, 0x24, 0x45, 0x76, 0x5e, 0x37, 0x03, 0xaa, 0x03, 0xaa, 0xd3,
		0x0b, 0xaa, 0x33, 0x91, 0x41, 0xf2, 0xeb, 0x27, 0x02, 0xa7, 0x39, 0x52, 0xf8, 0xe8, 0x8d, 0x13,
		0x8c, 0x84, 0x32, 0x5d, 0x20, 0x94, 0x41, 0x5e, 0xc8, 0x80, 0xa1, 0x58, 0x91, 0x74, 0xd0, 0x7e,
		0x9d, 0x34, 0x31, 0xd8, 0xf9, 0x16, 0x39, 0x69, 0x8b, 0xe6, 0xaf, 0x72, 0x24, 0x67, 0x9a, 0x77,
		0x13, 0x1b, 0xe3, 0xe0, 0xc2, 0x79, 0x35, 0x6e, 0x68, 0x69, 0x1a, 0xbe, 0xf6, 0xd1, 0xae, 0xa9,
		0xf2, 0xf3, 0xde, 0x80, 0x4d, 0x5a, 0xc6, 0xb6, 0x1b, 0x86, 0x91, 0x37, 0x8d, 0xa1, 0x84, 0x67,
		0xc7, 0x2f, 0x32, 0x71, 0x1f, 0x65, 0x30, 0xb2, 0xbf, 0x87, 0xc9, 0xa3, 0x2d, 0x02, 0x2f, 0x56,
		0xdf, 0xb9, 0x4b, 0xd8, 0xc6, 0x76, 0x8e, 0xed, 0xbc, 0x17, 0xdb, 0xf9, 0xf7, 0x30, 0xf4, 0x85,
		0x43, 0xd2, 0x28, 0x0e, 0xcd, 0x80, 0x8b, 0x61, 0x14, 0xfe, 0x47, 0x04, 0x24, 0x54, 0x98, 0x9b,
		0x80, 0xf3, 0xc3, 0xf9, 0xe1, 0xfc, 0xad, 0x72, 0x7e, 0x3f, 0x74, 0x7f, 0xd8, 0xe1, 0x24, 0x21,
		0xb9, 0x7f, 0x66, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x07, 0x00, 0x9e, 0x9c, 0xd7, 0x39,
		0x8b, 0x4f, 0xc5, 0x38, 0x42, 0x68, 0x90, 0xb3, 0x04, 0x28, 0x00, 0x14, 0x40, 0xd7, 0x83, 0xae,
		0x07, 0x5d, 0x0f, 0xba, 0x1e, 0x74, 0x3d, 0xfa, 0x56, 0x3d, 0x05, 0x77, 0x11, 0x45, 0xc2, 0xb3,
		0x23, 0x11, 0x27, 0xe1, 0xac, 0xaa, 0xd0, 0xf6, 0x9d, 0x37, 0x11, 0x51, 0xee, 0xdb, 0xdc, 0x6e,
		0x14, 0x1b, 0x38, 0x36, 0xf0, 0x5e, 0x6c, 0xe0, 0xe9, 0x72, 0xb7, 0xc7, 0x51, 0x98, 0x84, 0x6e,
		0xe8, 0xab, 0x9c, 0x87, 0xb2, 0x1a, 0xba, 0x4e, 0xaf, 0xe2, 0x50, 0x29, 0x1d, 0xf3, 0x58, 0xdd,
		0xf9, 0xd5, 0x8e, 0x7b, 0xac, 0x6e, 0x70, 0x6c, 0xc7, 0x3e, 0x32, 0xa3, 0x4a, 0xc7, 0x3f, 0xf4,
		0x42, 0xf5, 0x4a, 0x21, 0x73, 0xa2, 0xb2, 0x3a, 0x8b, 0x2a, 0xa2, 0x53, 0x43, 0xb8, 0x0a, 0x00,
		0x90, 0xdc, 0xe5, 0xab, 0x00, 0x56, 0x6e, 0x41, 0x4e, 0x28, 0x7d, 0xca, 0x8b, 0xae, 0x55, 0x56,
		0x70, 0x20, 0x26, 0x52, 0x6d, 0x60, 0x5f, 0xaa, 0x24, 0x1c, 0x87, 0x7e, 0x38, 0xc2, 0x75, 0x55,
		0x6a, 0xce, 0x97, 0x0d, 0x5f, 0xef, 0x9a, 0xfe, 0xf3, 0x38, 0x14, 0x95, 0x2f, 0x11, 0x79, 0x93,
		0xfa, 0x24, 0xa8, 0xdc, 0xcd, 0xb7, 0x1a, 0x59, 0x8d, 0x43, 0x5f, 0xba, 0x6f, 0x74, 0x5c, 0x2b,
		0xb0, 0x09, 0x68, 0x03, 0xb4, 0x01, 0xda, 0x4c, 0xf0, 0xa9, 0xf6, 0xa2, 0x5b, 0x7f, 0x6e, 0x24,
		0x29, 0x3c, 0x6b, 0x7a, 0x40, 0x8b, 0xb7, 0x2c, 0xd6, 0xb3, 0xf7, 0x37, 0xd9, 0xb3, 0x9c, 0x64,
		0x0f, 0xb8, 0xf2, 0xc3, 0x74, 0xdd, 0x9b, 0x14, 0xeb, 0xbe, 0xd9, 0x51, 0x38, 0x49, 0x94, 0x4e,
		0x00, 0x6f, 0x8f, 0x7b, 0x0b, 0x8c, 0x22, 0x06, 0x46, 0x0c, 0xdc, 0xe5, 0x18, 0x98, 0xef, 0x26,
		0x7d, 0x5c, 0x95, 0x8f, 0x6b, 0xee, 0xf8, 0x88, 0x61, 0x5f, 0xaf, 0xb9, 0x53, 0x6e, 0x1e, 0x95,
		0xdb, 0x82, 0x8e, 0x0c, 0x0e, 0x52, 0x95, 0x1a, 0xc9, 0xe5, 0xc6, 0x4a, 0x31, 0x75, 0x62, 0x75,
		0xb2, 0xf7, 0x3b, 0xd0, 0xa6, 0x37, 0x68, 0xa3, 0xba, 0xd9, 0x67, 0x06, 0xd4, 0xba, 0xb6, 0x6e,
		0x5d, 0x7f, 0x2a, 0x5d, 0x5c, 0x99, 0xb7, 0x7f, 0x36, 0xc7, 0xe4, 0x74, 0x50, 0x4d, 0x8e, 0xca,
		0xed, 0xb0, 0xda, 0x1c, 0x57, 0x9b, 0x03, 0xeb, 0x73, 0x64, 0x9a, 0x43, 0x13, 0x1d, 0x9b, 0x8f,
		0x4e, 0xf0, 0xd3, 0x0a, 0x26, 0x7a, 0x41, 0x1f, 0x5f, 0x4a, 0xc9, 0x1b, 0xa1, 0x8b, 0xed, 0x6e,
		0xf0, 0xb3, 0x09, 0x54, 0x04, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x0d, 0x25, 0x9b, 0xaa,
		0x5d, 0x7e, 0x73, 0x86, 0x48, 0xe5, 0x60, 0x99, 0x15, 0x72, 0x59, 0xd8, 0xd2, 0x92, 0x86, 0xf2,
		0xb0, 0xcc, 0x38, 0xa9, 0x4c, 0x8c, 0x3a, 0x65, 0xc4, 0xd4, 0x47, 0x66, 0xa7, 0xce, 0x14, 0x48,
		0x5e, 0x7a, 0x3f, 0x20, 0xee, 0xa9, 0x75, 0xe5, 0x46, 0xde, 0x6e, 0xa6, 0x0f, 0xbe, 0xf2, 0x9b,
		0xf2, 0x6d, 0x8c, 0x9b, 0x11, 0x5f, 0xc6, 0x91, 0x0c, 0x23, 0x99, 0xbc, 0x71, 0xd4, 0x3b, 0xcd,
		0x2d, 0x41, 0xf2, 0x65, 0xc9, 0xa2, 0x40, 0x8a, 0xa1, 0x66, 0x59, 0x9a, 0xd9, 0x23, 0xf9, 0xe4,
		0x5f, 0xe5, 0xd3, 0x5d, 0x9b, 0x3e, 0x75, 0x44, 0x30, 0x41, 0x3b, 0xed, 0xb5, 0xf8, 0xc7, 0xc0,
		0xdd, 0x38, 0x4e, 0x7f, 0x31, 0x87, 0x57, 0x99, 0x39, 0xa6, 0xd3, 0x60, 0x99, 0x3d, 0xc6, 0x73,
		0x4a, 0x4c, 0x24, 0xdc, 0xe2, 0x3a, 0x25, 0xa6, 0x7b, 0x0a, 0xf8, 0x4f, 0x8d, 0x69, 0x9d, 0x95,
		0x86, 0xc2, 0x86, 0x7b, 0x93, 0x8b, 0x16, 0xc3, 0x49, 0x22, 0x83, 0x11, 0xa5, 0x9a, 0x23, 0x07,
		0xa5, 0x05, 0x36, 0x91, 0x2b, 0x02, 0x4d, 0xe9, 0x31, 0x4d, 0x21, 0xe7, 0x8d, 0xdc, 0x30, 0x4e,
		0x6c, 0xf7, 0xd1, 0x99, 0x82, 0xa2, 0x88, 0x64, 0x9c, 0x48, 0x97, 0x4f, 0x48, 0x2d, 0x32, 0xce,
		0xa3, 0xa8, 0x1e, 0x76, 0x5e, 0x51, 0x9d, 0xc6, 0xe8, 0xd3, 0xd0, 0x7c, 0x3c, 0x49, 0x54, 0x5b,
		0x99, 0x43, 0x5b, 0xdd, 0xef, 0xf4, 0xb9, 0x61, 0x6e, 0xb9, 0xca, 0x4a, 0x05, 0x84, 0x75, 0x60,
		0x70, 0xfc, 0x51, 0x18, 0xc9, 0xe4, 0xf1, 0x89, 0x6f, 0xcd, 0xac, 0x61, 0xc3, 0xd2, 0xfe, 0x7b,
		0x23, 0xe9, 0x28, 0x17, 0x4c, 0xe8, 0x80, 0x8b, 0x62, 0xd8, 0x60, 0x38, 0xbc, 0xa0, 0x1b, 0x36,
		0xb4, 0xc3, 0x87, 0x76, 0x18, 0xd9, 0x0e, 0x27, 0xf4, 0xc3, 0x0f, 0xbc, 0x70, 0xc2, 0x18, 0x37,
		0x5a, 0xac, 0x49, 0x9c, 0xdc, 0xea, 0x65, 0x4b, 0xe6, 0xe4, 0xa8, 0xc2, 0xd1, 0x3b, 0x33, 0xe6,
		0x81, 0x23, 0x76, 0x4f, 0x51, 0x93, 0x25, 0xdb, 0x5d, 0x0c, 0xc8, 0x0c, 0x49, 0x6f, 0x60, 0x31,
		0xb0, 0x18, 0x58, 0x0c, 0x2c, 0xee, 0x07, 0x16, 0xf3, 0xd4, 0x5d, 0x16, 0x83, 0x31, 0x47, 0x11,
		0x26, 0xd0, 0x18, 0x68, 0x0c, 0x34, 0x06, 0x1a, 0x9b, 0x8d, 0xc6, 0x8d, 0x4a, 0x26, 0xf3, 0x72,
		0x28, 0x2e, 0xfe, 0xcb, 0x53, 0x15, 0x95, 0x59, 0x63, 0xab, 0x8e, 0x5a, 0x5a, 0xd4, 0x58, 0x25,
		0x95, 0x7d, 0x09, 0x4b, 0xb5, 0x14, 0xd7, 0x0c, 0x33, 0x55, 0x4f, 0x65, 0xf6, 0x1a, 0xae, 0xa2,
		0xca, 0xa7, 0xc1, 0x0e, 0xf8, 0x95, 0x76, 0xab, 0xc9, 0x7a, 0xab, 0x9b, 0xd9, 0x1b, 0xae, 0xfc,
		0xe4, 0x24, 0x8c, 0x93, 0x93, 0xf5, 0xf7, 0x6b, 0x61, 0xb5, 0xba, 0x27, 0x9f, 0x45, 0x14, 0x4f,
		0x67, 0x9f, 0xd8, 0xc7, 0x25, 0xb7, 0x49, 0xe4, 0x2c, 0xa3, 0x72, 0xbd, 0x1c, 0x2d, 0x44, 0x9e,
		0x05, 0x79, 0x96, 0x26, 0xe9, 0x9e, 0x2e, 0x0f, 0xb6, 0x98, 0x7a, 0xc8, 0x64, 0xb6, 0x68, 0xbd,
		0x64, 0x9a, 0xc5, 0x5d, 0x19, 0xdb, 0xe2, 0xd5, 0xf5, 0x27, 0xb1, 0x7c, 0x66, 0x3c, 0x27, 0xb4,
		0x66, 0x95, 0x9a, 0xb7, 0x13, 0xe9, 0x45, 0xd6, 0xa9, 0xbf, 0x44, 0x38, 0x7a, 0x09, 0xf8, 0x06,
		0x7c, 0xb7, 0x0b, 0xbe, 0xd5, 0xef, 0x73, 0xd9, 0x8a, 0xda, 0x87, 0x2d, 0x44, 0x5a, 0xdf, 0x49,
		0xd2, 0xa0, 0x45, 0x57, 0x49, 0xd1, 0x16, 0xfb, 0xa8, 0x2a, 0x02, 0x5c, 0x02, 0x2e, 0xb5, 0xc1,
		0x25, 0x5b, 0x55, 0xd1, 0x50, 0xbe, 0x0a, 0xcf, 0xd6, 0x04, 0x12, 0xb9, 0x25, 0xbf, 0xf3, 0xdb,
		0x0c, 0xcf, 0xab, 0x7c, 0x44, 0x5e, 0x05, 0x79, 0x95, 0x12, 0x50, 0x83, 0xbc, 0x8a, 0xea, 0xea,
		0x45, 0x96, 0xbb, 0xcc, 0x3b, 0xfd, 0x25, 0x93, 0x44, 0x44, 0xda, 0xa1, 0xba, 0xf8, 0x6b, 0x80,
		0xd1, 0xc0, 0x68, 0x60, 0x34, 0x30, 0x1a, 0x18, 0xbd, 0xf3, 0x9d, 0xfe, 0x9e, 0x08, 0x19, 0x8c,
		0x6a, 0xa3, 0xd5, 0xbb, 0xbf, 0x0e, 0xf5, 0x4a, 0xc0, 0x6c, 0x60, 0x36, 0x30, 0x1b, 0x98, 0xbd,
		0xf3, 0x9d, 0x92, 0xc8, 0x19, 0x0e, 0xa5, 0x6b, 0x8f, 0xa3, 0x70, 0x2c, 0xa2, 0xe4, 0x4d, 0x53,
		0x55, 0x7f, 0xf1, 0xd7, 0x00, 0xa3, 0x81, 0xd1, 0xc0, 0x68, 0x60, 0x34, 0x30, 0x7a, 0xe7, 0x3b,
		0xbd, 0x38, 0x81, 0x57, 0x83, 0xf6, 0x51, 0xfc, 0x35, 0xd0, 0x3e, 0x80, 0xd1, 0xc0, 0x68, 0x60,
		0x34, 0xea, 0xfe, 0xf5, 0xcc, 0xe0, 0xa2, 0xee, 0x5f, 0x07, 0x43, 0xc6, 0x19, 0x00, 0x9c, 0x01,
		0xa8, 0xfd, 0x0c, 0x80, 0x36, 0x3d, 0xce, 0xa0, 0x63, 0x00, 0xe7, 0xb3, 0x77, 0x6c, 0xff, 0x49,
		0x80, 0x27, 0xe7, 0xd5, 0x76, 0x7c, 0x3f, 0x7c, 0x11, 0x9e, 0xed, 0x86, 0x71, 0xc2, 0x57, 0x21,
		0x95, 0xb3, 0x8c, 0xda, 0xa8, 0x72, 0x44, 0x11, 0xb5, 0x51, 0xa8, 0x8d, 0x52, 0x78, 0x41, 0xb6,
		0xda, 0x28, 0x72, 0x13, 0xe7, 0xad, 0xcb, 0x9b, 0xd8, 0xd4, 0x19, 0xba, 0x5f, 0x0d, 0x50, 0x81,
		0xd8, 0xd2, 0x04, 0x28, 0xe9, 0x5b, 0x8c, 0x49, 0x6e, 0x4e, 0xbd, 0x0d, 0x1b, 0x8e, 0x18, 0x4d,
		0xf2, 0x34, 0xaf, 0xde, 0xfc, 0xc7, 0xeb, 0x5e, 0x16, 0x77, 0x73, 0x6b, 0xcd, 0xa0, 0x9b, 0x33,
		0xcf, 0xdc, 0xfc, 0x3a, 0x67, 0x5f, 0x43, 0xdb, 0x65, 0x4d, 0xee, 0xb6, 0x19, 0x28, 0xb7, 0x7e,
		0x4a, 0xf5, 0x35, 0xd3, 0x6e, 0x64, 0x96, 0xdf, 0x99, 0x69, 0xed, 0xbe, 0x43, 0x89, 0x0f, 0x4d,
		0x5d, 0x8d, 0xd0, 0xd0, 0x08, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24,
		0x14, 0x24, 0x14, 0x24, 0xb4, 0xb3, 0x24, 0x14, 0xb9, 0x3e, 0xad, 0xb9, 0x3e, 0xe6, 0x24, 0x8f,
		0x65, 0x56, 0x96, 0xef, 0xc2, 0x79, 0x3d, 0x9e, 0xbd, 0xdc, 0xc9, 0xf4, 0xdd, 0x5a, 0x9e, 0xde,
		0xf3, 0x84, 0xef, 0xbc, 0xe9, 0xc9, 0xef, 0xcd, 0x4c, 0x23, 0xc1, 0xd7, 0x58, 0xc0, 0x84, 0x04,
		0x1f, 0x12, 0x7c, 0xa5, 0x0d, 0x21, 0xc1, 0x07, 0x6d, 0x05, 0xda, 0x0a, 0xb4, 0x15, 0x68, 0x2b,
		0xd0, 0x56, 0xa0, 0xad, 0x40, 0x5b, 0x81, 0xb6, 0x02, 0x6d, 0xa5, 0x19, 0x2f, 0x40, 0x82, 0x0f,
		0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14, 0x24, 0x14,
		0x24, 0xb4, 0x4e, 0x0b, 0x48, 0xf0, 0x55, 0x49, 0xf0, 0x71, 0x64, 0x79, 0x2c, 0x53, 0x33, 0x7c,
		0x5f, 0xd3, 0x97, 0x6b, 0x79, 0x8a, 0xef, 0x31, 0x1c, 0xc7, 0x7a, 0x32, 0x7c, 0xa9, 0x65, 0x24,
		0xf8, 0x1a, 0x0b, 0x98, 0x90, 0xe0, 0x43, 0x82, 0xaf, 0xb4, 0x21, 0x24, 0xf8, 0xa0, 0xad, 0x40,
		0x5b, 0x81, 0xb6, 0x02, 0x6d, 0x05, 0xda, 0x0a, 0xb4, 0x15, 0x68, 0x2b, 0xd0, 0x56, 0xa0, 0xad,
		0x34, 0xe3, 0x05, 0x48, 0xf0, 0x81, 0x84, 0x82, 0x84, 0x82, 0x84, 0x82, 0x84, 0x82, 0x84, 0x82,
		0x84, 0x82, 0x84, 0x82, 0x84, 0x82, 0x84, 0xd6, 0x69, 0x01, 0x09, 0xbe, 0x2a, 0x09, 0x3e, 0x86,
		0x24, 0x8f, 0x65, 0x6a, 0x7e, 0xef, 0x8f, 0xe9, 0xbb, 0xb5, 0x30, 0xbd, 0x17, 0xc9, 0xf8, 0x87,
		0xbd, 0xbc, 0x93, 0x5f, 0xd7, 0x7d, 0xc6, 0xbb, 0xbf, 0x06, 0x89, 0xbf, 0xc6, 0x02, 0x29, 0x24,
		0xfe, 0x90, 0xf8, 0xab, 0x06, 0x16, 0xeb, 0xbe, 0xab, 0xe9, 0x3e, 0x9f, 0xad, 0xdf, 0x04, 0x4d,
		0x86, 0x07, 0x4a, 0x70, 0x5d, 0x44, 0xa3, 0x5a, 0x0c, 0xae, 0x8b, 0x50, 0x5d, 0xbd, 0xb8, 0xd2,
		0xa7, 0x34, 0x52, 0x4b, 0x4f, 0x04, 0x89, 0x1c, 0x4a, 0x11, 0xd9, 0xbe, 0x64, 0xe8, 0xbd, 0x5e,
		0x8c, 0xd2, 0x9b, 0xdf, 0x02, 0x84, 0x06, 0x42, 0x03, 0xa1, 0x81, 0xd0, 0xe6, 0x22, 0x34, 0xd3,
		0x08, 0xb2, 0x5e, 0x7e, 0xb3, 0x94, 0x50, 0xd7, 0x2e, 0xc1, 0x39, 0x64, 0x1c, 0xc5, 0x3a, 0x2e,
		0xc3, 0xc9, 0xbe, 0x8c, 0xf5, 0x52, 0x9c, 0xae, 0xc8, 0x7d, 0xf3, 0xab, 0x98, 0x34, 0x05, 0x37,
		0xb8, 0x8d, 0x09, 0xb7, 0x31, 0xd5, 0xae, 0xef, 0xea, 0x14, 0xf6, 0x0c, 0x13, 0x7b, 0x6f, 0x64,
		0xfc, 0xe3, 0xeb, 0xe2, 0x4d, 0xdb, 0x7f, 0x35, 0xd3, 0x6c, 0x76, 0xc3, 0xef, 0x7f, 0xa5, 0x03,
		0x25, 0xec, 0xe1, 0x24, 0x70, 0x59, 0x56, 0xea, 0x32, 0x3c, 0xd8, 0xf6, 0x0d, 0x3c, 0x7a, 0xef,
		0x07, 0xe8, 0xbd, 0xd0, 0x7b, 0xa1, 0xf7, 0x6a, 0xa4, 0xf6, 0xba, 0x3d, 0x79, 0x8d, 0xdc, 0x7f,
		0x62, 0xb0, 0x75, 0x1a, 0x4c, 0x9e, 0xa6, 0x6f, 0xfe, 0xb3, 0x85, 0x78, 0x9c, 0x84, 0xbe, 0x88,
		0x9c, 0xef, 0xbe, 0xb0, 0xe5, 0xd3, 0xd8, 0x71, 0x19, 0xaf, 0xca, 0xcb, 0x59, 0x06, 0xfe, 0x02,
		0x7f, 0x81, 0xbf, 0x2d, 0xc2, 0xdf, 0x51, 0xe4, 0x78, 0x22, 0xb6, 0xc3, 0x21, 0x8f, 0x07, 0xaf,
		0xe1, 0x2e, 0x47, 0xd0, 0x75, 0x96, 0x6a, 0xc0, 0xc9, 0xdb, 0x6f, 0x4e, 0xac, 0x21, 0x19, 0xf8,
		0xfb, 0xcd, 0xf1, 0xd7, 0xd3, 0xdb, 0x87, 0xab, 0x6f, 0x0f, 0x67, 0x17, 0xd7, 0xc7, 0x27, 0x77,
		0x5c, 0x2b, 0x3c, 0xad, 0xf8, 0x8a, 0x59, 0x4b, 0x25, 0x99, 0x75, 0xd5, 0x6d, 0x23, 0xf0, 0x70,
		0x71, 0x76, 0x79, 0x75, 0xb3, 0x18, 0x0e, 0x3e, 0x85, 0xf2, 0x7d, 0xeb, 0x06, 0xe2, 0x8f, 0xb3,
		0xbb, 0xf3, 0xd3, 0xdb, 0xdb, 0x5e, 0x8f, 0xc1, 0xf9, 0xd5, 0xe5, 0xef, 0x58, 0x0b, 0x77, 0x0f,
		0x17, 0xc7, 0xff, 0xad, 0xc3, 0x29, 0x58, 0x2c, 0xdd, 0x37, 0xbd, 0xa7, 0xbd, 0xab, 0xf7, 0x93,
		0x8a, 0xcb, 0x87, 0x4b, 0x31, 0x33, 0x4f, 0x29, 0x23, 0x6c, 0x5a, 0xe6, 0x68, 0x60, 0x6a, 0x5e,
		0x55, 0x7d, 0x05, 0x29, 0xac, 0x9e, 0xc1, 0x22, 0x61, 0xb7, 0x3a, 0xe6, 0xaa, 0x4b, 0x68, 0x25,
		0x74, 0xca, 0x1b, 0x55, 0x5c, 0xd9, 0xb4, 0x2a, 0x45, 0x72, 0xb4, 0xc4, 0x11, 0x25, 0xad, 0x47,
		0x47, 0xab, 0xae, 0x42, 0x59, 0xdd, 0x4c, 0x11, 0x11, 0x7b, 0x24, 0xc4, 0x1e, 0x01, 0xe5, 0x23,
		0x9f, 0xb5, 0x21, 0x6c, 0x09, 0x42, 0x53, 0xab, 0x09, 0x07, 0xce, 0x73, 0x28, 0xbd, 0x65, 0x7e,
		0x9d, 0x4d, 0xe6, 0xd8, 0xb0, 0x0b, 0x91, 0x03, 0x22, 0x07, 0x44, 0x8e, 0x16, 0x89, 0x1c, 0x93,
		0x89, 0xf4, 0x38, 0x85, 0x8d, 0xa3, 0x16, 0x8a, 0xc0, 0x4b, 0x9a, 0x61, 0xbf, 0x08, 0x39, 0x7a,
		0x64, 0x54, 0x81, 0xf3, 0xa6, 0x81, 0x90, 0x40, 0x48, 0x20, 0x64, 0x9b, 0x10, 0x92, 0xeb, 0xfc,
		0x39, 0xe3, 0xb9, 0x73, 0xe6, 0xf3, 0xe6, 0xbc, 0x95, 0x74, 0x1a, 0x2a, 0x5d, 0xb5, 0x1c, 0x42,
		0xd6, 0x75, 0x9e, 0x5c, 0xe7, 0x09, 0xe3, 0x9f, 0xbc, 0xa5, 0x89, 0xad, 0x9b, 0x2a, 0xfd, 0xe7,
		0xc4, 0xb5, 0xce, 0x9e, 0x21, 0x05, 0x99, 0xf7, 0x2d, 0x24, 0x69, 0xe2, 0xd5, 0xf5, 0x27, 0x9e,
		0xb0, 0x7d, 0x19, 0xfc, 0xe0, 0xe3, 0x67, 0x6b, 0x56, 0x41, 0xcd, 0x40, 0xcd, 0x40, 0xcd, 0x10,
		0xbc, 0xb6, 0x12, 0x17, 0x83, 0xd0, 0x13, 0xfc, 0xb8, 0x98, 0x5a, 0x05, 0x2e, 0x02, 0x17, 0x81,
		0x8b, 0xc0, 0xc5, 0xd6, 0xe2, 0xa2, 0x2d, 0xbc, 0x91, 0xb0, 0xc7, 0x21, 0x25, 0x3b, 0xb9, 0x13,
		0x22, 0x57, 0xbf, 0x00, 0x68, 0x09, 0xb4, 0x04, 0x5a, 0x02, 0x2d, 0x5b, 0x89, 0x96, 0xf3, 0xda,
		0x1d, 0x66, 0x88, 0x4c, 0xad, 0x02, 0x17, 0x81, 0x8b, 0xc0, 0x45, 0xe0, 0x62, 0xab, 0x70, 0x51,
		0x06, 0x3a, 0x54, 0xc7, 0x35, 0xab, 0xc0, 0x45, 0xe0, 0x22, 0x70, 0x11, 0xb8, 0xd8, 0x4a, 0x5c,
		0xe4, 0x55, 0x1d, 0xd7, 0xac, 0x02, 0x17, 0x81, 0x8b, 0xc0, 0x45, 0xe0, 0x62, 0x6b, 0x71, 0x51,
		0x8b, 0xea, 0xb8, 0xed, 0x0b, 0x80, 0x96, 0x40, 0x4b, 0xa0, 0x25, 0xd0, 0xb2, 0x95, 0x68, 0xc9,
		0xab, 0x3a, 0xae, 0x59, 0x05, 0x2e, 0x02, 0x17, 0x81, 0x8b, 0xc0, 0xc5, 0x56, 0xe2, 0x22, 0xff,
		0x71, 0xbd, 0x9c, 0x65, 0xe0, 0x23, 0xf0, 0x11, 0xf8, 0x08, 0x7c, 0x6c, 0x15, 0x3e, 0xfa, 0xa1,
		0xeb, 0xf8, 0xb6, 0xf4, 0xf8, 0x70, 0x31, 0xb3, 0x08, 0x3c, 0x2c, 0x87, 0x87, 0xb3, 0xb6, 0x1e,
		0x40, 0x41, 0x2d, 0x28, 0x38, 0x1f, 0x5c, 0x60, 0xdf, 0xc6, 0xca, 0x63, 0x6b, 0x72, 0xdf, 0x6a,
		0xf4, 0x63, 0xb9, 0xfc, 0x29, 0x1b, 0x53, 0x8e, 0x1e, 0xe8, 0xbd, 0xb9, 0x0b, 0x0e, 0xa8, 0x07,
		0xd4, 0xdb, 0xf3, 0x5a, 0x6c, 0xf7, 0xbe, 0xe1, 0x96, 0x7d, 0xba, 0x41, 0xed, 0xf7, 0x05, 0xb1,
		0x01, 0x82, 0x2e, 0x60, 0xd0, 0x0e, 0x10, 0xda, 0x81, 0x42, 0x3f, 0x60, 0xf0, 0x00, 0x07, 0x13,
		0x80, 0xf0, 0xd3, 0x27, 0x7d, 0x34, 0x8a, 0x99, 0x4e, 0xf1, 0xcd, 0x03, 0xc7, 0x6d, 0x6e, 0x29,
		0x50, 0x6a, 0xba, 0x69, 0x73, 0xc5, 0x36, 0x90, 0x18, 0x48, 0x0c, 0x24, 0x06, 0x12, 0x77, 0x15,
		0x89, 0x4d, 0xb8, 0xfb, 0x8b, 0x0d, 0x6e, 0x71, 0xdb, 0x17, 0x6e, 0xfb, 0xd2, 0xdb, 0xc3, 0xb8,
		0xa0, 0xf7, 0xed, 0x01, 0x13, 0x4f, 0x68, 0xac, 0xa3, 0xf1, 0xdd, 0xfc, 0x9d, 0x56, 0x7e, 0x94,
		0x02, 0x60, 0x0b, 0xb5, 0xb7, 0xe9, 0x86, 0x2d, 0xa2, 0x48, 0x78, 0x76, 0x12, 0x39, 0x41, 0x3c,
		0x0e, 0xa3, 0xc4, 0xf6, 0x9d, 0x37, 0x11, 0xf1, 0x09, 0x72, 0xdb, 0xbf, 0x02, 0xb9, 0x89, 0x72,
		0x54, 0x10, 0xb9, 0x5a, 0xe4, 0x6a, 0x9b, 0xa4, 0x79, 0xcb, 0xac, 0xe2, 0xd4, 0x6d, 0xed, 0x71,
		0x14, 0x26, 0xa1, 0x1b, 0xfa, 0x5c, 0xf1, 0x5e, 0xb7, 0x2e, 0xef, 0xc2, 0x45, 0x07, 0x2c, 0x24,
		0xa1, 0x8d, 0x37, 0x1d, 0xe4, 0x79, 0x41, 0x6d, 0x57, 0x1d, 0xbc, 0xd3, 0xb8, 0xda, 0x16, 0x51,
		0x87, 0x62, 0x4d, 0x01, 0x2d, 0xc6, 0xa0, 0xc7, 0x14, 0x5a, 0x62, 0x08, 0x5a, 0xcc, 0x50, 0x75,
		0x02, 0x88, 0x6e, 0xde, 0xb0, 0x7b, 0x2b, 0xb8, 0x72, 0x53, 0x2e, 0x5c, 0xcd, 0x5f, 0xcb, 0x7b,
		0x5d, 0x85, 0x09, 0x1f, 0x44, 0x22, 0x4e, 0xc2, 0x28, 0x9d, 0x6d, 0xdb, 0x0d, 0xc3, 0xc8, 0x93,
		0x81, 0x93, 0x08, 0x3b, 0x51, 0xd9, 0xcd, 0x97, 0x77, 0x6f, 0xee, 0x30, 0x5a, 0x15, 0x0d, 0x94,
		0x68, 0xb7, 0x32, 0xcd, 0xa6, 0xd0, 0x6a, 0xd6, 0xab, 0x46, 0xa8, 0x94, 0x99, 0x8d, 0x22, 0xb3,
		0x51, 0x62, 0xee, 0xab, 0x44, 0xf4, 0xee, 0x42, 0xca, 0x74, 0x76, 0xa5, 0x79, 0x3d, 0x65, 0xe1,
		0x53, 0xa9, 0xaa, 0x22, 0x35, 0xd5, 0x09, 0x32, 0xc2, 0x1e, 0x47, 0x32, 0x8c, 0xa6, 0x93, 0x4d,
		0x44, 0x96, 0x15, 0x4b, 0x80, 0x13, 0xc0, 0x49, 0x2f, 0xe0, 0x44, 0xb9, 0x91, 0x3e, 0xa1, 0x71,
		0x3e, 0xb1, 0x51, 0x3e, 0x21, 0x44, 0xe4, 0x68, 0x84, 0xcf, 0x25, 0xd9, 0x31, 0x35, 0xba, 0xe7,
		0x6c, 0x8d, 0x4e, 0x11, 0x61, 0x39, 0x1a, 0xd7, 0x73, 0x0f, 0x2d, 0x7f, 0xaa, 0x85, 0x75, 0xb4,
		0x6b, 0x8a, 0xab, 0xef, 0x8d, 0xd8, 0xaa, 0x9f, 0x45, 0x14, 0x4f, 0x89, 0xfb, 0x93, 0x4a, 0x73,
		0x92, 0x95, 0x8d, 0x7a, 0xcd, 0x0e, 0xb6, 0x69, 0x6c, 0xd3, 0xbd, 0xd8, 0xa6, 0x49, 0xeb, 0xbe,
		0x53, 0xa4, 0x3f, 0x16, 0xbe, 0x70, 0xe7, 0x12, 0x40, 0x90, 0x44, 0xa1, 0xaf, 0x0e, 0x26, 0x79,
		0x53, 0xc0, 0x13, 0xe0, 0x49, 0x2f, 0xf0, 0x84, 0xba, 0xf4, 0x3b, 0x05, 0x29, 0x2f, 0x8e, 0x4c,
		0xec, 0x24, 0xb4, 0x53, 0x90, 0x4d, 0xec, 0x44, 0x3e, 0x11, 0x18, 0x4a, 0x91, 0xb1, 0x8a, 0xd3,
		0xfb, 0x55, 0x0c, 0x9d, 0x89, 0x9f, 0x2e, 0xc5, 0xc3, 0x5f, 0x80, 0x49, 0xc0, 0x24, 0x48, 0x11,
		0x90, 0x22, 0x20, 0x45, 0x40, 0x8a, 0x80, 0x14, 0x41, 0xfa, 0xcb, 0x92, 0x6b, 0x4a, 0x35, 0x53,
		0x5d, 0x43, 0x86, 0x7a, 0x50, 0x25, 0x50, 0xd2, 0x99, 0x7d, 0x2e, 0xb7, 0xfb, 0xec, 0x9f, 0x96,
		0x12, 0x53, 0x32, 0x88, 0xc2, 0x49, 0x22, 0x83, 0xd1, 0xea, 0x30, 0x94, 0x9d, 0x96, 0x65, 0xfc,
		0x9c, 0xb7, 0x51, 0x72, 0x31, 0x54, 0x3b, 0x46, 0x5d, 0x99, 0x47, 0xa9, 0xf0, 0x27, 0x16, 0xde,
		0xa4, 0xca, 0x97, 0xc8, 0x3c, 0x89, 0xcc, 0x8f, 0xb8, 0x78, 0x11, 0x2f, 0x68, 0x54, 0x3d, 0x62,
		0x3c, 0x70, 0xc3, 0x38, 0xb1, 0xdd, 0x47, 0x67, 0x8a, 0xe2, 0x22, 0x92, 0x71, 0x22, 0x5d, 0xf5,
		0xa8, 0xa3, 0xc8, 0x98, 0x5a, 0xe0, 0x70, 0xd8, 0xba, 0xc0, 0x81, 0xa1, 0xb2, 0xb8, 0x0f, 0xc1,
		0x03, 0xbd, 0x32, 0x58, 0x6f, 0x00, 0xa1, 0x7a, 0x46, 0x7f, 0xb6, 0xf6, 0x1d, 0x7f, 0x14, 0x46,
		0x32, 0x79, 0x7c, 0x52, 0x9f, 0xc3, 0x35, 0x5f, 0x5a, 0xda, 0x53, 0x1c, 0x7f, 0x1a, 0x7f, 0x24,
		0x17, 0xf4, 0x73, 0x14, 0xf2, 0xaf, 0xbb, 0x19, 0x43, 0x77, 0x3a, 0xae, 0x82, 0x7d, 0xf6, 0x42,
		0x7d, 0xf6, 0x02, 0xfd, 0xbc, 0xfb, 0x65, 0xc3, 0xd7, 0x92, 0xaa, 0x6c, 0x72, 0xe1, 0x3d, 0xdf,
		0x79, 0x4a, 0xe2, 0xf9, 0x49, 0x85, 0x4a, 0xe4, 0xf7, 0x8a, 0x28, 0x44, 0x3a, 0x98, 0xbe, 0x0e,
		0x40, 0x84, 0x73, 0x09, 0xc0, 0x1e, 0x60, 0x0f, 0xb0, 0xa7, 0x6f, 0xd8, 0x43, 0x6b, 0x4d, 0xb4,
		0x0e, 0x3e, 0x94, 0x7e, 0x44, 0x40, 0x1f, 0xa0, 0x0f, 0xd0, 0xa7, 0xad, 0xe8, 0x53, 0xc7, 0x19,
		0x2c, 0x55, 0x7e, 0x83, 0x43, 0x58, 0xe4, 0x19, 0x30, 0xeb, 0x10, 0x56, 0x4e, 0x94, 0x3d, 0xa0,
		0xeb, 0x58, 0x16, 0xaf, 0xf6, 0x3d, 0x7b, 0xc4, 0x95, 0x63, 0x57, 0x27, 0x61, 0x9c, 0x9c, 0xac,
		0x3f, 0xa0, 0x01, 0x25, 0x0c, 0x9e, 0x4c, 0xeb, 0xc3, 0x92, 0x37, 0x7b, 0x1c, 0xfa, 0xd2, 0x25,
		0x1c, 0x85, 0xc8, 0x59, 0xea, 0x4b, 0xfd, 0x01, 0x64, 0xc4, 0x4e, 0xc8, 0x88, 0xf4, 0x3a, 0x04,
		0xa2, 0x07, 0x58, 0x5d, 0x2a, 0x8d, 0x92, 0xb1, 0x9d, 0xde, 0x17, 0x1e, 0xcb, 0x67, 0x42, 0x4d,
		0xd4, 0x9a, 0x15, 0xf5, 0x62, 0xa8, 0xe9, 0x32, 0x06, 0x1c, 0x01, 0x8e, 0xfa, 0x05, 0x47, 0xdf,
		0xc3, 0xd0, 0x17, 0x4e, 0x40, 0x41, 0xa1, 0x43, 0x03, 0x90, 0xc4, 0x77, 0x92, 0xf4, 0x60, 0x3d,
		0x57, 0xc6, 0x73, 0x8b, 0x3d, 0x24, 0x3d, 0x01, 0x0f, 0x7d, 0x48, 0x7a, 0x0e, 0xe5, 0xab, 0xf0,
		0x6c, 0x26, 0xa7, 0xca, 0x2d, 0xb1, 0x9d, 0xd6, 0x1b, 0x96, 0x05, 0x3f, 0x42, 0x16, 0x84, 0x2c,
		0x08, 0x59, 0xd0, 0xf8, 0xa4, 0xc4, 0x5f, 0x32, 0x49, 0x44, 0xc4, 0x0e, 0x4d, 0xc5, 0x66, 0x81,
		0x49, 0xc0, 0x24, 0x60, 0x12, 0x30, 0x69, 0xcf, 0x33, 0xfe, 0x3d, 0x11, 0x32, 0x18, 0x69, 0xa3,
		0x4d, 0xbb, 0xcd, 0x23, 0x9d, 0x0a, 0x8c, 0x02, 0x46, 0x01, 0xa3, 0xf6, 0x3c, 0x63, 0x12, 0x39,
		0xc3, 0xa1, 0x74, 0xed, 0x71, 0x14, 0x8e, 0x45, 0x94, 0xbc, 0x31, 0x15, 0x95, 0x15, 0x9b, 0x05,
		0x26, 0x01, 0x93, 0x80, 0x49, 0xc0, 0xa4, 0x3d, 0xcf, 0xf8, 0xe2, 0x04, 0x9e, 0x86, 0x58, 0xae,
		0xd8, 0x2c, 0x62, 0x39, 0x60, 0x12, 0x30, 0xa9, 0x5f, 0x98, 0x54, 0x47, 0xd9, 0x19, 0x07, 0x03,
		0x42, 0x09, 0x1a, 0x79, 0x36, 0x4c, 0x2f, 0x41, 0x63, 0x8b, 0xde, 0x75, 0x56, 0xa1, 0x9d, 0xcf,
		0x1e, 0xd2, 0xbc, 0x42, 0xb4, 0x27, 0xe7, 0xd5, 0x76, 0x7c, 0x3f, 0x7c, 0x11, 0x9e, 0xed, 0x86,
		0x71, 0xa2, 0x9e, 0xe0, 0xcd, 0x59, 0x42, 0x6a, 0xb7, 0xb6, 0x7d, 0x1f, 0xa9, 0x5d, 0x3a, 0xce,
		0x29, 0xa7, 0x76, 0x95, 0xdb, 0x59, 0xe7, 0x96, 0x93, 0x62, 0x3b, 0xeb, 0xee, 0x86, 0xf9, 0x8c,
		0x97, 0x50, 0xf5, 0x99, 0x5a, 0xf3, 0x5d, 0x32, 0xd5, 0x56, 0x8a, 0xad, 0xdc, 0xab, 0x6a, 0xd3,
		0xb7, 0x8e, 0x08, 0x26, 0x68, 0xbd, 0xab, 0x16, 0xff, 0x78, 0xae, 0xcc, 0x64, 0xbc, 0x84, 0x8d,
		0xf7, 0xd2, 0x64, 0xa6, 0xde, 0x56, 0x99, 0x3d, 0xc6, 0xae, 0x4b, 0xc4, 0xe5, 0xbc, 0x19, 0x17,
		0x18, 0x3f, 0x05, 0x7a, 0x6e, 0x3e, 0xd5, 0x36, 0x2b, 0x0d, 0x5d, 0xbe, 0x76, 0x6f, 0xb0, 0x0e,
		0xc8, 0x74, 0xc6, 0x14, 0xc7, 0x4b, 0x41, 0x4a, 0x40, 0x4a, 0x40, 0x4a, 0x40, 0x4a, 0x40, 0x4a,
		0x40, 0x4a, 0x40, 0x4a, 0xea, 0x92, 0x64, 0x4c, 0x97, 0x9e, 0x89, 0x92, 0xa7, 0xa5, 0x59, 0x74,
		0xbe, 0x70, 0x5e, 0x8f, 0x67, 0x4f, 0x77, 0x32, 0x7d, 0x38, 0xc3, 0xd4, 0x66, 0x4f, 0xf8, 0xce,
		0x1b, 0x8f, 0xdc, 0x3c, 0x33, 0x05, 0xbd, 0xb9, 0x36, 0xde, 0x09, 0xbd, 0x99, 0x0e, 0x6e, 0xd0,
		0x9b, 0x11, 0xda, 0x21, 0xb4, 0x43, 0x68, 0x87, 0xd0, 0x0e, 0xa1, 0x1d, 0x42, 0x3b, 0x84, 0x76,
		0xc6, 0x85, 0x76, 0xd0, 0x9b, 0x41, 0x4a, 0x40, 0x4a, 0x40, 0x4a, 0x40, 0x4a, 0x40, 0x4a, 0x40,
		0x4a, 0x40, 0x4a, 0x8c, 0x20, 0x25, 0xd0, 0x9b, 0x09, 0x9a, 0xa7, 0x55, 0x9b, 0xe0, 0xfc, 0x35,
		0x7d, 0x3a, 0xc3, 0x14, 0xe7, 0xc7, 0x70, 0x1c, 0xf3, 0x08, 0xce, 0xa9, 0x25, 0xe8, 0xcd, 0xb5,
		0xf1, 0x4e, 0xe8, 0xcd, 0x74, 0x70, 0x83, 0xde, 0x8c, 0xd0, 0x0e, 0xa1, 0x1d, 0x42, 0x3b, 0x84,
		0x76, 0x08, 0xed, 0x10, 0xda, 0x21, 0xb4, 0x33, 0x2e, 0xb4, 0x83, 0xde, 0x0c, 0x52, 0x02, 0x52,
		0x02, 0x52, 0x02, 0x52, 0x02, 0x52, 0x02, 0x52, 0x02, 0x52, 0x62, 0x04, 0x29, 0x81, 0xde, 0xac,
		0x2e, 0x79, 0x5a, 0xb5, 0xc9, 0xcd, 0x7f, 0x4c, 0x1f, 0xce, 0x00, 0xb5, 0x39, 0x92, 0xf1, 0x0f,
		0x7b, 0x79, 0x1f, 0x0d, 0xd7, 0xdd, 0x09, 0xbb, 0xcd, 0x42, 0x87, 0xae, 0x8d, 0x8f, 0x42, 0x87,
		0xa6, 0x83, 0x9e, 0xb2, 0x0e, 0x9d, 0x7a, 0xc1, 0xfa, 0xda, 0x67, 0xea, 0xb5, 0xb9, 0xd5, 0x32,
		0x42, 0x42, 0xb4, 0xb6, 0x63, 0x70, 0x49, 0xb4, 0xb6, 0xeb, 0x76, 0xbb, 0xcd, 0x14, 0x3f, 0xa4,
		0x27, 0x82, 0x44, 0x0e, 0xa5, 0x88, 0x6c, 0x5f, 0x2a, 0x34, 0xd2, 0x2a, 0x46, 0xa5, 0x4d, 0xab,
		0x40, 0x24, 0x20, 0x12, 0x10, 0xa9, 0xcd, 0x88, 0xa4, 0x38, 0x02, 0xa4, 0x46, 0x96, 0xab, 0x22,
		0xd4, 0x6a, 0x3b, 0x4a, 0xc2, 0x28, 0xe8, 0x68, 0x6c, 0x99, 0x19, 0x27, 0x35, 0xb8, 0x34, 0x35,
		0xda, 0x9f, 0xb7, 0x35, 0x65, 0x22, 0x9b, 0xe8, 0x6c, 0xda, 0x79, 0xf9, 0x85, 0x33, 0xec, 0xd7,
		0xad, 0xc5, 0xdc, 0xc8, 0xf8, 0xc7, 0xd7, 0xc5, 0xa3, 0x9a, 0xd7, 0xe6, 0x74, 0x3a, 0xba, 0xc2,
		0x0e, 0xbf, 0xff, 0x95, 0xbe, 0x89, 0xb0, 0x87, 0x93, 0xc0, 0x55, 0x9a, 0xf8, 0x25, 0x3b, 0xdb,
		0x66, 0x11, 0x17, 0xde, 0x42, 0x8e, 0xe9, 0xd5, 0x85, 0xb7, 0x4c, 0x9e, 0x60, 0x75, 0xe9, 0x1e,
		0xee, 0x24, 0xf4, 0x45, 0xe4, 0x7c, 0xf7, 0x85, 0x2d, 0x9f, 0xc6, 0x8e, 0x4b, 0x68, 0xab, 0x9c,
		0xb3, 0x04, 0x7c, 0x01, 0xbe, 0xf4, 0x0a, 0x5f, 0x46, 0x91, 0xe3, 0x89, 0xd8, 0x0e, 0x87, 0x6a,
		0x1e, 0xb0, 0x86, 0x2b, 0x2a, 0x9c, 0xf4, 0x2c, 0x95, 0x60, 0x92, 0xb7, 0xdf, 0x9c, 0x98, 0x41,
		0x6b, 0xfe, 0xfd, 0xe6, 0xf8, 0xeb, 0xe9, 0xed, 0xc3, 0xd5, 0xb7, 0x87, 0xb3, 0x8b, 0xeb, 0xe3,
		0x93, 0x3b, 0xd5, 0x15, 0x95, 0xe6, 0x8b, 0x63, 0x52, 0x61, 0x03, 0x51, 0xf6, 0xd8, 0xf6, 0x46,
		0x0f, 0x17, 0x67, 0x97, 0x57, 0x37, 0x8b, 0xd7, 0x53, 0x17, 0x18, 0xde, 0x1b, 0xf7, 0x62, 0x7f,
		0x9c, 0xdd, 0x9d, 0x9f, 0xde, 0xde, 0x76, 0xea, 0x9d, 0xce, 0xaf, 0x2e, 0x7f, 0xef, 0xe2, 0x5c,
		0x5d, 0x1c, 0xff, 0x37, 0xc7, 0x22, 0x54, 0xfa, 0xe4, 0xbd, 0x6e, 0x0c, 0x7e, 0xc7, 0xfb, 0x97,
		0x25, 0xa7, 0x4f, 0x35, 0x60, 0xd6, 0x1d, 0x28, 0x57, 0x80, 0x50, 0x8d, 0x21, 0x70, 0xb9, 0x45,
		0xb6, 0x7f, 0x42, 0x4a, 0x4c, 0xc6, 0x60, 0x21, 0xdf, 0xae, 0x0e, 0x42, 0xd9, 0x19, 0x59, 0x61,
		0x96, 0x79, 0x23, 0x25, 0x17, 0x42, 0xb5, 0x1a, 0x82, 0xca, 0x64, 0x52, 0x85, 0x44, 0xae, 0x93,
		0xc7, 0xd5, 0x95, 0x53, 0x65, 0x79, 0x28, 0x12, 0x46, 0x32, 0x51, 0x24, 0x13, 0xc4, 0x3c, 0x31,
		0x5c, 0x1b, 0x82, 0x86, 0x00, 0xa3, 0x6a, 0xae, 0x7f, 0xe0, 0x3c, 0x87, 0xd2, 0x5b, 0x66, 0x27,
		0x94, 0xa3, 0xa6, 0x0d, 0x3b, 0x88, 0x99, 0x10, 0x33, 0xf5, 0x2a, 0x66, 0x9a, 0x4c, 0xa4, 0x47,
		0x89, 0x93, 0x8e, 0x0c, 0xd0, 0x50, 0x96, 0xdb, 0x92, 0xfd, 0x22, 0xe4, 0xe8, 0x91, 0x20, 0xa2,
		0xe4, 0x4d, 0x01, 0x11, 0x80, 0x08, 0xfd, 0x42, 0x04, 0xd5, 0xc3, 0x18, 0x84, 0x43, 0x18, 0xc4,
		0xc3, 0x17, 0xb4, 0x3c, 0x37, 0x43, 0x5d, 0x07, 0x4b, 0x85, 0x3f, 0xd7, 0xe1, 0x0a, 0xce, 0xf2,
		0xfd, 0x9f, 0xb4, 0xc4, 0xbf, 0x71, 0x43, 0xcb, 0x7f, 0x68, 0x82, 0x75, 0xb4, 0x6b, 0x2a, 0x5f,
		0xb8, 0x37, 0x60, 0xd3, 0x16, 0xaf, 0xae, 0x3f, 0xf1, 0x84, 0xed, 0xcb, 0xe0, 0x87, 0xfa, 0x7e,
		0xbd, 0x66, 0x05, 0x5b, 0x35, 0xb6, 0x6a, 0x90, 0xf7, 0x96, 0x91, 0xf7, 0x85, 0x07, 0x07, 0xa1,
		0x27, 0xe8, 0x38, 0x90, 0x5a, 0x01, 0x0e, 0x00, 0x07, 0x80, 0x03, 0x2d, 0xc6, 0x01, 0x5b, 0x78,
		0x23, 0x61, 0x8f, 0xc3, 0x2a, 0x6a, 0xf5, 0x4e, 0x48, 0x58, 0x35, 0x08, 0x74, 0x00, 0x3a, 0x00,
		0x1d, 0x5a, 0x8a, 0x0e, 0xf3, 0xd4, 0x20, 0x11, 0x12, 0x52, 0x2b, 0xc0, 0x01, 0xe0, 0x00, 0x70,
		0xa0, 0x65, 0x38, 0x20, 0x03, 0x0e, 0xd5, 0x60, 0xcd, 0x0a, 0x70, 0x00, 0x38, 0x00, 0x1c, 0x68,
		0x29, 0x0e, 0xd0, 0x54, 0x83, 0x35, 0x2b, 0xc0, 0x01, 0xe0, 0x00, 0x70, 0xa0, 0xc5, 0x38, 0xc0,
		0xa2, 0x1a, 0x6c, 0x33, 0x08, 0x74, 0x00, 0x3a, 0x00, 0x1d, 0x5a, 0x8a, 0x0e, 0x34, 0xd5, 0x60,
		0xcd, 0x0a, 0x70, 0x00, 0x38, 0x00, 0x1c, 0x68, 0x29, 0x0e, 0xd0, 0xcb, 0x85, 0x73, 0x96, 0x80,
		0x07, 0xc0, 0x03, 0xe0, 0x41, 0xcb, 0xf0, 0xc0, 0x0f, 0x5d, 0xc7, 0xb7, 0xa5, 0xa7, 0x8e, 0x03,
		0x99, 0x85, 0xbe, 0xf8, 0xff, 0xec, 0x14, 0x16, 0xbc, 0x7e, 0xcb, 0x09, 0x9a, 0x74, 0x70, 0x3a,
		0xe7, 0xeb, 0xca, 0x2d, 0xb0, 0x8c, 0xf2, 0x76, 0xa5, 0xd6, 0x9f, 0xd9, 0x18, 0xa8, 0x74, 0x5c,
		0x6a, 0x6d, 0xe7, 0x5c, 0x78, 0x79, 0xeb, 0xbc, 0x5c, 0xb9, 0x4b, 0x2e, 0xae, 0x44, 0xd1, 0xd0,
		0x6d, 0x52, 0xd9, 0x81, 0xb8, 0x1c, 0x89, 0xdd, 0xa1, 0xd8, 0x1d, 0x8b, 0xdf, 0xc1, 0xd4, 0x1c,
		0x4d, 0xd1, 0xe1, 0xe8, 0xdb, 0x2b, 0xdf, 0x36, 0x4b, 0xdc, 0x6e, 0xd5, 0xc7, 0x4d, 0xf9, 0x0a,
		0x26, 0xa6, 0x3e, 0xdc, 0x2b, 0xb6, 0x80, 0x3c, 0x40, 0x1e, 0x20, 0x4f, 0x7f, 0x90, 0xa7, 0x8e,
		0xce, 0xab, 0xca, 0xf0, 0x82, 0x5e, 0xab, 0xe4, 0x29, 0x30, 0xaa, 0xd7, 0x6a, 0x41, 0xe7, 0x93,
		0x03, 0xc5, 0x5d, 0x87, 0xaf, 0xa1, 0xcc, 0xdd, 0xfc, 0xa1, 0x56, 0x9a, 0xaa, 0xa6, 0xfe, 0x6c,
		0x40, 0xa8, 0x3d, 0xc5, 0x7b, 0x11, 0x45, 0xc2, 0xb3, 0x93, 0xc8, 0x09, 0xe2, 0x71, 0x18, 0x25,
		0xb6, 0xef, 0xbc, 0x89, 0x48, 0x3d, 0xfe, 0xde, 0x6e, 0x12, 0xd2, 0x3b, 0xc2, 0xf3, 0x5e, 0x49,
		0xef, 0xe9, 0xb2, 0xb7, 0xc7, 0x51, 0x98, 0x84, 0x6e, 0xe8, 0xab, 0xd2, 0x5f, 0xb3, 0x5b, 0xa7,
		0xb2, 0x76, 0x15, 0x9a, 0x6f, 0xe7, 0x15, 0xc5, 0x7a, 0xb5, 0x4d, 0x5c, 0x7d, 0xf3, 0x66, 0xdd,
		0xb4, 0xd5, 0x36, 0xeb, 0x56, 0xf5, 0x75, 0x53, 0x6f, 0x47, 0xa6, 0x7b, 0x1f, 0xae, 0xb3, 0xb3,
		0x5b, 0x9a, 0x87, 0xab, 0xdc, 0xca, 0xad, 0x42, 0xf6, 0xae, 0xe2, 0x86, 0xd9, 0x48, 0xef, 0xb6,
		0x8a, 0x21, 0x6f, 0xb7, 0xba, 0xb6, 0x55, 0x0b, 0x59, 0x79, 0x91, 0xb5, 0xf2, 0x66, 0xa6, 0x9a,
		0x3f, 0xae, 0x18, 0x60, 0x96, 0xf0, 0xad, 0x77, 0x84, 0xf7, 0x5f, 0xec, 0x28, 0x25, 0x5e, 0xa2,
		0xda, 0x2e, 0x52, 0x7d, 0xf7, 0x60, 0xd9, 0x35, 0xaa, 0xed, 0x16, 0xfb, 0x06, 0xa7, 0xe2, 0xee,
		0xc0, 0xba, 0x2b, 0x94, 0x58, 0x52, 0x6c, 0xc8, 0xbf, 0xdb, 0xe9, 0xb6, 0x2f, 0xb0, 0xe2, 0xdf,
		0x6c, 0x19, 0xd5, 0xb2, 0xa3, 0xa9, 0x3a, 0x8a, 0x3b, 0x06, 0x4c, 0x69, 0xa0, 0x8a, 0x07, 0x25,
		0xff, 0xca, 0x05, 0xaf, 0xbb, 0x3b, 0x43, 0x5b, 0x26, 0x13, 0xbb, 0x27, 0xe3, 0xba, 0x77, 0x6f,
		0x2a, 0xb3, 0x17, 0x55, 0xdc, 0x7b, 0xca, 0xee, 0x35, 0x95, 0xf7, 0x96, 0xca, 0x7b, 0x49, 0xf5,
		0xbd, 0xa3, 0xda, 0x42, 0xdd, 0x97, 0x81, 0x2c, 0x99, 0x69, 0xac, 0x94, 0x51, 0x2c, 0x49, 0x4e,
		0x4a, 0x93, 0x92, 0x2a, 0x64, 0x44, 0x91, 0x84, 0x54, 0x25, 0x1f, 0xca, 0xa4, 0x43, 0x99, 0x6c,
		0xa8, 0x93, 0x0c, 0xda, 0xa6, 0x5a, 0x9a, 0x4c, 0x54, 0xd7, 0xad, 0x4b, 0xd2, 0x87, 0x1d, 0x98,
		0xfd, 0x7e, 0xcf, 0xba, 0x2e, 0x97, 0xd1, 0xaa, 0x9e, 0xb9, 0xc2, 0x0a, 0xc7, 0x0a, 0xaf, 0x67,
		0x85, 0x57, 0x02, 0xfb, 0xb2, 0x19, 0x92, 0x72, 0xf4, 0xb7, 0x3c, 0xed, 0x25, 0xd1, 0xdd, 0x72,
		0x34, 0xb7, 0x06, 0x22, 0xb6, 0xc7, 0xef, 0xf7, 0x13, 0xaf, 0xed, 0x42, 0x7f, 0x39, 0xa6, 0xb5,
		0x29, 0x92, 0x66, 0x6c, 0x70, 0x2f, 0xfb, 0xda, 0xfa, 0x49, 0x53, 0x18, 0x59, 0x05, 0x99, 0xdc,
		0x64, 0x6e, 0x56, 0x5e, 0xc6, 0x66, 0x66, 0x69, 0xa5, 0x0e, 0x49, 0xad, 0x2d, 0x87, 0x92, 0x3b,
		0xd8, 0x61, 0xd9, 0x1d, 0xec, 0xa3, 0xae, 0x1d, 0x4c, 0x21, 0x83, 0xd2, 0xc6, 0xbd, 0xac, 0x7a,
		0x06, 0x84, 0xb6, 0xab, 0x95, 0x2d, 0x3d, 0x1c, 0x78, 0x32, 0x12, 0xd5, 0x6e, 0x51, 0xcc, 0xe6,
		0x6f, 0xf9, 0x51, 0xcd, 0xaa, 0xe5, 0xc7, 0xba, 0x54, 0x4b, 0x42, 0x3a, 0xaf, 0x4b, 0xfa, 0xa5,
		0x7a, 0xba, 0xce, 0x14, 0x25, 0x73, 0x18, 0x46, 0x2f, 0x4e, 0xe4, 0xc9, 0x60, 0x64, 0x57, 0x5d,
		0xa5, 0xaa, 0x79, 0xb8, 0x8a, 0xf9, 0x37, 0x9e, 0x4c, 0x43, 0x51, 0xda, 0xb1, 0xb2, 0x1f, 0xab,
		0xe7, 0x2e, 0xe1, 0xd1, 0xf0, 0xe8, 0x9a, 0x3c, 0x9a, 0x96, 0x60, 0x6f, 0x8f, 0x43, 0x57, 0x69,
		0x9e, 0xb5, 0x1c, 0x9c, 0xf2, 0xcd, 0xb2, 0x94, 0xaf, 0x7d, 0x82, 0xcb, 0xf6, 0xd3, 0x65, 0x2b,
		0x5f, 0xff, 0x34, 0x5d, 0x8c, 0x76, 0xa5, 0x14, 0x78, 0xe1, 0x7a, 0xb6, 0x15, 0x4e, 0xb3, 0xb6,
		0xb7, 0x90, 0x4c, 0xf1, 0xd0, 0xba, 0xd5, 0x93, 0x02, 0xb2, 0x6c, 0x78, 0xba, 0x57, 0x38, 0x26,
		0x9c, 0x61, 0x24, 0x86, 0x94, 0x62, 0xb1, 0xcf, 0x0a, 0x9f, 0xbd, 0x2e, 0x90, 0xc2, 0xbe, 0x2c,
		0xa4, 0xb0, 0xb5, 0x21, 0xff, 0xb2, 0x5a, 0xd3, 0xb3, 0xe3, 0xd7, 0x1b, 0x3f, 0x9e, 0xba, 0xf0,
		0xc6, 0x8f, 0x52, 0x87, 0x36, 0xe2, 0x5e, 0xef, 0xf9, 0x0b, 0xd1, 0x40, 0x6a, 0xdd, 0x0c, 0x80,
		0x0a, 0x40, 0x05, 0xa0, 0x6a, 0x21, 0x50, 0x69, 0x45, 0x25, 0x1d, 0x25, 0xb3, 0x6b, 0xb8, 0x63,
		0x55, 0xa5, 0x4a, 0x2c, 0x15, 0xb4, 0x87, 0xa8, 0xa0, 0x5d, 0xf9, 0x5c, 0x89, 0xe4, 0xd2, 0xb6,
		0x0c, 0x4d, 0xfa, 0x8b, 0x83, 0x8a, 0xbd, 0x8e, 0xf7, 0xa7, 0xa2, 0xa6, 0x4e, 0x73, 0xb2, 0xfc,
		0xb6, 0xd5, 0x1f, 0x3f, 0x9c, 0x4f, 0xbf, 0xac, 0xc6, 0x88, 0x56, 0x4d, 0x93, 0x52, 0x10, 0xa1,
		0x0e, 0x51, 0x0c, 0x8b, 0x62, 0x58, 0x72, 0xf4, 0xaa, 0xd6, 0x7a, 0x81, 0xd4, 0x72, 0x01, 0x9d,
		0x87, 0x3a, 0x49, 0x05, 0xd1, 0x79, 0x68, 0x1b, 0x50, 0x9b, 0xd0, 0x79, 0x88, 0xd0, 0xf2, 0x80,
		0xde, 0xea, 0x00, 0x1e, 0x0f, 0x8f, 0x87, 0xc7, 0x9b, 0x1a, 0x60, 0x55, 0x76, 0x6b, 0x9c, 0x4a,
		0x34, 0x2f, 0xa6, 0xaa, 0x9a, 0x20, 0x24, 0xc5, 0x54, 0xe5, 0xcf, 0xf8, 0xf3, 0xc4, 0x54, 0x51,
		0x38, 0x49, 0x64, 0x30, 0x5a, 0x3d, 0x65, 0x59, 0x39, 0xc2, 0x2a, 0xb0, 0x81, 0x0c, 0x22, 0x32,
		0x88, 0x26, 0xc4, 0x60, 0x6e, 0x18, 0x27, 0xb6, 0xfb, 0xe8, 0x44, 0x8e, 0x9b, 0x88, 0x48, 0xc6,
		0x89, 0x74, 0xd5, 0x49, 0x5a, 0x91, 0xb1, 0xbe, 0xf4, 0x8c, 0x44, 0x7b, 0x0a, 0xcd, 0x8e, 0x52,
		0x0f, 0x83, 0x53, 0xee, 0x23, 0x99, 0xae, 0x7d, 0xc7, 0x1f, 0x85, 0x91, 0x4c, 0x1e, 0x9f, 0xe8,
		0xbd, 0xdd, 0x36, 0xec, 0xa1, 0xbf, 0x1b, 0x39, 0x27, 0xc6, 0xe5, 0x66, 0xec, 0xee, 0xc6, 0xee,
		0x76, 0xdb, 0xdd, 0x4f, 0x3d, 0x67, 0xa6, 0xe6, 0x7e, 0x8a, 0x6e, 0x48, 0x0f, 0xa8, 0xf8, 0x02,
		0x2b, 0x62, 0x80, 0xa5, 0x3e, 0x6e, 0x2a, 0xdd, 0x25, 0x53, 0xd4, 0xe0, 0x69, 0x2e, 0xb9, 0x34,
		0x05, 0xec, 0x01, 0xf6, 0x00, 0x7b, 0x80, 0x3d, 0x65, 0xb0, 0x87, 0xa9, 0x9d, 0xf6, 0x8a, 0x2d,
		0xa0, 0x0f, 0xd0, 0x07, 0xe8, 0xd3, 0x2f, 0xf4, 0xa9, 0xa3, 0xbb, 0xad, 0x2a, 0xbf, 0x41, 0x73,
		0x5b, 0xf2, 0x0c, 0xd4, 0xd0, 0xdc, 0x76, 0xb7, 0x62, 0x9d, 0x17, 0x64, 0x0f, 0xe8, 0xda, 0x95,
		0x45, 0xd6, 0xb6, 0x6f, 0x66, 0x8f, 0xb5, 0xd2, 0xd1, 0xf6, 0x24, 0x8c, 0x93, 0x93, 0xf5, 0x87,
		0x32, 0x20, 0xa1, 0xeb, 0xc9, 0x67, 0x11, 0xc5, 0x32, 0x79, 0xb3, 0xc7, 0xa1, 0x2f, 0x5d, 0xc2,
		0x45, 0x72, 0x39, 0x4b, 0xe8, 0x66, 0x0b, 0xb9, 0xb0, 0x57, 0xdd, 0x6c, 0x89, 0x1e, 0x60, 0x19,
		0xdf, 0xca, 0xb6, 0xca, 0x05, 0x95, 0xb1, 0x2d, 0x5e, 0x5d, 0x7f, 0x12, 0xcb, 0x67, 0xca, 0x75,
		0xf6, 0xab, 0x56, 0xaa, 0xca, 0xbf, 0x62, 0xe8, 0x4c, 0xfc, 0xd9, 0xfa, 0x8b, 0x26, 0xb8, 0x0d,
		0x1f, 0x70, 0xd4, 0x33, 0x38, 0xfa, 0x1e, 0x86, 0xbe, 0x70, 0x02, 0x0a, 0x0a, 0x1d, 0x9a, 0x70,
		0xb5, 0xa5, 0x93, 0x88, 0xc0, 0x7d, 0x63, 0xcb, 0x6c, 0x6e, 0xb1, 0x87, 0xe4, 0x26, 0xe0, 0xa1,
		0x0f, 0xc9, 0xcd, 0xa1, 0x7c, 0x15, 0x9e, 0xcd, 0xe4, 0x54, 0xb9, 0x25, 0xb6, 0xd3, 0x7a, 0xc3,
		0xf2, 0xdf, 0x47, 0xc8, 0x7f, 0x90, 0xff, 0x20, 0xff, 0x19, 0x9f, 0x7c, 0xf8, 0x4b, 0x26, 0x89,
		0x88, 0xd8, 0xa1, 0xa9, 0xd8, 0x2c, 0x30, 0x09, 0x98, 0x04, 0x4c, 0x02, 0x26, 0xed, 0x79, 0xc6,
		0xbf, 0x27, 0x42, 0x06, 0x23, 0x6d, 0xb4, 0x69, 0xb7, 0x79, 0xa4, 0x4d, 0x81, 0x51, 0xc0, 0x28,
		0x60, 0xd4, 0x9e, 0x67, 0x4c, 0x22, 0x67, 0x38, 0x94, 0xae, 0x3d, 0x8e, 0xc2, 0xb1, 0x88, 0x92,
		0x37, 0xa6, 0xe2, 0xb1, 0x62, 0xb3, 0xc0, 0x24, 0x60, 0x12, 0x30, 0x09, 0x98, 0xb4, 0xe7, 0x19,
		0x5f, 0x9c, 0xc0, 0xd3, 0x10, 0xcb, 0x15, 0x9b, 0x45, 0x2c, 0x07, 0x4c, 0x02, 0x26, 0xf5, 0x0b,
		0x93, 0xea, 0x28, 0x2f, 0xe3, 0x60, 0x40, 0x28, 0x35, 0x23, 0xcf, 0x86, 0x89, 0xa5, 0x66, 0x6c,
		0x11, 0x3b, 0x77, 0xb5, 0xd9, 0xf9, 0xec, 0xc1, 0xcc, 0x2b, 0x38, 0x7b, 0x72, 0x5e, 0x6d, 0xc7,
		0xf7, 0xc3, 0x17, 0xe1, 0xd9, 0x6e, 0x18, 0x27, 0xea, 0x89, 0xdc, 0x9c, 0x25, 0xa4, 0x70, 0x6b,
		0xdb, 0xdf, 0x91, 0xc2, 0xa5, 0xe3, 0x99, 0x72, 0x0a, 0x77, 0x1c, 0xc9, 0x30, 0x92, 0xc9, 0x1b,
		0x9d, 0x47, 0x67, 0x96, 0x10, 0xce, 0xb3, 0xb9, 0x16, 0x28, 0x34, 0x87, 0xeb, 0xb5, 0x9d, 0x4a,
		0x4f, 0x64, 0x90, 0xfc, 0xfa, 0x89, 0x81, 0x4a, 0x1f, 0x11, 0x4c, 0xdc, 0x38, 0xc1, 0x68, 0xfa,
		0x34, 0xff, 0x26, 0x4d, 0x2f, 0x6d, 0xf9, 0x2e, 0xe8, 0x2b, 0xd9, 0x0f, 0x98, 0x40, 0x27, 0x67,
		0xee, 0x9f, 0xf3, 0x63, 0x6e, 0x5c, 0xf6, 0xbe, 0x4d, 0x09, 0x97, 0x0c, 0x83, 0xaf, 0x72, 0x24,
		0x67, 0x6c, 0x9d, 0x6c, 0xf7, 0xe7, 0x7b, 0x86, 0x29, 0x70, 0x5e, 0x8d, 0x9f, 0x02, 0x9e, 0xa8,
		0xa4, 0xb6, 0x59, 0x79, 0xd7, 0xcc, 0xa7, 0xef, 0x0d, 0xd6, 0xfb, 0x98, 0xce, 0x8c, 0xe2, 0xb8,
		0x28, 0x48, 0x09, 0x48, 0x09, 0x48, 0x09, 0x48, 0x09, 0x48, 0x09, 0x48, 0x09, 0x48, 0x49, 0x5d,
		0x92, 0x8c, 0x89, 0x12, 0x33, 0x51, 0xe6, 0xb4, 0x34, 0x88, 0xcb, 0x17, 0xce, 0xeb, 0xf1, 0xec,
		0x89, 0x4e, 0xa6, 0x0f, 0x64, 0x98, 0xaa, 0xec, 0x09, 0xdf, 0x79, 0xe3, 0x91, 0x95, 0x67, 0xa6,
		0xa0, 0x2b, 0xd7, 0xc6, 0x2f, 0xa1, 0x2b, 0xd3, 0x41, 0x0c, 0xba, 0x32, 0x42, 0x38, 0x84, 0x70,
		0x08, 0xe1, 0x10, 0xc2, 0x21, 0x84, 0x43, 0x08, 0x87, 0x10, 0xce, 0xb8, 0x10, 0x0e, 0xba, 0x32,
		0x48, 0x09, 0x48, 0x09, 0x48, 0x09, 0x48, 0x09, 0x48, 0x09, 0x48, 0x09, 0x48, 0x89, 0x11, 0xa4,
		0xa4, 0xd7, 0xba, 0xb2, 0x8a, 0xce, 0x69, 0x69, 0x15, 0x96, 0xbf, 0xa6, 0x4f, 0x64, 0x98, 0xb2,
		0xfc, 0x18, 0x8e, 0x63, 0x1e, 0x61, 0x39, 0xb5, 0x04, 0x5d, 0xb9, 0x36, 0x7e, 0x09, 0x5d, 0x99,
		0x0e, 0x62, 0xd0, 0x95, 0x11, 0xc2, 0x21, 0x84, 0x43, 0x08, 0x87, 0x10, 0x0e, 0x21, 0x1c, 0x42,
		0x38, 0x84, 0x70, 0xc6, 0x85, 0x70, 0xd0, 0x95, 0x41, 0x4a, 0x40, 0x4a, 0x40, 0x4a, 0x40, 0x4a,
		0x40, 0x4a, 0x40, 0x4a, 0x40, 0x4a, 0x8c, 0x20, 0x25, 0xbd, 0xd6, 0x95, 0x15, 0x64, 0x4e, 0x4b,
		0xab, 0xac, 0xfc, 0xc7, 0xf4, 0x81, 0x0c, 0x50, 0x95, 0x23, 0x19, 0xff, 0xb0, 0x97, 0xf7, 0xc5,
		0x70, 0xdd, 0x6d, 0xb0, 0xdb, 0x2c, 0xf4, 0xe6, 0xda, 0x78, 0x27, 0xf4, 0x66, 0x3a, 0xb8, 0x29,
		0xeb, 0xcd, 0xa9, 0x17, 0xac, 0xaf, 0x7d, 0xa6, 0x5e, 0x98, 0x5b, 0x2d, 0x23, 0xf4, 0x43, 0xeb,
		0x39, 0x06, 0x97, 0x44, 0xeb, 0xb9, 0x6e, 0xb7, 0xc3, 0x4c, 0xf1, 0x43, 0x7a, 0x22, 0x48, 0xe4,
		0x50, 0x8a, 0xc8, 0xf6, 0xa5, 0x42, 0x03, 0xac, 0x62, 0x54, 0xda, 0xb4, 0x0a, 0x44, 0x02, 0x22,
		0x01, 0x91, 0xda, 0x8c, 0x48, 0x8a, 0x23, 0x40, 0x6a, 0x34, 0xb9, 0x2a, 0x36, 0xad, 0xb6, 0x8b,
		0x24, 0x8c, 0x82, 0x8e, 0xc6, 0x93, 0x99, 0x71, 0x52, 0x03, 0x4a, 0x53, 0xa3, 0xfa, 0x79, 0xdb,
		0x51, 0x26, 0xb2, 0x89, 0xce, 0xa3, 0x9d, 0x94, 0x59, 0x38, 0x43, 0x7d, 0x1d, 0x9a, 0xcb, 0x8d,
		0x8c, 0x7f, 0x7c, 0x5d, 0x3c, 0x9e, 0x79, 0x6d, 0x48, 0xa7, 0x23, 0x2a, 0xec, 0xf0, 0xfb, 0x5f,
		0xc2, 0x4d, 0xe4, 0xb3, 0xb0, 0x87, 0x93, 0xc0, 0x55, 0x9a, 0xe0, 0x25, 0x0b, 0xdb, 0x66, 0x11,
		0x17, 0xcf, 0x42, 0x76, 0xe9, 0xd5, 0xc5, 0xb3, 0x4c, 0x9e, 0x60, 0x75, 0xe9, 0x3e, 0xec, 0x24,
		0xf4, 0x45, 0xe4, 0x7c, 0xf7, 0x85, 0x2d, 0x9f, 0xc6, 0x8e, 0x4b, 0x68, 0x7b, 0x9c, 0xb3, 0x04,
		0x7c, 0x01, 0xbe, 0xf4, 0x0a, 0x5f, 0x46, 0x91, 0xe3, 0x89, 0xd8, 0x0e, 0x87, 0x6a, 0x1e, 0xb0,
		0x86, 0x2b, 0x2a, 0xdc, 0xf3, 0x2c, 0x95, 0x5a, 0x92, 0xb7, 0xdf, 0x9c, 0x98, 0x41, 0x53, 0xfe,
		0xfd, 0xe6, 0xf8, 0xeb, 0xe9, 0xed, 0xc3, 0xd5, 0xb7, 0x87, 0xb3, 0x8b, 0xeb, 0xe3, 0x93, 0x3b,
		0xd5, 0x15, 0x95, 0xe6, 0x7f, 0x63, 0x52, 0xa1, 0x02, 0x51, 0xde, 0xd8, 0xf6, 0x46, 0x0f, 0x17,
		0x67, 0x97, 0x57, 0x37, 0x8b, 0xd7, 0x53, 0x17, 0x12, 0xde, 0x1b, 0xf7, 0x62, 0x7f, 0x9c, 0xdd,
		0x9d, 0x9f, 0xde, 0xde, 0x76, 0xea, 0x9d, 0xce, 0xaf, 0x2e, 0x7f, 0xef, 0xe2, 0x5c, 0x5d, 0x1c,
		0xff, 0x37, 0xc7, 0x22, 0x54, 0xfa, 0xe4, 0xbd, 0x6e, 0x0c, 0x7e, 0xc7, 0xfb, 0x97, 0x25, 0xa7,
		0x4f, 0x35, 0x30, 0xd6, 0x11, 0x10, 0x57, 0x80, 0x4d, 0xe6, 0x50, 0xb7, 0xdc, 0x62, 0xda, 0x3f,
		0xf0, 0x25, 0x06, 0x7d, 0x30, 0x99, 0x48, 0xaf, 0xf4, 0x50, 0x2f, 0xeb, 0xe8, 0xa6, 0x9f, 0x2a,
		0x39, 0xa5, 0xd5, 0xe8, 0x61, 0x65, 0x5a, 0xa8, 0x42, 0x07, 0xd7, 0x69, 0xe0, 0x6c, 0x9d, 0x54,
		0x99, 0x6e, 0x45, 0xd2, 0x47, 0x26, 0x7b, 0x64, 0x92, 0x97, 0x27, 0x77, 0xf3, 0x97, 0x6f, 0xc8,
		0xdd, 0x2b, 0x53, 0x37, 0x95, 0x15, 0xa8, 0x20, 0x9d, 0x97, 0xf0, 0xad, 0x77, 0x84, 0xf7, 0x5f,
		0x08, 0xb2, 0x25, 0x5e, 0xa2, 0x9a, 0xd8, 0x5a, 0x5d, 0x5c, 0x65, 0x11, 0x53, 0xab, 0x89, 0xa7,
		0xfb, 0x06, 0xa7, 0xe2, 0x1e, 0x40, 0xc6, 0xfe, 0x12, 0xcb, 0x88, 0x04, 0xf0, 0xbb, 0x9d, 0x6b,
		0xfb, 0x42, 0xda, 0x31, 0x4e, 0x83, 0xec, 0x85, 0xec, 0x58, 0x44, 0xcf, 0xb2, 0x04, 0x18, 0x2d,
		0x8f, 0x3c, 0xe6, 0x3e, 0xba, 0x6f, 0xb1, 0x96, 0x2a, 0xdb, 0x2a, 0x0d, 0xdc, 0x55, 0x00, 0x9b,
		0x1c, 0xaf, 0x57, 0x85, 0x6a, 0x65, 0x88, 0x56, 0x86, 0x66, 0x8e, 0x78, 0x9b, 0x06, 0x46, 0x65,
		0xcb, 0xa2, 0x06, 0x9e, 0x8c, 0x44, 0x35, 0x4d, 0x3b, 0x9b, 0xbf, 0xe5, 0x47, 0xbb, 0xc2, 0x1a,
		0x08, 0xe2, 0x51, 0x97, 0xf8, 0x83, 0xba, 0x38, 0x64, 0x0a, 0x93, 0x18, 0x86, 0xd1, 0x8b, 0x13,
		0x79, 0x53, 0xf2, 0x5f, 0x75, 0x95, 0xaa, 0x0a, 0xca, 0x15, 0x85, 0x64, 0x1e, 0xa6, 0x2f, 0x02,
		0xcf, 0x1e, 0x87, 0x32, 0x48, 0xaa, 0x7b, 0xef, 0xf2, 0xa3, 0xd5, 0xbc, 0xf7, 0x10, 0xde, 0x0b,
		0xef, 0x2d, 0xf3, 0x60, 0x55, 0x2b, 0x73, 0x07, 0xae, 0x33, 0x76, 0x5c, 0x95, 0x0e, 0x10, 0xd9,
		0x32, 0xc8, 0x2c, 0xa0, 0x88, 0xdd, 0xd2, 0xbd, 0xf4, 0xd9, 0x5c, 0x80, 0xcd, 0x15, 0x74, 0xb8,
		0x84, 0xa2, 0xd2, 0x56, 0x57, 0x11, 0x7b, 0x12, 0x26, 0x8e, 0x6f, 0xc7, 0xf2, 0x3f, 0x0c, 0x29,
		0x86, 0x15, 0x5b, 0xb4, 0xb2, 0xd0, 0xc3, 0xce, 0x94, 0x85, 0x56, 0x56, 0x91, 0xb8, 0x9d, 0x8b,
		0xdd, 0xc9, 0xd8, 0x9d, 0x8d, 0x4f, 0x85, 0xe2, 0x11, 0xd1, 0x55, 0x0b, 0x22, 0x55, 0x5d, 0x70,
		0x29, 0xba, 0x06, 0x32, 0xa1, 0xcf, 0x73, 0x26, 0x85, 0x4d, 0xad, 0x11, 0x67, 0x84, 0xe7, 0xe8,
		0x28, 0xd9, 0x2d, 0x39, 0xdd, 0x53, 0x93, 0x9b, 0x72, 0xbb, 0xab, 0x36, 0xb7, 0xd5, 0xe6, 0xbe,
		0xfa, 0xdc, 0x98, 0xe6, 0xce, 0x44, 0xb7, 0x56, 0x0f, 0x25, 0x4b, 0x73, 0x4d, 0x9b, 0xc1, 0x55,
		0x2d, 0x62, 0x11, 0x13, 0x31, 0x16, 0xe5, 0x9f, 0x32, 0xc2, 0x74, 0x11, 0xbb, 0xad, 0xe4, 0xe6,
		0x89, 0xd2, 0x75, 0x05, 0x50, 0x0a, 0x28, 0x05, 0x94, 0x6a, 0x87, 0x52, 0x72, 0x07, 0x97, 0x4d,
		0x3f, 0x3d, 0x62, 0x30, 0xc5, 0xd3, 0xd1, 0x65, 0xf1, 0x8f, 0xc7, 0x09, 0x2c, 0xee, 0x0e, 0x2f,
		0xcc, 0x00, 0x97, 0x33, 0xcb, 0xdc, 0xf1, 0x25, 0xb3, 0xab, 0xa1, 0xc7, 0x08, 0x93, 0x7b, 0xac,
		0x4f, 0x15, 0x63, 0x27, 0x98, 0xba, 0xa6, 0x4a, 0x5f, 0x67, 0x98, 0x5a, 0x66, 0xef, 0x9d, 0x19,
		0x56, 0xee, 0x9b, 0x22, 0x5e, 0xb5, 0x06, 0xcd, 0xc4, 0x23, 0x4f, 0x99, 0x1d, 0x6a, 0xb6, 0x7f,
		0x2d, 0xf5, 0x7d, 0x90, 0x65, 0x36, 0x0e, 0x16, 0x1c, 0xfd, 0x80, 0xac, 0x6d, 0x59, 0xd4, 0x82,
		0x81, 0xe9, 0x8f, 0x6f, 0x67, 0x0f, 0xf8, 0x70, 0x1a, 0x78, 0xd7, 0xd3, 0xe7, 0x7b, 0x38, 0x99,
		0x3f, 0xdf, 0xc3, 0xdd, 0xf4, 0xf9, 0x6e, 0xa7, 0x8f, 0x87, 0x8e, 0x43, 0x35, 0xac, 0x87, 0xba,
		0x4f, 0xbe, 0xed, 0x9c, 0x7c, 0x13, 0x0e, 0xba, 0x55, 0xaf, 0x02, 0xc8, 0x91, 0x38, 0x95, 0x3c,
		0xab, 0x85, 0xa3, 0x26, 0x48, 0xbe, 0x34, 0x0d, 0x56, 0xf4, 0xa3, 0x26, 0xe3, 0x30, 0x4a, 0x6c,
		0xd5, 0xf5, 0x6f, 0x75, 0xe9, 0x00, 0x9b, 0xef, 0xbc, 0x89, 0xc8, 0x1e, 0x47, 0x61, 0x12, 0xba,
		0xa1, 0xaf, 0xd6, 0x4f, 0x29, 0x1b, 0xd6, 0x22, 0x63, 0xc0, 0x16, 0x60, 0x4b, 0xaf, 0xb0, 0x85,
		0xee, 0x04, 0x5d, 0x06, 0x98, 0xbf, 0x27, 0x8e, 0x9f, 0xb6, 0x33, 0x62, 0x43, 0x99, 0xa5, 0x45,
		0x40, 0x0d, 0xa0, 0xa6, 0xcf, 0x50, 0xa3, 0xea, 0x09, 0x96, 0x59, 0x27, 0x67, 0xcf, 0x8f, 0xff,
		0x75, 0x7a, 0xf3, 0x70, 0x7d, 0x73, 0x75, 0x77, 0x75, 0x72, 0x75, 0xfe, 0xf0, 0xbf, 0x7f, 0x1e,
		0x9f, 0x9f, 0x7d, 0x3b, 0x3b, 0xbd, 0x69, 0xff, 0x09, 0xda, 0xeb, 0x3f, 0xae, 0xee, 0xae, 0x2e,
		0xcf, 0x4e, 0x1e, 0x66, 0xaf, 0x48, 0x7d, 0x33, 0xce, 0x37, 0xe4, 0x95, 0xbd, 0xf7, 0xbe, 0xf1,
		0xc3, 0xc5, 0xc9, 0xc0, 0x84, 0xd6, 0xdf, 0x75, 0xbd, 0xee, 0xd5, 0xdd, 0xad, 0xec, 0xdb, 0x0b,
		0x1f, 0xf7, 0xeb, 0x85, 0x4f, 0xfe, 0xe8, 0xd7, 0xfb, 0x5e, 0xdc, 0xf6, 0xea, 0x7d, 0x2f, 0x4e,
		0x8e, 0x7b, 0x87, 0x58, 0xfd, 0x7b, 0xe3, 0x1e, 0xce, 0x72, 0x0f, 0xe7, 0xb8, 0x6f, 0x40, 0x7d,
		0xdc, 0x74, 0x05, 0xcb, 0x7d, 0x8b, 0x3b, 0x8e, 0x68, 0xa1, 0xb0, 0x06, 0xbf, 0x16, 0x8d, 0xaa,
		0x9a, 0xfd, 0x62, 0xc7, 0xdd, 0x7c, 0x31, 0x0a, 0xf5, 0x34, 0xf9, 0xbd, 0x2e, 0x6e, 0x07, 0xdd,
		0x04, 0x8e, 0xe3, 0xce, 0x22, 0x47, 0x77, 0xdf, 0xac, 0xc3, 0xb3, 0xd6, 0xe1, 0x39, 0xeb, 0x2a,
		0x30, 0xb6, 0x7a, 0x2d, 0x6e, 0x53, 0x78, 0x1f, 0xfe, 0xbc, 0xbc, 0xbd, 0x3e, 0x3d, 0x99, 0xfe,
		0xff, 0xaf, 0x3d, 0xee, 0xe5, 0x56, 0x25, 0xbb, 0x16, 0xba, 0x8e, 0x6f, 0x57, 0x68, 0x1e, 0x96,
		0x9b, 0x8b, 0xcc, 0x42, 0x5f, 0xb2, 0x67, 0xca, 0x07, 0x26, 0xfa, 0x90, 0x33, 0x53, 0x3d, 0xf0,
		0x60, 0x7a, 0xa6, 0x4c, 0xf9, 0xd6, 0x0f, 0xc5, 0xdb, 0x3e, 0xf4, 0x78, 0x3b, 0xad, 0x3a, 0x87,
		0x50, 0x8e, 0x73, 0x08, 0x2f, 0x87, 0x97, 0x1b, 0xdb, 0x53, 0x01, 0xb7, 0xbd, 0xa3, 0x93, 0x42,
		0x13, 0x8e, 0xc5, 0xef, 0x60, 0x34, 0x0a, 0x8b, 0xcb, 0xb5, 0xea, 0xb9, 0xee, 0x2f, 0x05, 0x0a,
		0xa6, 0xab, 0x47, 0x57, 0x6c, 0x01, 0x79, 0x80, 0x3c, 0x40, 0x9e, 0xfe, 0x20, 0x4f, 0x1d, 0x97,
		0xcd, 0x29, 0xc3, 0x0b, 0xae, 0x97, 0x23, 0x4f, 0x81, 0xa9, 0x67, 0xea, 0x54, 0x2b, 0xd2, 0xd9,
		0xcf, 0xd3, 0xa5, 0xbe, 0x6b, 0xc4, 0xa5, 0x71, 0xbe, 0xa0, 0x5c, 0x10, 0xe7, 0xe3, 0x94, 0x0b,
		0x02, 0xec, 0x3e, 0x9e, 0xa0, 0x53, 0x58, 0xfa, 0x56, 0x97, 0xce, 0xb6, 0xcc, 0xb1, 0xd5, 0x96,
		0x41, 0x22, 0xa2, 0xa1, 0xe3, 0x8a, 0x8a, 0xad, 0x7d, 0xf3, 0x2c, 0x66, 0x8b, 0x41, 0x74, 0x47,
		0x05, 0xbc, 0xf4, 0xa1, 0x3b, 0xea, 0x96, 0xf5, 0x6f, 0x57, 0xba, 0x1f, 0xa7, 0xaa, 0x77, 0xd9,
		0x15, 0x6f, 0x31, 0x41, 0xf4, 0x8d, 0xe8, 0x1b, 0xd1, 0xf7, 0xda, 0xca, 0xf1, 0x85, 0x33, 0x8c,
		0xc4, 0x90, 0x23, 0xfc, 0xfe, 0x4c, 0xb0, 0x71, 0x5d, 0x10, 0x2b, 0x7d, 0x59, 0x84, 0x44, 0xab,
		0x3f, 0xdb, 0x82, 0x04, 0x6b, 0x7f, 0x93, 0xa2, 0x02, 0x9a, 0xbb, 0x68, 0x0c, 0x44, 0x79, 0xd8,
		0x8e, 0x9e, 0xd8, 0x74, 0xfe, 0x83, 0xb3, 0xc5, 0xa3, 0xa5, 0x3f, 0x1d, 0xb4, 0xe2, 0xf6, 0xbe,
		0xb9, 0xf4, 0x53, 0xb1, 0xb0, 0x43, 0x4d, 0xf0, 0xd9, 0x10, 0x7a, 0x3e, 0x56, 0x20, 0xcf, 0xeb,
		0x02, 0x4f, 0x95, 0x4f, 0x2a, 0xa9, 0x38, 0xa6, 0xdf, 0x7d, 0xb8, 0xc5, 0x49, 0xea, 0xba, 0xff,
		0xb0, 0xc8, 0x09, 0xea, 0xbc, 0x01, 0x91, 0xd2, 0x87, 0x84, 0xa1, 0xf5, 0x02, 0x6e, 0x3a, 0xd2,
		0xc1, 0xc0, 0x70, 0xd3, 0x11, 0xeb, 0x22, 0xb5, 0xda, 0x74, 0xd1, 0x91, 0x9a, 0x07, 0x2b, 0xb8,
		0xec, 0x21, 0xae, 0x34, 0xc5, 0x95, 0xa6, 0x54, 0x05, 0x42, 0xb1, 0x86, 0x88, 0x54, 0x3b, 0x84,
		0x12, 0xda, 0x4e, 0x8a, 0x73, 0x28, 0xa1, 0xdd, 0x06, 0xd4, 0x26, 0x94, 0xd0, 0x12, 0x6a, 0x77,
		0xe8, 0x35, 0x3b, 0xf0, 0x78, 0x78, 0x3c, 0x3c, 0xde, 0x54, 0xc1, 0xa4, 0xb2, 0x5b, 0xb3, 0x48,
		0x26, 0x1f, 0x94, 0x25, 0x13, 0x5a, 0x4d, 0x4c, 0x1f, 0x54, 0x94, 0xaa, 0xb1, 0x15, 0x97, 0x80,
		0x52, 0xbe, 0xb0, 0x85, 0x27, 0xd6, 0x0a, 0xbf, 0xff, 0x25, 0xdc, 0x44, 0x3e, 0x0b, 0x7b, 0x38,
		0x09, 0x14, 0xef, 0x86, 0x2e, 0xb0, 0x81, 0x6b, 0x66, 0x21, 0x9d, 0x98, 0x10, 0x9b, 0x7d, 0x77,
		0x02, 0xef, 0x45, 0x7a, 0xc9, 0xa3, 0x1d, 0x8e, 0x13, 0xf9, 0x24, 0xff, 0xe3, 0xd0, 0x1a, 0x9f,
		0x6f, 0xb1, 0x57, 0x33, 0x97, 0xfb, 0x88, 0x22, 0x0b, 0x14, 0x59, 0x34, 0xca, 0xef, 0xe6, 0x0d,
		0xd0, 0x9f, 0x85, 0xad, 0x7a, 0xf4, 0xa9, 0x33, 0x95, 0x5c, 0x6e, 0x18, 0xb8, 0x93, 0x28, 0x12,
		0x41, 0x92, 0xce, 0x7b, 0x4c, 0xb8, 0xd1, 0x7a, 0xd3, 0x12, 0x60, 0x05, 0xb0, 0x02, 0x58, 0xe9,
		0x2b, 0xac, 0xc4, 0x09, 0x13, 0x69, 0xc9, 0x9b, 0x02, 0xb0, 0x00, 0x58, 0x00, 0x2c, 0xfd, 0x04,
		0x16, 0x5f, 0x06, 0x3f, 0xec, 0x49, 0x22, 0x7d, 0x32, 0xae, 0xe4, 0x2c, 0x01, 0x56, 0x00, 0x2b,
		0x80, 0x95, 0x9e, 0xc2, 0x0a, 0xda, 0x49, 0x55, 0x85, 0x11, 0x64, 0xc6, 0x76, 0x80, 0x07, 0x32,
		0x63, 0xdb, 0x90, 0x02, 0xed, 0xa4, 0xe0, 0xe5, 0xf0, 0x72, 0x9d, 0x5e, 0x8e, 0x76, 0x52, 0x38,
		0x56, 0xa6, 0xd3, 0xa1, 0xd8, 0x1d, 0x8b, 0xdf, 0xc1, 0xd4, 0x1c, 0x4d, 0xd1, 0xe1, 0xe8, 0xdb,
		0x2b, 0xdf, 0x36, 0x4b, 0xdc, 0x6e, 0xd5, 0xc7, 0x0d, 0xed, 0xa4, 0x80, 0x3c, 0x40, 0x1e, 0x20,
		0x0f, 0xda, 0x49, 0x6d, 0x18, 0x40, 0x3b, 0x29, 0xea, 0x14, 0x98, 0x75, 0x8a, 0x37, 0x5f, 0x2e,
		0xd6, 0x78, 0x5f, 0xa9, 0xab, 0xc5, 0x23, 0x7d, 0x9b, 0x3f, 0x91, 0x39, 0x0d, 0xa6, 0x44, 0x9c,
		0x6e, 0x21, 0x76, 0xfc, 0xe8, 0xa4, 0xb8, 0xa2, 0xde, 0x6c, 0x6a, 0xd3, 0x12, 0xd4, 0x7a, 0x84,
		0xe2, 0x50, 0xeb, 0xd5, 0xb6, 0x66, 0x23, 0xd5, 0xfa, 0x0e, 0x96, 0x61, 0x2b, 0x97, 0x16, 0xeb,
		0xdd, 0x1e, 0x6a, 0xad, 0xd0, 0x5e, 0x29, 0xdc, 0x98, 0x8e, 0x54, 0x9c, 0x44, 0x4e, 0x95, 0x4e,
		0x61, 0xcb, 0x32, 0xed, 0x2d, 0x86, 0x50, 0xab, 0x8d, 0x5a, 0x6d, 0x0d, 0x00, 0x52, 0xb9, 0x56,
		0x1b, 0x19, 0xc4, 0xfa, 0x04, 0x0a, 0xe4, 0x16, 0xda, 0x4b, 0x63, 0x90, 0x41, 0x44, 0x06, 0x11,
		0x5e, 0x8e, 0x0c, 0xe2, 0xae, 0x75, 0x83, 0x0c, 0x22, 0x74, 0x7c, 0xab, 0x59, 0x07, 0x53, 0xd7,
		0xa3, 0x2d, 0xe8, 0xf8, 0xc8, 0x20, 0x02, 0x79, 0x80, 0x3c, 0x40, 0x9e, 0xb6, 0x20, 0x0f, 0x32,
		0x88, 0x3b, 0x2d, 0x20, 0x83, 0xc8, 0xab, 0x0a, 0x17, 0x2b, 0x99, 0xcd, 0xa7, 0x11, 0x57, 0x9e,
		0xeb, 0x24, 0x7b, 0x2c, 0x63, 0x72, 0x89, 0x49, 0xe4, 0x0c, 0x87, 0xd2, 0x9d, 0x35, 0x4d, 0x8e,
		0x26, 0x63, 0xda, 0xe9, 0x9f, 0x42, 0x6b, 0xc8, 0x29, 0x22, 0x38, 0x47, 0x4e, 0x51, 0x6d, 0xb3,
		0x46, 0x4e, 0xb1, 0xd1, 0xdd, 0xa3, 0x91, 0xc4, 0x62, 0xe1, 0x86, 0x51, 0x67, 0x76, 0x71, 0x3e,
		0xa8, 0x15, 0x53, 0x89, 0xe9, 0xa7, 0x34, 0xe7, 0x0d, 0x3f, 0x22, 0x6f, 0xa8, 0x11, 0xb3, 0x3b,
		0x94, 0x37, 0x4c, 0x1f, 0x5c, 0xe9, 0x9a, 0x9f, 0xb5, 0xf5, 0xac, 0x72, 0x97, 0x0f, 0x6e, 0xe3,
		0x03, 0x81, 0x69, 0x39, 0x81, 0x51, 0xbf, 0x7f, 0x87, 0x72, 0xef, 0x4e, 0x89, 0xfb, 0x76, 0x36,
		0x87, 0xfe, 0xcb, 0xd6, 0x2d, 0x7e, 0xfb, 0x9f, 0x6f, 0xf9, 0x55, 0xf5, 0xfb, 0x79, 0x1a, 0xee,
		0x2f, 0x5a, 0x15, 0x9f, 0x58, 0xda, 0x8b, 0x1e, 0xa2, 0xbd, 0xa8, 0x36, 0x0e, 0x5a, 0x81, 0x40,
		0xb1, 0x12, 0xce, 0xd4, 0xed, 0x6a, 0xa4, 0x97, 0x51, 0x38, 0x49, 0x64, 0x30, 0x22, 0xd5, 0xad,
		0x15, 0xd8, 0x40, 0xc9, 0x1a, 0xa8, 0xa7, 0x09, 0xd4, 0x33, 0xed, 0xac, 0xe5, 0x3e, 0x3a, 0x91,
		0xe3, 0x26, 0x22, 0x92, 0x71, 0x22, 0x5d, 0x62, 0x9b, 0xae, 0x0d, 0x63, 0xb8, 0xbd, 0x15, 0x74,
		0xb4, 0x0f, 0xb7, 0xb7, 0xa6, 0x6b, 0xdf, 0xf1, 0x47, 0x61, 0x24, 0x93, 0xc7, 0x27, 0x7a, 0x2a,
		0x7a, 0xc3, 0x1e, 0xd2, 0xd1, 0xb3, 0xf5, 0x93, 0x84, 0xe3, 0xd0, 0x0f, 0x47, 0x6f, 0x48, 0x48,
		0x2b, 0xb9, 0x5f, 0x36, 0x7c, 0x48, 0x49, 0x2b, 0x07, 0x8b, 0x26, 0x17, 0xc3, 0xa4, 0xa8, 0xc1,
		0x53, 0x0b, 0xb3, 0x34, 0x05, 0xec, 0x01, 0xf6, 0x00, 0x7b, 0x80, 0x3d, 0x65, 0xb0, 0x87, 0xa9,
		0xfa, 0x77, 0xc5, 0x16, 0xd0, 0x07, 0xe8, 0x03, 0xf4, 0xe9, 0x17, 0xfa, 0xd4, 0x51, 0x8c, 0xa7,
		0xca, 0x6f, 0x50, 0x8b, 0x47, 0x9e, 0x01, 0xb3, 0x6a, 0xf1, 0xf2, 0xea, 0xec, 0x01, 0x5d, 0xc8,
		0xb2, 0x38, 0x35, 0xef, 0x9b, 0xd9, 0x13, 0xae, 0x14, 0xe4, 0x9d, 0x84, 0x71, 0x72, 0xb2, 0xfe,
		0x7c, 0x06, 0x94, 0xe7, 0x79, 0xf2, 0x59, 0x44, 0xb1, 0x4c, 0xde, 0xec, 0x71, 0xe8, 0x4b, 0xf7,
		0x4d, 0x5d, 0x49, 0xcc, 0x59, 0x42, 0x56, 0x1b, 0x32, 0x62, 0xcf, 0xca, 0xf2, 0x48, 0x1e, 0x60,
		0x75, 0xa9, 0x33, 0xb7, 0x8c, 0x6d, 0xf1, 0xea, 0xfa, 0x93, 0x58, 0x3e, 0x13, 0x4e, 0xdc, 0xae,
		0x59, 0xa9, 0x2a, 0x0b, 0x8b, 0xa1, 0x33, 0xf1, 0x67, 0xeb, 0x2f, 0xea, 0xd1, 0x65, 0xd7, 0x80,
		0x23, 0xc0, 0xd1, 0xec, 0xda, 0xc0, 0x30, 0xf4, 0x85, 0x13, 0x50, 0x50, 0xe8, 0xd0, 0x84, 0x1e,
		0xff, 0x4e, 0x22, 0x02, 0xf7, 0x8d, 0x2d, 0xe3, 0xb9, 0xc5, 0x1e, 0x92, 0x9e, 0x80, 0x87, 0x3e,
		0x24, 0x3d, 0x87, 0xf2, 0x55, 0x78, 0x36, 0x93, 0x53, 0xe5, 0x96, 0xd8, 0x4e, 0xeb, 0x0d, 0xcb,
		0x82, 0x1f, 0x21, 0x0b, 0x42, 0x16, 0x84, 0x2c, 0x68, 0x7c, 0x52, 0xe2, 0x2f, 0x99, 0x24, 0x22,
		0x62, 0x87, 0xa6, 0x62, 0xb3, 0xc0, 0x24, 0x60, 0x12, 0x30, 0x09, 0x98, 0xb4, 0xe7, 0x19, 0xff,
		0x9e, 0x08, 0x19, 0x8c, 0xb4, 0xd1, 0xa6, 0xdd, 0xe6, 0x91, 0x4e, 0x05, 0x46, 0x01, 0xa3, 0x80,
		0x51, 0x7b, 0x9e, 0x71, 0xd1, 0x1b, 0x61, 0x1c, 0x85, 0x63, 0x11, 0x25, 0x6f, 0x4c, 0x45, 0x65,
		0xc5, 0x66, 0x81, 0x49, 0xc0, 0x24, 0x60, 0x12, 0x30, 0x69, 0xcf, 0x33, 0xbe, 0x38, 0x81, 0xa7,
		0x21, 0x96, 0x2b, 0x36, 0x8b, 0x58, 0x0e, 0x98, 0x04, 0x4c, 0xea, 0x17, 0x26, 0xd5, 0x51, 0x76,
		0xc6, 0xc1, 0x80, 0x50, 0x82, 0x46, 0x9e, 0x0d, 0xe3, 0x4b, 0xd0, 0xd8, 0xc2, 0x77, 0x8d, 0x55,
		0x68, 0xe7, 0xb3, 0x67, 0x34, 0xaf, 0x10, 0xed, 0xc9, 0x79, 0xb5, 0x1d, 0xdf, 0x0f, 0x5f, 0x84,
		0x67, 0xbb, 0x61, 0x9c, 0xa8, 0x27, 0x78, 0x73, 0x96, 0x90, 0xda, 0xad, 0x6d, 0xdf, 0x47, 0x6a,
		0x97, 0x8e, 0x73, 0xca, 0xa9, 0xdd, 0x71, 0x24, 0xc3, 0x48, 0x26, 0x6f, 0x74, 0x7e, 0x9d, 0x59,
		0x42, 0x98, 0xcf, 0xe6, 0x5a, 0xa0, 0xd6, 0x1c, 0xae, 0xd7, 0x76, 0x8a, 0x3d, 0x91, 0x41, 0xf2,
		0xeb, 0x27, 0x06, 0x8a, 0x7d, 0x44, 0x30, 0x71, 0xe3, 0x04, 0xa3, 0xe9, 0xd3, 0xfc, 0x9b, 0x34,
		0xbd, 0xb4, 0xe5, 0xbb, 0xa0, 0xb5, 0x64, 0x3f, 0x60, 0x02, 0x9d, 0x9c, 0xb9, 0x7f, 0xce, 0x8f,
		0xc5, 0x71, 0xd9, 0xfb, 0x36, 0x25, 0x5c, 0x32, 0x0c, 0xbe, 0xca, 0x91, 0x9c, 0xb1, 0x78, 0xb2,
		0xdd, 0x9f, 0xef, 0x19, 0xa6, 0xc0, 0x79, 0x35, 0x7e, 0x0a, 0x78, 0xa2, 0x95, 0xda, 0x66, 0xe5,
		0x5d, 0x33, 0x9f, 0xbe, 0x37, 0xfd, 0xc6, 0x07, 0xdc, 0x30, 0x03, 0x52, 0x02, 0x52, 0x02, 0x52,
		0x02, 0x52, 0x02, 0x52, 0x02, 0x52, 0x02, 0x52, 0xc2, 0x4a, 0x4a, 0xfa, 0x2d, 0x3d, 0x13, 0x35,
		0x4f, 0x4b, 0xaf, 0xe8, 0x7c, 0xe1, 0xbc, 0x1e, 0xcf, 0x1e, 0xee, 0x64, 0xfa, 0x6c, 0x86, 0xa9,
		0xcd, 0x9e, 0xf0, 0x9d, 0x37, 0x1e, 0xb9, 0x79, 0x66, 0x0a, 0x7a, 0x73, 0x6d, 0xbc, 0x13, 0x7a,
		0x33, 0x1d, 0xdc, 0xa0, 0x37, 0x23, 0xb4, 0x43, 0x68, 0x87, 0xd0, 0x0e, 0xa1, 0x1d, 0x42, 0x3b,
		0x84, 0x76, 0x08, 0xed, 0x8c, 0x0b, 0xed, 0xa0, 0x37, 0x83, 0x94, 0x80, 0x94, 0x80, 0x94, 0x80,
		0x94, 0x80, 0x94, 0x80, 0x94, 0x80, 0x94, 0x18, 0x41, 0x4a, 0xa0, 0x37, 0x53, 0x44, 0x4f, 0xab,
		0x2e, 0xc1, 0xf9, 0x6b, 0xfa, 0x70, 0x86, 0x29, 0xce, 0x8f, 0xe1, 0x38, 0xe6, 0x11, 0x9c, 0x53,
		0x4b, 0xd0, 0x9b, 0x6b, 0xe3, 0x9d, 0xd0, 0x9b, 0xe9, 0xe0, 0x06, 0xbd, 0x19, 0xa1, 0x1d, 0x42,
		0x3b, 0x84, 0x76, 0x08, 0xed, 0x10, 0xda, 0x21, 0xb4, 0x43, 0x68, 0x67, 0x5c, 0x68, 0x07, 0xbd,
		0x19, 0xa4, 0x04, 0xa4, 0x04, 0xa4, 0x04, 0xa4, 0x04, 0xa4, 0x04, 0xa4, 0x04, 0xa4, 0xc4, 0x08,
		0x52, 0x02, 0xbd, 0x99, 0xa0, 0x79, 0x5a, 0x75, 0xc9, 0xcd, 0x7f, 0x4c, 0x9f, 0xcd, 0x00, 0xb5,
		0x39, 0x92, 0xf1, 0x0f, 0x7b, 0x79, 0x1f, 0x0d, 0xd7, 0xdd, 0x09, 0xbb, 0xcd, 0x42, 0x87, 0xae,
		0x8d, 0x8f, 0x42, 0x87, 0xa6, 0x83, 0x9e, 0xb2, 0x0e, 0x9d, 0x7a, 0xc1, 0xfa, 0xda, 0x67, 0xea,
		0xb5, 0xb9, 0xd5, 0x32, 0x42, 0x42, 0xb4, 0xb6, 0x63, 0x70, 0x49, 0xb4, 0xb6, 0xeb, 0x76, 0xbb,
		0xcd, 0x14, 0x3f, 0xa4, 0x27, 0x82, 0x44, 0x0e, 0xa5, 0x88, 0x6c, 0x5f, 0x2a, 0x34, 0xd2, 0x2a,
		0x46, 0xa5, 0x4d, 0xab, 0x40, 0x24, 0x20, 0x12, 0x10, 0xa9, 0xcd, 0x88, 0xa4, 0x38, 0x02, 0xa4,
		0x46, 0x96, 0xab, 0x22, 0xd4, 0x6a, 0x3b, 0x4a, 0xc2, 0x28, 0xe8, 0x68, 0x6c, 0x99, 0x19, 0x27,
		0x35, 0xb8, 0x34, 0x35, 0xda, 0x9f, 0xb7, 0x35, 0x65, 0x22, 0x9b, 0xe8, 0x6c, 0xda, 0x7d, 0xf9,
		0x85, 0x33, 0xee, 0xd7, 0xac, 0xc5, 0xdc, 0xc8, 0xf8, 0xc7, 0xd7, 0xc5, 0x93, 0x9a, 0xd7, 0xe6,
		0x74, 0x3a, 0xb8, 0xc2, 0x0e, 0xbf, 0xff, 0x25, 0xdc, 0x44, 0x3e, 0x0b, 0x7b, 0x38, 0x09, 0x5c,
		0xa5, 0x89, 0x5f, 0xb2, 0xb3, 0x6d, 0x16, 0x71, 0xe1, 0x2d, 0xe4, 0x98, 0x5e, 0x5d, 0x78, 0xcb,
		0xe4, 0x09, 0x56, 0x97, 0xee, 0xe1, 0x4e, 0x42, 0x5f, 0x44, 0xce, 0x77, 0x5f, 0xd8, 0xf2, 0x69,
		0xec, 0xb8, 0x84, 0xb6, 0xca, 0x39, 0x4b, 0xc0, 0x17, 0xe0, 0x4b, 0xaf, 0xf0, 0x65, 0x14, 0x39,
		0x9e, 0x88, 0xed, 0x70, 0xa8, 0xe6, 0x01, 0x6b, 0xb8, 0xa2, 0xc2, 0x49, 0xcf, 0x52, 0x09, 0x26,
		0x79, 0xfb, 0xcd, 0x89, 0x19, 0xb4, 0xe6, 0xdf, 0x6f, 0x8e, 0xbf, 0x9e, 0xde, 0x3e, 0x5c, 0x7d,
		0x7b, 0x38, 0xbb, 0xb8, 0x3e, 0x3e, 0xb9, 0x53, 0x5d, 0x51, 0x69, 0xbe, 0x38, 0x26, 0x15, 0x36,
		0x10, 0x65, 0x8f, 0x6d, 0x6f, 0xf4, 0x70, 0x71, 0x76, 0x79, 0x75, 0xb3, 0x78, 0x3d, 0x75, 0x81,
		0xe1, 0xbd, 0x71, 0x2f, 0xf6, 0xc7, 0xd9, 0xdd, 0xf9, 0xe9, 0xed, 0x6d, 0xa7, 0xde, 0xe9, 0xfc,
		0xea, 0xf2, 0xf7, 0x2e, 0xce, 0xd5, 0xc5, 0xf1, 0x7f, 0x73, 0x2c, 0x42, 0xa5, 0x4f, 0xde, 0xeb,
		0xc6, 0xe0, 0x77, 0xbc, 0x7f, 0x59, 0x72, 0xfa, 0x54, 0x03, 0x66, 0xed, 0x81, 0x72, 0x05, 0x0c,
		0xd5, 0x17, 0x02, 0x97, 0x5b, 0x64, 0xfb, 0x27, 0xa4, 0xc4, 0x64, 0x0c, 0x16, 0xf2, 0xed, 0xea,
		0x18, 0x94, 0x9d, 0x91, 0x15, 0x66, 0x99, 0x37, 0x52, 0x72, 0x21, 0x54, 0xab, 0x21, 0xa8, 0x4c,
		0x26, 0x55, 0x48, 0x24, 0x1b, 0x79, 0x54, 0x25, 0x8d, 0x64, 0xb2, 0x48, 0x26, 0x89, 0x9c, 0xe4,
		0x90, 0x17, 0x38, 0xaa, 0xe6, 0xfc, 0x07, 0xce, 0x73, 0x28, 0xbd, 0x65, 0x96, 0x42, 0x39, 0x7a,
		0xda, 0xb0, 0x83, 0xd8, 0x09, 0xb1, 0x53, 0xaf, 0x62, 0xa7, 0xc9, 0x44, 0x7a, 0x94, 0x78, 0xe9,
		0xc8, 0x00, 0x2d, 0x65, 0xb9, 0x3d, 0xd9, 0x2f, 0x42, 0x8e, 0x1e, 0x09, 0x62, 0x4a, 0xde, 0x14,
		0x10, 0x01, 0x88, 0xd0, 0x2f, 0x44, 0x50, 0x3d, 0x94, 0x41, 0x38, 0x8c, 0x41, 0x3c, 0x84, 0x41,
		0xcb, 0x77, 0x33, 0xd4, 0x77, 0xb0, 0x54, 0xfa, 0x73, 0x1d, 0xb2, 0xe0, 0x2c, 0xe3, 0xff, 0x49,
		0x2b, 0x00, 0x30, 0x6e, 0x68, 0xf9, 0x0f, 0x4f, 0xb0, 0x8e, 0x76, 0x4d, 0x65, 0x0c, 0xf7, 0x06,
		0x6c, 0xda, 0xe2, 0xd5, 0xf5, 0x27, 0x9e, 0xb0, 0x7d, 0x19, 0xfc, 0x50, 0xdf, 0xaf, 0xd7, 0xac,
		0x60, 0xab, 0xc6, 0x56, 0x0d, 0xf2, 0xde, 0x32, 0xf2, 0xbe, 0xf0, 0xe0, 0x20, 0xf4, 0x04, 0x1d,
		0x07, 0x52, 0x2b, 0xc0, 0x01, 0xe0, 0x00, 0x70, 0xa0, 0xc5, 0x38, 0x60, 0x0b, 0x6f, 0x24, 0xec,
		0x71, 0x58, 0x45, 0xb5, 0xde, 0x09, 0x09, 0xab, 0x06, 0x81, 0x0e, 0x40, 0x07, 0xa0, 0x43, 0x4b,
		0xd1, 0x61, 0x9e, 0x22, 0x24, 0x42, 0x42, 0x6a, 0x05, 0x38, 0x00, 0x1c, 0x00, 0x0e, 0xb4, 0x0c,
		0x07, 0x64, 0xc0, 0xa1, 0x1a, 0xac, 0x59, 0x01, 0x0e, 0x00, 0x07, 0x80, 0x03, 0x2d, 0xc5, 0x01,
		0x9a, 0x6a, 0xb0, 0x66, 0x05, 0x38, 0x00, 0x1c, 0x00, 0x0e, 0xb4, 0x18, 0x07, 0x58, 0x54, 0x83,
		0x6d, 0x06, 0x81, 0x0e, 0x40, 0x07, 0xa0, 0x43, 0x4b, 0xd1, 0x81, 0xa6, 0x1a, 0xac, 0x59, 0x01,
		0x0e, 0x00, 0x07, 0x80, 0x03, 0x2d, 0xc5, 0x01, 0x7a, 0xb9, 0x70, 0xce, 0x12, 0xf0, 0x00, 0x78,
		0x00, 0x3c, 0x68, 0x19, 0x1e, 0xf8, 0xa1, 0xeb, 0xf8, 0xb6, 0xf4, 0xd4, 0x71, 0x20, 0xb3, 0xd0,
		0x17, 0xff, 0x9f, 0x9d, 0xc6, 0x82, 0xd7, 0x17, 0x7a, 0xfd, 0x7c, 0x70, 0x3a, 0xe7, 0xeb, 0xca,
		0xad, 0xb0, 0x8c, 0xf2, 0x76, 0xa5, 0x16, 0xa0, 0xd9, 0x18, 0xa8, 0x74, 0x5e, 0x6a, 0x6d, 0x07,
		0x5d, 0x78, 0x79, 0xeb, 0xbc, 0x5c, 0xb9, 0x5b, 0x2e, 0xae, 0x46, 0xd1, 0xd0, 0x75, 0x52, 0xd9,
		0x81, 0xb8, 0x1c, 0x89, 0xdd, 0xa1, 0xd8, 0x1d, 0x8b, 0xdf, 0xc1, 0xd4, 0x1c, 0x4d, 0xd1, 0xe1,
		0xe8, 0xdb, 0x2b, 0xdf, 0x36, 0x4b, 0xdc, 0x6e, 0xd5, 0xc7, 0x4d, 0xf9, 0x2a, 0x26, 0xa6, 0x7e,
		0xdc, 0x2b, 0xb6, 0x80, 0x3c, 0x40, 0x1e, 0x20, 0x4f, 0x7f, 0x90, 0xa7, 0x8e, 0x0e, 0xac, 0xca,
		0xf0, 0x82, 0x9e, 0xab, 0xe4, 0x29, 0x30, 0xab, 0xe7, 0x6a, 0x41, 0x0b, 0x94, 0x03, 0xc5, 0x6d,
		0x87, 0xad, 0xb1, 0xcc, 0xdd, 0xfc, 0x99, 0x56, 0x9a, 0xab, 0xa6, 0xfe, 0x6c, 0x40, 0xa8, 0x3d,
		0xc5, 0x7b, 0x11, 0x45, 0xc2, 0xb3, 0x93, 0xc8, 0x09, 0xe2, 0x71, 0x18, 0x25, 0xb6, 0xef, 0xbc,
		0x89, 0x48, 0x3d, 0xfe, 0xde, 0x6e, 0x12, 0xd2, 0x3b, 0xc2, 0xf3, 0x5e, 0x49, 0xef, 0xe9, 0xb2,
		0xb7, 0xc7, 0x51, 0x98, 0x84, 0x6e, 0xe8, 0xab, 0xd2, 0x5f, 0xb3, 0x5b, 0xa8, 0xb2, 0x76, 0x15,
		0x9a, 0x6f, 0xe7, 0x15, 0xc5, 0x7a, 0xb5, 0x4d, 0x5c, 0x7d, 0xf3, 0x66, 0xdd, 0xb4, 0xd5, 0x36,
		0xeb, 0x76, 0xf5, 0x77, 0x53, 0xef, 0x4b, 0xa6, 0x79, 0x1f, 0xae, 0xb3, 0xc3, 0x5b, 0x9a, 0x87,
		0xab, 0xdc, 0xd2, 0xad, 0x42, 0xf6, 0xae, 0xe2, 0x86, 0xd9, 0x40, 0x0f, 0xb7, 0xca, 0x21, 0x6f,
		0x97, 0x3a, 0xb7, 0x55, 0x0d, 0x59, 0x79, 0x91, 0xb5, 0xf2, 0x66, 0xa6, 0x9a, 0x3f, 0xae, 0x18,
		0x60, 0x96, 0xf0, 0xad, 0x77, 0x84, 0xf7, 0x5f, 0xec, 0x28, 0x25, 0x5e, 0xa2, 0xda, 0x2e, 0x52,
		0x7d, 0xf7, 0x60, 0xd9, 0x35, 0xaa, 0xed, 0x16, 0xfb, 0x06, 0xa7, 0xe2, 0xee, 0xc0, 0xbb, 0x2b,
		0x94, 0x58, 0x53, 0x5c, 0xc8, 0xbf, 0xdb, 0xe9, 0xb6, 0x2f, 0xb0, 0xe2, 0xdf, 0x6c, 0x19, 0xd5,
		0xb2, 0xa3, 0x49, 0x19, 0xc5, 0x1d, 0x63, 0xa6, 0x3a, 0x56, 0xc5, 0x63, 0x93, 0x7f, 0xf3, 0x82,
		0xb7, 0x1e, 0xcc, 0x67, 0xd2, 0x96, 0x41, 0x22, 0xa2, 0xa1, 0xe3, 0xee, 0x2b, 0xe6, 0x5e, 0xca,
		0x58, 0x5b, 0x3e, 0xb8, 0x65, 0x64, 0x77, 0xa7, 0x67, 0xf7, 0x6e, 0x64, 0x65, 0x36, 0xae, 0x8a,
		0x1b, 0x55, 0xd9, 0x8d, 0xa9, 0xf2, 0x46, 0x54, 0x79, 0xe3, 0xa9, 0xbe, 0xd1, 0x54, 0x5b, 0xd5,
		0xfb, 0xd2, 0x95, 0x03, 0xc7, 0x7b, 0x92, 0x81, 0x9c, 0x12, 0xaa, 0xf4, 0xae, 0x88, 0x38, 0x71,
		0x92, 0x12, 0xe3, 0x92, 0xb5, 0xf3, 0x2c, 0xfa, 0xf4, 0x3e, 0x4c, 0x2f, 0xc5, 0x73, 0x4a, 0xf3,
		0x9b, 0x2a, 0xbc, 0x46, 0x91, 0xcf, 0x54, 0xe5, 0x31, 0xca, 0xfc, 0x45, 0x99, 0xb7, 0xa8, 0xf3,
		0x15, 0xda, 0xfe, 0x5c, 0x9a, 0x97, 0x50, 0x56, 0x4c, 0xd5, 0x28, 0xba, 0x64, 0xd4, 0xbc, 0x63,
		0xe3, 0xd8, 0x81, 0x1c, 0xce, 0xb3, 0x23, 0xfd, 0xf4, 0xfa, 0x0f, 0xd7, 0x19, 0x3b, 0xae, 0x4c,
		0xde, 0x2a, 0x78, 0x4b, 0xfe, 0xb3, 0xe5, 0x7c, 0xe5, 0xb0, 0xac, 0xaf, 0x7c, 0x84, 0xaf, 0x18,
		0xeb, 0x2b, 0x65, 0x2b, 0x47, 0x06, 0x49, 0x98, 0x38, 0xbe, 0x1d, 0xcb, 0xff, 0x08, 0x95, 0x1e,
		0xe2, 0xd9, 0x67, 0xbb, 0xd2, 0x3a, 0x1c, 0x61, 0x67, 0x7b, 0xda, 0x84, 0x4f, 0x02, 0x49, 0x38,
		0x0c, 0x98, 0x7e, 0x1a, 0x15, 0xbe, 0x48, 0x2e, 0x74, 0xb6, 0xc2, 0x77, 0xb1, 0xef, 0xdb, 0x0a,
		0x4b, 0xdd, 0xea, 0xd2, 0x7d, 0x6c, 0x6a, 0xd5, 0x90, 0xa4, 0x2a, 0x48, 0x40, 0x05, 0xa0, 0xa2,
		0x45, 0x50, 0x81, 0xbe, 0xe0, 0xaa, 0x2f, 0x8e, 0xbe, 0xe0, 0x9b, 0xc2, 0x35, 0xfa, 0x82, 0x6b,
		0x84, 0x06, 0xf5, 0x4f, 0xdd, 0xf7, 0xfd, 0x92, 0xb1, 0x2d, 0x42, 0xf2, 0x41, 0x5e, 0x28, 0x39,
		0xa8, 0x1c, 0xd8, 0x96, 0x53, 0xd5, 0xe7, 0x29, 0x86, 0xb3, 0xc5, 0x03, 0x5c, 0x4f, 0xbf, 0xff,
		0xe1, 0x78, 0xf1, 0xfd, 0x27, 0xf3, 0xaf, 0x7f, 0xb8, 0x9b, 0x7e, 0xfd, 0xed, 0xf4, 0xdb, 0x8d,
		0xc8, 0x8b, 0x69, 0x48, 0xfd, 0x94, 0x9f, 0x0b, 0x96, 0xd4, 0x4f, 0xc9, 0x81, 0x1f, 0x68, 0x90,
		0xf0, 0x3c, 0x19, 0x89, 0x72, 0x97, 0x8d, 0x67, 0x9b, 0xf1, 0xf2, 0x23, 0x10, 0xb7, 0x21, 0x6e,
		0x6f, 0x1d, 0xf9, 0xb4, 0x5a, 0xb2, 0xec, 0x5a, 0x31, 0x4a, 0xd6, 0x2e, 0xaa, 0x75, 0x2b, 0xed,
		0x1d, 0xd5, 0x0b, 0xe5, 0x2a, 0xfb, 0x09, 0x84, 0xed, 0x2e, 0xf9, 0x89, 0x5a, 0x65, 0xa5, 0x39,
		0xce, 0x22, 0x87, 0xc2, 0x7d, 0x73, 0xfd, 0xca, 0xe9, 0xd2, 0xcd, 0x0f, 0xc2, 0x49, 0xe0, 0x24,
		0x4c, 0x8b, 0xc5, 0x28, 0x07, 0x79, 0x12, 0x9e, 0x74, 0x6c, 0xf7, 0xd1, 0x09, 0x02, 0xe1, 0xdb,
		0x5b, 0x98, 0xa5, 0x1d, 0x8f, 0x85, 0x5b, 0xde, 0x77, 0x2a, 0xd8, 0x64, 0x4e, 0xaa, 0x6a, 0xe3,
		0x68, 0xe3, 0xc7, 0x30, 0x09, 0x03, 0xe9, 0xda, 0xe9, 0xbb, 0x75, 0xd4, 0xbd, 0x36, 0x5e, 0xd2,
		0x94, 0x24, 0xeb, 0x93, 0x6b, 0x8f, 0xc3, 0xd0, 0xaf, 0x9e, 0x61, 0x5d, 0x7c, 0x50, 0x73, 0x7a,
		0xf5, 0x63, 0x6d, 0x37, 0x33, 0x57, 0x5d, 0x84, 0x54, 0x71, 0xd9, 0xc8, 0x7b, 0x99, 0x2b, 0x2e,
		0x52, 0x3d, 0x4a, 0x8b, 0xc2, 0xad, 0xcc, 0x8b, 0xd8, 0x7c, 0x8a, 0x7b, 0x49, 0x34, 0x43, 0x74,
		0xd5, 0x9b, 0x99, 0x73, 0xb6, 0x6a, 0x6e, 0xc3, 0xf2, 0xb1, 0xb1, 0x13, 0x5f, 0xaa, 0x2e, 0x40,
		0x75, 0x05, 0x36, 0x97, 0x60, 0x73, 0x0d, 0x7e, 0x17, 0x51, 0x93, 0x47, 0x6b, 0x6b, 0xcb, 0x32,
		0x8c, 0xc4, 0xdf, 0x13, 0x11, 0xb8, 0x4a, 0x57, 0xf7, 0x6f, 0x5d, 0x56, 0x85, 0x56, 0x69, 0xad,
		0x13, 0x0e, 0x3b, 0xd3, 0x3a, 0x81, 0xec, 0x6e, 0x5c, 0x6e, 0xc7, 0xee, 0x7e, 0xec, 0x6e, 0xa8,
		0xcf, 0x1d, 0x89, 0xb9, 0x0e, 0xc5, 0xb5, 0xa4, 0xea, 0xa6, 0xcb, 0x1d, 0xcf, 0xfb, 0x6b, 0x12,
		0x27, 0xd3, 0x91, 0xb0, 0x47, 0x91, 0x13, 0x4c, 0x7c, 0x27, 0x2a, 0x53, 0x82, 0x59, 0x7e, 0x17,
		0x2c, 0xb6, 0xff, 0xde, 0x88, 0xec, 0x19, 0xd5, 0x95, 0x39, 0x5d, 0x5a, 0xb3, 0x6b, 0x73, 0xbb,
		0xb8, 0x36, 0x57, 0xd7, 0xe6, 0xf2, 0xfa, 0x5d, 0x9f, 0x06, 0x01, 0x44, 0x28, 0xa8, 0x2e, 0x8c,
		0x34, 0xeb, 0xc3, 0x16, 0xb1, 0xfa, 0x4a, 0x51, 0x7f, 0xd1, 0x37, 0x77, 0x94, 0x92, 0x82, 0x51,
		0x24, 0x3d, 0x3b, 0xe1, 0x98, 0xb8, 0x6c, 0xd2, 0x96, 0x26, 0x81, 0xb5, 0xc0, 0x5a, 0x60, 0x6d,
		0x4b, 0xb0, 0x96, 0xcb, 0x6d, 0xbb, 0x07, 0xaf, 0xb5, 0xf2, 0x6a, 0x62, 0x17, 0xa7, 0xcc, 0x0e,
		0xa1, 0x4e, 0xa4, 0xbc, 0x3e, 0x7f, 0x30, 0x97, 0x50, 0x0f, 0xf2, 0x92, 0xd3, 0x01, 0x63, 0xe0,
		0x6c, 0x11, 0xea, 0x50, 0x2e, 0xa6, 0x2f, 0x73, 0x32, 0x7b, 0x97, 0xc2, 0xbf, 0xb8, 0x1d, 0x0b,
		0xf7, 0xe1, 0xc2, 0xbd, 0x0e, 0x43, 0x7f, 0x59, 0xb4, 0x72, 0x3b, 0x7f, 0x8b, 0x87, 0x6f, 0x8b,
		0xb7, 0xa8, 0xda, 0xab, 0x82, 0xbe, 0x8a, 0x54, 0x5a, 0x45, 0xfa, 0xe1, 0x8b, 0x88, 0xec, 0x6c,
		0xe8, 0xe9, 0xf2, 0xc7, 0xa6, 0x41, 0x34, 0x8d, 0x84, 0xf2, 0xd1, 0x73, 0xe5, 0x83, 0xaf, 0x89,
		0xa4, 0x72, 0x61, 0xf8, 0xa6, 0x5f, 0x1d, 0x11, 0x4c, 0xd0, 0x0a, 0xc5, 0x17, 0xff, 0x18, 0x88,
		0x08, 0x47, 0xe1, 0x38, 0x73, 0xec, 0x90, 0x99, 0x63, 0x2a, 0x24, 0xcf, 0xec, 0x31, 0x96, 0x38,
		0x33, 0x31, 0x4a, 0x8b, 0xab, 0xc0, 0x5c, 0xf7, 0x14, 0xf0, 0x17, 0x9c, 0x6b, 0x9d, 0x95, 0x86,
		0x48, 0xeb, 0xbd, 0xc1, 0x24, 0x65, 0x32, 0x1e, 0xf3, 0x92, 0x94, 0x4d, 0x83, 0x20, 0x29, 0x20,
		0x29, 0x20, 0x29, 0x20, 0x29, 0x20, 0x29, 0x20, 0x29, 0x20, 0x29, 0x20, 0x29, 0xb5, 0xb4, 0xbe,
		0xdf, 0x20, 0x21, 0x16, 0x4d, 0x39, 0x41, 0x3f, 0x7c, 0xf2, 0xbc, 0xd4, 0xd0, 0x0f, 0x5f, 0xab,
		0x82, 0xaa, 0xa5, 0x53, 0xbe, 0x0e, 0x91, 0xd4, 0x84, 0xfe, 0xf9, 0xa1, 0xeb, 0x4e, 0xc6, 0x52,
		0x78, 0x0c, 0xe5, 0x93, 0x79, 0x53, 0xa8, 0x9e, 0xac, 0x29, 0x4e, 0x40, 0xf5, 0x24, 0x15, 0xf4,
		0x50, 0x3d, 0x89, 0xf0, 0x1c, 0xe1, 0xb9, 0xf1, 0xe1, 0x39, 0xaa, 0x27, 0x29, 0x66, 0x50, 0xd1,
		0xc3, 0x10, 0xf8, 0xa2, 0xa2, 0x87, 0x39, 0x0c, 0x46, 0xf5, 0xa4, 0x92, 0x2d, 0x54, 0x4f, 0x5a,
		0xa8, 0x9e, 0x04, 0xd6, 0x02, 0x6b, 0x5b, 0x8d, 0xb5, 0xa8, 0x9e, 0x34, 0x82, 0x57, 0xb7, 0xb3,
		0x7a, 0x32, 0xa7, 0x38, 0xb5, 0xb2, 0x78, 0xf2, 0x6a, 0xfe, 0x16, 0xa8, 0x9d, 0x44, 0xed, 0x24,
		0x74, 0x0f, 0xe8, 0x1e, 0x5a, 0x36, 0x5e, 0x94, 0x25, 0x14, 0x3e, 0x08, 0xca, 0x12, 0xac, 0x06,
		0xf9, 0xa4, 0x85, 0xb2, 0x04, 0x94, 0x25, 0xa0, 0x76, 0x12, 0x24, 0x05, 0x24, 0x05, 0x24, 0x05,
		0x24, 0x05, 0x24, 0x05, 0x24, 0x05, 0x24, 0xa5, 0x2b, 0x24, 0x05, 0xb5, 0x93, 0x2a, 0x5e, 0x86,
		0xda, 0xc9, 0x26, 0xf5, 0x53, 0x53, 0x4b, 0x27, 0x37, 0x25, 0x52, 0x13, 0x2a, 0x27, 0xe3, 0xc9,
		0x78, 0x1c, 0x46, 0x09, 0x53, 0xef, 0xc9, 0x42, 0x6b, 0xa8, 0x9f, 0xac, 0x29, 0x56, 0x40, 0xfd,
		0x24, 0x15, 0xf8, 0x50, 0x3f, 0x89, 0x10, 0x1d, 0x21, 0xba, 0xf1, 0x21, 0x3a, 0xea, 0x27, 0x29,
		0x66, 0x50, 0xd3, 0xc3, 0x10, 0xfc, 0xa2, 0xa6, 0x87, 0x39, 0x14, 0x46, 0xfd, 0xa4, 0x92, 0x2d,
		0xd4, 0x4f, 0x5a, 0xa8, 0x9f, 0x04, 0xd6, 0x02, 0x6b, 0x5b, 0x8d, 0xb5, 0xa8, 0x9f, 0x34, 0x82,
		0x57, 0xb7, 0xb3, 0x7e, 0xb2, 0x48, 0x74, 0x6a, 0x65, 0x09, 0xe5, 0xed, 0xf2, 0x45, 0x50, 0x45,
		0x89, 0x2a, 0x4a, 0xa8, 0x1f, 0x50, 0x3f, 0xb4, 0x6c, 0xbf, 0x28, 0x50, 0x28, 0x7c, 0x10, 0x14,
		0x28, 0x58, 0x0d, 0xb2, 0x4a, 0x0b, 0x05, 0x0a, 0x28, 0x50, 0x40, 0x15, 0x25, 0x48, 0x0a, 0x48,
		0x0a, 0x48, 0x0a, 0x48, 0x0a, 0x48, 0x0a, 0x48, 0x0a, 0x48, 0x4a, 0x57, 0x48, 0x0a, 0xaa, 0x28,
		0x55, 0xbc, 0x0c, 0x55, 0x94, 0x0d, 0xab, 0xa8, 0xa6, 0x16, 0x52, 0x16, 0x08, 0xa5, 0xda, 0x6a,
		0x29, 0x59, 0x2f, 0x06, 0x57, 0x5c, 0x12, 0xf5, 0x2e, 0x85, 0x2a, 0x57, 0xc7, 0xd7, 0x30, 0xdb,
		0xe5, 0x66, 0x76, 0xff, 0x3c, 0x95, 0x98, 0xa3, 0xc1, 0x38, 0xc5, 0xcc, 0x27, 0x27, 0x70, 0x46,
		0x29, 0xf4, 0xd8, 0xae, 0x33, 0x76, 0xbe, 0x4b, 0xbf, 0x4a, 0x71, 0x50, 0x46, 0x5c, 0x77, 0x19,
		0x2b, 0xb9, 0x5e, 0xaa, 0x15, 0xed, 0x55, 0x8e, 0x00, 0x55, 0x22, 0x3e, 0xa6, 0x08, 0x4f, 0x35,
		0xa2, 0x23, 0x47, 0x70, 0xe4, 0x88, 0x8d, 0x2f, 0x42, 0xe3, 0xc5, 0x96, 0xaa, 0x45, 0x71, 0x6b,
		0xc5, 0xda, 0x4f, 0xce, 0xab, 0x7c, 0x9a, 0x3c, 0xd9, 0xe1, 0x24, 0x19, 0x4f, 0x12, 0x3b, 0x5d,
		0xba, 0x3c, 0x65, 0xe0, 0x85, 0x96, 0x6b, 0x2e, 0x09, 0xff, 0x80, 0x92, 0x70, 0x94, 0x84, 0x2b,
		0xb2, 0x38, 0xe5, 0x92, 0xf0, 0x19, 0xfc, 0xcf, 0xa8, 0x94, 0xe3, 0xdb, 0x9e, 0x08, 0x62, 0x4a,
		0x8d, 0xe9, 0xc6, 0xb6, 0x92, 0xb3, 0x0b, 0xcd, 0x11, 0x9a, 0x23, 0x34, 0x47, 0x26, 0xcd, 0xd1,
		0x13, 0xae, 0x7c, 0x72, 0x7c, 0x16, 0xd9, 0xf1, 0xf0, 0x23, 0xc1, 0x46, 0x4e, 0x6c, 0xf9, 0x0c,
		0x11, 0xb3, 0x78, 0x98, 0x3f, 0x42, 0xc4, 0x6c, 0x5a, 0xc4, 0xfc, 0x47, 0x8f, 0xa6, 0x00, 0x69,
		0xd5, 0xdc, 0x30, 0x27, 0x61, 0xe2, 0xf8, 0x8a, 0xa1, 0x43, 0x7e, 0x2f, 0x5f, 0x31, 0x06, 0x6a,
		0x03, 0x6a, 0x03, 0x6a, 0x03, 0x6a, 0x03, 0x6a, 0x03, 0x6a, 0x03, 0x6a, 0x03, 0x6a, 0x43, 0xa4,
		0x36, 0x48, 0xfa, 0x1d, 0xec, 0x48, 0x4d, 0x1c, 0x30, 0x8b, 0xb7, 0x96, 0xf6, 0x34, 0xd1, 0xf5,
		0xf4, 0xa9, 0x2e, 0xb2, 0x77, 0x39, 0xc9, 0x5e, 0x65, 0x35, 0x4f, 0x78, 0x31, 0x7b, 0x93, 0xab,
		0xf4, 0x45, 0xd2, 0x4f, 0x98, 0xd6, 0x7d, 0xe5, 0x49, 0x06, 0xba, 0x24, 0xf8, 0x22, 0xcb, 0x90,
		0xe0, 0x6b, 0x22, 0xcb, 0x90, 0xe0, 0xa9, 0x98, 0x0a, 0x09, 0x1e, 0x71, 0x2a, 0xe2, 0x54, 0xc4,
		0xa9, 0x88, 0x53, 0x11, 0xa7, 0x22, 0x4e, 0x45, 0x9c, 0xda, 0x93, 0x38, 0x15, 0x12, 0x3c, 0xa8,
		0x0d, 0xa8, 0x0d, 0xa8, 0x0d, 0xa8, 0x0d, 0xa8, 0x0d, 0xa8, 0x0d, 0xa8, 0x4d, 0x87, 0xa8, 0x0d,
		0x24, 0xf8, 0xf2, 0x12, 0x3c, 0x5d, 0xbc, 0xb5, 0x0c, 0x91, 0xe0, 0x67, 0x6f, 0x62, 0x98, 0x04,
		0x9f, 0x84, 0xbe, 0x88, 0xd6, 0x92, 0x1d, 0x32, 0x60, 0xd0, 0xdf, 0x77, 0x9b, 0x85, 0xf8, 0x5e,
		0x13, 0x4d, 0x86, 0xf8, 0x4e, 0x45, 0x53, 0x88, 0xef, 0x88, 0x50, 0x11, 0xa1, 0x22, 0x42, 0x45,
		0x84, 0x8a, 0x08, 0x15, 0x11, 0x2a, 0x22, 0xd4, 0x9e, 0x44, 0xa8, 0x10, 0xdf, 0x41, 0x6d, 0x40,
		0x6d, 0x40, 0x6d, 0x40, 0x6d, 0x40, 0x6d, 0x40, 0x6d, 0x40, 0x6d, 0x3a, 0x44, 0x6d, 0x20, 0xbe,
		0xef, 0x14, 0xdf, 0x39, 0x95, 0x5b, 0xab, 0x41, 0xe5, 0xfd, 0x6e, 0xf1, 0x1e, 0xf3, 0xd2, 0xf7,
		0xb3, 0xc0, 0x50, 0xd9, 0x7d, 0x9e, 0xe0, 0xe0, 0x96, 0xdd, 0x0b, 0xcc, 0x42, 0x76, 0xaf, 0x89,
		0x20, 0x43, 0x76, 0xa7, 0xe2, 0x28, 0x64, 0x77, 0xc4, 0xa6, 0x88, 0x4d, 0x11, 0x9b, 0x22, 0x36,
		0x45, 0x6c, 0x8a, 0xd8, 0x14, 0xb1, 0x69, 0x4f, 0x62, 0x53, 0xc8, 0xee, 0xa0, 0x36, 0xa0, 0x36,
		0xa0, 0x36, 0xa0, 0x36, 0xa0, 0x36, 0xa0, 0x36, 0xa0, 0x36, 0x1d, 0xa2, 0x36, 0x90, 0xdd, 0xcb,
		0xca, 0xee, 0x64, 0xe5, 0xd6, 0x32, 0x42, 0x76, 0x9f, 0xbd, 0x46, 0x0d, 0xb2, 0x7b, 0x8f, 0xae,
		0xa8, 0xa0, 0xdf, 0xa9, 0xd0, 0xe0, 0xda, 0x60, 0xbb, 0xc9, 0xe2, 0x1d, 0x61, 0xa2, 0xab, 0x4e,
		0x70, 0x3d, 0x13, 0x5b, 0x62, 0xf2, 0xb4, 0x4e, 0xda, 0xee, 0xa9, 0xd9, 0x3e, 0xe0, 0x3b, 0x06,
		0x7b, 0x30, 0x7f, 0xd2, 0xdd, 0x43, 0x9c, 0x11, 0xe4, 0xf4, 0xaf, 0xf7, 0x4c, 0x5d, 0xb9, 0x84,
		0x54, 0xe9, 0x10, 0xb2, 0x4a, 0xa8, 0xb8, 0x1e, 0x12, 0xce, 0xe6, 0xbf, 0xcc, 0xa4, 0x55, 0x0c,
		0xf9, 0x94, 0x43, 0x3b, 0xe5, 0x10, 0x2e, 0x1f, 0xaa, 0xcd, 0x5f, 0x4e, 0xb3, 0x1b, 0x96, 0x4d,
		0xf0, 0x0c, 0x9e, 0xe7, 0xdc, 0xad, 0xe2, 0xed, 0x33, 0xb3, 0x8f, 0x55, 0xbb, 0x67, 0xe6, 0x83,
		0xb1, 0xf7, 0xcc, 0x94, 0x5e, 0x70, 0x54, 0xad, 0xc1, 0xc4, 0xfb, 0x65, 0xca, 0x2e, 0x48, 0x3d,
		0x84, 0xa0, 0xb2, 0x06, 0xb0, 0xec, 0x41, 0x97, 0x44, 0x32, 0x18, 0x55, 0x99, 0xb4, 0x05, 0xc0,
		0x1d, 0xd5, 0x78, 0xe7, 0x53, 0xea, 0x28, 0x76, 0x29, 0xb0, 0x2e, 0x76, 0x32, 0xbb, 0x04, 0x74,
		0xc3, 0xd3, 0xe0, 0x69, 0xdd, 0xf6, 0x34, 0xd2, 0x66, 0x38, 0xbf, 0xc2, 0xb2, 0xb4, 0x3b, 0x55,
		0xbb, 0x9d, 0xb2, 0xfa, 0x6d, 0x94, 0x2c, 0xb7, 0x4f, 0x56, 0xbb, 0x6d, 0xd2, 0x20, 0xda, 0x5e,
		0x12, 0xcf, 0x54, 0x09, 0x79, 0xba, 0x68, 0x35, 0xf0, 0xed, 0x70, 0x2c, 0xa2, 0x74, 0x80, 0x1c,
		0xdf, 0x8e, 0x13, 0x27, 0xa9, 0x40, 0xbe, 0xf3, 0x1f, 0x2d, 0xc7, 0xc4, 0x3f, 0x94, 0x65, 0xe2,
		0x1f, 0xc1, 0xc4, 0x8d, 0x65, 0xe2, 0xa5, 0x61, 0x57, 0x79, 0xb9, 0xac, 0x21, 0xee, 0xa7, 0x12,
		0x7f, 0x7b, 0x1a, 0x4c, 0x9e, 0xa6, 0x8f, 0xf4, 0x53, 0x87, 0x9b, 0x24, 0xb1, 0xdc, 0x1d, 0x8b,
		0x97, 0x77, 0x9b, 0xbd, 0xa6, 0xda, 0x12, 0xd0, 0x56, 0xce, 0x71, 0xb6, 0xd1, 0x9d, 0xaa, 0xe6,
		0x20, 0x6b, 0x0a, 0x70, 0xd3, 0x55, 0x44, 0xb9, 0x68, 0x75, 0xd3, 0x80, 0xe6, 0xcb, 0x55, 0x3f,
		0xe2, 0x72, 0xd5, 0x1a, 0x29, 0x79, 0x07, 0x2e, 0x57, 0x75, 0xc6, 0x63, 0x5f, 0xba, 0xe9, 0x86,
		0x61, 0x4b, 0x4f, 0x04, 0x89, 0x1c, 0x4a, 0xae, 0xde, 0xee, 0x5b, 0x6c, 0xd7, 0x5c, 0xe9, 0xfe,
		0x11, 0x95, 0xee, 0xa8, 0x74, 0xaf, 0xe6, 0x52, 0xca, 0xae, 0x95, 0x7d, 0x70, 0x75, 0xe9, 0xbb,
		0xa1, 0x27, 0xe8, 0xd5, 0x5f, 0x39, 0x8b, 0x28, 0x01, 0x43, 0x09, 0x98, 0xaa, 0x41, 0x94, 0x80,
		0x51, 0x45, 0x2a, 0xa2, 0x68, 0x45, 0x1f, 0x37, 0x95, 0x72, 0xd4, 0xe2, 0x0d, 0xd9, 0x4e, 0x28,
		0xc3, 0x58, 0x08, 0x50, 0x9b, 0xc6, 0x81, 0x55, 0xc0, 0x2a, 0x60, 0x15, 0x13, 0x56, 0xf1, 0x3b,
		0x5a, 0x55, 0x0d, 0x88, 0xa8, 0x0d, 0x31, 0x82, 0xa0, 0x56, 0xf6, 0x37, 0x57, 0xfe, 0x89, 0xcc,
		0xab, 0x5a, 0x3e, 0x80, 0x9e, 0x1f, 0xd0, 0x92, 0x2f, 0xa0, 0xe5, 0x0f, 0xa8, 0x13, 0xd1, 0x60,
		0x05, 0xe1, 0x5e, 0x19, 0xf1, 0x60, 0x43, 0xe1, 0x39, 0x60, 0x8f, 0x80, 0x2d, 0x42, 0x3e, 0xe3,
		0x2a, 0x89, 0xe5, 0xf6, 0x6a, 0xb0, 0xe9, 0x6f, 0x8b, 0xfb, 0xe1, 0x1e, 0x2f, 0x1f, 0xfc, 0x6c,
		0xf9, 0xdc, 0x86, 0xdd, 0x4a, 0xe7, 0x8a, 0x20, 0x3d, 0xef, 0x3b, 0x8c, 0xc4, 0xdf, 0x13, 0x11,
		0xb8, 0x6f, 0xf3, 0x23, 0xc0, 0x93, 0x27, 0xfb, 0xbb, 0x93, 0x82, 0x19, 0x83, 0x88, 0xb1, 0xef,
		0x4b, 0xa0, 0x66, 0x40, 0xcd, 0xe8, 0xba, 0x9a, 0xb1, 0x5c, 0xfb, 0x6e, 0x18, 0xc4, 0x49, 0xe4,
		0xc8, 0xf4, 0x9d, 0x89, 0x01, 0x43, 0xa1, 0x55, 0x5a, 0xa4, 0x70, 0x88, 0x48, 0x01, 0x91, 0x42,
		0xdb, 0x23, 0x05, 0x55, 0x37, 0x5d, 0x86, 0xf9, 0xde, 0x5f, 0x93, 0x38, 0x49, 0x4b, 0xd0, 0x47,
		0x91, 0x13, 0x4c, 0x7c, 0x27, 0xa2, 0xb4, 0xd9, 0xc8, 0x07, 0x20, 0xc5, 0xf6, 0x89, 0xb3, 0x47,
		0x0b, 0xf6, 0xd9, 0x5c, 0x99, 0xd3, 0xa5, 0x35, 0xbb, 0x36, 0xb7, 0x8b, 0x6b, 0x73, 0x75, 0x6d,
		0x2e, 0xaf, 0xdf, 0xf5, 0x69, 0x10, 0x40, 0x84, 0x02, 0x3e, 0xf1, 0xa0, 0x1e, 0x1f, 0xe6, 0xd2,
		0x11, 0x98, 0xf4, 0x04, 0xfa, 0xdc, 0x11, 0xe6, 0x6d, 0x30, 0x8a, 0xa4, 0x47, 0x93, 0x56, 0x73,
		0x93, 0xb6, 0x34, 0x09, 0xac, 0x05, 0xd6, 0x02, 0x6b, 0x5b, 0x82, 0xb5, 0x5c, 0x6e, 0xdb, 0x3d,
		0x78, 0xad, 0x95, 0x57, 0x13, 0x55, 0xc4, 0xe6, 0xd5, 0xc4, 0x3d, 0x52, 0xd4, 0x01, 0x63, 0x40,
		0xdd, 0x84, 0xe6, 0x78, 0x32, 0x7b, 0xbd, 0x6f, 0x8b, 0xb7, 0xb8, 0x9d, 0xbf, 0xdc, 0x6f, 0x4e,
		0xe0, 0x3d, 0x64, 0x3f, 0x3d, 0x59, 0xbe, 0x9a, 0xc1, 0x99, 0x56, 0x3f, 0x3d, 0x0b, 0x9c, 0x9b,
		0x30, 0xba, 0x68, 0xb2, 0xcd, 0x30, 0x32, 0xac, 0xd0, 0x4d, 0x7a, 0xae, 0x9b, 0xf0, 0x65, 0x58,
		0x27, 0x32, 0x48, 0x58, 0xba, 0x01, 0x1d, 0xa1, 0x7f, 0x8f, 0x96, 0xc8, 0x23, 0x33, 0x87, 0xfe,
		0x3d, 0xc6, 0x4c, 0x01, 0x4f, 0x62, 0xb9, 0xb6, 0x59, 0x41, 0xb7, 0xc2, 0xdc, 0x30, 0x4f, 0xc6,
		0x63, 0x3d, 0xa4, 0x65, 0x9b, 0x61, 0x90, 0x16, 0x90, 0x16, 0x90, 0x16, 0x90, 0x16, 0x90, 0x16,
		0x90, 0x16, 0x90, 0x16, 0x90, 0x96, 0x5a, 0xca, 0x39, 0xb7, 0x28, 0x28, 0x16, 0x0f, 0x49, 0x41,
		0xb5, 0x27, 0x79, 0x9e, 0x5a, 0x5b, 0xed, 0xc9, 0x5b, 0x2a, 0x68, 0x9a, 0x04, 0x6b, 0x5a, 0xf5,
		0xe7, 0x53, 0xe8, 0x4d, 0x7c, 0xb5, 0x65, 0x52, 0x58, 0xe8, 0xb9, 0x62, 0x4f, 0xad, 0xa6, 0xf3,
		0x03, 0x6a, 0x3a, 0x1b, 0x8b, 0x33, 0x7a, 0x5b, 0xd3, 0xa9, 0x1c, 0x3f, 0x64, 0x2b, 0x61, 0xb9,
		0xee, 0xed, 0x44, 0xb8, 0x8f, 0x81, 0xfc, 0x7b, 0xa2, 0x92, 0xa8, 0xa4, 0x24, 0x26, 0x15, 0x13,
		0x91, 0x3f, 0xb1, 0x35, 0x53, 0xb7, 0x66, 0x4d, 0xf7, 0xe7, 0x65, 0x17, 0x55, 0xd8, 0x2f, 0x4e,
		0x14, 0xd8, 0xc9, 0x63, 0x24, 0xe2, 0xc7, 0xd0, 0xf7, 0x28, 0x97, 0xe7, 0x6d, 0xb5, 0x89, 0x0a,
		0x7c, 0xa0, 0x75, 0xd7, 0x2b, 0xf0, 0x57, 0x97, 0xbf, 0x5f, 0xe0, 0x04, 0xb6, 0x27, 0x86, 0xce,
		0xc4, 0x4f, 0x58, 0x6f, 0x99, 0xd9, 0xfd, 0x4d, 0x10, 0x6f, 0x21, 0xde, 0x42, 0xbc, 0xc5, 0x15,
		0x34, 0x7d, 0x55, 0x83, 0x71, 0x05, 0x4d, 0xe3, 0x6a, 0x30, 0xae, 0xa0, 0xe9, 0x8e, 0xf4, 0xfb,
		0x5e, 0x03, 0x29, 0x7a, 0x22, 0xac, 0xb9, 0xf2, 0x84, 0x68, 0xfa, 0x2d, 0x20, 0x43, 0x20, 0x43,
		0x20, 0x43, 0x20, 0x43, 0x20, 0x43, 0x20, 0x43, 0x20, 0x43, 0x20, 0x43, 0x26, 0x92, 0x21, 0x82,
		0xdb, 0x57, 0x20, 0x43, 0x32, 0x00, 0x19, 0x02, 0x19, 0x02, 0x19, 0x02, 0x19, 0x02, 0x19, 0x02,
		0x19, 0x02, 0x19, 0x02, 0x19, 0x6a, 0x98, 0x0c, 0xcd, 0xea, 0xfa, 0xea, 0x48, 0x97, 0xed, 0xfc,
		0x26, 0x90, 0x22, 0x90, 0x22, 0x90, 0x22, 0x90, 0x22, 0x90, 0x22, 0x90, 0x22, 0x90, 0x22, 0x90,
		0x22, 0x03, 0x49, 0x11, 0x7b, 0xba, 0x6c, 0xeb, 0xb7, 0x80, 0x0c, 0x81, 0x0c, 0x81, 0x0c, 0x81,
		0x0c, 0x81, 0x0c, 0x81, 0x0c, 0x81, 0x0c, 0x81, 0x0c, 0x99, 0x48, 0x86, 0xb8, 0xd3, 0x65, 0x5b,
		0xbf, 0x05, 0x64, 0x08, 0x64, 0x08, 0x64, 0x08, 0x64, 0x08, 0x64, 0x08, 0x64, 0x08, 0x64, 0x08,
		0x64, 0x88, 0x48, 0x86, 0xd0, 0x9b, 0x61, 0xd1, 0x9b, 0x81, 0xed, 0xcc, 0xa8, 0x55, 0x57, 0x2b,
		0x86, 0xbb, 0xe9, 0x13, 0x5f, 0x4f, 0x1f, 0xf8, 0xff, 0x39, 0x51, 0x70, 0x97, 0x3d, 0xae, 0xae,
		0x43, 0xbd, 0xac, 0xf7, 0x90, 0x2b, 0xae, 0x8d, 0x5a, 0xd7, 0x44, 0x95, 0x8b, 0xea, 0x6b, 0x98,
		0xf0, 0x72, 0x13, 0xbb, 0x7f, 0x9a, 0x4a, 0x4c, 0xd1, 0x60, 0xe6, 0x07, 0x4f, 0x4e, 0xe0, 0x8c,
		0xd2, 0x33, 0xe8, 0xab, 0xa3, 0x52, 0x76, 0xbe, 0x32, 0x9a, 0xb5, 0xcb, 0x58, 0xc9, 0xe5, 0x52,
		0xed, 0x1c, 0x76, 0xe5, 0x78, 0x45, 0x25, 0x3e, 0x61, 0x8a, 0x47, 0x54, 0xe3, 0x0f, 0x72, 0xbc,
		0x41, 0x8e, 0x2f, 0xf8, 0xe2, 0x09, 0x5e, 0x68, 0xa9, 0x7a, 0x6e, 0x7a, 0xbd, 0xb1, 0x8b, 0xf3,
		0x2a, 0x9f, 0x26, 0x4f, 0x76, 0x38, 0x49, 0xc6, 0x93, 0x64, 0xb6, 0x1f, 0x30, 0xb5, 0x8c, 0x29,
		0xb2, 0x5c, 0x73, 0x3b, 0x82, 0x0f, 0x68, 0x47, 0x80, 0x76, 0x04, 0x8a, 0x6c, 0x4e, 0xb9, 0x1d,
		0xc1, 0x0c, 0xfe, 0x67, 0xdd, 0xad, 0x1c, 0xdf, 0xf6, 0x44, 0x10, 0x53, 0x6e, 0x18, 0xdb, 0xd8,
		0x56, 0x72, 0x76, 0xa1, 0x90, 0x41, 0x21, 0x83, 0x42, 0x06, 0x85, 0x0c, 0x0a, 0x19, 0x14, 0x32,
		0x28, 0x64, 0x50, 0xc8, 0x88, 0x0a, 0x19, 0x2d, 0x5d, 0xc8, 0x9a, 0x15, 0x04, 0xb5, 0x01, 0xb5,
		0x01, 0xb5, 0x01, 0xb5, 0x01, 0xb5, 0x01, 0xb5, 0x01, 0xb5, 0x01, 0xb5, 0xa1, 0x52, 0x9b, 0xfe,
		0x26, 0xff, 0x76, 0x64, 0x24, 0x0e, 0x98, 0x35, 0x5b, 0x4b, 0x5b, 0x76, 0x28, 0x4d, 0xfd, 0x5d,
		0x64, 0xef, 0x50, 0xdc, 0xa4, 0xfd, 0x62, 0xf6, 0x06, 0x57, 0xe9, 0x0b, 0xa4, 0x9f, 0x30, 0xae,
		0x35, 0xbb, 0x0c, 0x74, 0x29, 0xee, 0x45, 0x96, 0xa1, 0xb8, 0xd7, 0xc4, 0x8d, 0xa1, 0xb8, 0x53,
		0x21, 0x14, 0x8a, 0x3b, 0xc2, 0x52, 0x84, 0xa5, 0x08, 0x4b, 0x11, 0x96, 0x22, 0x2c, 0x45, 0x58,
		0x8a, 0xb0, 0xb4, 0x27, 0x61, 0x29, 0x14, 0x77, 0x50, 0x1b, 0x50, 0x1b, 0x50, 0x1b, 0x50, 0x1b,
		0x50, 0x1b, 0x50, 0x1b, 0x50, 0x9b, 0x0e, 0x51, 0x1b, 0x28, 0xee, 0x7b, 0x15, 0x77, 0xba, 0x66,
		0x6b, 0x35, 0xac, 0xb8, 0xcf, 0xde, 0xc0, 0x30, 0xc5, 0x3d, 0x09, 0x7d, 0x11, 0xad, 0xe5, 0x34,
		0x64, 0xc0, 0x20, 0xb7, 0xef, 0x36, 0x0b, 0xad, 0xbd, 0x26, 0x56, 0x0c, 0xad, 0x9d, 0x0a, 0x9e,
		0xd0, 0xda, 0x11, 0x90, 0x22, 0x20, 0x45, 0x40, 0x8a, 0x80, 0x14, 0x01, 0x29, 0x02, 0x52, 0x04,
		0xa4, 0x3d, 0x09, 0x48, 0xa1, 0xb5, 0x83, 0xda, 0x80, 0xda, 0x80, 0xda, 0x80, 0xda, 0x80, 0xda,
		0x80, 0xda, 0x80, 0xda, 0x74, 0x88, 0xda, 0x40, 0x6b, 0x2f, 0xd2, 0xda, 0x39, 0x05, 0x5b, 0xab,
		0x01, 0xa1, 0xfd, 0x6e, 0xf1, 0xfc, 0xf3, 0xc2, 0xf6, 0xb3, 0xc0, 0x50, 0x95, 0x7d, 0x9e, 0xc7,
		0xe0, 0x56, 0xd9, 0x0b, 0xcc, 0x42, 0x65, 0xaf, 0x89, 0x0f, 0x43, 0x65, 0xa7, 0xc2, 0x26, 0x54,
		0x76, 0x84, 0xa2, 0x08, 0x45, 0x11, 0x8a, 0x22, 0x14, 0x45, 0x28, 0x8a, 0x50, 0x14, 0xa1, 0x68,
		0x4f, 0x42, 0x51, 0xa8, 0xec, 0xa0, 0x36, 0xa0, 0x36, 0xa0, 0x36, 0xa0, 0x36, 0xa0, 0x36, 0xa0,
		0x36, 0xa0, 0x36, 0x1d, 0xa2, 0x36, 0x50, 0xd9, 0xf7, 0xa8, 0xec, 0x64, 0xc1, 0xd6, 0x6a, 0x54,
		0x65, 0x9f, 0x3d, 0x7e, 0x0d, 0x2a, 0x7b, 0xf7, 0x6f, 0x97, 0xa0, 0x5f, 0x83, 0xd0, 0xc0, 0x52,
		0x60, 0xbb, 0x74, 0xe2, 0x1d, 0x61, 0x5e, 0xab, 0xce, 0xa7, 0xd6, 0x79, 0x2c, 0x31, 0x57, 0x5a,
		0xe6, 0x68, 0xf7, 0x4c, 0x6c, 0x1f, 0xdf, 0x1d, 0x63, 0xbb, 0xe8, 0x96, 0x24, 0x3c, 0xdb, 0x77,
		0xde, 0x44, 0x64, 0x8f, 0xa3, 0x30, 0x09, 0xdd, 0xd0, 0xb7, 0xff, 0x9e, 0x38, 0xbe, 0x1c, 0xca,
		0x12, 0xc1, 0xe7, 0x66, 0xe7, 0xa5, 0x5d, 0xb6, 0xf6, 0xcc, 0x72, 0xb9, 0x18, 0x73, 0x19, 0x4b,
		0xee, 0xa1, 0x72, 0x55, 0x62, 0xc6, 0xf5, 0xd8, 0x70, 0xb6, 0x54, 0xca, 0x4c, 0x74, 0xc5, 0xd8,
		0x4f, 0x39, 0xc6, 0x53, 0x8e, 0xe5, 0xf2, 0x31, 0xdb, 0xfc, 0xe5, 0x34, 0x7b, 0x6c, 0xe9, 0x18,
		0x2b, 0x1b, 0x79, 0xc5, 0x55, 0xb3, 0x16, 0x42, 0xfd, 0x52, 0xe2, 0x6f, 0xcf, 0x3c, 0x11, 0x24,
		0x32, 0x79, 0xfb, 0xcd, 0x89, 0x45, 0xf5, 0xbb, 0x6c, 0xce, 0x8f, 0xff, 0x75, 0x7a, 0xf3, 0x70,
		0x7d, 0x73, 0x75, 0x77, 0x75, 0x72, 0x75, 0xfe, 0xf0, 0xbf, 0x7f, 0x1e, 0x9f, 0x9f, 0x7d, 0x3b,
		0x3b, 0xbd, 0x29, 0x3b, 0x8f, 0x29, 0x67, 0x8d, 0x2b, 0x05, 0x57, 0x8a, 0x49, 0xe3, 0xeb, 0x3f,
		0xae, 0xee, 0xae, 0x2e, 0xcf, 0x4e, 0x1e, 0x66, 0x8f, 0x5c, 0xf5, 0x49, 0x29, 0x4f, 0x4c, 0x0b,
		0x01, 0xf7, 0xbe, 0xc1, 0xc3, 0xc5, 0xc9, 0xa0, 0x0e, 0x11, 0x4e, 0xd7, 0xe3, 0x5f, 0xdd, 0xdd,
		0xca, 0xb6, 0xbf, 0xc0, 0x71, 0xbb, 0x5f, 0xe0, 0xe4, 0x8f, 0x76, 0x3f, 0xff, 0xc5, 0x6d, 0xab,
		0x9f, 0xff, 0xe2, 0xe4, 0xb8, 0xf5, 0x1e, 0xdc, 0xfe, 0x37, 0xe8, 0xc0, 0x2c, 0x74, 0x60, 0x0e,
		0xda, 0x0e, 0x44, 0xc7, 0xba, 0x8b, 0x8c, 0xee, 0x75, 0x94, 0xea, 0x31, 0x93, 0xaa, 0x4a, 0x94,
		0xa4, 0xc1, 0xc7, 0xac, 0x46, 0x3d, 0x9a, 0x7d, 0xd0, 0xe3, 0x76, 0x3c, 0x68, 0x15, 0x2a, 0xd1,
		0xe4, 0x73, 0x56, 0xa1, 0x0c, 0x8d, 0x3a, 0xd2, 0x71, 0x6b, 0x3c, 0xa9, 0x3d, 0x4f, 0xda, 0xa2,
		0x51, 0x6d, 0xd1, 0x98, 0xb6, 0xc5, 0xf1, 0x8d, 0x9a, 0xfb, 0x6d, 0x0a, 0xca, 0xc3, 0x9f, 0x97,
		0xb7, 0xd7, 0xa7, 0x27, 0xd3, 0xff, 0xff, 0x95, 0xfb, 0xea, 0xd8, 0x7b, 0xcd, 0x6a, 0xd7, 0xb9,
		0x8c, 0x93, 0xe3, 0x24, 0x29, 0x57, 0xaa, 0x33, 0xb8, 0x90, 0xc1, 0xa9, 0x9f, 0xea, 0xec, 0x71,
		0xb9, 0x42, 0xfc, 0xc1, 0x85, 0xf3, 0xba, 0xfa, 0x89, 0xa3, 0x4f, 0x9f, 0x7e, 0xfd, 0xfc, 0xe9,
		0xd3, 0x87, 0xcf, 0xff, 0xf8, 0xfc, 0xe1, 0xbf, 0x7e, 0xf9, 0xe5, 0xf0, 0xd7, 0x52, 0xc2, 0xd7,
		0x55, 0xe4, 0x89, 0x48, 0x78, 0xbf, 0xbd, 0x0d, 0xbe, 0x58, 0xc1, 0xc4, 0xf7, 0x35, 0xe8, 0xc9,
		0x8b, 0x42, 0xa3, 0x44, 0x04, 0x89, 0x74, 0xfc, 0x34, 0xc3, 0xe1, 0x96, 0x29, 0xd4, 0xce, 0x95,
		0x2a, 0xe5, 0x2c, 0x94, 0xd3, 0x8e, 0x0f, 0xa1, 0x1d, 0xb7, 0x5f, 0x3b, 0x2e, 0x7b, 0x4a, 0x60,
		0xbe, 0x58, 0x62, 0xf9, 0x1f, 0x05, 0x21, 0x77, 0xe5, 0xb3, 0x5d, 0xb9, 0x83, 0xbc, 0xf4, 0xd2,
		0x53, 0x5d, 0x82, 0xe4, 0xa5, 0x48, 0x5e, 0x92, 0xf4, 0xa5, 0x59, 0x6d, 0xe3, 0xd0, 0x76, 0xe7,
		0xf8, 0x24, 0x90, 0x89, 0xfa, 0x81, 0xb0, 0xf4, 0xd3, 0x6a, 0xe7, 0xbe, 0x3e, 0xb4, 0xee, 0xdc,
		0x57, 0xe5, 0x65, 0x4d, 0x5d, 0xde, 0x6c, 0xcb, 0x9c, 0x6d, 0xb9, 0xf3, 0x2d, 0x7b, 0x35, 0x09,
		0xa6, 0x6a, 0xe1, 0x8e, 0x72, 0x85, 0x65, 0x36, 0xf3, 0x8b, 0x7d, 0xdf, 0x56, 0x58, 0xea, 0x6b,
		0x68, 0xfd, 0x49, 0xe1, 0xb3, 0xa7, 0xc1, 0xe4, 0x69, 0xfa, 0xf8, 0x3f, 0x0d, 0x38, 0x52, 0xfa,
		0x3c, 0x2f, 0x72, 0x53, 0x44, 0x8a, 0xd9, 0xc7, 0x01, 0x15, 0x80, 0x8a, 0xce, 0x42, 0xc5, 0x44,
		0x06, 0x89, 0x52, 0x05, 0xf6, 0x62, 0x9d, 0x1f, 0x29, 0x7c, 0x94, 0x56, 0x23, 0x4d, 0x28, 0x3d,
		0xe7, 0xa8, 0x89, 0x26, 0x9e, 0xe6, 0xc8, 0xcc, 0x30, 0x15, 0xe0, 0x72, 0x16, 0xde, 0x12, 0x6a,
		0x9e, 0x59, 0x6a, 0x9d, 0xb9, 0x87, 0x56, 0x2d, 0xd6, 0xaf, 0x6d, 0xb4, 0x6b, 0x2a, 0x33, 0xbe,
		0x47, 0xd5, 0x69, 0x71, 0xb5, 0xe2, 0x36, 0xb9, 0xe4, 0xa0, 0x72, 0x78, 0x6b, 0x11, 0xea, 0x16,
		0xef, 0xa6, 0x5f, 0x76, 0xbd, 0x78, 0x88, 0x93, 0xf9, 0x33, 0xcc, 0x7e, 0x7c, 0x3b, 0x7d, 0x84,
		0xbe, 0x15, 0x91, 0x2a, 0xaa, 0x58, 0xfc, 0x73, 0xa0, 0xa3, 0x68, 0x74, 0x32, 0x91, 0x5e, 0x79,
		0x41, 0x2f, 0xfd, 0x6b, 0xe6, 0xc2, 0xcf, 0x0f, 0x10, 0xef, 0x8c, 0x15, 0xef, 0xaa, 0x17, 0x7e,
		0x96, 0x58, 0x21, 0x6b, 0x11, 0xdd, 0x91, 0xea, 0x9a, 0x7e, 0x57, 0xe1, 0x7d, 0xa6, 0x13, 0xb6,
		0xe7, 0xe1, 0xca, 0xa9, 0xfe, 0x1b, 0x6a, 0xff, 0x8e, 0xa5, 0x4b, 0x52, 0xf9, 0xcb, 0xa9, 0xfb,
		0xdb, 0x5e, 0xf6, 0x78, 0x32, 0x9a, 0x7e, 0xad, 0xf0, 0x76, 0x32, 0xda, 0x92, 0x1e, 0xbf, 0x8a,
		0x94, 0x5f, 0x16, 0x48, 0xb9, 0xfa, 0xb3, 0x2d, 0xa8, 0xb9, 0x0f, 0x25, 0xbe, 0x8a, 0xd8, 0x8d,
		0xe4, 0x78, 0x0e, 0xe0, 0x83, 0x20, 0x0c, 0x04, 0x77, 0x56, 0x40, 0x1b, 0xb0, 0x54, 0x3e, 0x6d,
		0xdc, 0x46, 0x80, 0xa9, 0x7a, 0x1a, 0xb8, 0xa6, 0x2c, 0xc1, 0xfe, 0x13, 0x1d, 0x95, 0x93, 0x07,
		0x1c, 0x87, 0x44, 0x14, 0xd7, 0x74, 0x7b, 0xd2, 0x11, 0xca, 0x27, 0xec, 0xbb, 0x94, 0x96, 0x50,
		0x3d, 0x21, 0xff, 0xb3, 0x1e, 0xca, 0xac, 0x42, 0x00, 0xb1, 0x0d, 0x60, 0x1b, 0x68, 0xe1, 0x36,
		0x90, 0x3e, 0x8d, 0xed, 0x3e, 0x3a, 0x41, 0x20, 0x7c, 0xe6, 0xfd, 0xa0, 0x82, 0x6d, 0x6c, 0x0c,
		0xd8, 0x18, 0x5a, 0xbd, 0x31, 0x14, 0xfe, 0xe6, 0x7e, 0x5b, 0x60, 0x51, 0x4e, 0x73, 0x21, 0x68,
		0x2d, 0x83, 0x5d, 0xc7, 0x5b, 0x95, 0xa4, 0x94, 0xe2, 0xb9, 0xc8, 0xbf, 0x77, 0x01, 0x32, 0x0d,
		0x92, 0x70, 0x1c, 0xfa, 0xe1, 0xe8, 0xcd, 0x9e, 0x3f, 0xf5, 0xd6, 0xb7, 0x5e, 0xa9, 0x43, 0xd9,
		0xf8, 0xc4, 0xb6, 0x78, 0x74, 0xa7, 0x57, 0xef, 0xf5, 0xe2, 0x32, 0x5e, 0xbb, 0xee, 0xa5, 0x8b,
		0x07, 0xdb, 0x35, 0xc0, 0x25, 0xfd, 0xb1, 0xb2, 0xff, 0x55, 0xf6, 0xb7, 0xbc, 0x7f, 0x65, 0x8f,
		0xcf, 0xa4, 0x07, 0xec, 0xdb, 0x67, 0x06, 0xc1, 0x4b, 0xf6, 0x9d, 0x8b, 0x1d, 0xa0, 0xbc, 0x4a,
		0x56, 0xf4, 0xe1, 0xb6, 0x54, 0xbc, 0x95, 0x58, 0x28, 0x6d, 0xa6, 0x33, 0xfb, 0x17, 0x52, 0xcd,
		0x44, 0x66, 0x8e, 0x67, 0x15, 0x29, 0x4a, 0xfa, 0x29, 0x54, 0xba, 0xa1, 0xd2, 0x8d, 0x98, 0xe4,
		0xaa, 0x5c, 0xe9, 0x86, 0x02, 0x16, 0x9d, 0x0b, 0x9b, 0xba, 0xc0, 0xd9, 0x16, 0x3a, 0xdb, 0x82,
		0xe7, 0x5b, 0xf8, 0xd5, 0x1c, 0xa0, 0xa2, 0x23, 0x54, 0x4f, 0x78, 0x6c, 0x9d, 0xf9, 0x38, 0x89,
		0x64, 0x30, 0xa2, 0x14, 0xb9, 0x1d, 0x99, 0x52, 0xa8, 0x66, 0x57, 0xda, 0x9c, 0x8a, 0x9d, 0xdd,
		0xae, 0xb0, 0x55, 0xc1, 0xe3, 0xe1, 0xf1, 0xf0, 0x78, 0x4e, 0x8f, 0x67, 0x25, 0x0b, 0xf3, 0x24,
		0x6a, 0x65, 0xb7, 0xae, 0x76, 0xa0, 0x2a, 0xfb, 0x54, 0xe9, 0x54, 0x6b, 0xfe, 0x93, 0x0c, 0x07,
		0xac, 0x32, 0x63, 0x95, 0x0e, 0x5a, 0x55, 0x1d, 0x52, 0x8d, 0x45, 0x46, 0x9b, 0x52, 0xc4, 0x41,
		0x41, 0x54, 0x7a, 0x50, 0x11, 0x9c, 0xf7, 0x6b, 0x30, 0x77, 0xf3, 0x6f, 0x58, 0xfc, 0xf7, 0xe5,
		0xcb, 0xe2, 0x27, 0x73, 0x75, 0xe6, 0x21, 0xf5, 0x1a, 0x2e, 0xd9, 0xeb, 0x7d, 0x99, 0x63, 0x45,
		0xf3, 0x88, 0x4f, 0xe1, 0x50, 0x51, 0xe9, 0x50, 0x98, 0x14, 0x68, 0x7d, 0xac, 0x2b, 0xd0, 0xaa,
		0xf8, 0x42, 0x5d, 0x0b, 0xb5, 0xca, 0xc7, 0xfe, 0x86, 0x04, 0x5b, 0x99, 0xbb, 0x96, 0x2a, 0xd2,
		0xda, 0x2f, 0x4a, 0x96, 0xac, 0xcd, 0xe9, 0x06, 0x15, 0x53, 0x58, 0xec, 0x7d, 0x22, 0x63, 0xd5,
		0x9d, 0xa1, 0x2d, 0x74, 0xcc, 0x17, 0xce, 0x30, 0x12, 0x43, 0x0a, 0x1f, 0x53, 0xe8, 0xb7, 0x3e,
		0xb8, 0x2e, 0xd8, 0x8c, 0xd7, 0x33, 0xe5, 0x8b, 0x21, 0xff, 0x92, 0xdb, 0x9a, 0x8b, 0x7f, 0xbd,
		0xf1, 0xe3, 0xd4, 0x7b, 0xdb, 0x44, 0x14, 0x55, 0x70, 0x07, 0x5c, 0xd1, 0x58, 0xae, 0xa8, 0xc2,
		0x1e, 0x18, 0xf8, 0xe2, 0x5d, 0x25, 0xa0, 0xe2, 0xe1, 0x8c, 0x95, 0xf6, 0xdb, 0xaa, 0xa5, 0xaf,
		0x0a, 0xdb, 0x2a, 0x44, 0xf9, 0x3e, 0x89, 0xf2, 0x95, 0xb7, 0x40, 0x95, 0x15, 0xa8, 0xa0, 0x3f,
		0xb4, 0xf0, 0x48, 0x47, 0x19, 0x60, 0x63, 0x39, 0xc6, 0xb1, 0x17, 0xc7, 0x06, 0x5a, 0x1a, 0xb4,
		0x94, 0x0c, 0x6d, 0xab, 0x86, 0xb4, 0x48, 0x47, 0x6b, 0x01, 0x9c, 0x16, 0xa4, 0xa3, 0xbf, 0x87,
		0x93, 0xc0, 0x73, 0xa2, 0x37, 0x3b, 0x08, 0x3d, 0x61, 0x0b, 0x6f, 0xb4, 0x28, 0xcc, 0xa9, 0xbc,
		0x1b, 0x6e, 0xb5, 0x04, 0x35, 0x05, 0x6a, 0x4a, 0x13, 0x6a, 0xca, 0xc6, 0x3a, 0x24, 0x8a, 0x2a,
		0x85, 0xd6, 0xa0, 0xad, 0x40, 0x5b, 0x81, 0xb6, 0xd2, 0x42, 0x6d, 0x65, 0xea, 0xcd, 0x1b, 0x3f,
		0x0a, 0x5f, 0x02, 0xe1, 0x6d, 0x6e, 0x5e, 0x75, 0x4a, 0x32, 0xef, 0x2b, 0x42, 0x1b, 0x03, 0x9e,
		0x01, 0xc4, 0x00, 0x62, 0x00, 0xb1, 0x0e, 0x81, 0x98, 0x29, 0x00, 0x85, 0x4c, 0x16, 0x80, 0x0a,
		0x40, 0x05, 0xa0, 0xea, 0x42, 0x26, 0xcb, 0xca, 0xa8, 0x92, 0x45, 0x08, 0x02, 0x91, 0xe8, 0xe2,
		0xd2, 0x81, 0x49, 0x7a, 0x70, 0xb6, 0x42, 0x89, 0x72, 0x95, 0x9a, 0x4a, 0xbc, 0xf8, 0xef, 0x87,
		0xdf, 0xe6, 0xdf, 0x7e, 0x19, 0x7a, 0xe2, 0xd4, 0x1b, 0xed, 0x3a, 0xba, 0xa6, 0xa0, 0xca, 0x97,
		0xd0, 0x4e, 0x37, 0xee, 0xeb, 0x53, 0x3b, 0x95, 0x52, 0x64, 0x44, 0x73, 0x3e, 0x0c, 0x6a, 0x5f,
		0x3f, 0xd4, 0x3e, 0xf5, 0x9c, 0x98, 0xfa, 0xa2, 0xb4, 0x14, 0x3b, 0xcf, 0x56, 0xec, 0x38, 0xfb,
		0xb3, 0xc6, 0x0d, 0xe3, 0xb0, 0x5d, 0x1b, 0x06, 0x0f, 0xb4, 0xc9, 0xe0, 0x87, 0x02, 0x96, 0x4d,
		0x3f, 0x85, 0x54, 0x05, 0xc0, 0xab, 0x89, 0x54, 0x85, 0xe3, 0x3d, 0xc9, 0x40, 0xc6, 0x49, 0xe4,
		0x24, 0xf2, 0x59, 0xd8, 0x71, 0xe2, 0x24, 0x84, 0x73, 0x38, 0x85, 0xd6, 0x70, 0x22, 0x07, 0xa1,
		0x73, 0x67, 0x4f, 0xe4, 0x30, 0xac, 0x78, 0xab, 0x4b, 0x6d, 0xe7, 0x9d, 0x67, 0x47, 0xfa, 0xce,
		0x77, 0x5f, 0x94, 0xbf, 0xc3, 0x67, 0xfb, 0xd8, 0xe6, 0x6d, 0xa9, 0x61, 0xc9, 0xa1, 0x2a, 0x96,
		0x7c, 0x04, 0x96, 0x00, 0x4b, 0x4a, 0x3e, 0x66, 0xd5, 0xad, 0x77, 0x45, 0xb1, 0xae, 0x7c, 0x1b,
		0xd1, 0x0e, 0xd9, 0x5a, 0xa1, 0x7d, 0x33, 0x83, 0xcb, 0x90, 0xb7, 0x61, 0x0e, 0x17, 0x62, 0x76,
		0x25, 0x2e, 0x97, 0x62, 0x77, 0x2d, 0x76, 0x17, 0xe3, 0x77, 0x35, 0x35, 0x97, 0x53, 0x74, 0x3d,
		0xb2, 0x0b, 0x66, 0x06, 0x94, 0x6e, 0x57, 0xda, 0xba, 0xfc, 0x14, 0xaf, 0xa0, 0x61, 0x60, 0xc3,
		0xec, 0x6e, 0xc9, 0xe9, 0x9e, 0x9a, 0xdc, 0x94, 0xdb, 0x5d, 0xb5, 0xb9, 0xad, 0x36, 0xf7, 0xd5,
		0xe7, 0xc6, 0x34, 0x77, 0x26, 0xba, 0x35, 0x9d, 0xad, 0x6f, 0x5d, 0x79, 0xd4, 0xdb, 0xa2, 0x38,
		0x69, 0x3c, 0x13, 0xad, 0xe7, 0x9b, 0x32, 0xca, 0x95, 0x28, 0x6a, 0xcd, 0x7b, 0xb6, 0xce, 0x93,
		0x4a, 0x33, 0x1f, 0x40, 0x29, 0xa0, 0x14, 0x50, 0x5a, 0x1b, 0x94, 0x2a, 0xdf, 0xa6, 0xb5, 0xcd,
		0x4f, 0x8f, 0x18, 0x4c, 0xd1, 0x6e, 0xdb, 0xda, 0xfc, 0xc7, 0xe3, 0x04, 0x16, 0xd7, 0x6d, 0x5c,
		0x9a, 0x00, 0x2e, 0x67, 0x96, 0xe9, 0xb6, 0xae, 0x9c, 0x5d, 0xc6, 0xfb, 0xa4, 0x98, 0xdd, 0x63,
		0x7d, 0xaa, 0x9c, 0xd7, 0xd6, 0x4d, 0x15, 0xff, 0xed, 0x5f, 0xb5, 0xce, 0xde, 0x3b, 0x33, 0xac,
		0xdc, 0x37, 0x45, 0xbc, 0x6a, 0x0d, 0x9a, 0x15, 0x6b, 0x60, 0x72, 0x76, 0x48, 0x35, 0x31, 0xbe,
		0x0c, 0x7e, 0x1c, 0xe4, 0xf5, 0xde, 0x03, 0xb2, 0x9e, 0x65, 0xd1, 0xaa, 0x65, 0xce, 0x65, 0xf0,
		0xe3, 0xe1, 0x78, 0xf1, 0x5c, 0xaa, 0x37, 0x94, 0xd1, 0x27, 0x58, 0xaf, 0x74, 0x49, 0x5c, 0x02,
		0x5a, 0xa6, 0x5e, 0x45, 0xfb, 0xe6, 0x9e, 0x67, 0x13, 0xea, 0x99, 0xdd, 0x30, 0x4e, 0x6c, 0xf7,
		0xd1, 0x99, 0xc2, 0xad, 0x88, 0x64, 0x9c, 0x48, 0x57, 0x3d, 0xa3, 0x52, 0x64, 0xac, 0x2f, 0x29,
		0x15, 0xd4, 0x36, 0xef, 0x8c, 0x6b, 0x4c, 0xad, 0x6d, 0x56, 0x4e, 0xab, 0xa4, 0x6b, 0xdd, 0xf1,
		0x47, 0x61, 0x24, 0x93, 0xc7, 0x27, 0x7a, 0x6a, 0x65, 0xc3, 0x1e, 0x2d, 0xbd, 0xf2, 0xa1, 0x33,
		0xe9, 0x15, 0x82, 0x5b, 0x71, 0xcb, 0x0c, 0x6d, 0x4c, 0xb0, 0xa8, 0xbb, 0x5d, 0x33, 0x6c, 0x91,
		0x2c, 0x1c, 0xd0, 0x7b, 0x99, 0xe6, 0xb6, 0xa2, 0xa3, 0xba, 0x48, 0xd8, 0x7b, 0x45, 0x14, 0x52,
		0x6a, 0x6e, 0x5c, 0x0c, 0x40, 0x0a, 0x3d, 0x8e, 0x81, 0x3d, 0xc0, 0x1e, 0x60, 0x4f, 0x5f, 0xb1,
		0x87, 0x96, 0x89, 0x59, 0x07, 0x1f, 0x4a, 0x1a, 0x06, 0xe8, 0x03, 0xf4, 0x01, 0xfa, 0xb4, 0x15,
		0x7d, 0xb4, 0x86, 0x78, 0xf3, 0xa3, 0x8f, 0xaa, 0xfc, 0x46, 0xed, 0xb8, 0x4a, 0xf6, 0x69, 0xe5,
		0x63, 0x2b, 0x4b, 0x0b, 0x8c, 0xc7, 0x57, 0x32, 0xa3, 0x4a, 0xc7, 0x58, 0xda, 0x2b, 0x00, 0xd2,
		0x95, 0x29, 0x0e, 0x05, 0xf0, 0x24, 0x8c, 0x93, 0x93, 0xf5, 0x87, 0x30, 0x40, 0x02, 0xf4, 0x84,
		0x2f, 0x9f, 0x45, 0xf4, 0x66, 0x87, 0xd3, 0x35, 0xc1, 0x26, 0x06, 0xee, 0x36, 0x5b, 0xf3, 0xa9,
		0x0d, 0xc8, 0x82, 0x90, 0x05, 0x6b, 0xd9, 0x8d, 0x3b, 0x76, 0x7b, 0x92, 0x27, 0x23, 0xe1, 0x2a,
		0x01, 0xf7, 0x12, 0x07, 0x32, 0x13, 0xf0, 0x79, 0xf8, 0x7c, 0xa7, 0x7d, 0x7e, 0x18, 0x46, 0x2f,
		0x4e, 0xe4, 0xc9, 0x60, 0x64, 0xab, 0xae, 0x7a, 0xab, 0x4b, 0xa7, 0xb5, 0x44, 0x14, 0x85, 0x7c,
		0x84, 0xa2, 0xd0, 0x1a, 0x30, 0x05, 0x98, 0x02, 0x1e, 0x61, 0x3c, 0x8f, 0xf0, 0x9d, 0x44, 0x04,
		0xee, 0x1b, 0x1b, 0x16, 0x6c, 0xb1, 0x87, 0x62, 0x03, 0xa0, 0x41, 0x17, 0x8b, 0x0d, 0x86, 0xf2,
		0x55, 0x78, 0x36, 0x93, 0x13, 0xe5, 0x69, 0xcb, 0x2e, 0xeb, 0x0d, 0xcb, 0xf1, 0x1f, 0x21, 0xc7,
		0xeb, 0x73, 0x41, 0x76, 0x57, 0xd4, 0xe1, 0x92, 0xea, 0xb2, 0xb2, 0x05, 0x39, 0xbe, 0xb6, 0x64,
		0xe0, 0x5f, 0x32, 0x49, 0xe8, 0xe2, 0x61, 0x6e, 0xf0, 0x8a, 0xcd, 0x02, 0x93, 0x80, 0x49, 0xc0,
		0x24, 0x60, 0xd2, 0x9e, 0x67, 0xfc, 0x7b, 0x22, 0x64, 0x30, 0xd2, 0x46, 0x9b, 0x76, 0x9b, 0x47,
		0x19, 0x03, 0x30, 0x0a, 0x18, 0x05, 0x8c, 0xda, 0xf3, 0x8c, 0x49, 0xe4, 0x0c, 0x87, 0xd2, 0xb5,
		0xc7, 0x51, 0x38, 0x16, 0x51, 0xf2, 0xc6, 0x54, 0xcc, 0x59, 0x6c, 0x16, 0x98, 0x04, 0x4c, 0x02,
		0x26, 0x01, 0x93, 0xf6, 0x3c, 0xe3, 0x8b, 0x13, 0x78, 0x1a, 0x62, 0xb9, 0x62, 0xb3, 0x88, 0xe5,
		0x80, 0x49, 0xc0, 0xa4, 0x7e, 0x61, 0x52, 0x1d, 0xe5, 0x9e, 0x1c, 0x0c, 0x08, 0xa5, 0x9f, 0xe4,
		0xd9, 0x68, 0xbe, 0xf4, 0x93, 0x2d, 0x3e, 0xa7, 0x56, 0x7f, 0x9e, 0xcf, 0x1e, 0xc4, 0xbc, 0x02,
		0x50, 0xca, 0x95, 0x19, 0x39, 0x38, 0xa2, 0xdd, 0x52, 0x60, 0xa1, 0x48, 0x03, 0x69, 0xd9, 0xba,
		0x77, 0x0c, 0x86, 0xfb, 0xad, 0xc8, 0x8b, 0xde, 0x6a, 0xa8, 0xee, 0x0b, 0x1b, 0x22, 0x75, 0x43,
		0xd4, 0x03, 0xc9, 0x72, 0x28, 0xdc, 0x37, 0xd7, 0x27, 0x5f, 0x99, 0xb0, 0x69, 0xa8, 0x2f, 0x50,
		0x8c, 0x0e, 0xe7, 0x3b, 0x80, 0xb8, 0xab, 0xb7, 0x25, 0xd0, 0x16, 0xbb, 0xd5, 0xa5, 0xd2, 0x5b,
		0x3f, 0x8c, 0x63, 0xbe, 0x6a, 0xbb, 0x02, 0x63, 0xe0, 0x74, 0x80, 0x12, 0x14, 0xde, 0x32, 0xea,
		0x29, 0x9a, 0x2e, 0x54, 0x27, 0x05, 0x73, 0x84, 0xe8, 0xed, 0x10, 0x17, 0x2c, 0x81, 0x32, 0x18,
		0x5b, 0x50, 0xcb, 0xd4, 0xb6, 0x02, 0x1d, 0x2b, 0x70, 0x15, 0x8a, 0xd5, 0xac, 0x83, 0xa9, 0x39,
		0x9a, 0xa2, 0xc3, 0xd1, 0xb7, 0x57, 0xbe, 0x6d, 0x96, 0xb8, 0xdd, 0xaa, 0x8f, 0x9b, 0x4a, 0x4a,
		0x35, 0x05, 0x0a, 0xa6, 0xda, 0x8e, 0x15, 0x5b, 0x40, 0x1e, 0x20, 0x0f, 0x90, 0xa7, 0x3f, 0xc8,
		0x53, 0x47, 0xe2, 0x54, 0x19, 0x5e, 0x58, 0xc5, 0xe1, 0x0f, 0xc8, 0x96, 0x36, 0x92, 0x2d, 0x55,
		0x4d, 0x5d, 0x10, 0x73, 0xa3, 0xa9, 0x4f, 0x9a, 0x10, 0x2e, 0x87, 0x9e, 0xb0, 0x85, 0x37, 0x12,
		0xf6, 0x38, 0x94, 0x41, 0x42, 0x88, 0x9c, 0x37, 0x0c, 0xe1, 0x64, 0x2a, 0xc2, 0xe8, 0x2e, 0x9e,
		0x4c, 0xdd, 0x58, 0xe7, 0xf6, 0x64, 0x22, 0x3d, 0x3a, 0xc5, 0x2d, 0xb4, 0x0a, 0xb2, 0x8b, 0x4a,
		0xc1, 0x46, 0x5d, 0xb0, 0xed, 0x84, 0xd7, 0x17, 0xce, 0x30, 0x12, 0x43, 0x0e, 0xc6, 0xfb, 0x99,
		0x60, 0xe3, 0xba, 0x80, 0x9e, 0x7c, 0xc9, 0xd8, 0xc8, 0xea, 0x14, 0x7d, 0xc9, 0x93, 0x95, 0xc2,
		0x5f, 0x6f, 0xfc, 0x78, 0x8a, 0x1e, 0x1b, 0x3f, 0x0a, 0x5f, 0x02, 0xe1, 0xd9, 0x1b, 0xb0, 0xb2,
		0xf1, 0x37, 0x29, 0xc8, 0x18, 0xac, 0x21, 0xa4, 0x4f, 0xcf, 0x88, 0xaf, 0x00, 0x55, 0x80, 0x2a,
		0x40, 0x15, 0xa0, 0xaa, 0x0c, 0xaa, 0xa6, 0x03, 0x66, 0xf6, 0xa2, 0x3c, 0xa0, 0xb9, 0x6e, 0x0e,
		0xc0, 0x09, 0xe0, 0x04, 0x70, 0x02, 0x38, 0xf7, 0x02, 0x67, 0xad, 0x28, 0x59, 0xcb, 0xc9, 0x9a,
		0x55, 0x1c, 0xb4, 0x32, 0x2a, 0x69, 0x31, 0x04, 0xed, 0xac, 0x12, 0xf2, 0x47, 0x48, 0xc8, 0xcd,
		0x48, 0xc8, 0x24, 0xe9, 0x93, 0x45, 0x4d, 0x0e, 0x3d, 0x71, 0xea, 0x8d, 0xc4, 0x75, 0xfa, 0xfd,
		0x06, 0xc8, 0xca, 0xe1, 0x58, 0x44, 0xe9, 0x9c, 0x38, 0x3e, 0xb5, 0xa0, 0x3b, 0x6f, 0x0a, 0x25,
		0xdd, 0x10, 0x96, 0x3b, 0x5b, 0xd2, 0x4d, 0x5d, 0xee, 0x56, 0x97, 0x8a, 0xba, 0x23, 0x31, 0x16,
		0x4e, 0x62, 0x67, 0x37, 0x2b, 0x70, 0xd5, 0x77, 0xef, 0xb1, 0x8b, 0x52, 0x6f, 0x40, 0x0c, 0x4a,
		0xbd, 0x77, 0x22, 0xcb, 0x91, 0x11, 0xe8, 0x10, 0x4b, 0x5f, 0x8a, 0xc0, 0x15, 0x76, 0xa2, 0x32,
		0x24, 0x2b, 0x70, 0xb0, 0x6e, 0xa8, 0x2f, 0x05, 0xe0, 0xf0, 0xff, 0x56, 0xfa, 0xbf, 0x72, 0xee,
		0x7a, 0x1c, 0x85, 0xc9, 0xec, 0x92, 0x06, 0x35, 0x87, 0xc9, 0xad, 0xa2, 0x4d, 0x83, 0xd0, 0x08,
		0xa1, 0x11, 0x42, 0x23, 0x6c, 0xdc, 0xa1, 0xa8, 0x31, 0x00, 0x31, 0x16, 0x20, 0xc8, 0x79, 0x0a,
		0x1b, 0x51, 0x24, 0xe2, 0x24, 0x9c, 0x85, 0x4c, 0xf6, 0x38, 0xf4, 0xa5, 0xfb, 0x46, 0xc7, 0xb5,
		0x02, 0x9b, 0x80, 0x36, 0x40, 0x1b, 0xa0, 0xcd, 0x04, 0x9f, 0x6a, 0x2f, 0xba, 0x75, 0x5c, 0x07,
		0xa7, 0x85, 0x51, 0x16, 0x83, 0x0e, 0x7e, 0x93, 0x3d, 0x41, 0xba, 0x6e, 0x4d, 0x88, 0x51, 0x65,
		0xfc, 0x83, 0x4f, 0xb6, 0x2a, 0x30, 0x86, 0x3a, 0x6b, 0xc4, 0xaa, 0x5d, 0x8c, 0x55, 0x0b, 0xd6,
		0x3a, 0xd3, 0x71, 0xc2, 0xad, 0x96, 0x41, 0xf1, 0x40, 0xf1, 0x40, 0xf1, 0x08, 0xab, 0xa7, 0x1f,
		0x47, 0x9b, 0x53, 0xfc, 0x90, 0x9e, 0x08, 0x12, 0x39, 0x94, 0x22, 0xb2, 0x7d, 0x19, 0x27, 0x4c,
		0xa8, 0xb4, 0x69, 0x15, 0x88, 0x04, 0x44, 0x02, 0x22, 0xb5, 0x19, 0x91, 0x14, 0x47, 0x80, 0x54,
		0x16, 0x96, 0x59, 0x21, 0xb7, 0x9f, 0x5c, 0x5a, 0xd2, 0x50, 0x26, 0x96, 0x19, 0x27, 0x95, 0x8b,
		0x99, 0x1a, 0x8e, 0xcf, 0x6b, 0x07, 0x99, 0xc8, 0x26, 0xfa, 0x90, 0x76, 0x41, 0x1f, 0x21, 0x87,
		0xef, 0x2c, 0x1a, 0x89, 0x8c, 0x7f, 0x98, 0xd7, 0x92, 0x3b, 0x16, 0xd1, 0xb3, 0x88, 0x6c, 0x19,
		0x24, 0x62, 0x14, 0xc9, 0xe4, 0xcd, 0x1e, 0x47, 0xa1, 0x2b, 0x18, 0x5b, 0x3a, 0x96, 0xfd, 0x02,
		0xd4, 0xfe, 0x40, 0x4f, 0x41, 0xed, 0x0f, 0x23, 0x15, 0xd2, 0x83, 0x17, 0x49, 0x98, 0x38, 0xbe,
		0x3d, 0x0e, 0x93, 0x69, 0xc0, 0xe4, 0xf8, 0xb6, 0xeb, 0x8c, 0x1d, 0x57, 0x26, 0x6f, 0xea, 0x00,
		0xb1, 0xd5, 0x62, 0x5f, 0x14, 0x56, 0x94, 0x1b, 0xef, 0xc0, 0x83, 0x8e, 0xb5, 0x83, 0x9c, 0x2d,
		0xf6, 0x58, 0xfe, 0x87, 0xe3, 0xea, 0xbd, 0xa5, 0x2d, 0x9a, 0x5e, 0x71, 0x88, 0xf6, 0x6c, 0x50,
		0x2b, 0xda, 0xd6, 0x9e, 0x4d, 0xd5, 0x05, 0x33, 0x03, 0x93, 0x40, 0x26, 0xf4, 0x79, 0x5e, 0x2c,
		0xbf, 0xd4, 0x1a, 0x71, 0x46, 0x68, 0xf2, 0x21, 0x9b, 0x5b, 0x72, 0xba, 0xa7, 0x26, 0x37, 0xe5,
		0x76, 0x57, 0x6d, 0x6e, 0xab, 0xcd, 0x7d, 0xf5, 0xb9, 0x31, 0xcd, 0x9d, 0x89, 0x6e, 0xcd, 0x27,
		0x45, 0xe6, 0x56, 0xde, 0x82, 0x57, 0xda, 0x0c, 0xae, 0x6a, 0x31, 0x95, 0xc2, 0x64, 0xb6, 0x68,
		0x25, 0x31, 0xf4, 0x29, 0x23, 0x4c, 0x17, 0xb1, 0xc5, 0x75, 0x6e, 0x9e, 0x28, 0xad, 0xae, 0x01,
		0xa5, 0x80, 0x52, 0x40, 0xa9, 0x76, 0x28, 0x9d, 0xc8, 0x20, 0xf9, 0xf5, 0x13, 0x23, 0x86, 0x1e,
		0x31, 0x98, 0xba, 0x71, 0x82, 0xd1, 0xf4, 0xe9, 0xfe, 0xcd, 0xb2, 0x18, 0x78, 0x9c, 0xc0, 0x9a,
		0x27, 0x01, 0xd8, 0xbc, 0x8a, 0x19, 0xe0, 0x72, 0x66, 0xff, 0x39, 0xc7, 0x72, 0x6e, 0xbb, 0xdf,
		0x22, 0x27, 0xad, 0xae, 0xff, 0x2a, 0x47, 0x72, 0xd6, 0x76, 0x97, 0xcd, 0xfe, 0xcf, 0xf7, 0x8c,
		0x53, 0xe5, 0xbc, 0xb6, 0x6e, 0xaa, 0x78, 0x93, 0x82, 0xb5, 0xcf, 0xde, 0x3b, 0x33, 0xac, 0xdc,
		0x37, 0x45, 0xbc, 0x6a, 0x0d, 0x9a, 0x89, 0xb9, 0xb8, 0xcc, 0x0e, 0x3d, 0x27, 0xb7, 0x4d, 0xf5,
		0x3d, 0x20, 0xab, 0x5a, 0x16, 0x43, 0xae, 0xee, 0x6e, 0xfa, 0x10, 0xd7, 0x8b, 0x87, 0x3b, 0x99,
		0x3f, 0xdb, 0xec, 0xc7, 0xb7, 0xd3, 0x47, 0x43, 0xe5, 0xba, 0xd6, 0x55, 0xd0, 0x40, 0x7a, 0xb6,
		0x78, 0xca, 0x4d, 0x48, 0xd1, 0x26, 0x91, 0x13, 0xc4, 0x72, 0x3a, 0x4d, 0xc2, 0xb3, 0x59, 0xaf,
		0x50, 0xde, 0x6b, 0xb9, 0xe6, 0xa4, 0x2c, 0x0e, 0x64, 0x23, 0x29, 0x5b, 0x4b, 0x64, 0xd3, 0x5c,
		0x52, 0x16, 0x6d, 0xca, 0x8c, 0xbc, 0x06, 0x79, 0x12, 0x38, 0xcf, 0x8e, 0xf4, 0x9d, 0xef, 0xbe,
		0xb0, 0x13, 0xf9, 0x24, 0xd8, 0xca, 0x5f, 0xf6, 0x19, 0x46, 0xd9, 0x0b, 0x10, 0x16, 0x08, 0xcb,
		0x89, 0xb0, 0x7a, 0xf0, 0x41, 0xa5, 0xb1, 0xef, 0x12, 0x04, 0x14, 0x1a, 0x54, 0xb6, 0x96, 0x4b,
		0xa1, 0x9c, 0x45, 0x83, 0xa2, 0x6c, 0xba, 0x97, 0x2b, 0x76, 0xaa, 0x36, 0xca, 0xc7, 0x9f, 0x1d,
		0x5f, 0x7a, 0xb3, 0x73, 0xf2, 0x4f, 0xc2, 0x7d, 0x74, 0x02, 0x19, 0x3f, 0xa9, 0xfb, 0x7c, 0xa1,
		0x35, 0x1c, 0x1a, 0x06, 0x0a, 0x74, 0xf1, 0xd0, 0xf0, 0x86, 0x76, 0xe0, 0x78, 0x7f, 0x39, 0xae,
		0x08, 0xdc, 0x37, 0x7b, 0xee, 0x05, 0x82, 0xa1, 0x2b, 0x7e, 0x89, 0xef, 0xc0, 0xb1, 0x3d, 0x1c,
		0xdb, 0x6b, 0xd4, 0x3d, 0xd5, 0x95, 0x5e, 0x0b, 0xc7, 0xf6, 0xea, 0xbc, 0x23, 0x99, 0xbe, 0xd1,
		0xeb, 0xd8, 0xf0, 0x81, 0x48, 0x40, 0x24, 0x20, 0x52, 0xbf, 0x11, 0x29, 0x0a, 0xbf, 0x4f, 0xe2,
		0x24, 0x10, 0x71, 0xcc, 0x0a, 0x49, 0x2b, 0x66, 0x81, 0x49, 0xc0, 0x24, 0x60, 0x52, 0xbf, 0x30,
		0xa9, 0xa6, 0xfb, 0xdc, 0xc9, 0x8a, 0x07, 0x8e, 0xdb, 0x53, 0x27, 0xa3, 0xf9, 0xa2, 0x0e, 0x26,
		0x22, 0x4c, 0x2d, 0xe8, 0xf8, 0x67, 0xf6, 0x18, 0x17, 0xd9, 0x53, 0xe8, 0x52, 0x19, 0xdf, 0x31,
		0xce, 0xe4, 0xc2, 0x9d, 0x2a, 0x48, 0xaa, 0x6a, 0x6e, 0xb3, 0xe1, 0x2e, 0x15, 0xf6, 0x65, 0x56,
		0x37, 0x51, 0x73, 0x8f, 0xb2, 0x83, 0xa9, 0xe8, 0x0e, 0x74, 0x37, 0x18, 0x54, 0x69, 0xc2, 0x40,
		0x5a, 0xe9, 0xe5, 0x56, 0xf5, 0xfe, 0x35, 0x5a, 0x62, 0x48, 0x07, 0x95, 0xea, 0x8d, 0x96, 0xb7,
		0x00, 0x97, 0xaf, 0x25, 0xaa, 0xa8, 0x79, 0x57, 0xa6, 0x95, 0x2a, 0x34, 0x92, 0x98, 0xdf, 0x52,
		0x25, 0x89, 0x64, 0x52, 0x48, 0x26, 0x81, 0xf4, 0xfc, 0x15, 0x2f, 0x32, 0x56, 0xd5, 0xa7, 0x15,
		0x8f, 0x26, 0x91, 0x8e, 0x22, 0x21, 0x71, 0xdb, 0x5c, 0xf4, 0x83, 0xc4, 0x6d, 0x7d, 0xb1, 0x8c,
		0x69, 0xa9, 0xdb, 0x89, 0x20, 0x16, 0xc3, 0xae, 0xd8, 0x80, 0xc7, 0xc3, 0xe3, 0xe1, 0xf1, 0xf5,
		0x7b, 0xbc, 0x8e, 0x30, 0xaa, 0xb2, 0x5b, 0x23, 0x98, 0x32, 0x2b, 0x98, 0xaa, 0x88, 0xc8, 0x84,
		0x60, 0x2a, 0xf5, 0x90, 0x3a, 0x83, 0xa9, 0xd0, 0x53, 0x09, 0xa6, 0xa6, 0x9f, 0xd2, 0x1c, 0x4c,
		0x7d, 0xac, 0x2b, 0x98, 0x52, 0xd0, 0xe0, 0xbb, 0x14, 0x4e, 0x55, 0xd7, 0xd0, 0x1b, 0x0e, 0xa8,
		0x1c, 0xef, 0x49, 0x06, 0x32, 0x4e, 0x22, 0x27, 0x91, 0xcf, 0x82, 0x7a, 0xc5, 0x74, 0xa1, 0x35,
		0x90, 0x2f, 0x90, 0xaf, 0xce, 0x92, 0x2f, 0x86, 0x15, 0x6f, 0x75, 0xe9, 0xa2, 0x69, 0x67, 0x34,
		0x8a, 0xc4, 0xc8, 0x49, 0x84, 0x67, 0x6f, 0xde, 0xe6, 0xaf, 0x8e, 0x2a, 0xdb, 0x6d, 0xa2, 0xfe,
		0x16, 0xe8, 0xd2, 0xc5, 0xfa, 0xdb, 0x8d, 0x75, 0x6e, 0x2b, 0x1d, 0x57, 0x29, 0x64, 0x9a, 0x39,
		0xab, 0xa8, 0x1e, 0x41, 0xf5, 0x48, 0xa3, 0x2e, 0xa8, 0xe6, 0x8a, 0x8a, 0x2e, 0x49, 0xdf, 0xfa,
		0x73, 0xab, 0xc7, 0x17, 0xce, 0x30, 0x12, 0x43, 0x8e, 0xf2, 0x91, 0xcf, 0x04, 0x1b, 0xd7, 0x05,
		0xd1, 0xf8, 0x97, 0x2c, 0xf8, 0x5e, 0x9d, 0xa2, 0x2f, 0xf9, 0xd8, 0xbc, 0xf0, 0xd7, 0x1b, 0x3f,
		0x9e, 0xa2, 0xc7, 0xc6, 0x8f, 0xc2, 0x97, 0x20, 0xbf, 0x29, 0x6f, 0xfc, 0x4d, 0x0a, 0x32, 0x06,
		0x97, 0xea, 0xa5, 0x4f, 0xcf, 0x88, 0xaf, 0x00, 0x55, 0x80, 0x2a, 0x40, 0x15, 0xa0, 0xaa, 0x0c,
		0xaa, 0xa6, 0x03, 0x66, 0xf6, 0xa2, 0x3c, 0xa0, 0xb9, 0x6e, 0x0e, 0xc0, 0x09, 0xe0, 0x04, 0x70,
		0x02, 0x38, 0xf7, 0x02, 0x67, 0xad, 0x28, 0x59, 0x47, 0xb5, 0xf5, 0x1a, 0x0e, 0x5a, 0x19, 0x95,
		0xb4, 0x18, 0x82, 0x76, 0xd6, 0x2a, 0xec, 0x0f, 0xa8, 0xc2, 0xae, 0xbb, 0x0a, 0x3b, 0x25, 0x09,
		0x6c, 0x2a, 0xa8, 0x45, 0x4c, 0xaa, 0x86, 0x9e, 0x78, 0x38, 0xce, 0x1e, 0x66, 0xfa, 0x9f, 0xa7,
		0xde, 0x48, 0x5c, 0xa7, 0x4f, 0x62, 0x82, 0x02, 0x9d, 0xb5, 0x67, 0xa2, 0x5f, 0x65, 0x54, 0x60,
		0x0b, 0x97, 0x18, 0x41, 0x6f, 0xc6, 0x25, 0x46, 0xbb, 0xe8, 0x3c, 0x2e, 0x31, 0xc2, 0x25, 0x46,
		0x7c, 0x4c, 0x1e, 0x97, 0x18, 0x11, 0x96, 0x1f, 0x2e, 0x31, 0xaa, 0xd3, 0x4d, 0xb9, 0xdd, 0x55,
		0x9b, 0xdb, 0x6a, 0x73, 0x5f, 0x7d, 0x6e, 0x4c, 0x73, 0x67, 0xa2, 0x5b, 0xf3, 0x85, 0xe9, 0xb9,
		0x95, 0x87, 0x4b, 0x8c, 0xf4, 0x4c, 0x17, 0x2e, 0x31, 0x02, 0x94, 0x02, 0x4a, 0x7b, 0x05, 0xa5,
		0xb8, 0xc4, 0xa8, 0xa2, 0xa8, 0x87, 0x4b, 0x8c, 0x70, 0x89, 0x11, 0x2e, 0x31, 0xe2, 0x87, 0x46,
		0x3e, 0x2b, 0xb8, 0xc4, 0xa8, 0x8a, 0x1d, 0x06, 0x8d, 0x3d, 0xa7, 0xf7, 0x36, 0x7e, 0x7d, 0xd1,
		0x4c, 0x6e, 0x5f, 0x3c, 0x17, 0x6e, 0x2e, 0xaa, 0x6f, 0xea, 0x9b, 0x48, 0xab, 0x6c, 0xce, 0xb3,
		0x09, 0x09, 0x15, 0x37, 0x8c, 0x13, 0xb6, 0xeb, 0x33, 0x8a, 0x8c, 0xa1, 0x88, 0x5f, 0x7b, 0x1c,
		0x84, 0x22, 0x7e, 0x75, 0x6c, 0x52, 0x4e, 0xab, 0xa4, 0x6b, 0xdd, 0xf1, 0x47, 0x61, 0x24, 0x93,
		0x47, 0x86, 0x86, 0xb4, 0x1b, 0xf6, 0x50, 0x2a, 0x85, 0x52, 0xa9, 0x46, 0xdd, 0xae, 0x19, 0xb6,
		0x88, 0x56, 0xb4, 0x0a, 0x28, 0xa4, 0xd4, 0x49, 0xa5, 0x18, 0x80, 0x14, 0x1a, 0xaa, 0x00, 0x7b,
		0x80, 0x3d, 0xc0, 0x9e, 0xbe, 0x62, 0x0f, 0x2d, 0x13, 0xb3, 0x0e, 0x3e, 0x94, 0x34, 0x0c, 0xd0,
		0x07, 0xe8, 0x03, 0xf4, 0x41, 0xc3, 0xeb, 0xe2, 0xc5, 0x4b, 0xe1, 0x37, 0xe8, 0x72, 0xdd, 0x01,
		0x01, 0x90, 0xae, 0x4c, 0x71, 0x28, 0x80, 0x27, 0x61, 0x9c, 0x9c, 0xac, 0x3f, 0x84, 0x01, 0x12,
		0xa0, 0x27, 0x7c, 0xf9, 0x2c, 0xa2, 0x37, 0x3b, 0x9c, 0xae, 0x09, 0x36, 0x31, 0x70, 0xb7, 0x59,
		0xdc, 0xa4, 0x0b, 0x59, 0x10, 0x37, 0xe9, 0x32, 0xee, 0xbe, 0x7a, 0xb0, 0x41, 0x04, 0xae, 0x33,
		0x5e, 0xce, 0x92, 0x32, 0x18, 0x6c, 0xd8, 0x41, 0x52, 0x00, 0xde, 0xdf, 0xc5, 0xa4, 0x00, 0x4e,
		0x4f, 0x23, 0x30, 0x46, 0x60, 0x6c, 0x6a, 0x60, 0x8c, 0xd3, 0xd3, 0x6d, 0x0b, 0xdd, 0x9b, 0x0f,
		0x1c, 0x49, 0xc4, 0x85, 0x23, 0x66, 0x3c, 0x9d, 0x3e, 0xc0, 0x9d, 0x92, 0xcf, 0x6a, 0xa2, 0x84,
		0x51, 0x14, 0xf2, 0x45, 0x89, 0x85, 0xd6, 0x10, 0x1c, 0x82, 0x1e, 0x22, 0x38, 0x34, 0x3e, 0x38,
		0xf4, 0x9d, 0x24, 0xbd, 0xd2, 0x9d, 0x0b, 0x0b, 0xb6, 0xd8, 0x43, 0xb0, 0x08, 0x34, 0xe8, 0x62,
		0xb0, 0x38, 0x94, 0xaf, 0xc2, 0xb3, 0x99, 0x9c, 0x28, 0xb7, 0xa4, 0x76, 0x5a, 0x6f, 0x38, 0x94,
		0xfc, 0x88, 0x50, 0x12, 0xa1, 0x64, 0xab, 0x43, 0xc9, 0x7e, 0x54, 0x78, 0xfc, 0x25, 0x93, 0x84,
		0x9e, 0x11, 0xca, 0x0d, 0x5e, 0xb1, 0x59, 0x60, 0x12, 0x30, 0x09, 0x98, 0x04, 0x4c, 0xda, 0xf3,
		0x8c, 0x7f, 0x4f, 0x84, 0x0c, 0x46, 0xda, 0x68, 0xd3, 0x6e, 0xf3, 0x90, 0xe0, 0x81, 0x51, 0xc0,
		0x28, 0x60, 0xd4, 0x9e, 0x67, 0x4c, 0x22, 0x67, 0x38, 0x94, 0xae, 0x3d, 0x8e, 0xc2, 0xb1, 0x88,
		0x92, 0x37, 0xa6, 0x0a, 0xfd, 0x62, 0xb3, 0xc0, 0x24, 0x60, 0x12, 0x30, 0x09, 0x98, 0xb4, 0xe7,
		0x19, 0x5f, 0x9c, 0xc0, 0xd3, 0x10, 0xcb, 0x15, 0x9b, 0x45, 0x2c, 0x07, 0x4c, 0x02, 0x26, 0xf5,
		0x0b, 0x93, 0x6a, 0x69, 0xa3, 0xce, 0xc0, 0x80, 0x50, 0xcf, 0x4f, 0x9e, 0x8d, 0xe6, 0xcb, 0x32,
		0xd8, 0xe2, 0x73, 0x6a, 0x79, 0xc6, 0xf9, 0xec, 0x41, 0xcc, 0xab, 0xea, 0xf7, 0x9d, 0x37, 0x11,
		0x4d, 0x1d, 0x25, 0x09, 0xdd, 0xd0, 0x57, 0x8b, 0x40, 0x56, 0x32, 0xb3, 0x79, 0x63, 0x28, 0xd2,
		0xd0, 0xbe, 0x77, 0x23, 0x2d, 0xab, 0x8e, 0x51, 0xf4, 0x22, 0x0d, 0xfa, 0xa2, 0xb7, 0x1a, 0xba,
		0xfc, 0x17, 0x1b, 0x22, 0x75, 0x43, 0xd4, 0x03, 0xc9, 0x72, 0x28, 0xdc, 0x37, 0xd7, 0x27, 0xdf,
		0xc4, 0xbe, 0x69, 0xa8, 0x2f, 0x50, 0x8c, 0x6b, 0x2b, 0x76, 0x00, 0x71, 0x57, 0x2f, 0x61, 0xa7,
		0x2d, 0x76, 0xab, 0x4b, 0xf7, 0xaf, 0xfb, 0x61, 0x1c, 0xf3, 0x55, 0xdb, 0x15, 0x18, 0x03, 0xa7,
		0x03, 0x94, 0xa0, 0xf0, 0x96, 0x51, 0x4f, 0xd1, 0x83, 0x03, 0xb4, 0x60, 0x8e, 0x10, 0xbd, 0x29,
		0x17, 0xd5, 0x7e, 0x00, 0x65, 0x00, 0x65, 0x28, 0xf9, 0x98, 0xca, 0x05, 0xb5, 0x4c, 0xbd, 0x88,
		0xd0, 0x86, 0x08, 0xf7, 0x5b, 0x59, 0xcd, 0x3a, 0x98, 0x9a, 0xa3, 0x29, 0x3a, 0x1c, 0x7d, 0x7b,
		0xe5, 0xdb, 0x66, 0x89, 0xdb, 0xad, 0xfa, 0xb8, 0xa9, 0xa4, 0x54, 0x53, 0xa0, 0x60, 0xaa, 0xed,
		0x58, 0xb1, 0x05, 0xe4, 0x01, 0xf2, 0x00, 0x79, 0xfa, 0x83, 0x3c, 0x75, 0x24, 0x4e, 0x95, 0xe1,
		0x05, 0xb7, 0x4b, 0x93, 0xa7, 0xa0, 0xf9, 0x6c, 0xa9, 0x6a, 0xea, 0x82, 0x98, 0x1b, 0x4d, 0x7d,
		0xd2, 0x84, 0x70, 0x39, 0xf4, 0x84, 0x1d, 0x4d, 0x7c, 0x61, 0x8f, 0xa2, 0x70, 0x32, 0x26, 0x44,
		0xce, 0x1b, 0x86, 0xfa, 0x12, 0x44, 0x43, 0x2e, 0x6b, 0xa5, 0x5c, 0xa6, 0x1c, 0x48, 0x33, 0xdc,
		0xb2, 0x9e, 0x5b, 0x48, 0x2c, 0x57, 0xb0, 0x58, 0x9c, 0x57, 0x48, 0x7f, 0x04, 0xd1, 0x05, 0xd1,
		0x6d, 0xdb, 0x15, 0xd2, 0x0c, 0xb7, 0xb9, 0xe7, 0x17, 0x21, 0xc7, 0x2d, 0x58, 0x0c, 0xae, 0xc9,
		0x16, 0x8b, 0x72, 0xba, 0xaa, 0x26, 0x97, 0xe5, 0x76, 0x5d, 0x6d, 0x2e, 0xac, 0xcd, 0x95, 0xf5,
		0xb9, 0x34, 0xcd, 0xb5, 0x89, 0x2e, 0xce, 0xe6, 0xea, 0x99, 0x21, 0x96, 0x5b, 0xe3, 0x73, 0xcb,
		0x98, 0xe9, 0x4a, 0x6a, 0x8b, 0xff, 0xba, 0x49, 0x36, 0xf7, 0xd7, 0x01, 0x03, 0x9a, 0xe1, 0x40,
		0x17, 0x2c, 0x68, 0x87, 0x07, 0xed, 0x30, 0xa1, 0x1f, 0x2e, 0x78, 0x60, 0x83, 0x09, 0x3e, 0xf8,
		0xa4, 0xb1, 0xad, 0x2b, 0x97, 0xfb, 0x76, 0xfa, 0x1c, 0x0b, 0xf8, 0xc4, 0x68, 0x93, 0xe7, 0xb6,
		0x7a, 0xbe, 0x29, 0x66, 0x98, 0x5e, 0xa6, 0x5b, 0xec, 0x73, 0xf3, 0xca, 0x71, 0x9b, 0x3d, 0xa0,
		0x1d, 0xd0, 0x0e, 0x68, 0x6f, 0x2d, 0xb4, 0xb3, 0xdd, 0x96, 0xbf, 0x89, 0x03, 0x47, 0x8c, 0x26,
		0x79, 0x6f, 0xcf, 0x5f, 0xfc, 0xe3, 0x75, 0x2a, 0x4b, 0xd7, 0x6d, 0xfa, 0x9a, 0x00, 0x36, 0x67,
		0x5e, 0xd3, 0xed, 0xfa, 0x99, 0x7d, 0x8d, 0xf7, 0xb4, 0x33, 0xbb, 0xdb, 0xfa, 0x94, 0x6a, 0xb8,
		0x75, 0xbf, 0xee, 0x29, 0xd5, 0x7f, 0x0b, 0x7f, 0xad, 0xb3, 0xfc, 0xce, 0x4c, 0x6b, 0xf7, 0xa6,
		0x10, 0xce, 0x46, 0xc5, 0x0c, 0xa6, 0x5b, 0xfc, 0x33, 0x7b, 0x0c, 0x39, 0xcd, 0xf5, 0x5c, 0x9c,
		0xb6, 0xdb, 0xfd, 0x97, 0x8f, 0x4c, 0x4c, 0x86, 0x86, 0x9e, 0xb8, 0x99, 0xf8, 0xe2, 0xf7, 0xe9,
		0xd3, 0xf2, 0xdf, 0xf9, 0x4f, 0x5f, 0x26, 0xf5, 0x0a, 0xe1, 0x4c, 0x0b, 0xaa, 0x96, 0x85, 0x44,
		0xc9, 0xcc, 0xe8, 0x5d, 0x35, 0x03, 0xa3, 0xaf, 0x07, 0x7d, 0x1a, 0x87, 0xb1, 0xf0, 0x28, 0x99,
		0xf7, 0xbc, 0x66, 0x51, 0x60, 0x14, 0x69, 0x44, 0x34, 0x1b, 0x61, 0x88, 0x35, 0xdb, 0xd6, 0x6c,
		0x84, 0x9c, 0x4a, 0xdc, 0x00, 0x3e, 0xda, 0x9d, 0x45, 0xb9, 0x25, 0x59, 0x68, 0x9d, 0x27, 0xbd,
		0xf8, 0xa1, 0xf3, 0xe9, 0x45, 0x06, 0x57, 0xd6, 0x25, 0x37, 0x75, 0x21, 0xc1, 0x48, 0x77, 0x75,
		0x33, 0x58, 0x39, 0x9b, 0x80, 0xc4, 0x78, 0x45, 0x52, 0x6e, 0x7f, 0xfd, 0xcc, 0x60, 0x4b, 0xfb,
		0x95, 0x49, 0x29, 0x13, 0xcc, 0xff, 0x68, 0x95, 0x17, 0x72, 0xdd, 0xb1, 0xc4, 0xc0, 0xd4, 0xdf,
		0x13, 0x41, 0x5f, 0x03, 0xd2, 0x03, 0xde, 0x01, 0xef, 0x80, 0x77, 0xc0, 0x7b, 0x6b, 0xe0, 0xbd,
		0xad, 0x00, 0xce, 0x73, 0xc5, 0x68, 0x1e, 0x97, 0x18, 0xae, 0x1a, 0x05, 0x90, 0x03, 0xc8, 0x01,
		0xe4, 0x00, 0x72, 0x23, 0xaf, 0x36, 0x65, 0x40, 0xed, 0x5a, 0xe5, 0x9d, 0x45, 0xc7, 0xd3, 0x55,
		0x5c, 0xb6, 0x32, 0xaa, 0x6d, 0x31, 0xca, 0x2b, 0xb4, 0x23, 0x7e, 0x99, 0x15, 0xf2, 0x51, 0xbf,
		0xa5, 0x25, 0x0d, 0x47, 0xfe, 0x32, 0xe3, 0xa4, 0xa3, 0x7f, 0xd4, 0x49, 0x35, 0x37, 0xeb, 0xc1,
		0x27, 0xac, 0x5b, 0xec, 0x69, 0x8f, 0x93, 0xf9, 0xb3, 0x65, 0x3f, 0x31, 0x3b, 0xed, 0x11, 0x27,
		0xec, 0x5d, 0xd6, 0x8b, 0x8c, 0x22, 0xed, 0x81, 0xb4, 0x87, 0x11, 0x1c, 0xab, 0x65, 0x69, 0x8f,
		0xd4, 0x97, 0x1c, 0x7f, 0x14, 0x46, 0x32, 0x79, 0x7c, 0xe2, 0x8b, 0xa0, 0x36, 0xec, 0x22, 0x84,
		0x42, 0x08, 0x85, 0x10, 0xca, 0xe0, 0x10, 0x8a, 0xdc, 0x29, 0x24, 0xb7, 0xa5, 0x1e, 0xb5, 0x50,
		0x4e, 0x4a, 0x51, 0x8b, 0xd4, 0xc2, 0xa8, 0x18, 0x08, 0x09, 0x9d, 0x8c, 0x80, 0x81, 0xc0, 0x40,
		0x60, 0x20, 0x30, 0xb0, 0x5e, 0x0c, 0xe4, 0x39, 0x8c, 0xb5, 0x0e, 0x82, 0x1c, 0x27, 0xb1, 0x80,
		0x82, 0x40, 0x41, 0xa0, 0x20, 0x50, 0xd0, 0xc0, 0x50, 0x7c, 0x2e, 0x51, 0x53, 0xf9, 0x9e, 0x16,
		0xfd, 0xf9, 0x10, 0xfa, 0x73, 0x11, 0x28, 0x18, 0xac, 0x3f, 0x73, 0x29, 0x9c, 0x96, 0x06, 0xfd,
		0x39, 0x4e, 0x28, 0x17, 0x7c, 0xa9, 0x7b, 0xa7, 0x8a, 0x00, 0x2d, 0x83, 0x44, 0x44, 0xac, 0x45,
		0xf7, 0x39, 0x8b, 0x90, 0x9e, 0x21, 0x3d, 0x1b, 0xc1, 0x48, 0x5a, 0x26, 0x3d, 0x3b, 0x71, 0x1c,
		0xba, 0xd2, 0x49, 0x84, 0x67, 0x53, 0x7b, 0x52, 0x6e, 0x5d, 0x98, 0x3b, 0xbe, 0xc3, 0xb0, 0xe6,
		0x5e, 0x1f, 0x11, 0x88, 0x20, 0x10, 0x69, 0x71, 0x20, 0xc2, 0xd6, 0xe0, 0x4b, 0xcb, 0x41, 0x9c,
		0xdc, 0xd2, 0xd6, 0x70, 0x20, 0x87, 0x59, 0xa3, 0x60, 0xd7, 0x2a, 0x74, 0x40, 0x85, 0x76, 0xc8,
		0xd0, 0x05, 0x1d, 0xda, 0x21, 0x44, 0x3b, 0x94, 0xd4, 0x01, 0x29, 0x3c, 0xd0, 0xc2, 0x04, 0x31,
		0xfc, 0x9a, 0x47, 0x6e, 0xf5, 0xf2, 0x15, 0x12, 0xe6, 0x78, 0xc2, 0x67, 0x46, 0x9b, 0x5d, 0x3c,
		0x00, 0xc4, 0xb7, 0xd4, 0x38, 0x9a, 0x91, 0xf1, 0x1d, 0x0c, 0x2a, 0xde, 0x79, 0xb0, 0xdd, 0x60,
		0xbb, 0xc1, 0x76, 0x83, 0xed, 0x06, 0xdb, 0x8d, 0xb6, 0x03, 0x49, 0x66, 0x6d, 0x28, 0xbc, 0x07,
		0x95, 0xf2, 0x38, 0xc8, 0x78, 0x60, 0x09, 0x1b, 0x0b, 0x36, 0x16, 0x6c, 0x2c, 0xd8, 0x58, 0x3a,
		0xb0, 0xb1, 0x18, 0xb5, 0x8b, 0x34, 0x2a, 0xcf, 0xd5, 0x77, 0x80, 0x2a, 0xfb, 0x4a, 0x96, 0x44,
		0x76, 0x66, 0x6d, 0x3d, 0xa1, 0xfd, 0x91, 0x61, 0x4b, 0xd6, 0x99, 0xd8, 0xce, 0xbe, 0x84, 0x25,
		0xc1, 0xcd, 0xb5, 0x08, 0xcc, 0xef, 0x5b, 0xb8, 0x99, 0x5c, 0x3d, 0xd0, 0x96, 0xc0, 0xb1, 0xd8,
		0x13, 0xe3, 0x67, 0xd3, 0x67, 0x5f, 0x69, 0x4f, 0x97, 0x3d, 0xf9, 0xda, 0x9f, 0xb5, 0xf1, 0x94,
		0x3d, 0xe3, 0x0d, 0x58, 0xb9, 0xad, 0x8a, 0xb5, 0xc1, 0xa0, 0xd5, 0xab, 0xcc, 0x1c, 0xae, 0xdd,
		0xc1, 0xb5, 0x3b, 0x7b, 0x5e, 0x8b, 0x2d, 0x2b, 0xc7, 0x78, 0xd3, 0x56, 0x41, 0xf0, 0xca, 0xd8,
		0x99, 0x96, 0x11, 0x02, 0x5a, 0x1c, 0xb9, 0xe2, 0x9e, 0x86, 0x06, 0xe3, 0xd6, 0x6e, 0xdf, 0xd3,
		0xc0, 0x05, 0x29, 0x99, 0x41, 0xd6, 0x1b, 0xbd, 0x72, 0xee, 0xc0, 0x7c, 0x9d, 0x8f, 0xa5, 0xaf,
		0xa5, 0x3d, 0x3b, 0xcc, 0xe8, 0x84, 0x9b, 0x9a, 0x60, 0x47, 0x37, 0xfc, 0xd4, 0x06, 0x43, 0xb5,
		0xc1, 0x51, 0x7d, 0xb0, 0xc4, 0x0b, 0x4f, 0xcc, 0x30, 0xa5, 0x4f, 0x64, 0xcb, 0xad, 0x7c, 0x5d,
		0x37, 0x87, 0xe5, 0xd8, 0xcc, 0x27, 0x0d, 0xb6, 0x79, 0x6f, 0x12, 0xe3, 0x5f, 0x12, 0x8c, 0xcb,
		0x81, 0xf9, 0x86, 0xb1, 0xdc, 0x3a, 0xe0, 0xbc, 0x69, 0x0c, 0x5b, 0x0d, 0xb6, 0x1a, 0x6c, 0x35,
		0xd8, 0x6a, 0x36, 0xc9, 0x2c, 0xf7, 0x4d, 0x66, 0x9b, 0x38, 0x73, 0xa4, 0xc1, 0xb4, 0x9e, 0x9b,
		0xcd, 0x16, 0xff, 0xf4, 0x38, 0xa9, 0xa5, 0xfb, 0xa6, 0x33, 0xcd, 0x00, 0x9f, 0xfb, 0x1a, 0xcd,
		0x37, 0x9f, 0x65, 0xdf, 0x53, 0xc3, 0xdd, 0x58, 0x9a, 0xdc, 0x77, 0x7d, 0xea, 0x35, 0xde, 0x88,
		0xd6, 0xd4, 0xd4, 0xd7, 0x77, 0x43, 0x5a, 0x23, 0xab, 0xe1, 0x5d, 0x3b, 0xac, 0xde, 0x9b, 0x4a,
		0xb4, 0x8d, 0x12, 0x99, 0x98, 0x33, 0x95, 0x99, 0xdd, 0x3a, 0x32, 0x96, 0x9a, 0xaf, 0x5e, 0x5b,
		0xbe, 0x8b, 0xce, 0xe4, 0xa5, 0xae, 0x1b, 0xd9, 0xf8, 0x96, 0x1b, 0xae, 0x00, 0x24, 0x2f, 0x4c,
		0xe3, 0x53, 0xe8, 0x3c, 0x37, 0xbc, 0xd1, 0x57, 0x0c, 0xb9, 0x9f, 0x0e, 0x53, 0x0b, 0xd4, 0xbc,
		0xf6, 0xc4, 0xda, 0x28, 0xc0, 0xc2, 0xc1, 0x56, 0x33, 0x34, 0x03, 0x1c, 0x6c, 0x35, 0x07, 0xe9,
		0xd9, 0x52, 0xe8, 0xcc, 0xad, 0x56, 0x8b, 0xb1, 0x80, 0xab, 0xe5, 0xaa, 0xa6, 0x20, 0x05, 0x45,
		0xe0, 0x16, 0x92, 0xe9, 0x0d, 0xc1, 0x88, 0x99, 0x91, 0x8e, 0xbe, 0x22, 0x70, 0xb6, 0x46, 0x5e,
		0x39, 0x6a, 0x70, 0xd4, 0xa1, 0x83, 0x39, 0x7c, 0x2d, 0x5f, 0x8b, 0x01, 0x99, 0xa1, 0xf5, 0x2b,
		0xb0, 0x18, 0x58, 0x0c, 0x2c, 0x06, 0x16, 0xf7, 0x03, 0x8b, 0x79, 0xb3, 0xf4, 0xfc, 0x2d, 0x68,
		0x81, 0xc6, 0x40, 0x63, 0xa0, 0x31, 0xd0, 0xd8, 0x6c, 0x34, 0x36, 0xe1, 0xb0, 0x21, 0xdb, 0xd5,
		0x07, 0x3a, 0x4f, 0x12, 0x1e, 0xe2, 0x24, 0xa1, 0x0a, 0x18, 0xb5, 0x2f, 0xfd, 0xc1, 0x2f, 0x95,
		0x5b, 0xba, 0xf3, 0x1f, 0x5c, 0xad, 0x76, 0xe9, 0xa8, 0x40, 0x49, 0x80, 0xf8, 0x4e, 0x22, 0x02,
		0xf7, 0x4d, 0x5b, 0x0e, 0x64, 0x8b, 0x7d, 0xa4, 0x41, 0x6a, 0x67, 0x71, 0x48, 0x83, 0x20, 0x0d,
		0xb2, 0xd7, 0xd0, 0x50, 0xbe, 0x0a, 0xcf, 0xd6, 0x04, 0x0a, 0xb9, 0x25, 0xbe, 0xf3, 0xdb, 0x0c,
		0x0f, 0x04, 0x3f, 0x22, 0x10, 0x44, 0x20, 0x88, 0x40, 0x10, 0x81, 0x60, 0xc3, 0xb2, 0xdc, 0x5f,
		0x32, 0x99, 0x72, 0x69, 0xdd, 0x50, 0x5d, 0xfc, 0x35, 0xc0, 0x68, 0x60, 0x34, 0x30, 0x1a, 0x18,
		0x0d, 0x8c, 0xde, 0xf9, 0x4e, 0x7f, 0x4f, 0x84, 0x0c, 0x46, 0xb5, 0xd1, 0xea, 0xdd, 0x5f, 0x87,
		0x04, 0x0b, 0x30, 0x1b, 0x98, 0x0d, 0xcc, 0x06, 0x66, 0xef, 0x7c, 0xa7, 0x24, 0x72, 0x86, 0x43,
		0xe9, 0xda, 0xe3, 0x28, 0x1c, 0x8b, 0x28, 0x79, 0xd3, 0x54, 0x86, 0x54, 0xfc, 0x35, 0xc0, 0x68,
		0x60, 0x34, 0x30, 0x1a, 0x18, 0x0d, 0x8c, 0xde, 0xf9, 0x4e, 0x2f, 0x4e, 0xe0, 0xd5, 0xa0, 0x7d,
		0x14, 0x7f, 0x0d, 0xb4, 0x0f, 0x60, 0x34, 0x30, 0x1a, 0x18, 0x8d, 0x42, 0x25, 0x3d, 0x33, 0x98,
		0x75, 0x45, 0xd7, 0xc0, 0x90, 0x51, 0xb4, 0x84, 0xa2, 0x25, 0x7a, 0xd1, 0x92, 0x36, 0x81, 0x4d,
		0x6b, 0xdd, 0xd2, 0xf9, 0xec, 0xa9, 0xdb, 0x5f, 0xba, 0xc4, 0x12, 0x90, 0x2f, 0x6f, 0x7e, 0x63,
		0x40, 0x15, 0xee, 0xb2, 0xa4, 0x0f, 0x68, 0x6e, 0x6e, 0x0a, 0x43, 0x43, 0x73, 0xf3, 0x8a, 0xaf,
		0xc5, 0x56, 0x92, 0xa4, 0xe9, 0xc8, 0x09, 0x4e, 0x9b, 0x18, 0x09, 0x08, 0x08, 0xe1, 0x9a, 0x03,
		0x0c, 0x04, 0x70, 0x10, 0xd9, 0xb6, 0xe0, 0xaf, 0xa6, 0xec, 0xc7, 0x8a, 0x6d, 0x20, 0x31, 0x90,
		0x18, 0x48, 0x0c, 0x24, 0x86, 0x94, 0xa6, 0x4f, 0x4a, 0x63, 0x83, 0x5b, 0xad, 0xfa, 0xd9, 0x07,
		0xe8, 0x67, 0xfd, 0xd0, 0xcf, 0x98, 0xf6, 0x7d, 0xad, 0x6a, 0x59, 0x8a, 0x50, 0x2d, 0x14, 0xc7,
		0x22, 0x19, 0xff, 0xd0, 0x76, 0xa8, 0xaf, 0xc8, 0x38, 0x4e, 0xf4, 0x95, 0xe3, 0x67, 0x38, 0xd1,
		0x87, 0x13, 0x7d, 0x75, 0xca, 0x67, 0x05, 0xbe, 0xaa, 0x29, 0x98, 0xdb, 0xfa, 0x4d, 0x08, 0xed,
		0x8c, 0x83, 0x0e, 0x04, 0x77, 0x4d, 0x42, 0x0b, 0xc2, 0x3b, 0x08, 0x6d, 0x5b, 0x90, 0x5a, 0x7a,
		0x22, 0x48, 0xe4, 0x50, 0x8a, 0xc8, 0xf6, 0x65, 0x9c, 0x68, 0x42, 0xe9, 0xcd, 0x6f, 0x01, 0x42,
		0x03, 0xa1, 0x81, 0xd0, 0x40, 0x68, 0x73, 0x11, 0x9a, 0x69, 0x04, 0x59, 0x75, 0xab, 0x2d, 0xfa,
		0xd5, 0x21, 0xe3, 0x28, 0xd6, 0xa1, 0x63, 0xe9, 0xd1, 0xb3, 0x3a, 0x26, 0x9d, 0x6a, 0x0a, 0x6e,
		0x50, 0x88, 0x08, 0x21, 0x95, 0x2e, 0xa4, 0xf2, 0xeb, 0x71, 0xda, 0x75, 0xd5, 0x1b, 0x19, 0xff,
		0x68, 0x7f, 0x09, 0xe2, 0x74, 0x0e, 0x18, 0x65, 0xd5, 0xa9, 0x35, 0xe8, 0xa8, 0xd0, 0x51, 0xa1,
		0xa3, 0x9a, 0xa7, 0xa3, 0xba, 0x62, 0x6c, 0x7b, 0x32, 0x12, 0x2e, 0xeb, 0xbd, 0x77, 0xcb, 0x0e,
		0xd8, 0x6b, 0xe6, 0x71, 0xb6, 0x0c, 0xf1, 0x38, 0xe2, 0xf1, 0x1e, 0xc7, 0xe3, 0xe3, 0x30, 0x4a,
		0xd8, 0xf1, 0x60, 0x8d, 0x20, 0x7c, 0x62, 0xb4, 0x79, 0x1a, 0x4c, 0xd2, 0x2b, 0xb3, 0x7e, 0xf6,
		0x2e, 0xd6, 0xff, 0x80, 0x58, 0x9f, 0x37, 0xd6, 0x7f, 0xcf, 0xb3, 0x53, 0xa7, 0xfe, 0x13, 0x85,
		0xbe, 0xd0, 0xb3, 0x53, 0x2f, 0xcd, 0xf3, 0xee, 0xd4, 0x87, 0xd8, 0xa9, 0xb1, 0x53, 0x63, 0xa7,
		0xe6, 0xdf, 0x0b, 0xb8, 0xc2, 0x80, 0xcc, 0x20, 0x3f, 0xc0, 0x14, 0x73, 0x00, 0x46, 0x90, 0xd1,
		0x14, 0x16, 0x68, 0x03, 0x1d, 0x9d, 0xe0, 0x53, 0x1b, 0x08, 0xe9, 0x06, 0xa3, 0xda, 0x40, 0xa9,
		0x36, 0x70, 0xaa, 0x13, 0xa4, 0x78, 0xc1, 0x8a, 0x19, 0xb4, 0xf4, 0x85, 0x19, 0xb5, 0x41, 0x8d,
		0xc5, 0x9f, 0x09, 0xd4, 0x35, 0xc8, 0x5a, 0xa2, 0x05, 0xfd, 0x51, 0x43, 0x23, 0xd1, 0x83, 0xde,
		0x28, 0x82, 0xdf, 0x29, 0x19, 0xd7, 0xca, 0xd2, 0x55, 0x6c, 0x16, 0xf1, 0x7f, 0xbf, 0x4b, 0xda,
		0x0c, 0x69, 0x01, 0x50, 0x00, 0x50, 0x00, 0x50, 0x00, 0x50, 0x80, 0xd2, 0x78, 0x63, 0x87, 0x63,
		0x66, 0xe1, 0x31, 0x47, 0x07, 0x74, 0xec, 0x47, 0x67, 0x69, 0x5d, 0x63, 0xf2, 0xf6, 0x9b, 0x13,
		0x6b, 0xf4, 0xb3, 0xc5, 0x90, 0x5d, 0x5f, 0xdd, 0xdc, 0x3d, 0xdc, 0x5c, 0x9d, 0x9f, 0x3e, 0xdc,
		0xfc, 0x79, 0x7e, 0xfa, 0x70, 0x75, 0x7d, 0x77, 0x76, 0x75, 0xa9, 0xcb, 0xe7, 0xfe, 0xe9, 0xf8,
		0x13, 0x31, 0xdd, 0xda, 0xff, 0xad, 0xc5, 0xfe, 0xf4, 0xdf, 0xff, 0x69, 0xb3, 0xbc, 0x7f, 0xd8,
		0x1e, 0xbe, 0x9e, 0x7d, 0xfb, 0x76, 0x7a, 0x73, 0x7a, 0x39, 0xfb, 0xd5, 0x40, 0xdb, 0xa3, 0xfc,
		0x7c, 0xdf, 0xcd, 0xf1, 0xbb, 0xbc, 0xc2, 0xc8, 0xa9, 0x8d, 0xdc, 0xf1, 0xe5, 0xbf, 0x30, 0x72,
		0x4a, 0x23, 0x77, 0x7b, 0x7c, 0x71, 0xaa, 0x7b, 0xe8, 0xb4, 0x58, 0xbe, 0xef, 0x19, 0x7d, 0x40,
		0x70, 0xdb, 0xe1, 0xe0, 0x16, 0x49, 0xd7, 0x96, 0xac, 0x2c, 0x4d, 0x49, 0x57, 0xae, 0x12, 0x30,
		0xde, 0xba, 0xd7, 0xcc, 0x6e, 0x1d, 0xf5, 0xaf, 0x13, 0x5f, 0x1c, 0xe8, 0xc8, 0xcb, 0x5a, 0xda,
		0xcb, 0x60, 0x27, 0xbe, 0x78, 0x38, 0x11, 0xe3, 0xeb, 0x30, 0x4a, 0x6e, 0xa6, 0xcf, 0xdd, 0xa5,
		0x3c, 0x7c, 0xf8, 0x34, 0xf6, 0xc5, 0x2b, 0xaf, 0x4e, 0xb6, 0x4c, 0xc3, 0xaf, 0x5a, 0x47, 0xbd,
		0x9c, 0xb1, 0xea, 0x17, 0xb2, 0xf0, 0x4d, 0xaa, 0x5b, 0x38, 0xbf, 0x46, 0x95, 0xa9, 0x8e, 0x40,
		0xaf, 0xfa, 0x4d, 0xaf, 0x0c, 0xd9, 0x4b, 0x83, 0x60, 0x56, 0x0b, 0x6a, 0xc7, 0x63, 0xe1, 0xda,
		0x91, 0x18, 0x8a, 0x48, 0x04, 0xae, 0x96, 0x8d, 0x75, 0xdb, 0x57, 0xa1, 0xd6, 0x0d, 0xbb, 0x2c,
		0x76, 0x59, 0xe3, 0x77, 0x59, 0xf6, 0x5a, 0xb7, 0x0d, 0x44, 0xd0, 0x97, 0xf3, 0xde, 0xfc, 0xa2,
		0x96, 0x25, 0xbd, 0x3f, 0x20, 0xe9, 0x5d, 0x1b, 0x30, 0xd5, 0x06, 0x50, 0xb5, 0x01, 0x55, 0x9d,
		0x80, 0xc5, 0xaf, 0x42, 0x5a, 0xad, 0x4c, 0x7a, 0x4f, 0x26, 0xd2, 0x6b, 0x51, 0xc9, 0x9b, 0x91,
		0x05, 0x51, 0x9b, 0x7c, 0x91, 0xb5, 0xb9, 0xdc, 0x5e, 0x76, 0xca, 0xd8, 0x60, 0xae, 0xb6, 0x7d,
		0x02, 0xc5, 0x51, 0xd8, 0x27, 0xb0, 0x4f, 0xb4, 0x69, 0x9f, 0x60, 0x97, 0x97, 0xda, 0xb3, 0x53,
		0x40, 0xfe, 0xea, 0xb7, 0xfc, 0x85, 0xec, 0xe2, 0x2c, 0xbb, 0xa8, 0x59, 0x15, 0xb3, 0xea, 0xc9,
		0x34, 0x66, 0x6f, 0x71, 0x3b, 0x16, 0xee, 0x4d, 0xf6, 0x0e, 0x1d, 0x52, 0x4a, 0x87, 0x61, 0xf4,
		0xe2, 0x44, 0x9e, 0x0c, 0x46, 0x9a, 0x12, 0x8f, 0x9b, 0x5f, 0x80, 0xdc, 0xa3, 0xb1, 0xe4, 0x12,
		0xaa, 0x68, 0x93, 0xe4, 0xb1, 0x2f, 0xb9, 0x47, 0x3d, 0x80, 0x60, 0xb5, 0xa4, 0x59, 0x87, 0x11,
		0xa0, 0xef, 0x3b, 0x6f, 0x22, 0xb2, 0xc7, 0x51, 0x98, 0x84, 0x6e, 0xe8, 0xdb, 0x7f, 0x4f, 0x1c,
		0x3f, 0xed, 0x6e, 0xcc, 0x8f, 0xfe, 0x5b, 0xbf, 0x09, 0xdb, 0x00, 0xb6, 0x01, 0x6c, 0x03, 0x3d,
		0xde, 0x06, 0x34, 0x23, 0x83, 0xa5, 0xe9, 0xec, 0x94, 0xde, 0x33, 0x53, 0xd9, 0xe8, 0x9c, 0x1f,
		0xff, 0xeb, 0xf4, 0xe6, 0xe1, 0xfa, 0xe6, 0xea, 0xee, 0xea, 0xe4, 0xea, 0xfc, 0xe1, 0x7f, 0xff,
		0x3c, 0x3e, 0x3f, 0xfb, 0x76, 0x76, 0x7a, 0xc3, 0xed, 0x31, 0x1a, 0x8f, 0x49, 0xe9, 0x3e, 0x4d,
		0xf6, 0xc7, 0xd5, 0xdd, 0xd5, 0xe5, 0xd9, 0xc9, 0xc3, 0x6c, 0xa8, 0x74, 0x8d, 0x50, 0x1d, 0x23,
		0xa5, 0x77, 0xc4, 0x4a, 0x8f, 0xdc, 0xc3, 0xc5, 0x09, 0xce, 0xf4, 0x28, 0x0c, 0xdb, 0xd5, 0xdd,
		0xad, 0xc4, 0xc0, 0xa9, 0x0d, 0xdc, 0x31, 0x06, 0x4e, 0x65, 0xe0, 0x4e, 0xfe, 0xc0, 0xb8, 0xa9,
		0x8c, 0xdb, 0xc5, 0x2d, 0xc6, 0x4d, 0x69, 0x63, 0x80, 0x9f, 0xaa, 0xee, 0x0c, 0x18, 0x39, 0xd5,
		0x91, 0xc3, 0xaa, 0x53, 0x1e, 0x3b, 0x8c, 0x9b, 0xf2, 0x9a, 0xc3, 0xd0, 0xa9, 0x6d, 0xac, 0xc7,
		0x38, 0xd4, 0xae, 0x61, 0x82, 0x1b, 0x0a, 0xa2, 0xb5, 0x84, 0x82, 0x1d, 0x1a, 0x1e, 0x3d, 0x21,
		0x5f, 0xb7, 0x06, 0xe8, 0x18, 0x03, 0x54, 0x77, 0x08, 0xd7, 0xa5, 0xf1, 0xd1, 0x11, 0xaa, 0x75,
		0x0a, 0xa0, 0xe1, 0x5f, 0x0d, 0x84, 0x5e, 0x1d, 0x1b, 0x21, 0xac, 0xa2, 0x06, 0x42, 0xa9, 0xce,
		0xad, 0x21, 0x0c, 0x51, 0xed, 0xa1, 0x51, 0xfb, 0x06, 0x68, 0x5b, 0x46, 0xf3, 0xe1, 0xcf, 0xcb,
		0xdb, 0xeb, 0xd3, 0x93, 0xe9, 0xff, 0xff, 0x6a, 0x7a, 0x25, 0xfe, 0x3d, 0xea, 0xc4, 0x2b, 0x58,
		0x45, 0x9d, 0xb8, 0xce, 0xf9, 0x67, 0xa9, 0x03, 0x0b, 0x5d, 0xc7, 0xb7, 0xa5, 0xa7, 0xa1, 0xee,
		0x6b, 0x61, 0x19, 0x57, 0xe5, 0x93, 0xc7, 0x72, 0xa5, 0x48, 0x1f, 0x55, 0x5e, 0x8d, 0x54, 0x79,
		0xcd, 0x07, 0x1f, 0x35, 0x5e, 0x15, 0x57, 0xae, 0xf1, 0x6d, 0x86, 0x8c, 0x40, 0x61, 0xd6, 0x13,
		0xc0, 0xd9, 0xd8, 0x33, 0x9e, 0xf4, 0xd5, 0xd6, 0x82, 0x06, 0xe8, 0x0b, 0xf4, 0xed, 0x3b, 0xfa,
		0xb2, 0xb7, 0x9f, 0x79, 0x76, 0xfc, 0x89, 0xc6, 0xca, 0xd4, 0x99, 0x79, 0xb4, 0x9a, 0xa9, 0xa7,
		0x85, 0x00, 0x3b, 0xf0, 0xe8, 0x06, 0xa0, 0xda, 0x80, 0xa8, 0x36, 0x40, 0xaa, 0x0f, 0x98, 0xf4,
		0x88, 0x16, 0x68, 0x1f, 0xa0, 0x8b, 0x3e, 0xf2, 0xcf, 0x17, 0x67, 0xa3, 0x99, 0x14, 0xa8, 0x35,
		0xb7, 0x97, 0x59, 0xf9, 0x0e, 0xec, 0x08, 0xd8, 0x11, 0xb0, 0x23, 0x60, 0x47, 0xc0, 0x8e, 0xd0,
		0xe1, 0x86, 0x32, 0xff, 0x23, 0xde, 0xb4, 0xc0, 0x3e, 0x32, 0x10, 0xbb, 0xbe, 0x0c, 0x9d, 0x6a,
		0x34, 0x76, 0xaa, 0x61, 0x26, 0x2f, 0xfa, 0x9b, 0xd2, 0xa4, 0x98, 0xd8, 0x21, 0xf9, 0x33, 0x7c,
		0x16, 0x51, 0x24, 0x3d, 0x61, 0x8f, 0x23, 0x19, 0x46, 0x32, 0x79, 0xe3, 0xd7, 0x42, 0xf3, 0x5f,
		0x81, 0xf6, 0x03, 0x3c, 0x6c, 0x14, 0xed, 0x07, 0x6a, 0xe4, 0x9d, 0x68, 0x3f, 0xc0, 0xb7, 0x7a,
		0x27, 0x32, 0x48, 0x7e, 0xfd, 0xa4, 0x21, 0x35, 0x75, 0xc4, 0x68, 0xf2, 0xc6, 0x09, 0x46, 0x82,
		0xfd, 0xc8, 0xb9, 0x9e, 0x2b, 0xed, 0x34, 0xc6, 0x8d, 0x5a, 0xa4, 0x80, 0xcc, 0xfc, 0x3f, 0xe7,
		0x7a, 0xb9, 0x2e, 0xfb, 0xdf, 0x22, 0x27, 0x6d, 0x21, 0xf7, 0x55, 0x8e, 0xe4, 0x8c, 0x87, 0xb6,
		0xa1, 0x1a, 0x6c, 0xca, 0x70, 0x5b, 0x3f, 0xa5, 0xf5, 0xdc, 0x7c, 0x58, 0xdb, 0x2c, 0x1b, 0x1a,
		0xa2, 0xde, 0x77, 0x88, 0x8c, 0xa6, 0xd1, 0x41, 0xc2, 0xb9, 0xeb, 0x64, 0x3b, 0xce, 0xd2, 0x34,
		0xc8, 0x27, 0xc8, 0x27, 0xc8, 0x67, 0x8f, 0xc9, 0x27, 0x37, 0x14, 0x58, 0x68, 0x7e, 0x58, 0x41,
		0xa0, 0x91, 0xa3, 0xc0, 0xf1, 0xed, 0x71, 0x14, 0x8e, 0x45, 0xa4, 0x43, 0x6d, 0xd8, 0xfc, 0x02,
		0xdc, 0x03, 0x06, 0xb8, 0x07, 0xdc, 0x1b, 0x0f, 0xf7, 0xec, 0x85, 0x58, 0xce, 0x78, 0xec, 0x4b,
		0xd7, 0xf9, 0xee, 0x0b, 0x7b, 0x0e, 0x09, 0x9a, 0x4b, 0xb3, 0xb6, 0x7d, 0x21, 0xee, 0x7b, 0xc1,
		0x7d, 0x2f, 0x4d, 0x03, 0x56, 0x6d, 0xc0, 0x55, 0x27, 0x80, 0x69, 0x8a, 0xcc, 0x91, 0x9e, 0xcf,
		0x91, 0x9e, 0x23, 0xa3, 0x47, 0x58, 0x4b, 0xf6, 0x7a, 0xa9, 0xc4, 0xe9, 0xca, 0x62, 0x2f, 0xbf,
		0xa1, 0xc6, 0x6c, 0x76, 0xf6, 0xa5, 0x5a, 0xb2, 0xda, 0xfc, 0x1e, 0xc9, 0x59, 0x92, 0x17, 0x4c,
		0x9e, 0xbe, 0x8b, 0xc8, 0x0e, 0x87, 0x6b, 0xfb, 0x73, 0xac, 0x8f, 0x11, 0x6c, 0xfb, 0x42, 0x30,
		0x02, 0x30, 0x02, 0x30, 0x02, 0x30, 0x02, 0x6d, 0xab, 0x9f, 0x3d, 0xbd, 0xba, 0x89, 0x35, 0x47,
		0x1a, 0x4c, 0xeb, 0x49, 0xb7, 0x2e, 0xfe, 0xe9, 0xeb, 0xd1, 0xa7, 0x35, 0xfd, 0xaa, 0x19, 0xe4,
		0x73, 0x5f, 0xa3, 0x39, 0x1d, 0x9b, 0x7d, 0x4f, 0x0d, 0x09, 0x3b, 0x4d, 0xee, 0xbb, 0x49, 0xdd,
		0x3a, 0x37, 0xf5, 0xf5, 0xa5, 0x6d, 0x1b, 0x59, 0x0d, 0xef, 0xda, 0x61, 0xf5, 0xbe, 0x07, 0x84,
		0x7c, 0x43, 0xaa, 0xd7, 0x7c, 0x5a, 0xa6, 0xf0, 0xdb, 0x40, 0xc5, 0x41, 0xc5, 0x41, 0xc5, 0x41,
		0xc5, 0xb5, 0xad, 0x7e, 0x9c, 0xa6, 0xd4, 0xb1, 0x53, 0xcc, 0x8e, 0xc0, 0xb0, 0x5e, 0x99, 0xba,
		0x77, 0xbf, 0x58, 0xf9, 0x4e, 0xec, 0x1a, 0xd8, 0x35, 0xb0, 0x6b, 0x60, 0xd7, 0xd0, 0xb7, 0x6b,
		0xd4, 0x85, 0x3d, 0x96, 0xa6, 0x8b, 0xfa, 0x32, 0xdb, 0x5a, 0x2f, 0xec, 0xcb, 0x8d, 0xdb, 0xed,
		0xd9, 0xef, 0x97, 0xc7, 0xe7, 0x0f, 0xd7, 0x37, 0x57, 0xd7, 0xa7, 0x37, 0x77, 0xff, 0x7a, 0xf8,
		0xe7, 0xf1, 0xf9, 0x9f, 0xa7, 0x0f, 0x37, 0x7f, 0x9e, 0x9f, 0xe2, 0x62, 0x3a, 0xf5, 0xb1, 0x7b,
		0x38, 0xbe, 0x9c, 0xff, 0x27, 0xae, 0xe7, 0x50, 0x1a, 0xbf, 0xaf, 0x67, 0xdf, 0xbe, 0x9d, 0xde,
		0x9c, 0x5e, 0xde, 0x61, 0x14, 0x09, 0xa3, 0x78, 0x79, 0x85, 0xf1, 0xa3, 0x8c, 0xdf, 0xed, 0xf1,
		0xc5, 0xa9, 0xf6, 0x01, 0x6c, 0xcb, 0x65, 0x31, 0x68, 0x38, 0x50, 0x86, 0xf1, 0xb5, 0xfc, 0x74,
		0xb9, 0x9e, 0x5a, 0x60, 0xab, 0x96, 0x83, 0xe6, 0xb7, 0xe9, 0xb3, 0x5f, 0x2f, 0x1e, 0xdd, 0x94,
		0x12, 0xf0, 0x77, 0x0d, 0xae, 0xcb, 0x45, 0x03, 0x0c, 0xa6, 0xf6, 0xc6, 0xbc, 0x85, 0x43, 0x1b,
		0x85, 0x42, 0x0c, 0x85, 0xe2, 0xb5, 0x14, 0x06, 0xf1, 0x16, 0x02, 0x51, 0x27, 0x98, 0x19, 0x70,
		0xea, 0x02, 0x9a, 0x01, 0xc7, 0xc1, 0x08, 0xcd, 0x80, 0x42, 0x43, 0x10, 0x75, 0xbf, 0x27, 0x2c,
		0x89, 0x41, 0x12, 0x26, 0x53, 0xf8, 0x0e, 0x93, 0x69, 0x0c, 0xe9, 0xf8, 0xb6, 0xeb, 0x8c, 0x1d,
		0x97, 0xa3, 0x47, 0xc5, 0x52, 0x66, 0xda, 0xf6, 0x0d, 0x54, 0xa4, 0x62, 0x39, 0x2e, 0xc2, 0x26,
		0xe1, 0x71, 0x4a, 0x76, 0x9a, 0x1a, 0xa2, 0x71, 0x0b, 0x72, 0xda, 0x04, 0x38, 0x6d, 0x82, 0x9b,
		0xbe, 0x86, 0x66, 0xcd, 0xee, 0xda, 0x5c, 0x47, 0x3b, 0xe6, 0xce, 0x1a, 0xcb, 0xff, 0x68, 0x38,
		0x1f, 0xbc, 0x62, 0x1b, 0x6d, 0xbb, 0x0d, 0x83, 0x06, 0x5d, 0x10, 0xa1, 0x1d, 0x2a, 0xb4, 0x43,
		0x86, 0x7e, 0xe8, 0x30, 0x33, 0x30, 0x65, 0x3f, 0x2d, 0x36, 0x09, 0x64, 0xa2, 0x2f, 0x95, 0x98,
		0x5a, 0x47, 0x8b, 0x56, 0xb4, 0x68, 0x6d, 0x16, 0x86, 0x6a, 0x83, 0xa3, 0xfa, 0x60, 0x49, 0x93,
		0x9e, 0xd7, 0xba, 0x84, 0xe1, 0x22, 0x6e, 0xb1, 0x35, 0x40, 0x8d, 0xa5, 0xa9, 0xbf, 0x41, 0x66,
		0x9b, 0xb7, 0xcf, 0x01, 0xff, 0x92, 0x60, 0xef, 0x0b, 0x8e, 0xfb, 0x21, 0xb0, 0xd5, 0x60, 0xab,
		0xc1, 0x56, 0x83, 0xc3, 0x45, 0x45, 0x38, 0x83, 0xc3, 0x45, 0x2b, 0x0f, 0x8e, 0xc3, 0x45, 0xd5,
		0xbf, 0x07, 0x87, 0x8b, 0x8c, 0x9d, 0x7a, 0x1c, 0x2e, 0x32, 0xc1, 0xea, 0x3d, 0xaa, 0x1f, 0xca,
		0x30, 0x8a, 0xf6, 0x56, 0x3f, 0x6c, 0x4b, 0x6b, 0x1d, 0xb0, 0xcb, 0xdc, 0x96, 0xee, 0xdc, 0xe5,
		0xdd, 0xf4, 0x89, 0xaf, 0x17, 0x6f, 0x72, 0x32, 0x7f, 0x91, 0xd9, 0x8f, 0x6f, 0xa7, 0xef, 0x81,
		0xca, 0x88, 0x76, 0x26, 0xce, 0x35, 0xa5, 0x5e, 0x1b, 0x5a, 0x90, 0x6d, 0x4c, 0xaf, 0x4f, 0x26,
		0x0c, 0x97, 0x8f, 0x2f, 0xe3, 0x82, 0x09, 0xbd, 0x22, 0x87, 0x87, 0x8d, 0xb0, 0x29, 0x0b, 0x48,
		0x9b, 0x23, 0x6d, 0xde, 0x18, 0xa4, 0xb3, 0x45, 0xf2, 0x9c, 0x1e, 0x6a, 0xf1, 0x9d, 0x3c, 0x24,
		0x60, 0xde, 0xbb, 0x1a, 0xe7, 0x63, 0x51, 0x74, 0x48, 0x18, 0x3c, 0x9e, 0x42, 0x43, 0xbe, 0x4e,
		0x64, 0x5a, 0x0b, 0x0b, 0x79, 0x0a, 0x0a, 0x55, 0x27, 0x8b, 0x89, 0x07, 0xd5, 0xc0, 0x7f, 0x08,
		0x8e, 0xa8, 0x93, 0xde, 0xa8, 0xa1, 0x66, 0x75, 0x8f, 0x54, 0x98, 0xe0, 0x81, 0xef, 0x24, 0x22,
		0x70, 0xdf, 0x6c, 0xf7, 0xd1, 0x99, 0xc6, 0xf4, 0x22, 0x92, 0x71, 0x22, 0x5d, 0xe5, 0x89, 0xce,
		0x70, 0x71, 0x8b, 0x5d, 0x55, 0xbc, 0x20, 0xd5, 0xfd, 0x90, 0x4b, 0xfe, 0x38, 0x38, 0x0b, 0xfb,
		0x29, 0x5c, 0x2e, 0x96, 0xc2, 0xce, 0x4e, 0xd8, 0x59, 0x89, 0x8e, 0x53, 0xb2, 0xf5, 0xee, 0x77,
		0xd4, 0xda, 0x9a, 0xc1, 0x50, 0xbe, 0x0a, 0xcf, 0x66, 0x76, 0xd6, 0xdc, 0xd2, 0xdc, 0xf9, 0x2d,
		0x86, 0x85, 0x21, 0xc6, 0x56, 0xef, 0x32, 0x1e, 0xb0, 0x47, 0x20, 0xa2, 0xf3, 0x80, 0x7c, 0xd7,
		0x42, 0x11, 0xb6, 0xb6, 0x28, 0xcd, 0x07, 0x23, 0x84, 0x5d, 0xf1, 0x2f, 0x99, 0x4c, 0x49, 0xa1,
		0x2e, 0x88, 0x2c, 0x36, 0x0f, 0x6c, 0x04, 0x36, 0x02, 0x1b, 0x81, 0x8d, 0x86, 0x63, 0xe3, 0xdf,
		0x13, 0x21, 0x83, 0x91, 0x76, 0x1a, 0xb9, 0xfb, 0x6b, 0x20, 0x67, 0x03, 0x2b, 0x81, 0x95, 0xc0,
		0x4a, 0xc3, 0xb1, 0x32, 0x89, 0x9c, 0xe1, 0x50, 0xba, 0xcc, 0x9d, 0x54, 0x97, 0x2e, 0x5e, 0x68,
		0x1e, 0xd8, 0x08, 0x6c, 0x04, 0x36, 0x02, 0x1b, 0x0d, 0xc7, 0xc6, 0x17, 0x27, 0xf0, 0x34, 0xc6,
		0xd8, 0xc5, 0xe6, 0x11, 0x63, 0x03, 0x1b, 0x81, 0x8d, 0xc0, 0xc6, 0x3a, 0xb0, 0xb1, 0x89, 0x62,
		0x08, 0x4e, 0x46, 0xa8, 0xa5, 0x3a, 0xe2, 0x10, 0xd5, 0x11, 0x45, 0x00, 0x61, 0x6c, 0x75, 0x04,
		0xbb, 0xfe, 0xc2, 0x5b, 0x23, 0x71, 0x3e, 0x7b, 0xbc, 0x93, 0xf5, 0xa7, 0x33, 0xb8, 0x54, 0x82,
		0x14, 0x00, 0x2e, 0x2f, 0xb0, 0x23, 0x78, 0x35, 0x57, 0x19, 0xc4, 0x07, 0x53, 0xca, 0x20, 0xc8,
		0x25, 0x9b, 0x7d, 0x2e, 0x82, 0xa0, 0x96, 0x64, 0xb6, 0xac, 0x04, 0x82, 0xe7, 0x94, 0x37, 0xeb,
		0xa9, 0x6e, 0xd4, 0x56, 0x23, 0xa4, 0x30, 0xc0, 0x91, 0x11, 0x50, 0x74, 0x59, 0x6c, 0x99, 0xdd,
		0x53, 0xc0, 0xab, 0x3e, 0xaf, 0xd8, 0x04, 0x02, 0x02, 0x01, 0x81, 0x80, 0x40, 0xc0, 0x2e, 0x4a,
		0x2a, 0x64, 0x98, 0xc3, 0x29, 0x13, 0xe8, 0x28, 0x07, 0xc4, 0x6d, 0x92, 0x57, 0x35, 0x49, 0x91,
		0xc1, 0x64, 0x91, 0x64, 0x3a, 0x78, 0xc2, 0x1b, 0x09, 0x7b, 0x1c, 0xca, 0x20, 0x61, 0xd0, 0x4b,
		0x36, 0x0c, 0xe2, 0x04, 0x09, 0x4e, 0x90, 0x30, 0x30, 0x8e, 0xde, 0x9d, 0x20, 0xd9, 0xf0, 0x23,
		0x9b, 0xf7, 0xa0, 0x7a, 0xa1, 0x75, 0x84, 0x16, 0xb5, 0xb9, 0x32, 0x82, 0x0b, 0x9d, 0xae, 0xde,
		0xd5, 0xf0, 0xc2, 0x17, 0xce, 0x30, 0x12, 0x43, 0xce, 0xf8, 0xe2, 0x33, 0x83, 0xad, 0xeb, 0x02,
		0xf2, 0xf6, 0x25, 0xe3, 0x6a, 0xab, 0x53, 0xfa, 0x25, 0x4f, 0xe5, 0x0a, 0x7f, 0xbd, 0xf1, 0xe3,
		0x94, 0xe6, 0xad, 0xff, 0x28, 0x7c, 0x09, 0x84, 0x67, 0x6f, 0xc0, 0xd8, 0xc6, 0xdf, 0xa4, 0xa0,
		0xd6, 0x42, 0x05, 0x29, 0x7d, 0x2b, 0x0d, 0x78, 0x0f, 0x90, 0x07, 0xc8, 0x03, 0xe4, 0x01, 0xf2,
		0xad, 0x01, 0xf9, 0xb6, 0x02, 0x78, 0x36, 0x00, 0xbc, 0x20, 0xbe, 0x6e, 0x16, 0x40, 0x0e, 0x20,
		0x07, 0x90, 0x03, 0xc8, 0x8d, 0x03, 0xf2, 0x46, 0x51, 0xbb, 0x91, 0x4a, 0xd0, 0x55, 0x5c, 0xb6,
		0x32, 0xaa, 0x6d, 0x31, 0x8a, 0x2c, 0x28, 0x10, 0xad, 0x6d, 0x52, 0x0d, 0x4e, 0x6c, 0xb0, 0x48,
		0xeb, 0x16, 0x7f, 0x8e, 0x23, 0xf4, 0xc4, 0xa9, 0x37, 0x12, 0xd7, 0xe9, 0x53, 0x19, 0x9c, 0xec,
		0x88, 0x64, 0xfc, 0x83, 0xbd, 0x73, 0x56, 0x91, 0x51, 0x24, 0x3d, 0x90, 0xf4, 0x30, 0x82, 0x5b,
		0xb5, 0x2c, 0xe9, 0x51, 0xe0, 0x4b, 0xcc, 0x95, 0x54, 0x5b, 0xbf, 0x01, 0xe1, 0x14, 0xc2, 0x29,
		0x84, 0x53, 0x06, 0x87, 0x53, 0xa8, 0x2e, 0xcd, 0x10, 0x52, 0x7a, 0x22, 0x48, 0xe4, 0x50, 0x8a,
		0xc8, 0xf6, 0x65, 0x9c, 0x30, 0xa3, 0xe3, 0xa6, 0x75, 0x20, 0x23, 0x90, 0x11, 0xc8, 0x08, 0x64,
		0xac, 0x6d, 0x84, 0x58, 0xb4, 0x0e, 0x7e, 0xcd, 0xa3, 0x16, 0xed, 0x83, 0x57, 0x03, 0x69, 0xa9,
		0xa0, 0xc6, 0x4c, 0xd2, 0x21, 0x9e, 0x41, 0x3c, 0x3b, 0xe0, 0x93, 0x69, 0xf8, 0x05, 0xb4, 0x1b,
		0x19, 0xff, 0x68, 0xcf, 0xb9, 0xea, 0xe9, 0xa0, 0x32, 0xc8, 0x66, 0x53, 0x2b, 0xd0, 0xc9, 0xa0,
		0x93, 0x41, 0x27, 0xab, 0x6e, 0xc0, 0x15, 0x63, 0xdb, 0x93, 0x91, 0x70, 0x59, 0x6e, 0x3b, 0x5b,
		0xde, 0xa0, 0xbe, 0x66, 0x16, 0x0d, 0x9c, 0x10, 0xf7, 0x21, 0xee, 0x33, 0x38, 0xee, 0x1b, 0x87,
		0x51, 0xc2, 0xe6, 0xaf, 0x6b, 0x1b, 0xeb, 0x27, 0x06, 0x5b, 0xa7, 0xc1, 0xe4, 0x69, 0xfa, 0xbe,
		0x3f, 0x3b, 0x1b, 0x4b, 0x7e, 0x40, 0x2c, 0x59, 0x9b, 0xee, 0x39, 0xdd, 0x9a, 0xd2, 0xf5, 0x1e,
		0x85, 0xbe, 0xe0, 0xdd, 0xf1, 0x96, 0x66, 0x79, 0x76, 0xbc, 0x43, 0xec, 0x78, 0xd8, 0xf1, 0xb0,
		0xe3, 0xd1, 0x69, 0x6e, 0x66, 0x88, 0xcf, 0xf1, 0x8b, 0xf7, 0x50, 0x06, 0xe7, 0x67, 0xa6, 0xbd,
		0xec, 0x60, 0xa0, 0x03, 0x14, 0xb4, 0x83, 0x83, 0x2e, 0x90, 0xd0, 0x0e, 0x16, 0xda, 0x41, 0xa3,
		0x0e, 0xf0, 0xe0, 0x01, 0x11, 0x26, 0x30, 0xe1, 0xa7, 0xd1, 0xda, 0xa1, 0xc0, 0xe2, 0xcb, 0xa8,
		0x70, 0x0f, 0x22, 0x2b, 0x2b, 0xd6, 0xc7, 0x8e, 0x6b, 0x65, 0xc9, 0x7a, 0xd8, 0x32, 0x9f, 0x13,
		0x31, 0xcc, 0xfd, 0x72, 0x89, 0xdb, 0x24, 0x11, 0x77, 0xbf, 0x0b, 0xd9, 0x04, 0x79, 0x17, 0x5b,
		0x2a, 0xb6, 0x54, 0x6c, 0xa9, 0xdd, 0xda, 0x52, 0x67, 0x99, 0xb8, 0x70, 0xcc, 0x24, 0x54, 0xe5,
		0xb6, 0x57, 0x4e, 0xfc, 0x3f, 0x4b, 0xeb, 0x9f, 0x92, 0xb7, 0xdf, 0x9c, 0x58, 0x83, 0x7f, 0x2c,
		0x86, 0xe6, 0xfa, 0xea, 0xe6, 0xee, 0xe1, 0xe6, 0xea, 0xfc, 0xf4, 0xe1, 0xe6, 0xcf, 0xf3, 0xd3,
		0x87, 0xab, 0xeb, 0xbb, 0xb3, 0xab, 0x4b, 0x6e, 0x5f, 0xf9, 0xa7, 0xe3, 0x4f, 0xc4, 0x74, 0xcb,
		0xfc, 0x37, 0xab, 0xdd, 0xe9, 0xbf, 0xff, 0x63, 0xb7, 0xb8, 0x7f, 0x78, 0x1e, 0xbe, 0x9e, 0x7d,
		0xfb, 0x76, 0x7a, 0x73, 0x7a, 0x39, 0xfb, 0xd5, 0x80, 0xfd, 0x11, 0x7e, 0xbe, 0xef, 0xc6, 0x38,
		0x5d, 0x5e, 0x61, 0x84, 0x76, 0x8f, 0xd0, 0xf1, 0xe5, 0xbf, 0x30, 0x42, 0x3b, 0x47, 0xe8, 0xf6,
		0xf8, 0xe2, 0x54, 0xd7, 0x10, 0xb1, 0x5a, 0xbc, 0xef, 0xe8, 0xb6, 0x8c, 0x20, 0xad, 0x85, 0x41,
		0x1a, 0x92, 0x5d, 0x0d, 0xaf, 0x10, 0xe6, 0x64, 0x17, 0xb5, 0x54, 0x85, 0xa7, 0x1e, 0x2e, 0xb3,
		0xa7, 0xa1, 0x2e, 0x6e, 0xe2, 0x8b, 0x03, 0xce, 0x34, 0x98, 0xc5, 0x5f, 0x1e, 0x37, 0xf1, 0xc5,
		0xc3, 0x89, 0x18, 0x5f, 0x87, 0x51, 0x72, 0x33, 0x7d, 0xc0, 0x36, 0xe6, 0x2f, 0xc3, 0xa7, 0xb1,
		0x2f, 0x5e, 0x79, 0x74, 0x97, 0x65, 0xfa, 0x72, 0xd5, 0x2a, 0xea, 0x75, 0x6a, 0x57, 0x53, 0x90,
		0xbd, 0x44, 0xbd, 0x4e, 0xf9, 0xd5, 0x87, 0x73, 0x1a, 0xa0, 0x1b, 0x66, 0xee, 0x4d, 0x41, 0x30,
		0xab, 0x21, 0xb3, 0xe3, 0xb1, 0x70, 0xed, 0x48, 0x0c, 0x45, 0x24, 0x02, 0x97, 0x75, 0xa3, 0xda,
		0xf6, 0x15, 0xa8, 0xb9, 0xc1, 0xae, 0x85, 0x5d, 0x8b, 0x0d, 0x93, 0xd9, 0x6a, 0x6e, 0x36, 0x3c,
		0x96, 0x3f, 0x57, 0xb8, 0xf9, 0x05, 0x86, 0x27, 0x0b, 0x3f, 0x20, 0x59, 0x88, 0x64, 0x61, 0xad,
		0x40, 0x62, 0xa6, 0x2a, 0xa9, 0x2f, 0x59, 0xc8, 0xd0, 0xd5, 0x52, 0x03, 0x49, 0x66, 0xd4, 0x06,
		0xdf, 0xb3, 0xa3, 0x32, 0x4f, 0x73, 0x9c, 0xbd, 0x6c, 0x8d, 0xa1, 0x41, 0x8e, 0x76, 0x7c, 0x46,
		0x31, 0x07, 0xf0, 0x19, 0xf8, 0xac, 0x13, 0x9f, 0xd9, 0xe4, 0x0b, 0x73, 0x11, 0x1a, 0x72, 0x4a,
		0xb7, 0xe4, 0x94, 0x9e, 0x64, 0x6f, 0x34, 0x89, 0x2b, 0x96, 0xa6, 0x4c, 0xce, 0xff, 0x67, 0xef,
		0xda, 0x9a, 0xe2, 0x46, 0x92, 0xee, 0x3b, 0xbf, 0x42, 0xd1, 0xcf, 0xa3, 0x30, 0x30, 0x1e, 0xdb,
		0xeb, 0x37, 0x16, 0xe3, 0xcf, 0xc4, 0x82, 0x61, 0x01, 0x6f, 0xc4, 0x3e, 0x10, 0x84, 0xac, 0x2e,
		0x70, 0xed, 0x0a, 0x49, 0x23, 0xa9, 0xf1, 0xb0, 0x11, 0xfe, 0xef, 0x5f, 0xb4, 0xba, 0x5b, 0x7d,
		0x91, 0xfa, 0x26, 0x65, 0x66, 0x55, 0x75, 0x1f, 0x3f, 0x79, 0x30, 0x53, 0x25, 0xa5, 0xb2, 0x4e,
		0xe6, 0xc9, 0x5b, 0x55, 0x8f, 0x7b, 0x9b, 0xaa, 0xf0, 0xa6, 0x7a, 0x58, 0x07, 0x23, 0x67, 0x8f,
		0x49, 0xf6, 0x33, 0xc8, 0xfa, 0x3a, 0x7e, 0x22, 0x4e, 0xec, 0x2c, 0x2e, 0x8c, 0xdc, 0x0e, 0xa2,
		0x64, 0x88, 0x92, 0x91, 0x01, 0x3b, 0x7d, 0x6e, 0x87, 0xf6, 0xc0, 0x7a, 0x96, 0x36, 0x63, 0x1b,
		0x01, 0xd9, 0x28, 0x78, 0x55, 0x99, 0x9f, 0x66, 0x49, 0x91, 0x84, 0x49, 0xe4, 0xff, 0x39, 0x08,
		0xa2, 0x72, 0x3a, 0x21, 0x1d, 0xda, 0x2e, 0xdd, 0x01, 0xb0, 0x0b, 0xd8, 0x05, 0xec, 0x5a, 0x0c,
		0xbb, 0x4c, 0x27, 0xd7, 0x23, 0xee, 0x2d, 0xe0, 0xe9, 0x29, 0xa8, 0xa4, 0x70, 0x71, 0xf2, 0xef,
		0xb3, 0x9b, 0x87, 0xeb, 0x9b, 0xab, 0xbb, 0xab, 0xd3, 0xab, 0x8b, 0x87, 0x7f, 0x7e, 0x3b, 0xb9,
		0x38, 0xff, 0x7c, 0x7e, 0x76, 0x43, 0xa5, 0xe9, 0x0c, 0x6d, 0x04, 0x5c, 0x5d, 0x15, 0x5f, 0xae,
		0xee, 0xae, 0xbe, 0x9e, 0x9f, 0x3e, 0x8c, 0x44, 0x42, 0x2d, 0x09, 0x4e, 0x89, 0xf0, 0x48, 0x66,
		0x63, 0x09, 0x3d, 0x5c, 0x9e, 0xa2, 0x16, 0x7e, 0x85, 0x78, 0xae, 0xee, 0x6e, 0x35, 0x04, 0xb4,
		0x5a, 0x40, 0x27, 0x10, 0xd0, 0x2a, 0x01, 0x9d, 0x7e, 0x81, 0x7c, 0x56, 0xc9, 0xe7, 0xf2, 0x16,
		0xf2, 0x59, 0x09, 0xd0, 0x38, 0x5f, 0xeb, 0x10, 0x1a, 0x12, 0x5a, 0x27, 0x21, 0x68, 0xd1, 0x5a,
		0x19, 0x41, 0x3e, 0x6b, 0x75, 0x08, 0x22, 0x5a, 0x6d, 0xc8, 0x4e, 0xf6, 0xa8, 0x69, 0xf2, 0x37,
		0x57, 0x49, 0x21, 0x29, 0xe5, 0x71, 0x58, 0x0c, 0xb4, 0xd4, 0xc6, 0x6d, 0x41, 0x9c, 0x40, 0x10,
		0xd4, 0x54, 0xc5, 0x65, 0x39, 0x50, 0x52, 0x12, 0xa7, 0x81, 0x12, 0xe7, 0x82, 0x81, 0x62, 0x38,
		0x2e, 0x09, 0x68, 0x05, 0x03, 0x65, 0x70, 0x5e, 0x27, 0x20, 0x0a, 0x72, 0x0a, 0x60, 0xbf, 0x20,
		0x96, 0x65, 0xa0, 0x1e, 0xbe, 0x7d, 0xbd, 0xbd, 0x3e, 0x3b, 0x1d, 0xfe, 0xfd, 0x93, 0x6d, 0x15,
		0xb7, 0xf7, 0xa8, 0x17, 0x9d, 0x59, 0x0d, 0xf5, 0xa2, 0xc6, 0xea, 0x5b, 0x92, 0x30, 0x88, 0x7c,
		0xdd, 0x27, 0xac, 0x67, 0x99, 0xac, 0x88, 0xab, 0x3b, 0xd7, 0xca, 0x6a, 0xa6, 0x08, 0x17, 0xd5,
		0x2b, 0x14, 0x0b, 0xd7, 0xaa, 0x57, 0xc6, 0xc2, 0x45, 0xed, 0xca, 0x82, 0xe6, 0xe1, 0x42, 0xe3,
		0xe1, 0xb3, 0xd3, 0x5e, 0xef, 0x4e, 0x78, 0x95, 0xfb, 0x11, 0x50, 0x0f, 0xa8, 0xb7, 0xef, 0xa8,
		0x47, 0x36, 0x4e, 0xe0, 0x25, 0x88, 0x06, 0x0c, 0x95, 0x6f, 0xa3, 0x65, 0x31, 0x3a, 0xc0, 0x32,
		0x40, 0xe0, 0x02, 0x06, 0x76, 0x80, 0x60, 0x07, 0x0a, 0x7e, 0xc0, 0xa0, 0x25, 0xc9, 0x68, 0x4b,
		0x35, 0xff, 0x1d, 0x28, 0x06, 0x07, 0x94, 0x40, 0xc9, 0x34, 0x2e, 0x60, 0x66, 0x6d, 0x20, 0x31,
		0x90, 0x18, 0x48, 0x0c, 0x24, 0xde, 0x55, 0x24, 0x36, 0xea, 0x8c, 0xff, 0x43, 0xbd, 0x92, 0xc2,
		0x2d, 0x22, 0xc8, 0x98, 0x38, 0xd0, 0x6e, 0xe2, 0x00, 0x91, 0xad, 0x67, 0x18, 0x2e, 0x50, 0x62,
		0x91, 0x83, 0x61, 0xb0, 0xe4, 0x45, 0x65, 0x99, 0xee, 0x2b, 0x3f, 0xcd, 0x74, 0x92, 0xe9, 0xe2,
		0x95, 0x2e, 0x26, 0x56, 0x5f, 0x1a, 0x6d, 0xad, 0x9b, 0x79, 0x61, 0x68, 0x6b, 0x45, 0x5b, 0xab,
		0xa4, 0x47, 0x35, 0x1d, 0x85, 0xa7, 0xe3, 0xe2, 0xdd, 0x5b, 0xc2, 0xd4, 0xc0, 0x07, 0x82, 0xa5,
		0x6e, 0x82, 0xf8, 0x49, 0x91, 0xb5, 0x3c, 0xd2, 0x5e, 0x69, 0xc2, 0xc0, 0x6b, 0x48, 0x29, 0x68,
		0xb5, 0xec, 0xbf, 0xc6, 0x71, 0x50, 0xea, 0x75, 0x3f, 0x67, 0x41, 0x39, 0x52, 0xe7, 0x93, 0x7e,
		0xd2, 0x23, 0xff, 0xcb, 0xc6, 0xea, 0x93, 0xa1, 0x47, 0xe7, 0xdc, 0xa7, 0xe2, 0xbd, 0xc9, 0x86,
		0xfd, 0xeb, 0x59, 0x42, 0x9d, 0xee, 0x1d, 0x74, 0xca, 0x4a, 0xb7, 0xb7, 0xa0, 0x40, 0xf7, 0x0a,
		0xd9, 0xa7, 0x4b, 0xc2, 0x09, 0x83, 0x13, 0x06, 0x27, 0xcc, 0x62, 0x27, 0x8c, 0xea, 0xa8, 0x7a,
		0x18, 0xe6, 0x34, 0xc3, 0xf8, 0xf5, 0x53, 0x1c, 0x44, 0x7e, 0x9a, 0x25, 0xa9, 0xca, 0x28, 0x59,
		0xee, 0xe2, 0xc2, 0xb8, 0x57, 0x02, 0xf0, 0x0a, 0x78, 0x25, 0x83, 0x57, 0xb2, 0x42, 0x90, 0x20,
		0x4d, 0x23, 0x1d, 0x06, 0xdf, 0x23, 0xe5, 0x8f, 0x8f, 0x2c, 0x53, 0x69, 0xc8, 0xb2, 0x8d, 0x30,
		0xc7, 0xdc, 0x3a, 0xe0, 0xe0, 0x02, 0x10, 0x76, 0x20, 0x61, 0x07, 0x14, 0x09, 0x60, 0x21, 0x66,
		0x8a, 0x48, 0x53, 0x5a, 0x22, 0x41, 0xdc, 0x1f, 0xbc, 0x62, 0x33, 0x5b, 0xef, 0x0f, 0x26, 0xf0,
		0xc2, 0xe2, 0xc1, 0xf3, 0x77, 0x95, 0xf9, 0xc9, 0xe3, 0x9c, 0xdd, 0xcb, 0xe9, 0x2d, 0xec, 0xb2,
		0x8d, 0x60, 0x61, 0x61, 0x61, 0x61, 0x61, 0xf7, 0xd8, 0xc2, 0x92, 0xa5, 0xaf, 0x16, 0xb1, 0xe0,
		0x03, 0xe1, 0x92, 0xb4, 0xe9, 0xac, 0xc9, 0x1f, 0xfa, 0x99, 0x43, 0x2c, 0xe9, 0x2d, 0x26, 0x90,
		0xad, 0x2d, 0xcf, 0x94, 0xee, 0xaa, 0xd6, 0x67, 0x4c, 0x9c, 0x10, 0x1f, 0xb7, 0x45, 0x57, 0xc7,
		0xf9, 0x4f, 0xca, 0x9f, 0x16, 0x13, 0xfd, 0xca, 0x07, 0x76, 0xae, 0x76, 0xbf, 0x43, 0x8e, 0xe9,
		0x42, 0x88, 0x96, 0xa9, 0x1a, 0xbd, 0x71, 0x17, 0xb8, 0xa4, 0x70, 0x49, 0xe1, 0x92, 0x22, 0xe8,
		0x83, 0x2e, 0xa1, 0xad, 0x10, 0x7a, 0x54, 0x6a, 0x4e, 0x72, 0xb5, 0xd5, 0x5a, 0x9c, 0x9e, 0xd9,
		0x0b, 0x68, 0x0d, 0xb4, 0x06, 0x5a, 0xef, 0x33, 0x5a, 0x73, 0x63, 0x83, 0x47, 0x7c, 0xc1, 0x4b,
		0xb5, 0x26, 0xcb, 0x45, 0x2f, 0x35, 0xf9, 0xdc, 0x9e, 0xff, 0xdf, 0xd7, 0x93, 0x8b, 0x87, 0xeb,
		0x9b, 0xab, 0xeb, 0xb3, 0x9b, 0xbb, 0x7f, 0x3f, 0xfc, 0xeb, 0xe4, 0xe2, 0xdb, 0xd9, 0xc3, 0xcd,
		0xb7, 0x8b, 0x33, 0x5c, 0x74, 0xb2, 0x5e, 0x46, 0x0f, 0x27, 0x5f, 0xc7, 0xff, 0x89, 0x31, 0xd6,
		0x2b, 0xe5, 0xf4, 0xe9, 0xfc, 0xf3, 0xe7, 0xb3, 0x9b, 0xb3, 0xaf, 0x77, 0x90, 0xd6, 0x06, 0xd2,
		0xfa, 0x7a, 0x05, 0x39, 0x6d, 0x22, 0xa7, 0xdb, 0x93, 0xcb, 0x33, 0x36, 0x41, 0xd9, 0x3a, 0x24,
		0x1d, 0x0d, 0xac, 0xee, 0x74, 0x37, 0xd2, 0x96, 0x12, 0x7a, 0x3c, 0x8d, 0x8e, 0xb7, 0xe5, 0x43,
		0x5e, 0x4f, 0x9e, 0xd1, 0x54, 0x29, 0xe8, 0x81, 0xa0, 0x1e, 0x4d, 0x1a, 0xa0, 0x3b, 0x8e, 0x37,
		0xa4, 0x29, 0x8c, 0x58, 0x28, 0x84, 0xe8, 0x50, 0x28, 0xca, 0x5a, 0xf8, 0x40, 0x53, 0xe8, 0xd0,
		0xf6, 0x83, 0x11, 0x1d, 0x78, 0xa6, 0x83, 0xde, 0xeb, 0x52, 0xc7, 0x4c, 0x7d, 0xa0, 0xdb, 0x9d,
		0xe0, 0xed, 0xcf, 0x5f, 0x8b, 0x4f, 0xd9, 0x2b, 0x92, 0x62, 0x88, 0x87, 0x49, 0x31, 0xe4, 0x36,
		0x41, 0xe4, 0x87, 0x41, 0x1a, 0x84, 0x5d, 0x7a, 0x94, 0xa7, 0x61, 0x8a, 0x65, 0x2b, 0xb7, 0x45,
		0x88, 0x4e, 0x65, 0xdb, 0x9d, 0x43, 0x3c, 0x14, 0x21, 0x1d, 0xe2, 0x41, 0x30, 0x54, 0x01, 0x1b,
		0xf2, 0x00, 0x0d, 0x79, 0x40, 0x86, 0x7e, 0x90, 0x8b, 0xac, 0x75, 0xeb, 0x5a, 0x62, 0x3d, 0x3e,
		0x4c, 0xb9, 0xfe, 0x1f, 0x61, 0xbf, 0xda, 0xcc, 0x9a, 0x18, 0xab, 0x29, 0x74, 0x64, 0xb9, 0x62,
		0xad, 0x18, 0xab, 0x69, 0x0b, 0x11, 0x22, 0xeb, 0xa6, 0x18, 0xc4, 0xba, 0xa0, 0x4f, 0xcd, 0x94,
		0xab, 0x62, 0x94, 0x9b, 0x65, 0x70, 0xc0, 0x05, 0x0b, 0xec, 0xf0, 0xc0, 0x0e, 0x13, 0xfc, 0x70,
		0x41, 0x1c, 0xc7, 0xb1, 0x3e, 0x01, 0x33, 0xf1, 0xc3, 0x7d, 0x42, 0x28, 0xf0, 0x88, 0xfb, 0x60,
		0xab, 0x35, 0x69, 0xfa, 0x61, 0x09, 0x83, 0x6c, 0xbf, 0x61, 0x5e, 0x32, 0xa0, 0x1d, 0xd0, 0x0e,
		0x68, 0xb7, 0x11, 0xda, 0x51, 0x9c, 0x4f, 0xa9, 0x96, 0x28, 0xce, 0x5f, 0xbe, 0x3e, 0x8a, 0xf3,
		0x8d, 0x7d, 0x52, 0x14, 0xe7, 0x4b, 0xac, 0x76, 0x8f, 0xac, 0xae, 0x13, 0x59, 0xdd, 0x65, 0x59,
		0x86, 0x37, 0x64, 0xd1, 0x4d, 0x8f, 0x3c, 0x27, 0x74, 0x37, 0x7c, 0xb4, 0xeb, 0xc9, 0x23, 0x9f,
		0x8e, 0x9f, 0x78, 0xf4, 0xe3, 0xdb, 0xe1, 0x03, 0xef, 0x45, 0xc6, 0xd7, 0xde, 0x04, 0x22, 0x71,
		0xe6, 0x4a, 0x4a, 0x81, 0x6c, 0x4e, 0x33, 0x0e, 0x06, 0x1d, 0x2e, 0x41, 0x9c, 0xfa, 0xb7, 0x83,
		0xf6, 0x95, 0x01, 0xdd, 0xac, 0x73, 0x67, 0x06, 0x8b, 0xf4, 0xa1, 0x41, 0xc6, 0xe9, 0x7a, 0xfa,
		0xb0, 0x33, 0x63, 0xa4, 0x38, 0x41, 0x5e, 0xf7, 0xce, 0x98, 0x16, 0x58, 0x73, 0xc0, 0x28, 0xdf,
		0x49, 0xd1, 0x51, 0x0b, 0xa1, 0x74, 0x2b, 0x34, 0xea, 0x3e, 0x69, 0x85, 0xa5, 0xb0, 0xa8, 0x5b,
		0x41, 0xd1, 0xb6, 0xc2, 0xef, 0x68, 0xff, 0xe9, 0xed, 0x7e, 0x8b, 0x73, 0x41, 0x6a, 0xd6, 0xb7,
		0x43, 0xa3, 0xcd, 0x4f, 0xc6, 0x16, 0x1f, 0xa6, 0x97, 0xa4, 0x2a, 0x2b, 0xbf, 0xc9, 0xd0, 0x77,
		0x2e, 0x82, 0x62, 0x7b, 0xd8, 0x99, 0xde, 0x4d, 0x50, 0x5b, 0x6a, 0xdb, 0xd3, 0xd9, 0xca, 0x62,
		0xb7, 0x2e, 0xf4, 0xe9, 0x62, 0xa1, 0x89, 0x2c, 0x73, 0x57, 0x8b, 0x4c, 0x66, 0x89, 0xc9, 0x2c,
		0x30, 0x9d, 0xe5, 0xe5, 0xb5, 0x04, 0xad, 0x2d, 0x2c, 0x99, 0xba, 0x7b, 0x1d, 0x53, 0x68, 0x2d,
		0x53, 0x65, 0x4c, 0x30, 0xf2, 0x33, 0x56, 0x7d, 0xbf, 0xc4, 0x57, 0xd5, 0x7f, 0x52, 0x7e, 0x9a,
		0xe8, 0xb8, 0xe8, 0x00, 0x25, 0x8d, 0xcb, 0xb5, 0x83, 0x93, 0x23, 0xe7, 0xe0, 0xa4, 0x43, 0xab,
		0xe7, 0x3e, 0x00, 0x4a, 0xfb, 0x56, 0x4c, 0x5e, 0x48, 0x69, 0x5b, 0x08, 0xd4, 0x0b, 0xfa, 0xcf,
		0x3a, 0xd6, 0x79, 0x31, 0x84, 0x93, 0x17, 0xd5, 0xd2, 0x0c, 0xd7, 0x54, 0xa9, 0x71, 0x55, 0x70,
		0x69, 0x70, 0x69, 0x70, 0x69, 0xf3, 0x27, 0xca, 0x23, 0xaa, 0x9f, 0xe9, 0x58, 0x2f, 0x23, 0x13,
		0x0b, 0x0c, 0x9e, 0x9e, 0x32, 0xf5, 0x14, 0x14, 0x04, 0x1e, 0x42, 0xfd, 0x9b, 0x2c, 0x5f, 0x1b,
		0x6d, 0x07, 0x64, 0x93, 0x23, 0xf6, 0x19, 0xed, 0xba, 0x4f, 0x7e, 0x70, 0xac, 0xf5, 0x60, 0xe1,
		0x1c, 0xf9, 0x9d, 0x42, 0xf9, 0x35, 0x95, 0x6c, 0x5c, 0xdd, 0xb2, 0xfb, 0x73, 0x0e, 0x71, 0xc1,
		0x83, 0xf9, 0xa3, 0xcd, 0x76, 0xc4, 0x39, 0x8f, 0x7a, 0xb7, 0x23, 0xdf, 0xf1, 0xe8, 0xd3, 0xb9,
		0x3c, 0x35, 0xed, 0x8b, 0x54, 0xf0, 0x98, 0xa9, 0x47, 0xca, 0xdb, 0x73, 0xde, 0x13, 0xac, 0x75,
		0xdd, 0x10, 0x0c, 0xfe, 0x58, 0xc5, 0x7e, 0x67, 0x3f, 0xe9, 0xc7, 0x7a, 0x68, 0xb8, 0xf1, 0x9f,
		0x17, 0x7e, 0x5c, 0x86, 0x8d, 0xe7, 0x7f, 0xd4, 0x18, 0x9b, 0x58, 0xf8, 0x9d, 0x12, 0xd4, 0x1c,
		0xbc, 0xd1, 0xa7, 0x7c, 0x2b, 0x06, 0xbc, 0x07, 0xc8, 0x03, 0xe4, 0x01, 0xf2, 0x00, 0x79, 0x67,
		0x40, 0xde, 0x55, 0x00, 0xaf, 0x04, 0x40, 0x0b, 0xe2, 0xf3, 0xcb, 0x02, 0xc8, 0x01, 0xe4, 0x00,
		0x72, 0x00, 0xb9, 0x75, 0x40, 0x6e, 0x14, 0xb5, 0x4d, 0x4c, 0x4f, 0x9a, 0xc3, 0x65, 0xaf, 0x72,
		0xb5, 0x3d, 0xc2, 0x20, 0x0b, 0xcb, 0x84, 0xa5, 0x43, 0x4c, 0x58, 0x6a, 0x42, 0x38, 0x6b, 0x0a,
		0xa4, 0x9b, 0x39, 0x2e, 0x79, 0xac, 0xdd, 0x23, 0xa8, 0xa8, 0xba, 0x1a, 0x3e, 0xea, 0xf0, 0x6f,
		0x67, 0xfd, 0x27, 0x75, 0x3d, 0x7c, 0x98, 0x87, 0x93, 0xea, 0x39, 0xe7, 0x7e, 0x6e, 0x73, 0xb9,
		0x74, 0xf0, 0x12, 0xe8, 0xa8, 0xbc, 0xdf, 0x92, 0x6e, 0x1e, 0x53, 0xc3, 0x9a, 0x48, 0x89, 0x20,
		0xfd, 0xdb, 0xd9, 0xef, 0xc2, 0x24, 0x26, 0x02, 0x3e, 0x85, 0x49, 0x4c, 0xd2, 0x47, 0x16, 0x54,
		0x8a, 0xef, 0x48, 0xdb, 0x41, 0xa4, 0x30, 0x89, 0xc9, 0xf4, 0xf1, 0xe7, 0x80, 0x01, 0x66, 0x38,
		0xe0, 0x82, 0x05, 0x76, 0x78, 0x60, 0x87, 0x09, 0x7e, 0xb8, 0xa0, 0x81, 0x0d, 0x22, 0xf8, 0xa0,
		0x8f, 0xc7, 0xd4, 0x34, 0x17, 0x93, 0x98, 0xcc, 0x7e, 0x5e, 0x4c, 0x62, 0x02, 0xb4, 0x03, 0xda,
		0x01, 0xed, 0x98, 0xc4, 0x44, 0xa9, 0x44, 0x98, 0xc4, 0x34, 0xb7, 0x3c, 0x26, 0x31, 0x35, 0x7f,
		0x52, 0x4c, 0x62, 0xb2, 0xed, 0x2b, 0x63, 0x12, 0x93, 0xc5, 0xc1, 0x0c, 0xfb, 0x26, 0x31, 0x2d,
		0x49, 0x0a, 0xd5, 0xb2, 0x0c, 0x76, 0x4d, 0x62, 0x6a, 0xca, 0x0f, 0x4d, 0x1e, 0x19, 0x93, 0x98,
		0x2c, 0x4d, 0x34, 0x52, 0x65, 0xae, 0xa4, 0x14, 0xc8, 0x91, 0xd4, 0xa2, 0x4a, 0xfd, 0x28, 0x78,
		0x55, 0x99, 0x9f, 0x66, 0x49, 0x91, 0x84, 0x49, 0x44, 0x9a, 0x64, 0xac, 0xaf, 0x6e, 0x38, 0xdd,
		0x78, 0x88, 0x0e, 0x2c, 0x7e, 0xce, 0x8a, 0x0e, 0xac, 0xda, 0x0b, 0x74, 0x4e, 0x39, 0xce, 0x1f,
		0x23, 0xff, 0xcf, 0x41, 0x10, 0xe9, 0x47, 0xad, 0x32, 0xba, 0x04, 0xe4, 0xd2, 0x1d, 0x50, 0xdb,
		0x29, 0x76, 0xa4, 0xb9, 0xc2, 0x53, 0xa8, 0xed, 0xb4, 0xc7, 0x8b, 0x67, 0xa8, 0xed, 0xe4, 0x39,
		0xb9, 0x1e, 0xf1, 0x25, 0xda, 0x3c, 0x97, 0x67, 0x57, 0x52, 0xb8, 0x38, 0xf9, 0xf7, 0xd9, 0xcd,
		0xc3, 0xf5, 0xcd, 0xd5, 0xdd, 0xd5, 0xe9, 0xd5, 0xc5, 0xc3, 0x3f, 0xbf, 0x9d, 0x5c, 0x9c, 0x7f,
		0x3e, 0x3f, 0xbb, 0xa1, 0xd2, 0x74, 0x86, 0xab, 0xb2, 0x99, 0xae, 0x0f, 0xbf, 0xfe, 0x72, 0x75,
		0x77, 0xf5, 0xf5, 0xfc, 0xf4, 0x61, 0x24, 0x12, 0x6a, 0x49, 0x70, 0x4a, 0x84, 0x2f, 0x80, 0xb8,
		0x91, 0x84, 0x1e, 0x2e, 0x4f, 0x71, 0xbb, 0xf3, 0x0a, 0xf1, 0x5c, 0xdd, 0xdd, 0x6a, 0x08, 0x68,
		0xb5, 0x80, 0x4e, 0x20, 0xa0, 0x55, 0x02, 0x3a, 0xfd, 0x02, 0xf9, 0xac, 0x92, 0xcf, 0xe5, 0x2d,
		0xe4, 0xb3, 0x12, 0xa0, 0x71, 0xbe, 0xd6, 0x21, 0x34, 0x24, 0xb4, 0x4e, 0x42, 0xd0, 0xa2, 0xb5,
		0x32, 0x82, 0x7c, 0xd6, 0xea, 0x10, 0x44, 0xb4, 0xda, 0x90, 0x71, 0x9c, 0x31, 0xd2, 0x15, 0xef,
		0x0f, 0x2c, 0xfc, 0x70, 0xc2, 0xa4, 0x90, 0x94, 0xf2, 0x38, 0x2c, 0x06, 0x5a, 0x6a, 0xe3, 0xb6,
		0x20, 0x4e, 0x20, 0x08, 0x6a, 0xaa, 0xe2, 0xb2, 0x1c, 0x28, 0x29, 0x89, 0xd3, 0x40, 0x89, 0x73,
		0xc1, 0x40, 0x31, 0x1c, 0x97, 0x04, 0xb4, 0x82, 0x81, 0x32, 0x38, 0xaf, 0x13, 0x10, 0x05, 0x39,
		0x05, 0xb0, 0x5f, 0x10, 0xcb, 0x32, 0x50, 0x0f, 0xdf, 0xbe, 0xde, 0x5e, 0x9f, 0x9d, 0x0e, 0xff,
		0xfe, 0xc9, 0xb6, 0x32, 0xfa, 0x7b, 0xd3, 0xd9, 0x54, 0x33, 0x43, 0x0d, 0x07, 0xcf, 0xdf, 0x55,
		0xe6, 0x27, 0x8f, 0x65, 0x89, 0x92, 0x8e, 0xf3, 0x22, 0x88, 0xc3, 0x32, 0x95, 0x45, 0x35, 0xe2,
		0x70, 0xc9, 0x06, 0xa8, 0xa5, 0x58, 0x2b, 0x3a, 0xd4, 0x52, 0xa0, 0x96, 0x62, 0xd3, 0x17, 0xa3,
		0xaf, 0xa5, 0x20, 0x6b, 0xda, 0x21, 0x6c, 0xd6, 0x21, 0x6e, 0xd2, 0x21, 0x6c, 0x75, 0xe2, 0x68,
		0xca, 0x61, 0xea, 0xdc, 0xe0, 0x6a, 0xc2, 0xe1, 0x6c, 0xcb, 0x20, 0x74, 0x79, 0x58, 0x9a, 0x6d,
		0xb8, 0x3f, 0x15, 0x7f, 0x73, 0x0d, 0xeb, 0xd7, 0xb3, 0xa4, 0x69, 0xe5, 0x7e, 0x9f, 0xc6, 0xdf,
		0x11, 0xd7, 0xc2, 0xb1, 0x8c, 0xba, 0x3b, 0xc2, 0xa8, 0xbb, 0x26, 0x27, 0xc5, 0x9d, 0x0e, 0x14,
		0xaa, 0xb6, 0x06, 0x8f, 0xbb, 0x17, 0x45, 0xa5, 0x17, 0xc3, 0xe7, 0xbc, 0x9e, 0x3c, 0xa6, 0xc5,
		0x3d, 0x29, 0xa5, 0x50, 0x75, 0x4e, 0x70, 0xff, 0x4f, 0xb5, 0x12, 0x7a, 0x4d, 0x26, 0x0d, 0xfc,
		0x71, 0xac, 0xc2, 0x42, 0xbf, 0x74, 0xec, 0x9a, 0xda, 0xeb, 0x01, 0x77, 0x33, 0x22, 0xdc, 0x97,
		0x9e, 0x93, 0xc9, 0x4b, 0x27, 0xb1, 0xaf, 0xe2, 0x7e, 0xc7, 0xeb, 0xb9, 0xea, 0xc7, 0xb4, 0x69,
		0x75, 0x8c, 0xbe, 0x13, 0x3d, 0xd2, 0x88, 0x91, 0x70, 0x1f, 0x79, 0x3b, 0xe2, 0x24, 0x64, 0x63,
		0xf0, 0x66, 0xe6, 0xfd, 0xb2, 0xa0, 0x43, 0x4d, 0xdb, 0xd7, 0x6d, 0x48, 0x3b, 0x61, 0xe9, 0x88,
		0x7a, 0xc2, 0xd2, 0xb1, 0x3b, 0x13, 0x96, 0x48, 0x01, 0x85, 0x0b, 0x58, 0xd8, 0x01, 0x86, 0x1d,
		0x68, 0xa4, 0x00, 0x87, 0x38, 0x0a, 0x41, 0xa4, 0xc7, 0x54, 0x40, 0xb4, 0xd2, 0x47, 0xa1, 0xb9,
		0xe9, 0x64, 0x2b, 0xc7, 0x85, 0xe2, 0x16, 0x14, 0xa9, 0xe8, 0x1a, 0xf5, 0xf8, 0x37, 0x4e, 0x90,
		0x12, 0x05, 0x2b, 0x6e, 0xd0, 0x12, 0x03, 0x2f, 0x31, 0x10, 0x93, 0x06, 0x33, 0x5a, 0x50, 0x23,
		0x06, 0xb7, 0x4a, 0x18, 0xe4, 0x23, 0xe5, 0x6a, 0xa7, 0x80, 0xee, 0x36, 0x97, 0xa5, 0x9e, 0xd0,
		0x7b, 0x86, 0xb5, 0x2d, 0xbb, 0x9b, 0x71, 0x56, 0x47, 0x3f, 0x4e, 0xa2, 0x46, 0x4d, 0xff, 0xd4,
		0x00, 0xf8, 0x0d, 0xbf, 0xd6, 0xfd, 0xaa, 0x19, 0x3e, 0x35, 0xa7, 0xcc, 0x24, 0xb1, 0x5c, 0x06,
		0xbc, 0x54, 0xd5, 0x19, 0x2e, 0x07, 0x86, 0xa1, 0xdd, 0xd4, 0xd0, 0x12, 0x96, 0x61, 0xc0, 0xc8,
		0xd2, 0x1b, 0x59, 0xba, 0x32, 0x0e, 0x18, 0x58, 0x18, 0x58, 0xab, 0x2f, 0x3f, 0x76, 0xc8, 0x34,
		0x0a, 0xd8, 0x43, 0x18, 0x41, 0x18, 0x41, 0x18, 0x41, 0x18, 0x41, 0x18, 0x41, 0x4b, 0x8c, 0xe0,
		0xbe, 0x18, 0x38, 0xda, 0xcb, 0xa4, 0x97, 0xe3, 0x2e, 0xe1, 0xe5, 0xd2, 0x30, 0x74, 0x30, 0x74,
		0x30, 0x74, 0x30, 0x74, 0x30, 0x74, 0x06, 0x2e, 0xcf, 0x66, 0xb4, 0x6a, 0x56, 0xe5, 0x35, 0x5b,
		0x5c, 0xbe, 0xed, 0x71, 0xe7, 0x11, 0x69, 0x6a, 0x97, 0x6b, 0xab, 0x92, 0x5d, 0xdb, 0x5d, 0x5f,
		0x99, 0xb1, 0xb6, 0xb9, 0xb6, 0x19, 0x49, 0xad, 0x33, 0x97, 0x3a, 0x11, 0xdf, 0xf4, 0x50, 0xad,
		0xcb, 0x55, 0x1b, 0x5d, 0x25, 0x4f, 0x1a, 0x53, 0x25, 0x32, 0x35, 0x3c, 0x1e, 0x4f, 0x31, 0xf5,
		0xa9, 0x4a, 0x87, 0xe7, 0x68, 0xb8, 0xc0, 0xf8, 0xc9, 0xcf, 0xe2, 0xfe, 0xe2, 0xa5, 0xe2, 0xf5,
		0x7f, 0xec, 0xed, 0xd0, 0x15, 0x79, 0x61, 0xa4, 0x55, 0x5c, 0xd4, 0x2e, 0x78, 0x27, 0xaf, 0xf5,
		0x5a, 0xb2, 0x0f, 0x4a, 0xbc, 0x68, 0xdc, 0x7b, 0x94, 0x78, 0x09, 0xbb, 0xf2, 0x28, 0xf1, 0x22,
		0x59, 0x10, 0xf9, 0x66, 0x44, 0x20, 0x10, 0x81, 0x40, 0x04, 0x02, 0x11, 0x88, 0xfd, 0x8b, 0x40,
		0x20, 0xdf, 0xbc, 0xde, 0x34, 0x22, 0xdf, 0x0c, 0x23, 0x08, 0x23, 0x08, 0x23, 0x08, 0x23, 0xb8,
		0x3f, 0x46, 0x10, 0xf9, 0x66, 0x5a, 0xdc, 0x45, 0xbe, 0x19, 0x86, 0x0e, 0x86, 0x0e, 0x86, 0x0e,
		0x86, 0xce, 0xa4, 0xa1, 0x43, 0xbe, 0x79, 0x0b, 0xf8, 0xd9, 0x36, 0xdf, 0x8c, 0xac, 0x32, 0xb2,
		0xca, 0xbb, 0x94, 0x55, 0x66, 0xcd, 0x16, 0x7a, 0xe2, 0xc9, 0xe4, 0xd3, 0xf2, 0x75, 0xe6, 0x7e,
		0x7d, 0xa7, 0x72, 0xc8, 0xd3, 0x4f, 0x98, 0x26, 0x59, 0xe1, 0xf7, 0x75, 0x36, 0xfa, 0x4f, 0x86,
		0x34, 0xf2, 0xd2, 0xad, 0x68, 0x33, 0xc9, 0x87, 0xc8, 0x24, 0x23, 0x93, 0x2c, 0xe3, 0xa4, 0xef,
		0x67, 0x26, 0x99, 0xdc, 0x11, 0xaf, 0xb4, 0x98, 0x05, 0x17, 0xe6, 0xfc, 0xef, 0xb7, 0x84, 0x6b,
		0x9e, 0xc5, 0x83, 0xe7, 0xa1, 0x1c, 0x7e, 0xed, 0xb0, 0x3d, 0xc8, 0x92, 0x48, 0xf1, 0x9b, 0x82,
		0x72, 0x17, 0x58, 0x01, 0x58, 0x01, 0x58, 0x01, 0x58, 0x81, 0x1e, 0x35, 0x24, 0xc0, 0x00, 0x6c,
		0xf1, 0x4e, 0x0b, 0x83, 0xba, 0xc7, 0x2c, 0x8b, 0x18, 0xff, 0x9b, 0x36, 0x01, 0xfc, 0x03, 0xfe,
		0x01, 0xff, 0x80, 0x7f, 0x46, 0x70, 0x80, 0x21, 0x68, 0x6f, 0x08, 0xa6, 0x37, 0x36, 0x70, 0x5b,
		0x83, 0xae, 0x77, 0x43, 0xc0, 0x24, 0xc0, 0x24, 0xc0, 0x24, 0xec, 0xb2, 0x49, 0xa0, 0x46, 0x88,
		0x39, 0xbb, 0x40, 0x99, 0x76, 0x3a, 0xef, 0xab, 0xb8, 0xd0, 0xc5, 0xeb, 0xdf, 0x83, 0x5c, 0xf1,
		0x55, 0xc9, 0x2c, 0xbb, 0xdf, 0xb2, 0xc7, 0x71, 0xfd, 0x53, 0x4e, 0x76, 0xdf, 0xd9, 0xec, 0x1f,
		0xa6, 0x6a, 0x90, 0x75, 0x57, 0xa1, 0x72, 0x15, 0x87, 0x30, 0x4a, 0x8a, 0x57, 0x62, 0x1b, 0x4b,
		0xee, 0x81, 0xf2, 0x2e, 0x5d, 0x26, 0x40, 0xb2, 0x51, 0x6c, 0x57, 0x77, 0xb7, 0x1a, 0x82, 0x6b,
		0x27, 0xb8, 0x13, 0x08, 0xae, 0x8d, 0xe0, 0x4e, 0xbf, 0x40, 0x6e, 0x6d, 0xe4, 0x76, 0x79, 0x0b,
		0xb9, 0xb5, 0x32, 0x0c, 0x38, 0xa7, 0x6d, 0x2d, 0x03, 0x24, 0xd7, 0x56, 0x72, 0xd0, 0xba, 0xd6,
		0xb2, 0x83, 0xdc, 0x5a, 0xeb, 0x1c, 0x44, 0xd7, 0xce, 0xb0, 0x72, 0x9e, 0x55, 0x96, 0x95, 0xef,
		0x0f, 0x1c, 0xf8, 0xc0, 0x86, 0x48, 0x34, 0x0b, 0x15, 0xdc, 0x21, 0xf1, 0xf0, 0x50, 0xbe, 0xdd,
		0x12, 0xd0, 0x09, 0x04, 0x24, 0x4d, 0xe1, 0x76, 0x49, 0x3e, 0x1c, 0x54, 0x6d, 0xa7, 0x00, 0x1a,
		0xe7, 0xcb, 0x00, 0xf5, 0xda, 0x31, 0x09, 0x41, 0x8b, 0x0c, 0x50, 0xa9, 0x9d, 0xd3, 0x21, 0x88,
		0x48, 0x9c, 0x1a, 0xb9, 0x27, 0xa0, 0x65, 0x19, 0xcd, 0x87, 0x6f, 0x5f, 0x6f, 0xaf, 0xcf, 0x4e,
		0x87, 0x7f, 0xff, 0x64, 0x7b, 0xfb, 0xf3, 0xbd, 0x6d, 0x59, 0x7e, 0x3b, 0xaa, 0x8a, 0xf4, 0xa3,
		0x0a, 0x5f, 0xc3, 0x48, 0xf9, 0x79, 0x11, 0x14, 0x1c, 0xa5, 0xa5, 0x0b, 0x1b, 0xa0, 0x86, 0xa8,
		0xb3, 0x48, 0x67, 0x1a, 0x47, 0x51, 0x3d, 0x64, 0xa8, 0x7a, 0xa8, 0x14, 0x3e, 0xea, 0x86, 0xac,
		0x00, 0x03, 0x0f, 0x65, 0xa4, 0x9b, 0xbf, 0xd3, 0xb3, 0xea, 0xeb, 0xc0, 0x0f, 0x7f, 0x04, 0x71,
		0xac, 0xa2, 0xc6, 0x39, 0xe3, 0x7e, 0x9e, 0xaa, 0x90, 0xde, 0x10, 0x6c, 0xba, 0xb1, 0xe5, 0x63,
		0xac, 0x0f, 0x5d, 0x31, 0x10, 0xe9, 0x8f, 0xa4, 0x48, 0x62, 0x1d, 0xfa, 0xa5, 0xe0, 0x61, 0x28,
		0x8c, 0x18, 0x8a, 0x85, 0x8f, 0x80, 0x51, 0xd6, 0x2d, 0x40, 0x8a, 0xaf, 0x50, 0x73, 0x7e, 0x1b,
		0x9e, 0x71, 0x66, 0x47, 0x5c, 0xe3, 0xcc, 0x8e, 0x5d, 0x1d, 0x67, 0xc6, 0x06, 0x4c, 0xdc, 0x00,
		0x25, 0x06, 0x54, 0x62, 0x80, 0x25, 0x0f, 0x5c, 0x3c, 0xdc, 0x9e, 0x7a, 0xb4, 0x19, 0x35, 0xa0,
		0xcd, 0x00, 0x5b, 0x90, 0x0f, 0x32, 0x35, 0x74, 0x78, 0x7e, 0xaa, 0xcc, 0x57, 0x4f, 0x99, 0xca,
		0x73, 0x3e, 0x45, 0x9d, 0x02, 0x5d, 0xd3, 0xb6, 0x4c, 0xba, 0xc4, 0x03, 0x7c, 0x6c, 0x9e, 0x98,
		0x24, 0x10, 0x1a, 0x02, 0x44, 0x29, 0x60, 0x14, 0x07, 0x48, 0x71, 0xa0, 0x34, 0x07, 0x98, 0x3c,
		0xc0, 0xc9, 0x04, 0xa0, 0xec, 0x40, 0x5a, 0x6d, 0x30, 0x02, 0xb4, 0x21, 0x71, 0x2c, 0xb2, 0x20,
		0xf2, 0xfb, 0x2a, 0xce, 0x75, 0xf1, 0xca, 0xaf, 0xe1, 0xd3, 0xd9, 0x08, 0x8d, 0xfb, 0x33, 0x6b,
		0x1f, 0xcf, 0xa8, 0x5c, 0x71, 0xa8, 0x95, 0x84, 0x5c, 0xc3, 0xd0, 0x2b, 0x0d, 0xc1, 0xc6, 0xa0,
		0xd8, 0x18, 0x24, 0x9b, 0x87, 0x66, 0x5e, 0x88, 0x66, 0x86, 0xea, 0x4a, 0x7c, 0x6c, 0x63, 0x7d,
		0x97, 0x9e, 0xc4, 0xbe, 0x0a, 0xf5, 0x73, 0x10, 0xbd, 0x7b, 0x2b, 0x71, 0xfe, 0x26, 0xde, 0xe9,
		0xb1, 0xc0, 0x5e, 0x9f, 0xb3, 0xa0, 0x0c, 0x71, 0x7e, 0xd2, 0x4f, 0xba, 0x9c, 0xaa, 0xfa, 0x5e,
		0x60, 0xd3, 0x9b, 0x20, 0x7e, 0x52, 0xac, 0xad, 0x8e, 0xb3, 0x7f, 0x64, 0x50, 0xcc, 0x1b, 0x8f,
		0xbe, 0x15, 0x83, 0xcd, 0x45, 0x75, 0x39, 0xfe, 0x4d, 0x76, 0xdb, 0xb2, 0x61, 0x95, 0xdf, 0xf0,
		0xae, 0xd7, 0xd8, 0x43, 0xb1, 0xfd, 0x7f, 0xfd, 0x26, 0xa8, 0x4a, 0xc1, 0x5f, 0xc6, 0x54, 0xe9,
		0x77, 0xa8, 0x92, 0xdb, 0x06, 0x58, 0x6e, 0x97, 0xfb, 0x03, 0x37, 0x9f, 0x9f, 0xf1, 0x28, 0xf7,
		0x8a, 0xa4, 0x08, 0xa2, 0x51, 0x1c, 0x4b, 0x8e, 0xe5, 0xcd, 0x6e, 0x0a, 0x6a, 0x07, 0x6a, 0x07,
		0x6a, 0x07, 0x6a, 0x07, 0x6a, 0x07, 0x6a, 0x07, 0x6a, 0x07, 0x6a, 0x07, 0x7f, 0x1c, 0xd4, 0x0e,
		0xd4, 0x0e, 0xd4, 0x6e, 0x4f, 0xa8, 0x9d, 0x53, 0xe9, 0x47, 0xa6, 0x9b, 0x9c, 0x6a, 0xfb, 0x98,
		0xb9, 0xd9, 0x69, 0xc3, 0x8a, 0xda, 0xf9, 0xdf, 0x7b, 0x23, 0x59, 0x0b, 0xe2, 0x89, 0x5f, 0x0f,
		0x75, 0x39, 0x7c, 0xd7, 0xd3, 0xd1, 0xab, 0xd6, 0xff, 0xf9, 0x36, 0x55, 0xe1, 0xdc, 0xaf, 0x3c,
		0x5c, 0x8e, 0xa5, 0x71, 0x3d, 0x14, 0xc6, 0xd9, 0x48, 0x16, 0x07, 0x6e, 0x1c, 0x1c, 0x86, 0x43,
		0xb3, 0x58, 0x28, 0xa4, 0x63, 0x33, 0x05, 0x4a, 0x93, 0x7d, 0x1d, 0xaf, 0x50, 0x3a, 0x46, 0x85,
		0x92, 0xa5, 0x31, 0x14, 0x54, 0x28, 0xa1, 0x42, 0x69, 0x24, 0x26, 0x54, 0x28, 0x71, 0x42, 0x2c,
		0xc2, 0xd8, 0xce, 0x40, 0xaf, 0x34, 0x04, 0x1b, 0x83, 0x62, 0x63, 0x90, 0x6c, 0x1e, 0x9a, 0x65,
		0xf8, 0x2d, 0xc2, 0xd8, 0x24, 0xde, 0x29, 0xc2, 0xd8, 0x24, 0x7f, 0x10, 0xc6, 0x66, 0xd9, 0x16,
		0x61, 0x6c, 0x5e, 0x55, 0x42, 0x18, 0x7b, 0xa7, 0x55, 0x09, 0x61, 0x6c, 0xa3, 0xcf, 0x8f, 0x0a,
		0x25, 0x50, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x50,
		0x3b, 0x50, 0x3b, 0x50, 0x3b, 0xa8, 0x12, 0xa8, 0x9d, 0xfb, 0xd4, 0x0e, 0x15, 0x4a, 0x0d, 0xfb,
		0x38, 0x5c, 0xa1, 0xc4, 0x5b, 0x0c, 0xe2, 0xb9, 0x55, 0xa2, 0x74, 0x1e, 0xef, 0x7d, 0x8d, 0x52,
		0x12, 0x86, 0x83, 0x54, 0xab, 0xfe, 0x38, 0xa7, 0x3d, 0x1a, 0xd1, 0xc9, 0x5b, 0x9e, 0x54, 0xdf,
		0x12, 0x95, 0x49, 0xa6, 0x62, 0x29, 0xa8, 0x4c, 0x72, 0x3c, 0x56, 0x82, 0xca, 0xa4, 0xcd, 0xc4,
		0xc4, 0x5e, 0x99, 0xf4, 0x98, 0xa9, 0x3f, 0x07, 0x2a, 0x0e, 0x4b, 0x8b, 0x9f, 0x17, 0x59, 0xa0,
		0xcb, 0x6f, 0x22, 0x14, 0xb1, 0x6e, 0xdc, 0x5d, 0x26, 0x74, 0x7d, 0x84, 0xd0, 0xb5, 0x2b, 0xb0,
		0x2b, 0x0d, 0xbf, 0xc6, 0x60, 0xd8, 0x18, 0x1c, 0x9b, 0x87, 0x65, 0x19, 0x4e, 0xcb, 0x1d, 0xba,
		0xe6, 0x86, 0xeb, 0x6a, 0xa3, 0xa0, 0xff, 0x9f, 0x41, 0x5e, 0x0c, 0xbf, 0x94, 0xff, 0x94, 0x05,
		0xf1, 0x20, 0x0a, 0x32, 0x89, 0x82, 0xd2, 0x1a, 0x10, 0x2c, 0x79, 0x0e, 0x21, 0x6d, 0x95, 0xc9,
		0x42, 0x8a, 0x43, 0xba, 0x09, 0x68, 0xb7, 0x04, 0xe2, 0x4d, 0x41, 0xbd, 0x71, 0xc8, 0x37, 0x0e,
		0xfd, 0xf6, 0x98, 0x00, 0x19, 0x53, 0x20, 0x64, 0x12, 0x2a, 0xb1, 0x8a, 0x65, 0x35, 0xed, 0xc2,
		0x68, 0x8f, 0xe9, 0x5e, 0x96, 0xb5, 0x7b, 0xd2, 0xde, 0xdb, 0x62, 0x5e, 0x57, 0x05, 0xf4, 0xb4,
		0xf7, 0x94, 0xe9, 0xbe, 0x5f, 0x48, 0x2a, 0x6a, 0xa5, 0xa4, 0xd3, 0xad, 0xe1, 0x3b, 0xc0, 0x77,
		0x80, 0xef, 0x00, 0xdf, 0x01, 0xbe, 0x83, 0x05, 0xbe, 0x83, 0x34, 0x2c, 0xc3, 0x5d, 0x40, 0x1c,
		0x45, 0x2e, 0x23, 0x5e, 0xed, 0xe7, 0x52, 0x66, 0xbc, 0x96, 0x87, 0x7c, 0x63, 0x20, 0x8a, 0xee,
		0x59, 0x9f, 0x31, 0xbf, 0x1a, 0x8b, 0xe9, 0x76, 0x2c, 0xa5, 0x87, 0xcf, 0x13, 0x29, 0x9d, 0x4e,
		0x85, 0x84, 0xce, 0x85, 0xda, 0x47, 0x8d, 0xca, 0x7a, 0x8b, 0x4a, 0xa5, 0xe4, 0x72, 0x41, 0x8b,
		0x1b, 0xa3, 0x83, 0xc1, 0x56, 0x7f, 0x1f, 0x69, 0x20, 0xa4, 0x81, 0xe0, 0xbe, 0xd8, 0xe0, 0xaf,
		0x57, 0x27, 0x71, 0xa0, 0xe3, 0x42, 0xb4, 0x7d, 0xe1, 0x03, 0x1a, 0x09, 0xda, 0xbf, 0x98, 0xc9,
		0x46, 0x82, 0x43, 0x54, 0x7f, 0xef, 0x48, 0x58, 0xc0, 0x33, 0xdd, 0x48, 0x60, 0x4a, 0x95, 0x8e,
		0x3e, 0xbc, 0x7d, 0xfb, 0xee, 0xfd, 0xdb, 0xb7, 0x87, 0xef, 0x7f, 0x7f, 0x7f, 0xf8, 0xb7, 0x3f,
		0xfe, 0x38, 0x7a, 0x77, 0xf4, 0x07, 0x7a, 0x0b, 0x5c, 0xdb, 0x05, 0x6d, 0xe3, 0x75, 0xb5, 0x1a,
		0xa4, 0xa9, 0x19, 0xf2, 0xb5, 0xb8, 0x31, 0xc8, 0x17, 0xc8, 0x17, 0xc8, 0x17, 0xc8, 0x17, 0xc8,
		0x17, 0xc8, 0x17, 0xc8, 0x17, 0xc8, 0x17, 0xc8, 0x17, 0xc8, 0x17, 0xc8, 0x17, 0xc8, 0x97, 0x71,
		0xf2, 0x85, 0xc6, 0xee, 0x86, 0x7d, 0x9c, 0x4e, 0x5f, 0xef, 0x6d, 0x4f, 0xf7, 0x62, 0x86, 0xda,
		0x99, 0x7e, 0xee, 0x03, 0x8b, 0xcf, 0x1e, 0xf7, 0x99, 0x73, 0xe9, 0xac, 0x31, 0x9c, 0x2c, 0xab,
		0x4f, 0x14, 0xed, 0x01, 0xa2, 0x53, 0x73, 0x9a, 0x95, 0x88, 0x0e, 0x0a, 0xd7, 0x01, 0xb1, 0xfb,
		0x60, 0x10, 0x1e, 0x05, 0xdb, 0x8e, 0x00, 0x8d, 0xd6, 0x77, 0xd7, 0x51, 0x02, 0xfd, 0xec, 0x8d,
		0x85, 0x4a, 0xa3, 0x95, 0x55, 0x7c, 0xa6, 0x5c, 0x95, 0xe8, 0xf4, 0xd0, 0x76, 0x8f, 0x93, 0x47,
		0xa8, 0x39, 0x22, 0xd1, 0xf3, 0x11, 0xe7, 0xd1, 0x91, 0xa6, 0x3c, 0x4f, 0x4c, 0x11, 0x65, 0xf6,
		0xc8, 0x31, 0x7b, 0x84, 0xb8, 0x1e, 0x09, 0x1e, 0x0b, 0x7f, 0x47, 0x2d, 0x13, 0x75, 0xf7, 0x74,
		0xef, 0x65, 0x1c, 0xb3, 0x20, 0x56, 0xac, 0xc9, 0x79, 0x18, 0x2d, 0x4f, 0xfc, 0xcd, 0x79, 0xc2,
		0x3b, 0x6c, 0xa9, 0x30, 0xce, 0xd4, 0x17, 0x33, 0xf0, 0x70, 0x03, 0x90, 0x18, 0x10, 0x89, 0x01,
		0x92, 0x1c, 0x30, 0xb9, 0xc1, 0x35, 0xd9, 0x52, 0x4d, 0x95, 0xe6, 0xe7, 0x45, 0xa6, 0xe3, 0x27,
		0x0e, 0xa5, 0x9f, 0x38, 0x32, 0x1f, 0x6c, 0x25, 0x4d, 0xbf, 0x11, 0xdb, 0x01, 0x9f, 0xd4, 0xb9,
		0x6c, 0x36, 0x06, 0x3e, 0xa1, 0xab, 0x09, 0x8b, 0x00, 0x8b, 0x00, 0x8b, 0x00, 0x8b, 0x00, 0x8b,
		0x60, 0x25, 0x59, 0xf9, 0x87, 0x7a, 0x65, 0x81, 0xfd, 0xde, 0x85, 0xce, 0x8b, 0x93, 0xa2, 0x20,
		0xa6, 0x42, 0x97, 0x3a, 0x3e, 0x8b, 0xd4, 0xf0, 0x84, 0xe6, 0xb4, 0x90, 0xdf, 0xbb, 0x0c, 0xfe,
		0x9a, 0x59, 0x99, 0x37, 0x3d, 0xdc, 0xbb, 0xca, 0xfa, 0x2a, 0x53, 0xfd, 0xbf, 0x0f, 0x65, 0x1f,
		0x0f, 0xa2, 0x08, 0x91, 0x55, 0xb6, 0xc8, 0x2a, 0xb1, 0x2b, 0x23, 0x1b, 0x36, 0x2d, 0xd1, 0x72,
		0x87, 0x02, 0xa3, 0x49, 0xaa, 0xb2, 0x52, 0xb3, 0x82, 0xc8, 0xcf, 0x8b, 0xa0, 0x60, 0x88, 0x92,
		0xd6, 0xb7, 0xa0, 0x0d, 0x99, 0x1e, 0x52, 0x87, 0x4c, 0x8f, 0x11, 0x32, 0x45, 0xc8, 0x54, 0xdc,
		0x0f, 0xb5, 0xcb, 0x0b, 0x21, 0xf7, 0x37, 0xd9, 0xe1, 0xc0, 0x63, 0x9a, 0xf0, 0x41, 0x3c, 0xc1,
		0xc3, 0x12, 0xd8, 0x2f, 0x72, 0xed, 0x07, 0x79, 0xae, 0x9e, 0xbf, 0x47, 0xaf, 0x2b, 0xb2, 0x9b,
		0xf4, 0xc6, 0x60, 0xc3, 0x8d, 0x91, 0x55, 0xa3, 0x31, 0x11, 0x6c, 0x7d, 0x1c, 0x30, 0x15, 0x9b,
		0x9b, 0x0a, 0xae, 0x3e, 0x8b, 0x1d, 0xcf, 0xb2, 0x8d, 0xb0, 0xa2, 0x1f, 0xa4, 0x05, 0xc3, 0x65,
		0xa7, 0x0b, 0x88, 0x34, 0xde, 0x85, 0x27, 0xc2, 0x7a, 0xc4, 0x15, 0x61, 0x3d, 0x76, 0x35, 0xc2,
		0xca, 0xde, 0x5e, 0x86, 0x48, 0xab, 0xbd, 0xb0, 0x45, 0x1f, 0xc1, 0xf3, 0x18, 0x22, 0xae, 0x5c,
		0x23, 0xd7, 0x7b, 0x8f, 0x2a, 0xf4, 0xd3, 0x20, 0x0b, 0x9e, 0x55, 0xa1, 0xb2, 0x9c, 0xff, 0x7e,
		0xa1, 0x85, 0xfd, 0x70, 0xb9, 0x90, 0x34, 0xf4, 0x19, 0x82, 0x40, 0x29, 0x28, 0x14, 0x87, 0x44,
		0x71, 0x68, 0x34, 0x07, 0x91, 0x3c, 0x50, 0xc9, 0x04, 0x99, 0xec, 0xd0, 0x59, 0x6d, 0x10, 0x26,
		0x59, 0xa6, 0xc2, 0x42, 0xf5, 0xfd, 0xef, 0xa3, 0x46, 0x2d, 0xa1, 0x69, 0x06, 0x0b, 0xfb, 0xee,
		0xd8, 0x30, 0x83, 0x63, 0x0c, 0x33, 0x70, 0x0c, 0x72, 0x8d, 0x41, 0xaf, 0x31, 0x08, 0x36, 0x0f,
		0xc5, 0xbc, 0x90, 0xcc, 0x0c, 0xcd, 0x95, 0xf8, 0x30, 0xcc, 0x80, 0x64, 0x2b, 0x0c, 0x33, 0x70,
		0xcf, 0xe0, 0xd5, 0xb6, 0xc5, 0x30, 0x03, 0x5e, 0x55, 0xc2, 0x30, 0x03, 0x0c, 0x33, 0x70, 0x72,
		0x17, 0x4c, 0x92, 0x5b, 0x49, 0xbd, 0x5e, 0x0b, 0x65, 0x86, 0x7b, 0x95, 0x1b, 0x83, 0x7c, 0x81,
		0x7c, 0x81, 0x7c, 0x81, 0x7c, 0x81, 0x7c, 0x81, 0x7c, 0x81, 0x7c, 0x81, 0x7c, 0x81, 0x7c, 0x81,
		0x7c, 0x81, 0x7c, 0x81, 0x7c, 0xed, 0x32, 0xf9, 0x4a, 0x93, 0xbc, 0xf0, 0x1f, 0x55, 0xe8, 0x7f,
		0x57, 0x99, 0x1c, 0xf3, 0x9a, 0xdb, 0x15, 0xb4, 0x0b, 0xb4, 0x0b, 0xb4, 0x0b, 0xb4, 0x0b, 0xb4,
		0x0b, 0xb4, 0x0b, 0xb4, 0x0b, 0xb4, 0x0b, 0xb4, 0x0b, 0xb4, 0x0b, 0xb4, 0x0b, 0xb4, 0x6b, 0xa7,
		0x69, 0x57, 0xa6, 0x0c, 0xb0, 0xae, 0x99, 0x4d, 0x41, 0xba, 0x40, 0xba, 0x40, 0xba, 0x40, 0xba,
		0x40, 0xba, 0x40, 0xba, 0x40, 0xba, 0x40, 0xba, 0x40, 0xba, 0x40, 0xba, 0x40, 0xba, 0x40, 0xba,
		0x76, 0x99, 0x74, 0x0d, 0xe2, 0x71, 0xc5, 0x5f, 0xf0, 0x3d, 0x52, 0xc2, 0x7d, 0x5e, 0x0d, 0x7b,
		0x83, 0x82, 0x81, 0x82, 0x81, 0x82, 0x81, 0x82, 0x81, 0x82, 0x81, 0x82, 0x81, 0x82, 0x81, 0x82,
		0x81, 0x82, 0x81, 0x82, 0x81, 0x82, 0x81, 0x82, 0xed, 0x11, 0x05, 0x93, 0xed, 0xf7, 0x6a, 0xda,
		0x1c, 0x24, 0x0c, 0x24, 0x0c, 0x24, 0x0c, 0x24, 0x0c, 0x24, 0x0c, 0x24, 0x0c, 0x24, 0x0c, 0x24,
		0x0c, 0x24, 0x0c, 0x24, 0x0c, 0x24, 0x0c, 0x24, 0xcc, 0x38, 0x09, 0x73, 0x6a, 0x3c, 0x23, 0xd3,
		0x75, 0x42, 0xb5, 0x7d, 0xcc, 0x5c, 0x2f, 0xb4, 0xe1, 0x0d, 0x03, 0x6f, 0x66, 0xe7, 0x7e, 0xbf,
		0x11, 0x99, 0x91, 0xeb, 0x89, 0xdf, 0x56, 0x74, 0x55, 0xe4, 0xfa, 0x64, 0x2c, 0x8a, 0xe6, 0x4b,
		0xde, 0x47, 0xbf, 0x32, 0x92, 0xc2, 0xc3, 0x67, 0x15, 0x5e, 0x4f, 0x85, 0x70, 0xe0, 0xc6, 0x49,
		0x61, 0x38, 0x25, 0xbd, 0x78, 0xf0, 0xfc, 0x5d, 0x65, 0x7e, 0xf2, 0xe8, 0x0f, 0xb5, 0x84, 0x7f,
		0x44, 0xf3, 0xc2, 0x7e, 0xbc, 0x23, 0x9a, 0x0f, 0x31, 0xa2, 0xd9, 0xb6, 0x30, 0x06, 0x46, 0x34,
		0xbb, 0x1f, 0xa6, 0x70, 0xcb, 0x07, 0x60, 0x0f, 0x47, 0xc8, 0x85, 0x21, 0x04, 0xc2, 0x0f, 0x42,
		0x61, 0x07, 0x81, 0xe0, 0x90, 0x64, 0x98, 0x41, 0x98, 0x13, 0x4a, 0x87, 0x15, 0x4c, 0x10, 0x3e,
		0x81, 0x30, 0x82, 0x68, 0xf8, 0xc0, 0x94, 0x8a, 0x98, 0x0b, 0x17, 0x18, 0xd1, 0x1a, 0x47, 0x69,
		0xf5, 0xbd, 0x2b, 0x14, 0xc4, 0xea, 0x8b, 0x6c, 0x98, 0xe9, 0xbe, 0x43, 0x34, 0x9f, 0xe3, 0x9e,
		0x29, 0x8b, 0xf9, 0x7c, 0x0f, 0xf7, 0xad, 0x9b, 0x3b, 0x1e, 0x76, 0x1f, 0x0b, 0x67, 0xef, 0xdf,
		0x5e, 0x7f, 0x02, 0x7a, 0xbb, 0x76, 0x4d, 0xab, 0xf4, 0xed, 0xac, 0xb8, 0x94, 0x15, 0x97, 0xb2,
		0x4a, 0xc7, 0x8d, 0x70, 0x29, 0x2b, 0x93, 0x75, 0xe3, 0xb9, 0x94, 0xb5, 0x50, 0xd9, 0xb3, 0x8e,
		0x79, 0x7c, 0xca, 0x79, 0x30, 0x9a, 0xdd, 0x09, 0x97, 0xb3, 0xe2, 0x72, 0x56, 0x3b, 0xe0, 0x4a,
		0x0c, 0xb6, 0xe4, 0xe1, 0xcb, 0x0d, 0x4e, 0xcb, 0x76, 0x39, 0x6b, 0x14, 0xe4, 0x2a, 0xf3, 0xd3,
		0x2c, 0x49, 0x55, 0x56, 0x68, 0x25, 0x70, 0x3d, 0x6b, 0x6d, 0x47, 0x5c, 0xd0, 0x2a, 0x0d, 0x7f,
		0x86, 0x60, 0x50, 0x0a, 0x0e, 0xc5, 0x61, 0x51, 0x1c, 0x1e, 0xcd, 0xc1, 0x24, 0x6f, 0x10, 0xd4,
		0xd9, 0x0b, 0x5a, 0x47, 0xa0, 0x16, 0xa4, 0x69, 0xa4, 0xc3, 0xd2, 0x79, 0xf3, 0x0b, 0x89, 0xfa,
		0xe7, 0x05, 0x50, 0xad, 0xed, 0x8f, 0xfe, 0x11, 0xdb, 0x20, 0xd7, 0x30, 0xf4, 0x4a, 0x43, 0xb0,
		0x31, 0x28, 0x36, 0x06, 0xc9, 0xe6, 0xa1, 0x99, 0x17, 0xa2, 0x99, 0xa1, 0xba, 0x12, 0x9f, 0x7c,
		0xff, 0xc8, 0x08, 0x43, 0x05, 0x70, 0x73, 0xce, 0x3d, 0x7d, 0x2b, 0xb0, 0xd7, 0x59, 0x3c, 0x78,
		0x1e, 0xca, 0xf2, 0x17, 0x7a, 0x3e, 0x97, 0x58, 0xee, 0xef, 0x3a, 0xc8, 0xfd, 0x70, 0x90, 0x65,
		0xa3, 0x03, 0x2b, 0x6a, 0xb5, 0xe7, 0xf6, 0x86, 0xc5, 0x86, 0xc5, 0x86, 0xc5, 0x86, 0xc5, 0x86,
		0xc5, 0xde, 0xe0, 0x24, 0xf6, 0x55, 0xa8, 0x9f, 0x83, 0x48, 0xb4, 0xe9, 0xf3, 0xe8, 0x58, 0x60,
		0xaf, 0x5a, 0xcd, 0xd4, 0x7b, 0xb4, 0x9a, 0xb6, 0x7f, 0x31, 0x93, 0xad, 0xa6, 0xc7, 0x68, 0x35,
		0x65, 0x47, 0xcd, 0x3d, 0x69, 0x35, 0xfd, 0x1d, 0xaa, 0xe4, 0xb6, 0x01, 0x96, 0xdb, 0x05, 0xc3,
		0x7d, 0x96, 0x11, 0xbd, 0xbc, 0x08, 0x8a, 0x41, 0x2e, 0x4d, 0xf1, 0xc6, 0xbb, 0x82, 0xdc, 0x81,
		0xdc, 0x81, 0xdc, 0x81, 0xdc, 0x81, 0xdc, 0x6d, 0x8c, 0x9c, 0x61, 0x12, 0x17, 0x59, 0x12, 0x8d,
		0x11, 0x14, 0xd1, 0xd9, 0xbd, 0x34, 0xda, 0x85, 0x7a, 0x4e, 0x55, 0x16, 0x14, 0x83, 0x4c, 0x3c,
		0xa5, 0x3a, 0xbb, 0x35, 0xcc, 0x37, 0xcc, 0x37, 0xcc, 0x37, 0xcc, 0x37, 0xcc, 0xf7, 0x06, 0x27,
		0x11, 0xb1, 0x59, 0xca, 0x4d, 0x11, 0x9b, 0x65, 0x50, 0x17, 0xc4, 0x66, 0xf9, 0x43, 0x5d, 0x88,
		0xcd, 0x42, 0x95, 0x5c, 0x30, 0xc0, 0x72, 0xbb, 0x60, 0xe6, 0x9f, 0x00, 0x40, 0xec, 0xc3, 0xcc,
		0xbf, 0x35, 0x33, 0x00, 0x66, 0x3a, 0xc9, 0xde, 0x08, 0xf5, 0x5c, 0x78, 0x46, 0xda, 0xa3, 0x57,
		0x0c, 0x06, 0xb8, 0x9b, 0xca, 0xe0, 0xe1, 0x62, 0x28, 0x83, 0xeb, 0xa9, 0x08, 0xf6, 0x78, 0xdc,
		0x5f, 0xa6, 0x42, 0xa5, 0x5f, 0xd4, 0x50, 0x67, 0x7e, 0x32, 0x5e, 0xf1, 0x5d, 0x71, 0x81, 0x85,
		0xfd, 0x1c, 0x6f, 0xf8, 0x39, 0x44, 0xc3, 0x8f, 0xa5, 0xf1, 0x11, 0x34, 0xfc, 0xa0, 0xe1, 0x67,
		0x24, 0x26, 0xf6, 0x86, 0x9f, 0x12, 0xc9, 0x4a, 0x6b, 0x5b, 0x64, 0x41, 0xe4, 0xf7, 0x55, 0x9c,
		0xeb, 0xe2, 0x55, 0x2e, 0x3a, 0xbd, 0x64, 0xff, 0x1d, 0x0b, 0x51, 0x1f, 0x22, 0x44, 0xed, 0x18,
		0x04, 0x1b, 0x83, 0x62, 0x63, 0x90, 0x6c, 0x1e, 0x9a, 0x65, 0xb8, 0x2b, 0x42, 0xd4, 0x24, 0xde,
		0x29, 0x42, 0xd4, 0x24, 0x7f, 0x10, 0xa2, 0x66, 0xd9, 0x16, 0x21, 0x6a, 0x5e, 0x55, 0x42, 0x88,
		0x7a, 0xa7, 0x55, 0x09, 0x21, 0x6a, 0xa3, 0xcf, 0xcf, 0x59, 0x89, 0x54, 0x24, 0x45, 0x10, 0x31,
		0x07, 0xcc, 0xea, 0x5c, 0x61, 0x66, 0x53, 0x50, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x50,
		0x3b, 0x50, 0x3b, 0x50, 0x3b, 0x50, 0x3b, 0xf8, 0xe3, 0xa0, 0x76, 0xa0, 0x76, 0xa0, 0x76, 0x7b,
		0x42, 0xed, 0x50, 0x7d, 0xd4, 0xb0, 0x8f, 0x1b, 0xd5, 0x47, 0x22, 0xe5, 0x1f, 0x9e, 0xcd, 0xb5,
		0x47, 0x37, 0x63, 0x09, 0x5c, 0x97, 0x02, 0xd8, 0xe3, 0xca, 0xa3, 0x5c, 0x45, 0x2a, 0x2c, 0x54,
		0x7f, 0x6e, 0x54, 0xa5, 0xee, 0xab, 0xb8, 0xd0, 0x8f, 0x5a, 0xa2, 0x14, 0x69, 0xdd, 0x03, 0x60,
		0x18, 0xb1, 0xa9, 0x68, 0x0a, 0x6a, 0x93, 0x1c, 0x8f, 0x96, 0xa0, 0x36, 0x69, 0x33, 0x31, 0xb1,
		0xd7, 0x26, 0xcd, 0x42, 0x5b, 0x98, 0xf4, 0x05, 0x7b, 0x66, 0x6b, 0x3b, 0x23, 0x68, 0x6d, 0x1b,
		0xcc, 0x1a, 0x86, 0x5b, 0x69, 0xd8, 0x35, 0x06, 0xbf, 0xc6, 0x60, 0xd8, 0x3c, 0x1c, 0xcb, 0xb0,
		0xd9, 0xdd, 0x0b, 0x5a, 0xe7, 0x45, 0xa6, 0xe3, 0x27, 0xc9, 0x88, 0xf5, 0x07, 0x24, 0x7a, 0x57,
		0x5a, 0xcf, 0x29, 0x31, 0x10, 0x9e, 0xe7, 0xbf, 0xea, 0x21, 0x60, 0x53, 0x61, 0x53, 0x61, 0x53,
		0x61, 0x53, 0x61, 0x53, 0xad, 0x06, 0x52, 0x0f, 0x73, 0xa4, 0x76, 0x99, 0xc5, 0x23, 0xc4, 0x3f,
		0x1b, 0xe2, 0x37, 0x13, 0x56, 0xf5, 0x6c, 0x8e, 0xf9, 0xdf, 0x8e, 0x45, 0x72, 0x32, 0x95, 0xc8,
		0xf9, 0x54, 0x20, 0xc8, 0x01, 0xf4, 0xfd, 0x50, 0xc5, 0x65, 0xf3, 0xda, 0x63, 0xa6, 0xfe, 0x1c,
		0xa8, 0x38, 0x7c, 0x15, 0x0c, 0xff, 0xd7, 0xf7, 0x46, 0xe4, 0xdf, 0x94, 0xfb, 0x8c, 0xc8, 0xbf,
		0xe3, 0xee, 0x31, 0x22, 0xff, 0x9b, 0x89, 0x89, 0x3d, 0xf2, 0x2f, 0x87, 0xa8, 0xb5, 0xb3, 0x2b,
		0x05, 0xa8, 0x88, 0x53, 0x20, 0x4e, 0x81, 0x38, 0x05, 0xe2, 0x14, 0x3b, 0x16, 0xa7, 0x18, 0xe8,
		0xb8, 0x10, 0xad, 0x56, 0xff, 0x80, 0xba, 0xf1, 0xf6, 0x2f, 0x66, 0xb2, 0x6e, 0xfc, 0x10, 0xc5,
		0xbe, 0xec, 0xe0, 0xb5, 0x27, 0x75, 0xe3, 0xa6, 0x54, 0xe9, 0xe8, 0xc3, 0xdb, 0xb7, 0xef, 0xde,
		0xbf, 0x7d, 0x7b, 0xf8, 0xfe, 0xf7, 0xf7, 0x87, 0x7f, 0xfb, 0xe3, 0x8f, 0xa3, 0x77, 0x47, 0x7f,
		0xa0, 0x94, 0xdc, 0xb5, 0x5d, 0xd0, 0x25, 0x5c, 0x57, 0xab, 0x8a, 0xfd, 0xf8, 0x61, 0x12, 0xe7,
		0x45, 0x16, 0x68, 0xc9, 0xfb, 0x64, 0x1b, 0x77, 0x97, 0xa1, 0x61, 0x47, 0xa0, 0x61, 0xa0, 0x61,
		0xa0, 0x61, 0xa0, 0x61, 0x94, 0xe2, 0xe3, 0x8e, 0x97, 0x55, 0x1b, 0x05, 0xfd, 0xff, 0x0c, 0xf2,
		0x62, 0xf8, 0xa5, 0xfc, 0xa7, 0x2c, 0x88, 0x07, 0x51, 0x90, 0x49, 0x4c, 0xf3, 0xab, 0x01, 0xc1,
		0x92, 0xe7, 0x10, 0xd2, 0x56, 0x59, 0xaf, 0x50, 0x0c, 0xd2, 0x4d, 0x40, 0xbb, 0x25, 0x10, 0x6f,
		0x0a, 0xea, 0x8d, 0x43, 0xbe, 0x71, 0xe8, 0xb7, 0xc7, 0x04, 0x08, 0xd3, 0x0e, 0xa1, 0xb3, 0x2c,
		0x16, 0xa1, 0xb3, 0x0b, 0xa3, 0x3d, 0xe1, 0xa2, 0xa2, 0x6a, 0x4f, 0x99, 0xe2, 0x22, 0x39, 0x5d,
		0x15, 0xd0, 0xd3, 0xde, 0x53, 0xa6, 0xfb, 0x32, 0x75, 0xc3, 0x35, 0x25, 0x9d, 0x6e, 0x0d, 0xdf,
		0x01, 0xbe, 0x03, 0x7c, 0x07, 0xf8, 0x0e, 0xf0, 0x1d, 0x2c, 0xf0, 0x1d, 0xa4, 0x61, 0x19, 0xee,
		0x02, 0xe2, 0x28, 0x72, 0xb5, 0xca, 0xd5, 0x7e, 0x8e, 0xd5, 0x2c, 0xd7, 0x4a, 0x97, 0xde, 0x18,
		0x08, 0xa4, 0x7b, 0x2e, 0xd4, 0x32, 0x9f, 0x8e, 0x24, 0xf5, 0x79, 0x22, 0x9e, 0x87, 0xea, 0x6f,
		0xa7, 0x53, 0x39, 0xa1, 0xfd, 0x80, 0xff, 0x68, 0xa3, 0xfd, 0x60, 0xc3, 0xa3, 0xbc, 0xcf, 0x9d,
		0x07, 0x8b, 0xa7, 0x15, 0x4d, 0x07, 0xaa, 0xef, 0x3f, 0x27, 0xfd, 0x41, 0xc4, 0x7b, 0x70, 0xea,
		0xdd, 0x06, 0x33, 0x9b, 0x72, 0x95, 0x16, 0xab, 0xc7, 0x60, 0x10, 0x95, 0x4c, 0xe1, 0xdb, 0xd7,
		0x4f, 0x67, 0x9f, 0xcf, 0xbf, 0x9e, 0x7d, 0x62, 0x6e, 0x69, 0x38, 0x44, 0x4b, 0x83, 0x6d, 0xdc,
		0x1d, 0x2d, 0x0d, 0xee, 0x73, 0x6f, 0xb7, 0xfc, 0x10, 0x76, 0x2e, 0x5d, 0x9d, 0xa4, 0x29, 0x86,
		0xfa, 0x85, 0x0a, 0x7f, 0xc4, 0xfa, 0xcf, 0x01, 0x27, 0x8d, 0x96, 0xa0, 0xcd, 0xcc, 0x34, 0xd9,
		0x31, 0xcb, 0x3c, 0xba, 0xcc, 0x6e, 0x24, 0x10, 0x21, 0xbb, 0x5c, 0x6d, 0x89, 0xe6, 0x3f, 0x58,
		0x4a, 0x58, 0x4a, 0x58, 0x4a, 0x97, 0x9b, 0xff, 0x50, 0x7b, 0xca, 0xb4, 0x0d, 0x6a, 0x4f, 0x9d,
		0x85, 0x5f, 0x63, 0x30, 0x6c, 0x0c, 0x8e, 0xcd, 0xc3, 0x32, 0x2f, 0x3c, 0x33, 0xc3, 0xb4, 0x18,
		0x5c, 0x57, 0x1b, 0xa1, 0xf6, 0x14, 0xf5, 0x23, 0xbb, 0x08, 0xf1, 0xa6, 0xa0, 0xde, 0x38, 0xe4,
		0x1b, 0x87, 0x7e, 0x7b, 0x4c, 0x80, 0x8c, 0x29, 0x10, 0x32, 0x09, 0x72, 0x31, 0x2f, 0x3b, 0x31,
		0xda, 0x43, 0x31, 0x89, 0x33, 0x7a, 0x8a, 0xda, 0x53, 0xf8, 0x0e, 0xf0, 0x1d, 0xe0, 0x3b, 0xc0,
		0x77, 0x80, 0xef, 0x80, 0xda, 0x53, 0xc7, 0xdd, 0x05, 0xd4, 0x9e, 0x6e, 0xb1, 0x9f, 0x63, 0x05,
		0x6b, 0x93, 0x0c, 0x24, 0x4a, 0x4e, 0x97, 0x14, 0xb1, 0xdd, 0x8e, 0x05, 0xb4, 0x53, 0xa5, 0xa6,
		0x8c, 0x79, 0xcd, 0x28, 0xf9, 0xa9, 0x32, 0x13, 0x03, 0x20, 0x17, 0x37, 0xc6, 0xf8, 0x47, 0x5b,
		0x9d, 0x7c, 0xe4, 0x7e, 0x90, 0xfb, 0x81, 0xcf, 0x62, 0x83, 0x93, 0x8e, 0xf1, 0x8f, 0x74, 0x7f,
		0x30, 0xfe, 0x91, 0x65, 0x5b, 0x8c, 0x7f, 0xe4, 0x55, 0x25, 0x8c, 0x7f, 0xc4, 0xf8, 0x47, 0x27,
		0x77, 0xc1, 0xf8, 0xc7, 0xba, 0x5a, 0x0d, 0xd2, 0xd4, 0x0c, 0xf9, 0x5a, 0xdc, 0x18, 0xe4, 0x0b,
		0xe4, 0x0b, 0xe4, 0x0b, 0xe4, 0x0b, 0xe4, 0x0b, 0xe4, 0x0b, 0xe4, 0x0b, 0xe4, 0x0b, 0xe4, 0x0b,
		0xe4, 0x0b, 0xe4, 0x0b, 0xe4, 0xcb, 0x38, 0xf9, 0xc2, 0x90, 0x95, 0x86, 0x7d, 0x1c, 0xcd, 0x59,
		0xef, 0xf3, 0x6c, 0x95, 0x49, 0x5a, 0x7a, 0x9f, 0x67, 0xaa, 0x14, 0x59, 0x10, 0xe7, 0xcf, 0x7a,
		0xa8, 0x12, 0x69, 0xf2, 0x53, 0x65, 0xfc, 0x8d, 0xdb, 0xb5, 0x1d, 0xd1, 0xb7, 0x6d, 0x2a, 0x9e,
		0x81, 0xbe, 0x6d, 0xc7, 0xe3, 0x15, 0xe8, 0xdb, 0xde, 0x4c, 0x4c, 0xec, 0x7d, 0xdb, 0x25, 0x92,
		0x8d, 0x8d, 0x6a, 0x10, 0xf9, 0x7d, 0x15, 0xe7, 0x12, 0x0d, 0x80, 0xd5, 0x01, 0x5e, 0xb2, 0x3f,
		0x42, 0xc8, 0xb6, 0x41, 0xae, 0x61, 0xe8, 0x95, 0x86, 0x60, 0x63, 0x50, 0x6c, 0x0c, 0x92, 0xcd,
		0x43, 0xb3, 0x0c, 0x83, 0xdd, 0xbd, 0x10, 0x72, 0x5f, 0x85, 0xfa, 0x39, 0x88, 0x44, 0xa3, 0xc8,
		0x47, 0xc7, 0x02, 0x7b, 0xd5, 0x62, 0x35, 0xef, 0x11, 0xbb, 0x6e, 0xff, 0x62, 0x26, 0x63, 0xd7,
		0xc7, 0x88, 0x5d, 0xb3, 0xa3, 0xe6, 0x9e, 0xc4, 0xae, 0x7f, 0x87, 0x2a, 0xb9, 0x6d, 0x80, 0xe5,
		0x76, 0x41, 0x95, 0x50, 0x5d, 0xad, 0x8a, 0xa4, 0x08, 0x22, 0xe6, 0x90, 0x59, 0x9d, 0x2b, 0xcc,
		0x6c, 0x0a, 0x6a, 0x07, 0x6a, 0x07, 0x6a, 0x07, 0x6a, 0x07, 0x6a, 0x07, 0x6a, 0x07, 0x6a, 0x07,
		0x6a, 0x07, 0x7f, 0x1c, 0xd4, 0x0e, 0xd4, 0x0e, 0xd4, 0x6e, 0x4f, 0xa8, 0x1d, 0x6a, 0x90, 0x1a,
		0xf6, 0x71, 0xa3, 0x06, 0x49, 0xa8, 0x00, 0xc4, 0xb3, 0xb9, 0x04, 0xe9, 0xae, 0x92, 0xc1, 0x75,
		0x29, 0x02, 0x57, 0x2a, 0x90, 0x0e, 0x2c, 0x3e, 0x6e, 0xdc, 0xc7, 0xcc, 0x8d, 0xe3, 0xd5, 0xe3,
		0xb8, 0xde, 0xc3, 0xce, 0x53, 0x44, 0x7b, 0x6a, 0xe8, 0x74, 0x9b, 0x66, 0x25, 0xa2, 0xd3, 0xc1,
		0x75, 0x2a, 0xac, 0x3c, 0x0d, 0x84, 0xca, 0x6f, 0x8b, 0xd2, 0xd3, 0x28, 0x79, 0x77, 0x95, 0x24,
		0x50, 0xc7, 0x5e, 0x1a, 0x64, 0x2a, 0x2e, 0x16, 0xbf, 0x38, 0x99, 0x5a, 0x4e, 0xab, 0xa1, 0x9a,
		0xf7, 0x21, 0x3a, 0x50, 0xb4, 0x85, 0xa5, 0xe4, 0x85, 0xa4, 0x1c, 0xa1, 0xee, 0xf9, 0x90, 0xf6,
		0xe4, 0xf8, 0xbd, 0xd0, 0x96, 0x98, 0x71, 0x05, 0xae, 0xd9, 0x03, 0xd4, 0xec, 0x81, 0xe8, 0x7a,
		0xc0, 0x79, 0xee, 0x13, 0xec, 0xa8, 0xe1, 0xa2, 0x2e, 0xda, 0xec, 0x2d, 0xe0, 0x81, 0x3f, 0x18,
		0xe8, 0x3e, 0xbd, 0xb6, 0x4d, 0x8e, 0x4a, 0xe3, 0x6e, 0xc4, 0x7a, 0xc1, 0x93, 0xa5, 0x63, 0xcb,
		0xca, 0x71, 0x66, 0xe1, 0xe6, 0x21, 0x6a, 0xe2, 0x68, 0x70, 0x78, 0xc3, 0xcc, 0xf9, 0x35, 0xb1,
		0x7c, 0x9a, 0x58, 0xfe, 0xac, 0x0e, 0x5f, 0xd5, 0xe7, 0xd9, 0x33, 0x86, 0xca, 0x96, 0xf9, 0x9a,
		0x4e, 0x70, 0x54, 0xc1, 0x63, 0xa6, 0x1e, 0x39, 0xf4, 0x7e, 0xe2, 0xf7, 0x30, 0xa4, 0x98, 0x7a,
		0xd7, 0x0d, 0x34, 0xe2, 0x63, 0xc5, 0x1a, 0x66, 0x55, 0xe6, 0x63, 0x9d, 0x54, 0x34, 0xfe, 0xf3,
		0xc2, 0x8f, 0x4b, 0xc2, 0x31, 0xff, 0xa3, 0x66, 0xfa, 0x31, 0xff, 0x3b, 0x25, 0x68, 0xdb, 0x4a,
		0x33, 0x7f, 0x23, 0x36, 0x8d, 0x02, 0xf6, 0x10, 0x46, 0x10, 0x46, 0x10, 0x46, 0x10, 0x46, 0x10,
		0x46, 0xd0, 0x12, 0x23, 0xb8, 0x2f, 0x06, 0xae, 0x12, 0x18, 0xaf, 0x91, 0x9b, 0xdf, 0x06, 0x86,
		0x0e, 0x86, 0x0e, 0x86, 0x0e, 0x86, 0x0e, 0x86, 0x4e, 0xd8, 0xd0, 0x59, 0x6d, 0xd5, 0x90, 0x1d,
		0x64, 0xcb, 0x0e, 0xb2, 0x26, 0x7e, 0x3c, 0xf1, 0xac, 0xe0, 0x75, 0xf9, 0x3a, 0x73, 0xbf, 0xbe,
		0x53, 0xe9, 0xc0, 0x2c, 0x29, 0xc6, 0x9f, 0x30, 0x4b, 0x22, 0xc5, 0x90, 0x07, 0x5c, 0xd8, 0x80,
		0x36, 0x01, 0x78, 0x48, 0x9d, 0x00, 0x3c, 0x44, 0x02, 0x10, 0x09, 0xc0, 0x0d, 0x7d, 0xaa, 0x7d,
		0x48, 0x00, 0x92, 0xfb, 0x4f, 0xcc, 0xc0, 0xe0, 0x31, 0xdd, 0x96, 0x47, 0x7c, 0x1b, 0x9e, 0x1d,
		0xe0, 0x3f, 0x53, 0xb2, 0xe6, 0xf7, 0x75, 0x36, 0xfa, 0x1a, 0xf4, 0x26, 0xa0, 0x79, 0x1b, 0xcb,
		0x0d, 0x81, 0x43, 0x95, 0x20, 0x43, 0xdf, 0x07, 0x26, 0xc0, 0x90, 0x09, 0x28, 0x85, 0x0f, 0xf0,
		0xb7, 0x08, 0x12, 0x60, 0x02, 0x5a, 0x9a, 0x80, 0xbc, 0x08, 0x0a, 0xc5, 0x0b, 0xff, 0xa3, 0x2d,
		0x00, 0xfd, 0x80, 0x7e, 0x40, 0x3f, 0xa0, 0x9f, 0x14, 0x0e, 0x00, 0xfb, 0x5b, 0xbc, 0x13, 0x69,
		0x06, 0x6e, 0x7a, 0x01, 0x08, 0x5d, 0xc2, 0x0d, 0x01, 0x1e, 0x80, 0x3b, 0xc0, 0xdd, 0x39, 0x70,
		0x27, 0x4e, 0xb9, 0x57, 0x78, 0xfe, 0xc1, 0x16, 0xec, 0x3d, 0x30, 0xf8, 0xfd, 0x86, 0x07, 0x8d,
		0x48, 0xc8, 0xbd, 0x0b, 0x9d, 0x17, 0x27, 0x45, 0x41, 0x53, 0xdd, 0xdf, 0xbb, 0xd4, 0xf1, 0x59,
		0xa4, 0x86, 0x27, 0x28, 0xa7, 0x81, 0xd8, 0xde, 0x65, 0xf0, 0xd7, 0xcc, 0x8a, 0x3c, 0x97, 0xad,
		0xf4, 0xae, 0xb2, 0xbe, 0xca, 0x54, 0xff, 0xef, 0x43, 0xa9, 0xc6, 0x83, 0x28, 0x32, 0xfa, 0x71,
		0x4f, 0x06, 0x4f, 0xc3, 0xd7, 0x55, 0x7d, 0x92, 0xa9, 0x2e, 0xc4, 0x96, 0xdd, 0x92, 0x9a, 0xe0,
		0xd9, 0x88, 0xfb, 0xc7, 0x2a, 0x0d, 0xd9, 0xf0, 0x4f, 0x0d, 0x89, 0x49, 0x2a, 0xc7, 0xe4, 0x93,
		0xca, 0xc3, 0x4c, 0xa7, 0xe3, 0x50, 0xe9, 0xe4, 0xb3, 0xe5, 0x5e, 0xf1, 0x43, 0x79, 0xdf, 0x83,
		0x5c, 0x79, 0x17, 0xc1, 0xab, 0xca, 0xae, 0xb3, 0xa4, 0x48, 0xc2, 0x24, 0xf2, 0x74, 0xfc, 0x98,
		0x64, 0xcf, 0xa5, 0xbb, 0xeb, 0xe9, 0xd8, 0xab, 0x67, 0x18, 0xbd, 0x9f, 0xba, 0xf8, 0xe1, 0x5d,
		0x9d, 0x7e, 0x29, 0xbb, 0x27, 0xf5, 0xa3, 0x0e, 0x67, 0xff, 0x1f, 0xdb, 0x1b, 0xe6, 0x9c, 0x71,
		0xa7, 0xd8, 0x66, 0xc0, 0xc1, 0xad, 0xda, 0xdc, 0xad, 0xe2, 0x9a, 0xd1, 0xb6, 0xe3, 0x4d, 0x73,
		0x6b, 0x1a, 0xae, 0xd9, 0x2a, 0x29, 0xc5, 0x1a, 0xbd, 0xdd, 0x05, 0x56, 0x26, 0x80, 0x65, 0x03,
		0x5a, 0x4e, 0xc0, 0x15, 0x06, 0x5e, 0x6e, 0x00, 0x16, 0x03, 0x62, 0x31, 0x40, 0x96, 0x07, 0x66,
		0x5a, 0x80, 0xa6, 0x5f, 0x6d, 0x87, 0x62, 0x7a, 0xf0, 0xf8, 0x85, 0x3c, 0xfe, 0x38, 0x89, 0x15,
		0xdc, 0x72, 0xb8, 0xe5, 0x70, 0xcb, 0xe1, 0x96, 0x6b, 0x3f, 0xc8, 0x73, 0xf5, 0xfc, 0x3d, 0x7a,
		0x35, 0xe6, 0x9f, 0x6f, 0xf0, 0x00, 0xbc, 0x8e, 0x3a, 0x21, 0x1e, 0xc2, 0x9b, 0x86, 0x37, 0x0d,
		0x6f, 0x1a, 0xde, 0x34, 0xbc, 0x69, 0x78, 0xd3, 0xf0, 0xa6, 0xe1, 0x4d, 0xc3, 0x9b, 0xde, 0x1f,
		0x6f, 0xba, 0x94, 0x96, 0x1f, 0xfe, 0x08, 0xe2, 0x58, 0x45, 0x26, 0xbc, 0xe9, 0x4d, 0x1f, 0x00,
		0xde, 0x34, 0xbc, 0x69, 0x78, 0xd3, 0xf0, 0xa6, 0xf7, 0xc6, 0x9b, 0xee, 0xb4, 0xc2, 0x7d, 0xd7,
		0xb2, 0x18, 0xda, 0xe6, 0x78, 0x33, 0x4d, 0xf1, 0x04, 0x87, 0x52, 0xb4, 0xeb, 0xbd, 0xdb, 0x21,
		0x6b, 0xaf, 0x30, 0xed, 0xfe, 0xcf, 0x96, 0x2e, 0x0d, 0x95, 0x6a, 0xb1, 0xab, 0x54, 0x07, 0xed,
		0xe1, 0xd3, 0x9a, 0x76, 0x2a, 0xb2, 0xfd, 0x07, 0x6e, 0xf1, 0x71, 0x7b, 0x51, 0xf0, 0xaa, 0x32,
		0x3f, 0x1d, 0x57, 0x0a, 0xf8, 0xe3, 0xb7, 0x6f, 0xf7, 0x85, 0xa7, 0x73, 0x5e, 0x1a, 0x16, 0x6d,
		0xa9, 0x78, 0xdd, 0x6a, 0xdb, 0x3b, 0x37, 0x2a, 0x51, 0xf8, 0x57, 0xe4, 0xc3, 0x9f, 0xa8, 0x3c,
		0x25, 0x72, 0x8f, 0x88, 0xdc, 0xf3, 0xe1, 0x18, 0xce, 0x24, 0x0b, 0x9c, 0x9d, 0xeb, 0xc7, 0x19,
		0x0e, 0x95, 0x47, 0xd4, 0xfe, 0xd3, 0xb1, 0xdd, 0x47, 0x08, 0xe0, 0xf4, 0xa3, 0x0a, 0x5f, 0xc3,
		0x48, 0x75, 0xec, 0xd9, 0x9c, 0x7e, 0x87, 0x85, 0x05, 0x01, 0x6c, 0x44, 0x4d, 0x38, 0xfb, 0x0c,
		0x6b, 0x5d, 0x9b, 0x68, 0x9c, 0x05, 0x35, 0x92, 0xc3, 0xb4, 0x67, 0x80, 0x16, 0xff, 0xd7, 0x4f,
		0x93, 0xac, 0x20, 0x98, 0x43, 0x32, 0xf3, 0x1d, 0xea, 0x8b, 0x02, 0xd8, 0xe0, 0xb1, 0xc1, 0x63,
		0xeb, 0xa0, 0x3d, 0x24, 0xe7, 0x69, 0x4f, 0xb1, 0xad, 0xd3, 0x84, 0xbd, 0x06, 0x58, 0xeb, 0x30,
		0x37, 0x0b, 0x88, 0x06, 0x44, 0x03, 0xa2, 0x4d, 0x11, 0xad, 0xe3, 0x08, 0xba, 0xbd, 0x01, 0xb3,
		0xe7, 0x20, 0x4d, 0x55, 0xdf, 0xcf, 0x55, 0xf6, 0xa2, 0x43, 0xe5, 0xeb, 0xb8, 0x50, 0xd9, 0x63,
		0x10, 0x76, 0xbd, 0x46, 0x70, 0x9a, 0x84, 0x5d, 0xbd, 0x7e, 0x37, 0xb0, 0x3b, 0x02, 0xd8, 0x01,
		0xec, 0x5c, 0x04, 0xbb, 0xae, 0xc5, 0x16, 0xbd, 0x25, 0xe7, 0x89, 0xe6, 0x26, 0x86, 0x4a, 0x35,
		0x57, 0xee, 0xd2, 0x75, 0xf6, 0x01, 0xc9, 0x3c, 0x18, 0xb2, 0x9a, 0x05, 0xca, 0x1a, 0x05, 0xa6,
		0xb9, 0x2f, 0xd4, 0xb5, 0x07, 0x6c, 0xb5, 0x06, 0x6c, 0xb5, 0x05, 0x7c, 0x73, 0x5d, 0xcc, 0xce,
		0x01, 0x21, 0x9b, 0xdf, 0xc2, 0x70, 0x89, 0x01, 0xe5, 0xa5, 0x05, 0x1b, 0x5c, 0x52, 0x30, 0xfe,
		0xd9, 0x12, 0xe4, 0x99, 0xfb, 0x9d, 0xee, 0x17, 0x12, 0xb8, 0x92, 0xd8, 0x1e, 0xcf, 0x89, 0x61,
		0x80, 0x63, 0x9a, 0xb9, 0x31, 0x74, 0xf3, 0x62, 0x58, 0xe7, 0xc4, 0xd0, 0xcc, 0x87, 0xd9, 0xd5,
		0xea, 0x04, 0x16, 0x4f, 0xdd, 0xe3, 0xa9, 0x59, 0xb8, 0x2c, 0x9f, 0xf5, 0x76, 0xf4, 0xa8, 0xe7,
		0x93, 0x27, 0xed, 0x50, 0xea, 0x22, 0x44, 0xb6, 0xe6, 0x2a, 0x52, 0x17, 0x2f, 0x33, 0xee, 0x54,
		0x0d, 0xbb, 0xa4, 0xea, 0xb5, 0x71, 0x0f, 0xc3, 0xa4, 0xeb, 0xd0, 0x16, 0xd2, 0x45, 0x56, 0x2d,
		0xba, 0xcf, 0xd4, 0x8b, 0xaa, 0x9a, 0xd3, 0x31, 0x02, 0xf6, 0x1c, 0xfa, 0x69, 0x92, 0x44, 0x74,
		0x5c, 0x6b, 0xb2, 0x20, 0x0d, 0xad, 0x3a, 0xa2, 0xa2, 0x55, 0xc7, 0xb6, 0xd2, 0x2a, 0xf2, 0x52,
		0x6f, 0xd0, 0x2b, 0xfe, 0x52, 0x6d, 0xb3, 0x34, 0x8b, 0xaa, 0xc5, 0xa5, 0x17, 0xbc, 0x04, 0x3a,
		0x0a, 0xbe, 0x47, 0xaa, 0xb4, 0xa7, 0x45, 0x36, 0x0a, 0xf3, 0xd2, 0x76, 0x18, 0x36, 0xec, 0x61,
		0x79, 0x57, 0xdd, 0x31, 0xba, 0xea, 0xd0, 0x55, 0x67, 0x0c, 0x5a, 0x68, 0x20, 0x86, 0x08, 0x6a,
		0xc8, 0x21, 0xa7, 0x5a, 0xf0, 0x31, 0x53, 0x7f, 0x0e, 0x54, 0x1c, 0x96, 0xdc, 0x2e, 0x2f, 0xb2,
		0xa0, 0x4b, 0x96, 0x66, 0xed, 0x71, 0x69, 0xdc, 0x0d, 0xcd, 0x6c, 0x68, 0x66, 0xb3, 0x03, 0xb6,
		0xc4, 0xe0, 0x4b, 0x1e, 0xc6, 0x68, 0xe1, 0x8c, 0x18, 0xd6, 0xd8, 0xe0, 0x6d, 0xea, 0x61, 0xf5,
		0xff, 0x33, 0xc8, 0x8b, 0xa1, 0xa4, 0xfd, 0xa7, 0x2c, 0x88, 0x07, 0x51, 0x90, 0xe9, 0xe2, 0x95,
		0x4f, 0x53, 0x2b, 0xaf, 0xab, 0x79, 0x5f, 0x26, 0x6d, 0xe2, 0xb9, 0x7c, 0x9c, 0x1d, 0x02, 0x25,
		0xa0, 0xd0, 0x10, 0x24, 0x4a, 0x41, 0xa3, 0x38, 0x44, 0x8a, 0x43, 0xa5, 0x39, 0xc8, 0xe4, 0x81,
		0x4e, 0x26, 0x08, 0xad, 0xc4, 0xc4, 0x76, 0xb1, 0xb9, 0x59, 0x8c, 0xf3, 0x98, 0x6e, 0xf1, 0xa9,
		0xed, 0x41, 0x7b, 0xab, 0x0f, 0xbf, 0x2e, 0x31, 0xe8, 0x51, 0xef, 0x29, 0xd3, 0x7d, 0xbf, 0xe0,
		0x54, 0xa4, 0x4a, 0x89, 0xa6, 0x5b, 0xc1, 0x36, 0xc2, 0x36, 0xc2, 0x36, 0xc2, 0x36, 0xee, 0x84,
		0x6d, 0xe4, 0x86, 0x35, 0x98, 0x43, 0x27, 0x79, 0x2e, 0xf1, 0xd0, 0x92, 0xda, 0xfa, 0x6c, 0x35,
		0x1d, 0x6b, 0x8b, 0x01, 0xde, 0x8c, 0xf3, 0x8e, 0x6f, 0xea, 0xf9, 0x86, 0x37, 0x02, 0xd1, 0x3f,
		0x8f, 0xa9, 0x3e, 0x64, 0xf8, 0xde, 0xa7, 0xa3, 0xd7, 0x9e, 0xfb, 0x97, 0xdb, 0x54, 0x85, 0x0f,
		0x97, 0xe1, 0x75, 0x92, 0x44, 0x0f, 0x27, 0x93, 0x37, 0xbe, 0x1d, 0xbf, 0xf0, 0xc3, 0xe7, 0xc9,
		0x0b, 0x9f, 0x4e, 0xdf, 0xd7, 0xd6, 0x61, 0x42, 0x84, 0x59, 0x8b, 0x28, 0xf9, 0xa9, 0x32, 0xbf,
		0xfa, 0xda, 0x7c, 0xe1, 0xe4, 0xc5, 0x8d, 0x78, 0x22, 0xc9, 0x87, 0x88, 0x24, 0x23, 0x92, 0x6c,
		0xbb, 0x0b, 0x88, 0x48, 0xb2, 0x90, 0x8b, 0x37, 0xbd, 0xca, 0x52, 0xc7, 0xc5, 0xbb, 0xb7, 0x1c,
		0xca, 0x3f, 0xc6, 0x9d, 0x0f, 0x0c, 0x4b, 0xdf, 0x04, 0xf1, 0x93, 0x22, 0xb9, 0x40, 0xb0, 0xe9,
		0x0f, 0xa3, 0x43, 0x7d, 0xa9, 0x63, 0x01, 0x82, 0xc8, 0x1a, 0x23, 0xa8, 0xb6, 0xf9, 0x57, 0x10,
		0x0d, 0x94, 0xc0, 0x3e, 0x9f, 0xb3, 0xa0, 0x6c, 0xc2, 0xfe, 0xa4, 0x9f, 0xf4, 0xa8, 0x90, 0x9a,
		0x8f, 0xff, 0x31, 0x52, 0x8f, 0xcb, 0xe0, 0xaf, 0x9d, 0xfb, 0xf4, 0x3c, 0x17, 0x96, 0x5a, 0xa3,
		0x0d, 0x8e, 0x90, 0xc4, 0xfb, 0x3d, 0x70, 0xc6, 0x07, 0x69, 0x2a, 0xe3, 0x8c, 0x2f, 0x6e, 0x04,
		0x67, 0x1c, 0xce, 0x38, 0x9c, 0x71, 0x38, 0xe3, 0x70, 0xc6, 0xe1, 0x8c, 0xc3, 0x19, 0x87, 0x33,
		0x0e, 0x67, 0x1c, 0xce, 0xb8, 0x93, 0xce, 0xb8, 0x55, 0x05, 0xe0, 0xe3, 0xd6, 0xed, 0x05, 0x67,
		0xdb, 0xe3, 0x89, 0x84, 0xd3, 0x74, 0x73, 0x37, 0x99, 0x0f, 0x9a, 0xee, 0xee, 0x26, 0x74, 0x62,
		0xeb, 0xf6, 0xae, 0x6d, 0x46, 0xd2, 0xfd, 0xcd, 0xa5, 0x27, 0x4c, 0x19, 0x46, 0x3b, 0x33, 0x8b,
		0x94, 0x2d, 0x37, 0xb6, 0x24, 0x0f, 0x7b, 0xbb, 0x73, 0x57, 0x5e, 0x2f, 0x09, 0xc3, 0x41, 0xaa,
		0x55, 0x9f, 0xb1, 0xbd, 0xad, 0xbe, 0x05, 0xba, 0xdb, 0x2c, 0x8f, 0x2f, 0xa0, 0xbb, 0xcd, 0x7c,
		0xfc, 0x00, 0xdd, 0x6d, 0x84, 0xc7, 0x05, 0xdd, 0x6d, 0x22, 0xf0, 0x24, 0x0c, 0x53, 0xdc, 0x70,
		0x25, 0x06, 0x5b, 0x62, 0xf0, 0x25, 0x0f, 0x63, 0x3c, 0xac, 0x14, 0xdd, 0x6d, 0x6b, 0x0e, 0x1e,
		0xba, 0xdb, 0x2c, 0x81, 0x42, 0x43, 0x90, 0x28, 0x05, 0x8d, 0xe2, 0x10, 0x29, 0x0e, 0x95, 0xe6,
		0x20, 0x93, 0x39, 0x4c, 0x88, 0xee, 0xb6, 0xd6, 0x2e, 0x1e, 0xca, 0xf9, 0x59, 0xf5, 0x08, 0xdd,
		0x6d, 0xb0, 0x8d, 0xb0, 0x8d, 0xb0, 0x8d, 0xb0, 0x8d, 0xd6, 0xc2, 0x1a, 0xcc, 0xa1, 0x93, 0x3c,
		0x77, 0x0f, 0xba, 0xdb, 0x6a, 0xe9, 0x86, 0x5d, 0x6f, 0x6e, 0xbb, 0x1a, 0xbf, 0x30, 0x7a, 0xdb,
		0xd0, 0xdb, 0x66, 0xc0, 0x51, 0x44, 0x1c, 0xd9, 0x3e, 0x47, 0x10, 0x71, 0x64, 0x43, 0xf6, 0x15,
		0xe5, 0xb4, 0x8d, 0x4b, 0xa3, 0x9c, 0xd6, 0x5c, 0x84, 0xa0, 0xda, 0x06, 0xe5, 0xb4, 0xdb, 0x7d,
		0x7a, 0x94, 0xd3, 0xba, 0xa6, 0x0d, 0x28, 0xa7, 0xb5, 0xc6, 0x19, 0x47, 0x6f, 0x1b, 0x9c, 0x71,
		0x38, 0xe3, 0x70, 0xc6, 0xe1, 0x8c, 0xc3, 0x19, 0x87, 0x33, 0x0e, 0x67, 0x1c, 0xce, 0x38, 0x9c,
		0x71, 0x38, 0xe3, 0xe2, 0x2b, 0xa1, 0xb7, 0x6d, 0xce, 0x7c, 0xa0, 0xb7, 0x8d, 0x59, 0x4f, 0x76,
		0xb8, 0xb7, 0x8d, 0xab, 0x8d, 0xc9, 0xb3, 0x28, 0x75, 0xb8, 0x4b, 0x9d, 0x6d, 0xf9, 0x20, 0x4d,
		0x93, 0xac, 0x60, 0xbe, 0xbb, 0xad, 0x71, 0x17, 0xf4, 0xb7, 0x59, 0x1e, 0x63, 0x40, 0x7f, 0x9b,
		0xf9, 0x18, 0x02, 0xfa, 0xdb, 0x08, 0x8f, 0x0b, 0xfa, 0xdb, 0x44, 0xe0, 0x49, 0x18, 0xa6, 0xb8,
		0xe1, 0x4a, 0x0c, 0xb6, 0xc4, 0xe0, 0x4b, 0x1e, 0xc6, 0x78, 0x98, 0x29, 0xfa, 0xdb, 0xd6, 0x1c,
		0x3c, 0xf4, 0xb7, 0x59, 0x02, 0x85, 0x86, 0x20, 0x51, 0x0a, 0x1a, 0xc5, 0x21, 0x52, 0x1c, 0x2a,
		0xcd, 0x41, 0x26, 0x73, 0xa8, 0x10, 0xfd, 0x6d, 0xad, 0x5d, 0x3c, 0x14, 0xf4, 0xb3, 0xea, 0x11,
		0xfa, 0xdb, 0x60, 0x1b, 0x61, 0x1b, 0x61, 0x1b, 0x61, 0x1b, 0xad, 0x85, 0x35, 0x98, 0x43, 0x27,
		0x79, 0xee, 0x1e, 0xf4, 0xb7, 0x35, 0x65, 0x1c, 0x76, 0xbd, 0xc5, 0xed, 0x76, 0xfa, 0xce, 0xe8,
		0x72, 0x43, 0x97, 0x9b, 0x01, 0x77, 0x11, 0xd1, 0x64, 0xfb, 0xdc, 0x41, 0x44, 0x93, 0x0d, 0x59,
		0x59, 0x14, 0xd6, 0x36, 0x2e, 0x8d, 0xc2, 0x5a, 0x73, 0x71, 0x82, 0x6a, 0x1b, 0x14, 0xd6, 0x6e,
		0xf7, 0xe9, 0x51, 0x58, 0xeb, 0x9a, 0x36, 0xa0, 0xb0, 0xd6, 0x1a, 0x67, 0x1c, 0x5d, 0x6e, 0x70,
		0xc6, 0xe1, 0x8c, 0xc3, 0x19, 0x87, 0x33, 0x0e, 0x67, 0x1c, 0xce, 0x38, 0x9c, 0x71, 0x38, 0xe3,
		0x70, 0xc6, 0xe1, 0x8c, 0x8b, 0xaf, 0x84, 0x2e, 0xb7, 0x39, 0xf3, 0x81, 0x2e, 0x37, 0x66, 0x3d,
		0xd9, 0xe1, 0x2e, 0x37, 0xc6, 0x7e, 0x26, 0xcf, 0xae, 0x04, 0xa2, 0x35, 0xbd, 0x6e, 0x07, 0x06,
		0x55, 0x9a, 0x5a, 0x95, 0x2d, 0x50, 0xe1, 0x1e, 0x45, 0xef, 0xa0, 0x11, 0x2d, 0xed, 0xa6, 0x91,
		0xed, 0xf5, 0xa8, 0xdd, 0xff, 0xd9, 0x52, 0xf3, 0xa8, 0x34, 0xce, 0xa0, 0xa6, 0x75, 0xd0, 0x30,
		0x69, 0xcd, 0x6a, 0xa7, 0x52, 0xdb, 0x2b, 0x44, 0x0b, 0x65, 0xe8, 0x8d, 0x85, 0xd0, 0x4e, 0x05,
		0xaa, 0xe0, 0x44, 0xb9, 0x4a, 0x4b, 0x55, 0xec, 0xd6, 0xd1, 0xd6, 0x39, 0xbc, 0x49, 0x11, 0xc6,
		0x9c, 0x0f, 0x57, 0x8e, 0xf4, 0xbf, 0x8b, 0x7e, 0x12, 0x85, 0x23, 0xc9, 0xc3, 0x8e, 0xe4, 0xe1,
		0xc5, 0x7a, 0x18, 0x71, 0x2c, 0x3c, 0x47, 0x60, 0xb4, 0x6b, 0x47, 0x57, 0xef, 0x65, 0x4c, 0xd0,
		0x3b, 0x7e, 0xe8, 0x89, 0xfe, 0x8d, 0x96, 0xeb, 0xf8, 0x4d, 0x68, 0x62, 0x13, 0x64, 0x79, 0x07,
		0xca, 0x3c, 0x03, 0xf1, 0x41, 0xa5, 0x3e, 0xb0, 0x6c, 0x07, 0x97, 0xed, 0x00, 0xf3, 0x1d, 0x64,
		0x3b, 0x3c, 0x73, 0xb2, 0xb8, 0xfe, 0x74, 0x56, 0x45, 0x91, 0xe9, 0xf8, 0x89, 0x42, 0xe9, 0x26,
		0x86, 0xf3, 0x83, 0x29, 0x8f, 0xf5, 0xb7, 0x8e, 0xb8, 0xe7, 0x77, 0x72, 0x3e, 0x9a, 0xc1, 0xcf,
		0xef, 0xe0, 0x8a, 0x00, 0x01, 0x81, 0x80, 0x40, 0x40, 0x20, 0xa0, 0xa5, 0xce, 0xe6, 0x38, 0x30,
		0xde, 0x19, 0xe6, 0x68, 0x62, 0xde, 0x74, 0x31, 0x6e, 0xd6, 0x98, 0x36, 0x4d, 0x0c, 0x7b, 0x57,
		0xc3, 0x2c, 0x1d, 0x8d, 0x25, 0x43, 0x20, 0xa5, 0x04, 0x09, 0x8b, 0xe3, 0x25, 0x49, 0xaa, 0xb2,
		0xf2, 0x83, 0x06, 0x91, 0x9f, 0x17, 0x41, 0x41, 0x10, 0x3c, 0xa9, 0x2f, 0xd9, 0x2d, 0x92, 0x72,
		0xd8, 0x35, 0x92, 0x72, 0x8c, 0x48, 0x0a, 0x22, 0x29, 0xc2, 0xc6, 0xad, 0xb3, 0x9b, 0x41, 0x7e,
		0x9c, 0x3c, 0xa2, 0xe6, 0xd3, 0x8e, 0xcd, 0xa5, 0x32, 0xb0, 0x56, 0xa8, 0xec, 0x59, 0xc7, 0xa5,
		0xd8, 0xfc, 0xbe, 0xce, 0x54, 0xd8, 0xc9, 0x66, 0x4d, 0x4f, 0x71, 0xe3, 0xb2, 0x80, 0x37, 0xc0,
		0x1b, 0xe0, 0xcd, 0x82, 0x23, 0xb5, 0xb7, 0x10, 0x47, 0xe4, 0xb9, 0xd5, 0x97, 0x04, 0xb4, 0x01,
		0xda, 0x00, 0x6d, 0x86, 0x8f, 0xd3, 0x7e, 0xc1, 0x5a, 0x52, 0x04, 0x91, 0x9f, 0x26, 0x85, 0x8a,
		0x0b, 0x1d, 0x44, 0x7e, 0x18, 0xa4, 0x41, 0xd8, 0x65, 0xfa, 0xe3, 0xf4, 0x73, 0x2c, 0x5b, 0xd9,
		0x70, 0xa2, 0x1f, 0x20, 0x07, 0x90, 0x73, 0x2e, 0xd1, 0x3f, 0x3a, 0x4c, 0xb9, 0xfe, 0x1f, 0x61,
		0xc2, 0x6b, 0x66, 0x4d, 0x9a, 0x84, 0xd7, 0x11, 0x12, 0x5e, 0xd2, 0x47, 0x97, 0xed, 0x08, 0xb3,
		0x1d, 0x65, 0xbe, 0x23, 0xdd, 0xed, 0x68, 0x77, 0x3c, 0xe2, 0x64, 0x47, 0xbd, 0x5a, 0x68, 0x10,
		0xeb, 0x82, 0xfe, 0xae, 0x8b, 0x72, 0x55, 0xda, 0xbb, 0x2d, 0x0e, 0xa9, 0xef, 0xb6, 0x38, 0x74,
		0xe5, 0x6e, 0x0b, 0x32, 0x38, 0xe0, 0x82, 0x05, 0x76, 0x78, 0x60, 0x87, 0x09, 0x7e, 0xb8, 0xa0,
		0x81, 0x0d, 0x22, 0xf8, 0xa0, 0xa3, 0x45, 0x4b, 0x35, 0x77, 0xe2, 0x87, 0xfb, 0x84, 0x50, 0xe0,
		0x31, 0x4d, 0x5a, 0x24, 0x9e, 0xac, 0x68, 0xc7, 0xa5, 0x46, 0x34, 0x45, 0x9b, 0xb5, 0xef, 0x4a,
		0x51, 0xbc, 0x09, 0x68, 0x07, 0xb4, 0x03, 0xda, 0x9d, 0x85, 0x76, 0xf2, 0x21, 0x0f, 0x0c, 0xc3,
		0x1d, 0x98, 0x86, 0x3a, 0x30, 0x8c, 0xce, 0xe0, 0x1c, 0xe2, 0xc0, 0x3d, 0x71, 0x9d, 0x79, 0x68,
		0x83, 0x44, 0x7b, 0x3e, 0xc7, 0xcc, 0x7e, 0xce, 0xe1, 0x0c, 0x52, 0x9f, 0x54, 0x6e, 0x18, 0x83,
		0xc8, 0x57, 0xb6, 0x74, 0xa8, 0xc1, 0x3d, 0x3a, 0x8b, 0x1d, 0xea, 0x2c, 0x5e, 0x96, 0x6b, 0x78,
		0x43, 0x16, 0xe3, 0xf4, 0x78, 0xea, 0x15, 0xef, 0x86, 0xcf, 0x77, 0x3d, 0x79, 0xee, 0xd3, 0xf1,
		0x63, 0x8f, 0x7e, 0x7c, 0x3b, 0x7c, 0x6a, 0xb4, 0x13, 0x5b, 0xac, 0x5e, 0x76, 0xd5, 0xbe, 0x36,
		0xeb, 0x92, 0xcd, 0xd5, 0xb0, 0x83, 0x81, 0xee, 0x77, 0x4f, 0x34, 0x96, 0xab, 0x18, 0xae, 0x9c,
		0x40, 0xf7, 0x30, 0x3b, 0x2f, 0x45, 0x52, 0x91, 0x9a, 0x47, 0x52, 0x9c, 0x20, 0xaf, 0x7b, 0x23,
		0x4d, 0x0b, 0xac, 0x39, 0x60, 0x94, 0x6f, 0x35, 0x41, 0x6a, 0x7b, 0xa1, 0x74, 0x6b, 0x8d, 0xe9,
		0xde, 0x12, 0xc3, 0xd2, 0x0a, 0xd3, 0xad, 0x05, 0x66, 0x5b, 0xe1, 0x9f, 0x0c, 0x9e, 0x86, 0x8f,
		0xaf, 0xfa, 0xad, 0x22, 0x04, 0x1d, 0x2d, 0xc9, 0xac, 0xc7, 0xf0, 0xb1, 0x72, 0x10, 0x86, 0x3f,
		0x9b, 0x78, 0x09, 0x1f, 0xeb, 0xfe, 0x43, 0xe3, 0x3f, 0x2f, 0xfc, 0xb8, 0xf4, 0x2d, 0xe6, 0x7f,
		0xd4, 0xe8, 0x69, 0xb4, 0x35, 0x63, 0x9f, 0x54, 0x1e, 0x66, 0x3a, 0x1d, 0x7b, 0x50, 0xbd, 0x38,
		0x89, 0x31, 0x4f, 0x63, 0x0a, 0xea, 0x71, 0xac, 0xc2, 0x42, 0xbf, 0x74, 0x74, 0xd8, 0xf6, 0xda,
		0x2e, 0xce, 0x88, 0x70, 0x5f, 0x4a, 0x6e, 0x42, 0x95, 0xfa, 0x91, 0xce, 0x0b, 0xba, 0x82, 0x9b,
		0x6a, 0xc5, 0xae, 0x25, 0x06, 0x64, 0xa7, 0x9d, 0xe8, 0xd4, 0x93, 0x9d, 0x7e, 0x4a, 0x14, 0x60,
		0x45, 0x03, 0x6a, 0x54, 0x60, 0x43, 0x07, 0x36, 0x94, 0xe0, 0x46, 0x0b, 0xa2, 0x00, 0x98, 0x34,
		0x5a, 0x49, 0xf0, 0x66, 0x78, 0x39, 0x25, 0xee, 0x8d, 0x5d, 0xc5, 0xdc, 0x2b, 0x7e, 0x28, 0xef,
		0x7b, 0x90, 0x2b, 0xef, 0x22, 0x78, 0x55, 0xd9, 0x75, 0x96, 0x14, 0x49, 0x98, 0x44, 0x9e, 0x8e,
		0x1f, 0x93, 0xec, 0xb9, 0x0c, 0x2b, 0x79, 0x3a, 0xf6, 0xe6, 0x82, 0x25, 0xde, 0x4f, 0x5d, 0xfc,
		0xf0, 0xae, 0x4e, 0xbf, 0x94, 0xc3, 0xe0, 0xf4, 0xa3, 0x0e, 0x67, 0x7f, 0x1d, 0xbe, 0x13, 0xf5,
		0xd5, 0x09, 0xfb, 0xec, 0x3d, 0x51, 0x5d, 0x6d, 0xe0, 0x98, 0xff, 0xb4, 0xc1, 0x0c, 0x46, 0x32,
		0xcf, 0x8a, 0x75, 0xde, 0xa3, 0x13, 0xd8, 0xb3, 0x7f, 0x9e, 0x1c, 0xf9, 0xb5, 0x2e, 0xf0, 0xe5,
		0xf8, 0xaf, 0x65, 0xd9, 0x79, 0x6f, 0x6e, 0xab, 0xff, 0xe3, 0x7e, 0xdb, 0xe0, 0x58, 0xb7, 0x3c,
		0x19, 0x57, 0x7e, 0xac, 0x85, 0x5a, 0xd3, 0xa7, 0xbf, 0xb6, 0xd3, 0xcd, 0xcd, 0xbf, 0xd3, 0x16,
		0xf6, 0xb3, 0x97, 0xa9, 0x54, 0x05, 0x85, 0xdf, 0x57, 0x91, 0x7e, 0x51, 0xd9, 0xeb, 0xd0, 0x20,
		0x65, 0x41, 0x58, 0xa8, 0x4c, 0xe7, 0x85, 0xde, 0xde, 0xdc, 0x55, 0x78, 0xb7, 0x66, 0xdd, 0x6d,
		0xe3, 0xdb, 0xad, 0x72, 0x5e, 0xad, 0x1b, 0xe8, 0xba, 0x58, 0x80, 0x79, 0xc4, 0x9f, 0xa8, 0x62,
		0x1b, 0x7d, 0xeb, 0x88, 0xed, 0x64, 0x58, 0x4e, 0x86, 0xdd, 0x75, 0xac, 0xae, 0xc4, 0x63, 0x59,
		0x3e, 0xa5, 0x75, 0x9e, 0xaa, 0xfb, 0xc8, 0xb7, 0x96, 0x99, 0x29, 0x1e, 0x74, 0xc8, 0x55, 0xf6,
		0xa2, 0x32, 0x5f, 0xc7, 0x85, 0x7a, 0xca, 0x74, 0xf1, 0xea, 0xa7, 0x59, 0x12, 0xaa, 0x3c, 0x27,
		0x83, 0x89, 0x4d, 0x37, 0x00, 0x5e, 0x00, 0x2f, 0x80, 0x17, 0xd6, 0xe3, 0x05, 0x59, 0x6b, 0x3e,
		0x75, 0x4b, 0x7e, 0x4b, 0x8e, 0x69, 0x01, 0x22, 0xb4, 0xae, 0x8e, 0xd9, 0x07, 0x3c, 0x68, 0x5b,
		0xfd, 0xc2, 0x8b, 0x06, 0x6d, 0xe3, 0x50, 0x14, 0x2d, 0xf3, 0x74, 0xad, 0xf2, 0xb8, 0xa6, 0x02,
		0x21, 0xe1, 0xfd, 0x9d, 0x5e, 0x41, 0xd2, 0xca, 0x4e, 0xd9, 0xc2, 0x8e, 0x11, 0xed, 0x88, 0x8e,
		0x5a, 0x70, 0x8c, 0x89, 0xa2, 0xa2, 0xd6, 0x8d, 0x68, 0xa7, 0x6e, 0x31, 0xa7, 0x6c, 0x2d, 0x27,
		0x6a, 0x29, 0x37, 0x78, 0xef, 0x05, 0xee, 0xfb, 0x01, 0x94, 0x02, 0x4a, 0xf7, 0x04, 0x4a, 0xc9,
		0x5a, 0xba, 0x09, 0x5b, 0xb9, 0x89, 0x5b, 0xb8, 0x69, 0x2f, 0x4e, 0x66, 0x18, 0xb0, 0xc0, 0xd2,
		0xd7, 0xcb, 0xd5, 0xa2, 0xcd, 0xd9, 0xb4, 0xfb, 0x8b, 0xf6, 0x26, 0x6a, 0xe7, 0x3e, 0x15, 0x7f,
		0xeb, 0x35, 0xeb, 0xd7, 0xb3, 0xa4, 0xa5, 0xf9, 0x1e, 0x3d, 0xad, 0x5b, 0xac, 0xd3, 0x3d, 0x67,
		0xcf, 0xdb, 0x1c, 0xdd, 0x35, 0x93, 0xcf, 0xd3, 0x01, 0x6d, 0x5b, 0x4f, 0x99, 0xf9, 0xca, 0x0d,
		0xc2, 0x1e, 0x66, 0x9e, 0x4f, 0x6e, 0x43, 0x01, 0xc7, 0x20, 0x0e, 0x5e, 0x02, 0x1d, 0x95, 0x37,
		0xe7, 0x17, 0xfa, 0x59, 0x91, 0xa5, 0x66, 0xd7, 0x2d, 0x8c, 0x94, 0x2c, 0x3b, 0x6b, 0x42, 0x4a,
		0xb6, 0x3d, 0x7c, 0x21, 0x25, 0x3b, 0xc6, 0x87, 0x36, 0x03, 0x0b, 0xba, 0xb4, 0x59, 0x77, 0x3e,
		0xe9, 0x87, 0x48, 0xb5, 0x22, 0xd5, 0x2a, 0x76, 0xca, 0x5b, 0x0e, 0x12, 0xe0, 0x3f, 0xe3, 0x07,
		0x84, 0xf2, 0x6a, 0x31, 0x20, 0xa0, 0xdd, 0x60, 0x80, 0xf6, 0x03, 0x01, 0x48, 0x07, 0x01, 0xb4,
		0x1b, 0x00, 0xb0, 0xa9, 0x30, 0x5b, 0x7a, 0xc6, 0xdd, 0x3d, 0xe2, 0xde, 0x36, 0xa5, 0x7b, 0x9d,
		0x1c, 0xde, 0xcd, 0xce, 0xf9, 0x7a, 0x1d, 0xdd, 0x40, 0xa4, 0xdb, 0x59, 0xa8, 0x36, 0xe7, 0x76,
		0x4b, 0x8b, 0xb4, 0xb5, 0x25, 0x6a, 0x63, 0x81, 0x3a, 0x5a, 0x9e, 0xb6, 0x16, 0xa7, 0xb3, 0xa5,
		0xe9, 0x6c, 0x61, 0xba, 0x5b, 0x16, 0x5a, 0x64, 0xdc, 0xda, 0x82, 0xb4, 0xb5, 0x1c, 0x5b, 0x5a,
		0x8c, 0x0d, 0xce, 0xd6, 0x41, 0x87, 0xf7, 0xdf, 0xc2, 0x22, 0x6c, 0x67, 0x09, 0xb6, 0xb7, 0x00,
		0x24, 0xc8, 0xbf, 0x1d, 0xe2, 0xaf, 0x13, 0xce, 0x96, 0x08, 0xdf, 0x09, 0xd9, 0x37, 0x50, 0xa1,
		0xf6, 0x60, 0xbe, 0xfa, 0x54, 0x2d, 0xd7, 0xa0, 0xe6, 0x7f, 0x59, 0x22, 0xb6, 0x4d, 0xc5, 0xd5,
		0x46, 0x4c, 0x2b, 0xa4, 0xb3, 0xb5, 0x54, 0x9a, 0x85, 0x51, 0x7f, 0xd5, 0x86, 0xd7, 0x5c, 0x6d,
		0xa4, 0x36, 0x81, 0x84, 0x35, 0x46, 0x68, 0xad, 0xd1, 0xd9, 0xc4, 0xc8, 0x6c, 0x69, 0x54, 0x36,
		0x35, 0x22, 0x5b, 0x1b, 0x8d, 0xad, 0x8d, 0xc4, 0xf6, 0x46, 0x61, 0x3b, 0x05, 0x5d, 0x0b, 0xf2,
		0x9b, 0x82, 0xfa, 0x1a, 0x10, 0x6f, 0xd0, 0xa5, 0x83, 0x15, 0xcf, 0xb7, 0x66, 0x74, 0xd4, 0x1a,
		0x65, 0x6b, 0x1a, 0x8a, 0xb0, 0x4c, 0xf9, 0xd6, 0xf6, 0x02, 0xdf, 0x9d, 0x5c, 0x9f, 0x7b, 0xe3,
		0x73, 0x32, 0xea, 0xf6, 0x3d, 0x9d, 0x99, 0x89, 0x71, 0xab, 0xb2, 0x17, 0x1d, 0xaa, 0x0d, 0x9a,
		0x7e, 0xd7, 0x54, 0x8d, 0xb2, 0xa8, 0xf9, 0x46, 0xe3, 0x51, 0xec, 0x56, 0xf6, 0x4d, 0xc6, 0x8f,
		0x6c, 0xa7, 0xf2, 0xeb, 0x2a, 0x20, 0x7b, 0xb3, 0x9b, 0x56, 0x68, 0xbb, 0x56, 0x3a, 0x55, 0xbd,
		0x54, 0xd3, 0xff, 0xbd, 0xe6, 0xbd, 0xc5, 0x94, 0x70, 0x43, 0x65, 0xdc, 0xda, 0xe1, 0xdf, 0xc6,
		0xd1, 0xef, 0x34, 0xc3, 0x67, 0x5b, 0xf7, 0xbe, 0xb5, 0x5b, 0xdf, 0xda, 0x9d, 0xef, 0x3a, 0x43,
		0xe7, 0x17, 0xad, 0x63, 0xb2, 0x89, 0x0d, 0x37, 0x0b, 0xa7, 0xd7, 0x41, 0xf1, 0xe3, 0x34, 0x79,
		0x4e, 0x07, 0x23, 0x47, 0xc9, 0x66, 0x44, 0x1d, 0x3a, 0x68, 0x43, 0x41, 0x4c, 0x9e, 0xd5, 0x51,
		0x54, 0xad, 0xbd, 0x86, 0x14, 0xb2, 0x2e, 0x6e, 0xbc, 0x3d, 0xba, 0x2e, 0x5d, 0x81, 0x1e, 0x61,
		0x5b, 0xeb, 0xa5, 0x7d, 0x20, 0xbb, 0x85, 0xde, 0xba, 0x0c, 0xb4, 0x9b, 0xeb, 0xf5, 0xde, 0x82,
		0xed, 0x84, 0xf8, 0xd9, 0x8c, 0xb2, 0x1b, 0xf0, 0x7f, 0x9b, 0xd1, 0x75, 0x7d, 0xde, 0x97, 0x18,
		0x55, 0x6b, 0x91, 0x81, 0x8d, 0xd1, 0x74, 0x8b, 0x98, 0x82, 0x9c, 0xc2, 0xd9, 0x07, 0x9f, 0xdb,
		0x04, 0xa4, 0x1c, 0x84, 0xcd, 0xcd, 0x0b, 0x15, 0xd8, 0xe1, 0x72, 0xee, 0x27, 0xf7, 0x8b, 0x31,
		0x81, 0xd5, 0xc1, 0xb4, 0x0d, 0x82, 0x68, 0x0d, 0xb2, 0x5d, 0x1b, 0x2b, 0x9b, 0x97, 0xca, 0xf4,
		0x09, 0x47, 0x7f, 0x1b, 0x1f, 0xda, 0x65, 0xcf, 0xd6, 0xd3, 0xf9, 0xe7, 0xe0, 0xbf, 0xea, 0x26,
		0x49, 0xea, 0x1f, 0x69, 0xf1, 0x79, 0x7b, 0xb3, 0xff, 0x34, 0xf7, 0x50, 0x9f, 0xd4, 0xf0, 0xe8,
		0x8c, 0x1e, 0xe4, 0xd7, 0xc1, 0xaf, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x00, 0xff,
		0xff, 0x22, 0x75, 0xca, 0xd6, 0xac, 0x2e, 0x17, 0x00,
	}
)


// ΛEnumTypes is a map, keyed by a YANG schema path, of the enumerated types that
// correspond with the leaf. The type is represented as a reflect.Type. The naming
// of the map ensures that there are no clashes with valid YANG identifiers.
var ΛEnumTypes = map[string][]reflect.Type{
	"/context/connectivity-context/connection/direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ForwardingDirection)(0)),
	},
	"/context/connectivity-context/connection/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connection/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/connectivity-context/connection/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/connectivity-context/connection/route/resilience-route/route-state": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_RouteState)(0)),
	},
	"/context/connectivity-context/connection/switch-control/fault-condition-determination": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_FaultConditionDetermination)(0)),
	},
	"/context/connectivity-context/connection/switch-control/preferred-restoration-layer": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resilience-type/protection-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ProtectionType)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resilience-type/restoration-policy": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RestorationPolicy)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resiliency-route-constraint/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/connectivity-context/connection/switch-control/resiliency-route-constraint/topology-constraint/preferred-transport-layer": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connection/switch-control/restoration-coordinate-type": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_CoordinateType)(0)),
	},
	"/context/connectivity-context/connection/switch-control/reversion-mode": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ReversionMode)(0)),
	},
	"/context/connectivity-context/connection/switch-control/selection-control": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_SelectionControl)(0)),
	},
	"/context/connectivity-context/connection/switch-control/switch/selection-reason": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_SelectionReason)(0)),
	},
	"/context/connectivity-context/connection/switch-control/switch/switch-direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortDirection)(0)),
	},
	"/context/connectivity-context/connectivity-service/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/connectivity-context/connectivity-service/connectivity-constraint/requested-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/connectivity-context/connectivity-service/connectivity-constraint/service-type": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ServiceType)(0)),
	},
	"/context/connectivity-context/connectivity-service/direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ForwardingDirection)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortDirection)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolQualifier)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/mc-config/spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/media-channel-connectivity-service-end-point-spec/mc-config/spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/application-identifier/application-identifier-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_ApplicationIdentifierType)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/central-frequency/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/central-frequency/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/laser-control": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_LaserControlType)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/modulation": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_ModulationTechnique)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/otsi-connectivity-service-end-point-spec/otsi-config/spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/protection-role": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ProtectionRole)(0)),
	},
	"/context/connectivity-context/connectivity-service/end-point/role": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortRole)(0)),
	},
	"/context/connectivity-context/connectivity-service/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/connectivity-context/connectivity-service/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/fault-condition-determination": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_FaultConditionDetermination)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/preferred-restoration-layer": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resilience-type/protection-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ProtectionType)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resilience-type/restoration-policy": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RestorationPolicy)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/resiliency-route-constraint/topology-constraint/preferred-transport-layer": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/restoration-coordinate-type": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_CoordinateType)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/reversion-mode": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ReversionMode)(0)),
	},
	"/context/connectivity-context/connectivity-service/resilience-constraint/selection-control": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_SelectionControl)(0)),
	},
	"/context/connectivity-context/connectivity-service/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/connectivity-context/connectivity-service/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/connectivity-context/connectivity-service/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/connectivity-context/connectivity-service/topology-constraint/preferred-transport-layer": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path-comp-service/direction": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_ForwardingDirection)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/direction": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_PortDirection)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolQualifier)(0)),
	},
	"/context/path-computation-context/path-comp-service/end-point/role": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_PortRole)(0)),
	},
	"/context/path-computation-context/path-comp-service/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/bandwidth-optimization": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/concurrent-paths": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/cost-optimization": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/link-utilization": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/objective-function/resource-sharing": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/optimization-constraint/traffic-interruption": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DirectiveValue)(0)),
	},
	"/context/path-computation-context/path-comp-service/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/path-computation-context/path-comp-service/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/path-computation-context/path-comp-service/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/path-computation-context/path-comp-service/topology-constraint/preferred-transport-layer": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path/direction": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_ForwardingDirection)(0)),
	},
	"/context/path-computation-context/path/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_LayerProtocolName)(0)),
	},
	"/context/path-computation-context/path/routing-constraint/diversity-policy": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_DiversityPolicy)(0)),
	},
	"/context/path-computation-context/path/routing-constraint/route-objective-function": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_RouteObjectiveFunction)(0)),
	},
	"/context/path-computation-context/path/routing-constraint/tolerable-impact": []reflect.Type{
		reflect.TypeOf((E_TapiPathComputation_GradesOfImpact)(0)),
	},
	"/context/service-interface-point/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/service-interface-point/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/service-interface-point/direction": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_PortDirection)(0)),
	},
	"/context/service-interface-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LayerProtocolName)(0)),
	},
	"/context/service-interface-point/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/available-spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/available-spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/occupied-spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/occupied-spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/supportable-spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/service-interface-point/media-channel-service-interface-point-spec/mc-pool/supportable-spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/service-interface-point/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability/supportable-application-identifier/application-identifier-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_ApplicationIdentifierType)(0)),
	},
	"/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability/supportable-central-frequency-spectrum-band/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability/supportable-central-frequency-spectrum-band/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/service-interface-point/otsi-service-interface-point-spec/otsi-capability/supportable-modulation": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_ModulationTechnique)(0)),
	},
	"/context/service-interface-point/supported-layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LayerProtocolQualifier)(0)),
	},
	"/context/service-interface-point/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/link/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/topology-context/topology/link/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/link/direction": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ForwardingDirection)(0)),
	},
	"/context/topology-context/topology/link/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/link/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/topology-context/topology/link/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/topology-context/topology/link/resilience-type/protection-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ProtectionType)(0)),
	},
	"/context/topology-context/topology/link/resilience-type/restoration-policy": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RestorationPolicy)(0)),
	},
	"/context/topology-context/topology/link/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/topology-context/topology/node/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/node/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/cep-direction": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortDirection)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/cep-port-role/port-role-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortRoleRuleOption)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/forwarding-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ForwardingRule)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolQualifier)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/rule-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RuleType)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/rule/signal-property/signal-property-value-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_SignalPropertyValueRule)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/inter-rule-group/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/cep-direction": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortDirection)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/cep-port-role/port-role-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortRoleRuleOption)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/forwarding-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_ForwardingRule)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolQualifier)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/rule-type": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_RuleType)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/rule/signal-property/signal-property-value-rule": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_SignalPropertyValueRule)(0)),
	},
	"/context/topology-context/topology/node/node-rule-group/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/administrative-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_AdministrativeState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/available-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/available-cep-layer-protocol/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolQualifier)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/connection-port-direction": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortDirection)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/connection-port-role": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_PortRole)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/layer-protocol-qualifier": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_LayerProtocolQualifier)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/media-channel-connection-end-point-spec/media-channel/occupied-spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/media-channel-connection-end-point-spec/media-channel/occupied-spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/laser-properties/laser-application-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_LaserType)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/laser-properties/laser-status": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_LaserControlStatusType)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-application-identifier/application-identifier-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_ApplicationIdentifierType)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-central-frequency/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-central-frequency/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-modulation": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_ModulationTechnique)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/otsi-connection-end-point-spec/otsi-termination/selected-spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/protection-role": []reflect.Type{
		reflect.TypeOf((E_TapiConnectivity_ProtectionRole)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/termination-direction": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_TerminationDirection)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/cep-list/connection-end-point/termination-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_TerminationState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/layer-protocol-name": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_LayerProtocolName)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/lifecycle-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_LifecycleState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/link-port-direction": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortDirection)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/link-port-role": []reflect.Type{
		reflect.TypeOf((E_TapiTopology_PortRole)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/available-spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/available-spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/occupied-spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/occupied-spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/supportable-spectrum/frequency-constraint/adjustment-granularity": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_AdjustmentGranularity)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/media-channel-node-edge-point-spec/mc-pool/supportable-spectrum/frequency-constraint/grid-type": []reflect.Type{
		reflect.TypeOf((E_TapiPhotonicMedia_GridType)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/operational-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_OperationalState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/termination-direction": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_TerminationDirection)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/termination-state": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_TerminationState)(0)),
	},
	"/context/topology-context/topology/node/owned-node-edge-point/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
	"/context/topology-context/topology/node/total-potential-capacity/total-size/unit": []reflect.Type{
		reflect.TypeOf((E_TapiCommon_CapacityUnit)(0)),
	},
}