package Ġu y . ko hes ive . iac . model . aws Ċ Ċ import Ġjava . util .* Ċ Ċ abstract Ġclass ĠBase I ac Context Ġ: ĠKo hes ive Ident ifiable Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġobjects To Names Ġ= ĠIdentity HashMap < Any , ĠString >() ĊĊĠĠĠ Ġval Ġdepends On : ĠMutable Map < Any , ĠMutable List < Any >> Ġ= Ġmutable Map Of () ĊĠĠĠ Ġval Ġvariables : ĠMutable Map < String , ĠParameter ized Value < out ĠAny >> Ġ= Ġmutable Map Of () ĊĠĠĠ Ġval Ġmappings : ĠMutable Map < String , ĠM apped Values > Ġ= Ġmutable Map Of () ĊĊĠĠĠ Ġval Ġnumeric Var Tracker Ġ= ĠNumeric Variable Tracker () ĊĊĠĠĠ Ġfun Ġadd Variables ( var arg Ġvari : ĠParameter ized Value < out ĠAny >) Ġ{ ĊĠĠĠĠĠĠĠ Ġvariables . put All ( vari . map Ġ{ Ġit . name Ġto Ġit Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Mappings ( var arg Ġmaps : ĠM apped Values ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmappings . put All ( maps . map Ġ{ Ġit . name Ġto Ġit Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠAny . make Depend able ( on : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( depends On . get Or Put ( this ) Ġ{ ĠArrayList < Any >() Ġ}). add ( on ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠParameter ized Value < String >. value : ĠString Ġget () Ġ= Ġ"{{ ko hes ive : var :$ name }}" ĊĠĠĠ Ġval ĠParameter ized Value < Int >. value : ĠInt Ġget () Ġ= Ġnumeric Var Tracker . add Or Get Numeric Variable Ref ( this ) ĊĠĠĠ Ġval ĠParameter ized Value < Long >. value : ĠLong Ġget () Ġ= Ġnumeric Var Tracker . add Or Get Numeric Variable Ref ( this ). to Long () Ċ Ċ }