gitextract_7tmmrk3b/ ├── .editorconfig ├── .github/ │ └── workflows/ │ └── main.yml ├── .gitignore ├── LICENSE ├── README.md ├── benchmarks/ │ └── Neo.VM.Benchmarks/ │ ├── Benchmarks.POC.cs │ ├── Benchmarks_VMHotPaths.cs │ ├── Builders/ │ │ ├── Helper.cs │ │ ├── Instruction.cs │ │ ├── InstructionBuilder.cs │ │ └── JumpTarget.cs │ ├── Neo.VM.Benchmarks.csproj │ ├── OpCodes/ │ │ ├── Arrays/ │ │ │ └── OpCode.ReverseN.cs │ │ ├── Benchmark.Opcode.cs │ │ ├── BenchmarkEngine.cs │ │ ├── BenchmarkMode.cs │ │ ├── Benchmarks_StackOps.cs │ │ └── OpCodeBase.cs │ ├── Program.cs │ ├── TestArray.cs │ ├── TestStruct.cs │ └── VMTypes/ │ ├── Benchmarks_Convert.cs │ └── Benchmarks_DeepCopy.cs ├── neo-vm.sln ├── src/ │ └── Neo.VM/ │ ├── BadScriptException.cs │ ├── CatchableException.cs │ ├── Collections/ │ │ └── OrderedDictionary.cs │ ├── Debugger.cs │ ├── EvaluationStack.cs │ ├── ExceptionHandlingContext.cs │ ├── ExceptionHandlingState.cs │ ├── ExecutionContext.SharedStates.cs │ ├── ExecutionContext.cs │ ├── ExecutionEngine.cs │ ├── ExecutionEngineLimits.cs │ ├── IReferenceCounter.cs │ ├── Instruction.cs │ ├── IsExternalInit.cs │ ├── JumpTable/ │ │ ├── JumpTable.Bitwisee.cs │ │ ├── JumpTable.Compound.cs │ │ ├── JumpTable.Control.cs │ │ ├── JumpTable.Numeric.cs │ │ ├── JumpTable.Push.cs │ │ ├── JumpTable.Slot.cs │ │ ├── JumpTable.Splice.cs │ │ ├── JumpTable.Stack.cs │ │ ├── JumpTable.Types.cs │ │ └── JumpTable.cs │ ├── Neo.VM.csproj │ ├── OpCode.cs │ ├── OperandSizeAttribute.cs │ ├── RCVersion.cs │ ├── ReferenceCounter.cs │ ├── ReferenceCounterV2.cs │ ├── ReferenceEqualityComparer.cs │ ├── Script.cs │ ├── ScriptBuilder.cs │ ├── Slot.cs │ ├── StronglyConnectedComponents/ │ │ └── Tarjan.cs │ ├── Types/ │ │ ├── Array.cs │ │ ├── Boolean.cs │ │ ├── Buffer.cs │ │ ├── ByteString.cs │ │ ├── CompoundType.cs │ │ ├── Integer.cs │ │ ├── InteropInterface.cs │ │ ├── Map.cs │ │ ├── Null.cs │ │ ├── Pointer.cs │ │ ├── PrimitiveType.cs │ │ ├── StackItem.Vertex.cs │ │ ├── StackItem.cs │ │ ├── StackItemType.cs │ │ └── Struct.cs │ ├── Unsafe.cs │ ├── Utility.cs │ ├── VMState.cs │ └── VMUnhandledException.cs └── tests/ └── Neo.VM.Tests/ ├── Converters/ │ ├── ScriptConverter.cs │ └── UppercaseEnum.cs ├── Extensions/ │ ├── JsonExtensions.cs │ └── StringExtensions.cs ├── Helpers/ │ └── RandomHelper.cs ├── Neo.VM.Tests.csproj ├── Properties/ │ └── AssemblyInfo.cs ├── Tests/ │ ├── OpCodes/ │ │ ├── Arithmetic/ │ │ │ ├── GE.json │ │ │ ├── GT.json │ │ │ ├── LE.json │ │ │ ├── LT.json │ │ │ ├── MODMUL.json │ │ │ ├── MODPOW.json │ │ │ ├── NOT.json │ │ │ ├── NUMEQUAL.json │ │ │ ├── NUMNOTEQUAL.json │ │ │ ├── POW.json │ │ │ ├── SHL.json │ │ │ ├── SHR.json │ │ │ ├── SIGN.json │ │ │ └── SQRT.json │ │ ├── Arrays/ │ │ │ ├── APPEND.json │ │ │ ├── CLEARITEMS.json │ │ │ ├── HASKEY.json │ │ │ ├── KEYS.json │ │ │ ├── NEWARRAY.json │ │ │ ├── NEWARRAY0.json │ │ │ ├── NEWARRAY_T.json │ │ │ ├── NEWMAP.json │ │ │ ├── NEWSTRUCT.json │ │ │ ├── NEWSTRUCT0.json │ │ │ ├── PACK.json │ │ │ ├── PACKMAP.json │ │ │ ├── PACKSTRUCT.json │ │ │ ├── PICKITEM.json │ │ │ ├── POPITEM.json │ │ │ ├── REMOVE.json │ │ │ ├── REVERSEITEMS.json │ │ │ ├── SETITEM.json │ │ │ ├── SIZE.json │ │ │ ├── UNPACK.json │ │ │ └── VALUES.json │ │ ├── BitwiseLogic/ │ │ │ ├── AND.json │ │ │ ├── EQUAL.json │ │ │ ├── INVERT.json │ │ │ ├── NOTEQUAL.json │ │ │ ├── OR.json │ │ │ └── XOR.json │ │ ├── Control/ │ │ │ ├── ABORT.json │ │ │ ├── ABORTMSG.json │ │ │ ├── ASSERT.json │ │ │ ├── ASSERTMSG.json │ │ │ ├── CALL.json │ │ │ ├── CALLA.json │ │ │ ├── CALL_L.json │ │ │ ├── JMP.json │ │ │ ├── JMPEQ.json │ │ │ ├── JMPEQ_L.json │ │ │ ├── JMPGE.json │ │ │ ├── JMPGE_L.json │ │ │ ├── JMPGT.json │ │ │ ├── JMPGT_L.json │ │ │ ├── JMPIF.json │ │ │ ├── JMPIFNOT.json │ │ │ ├── JMPIFNOT_L.json │ │ │ ├── JMPIF_L.json │ │ │ ├── JMPLE.json │ │ │ ├── JMPLE_L.json │ │ │ ├── JMPLT.json │ │ │ ├── JMPLT_L.json │ │ │ ├── JMPNE.json │ │ │ ├── JMPNE_L.json │ │ │ ├── JMP_L.json │ │ │ ├── NOP.json │ │ │ ├── RET.json │ │ │ ├── SYSCALL.json │ │ │ ├── THROW.json │ │ │ ├── TRY_CATCH.json │ │ │ ├── TRY_CATCH_FINALLY.json │ │ │ ├── TRY_CATCH_FINALLY10.json │ │ │ ├── TRY_CATCH_FINALLY2.json │ │ │ ├── TRY_CATCH_FINALLY3.json │ │ │ ├── TRY_CATCH_FINALLY4.json │ │ │ ├── TRY_CATCH_FINALLY5.json │ │ │ ├── TRY_CATCH_FINALLY6.json │ │ │ ├── TRY_CATCH_FINALLY7.json │ │ │ ├── TRY_CATCH_FINALLY8.json │ │ │ ├── TRY_CATCH_FINALLY9.json │ │ │ └── TRY_FINALLY.json │ │ ├── Push/ │ │ │ ├── PUSHA.json │ │ │ ├── PUSHDATA1.json │ │ │ ├── PUSHDATA2.json │ │ │ ├── PUSHDATA4.json │ │ │ ├── PUSHINT8_to_PUSHINT256.json │ │ │ ├── PUSHM1_to_PUSH16.json │ │ │ └── PUSHNULL.json │ │ ├── Slot/ │ │ │ ├── INITSLOT.json │ │ │ ├── INITSSLOT.json │ │ │ ├── LDARG.json │ │ │ ├── LDARG0.json │ │ │ ├── LDARG1.json │ │ │ ├── LDARG2.json │ │ │ ├── LDARG3.json │ │ │ ├── LDARG4.json │ │ │ ├── LDARG5.json │ │ │ ├── LDARG6.json │ │ │ ├── LDLOC.json │ │ │ ├── LDLOC0.json │ │ │ ├── LDLOC1.json │ │ │ ├── LDLOC2.json │ │ │ ├── LDLOC3.json │ │ │ ├── LDLOC4.json │ │ │ ├── LDLOC5.json │ │ │ ├── LDLOC6.json │ │ │ ├── LDSFLD.json │ │ │ ├── LDSFLD0.json │ │ │ ├── LDSFLD1.json │ │ │ ├── LDSFLD2.json │ │ │ ├── LDSFLD3.json │ │ │ ├── LDSFLD4.json │ │ │ ├── LDSFLD5.json │ │ │ ├── LDSFLD6.json │ │ │ ├── STARG.json │ │ │ ├── STARG0.json │ │ │ ├── STARG1.json │ │ │ ├── STARG2.json │ │ │ ├── STARG3.json │ │ │ ├── STARG4.json │ │ │ ├── STARG5.json │ │ │ ├── STARG6.json │ │ │ ├── STLOC.json │ │ │ ├── STSFLD.json │ │ │ ├── STSFLD0.json │ │ │ ├── STSFLD1.json │ │ │ ├── STSFLD2.json │ │ │ ├── STSFLD3.json │ │ │ ├── STSFLD4.json │ │ │ ├── STSFLD5.json │ │ │ └── STSFLD6.json │ │ ├── Splice/ │ │ │ ├── CAT.json │ │ │ ├── LEFT.json │ │ │ ├── MEMCPY.json │ │ │ ├── NEWBUFFER.json │ │ │ ├── RIGHT.json │ │ │ └── SUBSTR.json │ │ ├── Stack/ │ │ │ ├── CLEAR.json │ │ │ ├── DEPTH.json │ │ │ ├── DROP.json │ │ │ ├── NIP.json │ │ │ ├── OVER.json │ │ │ ├── PICK.json │ │ │ ├── REVERSE3.json │ │ │ ├── REVERSE4.json │ │ │ ├── REVERSEN.json │ │ │ ├── ROLL.json │ │ │ ├── ROT.json │ │ │ ├── SWAP.json │ │ │ ├── TUCK.json │ │ │ └── XDROP.json │ │ └── Types/ │ │ ├── CONVERT.json │ │ ├── ISNULL.json │ │ └── ISTYPE.json │ └── Others/ │ ├── Debugger.json │ ├── Init.json │ ├── InvocationLimits.json │ ├── OtherCases.json │ ├── ScriptLogic.json │ ├── StackItemLimits.json │ └── StackLimits.json ├── Types/ │ ├── TestEngine.cs │ ├── VMUT.cs │ ├── VMUTActionType.cs │ ├── VMUTEntry.cs │ ├── VMUTExecutionContextState.cs │ ├── VMUTExecutionEngineState.cs │ ├── VMUTStackItem.cs │ ├── VMUTStackItemType.cs │ └── VMUTStep.cs ├── UT_Debugger.cs ├── UT_EvaluationStack.cs ├── UT_ExecutionContext.cs ├── UT_ReferenceCounter.cs ├── UT_ReferenceCounterComprehensive.cs ├── UT_Script.cs ├── UT_ScriptBuilder.cs ├── UT_Slot.cs ├── UT_StackItem.cs ├── UT_Struct.cs ├── UT_Unsafe.cs ├── UT_Utility.cs ├── UT_VMJson.cs └── VMJsonTestBase.cs