(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Wolfram 15.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       154,          7]
NotebookDataLength[     65156,       1639]
NotebookOptionsPosition[     55460,       1460]
NotebookOutlinePosition[     57695,       1512]
CellTagsIndexPosition[     57617,       1507]
WindowTitle->BIP39Entropy
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{
Cell[BoxData[GridBox[{
   {GridBox[{
      {
       ItemBox[Cell[BoxData[
         RowBox[{
          TemplateBox[{12},
           "Spacer1"], Cell[
          "WOLFRAM INSTITUTE/ PUZZLES SYMBOL", "PacletNameCell",
           TextAlignment->Center,ExpressionUUID->
           "3bce7167-b136-4019-8a32-14a13b18e0c6"], 
          TemplateBox[{8},
           "Spacer1"]}]],
         TextAlignment->Center,ExpressionUUID->
         "6228c639-ae9d-4650-9268-c117f5d27df3"],
        Background->LightDarkSwitched[
          RGBColor[0.490196, 0.576471, 0.690196]],
        ItemSize->Full], ""}
     },
     GridBoxAlignment->{"Rows" -> {{Center}}},
     GridBoxItemSize->{"Columns" -> {Full, 
         Scaled[0.02]}, "Rows" -> {{2.5}}}], Cell[TextData[{
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "See Also",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "c25e422e-5117-49b7-b3dd-208a7cf31f4f"]
         }],ExpressionUUID->"f88a9508-9318-44b4-a58d-02e18b7e4521"],
         StripOnInput->False],{
        StyleBox[
          "\"BIP39Mnemonic\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/BIP39Mnemonic"], 
         StyleBox[
          "\"BIP39MnemonicQ\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/BIP39MnemonicQ"], 
         StyleBox["\"BIP39Seed\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/BIP39Seed"], 
         StyleBox[
          "\"BIP39FinalWords\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/BIP39FinalWords"], 
         StyleBox[
          "\"$BIP39EnglishWords\"", "SeeAlsoRelated", StripOnInput -> False] :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/ref/$BIP39EnglishWords"]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"SeeAlso"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "d217e400-3da6-4b8b-858a-33369c607867"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "Related Guides",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "5baaba27-6ea1-4fa5-97ef-766b2475842b"]
         }],ExpressionUUID->"4a66ad65-30bf-44d1-9c00-143ee62c74c2"],
         StripOnInput->False],{
        "\"Seeds\"" :> 
         Documentation`HelpLookup[
          "paclet:WolframInstitute/Puzzles/guide/Seeds"]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"MoreAbout"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "36f5b52b-8337-4f50-ba82-56f795e137e5"],
     "\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\[ThickSpace]\
\[ThickSpace]",
     Cell[BoxData[
      TagBox[
       ActionMenuBox[
        FrameBox[Cell[TextData[{
          "URL",
          " ",
          Cell[BoxData[
           GraphicsBox[
            {GrayLevel[0.66667], Thickness[0.13], 
             LineBox[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]},
            AspectRatio->1,
            ImageSize->20,
            PlotRange->{{-3, 4}, {-1, 1}}]],ExpressionUUID->
           "2861b339-1ff0-48c8-a367-4703b3c85259"]
         }],ExpressionUUID->"838b85ef-59fc-44eb-b0a2-bc0ddaa2bf41"],
         StripOnInput->False],{
        "\"WolframInstitute/Puzzles/ref/BIP39Entropy\"" :> None, 
         "\"Copy Wolfram Documentation Center URL\"" :> 
         CopyToClipboard["WolframInstitute/Puzzles/ref/BIP39Entropy"], 
         Delimiter, "\"Copy web URL\"" :> 
         Module[{DocumentationSearch`Private`nb$}, 
           DocumentationSearch`Private`nb$ = 
            NotebookPut[
             Notebook[{
               Cell[BoxData[
                 MakeBoxes[
                  Hyperlink[
                   "http://reference.wolfram.com/language/WolframInstitute/\
Puzzles/ref/BIP39Entropy.html"], StandardForm]], "Input", TextClipboardType -> 
                 "PlainText"]}, Visible -> False]]; 
           SelectionMove[DocumentationSearch`Private`nb$, All, Notebook]; 
           FrontEndTokenExecute[DocumentationSearch`Private`nb$, "Copy"]; 
           NotebookClose[DocumentationSearch`Private`nb$]; Null], 
         "\"Go to web URL\"" :> 
         FrontEndExecute[{
           NotebookLocate[{
             URL[If[TrueQ[False], 
                 "http://reference.wolfram.com/system-modeler/", 
                 "http://reference.wolfram.com/language/"] <> 
               "WolframInstitute/Puzzles/ref/BIP39Entropy" <> ".html"], 
              None}]}]},
        Appearance->None,
        MenuAppearance->Automatic,
        MenuStyle->"URLMenu"],
       MouseAppearanceTag["LinkHand"]]],
      LineSpacing->{1.4, 0},ExpressionUUID->
      "c43346a1-9e8e-4e24-ae2d-d419748de502"]
    }], "AnchorBar",
     CacheGraphics->False,ExpressionUUID->
     "6531969c-e5e5-494c-badf-088591d6f67c"]}
  }]], "AnchorBarGrid",
 CellID->1,ExpressionUUID->"39937c75-3ae1-4055-b71e-30638af9a409"],

Cell["WolframInstitute`Puzzles`", "ContextNameCell",ExpressionUUID->"8115f944-c3c0-4be7-9a9b-5234315d34fa"],

Cell[CellGroupData[{

Cell[BoxData[GridBox[{
   {Cell[TextData[{
     Cell[
     "BIP39Entropy", "ObjectName",ExpressionUUID->
      "d3f91835-145a-45cd-a69e-93b448d67016"],
     Cell[BoxData[
      TemplateBox[{8},
       "Spacer1"]],ExpressionUUID->"942d18e0-5062-43b7-8a95-3e9c5c01114f"],
     Cell[BoxData[
     ""], "ObjectNameTranslation",ExpressionUUID->
      "f2d936fb-7f41-4f7d-9633-35a38ec2fdf8"]
    }],ExpressionUUID->"05a92423-75a7-4a92-a600-8994006301e3"], 
    "\[SpanFromLeft]"}
  }]], "ObjectNameGrid",ExpressionUUID->"e41fc4d1-e1be-44fd-8090-\
608f70f98c50"],

Cell[BoxData[GridBox[{
   {"", Cell[TextData[{
     Cell[BoxData[
      RowBox[{
       TemplateBox[{
         Cell[
          TextData["BIP39Entropy"]], 
         "paclet:WolframInstitute/Puzzles/ref/BIP39Entropy", 
         "WolframInstitute/Puzzles Package Symbol"},
        "PackageLink",
        BaseStyle->"InlineFormula"], "[", 
       StyleBox["mnemonic", "TI"], "]"}]], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "55934743-cb14-44f9-bddc-c7e43eeda866"],
     "\[LineSeparator]",
     "gives the entropy of a BIP39 English ",
     StyleBox["mnemonic", "TI"],
     " as a ",
     Cell[BoxData[
      TemplateBox[{
        Cell[
         TextData["ByteArray"]], "paclet:ref/ByteArray"},
       "RefLink",
       BaseStyle->"InlineFormula"]], "InlineFormula",
      FontFamily->"Source Sans Pro",ExpressionUUID->
      "315bf36d-63e6-489e-b92e-7973946fdb48"],
     ", checking its checksum."
    }],ExpressionUUID->"cb0d8dc3-c161-427e-86e8-8521ee773d17"]},
   {"", Cell[TextData[{
     Cell[BoxData[
      RowBox[{
       TemplateBox[{
         Cell[
          TextData["BIP39Entropy"]], 
         "paclet:WolframInstitute/Puzzles/ref/BIP39Entropy", 
         "WolframInstitute/Puzzles Package Symbol"},
        "PackageLink",
        BaseStyle->"InlineFormula"], "[", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{
          SubscriptBox[
           StyleBox["word", "TI"], 
           StyleBox["_", "TI"]], "1", "$"}], ",", " ", 
         RowBox[{
          SubscriptBox[
           StyleBox["word", "TI"], 
           StyleBox["_", "TI"]], "2", "$"}], ",", " ", "\[Ellipsis]"}], "}"}],
        "]"}]], "InlineFormula",
      FontFamily->"Source Sans Pro",
      FontSize->0.9 Inherited,ExpressionUUID->
      "394329e4-e104-41b0-85ad-26750fc7b2d1"],
     "\[LineSeparator]",
     "takes the mnemonic as a list of words."
    }],ExpressionUUID->"2982d964-8af5-4863-baee-5d8b9ac837cb"]}
  }]], "Usage",ExpressionUUID->"2c35435b-d86d-4b28-9b2b-894758ab1375"]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[Cell[BoxData[Cell[TextData[{
  Cell[BoxData[
   DynamicBox[ToBoxes[
     If[CurrentValue[
        EvaluationCell[], "CellGroupOpen"] =!= Closed, 
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], 
      Rotate[
       Style[
        Graphics[{
          Thickness[0.18], 
          RGBColor[0.8509803921568627, 0.396078431372549, 0], 
          Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
         PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
        0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]],
    ImageSizeCache->{
     13.600000000000001`, {-0.1685058593749993, 13.768505859375}}]],
   ExpressionUUID->"4268459e-a833-425f-b85e-f5746a796b41"],
  Cell[BoxData[
   TemplateBox[{1},
    "Spacer1"]],ExpressionUUID->"d31ecffd-b6c9-4ab6-a1cd-85e13967933a"],
  "Details and Options"
 }], "NotesFrameText",ExpressionUUID->
  "3818e1a7-d68d-40de-ba3a-88b6bcb45dbc"]],ExpressionUUID->"0b0d094f-9e29-\
4789-97c5-1e32ddef9c22"]], "NotesSection",
 ShowGroupOpener->"Thumbnail",
 WholeCellGroupOpener->True,
 CellGroupingRules->{"SectionGrouping", 50},
 CacheGraphics->False,
 CellID->1786741660,ExpressionUUID->"2c9bafb6-8e0e-4492-914c-ed51b69629db"],

Cell[TextData[{
 "The word indices are packed back into ",
 Cell[BoxData[
  RowBox[{"11", 
   StyleBox["n", "TI"]}]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "8970278d-4c8f-41e6-abb7-c91639d4d36a"],
 " bits, split into ",
 Cell[BoxData[
  RowBox[{"32", 
   StyleBox["n", "TI"], "/", "3"}]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "2cc9bc9a-2f0f-4d34-ab77-04ed86f252ce"],
 " entropy bits and ",
 Cell[BoxData[
  RowBox[{
   StyleBox["n", "TI"], "/", "3"}]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "58ab30c9-d647-4628-89e0-a61292207ea5"],
 " checksum bits, and the checksum bits are compared with the leading bits of \
",
 Cell[BoxData[
  StyleBox["SHA256",
   FontSlant->"Plain"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "b372bd71-c9db-40f6-b5fd-bf4c6079696e"],
 " of the recovered entropy."
}], "Notes",ExpressionUUID->"2571d450-0ead-4a89-b91f-b5f5ed139832"],

Cell[TextData[{
 "The result is a ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Failure"]], "paclet:ref/Failure"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",ExpressionUUID->
  "9e813b2b-93d1-476d-b67c-a580ee230c1f"],
 " when the words are not all in ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["$BIP39EnglishWords"]], 
    "paclet:WolframInstitute/Puzzles/ref/$BIP39EnglishWords", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "4afed034-84a1-4c6f-ac47-194f639f46ff"],
 ", when there are not 12, 15, 18, 21 or 24 of them, or when the checksum \
does not match. Each carries its own message."
}], "Notes",ExpressionUUID->"67666b22-af76-4479-93b6-7983ca1ee6d1"],

Cell[TextData[{
 "A ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Failure"]], "paclet:ref/Failure"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",ExpressionUUID->
  "6bb8de40-dcd4-47c4-9c36-ed8d6844a174"],
 " rather than an unevaluated call is right here because the argument is a \
well-formed string that the function tried to decode; the mismatch is only \
visible after the attempt."
}], "Notes",ExpressionUUID->"ddf9e71f-f841-4631-9f95-c204f67c0bdb"],

Cell["\<\
Words are split on whitespace, so extra spaces between words are harmless. \
Case is not folded: BIP39 words are lowercase.\
\>", "Notes",ExpressionUUID->"813245ad-4352-401b-9d39-4cf64d192538"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP39MnemonicQ"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP39MnemonicQ", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "41dae8e3-b744-460b-b8fa-45dc73521eb2"],
 " is the yes-or-no form and never returns a ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Failure"]], "paclet:ref/Failure"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",ExpressionUUID->
  "5793275d-f690-46d5-959a-fadda7c70b3d"],
 "."
}], "Notes",ExpressionUUID->"4591697d-786a-4e63-8e00-a5548bc3bdf4"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP39Mnemonic"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP39Mnemonic", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "10a00170-48d2-4ffd-a217-6621a82d5d53"],
 " is the inverse."
}], "Notes",ExpressionUUID->"a18de80d-7a29-447b-97cf-33b2c4ee4c35"]
}, Closed]],

Cell["", "PageDelimiter",ExpressionUUID->"c8ff8082-095e-4553-a555-7ab3ac837359"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[
     MatchQ[
      CurrentValue[
       EvaluationNotebook[], {
       TaggingRules, "Openers", "PrimaryExamplesSection"}, Open], 
      Alternatives[True, Open]], 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]],
   ImageSizeCache->{
    13.600000000000001`, {4.251494140625001, 9.348505859375}}]],
  ExpressionUUID->"91fd50dc-43d4-4841-8fd8-4b1c260ebbb2"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"2a2e4e15-5a03-44b8-8fde-b6bfdbbacc1b"],
 "Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(12)", "ExampleCount",ExpressionUUID->
  "8cc50948-86a1-4535-a4b7-ea264aec430e"]
}], "PrimaryExamplesSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1503243619,ExpressionUUID->"87ed449a-1985-43f8-b37b-3d101ff9a5e5"],

Cell[BoxData[
 RowBox[{"Needs", "[", "\"\<WolframInstitute`Puzzles`\>\"", "]"}]], "Input", \
"ExampleInitialization",
 CellLabel->"In[1]:=",
 CellID->1969679695,ExpressionUUID->"f54ace7e-d047-4030-89c4-560a23727734"],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "269e4687-66c1-48c0-aac5-40dee3defcfa"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"016c63c4-03ef-4ef0-b1f1-785af20e1924"],
 "Basic Examples",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(3)", "ExampleCount",ExpressionUUID->
  "463b7830-f045-4be2-a48a-30fc3799c2e6"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->2017881225,ExpressionUUID->"f8af1c84-101d-492c-98bf-d221640f4d03"],

Cell["\<\
The first official BIP39 test vector decodes back to the all-zero entropy:\
\>", "ExampleText",
 CellTags->
  "TextAnnotation",ExpressionUUID->"b23f7f62-4ea0-47fa-a153-637bd95d37be"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ByteListToHexString", "[", 
  RowBox[{
  "BIP39Entropy", 
   "[", "\"\<abandon abandon abandon abandon abandon abandon abandon abandon \
abandon abandon abandon about\>\"", "]"}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"5255b05f-2f11-41bc-9a87-c9f64036b4b4"],

Cell[BoxData["\<\"00000000000000000000000000000000\"\>"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"bc5b67f0-0e95-4c07-bb2c-4507001d14d1"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "da6bd871-90c9-4320-af28-59eb40c3f3d7"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"87b10b50-f561-45b4-\
a344-62e6f7db7dee"],

Cell["The mnemonic may be given as a list of words:", "ExampleText",ExpressionUUID->"be95244d-8323-47bc-9e6a-b6f987a150db"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ByteListToHexString", "[", 
  RowBox[{"BIP39Entropy", "[", 
   RowBox[{"{", 
    RowBox[{"\"\<legal\>\"", ",", " ", "\"\<winner\>\"", ",", 
     " ", "\"\<thank\>\"", ",", " ", "\"\<year\>\"", ",", " ", "\"\<wave\>\"",
      ",", " ", "\"\<sausage\>\"", ",", " ", "\"\<worth\>\"", ",", 
     " ", "\"\<useful\>\"", ",", " ", "\"\<legal\>\"", ",", 
     " ", "\"\<winner\>\"", ",", " ", "\"\<thank\>\"", ",", 
     " ", "\"\<yellow\>\""}], "}"}], "]"}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"e6890a4c-d996-4b30-b125-b037edde31bd"],

Cell[BoxData["\<\"7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f\"\>"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"18ba6f3b-065c-44ee-80e3-c889d0eb6ba6"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "4e5738ff-6609-4823-b66e-f71e8310cfd6"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"000200ff-74ce-4dc5-\
b531-f9750a5f1dcb"],

Cell["A 24-word mnemonic gives 32 bytes of entropy:", "ExampleText",ExpressionUUID->"2d6a5cd7-2ba9-4d1b-8374-34ad7715eae5"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Length", "[", 
  RowBox[{
  "BIP39Entropy", 
   "[", "\"\<void come effort suffer camp survey warrior heavy shoot primary \
clutch crush open amazing screen patrol group space point ten exist slush \
involve unfold\>\"", "]"}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"0c8505bc-5984-42fd-9ce3-a424090c4e0b"],

Cell[BoxData["32"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"604b415c-0f51-48bb-9533-03e997b08796"]
}, Open  ]]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "efadd7a3-265f-456e-a1f6-57ab0c54d896"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"7efbb476-35f4-48a5-b7fe-fc25c4b974dc"],
 "Scope",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(3)", "ExampleCount",ExpressionUUID->
  "a3d80650-89e6-4f5d-b747-03cd319c2080"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1293636265,ExpressionUUID->"5c951076-a6f4-4cc7-a94f-a9cbfc197c96"],

Cell["Every admitted word count decodes, giving 16 to 32 bytes:", \
"ExampleText",ExpressionUUID->"7e93bc45-7668-4a90-bcb8-9bbbca3b27e7"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Table", "[", 
  RowBox[{
   RowBox[{"Length", "[", 
    RowBox[{"BIP39Entropy", "[", 
     RowBox[{"BIP39Mnemonic", "[", 
      RowBox[{"ByteArray", "[", 
       RowBox[{"ConstantArray", "[", 
        RowBox[{"0", ",", " ", "size"}], "]"}], "]"}], "]"}], "]"}], "]"}], ",",
    " ", 
   RowBox[{"{", 
    RowBox[{"size", ",", " ", 
     RowBox[{"{", 
      RowBox[{
      "16", ",", " ", "20", ",", " ", "24", ",", " ", "28", ",", " ", "32"}], 
      "}"}]}], "}"}]}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"4e371a81-63e4-4f35-bb95-11cd41bc2abd"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"16", ",", "20", ",", "24", ",", "28", ",", "32"}], "}"}]], "Output",\

 CellLabel->"Out[1]= ",ExpressionUUID->"2ec3cde4-c665-462c-845b-d06f0219645f"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "7fbe10e4-8c70-44fb-a20c-60ba91acd9fe"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"cc6079ee-e275-42ed-\
8389-2c8db7496c35"],

Cell["\<\
Extra whitespace between words is harmless, because the sentence is split on \
whitespace:\
\>", "ExampleText",ExpressionUUID->"1dd397e5-fa4b-4f62-9ec5-1ed2fecca80e"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ByteListToHexString", "[", 
  RowBox[{
  "BIP39Entropy", 
   "[", "\"\<abandon   abandon abandon  abandon abandon abandon abandon \
abandon abandon abandon abandon about\>\"", "]"}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"552502ca-3a91-4ed4-adcd-395b9bcee433"],

Cell[BoxData["\<\"00000000000000000000000000000000\"\>"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"5e9a58f7-c9aa-480b-b0fc-8b934fed7ada"]
}, Open  ]]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "276336f8-4670-4c7c-9df6-fd6ef8dffcd6"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"ce95bb30-3c7c-4f49-\
af5e-2a5734fc596d"],

Cell["\<\
A last word that does not carry the right checksum makes the attempt fail:\
\>", "ExampleText",ExpressionUUID->"f797629e-3f8f-4f89-ac66-12ceaba339c3"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"BIP39Entropy", 
  "[", "\"\<abandon abandon abandon abandon abandon abandon abandon abandon \
abandon abandon abandon abandon\>\"", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"31167a41-f566-4273-b43c-5b78ed06c581"],

Cell[BoxData[
 InterpretationBox[
  RowBox[{
   TagBox["Failure",
    "SummaryHead"], "[", 
   DynamicModuleBox[{Typeset`open$$ = False, Typeset`embedState$$ = "Ready"}, 
    
    TemplateBox[{
      PaneSelectorBox[{False -> GridBox[{{
            PaneBox[
             ButtonBox[
              DynamicBox[
               FEPrivate`FrontEndResource["FEBitmaps", "SummaryBoxOpener"]], 
              ButtonFunction :> (Typeset`open$$ = True), Appearance -> None, 
              BaseStyle -> {}, Evaluator -> Automatic, Method -> 
              "Preemptive"], Alignment -> {Center, Center}, ImageSize -> 
             Dynamic[{
               Automatic, 
                3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
                 Magnification])}]], 
            FrameBox[
             StyleBox["\"\[WarningSign]\"", 
              Directive["Message", 35], StripOnInput -> False], 
             ContentPadding -> False, FrameStyle -> None, 
             FrameMargins -> {{0, 0}, {0, 0}}, StripOnInput -> False], 
            GridBox[{{
               TagBox[
                GridBox[{{
                   TagBox["\"Message: \"", "SummaryItemAnnotation"], 
                   "\[InvisibleSpace]", 
                   TagBox[
                   "\"the BIP39 checksum does not match the entropy of the \
mnemonic.\"", "SummaryItem"]}}, 
                 GridBoxItemSize -> {"Columns" -> {6.5, All, Automatic}}, 
                 GridBoxAlignment -> {"Columns" -> {{Left}}}, 
                 GridBoxSpacings -> {"Columns" -> {{0}}}], "SummaryItem"]}, {
               TagBox[
                GridBox[{{
                   TagBox["\"Tag: \"", "SummaryItemAnnotation"], 
                   "\[InvisibleSpace]", 
                   TagBox["\"ConfirmationFailed\"", "SummaryItem"]}}, 
                 GridBoxItemSize -> {"Columns" -> {6.5, All, Automatic}}, 
                 GridBoxAlignment -> {"Columns" -> {{Left}}}, 
                 GridBoxSpacings -> {"Columns" -> {{0}}}], "SummaryItem"]}}, 
             GridBoxAlignment -> {
              "Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, AutoDelete -> 
             False, GridBoxItemSize -> {
              "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, 
             GridBoxSpacings -> {"Columns" -> {{2}}, "Rows" -> {{Automatic}}},
              BaseStyle -> {
              ShowStringCharacters -> False, NumberMarks -> False, 
               PrintPrecision -> 3, ShowSyntaxStyles -> False}]}}, 
          GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}}, 
          AutoDelete -> False, 
          GridBoxItemSize -> {
           "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, 
          BaselinePosition -> {1, 1}], True -> GridBox[{{
            PaneBox[
             ButtonBox[
              DynamicBox[
               FEPrivate`FrontEndResource["FEBitmaps", "SummaryBoxCloser"]], 
              ButtonFunction :> (Typeset`open$$ = False), Appearance -> None, 
              BaseStyle -> {}, Evaluator -> Automatic, Method -> 
              "Preemptive"], Alignment -> {Center, Center}, ImageSize -> 
             Dynamic[{
               Automatic, 
                3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
                 Magnification])}]], 
            FrameBox[
             StyleBox["\"\[WarningSign]\"", 
              Directive["Message", 35], StripOnInput -> False], 
             ContentPadding -> False, FrameStyle -> None, 
             FrameMargins -> {{0, 0}, {0, 0}}, StripOnInput -> False], 
            GridBox[{{
               TagBox[
                GridBox[{{
                   TagBox["\"Message: \"", "SummaryItemAnnotation"], 
                   "\[InvisibleSpace]", 
                   TagBox[
                   "\"the BIP39 checksum does not match the entropy of the \
mnemonic.\"", "SummaryItem"]}}, 
                 GridBoxItemSize -> {"Columns" -> {6.5, All, Automatic}}, 
                 GridBoxAlignment -> {"Columns" -> {{Left}}}, 
                 GridBoxSpacings -> {"Columns" -> {{0}}}], "SummaryItem"]}, {
               TagBox[
                GridBox[{{
                   TagBox["\"Tag: \"", "SummaryItemAnnotation"], 
                   "\[InvisibleSpace]", 
                   TagBox["\"ConfirmationFailed\"", "SummaryItem"]}}, 
                 GridBoxItemSize -> {"Columns" -> {6.5, All, Automatic}}, 
                 GridBoxAlignment -> {"Columns" -> {{Left}}}, 
                 GridBoxSpacings -> {"Columns" -> {{0}}}], "SummaryItem"]}, {
               RowBox[{
                 TagBox[
                  
                  TemplateBox[{"\"ConfirmationType\"", "\": \""}, 
                   "RowDefault"], "SummaryItemAnnotation"], 
                 "\[InvisibleSpace]", 
                 TagBox[
                  TagBox["\"ConfirmAssert\"", HoldForm], "SummaryItem"]}]}, {
               RowBox[{
                 TagBox[
                  TemplateBox[{"\"Expression\"", "\": \""}, "RowDefault"], 
                  "SummaryItemAnnotation"], "\[InvisibleSpace]", 
                 TagBox[
                  TagBox["False", HoldForm], "SummaryItem"]}]}, {
               RowBox[{
                 TagBox[
                  TemplateBox[{"\"Information\"", "\": \""}, "RowDefault"], 
                  "SummaryItemAnnotation"], "\[InvisibleSpace]", 
                 TagBox[
                  TagBox[
                  "\"the BIP39 checksum does not match the entropy of the \
mnemonic.\"", HoldForm], "SummaryItem"]}]}, {
               RowBox[{
                 TagBox[
                  TemplateBox[{"\"Test\"", "\": \""}, "RowDefault"], 
                  "SummaryItemAnnotation"], "\[InvisibleSpace]", 
                 TagBox[
                  TagBox["False", HoldForm], "SummaryItem"]}]}, {
               RowBox[{
                 TagBox[
                  TemplateBox[{"\"HeldTest\"", "\": \""}, "RowDefault"], 
                  "SummaryItemAnnotation"], "\[InvisibleSpace]", 
                 TagBox[
                  TagBox[
                   RowBox[{"Hold", "[", 
                    
                    RowBox[{
                    "WolframInstitute`Puzzles`Seeds`BIP39`Private`\
checksumBits$384345", "===", 
                    
                    RowBox[{
                    "WolframInstitute`Puzzles`Seeds`BIP39`Private`\
bip39ChecksumBits", "[", 
                    
                    RowBox[{
                    "WolframInstitute`Puzzles`Seeds`BIP39`Private`entropy$\
384345", ",", 
                    
                    RowBox[{"Length", "[", 
                    "WolframInstitute`Puzzles`Seeds`BIP39`Private`\
checksumBits$384345", "]"}]}], "]"}]}], "]"}], HoldForm], "SummaryItem"]}]}}, 
             GridBoxAlignment -> {
              "Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, AutoDelete -> 
             False, GridBoxItemSize -> {
              "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, 
             GridBoxSpacings -> {"Columns" -> {{2}}, "Rows" -> {{Automatic}}},
              BaseStyle -> {
              ShowStringCharacters -> False, NumberMarks -> False, 
               PrintPrecision -> 3, ShowSyntaxStyles -> False}]}}, 
          GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}}, 
          AutoDelete -> False, 
          GridBoxItemSize -> {
           "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, 
          BaselinePosition -> {1, 1}]}, 
       Dynamic[Typeset`open$$], ImageSize -> Automatic]},
     "SummaryPanel"],
    DynamicModuleValues:>{}], "]"}],
  Failure[
  "ConfirmationFailed", <|
   "MessageTemplate" -> 
    "the BIP39 checksum does not match the entropy of the mnemonic.", 
    "MessageParameters" -> {}, "ConfirmationType" -> "ConfirmAssert", 
    "Expression" :> False, "Information" -> 
    "the BIP39 checksum does not match the entropy of the mnemonic.", "Test" :> 
    False, "HeldTest" -> 
    Hold[WolframInstitute`Puzzles`Seeds`BIP39`Private`checksumBits$384345 === 
      WolframInstitute`Puzzles`Seeds`BIP39`Private`bip39ChecksumBits[
       WolframInstitute`Puzzles`Seeds`BIP39`Private`entropy$384345, 
        Length[
        WolframInstitute`Puzzles`Seeds`BIP39`Private`checksumBits$384345]]]|>],
  Editable->False,
  SelectWithContents->True,
  Selectable->False]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"73d3a512-1677-40e3-83cc-71d25157f85c"]
}, Open  ]]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "7dcd6e1f-6f3c-41ec-8696-91424ae6425f"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"c5d0350c-3225-4fda-9678-8db979c6516b"],
 "Applications",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(2)", "ExampleCount",ExpressionUUID->
  "03d11477-52f4-49ff-afaf-70e7b944222f"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->258228157,ExpressionUUID->"2def4fa2-358e-41be-bd3b-ba4566a87a33"],

Cell["\<\
Reading the entropy out of a recovered phrase is how a paper backup is \
checked against a stored hexadecimal seed:\
\>", "ExampleText",ExpressionUUID->"9e55a442-051b-46ec-b68a-e5a5b45e4dca"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{
  "BIP39Entropy", 
   "[", "\"\<legal winner thank year wave sausage worth useful legal winner \
thank yellow\>\"", "]"}], " ", "===", " ", 
  RowBox[{"ByteArray", "[", 
   RowBox[{"ConstantArray", "[", 
    RowBox[{"16^^7f", ",", " ", "16"}], "]"}], "]"}]}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"cd62ddb0-f849-4493-837c-8b687935c235"],

Cell[BoxData["True"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"0ee87bb9-a45c-4cab-afaa-9de2b3896f22"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "4f22557a-fe0c-455b-8c0c-642cb0841520"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"ba86e011-fd2f-4331-\
8bf5-2de6d2d9c0c3"],

Cell[TextData[{
 "The three failure causes are told apart by the message the ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Failure"]], "paclet:ref/Failure"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",ExpressionUUID->
  "0e81e023-a89a-4648-b4c9-7c2d82376cef"],
 " carries:"
}], "ExampleText",ExpressionUUID->"7c4e6f83-eb40-4a65-b93f-b7d3c5eb15d0"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Column", "[", 
  RowBox[{"Map", "[", 
   RowBox[{
    RowBox[{"Function", "[", 
     RowBox[{"m", ",", " ", 
      RowBox[{
       RowBox[{"BIP39Entropy", "[", "m", "]"}], "[", "\"\<Message\>\"", 
       "]"}]}], "]"}], ",", " ", 
    RowBox[{"{", 
     RowBox[{"\"\<abandon abandon about\>\"", ",", 
      " ", "\"\<abandon abandon abandon abandon abandon abandon abandon \
abandon abandon abandon abandon zzzz\>\"", ",", 
      " ", "\"\<abandon abandon abandon abandon abandon abandon abandon \
abandon abandon abandon abandon abandon\>\""}], "}"}]}], "]"}], 
  "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"9e07f581-07a5-4669-894d-b3bf42487679"],

Cell[BoxData[
 TagBox[GridBox[{
    {"\<\"a BIP39 mnemonic has 12, 15, 18, 21 or 24 words.\"\>"},
    {"\<\"every word of a BIP39 mnemonic must be in the BIP39 English \
wordlist.\"\>"},
    {"\<\"the BIP39 checksum does not match the entropy of the \
mnemonic.\"\>"}
   },
   DefaultBaseStyle->"Column",
   GridBoxAlignment->{"Columns" -> {{Left}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Column"]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"df952994-6441-498e-8828-cfc6fcfcbed6"]
}, Open  ]]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "73092b38-ddb9-4b1c-8caa-7861606168d3"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"91f8e0a3-4b8b-410d-986a-f581fe072754"],
 "Properties & Relations",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(2)", "ExampleCount",ExpressionUUID->
  "55446d0b-90d2-48b5-a32f-3cfa5d80c6b1"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->2123667759,ExpressionUUID->"384addee-7039-4f29-a876-936f60f31861"],

Cell["The round trip closes in both directions:", "ExampleText",ExpressionUUID->"551b06f1-4961-4a96-af5e-21339a0c9268"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"BIP39Mnemonic", "[", 
  RowBox[{
  "BIP39Entropy", 
   "[", "\"\<legal winner thank year wave sausage worth useful legal winner \
thank yellow\>\"", "]"}], "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"d469b6dc-fd24-4d2e-b3c3-0a69ecf7664a"],

Cell[BoxData["\<\"legal winner thank year wave sausage worth useful legal \
winner thank yellow\"\>"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"0d1eb475-958e-4df3-a0ba-f30649f2bf06"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "5eeeae48-8998-4290-9c89-b6e258c46550"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"63b1b4f9-94f9-4525-\
a008-f99432f656c4"],

Cell[TextData[{
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP39MnemonicQ"]], 
    "paclet:WolframInstitute/Puzzles/ref/BIP39MnemonicQ", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "255b782f-609d-4725-906e-977053e7b7b0"],
 " is exactly the absence of a ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["Failure"]], "paclet:ref/Failure"},
   "RefLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",ExpressionUUID->
  "c67b4990-1f0b-4728-8d39-9e5c86f555a3"],
 " here:"
}], "ExampleText",ExpressionUUID->"d044d0dd-2d65-41e9-9a7b-b8b3771037e0"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{
  "BIP39MnemonicQ", 
   "[", "\"\<abandon abandon abandon abandon abandon abandon abandon abandon \
abandon abandon abandon abandon\>\"", "]"}], " ", "===", " ", 
  RowBox[{"!", " ", 
   RowBox[{"FailureQ", "[", 
    RowBox[{
    "BIP39Entropy", 
     "[", "\"\<abandon abandon abandon abandon abandon abandon abandon \
abandon abandon abandon abandon abandon\>\"", "]"}], "]"}]}]}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"3c039186-a5d4-4011-90d4-b15c9e1565c8"],

Cell[BoxData["True"], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"99c15524-e170-4622-8385-eb9652774851"]
}, Open  ]]
}, Open  ]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 Cell[BoxData[
  DynamicBox[ToBoxes[
    If[CurrentValue[
       EvaluationCell[], "CellGroupOpen"] =!= Closed, 
     Style[
      Graphics[{
        Thickness[0.18], 
        RGBColor[0.8509803921568627, 0.396078431372549, 0], 
        Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
       PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
      0.68 Inherited], 
     Rotate[
      Style[
       Graphics[{
         Thickness[0.18], 
         RGBColor[0.8509803921568627, 0.396078431372549, 0], 
         Line[{{-1.8, 0.5}, {0, 0}, {1.8, 0.5}}]}, AspectRatio -> 1, 
        PlotRange -> {{-3, 4}, {-1, 1}}, ImageSize -> 20], Magnification -> 
       0.68 Inherited], Rational[1, 2] Pi, {-1.65, -1}]]]]],ExpressionUUID->
  "d763953f-5c7a-4f63-a85f-6102ef2f3ec8"],
 Cell[BoxData[
  TemplateBox[{1},
   "Spacer1"]],ExpressionUUID->"5a87342b-e57c-4fc8-84d1-c740512189d3"],
 "Possible Issues",
 "\[NonBreakingSpace]\[NonBreakingSpace]",
 Cell["(2)", "ExampleCount",ExpressionUUID->
  "cf014abb-07b4-4cfd-9763-07f5477a6f52"]
}], "ExampleSection", "ExampleSection",
 WholeCellGroupOpener->True,
 CacheGraphics->False,
 CellID->1305812373,ExpressionUUID->"7274210c-5ea8-4d47-801c-02c75f4a393c"],

Cell[TextData[{
 "The entropy is not the seed. ",
 Cell[BoxData[
  TemplateBox[{
    Cell[
     TextData["BIP39Seed"]], "paclet:WolframInstitute/Puzzles/ref/BIP39Seed", 
    "WolframInstitute/Puzzles Package Symbol"},
   "PackageLink",
   BaseStyle->"InlineFormula"]], "InlineFormula",
  FontFamily->"Source Sans Pro",
  FontSize->0.9 Inherited,ExpressionUUID->
  "e23d5bfe-77e3-4ee4-a2bc-03075de64e89"],
 " derives the 64-byte seed a wallet actually uses, and it does not go \
through the entropy at all:"
}], "ExampleText",ExpressionUUID->"041d0891-ead4-44a6-ab12-0f9a75f16ca0"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"Length", "[", 
    RowBox[{
    "BIP39Entropy", 
     "[", "\"\<abandon abandon abandon abandon abandon abandon abandon \
abandon abandon abandon abandon about\>\"", "]"}], "]"}], ",", " ", 
   RowBox[{"Length", "[", 
    RowBox[{
    "BIP39Seed", 
     "[", "\"\<abandon abandon abandon abandon abandon abandon abandon \
abandon abandon abandon abandon about\>\"", "]"}], "]"}]}], "}"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"cd99b1b1-9152-462d-b6fa-42376902aa98"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"16", ",", "64"}], "}"}]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"86974cc9-eb6a-4f9d-8695-18410962335c"]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 InterpretationBox[Cell[
  "\t", "ExampleDelimiter",ExpressionUUID->
   "01f083d4-2b29-4aa2-a13c-7ad7a1df2b43"],
  $Line = 0; Null]], "ExampleDelimiter",ExpressionUUID->"a647f79f-627a-426b-\
aeb9-5725764a7aa8"],

Cell["An empty string is not a mnemonic and matches no definition:", \
"ExampleText",ExpressionUUID->"f86180d7-8d3a-4622-a0b7-1a0484889705"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"BIP39Entropy", "[", "\"\<\>\"", "]"}]], "Input",
 CellProlog:>Needs["WolframInstitute`Puzzles`"],
 CellLabel->"In[1]:=",ExpressionUUID->"8f7dd8bf-a043-4806-abc4-dcdbbeef71d8"],

Cell[BoxData[
 InterpretationBox[
  RowBox[{
   TagBox["Failure",
    "SummaryHead"], "[", 
   DynamicModuleBox[{Typeset`open$$ = False, Typeset`embedState$$ = "Ready"}, 
    
    TemplateBox[{
      PaneSelectorBox[{False -> GridBox[{{
            PaneBox[
             ButtonBox[
              DynamicBox[
               FEPrivate`FrontEndResource["FEBitmaps", "SummaryBoxOpener"]], 
              ButtonFunction :> (Typeset`open$$ = True), Appearance -> None, 
              BaseStyle -> {}, Evaluator -> Automatic, Method -> 
              "Preemptive"], Alignment -> {Center, Center}, ImageSize -> 
             Dynamic[{
               Automatic, 
                3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
                 Magnification])}]], 
            FrameBox[
             StyleBox["\"\[WarningSign]\"", 
              Directive["Message", 35], StripOnInput -> False], 
             ContentPadding -> False, FrameStyle -> None, 
             FrameMargins -> {{0, 0}, {0, 0}}, StripOnInput -> False], 
            GridBox[{{
               TagBox[
                GridBox[{{
                   TagBox["\"Message: \"", "SummaryItemAnnotation"], 
                   "\[InvisibleSpace]", 
                   TagBox[
                   "\"a BIP39 mnemonic has 12, 15, 18, 21 or 24 words.\"", 
                    "SummaryItem"]}}, 
                 GridBoxItemSize -> {"Columns" -> {6.5, All, Automatic}}, 
                 GridBoxAlignment -> {"Columns" -> {{Left}}}, 
                 GridBoxSpacings -> {"Columns" -> {{0}}}], "SummaryItem"]}, {
               TagBox[
                GridBox[{{
                   TagBox["\"Tag: \"", "SummaryItemAnnotation"], 
                   "\[InvisibleSpace]", 
                   TagBox["\"ConfirmationFailed\"", "SummaryItem"]}}, 
                 GridBoxItemSize -> {"Columns" -> {6.5, All, Automatic}}, 
                 GridBoxAlignment -> {"Columns" -> {{Left}}}, 
                 GridBoxSpacings -> {"Columns" -> {{0}}}], "SummaryItem"]}}, 
             GridBoxAlignment -> {
              "Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, AutoDelete -> 
             False, GridBoxItemSize -> {
              "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, 
             GridBoxSpacings -> {"Columns" -> {{2}}, "Rows" -> {{Automatic}}},
              BaseStyle -> {
              ShowStringCharacters -> False, NumberMarks -> False, 
               PrintPrecision -> 3, ShowSyntaxStyles -> False}]}}, 
          GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}}, 
          AutoDelete -> False, 
          GridBoxItemSize -> {
           "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, 
          BaselinePosition -> {1, 1}], True -> GridBox[{{
            PaneBox[
             ButtonBox[
              DynamicBox[
               FEPrivate`FrontEndResource["FEBitmaps", "SummaryBoxCloser"]], 
              ButtonFunction :> (Typeset`open$$ = False), Appearance -> None, 
              BaseStyle -> {}, Evaluator -> Automatic, Method -> 
              "Preemptive"], Alignment -> {Center, Center}, ImageSize -> 
             Dynamic[{
               Automatic, 
                3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
                 Magnification])}]], 
            FrameBox[
             StyleBox["\"\[WarningSign]\"", 
              Directive["Message", 35], StripOnInput -> False], 
             ContentPadding -> False, FrameStyle -> None, 
             FrameMargins -> {{0, 0}, {0, 0}}, StripOnInput -> False], 
            GridBox[{{
               TagBox[
                GridBox[{{
                   TagBox["\"Message: \"", "SummaryItemAnnotation"], 
                   "\[InvisibleSpace]", 
                   TagBox[
                   "\"a BIP39 mnemonic has 12, 15, 18, 21 or 24 words.\"", 
                    "SummaryItem"]}}, 
                 GridBoxItemSize -> {"Columns" -> {6.5, All, Automatic}}, 
                 GridBoxAlignment -> {"Columns" -> {{Left}}}, 
                 GridBoxSpacings -> {"Columns" -> {{0}}}], "SummaryItem"]}, {
               TagBox[
                GridBox[{{
                   TagBox["\"Tag: \"", "SummaryItemAnnotation"], 
                   "\[InvisibleSpace]", 
                   TagBox["\"ConfirmationFailed\"", "SummaryItem"]}}, 
                 GridBoxItemSize -> {"Columns" -> {6.5, All, Automatic}}, 
                 GridBoxAlignment -> {"Columns" -> {{Left}}}, 
                 GridBoxSpacings -> {"Columns" -> {{0}}}], "SummaryItem"]}, {
               RowBox[{
                 TagBox[
                  
                  TemplateBox[{"\"ConfirmationType\"", "\": \""}, 
                   "RowDefault"], "SummaryItemAnnotation"], 
                 "\[InvisibleSpace]", 
                 TagBox[
                  TagBox["\"ConfirmAssert\"", HoldForm], "SummaryItem"]}]}, {
               RowBox[{
                 TagBox[
                  TemplateBox[{"\"Expression\"", "\": \""}, "RowDefault"], 
                  "SummaryItemAnnotation"], "\[InvisibleSpace]", 
                 TagBox[
                  TagBox["False", HoldForm], "SummaryItem"]}]}, {
               RowBox[{
                 TagBox[
                  TemplateBox[{"\"Information\"", "\": \""}, "RowDefault"], 
                  "SummaryItemAnnotation"], "\[InvisibleSpace]", 
                 TagBox[
                  TagBox[
                  "\"a BIP39 mnemonic has 12, 15, 18, 21 or 24 words.\"", 
                   HoldForm], "SummaryItem"]}]}, {
               RowBox[{
                 TagBox[
                  TemplateBox[{"\"Test\"", "\": \""}, "RowDefault"], 
                  "SummaryItemAnnotation"], "\[InvisibleSpace]", 
                 TagBox[
                  TagBox["False", HoldForm], "SummaryItem"]}]}, {
               RowBox[{
                 TagBox[
                  TemplateBox[{"\"HeldTest\"", "\": \""}, "RowDefault"], 
                  "SummaryItemAnnotation"], "\[InvisibleSpace]", 
                 TagBox[
                  TagBox[
                   RowBox[{"Hold", "[", 
                    RowBox[{"MemberQ", "[", 
                    
                    RowBox[{
                    "WolframInstitute`Puzzles`Seeds`BIP39`Private`\
bip39WordCounts", ",", 
                    RowBox[{"Length", "[", 
                    RowBox[{"{", "}"}], "]"}]}], "]"}], "]"}], HoldForm], 
                  "SummaryItem"]}]}}, 
             GridBoxAlignment -> {
              "Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, AutoDelete -> 
             False, GridBoxItemSize -> {
              "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, 
             GridBoxSpacings -> {"Columns" -> {{2}}, "Rows" -> {{Automatic}}},
              BaseStyle -> {
              ShowStringCharacters -> False, NumberMarks -> False, 
               PrintPrecision -> 3, ShowSyntaxStyles -> False}]}}, 
          GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}}, 
          AutoDelete -> False, 
          GridBoxItemSize -> {
           "Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}, 
          BaselinePosition -> {1, 1}]}, 
       Dynamic[Typeset`open$$], ImageSize -> Automatic]},
     "SummaryPanel"],
    DynamicModuleValues:>{}], "]"}],
  Failure[
  "ConfirmationFailed", <|
   "MessageTemplate" -> "a BIP39 mnemonic has 12, 15, 18, 21 or 24 words.", 
    "MessageParameters" -> {}, "ConfirmationType" -> "ConfirmAssert", 
    "Expression" :> False, "Information" -> 
    "a BIP39 mnemonic has 12, 15, 18, 21 or 24 words.", "Test" :> False, 
    "HeldTest" -> Hold[
      MemberQ[WolframInstitute`Puzzles`Seeds`BIP39`Private`bip39WordCounts, 
       Length[{}]]]|>],
  Editable->False,
  SelectWithContents->True,
  Selectable->False]], "Output",
 CellLabel->"Out[1]= ",ExpressionUUID->"298d6c18-6870-43e9-88f2-987a7db9708a"]
}, Open  ]]
}, Open  ]]
}, Closed]]
}, Open  ]],

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, 
       "RelatedFunction.png"]]], GridBox[{
      {
       StyleBox[
        RowBox[{"See", " ", "Also"}], "SeeAlsoSection"]},
      {Cell[TextData[{
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["BIP39Mnemonic"]], 
           "paclet:WolframInstitute/Puzzles/ref/BIP39Mnemonic", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "d4d13767-321d-43b2-b600-04f126aa0e74"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["BIP39MnemonicQ"]], 
           "paclet:WolframInstitute/Puzzles/ref/BIP39MnemonicQ", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "1db0b2e4-2f75-4573-ab9b-e55d76939159"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["BIP39Seed"]], 
           "paclet:WolframInstitute/Puzzles/ref/BIP39Seed", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "1bb110b9-19a1-4124-8843-834fd851da56"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["BIP39FinalWords"]], 
           "paclet:WolframInstitute/Puzzles/ref/BIP39FinalWords", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "26623d7f-217d-4bec-adfa-6950a136d83e"],
        "\[NonBreakingSpace]",
        StyleBox[
        "\[MediumSpace]\[FilledVerySmallSquare]\[MediumSpace]", 
         "InlineSeparator"],
        " ",
        Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["$BIP39EnglishWords"]], 
           "paclet:WolframInstitute/Puzzles/ref/$BIP39EnglishWords", 
           "WolframInstitute/Puzzles Package Symbol"},
          "PackageLink",
          BaseStyle->"InlineFormula"]], "InlineFormula",
         FontFamily->"Source Sans Pro",ExpressionUUID->
         "dec7aa4d-fe82-49d8-b479-75c8b2744c41"]
       }], "SeeAlso",ExpressionUUID->"0f18a2c8-46b1-4443-bb4b-c7d73ba88cdc"]}
     }]}
  }]], "SeeAlsoSection",ExpressionUUID->"9eed9a82-aa37-4e61-8e8d-\
f76fec809d23"],

Cell[BoxData[GridBox[{
   {
    DynamicBox[FEPrivate`ImportImage[
      FrontEnd`FileName[{"Documentation", "FooterIcons"}, 
       "RelatedGuide.png"]]], GridBox[{
      {
       StyleBox[
        RowBox[{"Related", " ", "Guides"}], "MoreAboutSection"]},
      {
       RowBox[{"\[FilledVerySmallSquare]", Cell[BoxData[
         TemplateBox[{
           Cell[
            TextData["Seeds"]], "paclet:WolframInstitute/Puzzles/guide/Seeds"},
          "RefLinkPlain",
          BaseStyle->{"MoreAbout"}]], "MoreAbout",ExpressionUUID->
         "4800308f-755a-4d8c-92f2-ac009514b368"]}]}
     }]}
  }]], "MoreAboutSection",ExpressionUUID->"e010b51c-680b-4287-9b09-\
17fb18ca83a4"],

Cell[" ", "FooterCell",ExpressionUUID->"4c917394-19f1-41e8-85e0-2c29d76aa8fc"]
},
Saveable->False,
ScreenStyleEnvironment->"Working",
WindowSize->{900, 830},
WindowMargins->{{0, Automatic}, {Automatic, 0}},
WindowTitle->"BIP39Entropy",
TaggingRules->{
 "ModificationHighlight" -> False, "ColorType" -> "", "LinkTrails" -> "", 
  "ExampleCounter" -> 1, 
  "Openers" -> {
   "PrimaryExamplesSection" -> Open, "ExampleSection" -> {"0" -> Open}, 
    "AllOptsTable" -> Closed}, "NewStyles" -> True, 
  "CitationPopupData" -> $Failed, "ShowCitation" -> False, "HasOptions" -> 
  True, "RootCaptions" -> "", "HeaderCoreAreaLink" -> {}, 
  "Metadata" -> {
   "built" -> "{2026, 8, 27, 0, 11, 20.441472}", 
    "history" -> {"XX", "", "", ""}, "context" -> "WolframInstitute`Puzzles`",
     "keywords" -> {}, "specialkeywords" -> {}, 
    "tutorialcollectionlinks" -> {}, "index" -> True, "label" -> 
    "Wolfram Institute/ Puzzles Symbol", "language" -> "en", "paclet" -> 
    "WolframInstitute/Puzzles", "status" -> "None", "summary" -> 
    "PackageLink[BIP39Entropy,paclet : \
WolframInstitute/Puzzles/ref/BIP39Entropy, WolframInstitute/Puzzles Package \
Symbol][mnemonic] gives the entropy of a BIP39 English mnemonic as a \
ByteArray, checking its checksum. PackageLink[BIP39Entropy,paclet : \
WolframInstitute/Puzzles/ref/BIP39Entropy, WolframInstitute/Puzzles Package \
Symbol][{word_ 1 $, word_ 2 $, ...}] takes the mnemonic as a list of words.", 
    "synonyms" -> {}, "tabletags" -> {}, "title" -> "BIP39Entropy", 
    "titlemodifier" -> "", "metadescription" -> "", "windowtitle" -> 
    "BIP39Entropy", "type" -> "Symbol", "uri" -> 
    "WolframInstitute/Puzzles/ref/BIP39Entropy", "WorkflowDockedCell" -> ""}, 
  "SearchTextTranslated" -> ""},
CellContext->CellGroup,
FrontEndVersion->"15.0 for Mac OS X ARM (64-bit) (May 19, 2026)",
StyleDefinitions->FrontEnd`FileName[{"Wolfram"}, "Reference.nb"],
ExpressionUUID->"3a50e40a-8102-478b-b7a2-d6d429f88d7e"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{
 "TextAnnotation"->{
  Cell[17518, 485, 192, 4, 70, "ExampleText",ExpressionUUID->"b23f7f62-4ea0-47fa-a153-637bd95d37be",
   CellTags->"TextAnnotation"]}
 }
*)
(*CellTagsIndex
CellTagsIndex->{
 {"TextAnnotation", 57460, 1501}
 }
*)
(*NotebookFileOutline
Notebook[{
Cell[580, 21, 5789, 142, 70, "AnchorBarGrid",ExpressionUUID->"39937c75-3ae1-4055-b71e-30638af9a409",
 CellID->1],
Cell[6372, 165, 107, 0, 70, "ContextNameCell",ExpressionUUID->"8115f944-c3c0-4be7-9a9b-5234315d34fa"],
Cell[CellGroupData[{
Cell[6504, 169, 555, 14, 70, "ObjectNameGrid",ExpressionUUID->"e41fc4d1-e1be-44fd-8090-608f70f98c50"],
Cell[7062, 185, 2037, 56, 70, "Usage",ExpressionUUID->"2c35435b-d86d-4b28-9b2b-894758ab1375"]
}, Open  ]],
Cell[CellGroupData[{
Cell[9136, 246, 1444, 34, 70, "NotesSection",ExpressionUUID->"2c9bafb6-8e0e-4492-914c-ed51b69629db",
 CellGroupingRules->{"SectionGrouping", 50},
 CellID->1786741660],
Cell[10583, 282, 1081, 31, 70, "Notes",ExpressionUUID->"2571d450-0ead-4a89-b91f-b5f5ed139832"],
Cell[11667, 315, 888, 24, 70, "Notes",ExpressionUUID->"67666b22-af76-4479-93b6-7983ca1ee6d1"],
Cell[12558, 341, 519, 13, 70, "Notes",ExpressionUUID->"ddf9e71f-f841-4631-9f95-c204f67c0bdb"],
Cell[13080, 356, 203, 3, 70, "Notes",ExpressionUUID->"813245ad-4352-401b-9d39-4cf64d192538"],
Cell[13286, 361, 753, 22, 70, "Notes",ExpressionUUID->"4591697d-786a-4e63-8e00-a5548bc3bdf4"],
Cell[14042, 385, 471, 13, 70, "Notes",ExpressionUUID->"a18de80d-7a29-447b-97cf-33b2c4ee4c35"]
}, Closed]],
Cell[14528, 401, 80, 0, 70, "PageDelimiter",ExpressionUUID->"c8ff8082-095e-4553-a555-7ab3ac837359"],
Cell[CellGroupData[{
Cell[14633, 405, 1402, 37, 70, "PrimaryExamplesSection",ExpressionUUID->"87ed449a-1985-43f8-b37b-3d101ff9a5e5",
 CellID->1503243619],
Cell[16038, 444, 216, 4, 70, "Input",ExpressionUUID->"f54ace7e-d047-4030-89c4-560a23727734",
 CellID->1969679695],
Cell[CellGroupData[{
Cell[16279, 452, 1236, 31, 70, "ExampleSection",ExpressionUUID->"f8af1c84-101d-492c-98bf-d221640f4d03",
 CellID->2017881225],
Cell[17518, 485, 192, 4, 70, "ExampleText",ExpressionUUID->"b23f7f62-4ea0-47fa-a153-637bd95d37be",
 CellTags->"TextAnnotation"],
Cell[CellGroupData[{
Cell[17735, 493, 347, 7, 70, "Input",ExpressionUUID->"5255b05f-2f11-41bc-9a87-c9f64036b4b4"],
Cell[18085, 502, 146, 1, 70, "Output",ExpressionUUID->"bc5b67f0-0e95-4c07-bb2c-4507001d14d1"]
}, Open  ]],
Cell[CellGroupData[{
Cell[18268, 508, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"87b10b50-f561-45b4-a344-62e6f7db7dee"],
Cell[18495, 515, 123, 0, 70, "ExampleText",ExpressionUUID->"be95244d-8323-47bc-9e6a-b6f987a150db"],
Cell[CellGroupData[{
Cell[18643, 519, 620, 11, 70, "Input",ExpressionUUID->"e6890a4c-d996-4b30-b125-b037edde31bd"],
Cell[19266, 532, 146, 1, 70, "Output",ExpressionUUID->"18ba6f3b-065c-44ee-80e3-c889d0eb6ba6"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[19461, 539, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"000200ff-74ce-4dc5-b531-f9750a5f1dcb"],
Cell[19688, 546, 123, 0, 70, "ExampleText",ExpressionUUID->"2d6a5cd7-2ba9-4d1b-8374-34ad7715eae5"],
Cell[CellGroupData[{
Cell[19836, 550, 395, 8, 70, "Input",ExpressionUUID->"0c8505bc-5984-42fd-9ce3-a424090c4e0b"],
Cell[20234, 560, 108, 1, 70, "Output",ExpressionUUID->"604b415c-0f51-48bb-9533-03e997b08796"]
}, Open  ]]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[20403, 568, 1227, 31, 70, "ExampleSection",ExpressionUUID->"5c951076-a6f4-4cc7-a94f-a9cbfc197c96",
 CellID->1293636265],
Cell[21633, 601, 137, 1, 70, "ExampleText",ExpressionUUID->"7e93bc45-7668-4a90-bcb8-9bbbca3b27e7"],
Cell[CellGroupData[{
Cell[21795, 606, 636, 17, 70, "Input",ExpressionUUID->"4e371a81-63e4-4f35-bb95-11cd41bc2abd"],
Cell[22434, 625, 189, 4, 70, "Output",ExpressionUUID->"2ec3cde4-c665-462c-845b-d06f0219645f"]
}, Open  ]],
Cell[CellGroupData[{
Cell[22660, 634, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"cc6079ee-e275-42ed-8389-2c8db7496c35"],
Cell[22887, 641, 176, 3, 70, "ExampleText",ExpressionUUID->"1dd397e5-fa4b-4f62-9ec5-1ed2fecca80e"],
Cell[CellGroupData[{
Cell[23088, 648, 350, 7, 70, "Input",ExpressionUUID->"552502ca-3a91-4ed4-adcd-395b9bcee433"],
Cell[23441, 657, 146, 1, 70, "Output",ExpressionUUID->"5e9a58f7-c9aa-480b-b0fc-8b934fed7ada"]
}, Open  ]]
}, Open  ]],
Cell[CellGroupData[{
Cell[23636, 664, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"ce95bb30-3c7c-4f49-af5e-2a5734fc596d"],
Cell[23863, 671, 160, 2, 70, "ExampleText",ExpressionUUID->"f797629e-3f8f-4f89-ac66-12ceaba339c3"],
Cell[CellGroupData[{
Cell[24048, 677, 299, 5, 70, "Input",ExpressionUUID->"31167a41-f566-4273-b43c-5b78ed06c581"],
Cell[24350, 684, 8356, 175, 70, "Output",ExpressionUUID->"73d3a512-1677-40e3-83cc-71d25157f85c"]
}, Open  ]]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[32767, 866, 1233, 31, 70, "ExampleSection",ExpressionUUID->"2def4fa2-358e-41be-bd3b-ba4566a87a33",
 CellID->258228157],
Cell[34003, 899, 201, 3, 70, "ExampleText",ExpressionUUID->"9e55a442-051b-46ec-b68a-e5a5b45e4dca"],
Cell[CellGroupData[{
Cell[34229, 906, 431, 10, 70, "Input",ExpressionUUID->"cd62ddb0-f849-4493-837c-8b687935c235"],
Cell[34663, 918, 110, 1, 70, "Output",ExpressionUUID->"0ee87bb9-a45c-4cab-afaa-9de2b3896f22"]
}, Open  ]],
Cell[CellGroupData[{
Cell[34810, 924, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"ba86e011-fd2f-4331-8bf5-2de6d2d9c0c3"],
Cell[35037, 931, 413, 11, 70, "ExampleText",ExpressionUUID->"7c4e6f83-eb40-4a65-b93f-b7d3c5eb15d0"],
Cell[CellGroupData[{
Cell[35475, 946, 732, 17, 70, "Input",ExpressionUUID->"9e07f581-07a5-4669-894d-b3bf42487679"],
Cell[36210, 965, 529, 12, 70, "Output",ExpressionUUID->"df952994-6441-498e-8828-cfc6fcfcbed6"]
}, Open  ]]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[36800, 984, 1244, 31, 70, "ExampleSection",ExpressionUUID->"384addee-7039-4f29-a876-936f60f31861",
 CellID->2123667759],
Cell[38047, 1017, 119, 0, 70, "ExampleText",ExpressionUUID->"551b06f1-4961-4a96-af5e-21339a0c9268"],
Cell[CellGroupData[{
Cell[38191, 1021, 323, 7, 70, "Input",ExpressionUUID->"d469b6dc-fd24-4d2e-b3c3-0a69ecf7664a"],
Cell[38517, 1030, 191, 2, 70, "Output",ExpressionUUID->"0d1eb475-958e-4df3-a0ba-f30649f2bf06"]
}, Open  ]],
Cell[CellGroupData[{
Cell[38745, 1037, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"63b1b4f9-94f9-4525-a008-f99432f656c4"],
Cell[38972, 1044, 750, 22, 70, "ExampleText",ExpressionUUID->"d044d0dd-2d65-41e9-9a7b-b8b3771037e0"],
Cell[CellGroupData[{
Cell[39747, 1070, 555, 13, 70, "Input",ExpressionUUID->"3c039186-a5d4-4011-90d4-b15c9e1565c8"],
Cell[40305, 1085, 110, 1, 70, "Output",ExpressionUUID->"99c15524-e170-4622-8385-eb9652774851"]
}, Open  ]]
}, Open  ]]
}, Closed]],
Cell[CellGroupData[{
Cell[40476, 1093, 1237, 31, 70, "ExampleSection",ExpressionUUID->"7274210c-5ea8-4d47-801c-02c75f4a393c",
 CellID->1305812373],
Cell[41716, 1126, 580, 14, 70, "ExampleText",ExpressionUUID->"041d0891-ead4-44a6-ab12-0f9a75f16ca0"],
Cell[CellGroupData[{
Cell[42321, 1144, 577, 14, 70, "Input",ExpressionUUID->"cd99b1b1-9152-462d-b6fa-42376902aa98"],
Cell[42901, 1160, 154, 3, 70, "Output",ExpressionUUID->"86974cc9-eb6a-4f9d-8695-18410962335c"]
}, Open  ]],
Cell[CellGroupData[{
Cell[43092, 1168, 224, 5, 70, "ExampleDelimiter",ExpressionUUID->"a647f79f-627a-426b-aeb9-5725764a7aa8"],
Cell[43319, 1175, 140, 1, 70, "ExampleText",ExpressionUUID->"f86180d7-8d3a-4622-a0b7-1a0484889705"],
Cell[CellGroupData[{
Cell[43484, 1180, 199, 3, 70, "Input",ExpressionUUID->"8f7dd8bf-a043-4806-abc4-dcdbbeef71d8"],
Cell[43686, 1185, 7829, 163, 70, "Output",ExpressionUUID->"298d6c18-6870-43e9-88f2-987a7db9708a"]
}, Open  ]]
}, Open  ]]
}, Closed]]
}, Open  ]],
Cell[51566, 1354, 3128, 82, 70, "SeeAlsoSection",ExpressionUUID->"9eed9a82-aa37-4e61-8e8d-f76fec809d23"],
Cell[54697, 1438, 678, 18, 70, "MoreAboutSection",ExpressionUUID->"e010b51c-680b-4287-9b09-17fb18ca83a4"],
Cell[55378, 1458, 78, 0, 70, "FooterCell",ExpressionUUID->"4c917394-19f1-41e8-85e0-2c29d76aa8fc"]
}
]
*)

(* End of internal cache information *)

