strings_strings
beginTokenendToken_childEntitiesacceptresolveExpressionvisitChildren_appendStringValuedocumentationComment!firstTokenAfterCommentAndMetadatametadatasortedCommentAndAnnotations	argumentsatSignconstructorNameelementelement2elementAnnotationnameparentperiodtypeArguments_name_typeArguments_constructorName
_arguments	_element2leftParenthesisrightParenthesis_correspondingStaticParameterscorrespondingStaticParameterscorrespondingStaticParameters2_getStaticParameterElementFor
asOperator
expressiontype_expression_type
precedenceassertKeyword
_conditioncomma_message	conditionmessage	semicoloncomputePatternSchemaresolvePatternleftHandSideoperatorrightHandSide_leftHandSide_rightHandSidestaticElement_nullShortingExtensionCandidate'_staticParameterElementForRightHandSide_extendsNullShortingLEXICAL_ORDERchildEntitiesendisSyntheticlengthoffsetrootfindPreviousthisOrAncestorMatchingthisOrAncestorOfTypetoSourcetoString_parentnamedChildEntitiesdetachFromParent_becomeParentOf	nameScopevisitAdjacentStringsvisitAnnotationvisitArgumentListvisitAsExpressionvisitAssertInitializervisitAssertStatementvisitAssignedVariablePatternvisitAssignmentExpressionvisitAugmentedExpressionvisitAugmentedInvocationvisitAwaitExpressionvisitBinaryExpression
visitBlockvisitBlockFunctionBodyvisitBooleanLiteralvisitBreakStatementvisitCascadeExpressionvisitCaseClausevisitCastPatternvisitCatchClausevisitCatchClauseParametervisitClassDeclarationvisitClassTypeAliasvisitCommentvisitCommentReferencevisitCompilationUnitvisitConditionalExpressionvisitConfigurationvisitConstantPatternvisitConstructorDeclaration visitConstructorFieldInitializervisitConstructorNamevisitConstructorReferencevisitConstructorSelectorvisitContinueStatementvisitDeclaredIdentifiervisitDeclaredVariablePatternvisitDefaultFormalParametervisitDoStatementvisitDotShorthandInvocationvisitDotShorthandPropertyAccessvisitDottedNamevisitDoubleLiteralvisitEmptyFunctionBodyvisitEmptyStatementvisitEnumConstantArgumentsvisitEnumConstantDeclarationvisitEnumDeclarationvisitExportDirectivevisitExpressionFunctionBodyvisitExpressionStatementvisitExtendsClausevisitExtensionDeclarationvisitExtensionOnClausevisitExtensionOverridevisitExtensionTypeDeclarationvisitFieldDeclarationvisitFieldFormalParameter visitForEachPartsWithDeclarationvisitForEachPartsWithIdentifiervisitForEachPartsWithPatternvisitForElementvisitFormalParameterListvisitForPartsWithDeclarationsvisitForPartsWithExpressionvisitForPartsWithPatternvisitForStatementvisitFunctionDeclaration!visitFunctionDeclarationStatementvisitFunctionExpression!visitFunctionExpressionInvocationvisitFunctionReferencevisitFunctionTypeAlias!visitFunctionTypedFormalParametervisitGenericFunctionTypevisitGenericTypeAliasvisitGuardedPatternvisitHideCombinatorvisitIfElementvisitIfStatementvisitImplementsClausevisitImplicitCallReferencevisitImportDirectivevisitImportPrefixReferencevisitIndexExpressionvisitInstanceCreationExpressionvisitIntegerLiteralvisitInterpolationExpressionvisitInterpolationStringvisitIsExpression
visitLabelvisitLabeledStatementvisitLibraryDirectivevisitLibraryIdentifiervisitListLiteralvisitListPatternvisitLogicalAndPatternvisitLogicalOrPatternvisitMapLiteralEntryvisitMapPatternvisitMapPatternEntryvisitMethodDeclarationvisitMethodInvocationvisitMixinDeclarationvisitMixinOnClausevisitNamedExpressionvisitNamedTypevisitNativeClausevisitNativeFunctionBodyvisitNullAssertPatternvisitNullAwareElementvisitNullCheckPatternvisitNullLiteralvisitObjectPatternvisitParenthesizedExpressionvisitParenthesizedPatternvisitPartDirectivevisitPartOfDirectivevisitPatternAssignmentvisitPatternFieldvisitPatternFieldNamevisitPatternVariableDeclaration(visitPatternVariableDeclarationStatementvisitPostfixExpressionvisitPrefixedIdentifiervisitPrefixExpressionvisitPropertyAccessvisitRecordLiteralvisitRecordPatternvisitRecordTypeAnnotation#visitRecordTypeAnnotationNamedField$visitRecordTypeAnnotationNamedFields(visitRecordTypeAnnotationPositionalField%visitRedirectingConstructorInvocationvisitRelationalPattern"visitRepresentationConstructorNamevisitRepresentationDeclarationvisitRestPatternElementvisitRethrowExpressionvisitReturnStatementvisitScriptTagvisitSetOrMapLiteralvisitShowCombinatorvisitSimpleFormalParametervisitSimpleIdentifiervisitSimpleStringLiteralvisitSpreadElementvisitStringInterpolationvisitSuperConstructorInvocationvisitSuperExpressionvisitSuperFormalParametervisitSwitchCasevisitSwitchDefaultvisitSwitchExpressionvisitSwitchExpressionCasevisitSwitchPatternCasevisitSwitchStatementvisitSymbolLiteralvisitThisExpressionvisitThrowExpression visitTopLevelVariableDeclarationvisitTryStatementvisitTypeArgumentListvisitTypeLiteralvisitTypeParametervisitTypeParameterListvisitVariableDeclarationvisitVariableDeclarationList!visitVariableDeclarationStatementvisitWhenClausevisitWhileStatementvisitWildcardPatternvisitWithClausevisitYieldStatementaugmentedKeywordfragmentisAssignableawaitKeywordleftOperandrightOperandstaticInvokeType_leftOperand_rightOperandleftBracketrightBracket
statementsblockkeywordstar_blockisAsynchronousisGeneratorisSynchronousresolve_statementsliteralvaluebreakKeywordlabeltarget_labelcascadeSectionsisNullAware_target_cascadeSectionscaseKeywordguardedPatternasTokenpatternvariablePatternbodycatchKeywordexceptionParameterexceptionType	onKeywordstackTraceParameter_exceptionType_exceptionParameter_stackTraceParameter_bodydeclaredElementdeclaredElement2declaredFragmententitiessyntacticEntitiesaddAlladdNodeaddNodeListaddTokenaddTokenListabstractKeywordaugmentKeywordbaseKeywordclassKeywordextendsClausefinalKeywordimplementsClauseinterfaceKeywordmacroKeywordmembersmixinKeywordnativeClausesealedKeywordtypeParameters
withClauseequals
superclass_typeParameters_superclass_withClause_implementsClauseresolveElement
codeBlocksdocDirectives
docImportshasNodoc
referencestokens_references
newKeyworddeclarations
directives
featureSetlanguageVersionlanguageVersionTokenlineInfo	scriptTagsortedDirectivesAndDeclarations
_scriptTag_directives_declarationsinvalidNodes _directivesAreBeforeDeclarationsreadElementreadElement2readTypewriteElementwriteElement2	writeTypecolonelseExpressionquestionthenExpression_thenExpression_elseExpression
equalToken	ifKeywordresolvedUriuri_value_urivariablenoSuchMethodconstKeywordexternalKeywordfactoryKeywordinitializers
parametersredirectedConstructor
returnType	separator_returnType_parameters_initializers_redirectedConstructor	isTrivial	fieldNamethisKeyword
_fieldNamecontinueKeywordmatchedValueTypeunParenthesizedpatternContextisConstisFinaldefaultValue	parameter
_parameterkind_defaultValuecovariantKeywordisExplicitlyTypedrequiredKeyword_element	doKeywordwhileKeyword
memberName_memberNamefunctionisDotShorthandpropertyName_propertyName
components_componentsargumentListconstructorSelectorconstructorElementconstructorElement2	constantsenumKeyword
_constants_membersexportKeywordlibraryExportcorrespondingParameterinConstantContextstaticParameterElement
staticTypefunctionDefinition_staticTypeconstantContextrecordStaticTypesetPseudoExpressionStaticTypeextendsKeywordextensionKeywordonClausetypeKeywordextendedTypeimportPrefixtypeArgumentTypes_argumentListrepresentationfieldsisStaticstaticKeyword
_fieldList	inKeyworditerable	_iterableloopVariable_loopVariable
identifier_identifier	_metadata	variables
forKeywordforLoopParts_forLoopPartsisNamed
isOptionalisOptionalNamedisOptionalPositionalisPositional
isRequiredisRequiredNamedisRequiredPositionalleftDelimiterparameterElementsparameterFragmentsrightDelimiterleftSeparatorrightSeparatorupdaters	_updaters_variableListinitialization_initializationisPotentiallyMutatedInScopeisPotentiallyMutatedInScope2localVariableInfobodyContextfunctionExpressionisGetterisSetterpropertyKeyword_functionExpressionfunctionDeclaration_functionDeclarationwasFunctionTypeSupplied	_functionfunctionKeywordfunctionType
whenClausehiddenNames_hiddenNamesisPrivateName
caseClauseelseElementelseKeywordthenElement_thenElement_elseElementifFalseifTrueelseStatementthenStatement_thenStatement_elseStatementimplementsKeyword
interfaces_interfaces	asKeyworddeferredKeywordimportKeywordlibraryImportprefix_prefix"areSyntacticallyIdenticalExceptUriindex
isCascaded
realTargetinGetterContextinSetterContext_index_ancestorCascade_staticParameterElementForIndex
isImplicitimmediatelyNegatedisValidAsDoubleisValidAsIntegernearestValidDoublecontentscontentsEndcontentsOffset_lexemeHelper
isOperatornotOperatorlabels	statement_labels
_statement	unlabeledlibraryKeywordname2elements	_elementsrequiredTypepotentiallyMutatedInScopekeykeyQuestionvalueQuestion_key
isAbstractmodifierKeywordoperatorKeyword
methodName_methodName_methodNameTypemethodNameTypesuperclassConstraints_superclassConstraints
isDeferred_importPrefixcombinatorsconfigurations_configurations_combinatorsnativeKeywordstringLiteral_stringLiteralowner[]addclearinsertremoveAt_owner[]=_initializenullShortingTermination_fieldspartIncludepartKeywordlibraryName	ofKeyword_libraryNamepatternTypeSchemaeffectiveNamedeclarationoperand_operand"_staticParameterElementForOperand2hasDuplicateNamedFieldnamedFieldspositionalFieldsconstructorFragmentfieldElementfieldFragmentfieldMetadata	fieldTyperethrowKeywordreturnKeywordisMapisSet_resolvedKindcontextType	becomeMap	becomeSetbecomeUnresolved
shownNames_shownNamesisQualifiedtearOffTypeArgumentTypestokeninDeclarationContextscopeLookupResultancestorCascadereferenceElementisMultilineisRawisSingleQuoted_helperspreadOperatorfirstString
lastString_firstHelperlexemeisFirstisLaststart_trimInitialWhitespacestringValuesuperKeywordcasesswitchKeywordarrow	hasLabelsmemberGroups_computeMemberGroups	poundSignthrowKeywordcatchClausesfinallyBlockfinallyKeyword
tryKeyword_catchClauses_finallyBlocktypedefKeyword	_typeNametypeNameboundvarianceKeyword_boundvalidateUriINVALID_URIURI_WITH_INTERPOLATIONinitializerisLate_initializerhasInitializerlateKeyword
_variablesfieldNameWithImplicitNamewhenKeyword
mixinTypeswithKeyword_mixinTypesyieldKeyword_comment_commentIsBeforeAnnotations _initializeCommentAndAnnotations_visitCommentAndAnnotationsmapset
unresolvedAdjacentStringsAdjacentStringsImplAnnotatedNodeAnnotatedNodeImpl
AnnotationAnnotationImplArgumentListArgumentListImplAsExpressionAsExpressionImplAssertInitializerAssertInitializerImpl	AssertionAssertStatementAssertStatementImplAssignedVariablePatternAssignedVariablePatternImplAssignmentExpressionAssignmentExpressionImplAstNodeAstNodeImplAstNodeWithNameScopeMixin
AstVisitorAugmentedExpressionAugmentedExpressionImplAugmentedInvocationAugmentedInvocationImplAwaitExpressionAwaitExpressionImplBinaryExpressionBinaryExpressionImplBlockBlockFunctionBodyBlockFunctionBodyImpl	BlockImplBooleanLiteralBooleanLiteralImplBreakStatementBreakStatementImplCascadeExpressionCascadeExpressionImpl
CaseClauseCaseClauseImplCaseNodeImplCastPatternCastPatternImplCatchClauseCatchClauseImplCatchClauseParameterCatchClauseParameterImplChildEntitiesChildEntityClassDeclarationClassDeclarationImplClassMemberClassMemberImplClassTypeAliasClassTypeAliasImplCollectionElementCollectionElementImpl
CombinatorCombinatorImplCommentCommentImplCommentReferableExpressionCommentReferableExpressionImplCommentReferenceCommentReferenceImplCompilationUnitCompilationUnitImplCompilationUnitMemberCompilationUnitMemberImplCompoundAssignmentExpression CompoundAssignmentExpressionImplConditionalExpressionConditionalExpressionImplConfigurationConfigurationImpl ConstantContextForExpressionImplConstantPatternConstantPatternImplConstructorDeclarationConstructorDeclarationImplConstructorFieldInitializerConstructorFieldInitializerImplConstructorInitializerConstructorInitializerImplConstructorNameConstructorNameImplConstructorReferenceConstructorReferenceImplConstructorReferenceNodeConstructorSelectorConstructorSelectorImplContinueStatementContinueStatementImplDartPatternDartPatternImplDeclarationDeclarationImplDeclaredIdentifierDeclaredIdentifierImplDeclaredVariablePatternDeclaredVariablePatternImplDefaultFormalParameterDefaultFormalParameterImpl	DirectiveDirectiveImplDoStatementDoStatementImplDotShorthandInvocationDotShorthandInvocationImplDotShorthandMixinDotShorthandPropertyAccessDotShorthandPropertyAccessImpl
DottedNameDottedNameImplDoubleLiteralDoubleLiteralImplEmptyFunctionBodyEmptyFunctionBodyImplEmptyStatementEmptyStatementImplEnumConstantArgumentsEnumConstantArgumentsImplEnumConstantDeclarationEnumConstantDeclarationImplEnumDeclarationEnumDeclarationImplExportDirectiveExportDirectiveImpl
ExpressionExpressionFunctionBodyExpressionFunctionBodyImplExpressionImplExpressionStatementExpressionStatementImplExtendsClauseExtendsClauseImplExtensionDeclarationExtensionDeclarationImplExtensionOnClauseExtensionOnClauseImplExtensionOverrideExtensionOverrideImplExtensionTypeDeclarationExtensionTypeDeclarationImplFieldDeclarationFieldDeclarationImplFieldFormalParameterFieldFormalParameterImplForEachPartsForEachPartsImplForEachPartsWithDeclarationForEachPartsWithDeclarationImplForEachPartsWithIdentifierForEachPartsWithIdentifierImplForEachPartsWithPatternForEachPartsWithPatternImpl
ForElementForElementImplForLoopPartsForLoopPartsImplFormalParameterFormalParameterImplFormalParameterListFormalParameterListImplForPartsForPartsImplForPartsWithDeclarationsForPartsWithDeclarationsImplForPartsWithExpressionForPartsWithExpressionImplForPartsWithPatternForPartsWithPatternImplForStatementForStatementImplFunctionBodyFunctionBodyImplFunctionDeclarationFunctionDeclarationImplFunctionDeclarationStatement FunctionDeclarationStatementImplFunctionExpressionFunctionExpressionImplFunctionExpressionInvocation FunctionExpressionInvocationImplFunctionReferenceFunctionReferenceImplFunctionTypeAliasFunctionTypeAliasImplFunctionTypedFormalParameter FunctionTypedFormalParameterImplGenericFunctionTypeGenericFunctionTypeImplGenericTypeAliasGenericTypeAliasImplGuardedPatternGuardedPatternImplHideCombinatorHideCombinatorImpl
IdentifierIdentifierImpl	IfElementIfElementImplIfElementOrStatementImplIfStatementIfStatementImplImplementsClauseImplementsClauseImplImplicitCallReferenceImplicitCallReferenceImplImportDirectiveImportDirectiveImplImportPrefixReferenceImportPrefixReferenceImplIndexExpressionIndexExpressionImplInstanceCreationExpressionInstanceCreationExpressionImplIntegerLiteralIntegerLiteralImplInterpolationElementInterpolationElementImplInterpolationExpressionInterpolationExpressionImplInterpolationStringInterpolationStringImplInvocationExpressionInvocationExpressionImplIsExpressionIsExpressionImplLabelLabeledStatementLabeledStatementImpl	LabelImplLibraryDirectiveLibraryDirectiveImplLibraryIdentifierLibraryIdentifierImplListLiteralListLiteralImplListPatternListPatternElementListPatternElementImplListPatternImplLiteralLiteralImplLocalVariableInfoLogicalAndPatternLogicalAndPatternImplLogicalOrPatternLogicalOrPatternImplMapLiteralEntryMapLiteralEntryImpl
MapPatternMapPatternElementMapPatternElementImplMapPatternEntryMapPatternEntryImplMapPatternImplMethodDeclarationMethodDeclarationImplMethodInvocationMethodInvocationImplMethodReferenceExpressionMixinDeclarationMixinDeclarationImplMixinOnClauseMixinOnClauseImplNamedCompilationUnitMemberNamedCompilationUnitMemberImplNamedExpressionNamedExpressionImpl	NamedTypeNamedTypeImplNamespaceDirectiveNamespaceDirectiveImplNativeClauseNativeClauseImplNativeFunctionBodyNativeFunctionBodyImplNodeListNodeListImplNormalFormalParameterNormalFormalParameterImplNullAssertPatternNullAssertPatternImplNullAwareElementNullAwareElementImplNullCheckPatternNullCheckPatternImplNullLiteralNullLiteralImplNullShortableExpressionNullShortableExpressionImplObjectPatternObjectPatternImplParenthesizedExpressionParenthesizedExpressionImplParenthesizedPatternParenthesizedPatternImplPartDirectivePartDirectiveImplPartOfDirectivePartOfDirectiveImplPatternAssignmentPatternAssignmentImplPatternFieldPatternFieldImplPatternFieldNamePatternFieldNameImplPatternVariableDeclarationPatternVariableDeclarationImpl#PatternVariableDeclarationStatement'PatternVariableDeclarationStatementImplPostfixExpressionPostfixExpressionImplPrefixedIdentifierPrefixedIdentifierImplPrefixExpressionPrefixExpressionImplPropertyAccessPropertyAccessImplRecordLiteralRecordLiteralImplRecordPatternRecordPatternImplRecordTypeAnnotationRecordTypeAnnotationFieldRecordTypeAnnotationFieldImplRecordTypeAnnotationImplRecordTypeAnnotationNamedField"RecordTypeAnnotationNamedFieldImplRecordTypeAnnotationNamedFields#RecordTypeAnnotationNamedFieldsImpl#RecordTypeAnnotationPositionalField'RecordTypeAnnotationPositionalFieldImpl RedirectingConstructorInvocation$RedirectingConstructorInvocationImplRelationalPatternRelationalPatternImplRepresentationConstructorName!RepresentationConstructorNameImplRepresentationDeclarationRepresentationDeclarationImplRestPatternElementRestPatternElementImplRethrowExpressionRethrowExpressionImplReturnStatementReturnStatementImpl	ScriptTagScriptTagImplSetOrMapLiteralSetOrMapLiteralImplShowCombinatorShowCombinatorImplSimpleFormalParameterSimpleFormalParameterImplSimpleIdentifierSimpleIdentifierImplSimpleStringLiteralSimpleStringLiteralImplSingleStringLiteralSingleStringLiteralImplSpreadElementSpreadElementImpl	StatementStatementImplStringInterpolationStringInterpolationImplStringLexemeHelperStringLiteralStringLiteralImplSuperConstructorInvocationSuperConstructorInvocationImplSuperExpressionSuperExpressionImplSuperFormalParameterSuperFormalParameterImpl
SwitchCaseSwitchCaseImplSwitchDefaultSwitchDefaultImplSwitchExpressionSwitchExpressionCaseSwitchExpressionCaseImplSwitchExpressionImplSwitchMemberSwitchMemberImplSwitchPatternCaseSwitchPatternCaseImplSwitchStatementSwitchStatementCaseGroupSwitchStatementImplSymbolLiteralSymbolLiteralImplSyntheticIdentifierThisExpressionThisExpressionImplThrowExpressionThrowExpressionImplTopLevelVariableDeclarationTopLevelVariableDeclarationImplTryStatementTryStatementImpl	TypeAliasTypeAliasImplTypeAnnotationTypeAnnotationImplTypeArgumentListTypeArgumentListImplTypedLiteralTypedLiteralImplTypeLiteralTypeLiteralImplTypeParameterTypeParameterImplTypeParameterListTypeParameterListImplUriBasedDirectiveUriBasedDirectiveImplUriValidationCodeVariableDeclarationVariableDeclarationImplVariableDeclarationListVariableDeclarationListImplVariableDeclarationStatement VariableDeclarationStatementImplVariablePatternVariablePatternImpl
WhenClauseWhenClauseImplWhileStatementWhileStatementImplWildcardPatternWildcardPatternImpl
WithClauseWithClauseImplYieldStatementYieldStatementImpl_AnnotatedNodeMixin_SetOrMapKindsfindPreviousAnalyzerPublicApimessage_List_initializeoverrideToken
beginTokenendTokenaddNodeListvisitAdjacentStringsvoidResolverVisitorTypeImplcontextTypeacceptStringBufferintlengthi_appendStringValuecommentmetadata _initializeCommentAndAnnotations_comment	_metadataisEmpty!firstTokenAfterCommentAndMetadataoffset_visitCommentAndAnnotations
DeprecatedElementexperimentalElement2ElementAnnotationFeaturegeneric_metadataElementAnnotationImpl_becomeParentOf	asElementelementparentaddTokenaddNodevisitAnnotationnamed_arguments_anywhereParameterElementMixinArgumentErrorFormalParameterElementMixinmap	parameter
asElement2toListevisitArgumentListindexOf
Precedence
relationalvisitAsExpressionvisitAssertInitializervisitAssertStatementnameLocalVariableElementParameterElementLocalVariableElement2FormalParameterElementPatternPrecedenceprimaryvisitAssignedVariablePatternPromotableElementImpl2$analyzeAssignedVariablePatternSchemaunwrapTypeSchemaView
operationsunknownTypePatternResultSharedMatchContextresolveAssignedVariablePatternnodecontextMethodElementOrMemberMethodElement2OrMember
assignmenttype	TokenTypeEQwriteElement2ExecutableElement2formalParametersvisitAssignmentExpressionbool	identicalSyntacticEntity
ComparatorfirstsecondIterableStringsyntacticEntitiesentitiesToSourceVisitortoString_parentScope
staticTypeMethodFragmentFragmentvisitAugmentedExpressionExecutableElementExecutableFragmentpostfixvisitAugmentedInvocationprefixvisitAwaitExpressionFunctionTypeMethodElement2FunctionTypeImplforTokenTypeMethodElementvisitBinaryExpressionlexemeKeywordASYNCvisitBlockFunctionBodyimposedType
visitBlockisSyntheticvisitBooleanLiteralvisitBreakStatementnextQUESTION_PERIOD_PERIODcascadevisitCascadeExpression_childEntitiesvisitCaseClausevariablePatternvisitCastPatternanalyzeCastPatternSchemainferenceLogWriterenterPatterntypeOrThrowanalyzeCastPatternpatterninnerPatternrequiredTypeSharedTypeView!checkPatternNeverMatchesValueTypematchedValueTypeunwrapTypeViewexitPatternvisitCatchClauseLocalVariableFragmentLocalVariableElementImplLocalVariableElementImpl2visitCatchClauseParameterentityvalueaddObjectsortabaddAllClassElementClassFragmentClassElementImplmembersvisitClassDeclarationvisitChildrenaugmentKeywordtypedefKeyword	semicolonvisitClassTypeAliasCollectionLiteralContextMdCodeBlockDocDirective	DocImportaddTokenListvisitCommentvisitCommentReferenceCompilationUnitElementLibraryFragmentEOF
FeatureSetLibraryLanguageVersionLanguageVersionTokenLineInfoCompilationUnitElementImpl
SCRIPT_TAGprecedingCommentsLEXICAL_ORDERvisitCompilationUnitPropertyAccessorElementGetterElementDartTypeSetterElementreadElement2conditionalvisitConditionalExpressionDirectiveUrivisitConfiguration
InvocationnoSuchMethodvisitConstantPatternanalyzeConstantPatternSchemaanalyzeConstantPattern
popRewriteConstructorElementConstructorFragmentConstructorElementImpllexicallyFirst
parametersvisitConstructorDeclaration visitConstructorFieldInitializerConstructorElementMixin2ConstructorElementMixinvisitConstructorNamevisitConstructorReferenceConstructorElement2tokenvisitConstructorSelectorvisitContinueStatementcurrentdispatchPatternkeywordCONSTFINALvisitDeclaredIdentifierBindPatternVariableElementBindPatternVariableElement2BindPatternVariableFragmentBindPatternVariableElementImplBindPatternVariableElementImpl2visitDeclaredVariablePattern$analyzeDeclaredVariablePatternSchemawrapSharedTypeViewanalyzeDeclaredVariablePatternParameterKindParameterElementImpldeclaredElementdeclaredFragmentisConstisExplicitlyTypedisFinalvisitDefaultFormalParameterElementImplvisitDoStatementargumentListtypeArgumentsvisitDotShorthandInvocationvisitDotShorthandPropertyAccessvisitDottedNamedoublevisitDoubleLiteralvisitEmptyFunctionBodyvisitEmptyStatementvisitEnumConstantArgumentsFieldElementFieldFragmentFieldElementImpldocumentationCommentvisitEnumConstantDeclarationEnumElementEnumFragmentEnumElementImplvisitEnumDeclarationLibraryExportElementLibraryExportcombinatorsLibraryExportElementImpl_elementuriconfigurationsvisitExportDirectivevisitExpressionFunctionBodyParameterMembermemberincludeSelf_getStaticParameterElementForindex_staticParameterElementForIndexrightOperandstaticInvokeType
isNotEmptyrightHandSide'_staticParameterElementForRightHandSide"_staticParameterElementForOperand2constKeywordisBottomresolverflowAnalysisflow
handleExitrecordStaticTypeanalyzeExpressionSharedTypeSchemaViewelementTypeUnknownInferredTypeinstancedispatchExpressionvisitExpressionStatementvisitExtendsClauseExtensionElementExtensionFragmentExtensionElementImplvisitExtensionDeclarationvisitExtensionOnClauseExtensionElement2ExtensionElementImpl2firstFragmentQUESTION_PERIODQUESTIONvisitExtensionOverrideExtensionTypeElementExtensionTypeFragmentExtensionTypeElementImplvisitExtensionTypeDeclaration	fieldListvisitFieldDeclarationFieldFormalParameterFragmentFieldFormalParameterElementImplrequiredKeywordcovariantKeywordvisitFieldFormalParameter visitForEachPartsWithDeclarationvisitForEachPartsWithIdentifier	_iterablevisitForEachPartsWithPatternvisitForElementpushRewriteFormalParameterFragmentisNamed
isOptionalisOptionalNamedisOptionalPositionalisPositional
isRequiredisRequiredNamedisRequiredPositional castvisitFormalParameterList	conditionupdatersvariableListvisitForPartsWithDeclarationsvisitForPartsWithExpressionvisitForPartsWithPatternvisitForStatementVariableElementVariableElement2BodyInferenceContextVariableElementImpl
StateErrorpotentiallyMutatedInScopecontainsExecutableElementImplGETSETvisitFunctionDeclaration!visitFunctionDeclarationStatementvisitFunctionExpression_argumentList!visitFunctionExpressionInvocation_typeArguments
precedencevisitFunctionReferenceTypeAliasElementTypeAliasFragmentTypeAliasElementImplvisitFunctionTypeAlias!visitFunctionTypedFormalParameterGenericFunctionTypeFragmentGenericFunctionTypeElementImplvisitGenericFunctionTypevisitGenericTypeAliasMapPatternVariableElementImpl2visitGuardedPatternvisitHideCombinatorvisitIfElementvisitIfStatementvisitImplementsClausevisitImplicitCallReferenceLibraryImportElementLibraryImportLibraryImportElementImplvisitImportDirectivehiddenNames
shownNamesPrefixElementPrefixElement2visitImportPrefixReferenceisNullAwareOPEN_SQUARE_BRACKETtargetancestorExecutableElement2OrMembervisitIndexExpressionleftHandSideoperatorisIncrementOperatorinConstantContextvisitInstanceCreationExpressionMINUSvisitIntegerLiteralBigInttryParse	bitLengthfrom	maxFiniteonezerominparsetoDoublevisitInterpolationExpressionendstartelementslastvisitInterpolationStringvisitIsExpressionLabelFragment	unlabeledvisitLabeledStatementLabelElementImplLabelElementImpl2
visitLabelLibraryElementLibraryElement2LibraryElementImplvisitLibraryDirectivewriteconsiderCanonicalizeStringvisitLibraryIdentifiervisitListLiteralvisitListPattern	argumentselementAtOrNullanalyzeListPatternSchemalistPatternResolverresolveSet
logicalAndvisitLogicalAndPatternanalyzeLogicalAndPatternSchemaanalyzeLogicalAndPattern	logicalOrvisitLogicalOrPatternanalyzeLogicalOrPatternSchemaanalyzeLogicalOrPatternnullSafetyDeadCodeVerifierflowEndvisitMapLiteralEntryvisitMapPatternEntryvisitMapPatternkeyType	valueTypeanalyzeMapPatternSchemaresolveMapPatternbodySTATICvisitMethodDeclarationPERIOD_PERIODvisitMethodInvocationMixinElementMixinFragmentMixinElementImplvisitMixinDeclarationvisitMixinOnClauselabelifTypeOrNullnonevisitNamedExpressionClassElement2TypeAliasElement2importPrefixelement2	fragmentsanyfragment
isDeferredvisitNamedTypevisitNativeClausevisitNativeFunctionBody
RangeError	ListMixinUnsupportedErrorNevergrowablekindREQUIREDvisitNullAssertPattern%analyzeNullCheckOrAssertPatternSchemaisAssertanalyzeNullCheckOrAssertPatternvisitNullAwareElementvisitNullCheckPatternvisitNullLiteral_nullShortingExtensionCandidate_extendsNullShortingvisitObjectPatternanalyzeObjectPatternSchemaanalyzeObjectPatternfieldsbuildSharedPatternFieldsmustBeNamed_expressionvisitParenthesizedExpressionvisitParenthesizedPatterndispatchPatternSchemaPartElementPartIncludePartElementImplvisitPartDirectivevisitPartOfDirectivevisitPatternAssignmentvisitPatternFieldvisitPatternFieldNamevisitPatternVariableDeclaration(visitPatternVariableDeclarationStatementvisitPostfixExpressionvisitPrefixedIdentifiervisitPrefixExpressionvisitPropertyAccessvisitRecordLiteralvisitRecordPatternanalyzeRecordPatternSchemaanalyzeRecordPatternpositionalFieldsvisitRecordTypeAnnotation#visitRecordTypeAnnotationNamedField$visitRecordTypeAnnotationNamedFields(visitRecordTypeAnnotationPositionalFieldConstructorElementImpl2%visitRedirectingConstructorInvocationvisitRelationalPatternanalyzeRelationalPatternSchemaanalyzeRelationalPattern"visitRepresentationConstructorNamefieldMetadatavisitRepresentationDeclarationvisitRestPatternElementvisitRethrowExpressionvisitReturnStatementvisitScriptTag
unresolvedTypedLiteralResolverInterfaceTypesetvisitSetOrMapLiteralvisitShowCombinatorvisitSimpleFormalParameterScopeLookupResultpreviousthisOrAncestorOfType
identifierpropertyName
methodName
realTargetreadElementwriteElementvisitSimpleIdentifierparent2	fieldNameisMultilineisRawisSingleQuotedvisitSimpleStringLiteralPERIOD_PERIOD_PERIOD_QUESTIONvisitSpreadElementcontentsEndcontentsOffsetcontentsvisitStringInterpolation
startsWith
codeUnitAtendsWithvisitSuperConstructorInvocationvisitSuperExpressionvisitSuperFormalParameterlabelscolon
statementsvisitSwitchCasevisitSwitchDefaultvisitSwitchExpressionCasecasesvisitSwitchExpressionvisitSwitchPatternCasevisitSwitchStatementvisitSymbolLiteraldynamicvisitThisExpressionvisitThrowExpression visitTopLevelVariableDeclarationvisitTryStatementvisitTypeArgumentListvisitTypeLiteralTypeParameterElementTypeParameterFragmentTypeParameterElementImplvisitTypeParametervisitTypeParameterListURI_WITH_INTERPOLATIONINVALID_URIUri
encodeFullFormatExceptionpathvalidateUriVariableFragmentisLatevisitVariableDeclarationvisitVariableDeclarationList!visitVariableDeclarationStatementvisitWhenClausevisitWhileStatementvisitWildcardPatternanalyzeWildcardPatterndeclaredTypevisitWithClausevisitYieldStatementmustCallSuper_commentIsBeforeAnnotationssortedCommentAndAnnotationsStringLiteralStringLiteralImplAdjacentStringsAstNodeAstNodeImpl_AnnotatedNodeMixin
AnnotationArgumentList
ExpressionExpressionImplAsExpression	AssertionConstructorInitializerConstructorInitializerImplAssertInitializer	StatementStatementImplAssertStatementVariablePatternVariablePatternImplAssignedVariablePatternNullShortableExpressionMethodReferenceExpressionCompoundAssignmentExpressionNullShortableExpressionImpl CompoundAssignmentExpressionImplAssignmentExpressionSyntacticEntityAugmentedExpressionAugmentedInvocationAwaitExpressionBinaryExpressionFunctionBodyFunctionBodyImplBlockFunctionBodyAstNodeWithNameScopeMixinBlockLiteralLiteralImplBooleanLiteralBreakStatementCascadeExpression
CaseClauseDartPatternDartPatternImplCastPatternCatchClauseCatchClauseParameterNamedCompilationUnitMemberNamedCompilationUnitMemberImplClassDeclarationDeclarationDeclarationImplClassMember	TypeAliasTypeAliasImplClassTypeAliasCollectionElement
CombinatorCommentCommentReferableExpressionCommentReferenceCompilationUnitCompilationUnitMemberConditionalExpressionConfigurationConstantPatternClassMemberImplConstructorDeclarationConstructorFieldInitializerConstructorReferenceNodeConstructorNameCommentReferableExpressionImplConstructorReferenceConstructorSelectorContinueStatementListPatternElementListPatternElementImplAnnotatedNodeAnnotatedNodeImplDeclaredIdentifierDeclaredVariablePatternFormalParameterFormalParameterImplDefaultFormalParameter	DirectiveDoStatementInvocationExpressionInvocationExpressionImplDotShorthandMixinDotShorthandInvocationDotShorthandPropertyAccess
DottedNameDoubleLiteralEmptyFunctionBodyEmptyStatementEnumConstantArgumentsEnumConstantDeclarationEnumDeclarationNamespaceDirectiveNamespaceDirectiveImplExportDirectiveExpressionFunctionBodyCollectionElementImplExpressionStatementExtendsClauseCompilationUnitMemberImplExtensionDeclarationExtensionOnClauseExtensionOverrideExtensionTypeDeclarationFieldDeclarationNormalFormalParameterNormalFormalParameterImplFieldFormalParameterForLoopPartsForLoopPartsImplForEachPartsForEachPartsImplForEachPartsWithDeclarationForEachPartsWithIdentifierForEachPartsWithPattern
ForElementFormalParameterListForPartsForPartsImplForPartsWithDeclarationsForPartsWithExpressionForPartsWithPatternForStatementFunctionDeclarationFunctionDeclarationStatementFunctionExpressionFunctionExpressionInvocationFunctionReferenceFunctionTypeAliasFunctionTypedFormalParameterTypeAnnotationTypeAnnotationImplGenericFunctionTypeGenericTypeAliasGuardedPatternCombinatorImplHideCombinator
Identifier	IfElementIfElementOrStatementImplIfStatementImplementsClauseImplicitCallReferenceImportDirectiveImportPrefixReferenceIndexExpressionInstanceCreationExpressionIntegerLiteralInterpolationElementInterpolationElementImplInterpolationExpressionInterpolationStringIsExpressionLabeledStatementLabelDirectiveImplLibraryDirectiveIdentifierImplLibraryIdentifierTypedLiteralTypedLiteralImplListLiteralListPatternLogicalAndPatternLogicalOrPatternMapLiteralEntryMapPatternElementMapPatternEntryMapPatternElementImpl
MapPatternMethodDeclarationMethodInvocationMixinDeclarationMixinOnClauseNamedExpression	NamedTypeUriBasedDirectiveUriBasedDirectiveImplNativeClauseNativeFunctionBodyList	ListMixinNodeListNullAssertPatternNullAwareElementNullCheckPatternNullLiteralObjectPatternParenthesizedExpressionParenthesizedPatternPartDirectivePartOfDirectivePatternAssignmentPatternFieldPatternFieldNamePatternVariableDeclaration#PatternVariableDeclarationStatementPostfixExpressionPrefixedIdentifierPrefixExpressionPropertyAccessRecordLiteralRecordPatternRecordTypeAnnotationFieldRecordTypeAnnotationRecordTypeAnnotationFieldImplRecordTypeAnnotationNamedFieldRecordTypeAnnotationNamedFields#RecordTypeAnnotationPositionalField RedirectingConstructorInvocationRelationalPatternRepresentationConstructorNameRepresentationDeclarationRestPatternElementRethrowExpressionReturnStatement	ScriptTagSetOrMapLiteralShowCombinatorSimpleFormalParameterSimpleIdentifierSingleStringLiteralSingleStringLiteralImplSimpleStringLiteralSpreadElementStringInterpolationSuperConstructorInvocationSuperExpressionSuperFormalParameterSwitchMemberSwitchMemberImpl
SwitchCaseSwitchDefaultSwitchExpressionCaseCaseNodeImplSwitchExpressionSwitchPatternCaseSwitchStatementSymbolLiteralThisExpressionThrowExpressionTopLevelVariableDeclarationTryStatementTypeArgumentListTypeLiteralTypeParameterTypeParameterListVariableDeclarationVariableDeclarationListVariableDeclarationStatement
WhenClauseWhileStatementWildcardPattern
WithClauseYieldStatement{p9:s        dart:collection     math	dart:math     =package:_fe_analyzer_shared/src/base/analyzer_public_api.dart  X   Apackage:_fe_analyzer_shared/src/scanner/string_canonicalizer.dart     Hpackage:_fe_analyzer_shared/src/type_inference/type_analysis_result.dart     6package:_fe_analyzer_shared/src/types/shared_type.dart  8   ,package:analyzer/dart/analysis/features.dart  o   *package:analyzer/dart/ast/doc_comment.dart     )package:analyzer/dart/ast/precedence.dart     /package:analyzer/dart/ast/syntactic_entity.dart     $package:analyzer/dart/ast/token.dart  A   *package:analyzer/dart/element/element.dart  v   +package:analyzer/dart/element/element2.dart     (package:analyzer/dart/element/scope.dart     'package:analyzer/dart/element/type.dart     &package:analyzer/source/line_info.dart  B   -package:analyzer/src/dart/ast/extensions.dart  z   4package:analyzer/src/dart/ast/to_source_visitor.dart     .package:analyzer/src/dart/element/element.dart     -package:analyzer/src/dart/element/member.dart  *   +package:analyzer/src/dart/element/type.dart  `   2package:analyzer/src/dart/element/type_schema.dart     >package:analyzer/src/dart/resolver/body_inference_context.dart     >package:analyzer/src/dart/resolver/typed_literal_resolver.dartk|findPrevious /   cfutilf+package:analyzer/src/fasta/token_utils.dart     1package:analyzer/src/generated/inference_log.dart     ,package:analyzer/src/generated/resolver.dart     2package:analyzer/src/generated/utilities_dart.dart  /   6package:analyzer/src/utilities/extensions/element.dart  p   5package:analyzer/src/utilities/extensions/object.dart     "package:collection/collection.dart     package:meta/meta.darth l LD M׀؀W7n׃@uބAy)_.~.o܇J}[qu=qՊ;<x~ϋߋ%,UYZfόЌ܍$I<َݎގ<cXݑ!FG,QRƓ#TVWדݔ,\rɕ,HgŕArÖɖIMOP×ǗΗڗ*.D]av֙L̙$89,}?fv>?ĞCZ[g}~Ϟa6Elno ؠ٠'>?ijۡܢ
WߢGViף%OeڤBcghtզ56B6VZ[g!"D[_`lͩ	06QUVbͩѩҩުOPĪŪѪ4R٬[\hӬ!"qҭ֭!fޯ!Y_+QRnǰɰʱ!@APɲϳj{)Vz34y8S۶߶,Q÷EIJVBxyϹйܺ'+,xȺۻ8ѻ7i L}ƽ۾"([_abx|¿=Vnoǿȿ @ @ @ @R @p @q @} @ @ @ @ @ @ A# AA Ag A A A A A A A B! B" B. BV BW Bc B B B B B B C C8 C9 CE Cm Cn C C C C C C D& DO Dl Dm Dy D D D E E[ E_ E` El E E E E E E F F F3 Fp F F G G GR Gu G G G G G G G G G H H H( H) H5 HU HV H H H H I I* IP It I I I I I I J J+ J, J8 Jf Jg J J J J J J J K K3 K4 K` K K K K K L L5 L[ Lz L L L L M. M/ M; Mf M M M M M M N= Nq N N N O O' O; O< Ou O O O O O P P, PG PH Pe P P P P P P P Q@ Q Q Q Q Q R R' R3 RP RQ R] R| R} R R R R R R R R S S S S- S. Sb Sz S S S S T$ TH Te T T T T T T T U U U) UW UX U U U U U U U U V V VJ V V V V V V W1 WW Wv W W W W X XO XP X\ X X X X X X X X Y% Yf Y Z ZH ZN Z Z Z Z Z [ [ [k [ [ [ [ \	 \# \% \& \j \ \ \ \ \ \ \ \ ] ]" ]# ]I ]U ]n ] ] ] ] ] ] ] ^
 ^ ^ ^f ^g ^s ^ ^ ^ ^ ^ _& _B _o _ _ _ _ `8 `< `= `I `i ` ` ` ` a a a  a$ a% a1 a] a_ a` a~ a a a b b; bJ bk b b b c c c; cQ cR c c c c c d2 dX dx dy d d d d d d d d e. eK eu e e e f f/ fT fX fY fe f f f f f f g, gT gX gY ge g g g g g h h9 h= h> hJ h h h h h h i' i+ i, i8 in i i i i i j5 j6 j j k' kt k k k k l l l lQ l l l l m# mO m m m m m m n n n n nA np nq n} n o o o o! oL oo o o o o o p p p	 p= p~ p q  q qT q q r- rZ r r r r r sF s s s s tB tb th t u	 uW uj uv u u u u u v v vZ v v v v v v v w w w wd wy w w w x x xG xM x x x x y y yh yt y y y z
 z zZ z z z { { {U { { { | |  |& |t | | | }B } } } } } ~ ~ ~k ~ 
  + , u {        ( Y           $ F     ) \          > ? K ` y         C D ` t x y      6 \ b |        $ > g          2 6 7 C f g     ' + - . z    " 6 8 9 s w   Z f    Y j     # $ O P { |     0 1 l m       F G d e       0 1 X Y         L M n o       @ A r s     . / j k       T U       F G n o       @ A       & ' ` a        6 7 z {     4 5 | }       ! d e     
  D E       J K       G H w x       + , i j       S T        + , I J } ~       ; < q r        1 2 g h       / 0 U V       # $ W X       - . [ \       # $ k l      : ; n o       6 7      9 : f       ^ _       $ % V W       2 3 ` a       P Q x y       L M ~        X Y         F G       6 7 f g          D      S W    . 2 x    ! o     C \      P |   = \ z {     ? O i k l         8 \ b c o        5 6 B c d p       * { |      + V }       # b    % & E c d     A G       ! n       $ % 1 Q R ^         ; B f         : ; G s t À ó ô   + Y Ā ā č ĵ     D ŋ ŏ Ő Ŝ   
    * . I i ƪ     R o q r ǩ       F ^ ~ Ȧ       - 1 2 > l m y ɩ ɪ      J K W ʍ ʺ    = > J ˕      5 9 ; < ] a } ̪   H  ͝ ͞     5 6 ·     ' I h i u ύ ώ Ϯ ϯ ϻ    	 
 ? X Ё Н    4 W [ \ h ћ ќ Ѩ      G w { | ҈      A r v w Ӝ Ө    % O t ԡ Ԣ Ԯ   	 T ՘ ՜ ՝ թ        > B S q ֲ     ; U V ׃ ש ׫ ׬   	 B ؃      L o { ٓ ٔ ٠ ٵ ٶ    & , } ڃ    2 J h ۀ ۝ ۡ ۢ ۮ     & * + 7 X Y x ܝ ܡ ܢ ܮ    * + 7 _ ` l ݱ ݲ ݾ   4 S T ` ޯ ް ޼  J K W ߂ ߞ ߢ ߤ ߥ     2 3 w x       , L S           7 8 D z       O P \          L         I U l m y          B C O p q }       ! m n z      C j n p q      M       7 N O    :    ! o      < H d e           M ^ u        " J K W z {          V      " # / Z w { } ~    e i      / i m     & [       D ] _ `      F G }     ; U s        @ A M         6 7 C k l          W X d       P          % Z       ' + A d    $ % h       
 % & 2 ] ^ q          # T U a    MNZ
#:iFab()5VWc'+,8fgs<=I<=I0PV		#	8	U						

_
f






 $&'RVhW$?@,N~$%jCbcgs=>J`aXtzHh?\%<a%=C]abn	
KkopAB{^@m1f6`-i(.dt  < = ^ p r s      !-!.!K!c!i!j!v!!!!!"""")"]""""""""###&#N#######$
$ $V$$$$$%%K%l%%%&& &*&2&8&9&W&l&&&&&'!'''('@'r'x'y'''''''(('(;(](f(l(p(q(((((()),)@)b)k)q)u)v)))))))*:*N*c*y*z******++]++++,,G,,,,-9-I-f-g----...<.H.m.n.~...///>/?////001020v0000011>1Y1Z1111222R2g2222233!3"3s333444446474444444555)5F5G5S5q5r5~555555555666)6E6F6R6{6|66666667777C7D7P7k7l7x77777788808L8i88889929R9r9999::0:P:o::::;;,;S;v;;;;;;</<0<<<b<c<o<<<<==!=9=S=k=====> >->\>>>??G?t???@@K@v@@@@A%A&A2A]AAAABB3BPBTBVBWBBCCCCDCCCDDNDbD~DDDDDDDE(EDEHEkEEEEF'FhFFG	G'G(GgGGGGGGGGH%H&HkHHHHHI+I9IcIdIIIJJ#J$JeJJJJJK.KEKnKoKKKKLL0L1L=LSLTL`LLLLLLLLLMMMM,M-M9MVMWMtMuMMMMMMMN'N-N}NNO
OO"OiOoOOOPPPBP[PPPPQQ0QPQsQQQRR5R_RRRRSS<SdShSiSSSSSTT;TTTkTTTTTTTTU=U>UUUUUUUV(VWV[V\VhVVVW7W;W<WHWxWyWWWWWX"XSXpXXXY#YNYYYZZ6Z^ZZZZ[[[ [K[m[[[[\\\\E\z\{\\] ]=]T]]]]]]^^-^n^^_____c_o________````B`F`Y`u``````aa5a9aYaabb4bbbbbbbbcc/c0c~ccccdddfddddddee+eDePelemeeeeeefff)fSfTf`fwfxffffg:gUgegggghh,h3hbhfhghshhhhhhi)i*i6iliiiijjjjHjijmjojpjjjk	k(kHkdkkkkllblllm0m]m^mmmnnFnnnno8oGo`obocooooopppp7p8pwp}ppqq:qYq{qqqqqqqr)r*r6rvrwrrrrrs+sTs}s~sssstt1t5t7t8tPtTttu<uuuuuuuvAv^vbvvvvvvw;wuwwwxxx>xrxsxxyyDyEyyyyyyz8z^z_zzz{{{${%{c{i{| |=|Z|[|||}}L}~}}}}~~Q~m~n~~Ru `xy?@LklMuv4@F6T{;[~!%&2YZfTr:hlmy%)*6l
%M{,dw}:>?K@er	3RZ`dfgA^u EF>nG,m< J&8b~NT"q/5*w}J"(x#)z	_ $*nTZ :;Gbco!%&P\ULhi!78)*6NOqr~6R~8Y"#P~-12>pq},_cdp!@qr~/x|}"$%bf"c F]^ =^_h 9:Fef~67Mj<Rj	
=>Jno/34@jk;n!".yz	
MhLNO":a$(s9z78o01Ii&'3`am MNZÕû>?KĎĩ#HhnŚų.YtxyƅưLǆǵǹ%fȂ+/Fx|ɗ eʧPi˄˅˳˿45́̟̠()a͖͗BhiζGυϳϴ.sІУФ<Ogijѩ	)*6MNZyzҘҙҥҼҽ'(iӁӂӱӲAGԔԚ &qՊՐ/HN֖/GMט/Kh؊ح1Izٗ1Suڭ;hۄۈۉەۻۼFRܕܖܢܹ6݄ݤݨݩݵ17ވ2Ywߚ߹ߺ 7fjkw+rvwYCd >[\h=^">{cwx34m
-.LM.?c+No*./;ijv	IJ}>d'Rr8a
Gpq7j lYpq}i1Mimnz&*+7bc)*6YZ{"?@LLP2SEGH 2^L{  1 u v     2z~ZQyJy4u/12j07RVWc78Dl		H			


h




ioe'FGght2C] 89EhiuDw&Qnrtu4Sq=~*+QWDhiN=h?f
*2e|Lc]&9?Bbgij'c Ccd    `   !!/!K!h!n!p!q!!!!"?"""""##"#q#####$ $!$e$y$z$$%%A%U%V%%%%&&!&"&s&&&&&''!'9':'W'X'd'x'y'''''(8(t(z((())+)H)c))))))***X*Y*i*u*******++;+l+p+q+}+++++,	,2,3,Z,},,,,,--&-'-3--------. .1.5.P..//d////00"0b0r000011T1U1y11112222R2{222222233303K3c3|333333344)4a4~4444445555.5/5w5556666#6$606q6r6~6667777G7y7z77788G8h8l8m8y888899Q9b9p999:::U:m:::;;.;/;B;F;G;S;~;;;;;;< <^<b<<<<==X==>>2>3>z>>>??(?*?+?n???????@@	@*@+@g@m@@@AA0AMAxAAABBB	BBFBGBSBzB{BBC CCCCjCkCwCCCDDDD D7DfDDDDDDDDDE6E7ECEmEnEzEEEEEEF7F8FuFFFFFFFG"GHGoGGGGHHHH;H[HHHHHHHHIII:IWIIJJaJJJJJKKK>KDKKKKLLLL&LNLOLuLLLLLLLM MAMyMMMMNNN6NMNNNjNNNNNNO
OO=OWOYOZOOOOOOOPPPP7P8PUPVPbPPPPPPPQQ&QFQiQQQQRR$RERIRJRVR{R|RRRRRRRSS9S:SgSSSSSSSTT3TOT|TTU
U2U3U?UUUUUUUVVVJVZV^VVVVVW3W~WWWX
XX X!XiXXXXXXXY0YOYiYYYYZZ"Z#Z/ZQZRZ^ZZZZZZ[
[[?[n[r[s[[[[[\\>\l\\\\] ]]]X]]]]]]^"^D^H^J^K^y^__%_D_F_G______``I`````a a"a#aeaaaaaaab7bZbtbbbbbbc!c"c.c]c^cjcccccddLdPdQd]dddddeeLeMeYeeeeff.fPfTfVfWffffg;gpgggghhZh[hhhhii iOiSiTi`iiiiiij j!j-jSjyjjjkkkkDkekikkklkkkklll)l[lllmmm4mHmJmKmmmmmmmnn)nDn]ncndnpnnnnnnno)o*o6oooopppp+pVp}pppppppqq$qeqqr rrrrUrxrrrrrsssss>s?sKsnsos{sssst6t7tCttttu	u8u<u>u?uWu[uuuuv v/vFvHvIvvvvvw
w'w-w.w:w_w`wlwwwwwwx x9x:xFxxxxxxxxy$y(yIyyzzZzzz{{5{e{f{{|#|%|&|`|||||}}}}7}8}V}w}}}}~~6~:~;~G~a~~~~~~)W(,-9dE&T|};39)NO_k1=\]i}~)*gm:WyLrs/0<BCOx$(*+RVj"c P%&@YZ45d_=?@IJij67z{a3Ut>x-\"&'3|} &'3PTUa&]abn6qBvFGS Bj*kHTyz>Nrtu39&B_ +7a6hlmy+_=_ =~
*0kiF*o QbhLFi06)FG&L0`a1? k{Lde!-@BC!CDbco:Fe%GKLXq":@aefr WXd!Da QR^)JNPQ´&SÈð045AcdpĦ#S~@rư*2gǚfȮEqɴɺBCʍAhˇˎ˫1S̄̦3?V|͞7^jΈ:[Ϙ!fЍЙаEeцѤ	*045|҂<ӋӚӾCGHTk԰@DEՖթկKpֺֻ
-3ׁ D{,0Ol٭ =>ڎ*Omnz۔ە.Prvw܃ܵܶ AEFR݂݃ݱ[\hޞLMY߄ߥߩ߫߬\578 8_&UV}GHT.2G'tGHXdRwx23Rlm	)RTU=>JfgsOP\xy(Lk>h	VWc78DFwHn9[$eFiu#FJKW|}"OP\aptLy,Rrs7
56z&?fg%+m23?ST`    - . H h    "Il1dhiu)YZf!TUa V/`deq=`M	-	[					

-
.
\
h





 ?ij12Qkl7Z./;jkwabn Bf&Eq	6:;iu+UVb.[x7]	4V{&*FSa8Ka*+_tu	:<=v+KLXvw  M    !!,!O!q!!!""*"J"k"o"p"""""#	#
##9#:#F#~######$$^$$$$$$$%
%E%x%%&&@&`&&&&&&''=']'a'c'd''''((W((())7)8)))))))*1*^*****++_+++,,^,},,,,,---I-O----.$.B.k.m.n..../ ///*/E/F/R/h/i///////000g000011!1p111122!2>2c2222333O33334 44B4d4h4i4u4444555T5X5Y5e555556666M6N6Z666666777!7[7\77777778%8^8b8c8o8889%9)9*969q9999::I:r:s:::::;;1;M;s;;;;;<<N<}<<<<<<=<=H=a=b=~==>>>7>]>{>>>>>>>?
???C?D?p?????@@0@1@=@h@@@@@A
AA%AVAABB5B7B8B}BBBC$C]CCCCDD8D<D=DID}D~DDDDE,E0E1E=EsEEEEEF/F0F<FgFFFFFFG/G3GJGyGHHH@HBHCHHHHI)IcIIIIJJ3J7J8JDJvJwJJJJKK!K"K.KdKKKKKLLL(LSLtLLLLLLLM$MeMMMMN/NTNUNNNNNOOPOQO]OtOuOOOOPPP(PUPpPPPPPQQQQ'Q@Q]QsQQQQQQQR"R8R>RORSRTR`RRRRSS(SJSnSoS{SSSSTT-TJTlTpTrTsTTUUiUUUUUUVVV V_VVVVVVVVVW2WUWqW}WWWWWWWWXXXX=X>X]X^XXXXYY-YQYzYYYYYYZZ>Z?ZKZvZwZZZZZ[[[[I[J[~[[[[[\%\N\\\\] ]]T]U]a]x]]^^^^$^O^r^^^^^^^_9_w____```````aaa1aTaxaab/bNbObbbccc<cBccccddddMdkdlddee5eIeJe}eeeef
ffMfdfefffggg:g;gsgygggh	hhLhRhhhhii%isiiiijjjTjyjzjkk&k'kjkkkkkkkl'l(lVlbllllllmmmmLmMmYmmmmmmn	n
nnJnKnWnnnnnnoo
oo[otoxopphpppqq/qyqqqrrr5rcrrrsss'sssst@tttttttuNuTuuuvvvbvhvvvwww?wkwlwxx$xAxBx_x}xxxxxyy	ySyTy`y~yyyyyyyz
zz]zzz{{J{k{{{{{{{|#|$|0|Z|[|g|||}}D}J}\}`}a}q}}}}}}~B~C~O~t~~"Gn&KS	fgs_]y3OP
34RS_}~F{$De5cght<k#Dcgij
T/12pO:W}12o6Z[g@DFG]J56gm9[y	deq*`(Sy4.Z\]3Us(^>]W6oOgh >@At12TUa Am/34@vw./;qr Mv
'(4~59QpCu&'xd"(xF#q6<{e])*6XYe1iJP%+h[_~2 \7Gde>Jtu.:fgIJy$cCf45cdp$]cbr9\u­$NRSÁÍü !-]zĕĸ:;Ł^_kƠơYǊǽ5no{&Hquwxɩ3aʐʒʓ45w˜
59:F́̂̎gͨͬͭ͹+,8aΘΙΥ  >σ$=>ЍЩ;Aсч"#sҕҼҽ+TVWӑӵ	#$mԅ$%]xլ,Ne֋֭&N׀פת+VZ[؉ؕ'abٚZ[ڙGoیۍۙA܇܋܌ܘ&*,-w{UYށ޼/n߻(DTwx(w>cAg)*6fgs
=>co"P}~12>4Y|;X\9^dF.Top F.01z/U$ST`/34@_%RVWcHIU!?cgij"R45EQ|}-Cef	
BeJP%v<U$Gi12>wx$%R{BFGS  5 e    Ik#Z&89o
\stEn:;ef8rxAe		,	N	x			

	



P
Q
]



89Ebco=ABN+,j2[\h "Dj15-1N^Hf=_5z&'Ebc)KL/Rw&?@L^_Ie6X fgs+Z^_kHI-`FJKW   - l  !!W!k!l!""!"J"K"v"""#
#3#5#6#m######$$$$)$S$T$$$%%%h%%%%& &&M&g&&&&''.'2'3'a'm'''''(5(9(:(r(((((()$)Q)U)V)b)))****)*d***++4+Q+R+^++++++,,:,U,Y,[,\,,,,--J----....^.j....///0/</`/a/x///////006070C00000111%1q1r1~1111112<2Q2U2o223+3x333334K4L444445&5*5+575g5h5t55556 6O6P6\66667777	73777M7k7788_8r8x899X9h99999::^::;;<;=;;;;;<<<X<d<<<<<<<<<=&=g==>>>]>>>>??)?*?s????@*@A@B@^@{@|@@@AA(A*A+AcAAAAAB BBB B,BPBQB]B}B~BBBBBBBC%C7CTCwCCCDD0DaDDDDEE2EUEYEZEfEEEEEEEF1F2FfFFFFFFFG*G+G7GlGmGyGGGGGH&HSHWHXHdHHHIIDIyIIIIJJMJNJZJqJJKKKKKGKgKKKKKKLL.LxLLLM3MHMiMjMMMN
NNNN2N6NMNNNO%OoOOOOPPPWPPPPQ;QPQmQnQQQQRR8R9RVRtRuRRRRSSZSfSSSSSSSSSSTT(T)T5TQTRTrTsTTTTUU&U:UWUzUUUVV-VXVzVVVWW3WXW\W]WiWWWWWWWX0X1XaXXXXXXYYY:Y>Y?YKY{Y|YYYYYYYZ3Z4ZcZZZZZ[[5[][[[\\B\C\O\\\\\]]6][]_]a]b]]]]^/^j^^^^_$_&_'_\_~_____`&`?`d``````aaaaUaVabaaaabb;bhbibubbbbcc c"c#cgckcdd*dkddee#e$eqeeeeef)fBfifjfffg9gagcgdgggghhhh@hAhMhghhhhhhi iBikiiiiiiijjIjJjVjjjjjjjk
kTkUkzkkkkll	l<lilmlnlzllmmmm<mqmumvmmmn nnn8nXn|nnnnnnnoohooppZpqppppqqqcqqqqqrr*r+rZr`rrrrs$sAsascsdssssssttt'tAtBtctdtttu!u'uouuuuuv%v=vYvvvvvvww=w]w{wwwwwwxxFxGxSxxxxxyyyy#yRySyyyyyyz*zDzwzzz{ {H{I{U{{{{{| |>|_|c|d|||}"}s}}}}}~"~F~z~~~~~~~*@Hx@vb0}T5MN}%78{ 67CYZx)IMNZz{	1fjkwLq)/~&>?^wx	h}'t/0+EF@i\#Hiu
34 l~9Qnrs;Z}5Xx~&PTUa%D#$0Rh'PQ|F^<\};<$7|067h
 ,yz!QUt6gQUVb467\`y`
\	Up%&uHg1c<c([_`l-[_`l28<=w1bh#`a;m34@;`6OSx6`uvam	"()5XYe/378DjP)t(I]cd3Sflm W`ou!nĠħ@ő,01djƸ	)^ǡǣǤ9zȲȳKOrɔɸHʒʠʽʾSˁ˚˛f̏̛̶̷ <\{ͣ?@LΊ΋Η%)*6lϗϿ#UVbЍЮвде#dѯ0GHzҔҕҵ6BZ[gwx/56BfgsԨԩԵ'(4}~Պհ6քִָֹ#OQR~ׂ4vء'-;hٓٝ٣67ڇ=یBiܐܑ-BH݌ݵݷݸ=>fgsޘޙޥAmߕ߼	
LM>swyz Z=WXy*+7STpq3QpPQ] $%1ght-U~*u-134w{\opDbdeY	Ce2Xx*0RVWc	4aefr78DKjkw;?@Lyz'ST~()5xyGIO%ABo2>\]}~)c|4PTU{()5XYe23?zKLX  C   TwHO~ ABN}~2f267Cvwijv(IMOPdhS			!	:	;	[	u	w	x				
8
9
E
a
b



28y"BItxy;bh4oFGS;Z^`auy Z~0t9`bc)[\
VWc/OVzEFRxy<g c+IStxyY/MQST!<Yt^j(u    L   !!	!"!8!9!V!v!x!y!!!"""","-"9"_"`"z"""""#!#%#&#2#d#e#q######$9$c$$$$%%%%a%|%%%%%&&6&V&\&&&')'D'H'I'U''''''''((0(q(((())))9)Y)[)\))))))****@*A*Z*y****+++++D+E+Q++++++,,B,g,,,,,,-?-Z------..3.9.e../ /K/f/j/k/w//////00090l001<1R1S11111222_2w2x222223/3P3\3x3y3333333333414I4h444445525O5S5T5`55555556 6#6G6K6L6X6~66666677D7^777778-8.8:8Q8888899-9G9c9g9i9j9}9999:::s::::::;D;b;c;;;;<</<1<2<S<<<===:=>=Y==>>T>j>k>>>>>? ??5?m?????????@@-@F@Z@u@@@@@@@AAAA0A1AQArAvAwAAAABBB+BxByBBBBBBBC6CBCoCpC|CCCCCDDDD2D3DFDgDDDDEE/E3E4E@EEEEEEFFFFOFPF\FFFGGFGGGSGGGGH&HoHHIIUI^IdIIIIIJJJJ#JCJhJJJJJJKK:KXK\K^K_KyK}KKKKL,LlLpLLLLMMkMMN"NMNjNkNNNNNOOOO$OPOQOOOOPP&P'PTPiPjPPPPPPQ2QGQHQQQQQRRRZR}RRRRS&S'SwSSSST(TJTKTTTTTUUBUeUqUUUUUUUUUVV V,VLVMVYVyVzVVVVVVVWWWW<W=WIWtWuWWWWXX0XNXqXXXXYYY,YQYrYYYYYZZZZBZCZOZZZ[ [B[P[T[U[a[y[[\\\\\R\S\_\\\\\\].]/];]v]]^^5^h^^^__-_._:_____``)`J`d`h`j`k```a=aaaabbb\bbbbcAccccddd/dRdSdddeeXeoeeeef flfffggngghh!h;h=h>hhhhhhiii'i(iuiiiiij/jHjmjjjjkk7kUkwk{k|kkkkll)l/lRlVlWlclllllllmmAmmmmmmmnnDnnnnnnoo0o4o5o`ofoooppcppq(q)qZqqqqqqqqr
r0r6rJrNrOr[rrrrrrsssKszssttt#t)t-t.t:tptttuu8u9uEuuuuuuv2vvvzv{vvvvww9w=w>wJwwwwwx)xpxxyy`yyyyyzNzz{<{[{{{{{{{||^||}/}L}M}}}}}~~~~#~J~K~~~~ Bgh =>]wx	Tw#RS_89Eabn	(Ha.5Zy IJV|}?p9mGHT)-/0\`tKbc,8QRY]^j*HIUw$op|)j Q}Fv)-{8-NO)9ab3Tgh.Qm&FJK[gABp !-]^j?@L1RVXY*eEk%+|()U[4KLh{|%&s+,8MN^j'-u@dhiu!".tu">BCOg,2DHIU
(V|}+OSUV:y9Iwx'sth*G_ QUVb(*+\`xSno45Abc	>?Kb!".xy*.LzNij'KMN
#$o
'Otxy%&^	7_`lXYe0vH]tu'(x./[g~«·	%&R^ÃÄðü7XYyzFGŔŨũŵ)-.:RuƌƟƥ4@^ǕǙǚǦ%ioȌȐȑȝ<B_ɐɔɕɡ39=>jvʎ(_cdː˜˭!G~̂̃̯̻[͖ͪ
>b΋Ϋ.2S}ϟSTЗд	56BWXьђ4W҄Ҩ#'(4NӎӏӛӶ$GKLX}ԝ
FM՝ !<@]zֻ&'>Y[\ז׹&A]d؂؆؇ؓ>?Kْٓٟ"#/~ڋ,FPquvۂۢc܃ܜ;?ABuyݲ8g}~&HTlm߆߇߽-JNO[<@AM"#/F#?CEF`d2HI`{}~+,E`|]^jABN7Jeo8>[_ab%Odfg39:Fijv UVb(OSUV*z<ap=>Uh /FNTXYFc&Z\]txQ&'m'FGSst>E`;<H Dz{"= L
Iav$%8<=It  Y    "#@^`a @A}.PTUa /^bco!9["U}(s!"?Cc		$	A	B	l						

)
5
T
U
a






/6TXYe"F`!".i*YZf>c,GKLXN/;WX-FGvjkwMc	&-hlm%&2pqD^JlE+QR*+|!BNijv/5
)Fk  0 4 5 A d e q     !/!`!d!e!q!!!!!!!")"T"{"""""#A#B#N#y########$$E$$%%%%P%m%n%%%%%&&#&9&:&X&Y&e&&&''"'#'='X'r''''( (((;(<(H(u(v(((())))!)i))))*,*N*o*****++L++++++,
,,,,=,A,Y,,,-G-q-w--...g...///4/:/y////000b0000001*161L1M1Y1}1~11112	2'2+2,282z2{22223 3@3F3W3[3\33333334444J4f4444445535P5T5V5W555566B6f6y6z66666777%7&727G7H777777777858R8r8s888899,9092939W9[9y99:C::::::;,;A;B;q;;;;< <<"<#<A<B<N<e<f<r<<<==/=0=W=====>>0>L>i>>>>>>?	?
??F?G?u?????@@2@8@I@M@N@Z@@@@@A!ABAkAlAxAAAABB0BMBmBqBsBtBBBBC1CCCCCDDDDbDDDDDDDE*EIEfEmEEEEEEEFFFFJFtFFFFGGGGHGiGmGoGpGGGGHH9HHH\H}HHIIaIIIIJJ2J3JlJJJKKkKKKKKKLCLfLLLLLLLLMMMDM`M|MMMMMMMN
NNNANBNmNNNNNNOOOJOKOWOOOOOPPPnPQQOQjQ}QQQQQR.RcRRRRRRS	STSSSSSSSSTT:T`TbTcTTTUUDUUUVVV:V@VVVWW0W1WsWWWWWWX5XYXyXzXXXXXXYY>YXYYYYZZZZZBZCZOZiZZZZZZZ[[[@[o[s[t[[[[\'\-\?\C\D\P\\\\\\]]]8]c]g]h]t]]]^^^!^q^r^~^____ _K_h________`0`V`e`y```a3a~aaaab5bObPbbbbc9ccccccdd^dddddddddee7eSexeeeeeeeef f!f-fWfXfffffffgg$g^g_gkgggggh0h1hhiici~iiiiiijBjvjjjjkkkkfkkkkklll	llKlllllmm^mwm{mmnn)nnnnno2oIoJoooooopp=p>pppq#qiqqqr r&rvrrrrrss:sUsVsbszs{sssstt8thtttttttuu8uXu^usuwuxuuuuuuuvv:vsvtvvvvvwwTwXwYwewwwwwxxGxKxLxXxzxxxxxxxyyy7ybyfygyyyzz#zdzzzzzzz{{!{F{s{t{{{{||| |k|||||}}*}.}/};}q}}}}}}}~4~u~~+,s!qeq	)*\r
156B}~ ABNp/efrVZ[g!b%&Cacd$%1QRyz
156Bmnz34@{	`am,@`mw@w*c}#NObfgs&Lrv1`d!=Z[|%&Cacd
;`a~7C"Qlpq}Ck\#$0jkwj156Bmnz+cQUVbL%Uauv&dhjk5^	
N67_~FGSyz>?Ks
E J!".V;i"Rstd5\'(4]^9XFm 4gklx(\`aq}*Z[gHIU~;?AB\`}>xFk{,./i,Qm267CmnzKLX78DCciE`deqM#%&h39:Fhiu'O	TX]ċļ8HxyŭCefƬƿ%OPoǆǇǦ <>?}Ȩȴ,-9XYeɬɭɹ56Bbcʅʨ6Za˚;<my%1hiuͰGmΔ8<=ItϚϽ6wП)EGHюѪ=>YuҐҗҵҹҺ./;qӖӹӺ $%1\z~ԀԁԛԟԼQՅագդ *+a{֝֣֤ְRS_ׅ$%1|$(*+CGbوNqڏڐ%'(^ۋۨ۩#)q܉ܪ489Eno{ݞݟݫ;?@Lނޱ[\hߓߵ߹߻߼	,P
R^wx=>Jp
5\`bc}/3"jxEqrEms9Phz{ Nv|BYq1R^yz;q<B2Su*Cr%)*6wx45Ac ,yz 5m!l,023(d#C07fjkw&\=^bde	J!"o%=>[\    [ a    :U|	F_y34@yzFi	
Ac!%]+D\]N			0	C	D				
#
)
w

4NO+i!01xKL9MS+,e0lr&N	4a	
CDPstIe?ek\6<*ST`9Wm*0BFGSnLai'/Usy3e{  3 e {        !!/!B!q!!!!""8"j"""""###@#w##$$B$y$$$$$$% %d%h%i%u%%%%%&&&:&V&t&x&&&&&''!'C'e'''''(+(u((((((()0)U)a)x)y)))))***%*&*2*U*V*b******+ +++<+=+I+l+m+y++++++,,R,S,v,,,,--- -k-----....&.W.p.t.v.w....//E////000P0j0k0000111E1K1111122(2)2?2C2Y2233I3f3g33334444P44444445505R5t5x5y55555556'6(6V66666667797j7777777888b88888899999G9K9`9s9999:
:':@:Z:v::::;>;r;;<<<	<O<[<<<<<<<="=c===>1>`>a>>>?.?U?V???@ @F@H@I@@@AEAFAAAAB.BsBBBBBC"CUC\ChCCCCCCDD8D9DED]DDDDDDEE?ECEDEPEEEEEEFF9F:FFFzF{FFFFFFFG"GRGSG_GGGGH%HUHHHHHHHICIIIIIIIIIJ'JBJFJHJIJtJJJJJJKK#K4KCKDKKKKKKLL4LPLdLLLMMMFMMMMN/NONlN}NNNNNOO&OKOOOOOOOPEPpPvPPPQAQQQQR	R;R\RRRRSS(SPSsSSSSTT2TUTmTwTTTTTTTUUU#U'U@UaU~UUVV`VVVVVWW#WMWWWyWWWWWWXXXjXXXXYYY"Y=YyYYZ,Z\Z}Z~ZZ[[[n[[[[\\\\^\\\\\\\]]]$]%]1]V]W]]]^8^b^^^^__K_r_____```9`l`p`q`}`````a.abafagasaaaabbb&b\bbbc	c
cc?ctcucccccccddd4dGdddeeeeKelexeeeefffff<f=fIfofpf|ffffg!g"g.g{g|gghhhh'hRhyh}hhhhhii6iijj\jjjjjjjk7kdkkkkkllelllmmdmmmmmmn5nQnWnnnno,oJosouovoooppp%p&p2pNpOp[pqprpppppppq q&qpqqqqr$r*rzrrrrss*sEslsssst%tAtWttttuuuuu0ufujukuwuuuuvvvv'v`vavmvvvvvww'w(w4wnwowwwwwxxx8xqxuxvxxxyy8y<y=yIyyyyzz.z^zzzzzzz{${F{b{{{{{{{{|1|r||}}}}^}|}}}}}~~!~=~e~~~~~~~#$R7V,Mmqst8vwF\w9\{ 8Ttxz{*k\yz%&Cab(iG^{|.Q=V~-.:ghtN~+,8c12>]^|}'(4PQjLl FGS%&2m,WyZFJbz	V>JL6TU;wx4:{DswxAek}	<@]'i	45OjY})xy/3Nk<bc')*KsFGv!".MNlmyB`am&Gj"Df	9:h%T5cdp489s1c	)17ZlN
4KMN 6Sqwx$Z_	
X!F&()@D^p79:p!'(4[\h =>J045Al2oNo{#Km NO}ìðñý 6cČčę>ŁŅņŒŽ.2Yơ"^bǳJ[Ȝ6Fcdɧ=fhiʷ=>Jjkwːˑ#\̀̜̹5Rx͜͠͡:;GjkwΨ89rϢϦϧϳRxРСЭDfщэяѐѥѩ
'D҅Ҿ*TUӞ;cԀԁԱ%?@ST՜՝թg}֒ְ F\׃ן-.:YZx؜ؠءحCg١پ045Aqrڙ5Qہ۲67Cn܉ܬ 1Pnݯ8Hefޗޮޯ
Ojvߕߖߢe0Iflmy
$(8OpOoAMcefI|Dfr :SrHIU|}?i*JNPQEN7^`a+1y 2Z)*e=>Ju MQk1GIJ=ABN~._;?@LHJ&CDr~D`}~
*+|(VWg{,F^{   	 7 C        ,-9t9:Fq<}*+SQR^z{$DKCDP op|		E	b			

=
V
X
Y



V6:;Glm)-.lrKx#6<IS!2689%XY	245uyk
$'tQ
Y 17
<B[#BC6^rsJo{
VV\"Fu  ! % & 6 B v   !!g!!!!""$"K"u"}"""""""###&#*#+#7#n#o#{###$$$$ $5$S$$$$$$%%%%(%<%Z%%%%%&&#&N&O&[&&&&'')'-'/'0'o's''''((A(f(w(()$)l)|)))))*?****++0+1++++,,,8,9,,,,,--!-"-d---------.F.G...///S/Y////0
0%0L00000001 1!1-1]111111222*2c2d2p222222333 3,3q3r3~334
4-4I4t4u444445565R5r5v5x5y55566.6o66667#7L7N7O77777888V8{8889999*9^9_9k99999::C:G:H:T:::::;;E;F;R;};;;;;< <A<w<<<<==,=8=L=M==>>>>7>=>>>J>~>>>>>??3?t??@:@W@X@r@@@@@@A AAA/ANAvAAAAAAAAB+B,B8BhBiBBBBBCC=CfCgCsCCCCDDDDD1D5DODDDEE1E2EEEEEEEFFFGFaFcFdFFFFFG	G
G'G(G4GTGUGlGmGGGGH!HEHfHHHHHHHIII ICIDIjIIIIIIIJ-J1J2J>JfJgJsJJK	K/KdKKKKKKLL2LMLQLSLTLlLpLLMMIMmMMMMMMN
N&N(N)NaNNNNNNNNNNOO'OBOZOaO|OOOOOOOOPP4PTPPPPPPPQQQQZQ}QQQQRRRRaR|RRS SSSS1SVSvS|SSSTTITPTQTqTTTTUKUTUZU[UvUzU{UUUUUUV VVVKVVVWWWLWeWgWhWWWWXXXKX^X}XXXXXXYYY%YbYcYoYYYYZZ<ZiZjZvZZZZ[[[[[5[9[S[|[[\%\B\C\q\\\\\\]]]]_]k]]]]]]]]]]^#^)^a^x^^^^__9_=_>_J_c_|__________`*`Y`]`^`j```aa:a;aGaaaaaaaabDb{bbbc!c"c.cccdcccccdd:d;dGddddddee*eNeReSe_epeeeffffcfiffggJg]gcgggghhhIhrhhiii	iOijipiij jAjbjojjjkk%k+k/k1k2kqkkkkkkkllfl|llll        	    W         7   n            @   u            A   y         )   _         .gfk|~         .   o           /// Two or more string literals that are implicitly concatenated because of
/// being adjacent (separated only by whitespace).
///
/// For example
/// ```dart
/// 'Hello ' 'World'
/// ```
///
/// While the grammar only allows adjacent strings where all of the strings are
/// of the same kind (single line or multi-line), this class doesn't enforce
/// that restriction.
///
///    adjacentStrings ::=
///        [StringLiteral] [StringLiteral]+   ?X1/// The strings that are implicitly concatenated.    Ή։ω؊   >  /// Initializes a newly created list of adjacent strings.
///
/// To be syntactically valid, the list of [strings] must contain at least two
/// elements.(   A )5678\9rr   \]5   D   ҌӍo88   V   瀛  
  $.-  莆V         mmy/// An AST node that can be annotated with either a documentation comment, a
/// list of annotations (metadata), or both.   00/// The documentation comment associated with this node, or `null` if this
/// node doesn't have a documentation comment associated with it.   If7/// The first token following the comment and metadata.   GGt/// The annotations associated with this node.
///
/// If there are no annotations, then the returned list is empty.   T77/// A list containing the comment and annotations associated with this node,
/// sorted in lexical order.
///
/// If there are neither annotations nor a comment, then the returned list is
/// empty.    )V1*3Wdd  ^^ ^o /// Initializes a newly created annotated node.
///
/// Either or both of the [comment] and [metadata] can be `null` if the node
/// doesn't have the corresponding attribute.v  '    	ݕ   	
b  	   P,,/// An annotation that can be associated with a declaration.
///
/// For example
/// ```dart
/// @override
/// ```
///
/// or
/// ```dart
/// @Deprecated('1.3.2')
/// ```
///
///    metadata ::=
///        annotation*
///
///    annotation ::=
///        '@' metadatum
///
///    metadatum ::=
///        [Identifier]
///      | qualifiedName
///      | constructorDesignation argumentPart   
N{/// The arguments to the constructor being invoked, or `null` if this
/// annotation isn't the invocation of a constructor.   I005/// The at sign (`@`) that introduces the annotation.   ;|/// The name of the constructor being invoked, or `null` if this annotation
/// isn't the invocation of a named constructor.   ԛ/// The element associated with this annotation, or `null` if the AST
/// structure hasn't been resolved or if this annotation couldn't be resolved.  ќ/// The element associated with this annotation.
///
/// Returns `null` if the AST structure hasn't been resolved or if this
/// annotation couldn't be resolved.  hi++|/// The element annotation representing this annotation in the element model,
/// or `null` if the AST hasn't been resolved.   ATT/// The name of either the class defining the constructor that is being
/// invoked or the field that is being referenced.
///
/// If a named constructor is being referenced, then the name of the
/// constructor is available using [constructorName].   ]uu   ]^		y/// The period before the constructor name, or `null` if this annotation isn't
/// the invocation of a named constructor.   W]]&/// The type arguments to the constructor being invoked, or `null` if either
/// this annotation isn't the invocation of a constructor or this annotation
/// doesn't specify type arguments explicitly.
///
/// Note that type arguments are only valid if [Feature.generic_metadata] is
/// enabled.    ֘טo{{  ރX Xf e/// Initializes a newly created annotation.
///
/// Both the [period] and the [constructorName] can be `null` if the
/// annotation isn't referencing a named constructor.
///
/// The [arguments] can be `null` if the annotation isn't referencing a
/// constructor.
///
/// Note that type arguments are only valid if [Feature.generic_metadata] is
/// enabled.m|{    ,    .  )$ED  ]W_|m~̤   $

  66 A&WW  l~~    4 j:   jk]     	+   	
8J^^   89c     l,,   ]çww   ]^$:((  1<;   bxx   bcX-ww   XYG     0   ԩժF..   	RqVV  d#{z   ǁ>   Ǫ	Q "10  	
^oo  }  ^_ "C/// A list of arguments in the invocation of an executable element (that is, a
/// function, method, or constructor).
///
///    argumentList ::=
///        '(' arguments? ')'
///
///    arguments ::=
///        [NamedExpression] (',' [NamedExpression])*
///      | [Expression] (',' [Expression])* (',' [NamedExpression])*   pFF>/// The expressions producing the values of the arguments.
///
/// If there are no arguments the list will be empty.
///
/// Although the language requires that positional arguments appear before
/// named arguments unless the [Feature.named_arguments_anywhere] is enabled,
/// this class allows them to be intermixed.   T6zz/// The left parenthesis.   8/// The right parenthesis.    fgxyʍ    2/// Initializes a newly created list of arguments.
  -'LK  Zih   '// C@ff s( /// A list containing the elements representing the parameters corresponding
/// to each of the arguments in this list, or `null` if the AST hasn't been
/// resolved or if the function or method being invoked couldn't be
/// determined based on static type information.
///
/// The list must be the same length as the number of arguments, but can
/// contain `null` entries if a given argument doesn't correspond to a formal
/// parameter. E   4   6hXX    <  (   ‹

      )   L3bb   LM   {S   {|X    ҹӺ.0  /// Returns the parameter element representing the parameter to which the
/// value of the given expression is bound, or `null` if any of the following
/// are not true
/// - the given [expression] is a child of this list
/// - the AST structure is resolved
/// - the function being invoked is known based on static type information
/// - the expression corresponds to one of the parameters of the function
///   being invoked *)    b_/// An as expression.
///
///    asExpression ::=
///        [Expression] 'as' [TypeAnnotation]   ?.bb/// The `as` operator.   qU8/// The expression used to compute the value being cast.   6/// The type being cast to.    ¾þԿܾվ @ @ @   @* @  @ @ ./// Initializes a newly created as expression. @" A A   A' A6 A5   AE  Ab Aa   A{ Ao A} A A A @T @c @c   @s" @ @  @s @t @ @ @   A; A A    A A B$1 B: B:    B$ B% BY9 Bx Bx    BY BZ B^ B B   B B B    B? C C    B B C;1 C^ C^    C; C< CpJ Ct Ct   Cy C C    C C C    C C DoS D~ D~  D D D D D D   Do Dp Dƀ D D   D D D   E E E   D D Ebt Es Es   E E E   Eb Ec  Eځ1 F Fƀ/// An assert in the initializer list of a constructor.
///
///    assertInitializer ::=
///        'assert' '(' [Expression] (',' [Expression])? ')'      Fp Fq F F F F F G G G   HX H  H H 3/// Initializes a newly created assert initializer. H H H   H H H   H! I I   I I$ I#   I.  IH IG   IT Ic Ib   I I| I I I I Gw% G G  Gw Gx G' G G  G G G G G   G H H  G G H H H   H+( HC HC  H+ H, I2 J J    I I J.7 JM JM    J. J/ JiZ Jm Jm   Jw J J    J3 J J    J J J4 K K    J J K6Y K: K:   KB KS KR    K> K K    K K LX L L  L L L L L L   L L M1v MB MB   MP M\ M[   M1 M2  M NR NRP/// An assertion, either in a block or in the initializer list of a constructor.    NsK N N0/// The token representing the `assert` keyword.    Nx O4 O4b/// The comma between the [condition] and the [message], or `null` if no
/// message was supplied.    O>R O O6/// The condition that is being asserted to be `true`.    O6 O O/// The left parenthesis.    Ox P> P>[/// The message to report if the assertion fails, or `null` if no message was
/// supplied.    PJ8 Pq Pq/// The right parenthesis.     M M N N; N N N PH QU QUx/// An assert statement.
///
///    assertStatement ::=
///        'assert' '(' [Expression] (',' [Expression])? ')' ';'    QC Q Q,/// The semicolon terminating the statement.     P Q  Q Q> Q Q Q QІ Q Q   S0 Sd  Sd Sw 1/// Initializes a newly created assert statement. S~ S S   S S S   S! S S   S S S   T  T T   T( T7 T6   TL T[ TZ   Tx Tm Tz T T T R)% RA RA  R) R* RS' Rk Rk  RS RT R R R   R R R  R R R R R   R( R R  R R S
! S" S"  S
 S T2 T T    T T U7 U> U>    U U  UZZ U^ U^   Uh Ux Uw    U, U U    U U U4 V V    U U V k V$ V$   V, V= V<    Ve V V    V V WV X X  X X X X X  X   W W XRv Xc Xc   Xq X} X|   XR XS  X̃X Y{ Y{X/// A variable pattern in [PatternAssignment].
///
///    variablePattern ::= identifier    Y4 Z Zހ/// The element referenced by this pattern, or `null` if either [name] doesn't
/// resolve to an element or the AST structure hasn't been resolved.
///
/// In valid code this is either a [LocalVariableElement] or a
/// [ParameterElement].   Z Z Z Z Z Z8 \ \/// The element referenced by this pattern.
///
/// Returns `null` if either [name] doesn't resolve to an element or the AST
/// structure hasn't been resolved.
///
/// In valid code this is either a [LocalVariableElement2] or a
/// [FormalParameterElement].   [ [  Y% Y& Y7 Yd Y? Y8 YA \&8 \2 \2   \< \  \ \   \ \ \    \ \ \  \ \ \) ] ]    \ \ ]%k ]d ]d    ]% ]& ]0 ]G ]1 ]K ]L ]' ] ]    ] ] ]J ] ]    ] ] ^X ^+ ^+    ^ ^ ^il ^x ^x  ^ ^ ^ ^ ^ ^   ^i ^j ^فb ^ ^   _ _ _   ^ ^ `? `Y `Y   `m `~ `}   ` ` `   `? `@ a'5 a8 a8   aF aR aQ   a' a(  a`M b& b&o/// An assignment expression.
///
///    assignmentExpression ::=
///        [Expression] operator [Expression]    bU b b6/// The expression used to compute the left hand side.    c@ cG cG*/// The assignment operator being applied.    cTW c c7/// The expression used to compute the right-hand side.     a a a b a a a cX c c   d` e0  e0 eH 6/// Initializes a newly created assignment expression. eO$ eh eg   ey e e   e% e e   e e e e e e dZ di di   d{  d d  d{ d| d d d   d0 d d  d d f[= fq fq    f[ f\ f] f f    f f f f fZ g g   g	 g" g!    g[: gq gq    g[ g\ g= g g    g g gb g g   g g g    h@? h[ h[    h@ hA h? h h    h h hd h h   h h h    i. iL iL    i. i/ iC j
 j
    i i j8 kJ kJ/// The parameter element representing the parameter to which the value of the
/// right operand is bound, or `null` if the AST structure is not resolved or
/// the function being invoked is not known based on static type information.    na n n  n$ n$ n$ n' n6 n5   n n ns n n   n n n   n n n   ns nt o o( o(   o6 oB oA   o o ok o o   o o o   o o  p	 p p3/// A node in the AST structure for a Dart program.   p rJ rJh/// A comparator that can be used to sort AST nodes in lexical order.
///
/// In other words, `compare` returns a negative value if the offset of the
/// first node is less than the offset of the second node, zero (0) if the
/// nodes have the same offset, and a positive value if the offset of the
/// first node is greater than the offset of the second node. r` r	 rQ r r9/// The first token included in this node's source range.    r s s/// An iterator that can be used to iterate through all the entities (either
/// AST nodes or tokens) that make up the contents of this node, including doc
/// comments but excluding other comments.    s u ug/// The offset of the character immediately following the last character of
/// this node's source range.
///
/// This is equivalent to `node.offset + node.length`. For a compilation unit
/// this is equal to the length of the unit's source. For synthetic nodes this
/// is equivalent to the node's offset (because the length is zero (`0`) by
/// definition).   ul um uN u u8/// The last token included in this node's source range.    uڀ v vȀ/// Whether this node is a synthetic node.
///
/// A synthetic node is a node that was introduced by the parser in order to
/// recover from an error in the code. Synthetic nodes always have a length
/// of zero (`0`).    v v v    v v v w w    v v w x x/// Returns this node's parent node, or `null` if this node is the root of an
/// AST structure.
///
/// Note that the relationship between an AST node and its parent node may
/// change over the lifetime of a node.    x x x܀/// The node at the root of this node's AST structure.
///
/// Note that this method's performance is linear with respect to the depth
/// of the node in the AST structure (O(depth)).    x倵 yy yy/// Use the given [visitor] to visit this node.
///
/// Returns the value returned by the visitor as a result of visiting this
/// node. y y y y y y    yk y yF/// Returns the token before [target], or `null` if it can't be found.  y z z    z z z/// Returns either this node or the most immediate ancestor of this node for
/// which the [predicate] returns `true`, or `null` if there's no such node. z z z z  z z    { { {/// Returns either this node or the most immediate ancestor of this node that
/// has the given type, or `null` if there's no such node. { { {   {Ł } }/// Returns a textual description of this node in a form approximating valid
/// source.
///
/// The returned string isn't valid source code primarily in the case where
/// the node itself isn't well-formed.
///
/// Clients should never depend on the returned value being valid code, nor
/// being consistent from one version of the package to the next. As a result,
/// clients should never display the returned string to users.    }  b/// Returns a textual description of this node.
///
/// The returned string is intended to be useful only for debugging.
///
/// Clients should never depend on the returned value being useful for any
/// purpose, nor being consistent from one version of the package to the next.
/// As a result, clients should never display the returned string to users.     .  y/// Use the given [visitor] to visit all of the children of this node.
///
/// The children are visited in lexical order.        p= p> pO p| pW pP pY وS      	    	 b H H      +        *        ဪ         x x/// The properties (tokens and nodes) of this node, with names, in the order
/// in which these entities should normally appear, not necessarily in the
/// order they really are (because of recovery).    d        + + +      A Y Y    A B 4         F1 K K     {}          { |     " " " :  R Q     逸                  9, L L    9 : i  W/// Returns the [child] node after making this node the parent of the [child]
/// node.           9  0/// An object that can be used to visit an AST structure.
///
/// Clients may not extend, implement or mix-in this class. There are classes
/// that implement this interface that provide useful default behaviors in
/// `package:analyzer/dart/ast/visitor.dart`. A couple of the most useful
/// include
/// - SimpleAstVisitor which implements every visit method by doing nothing,
/// - RecursiveAstVisitor which causes every node in a structure to be visited,
///   and
/// - ThrowingAstVisitor which implements every visit method by throwing an
///   exception.       .           $           &( ) )   ; I H    R( U U   g u t    ~2           9           >      * )    38 6 6   P f e    o6 r r         6           .           0     . @ ?    I L L   W
 ^ ]    g2 j j         ,           ,           2        * )    3$ 6 6   F R Q    [& ^ ^   o | {    &           8           0           , " "   6 F E    O R R   _ h g    q0 t t         .           :           *     + : 9    C. F F   [ l k    u< x x         F            .      ( '    18 4 4   N d c    m6 p p         2           4           >     5 N M    W< Z Z   v      &           <           D     $ @ ?    I$ L L   \ h g    q* t t         2           ,           :     # : 9    C> F F   c | {    .           .           <            )6 , ,   E Z Y    c* f f   y      8           2           2      0 /    9@ < <   Z t s    }0           8           F       . -    7D : :   Z v u    >           $           6           #@ & &   D ^ ]    g< j j         6           (           6     ) > =    GH J J   l!      4           H     !      2     1 D C    M? P P   g# z y    H     !      6           0     / A @    J, M M   a q p    z, } }         "           &           0      % $    .: 1 1   L c b    l. o o         :           .           D     1 M L    V, Y Y   m } |    >           6           (      % $    . 1 1   <
 C B    L0 O O   e w v    0           2           &       
    &     ( 5 4    >2 A A   X k j    t0 w w         .           $           .      + *    42 7 7   N a `    j0 m m         0           *            .      ) (    2" 5 5   D O N    X( [ [   m { z    4           2           0           &0 ) )   ? Q P    Z& ] ]   n { z    *           >           8      ' &    0* 3 3   F U T    ^. a a   v      2           (           0           &D ) )   I e d    n] q q   (      2           4       4 3    =0 @ @   V h g    q, t t         *           *           8        0 /    9L < <   `#      N     $      ]     ( 3 2    <W ? ?   l%      2           J     "      B     = X W    a4 d d   |      2           .           "           '. * *   ? P O    Y, \ \   p      :           0           6      , +    5* 8 8   K Z Y    c6 f f         D           .           8     4 J I    S$ V V   f r q    {* ~ ~         0           8           2     3 F E    O. R R   g x w    *           ,           .           F     5  R Q    [( ^ ^   p ~ }    0           &           *      
 	    2     - @ ?    I6 L L   e z y    >           H     !      $     $ 0 /    9, < <   P ` _    i. l l         $           ,           j k |   }  w  /// The augmented expression.
///
/// It is created only inside an augmentation.
/// The exact meaning depends on what is augmented, and where it is used.
///
/// Augmenting getters: `augmented` invokes the getter and evaluates to the
/// return value.
/// The [fragment] is the augmented getter.
/// The [staticType] is the return type of the getter.
///
/// Augmenting setters: `augmented` must be followed by an `=`, and will
/// directly invoke the augmented setter.
/// The [fragment] is the augmented setter.
/// The [staticType] is meaningless, and set to `null`.
///
/// Augmenting fields: `augmented` can only be used in an initializer
/// expression, and refers to the original field's initializer expression.
/// The [fragment] is the augmented field.
/// The [staticType] is the type of the field.
///
/// Augmenting binary operators: `augmented` must be the LHS, and followed by
/// the argument, e.g. `augmented + 1`.
/// The [fragment] is the augmented [MethodFragment].
/// The [staticType] is the type of `this`.
///
/// Augmenting index operators: `augmented` must be the index target,
/// e.g. `augmented[0]`.
/// The [fragment] is the augmented [MethodFragment].
/// The [staticType] is the type of `this`.
///
/// Augmenting prefix operators: `augmented` must be the target, e.g.
/// `~augmented`.
/// The [fragment] is the augmented [MethodFragment].
/// The [staticType] is the type of `this`.    ?: h h/// The 'augmented' keyword.    }}  ?/// The referenced augmented element: getter, setter, variable.        j _ _@/// The referenced augmented fragment: getter, setter, variable.   A B  | }           l x x   C    5   < K J    (            e5 { {    e f _             3        8* M M    8 9 f<      f g v         Z / /  6 6 6 9 H G     ! ~               ~  !_ 2 2   @ L K   ! "    /// Invocation of the augmented function, constructor, or method.
///
///    augmentedInvocation ::=
///        'augmented' [TypeArgumentList]? [ArgumentList]    >   /// The list of value arguments.    (: Q Q/// The 'augmented' keyword.    f  G/// The referenced augmented element: function, constructor, or method.          /// The referenced augmented element: function, constructor, or method.
///
/// Returns `null` if the AST structure hasn't been resolved or if this
/// fragment is the first fragment in the chain.       n/// The list of type arguments.
///
/// In valid code cannot be provided for augmented constructor invocation.     # $ . ` / b c t  | u ~ w                      " 1 0    (      '( G G  ' ( T5 | |  T U ,      5 £ £      s             =5 S S    = > v< Ñ Ñ    v w ö      ö ÷ ăh Ē Ē  ę ę ę Ĝ ī Ī   ă Ą         # "   , 6 5     Œ{ ţ ţ   ű Ž ż   Œ œ  _ ƿ ƿW/// An await expression.
///
///    awaitExpression ::=
///        'await' [Expression]    2  /// The `await` keyword.    O c c2/// The expression whose value is being waited on.     i j { ƨ ƃ | ƅ r ~ ~    H  H [ 1/// Initializes a newly created await expression. b q p   Ȃ" ț Ț   ȹ ȭ Ȼ $           ?        47 J J    4 5 o9 Ɏ Ɏ    o p ɬ^ ɰ ɰ   ɻ      ; ) )      M k k    M N V              @ Q Q   c t s   } ˇ ˆ   @ A Y      
 	      <    m/// A binary (infix) expression.
///
///    binaryExpression ::=
///        [Expression] [Token] [Expression]    JR ͐ ͐4/// The expression used to compute the left operand.    ͠<  &/// The binary operator being applied.    T ' '5/// The expression used to compute the right operand.    8  ڀ/// The function type of the invocation, or `null` if the AST structure hasn't
/// been resolved or if the invocation couldn't be resolved.     ̪ ̫ ̼   ̽  /     N A  A U 2/// Initializes a newly created binary expression. \# u t   Ѕ Д Г   С$ к й         K Z Z   k  σ σ  k l ϐ ϟ ϟ   ϱ#    ϱ ϲ .     	 ^< t t    ^ _ ў9 Ѵ Ѵ    ў џ ;        `     * : 9    ~P ҙ ҙ    ~  =        b     $ 4 3    yh ӽ ӽ    y z ӄ Ӛ Ӆ Ӟ ӟ 倻        ԤW Գ Գ  Ժ Ժ Ժ Խ     Ԥ ԥ      " 3 2   < F E      ՟} հ հ   վ     ՟ ՠ     P/// A sequence of statements.
///
///    block ::=
///        '{' statement* '}'    4  /// The left curly bracket.    6 G G/// The right curly bracket.    XP ם ם*/// The statements contained in the block.     q r փ ְ ֋ ք ֍ ׬c ؘ ؘ/// A function body that consists of a block of statements.
///
///    blockFunctionBody ::=
///        ('async' | 'async' '*' | 'sync' '*')? [Block]    G  4/// The block representing the body of the function.     B C T ؁ \ U ^      ́     #/// Initializes a newly created function body consisting of a block of
/// statements.
///
/// The [keyword] can be `null` if there's no keyword specified for the block.
///
/// The [star] can be `null` if there's no star following the keyword (and
/// must be `null` if there's no keyword).  * )   6 E D   N b a   v o x q  ي ي  q r ٖ ٯ ٯ  ٖ ٗ ٸ     ۤ ۺ ۺ    ۤ ۥ -* G G    - . [E _ _   e p o    ܤ2 ܺ ܺ    ܤ ܥ O        -1 B B    - . bN w w    b c ݴ      ݴ ݵ VX e e  l l l o ~ }   V W ޲               ޲ ޳ MT ^ ^   l x w   M N  ߥ ߱ ߱   ࣀ     ./// Initializes a newly created block of code.      ' !     0 ? >    # % %    5@ W W  e q r s t z$    z { 0        /        F        : X X    : ; L        * )     RY c c   q } |   R S  㯁I a a[/// A boolean literal expression.
///
///    booleanLiteral ::=
///        'false' | 'true'    <  '/// The token representing the literal.    /  /// The value of the literal.        J %  ' u     吀     0/// Initializes a newly created boolean literal.            K c c  K L o    o p , + +      E* [ [    E F s8      s t d        U & &  - - - 0 ? >     p               p q _     - 9 8      qx ' '_/// A break statement.
///
///    breakStatement ::=
///        'break' [SimpleIdentifier]? ';'    OI  //// The token representing the `break` keyword.    j    K/// The label associated with the statement, or `null` if there's no label.    
C C C,/// The semicolon terminating the statement.    Q  k/// The node from which this break statement is breaking, or `null` if the AST
/// hasn't yet been resolved or if the target couldn't be resolved.
///
/// This is either a [Statement] (in the case of breaking out of a loop), a
/// [SwitchMember] (in the case of a labeled break statement whose label
/// matches a label on a switch case in an enclosing switch statement).
///
/// Note that if the source code has errors, the target might be invalid.
/// For example, if the break statement is trying to break to a switch case
/// the target will be the switch case even though breaking to a switch case
/// isn't valid.            넑     ΁F `  ` r /// Initializes a newly created break statement.
///
/// The [label] can be `null` if there's no label associated with the
/// statement. y     $             >$ V V  > ? g } }   !            1 . .      M, c c    M N }6      } ~ [             4 4      U              %U 6 6   D P O   % &  ~  ?/// A sequence of cascaded expressions: expressions that share a common target.
///
/// There are three kinds of expressions that can be used in a cascade
/// expression: [IndexExpression], [MethodInvocation] and [PropertyAccess].
///
///    cascadeExpression ::=
///        [Expression] cascadeSection*
///
///    cascadeSection ::=
///        ('..' | '?..') (cascadeSelector arguments*)
///        (assignableSelector arguments*)*
///        (assignmentOperator expressionWithoutCascade)?
///
///    cascadeSelector ::=
///        '[ ' expression '] '
///      | identifier    ]_  3/// The cascade sections sharing the common target.    X  @/// Whether this cascade is null aware (as opposed to non-null).    @ U U'/// The target of the cascade sections.            `~ l l   If     |/// Initializes a newly created cascade expression.
///
/// The list of [cascadeSections] must contain at least one element.       - + *   J B L      F ! !  4 @ A B C	 7        Q        C= Y Y    C D q        <        91 X X    9 : nN r r   y              ZA s s    Z [ X                    / .   8 B A     {             , ,   A M L        /// The `case` clause that can optionally appear in an `if` statement.
///
///    caseClause ::=
///        'case' [GuardedPattern]    G  ./// The token representing the `case` keyword.    'e } }@/// The pattern controlling whether the statements are executed.     d e v  ~ w       ` `  ` n   u            #       (3 M M  ( ) 0        : / /      W u u    W X Q

 #"    P\aa  o{z  PQ Y    &      ]/// A cast pattern.
///
///    castPattern ::=
///        [DartPattern] 'as' [TypeAnnotation]   (/// The `as` token.   NXX3/// The pattern used to match the value being cast.   dP5/// The type that the value being matched is cast to.    ij{|m             +)MM +,Y)~~ YZ.7DD   ./i0   ijJ   P   ?]]   ?@R   ?TT  izy  ?@     4HG  
o

  


  

 'll/// A catch clause within a try statement.
///
///    onPart ::=
///        catchPart [Block]
///      | 'on' type catchPart? [Block]
///
///    catchPart ::=
///        'catch' '(' [CatchClauseParameter] (',' [CatchClauseParameter])? ')'   	2 /// The body of the catch block.   y11\/// The token representing the `catch` keyword, or `null` if there's no
/// `catch` keyword.   BՀ/// The comma separating the exception parameter from the stack trace
/// parameter, or `null` if there's no stack trace parameter.   ߀jjl/// The parameter whose value is the exception that was thrown, or `null` if
/// there's no `catch` keyword.   {/// The type of exceptions caught by this catch clause, or `null` if this
/// catch clause catches every type of exception.   '`wwB/// The left parenthesis, or `null` if there's no `catch` keyword.   pV/// The token representing the `on` keyword, or `null` if there's no `on`
/// keyword.   bPPC/// The right parenthesis, or `null` if there's no `catch` keyword.   e/// The parameter whose value is the stack trace associated with the
/// exception, or `null` if there's no stack trace parameter.    (U0)2**  ؃  /// Initializes a newly created catch clause.
///
/// The [onKeyword] and [exceptionType] can be `null` if the clause is to
/// catch all exceptions.
///
/// The [comma] and [_stackTraceParameter] can be `null` if the stack trace
/// parameter isn't defined.	  *:9  L[Z  l{z  5    6  .-  CWV  dj}ukx3-5	i" ij"  % ( -((  @YY @Ac.}}  )   ـ   d(~~   deC     1   b66   rvv  #   D     DoHH  V!kj   d   ##  7#RQ      R   ܀     BB>/// An 'exception' or 'stackTrace' parameter in [CatchClause].   kD/// The declared element, or `null` if the AST hasn't been resolved.  Q/// The declared element.
///
/// Returns `null` if the AST hasn't been resolved.  fg * *R/// The declared fragment.
///
/// Returns `null` if the AST hasn't been resolved.     ?0 j j/// The name of the parameter.    + sM    !08!0 !0!H  !O!^!]          6!!   !l)!!   !l!m!!!   !!!!!!!"g"J"J   "" "'""   """c""   ""#i#+#+ #2#2#2#5#D#C  ###5##  ###  ## #($$G/// A helper class to allow iteration of child entities of an AST node.  $"[$p$p3/// The list of child entities to be iterated over.${$|$$$    'K''  '''   '‍''  '''  '((   (sq(x(x  (((  (((   (而((  (((  )))
   )xp)})}  )))  )))    )쀵*@*@M/// A named child of an [AstNode], usually a token, node, or a list of nodes. *|#*| *|*  *	**  *
**   *P*]*]  *e*r*r     *,\,\b/// The declaration of a class.
///
///    classDeclaration ::=
///        classModifiers 'class' name [TypeParameterList]?
///        [ExtendsClause]? [WithClause]? [ImplementsClause]?
///        '{' [ClassMember]* '}'
///
///    classModifiers ::= 'sealed'
///      | 'abstract'? ('base' | 'interface' | 'final')?
///      | 'abstract'? 'base'? 'mixin'   ,^,,@/// The `abstract` keyword, or `null` if the keyword was absent.   ,l-V-V?/// The `augment` keyword, or `null` if the keyword was absent.  -;-<-iV--</// The `base` keyword, or `null` if the keyword was absent.   -I--//// The token representing the `class` keyword.   .\.\.\   ....:..>.?.p@..   .p.q...////c/// The `extends` clause for this class, or `null` if the class doesn't extend
/// any other class.   /AX//=/// The `final` keyword, or `null` if the keyword was absent.   /00g/// The `implements` clause for the class, or `null` if the class doesn't
/// implement any interfaces.   04`00A/// The `interface` keyword, or `null` if the keyword was absent.   0400/// The left curly bracket.   0Ѐ1K1K=/// The `macro` keyword, or `null` if the keyword was absent.  1111<11\J11%/// The members defined by the class.   1X11=/// The `mixin` keyword, or `null` if the keyword was absent.   22{2{^/// The native clause for this class, or `null` if the class doesn't have a
/// native clause.   2622/// The right curly bracket.   2Z33>/// The `sealed` keyword, or `null` if the keyword was absent.   3$33c/// The type parameters for the class, or `null` if the class doesn't have any
/// type parameters.   3}4(4(]/// The `with` clause for the class, or `null` if the class doesn't have a
/// `with` clause.    ,,,,E, ,,"474C4C  88 88-  848D8C  8P8`8_  8m8|8{  888  888  888  899  99!9   969E9D  9V9e9d  9v99  999  999  999  9::   :::  :4:C:B  :T:c:b  :s&::  :::   4'44 444(55 445%5858 55 5I&5b5b 5I5J5t$55 5t5u5)55 555%55 555%66 556$6767 66 6H16k6k 6H6I6~,66 6~66&66 666266 66707575 777F#7^7^ 7F7G7nJ77 7n7o777777$77 777.88 77;<
<
   	;;;;;;;;;<2/<H<H   <2<3<e<{<{   <e<f=A==   ==@W@@ @@@@@@  @@A(+A9A9  AGASAR  A(A) BWCCw/// A node that declares a name within the scope of a class, enum, extension,
/// extension type, or mixin declaration.     BBBCBBBCD^CQCQ  CDP DPD_ /// Initializes a newly created member of a class.
///
/// Either or both of the [comment] and [metadata] can be `null` if the member
/// doesn't have the corresponding attribute.DfDvDu  DDD       DF}F}/// A class type alias.
///
///    classTypeAlias ::=
///        classModifiers 'class' [SimpleIdentifier] [TypeParameterList]? '='
///        mixinApplication
///
///    classModifiers ::= 'sealed'
///      | 'abstract'? ('base' | 'interface' | 'final')?
///      | 'abstract'? 'base'? 'mixin'
///
///    mixinApplication ::=
///        [NamedType] [WithClause] [ImplementsClause]? ';'   FGGa/// The token for the `abstract` keyword, or `null` if this isn't defining an
/// abstract class.   G*VGtGt</// The `base` keyword, or `null` if the keyword was absent.   G\GG   GGGGGGGG@HH   GGGGH(VHwHwB/// The token for the '=' separating the name from the definition.   HXHH=/// The `final` keyword, or `null` if the keyword was absent.   HހIQIQX/// The implements clause for this class, or `null` if there's no implements
/// clause.   If`IIA/// The `interface` keyword, or `null` if the keyword was absent.   IXJJ=/// The `mixin` keyword, or `null` if the keyword was absent.   J&ZJrJr>/// The `sealed` keyword, or `null` if the keyword was absent.   JWJJ;/// The name of the superclass of the class being declared.   J߀K^K^c/// The type parameters for the class, or `null` if the class doesn't have any
/// type parameters.   Kq@KK#/// The with clause for this class.    F'F(F9FfFAF:FCKMKK  MrO OO /// Initializes a newly created class type alias.
///
/// Either or both of the [comment] and [metadata] can be `null` if the class
/// type alias doesn't have the corresponding attribute.
///
/// The [typeParameters] can be `null` if the class doesn't have any type
/// parameters.
///
/// The [abstractKeyword] can be `null` if the class isn't abstract.
///
/// The [implementsClause] can be `null` if the class doesn't implement any
/// interfaces.OOO  PPP  P#P3P2  PFPVPU  P_.PP  PPP  PPP  PPP  PQ P  QQQ  Q4QCQB  QTQdQc  QwQQ  Q!QQ  Q"QQ  Q/RR  RR+R*  RMR=RORsRgRuRRRRRRL&LL  L3LKLK L3L4LV(LoLo LVLWL&LL LLL$LL LLL)LL LLM%MM MMM/%MHMH M/M0MYMgMg  MwMM  M'MM  M.MM MMSktSS   SkSlSvSSwSSS	SS   SSTLUU   TTU@}UDUD  UU&UlUk   U8UU   UUU]VV  VVV   V^IVV   V^V_VVV  V%VV   W>9W]W]   W>W?W{^WW  WWW   W݂WW   WWZUZZ ZZZZZZ  ZZ[['['  [5[A[@  [[ \u\R\R      \\\\C\\\ \{\\     \׀]D]Dc/// Dispatches this collection element to the [resolver], with the given
/// [context] information. ]Z]k]j  ]t!]]    ]~^{^{/// A combinator associated with an import or export directive.
///
///    combinator ::=
///        [HideCombinator]
///      | [ShowCombinator]   ^z__c/// The `hide` or `show` keyword specifying what kind of processing is to be
/// done on the names.    ^-^.^?^l^G^@^I__(_(  ___ __ +/// Initializes a newly created combinator.___   _e_}_} _e_f_,``   __  `bb/// A comment within the source code.
///
///    comment ::=
///        endOfLineComment
///      | blockComment
///      | documentationComment
///
///    endOfLineComment ::=
///        '//' (CHARACTER - EOL)* EOL
///
///    blockComment ::=
///        '/ *' CHARACTER* '&#42;/'
///
///    documentationComment ::=
///        '/ **' (CHARACTER | [CommentReference])* '&#42;/'
///      | ('///' (CHARACTER - EOL)* EOL)+   b6bbV/// The markdown code blocks (both fenced and indented) contained in this
/// comment.  bbb5bb   bbb/c#c#   bc c2ccx/// Whether this comment has a line beginning with '@nodoc', indicating its
/// contents aren't intended for publishing.  cccՀdd/// The references embedded within the documentation comment.
///
/// If there are no references in the comment then the list will be empty.   dBdd(/// The tokens representing the comment.    aaab aaad܅dd  fzgW gWgb /// Initializes a newly created comment.
///
/// The list of [tokens] must contain at least one token.
///
/// The list of [references] can be empty if the comment doesn't contain any
/// embedded references.gigxgw  g.gg  ggg  ggg  ghh  hh#h"   eF$eded eFeGeoGee eeeeee.ee eee,ff eef2fDfD ff fVfmfm fVfWhi.hh   hihjh<hh   hhhMii   hhi,iJiJ   i,i-iNii iiiiii  iijYj$j$  j2j>j=  jj jp{ll/// An interface for an [Expression] which can make up a [CommentReference].
///
///    commentReferableExpression ::=
///        [ConstructorReference]
///      | [FunctionReference]
///      | [PrefixedIdentifier]
///      | [PropertyAccess]
///      | [SimpleIdentifier]
///      | [TypeLiteral]
///
/// This interface should align closely with dartdoc's notion of
/// comment-referable expressions at:
/// https://github.com/dart-lang/dartdoc/blob/master/lib/src/comment_references/parser.dart     lblcltll|lul~loll       m^n[n[/// A reference to a Dart element that is found within a documentation comment.
///
///    commentReference ::=
///        '[' 'new'? [CommentReferableExpression] ']'   ncnn6/// The comment-referable expression being referenced.   nuoToTZ/// The token representing the `new` keyword, or `null` if there was no `new`
/// keyword.    nnnnDnnn!ocoooo  p:fp pp /// Initializes a newly created reference to a Dart element.
///
/// The [newKeyword] can be `null` if the reference isn't to a constructor.ppp  q2q/q.  q>qMqL  qlq`qno#oo ooo*pp  p"p*p* ppqIqq   qqq7rr   qqr,Ir[r[   r,r-rynr}r}  r)rr   r뀑s	s	   rrsWss ssssss  sssYss  stt  ss t8wPwP/// A compilation unit.
///
/// While the grammar restricts the order of the directives and declarations
/// within a compilation unit, this class doesn't enforce those restrictions.
/// In particular, the children of a compilation unit are visited in lexical
/// order even if lexical order doesn't conform to the restrictions of the
/// grammar.
///
///    compilationUnit ::=
///        directives declarations
///
///    directives ::=
///        [ScriptTag]? [LibraryDirective]? namespaceDirective* [PartDirective]*
///      | [PartOfDirective]
///
///    namespaceDirective ::=
///        [ImportDirective]
///      | [ExportDirective]
///
///    declarations ::=
///        [CompilationUnitMember]*   wwwwd/// The first (non-EOF) token in the token stream that was parsed to form this
/// compilation unit.  wwxlxdxd8/// The declarations contained in this compilation unit.   xuy3y3o/// The element associated with this compilation unit, or `null` if the AST
/// structure hasn't been resolved.  xxxyxyGyyy/// The fragment associated with this compilation unit.
///
/// Returns `null` if the AST structure hasn't been resolved.  yyz\zRzR6/// The directives contained in this compilation unit.   za{{/// The last token in the token stream that was parsed to form this
/// compilation unit.
///
/// This token should always have a type of [TokenType.EOF].  {{{'2|N|N/// The set of features available to this compilation unit.
///
/// Determined by some combination of the `package_config.json` file, the
/// enclosing package's SDK version constraint, and/or the presence of a
/// `@dart` directive in a comment at the top of the file.   |]S||%/// The language version information.   |}h}h/// The language version override specified for this compilation unit using a
/// token like '// @dart = 2.7', or `null` if no override is specified.   }L}}3/// The line information for this compilation unit.   }р~b~b}/// The script tag at the beginning of the compilation unit, or `null` if
/// there's no script tag in this compilation unit.   ~p~~s/// A list containing all of the directives and declarations in this
/// compilation unit, sorted in lexical order.    vvww9wwwG**  x   3 /// Initializes a newly created compilation unit to have the given directives
/// and declarations.
///
/// The [scriptTag] can be `null` if there's no script tag in the compilation
/// unit.
///
/// The list of [directives] can be `null` if there are no directives in the
/// compilation unit.
///
/// The list of [declarations] can be `null` if there are no declarations in
/// the compilation unit.	:IH  X!qp  (  6      #21  ?NM  _nm  
"   @ "TPP frstu{  {|8 # 8.. B'__ BCngg/// Nodes that were parsed, but happened at locations where they aren't
/// allowed.
///
/// Instead of dropping them, we remember them here. Quick fixes can look
/// here to determine which source range to remove. (V``   ()   F>>   \   \]p   o    op7   Z     ,JJ   ,-ۀ   		H/// Whether all of the directives are lexically before any declarations.   AVPP WWWZih  AB     gW/// A node that declares one or more names within the scope of a compilation
/// unit.
///
///    compilationUnitMember ::=
///        [ClassDeclaration]
///      | [MixinDeclaration]
///      | [ExtensionDeclaration]
///      | [EnumDeclaration]
///      | [TypeAlias]
///      | [FunctionDeclaration]
///      | [TopLevelVariableDeclaration]     FSS  p p /// Initializes a newly created compilation unit member.
///
/// Either or both of the [comment] and [metadata] can be `null` if the member
/// doesn't have the corresponding attribute.         Ύ/// A potentially compound assignment.
///
/// A compound assignment is any node in which a single expression is used to
/// specify both where to access a value to be operated on (the "read") and to
/// specify where to store the result of the operation (the "write"). This
/// happens in an [AssignmentExpression] when the assignment operator is a
/// compound assignment operator, and in a [PrefixExpression] or
/// [PostfixExpression] when the operator is an increment operator.   >?qq/// The element that is used to read the value, or `null` if this node isn't a
/// compound assignment, if the AST structure hasn't been resolved, or if the
/// target couldn't be resolved.
///
/// In valid code this element can be a [LocalVariableElement], a
/// [ParameterElement], or a [PropertyAccessorElement] getter.
///
/// In invalid code this element is `null`. For example, in `int += 2`, for
/// recovery purposes, [writeElement] is filled, and can be used for
/// navigation.  :;E`F8/// The element that is used to read the value.
///
/// Returns `null` if this node isn't a compound assignment, if the AST
/// structure hasn't been resolved, or if the target couldn't be resolved.
///
/// In valid code this element can be a [LocalVariableElement2], a
/// [FormalParameterElement], or a [GetterElement].
///
/// In invalid code this element is `null`. For example, in `int += 2`. In
/// such cases, for recovery purposes, [writeElement2] is filled, and can be
/// used for navigation.  "ց /// The type of the value read with the [readElement2], or `null` if this node
/// isn't a compound assignment.
///
/// Returns the type `dynamic` if the code is invalid, if the AST structure
/// hasn't been resolved, or if the target couldn't be resolved.   
/// The element that is used to write the result, or `null` if the AST
/// structure hasn't been resolved, or if the target couldn't be resolved.
///
/// In valid code this is a [LocalVariableElement], [ParameterElement], or a
/// [PropertyAccessorElement] setter.
///
/// In invalid code, for recovery, we might use other elements, for example a
/// [PropertyAccessorElement] getter `myGetter = 0` even though the getter
/// can't be used to write a value. We do this to help the user to navigate
/// to the getter, and maybe add the corresponding setter.
///
/// If this node is a compound assignment, e. g. `x += 2`, both [readElement]
/// and [writeElement] could be non-`null`.  ̂/// The element that is used to write the result.
///
/// Returns `null` if the AST structure hasn't been resolved, or if the target
/// couldn't be resolved.
///
/// In valid code this is a [LocalVariableElement2], [FormalParameterElement],
/// or a [SetterElement].
///
/// In invalid code, for recovery, we might use other elements, for example a
/// [GetterElement] `myGetter = 0` even though the getter can't be used to set
/// a value. We do this to help the user to navigate to the getter, and maybe
/// add the corresponding setter.
///
/// If this node is a compound assignment, such as `x += y`, both
/// [readElement2] and [writeElement2] could be non-`null`.  ހ/// The type of the target of the assignment.
///
/// The types of assigned values must be subtypes of this type.
///
/// If the target couldn't be resolved, this type is `dynamic`.    jj|/// A conditional expression.
///
///    conditionalExpression ::=
///        [Expression] '?' [Expression] ':' [Expression]   _L/// The token used to separate the then expression from the else expression.   j]]N/// The condition used to determine which of the expressions is executed next.   kkJ/// The expression that is executed if the condition evaluates to `false`.   \--F/// The token used to separate the condition from the then expression.   :jI/// The expression that is executed if the condition evaluates to `true`.    &S.'0{    7/// Initializes a newly created conditional expression.!,+  :IH  V&on    &  	%'  , DD ,-Q``  t tu  
:   7		   %\))  3CB   A   f     4;JJ   45s@   stA   f       f
   fgtb   tuڀ    !        %xx/// A configuration in either an import or export directive.
///
///    configuration ::=
///        'if' '(' test ')' uri
///
///    test ::=
///        dottedName ('==' stringLiteral)?
///
///    dottedName ::=
///        identifier ('.' identifier)*   f/// The token for the equal operator, or `null` if the condition doesn't
/// include an equality test.   ":RR#/// The token for the `if` keyword.   `D'/// The token for the left parenthesis.   nU/// The name of the declared variable whose value is being used in the
/// condition.   CQQ"/// The result of resolving [uri].   aF(/// The token for the right parenthesis.   oT/// The URI of the implementation library to be used if the condition is
/// `true`.   /// The value to which the value of the declared variable is compared, or
/// `null` if the condition doesn't include an equality test.    "#4a<5>ǇA  99 9J  Q`_  n}|      !    87  	JDLaZcwry!.. <'TT <=hww  #   (   %)) 	.   0""   @-__   @AqFuu  z   .   E     63YY   67mcqq  w   ԁL   $T33 :::=LK  $%|    |} 
C  g        O^^  j   R     O>/// A constant expression being used as a pattern.
///
/// The only expressions that can be validly used as a pattern are
/// - `bool` literals
/// - `double` literals
/// - `int` literals
/// - `null` literals
/// - `String` literals
/// - references to constant variables
/// - constant constructor invocations
/// - constant list literals
/// - constant set or map literals
/// - constant expressions wrapped in parentheses and preceded by the `const`
///   keyword
///
/// This node is also used to recover from cases where a different kind of
/// expression is used as a pattern, so clients need to handle the case where
/// the expression isn't one of the valid alternatives.
///
///    constantPattern ::=
///        'const'? [Expression]   |))_/// The `const` keyword, or `null` if the expression isn't preceded by the
/// keyword `const`.   :Q4/// The constant expression being used as a pattern.    9:KxSLUF  33 3F  M\[  m"  % ##  J   )6??   )*c9   cd ^¤¤  ¯¿¾   J$$   Pnn   PQV    AVV  k|{  AB~  '87  L`_  {Xƌƌ  ƚƦƥ  {| ׊55/// A constructor declaration.
///
///    constructorDeclaration ::=
///        constructorSignature [FunctionBody]?
///      | constructorName formalParameterList ':' 'this'
///        ('.' [SimpleIdentifier])? arguments
///
///    constructorSignature ::=
///        'external'? constructorName formalParameterList initializerList?
///      | 'external'? 'factory' factoryName formalParameterList
///        initializerList?
///      | 'external'? 'const'  constructorName formalParameterList
///        initializerList?
///
///    constructorName ::=
///        [SimpleIdentifier] ('.' name)?
///
///    factoryName ::=
///        [Identifier] ('.' [SimpleIdentifier])?
///
///    initializerList ::=
///        ':' [ConstructorInitializer] (',' [ConstructorInitializer])*   g\ʴʴ?/// The `augment` keyword, or `null` if the keyword was absent.   9 /// The body of the constructor.   vvb/// The token for the `const` keyword, or `null` if the constructor isn't a
/// const constructor.   ˇb   ˇˈ˒˱˓˵˶F""   7g̎̎I/// The token for the `external` keyword to this constructor declaration.   ̢f/// The token for the `factory` keyword, or `null` if the constructor isn't a
/// factory constructor.   +j͈͈5/// The initializers associated with the constructor.   ͙q\/// The name of the constructor, or `null` if the constructor being declared
/// is unnamed.   Y\\3/// The parameters associated with the constructor.   ku/// The token for the period before the constructor name, or `null` if the
/// constructor being declared is unnamed.   ϜϜ/// The name of the constructor to which this constructor is redirected, or
/// `null` if this isn't a redirecting factory constructor.   ϶ЗЗ/// The type of object being created.
///
/// This can be different than the type in which the constructor is being
/// declared if the constructor is the implementation of a factory
/// constructor.   Ц\\/// The token for the separator (colon or equals) before the initializer list
/// or redirection, or `null` if there are neither initializers nor a
/// redirection.    jdvv   , /// Initializes a newly created constructor declaration.
///
/// The [externalKeyword] can be `null` if the constructor isn't external.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// constructor doesn't have the corresponding attribute.
///
/// The [constKeyword] can be `null` if the constructor can't be used to
/// create a constant.
///
/// The [factoryKeyword] can be `null` if the constructor isn't a factory.
///
/// The [period] and [name] can both be `null` if the constructor isn't a
/// named constructor.
///
/// The [separator] can be `null` if the constructor doesn't have any
/// initializers and doesn't redirect to a different constructor.
///
/// The list of [initializers] can be `null` if the constructor doesn't have
/// any initializers.
///
/// The [redirectedConstructor] can be `null` if the constructor doesn't
/// redirect to a different constructor.
///
/// The [body] can be `null` if the constructor doesn't have a body.3CB  O_^  l{z  ؎؝؜  رؿ    "  *)  5DC  M+on  ~ٍٌ  ٛ7  3  ,+  E9Gg[iڔ}ږڻڵڽ' (  ,?? ,-P'ii PQ|ҋҋ  қҴҴ қҜҿ ҿ#  	 	
*UYY o{|}~ӄ+әә  Ӵ  4 ۋ/۬۬   ۋی۾X     zpp   %D&HIܘ?ܮܮ   ܘܙۀ   ݫW   ݫݬ/// Whether this is a trivial constructor.
///
/// A trivial constructor is a generative constructor that isn't a redirecting
/// constructor, declares no parameters, has no initializer list, has no body,
/// and isn't external.   ߼B   ߼߽g  "*)   mU   mnƀ  *   y9   yzZ     F22   ^cmm tttw  ^_Ł     ЃLр/// The initialization of a field within a constructor's initialization list.
///
///    fieldInitializer ::=
///        ('this' '.')? [SimpleIdentifier] '=' [Expression]   _ooK/// The token for the equal sign between the field name and the expression.   zfI/// The expression computing the value to which the field is initialized.   N((,/// The name of the field being initialized.   6yb/// The token for the period after the `this` keyword, or `null` if there's no
/// `this` keyword.   gM/// The token for the `this` keyword, or `null` if there's no `this` keyword.    {|z**  OEA A` /// Initializes a newly created field initializer to initialize the field with
/// the given name to the value of the given expression.
///
/// The [thisKeyword] and [period] can be `null` if the `this` keyword isn't
/// specified.gvu    '    "    ?3A$    %% 0??  였   17GG   12l9   lm^     =00   LbPP  Zpo      h   y..  <HG   o݀/// A node that can occur in the initializer list of a constructor declaration.
///
///    constructorInitializer ::=
///        [SuperConstructorInvocation]
///      | [ConstructorFieldInitializer]
///      | [RedirectingConstructorInvocation]     d       q''_/// The name of a constructor.
///
///    constructorName ::=
///        type ('.' identifier)?   l/// The name of the constructor, or `null` if the specified constructor is the
/// unnamed constructor and the name `new` wasn't explicitly used.   !/// The token for the period before the constructor name, or `null` if the
/// specified constructor is the unnamed constructor.   H2/// The name of the type defining the constructor.      ぉ  /// Initializes a newly created constructor name.
///
/// The [period] and [name] can be `null` if the constructor being named is
/// the unnamed constructor.    #  ("*[ii  s st  - p5   pq   -4SS   -.eMii  n   r   ,,JJ   ,-\E``  ets      BVQQ XXX[ji  BCo     7C/// An expression representing a reference to a constructor.
///
/// For example, the expression `List.filled` in `var x = List.filled;`.
///
/// Objects of this type aren't produced directly by the parser (because the
/// parser can't tell whether an identifier refers to a type); they are
/// produced at resolution time.   L44%/// The constructor being referenced.    STemfoHTT  倣   ,"!  J9L$  ?   H   c  /DC   ;   <    s        xa            x y ݀       $#    ]     oo6/// An AST node that makes reference to a constructor.   /// The element associated with the referenced constructor based on static
/// type information.
///
/// Returns `null` if the AST structure hasn't been resolved or if the
/// constructor couldn't be resolved.  {|/// The element associated with the referenced constructor based on static
/// type information, or `null` if the AST structure hasn't been resolved or
/// if the constructor couldn't be resolved.  {| +X3,5ʁfi/// The name of a constructor being invoked.
///
///    constructorSelector ::=
///        '.' identifier   6/// The constructor name.   ?''+/// The period before the constructor name.    45FsNGP2>>  q     +*    + Y+oo   YZ-   }   :hII PPPSba  :;5     ߃		h/// A continue statement.
///
///    continueStatement ::=
///        'continue' [SimpleIdentifier]? ';'   	O

2/// The token representing the `continue` keyword.   
j

K/// The label associated with the statement, or `null` if there's no label.   
C

,/// The semicolon terminating the statement.   
с/// The node to which this continue statement is continuing, or `null` if the
/// AST hasn't yet been resolved or if the target couldn't be resolved.
///
/// This is either a [Statement] (in the case of continuing a loop), or a
/// [SwitchMember] (in the case of continuing from one switch case to
/// another).
///
/// Note that if the source code has errors, the target might be invalid.
/// For example, the target might be in an enclosing function.    	H	I	Z		b	[	d  OE EZ /// Initializes a newly created continue statement.
///
/// The [label] can be `null` if there's no label associated with the
/// statement.apo  $    '55 I__  j! jk 4   ;,QQ   ;<k6   kl[      ""   X   U--  ;GF   u/// A pattern.
///
///    pattern ::=
///        [AssignedVariablePattern]
///      | [DeclaredVariablePattern]
///      | [CastPattern]
///      | [ConstantPattern]
///      | [ListPattern]
///      | [LogicalAndPattern]
///      | [LogicalOrPattern]
///      | [MapPattern]
///      | [NullAssertPattern]
///      | [NullCheckPattern]
///      | [ObjectPattern]
///      | [ParenthesizedPattern]
///      | [RecordPattern]
///      | [RelationalPattern]   gE/// The matched value type, or `null` if the node isn't resolved yet.   -:\\/// The precedence of this pattern.
///
/// The precedence is a positive integer value that defines how the source
/// code is parsed into an AST. For example `a | b & c` is parsed as `a | (b
/// & c)` because the precedence of `&` is greater than the precedence of `|`.   k		/// If this pattern is a parenthesized pattern, the result of unwrapping the
/// pattern inside the parentheses. Otherwise, this pattern.    =>O|WPYK**   & 0ށ/// The context for this pattern.
///
/// The possible contexts are
/// - Declaration context:
///     [ForEachPartsWithPatternImpl]
///     [PatternVariableDeclarationImpl]
/// - Assignment context: [PatternAssignmentImpl]
/// - Matching context: [GuardedPatternImpl]   4     txx@/// The variable pattern, itself, or wrapped in a unary pattern.   ?     ׁ/// Dispatches this pattern to the [resolverVisitor], with the given [context]
/// information.
///
/// Note: most code shouldn't call this method directly, but should instead
/// call [ResolverVisitor.dispatchPattern], which has some special logic for
/// handling dynamic contexts. !21  FZY    j<<{/// A node that represents the declaration of one or more names.
///
/// Each declared name is visible within a name scope.   eRR/// The element associated with this declaration, or `null` if either this
/// node corresponds to a list of declarations or if the AST structure hasn't
/// been resolved.  "A#fp/// The fragment declared by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved.   %  _     b! !!, /// Initializes a newly created declaration.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// declaration doesn't have the corresponding attribute.!3!C!B  !O!_!^       !qC"T"T/// The declaration of a single identifier.
///
///    declaredIdentifier ::=
///        [Annotation] finalConstVarOrType [SimpleIdentifier]   "d""   """"""""##Ҁ/// The element associated with this declaration.
///
/// Returns `null` if either this node corresponds to a list of declarations
/// or if the AST structure hasn't been resolved.  ###8$$   ##$#U$p$pA/// Whether this variable was declared with the 'const' modifier.   $|%L%L/// Whether this variable was declared with the 'final' modifier.
///
/// Returns `false` for variables that are declared with the 'const' modifier
/// even though they are implicitly final.   %X%%n/// The token representing either the `final`, `const` or `var` keyword, or
/// `null` if no keyword was used.   %>&&,/// The name of the variable being declared.   &$&&p/// The name of the declared type of the parameter, or `null` if the parameter
/// doesn't have a declared type.    !!""="""&H&&  '!( () //// Initializes a newly created formal parameter.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// declaration doesn't have the corresponding attribute.
///
/// The [keyword] can be `null` if a type name is given.
///
/// The [type] must be `null` if the keyword is `var`.))#)"  )/)?)>  )L)[)Z  )g!))  )))  )))' '0'0 '''<'P'P  'Z'r'r 'Z'['{6'' '{'|	)|*3*3   )))*)*	*
*[w**   *[*\*k*l*'**   **+n++   +++sB++   +s+t+B++   +++2,#,#   +, ,5K,9,9  ,>,S,R   ,,,   ,,-)Y-8-8 -?-?-?-B-Q-P  -)-*-v--  ---  -- . ..怗/// A variable pattern that declares a variable.
///
///    variablePattern ::=
///        ( 'var' | 'final' | 'final'? [TypeAnnotation])? [Identifier]   ///j/// The element associated with this declaration, or `null` if the AST
/// structure hasn't been resolved.  //////00o/// The element declared by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved.  0d0e01B1Bp/// The fragment declared by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved.   1W711!/// The `var` or `final` keyword.   1x22Z/// The type that the variable is required to match, or `null` if any type is
/// matched.    .......222  33 33-  343C3B  3O3^3]  3g3w3v   2}<22 2}2~2 22 222*3	3	 223H33   3334O4O   3334344 4}44   44445'55   555155E/// The `final` keyword, or `null` if the `final` keyword isn't used.   6&J6H6H   6&6'6t66   6t6u7d7#7# 7*7*7*7-7<7;  777|77  777  7|7}8o88  888  888  8o8p;IS;Z;Z  ;h;t;s  ;I;J ;=m=mv/// A formal parameter with a default value.
///
/// There are two kinds of parameters that are both represented by this class:
/// named formal parameters and positional formal parameters.
///
///    defaultFormalParameter ::=
///        [NormalFormalParameter] ('=' [Expression])?
///
///    defaultNamedParameter ::=
///        [NormalFormalParameter] (':' [Expression])?   =>$>$l/// The expression computing the default value for the parameter, or `null` if
/// there's no default value.   >5k>>D/// The formal parameter with which the default value is associated.   >??i/// The token separating the parameter from the default value, or `null` if
/// there's no default value.    ===)=V=1=*=3?+Y?7?7  @-@ @@ /// Initializes a newly created default formal parameter.
///
/// The [separator] and [defaultValue] can be `null` if there's no default
/// value.@,AA  AA+A*  A4ACAB  AQ%AkAj  AAAAAA?$??  ??? ???"?? ??@@@  B:B!B!   BBBI0B`B`   BIBJB}BB   B}B~BBBBBCfC9C9   CCCCCm>CC   CmCnCcCC  CCC   DD,D,   DDD3DD   DDDGEE   DDE93ENEN   E9E:EpMEE   EpEqE/EE   EEEBFF   EEF:qF>F>  FH)FcFb   F/FF   FFF‹G G    FFGcGG GGGGGG  GGH|HH  H%H1H0  HH H$II/// A node that represents a directive.
///
///    directive ::=
///        [ExportDirective]
///      | [ImportDirective]
///      | [LibraryDirective]
///      | [PartDirective]
///      | [PartOfDirective]   ÌJJ/// The element associated with this directive, or `null` if the AST structure
/// hasn't been resolved or if this directive couldn't be resolved.  JcJdJnJJo IWIXIiIIqIjIsJJJ  KK KK /// Initializes a newly create directive.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// directive doesn't have the corresponding attribute.KKK  KL
L	   JKK  L1L9L9   LLLQ?LULU  L]LkLj     LMVMVk/// A do statement.
///
///    doStatement ::=
///        'do' [Statement] 'while' '(' [Expression] ')' ';'   M{/MM/// The body of the loop.   MWMM;/// The condition that determines when the loop terminates.   N	CNBNB,/// The token representing the `do` keyword.   NP6NvNv/// The left parenthesis.   N8NN/// The right parenthesis.   NCNN,/// The semicolon terminating the statement.   OIOIOI//// The token representing the `while` keyword.    M MMM?MMMOZOfOf  PP PP (/// Initializes a newly created do loop.PPP  Q	Q!Q   Q*Q9Q8  QJQYQX  Qm!QQ  QQQ  QQQ  QQQQQQO!OO OOOOO  O$OO OOP'P&P& PPP:PIPI  PX(PpPp PXPYP!PP PPRL.RbRb   RLRMR~,RR   R~RRORR  RRR   S7S S    SSS<\S@S@  SJSZSY   S,SS   SSŚeSS   SSU5RUDUD UKUKUKUNU]U\  U5U6UsUU  UUU  UU VWHWH/// A node that represents a dot shorthand static method or constructor
/// invocation.
///
/// For example, `.parse('42')`.
///
///    dotShorthandHead ::=
///        '.' [SimpleIdentifier] [TypeArgumentList]? [ArgumentList]   W_WW</// The name of the constructor or static method invocation.   W:XX&/// The token representing the period.    	VVVVWW1WWWX!(X-X-  X+Y2 Y2YL 9/// Initializes a newly created dot shorthand invocation.YSYbYa  Ym(YY  YYY  YYY  YYYXXX XXX XX  Z%+Z;Z;   Z%Z&ZT8ZjZj   ZTZUZ6ZZ   ZZZ?ZZ   ZZ[d[[  [[2[1   [u<[[   [u[v[[[   [[\c\\ \\\\\\  \\]]]  ]&]7]6  ]@]J]I  ]]]]]  ]]]  ]] _G`^`^/// A node that represents a dot shorthand property access of a field or a
/// static getter.
///
/// For example, `.zero`.
///
///    dotShorthandHead ::= '.' [SimpleIdentifier]   `:``&/// The token representing the period.   `Qaa,/// The name of the property being accessed.    	__``	``G`"``$a#2a/a/  ab9 b9bW >/// Initializes a newly created dot shorthand property access.b^bmbl  bx*bb  bbbaaa aaa"aa  b+cc   bbc$8c:c:   c$c%c`<c{c{   c`cacCcc   ccchcc  cdd   dSdqdq   dSdTdgdd ddddee  ddeOe`e`  eree  eee  eOePeZf
f
  ff$f#  ee fWogPgP/// A dotted name, used in a configuration within an import or export directive.
///
///    dottedName ::=
///        [SimpleIdentifier] ('.' [SimpleIdentifier])*   grRgg%/// The components of the identifier.    ffgg9ggggȃgg  h]h hh p/// Initializes a newly created dotted name.
///
/// The list of [components] must contain at least one element.h.ii   hGh:h: hHhThUhVhWiV<ilil   iViWiMii   iii8ii   iij#jgjg   j#j$jQjj jjjjjj  jjkYk k   k.k:k9  kk klll/// A floating point literal expression.
///
///    doubleLiteral ::=
///        decimalDigit+ ('.' decimalDigit*)? exponent?
///      | '.' decimalDigit+ exponent?
///
///    exponent ::=
///        ('e' | 'E') ('+' | '-')? decimalDigit+   l<m
m
'/// The token representing the literal.   m1mAmA/// The value of the literal.    l[l\lmllulnlwmK7mWmW  mۀn nn& 7/// Initializes a newly created floating point literal.n-n<n;  nHnWnV   mmm mmmmm mmnf,n|n|   nfngn*nn   nnndnn   nno,To;o; oBoBoBoEoToS  o,o-ooo  ooo  ooo  oop!_p2p2  p@pLpK  p!p" pqzqz/// An empty function body.
///
/// An empty function body can only appear in constructors or abstract methods.
///
///    emptyFunctionBody ::=
///        ';'   qnrrU/// The token representing the semicolon that marks the end of the function
/// body.    q$q%q6qcq>q7q@r#r&r&  rkr rr ./// Initializes a newly created function body.rrr   rz!rr rzr{s.s%s%   sssA,sWsW   sAsBsqhss   sqsrsXss sssstt  sst9tNtN  tVtgtf  tpt{tz  t9t:tgtt  ttt  tt u?uuD/// An empty statement.
///
///    emptyStatement ::=
///        ';'   vCv;v;,/// The semicolon terminating the statement.    uuuuuuuvIvUvU  vjv vw 0/// Initializes a newly created empty statement.www   v!vv vvw0.wFwF   w0w1wb,wxwx   wbwcw:ww   wwwhww   wwx<UxKxK xRxRxRxUxdxc  x<x=x_xx  xxx  xx x,yy䀕/// The arguments part of an enum constant.
///
///    enumConstantArguments ::=
///        [TypeArgumentList]? [ConstructorSelector]? [ArgumentList]   zzz{/// The explicit arguments (there are always implicit `index` and `name`
/// leading arguments) to the invoked constructor.   z{P{P/// The selector of the constructor that is invoked by this enum constant, or
/// `null` if the default constructor is invoked.   {h||/// The type arguments applied to the enclosing enum declaration when invoking
/// the constructor, or `null` if no type arguments were provided.    yyyyyyy|&|2|2  }:}: }:}S  }Z}i}h  }{!}}  }}}   |5|| |||>|| ||}/})}) }}~=l~S~S   ~=~>~8~~   ~~~   ~~j   /@@  NZY  /0 ۄZZ(/// The declaration of an enum constant.   qq/// The explicit arguments (there are always implicit `index` and `name`
/// leading arguments) to the invoked constructor, or `null` if this constant
/// doesn't provide any explicit arguments.   l?/// The `augment` keyword, or `null` if the keyword was absent.  ‣/// The constructor that is invoked by this enum constant, or `null` if the
/// AST structure hasn't been resolved, or if the constructor couldn't be
/// resolved.  ր/// The constructor that's invoked by this enum constant.
///
/// Returns `null` if the AST structure hasn't been resolved, or if the
/// constructor couldn't be resolved.  _==    Q@   QRab//// The name of the constant.    C Ȇa  ,    /// Initializes a newly created enum constant declaration.
///
/// Either or both of the [documentationComment] and [metadata] can be `null`
/// if the constant doesn't have the corresponding attributes."21  >NM  [ji  }     3'LL 34_ww _`. 6 9 ܀66   	uw   uv>   2RHH   23   EdTT [[[^ml  EFz     +xx/// The declaration of an enumeration.
///
///    enumType ::=
///        metadata 'enum' name [TypeParameterList]?
///        [WithClause]? [ImplementsClause]? '{' [SimpleIdentifier]
///        (',' [SimpleIdentifier])* (';' [ClassMember]+)? '}'   l?/// The `augment` keyword, or `null` if the keyword was absent.  "`xx-/// The enumeration constants being declared.   [   ?   (0LL/// The `enum` keyword.   \s/// The `implements` clause for the enumeration, or `null` if the enumeration
/// doesn't implement any interfaces.   4''/// The left curly bracket.   7Q,/// The members declared by the enumeration.   6/// The right curly bracket.   K3/// The optional semicolon after the last constant.   o/// The type parameters for the enumeration, or `null` if the enumeration
/// doesn't have any type parameters.   11i/// The `with` clause for the enumeration, or `null` if the enumeration
/// doesn't have a `with` clause.    "#4a<5>@mLL  ؄M  /// Initializes a newly created enumeration declaration.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// declaration doesn't have the corresponding attribute.
///
/// The list of [constants] must contain at least one value.  *)  7FE  Yhg  x  .  #  /  #21  B4nm  |  &    	!G5I' # !&88  L\\  l'  # M 	
"++ 9?]] htuvw}$ }~- )Rcc   )*s   /   )Y??   )*L   }  &   WB   WXI   v  %   d:   de_     @JJ   IVXX ___bqp  IJ     z/// An export directive.
///
///    exportDirective ::=
///        [Annotation] 'export' [StringLiteral] [Combinator]* ';'   pph/// The element associated with this directive, or `null` if the AST structure
/// hasn't been resolved.   *F+JK|K0/// The token representing the `export` keyword.   ˀccn/// Information about this export directive.
///
/// Returns `null` if the AST structure hasn't been resolved.  @A *+<iD=Fu   # /// Initializes a newly created export directive.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// directive doesn't have the corresponding attribute.
///
/// The list of [combinators] can be `null` if there are no combinators.*:9  FVU  crq           % WW   )-.I   &&   o   opV   䀟     //// A node that represents an expression.
///
///    expression ::=
///        [AssignmentExpression]
///      | [ConditionalExpression] cascadeSection*
///      | [ThrowExpression]   /// The parameter element representing the parameter to which the value of
/// this expression is bound.
///
/// Returns `null` if any of these conditions are false:
/// - this expression is an argument to an invocation
/// - the AST structure has been resolved
/// - the function being invoked is known based on static type information
/// - this expression corresponds to one of the parameters of the function
///   being invoked  Ȅttt/// Whether this expression is in a constant context.
///
/// An expression _e_ is said to _occur in a constant context_,
/// - if _e_ is an element of a constant list literal, or a key or value of an
///   entry of a constant map literal.
/// - if _e_ is an actual argument of a constant object expression or of a
///   metadata annotation.
/// - if _e_ is the initializing expression of a constant variable
///   declaration.
/// - if _e_ is a switch case expression.
/// - if _e_ is an immediate subexpression of an expression _e1_ which occurs
///   in a constant context, unless _e1_ is a `throw` expression or a function
///   literal.
///
/// This roughly means that everything which is inside a syntactically
/// constant expression is in a constant context. A `throw` expression is
/// currently not allowed in a constant expression, but extensions affecting
/// that status might be considered. A similar situation arises for function
/// literals.
///
/// Note that the default value of an optional formal parameter is _not_ a
/// constant context. This choice reserves some freedom to modify the
/// semantics of default values.   {`/// Whether this expression is syntactically valid for the LHS of an
/// [AssignmentExpression].   	<::/// The precedence of this expression.
///
/// The precedence is a positive integer value that defines how the source
/// code is parsed into an AST. For example `a * b + c` is parsed as
/// `(a * b) + c` because the precedence of `*` is greater than the precedence
/// of `+`.   IHH/// The parameter element representing the parameter to which the value of
/// this expression is bound, or `null` if any of these conditions are not
/// `true`
/// - this expression is an argument to an invocation
/// - the AST structure is resolved
/// - the function being invoked is known based on static type information
/// - this expression corresponds to one of the parameters of the function
///   being invoked  	.
c~`/// The static type of this expression, or `null` if the AST structure hasn't
/// been resolved.   /// If this expression is a parenthesized expression, returns the result of
/// unwrapping the expression inside the parentheses. Otherwise, returns this
/// expression.    =>O|WPY/// A function body consisting of a single expression.
///
///    expressionFunctionBody ::=
///        'async'? '=>' [Expression] ';'   V9/// The expression representing the body of the function.   "xV/// The token introducing the expression that represents the body of the
/// function.   }Y/// The token representing the `async` keyword, or `null` if there's no such
/// keyword.  DYY,/// The semicolon terminating the statement.   g::/// The star following the `async` keyword, or `null` if there's no star.
///
/// It's an error for an expression function body to feature the star, but
/// the parser accepts it.  #$ ?@Q~YR[COO  H Hb /// Initializes a newly created function body consisting of a block of
/// statements.
///
/// The [keyword] can be `null` if the function body isn't an async function
/// body.ixw       "    
   *// FUU  e"~~ efNdd   NO؀   h9   hi^     O   Z1oo   Z[N      c   Tii  q    TUY     Q^^   ¶  Ѐ   d   7+LL   78fhčč   fg4   
7))   
EVV/// Returns the [AstNode] that puts node into the constant context, and
/// the explicit `const` keyword of that node. The keyword might be absent
/// if the constness is implicit.
///
/// Returns `null` if node is not in the constant context. l{z   7/// Record that the static type of the given node is the given type.
///
/// @param expression the node whose type is to be recorded
/// @param type the static type of the node   !0/   J[[  qԂԁ  ԋ!Ԧԥ  JKGrww/// Dispatches this expression to the [resolver], with the given [contextType]
/// information.
///
/// Note: most code shouldn't call this method directly, but should instead
/// call [ResolverVisitor.dispatchExpression], which has some special logic
/// for handling dynamic contexts. ։֚֙  ֣֭֬   ֽDKKz/// Records that the static type of `this` is [type], without triggering any
/// [ResolverVisitor] behaviors.
///
/// This is used when the expression AST node occurs in a place where it is
/// not technically a true expression, but the analyzer chooses to assign it a
/// static type anyway (e.g. the [SimpleIdentifier] representing the method
/// name in a method invocation). its    f/// An expression used as a statement.
///
///    expressionStatement ::=
///        [Expression]? ';'   M110/// The expression that comprises the statement.   @‒/// The semicolon terminating the statement, or `null` if the expression is a
/// function expression and therefore isn't followed by a semicolon.    lm~٫نو  ۗ  5/// Initializes a newly created expression statement."  $#  A5CQ``  p"ۉۉ pqy;܏܏   yzܸ   ܸܹH9gg   HI݅^݉݉  ݔݤݣ   s   ^||   ^_Z   
  OY``  nzy  OP ߬qqn/// The "extends" clause in a class declaration.
///
///    extendsClause ::=
///        'extends' [NamedType]   M1/// The token representing the `extends` keyword.   M))1/// The name of the class that is being extended.    -Z5.78DD  Ѐ  //// Initializes a newly created extends clause.)(  <!TS  rft&   3   7   8::   XQ\\  gvu   㭀   JTYY ```crq  JKY     T<</// The declaration of an extension of a type.
///
///    extension ::=
///        'extension' [SimpleIdentifier]? [TypeParameterList]?
///        'on' [TypeAnnotation] [ShowClause]? [HideClause]?
///        '{' [ClassMember]* '}'   vl?/// The `augment` keyword, or `null` if the keyword was absent.  `66   JD}}   JKZ[Q3/// The token representing the `extension` keyword.   4/// The left curly bracket.   Wnn2/// The members being added to the extended class.   zaN/// The name of the extension, or `null` if the extension doesn't have a name.   R((//// The `on` clause, `null` if an augmentation.   56^^/// The right curly bracket.   oH./// The token representing the `type` keyword.   黀BBk/// The type parameters for the extension, or `null` if the extension doesn't
/// have any type parameters.    % Unaa  첂'       
  ,;:  P_^  o~}  .      &  "10  UEW
'   (++ @$YY @Ai ij&  + # ?22 =IJKLR$jj RS{2 {|x11   Y/oo   YZd   B""   :Iaa   :;v  %      a     #/.   ŁIzz^/// The `on` clause in an extension declaration.
///
///    onClause ::= 'on' [TypeAnnotation]   9/// The extended type.   ,/// The 'on' keyword.    $%6c>7@  ǀ         k! kl1 M.cc   MN8      Rfaa hhhkzy  RSZ     }""/// An override to force resolution to choose a member from a specific
/// extension.
///
///    extensionOverride ::=
///        [Identifier] [TypeArgumentList]? [ArgumentList]   	N/// The list of arguments to the override.
///
/// In valid code this contains a single argument that evaluates to the object
/// being extended.   
gii!/// The forced extension element.  ./9P:uzH/// The extension that resolution will use to resolve member references.  ˀ/// The actual type extended by this override, produced by applying
/// [typeArgumentTypes] to the generic type extended by the extension, or
/// `null` if the AST structure hasn't been resolved.   X''-/// The optional import prefix before [name].   8YA/// Whether this override is null aware (as opposed to non-null).   ?-/// The name of the extension being selected.   ؀WWd/// The type arguments to be applied to the extension, or `null` if there are
/// no type arguments.   i,/// The actual type arguments to be applied to the extension, either
/// explicitly specified in [typeArguments], or inferred, or `null` if the AST
/// structure hasn't been resolved.
///
/// An empty list if the extension doesn't have type arguments.       0 0  0 E   L [ Z   l { z   ,     &         8*:9$$ 5MM 56V0~~ VW$    -  	"    	 

?   h  "!   k?   klm   955    \qq   \]<22   WF}}   WXq  #   44   f %$  gxx      gh  '32  	 6	B	B./// The declaration of an extension type.
///
///    <extensionTypeDeclaration> ::=
///        'extension' 'type' 'const'? <typeIdentifier> <typeParameters>?
///        <representationDeclaration> <interfaces>?
///        '{'
///            (<metadata> <extensionTypeMemberDeclaration>)*
///        '}'   	l		?/// The `augment` keyword, or `null` if the keyword was absent.  			3

/// The `const` keyword.   
0d

   
0
1
;
Z
<
^
_
H

   




:/// The `extension` keyword.   "FWW/// The `implements` clause.   l4/// The left curly bracket.   5/// The members.   S!!#/// The representation declaration.   46]]/// The right curly bracket.   n0/// The `type` keyword.   A/// The type parameters.    		+		  Ȃq       $32  FUT  jyx            *98  I&ih  u   ' ( # %   17ZZ 12m> mn8 # JEE O[\]^d$|| de6 =|   =>HgIkl/   d   X2vv   XYm     *)    Q!!/// The declaration of one or more fields of the same type.
///
///    fieldDeclaration ::=
///        'static' 'const' <type>? <staticFinalDeclarationList>
///      | 'static' 'final' <type>? <staticFinalDeclarationList>
///      | 'static' 'late' 'final' <type>? <initializedIdentifierList>
///      | 'static' 'late'? <varOrType> <initializedIdentifierList>
///      | 'covariant' 'late'? <varOrType> <initializedIdentifierList>
///      | 'late'? 'final' <type>? <initializedIdentifierList>
///      | 'late'? <varOrType> <initializedIdentifierList>
///      | 'external' ('static'? <finalVarOrType> | 'covariant' <varOrType>)
///            <identifierList>
///      | 'abstract' (<finalVarOrType> | 'covariant' <varOrType>)
///            <identifierList>
///
/// (Note: there's no `<fieldDeclaration>` production in the grammar; this is a
/// subset of the grammar production `<declaration>`, which encompasses
/// everything that can appear inside a class declaration except methods).   M^@/// The `abstract` keyword, or `null` if the keyword isn't used.   l?/// The `augment` keyword, or `null` if the keyword was absent.  `nnA/// The `covariant` keyword, or `null` if the keyword isn't used.   ^@/// The `external` keyword, or `null` if the keyword isn't used.   D""/// The fields being declared.   -Fjj1/// Whether the fields are declared to be static.   wE./// The semicolon terminating the declaration.   y++[/// The token representing the `static` keyword, or `null` if the fields
/// aren't static.    
=%II  ʂ     /// Initializes a newly created field declaration.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// declaration doesn't have the corresponding attribute.
///
/// The [staticKeyword] can be `null` if the field isn't a static field.	 !!  !!#!"  !0!?!>  !S!b!a  !u!!  !!!  !!!  !.""  "" "  "<"1">( ' ) !(:: !"N&gg NOy&  ! "r_""   "r"s"}""~"""3""   ""#,#"#"   ###<A#h#h   #<#=#^##  #"##   ###   ##$7$$   $$% %%   % %&W&& &&&&&&  &&&z&&  '''  && 'd((/// A field formal parameter.
///
///    fieldFormalParameter ::=
///        ('final' [TypeAnnotation] | 'const' [TypeAnnotation] | 'var' |
///        [TypeAnnotation])?
///        'this' '.' name ([TypeParameterList]? [FormalParameterList])?   	(O)%)%   (((():))n/// The token representing either the `final`, `const` or `var` keyword, or
/// `null` if no keyword was used.   )))   )))〡*y*yx/// The parameters of the function-typed parameter, or `null` if this isn't a
/// function-typed field formal parameter.   *:**&/// The token representing the period.   *Ɓ,,/// The question mark indicating that the function type is nullable, or `null`
/// if there's no question mark, which will always be the case when the
/// parameter doesn't use the older style for denoting a function typed
/// parameter.
///
/// If the parameter is function-typed, and has the question mark, then its
/// function type is nullable. Having a nullable function type means that the
/// parameter can be `null`.   ,G,,./// The token representing the `this` keyword.   ,--̀/// The declared type of the parameter, or `null` if the parameter doesn't
/// have a declared type.
///
/// If this is a function-typed field formal parameter this is the return type
/// of the function.   -ր.[.[i/// The type parameters associated with this method, or `null` if this method
/// isn't a generic method.    (W(X(i((q(j(s.n,.z.z  /儂1 12 /// Initializes a newly created formal parameter.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// parameter doesn't have the corresponding attribute.
///
/// The [keyword] can be `null` if there's a type.
///
/// The [type] must be `null` if the keyword is `var`.
///
/// The [thisKeyword] and [period] can be `null` if the keyword `this` isn't
/// provided.
///
/// The [parameters] can be `null` if this isn't a function-typed field formal
/// parameter.2	22  2%2524  2B2R2Q  2g2w2v  222  2!22  222  222  333  3.3@3?  3S,3v3u  333  	333333333. .. ..///  / #/8/8 / /!/H/`/` /H/I/k&//  /$//  /!// //4k44   4k4l4Z55   445[5q5q   5[5\6
B66   6
66PO6e6e   6P6Q6B66   666*66   667C7@7@   777^h7b7b  7m#77   7277   778 a88  8	88   8eI88   8e8f8v88  8%88   9,E9J9J   9,9-:ua:: ::::::  :u:v:ڀ::  :;;  :: ;M<'<'</// The parts of a for-each loop that control the iteration.   <PC<<,/// The token representing the `in` keyword.   <P<<5/// The expression evaluated to produce the iterator.    ;;;<;;;<냡<<  => >> /// Initializes a newly created for-each statement whose loop control variable
/// is declared internally (in the for-loop part).>>->,  >; >T>S  >n>d>p=>!=V=V =>=?=d=s=s  >.>>   >>>5>>   >>?5?,?,   ???FZ?J?J  ?S?c?b   ???   ??@3W@D@D  @R@^@]  @3@4 @AA/// The parts of a for-each loop that control the iteration when the loop
/// variable is declared as part of the for loop.
///
///   forLoopParts ::=
///       [DeclaredIdentifier] 'in' [Expression]   APB'B')/// The declaration of the loop variable.    AVAWAhAApAiArB8yBDBD  BՁfC_ C_C~ /// Initializes a newly created for-each statement whose loop control variable
/// is declared internally (inside the for-loop part).C,CC  CCC  CCC  DCDB$BB  D?=DUDU   D?D@DEDD   DDDfDD  DDD   E3EQEQ   E3E4EhEE EEEEEE  EEF2}FCFC  FQF]F\  F2F3 FGGπ/// The parts of a for-each loop that control the iteration when the loop
/// variable is declared outside of the for loop.
///
///   forLoopParts ::=
///       [SimpleIdentifier] 'in' [Expression]   H9H4H4/// The loop variable.    GyGzGGGGGHCUHOHO  Hځ\Ie IeI /// Initializes a newly created for-each statement whose loop control variable
/// is declared externally (outside the for-loop part).I(II  III  III  JIJH HH  J:;JPJP   J:J;Jy?JJ   JyJzJdJJ  JJJ   K$KBKB   K$K%KgKK KKKKKK  KKLxL/L/  L=LILH  LL LMzMz/// A for-loop part with a pattern.
///
///    forEachPartsWithPattern ::=
///        ( 'final' | 'var' ) [DartPattern] 'in' [Expression]   MNMM9/// The `var` or `final` keyword introducing the pattern.   N SNJNJ./// The annotations associated with this node.   NWHNN-/// The pattern used to match the expression.    M$M%M6McM>M7M@NNN  P
P
 P
P%  P,'PLPK  PYPhPg  PtPP  PPP  PPP   O?O2O2 O>OJOKOLOMOSOkOk OSOTOw)OO OwOxO`OO$/// Variables declared in [pattern]. QQ3Q3   QQQQQ(/// If [keyword] is `final`, returns it.   RVCRR   RVRWRRR   RRSqdSS SSSSSS  SqSrSـSS  STT  SS TsTT)/// The basic structure of a for element.   U{UU^/// The token representing the `await` keyword, or `null` if there was no
/// `await` keyword.   U7UU/// The body of the loop.   UEVV-/// The token representing the `for` keyword.   V"]VrVr</// The parts of the for element that control the iteration.   V6VV/// The left parenthesis.   V8VV/// The right parenthesis.    TTTTTTTVWW  X`X XX ,/// Initializes a newly created for element.XXX  XXX  XXX  Y&Y Y  Y1Y@Y?  YU#YuYt  YYYYYYWs%WW WsWtW"WW WWW'WW WWWXX  X(X+X+ XXX@XVXV  Y?ZZ   YYZA4ZgZg   ZAZBZyWZ}Z}  ZZZ   Z1ZZ   ZZ[	?[*[*   [	[
[Lh[P[P  [][o[n   [F[[   [[]Q]] ]]]]]*])  ]]]W]h]h  ]~]]  ]!]]  ]W]X^v^+^+  ^9^E^D  ^^ ^`m`m/// The parts of a for or for-each loop that control the iteration.
///
///   forLoopParts ::=
///       [VariableDeclaration] ';' [Expression]? ';' expressionList?
///     | [Expression]? ';' [Expression]? ';' expressionList?
///     | [DeclaredIdentifier] 'in' [Expression]
///     | [SimpleIdentifier] 'in' [Expression]
///
///   expressionList ::=
///       [Expression] (',' [Expression])*     `` `1`^`9`2`;`L``       `ߊaaƀ/// A node representing a parameter to a function.
///
///    formalParameter ::=
///        [NormalFormalParameter]
///      | [DefaultFormalParameter]   a`b<b<A/// The `covariant` keyword, or `null` if the keyword isn't used.   bQbbb/// The element representing this parameter, or `null` if this parameter
/// hasn't been resolved.  bbbbbcccj///The fragment declared by this parameter.
///
/// Returns `null` if this parameter hasn't been resolved.  cccVddB/// Whether this parameter was declared with the 'const' modifier.   dMdXdX//// Whether the parameter has an explicit type.   dne@e@/// Whether this parameter was declared with the 'final' modifier.
///
/// Returns `false` for parameters that are declared with the 'const' modifier
/// even though they are implicitly final.   eLeem/// Whether this parameter is a named parameter.
///
/// Named parameters can either be required or optional.   eՀfXfXs/// Whether this parameter is an optional parameter.
///
/// Optional parameters can either be positional or named.   fg_ffC/// Whether this parameter is both an optional and named parameter.   fog$g$L/// Whether this parameter is both an optional and positional
/// parameter.   g=ggw/// Whether this parameter is a positional parameter.
///
/// Positional parameters can either be required or optional.   gՁhh̀/// Whether this parameter is a required parameter.
///
/// Required parameters can either be positional or named.
///
/// Note: this returns `false` for a named parameter that is annotated with
/// the `@required` annotation.   h܀ii/// Whether this parameter is both a required and named parameter.
///
/// Note: this returns `false` for a named parameter that is annotated with
/// the `@required` annotation.   ihjjG/// Whether this parameter is both a required and positional parameter.   j Xjojo3/// The annotations associated with this parameter.   j|k k /// The name of the parameter being declared, or `null` if the parameter
/// doesn't have a name, such as when it's part of a generic function type.   k)^kwkw@/// The `required` keyword, or `null` if the keyword isn't used.    axayaaaaak~kk   kBll kkkkl*xl~l~   l*l+l5lTl6lXlYl-ll   lll3ll   llm=m#m#   mmmOGmdmd   mOmPm7mm   mmm3mm   mmn=n!n!   nnnMGnbnb   nMnNn9nn/// The kind of this parameter.   n2nn   nn  osssɄg/// The formal parameter list of a method declaration, function declaration, or
/// function type alias.
///
/// While the grammar requires all required positional parameters to be first,
/// optionally being followed by either optional positional parameters or named
/// parameters (but not both), this class doesn't enforce those constraints. All
/// parameters are flattened into a single list, which can have any or all kinds
/// of parameters (normal, named, and positional) in any order.
///
///    formalParameterList ::=
///        '(' ')'
///      | '(' normalFormalParameters (',' optionalFormalParameters)? ')'
///      | '(' optionalFormalParameters ')'
///
///    normalFormalParameters ::=
///        [NormalFormalParameter] (',' [NormalFormalParameter])*
///
///    optionalFormalParameters ::=
///        optionalPositionalFormalParameters
///      | namedFormalParameters
///
///    optionalPositionalFormalParameters ::=
///        '[' [DefaultFormalParameter] (',' [DefaultFormalParameter])* ']'
///
///    namedFormalParameters ::=
///        '{' [DefaultFormalParameter] (',' [DefaultFormalParameter])* '}'   stt/// The left square bracket ('[') or left curly brace ('{') introducing the
/// optional or named parameters, or `null` if there are neither optional nor
/// named parameters.   t6tt/// The left parenthesis.   uuu/// A list containing the elements representing the parameters in this list.
///
/// The list contains `null`s if the parameters in this list haven't been
/// resolved.  uuuuuvvv/// A list containing the fragments representing the parameters in this list.
///
/// The list contains `null`s if the parameters in this list haven't been
/// resolved.  vvwZw_w_./// The parameters associated with the method.   wnx1x1/// The right square bracket (']') or right curly brace ('}') terminating the
/// optional or named parameters, or `null` if there are neither optional nor
/// named parameters.   xD8xkxk/// The right parenthesis.    ssstsssssxDxx  yڂz zz /// Initializes a newly created parameter list.
///
/// The [leftDelimiter] and [rightDelimiter] can be `null` if there are no
/// optional or named parameters, but it must be the case that either both are
/// `null` or that both are non-`null`.z{{  {-{?{>  {N{]{\  {o{~{}  {{{   x'xx xxyFy3y3 yAyMyNyOyPyV&yoyo yVyWy'yy yyy(yy yy{4||   {{|&3|<|<   |&|'|]||   |]|^}c}}   }c}d}s}t}L~'~'   }}~E~c~c   ~E~FZ !!!$32  iYzz    ij Ƃ/// The parts of a for loop that control the iteration.
///
///   forLoopParts ::=
///       [VariableDeclaration] ';' [Expression]? ';' expressionList?
///     | [Expression]? ';' [Expression]? ';' expressionList?   f/// The condition used to determine when to terminate the loop, or `null` if
/// there's no condition.   Z?/// The semicolon separating the initializer and the condition.   W??;/// The semicolon separating the condition and the updater.   RkF/// The list of expressions run after each execution of the loop body.      ā} } /// Initializes a newly created for statement.
///
/// Either the [condition] and the list of [updaters] can be `null` if the
/// loop doesn't have the corresponding attribute.  "    '  6+8%$$ 6FF  U&mm UV? 2   8   	]  ('   jG   jkC      x     j/// The parts of a for loop that control the iteration when there are one or
/// more variable declarations as part of the for loop.
///
///   forLoopParts ::=
///       [VariableDeclarationList] ';' [Expression]? ';' expressionList?   S$$*/// The declaration of the loop variables.    TUfngp2>>  ʁ  /// Initializes a newly created for statement.
///
/// Both the [condition] and the list of [updaters] can be `null` if the loop
/// doesn't have the corresponding attribute.1      +*  >NM  l^n)  =   G   488  B)`_   Ѐ   ]ell sssv  ]^}     Gerr/// The parts of a for loop that control the iteration when there are no
/// variable declarations as part of the for loop.
///
///   forLoopParts ::=
///       [Expression]? ';' [Expression]? ';' expressionList?   	/// The initialization expression, or `null` if there's no initialization
/// expression.
///
/// Note that a for statement can't have both a variable list and an
/// initialization expression, but can validly have neither.    .[6/8  8 	 /// Initializes a newly created for statement.
///
/// Both the [condition] and the list of [updaters] can be `null` if the loop
/// doesn't have the corresponding attribute.'*)  =ML  _on  }    $$  S&&   gB   gho      >>    !c   //  =IH   ׀/// The parts of a for loop that control the iteration when there's a pattern
/// declaration as part of the for loop.
///
///   forLoopParts ::=
///       [PatternVariableDeclaration] ';' [Expression]? ';' expressionList?   VOO*/// The declaration of the loop variables.    ]'ii     )(  7GF  Yih  w     : 9   <<   Z   	y  (43  	
 KKn/// A for or for-each statement.
///
///    forStatement ::=
///        'for' '(' forLoopParts ')' [Statement]
///
///    forLoopParts ::=
///       [VariableDeclaration] ';' [Expression]? ';' expressionList?
///     | [Expression]? ';' [Expression]? ';' expressionList?
///     | [DeclaredIdentifier] 'in' [Expression]
///     | [SimpleIdentifier] 'in' [Expression]   qy\/// The token representing the `await` keyword, or `null` if there's no
/// `await` keyword.   //// The body of the loop.   !E[[-/// The token representing the `for` keyword.   j]</// The parts of the for element that control the iteration.   6/// The left parenthesis.   8,,/// The right parenthesis.    4AMM    ./// Initializes a newly created for statement.    "10  E&`_  q    % " '   	4EE  W(oo WX  6?LL   67y,   yzO     1   1?RR   12thxx     F   *S99 @@@CRQ  *+v     !!/// A node representing the body of a function or method.
///
///    functionBody ::=
///        [BlockFunctionBody]
///      | [EmptyFunctionBody]
///      | [ExpressionFunctionBody]
///      | [NativeFunctionBody]   EJ//// Whether this function body is asynchronous.   F./// Whether this function body is a generator.   H./// Whether this function body is synchronous.   ){c/// The token representing the `async` or `sync` keyword, or `null` if there's
/// no such keyword.   lW/// The star following the `async` or `sync` keyword, or `null` if there's no
/// star.   kMM/// If [variable] is a local variable or parameter declared anywhere within
/// the top level function or method containing this [FunctionBody], return a
/// boolean indicating whether [variable] is potentially mutated within the
/// scope of its declaration.
///
/// If [variable] isn't a local variable or parameter declared within the top
/// level function or method containing this [FunctionBody], return `false`.
///
/// Throws an exception if resolution hasn't been performed. izy  DC/// If [variable] is a local variable or parameter declared anywhere within
/// the top level function or method containing this [FunctionBody], return a
/// boolean indicating whether [variable] is potentially mutated within the
/// scope of its declaration.
///
/// If [variable] isn't a local variable or parameter declared within the top
/// level function or method containing this [FunctionBody], return `false`.
///
/// Throws an exception if resolution hasn't been performed.   }~΅   /// Additional information about local variables and parameters that are
/// declared within this function body or any enclosing function body, or
/// `null` if resolution hasn't yet been performed. /// The [BodyInferenceContext] that was used during type inference of this
/// function body, or `null` if resolution hasn't yet been performed. -   *   ,+AA   ,-['rr   [\$     &%      	ss/// Dispatch this function body to the resolver, imposing [imposedType] as the
/// return type context for `return` statements.
///
/// Returns value is the actual return type of the method. {      F/// A function declaration.
///
/// Wrapped in a [FunctionDeclarationStatement] to represent a local function
/// declaration, otherwise a top-level function declaration.
///
///    functionDeclaration ::=
///        'external' functionSignature
///      | functionSignature [FunctionBody]
///
///    functionSignature ::=
///        [Type]? ('get' | 'set')? name [FormalParameterList]   	sTTF/// The `augment` keyword, or `null` if there is no `augment` keyword.  9:gcc/// The element defined by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved or if this node
/// represents a top-level function.  <@AwTT/// The fragment declared by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved or if this node
/// represents a local function.   !01id/// The token representing the `external` keyword, or `null` if this isn't an
/// external function.   W55*/// The function expression being wrapped.   LA,/// Whether this function declares a getter.   A,/// Whether this function declares a setter.   րpp/// The token representing the `get` or `set` keyword, or `null` if this is a
/// function declaration rather than a property declaration.   pN/// The return type of the function, or `null` if no return type was declared.    \]nvox~  t t /// Initializes a newly created function declaration.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// function doesn't have the corresponding attribute.
///
/// The [externalKeyword] can be `null` if the function isn't an external
/// function.
///
/// The [returnType] can be `null` if no return type was specified.
///
/// The [propertyKeyword] can be `null` if the function is neither a getter or
/// a setter.        '.-  =LK  `po  y2  µ' (   
(## 
7*NN  f3 fg
Uêê   UV`aÃÄ?   #99   #$Q   =AA  T)lk   I   I))   a>ƅƅ   abƣmƧƧ  Ʋ   Y22   qZȀȀ ȇȇȇȊșȘ  qrπ     x0/// A [FunctionDeclaration] used as a statement.   5Z{{+/// The function declaration being wrapped.    ɩɪɻɼʓlʟʟ  7y y˙ ?/// Initializes a newly created function declaration statement.ˠ4  ,  <DRR   <=̄@̚̚   ̄̅T    $$  8+QP   ͯ{   ͯͰ.i== DDDGVU  ./Λbάά  κ  ΛΜ Tـ/// A function expression.
///
///    functionExpression ::=
///        [TypeParameterList]? [FormalParameterList] [FunctionBody]   677/// The body of the function.   @f/// The element associated with the function, or `null` if the AST structure
/// hasn't been resolved.  ЫЬжз/// The fragment declared by this function expression.
///
/// Returns `null` if the AST structure hasn't been resolved.
///
/// Returns `null` is thie expression is a closure, or the parent is a
/// local function.  %ҰҰm/// The parameters associated with the function, or `null` if the function is
/// part of a top-level getter.   ҿDDi/// The type parameters associated with this method, or `null` if this method
/// isn't a generic method.    στϕϝϖϟWcc  '_ _u 5/// Initializes a newly created function declaration.|.՝՜  հ,    	
@4B\V^ӷ&  $    &ˀ/// Whether a function type was supplied via context for this function
/// expression.
///
/// Returns `false` if resolution hasn't been performed yet.3 Ѐ   /   X  
   ]yزز   ]^h؇i؋،?   CFF   dhhh  s#ٍٌ   <   I77   ]vaa  p%ڈڇ   ׀   ۏY۞۞ ۥۥۥۨ۷۶  ۏې쀞     )32  ܎ܟܟ  ܭܹܸ  ܎܏ -/// The invocation of a function resulting from evaluating an expression.
///
/// Invocations of methods and other forms of functions are represented by
/// [MethodInvocation] nodes. Invocations of getters and setters are represented
/// by either [PrefixedIdentifier] or [PropertyAccess] nodes.
///
///    functionExpressionInvocation ::=
///        [Expression] [TypeArgumentList]? [ArgumentList]   pnn/// The element associated with the function being invoked based on static
/// type information.
///
/// Returns `null` if the AST structure hasn't been resolved or the function
/// couldn't be resolved.  FGz_8/// The expression producing the function being invoked.  ݁ހ/// The element associated with the function being invoked based on static
/// type information, or `null` if the AST structure hasn't been resolved or
/// the function couldn't be resolved.   ޼޽  ܁ > ?/// Initializes a newly created function expression invocation.E ^]  k{z      ' 9   ,9BB   ,-i5   ijZ      <    @z   @AKaLef往   C   i   4EE  Whg  q{z  45  
  g     A/// An expression representing a reference to a function, possibly with type
/// arguments applied to it.
///
/// For example, the expression `print` in `var x = print;`.   ;3ee/// The function being referenced.
///
/// In error-free code, this is either a [SimpleIdentifier] (indicating a
/// function that is in scope), a [PrefixedIdentifier] (indicating a either
/// function imported via prefix or a static method in a class), or a
/// [PropertyAccess] (indicating a static method in a class imported via
/// prefix). In code with errors, this could be other kinds of expressions.
/// For example, `(...)<int>` parses as a [FunctionReference] whose referent
/// is a [ParenthesizedExpression].   rc/// The type arguments being applied to the function, or `null` if there are
/// no type arguments.   +/// The actual type arguments being applied to the function, either
/// explicitly specified in [typeArguments], or inferred.
///
/// An empty list if the function doesn't have type parameters, or `null` if
/// the AST structure hasn't been resolved.    17==   ,  3 LK  Y,yx    $  - 800   VOll   VW5   P     6pQQ   67F   a     Yww   YZX   K\\  n~    KLz     j/// A function type alias.
///
///    functionTypeAlias ::=
///        'typedef' functionPrefix [TypeParameterList]?
///        [FormalParameterList] ';'
///
///    functionPrefix ::=
///        [TypeAnnotation]? [SimpleIdentifier]   `##   7Djj   78GH[5/// The parameters associated with the function type.   ހYYb/// The return type of the function type being defined, or `null` if no return
/// type was given.   hs/// The type parameters for the function type, or `null` if the function type
/// doesn't have any type parameters.    RSdlen
  x x R/// Initializes a newly created function type alias.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// function doesn't have the corresponding attribute.
///
/// The [returnType] can be `null` if no return type was specified.
///
/// The [typeParameters] can be `null` if the function has no type parameters.	         '10  @PO  Y.zy  +    	8,:g{{  &  #  2   x   4B\\   45zg~~  "   >		   'W++  6KJ   I   v  %   Ikgg   IJ X             %%  3?>   ۃր/// A function-typed formal parameter.
///
///    functionSignature ::=
///        [TypeAnnotation]? name [TypeParameterList]?
///        [FormalParameterList] '?'?   22   ;Y3/// The parameters of the function-typed parameter.   ii/// The question mark indicating that the function type is nullable, or `null`
/// if there's no question mark.
///
/// Having a nullable function type means that the parameter can be null.   v^/// The return type of the function, or `null` if the function doesn't have a
/// return type.   o/// The type parameters associated with this function, or `null` if this
/// function isn't a generic function.      R  /// Initializes a newly created formal parameter.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// parameter doesn't have the corresponding attribute.
///
/// The [returnType] can be `null` if no return type was specified.	     0/  EUT  i'    .  +		  		#	"  		@	4	B	f	V	h			--  =&TT  h#  ! 
C
"
"   


S
i
i   
S
T
&

   

/   	;&PP   ;<e*{{   efB   g  "    D>hh   DEW     I   .v22  A%YX      ^imm tttw  ^_ˀ     \JJa/// An anonymous function type.
///
///    functionType ::=
///        [TypeAnnotation]? 'Function' [TypeParameterList]?
///        [FormalParameterList] '?'?
///
/// where the FormalParameterList is being used to represent the following
/// grammar, despite the fact that FormalParameterList can represent a much
/// larger grammar than the one below. This is done in order to simplify the
/// implementation.
///
///    parameterTypeList ::=
///        () |
///        ( normalParameterTypes ,? ) |
///        ( normalParameterTypes , optionalParameterTypes ) |
///        ( optionalParameterTypes )
///    namedParameterTypes ::=
///        { namedParameterType (, namedParameterType)* ,? }
///    namedParameterType ::=
///        [TypeAnnotation]? [SimpleIdentifier]
///    normalParameterTypes ::=
///        normalParameterType (, normalParameterType)*
///    normalParameterType ::=
///        [TypeAnnotation] [SimpleIdentifier]?
///    optionalParameterTypes ::=
///        optionalPositionalParameterTypes | namedParameterTypes
///    optionalPositionalParameterTypes ::=
///        [ normalParameterTypes ,? ]   |p/// The fragment declared by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved.   )8QQ/// The `Function` keyword.   e[5/// The parameters associated with the function type.   Ā??b/// The return type of the function type being defined, or `null` if no return
/// type was given.   Ns/// The type parameters for the function type, or `null` if the function type
/// doesn't have any type parameters.    3    K Kb 6/// Initializes a newly created generic function type.i'    .  +  -,  	J>Lp`ry  ' &  #  !55 BXX BCak/// The element associated with the function type, or `null` if the AST
/// structure hasn't been resolved.	O,,   iC   ijB   g  "   a>   abW     I%%   KvOO  ^%vu   Ł   h 	  M^^  lxw  MN B  /// A generic type alias.
///
///    functionTypeAlias ::=
///        'typedef' [SimpleIdentifier] [TypeParameterList]? =
///        [FunctionType] ';'   !
`!c!cL/// The equal sign separating the name being defined from the function type.   !n"<"</// The type of function being defined by the alias, or `null` if the
/// non-function type aliases feature is enabled and the denoted type isn't a
/// [GenericFunctionType].   "MC""(/// The type being defined by the alias.   "####s/// The type parameters for the function type, or `null` if the function type
/// doesn't have any type parameters.           #6$#B#B  $V%j %j%~ /// Initializes a newly created generic type alias.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// variable list doesn't have the corresponding attribute.
///
/// The [typeParameters] can be `null` if there are no type parameters.	%%%  %%%  %%%  %%%  &&&  &.&>&=  &Q&`&_  &k &&  &&&  &&&&&&###  #&##  #$$ ##$2$A$A $$ '5x''   '5'6'@'_'A'c'd'''   ''(<(@(@  (M!(c(b   (1((   (((^((  (!))   )XI))   )X)Y)v))  )%))   *1*=*=   ** +Te+c+c +j+j+j+m+|+{  +T+U+++  +++  ++ ,\-&-&s/// The pattern with an optional [WhenClause].
///
///    guardedPattern ::=
///        [DartPattern] [WhenClause]?   -L[--@/// The pattern controlling whether the statements are executed.   -`. . B/// The clause controlling whether the statements are be executed.    ,,,-,,,...  /c/c /c/u  /|//  ///   .`).. .`.a./$/$c/// Variables declared in [pattern], available in [whenClause] guard, and
/// to the `ifTrue` node. /2,/T/T /2/3/700   //09K0O0O   090:000   001U1*1* 111111141C1B  111tv11  111  1t1u 133/// A combinator that restricts the names being imported to those that aren't
/// in a given list.
///
///    hideCombinator ::=
///        'hide' [SimpleIdentifier] (',' [SimpleIdentifier])*   3-x33J/// The list of names from the library that are hidden by this combinator.    22222223^33  4N4 44 7/// Initializes a newly created import show combinator.444  4/44   4H4*4* 494E4F4G4H5-95C5C   5-5.5jO55   5j5k555   556RU6a6a 6h6h6h6k6z6y  6R6S6Z66  666  66 7	77ـ/// A node that represents an identifier.
///
///    identifier ::=
///        [SimpleIdentifier]
///      | [PrefixedIdentifier]   8f9x9x3/// The element associated with this identifier based on static type
/// information.
///
/// Returns `null` if the AST structure hasn't been resolved or if this
/// identifier couldn't be resolved. One example of the latter case is an
/// identifier that isn't defined within the scope in which it appears.  9Z9[9D991/// The lexical representation of the identifier.   9́o;-;-&/// The element associated with this identifier based on static type
/// information, or `null` if the AST structure hasn't been resolved or if
/// this identifier couldn't be resolved. One example of the latter case is an
/// identifier that isn't defined within the scope in which it appears.  ::;;;;?;;e/// Returns `true` if the given [name] is visible only within the library in
/// which it's declared. ;;;   7777777;<<    <Z*<o<o   <Z<[<p<<   <<<<<<<  <-=|=|)/// The basic structure of an if element.   =e>>G/// The `case` clause used to match a pattern against the [expression].   >>>u/// The statement that is executed if the condition evaluates to `false`, or
/// `null` if there's no else statement.   >w??[/// The token representing the `else` keyword, or `null` if there's no else
/// expression.   ?,??/// The expression used to either determine which of the statements is
/// executed next or to compute the value to be matched against the pattern in
/// the `case` clause.   ?C@6@6,/// The token representing the `if` keyword.   @D6@j@j/// The left parenthesis.   @~8@@/// The right parenthesis.   @mAAH/// The statement that is executed if the condition evaluates to `true`.    =&='=8=e=@=9=BA+A7A7  B`C' C'C4 ,/// Initializes a newly created for element.C;CJCI  CXCgCf  C{"CC  CCC  CCC  C*DD  DD$D#  D4+DUDT  	DuDiDwDDDDDDA!AA AAA'AA AABBB  B",BDBD B"B#BS(BkBk BSBTB$BB BBB"BB  B#BB  E\.ErEr   E\E]E[EE  EEE   ECFF   EEF4bF8F8  FDF\F[   FRFF   FFF9GG   FFG->GTGT   G-G.Go<GG   GoGpGBGG   GGGaGG  HHH   HZHxHx   HZH[IPJJ JJJJJ$J#  IIJPJaJa  JwJJ  J!JJ  JPJQKK#K#  K1K=K<  KK KԂGKK KKK  L0iLLG/// The `case` clause used to match a pattern against the [expression].   LM]M]/// The expression used to either determine which of the statements is
/// executed next or to compute the value matched against the pattern in the
/// `case` clause.   MlVMMD/// The node that is executed if the condition evaluates to `false`.   MSNNC/// The node that is executed if the condition evaluates to `true`.     NOO/// An if statement.
///
///    ifStatement ::=
///        'if' '(' [Expression] [CaseClause]? ')'[Statement]
///        ('else' [Statement])?   O'eOOG/// The `case` clause used to match a pattern against the [expression].   OvOOZ/// The token representing the `else` keyword, or `null` if there's no else
/// statement.   P
PPu/// The statement that is executed if the condition evaluates to `false`, or
/// `null` if there's no else statement.   PQaQa/// The expression used to either determine which of the statements is
/// executed next or to compute the value matched against the pattern in the
/// `case` clause.   QpQQ,/// The token representing the `if` keyword.   R6R'R'/// The left parenthesis.   R;8RbRb/// The right parenthesis.   RwgRRH/// The statement that is executed if the condition evaluates to `true`.    NNNNNNNR~RR  TU( U(U7 /// Initializes a newly created if statement.
///
/// The [elseKeyword] and [elseStatement] can be `null` if there's no else
/// clause.U>UMUL  U[UjUi  U~"UU  UUU  UUU  U$V U  VV!V   V1%VJVI  	VlV`VnVVVVVVS\!StSt S\S]S'SS SSSSS  S,SS SSS(TT SST+$TDTD T+T,TTTbTb  TuTT  W_.WuWu   W_W`W[WW  WWW   W?XX   WWX3bX7X7  XEXUXT   XXX   XXYA9Y`Y`   YAYBY~8YY   Y~YY6YY   YYY>ZZ   YYZ6aZ:Z:  ZHZWZV   ZZZ   ZZ\ER\T\T \[\[\[\^\m\l  \E\F\\\  \\\  \\ ]b^D^D/// The "implements" clause in an class declaration.
///
///    implementsClause ::=
///        'implements' [NamedType] (',' [NamedType])*   ^lS^^4/// The token representing the `implements` keyword.   ^`__:/// The list of the interfaces that are being implemented.    ]]^ ^-^^^
_'_3_3  _`( `(`< 2/// Initializes a newly created implements clause.`C`R`Q  `h'``   _)__ ___@__ _____`6``   ``aLaa   aa	aXFaa   aXaYaaa   aabkWbzbz bbbbbb  bkblbYbb  bbb  bb c#?dd/// An expression representing an implicit 'call' method reference.
///
/// Objects of this type aren't produced directly by the parser (because the
/// parser can't tell whether an expression refers to a callable type); they
/// are produced at resolution time.   d_eeB/// The expression from which a `call` method is being referenced.   e&ee\/// The element associated with the implicit `call` reference based on the
/// static types.  eeeeeeee܀fZfZc/// The type arguments being applied to the tear-off, or `null` if there are
/// no type arguments.   flgNgN/// The actual type arguments being applied to the tear-off, either explicitly
/// specified in [typeArguments], or inferred.
///
/// An empty list if the 'call' method doesn't have type parameters.    d*d+d<didDd=dFgdgpgp  hjKhj hjh  h"hh  hhh  h,hh  hii  i4i(i6iYiJi[ggg  g$gg  h,h-h- hhhC"h^h^ hChD	i:ii   iiiQjj   iijL9jkjk   jLjMjTjj  jjj   jrjj   jjkWfkk   kWkXkbkxkck|k}kFkk   kklall  ll4l3   lpll   lplqm
jmm m m m m#m2m1  m
mmxmm  mmm  mmm  mxmyn|nn  n"n.n-  nn nooہ/// An import directive.
///
///    importDirective ::=
///        [Annotation] 'import' [StringLiteral] ('as' identifier)?
///        [Combinator]* ';'
///      | [Annotation] 'import' [StringLiteral] 'deferred' 'as' identifier
///        [Combinator]* ';'   p{p~p~a/// The token representing the `as` keyword, or `null` if the imported names
/// aren't prefixed.   pq q d/// The token representing the `deferred` keyword, or `null` if the imported
/// URI isn't deferred.   qqqh/// The element associated with this directive, or `null` if the AST structure
/// hasn't been resolved.  qqqqqqqqKrr0/// The token representing the `import` keyword.   r-rrn/// Information about this import directive.
///
/// Returns `null` if the AST structure hasn't been resolved.  rrr׀sYsYg/// The prefix to be used with the imported names, or `null` if the imported
/// names aren't prefixed.    ooooooosdspsp  tfPv' v'v: /// Initializes a newly created import directive.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// function doesn't have the corresponding attribute.
///
/// The [deferredKeyword] can be `null` if the import isn't deferred.
///
/// The [asKeyword] and [prefix] can be `null` if the import doesn't specify a
/// prefix.
///
/// The list of [combinators] can be `null` if there are no combinators.
vAvQvP  v]vmvl  vzvv  vvv  vvv  vvv  vww  w%w6w5  wAwQwP  wawqwp  wwws%ss sss(t	t	 sst"t6t6 tttDtZtZ  wx	x	   wwwwwwwxIIx_x_   xIxJxxx   xxxxy8y?y?   yyyU]yYyY  y` ywyv   yyy   yy{KV{Z{Z {a{a{a{d{s{r  {K{L{{{  {{{  {{|f}}/// Returns `true` if the non-URI components of the two directives are
/// syntactically identical.
///
/// URIs are checked outside to see if they resolve to the same absolute URI,
/// so to the same library, regardless of the used syntax (absolute, relative,
/// not normalized). }}}  }}}    낥ii'/// Reference to an import prefix name.   DDt/// The element to which [name] is resolved.
///
/// Usually a [PrefixElement], but can be anything in invalid code.  3Pu/// The element to which [name] is resolved.
///
/// Usually a [PrefixElement2], but can be anything in invalid code.  ?11-/// The name of the referenced import prefix.   :T@/// The `.` that separates [name] from the following identifier.    %R-&/  \S\ \u  |      .. 9OO 9:)   l   P)ff   PQ}~   }~j '&   m5~~    mn Daad/// An index expression.
///
///    indexExpression ::=
///        [Expression] '[' [Expression] ']'   	E-/// The expression used to compute the index.    ̀/// Whether this expression is cascaded.
///
/// If it is, then the target of this expression isn't stored locally but is
/// stored in the nearest ancestor that is a [CascadeExpression].   a11I/// Whether this index expression is null aware (as opposed to non-null).   A5jj/// The left square bracket.   z/// The period (".." | "?..") before a cascaded index expression, or `null` if
/// this index expression isn't part of a cascade expression.   !rY/// The question mark before the left bracket, or `null` if there's no
/// question mark.   \5/// The expression used to compute the object being indexed.
///
/// If this index expression isn't part of a cascade expression, then this
/// is the same as [target]. If this index expression is part of a cascade
/// expression, then the target expression stored with the cascade expression
/// is returned.   7!!/// The right square bracket.   2==/// The expression used to compute the object being indexed, or `null` if this
/// index expression is part of a cascade expression.
///
/// Use [realTarget] to get the target independent of whether this is part of
/// a cascade expression.   Hs/// Returns `true` if this expression is computing a right-hand value (that
/// is, if this expression is in a context where the operator '[]' is
/// invoked).
///
/// Note that [inGetterContext] and [inSetterContext] aren't opposites, nor
/// are they mutually exclusive. In other words, it's possible for both
/// methods to return `true` when invoked on the same node.   ցs/// Returns `true` if this expression is computing a left-hand value (that is,
/// if this expression is in a context where the operator '[]=' is
/// invoked).
///
/// Note that [inGetterContext] and [inSetterContext] aren't opposites, nor
/// are they mutually exclusive. In other words, it's possible for both
/// methods to return `true` when invoked on the same node.   J%'I  S]/// Initializes a newly created index expression that is a child of a cascade
/// expression.        ,+  G@Iu`/// Initializes a newly created index expression that isn't a child of a
/// cascade expression.  #21  ?NM  ^wv    k~~ kl  ! #   $%% 6/// The element associated with the operator based on the static type of the
/// target, or `null` if the AST structure hasn't been resolved or if the
/// operator couldn't be resolved.((   /   /   T  	   W*ll   WX2   '   <   &EE   &'i   2==   SWWW  ^on   J33d/// The cascade that contains this [IndexExpression].
///
/// We expect that [isCascaded] is `true`.      C   >ZZ/// The parameter element representing the parameter to which the value of the
/// index expression is bound, or `null` if the AST structure is not resolved,
/// or the function being invoked is not known based on static type
/// information.   "V11 888;JI  "#|y   |}

          Xrii  w  XYe      7x--/// An instance creation expression.
///
///    newExpression ::=
///        ('new' | 'const')? [NamedType] ('.' [SimpleIdentifier])?
///        [ArgumentList]   bN-/// The list of arguments to the constructor.   U./// The name of the constructor to be invoked.   /// Whether this creation expression is used to invoke a constant constructor,
/// either because the keyword `const` was explicitly provided or because no
/// keyword was provided and this expression is in a constant context.   /// The `new` or `const` keyword used to indicate how an object should be
/// created, or `null` if the keyword isn't explicitly provided.        =/// Initializes a newly created instance creation expression.)(  5,SR  g&  ,  	*, $  (e4/// The type arguments associated with the constructor, rather than with the
/// class in which the constructor is defined.
///
/// It's always an error if there are type arguments because Dart doesn't
/// currently support generic constructors, but we capture them in the AST in
/// order to recover better.   ?   h     bKxx   bcH   a  &%   b9xx   bc   ?a7/// Whether this is an implicit constructor invocation.   <   {??4/// The type arguments associated with the constructor, rather than with the
/// class in which the constructor is defined.
///
/// It's always an error if there are type arguments because Dart doesn't
/// currently support generic constructors, but we capture them in the AST in
/// order to recover better.   cqgg  u#   ؀   g   6GG  Yji  s}|  67  
   1/// An integer literal expression.
///
///    integerLiteral ::=
///        decimalIntegerLiteral
///      | hexadecimalIntegerLiteral
///
///    decimalIntegerLiteral ::=
///        decimalDigit+
///
///    hexadecimalIntegerLiteral ::=
///        '0x' hexadecimalDigit+
///      | '0X' hexadecimalDigit+   8<ll'/// The token representing the literal.   x/// The value of the literal, or `null` when [literal] doesn't represent a
/// valid `int` value, for example because of overflow.        0/// Initializes a newly created integer literal.      c{{ cd +,AA   +,[*qq   [\/// Whether this literal's [parent] is a [PrefixExpression] of unary negation.
///
/// Note: this does *not* indicate that the value itself is negated, just that
/// the literal is the child of a negation operation. The literal value itself
/// is always positive.   :dXX   :;U     /.  8BA  _            /// Whether the given [source] is a valid lexeme for an integer
/// literal.
///
/// The flag [isNegative] should be `true` if the lexeme is preceded by a
/// unary negation operator.      3m99/// Suggests the nearest valid double to a user.
///
/// If the integer they wrote requires more than a 53 bit mantissa, or more
/// than 10 exponent bits, do them the favor of suggesting the nearest integer
/// that would work for them. LTS    Ǥȇȇ/// A node within a [StringInterpolation].
///
///    interpolationElement ::=
///        [InterpolationExpression]
///      | [InterpolationString]     9:KxSLUȳ`       /// An expression embedded in a string interpolation.
///
///    interpolationExpression ::=
///        '$' [SimpleIdentifier]
///      | '$' '{' [Expression] '}'   JrʱʱS/// The expression to be evaluated for the value to be converted into a
/// string.   ˍˍ/// The token used to introduce the interpolation expression.
///
/// This will either be `$` if the expression is a simple identifier or `${`
/// if the expression is a full expression.   ˝|_/// The right curly bracket, or `null` if the expression is an identifier
/// without brackets.    ɸɹ))  > >Y 9/// Initializes a newly created interpolation expression.`on  "͘͗  ͧͶ͵  ̑#̩̩ ̑̒̹  % 0$$   BGXX   BC΍9άά   ΍Ύ^     ,JJ   ,-d 	  XYii  wЃЂ  XY еyym/// A non-empty substring of an interpolated string.
///
///    interpolationString ::=
///        characters   ѱF0/// The characters that are added to the string.   K::4/// The offset of the after-last contents character.   JI҄҄//// The offset of the first contents character.   җ1/// The value of the literal.    #$5b=6?̄  z  a/// Initializes a newly created string of characters that are part of a string
/// interpolation.  )(   8 PP 89]pp ]^8-NN   89i>}}   ijԫLԿԿ   ԫԬ+   *RNN   *+Հf՞՞   ՀՁ    ֻZ   ֻּ5**  8DC   RdII/// The invocation of a function or method.
///
/// This will either be a [FunctionExpressionInvocation], [MethodInvocation],
/// or a [DotShorthandInvocation].   xIشش(/// The list of arguments to the method.   Łp,,A/// The expression that identifies the function or method being invoked.
///
/// For example:
///
/// ```dart
/// (o.m)<TArgs>(args); // target is `o.m`
/// o.m<TArgs>(args);   // target is `m`
/// ```
///
/// In either case, the `function.staticType` is the [staticInvokeType] before
/// applying type arguments `TArgs`.   9ށ/// The function type of the invocation based on the static type information,
/// or `null` if the AST structure hasn't been resolved, or if the invoke
/// couldn't be resolved.
///
/// This is usually a [FunctionType], but it can also be `dynamic` or
/// `Function`. In the case of interface types that have a `call` method, we
/// store the type of that `call` method here as parameterized.   ܁܁s/// The type arguments to be applied to the method being invoked, or `null` if
/// no type arguments were provided.   ܓ!ݢݢ/// The actual type arguments of the invocation, either explicitly specified
/// in [typeArguments], or inferred, or `null` if the AST structure hasn't
/// been resolved.
///
/// An empty list if the [function] doesn't have type parameters.    2ݸ  ƁB  +/// Initializes a newly created invocation.,32  E&`_  ߄u߆߫ߝ߭..  @$VV  i-ޅޅ ijޛ&ޱޱ ޛޜ?--   OhSS  `rq   F   q		  #.-     z55d/// An is expression.
///
///    isExpression ::=
///        [Expression] 'is' '!'? [TypeAnnotation]   \eH/// The expression used to compute the value whose type is being tested.   ,/// The is operator.   aJJG/// The not operator, or `null` if the sense of the test isn't negated.   Z9/// The type being tested for.    㗆  s  ~/// Initializes a newly created is expression.
///
/// The [notOperator] can be `null` if the sense of the test isn't negated."('  7FE  Udc  t     " -$FF -.Vii  ;**   S1ii   ST9   ^     '?BB   '(j1   jkJ        S    11  CTS  ]gf   !t     4/y/// A label on either a [LabeledStatement] or a [NamedExpression].
///
///    label ::=
///        [SimpleIdentifier] ':'   !Mhh:/// The colon that separates the label from the statement.   rp/// The fragment declared by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved.   P[[2/// The label being associated with the statement.    e11u/// A statement that has a label associated with them.
///
///    labeledStatement ::=
///       [Label]+ [Statement]   [Q3/// The labels being associated with the statement.   X=/// The statement with which the labels are being associated.        
 2/// Initializes a newly created labeled statement.+*  6 NM  j_lg8   ǀ   Y6oo   YZ:   6   Y  ('   h@   hi񬀊   :WII PPPSba  :;u       󏀯  &/// Initializes a newly created label.#     Mbb  m mnB6XX   BC|q   |}(   5BB   VPZZ  `vu   }   +L:: AAADSR  +,{T    {| Ӄs/// A library directive.
///
///    libraryDirective ::=
///        [Annotation] 'library' [LibraryIdentifier]? ';'   N   怟/// The element associated with this directive.
///
/// Returns `null` if the AST structure hasn't been resolved or if this
/// directive couldn't be resolved.  M111/// The token representing the `library` keyword.   DJ*/// The name of the library being defined.   C,/// The semicolon terminating the directive.    GHYaZcم  e ey /// Initializes a newly created library directive.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// directive doesn't have the corresponding attribute.      $    +%-4&LL 45_vv  ! Wl   WXbyc}~`   +,AA   +,[Jqq   [\N     6""   5SS   56W 			  Nv__  myx  NO ȁQ  z/// The identifier for a library.
///
///    libraryIdentifier ::=
///        [SimpleIdentifier] ('.' [SimpleIdentifier])*    R%/// The components of the identifier.     C D U  ] V _3''  ŀ  4/// Initializes a newly created prefixed identifier..=<   yG <   M   *00   D8ZZ   DE   9<TT   9:y   yzX &&&)87  l}}      lmY     P&hh/// A list literal.
///
///    listLiteral ::=
///        'const'? [TypeAnnotationList]? '[' elements? ']'
///
///    elements ::=
///        [CollectionElement] (',' [CollectionElement])* ','?   pD/// The syntactic elements used to compute the elements of the list.   	5	-	-/// The left square bracket.   	=7	g	g/// The right square bracket.    $Q,%.	x		  
d{ { /// Initializes a newly created list literal.
///
/// The [constKeyword] can be `null` if the literal isn't a constant.
///
/// The [typeArguments] can be `null` if no type arguments were declared.
///
/// The list of [elements] can be `null` if the list is empty.      -  &54   	#		 			F

 
&
2
3
4
5
;$
S
S 
;
<{   {|J   /   HH   	R 			  IZZ  l}|    IJy     a 55}/// A list pattern.
///
///    listPattern ::=
///        [TypeArgumentList]? '[' [DartPattern] (',' [DartPattern])* ','? ']'   \N!/// The elements in this pattern.   5/// The left square bracket.   瀪/// The required type, specified by [typeArguments] or inferred from the
/// matched value type, or `null` if the node isn't resolved yet.   7/// The right square bracket.   ЀQQf/// The type arguments associated with this pattern, or `null` if no type
/// arguments were declared.    c!/// An element of a list pattern.     ]       \hh         .&%  3BA   5 # G88 DPQRSY$qq YZ" M   G..   H/^^   HI{J   {|ɀ   R   a++  @QP  {W      {|z      TT/// A node that represents a literal expression.
///
///    literal ::=
///        [BooleanLiteral]
///      | [DoubleLiteral]
///      | [IntegerLiteral]
///      | [ListLiteral]
///      | [NullLiteral]
///      | [RecordLiteral]
///      | [SetOrMapLiteral]
///      | [StringLiteral]
///      | [SymbolLiteral]
///      | [TypedLiteral]     &&    `<{{   `a  Bm/// Additional information about local variables within a function or method
/// produced at resolution time.  *v/// The set of local variables and parameters that are potentially mutated
/// within the scope of their declarations.   䁓  g/// A logical-and pattern.
///
///    logicalAndPattern ::=
///        [DartPattern] '&&' [DartPattern]    8  /// The left sub-pattern.   !,!.!./// The `&&` operator.   !;:!h!h/// The right sub-pattern.     L M ^  f _ h!yO!!  "b"b "b"w  "~""  """  """   !-!! !!"
 """" "
""/."Q"Q "/"0#(;#>#>   #(#)#g8#}#}   #g#h#M##   ###$$   ##$X$$ $$$$$$  $$%%)%)  %>%O%N  %%%`&&  &&&&%  &:&N&M  %%'K{'\'\  'j'v'u  'K'L 'ʁ((e/// A logical-or pattern.
///
///    logicalOrPattern ::=
///        [DartPattern] '||' [DartPattern]   (8((/// The left sub-pattern.   (,))/// The `||` operator.   ):)K)K/// The right sub-pattern.    (0(1(B(o(J(C(L)\)h)h  *C*C *C*W  *^*m*l  *}**  ***   )-)) ))) ** ))*.*2*2 **+;++   ++	+G8+]+]   +G+H+L++   +++Ӏ++   ++,W,, ,,,,,,  ,,,--  ----,  ,,-ā--  -..  ..+.*  --/m{/~/~  ///  /m/n /00/// A single key/value pair in a map literal.
///
///    mapLiteralEntry ::=
///        '?'? [Expression] ':' '?'? [Expression]   0^1M1MH/// The expression computing the key with which the value is associated.   1Uo11S/// The question prefix for the key that may present in null-aware map
/// entries.   1K2	2	4/// The colon that separates the key from the value.   2_2p2pG/// The expression computing the value that is associated with the key.   2zs22U/// The question prefix for the value that may present in null-aware map
/// entries.    0l0m0~00002w22  3T43 434F 2/// Initializes a newly created map literal entry.4M4\4[  4l44  444  444  444  4445553R$3k3k 3R3S3{33  3!33 333&33 33333  5VC5l5l   5V5W5255   555+55   556H66  6
66   6N/6m6m   6N6O6T66  666   6ـ66   667V77 777777  77808A8A  8W8h8g  8q!88  80818n9	9	  99#9"  88 9j:O:O/// A map pattern.
///
///    mapPattern ::=
///        [TypeArgumentList]? '{' [MapPatternEntry] (',' [MapPatternEntry])*
///        ','? '}'   :uM::!/// The elements in this pattern.   :4::/// The left curly bracket.   :c;T;TE/// The matched value type, or `null` if the node isn't resolved yet.   ;e6;;/// The right curly bracket.   ;< < f/// The type arguments associated with this pattern, or `null` if no type
/// arguments were declared.    99::8:::<2<< /// An element of a map pattern.     <S<T<e<<m<f<o<O<<       ===g/// An entry in a map pattern.
///
///    mapPatternEntry ::=
///        [Expression] ':' [DartPattern]   >V>e>e@/// The expression computing the key of the entry to be matched.   >mK>>4/// The colon that separates the key from the value.   >A>>(/// The pattern used to match the value.    =======???  ?ـ? ??  ?@@  @@#@"  @1@@@?  @R@M@T?o?~?~  ?!?? ???'?? ??@3@@   @@@1@@   @@A+A#A#   AAA3BA7A7  A;AKAJ   AyAA   AyAzB!VB0B0 B7B7B7B:BIBH  B!B"B{lBB  BBB  B{B| BrBB  D5D5 D5DC  DJDYDX  DkDzDy  D-DD  DDD   C85C`C` C8C9Cr#CC CrCsCFCC CCCCCC$CC CCD"D$D$ DDE6MELEL   E6E7EFEE   EEE/EE   EEFJF&F&   FFFRFpFp   FRFSGIQGXGX G_G_G_GbGqGp  GIGJGwGG  GGG  GGJJ3J3  JGJXJW  JlJJ  JJJzJJ  K KK  JJ K_MMA/// A method declaration.
///
///    methodDeclaration ::=
///        methodSignature [FunctionBody]
///
///    methodSignature ::=
///        'external'? ('abstract' | 'static')? [Type]? ('get' | 'set')?
///        methodName [TypeParameterList] [FormalParameterList]
///
///    methodName ::=
///        [SimpleIdentifier]
///      | 'operator' [SimpleIdentifier]
///
/// Prior to the 'extension-methods' experiment, these nodes were always
/// children of a class declaration. When the experiment is enabled, these nodes
/// can also be children of an extension declaration.   N$ENZNZ(/// The token for the `augment` keyword.   Nm4NN/// The body of the method.   NaNN   NNNNNNNO
EO>O>   O
OOOOSzOOZ/// The token for the `external` keyword, or `null` if the constructor isn't
/// external.   OTPP=/// Whether this method is declared to be an abstract method.   P)?P_P_*/// Whether this method declares a getter.   PlDPP-/// Whether this method declares an operator.   P?PP*/// Whether this method declares a setter.   POQ=Q=:/// Whether this method is declared to be a static method.   QJQQo/// The token representing the `abstract` or `static` keyword, or `null` if
/// neither modifier was specified.   Q-RR/// The name of the method.   RRRl/// The token representing the `operator` keyword, or `null` if this method
/// doesn't declare an operator.   RSS^/// The parameters associated with the method, or `null` if this method
/// declares a getter.   S)SSǀ/// The token representing the `get` or `set` keyword, or `null` if this is a
/// method declaration rather than a property
/// declaration.   SnT>T>L/// The return type of the method, or `null` if no return type was declared.   TMTTi/// The type parameters associated with this method, or `null` if this method
/// isn't a generic method.    MMMMMMMT勄TT  WwWw WwW  WWW  WWW  WWW  WWW  XX X  X4XCXB  XRXaX`  XuXX  XXX  XXX  XXX  XXX   Ug'UU UgUhU(UU UUU(UU UUU0VV UUV"(V;V; V"V#VO(VhVh VOVPV|VV V|V}V7VV VVV5WW VVW'W6W6 WWW?3WbWb W?W@	YyYY   YYYYYYYZ0Z'Z'   ZZZEZ[Z[   ZEZF[W[l[l   [W[X\I\\   \\	\U;\j\j   \U\V\I\\   \\\L\\   \\]1]O]O   ]1]2_0X_?_? _F_F_F_I_X_W  _0_1___  ___  __ `kbqbq/// The invocation of either a function or a method.
///
/// Invocations of functions resulting from evaluating an expression are
/// represented by [FunctionExpressionInvocation] nodes. Invocations of getters
/// and setters are represented by either [PrefixedIdentifier] or
/// [PropertyAccess] nodes.
///
///    methodInvocation ::=
///        ([Expression] '.')? [SimpleIdentifier] [TypeArgumentList]?
///        [ArgumentList]   bÀcc/// Whether this expression is cascaded.
///
/// If it is, then the target of this expression isn't stored locally but is
/// stored in the nearest ancestor that is a [CascadeExpression].   cbccJ/// Whether this method invocation is null aware (as opposed to non-null).   dLdFdF)/// The name of the method being invoked.   dU0e|e|/// The operator that separates the target from the method name, or `null` if
/// there's no target.
///
/// In an ordinary method invocation this is either a period (`.`) or a
/// null-aware opertator (`?.`). In a cascade section this is the cascade
/// operator ('..').   eFffā /// The expression used to compute the receiver of the invocation.
///
/// If this invocation isn't part of a cascade expression, then this is the
/// same as [target]. If this invocation is part of a cascade expression,
/// then the target stored with the cascade expression is returned.   fӁgh3h3C/// The expression producing the object on which the method is defined, or
/// `null` if there's no target (that is, the target is implicitly `this`) or
/// if this method invocation is part of a cascade expression.
///
/// Use [realTarget] to get the target independent of whether this is part of
/// a cascade expression.    bbb-bZb5b.b7h>ihJhJ  ij1 j1jE z/// Initializes a newly created method invocation.
///
/// The [target] and [operator] can be `null` if there's no target.jLjfje  jqjj  j(jj  jjj  jjj  k
kkk(kk*hhh  hhh hhi ii  i*iic/// The invoke type of the [methodName] if the target element is a getter,
/// or `null` otherwise. k~kk   k~klY9lolo   lYlZl6ll   lllЀll   llmmm   mmn?nn   nnndnn  nnn   o7pp/// The invoke type of the [methodName].
///
/// If the target element is a [MethodElement2], this is the same as the
/// [staticInvokeType].
///
/// If the target element is a getter, presumably returning an
/// [ExecutableElement2] so that it can be invoked in this [MethodInvocation],
/// then this type is the type of the getter, and the [staticInvokeType] is
/// the invoked type of the returned element.   q+Xq/q/  q>qIqH   q<qq   qqqǀqq   qqrQ2rqrq   rQrRrWrr  rrr   rJsgsgd/// The cascade that contains this [IndexExpression].
///
/// We expect that [isCascaded] is `true`.   t0tNtN   t0t1u;CuTuT   u;u<uWuu uuuuuu  uuu݀uu  v vv  vv$v#  uuv}vv  vvv  v}v~w@ewQwQ  wfwrwq  w@wA wx>x>>/// An expression that implicitly makes reference to a method.   xryyR/// The element associated with the expression based on the static types.
///
/// Returns`null` if the AST structure hasn't been resolved, or there's no
/// meaningful element to return. The latter case can occur, for example, when
/// this is a non-compound assignment expression, or when the method referred
/// to couldn't be resolved.  yyz{{Q/// The element associated with the expression based on the static types, or
/// `null` if the AST structure hasn't been resolved, or there's no meaningful
/// static element to return. The latter case can occur, for example, when
/// this is a non-compound assignment expression, or when the method referred
/// to couldn't be resolved.  {]{^{h{~{i wwwx'xwx{c||/// The declaration of a mixin.
///
///    mixinDeclaration ::=
///        'base'? 'mixin' name [TypeParameterList]?
///        [OnClause]? [ImplementsClause]? '{' [ClassMember]* '}'   |\}<}<?/// The `augment` keyword, or `null` if the keyword was absent.   }OV}}</// The `base` keyword, or `null` if the keyword was absent.   }\}}   }}}}}}}~	@~8~8   ~	~
~~~M~~g/// The `implements` clause for the mixin, or `null` if the mixin doesn't
/// implement any interfaces.   ~4/// The left curly bracket.   J^^%/// The members defined by the mixin.   jI//// The token representing the `mixin` keyword.   33d/// The on clause for the mixin, or `null` if the mixin doesn't have any
/// superclass constraints.   @6ii/// The right curly bracket.   zc/// The type parameters for the mixin, or `null` if the mixin doesn't have any
/// type parameters.    |^|_|p||x|q|z"  9           ,;:  L\[  ets        &  !    
' $ $ 7BB U-zz UV8 # J &2345;$SS ;<d. det$$   L/bb   LMw      W   J[[  iut  JK 0r/// The "on" clause in a mixin declaration.
///
///    onClause ::=
///        'on' [NamedType] (',' [NamedType])*   CWW,/// The token representing the `on` keyword.   evE/// The list of the classes are superclass constraints for the mixin.    ߃       2   .!FF ./TKvv `.vv   `aO   b   K   KLT)) 0003BA  rd    rs ځ'N/// A node that declares a single name within the scope of a compilation unit.   <*/// The name of the member being declared.    )*;hC<E  Ox x /// Initializes a newly created compilation unit member with the given [name].
///
/// Either or both of the [comment] and [metadata] can be `null` if the member
/// doesn't have the corresponding attribute.           /// An expression that has a name associated with it.
///
/// They are only used in method invocations when there are named parameters.
///
///    namedExpression ::=
///        [Label] [Expression]   :EE/// The element representing the parameter being named by this expression, or
/// `null` if the AST structure hasn't been resolved or if there's no
/// parameter with the same name as this expression.  	
+QWW/// The element representing the parameter being named by this expression.
///
/// Returns `null` if the AST structure hasn't been resolved or if there's no
/// parameter with the same name as this expression.  +,dR5/// The expression with which the name is associated.   >,/// The name associated with the expression.    [  	  1/// Initializes a newly created named expression.  "  & (B6DV``  jyy  
5   z   M{   MN]^7   9&&   D^HH  Scb   (   M     #9>>   #$`~~   `aV   BSS  evu    BCt      YX??/// A named type, which can optionally include type arguments.
///
///    namedType ::=
///        [ImportPrefixReference]? name typeArguments?   gzz/// The element of [name2] considering [importPrefix] for example a
/// [ClassElement2], or [TypeAliasElement2], or `null` if [name2] can't be
/// resolved, or there's no element for the type name, such as for `void`.  GHRiSD/// The element of [name2] considering [importPrefix].
///
/// This could be a [ClassElement2], [TypeAliasElement2], or other type defining
/// element.
///
/// Returns `null` if [name2] can't be resolved, or there's no element for the
/// type name, such as for `void`.  Y./// The optional import prefix before [name2].   +??/// Whether this type is a deferred type.
///
/// A deferred type is a type that is referenced through an import prefix
/// (such as `p.T`), where the prefix is used by a deferred import.
///
/// Returns `false` if the AST structure hasn't been resolved.   N,tt/// The name of the type.   ~/// The type being named, or `null` if the AST structure hasn't been resolved,
/// or if this is part of a [ConstructorReference].  (^/// The type arguments associated with the type, or `null` if there are no
/// type arguments.    (  kw w t/// Initializes a newly created type name.
///
/// The [typeArguments] can be `null` if there are no type arguments.0      
	   (  .FF ./P.vv PQ`a/ !  kF   klk   $O::   $%wW   wxo      EZZ   EFKO``   KL   P        ViGG/// A node that represents a directive that impacts the namespace of a library.
///
///    directive ::=
///        [ExportDirective]
///      | [ImportDirective]   {oG/// The combinators used to control how names are imported or exported.   ggX/// The configurations used to control which library is actually loaded at
/// run-time.   zC,/// The semicolon terminating the directive.    8h  q  /// Initializes a newly created namespace directive.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// directive doesn't have the corresponding attribute.
///
/// The list of [combinators] can be `null` if there are no combinators."!  .>=  K[Z  c0  *     )HOO amnopvB ! XI   XYR   ,     +p/// The "native" clause in an class declaration.
///
///    nativeClause ::=
///        'native' [StringLiteral]   Whh</// The name of the native object that implements the class.   qK0/// The token representing the `native` keyword.      e  ./// Initializes a newly created native clause.     %%% 7)\\ 782!!   APWW   AB   $S33 :::=LK  $%{S    {| ҂zЀ/// A function body that consists of a native keyword followed by a string
/// literal.
///
///    nativeFunctionBody ::=
///        'native' [SimpleStringLiteral] ';'   iZZN/// The token representing 'native' that marks the start of the function body.   lnU/// The token representing the semicolon that marks the end of the function
/// body.   l<<H/// The string literal representing the string after the 'native' token.    z{NlZZ  &Q  v/// Initializes a newly created function body consisting of the 'native'
/// token, a string literal, and a semicolon.  )    =.?% !   !  {2   {|,   C   (n,,  : NM      bYqq xxx{  bc       []ll  z  [\ EE2/// A list of AST nodes that have a common parent.NNN  x}b/// The first token included in this node list's source range, or `null` if
/// the list is empty.   zjja/// The last token included in this node list's source range, or `null` if the
/// list is empty.   wR    wxY  D/// The node that is the parent of each of the elements in the list.   *n/// Returns the node at the given [index] in the list or throw a [RangeError]
/// if [index] is out of bounds. 	  gD/// Use the given [visitor] to visit each of the nodes in this list. %$   1Lnn  r	ut  12<Y=]^Z¾¾    ©­®E   (Zee  l	qp  w	zy  ()3P4TUÆN  	  ÆÇÑîÒòó.	؋ |   /// Initializes a newly created list of nodes such that all of the nodes that
/// are added to the list have their parent set to the given [owner].!.-  =6?I^ŖŢţŤţJ/// Create a partially initialized instance, [_initialize] must be called.  9PP  [nn  ū   ūŬ0GG   01/   
FF  MRQ  
267ǜ,ǸǸ   ǜǝ	̀  	  ȓ ȭȭ  ȱ	ȶȵ  ȼȿȾ  ȓȔɗɨɨ  ɯɻɺ  ɗɘ@}}  ʁ	ʄʃ  @AKhLlm̀		    fˣˣ   fgqˎr˒˓뀖((  /	43  :	=<  ̅̿̿  	  ̅̆̐̭̑̱̲bbG/// Set the [owner] of this container, and populate it with [elements]. n{z  ́͋͊    ^/// A formal parameter that is required (isn't optional).
///
///    normalFormalParameter ::=
///        [FunctionTypedFormalParameter]
///      | [FieldFormalParameter]
///      | [SimpleFormalParameter]     Taa  Z 1 /// Initializes a newly created formal parameter.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// parameter doesn't have the corresponding attribute.8ON  ['{z  ҈җҖ  ҬһҺ     ) ($$ 8QQ 89*c@@   *+ӑӯӯ   ӑӒNll   NO""  0<;   !9X/// A null-assert pattern.
///
///    nullAssertPattern ::=
///        [DartPattern] '!'   (/// The `!` token.   )/PP/// The sub-pattern.    z{֌ֹ֔֍֖\hh  w #  *98  ETS   ׻) ׻׼  ؉7؟؟   ؉؊+   J   APff   ABٕٳٳ   ٕٖ%X44 ;;;>ML  %&ځږږ  ګڼڻ  ځڂxmےے  ۦ۷۶    xyU     Bo/// A null-aware element in a list or set literal.
///
///    <nullAwareExpressionElement> ::= '?' <expression>   :Bss,/// The question mark before the expression.   ހcK/// The expression computing the value that is associated with the element.    ݲݳ]  ߉߿ ߿ 3/// Initializes a newly created null-aware element.    #%J bb JKo~~  Q-gg   QR2   /   T     Caa   CDW   %66  L]\  f!  %&T     F6V/// A null-check pattern.
///
///    nullCheckPattern ::=
///        [DartPattern] '?'   (>>/// The `?` token.   K/rr/// The sub-pattern.    ~  .v. .B  IXW  dsr   ) 	 !! 	
7   +   J44   `P   `a洀   DWSS ZZZ]lk  DE矀    藁n      	U  (43  	
 bK/// A null literal expression.
///
///    nullLiteral ::=
///        'null'   '<[['/// The token representing the literal.    gss  b  -/// Initializes a newly created null literal.+*    <,RR   <=l*   lmd   R *)  Xii  {    XY_     VcM/// Abstract interface for expressions that may participate in null-shorting.   ,E/// The expression that terminates any null shorting that might occur in this
/// expression.
///
/// This might be called regardless of whether this expression is itself
/// null-aware.
///
/// For example, the statement `a?.b[c] = d;` contains the following
/// null-shortable subexpressions:
/// - `a?.b`
/// - `a?.b[c]`
/// - `a?.b[c] = d`
///
/// Calling [nullShortingTermination] on any of these subexpressions yields
/// the expression `a?.b[c] = d`, indicating that the null-shorting induced by
/// the `?.` causes the rest of the subexpression `a?.b[c] = d` to be skipped.    ]'**v/// An object pattern.
///
///    objectPattern ::=
///        [Identifier] [TypeArgumentList]? '(' [PatternField] ')'   S\7/// The patterns matching the properties of the object.   6/// The left parenthesis.   8/// The right parenthesis.   )Y}}C/// The name of the type of object from which values are extracted.    )         &  -,   ? '55 I(aa IJv$ vw4   3   =((   >J``   >?   }T   }~Հ          ?nPP  ^ji  ?@  n nf/// A parenthesized expression.
///
///    parenthesizedExpression ::=
///        '(' [Expression] ')'    G  */// The expression within the parentheses.    6/// The left parenthesis.   %8LL/// The right parenthesis.       * W 2 + 4amm  C  9/// Initializes a newly created parenthesized expression.  "    !'   (.. W4mm   WX3   9   ^  "!   e<   ef9        d   //  ARQ  [ed  Y     "a/// A parenthesized pattern.
///
///    parenthesizedPattern ::=
///        '(' [DartPattern] ')'   	
6	0	0/// The left parenthesis.   	DB	~	~'/// The pattern within the parentheses.   	8		/// The right parenthesis.    	Ɔ		  

 

  


  
     
+'
C
C 
+
,
W)
y
y 
W
X
(

 

[4qq   [\3   J   44   P   $BB   $%a   \qq    \]6..  BSR  g{z  NU__  myx  NO cce/// A part directive.
///
///    partDirective ::=
///        [Annotation] 'part' [StringLiteral] ';'   rD/// The configurations that control which file is actually included.   NNN   	-12Zl/// Information about this part directive.
///
/// Returns `null` if the AST structure hasn't been resolved.  G99./// The token representing the `part` keyword.   IC,/// The semicolon terminating the directive.    L' )  O O` /// Initializes a newly created part directive.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// directive doesn't have the corresponding attribute.gwv        0     # SGG Xdefgm! mno   opz{,   (G>>   ()s]   stԀ   T   ~&&  4@?   RZZl/// A part-of directive.
///
///    partOfDirective ::=
///        [Annotation] 'part' 'of' [Identifier] ';'   DD/// The name of the library that the containing compilation unit is part of,
/// or `null` if no name was given (typically because a library URI was
/// provided).   TC,/// The token representing the `of` keyword.   G./// The token representing the `part` keyword.   C,/// The semicolon terminating the directive.   -〞/// The URI of the library that the containing compilation unit is part of, or
/// `null` if no URI was given (typically because a library name was provided).    C   7  /// Initializes a newly created part-of directive.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// directive doesn't have the corresponding attribute.       -<;  Jgf  o+    D#\\ DEl! lm  #  !  7, M M    7 8 gG } }    g h C        j    !	"!!!    !g/!!   !g!h!F!!  !!!   !""   !!"V"" # # # ###  ""#D#U#U  #c#o#n  #D#E #$$d/// A pattern assignment.
///
///    patternAssignment ::=
///        [DartPattern] '=' [Expression]   $R%%>/// The equal sign separating the pattern from the expression.   %O%a%a2/// The expression that is matched by the pattern.   %pG%%,/// The pattern that matches the expression.    $E$F$W$$_$X$a%T%%  '%'% '%':  'A'P'O  '\'k'j  'v"''  '''&&1&1 &&&<&K&K  &[)&}&} &[&\&''w/// The pattern type schema, used for downward inference of [expression];
/// or `null` if the node isn't resolved yet. (7((   (((>6(T(T   (>(?(x9((   (x(y(^((  (((   )))   )))瀰**   ))*X** ******  ***++  ++++*  +4+>+=  **+u++  +++  ++ ,,,t/// A field in an object or record pattern.
///
///    patternField ::=
///        [PatternFieldName]? [DartPattern]   - ../// The effective name of the field, or `null` if [name] is `null` and
/// [pattern] isn't a variable pattern.
///
/// The effective name can either be specified explicitly by [name], or
/// implied by the variable pattern inside [pattern].   .../// The element referenced by [effectiveName], or `null` if not resolved yet,
/// non-`null` inside valid [ObjectPattern]s, always `null` inside
/// [RecordPattern]s.  ...../00/// The element referenced by [effectiveName].
///
/// Returns `null` if the AST structure is not resolved yet.
///
/// Returns non-`null` inside valid [ObjectPattern]s; always returns `null`
/// inside [RecordPattern]s.  //0f0z0zH/// The name of the field, or `null` if the field is a positional field.   0X00=/// The pattern used to match the corresponding record field.    ,,,,,,,0߄v00  1|1 11  111  111   1,1B1B 1,1-1O,1w1w 1O1P1)11 112.K2D2D   2.2/2}22   2}2~3^l33   3^3_3i33j333333   3344#4#   444S44 444444  444p44  555  44 5WT66n/// A field name in an object or record pattern field.
///
///    patternFieldName ::=
///        [Token]? ':'   6D46r6r!/// The colon following the name.   6|-66/// The name of the field.    5556555666  7J@7J 7J7^  7`7o7n  7t77   777 777(7A7A 7(7)7277   777(77   77788   778uW88 888888  8u8v8_88  888  88 93Z::/// A pattern variable declaration.
///
///    patternDeclaration ::=
///        ( 'final' | 'var' ) [DartPattern] '=' [Expression]   :ER::>/// The equal sign separating the pattern from the expression.   :O::2/// The expression that is matched by the pattern.   :R;8;8=/// The `var` or `final` keyword introducing the declaration.   ;DG;;,/// The pattern that matches the expression.    9999999;;;  =7= ==  ===  ===  =>>   >">%>$  >4>D>C  >P>`>_  >|>p>~<<< <<<%<4<4  <D<\<\ <D<E<h)<< <h<i<==w/// The pattern type schema, used for downward inference of [expression];
/// or `null` if the node isn't resolved yet. =2`==$/// Variables declared in [pattern]. >6>>   >>?9?+?+   ???I^?M?M  ?X?h?g   ???(/// If [keyword] is `final`, returns it.   @PC@f@f   @P@Q@@@   @@AngA}A} AAAAAA  AnAoAـAA  ABB  AA BtCFCF{/// A pattern variable declaration statement.
///
///    patternDeclaration ::=
///        [PatternVariableDeclaration] ';'   CJCC/// The pattern declaration.   CCD
D
,/// The semicolon terminating the statement.    BBCC/C
CCDVD$D$  E E  E E'  E.E=E<  EME\E[   D<DD DDD!DD DDE;EE   EEE,EE   EEFF#F#   FFFpFF FFFFFF  FFGYG$G$  G2G>G=  GG GpQH'H'`/// A postfix unary expression.
///
///    postfixExpression ::=
///        [Expression] [Token]   HɁIIр/// The element associated with the operator based on the static type of the
/// operand, or `null` if the AST structure hasn't been resolved, if the
/// operator isn't user definable, or if the operator couldn't be resolved.  IIITJ)J):/// The expression computing the operand for the operator.   J5LJxJx6/// The postfix operator being applied to the operand.   J:KK/// The element associated with the operator based on the static type of the
/// operand, or `null` if the AST structure hasn't been resolved, if the
/// operator isn't user definable, or if the operator couldn't be resolved.  KmKnKxKKyKK GGGHGGGKÈKK  LрM MM 3/// Initializes a newly created postfix expression.M#M<M;  MHMWMV  MpMgMrLhLwLw  L LL LLL#LL LL	M8MM   MMM+MM   MMN3N,N,   NNNDXNHNH  NPN`N_   N<NN   NNNiO%O%   NNNONOOOMOkOk   OMONOCOO   OOPQ*Q*/// The parameter element representing the parameter to which the value of the
/// operand is bound, or `null` ff the AST structure is not resolved or the
/// function being invoked isn't known based on static type information.   RXRR RRRRRR  RRRSS  S"S3S2  S<SFSE  RS SVSS  SSS  SSSeTT  T T,T+  SS TcUU/// An identifier that is prefixed or an access to an object property where the
/// target of the property access is a simple identifier.
///
///    prefixedIdentifier ::=
///        [SimpleIdentifier] '.' [SimpleIdentifier]   UEVV"/// The identifier being prefixed.   VW$W$/// Whether this type is a deferred type.
///
/// A deferred type is a type that is referenced through an import prefix
/// (such as `p.T`), where the prefix is used by a deferred import.
///
/// Returns `false` if the AST structure hasn't been resolved.   W3SWW?/// The period used to separate the prefix from the identifier.   WmWWN/// The prefix associated with the library in which the identifier is defined.    UDUEUVUU^UWU`WXX  XāBX XY 4/// Initializes a newly created prefixed identifier.Y$Y7Y6  YBYQYP  Y\(Y{Yz  YYYYYYX[XpXp  X|XX X|X}X XX  Z
7Z Z    Z
ZZEGZ_Z_   ZEZFZ7ZZ   ZZZ?ZZ   ZZ[d[[  [[3[2   [v[[   [v[w\FE\]\]   \F\G\<\\   \\\7\\   \\]
\]]  ]]+]*   ]j]]   ]j]k^Y^&^& ^-^-^-^0^?^>  ^^^t^^  ^^^  ^^^  ^t^u_v_'_'  _5_A_@  __ _M`E`E^/// A prefix unary expression.
///
///    prefixExpression ::=
///        [Token] [Expression]   `aa/// The element associated with the operator based on the static type of the
/// operand, or `null` if the AST structure hasn't been resolved, if the
/// operator isn't user definable, or if the operator couldn't be resolved.  aaaTbFbF:/// The expression computing the operand for the operator.   bRKbb5/// The prefix operator being applied to the operand.   b:cc̀/// The element associated with the operator based on the static type of the
/// operand, or `null` if the AST structure hasn't been resolved, if the
/// operator isn't user definable, or if the operator couldn't be resolved.  ccccccc __``.`	``c߈cc  de  e e4 2/// Initializes a newly created prefix expression.e;eJeI  eWepeo  eeed dd ddddd  d#dd dd	e-ee   eee4ff   eef#3fBfB   f#f$fZXf^f^  fffvfu   f;ff   fffhg9g9   ffg gggggagg   gagbgChh   ggh3i>i>/// The parameter element representing the parameter to which the value of the
/// operand is bound, or `null` if the AST structure is not resolved or the
/// function being invoked isn't known based on static type information.   jWjj jjjjjj  jjkk"k"  k4kEkD  kNkXkW  kkkVkk  kkk  kklll  l1l=l<  ll lnn*/// The access of a property of an object.
///
/// Note, however, that accesses to properties of objects can also be
/// represented as [PrefixedIdentifier] nodes in cases where the target is also
/// a simple identifier.
///
///    propertyAccess ::=
///        [Expression] '.' [SimpleIdentifier]   npo=o=/// Whether this expression is cascaded.
///
/// If it is, then the target of this expression isn't stored locally but is
/// stored in the nearest ancestor that is a [CascadeExpression].   oL`ooH/// Whether this property access is null aware (as opposed to non-null).   o7oo!/// The property access operator.   oQp/p/,/// The name of the property being accessed.   p@Eqzqz /// The expression used to compute the receiver of the invocation.
///
/// If this invocation isn't part of a cascade expression, then this is the
/// same as [target]. If this invocation is part of a cascade expression,
/// then the target stored with the cascade expression is returned.   q"rr /// The expression computing the object defining the property being accessed,
/// or `null` if this property access is part of a cascade expression.
///
/// Use [realTarget] to get the target independent of whether this is part of
/// a cascade expression.    mmmnmmmrrr  sJs ss ;/// Initializes a newly created property access expression.stt  t t/t.  t<*t[tZ  txtptzttts<sLsL  sX spsp sXsYs}"ss  tuu   ttuz9uu   uzu{u*uu   uuu倍uu   uuvvvv   vvvww[<wvwv   w[w\wCww   wwwhww  wx	x   xNxmxm   xNxOx2xx   xxyWyy  yy*y)   yiTyyn/// The cascade that contains this [IndexExpression].
///
/// This method assumes that [isCascaded] is `true`.   zzz   zz{vC{{   {v{w{U{{ {{{{{{  {{||'|'  |9|J|I  |S|]|\  |||y||  |||  ||}1e}B}B  }W}c}b  }1}2 }|~~/// A record literal.
///
///    recordLiteral ::= '(' recordField (',' recordField)* ','? ')'
///
///    recordField  ::= (identifier ':')? [Expression]   ~{^/// The token representing the `const` keyword, or `null` if the literal isn't
/// a constant.   .gD/// The syntactic elements used to compute the fields of the record.   /// Whether this literal is a constant expression.
///
/// It is a constant expression if either the keyword `const` was explicitly
/// provided or because no keyword was provided and this expression occurs in
/// a constant context.   6/// The left parenthesis.   8/// The right parenthesis.    ~4~5~F~s~N~G~P$$  ,^ ^o //// Initializes a newly created record literal.v    $     g% gh' = (  8DNN   893   ;   J   D    DEhTww ~~~  hi      ]Unn  |  ]^ wwj/// A record pattern.
///
///    recordPattern ::=
///        '(' [PatternField] (',' [PatternField])* ')'   J%/// The fields of the record pattern.   6/// The left parenthesis.   (8OO/// The right parenthesis.    !"3`;4=d[pp  || |    &     ? ' '(?? '(T#YY r84NN   89p3   pq=   J

   6TT   67T !!!$32  c8xx    cd      iTzz    ij /// A record type.
///
/// recordType ::=
///     '(' recordTypeFields ',' recordTypeNamedFields ')'
///   | '(' recordTypeFields ','? ')'
///   | '(' recordTypeNamedFields ')'
///
/// recordTypeFields ::= recordTypeField ( ',' recordTypeField )*
///
/// recordTypeField ::= metadata type identifier?
///
/// recordTypeNamedFields ::=
///     '{' recordTypeNamedField
///     ( ',' recordTypeNamedField )* ','? '}'
///
/// recordTypeNamedField ::= metadata type identifier   #6II/// The left parenthesis.   ]R/// The optional named fields.   q+/// The positional fields (might be empty).   (8OO/// The right parenthesis.    dg(/// A field in a [RecordTypeAnnotation].   SVV./// The annotations associated with the field.   c-/// The name of the field.   5/// The type of the field.    ̓M     '     9Jhh 9:s) sK   st8      p     ((  ߁U     !GYX  n}|       ' q  &B]] &'m( mn!  84NN   89p?   pq4   i   Xii  w  XY ܀aa./// A named field in a [RecordTypeAnnotation].       J%'́  xxx x         Woo WX s 


   k  >/// The portion of a [RecordTypeAnnotation] with named fields.   7]&/// The fields contained in the block.   4/// The left curly bracket.   6/// The right curly bracket.    
  99 9\  crq  8     # b 	
$(( 0++   I/__   IJ|   |}AtPP WWWZih  ABT     3/// A positional field in a [RecordTypeAnnotation].     EFW_Xa쁲  }            $x33 :::=LK  $% b/// The invocation of a constructor in the same class from within a
/// constructor's initialization list.
///
///    redirectingConstructorInvocation ::=
///        'this' ('.' identifier)? arguments   $Nee-/// The list of arguments to the constructor.   vq/// The name of the constructor that is being invoked, or `null` if the
/// unnamed constructor is being invoked.   /// The token for the period before the name of the constructor that is being
/// invoked, or `null` if the unnamed constructor is being invoked.   >%/// The token for the `this` keyword.    ij{|<  `[Z Z~ /// Initializes a newly created redirecting invocation to invoke the
/// constructor with the given name with the given arguments.
///
/// The [constructorName] can be `null` if the constructor being invoked is
/// the unnamed constructor.    .  &  3"5\N^#  &    *1NN *+	?   h  %$   n0   noJ   o      c^   cdstW      966    !]{{   ]^KmZZ aaadsr  KL     Bz/// A relational pattern.
///
///    relationalPattern ::=
///        (equalityOperator | relationalOperator) [Expression]   @{7/// The element of the [operator] for the matched type.  z{/// The element of the [operator] for the matched type.
///
/// Returns `null` if the AST structure hasn't been resolved or if the
/// operator couldn't be resolved.  mnI//// The expression used to compute the operand.   @""*/// The relational operator being applied.    /;;     #"  0IH  aXc    $ -   r   93OO   9:p3   pqR     M   Nll   NOX   :OO  dut  :;o  "32  G[Z  gUxx    gh dbb=/// The name of the primary constructor of an extension type.   :(/// The name of the primary constructor.   M9/// The period separating [name] from the previous token.    	K&(&22  [     .-     <+RR   <=k'   kl   r,, 3336ED  5¤¤  ²¾½   ̅q../// The declaration of an extension type representation.
///
/// It declares both the representation field and the primary constructor.
///
///    <representationDeclaration> ::=
///        ('.' <identifierOrNew>)? '(' <metadata> <type> <identifier> ')'   
_+/// The element of the primary constructor.  čĎĘĺę퀊ccJ/// The fragment of the primary constructor contained in this declaration.  :;{g1/// The optional name of the primary constructor.   ~WW1/// The element for [fieldName] with [fieldType].  %A&hT/// The fragment for [fieldName] with [fieldType] contained in this
/// declaration.  X@@./// The annotations associated with the field.   R3{{/// The representation name.   ǉ<ǻǻ/// The representation type.   6/// The left parenthesis.   8**/// The right parenthesis.    	?KK  e~e eʂ  ʉʘʗ  ʬʻʺ  +     ,+  :IH   ȪD Ȫȫ7 /'GG /0[OɊɊ [\ɚɦɧɨɩɯ. ɯɰ! +&& 	8(PP 89S   >̗̗   >?IkJop3   kII   #'(k^͉͉   kln   ?PP  ^ji  ?@ cЌЌR/// A rest pattern element.
///
///    restPatternElement ::= '...' [DartPattern]?   3/// The operator token '...'.   5<</// The optional pattern.    67HuPIRH7TT  @x@ @V  ]lk  y҈҇     *44 Ҽ-   Ҽҽ@   1OO   12Ӽg   Ӽӽ'V88  FRQ  '( ԁ!''O/// A rethrow expression.
///
///    rethrowExpression ::=
///        'rethrow'   SMՑՑ1/// The token representing the `rethrow` keyword.    դհհ  -uc cx 3/// Initializes a newly created rethrow expression.֎֍   & ֦3ּּ   ֦֧1   ?--   Urss   UVX   '88  J[Z  dnm  '(_     +\/// A return statement.
///
///    returnStatement ::=
///        'return' [Expression]? ';'   ڃڃg/// The expression computing the value to be returned, or `null` if no
/// explicit value was provided.   ڒK0/// The token representing the `return` keyword.   C,/// The semicolon terminating the statement.    وىٚ٢ٛ٤(44  Fs s܆ {/// Initializes a newly created return statement.
///
/// The [expression] can be `null` if no explicit value was provided.܍ܜܛ  ܮ#    ہ%ۙۙ ہۂ۫ۻۻ  ! ;2QQ   ;<q,݇݇   qrݡ:   ݡݢ_     B``   BCV ,+  ^Zoo  }߉߈  ^_ ߼Oঀ/// A script tag that can optionally occur at the beginning of a compilation
/// unit.
///
///    scriptTag ::=
///        '#!' (~NEWLINE)* NEWLINE   B+/// The token representing this script tag.    PQbjclT  z`  +/// Initializes a newly created script tag.   T!ll TU.   ,&&   @h^^   @AP    _  +*    c΂/// A set or map literal.
///
///    setOrMapLiteral ::=
///        'const'? [TypeArgumentList]? '{' elements? '}'
///
///    elements ::=
///        [CollectionElement] ( ',' [CollectionElement] )* ','?
///
/// This is the class that is used to represent either a map or set literal when
/// either the 'control-flow-collections' or 'spread-collections' experiments
/// are enabled. If neither of those experiments are enabled, then `MapLiteral`
/// is used to represent a map literal and `SetLiteral` is used for set
/// literals.   vggJ/// The syntactic elements used to compute the elements of the set or map.   tss/// Whether this literal represents a map literal.
///
/// This getter always returns `false` if [isSet] returns `true`.
///
/// However, this getter is _not_ the inverse of [isSet]. It's possible for
/// both getters to return `false` if
///
/// - the AST hasn't been resolved (because determining the kind of the
///   literal is done during resolution),
/// - the literal is ambiguous (contains one or more spread elements and none
///   of those elements can be used to determine the kind of the literal), or
/// - the literal is invalid because it contains both expressions (for sets)
///   and map entries (for maps).
///
/// In both of the latter two cases there are compilation errors associated
/// with the literal.   }||/// Whether this literal represents a set literal.
///
/// This getter always returns `false` if [isMap] returns `true`.
///
/// However, this getter is _not_ the inverse of [isMap]. It's possible for
/// both getters to return `false` if
///
/// - the AST hasn't been resolved (because determining the kind of the
///   literal is done during resolution),
/// - the literal is ambiguous (contains one or more spread elements and none
///   of those elements can be used to determine the kind of the literal), or
/// - the literal is invalid because it contains both expressions (for sets)
///   and map entries (for maps).
///
/// In both of the latter two cases there are compilation errors associated
/// with the literal.   4/// The left curly bracket.   6/// The right curly bracket.    xy9   / /// Initializes a newly created set or map literal.
///
/// The [constKeyword] can be `null` if the literal isn't a constant.
///
/// The [typeArguments] can be `null` if no type arguments were declared.
///
/// The [elements] can be `null` if the set is empty.6FE  Wgf  y  -     T#ll TU|F $ ~/// A representation of whether this literal represents a map or a set, or
/// whether the kind hasn't or can't be determined.U8/// The context type computed by [TypedLiteralResolver].  66    !,J``   ,-z/   z{A   A   7ww   78"V11 888;JI  "#|    "''    K    ((  :KJ  T^]  y     3==/// A combinator that restricts the names being imported to those in a given
/// list.
///
///    showCombinator ::=
///        'show' [SimpleIdentifier] (',' [SimpleIdentifier])*   fT/// The list of names from the library that are made visible by this
/// combinator.    &v    7/// Initializes a newly created import show combinator.   .%$   EGnn |m8   mnM   ::   U   Y  '32  	 eC__/// A simple formal parameter.
///
///    simpleFormalParameter ::=
///        ('final' [TypeAnnotation] | 'var' | [TypeAnnotation])?
///        [SimpleIdentifier]   n/// The token representing either the `final`, `const` or `var` keyword, or
/// `null` if no keyword was used.   $d/// The declared type of the parameter, or `null` if the parameter doesn't
/// have a declared type.    	
H#%  ^l     -/// Initializes a newly created formal parameter.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// parameter doesn't have the corresponding attribute.
///
/// The [keyword] can be `null` if a type was specified.
///
/// The [type] must be `null` if the keyword is `var`.             *)  >ML  Y!wv     44 @TT  9   !!   B   8   6BKK   67|2   |}K        b   v  +76   3/// A simple identifier.
///
///    simpleIdentifier ::=
///        initialCharacter internalCharacter*
///
///    initialCharacter ::= '_' | '$' | letter
///
///    internalCharacter ::= '_' | '$' | letter | digit   }OOc/// Whether this identifier is the "name" part of a prefixed identifier or a
/// method invocation.   _h/// If the identifier is a tear-off, return the inferred type arguments
/// applied to the function type of the element to produce its `[staticType]`.
///
/// An empty list if the function type doesn't have type parameters or if the
/// context type has type parameters, or `null` if this node isn't a tear-off
/// or if the AST structure hasn't been resolved.   	=	<	<*/// The token representing the identifier.   	F		H/// Whether this identifier is the name being declared in a declaration.   	g;;/// Whether this expression is computing a right-hand value.
///
/// Note that [inGetterContext] and [inSetterContext] aren't opposites, nor
/// are they mutually exclusive. In other words, it's possible for both
/// methods to return `true` when invoked on the same node.   Qf/// Whether this expression is computing a left-hand value.
///
/// Note that [inGetterContext] and [inSetterContext] aren't opposites, nor
/// are they mutually exclusive. In other words, it's possible for both
/// methods to return `true` when invoked on the same node.   ]^owpy  O	 	 +/// Initializes a newly created identifier.
$#   )) 3		/// The element associated with this identifier based on static type
/// information, or `null` if the AST structure hasn't been resolved or if
/// this identifier couldn't be resolved.411 NŁU/// If this identifier is meant to be looked up in the enclosing scope, the
/// raw result the scope lookup, prior to figuring out whether a write or a
/// read context is intended, and prior to falling back on implicit `this` (if
/// appropriate).
///
/// Or `null` if this identifier isn't meant to be looked up in the enclosing
/// scope. 	.X6/// The cascade that contains this [SimpleIdentifier].   *   (   $   6!!   F,]]   FGv<   vw99/// The element being referenced by this identifier, or `null` if this
/// identifier is used to either read or write a value, the AST structure
/// hasn't been resolved, or if this identifier couldn't be resolved.
///
/// This element is set when this identifier is used not as an expression,
/// but just to reference some element.
///
/// Examples are the name of the type in a [NamedType], the name of the method
/// in a [MethodInvocation], the name of the constructor in a
/// [ConstructorName], the name of the property in a [PropertyAccess], the
/// prefix and the identifier in a [PrefixedIdentifier] (which then can be
/// used to read or write a value).
///
/// In invalid code, for recovery, any element could be used. For example, in
/// `set mySetter(_) {} mySetter topVar;` a setter is used as a type name. We
/// do this to help the user to navigate to this element, and maybe change its
/// name, add a new declaration, etc.
///
/// If either [readElement] or [writeElement] aren't `null`, the
/// [referenceElement] is `null`, because the identifier is being used to
/// read or write a value.
///
/// All three of [readElement], [writeElement], and [referenceElement] can be
/// `null` when the AST structure hasn't been resolved, or this identifier
/// couldn't be resolved.  (VZtt   VWW   6     ITZZ   IJ &       $ˀ$$  $$$  %%%  $$%k_%|%|  %%%  %k%l %΃(@(@/// A string literal expression that doesn't contain any interpolations.
///
///    simpleStringLiteral ::=
///        rawStringLiteral
///      | basicStringLiteral
///
///    rawStringLiteral ::=
///        'r' basicStringLiteral
///
///    basicStringLiteral ::=
///        multiLineStringLiteral
///      | singleLineStringLiteral
///
///    multiLineStringLiteral ::=
///        "'''" characters "'''"
///      | '"""' characters '"""'
///
///    singleLineStringLiteral ::=
///        "'" characters "'"
///      | '"' characters '"'   (w<(('/// The token representing the literal.   (1((/// The value of the literal.    '''()('((셉((  )) )) 6/// Initializes a newly created simple string literal.)))  *
**   )W)o)o )W)X){)) ){)|
*(,*>*>   *(*)*X8*l*l   *X*Y*=**   ******   **+8++   +++?,+T+T   +?+@+o>++   +o+p+8++   +++d,,   ++,U_,l,l    ,Z,, ,,,,,,  ,,--'-'  -9-J-I  -S-]-\  ---_--  ---  --.W.-.-  .@.N.M  .. .wJ/R/R/// A single string literal expression.
///
///    singleStringLiteral ::=
///        [SimpleStringLiteral]
///      | [StringInterpolation]   /K//4/// The offset of the after-last contents character.   /Ҁ0Z0Zy/// The offset of the first contents character.
///
/// If the string is multiline, then leading whitespaces are skipped.   0mO007/// Whether this string literal is a multi-line string.   0B000/// Whether this string literal is a raw string.   111/// Whether this string literal uses single quotes (' or ''').
///
/// If `false` is returned then the string literal uses double quotes
/// (" or """).    ////C/// 1d11       2)22Z/// A spread element.
///
///    spreadElement:
///        ( '...' | '...?' ) [Expression]   3	\3Z3Z?/// The expression used to compute the collection being spread.   3ia33I/// Whether this is a null-aware spread, as opposed to a non-null spread.   3L440/// The spread operator, either '...' or '...?'.    222222244*4*  4Ҁ4 44  444  5"5%5$  5C575E4&44 44444  5{355   5{5|5755   555966   556*^6.6.  696I6H   6i66   66677   667b77 777777  77788  8#8483  8=!8X8W  778Y88  888  88 9;S;S/// A node that represents a statement.
///
///    statement ::=
///        [Block]
///      | [VariableDeclarationStatement]
///      | [ForStatement]
///      | [ForEachStatement]
///      | [WhileStatement]
///      | [DoStatement]
///      | [SwitchStatement]
///      | [IfStatement]
///      | [TryStatement]
///      | [BreakStatement]
///      | [ContinueStatement]
///      | [ReturnStatement]
///      | [ExpressionStatement]
///      | [FunctionDeclarationStatement]   ;t;;t/// If this is a labeled statement, returns the statement being labeled,
/// otherwise returns the statement itself.    ::;;<;;;<	z<<    <Q0<o<o   <Q<R  <=x=x/// A string interpolation literal.
///
///    stringInterpolation ::=
///        ''' [InterpolationElement]* '''
///      | '"' [InterpolationElement]* '"'   =>V>V}/// The elements that are composed to produce the resulting string.
///
/// The list includes [firstString] and [lastString].   >c?H?H/// The first element in this interpolation, which is always a string.
///
/// The string might be empty if there's no text before the first
/// interpolation expression (such as in `'$foo bar'`).   ?X@:@:/// The last element in this interpolation, which is always a string.
///
/// The string might be empty if there's no text after the last
/// interpolation expression (such as in `'foo $bar'`).    ="=#=4=a=<=5=>@I@U@U  AHA AA @/// Initializes a newly created string interpolation expression.A0AA   @A'A'C/// The elements that are composed to produce the resulting string.A3A?A@AAABC:DD   CCD;~DODO   D;D<DDD   DDEFME}E}   EFEGE6EE   EEEgEE   EEF<=FQFQ   F<F=F}$FF   F}F~FCFF   FFFeGG   FFGUiGsGs   GUGVGGG    HZHH HHHHHH  HHHHH  II"I!  I+I5I4  HHIWII  III  IIIYII  JJJ  II JIJzJz*/// A helper for analyzing string lexemes. KFdKF KFKX  KYK_K^  KfKlKk  KtKzKy   JJJ  JJJ  JJJ  JJJ JJJJ K K	KK KK%K)K) K1K6K:K: K@ OPQQ/// Given the [lexeme] for a multi-line string whose content begins at the
/// given [start] index, returns the index of the first character that is
/// included in the value of the string.
///
/// According to the specification:
///
/// If the first line of a multiline string consists solely of the whitespace
/// characters defined by the production WHITESPACE 20.1), possibly prefixed
/// by \, then that line is ignored, including the new line at its end. Q	QQ    UUU퀜/// A string literal expression.
///
///    stringLiteral ::=
///        [SimpleStringLiteral]
///      | [AdjacentStrings]
///      | [StringInterpolation]   VVVz/// The value of the string literal, or `null` if the string isn't a constant
/// string without any string interpolation.    UUUUUUUV
VV    VWW   VVWЀXX/// Append the value of this string literal to the given [buffer].
///
/// Throw an [ArgumentError] if the string isn't a constant string without any
/// string interpolation. XXX    XUYYπ/// The invocation of a superclass' constructor from within a constructor's
/// initialization list.
///
///    superInvocation ::=
///        'super' ('.' [SimpleIdentifier])? [ArgumentList]   Z.NZoZo-/// The list of arguments to the constructor.   Z[[q/// The name of the constructor that is being invoked, or `null` if the
/// unnamed constructor is being invoked.   [ [[/// The token for the period before the name of the constructor that is being
/// invoked, or `null` if the unnamed constructor is being invoked.   [@[[&/// The token for the `super` keyword.    YyYzYYYYY\\\  ]Yg^d ^d^  /// Initializes a newly created super invocation to invoke the inherited
/// constructor with the given name with the given arguments.
///
/// The [period] and [constructorName] can be `null` if the constructor being
/// invoked is the unnamed constructor.^^^  ^^^  ^.^^  ^&__  _8_'_:_a_S_c\$\\ \\\\\ \\\&\\  ]]]  ]'-]M]M ]'](_?__   __`h``  ``*`)   `s1``   `s`t`J``   ```o``  a
 a!a    ai9aa   aiajaraa   aaaaaaabb:b:   bbcgcc c"c"c"c%c4c3  cccwcc  ccc  cwcx cddI/// A super expression.
///
///    superExpression ::=
///        'super'   dIee//// The token representing the `super` keyword.    dGdHdYddadZdceje e   eoe ee 1/// Initializes a newly created super expression.eee   en$ee eneof
1f f    f
ff?/fUfU   f?f@fr<ff   frfsfnff   ffg$Vg3g3 g:g:g:g=gLgK  g$g%g~gg  ggg  ggg  g~gh_h.h.  h<hHhG  hh hiiր/// A super-initializer formal parameter.
///
///    superFormalParameter ::=
///        ('final' [TypeAnnotation] | 'const' [TypeAnnotation] | 'var' |
///        [TypeAnnotation])?
///        'super' '.' name ([TypeParameterList]? [FormalParameterList])?   jjjn/// The token representing either the `final`, `const` or `var` keyword, or
/// `null` if no keyword was used.   jKjj-/// The name of the parameter being declared.  jjj逡kkx/// The parameters of the function-typed parameter, or `null` if this isn't a
/// function-typed field formal parameter.   k:kk&/// The token representing the period.   ḱmm/// The question mark indicating that the function type is nullable, or `null`
/// if there's no question mark, which will always be the case when the
/// parameter doesn't use the older style for denoting a function typed
/// parameter.
///
/// If the parameter is function-typed, and has the question mark, then its
/// function type is nullable. Having a nullable function type means that the
/// parameter can be `null`.   mImm//// The token representing the `super` keyword.   mnnՀ/// The declared type of the parameter, or `null` if the parameter doesn't
/// have a declared type.
///
/// If this is a function-typed field formal parameter this is the return type
/// of the function.   nހococi/// The type parameters associated with this method, or `null` if this method
/// isn't a generic method.    iiiiiiiov9oo  pr rr /// Initializes a newly created formal parameter.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// parameter doesn't have the corresponding attribute.
///
/// The [keyword] can be `null` if there's a type.
///
/// The [type] must be `null` if the keyword is `var`.
///
/// The[parameters] can be `null` if this isn't a function-typed field formal
/// parameter.rrr  rrr  rrr  s
ss  s.s=s<  sI!sgsf  spss~  sss  sss  s.ss  s,tt  t)t8t7  	tOtItQtot_tqttto oo oop
pp  p($p@p@ p(p)pQpipi pQpRpt&pp  p$pp  p!pp ppuZu%u%   uuumuu   umunvBv2v2   vvvcOvxvx   vcvdvBvv   vvv*ww   vvw*CwSwS   w*w+wqhwuwu  w#ww   w2xx   wwxaxx  xx1x0   xxIxx   xxxyxvxx  x%xx   y?Gy]y]   y?y@zazz zzzzzz  zzz{ {   {{{  zz {_||/// A case in a switch statement.
///
///    switchCase ::=
///        [SimpleIdentifier]* 'case' [Expression] ':' [Statement]*   |`}}C/// The expression controlling whether the statements are executed.    |1|2|C|p|K|D|M}`}}  }f} }~ o/// Initializes a newly created switch case.
///
/// The list of [labels] can be `null` if there are no labels.~
~~  ~%~5~4  ~A"~Z~Y  ~i~y~x  ~~~  ~~~}`}o}o  ~9   ~~&^**  5ED      Q   ۀ     tMM/// The default case in a switch statement.
///
///    switchDefault ::=
///        [SimpleIdentifier]* 'default' ':' [Statement]*     	6
w  ρH HY r/// Initializes a newly created switch default.
///
/// The list of [labels] can be `null` if there are no labels.`po  {        Հ   T   t  ".-   {6/// A switch expression.
///
///    switchExpression ::=
///        'switch' '(' [Expression] ')' '{' [SwitchExpressionCase]
///        (',' [SwitchExpressionCase])* ','? '}'   a5/// The cases that can be selected by the expression.   hmmK/// The expression used to determine which of the switch cases is selected.   |4/// The left curly bracket.   6/// The left parenthesis.   6/// The right curly bracket.   (8OO/// The right parenthesis.   dK0/// The token representing the `switch` keyword.    *+<iD=F@~~t/// A case in a switch expression.
///
///    switchExpressionCase ::=
///        [GuardedPattern] '=>' [Expression]   L9/// The arrow separating the pattern from the expression.   ooa/// The expression whose value is returned from the switch expression if the
/// pattern matches.   ~sN/// The refutable pattern that must match for the [expression] to be executed.    ():gB;D        .-  APO  Z"sr  3    >   06FF   01j9   jk^     	''   	
a   .|??  MYX  ./ l  SS Sg  n}|    "      -FE  P_^  s
%"" 
4'LL 45`oo  ( # Q !"#$*$BB *+2   /,,   I9hh   IJ^     <   (~FF   ()W     (98  BLK  s     **-/// An element within a switch statement.
///
///    switchMember ::=
///        [SwitchCase]
///      | [SwitchDefault]
///      | [SwitchPatternCase]
///
/// The class [SwitchPatternCase] exists only to support the 'patterns' feature.
///
/// Note that when the patterns feature is enabled by default, the class
/// [SwitchPatternCase] might replace [SwitchCase] entirely. If we do that, then
/// legacy code (code opted into a version prior to the release of patterns)
/// will likely wrap the expression in a [ConstantPattern] with synthetic
/// tokens.   N^K/// The colon separating the keyword or the expression from the statements.   P;/// The token representing the `case` or `default` keyword.   OLL1/// The labels associated with the switch member.   WmG/// The statements that are executed if this switch member is selected.    ȄB  q} } q/// Initializes a newly created switch member.
///
/// The list of [labels] can be `null` if there are no labels.      '
   =8[[ eqrstz z{ @ z   z{   :   F     /// A pattern-based case in a switch statement.
///
///    switchPatternCase ::=
///        [Label]* 'case' [DartPattern] [WhenClause]? ':' [Statement]*   )d~~?/// The pattern controlling whether the statements is executed.      77 7L  Scb  n~}         3$$  22   X.. 5558GF   {    {| /// A switch statement.
///
///    switchStatement ::=
///        'switch' '(' [Expression] ')' '{' [SwitchCase]* [SwitchDefault]? '}'   j||M/// The expression used to determine which of the switch members is selected.   4/// The left curly bracket.   6/// The left parenthesis.   dYY>/// The switch members that can be selected by the expression.   e6/// The right curly bracket.   8/// The right parenthesis.   K0/// The token representing the `switch` keyword.    *u00  7 &  '-,  5;:   M$jj  u  {  F/// Joined variables declared in [members], available in [statements]. ITii      2   # }/// Initializes a newly created switch statement.
///
/// The list of [members] can be `null` if there are no switch members.*98  KZY  n"      '    5)7% $'<< $%P__  o( op# @  	U33 H\]c${{ cd2   /   9    <^@@  K[Z   C   }   fVuu |||  fgw    ;ZZ     Ձwx/// A symbol literal expression.
///
///    symbolLiteral ::=
///        '#' (operator | (identifier ('.' identifier)*))   @"/// The components of the literal.   =@@&/// The token introducing the literal.    NO`hajNZZ  " "3 //// Initializes a newly created symbol literal.:IH  Wfe   ! ( z.   z{D   88   T   
  ->=  GQP  
_     
RR;/// An identifier that can be used to look up names in the lexical scope when
/// there's no identifier in the AST structure.
///
/// For example, there's no identifier in the AST when the parser can't
/// distinguish between a method invocation and an invocation of a top-level
/// function imported with a prefix.    	     Z     )F/// A this expression.
///
///    thisExpression ::=
///        'this'   G**./// The token representing the `this` keyword.    pq:^FF  l  0/// Initializes a newly created this expression.   # *0@@   *+^.tt   ^_<   l   @UOO VVVYhg  @A      7_HH  Vba  78 {GGV/// A throw expression.
///
///    throwExpression ::=
///        'throw' [Expression]   qU8/// The expression computing the exception to be thrown.   I//// The token representing the `throw` keyword.    0##     1/// Initializes a newly created throw expression.  '"@?  ^R`q$ qr  1¬¬   E   933   Q^UU  `po   ó?   óô   ďVĞĞ ĥĥĥĨķĶ  ďĐ逛    &0/  ňYřř  ŧųŲ  ňŉ 儂ȱȱu/// The declaration of one or more top-level variables of the same type.
///
///    topLevelVariableDeclaration ::=
///        ('final' | 'const') <type>? <staticFinalDeclarationList> ';'
///      | 'late' 'final' <type>? <initializedIdentifierList> ';'
///      | 'late'? <varOrType> <initializedIdentifierList> ';'
///      | 'external' <finalVarOrType> <identifierList> ';'
///
/// (Note: there's no `<topLevelVariableDeclaration>` production in the grammar;
/// this is a subset of the grammar production `<topLevelDeclaration>`, which
/// encompasses everything that can appear inside a Dart file after part
/// directives).   lSS?/// The `augment` keyword, or `null` if the keyword was absent.  89f^ɴɴ@/// The `external` keyword, or `null` if the keyword isn't used.   E./// The semicolon terminating the declaration.   T[[+/// The top-level variables being declared.    [\mȚunwi%uu  ˓^ ^} /// Initializes a newly created top-level variable declaration.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// variable doesn't have the corresponding attribute.̄̔̓  ̠̰̯  ̽    1('  9HG  gYi)  '-- @(YY @Am!˅˅ mnͣ_   ͣͤͮͯ3     =,SS   =>m΃΃   mnG   ;j??  I%fe   ϩ   ϩϪУhвв йййм  УФ}    .:9   ѐ:ҚҚ/// A try statement.
///
///    tryStatement ::=
///        'try' [Block] ([CatchClause]+ finallyClause? | finallyClause)
///
///    finallyClause ::=
///        'finally' [Block]   0/// The body of the statement.   _FF5/// The catch clauses contained in the try statement.   Wv/// The finally block contained in the try statement, or `null` if the
/// statement doesn't contain a finally clause.   ppr/// The token representing the `finally` keyword, or `null` if the statement
/// doesn't contain a finally clause.   ԃEԽԽ-/// The token representing the `try` keyword.    DEV҃^W`̈	   ֏ /// Initializes a newly created try statement.
///
/// The [finallyKeyword] and [finallyBlock] can be `null` if there's no
/// finally clause.֖֥֤  ִ  +    $ 98  TNVrdt"33 BLL  VDzz ՊՖ՗՘ՙ՟'ոո ՟ՠ  /   0(JJ   01\C``  epo   أL   أؤ@		   79RR   78tTxx  څڑڐ   ́   S 
	  9JJ  Xdc  9: ׂ4Ā/// The declaration of a type alias.
///
///    typeAlias ::=
///        [ClassTypeAlias]
///      | [FunctionTypeAlias]
///      | [GenericTypeAlias]   lUU?/// The `augment` keyword, or `null` if the keyword was absent.  :;hEޣޣ./// The semicolon terminating the declaration.   ޱX</// The token representing the `typedef` or `class` keyword.    no݀ݭ݈݁݊  遂  /// Initializes a newly created type alias.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// declaration doesn't have the corresponding attribute.      !   4DC  M\[   l'߅߅ lmߘ&߰߰ ߘߙ! o,   opj     /// A type annotation.
///
///    type ::=
///        [NamedType]
///      | [GenericFunctionType]
///      | [RecordTypeAnnotation]   ||f/// The question mark indicating that the type is nullable, or `null` if
/// there's no question mark.   dN/// The type being named, or `null` if the AST structure hasn't been resolved.    s    C]]   CD  f##f/// A list of type arguments.
///
///    typeArguments ::=
///        '<' typeName (',' typeName)* '>'   KZ0/// The type arguments associated with the type.   ./// The left bracket.   0/// The right bracket.    @  < <P 7/// Initializes a newly created list of type arguments.Wfe  v+     h# hiD $ I//   K0aa   KL/   貀   W   X      Q##/// A literal that has a type associated with it.
///
///    typedLiteral ::=
///        [ListLiteral]
///      | [SetOrMapLiteral]   G{^/// The token representing the `const` keyword, or `null` if the literal isn't
/// a constant.   ƁÀ/// Whether this literal is a constant expression.
///
/// It is a constant expression if either the keyword `const` was explicitly
/// provided or because no keyword was provided and this expression occurs in
/// a constant context.   πOOe/// The type argument associated with this literal, or `null` if no type
/// arguments were declared.    a>nn    /// Initializes a newly created typed literal.
///
/// The [constKeyword] can be `null` if the literal isn't a constant.
///
/// The [typeArguments] can be `null` if no type arguments were declared.  ,$#  H9J $  X   F   ,q00  >#UT   𡀛   @]QQ  _kj  @A 񡂧/// An expression representing a type, such as the expression `int` in
/// `var x = int;`.
///
/// Objects of this type aren't produced directly by the parser (because the
/// parser can't tell whether an identifier refers to a type); they are
/// produced at resolution time.
///
/// The `.staticType` getter returns the type of the expression (which is
/// always the type `Type`). To get the type represented by the type literal
/// use `.typeName.type`.   ?AA)/// The type represented by this literal.    kl}~JVV  x       D9ZZ   DE5      0   O  
   BW``   BCR     '&  0:9  W     `/// A type parameter.
///
///    typeParameter ::=
///        name ('extends' [TypeAnnotation])?   y<<Z/// The upper bound for legal arguments, or `null` if there's no explicit
/// upper bound.   Fd   FGQpRtuH   mmc/// The token representing the `extends` keyword, or `null` if there's no
/// explicit upper bound.   5#/// The name of the type parameter.    JK\d]f  Y%} } /// Initializes a newly created type parameter.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// parameter doesn't have the corresponding attribute.
///
/// The [extendsKeyword] and [bound] can be `null` if the parameter doesn't
/// have a bound.        "&%  065  TMV$$ -ŀ/// The token representing the variance modifier keyword, or `null` if there's
/// no explicit variance modifier, meaning legacy covariance. !   6DD 4   M      | c c       5  9 : I        S       /MM   /0T   <wMM  [gf  <= /// Type parameters within a declaration.
///
///    typeParameterList ::=
///        '<' [TypeParameter] (',' [TypeParameter])* '>'   4/// The left angle bracket.   6/// The right angle bracket.   -Sqq%/// The type parameters for the type.    <=N{VOXM  }  8/// Initializes a newly created list of type parameters.  /  (76   # H-- ?KLMNT$ll TU0   /   R     Fdd   FGX%% ,,,/>=  r]    rs Ӂ		/// A directive that references a URI.
///
///    uriBasedDirective ::=
///        [LibraryAugmentationDirective]
///        [ExportDirective]
///      | [ImportDirective]
///      | [PartDirective]   
B
Q
Q)/// The URI referenced by this directive.    							
Y
f
f  
ҁg  /// Initializes a newly create URI-based directive.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// directive doesn't have the corresponding attribute.      


  =.__   =>oEss  w   t    0/// Validate this directive, but don't check for existence.
///
/// Returns a code indicating the problem if a problem was found, or `null` if
/// there's no problem.   *)  5>=    9E/// Validation codes returned by [UriBasedDirectiveImpl.validateUri]. o  I/// Initializes a newly created validation code to have the given [name].	   M i +<U=[8$/// The name of the validation code.  &    5/// An identifier that has an initial value associated with it.
///
/// Instances of this class are always children of the class
/// [VariableDeclarationList].
///
///    variableDeclaration ::=
///        name ('=' [Expression])?   	ց)/// The element declared by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved or if this node
/// represents the declaration of a top-level variable or a field.  /// The element declared by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved or if this node
/// represents the declaration of a top-level variable or a field.  /// The fragment declared by this declaration.
///
/// Returns `null` if the AST structure hasn't been resolved or if this node
/// represents the declaration of a local variable.  {/// The equal sign separating the variable name from the initial value, or
/// `null` if the initial value isn't specified.   55z/// The expression used to compute the initial value for the variable, or
/// `null` if the initial value isn't specified.   EUA/// Whether this variable was declared with the 'const' modifier.   ii/// Whether this variable was declared with the 'final' modifier.
///
/// Variables that are declared with the 'const' modifier return `false` even
/// though they are implicitly final.   uS@/// Whether this variable was declared with the 'late' modifier.   >,/// The name of the variable being declared.    QRckdm    {  /// Initializes a newly created variable declaration.
///
/// The [equals] and [initializer] can be `null` if there's no initializer.    $  7*9NSq[T]kcmq qr1    /// When this node is read as a part of summaries, we usually don't want
/// to read the [initializer], but we need to know if there is one in
/// the code. So, this flag might be set to `true` even though
/// [initializer] is `null`.    ( c c    ( ) 8 9 ́!!/// This overridden implementation of [documentationComment] looks in the
/// grandparent node for Dartdoc comments if no documentation is specifically
/// available on the node.  !!"""   ""#-@#C#C   #-#.#q<##   #q#r#a##  ###   $$+$+   $$$$$   $$%~%3%3   %%%%%   %%&QZ&`&` &g&g&g&j&y&x  &Q&R&}&&  &&&  && '0((j/// The declaration of one or more variables of the same type.
///
///    variableDeclarationList ::=
///        finalConstVarOrType [VariableDeclaration]
///        (',' [VariableDeclaration])*
///
///    finalConstVarOrType ::=
///      'final' 'late'? [TypeAnnotation]?
///      | 'const' [TypeAnnotation]?
///      | 'var'
///      | 'late'? [TypeAnnotation]   )&i))S/// Whether the variables in this list were declared with the 'const'
/// modifier.   )7**/// Whether the variables in this list were declared with the 'final'
/// modifier.
///
/// Variables that are declared with the 'const' modifier return `false` even
/// though they are implicitly final. (In other words, this is a syntactic
/// check rather than a semantic check.)   *a+(+(N/// Whether the variables in this list were declared with the 'late' modifier.   +3++k/// The token representing the `final`, `const` or `var` keyword, or `null` if
/// no keyword was included.   +},+,+a/// The token representing the `late` keyword, or `null` if the late modifier
/// isn't included.   ,;r,,T/// The type of the variables being declared, or `null` if no type was
/// provided.   ,m-->/// A list containing the individual variables being declared.    (((((((-"U-.-.  .I/ // :/// Initializes a newly created variable declaration list.
///
/// Either or both of the [comment] and [metadata] can be `null` if the
/// variable list doesn't have the corresponding attribute.
///
/// The [keyword] can be `null` if a type was specified.
///
/// The [type] must be `null` if the keyword is `var`.///  ///  ///  000  0)!0G0F  0P00x0w  000- -- ---$-- -----  -I.'.' .4.@.A.B.C	0700   001#1919   1#1$1B11   112 B2525   2 2!2f32{2{   2f2g2222   222K22  222   3"N3X3X   3"3#3t33   3t3u4wd44 444444  4w4x4߀44  45
5	  44 5y66/// A list of variables that are being declared in a context where a statement
/// is required.
///
///    variableDeclarationStatement ::=
///        [VariableDeclarationList] ';'   6C66,/// The semicolon terminating the statement.   7J7A7A!/// The variables being declared.    6.6/6@6m6H6A6J7OV7[7[  88X 8X8x ?/// Initializes a newly created variable declaration statement.8188  888  8887)77  7!88 779 =9696   9 9!9a,9w9w   9a9b9G99   999j99  9%::   :J:h:h   :J:K:i:: ::::;;  ::;H[;Y;Y  ;g;s;r  ;H;I ;)<N<NX/// The shared interface of [AssignedVariablePattern] and
/// [DeclaredVariablePattern].   <yU<<C/// The name of the variable declared or referenced by the pattern.    < <<<?<<<<ҁ<<  >	3>	 >	>  >#>2>1   =.=F=F =.=/=O==뀁/// If this variable was used to resolve an implicitly named field, the
/// implicit name node is recorded here for a future use. >@=>e>e   >@>A  >??/// A guard in a pattern-based `case` in a `switch` statement, `switch`
/// expression, `if` statement, or `if` element.
///
///    switchCase ::=
///        'when' [Expression]   ?@K@K/// The condition that is evaluated when the pattern matches, that must
/// evaluate to `true` in order for the [expression] to be executed.   @Z0@~@~/// The `when` keyword.    ?3?4?E?r?M?F?O@@@  AA AA,  A3ABAA  AR"AkAj  AA}A@@@  @#AA @@A0AA   AAA6B
B
   AAB.9BMBM   B.B/Bk^BoBo  BzBB   B̀BB   BBCiQCxCx CCCCCC  CiCjCXCC  CCC  CC DHDDh/// A while statement.
///
///    whileStatement ::=
///        'while' '(' [Expression] ')' [Statement]   E/E+E+/// The body of the loop.   E4iEEM/// The expression used to determine whether to execute the body of the loop.   E6EE/// The left parenthesis.   E8FF/// The right parenthesis.   FIFSFS//// The token representing the `while` keyword.    DDDDDDDFdFpFp  GonG GG 0/// Initializes a newly created while statement.GGG  GGG  G!HH  H%H4H3  HIHaH`  HyHnH{HHHF$FF FFF'FF FFGGG  G*(GBGB G*G+GWGeGe  H1HH   HHI,I4I4   IIIFOIJIJ  IOI^I]   I7II   III\II  III   J41JJJJ   J4J5JiJJ   JiJjKUKK KKKKKK  KKKsKK  KLL  KK LTM M u/// A wildcard pattern.
///
///    wildcardPattern ::=
///        ( 'var' | 'final' | 'final'? [TypeAnnotation])? '_'   MK7MzMz!/// The `var` or `final` keyword.   M$MM/// The `_` token.   MwN N Y/// The type that the pattern is required to match, or `null` if any type is
/// matched.    LLLM	LLLN)N5N5  NN NO  OO"O!  O+O:O9  OFOUOT   N NN NNNNN NNN*NN NNO=OO   OOO'OO   OOOP%P%(/// If [keyword] is `final`, returns it.   PJPP   PPQQ3Q3   QQQVQQ QQQQQQ  QQRR)R)  R>RORN  RRSrS!S!  S5SFSE  SZSnSm  SSU}SUU  UUU  U}U~ UԁVVv/// The with clause in a class declaration.
///
///    withClause ::=
///        'with' [NamedType] (',' [NamedType])*   VVWW0/// The names of the mixins that were specified.   WGWXWX./// The token representing the `with` keyword.    VKVLV]VVeV^VgWhWtWt  XXM XMX[ ,/// Initializes a newly created with clause.XbXqXp  X'XX   W#WW WWW@WW X	XXXXX0XX   XXYFY1Y1   YYYeFYY   YeYfYYY   YYZlQZ{Z{ ZZZZZZ  ZlZmZYZZ  ZZZ  ZZ [[[a/// A yield statement.
///
///    yieldStatement ::=
///        'yield' '*'? [Expression] ‘;’   [G\6\6*/// The expression whose value is yielded.   \EB\}\}+/// The semicolon following the expression.   \I\\6/// The star optionally following the `yield` keyword.   \2\\/// The `yield` keyword.    [|[}[[[[[]]]  ]K^c ^c^u k/// Initializes a newly created yield expression.
///
/// The [star] can be `null` if no star was provided.^|^^  ^^^  ^"^^  ^^^  _^_
]a$]y]y ]a]b]]] ]]]]]  ]!]] ]]_@?_V_V   _@_A_:__   ___9__   ___^``  ```   ```~`~   ```aa=UaLaL aSaSaSaVaead  a=a>aYaa  aaa  aa  k2kvkv>/// An indication of the resolved kind of a [SetOrMapLiteral].  k6kk0/// Indicates that the literal represents a map. k6kk0/// Indicates that the literal represents a set. kll݀/// Indicates that either
/// - the literal is syntactically ambiguous and resolution hasn't yet been
///   performed, or
/// - the literal is invalid because resolution isn't able to resolve the
///   ambiguity.           .	  K/// Mixin for any [AstNodeImpl] that can potentially introduce a new scope.    + +m/// The [Scope] that was used while resolving `this`, or `null` if resolution
/// has not been performed yet.       ",, =#SS =>e{{ ef x   (kkk   ()3N4RS  ^K^V^V   ^{_,_,/// Whether the AST node is a dot shorthand and has a dot shorthand head
/// ([DotShorthandInvocation] or [DotShorthandPropertyAccess]) as its
/// inner-most target._=   񻃠    	N$$   	
[7rr/// The ancestor of this node to which null-shorting might be extended.
///
/// Usually this is just the node's parent, however if `this` is the base of
/// a cascade section, it's the cascade expression itself, which might be a
/// more distant ancestor.   --/// Whether the effect of any null-shorting within [descendant] (which should
/// be a descendant of `this`) should extend to include `this`. BNM    a=bb/// Mixin implementing shared functionality for AST nodes that can have optional
/// annotations and an optional documentation comment.  bbb  b?cc cccccc$>cAcA   c$c%cf]cjcj  ccc   crdd7/// The first token following the comment and metadata.  ddd=Cdjdj   d=d>ddd   ddeUee   eUeVeaebf ff/// Returns `true` if there are no annotations before the comment.
///
/// Note that a result of `true` doesn't imply that there's a comment, nor
/// that there are annotations associated with this node.   gρ8hPhPu/// Initializes the comment and metadata pointed to by this node.
///
/// Intended to be called from the constructor. hxhh  hhh   i#ii/// Visits the AST nodes associated with [documentationComment] and
/// [metadata] (if any).
///
/// Intended to be called from the [AstNode.visitChildren] method. iii        LD M׀؀W7n׃@uބAy)_.~.o܇J}[qu=qՊ;<x~ϋߋ%,UYZfόЌ܍$I<َݎގ<cXݑ!FG,QRƓ#TVWדݔ,\rɕ,HgŕArÖɖIMOP×ǗΗڗ*.D]av֙L̙$89,}?fv>?ĞCZ[g}~Ϟa6Elno ؠ٠'>?ijۡܢ
WߢGViף%OeڤBcghtզ56B6VZ[g!"D[_`lͩ	06QUVbͩѩҩުOPĪŪѪ4R٬[\hӬ!"qҭ֭!fޯ!Y_+QRnǰɰʱ!@APɲϳj{)Vz34y8S۶߶,Q÷EIJVBxyϹйܺ'+,xȺۻ8ѻ7i L}ƽ۾"([_abx|¿=Vnoǿȿ @ @ @ @R @p @q @} @ @ @ @ @ @ A# AA Ag A A A A A A A B! B" B. BV BW Bc B B B B B B C C8 C9 CE Cm Cn C C C C C C D& DO Dl Dm Dy D D D E E[ E_ E` El E E E E E E F F F3 Fp F F G G GR Gu G G G G G G G G G H H H( H) H5 HU HV H H H H I I* IP It I I I I I I J J+ J, J8 Jf Jg J J J J J J J K K3 K4 K` K K K K K L L5 L[ Lz L L L L M. M/ M; Mf M M M M M M N= Nq N N N O O' O; O< Ou O O O O O P P, PG PH Pe P P P P P P P Q@ Q Q Q Q Q R R' R3 RP RQ R] R| R} R R R R R R R R S S S S- S. Sb Sz S S S S T$ TH Te T T T T T T T U U U) UW UX U U U U U U U U V V VJ V V V V V V W1 WW Wv W W W W X XO XP X\ X X X X X X X X Y% Yf Y Z ZH ZN Z Z Z Z Z [ [ [k [ [ [ [ \	 \# \% \& \j \ \ \ \ \ \ \ \ ] ]" ]# ]I ]U ]n ] ] ] ] ] ] ] ^
 ^ ^ ^f ^g ^s ^ ^ ^ ^ ^ _& _B _o _ _ _ _ `8 `< `= `I `i ` ` ` ` a a a  a$ a% a1 a] a_ a` a~ a a a b b; bJ bk b b b c c c; cQ cR c c c c c d2 dX dx dy d d d d d d d d e. eK eu e e e f f/ fT fX fY fe f f f f f f g, gT gX gY ge g g g g g h h9 h= h> hJ h h h h h h i' i+ i, i8 in i i i i i j5 j6 j j k' kt k k k k l l l lQ l l l l m# mO m m m m m m n n n n nA np nq n} n o o o o! oL oo o o o o o p p p	 p= p~ p q  q qT q q r- rZ r r r r r sF s s s s tB tb th t u	 uW uj uv u u u u u v v vZ v v v v v v v w w w wd wy w w w x x xG xM x x x x y y yh yt y y y z
 z zZ z z z { { {U { { { | |  |& |t | | | }B } } } } } ~ ~ ~k ~ 
  + , u {        ( Y           $ F     ) \          > ? K ` y         C D ` t x y      6 \ b |        $ > g          2 6 7 C f g     ' + - . z    " 6 8 9 s w   Z f    Y j     # $ O P { |     0 1 l m       F G d e       0 1 X Y         L M n o       @ A r s     . / j k       T U       F G n o       @ A       & ' ` a        6 7 z {     4 5 | }       ! d e     
  D E       J K       G H w x       + , i j       S T        + , I J } ~       ; < q r        1 2 g h       / 0 U V       # $ W X       - . [ \       # $ k l      : ; n o       6 7      9 : f       ^ _       $ % V W       2 3 ` a       P Q x y       L M ~        X Y         F G       6 7 f g          D      S W    . 2 x    ! o     C \      P |   = \ z {     ? O i k l         8 \ b c o        5 6 B c d p       * { |      + V }       # b    % & E c d     A G       ! n       $ % 1 Q R ^         ; B f         : ; G s t À ó ô   + Y Ā ā č ĵ     D ŋ ŏ Ő Ŝ   
    * . I i ƪ     R o q r ǩ       F ^ ~ Ȧ       - 1 2 > l m y ɩ ɪ      J K W ʍ ʺ    = > J ˕      5 9 ; < ] a } ̪   H  ͝ ͞     5 6 ·     ' I h i u ύ ώ Ϯ ϯ ϻ    	 
 ? X Ё Н    4 W [ \ h ћ ќ Ѩ      G w { | ҈      A r v w Ӝ Ө    % O t ԡ Ԣ Ԯ   	 T ՘ ՜ ՝ թ        > B S q ֲ     ; U V ׃ ש ׫ ׬   	 B ؃      L o { ٓ ٔ ٠ ٵ ٶ    & , } ڃ    2 J h ۀ ۝ ۡ ۢ ۮ     & * + 7 X Y x ܝ ܡ ܢ ܮ    * + 7 _ ` l ݱ ݲ ݾ   4 S T ` ޯ ް ޼  J K W ߂ ߞ ߢ ߤ ߥ     2 3 w x       , L S           7 8 D z       O P \          L         I U l m y          B C O p q }       ! m n z      C j n p q      M       7 N O    :    ! o      < H d e           M ^ u        " J K W z {          V      " # / Z w { } ~    e i      / i m     & [       D ] _ `      F G }     ; U s        @ A M         6 7 C k l          W X d       P          % Z       ' + A d    $ % h       
 % & 2 ] ^ q          # T U a    MNZ
#:iFab()5VWc'+,8fgs<=I<=I0PV		#	8	U						

_
f






 $&'RVhW$?@,N~$%jCbcgs=>J`aXtzHh?\%<a%=C]abn	
KkopAB{^@m1f6`-i(.dt  < = ^ p r s      !-!.!K!c!i!j!v!!!!!"""")"]""""""""###&#N#######$
$ $V$$$$$%%K%l%%%&& &*&2&8&9&W&l&&&&&'!'''('@'r'x'y'''''''(('(;(](f(l(p(q(((((()),)@)b)k)q)u)v)))))))*:*N*c*y*z******++]++++,,G,,,,-9-I-f-g----...<.H.m.n.~...///>/?////001020v0000011>1Y1Z1111222R2g2222233!3"3s333444446474444444555)5F5G5S5q5r5~555555555666)6E6F6R6{6|66666667777C7D7P7k7l7x77777788808L8i88889929R9r9999::0:P:o::::;;,;S;v;;;;;;</<0<<<b<c<o<<<<==!=9=S=k=====> >->\>>>??G?t???@@K@v@@@@A%A&A2A]AAAABB3BPBTBVBWBBCCCCDCCCDDNDbD~DDDDDDDE(EDEHEkEEEEF'FhFFG	G'G(GgGGGGGGGGH%H&HkHHHHHI+I9IcIdIIIJJ#J$JeJJJJJK.KEKnKoKKKKLL0L1L=LSLTL`LLLLLLLLLMMMM,M-M9MVMWMtMuMMMMMMMN'N-N}NNO
OO"OiOoOOOPPPBP[PPPPQQ0QPQsQQQRR5R_RRRRSS<SdShSiSSSSSTT;TTTkTTTTTTTTU=U>UUUUUUUV(VWV[V\VhVVVW7W;W<WHWxWyWWWWWX"XSXpXXXY#YNYYYZZ6Z^ZZZZ[[[ [K[m[[[[\\\\E\z\{\\] ]=]T]]]]]]^^-^n^^_____c_o________````B`F`Y`u``````aa5a9aYaabb4bbbbbbbbcc/c0c~ccccdddfddddddee+eDePelemeeeeeefff)fSfTf`fwfxffffg:gUgegggghh,h3hbhfhghshhhhhhi)i*i6iliiiijjjjHjijmjojpjjjk	k(kHkdkkkkllblllm0m]m^mmmnnFnnnno8oGo`obocooooopppp7p8pwp}ppqq:qYq{qqqqqqqr)r*r6rvrwrrrrrs+sTs}s~sssstt1t5t7t8tPtTttu<uuuuuuuvAv^vbvvvvvvw;wuwwwxxx>xrxsxxyyDyEyyyyyyz8z^z_zzz{{{${%{c{i{| |=|Z|[|||}}L}~}}}}~~Q~m~n~~Ru `xy?@LklMuv4@F6T{;[~!%&2YZfTr:hlmy%)*6l
%M{,dw}:>?K@er	3RZ`dfgA^u EF>nG,m< J&8b~NT"q/5*w}J"(x#)z	_ $*nTZ :;Gbco!%&P\ULhi!78)*6NOqr~6R~8Y"#P~-12>pq},_cdp!@qr~/x|}"$%bf"c F]^ =^_h 9:Fef~67Mj<Rj	
=>Jno/34@jk;n!".yz	
MhLNO":a$(s9z78o01Ii&'3`am MNZÕû>?KĎĩ#HhnŚų.YtxyƅưLǆǵǹ%fȂ+/Fx|ɗ eʧPi˄˅˳˿45́̟̠()a͖͗BhiζGυϳϴ.sІУФ<Ogijѩ	)*6MNZyzҘҙҥҼҽ'(iӁӂӱӲAGԔԚ &qՊՐ/HN֖/GMט/Kh؊ح1Izٗ1Suڭ;hۄۈۉەۻۼFRܕܖܢܹ6݄ݤݨݩݵ17ވ2Ywߚ߹ߺ 7fjkw+rvwYCd >[\h=^">{cwx34m
-.LM.?c+No*./;ijv	IJ}>d'Rr8a
Gpq7j lYpq}i1Mimnz&*+7bc)*6YZ{"?@LLP2SEGH 2^L{  1 u v     2z~ZQyJy4u/12j07RVWc78Dl		H			


h




ioe'FGght2C] 89EhiuDw&Qnrtu4Sq=~*+QWDhiN=h?f
*2e|Lc]&9?Bbgij'c Ccd    `   !!/!K!h!n!p!q!!!!"?"""""##"#q#####$ $!$e$y$z$$%%A%U%V%%%%&&!&"&s&&&&&''!'9':'W'X'd'x'y'''''(8(t(z((())+)H)c))))))***X*Y*i*u*******++;+l+p+q+}+++++,	,2,3,Z,},,,,,--&-'-3--------. .1.5.P..//d////00"0b0r000011T1U1y11112222R2{222222233303K3c3|333333344)4a4~4444445555.5/5w5556666#6$606q6r6~6667777G7y7z77788G8h8l8m8y888899Q9b9p999:::U:m:::;;.;/;B;F;G;S;~;;;;;;< <^<b<<<<==X==>>2>3>z>>>??(?*?+?n???????@@	@*@+@g@m@@@AA0AMAxAAABBB	BBFBGBSBzB{BBC CCCCjCkCwCCCDDDD D7DfDDDDDDDDDE6E7ECEmEnEzEEEEEEF7F8FuFFFFFFFG"GHGoGGGGHHHH;H[HHHHHHHHIII:IWIIJJaJJJJJKKK>KDKKKKLLLL&LNLOLuLLLLLLLM MAMyMMMMNNN6NMNNNjNNNNNNO
OO=OWOYOZOOOOOOOPPPP7P8PUPVPbPPPPPPPQQ&QFQiQQQQRR$RERIRJRVR{R|RRRRRRRSS9S:SgSSSSSSSTT3TOT|TTU
U2U3U?UUUUUUUVVVJVZV^VVVVVW3W~WWWX
XX X!XiXXXXXXXY0YOYiYYYYZZ"Z#Z/ZQZRZ^ZZZZZZ[
[[?[n[r[s[[[[[\\>\l\\\\] ]]]X]]]]]]^"^D^H^J^K^y^__%_D_F_G______``I`````a a"a#aeaaaaaaab7bZbtbbbbbbc!c"c.c]c^cjcccccddLdPdQd]dddddeeLeMeYeeeeff.fPfTfVfWffffg;gpgggghhZh[hhhhii iOiSiTi`iiiiiij j!j-jSjyjjjkkkkDkekikkklkkkklll)l[lllmmm4mHmJmKmmmmmmmnn)nDn]ncndnpnnnnnnno)o*o6oooopppp+pVp}pppppppqq$qeqqr rrrrUrxrrrrrsssss>s?sKsnsos{sssst6t7tCttttu	u8u<u>u?uWu[uuuuv v/vFvHvIvvvvvw
w'w-w.w:w_w`wlwwwwwwx x9x:xFxxxxxxxxy$y(yIyyzzZzzz{{5{e{f{{|#|%|&|`|||||}}}}7}8}V}w}}}}~~6~:~;~G~a~~~~~~)W(,-9dE&T|};39)NO_k1=\]i}~)*gm:WyLrs/0<BCOx$(*+RVj"c P%&@YZ45d_=?@IJij67z{a3Ut>x-\"&'3|} &'3PTUa&]abn6qBvFGS Bj*kHTyz>Nrtu39&B_ +7a6hlmy+_=_ =~
*0kiF*o QbhLFi06)FG&L0`a1? k{Lde!-@BC!CDbco:Fe%GKLXq":@aefr WXd!Da QR^)JNPQ´&SÈð045AcdpĦ#S~@rư*2gǚfȮEqɴɺBCʍAhˇˎ˫1S̄̦3?V|͞7^jΈ:[Ϙ!fЍЙаEeцѤ	*045|҂<ӋӚӾCGHTk԰@DEՖթկKpֺֻ
-3ׁ D{,0Ol٭ =>ڎ*Omnz۔ە.Prvw܃ܵܶ AEFR݂݃ݱ[\hޞLMY߄ߥߩ߫߬\578 8_&UV}GHT.2G'tGHXdRwx23Rlm	)RTU=>JfgsOP\xy(Lk>h	VWc78DFwHn9[$eFiu#FJKW|}"OP\aptLy,Rrs7
56z&?fg%+m23?ST`    - . H h    "Il1dhiu)YZf!TUa V/`deq=`M	-	[					

-
.
\
h





 ?ij12Qkl7Z./;jkwabn Bf&Eq	6:;iu+UVb.[x7]	4V{&*FSa8Ka*+_tu	:<=v+KLXvw  M    !!,!O!q!!!""*"J"k"o"p"""""#	#
##9#:#F#~######$$^$$$$$$$%
%E%x%%&&@&`&&&&&&''=']'a'c'd''''((W((())7)8)))))))*1*^*****++_+++,,^,},,,,,---I-O----.$.B.k.m.n..../ ///*/E/F/R/h/i///////000g000011!1p111122!2>2c2222333O33334 44B4d4h4i4u4444555T5X5Y5e555556666M6N6Z666666777!7[7\77777778%8^8b8c8o8889%9)9*969q9999::I:r:s:::::;;1;M;s;;;;;<<N<}<<<<<<=<=H=a=b=~==>>>7>]>{>>>>>>>?
???C?D?p?????@@0@1@=@h@@@@@A
AA%AVAABB5B7B8B}BBBC$C]CCCCDD8D<D=DID}D~DDDDE,E0E1E=EsEEEEEF/F0F<FgFFFFFFG/G3GJGyGHHH@HBHCHHHHI)IcIIIIJJ3J7J8JDJvJwJJJJKK!K"K.KdKKKKKLLL(LSLtLLLLLLLM$MeMMMMN/NTNUNNNNNOOPOQO]OtOuOOOOPPP(PUPpPPPPPQQQQ'Q@Q]QsQQQQQQQR"R8R>RORSRTR`RRRRSS(SJSnSoS{SSSSTT-TJTlTpTrTsTTUUiUUUUUUVVV V_VVVVVVVVVW2WUWqW}WWWWWWWWXXXX=X>X]X^XXXXYY-YQYzYYYYYYZZ>Z?ZKZvZwZZZZZ[[[[I[J[~[[[[[\%\N\\\\] ]]T]U]a]x]]^^^^$^O^r^^^^^^^_9_w____```````aaa1aTaxaab/bNbObbbccc<cBccccddddMdkdlddee5eIeJe}eeeef
ffMfdfefffggg:g;gsgygggh	hhLhRhhhhii%isiiiijjjTjyjzjkk&k'kjkkkkkkkl'l(lVlbllllllmmmmLmMmYmmmmmmn	n
nnJnKnWnnnnnnoo
oo[otoxopphpppqq/qyqqqrrr5rcrrrsss'sssst@tttttttuNuTuuuvvvbvhvvvwww?wkwlwxx$xAxBx_x}xxxxxyy	ySyTy`y~yyyyyyyz
zz]zzz{{J{k{{{{{{{|#|$|0|Z|[|g|||}}D}J}\}`}a}q}}}}}}~B~C~O~t~~"Gn&KS	fgs_]y3OP
34RS_}~F{$De5cght<k#Dcgij
T/12pO:W}12o6Z[g@DFG]J56gm9[y	deq*`(Sy4.Z\]3Us(^>]W6oOgh >@At12TUa Am/34@vw./;qr Mv
'(4~59QpCu&'xd"(xF#q6<{e])*6XYe1iJP%+h[_~2 \7Gde>Jtu.:fgIJy$cCf45cdp$]cbr9\u­$NRSÁÍü !-]zĕĸ:;Ł^_kƠơYǊǽ5no{&Hquwxɩ3aʐʒʓ45w˜
59:F́̂̎gͨͬͭ͹+,8aΘΙΥ  >σ$=>ЍЩ;Aсч"#sҕҼҽ+TVWӑӵ	#$mԅ$%]xլ,Ne֋֭&N׀פת+VZ[؉ؕ'abٚZ[ڙGoیۍۙA܇܋܌ܘ&*,-w{UYށ޼/n߻(DTwx(w>cAg)*6fgs
=>co"P}~12>4Y|;X\9^dF.Top F.01z/U$ST`/34@_%RVWcHIU!?cgij"R45EQ|}-Cef	
BeJP%v<U$Gi12>wx$%R{BFGS  5 e    Ik#Z&89o
\stEn:;ef8rxAe		,	N	x			

	



P
Q
]



89Ebco=ABN+,j2[\h "Dj15-1N^Hf=_5z&'Ebc)KL/Rw&?@L^_Ie6X fgs+Z^_kHI-`FJKW   - l  !!W!k!l!""!"J"K"v"""#
#3#5#6#m######$$$$)$S$T$$$%%%h%%%%& &&M&g&&&&''.'2'3'a'm'''''(5(9(:(r(((((()$)Q)U)V)b)))****)*d***++4+Q+R+^++++++,,:,U,Y,[,\,,,,--J----....^.j....///0/</`/a/x///////006070C00000111%1q1r1~1111112<2Q2U2o223+3x333334K4L444445&5*5+575g5h5t55556 6O6P6\66667777	73777M7k7788_8r8x899X9h99999::^::;;<;=;;;;;<<<X<d<<<<<<<<<=&=g==>>>]>>>>??)?*?s????@*@A@B@^@{@|@@@AA(A*A+AcAAAAAB BBB B,BPBQB]B}B~BBBBBBBC%C7CTCwCCCDD0DaDDDDEE2EUEYEZEfEEEEEEEF1F2FfFFFFFFFG*G+G7GlGmGyGGGGGH&HSHWHXHdHHHIIDIyIIIIJJMJNJZJqJJKKKKKGKgKKKKKKLL.LxLLLM3MHMiMjMMMN
NNNN2N6NMNNNO%OoOOOOPPPWPPPPQ;QPQmQnQQQQRR8R9RVRtRuRRRRSSZSfSSSSSSSSSSTT(T)T5TQTRTrTsTTTTUU&U:UWUzUUUVV-VXVzVVVWW3WXW\W]WiWWWWWWWX0X1XaXXXXXXYYY:Y>Y?YKY{Y|YYYYYYYZ3Z4ZcZZZZZ[[5[][[[\\B\C\O\\\\\]]6][]_]a]b]]]]^/^j^^^^_$_&_'_\_~_____`&`?`d``````aaaaUaVabaaaabb;bhbibubbbbcc c"c#cgckcdd*dkddee#e$eqeeeeef)fBfifjfffg9gagcgdgggghhhh@hAhMhghhhhhhi iBikiiiiiiijjIjJjVjjjjjjjk
kTkUkzkkkkll	l<lilmlnlzllmmmm<mqmumvmmmn nnn8nXn|nnnnnnnoohooppZpqppppqqqcqqqqqrr*r+rZr`rrrrs$sAsascsdssssssttt'tAtBtctdtttu!u'uouuuuuv%v=vYvvvvvvww=w]w{wwwwwwxxFxGxSxxxxxyyyy#yRySyyyyyyz*zDzwzzz{ {H{I{U{{{{{| |>|_|c|d|||}"}s}}}}}~"~F~z~~~~~~~*@Hx@vb0}T5MN}%78{ 67CYZx)IMNZz{	1fjkwLq)/~&>?^wx	h}'t/0+EF@i\#Hiu
34 l~9Qnrs;Z}5Xx~&PTUa%D#$0Rh'PQ|F^<\};<$7|067h
 ,yz!QUt6gQUVb467\`y`
\	Up%&uHg1c<c([_`l-[_`l28<=w1bh#`a;m34@;`6OSx6`uvam	"()5XYe/378DjP)t(I]cd3Sflm W`ou!nĠħ@ő,01djƸ	)^ǡǣǤ9zȲȳKOrɔɸHʒʠʽʾSˁ˚˛f̏̛̶̷ <\{ͣ?@LΊ΋Η%)*6lϗϿ#UVbЍЮвде#dѯ0GHzҔҕҵ6BZ[gwx/56BfgsԨԩԵ'(4}~Պհ6քִָֹ#OQR~ׂ4vء'-;hٓٝ٣67ڇ=یBiܐܑ-BH݌ݵݷݸ=>fgsޘޙޥAmߕ߼	
LM>swyz Z=WXy*+7STpq3QpPQ] $%1ght-U~*u-134w{\opDbdeY	Ce2Xx*0RVWc	4aefr78DKjkw;?@Lyz'ST~()5xyGIO%ABo2>\]}~)c|4PTU{()5XYe23?zKLX  C   TwHO~ ABN}~2f267Cvwijv(IMOPdhS			!	:	;	[	u	w	x				
8
9
E
a
b



28y"BItxy;bh4oFGS;Z^`auy Z~0t9`bc)[\
VWc/OVzEFRxy<g c+IStxyY/MQST!<Yt^j(u    L   !!	!"!8!9!V!v!x!y!!!"""","-"9"_"`"z"""""#!#%#&#2#d#e#q######$9$c$$$$%%%%a%|%%%%%&&6&V&\&&&')'D'H'I'U''''''''((0(q(((())))9)Y)[)\))))))****@*A*Z*y****+++++D+E+Q++++++,,B,g,,,,,,-?-Z------..3.9.e../ /K/f/j/k/w//////00090l001<1R1S11111222_2w2x222223/3P3\3x3y3333333333414I4h444445525O5S5T5`55555556 6#6G6K6L6X6~66666677D7^777778-8.8:8Q8888899-9G9c9g9i9j9}9999:::s::::::;D;b;c;;;;<</<1<2<S<<<===:=>=Y==>>T>j>k>>>>>? ??5?m?????????@@-@F@Z@u@@@@@@@AAAA0A1AQArAvAwAAAABBB+BxByBBBBBBBC6CBCoCpC|CCCCCDDDD2D3DFDgDDDDEE/E3E4E@EEEEEEFFFFOFPF\FFFGGFGGGSGGGGH&HoHHIIUI^IdIIIIIJJJJ#JCJhJJJJJJKK:KXK\K^K_KyK}KKKKL,LlLpLLLLMMkMMN"NMNjNkNNNNNOOOO$OPOQOOOOPP&P'PTPiPjPPPPPPQ2QGQHQQQQQRRRZR}RRRRS&S'SwSSSST(TJTKTTTTTUUBUeUqUUUUUUUUUVV V,VLVMVYVyVzVVVVVVVWWWW<W=WIWtWuWWWWXX0XNXqXXXXYYY,YQYrYYYYYZZZZBZCZOZZZ[ [B[P[T[U[a[y[[\\\\\R\S\_\\\\\\].]/];]v]]^^5^h^^^__-_._:_____``)`J`d`h`j`k```a=aaaabbb\bbbbcAccccddd/dRdSdddeeXeoeeeef flfffggngghh!h;h=h>hhhhhhiii'i(iuiiiiij/jHjmjjjjkk7kUkwk{k|kkkkll)l/lRlVlWlclllllllmmAmmmmmmmnnDnnnnnnoo0o4o5o`ofoooppcppq(q)qZqqqqqqqqr
r0r6rJrNrOr[rrrrrrsssKszssttt#t)t-t.t:tptttuu8u9uEuuuuuuv2vvvzv{vvvvww9w=w>wJwwwwwx)xpxxyy`yyyyyzNzz{<{[{{{{{{{||^||}/}L}M}}}}}~~~~#~J~K~~~~ Bgh =>]wx	Tw#RS_89Eabn	(Ha.5Zy IJV|}?p9mGHT)-/0\`tKbc,8QRY]^j*HIUw$op|)j Q}Fv)-{8-NO)9ab3Tgh.Qm&FJK[gABp !-]^j?@L1RVXY*eEk%+|()U[4KLh{|%&s+,8MN^j'-u@dhiu!".tu">BCOg,2DHIU
(V|}+OSUV:y9Iwx'sth*G_ QUVb(*+\`xSno45Abc	>?Kb!".xy*.LzNij'KMN
#$o
'Otxy%&^	7_`lXYe0vH]tu'(x./[g~«·	%&R^ÃÄðü7XYyzFGŔŨũŵ)-.:RuƌƟƥ4@^ǕǙǚǦ%ioȌȐȑȝ<B_ɐɔɕɡ39=>jvʎ(_cdː˜˭!G~̂̃̯̻[͖ͪ
>b΋Ϋ.2S}ϟSTЗд	56BWXьђ4W҄Ҩ#'(4NӎӏӛӶ$GKLX}ԝ
FM՝ !<@]zֻ&'>Y[\ז׹&A]d؂؆؇ؓ>?Kْٓٟ"#/~ڋ,FPquvۂۢc܃ܜ;?ABuyݲ8g}~&HTlm߆߇߽-JNO[<@AM"#/F#?CEF`d2HI`{}~+,E`|]^jABN7Jeo8>[_ab%Odfg39:Fijv UVb(OSUV*z<ap=>Uh /FNTXYFc&Z\]txQ&'m'FGSst>E`;<H Dz{"= L
Iav$%8<=It  Y    "#@^`a @A}.PTUa /^bco!9["U}(s!"?Cc		$	A	B	l						

)
5
T
U
a






/6TXYe"F`!".i*YZf>c,GKLXN/;WX-FGvjkwMc	&-hlm%&2pqD^JlE+QR*+|!BNijv/5
)Fk  0 4 5 A d e q     !/!`!d!e!q!!!!!!!")"T"{"""""#A#B#N#y########$$E$$%%%%P%m%n%%%%%&&#&9&:&X&Y&e&&&''"'#'='X'r''''( (((;(<(H(u(v(((())))!)i))))*,*N*o*****++L++++++,
,,,,=,A,Y,,,-G-q-w--...g...///4/:/y////000b0000001*161L1M1Y1}1~11112	2'2+2,282z2{22223 3@3F3W3[3\33333334444J4f4444445535P5T5V5W555566B6f6y6z66666777%7&727G7H777777777858R8r8s888899,9092939W9[9y99:C::::::;,;A;B;q;;;;< <<"<#<A<B<N<e<f<r<<<==/=0=W=====>>0>L>i>>>>>>?	?
??F?G?u?????@@2@8@I@M@N@Z@@@@@A!ABAkAlAxAAAABB0BMBmBqBsBtBBBBC1CCCCCDDDDbDDDDDDDE*EIEfEmEEEEEEEFFFFJFtFFFFGGGGHGiGmGoGpGGGGHH9HHH\H}HHIIaIIIIJJ2J3JlJJJKKkKKKKKKLCLfLLLLLLLLMMMDM`M|MMMMMMMN
NNNANBNmNNNNNNOOOJOKOWOOOOOPPPnPQQOQjQ}QQQQQR.RcRRRRRRS	STSSSSSSSSTT:T`TbTcTTTUUDUUUVVV:V@VVVWW0W1WsWWWWWWX5XYXyXzXXXXXXYY>YXYYYYZZZZZBZCZOZiZZZZZZZ[[[@[o[s[t[[[[\'\-\?\C\D\P\\\\\\]]]8]c]g]h]t]]]^^^!^q^r^~^____ _K_h________`0`V`e`y```a3a~aaaab5bObPbbbbc9ccccccdd^dddddddddee7eSexeeeeeeeef f!f-fWfXfffffffgg$g^g_gkgggggh0h1hhiici~iiiiiijBjvjjjjkkkkfkkkkklll	llKlllllmm^mwm{mmnn)nnnnno2oIoJoooooopp=p>pppq#qiqqqr r&rvrrrrrss:sUsVsbszs{sssstt8thtttttttuu8uXu^usuwuxuuuuuuuvv:vsvtvvvvvwwTwXwYwewwwwwxxGxKxLxXxzxxxxxxxyyy7ybyfygyyyzz#zdzzzzzzz{{!{F{s{t{{{{||| |k|||||}}*}.}/};}q}}}}}}}~4~u~~+,s!qeq	)*\r
156B}~ ABNp/efrVZ[g!b%&Cacd$%1QRyz
156Bmnz34@{	`am,@`mw@w*c}#NObfgs&Lrv1`d!=Z[|%&Cacd
;`a~7C"Qlpq}Ck\#$0jkwj156Bmnz+cQUVbL%Uauv&dhjk5^	
N67_~FGSyz>?Ks
E J!".V;i"Rstd5\'(4]^9XFm 4gklx(\`aq}*Z[gHIU~;?AB\`}>xFk{,./i,Qm267CmnzKLX78DCciE`deqM#%&h39:Fhiu'O	TX]ċļ8HxyŭCefƬƿ%OPoǆǇǦ <>?}Ȩȴ,-9XYeɬɭɹ56Bbcʅʨ6Za˚;<my%1hiuͰGmΔ8<=ItϚϽ6wП)EGHюѪ=>YuҐҗҵҹҺ./;qӖӹӺ $%1\z~ԀԁԛԟԼQՅագդ *+a{֝֣֤ְRS_ׅ$%1|$(*+CGbوNqڏڐ%'(^ۋۨ۩#)q܉ܪ489Eno{ݞݟݫ;?@Lނޱ[\hߓߵ߹߻߼	,P
R^wx=>Jp
5\`bc}/3"jxEqrEms9Phz{ Nv|BYq1R^yz;q<B2Su*Cr%)*6wx45Ac ,yz 5m!l,023(d#C07fjkw&\=^bde	J!"o%=>[\    [ a    :U|	F_y34@yzFi	
Ac!%]+D\]N			0	C	D				
#
)
w

4NO+i!01xKL9MS+,e0lr&N	4a	
CDPstIe?ek\6<*ST`9Wm*0BFGSnLai'/Usy3e{  3 e {        !!/!B!q!!!!""8"j"""""###@#w##$$B$y$$$$$$% %d%h%i%u%%%%%&&&:&V&t&x&&&&&''!'C'e'''''(+(u((((((()0)U)a)x)y)))))***%*&*2*U*V*b******+ +++<+=+I+l+m+y++++++,,R,S,v,,,,--- -k-----....&.W.p.t.v.w....//E////000P0j0k0000111E1K1111122(2)2?2C2Y2233I3f3g33334444P44444445505R5t5x5y55555556'6(6V66666667797j7777777888b88888899999G9K9`9s9999:
:':@:Z:v::::;>;r;;<<<	<O<[<<<<<<<="=c===>1>`>a>>>?.?U?V???@ @F@H@I@@@AEAFAAAAB.BsBBBBBC"CUC\ChCCCCCCDD8D9DED]DDDDDDEE?ECEDEPEEEEEEFF9F:FFFzF{FFFFFFFG"GRGSG_GGGGH%HUHHHHHHHICIIIIIIIIIJ'JBJFJHJIJtJJJJJJKK#K4KCKDKKKKKKLL4LPLdLLLMMMFMMMMN/NONlN}NNNNNOO&OKOOOOOOOPEPpPvPPPQAQQQQR	R;R\RRRRSS(SPSsSSSSTT2TUTmTwTTTTTTTUUU#U'U@UaU~UUVV`VVVVVWW#WMWWWyWWWWWWXXXjXXXXYYY"Y=YyYYZ,Z\Z}Z~ZZ[[[n[[[[\\\\^\\\\\\\]]]$]%]1]V]W]]]^8^b^^^^__K_r_____```9`l`p`q`}`````a.abafagasaaaabbb&b\bbbc	c
cc?ctcucccccccddd4dGdddeeeeKelexeeeefffff<f=fIfofpf|ffffg!g"g.g{g|gghhhh'hRhyh}hhhhhii6iijj\jjjjjjjk7kdkkkkkllelllmmdmmmmmmn5nQnWnnnno,oJosouovoooppp%p&p2pNpOp[pqprpppppppq q&qpqqqqr$r*rzrrrrss*sEslsssst%tAtWttttuuuuu0ufujukuwuuuuvvvv'v`vavmvvvvvww'w(w4wnwowwwwwxxx8xqxuxvxxxyy8y<y=yIyyyyzz.z^zzzzzzz{${F{b{{{{{{{{|1|r||}}}}^}|}}}}}~~!~=~e~~~~~~~#$R7V,Mmqst8vwF\w9\{ 8Ttxz{*k\yz%&Cab(iG^{|.Q=V~-.:ghtN~+,8c12>]^|}'(4PQjLl FGS%&2m,WyZFJbz	V>JL6TU;wx4:{DswxAek}	<@]'i	45OjY})xy/3Nk<bc')*KsFGv!".MNlmyB`am&Gj"Df	9:h%T5cdp489s1c	)17ZlN
4KMN 6Sqwx$Z_	
X!F&()@D^p79:p!'(4[\h =>J045Al2oNo{#Km NO}ìðñý 6cČčę>ŁŅņŒŽ.2Yơ"^bǳJ[Ȝ6Fcdɧ=fhiʷ=>Jjkwːˑ#\̀̜̹5Rx͜͠͡:;GjkwΨ89rϢϦϧϳRxРСЭDfщэяѐѥѩ
'D҅Ҿ*TUӞ;cԀԁԱ%?@ST՜՝թg}֒ְ F\׃ן-.:YZx؜ؠءحCg١پ045Aqrڙ5Qہ۲67Cn܉ܬ 1Pnݯ8Hefޗޮޯ
Ojvߕߖߢe0Iflmy
$(8OpOoAMcefI|Dfr :SrHIU|}?i*JNPQEN7^`a+1y 2Z)*e=>Ju MQk1GIJ=ABN~._;?@LHJ&CDr~D`}~
*+|(VWg{,F^{   	 7 C        ,-9t9:Fq<}*+SQR^z{$DKCDP op|		E	b			

=
V
X
Y



V6:;Glm)-.lrKx#6<IS!2689%XY	245uyk
$'tQ
Y 17
<B[#BC6^rsJo{
VV\"Fu  ! % & 6 B v   !!g!!!!""$"K"u"}"""""""###&#*#+#7#n#o#{###$$$$ $5$S$$$$$$%%%%(%<%Z%%%%%&&#&N&O&[&&&&'')'-'/'0'o's''''((A(f(w(()$)l)|)))))*?****++0+1++++,,,8,9,,,,,--!-"-d---------.F.G...///S/Y////0
0%0L00000001 1!1-1]111111222*2c2d2p222222333 3,3q3r3~334
4-4I4t4u444445565R5r5v5x5y55566.6o66667#7L7N7O77777888V8{8889999*9^9_9k99999::C:G:H:T:::::;;E;F;R;};;;;;< <A<w<<<<==,=8=L=M==>>>>7>=>>>J>~>>>>>??3?t??@:@W@X@r@@@@@@A AAA/ANAvAAAAAAAAB+B,B8BhBiBBBBBCC=CfCgCsCCCCDDDDD1D5DODDDEE1E2EEEEEEEFFFGFaFcFdFFFFFG	G
G'G(G4GTGUGlGmGGGGH!HEHfHHHHHHHIII ICIDIjIIIIIIIJ-J1J2J>JfJgJsJJK	K/KdKKKKKKLL2LMLQLSLTLlLpLLMMIMmMMMMMMN
N&N(N)NaNNNNNNNNNNOO'OBOZOaO|OOOOOOOOPP4PTPPPPPPPQQQQZQ}QQQQRRRRaR|RRS SSSS1SVSvS|SSSTTITPTQTqTTTTUKUTUZU[UvUzU{UUUUUUV VVVKVVVWWWLWeWgWhWWWWXXXKX^X}XXXXXXYYY%YbYcYoYYYYZZ<ZiZjZvZZZZ[[[[[5[9[S[|[[\%\B\C\q\\\\\\]]]]_]k]]]]]]]]]]^#^)^a^x^^^^__9_=_>_J_c_|__________`*`Y`]`^`j```aa:a;aGaaaaaaaabDb{bbbc!c"c.cccdcccccdd:d;dGddddddee*eNeReSe_epeeeffffcfiffggJg]gcgggghhhIhrhhiii	iOijipiij jAjbjojjjkk%k+k/k1k2kqkkkkkkkllfl|llll   AdjacentStringsAdjacentStringsImplAnnotatedNodeAnnotatedNodeImpl
AnnotationAnnotationImplArgumentListArgumentListImplAsExpressionAsExpressionImplAssertInitializerAssertInitializerImpl	AssertionAssertStatementAssertStatementImplAssignedVariablePatternAssignedVariablePatternImplAssignmentExpressionAssignmentExpressionImplAstNodeAstNodeImplAstNodeWithNameScopeMixin
AstVisitorAugmentedExpressionAugmentedExpressionImplAugmentedInvocationAugmentedInvocationImplAwaitExpressionAwaitExpressionImplBinaryExpressionBinaryExpressionImplBlockBlockFunctionBodyBlockFunctionBodyImpl	BlockImplBooleanLiteralBooleanLiteralImplBreakStatementBreakStatementImplCascadeExpressionCascadeExpressionImpl
CaseClauseCaseClauseImplCaseNodeImplCastPatternCastPatternImplCatchClauseCatchClauseImplCatchClauseParameterCatchClauseParameterImplChildEntitiesChildEntityClassDeclarationClassDeclarationImplClassMemberClassMemberImplClassTypeAliasClassTypeAliasImplCollectionElementCollectionElementImpl
CombinatorCombinatorImplCommentCommentImplCommentReferableExpressionCommentReferableExpressionImplCommentReferenceCommentReferenceImplCompilationUnitCompilationUnitImplCompilationUnitMemberCompilationUnitMemberImplCompoundAssignmentExpression CompoundAssignmentExpressionImplConditionalExpressionConditionalExpressionImplConfigurationConfigurationImpl ConstantContextForExpressionImplConstantPatternConstantPatternImplConstructorDeclarationConstructorDeclarationImplConstructorFieldInitializerConstructorFieldInitializerImplConstructorInitializerConstructorInitializerImplConstructorNameConstructorNameImplConstructorReferenceConstructorReferenceImplConstructorReferenceNodeConstructorSelectorConstructorSelectorImplContinueStatementContinueStatementImplDartPatternDartPatternImplDeclarationDeclarationImplDeclaredIdentifierDeclaredIdentifierImplDeclaredVariablePatternDeclaredVariablePatternImplDefaultFormalParameterDefaultFormalParameterImpl	DirectiveDirectiveImplDoStatementDoStatementImplDotShorthandInvocationDotShorthandInvocationImplDotShorthandMixinDotShorthandPropertyAccessDotShorthandPropertyAccessImpl
DottedNameDottedNameImplDoubleLiteralDoubleLiteralImplEmptyFunctionBodyEmptyFunctionBodyImplEmptyStatementEmptyStatementImplEnumConstantArgumentsEnumConstantArgumentsImplEnumConstantDeclarationEnumConstantDeclarationImplEnumDeclarationEnumDeclarationImplExportDirectiveExportDirectiveImpl
ExpressionExpressionFunctionBodyExpressionFunctionBodyImplExpressionImplExpressionStatementExpressionStatementImplExtendsClauseExtendsClauseImplExtensionDeclarationExtensionDeclarationImplExtensionOnClauseExtensionOnClauseImplExtensionOverrideExtensionOverrideImplExtensionTypeDeclarationExtensionTypeDeclarationImplFieldDeclarationFieldDeclarationImplFieldFormalParameterFieldFormalParameterImplForEachPartsForEachPartsImplForEachPartsWithDeclarationForEachPartsWithDeclarationImplForEachPartsWithIdentifierForEachPartsWithIdentifierImplForEachPartsWithPatternForEachPartsWithPatternImpl
ForElementForElementImplForLoopPartsForLoopPartsImplFormalParameterFormalParameterImplFormalParameterListFormalParameterListImplForPartsForPartsImplForPartsWithDeclarationsForPartsWithDeclarationsImplForPartsWithExpressionForPartsWithExpressionImplForPartsWithPatternForPartsWithPatternImplForStatementForStatementImplFunctionBodyFunctionBodyImplFunctionDeclarationFunctionDeclarationImplFunctionDeclarationStatement FunctionDeclarationStatementImplFunctionExpressionFunctionExpressionImplFunctionExpressionInvocation FunctionExpressionInvocationImplFunctionReferenceFunctionReferenceImplFunctionTypeAliasFunctionTypeAliasImplFunctionTypedFormalParameter FunctionTypedFormalParameterImplGenericFunctionTypeGenericFunctionTypeImplGenericTypeAliasGenericTypeAliasImplGuardedPatternGuardedPatternImplHideCombinatorHideCombinatorImpl
IdentifierIdentifierImpl	IfElementIfElementImplIfElementOrStatementImplIfStatementIfStatementImplImplementsClauseImplementsClauseImplImplicitCallReferenceImplicitCallReferenceImplImportDirectiveImportDirectiveImplImportPrefixReferenceImportPrefixReferenceImplIndexExpressionIndexExpressionImplInstanceCreationExpressionInstanceCreationExpressionImplIntegerLiteralIntegerLiteralImplInterpolationElementInterpolationElementImplInterpolationExpressionInterpolationExpressionImplInterpolationStringInterpolationStringImplInvocationExpressionInvocationExpressionImplIsExpressionIsExpressionImplLabelLabeledStatementLabeledStatementImpl	LabelImplLibraryDirectiveLibraryDirectiveImplLibraryIdentifierLibraryIdentifierImplListLiteralListLiteralImplListPatternListPatternElementListPatternElementImplListPatternImplLiteralLiteralImplLocalVariableInfoLogicalAndPatternLogicalAndPatternImplLogicalOrPatternLogicalOrPatternImplMapLiteralEntryMapLiteralEntryImpl
MapPatternMapPatternElementMapPatternElementImplMapPatternEntryMapPatternEntryImplMapPatternImplMethodDeclarationMethodDeclarationImplMethodInvocationMethodInvocationImplMethodReferenceExpressionMixinDeclarationMixinDeclarationImplMixinOnClauseMixinOnClauseImplNamedCompilationUnitMemberNamedCompilationUnitMemberImplNamedExpressionNamedExpressionImpl	NamedTypeNamedTypeImplNamespaceDirectiveNamespaceDirectiveImplNativeClauseNativeClauseImplNativeFunctionBodyNativeFunctionBodyImplNodeListNodeListImplNormalFormalParameterNormalFormalParameterImplNullAssertPatternNullAssertPatternImplNullAwareElementNullAwareElementImplNullCheckPatternNullCheckPatternImplNullLiteralNullLiteralImplNullShortableExpressionNullShortableExpressionImplObjectPatternObjectPatternImplParenthesizedExpressionParenthesizedExpressionImplParenthesizedPatternParenthesizedPatternImplPartDirectivePartDirectiveImplPartOfDirectivePartOfDirectiveImplPatternAssignmentPatternAssignmentImplPatternFieldPatternFieldImplPatternFieldNamePatternFieldNameImplPatternVariableDeclarationPatternVariableDeclarationImpl#PatternVariableDeclarationStatement'PatternVariableDeclarationStatementImplPostfixExpressionPostfixExpressionImplPrefixedIdentifierPrefixedIdentifierImplPrefixExpressionPrefixExpressionImplPropertyAccessPropertyAccessImplRecordLiteralRecordLiteralImplRecordPatternRecordPatternImplRecordTypeAnnotationRecordTypeAnnotationFieldRecordTypeAnnotationFieldImplRecordTypeAnnotationImplRecordTypeAnnotationNamedField"RecordTypeAnnotationNamedFieldImplRecordTypeAnnotationNamedFields#RecordTypeAnnotationNamedFieldsImpl#RecordTypeAnnotationPositionalField'RecordTypeAnnotationPositionalFieldImpl RedirectingConstructorInvocation$RedirectingConstructorInvocationImplRelationalPatternRelationalPatternImplRepresentationConstructorName!RepresentationConstructorNameImplRepresentationDeclarationRepresentationDeclarationImplRestPatternElementRestPatternElementImplRethrowExpressionRethrowExpressionImplReturnStatementReturnStatementImpl	ScriptTagScriptTagImplSetOrMapLiteralSetOrMapLiteralImplShowCombinatorShowCombinatorImplSimpleFormalParameterSimpleFormalParameterImplSimpleIdentifierSimpleIdentifierImplSimpleStringLiteralSimpleStringLiteralImplSingleStringLiteralSingleStringLiteralImplSpreadElementSpreadElementImpl	StatementStatementImplStringInterpolationStringInterpolationImplStringLexemeHelperStringLiteralStringLiteralImplSuperConstructorInvocationSuperConstructorInvocationImplSuperExpressionSuperExpressionImplSuperFormalParameterSuperFormalParameterImpl
SwitchCaseSwitchCaseImplSwitchDefaultSwitchDefaultImplSwitchExpressionSwitchExpressionCaseSwitchExpressionCaseImplSwitchExpressionImplSwitchMemberSwitchMemberImplSwitchPatternCaseSwitchPatternCaseImplSwitchStatementSwitchStatementCaseGroupSwitchStatementImplSymbolLiteralSymbolLiteralImplSyntheticIdentifierThisExpressionThisExpressionImplThrowExpressionThrowExpressionImplTopLevelVariableDeclarationTopLevelVariableDeclarationImplTryStatementTryStatementImpl	TypeAliasTypeAliasImplTypeAnnotationTypeAnnotationImplTypeArgumentListTypeArgumentListImplTypedLiteralTypedLiteralImplTypeLiteralTypeLiteralImplTypeParameterTypeParameterImplTypeParameterListTypeParameterListImplUriBasedDirectiveUriBasedDirectiveImplUriValidationCodeVariableDeclarationVariableDeclarationImplVariableDeclarationListVariableDeclarationListImplVariableDeclarationStatement VariableDeclarationStatementImplVariablePatternVariablePatternImpl
WhenClauseWhenClauseImplWhileStatementWhileStatementImplWildcardPatternWildcardPatternImpl
WithClauseWithClauseImplYieldStatementYieldStatementImpl_AnnotatedNodeMixin_SetOrMapKind  n