Source file "org/aspectj/org/eclipse/jdt/internal/compiler/lookup/Scope.java" was not found during generation of report.
Element | Missed Instructions | Cov. | Missed Branches | Cov. | Missed | Cxty | Missed | Lines | Missed | Methods |
Total | 14,692 of 14,692 | 0% | 3,095 of 3,095 | 0% | 1,744 | 1,744 | 3,273 | 3,273 | 168 | 168 |
mostSpecificMethodBinding(MethodBinding[], int, TypeBinding[], InvocationSite, ReferenceBinding) | ![]() | 0% | ![]() | 0% | 113 | 113 | 197 | 197 | 1 | 1 |
findMethod0(ReferenceBinding, char[], TypeBinding[], InvocationSite, boolean) | ![]() | 0% | ![]() | 0% | 101 | 101 | 184 | 184 | 1 | 1 |
getTypeOrPackage(char[], int, boolean) | ![]() | 0% | ![]() | 0% | 113 | 113 | 183 | 183 | 1 | 1 |
getBinding(char[], int, InvocationSite, boolean) | ![]() | 0% | ![]() | 0% | 82 | 82 | 188 | 188 | 1 | 1 |
minimalErasedCandidates(TypeBinding[], Map) | ![]() | 0% | ![]() | 0% | 86 | 86 | 167 | 167 | 1 | 1 |
getImplicitMethod(char[], TypeBinding[], InvocationSite) | ![]() | 0% | ![]() | 0% | 88 | 88 | 167 | 167 | 1 | 1 |
connectTypeVariables(TypeParameter[], boolean) | ![]() | 0% | ![]() | 0% | 45 | 45 | 110 | 110 | 1 | 1 |
getStaticFactory(ParameterizedTypeBinding, ReferenceBinding, TypeBinding[], InvocationSite) | ![]() | 0% | ![]() | 0% | 30 | 30 | 95 | 95 | 1 | 1 |
findField(TypeBinding, char[], InvocationSite, boolean, boolean) | ![]() | 0% | ![]() | 0% | 50 | 50 | 106 | 106 | 1 | 1 |
convertEliminatingTypeVariables(TypeBinding, ReferenceBinding, int, Set) | ![]() | 0% | ![]() | 0% | 40 | 40 | 82 | 82 | 1 | 1 |
findMemberType(char[], ReferenceBinding) | ![]() | 0% | ![]() | 0% | 39 | 39 | 86 | 86 | 1 | 1 |
leastContainingTypeArgument(TypeBinding, TypeBinding, ReferenceBinding, int, ArrayList) | ![]() | 0% | ![]() | 0% | 27 | 27 | 42 | 42 | 1 | 1 |
lowerUpperBound(TypeBinding[], ArrayList) | ![]() | 0% | ![]() | 0% | 32 | 32 | 58 | 58 | 1 | 1 |
computeCompatibleMethod(MethodBinding, TypeBinding[], InvocationSite, boolean) | ![]() | 0% | ![]() | 0% | 42 | 42 | 60 | 60 | 1 | 1 |
isAcceptableMethod(MethodBinding, MethodBinding) | ![]() | 0% | ![]() | 0% | 40 | 40 | 47 | 47 | 1 | 1 |
getType(char[][], int) | ![]() | 0% | ![]() | 0% | 20 | 20 | 66 | 66 | 1 | 1 |
parameterCompatibilityLevel(MethodBinding, TypeBinding[], boolean) | ![]() | 0% | ![]() | 0% | 29 | 29 | 55 | 55 | 1 | 1 |
getBaseType(char[]) | ![]() | 0% | ![]() | 0% | 53 | 53 | 41 | 41 | 1 | 1 |
greaterLowerBound(TypeBinding[], Scope, LookupEnvironment) | ![]() | 0% | ![]() | 0% | 26 | 26 | 51 | 51 | 1 | 1 |
initializeCommonTypeBindings() | ![]() | 0% | ![]() | 0% | 2 | 2 | 26 | 26 | 1 | 1 |
getConstructor0(ReferenceBinding, TypeBinding[], InvocationSite) | ![]() | 0% | ![]() | 0% | 17 | 17 | 53 | 53 | 1 | 1 |
findDefaultAbstractMethod(ReferenceBinding, char[], TypeBinding[], InvocationSite, ReferenceBinding, ObjectVector, MethodBinding[]) | ![]() | 0% | ![]() | 0% | 24 | 24 | 43 | 43 | 1 | 1 |
findMethodInSuperInterfaces(ReferenceBinding, char[], ObjectVector, List, InvocationSite) | ![]() | 0% | ![]() | 0% | 21 | 21 | 34 | 34 | 1 | 1 |
getTypeOrPackage(char[][]) | ![]() | 0% | ![]() | 0% | 17 | 17 | 47 | 47 | 1 | 1 |
isSubtypeOfRawType(TypeBinding) | ![]() | 0% | ![]() | 0% | 19 | 19 | 35 | 35 | 1 | 1 |
getMethod(TypeBinding, char[], TypeBinding[], InvocationSite) | ![]() | 0% | ![]() | 0% | 13 | 13 | 33 | 33 | 1 | 1 |
leastContainingInvocation(TypeBinding, Object, ArrayList) | ![]() | 0% | ![]() | 0% | 14 | 14 | 27 | 27 | 1 | 1 |
getPackage(char[][]) | ![]() | 0% | ![]() | 0% | 12 | 12 | 26 | 26 | 1 | 1 |
tagAsAccessingEnclosingInstanceStateOf(ReferenceBinding, boolean) | ![]() | 0% | ![]() | 0% | 23 | 23 | 31 | 31 | 1 | 1 |
parameterCompatibilityLevel(MethodBinding, TypeBinding[], InvocationSite) | ![]() | 0% | ![]() | 0% | 20 | 20 | 34 | 34 | 1 | 1 |
getExactMethod(TypeBinding, char[], InvocationSite) | ![]() | 0% | ![]() | 0% | 19 | 19 | 29 | 29 | 1 | 1 |
findExactMethod(ReferenceBinding, char[], TypeBinding[], InvocationSite) | ![]() | 0% | ![]() | 0% | 18 | 18 | 30 | 30 | 1 | 1 |
getExactMethod(TypeBinding, TypeBinding, char[], InvocationSite, MethodBinding) | ![]() | 0% | ![]() | 0% | 14 | 14 | 23 | 23 | 1 | 1 |
createTypeVariables(TypeParameter[], Binding) | ![]() | 0% | ![]() | 0% | 13 | 13 | 31 | 31 | 1 | 1 |
getExactConstructor(TypeBinding, InvocationSite) | ![]() | 0% | ![]() | 0% | 17 | 17 | 34 | 34 | 1 | 1 |
isInsideDeprecatedCode() | ![]() | 0% | ![]() | 0% | 24 | 24 | 35 | 35 | 1 | 1 |
greaterLowerBound(ReferenceBinding[]) | ![]() | 0% | ![]() | 0% | 15 | 15 | 28 | 28 | 1 | 1 |
getMemberType(char[], ReferenceBinding) | ![]() | 0% | ![]() | 0% | 14 | 14 | 17 | 17 | 1 | 1 |
getOnlyPackage(char[][]) | ![]() | 0% | ![]() | 0% | 8 | 8 | 20 | 20 | 1 | 1 |
findMethodForArray(ArrayBinding, char[], TypeBinding[], InvocationSite) | ![]() | 0% | ![]() | 0% | 12 | 12 | 19 | 19 | 1 | 1 |
mostSpecificClassMethodBinding(MethodBinding[], int, InvocationSite) | ![]() | 0% | ![]() | 0% | 8 | 8 | 13 | 13 | 1 | 1 |
getFilteredExceptions(MethodBinding) | ![]() | 0% | ![]() | 0% | 9 | 9 | 20 | 20 | 1 | 1 |
getType(char[], PackageBinding) | ![]() | 0% | ![]() | 0% | 7 | 7 | 20 | 20 | 1 | 1 |
hasErasedCandidatesCollisions(TypeBinding, TypeBinding, Map, ReferenceBinding, ASTNode) | ![]() | 0% | ![]() | 0% | 5 | 5 | 12 | 12 | 1 | 1 |
recordNonNullByDefault(Binding, int, Annotation, int, int) | ![]() | 0% | ![]() | 0% | 8 | 8 | 13 | 13 | 1 | 1 |
parameterCompatibilityLevel(TypeBinding, TypeBinding, LookupEnvironment, boolean, MethodBinding) | ![]() | 0% | ![]() | 0% | 14 | 14 | 14 | 14 | 1 | 1 |
findDirectMemberType(char[], ReferenceBinding) | ![]() | 0% | ![]() | 0% | 6 | 6 | 15 | 15 | 1 | 1 |
isOverriddenMethodGeneric(MethodBinding) | ![]() | 0% | ![]() | 0% | 6 | 6 | 10 | 10 | 1 | 1 |
validateNullAnnotation(long, TypeReference, Annotation[]) | ![]() | 0% | ![]() | 0% | 9 | 9 | 15 | 15 | 1 | 1 |
filterValidTypes(TypeBinding[], Function) | ![]() | 0% | ![]() | 0% | 6 | 6 | 10 | 10 | 1 | 1 |
getDeclarationModifiers() | ![]() | 0% | ![]() | 0% | 9 | 9 | 16 | 16 | 1 | 1 |
mostSpecificInterfaceMethodBinding(MethodBinding[], int, InvocationSite) | ![]() | 0% | ![]() | 0% | 5 | 5 | 9 | 9 | 1 | 1 |
problemType(char[][], int, Binding) | ![]() | 0% | ![]() | 0% | 8 | 8 | 10 | 10 | 1 | 1 |
findMethod(ReferenceBinding, char[], TypeBinding[], InvocationSite, boolean) | ![]() | 0% | ![]() | 0% | 6 | 6 | 7 | 7 | 1 | 1 |
getField(TypeBinding, char[], InvocationSite) | ![]() | 0% | ![]() | 0% | 3 | 3 | 12 | 12 | 1 | 1 |
parameterCompatibilityLevel(TypeBinding, TypeBinding) | ![]() | 0% | ![]() | 0% | 9 | 9 | 11 | 11 | 1 | 1 |
getConstructor(ReferenceBinding, TypeBinding[], InvocationSite) | ![]() | 0% | ![]() | 0% | 6 | 6 | 7 | 7 | 1 | 1 |
originalReferenceContext() | ![]() | 0% | ![]() | 0% | 7 | 7 | 14 | 14 | 1 | 1 |
findType(char[], PackageBinding, PackageBinding) | ![]() | 0% | ![]() | 0% | 5 | 5 | 8 | 8 | 1 | 1 |
isBoxingCompatibleWith(TypeBinding, TypeBinding) | ![]() | 0% | ![]() | 0% | 5 | 5 | 5 | 5 | 1 | 1 |
deferBoundCheck(TypeReference) | ![]() | 0% | ![]() | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
isDefinedInSameUnit(ReferenceBinding) | ![]() | 0% | ![]() | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
hasDefaultNullnessForType(TypeBinding, int, int) | ![]() | 0% | ![]() | 0% | 6 | 6 | 6 | 6 | 1 | 1 |
enclosingReferenceContext() | ![]() | 0% | ![]() | 0% | 6 | 6 | 9 | 9 | 1 | 1 |
isDefinedInMethod(MethodBinding) | ![]() | 0% | ![]() | 0% | 5 | 5 | 10 | 10 | 1 | 1 |
referenceContext() | ![]() | 0% | ![]() | 0% | 6 | 6 | 9 | 9 | 1 | 1 |
nullDefaultRangeForPosition(int) | ![]() | 0% | ![]() | 0% | 5 | 5 | 5 | 5 | 1 | 1 |
isMalformedPair(TypeBinding, TypeBinding, Scope) | ![]() | 0% | ![]() | 0% | 6 | 6 | 7 | 7 | 1 | 1 |
getCommonReferenceBinding(char[]) | ![]() | 0% | ![]() | 0% | 4 | 4 | 4 | 4 | 1 | 1 |
Scope(int, Scope) | ![]() | 0% | ![]() | 0% | 2 | 2 | 7 | 7 | 1 | 1 |
lowerUpperBound(TypeBinding[]) | ![]() | 0% | ![]() | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
enclosingTopMostClassScope() | ![]() | 0% | ![]() | 0% | 4 | 4 | 6 | 6 | 1 | 1 |
enclosingLambdaScope() | ![]() | 0% | ![]() | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
isDefinedInField(FieldBinding) | ![]() | 0% | ![]() | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
isDefinedInType(ReferenceBinding) | ![]() | 0% | ![]() | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
enclosingReceiverType() | ![]() | 0% | ![]() | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
isUnnecessarySamePackageImport(Binding, Scope) | ![]() | 0% | ![]() | 0% | 4 | 4 | 7 | 7 | 1 | 1 |
hasDefaultNullnessFor(int, int) | ![]() | 0% | ![]() | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
isLambdaSubscope() | ![]() | 0% | ![]() | 0% | 4 | 4 | 6 | 6 | 1 | 1 |
findPrivilegedHandler(ReferenceBinding) | ![]() | 0% | ![]() | 0% | 4 | 4 | 5 | 5 | 1 | 1 |
isInsideCase(CaseStatement) | ![]() | 0% | ![]() | 0% | 4 | 4 | 8 | 8 | 1 | 1 |
createArrayType(TypeBinding, int, AnnotationBinding[]) | ![]() | 0% | ![]() | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
getJavaLangInvokeMethodHandlesLookup() | ![]() | 0% | n/a | 1 | 1 | 4 | 4 | 1 | 1 | |
namedMethodScope() | ![]() | 0% | ![]() | 0% | 4 | 4 | 6 | 6 | 1 | 1 |
enclosingSourceType() | ![]() | 0% | ![]() | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
outerMostClassScope() | ![]() | 0% | ![]() | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
outerMostMethodScope() | ![]() | 0% | ![]() | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
localCheckRedundantDefaultNullness(int, int) | ![]() | 0% | ![]() | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
static {...} | ![]() | 0% | ![]() | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
enclosingClassScope() | ![]() | 0% | ![]() | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
enclosingMethodScope() | ![]() | 0% | ![]() | 0% | 3 | 3 | 4 | 4 | 1 | 1 |
invocationType() | ![]() | 0% | ![]() | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
innermostSwitchCase() | ![]() | 0% | ![]() | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
typeAnnotationsResolutionScope(Scope) | ![]() | 0% | ![]() | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
classScope() | ![]() | 0% | ![]() | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
methodScope() | ![]() | 0% | ![]() | 0% | 3 | 3 | 6 | 6 | 1 | 1 |
checkRedundantDefaultNullness(int, int) | ![]() | 0% | ![]() | 0% | 2 | 2 | 4 | 4 | 1 | 1 |
compareTypes(TypeBinding, TypeBinding) | ![]() | 0% | ![]() | 0% | 3 | 3 | 5 | 5 | 1 | 1 |
boxing(TypeBinding) | ![]() | 0% | ![]() | 0% | 3 | 3 | 3 | 3 | 1 | 1 |
getType(char[]) | ![]() | 0% | ![]() | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
setParent(Scope) | ![]() | 0% | ![]() | 0% | 2 | 2 | 3 | 3 | 1 | 1 |
getJavaIoSerializable() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangAnnotationAnnotation() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangAssertionError() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangBoolean() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangByte() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangCharacter() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangClass() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangCloneable() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangClassNotFoundException() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangDouble() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangFloat() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangIncompatibleClassChangeError() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangNoClassDefFoundError() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangNoSuchFieldError() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangEnum() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangError() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangReflectField() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangReflectMethod() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangRuntimeObjectMethods() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangRuntimeSwitchBootstraps() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangInvokeConstantBootstraps() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangEnumDesc() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangClassDesc() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangInvokeStringConcatFactory() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangRuntimeTemplateRuntimeBootstraps() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangInvokeLambdaMetafactory() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangInvokeSerializedLambda() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangInvokeMethodHandle() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangInvokeVarHandle() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangInteger() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangIterable() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangLong() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangObject() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangRecord() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangShort() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangString() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangStringBuffer() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangStringBuilder() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangStringTemplate() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangStringTemplateProcessor() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangThrowable() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangVoid() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaLangIllegalArgumentException() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
getJavaUtilIterator() | ![]() | 0% | n/a | 1 | 1 | 3 | 3 | 1 | 1 | |
localNonNullByDefaultValue(int) | ![]() | 0% | ![]() | 0% | 2 | 2 | 2 | 2 | 1 | 1 |
findField(TypeBinding, char[], InvocationSite, boolean) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
computeCompatibleMethod(MethodBinding, TypeBinding[], InvocationSite) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
createArrayType(TypeBinding, int) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
parameterCompatibilityLevel(MethodBinding, TypeBinding[]) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
substitute(Substitution, ReferenceBinding[]) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
substitute(Substitution, TypeBinding) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
substitute(Substitution, TypeBinding[]) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
compilerOptions() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
module() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
environment() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
getCurrentPackage() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
referenceCompilationUnit() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
findTypeVariable(char[], SourceTypeBinding) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
compilationUnitScope() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
lambda$0(int) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
lambda$1(int) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
isLambdaScope() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
findVariable(char[], InvocationSite) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
resolvingGuardExpression() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
startIndex() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
isInterTypeScope() | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 | ||
resolveTypeParameter(TypeParameter) | 0% | n/a | 1 | 1 | 1 | 1 | 1 | 1 |