{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}

-- | This file is generated by "plutus-preprocessor:plutus-preprocessor"
module Test.Cardano.Ledger.Plutus.Examples (
  alwaysSucceedsNoDatum,
  alwaysSucceedsWithDatum,
  alwaysFailsNoDatum,
  alwaysFailsWithDatum,
  redeemerSameAsDatum,
  evenDatum,
  evenRedeemerNoDatum,
  evenRedeemerWithDatum,
  purposeIsWellformedNoDatum,
  purposeIsWellformedWithDatum,
  datumIsWellformed,
  inputsOutputsAreNotEmptyNoDatum,
  inputsOutputsAreNotEmptyWithDatum,
) where

import Cardano.Ledger.Plutus.Language (Plutus (..), PlutusBinary (..), SLanguage (..))
import Data.ByteString (ByteString)
import qualified Data.ByteString.Base16 as Base16 (decode)
import qualified Data.ByteString.Short as SBS (toShort)
import GHC.Stack

decodeHexPlutus :: HasCallStack => ByteString -> Plutus l
decodeHexPlutus :: forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus = forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either forall a. HasCallStack => [Char] -> a
error (forall (l :: Language). PlutusBinary -> Plutus l
Plutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShortByteString -> PlutusBinary
PlutusBinary forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ShortByteString
SBS.toShort) forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Either [Char] ByteString
Base16.decode

-- | Script that always succeeds, unless arguments are malformed or context contains a datum
alwaysSucceedsNoDatum :: SLanguage l -> Plutus l
alwaysSucceedsNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysSucceedsNoDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "25e76058427573fc1abccab80e5a00ab99a94dc1691b639f963f70b1"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_3 -> case scriptPurpose_3 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5828010000225335333573466e1d200235573a6ea8d5d09aba235573c6ea800448800848800458448005"
      ]
    -- ScriptHash "4a31fe1bbc35992d47f6922de9fc9d93269a7d6dab118a50f260e4dc"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_3 -> case scriptPurpose_3 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5828010000225335333573466e1d200235573a6ea8d5d09aba235573c6ea800448800848800458448005"
      ]
    -- ScriptHash "953c40eaaf5302a6b0a68d605ae67d9a35e260f5a3c278936fc15880"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysSucceedsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysSucceedsNoDatum_0 arg_1 = let PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                    (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                    scriptInfo_4 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1
    --                                  in PlutusTx.Prelude.check GHC.Base.$ (case scriptInfo_4 of
    --                                                                        {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                         (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                         _ -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5896010100253293255333573466e1d200235573a0022264b2646464aa666ae68cdc3a40040042300211553335"
      , ByteString
"73466e1d2000002118009aba10010898032481035054310035573c0046aae74004dd51aba13574400321801460"
      , ByteString
"0035573c002230003755264650013574200535742003357426ae880046ae88004d55cf1baa002911000a29344c"
      , ByteString
"0052410350543500119319ab9c00180001"
      ]

-- | Script that always succeeds, unless arguments are malformed or context does not contain a datum
alwaysSucceedsWithDatum :: SLanguage l -> Plutus l
alwaysSucceedsWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysSucceedsWithDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "9ee3736c90d5a9dc4add2e86cf04b70ff1998b957be6dfbdbdbddaa8"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                 {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"582e0100002225335333573466e1d200235573a6ea8d5d09aba235573c6ea80044880084880044480044c8d400"
      , ByteString
"400581"
      ]
    -- ScriptHash "b1729775825e43abf8d60710e78dd3577384b16ec09ec02d2a3335bf"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysSucceedsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                 {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"582e0100002225335333573466e1d200235573a6ea8d5d09aba235573c6ea80044880084880044480044c8d400"
      , ByteString
"400581"
      ]
    -- ScriptHash "d4ecf06c769de6193048042f28c135c74d388e05ee429c95dd88631e"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysSucceedsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                              PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysSucceedsWithDatum_0 arg_1 = let PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                      (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                      scriptPurpose_4 = PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1
    --                                    in PlutusTx.Prelude.check GHC.Base.$ (case scriptPurpose_4 of
    --                                                                          {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                           (GHC.Maybe.Just _) -> GHC.Types.True;
    --                                                                           _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5896010100253293255333573466e1d200235573a0022264b2646464aa666ae68cdc3a40040042300211553335"
      , ByteString
"73466e1d2000002118009aba10010898032481035054310035573c0046aae74004dd51aba13574400321800460"
      , ByteString
"0435573c002230023755264650013574200535742003357426ae880046ae88004d55cf1baa002911000a29344c"
      , ByteString
"0052410350543500119319ab9c00180001"
      ]

-- | Script that always fails, unless arguments are malformed or context contains a datum
alwaysFailsNoDatum :: SLanguage l -> Plutus l
alwaysFailsNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysFailsNoDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "ed292adb1374aec5647411e6a298593b432c30ae78a5f1db52955a1e"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.fromBuiltinData redeemer_1 of
    --                                             {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                              GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_2 of
    --                                                                                                        {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        _) -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"5828010000225335333573466e1d200235573a6ea8d5d09aba235573c6ea800448800848800444800459"
      ]
    -- ScriptHash "114a2d8da1d003eef89ead7fde95613d2b4d523831bca6b76393d595"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.fromBuiltinData redeemer_1 of
    --                                             {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                              GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_2 of
    --                                                                                                        {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> GHC.Tuple.Prim.();
    --                                                                                                         GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                        _) -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"5828010000225335333573466e1d200235573a6ea8d5d09aba235573c6ea800448800848800444800459"
      ]
    -- ScriptHash "ac9b594df2e90cece2a52576cc36181de3f5bc10dedcba9fef1fda37"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysFailsNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                         PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                 {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                 (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                 scriptInfo_4) -> case scriptInfo_4 of
    --                                                                                                                                                  {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                                   (GHC.Maybe.Just _) -> GHC.Types.True;
    --                                                                                                                                                   _ -> GHC.Types.False};
    --                                                                  GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5884010100253293255333573466e1d200235573a0022264b2646464aa666ae68cdc3a40040042300211553335"
      , ByteString
"73466e1d2000002118009aba10010898032481035054310035573c0046aae74004dd51aba13574400321800460"
      , ByteString
"0435573c0022300237546ae84d5d11aba235573c6ea800a29344c00524010350543500119319ab9c00180001"
      ]

-- | Script that always fails, unless arguments are malformed or context does not contain a datum
alwaysFailsWithDatum :: SLanguage l -> Plutus l
alwaysFailsWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
alwaysFailsWithDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "627df105ccd46e722fefa013d252497c53f4e047fdf8555afea4e682"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.fromBuiltinData datum_1 of
    --                                                       {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                        GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.fromBuiltinData redeemer_2 of
    --                                                                                                               {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_3 of
    --                                                                                                                                                                          {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58290100002225335333573466e1d200235573a6ea8d5d09aba235573c6ea8004488008488004584480041"
      ]
    -- ScriptHash "cfa2ef9b3f961bafb876c9955d1e40e76657e2346c354ec2d3b5350d"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- alwaysFailsWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.fromBuiltinData datum_1 of
    --                                                       {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                        GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.fromBuiltinData redeemer_2 of
    --                                                                                                               {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Redeemer _) -> case PlutusTx.IsData.Class.fromBuiltinData context_3 of
    --                                                                                                                                                                          {GHC.Maybe.Nothing -> GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          (PlutusLedgerApi.V1.Data.Contexts.Spending _)) -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                           GHC.Maybe.Just (PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                                                                          _) -> GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58290100002225335333573466e1d200235573a6ea8d5d09aba235573c6ea8004488008488004584480041"
      ]
    -- ScriptHash "08cc0da96095fa5b13b9b9a58a4b4f10f351ea4bec2c54acbfe48b75"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- alwaysFailsWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                           PlutusTx.Builtins.Internal.BuiltinUnit
    -- alwaysFailsWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.fromBuiltinData arg_1 of
    --                                                                   {GHC.Maybe.Just (PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                   (PlutusLedgerApi.V1.Scripts.Redeemer _redeemer_3)
    --                                                                                                                                   scriptInfo_4) -> case scriptInfo_4 of
    --                                                                                                                                                    {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                                     (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                                                     _ -> GHC.Types.True};
    --                                                                    GHC.Maybe.Nothing -> GHC.Types.True})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5884010100253293255333573466e1d200235573a0022264b2646464aa666ae68cdc3a40040042300211553335"
      , ByteString
"73466e1d2000002118009aba10010898032481035054310035573c0046aae74004dd51aba13574400321801460"
      , ByteString
"0035573c0022300037546ae84d5d11aba235573c6ea800a29344c00524010350543500119319ab9c00180001"
      ]

-- | Script that succeeds whenever redeemer equals to the datum
-- Fails on malformed arguments
redeemerSameAsDatum :: SLanguage l -> Plutus l
redeemerSameAsDatum :: forall (l :: Language). SLanguage l -> Plutus l
redeemerSameAsDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "efcfdd640c3dda3c352704e4b09152b6e2aa08f8cece773e50d038d8"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- redeemerSameAsDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                      {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | r_5 PlutusTx.Eq.== d_4 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"584201000022253332235333573466e1d200235573a6ea8d5d09aba235573c6ea800c00800454cd4ccd5cd19ba"
      , ByteString
"f004005002001112001161220021220011323500100161"
      ]
    -- ScriptHash "0a08efae260718fdef595e33e1c7bc23134c477f592e25069e3ba0fe"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- redeemerSameAsDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                      {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | r_5 PlutusTx.Eq.== d_4 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"584201000022253332235333573466e1d200235573a6ea8d5d09aba235573c6ea800c00800454cd4ccd5cd19ba"
      , ByteString
"f004005002001112001161220021220011323500100161"
      ]
    -- ScriptHash "83932f2da7a5ef2190835ed0367a0974663733866cf65eaaf38a2ba3"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- redeemerSameAsDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- redeemerSameAsDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                   (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> datum_4 PlutusTx.Eq.== redeemer_3;
    --                                                                   _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"589301010025329323255333573466e1d200235573a0022264b2646464aa666ae68cdc3a400400423002115533"
      , ByteString
"3573466e1d2000002118009aba1001089803a481035054310035573c0046aae74004dd51aba135744003213335"
      , ByteString
"73466ebc004d5d0802400200518010d55cf00088c008dd51aba1357440026ae88d55cf1baa0028a4d130014901"
      , ByteString
"0350543500119319ab9c00180001"
      ]

-- | Script that succeeds whenever Integer datum is supplied and it's value is even.
-- Fails on malformed arguments
evenDatum :: SLanguage l -> Plutus l
evenDatum :: forall (l :: Language). SLanguage l -> Plutus l
evenDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "1c80082f0c1eb0dfd87825ea96d0d513b0cf197799da830b7e0ef276"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                            {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                               {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                               (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI d_4) 2 PlutusTx.Eq.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"584901000022253332235333573466e1d200235573a6ea8d5d09aba235573c6ea800c00800454cd4ccd5cd19b8"
      , ByteString
"748000cdc31bad00548010008004448004584880084880044c8d40040059"
      ]
    -- ScriptHash "6569ce6d13f3f4933fb6b9a98bcca83be34b2d4e57b3dbc9323136c7"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                            {PlutusLedgerApi.V1.Scripts.Datum d_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                               {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                               (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI d_4) 2 PlutusTx.Eq.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"584901000022253332235333573466e1d200235573a6ea8d5d09aba235573c6ea800c00800454cd4ccd5cd19b8"
      , ByteString
"748000cdc31bad00548010008004448004584880084880044c8d40040059"
      ]
    -- ScriptHash "a46526fa1bb06ecfd460760c89dcf1e1e61e2df731a8b6cc75036ebe"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- evenDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                        {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                        _redeemer_3
    --                                                                                                        (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                         (GHC.Maybe.Just (PlutusLedgerApi.V1.Scripts.Datum datum_4))) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI datum_4) 2 PlutusTx.Eq.== 0})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5895010100253293255333573466e1d200235573a0022264b2646464aa666ae68cdc3a40040042300211553335"
      , ByteString
"73466e1d2000002118009aba10010898032481035054310035573c0046aae74004dd51aba13574400321333573"
      , ByteString
"466e1d20003370c6eb40052004800400a32d60d55cf00088cb586ea8d5d09aba2357446aae78dd500145268980"
      , ByteString
"0a490350543500119319ab9c00180001"
      ]

-- | Script that succeeds whenever Integer redeemer is supplied and it's value is even
-- Fails on malformed arguments or whenever datum is present in the context
evenRedeemerNoDatum :: SLanguage l -> Plutus l
evenRedeemerNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
evenRedeemerNoDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "ce69f88ce1fff3d8d2ee0bc573597fbac5f48097618b471bfa852010"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                              {PlutusLedgerApi.V1.Scripts.Redeemer r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_4 -> case scriptPurpose_4 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> if PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_3) 2 PlutusTx.Eq.== 0
    --                                                                                                                                                                    then GHC.Tuple.Prim.()
    --                                                                                                                                                                    else PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58440100002253322335333573466e1d200235573a6ea8d5d09aba235573c6ea800c0080045854cd4ccd5cd19b"
      , ByteString
"8748000cdc31bad00448010008004448004584880084880041"
      ]
    -- ScriptHash "d6b4c62713e16b076c69abd2cc0291aace4a2214707be6d445d80127"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                              {PlutusLedgerApi.V1.Scripts.Redeemer r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                          {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                          scriptPurpose_4 -> case scriptPurpose_4 of
    --                                                                                                                                                             {PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                              _ -> if PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_3) 2 PlutusTx.Eq.== 0
    --                                                                                                                                                                    then GHC.Tuple.Prim.()
    --                                                                                                                                                                    else PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58440100002253322335333573466e1d200235573a6ea8d5d09aba235573c6ea800c0080045854cd4ccd5cd19b"
      , ByteString
"8748000cdc31bad00448010008004448004584880084880041"
      ]
    -- ScriptHash "3dd8161bbff9d9625734f1425ff9b257206f405fb4e24feba81be29f"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- evenRedeemerNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                          PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                  {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                  (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                  scriptInfo_4 -> case scriptInfo_4 of
    --                                                                                                                                  {PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                                   (GHC.Maybe.Just _) -> GHC.Types.False;
    --                                                                                                                                   _ -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.== 0}})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58a00101002532932325325333573466e1d200235573a0042264b2646464aa666ae68cdc3a4004004230021155"
      , ByteString
"333573466e1d2000002118009aba10010898042481035054310035573c0046aae74004dd51aba1357440032180"
      , ByteString
"144c009261aab9e0021130014988ccd5cd19b8748000cdc31bad35742006900240020046ea8d5d09aba2001357"
      , ByteString
"446aae78dd5001452689800a490350543500119319ab9c00180001"
      ]

-- | Script that succeeds whenever Integer redeemer is supplied and it's value is even
-- Fails on malformed arguments or whenever datum is missing from the context
evenRedeemerWithDatum :: SLanguage l -> Plutus l
evenRedeemerWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
evenRedeemerWithDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "5eda794e03460a4c89bd2fb5e529a69e7fef309adab03978e98fb5e1"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                        {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V1.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_4) 2 PlutusTx.Eq.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"584901000022253332235333573466e1d200235573a6ea8d5d09aba235573c6ea800c00800454cd4ccd5cd19b8"
      , ByteString
"748000cdc31bad00448010008004448004584880084880044c8d40040059"
      ]
    -- ScriptHash "e521695ec6eb4c320952779cc18773d661aa5708d437d903ffbcf41f"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- evenRedeemerWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                        {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                               {PlutusLedgerApi.V1.Scripts.Redeemer r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                           {PlutusLedgerApi.V2.Data.Contexts.ScriptContext _
    --                                                                                                                                                                                           (PlutusLedgerApi.V1.Data.Contexts.Spending _) | PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI r_4) 2 PlutusTx.Eq.== 0 -> GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         | GHC.Base.otherwise -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"584901000022253332235333573466e1d200235573a6ea8d5d09aba235573c6ea800c00800454cd4ccd5cd19b8"
      , ByteString
"748000cdc31bad00448010008004448004584880084880044c8d40040059"
      ]
    -- ScriptHash "8b736a9842cd3376dadc6c521d0e964a28c7b60c5050b33e0e8a59ef"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- evenRedeemerWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                            PlutusTx.Builtins.Internal.BuiltinUnit
    -- evenRedeemerWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                    {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                    (PlutusLedgerApi.V1.Scripts.Redeemer redeemer_3)
    --                                                                                                                    (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _
    --                                                                                                                                                                     (GHC.Maybe.Just _)) -> PlutusTx.Prelude.modulo (PlutusTx.Builtins.unsafeDataAsI redeemer_3) 2 PlutusTx.Eq.== 0;
    --                                                                     _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"589a01010025329323255333573466e1d200235573a0022264b2646464aa666ae68cdc3a400400423002115533"
      , ByteString
"3573466e1d2000002118009aba1001089803a481035054310035573c0046aae74004dd51aba135744003213335"
      , ByteString
"73466e1d20003370c6eb4d5d0802240090008014600435573c0022300237546ae84d5d10009aba235573c6ea80"
      , ByteString
"0a29344c0052410350543500119319ab9c00180001"
      ]

-- | Script that succeeds when datum is not expected and purpose arguments are validated against txInfo
-- Fails on malformed arguments
purposeIsWellformedNoDatum :: SLanguage l -> Plutus l
purposeIsWellformedNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
purposeIsWellformedNoDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "e20ff027a00b0b8730dd1231af4375f1bb0db696f957c9ddd3fc13e5"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                  {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                  scriptPurpose_5 -> case scriptPurpose_5 of
    --                                                                                                                                                                     {PlutusLedgerApi.V1.Data.Contexts.Minting cs_6 -> if PlutusTx.Data.AssocMap.member cs_6 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoMint txInfo_4)
    --                                                                                                                                                                                                                        then GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                        else PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Rewarding stakingCredential_7 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((stakingCredential_7 PlutusTx.Eq.==) GHC.Base.. Data.Tuple.fst) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoWdrl txInfo_4)
    --                                                                                                                                                                                                                                         then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         else GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Certifying dCert_8 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (dCert_8 PlutusTx.Eq.==) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoDCert txInfo_4)
    --                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                              else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"590597010000223232323232332232323232323232323232325335333573466e1d200000100d00c15335350023"
      , ByteString
"3300b011222222222200726100f1615335333573466e1d200200100d00c1615335333573466e1d200400100d00"
      , ByteString
"c15335300a333300823232325335333573466e1d2000002011010133221233001003002357420026eb4d5d09ab"
      , ByteString
"a2001130124901035054310035573c0046aae74004dd500091a8009119ba548000cd5d000119aba0375000297a"
      , ByteString
"e0233008357426aae78044d400488008ccc02c04488888888880149858403c54cd4ccd5cd19b87480180040340"
      , ByteString
"3054cd4c028cccc020800480048c8c94c8cd4ccd5cd19b8748000d55ce801008808099299a999ab9a3370e9000"
      , ByteString
"1aab9d00101201113300c357426aae7800cd5d09aab9e00113002498dd500209800a4c4a6466a666ae68cdc3a4"
      , ByteString
"0046aae7400c0480444c94cd4ccd5cd19b8748008d55ce8008098090998069aba135573c0086ae84d55cf00089"
      , ByteString
"80124c6ea80144c005262323330090052233300b008225335330110040021330100030011016230044988c0092"
      , ByteString
"623233300b0062233300d009225335333573466e3c01000806005c4cc04400c004405c8c01126230024988c8cc"
      , ByteString
"c03401c88ccc03c028894cd4ccd5cd19b8f0040020190181333573466e1c00c00406406040608c011262300249"
      , ByteString
"894c8cd4ccd5cd19b8748028d55ce80380b00a8a99a999ab9a3370e90051aab9d375401202c02a202c26002930"
      , ByteString
"9800a4c4a66a666ae68cdc3a40186aae7401c0580544ccd5cd19b8748030d55ce9baa009016015101537540026"
      , ByteString
"ae84d55cf0089998058089111111111003130b08078991a800800b1aab9d00f33230010012213300900c253353"
      , ByteString
"33573466ebcdd49bae357426aae78044d55ce800807006890078a99801801890008900091119299a999ab9a337"
      , ByteString
"0e90021aab9d00100e00d13233004357420026eb8d5d09aba200135573c00226004931baa00322232533533357"
      , ByteString
"3466e1d200635573a00201a018264660086eb8d5d08009bae357426ae88004d55cf0008980124c6ea800c888c9"
      , ByteString
"4cd4ccd5cd19b8748020d55ce800806005899198021bae357420026eb4d5d09aba200135573c00226004931baa"
      , ByteString
"00322333573466e3c00800402402088c94c8cd4ccd5cd19b8748000d55ce801005004899299a999ab9a3370e90"
      , ByteString
"001aab9d00100b00a13232532335333573466e1d200035573a00401c01a264a66a666ae68cdc3a40006aae7400"
      , ByteString
"403c0384ccd5cd19b8f375c6ae84d55cf0019bae357426aae7800403c0384c00926375400626002931299a999a"
      , ByteString
"b9a3370e90011aab9d00200e00d1325335333573466e1d200235573a00201e01c2666ae68cdc79bae357426aae"
      , ByteString
"7800cdd71aba135573c00201e01c201c6ea800c4034dd51aba135573c0086ae84d55cf0008980124c6ea800c4c"
      , ByteString
"005262332330010052223330040072225335333573466e1c01800c04404054cd4ccd5cd19b8700500201101013"
      , ByteString
"33573466e1c010004044040404040408038888c94cd4ccd5cd19b8748008d55ce800807006899191998029bad3"
      , ByteString
"57420046eb4d5d08009bad357426ae88004d5d10009aab9e00113002498dd500190051baa00222232230020013"
      , ByteString
"23001001223330064bd701119299a980300089919aba0300800200133005005002133005005002300700200122"
      , ByteString
"253335573e00220062660046ae84004d5d10009199ab9a35746002008006444646464646464646464666666666"
      , ByteString
"60166eb0d5d08049bac357420106eacd5d08039bab3574200c6eb0d5d08029bac357420086ae8400cdd61aba10"
      , ByteString
"0237586ae84004c8c8c94cd4ccd5cd19b87480000080440404dd71aba1001130124901035054310035573c0046"
      , ByteString
"aae74004dd51aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026aae"
      , ByteString
"78dd5001891001091000919319ab9c0010021200137546ae84d5d10011aba100135573c6ea8005"
      ]
    -- ScriptHash "98b7286715ee21774b1f2576f3ad797444143bce88cf570034c51633"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                     {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                  {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                  scriptPurpose_5 -> case scriptPurpose_5 of
    --                                                                                                                                                                     {PlutusLedgerApi.V1.Data.Contexts.Minting cs_6 -> if PlutusTx.Data.AssocMap.member cs_6 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoMint txInfo_4)
    --                                                                                                                                                                                                                        then GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                        else PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Spending _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Rewarding stakingCredential_7 -> if PlutusTx.Data.AssocMap.member stakingCredential_7 GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoWdrl txInfo_4
    --                                                                                                                                                                                                                                         then GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                         else PlutusTx.Builtins.error GHC.Tuple.Prim.();
    --                                                                                                                                                                      PlutusLedgerApi.V1.Data.Contexts.Certifying dCert_8 -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (dCert_8 PlutusTx.Eq.==) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoDCert txInfo_4)
    --                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                              else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"59053d01000022323232532332232323232335333573466e1d2000001006005153353330027526eb8d5d09aab9"
      , ByteString
"e0083330040092222222222220082610071615335333573466e1d20020010060051615335333573466e1d20040"
      , ByteString
"01006005153353330022001357426aae78020ccc01002488888888888801898401c584c8c8c8c8c8c94cd4ccd5"
      , ByteString
"cd19b874801801c03002c54cd4ccd5cd1aba3300133300a00f2222222222220072600c00b16100d13235001001"
      , ByteString
"63230010012233300a4bd7011299a991929919a999ab9a3370e90001aab9d0020120111325335333573466e1d2"
      , ByteString
"00035573a0020260242660126ae84d55cf0019aba135573c00226004931baa0051300149894c8cd4ccd5cd19b8"
      , ByteString
"748008d55ce801809809099299a999ab9a3370e90011aab9d00101401313300a357426aae78010d5d09aab9e00"
      , ByteString
"113002498dd500309800a4c46466601600a4466601a01244a66a6601c008004266024006002202e46008931180"
      , ByteString
"124c46466601a00c4466601e01444a66a666ae68cdc780200100c80c099809801800880c1180224c4600493119"
      , ByteString
"1998078039119980880591299a999ab9a3371e0080040340322666ae68cdc380180080d00c880c9180224c4600"
      , ByteString
"493129919a999ab9a3370e90051aab9d00701701615335333573466e1d200a35573a6ea802805c058405c4c005"
      , ByteString
"261300149894cd4ccd5cd19b8748030d55ce80380b80b0999ab9a3370e90061aab9d375401402e02c202c6ea80"
      , ByteString
"04d5d09aab9e0111335740004660080080022660080080020024464a6466a666ae68cdc3a40006aae740080380"
      , ByteString
"344c94cd4ccd5cd19b8748000d55ce8008078070991929919a999ab9a3370e90001aab9d002012011132533533"
      , ByteString
"3573466e1d200035573a0020260242666ae68cdc79bae357426aae7800cdd71aba135573c00202602426004931"
      , ByteString
"baa0031300149894cd4ccd5cd19b8748008d55ce801009008899299a999ab9a3370e90011aab9d001013012133"
      , ByteString
"3573466e3cdd71aba135573c0066eb8d5d09aab9e0010130121012375400620226ea8d5d09aab9e004357426aa"
      , ByteString
"e780044c0092637540062600293119919800802911199802003911299a999ab9a3370e00c00602a0282a66a666"
      , ByteString
"ae68cdc380280100a80a0999ab9a3370e00800202a02820282028402444464a66a666ae68cdc3a40046aae7400"
      , ByteString
"40480444c8c8ccc014dd69aba1002375a6ae84004dd69aba1357440026ae88004d55cf0008980124c6ea800c80"
      , ByteString
"38dd500111119299a999ab9a3370e90021aab9d00100d00c13233004357420026eb8d5d09aba200135573c0022"
      , ByteString
"6004931baa003222325335333573466e1d200635573a002018016264660086eb8d5d08009bae357426ae88004d"
      , ByteString
"55cf0008980124c6ea800c888c94cd4ccd5cd19b8748020d55ce800805805099198021bae357420026eb4d5d09"
      , ByteString
"aba200135573c00226004931baa00322333573466e3c00800402001cd55ce803911911a8010009991800800910"
      , ByteString
"998028039299a999ab9a3375e600a0086aae740040240204802854cc00c00c48004480048894ccd55cf8008801"
      , ByteString
"8998011aba100135744002444646464646464646464646466666666666601a6eb0d5d08059bac357420146eb0d"
      , ByteString
"5d08049bab357420106eacd5d08039bac3574200c6eacd5d08029aba100437586ae8400cdd59aba100237566ae"
      , ByteString
"84004c8c8c94cd4ccd5cd19b874800000804c0484dd71aba100113263357389201035054310001435573c0046a"
      , ByteString
"ae74004dd51aba1357440026ae88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88"
      , ByteString
"004d5d10009aab9e3754006244004244002240026ea8d5d09aba2002357420026aae78dd500081"
      ]
    -- ScriptHash "285c754707b3719e03894befa335c5eb428d5914a219a7e30f03fa64"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- purposeIsWellformedNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                 PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                         {PlutusLedgerApi.V3.Data.Contexts.ScriptContext (PlutusLedgerApi.V3.Data.Contexts.TxInfo {PlutusLedgerApi.V3.Data.Contexts.txInfoMint = infoMint_2,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoInputs = infoInputs_3,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoWdrl = infoWdrl_4,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoTxCerts = infoTxCerts_5,
    --                                                                                                                                                                   PlutusLedgerApi.V3.Data.Contexts.txInfoVotes = infoVotes_6})
    --                                                                                                                         _redeemer_7
    --                                                                                                                         scriptInfo_8 -> case scriptInfo_8 of
    --                                                                                                                                         {PlutusLedgerApi.V3.Data.Contexts.MintingScript cs_9 -> PlutusTx.Data.AssocMap.member cs_9 GHC.Base.$ (PlutusLedgerApi.V1.Data.Value.getValue GHC.Base.$ PlutusLedgerApi.V3.Data.MintValue.mintValueMinted infoMint_2);
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_10
    --                                                                                                                                                                                          mDatum_11 -> case mDatum_11 of
    --                                                                                                                                                                                                       {GHC.Maybe.Just _ -> GHC.Types.False;
    --                                                                                                                                                                                                        GHC.Maybe.Nothing -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter ((txOutRef_10 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) infoInputs_3};
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.RewardingScript cred_12 -> PlutusTx.Data.AssocMap.member cred_12 infoWdrl_4;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.CertifyingScript _idx_13
    --                                                                                                                                                                                            txCert_14 -> PlutusTx.Data.List.null GHC.Base.$ PlutusTx.Data.List.filter (txCert_14 PlutusTx.Eq.==) infoTxCerts_5;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.VotingScript voter_15 -> PlutusTx.Data.AssocMap.member voter_15 infoVotes_6;
    --                                                                                                                                          PlutusLedgerApi.V3.Data.Contexts.ProposingScript _idx_16
    --                                                                                                                                                                                           _propProc_17 -> GHC.Types.True}})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"5908780101003232323232323225329323232323232532325333573466e1d2000001113330027526eb8d5d09aa"
      , ByteString
"b9e00333300c75246e98004c02cccc041d711bab00137566ae84018454c8c8c8c94ccd5cd19b874800801444c9"
      , ByteString
"64cc00800cd5d09aba200190c00a2600a6666008006400246464aa666ae68c8cdc79800801180080191bae3574"
      , ByteString
"26aae78dd500088999ab9a323370e6002004600200646eb4d5d09aba235573c6ea8006001002118011aba10033"
      , ByteString
"57426aae78dd50009bac3574201835573c00e22aa666ae68cdc3a400800a2266600c40026ae84d55cf0039bab3"
      , ByteString
"574201022aa666ae68cdc3a400c00a2264600a666600800640024646464664660020084466600600e44b26600e"
      , ByteString
"00800515900390ac801484ccd5cd19b87002001800400a30024564006430028c0008c0084600a93111192a999a"
      , ByteString
"b9a3370e90001aab9d0011132330043574200266016eb4d5d09aba200135573c002226004931baa00323002498"
      , ByteString
"8c8cc8cc00401488ccc00c0208964cc02001000a2b2007215900290999ab9a3370e004003000801460048ac800"
      , ByteString
"c8600518001180108c015262223255333573466e1d200235573a0022264660086ae84004cc031d69aba1357440"
      , ByteString
"026aae7800444c0092637540064600493119191991980080391199801805112c9980500200144cc01c00c00630"
      , ByteString
"0211802a4c44464aa666ae68cdc3a40086aae7400444c8cc010d5d08009aba1357440026aae7800444c0092637"
      , ByteString
"540064600493119199198008041111998020061112c99806803001c564cc02801400a2666ae68cdc3802000c00"
      , ByteString
"20051801230021180324c44464aa666ae68cdc3a400c6aae7400444c8c8ccc014d5d08011aba1001375a6ae84d"
      , ByteString
"5d10009aba200135573c002226004931baa003230024988c8cc8cc00402488ccc00c0308964cc03001000a2666"
      , ByteString
"ae68cdc3801800c002005180108c015262223255333573466e1d200835573a0022264660086ae84004dd69aba1"
      , ByteString
"357440026aae7800444c00926375400646004931192992999ab9a3370e90051aab9d002113255333573466e1d2"
      , ByteString
"00a35573a00222660146ae84d55cf0019aba135573c002226004931baa00b1130014988c8cc8cc00403088ccc0"
      , ByteString
"0c03c8964cc03c01000a2666ae68cdc3801800c002005180108c015262223255333573466e1d200c35573a0022"
      , ByteString
"264660086ae84004dd69aba1357440026aae7800444c0092637540064600493119199198008069119980180811"
      , ByteString
"2c9980800200144cc04000c006300211802a4c44464aa666ae68cdc3a40246aae7400444c8cc010d5d08009aba"
      , ByteString
"1357440026aae7800444c009263754006460049312a999ab9a3370e900a1aab9d004113255333573466e1d2014"
      , ByteString
"35573a00222660186ae84d55cf0029aba135573c00223002375401a2300237540104464a64a666ae68cdc3a400"
      , ByteString
"06aae7400844c954ccd5cd19b8748000d55ce80088999ab9a3371e6eb8d5d09aab9e003375c6ae84d55cf000c0"
      , ByteString
"02004226004931baa00311300149894c8c94ccd5cd19b8748008d55ce80208992a999ab9a3370e90011aab9d00"
      , ByteString
"11133003357426aae78014d5d09aab9e001113002498dd5002889800a4c46646600200e4466600601044aa666a"
      , ByteString
"e68cdc7802001089980380180088c008a00444464aa666ae68cdc3a40086aae7400444c8cc010dd71aba100135"
      , ByteString
"7426ae88004d55cf00088980124c6ea800ca0044464a64a666ae68cdc3a40006aae7400844c954ccd5cd19b874"
      , ByteString
"8000d55ce80088998061aba135573c0066ae84d55cf00088980124c6ea800c44c0052625325333573466e1d200"
      , ByteString
"235573a00622aa666ae68cdc3a40046aae74dd500208c00044c00526113001498954ccd5cd19b8748010d55ce8"
      , ByteString
"0188999ab9a3370e90021aab9d375400900080108c008dd50011baa00222325325333573466e1d200035573a00"
      , ByteString
"42264aa666ae68cdc3a40006aae7400444ccd5cd19b8f375c6ae84d55cf0019bae357426aae780060010021130"
      , ByteString
"02498dd5001889800a4c4aa666ae68cdc3a40046aae7400844c954ccd5cd19b8748008d55ce80088999ab9a337"
      , ByteString
"1e6eb8d5d09aab9e003375c6ae84d55cf000c0020042300237540062300237540046ae84d5d10011bac3574201"
      , ByteString
"46aae7801c4554ccd5cd19b874802001444ccc0188004d5d09aab9e00737566ae84d5d11aba2357446ae88d5d1"
      , ByteString
"1aba20081155333573466e1d200a00511328001aab9e0071196b088c8c8c954ccd5cd19b87480080084600422a"
      , ByteString
"a666ae68cdc3a400000423001300535742002113011491035054310035573c0046aae74004dd50009000911191"
      , ByteString
"18010009918008009119980ba5eb8088c964c01800626466ae80c020008004cc01401400a26600a00a00430070"
      , ByteString
"02001233357346ae8c00600100235573a004446446a004002664600200244266027002255333573466ebcc0140"
      , ByteString
"10d55ce8008894000454cc00c00c4800448004dd51aba1357446ae88014d5d10009aba2001357446ae88d5d11a"
      , ByteString
"ba200135573c6ea8d5d08009aab9e3754005149a260029210350543500119319ab9c001800191800800912c800"
      , ByteString
"c6001221900291192c9980594800c8c88c008c038004c8c00400489640063000910c00e00200b0024cc0100100"
      , ByteString
"04000c4cc01c01c012443003800802cccc029d491ba80013300d29001919118011808000991800800912c800c6"
      , ByteString
"001221801c0040160049980200200080034cc02402401833300b75ceb400422322300530020013230010012259"
      , ByteString
"0018c0024430039002914004c02000a600e0024cc010010004323001001229001a5eb7bdb1824466ae82400a44"
      , ByteString
"66ec000800466008008002255333573466e2400520001180008c00c00700011911801000991800800912c800c6"
      , ByteString
"00122132332300100122590018801c886006005330040040010c01800ccc010010004446446a00400266460020"
      , ByteString
"024426600b00022801c004c018d55ce8014c014d55cf00126a66008008240020021200122253335573e0022006"
      , ByteString
"2660046ae84004d5d10009"
      ]

-- | Script that succeeds when datum is expected and purpose arguments are validated against txInfo
-- Fails on malformed arguments
purposeIsWellformedWithDatum :: SLanguage l -> Plutus l
purposeIsWellformedWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
purposeIsWellformedWithDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "863b189b7e809c120eb50884be8caf41d035d996bb8a068f5c083a20"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                               {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending txOutRef_6) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_6 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V1.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_5)
    --                                                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                              else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58fd01000022232323232332232325335333573466e1d200235573a00e0080062a66a666ae68d5d19800991bac"
      , ByteString
"357420026aae78dd51aba1008004003161005163230010012253335573e002297ae01332253353232533533357"
      , ByteString
"3466e3cc01c004c01c0080240204ccd5cd19b87300b001300b0020090081008357426aae7802cd5d09aab9e375"
      , ByteString
"4004266ae80008cc0100100044cc010010004d5d08009aba200123232325335333573466e1d200000200600513"
      , ByteString
"75c6ae840044c98cd5ce2481035054310000735573c0046aae74004dd51aba135573c6ea800448800848800448"
      , ByteString
"0048dd69aba1357446aae78dd50009baa357426ae88004d55cf1baa00101"
      ]
    -- ScriptHash "11a1834792c726bd4229f237e32c29817be05f765cb833825d968680"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- purposeIsWellformedWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                               {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending txOutRef_6) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_6 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V2.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_5)
    --                                                                                                                                                                                                                                                              then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                              else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58fd01000022232323232332232325335333573466e1d200235573a00e0080062a66a666ae68d5d19800991bac"
      , ByteString
"357420026aae78dd51aba1008004003161005163230010012253335573e002297ae01332253353232533533357"
      , ByteString
"3466e3cc01c004c01c0080240204ccd5cd19b87300b001300b0020090081008357426aae7802cd5d09aab9e375"
      , ByteString
"4004266ae80008cc0100100044cc010010004d5d08009aba200123232325335333573466e1d200000200600513"
      , ByteString
"75c6ae840044c98cd5ce2481035054310000735573c0046aae74004dd51aba135573c6ea800448800848800448"
      , ByteString
"0048dd69aba1357446aae78dd50009baa357426ae88004d55cf1baa00101"
      ]
    -- ScriptHash "0d44a299677b8e10b1838232b07ee1f2eb4f499e91b255c4a30853d1"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- purposeIsWellformedWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                   PlutusTx.Builtins.Internal.BuiltinUnit
    -- purposeIsWellformedWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                           {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                           _redeemer_3
    --                                                                                                                           (PlutusLedgerApi.V3.Data.Contexts.SpendingScript txOutRef_4
    --                                                                                                                                                                            (GHC.Maybe.Just _)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((txOutRef_4 PlutusTx.Eq.==) GHC.Base.. PlutusLedgerApi.V3.Data.Contexts.txInInfoOutRef) GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_2));
    --                                                                            _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"59011801010025329323255333573466e1d200235573a0022264646464b2646464aa666ae68cdc3a4004004230"
      , ByteString
"021155333573466e1d2000002118009aba10010898052481035054310035573c0046aae74004dd51aba1357440"
      , ByteString
"09215533357346ae8cc008c8dd61aba100135573c6ea8d5d080388c0084600118010c8c004004894ccd55cf800"
      , ByteString
"8a5eb804cc8964c8c954ccd5cd19b8f3007001300700211333573466e1cc020004c02000a001002118011aba10"
      , ByteString
"08357426aae78dd500144cd5d000119802002000c4cc0100100046ae84004d5d100091bae357426aae78dd5000"
      , ByteString
"91bad357426ae88d55cf1baa00135573c0022300237546ae84d5d11aba200135573c6ea800a29344c005240103"
      , ByteString
"50543500119319ab9c00180001"
      ]

-- | Script that succeeds when datum is expected and datum is validated against txInfo
-- Fails on malformed arguments
datumIsWellformed :: SLanguage l -> Plutus l
datumIsWellformed :: forall (l :: Language). SLanguage l -> Plutus l
datumIsWellformed =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "4d8dbd0c641d20c768d0f289611b77f504fc56243a3732d8d2c9691b"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- datumIsWellformed_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                    {datum'_4@(PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_6
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending _txOutRef_7) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter ((datum'_4 PlutusTx.Eq.==) GHC.Base.. Data.Tuple.snd) GHC.Base.$ PlutusLedgerApi.V1.Data.Contexts.txInfoData txInfo_6)
    --                                                                                                                                                                                                                                                               then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                               else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58f1010000222325323332235333573466e1d200235573a6ea8d5d09aba20040020011533533357346ae8ccc8c"
      , ByteString
"004004894ccd55cf8008a5eb804c8c94cd4ccd5cd19baf00b30012200100600513233574060044466e95200033"
      , ByteString
"57406ea4008cd5d0000a5eb80004cc0100100084cc0100100094c8c8c94cd4ccd5cd19b874800000802001c4cc"
      , ByteString
"8848cc00400c008dd71aba1001357426ae880044c98cd5ce2481035054310000935573c0046aae74004dd51aba"
      , ByteString
"100235744002646eb0d5d09aba2357446ae88d5d11aba2357446ae88d5d10009aab9e37546ae84010008004584"
      , ByteString
"00c4880084880045848004d55cf1baa00101"
      ]
    -- ScriptHash "b01fbcf1662be65de02fb2945a85fcf931dfbd84c4492bba6db8a45d"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- datumIsWellformed_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                    {datum'_4@(PlutusLedgerApi.V1.Scripts.Datum _) -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                      {PlutusLedgerApi.V1.Scripts.Redeemer _r_5 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                   {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_6
    --                                                                                                                                                                                                   (PlutusLedgerApi.V1.Data.Contexts.Spending _txOutRef_7) -> if PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum'_4 PlutusTx.Eq.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V2.Data.Contexts.txInfoData txInfo_6))
    --                                                                                                                                                                                                                                                               then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                                                               else GHC.Tuple.Prim.();
    --                                                                                                                                                    _ -> PlutusTx.Builtins.error GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58ca0100003232233223222325335333573466e1d200235573a6ea8d5d09aba20010060051533533357346ae8c"
      , ByteString
"c010d4020c8dd59aba1357446ae88d5d11aba2357446ae88d5d11aba2357446ae88004d55cf1baa3574200200c"
      , ByteString
"00a2c2240022c6aae78dd500099180080091199803a5eb80894cd4ccd5cd19baf0070020060051335740004660"
      , ByteString
"0800800226600800800200224400424400266460020024426600697ae0223357406aae78008d4cc01001048004"
      , ByteString
"004480048894ccd55cf80088018998011aba100135744003"
      ]
    -- ScriptHash "0197c345a967477658645ba546ae77e46a561d8f1031ef01b506a0f3"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- datumIsWellformed_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- datumIsWellformed_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                {PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_2
    --                                                                                                                _redeemer_3
    --                                                                                                                (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                 (GHC.Maybe.Just datum_5)) -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null GHC.Base.$ (PlutusTx.Data.List.filter (datum_5 PlutusTx.Eq.==) GHC.Base.$ (PlutusTx.Data.AssocMap.elems GHC.Base.$ PlutusLedgerApi.V3.Data.Contexts.txInfoData txInfo_2)));
    --                                                                 _ -> GHC.Types.False})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"59011b010100323225329323255333573466e1d200235573a0022264b2646464aa666ae68cdc3a400400423002"
      , ByteString
"1155333573466e1d2000002118009aba1001089803a481035054310035573c0046aae74004dd51aba135744003"
      , ByteString
"23215533357346ae8cc004d4020c8dd59aba1357446ae88d5d11aba2357446ae88d5d11aba2357446ae88004d5"
      , ByteString
"5cf1baa3574200a23002118001918008009119980525eb808954ccd5cd19baf005002113357400046600800800"
      , ByteString
"2226600800800200318010d55cf00088c008dd51aba1357446ae88004d55cf1baa0028a4d13001490103505435"
      , ByteString
"00119319ab9c001800199180080091099801a5eb8088cd5d01aab9e00235330040041200100112001222533355"
      , ByteString
"73e00220062660046ae84004d5d10009"
      ]

-- | Script that succeeds when inputs and outputs are not empty validated against txInfo
-- Fails on malformed arguments and also if inputs or outputs are empty
inputsOutputsAreNotEmptyNoDatum :: SLanguage l -> Plutus l
inputsOutputsAreNotEmptyNoDatum :: forall (l :: Language). SLanguage l -> Plutus l
inputsOutputsAreNotEmptyNoDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "294117b5a364e699807796de314f64e1e2c00e203259f57d770863c3"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                       {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                       _scriptPurpose_5 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_4) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoOutputs txInfo_4)
    --                                                                                                                                                                            then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                            else GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58e301000022532335332253232335300233001222222222200a26100413002330012222222222009262232323"
      , ByteString
"2323232323232333333333300b37586ae84024dd61aba100837566ae8401cdd59aba100637586ae84014dd61ab"
      , ByteString
"a1004357420066eb0d5d08011bac35742002646464a66a666ae68cdc3a400000402202026eb8d5d0800899319a"
      , ByteString
"b9c491035054310001235573c0046aae74004dd51aba1357440026ae88004d5d10009aba2001357440026ae880"
      , ByteString
"04d5d10009aba2001357440026aae78dd51aba135573c6ea801c8ccd5cd1aba300100300212200212200116100"
      , ByteString
"11200101"
      ]
    -- ScriptHash "02bcd203776ea49739cbcacfad85d08ec88d1caeb86ef16b6bf3a848"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyNoDatum_0 redeemer_1 context_2 = case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_1 of
    --                                                          {PlutusLedgerApi.V1.Scripts.Redeemer _r_3 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_2 of
    --                                                                                                       {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_4
    --                                                                                                                                                       _scriptPurpose_5 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_4) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoOutputs txInfo_4)
    --                                                                                                                                                                            then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                            else GHC.Tuple.Prim.()}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58fb0100002253233533225323233530023300122222222222200c261004130023300122222222222200a26223"
      , ByteString
"23232323232323232323233333333333300d37586ae8402cdd61aba100a37586ae84024dd59aba100837566ae8"
      , ByteString
"401cdd61aba100637566ae84014d5d08021bac357420066eacd5d08011bab35742002646464a66a666ae68cdc3"
      , ByteString
"a400000402602426eb8d5d0800899319ab9c4901035054310001435573c0046aae74004dd51aba1357440026ae"
      , ByteString
"88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aab9e37546ae84d"
      , ByteString
"55cf1baa007233357346ae8c00400c00848800848800458400448005"
      ]
    -- ScriptHash "dfc70e74fa54bca9ddb0914cff1ae7234f4ead56ae08f13705bf7253"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyNoDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                      PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyNoDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                              {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                              _redeemer_3
    --                                                                                                                              (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                               (GHC.Maybe.Just _)) -> GHC.Types.False;
    --                                                                               PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                              _redeemer_6
    --                                                                                                                              _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58dd010100253293232532325333573466e1d200235573a0062264b26600640026ae84d5d1000c860051300249"
      , ByteString
"86aae7800c44c0052625953293001323237586ae84008c011d69aab9e37546ae840163000898009919191bac35"
      , ByteString
"742004600aeb4d5d11aba200135573c6ea8d5d080288ccd5cd1aba3001800400a30028c00044646464aa666ae6"
      , ByteString
"8cdc3a4004004230021155333573466e1d20000021180098029aba10010898042481035054310035573c0046aa"
      , ByteString
"e74004dd50009baa357426ae88d5d10009aab9e3754005149a260029210350543500119319ab9c00180001"
      ]

-- | Script that succeeds when inputs and outputs are not empty validated against txInfo
-- Fails on malformed arguments and also if inputs or outputs are empty
inputsOutputsAreNotEmptyWithDatum :: SLanguage l -> Plutus l
inputsOutputsAreNotEmptyWithDatum :: forall (l :: Language). SLanguage l -> Plutus l
inputsOutputsAreNotEmptyWithDatum =
  forall (l :: Language). HasCallStack => ByteString -> Plutus l
decodeHexPlutus forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
    -- ScriptHash "e6d86a1aed1966b121f489c3c032a1c72139ecbb2ecdc88c3cb99517"
    -- Preprocessed PlutusV1 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                                    {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                           {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                        {PlutusLedgerApi.V1.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                        _scriptPurpose_6 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V1.Data.Contexts.txInfoOutputs txInfo_5)
    --                                                                                                                                                                                                                             then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV1 ->
      [ ByteString
"58e4010000222532335332253232335300233001222222222200a2610041300233001222222222200926223232"
      , ByteString
"32323232323232333333333300b37586ae84024dd61aba100837566ae8401cdd59aba100637586ae84014dd61a"
      , ByteString
"ba1004357420066eb0d5d08011bac35742002646464a66a666ae68cdc3a400000402202026eb8d5d0800899319"
      , ByteString
"ab9c4901035054310001235573c0046aae74004dd51aba1357440026ae88004d5d10009aba2001357440026ae8"
      , ByteString
"8004d5d10009aba2001357440026aae78dd51aba135573c6ea801c8ccd5cd1aba3001003002122002122001161"
      , ByteString
"0011200101"
      ]
    -- ScriptHash "8e6aa62d4514da1018898798c40b4ecb442b54dce1d38fee8e115314"
    -- Preprocessed PlutusV2 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinData -> ()
    -- inputsOutputsAreNotEmptyWithDatum_0 datum_1 redeemer_2 context_3 = case PlutusTx.IsData.Class.unsafeFromBuiltinData datum_1 of
    --                                                                    {PlutusLedgerApi.V1.Scripts.Datum _ -> case PlutusTx.IsData.Class.unsafeFromBuiltinData redeemer_2 of
    --                                                                                                           {PlutusLedgerApi.V1.Scripts.Redeemer _r_4 -> case PlutusTx.IsData.Class.unsafeFromBuiltinData context_3 of
    --                                                                                                                                                        {PlutusLedgerApi.V2.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                                                                                        _scriptPurpose_6 -> if PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V2.Data.Contexts.txInfoOutputs txInfo_5)
    --                                                                                                                                                                                                                             then PlutusTx.Builtins.error GHC.Tuple.Prim.()
    --                                                                                                                                                                                                                             else GHC.Tuple.Prim.()}}}
    -- @@@
    SLanguage l
SPlutusV2 ->
      [ ByteString
"58fb01000022253233533225323233530023300122222222222200c261004130023300122222222222200a2622"
      , ByteString
"323232323232323232323233333333333300d37586ae8402cdd61aba100a37586ae84024dd59aba100837566ae"
      , ByteString
"8401cdd61aba100637566ae84014d5d08021bac357420066eacd5d08011bab35742002646464a66a666ae68cdc"
      , ByteString
"3a400000402602426eb8d5d0800899319ab9c491035054310001435573c0046aae74004dd51aba1357440026ae"
      , ByteString
"88004d5d10009aba2001357440026ae88004d5d10009aba2001357440026ae88004d5d10009aab9e37546ae84d"
      , ByteString
"55cf1baa007233357346ae8c00400c00848800848800458400448005"
      ]
    -- ScriptHash "e8a1fc8101d9dc7cef3334c8001c073c52ba2d5d9b79e9b09f3c015e"
    -- Preprocessed PlutusV3 Script:
    -- @@@
    -- inputsOutputsAreNotEmptyWithDatum_0 :: PlutusTx.Builtins.Internal.BuiltinData ->
    --                                        PlutusTx.Builtins.Internal.BuiltinUnit
    -- inputsOutputsAreNotEmptyWithDatum_0 arg_1 = PlutusTx.Prelude.check GHC.Base.$ (case PlutusTx.IsData.Class.unsafeFromBuiltinData arg_1 of
    --                                                                                {PlutusLedgerApi.V3.Data.Contexts.ScriptContext _txInfo_2
    --                                                                                                                                _redeemer_3
    --                                                                                                                                (PlutusLedgerApi.V3.Data.Contexts.SpendingScript _txOutRef_4
    --                                                                                                                                                                                 (GHC.Maybe.Nothing)) -> GHC.Types.False;
    --                                                                                 PlutusLedgerApi.V3.Data.Contexts.ScriptContext txInfo_5
    --                                                                                                                                _redeemer_6
    --                                                                                                                                _scriptPurpose_7 -> GHC.Classes.not GHC.Base.$ (PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoInputs txInfo_5) GHC.Classes.|| PlutusTx.Data.List.null (PlutusLedgerApi.V3.Data.Contexts.txInfoOutputs txInfo_5))})
    -- @@@
    SLanguage l
SPlutusV3 ->
      [ ByteString
"58dd010100253293232532325333573466e1d200235573a0062264b26600640026ae84d5d1000c84c00d268c00"
      , ByteString
"86aae7800c44c0052625953293001323237586ae84008c011d69aab9e37546ae840163000898009919191bac35"
      , ByteString
"742004600aeb4d5d11aba200135573c6ea8d5d080288ccd5cd1aba3001800400a30028c00044646464aa666ae6"
      , ByteString
"8cdc3a4004004230021155333573466e1d20000021180098029aba10010898042481035054310035573c0046aa"
      , ByteString
"e74004dd50009baa357426ae88d5d10009aab9e3754005149a260029210350543500119319ab9c00180001"
      ]