JavaScript WebCryptoApi: Why does this not satisfy operation specific requirements?

Setup:

  • I generate a key-encryption-key (kek, AES-GCM, 256)
  • I generate a RSA-OAEP keypair
  • I wrap the generated private key with the kek using AES-GCM-256 and a random iv, exported as pkcs8
  • I try to unwrap the key, this fails at the “import” stage

The error message shown in the console is “DOMException: Data provided to an operation does not meet requirements”, I have managed to create a MWE as follows:

(async() => {
    let exportFormat = "pkcs8";


    const keyWrappingAlgorithm = {
        name: "AES-GCM",
        length: 256,
    }
    let keyPairAlgorithm = {
        name: "RSA-OAEP",
        modulusLength: 4096,
        publicExponent: new Uint8Array([1, 0, 1]),
        hash: "SHA-256",
    };


    let kek = await window.crypto.subtle.generateKey(
        keyWrappingAlgorithm, 
        true, 
        ["decrypt", "wrapKey", "unwrapKey"]
    );

    let keyPair = await crypto.subtle.generateKey(
        keyPairAlgorithm, 
        true, 
        ["encrypt", "decrypt"]
    )


    
    const iv = crypto.getRandomValues(new Uint8Array(96/8));


    
    let wrappedPrivateKey = await crypto.subtle.wrapKey(
        exportFormat,
        keyPair.privateKey,
        kek,
        {
            ...keyWrappingAlgorithm,
            iv: iv,
        }
    )

    let decryptedData = await crypto.subtle.decrypt(
        {
            ...keyWrappingAlgorithm,
            iv: iv,
        },
        kek,
        wrappedPrivateKey,
    )
    console.log("done 1", decryptedData)
    await crypto.subtle.importKey(
        exportFormat,
        decryptedData,
        keyPairAlgorithm,
        true,
        ["encrypt", "decrypt"]
    ).then(() => {
        console.log("Success 1! This was not expected.")
    }).catch((error) => console.log("error 1", error))

    let unwrappedKey = await crypto.subtle.unwrapKey(
        exportFormat,
        wrappedPrivateKey,
        kek,
        {
            ...keyWrappingAlgorithm,
            iv: iv,
        },
        keyPairAlgorithm,
        true,
        ["encrypt", "decrypt"]
    ).then(() => {
        console.log("Success 2! This was not expected.")
    }).catch((error) => console.log("error 2", error))
})()

What is going on here? How can I correct this behavior and unwrap the wrapped key?

I’ve been sitting at this for at least 2 hours by now to extract the MWE, but the error message doesn’t give much information. I tried changing the export format, but that didn’t really help. The keys all are exportable, so this shouldn’t be an issue either. I also think that I added all the required key usages..

SEO Meta Data Tag In Header of WordPress Theme

I have a custom wordpress theme for movie website. I want to add metadata tag for keywords but when i add this in WP theme Header its work for all my posts mean show these keywords for all posts that’s why google not indexing all my posts. Is there any solution to fix this because I only want this for my homepage and without any plugin.

<meta name="keywords" content="hollywood movies download, action movies, HD Movies">

Axios return data not updating a list

I have this list called reqs_needed. I want to update it based on the information an Axios request returns. This Axios.get request is inside a for loop because I want to get data back a certain number of times. However, my req_needed is not getting pushed to after I try pusing data to it.

My backend works fine as I can successfully send data back to the frontend and it will print correctly. It’s just not adding to the list at all.

Here is the code:

import "./SuggestedClasses.css";
import Axios from "axios";
import { useState, useEffect } from "react";
import TakenClass from "./types";
import {
  Table,
  Thead,
  Tbody,
  Tr,
  Th,
  Td,
  TableContainer,
} from "@chakra-ui/react";

const SuggestedClasses = () => {
  const mapping: Record<number, string> = {
    0: "CI-H",
    1: "CI-M",
    2: "HASS-S",
    3: "HASS-H",
    4: "HASS-A",
  };

  localStorage.setItem("requirements_satisfied", "[2, 2, 1, 1, 1]");
  const requirements_satisfied = JSON.parse(
    localStorage.getItem("requirements_satisfied") as string
  );

  var reqs_filled = JSON.parse(
    localStorage.getItem("requirements_filled") as string
  );

  var reqs_needed: TakenClass[] = [];

  if (localStorage.getItem("requirements_filled") == null) {
    localStorage.setItem("requirements_filled", "[0, 0, 0, 0, 0]");
  }

  for (var i = 0; i < requirements_satisfied.length; i++) {
    if (reqs_filled[i] < requirements_satisfied[i]) {
      var j = 0;
      while (j < requirements_satisfied[i] - reqs_filled[i]) {
        var hass_attribute = null;
        var communication_requirement = null;
        if (mapping[i][0] === "C") {
          hass_attribute = null;
          communication_requirement = mapping[i];
        } else {
          hass_attribute = mapping[i];
          communication_requirement = null;
        }

        useEffect(() => {
          Axios.get("http://localhost:3000/getClass", {
            data: {
              hass_attribute: hass_attribute,
              communication_requirement: communication_requirement,
            },
          }).then((response) => {
            if (response.data) {
              reqs_needed.push(response.data);
            }
          });
        }, []);
        j++;
      }
    }
  }
  // console.log("reqs_needed", reqs_needed);
  console.log("reqs_needed.length", reqs_needed.length);
  for (var i = 0; i < reqs_needed.length; i++) {
    console.log("here");
    console.log("LOOPING", reqs_needed[i]);
  }

  return (
    <div className="suggestedClassesContainer">
      <h4 className="card-header">Suggested Classes</h4>
      <TableContainer>
        <Table variant="striped" colorScheme="teal">
          <Thead>
            <Tr>
              <Th>Num.</Th>
              <Th>Rating</Th>
            </Tr>
          </Thead>
          <Tbody>
            {reqs_needed.map((req: TakenClass) => {
              if (req != null) {
                return (
                  <Tr>
                    <Td>{req.subject_id}</Td>
                    <Td>{req.rating}</Td>
                  </Tr>
                );
              }
            })}
          </Tbody>
        </Table>
      </TableContainer>
    </div>
  );
};

export default SuggestedClasses;

The length of reqs_needed is always zero and causes nothing to show up in my frontend table.

How to Modify Conditional Formatting Colour Scale Rules in Google Apps Script?

I want to make a colour scale which changes the min and max values based on which temperature measure is selected but I’m struggling to find resources online that I can understand to help me.

Earlier in a way to try and avoid this I used the colour scale on a hidden column and wanted to make a script that got the cell next to its background colour and set the current one to match, but I ran into a bunch of issues with the setBackground();.

Raipura Narsingdi Born Benojir Ahmed Abir Biography

Benojir Ahmed Abir ”’ is a Graphic Designer and ”’ Musical Artist ”’ Of Bangladesh. He is a Content creator and founder of ”’Himel Movie”’. He has already verified as (OAC) YouTube official artist channel & largest music platform on Spotify. He is also an entrepreneur, blogger, YouTuber, and the founder of Benojir Ahmed Abir . Abir

| name = ”’Benojir Ahmed Abir”’ {{verified}}

| image = FB IMG 1664550721344-1.jpg

| alt = Benojir Ahmed Abir

| caption = ”’Photo by Benojir Ahmed Abir”’

| religion = Islam

| native_name = Abir

| birth_date = 2 June 2003

| birth_place = Raipura Upazila Hasimpur village

| nationality = Bangladeshi

| known_for = Graphic Designer, Web Designer, Music Maker

| height = 5′ 11”

| education = BBA (Hons) Department of Management at National University, Bangladesh

| occupation = Musical Artist And Graphic Designers In Narsingdi.

| parents = Rabiul Alam (Father),Sufia Begum (Mother)

| awards = Narsingdi Best Content Creator Award

| website = facebook.com/benojirahmedabir1?mibextid=ZbW..

}}

== Education ==

Benojir Ahmed Abir He passed higher secondary from Raipura Government College in 2021. Now he is doing BBA in Management from National University Bangladesh

== Career ==

He is also music publisher Spotify, Amazon, Google Play. YouTube, Deezer, etc Platform. Benojir Ahmed Abir is the owner and content manager of ”’ Himel Movie ”’ and owner and writer of ”’ ARHNews ”’.

==Discography==

Name: is Abir

Basa: Narsingdi District Raipura Thana, Hasimpur Village

Occupation: Electrician, Plumber, Graphics Designer, Content Creator, Maker Nickel Engineer

Subscribe to my newsletter

He is also music publisher Spotify, Amazon, Google Play. YouTube, Deezer, etc Platform. Benojir Ahmed Abir is the owner and content manager of ”’ Himel Movie ”’ and owner and writer of ”’ ARHNews Benojir Ahmed Abir ”’ is a Graphic Designer and ”’ Musical Artist ”’ Of Bangladesh. He is a Content creator and founder of ”’Abir Movie”’. He has already verified as (OAC) YouTube official artist channel & largest music platform on Spotify. He is also an entrepreneur, blogger, YouTuber, and the founder of Benojir Ahmed Abir . Abir

If statement within a JSON selection?

In the JSON below, I am attempting to select the raw price value when the price is_rpp = True. This can sometimes be the first price or it can be any of N number of prices listed but most of the time there is none or ONE is_rpp = True price.

Is this possible?

As an example, using {{ $json[“price”][“value”] }} does select the price for me but I want the is_rpp = True price.

Thank you

{
    "position": 1,
    "title": "Apple USB-C to Lightning Cable (2 m)",
    "asin": "asintest",
    "link": "https://www.amazon.com/",
    "categories": [{
        "name": "Electronics",
        "id": "electronics"
    }],
    "image": "https://m.media-amazon.com/images/",
    "is_prime": true,
    "rating": 4.8,
    "ratings_total": 15213956,
    "prices": [{
            "symbol": "$",
            "value": 29,
            "currency": "USD",
            "raw": "$29.00",
            "name": "$29.00",
            "is_primary": true
        },
        {
            "symbol": "$",
            "value": 35,
            "currency": "USD",
            "raw": "$35.00",
            "name": "$29.00",
            "is_rrp": true
        }
    ],
    "price": {
        "symbol": "$",
        "value": 29,
        "currency": "USD",
        "raw": "$29.00",
        "name": "$29.00",
        "is_primary": true
    },
    "page": "1",
    "position_overall": 1
}

issue with pickadate plugin

I am using a jquery plugin where the functionality of the pickadate is not working as expected

var picker = $('##gameDate3').pickadate({}).pickadate('picker');

if(gameDateJsAway != 0) {
     picker.set('select', gameDateJsAway);
}

the above works, but when i have to use it again in 2nd instance, i renamed it as picker2 from picker

but it always throw error on the undefined set

if i keep the name same for the both input fields where i am trying to load existing date, it works for one only and other one does not work,

trying to figure out how can i use it from 2nd input field.

any clues or any idea

explained the issue above

How do I refresh a wordpress shortcode that is a POST API Call to return an image running Elementor

I have a shortcode that uses WPGetAPI to return a base 64 image from an API via a Post command. That part is working. I am trying to create a code snippet to refresh just the image on my page. The API produced images every 5 seconds so I want to refresh my shortcode widget in Elementor on the page only and not the entire page. I’ve tried the following and it will return the image but I cannot figure out how to get the API call to automatically refresh every 5 seconds to get the new image. Thanks.

The code below is what I have in a snippet and use that to be a shortcode. Open to other options. Thanks!

<script>
var $image = <?php 
$camapi = wpgetapi_endpoint( 'levelcon2',     'test_camera_php',array('debug' => false) );
echo "<img src=",$camapi['0']['rawImage'],">"
 ?> ;
    var i = 0;
    var renew = setInterval(function(){
        document.getElementById("Image").href = $image[i]; 
        $('#refresh').load(location.href + ' #time');

    },5000);
</script>

<div class="cam_image">
<div id ="refresh">
    <div id="time">
    <?php echo $camapi['0']['rawImage']; ?>
    </div>

</div>
</div>

Why am I getting the ‘Unauthorized’ message when attempting to use jwt.verify with passport.js?

I’m trying to build an authentication with passport and jsonwetoken in node.js & express in my backend.

When my user is logged in, a token is given to his connexion for 1h.

I have created a getOneUser function which allow an user to get his own information, or if the user is an admin.

My function is working but I would like to implement the « jwt.verify » method inside to check if the token if still valid, and therefore use its response to automatically redirect an user with an invalid token to my loginPage in my React frontend.

I have and idea of what and where to place my elements but I’am always getting the « Unauthorized » message in Postman without never have my pre-written error message. I have no idea if my thinking is correct because there is no console.log that is showing after the token expiration’s time.

I have tried many solutions available on stackOverflow but I can’t seem to overthrow this « Unauthorized » message which I suppose come from passport because my token is expired.

Message that I would like to change or be accompanied with my own error message in order to redirect later in my frontend.

I tried to create a token verify function on its own and my coding is working just fine, but I can’t seem to make it works with passport and implement it to my getOneUser function.

Could you please give some advice ?

Thank you in advance for your help !

My main leads to help me but without success :

Here is my passport method :

const passport = require("passport");
const passportJwt = require("passport-jwt");
const ExtractJwt = passportJwt.ExtractJwt;
const StrategyJwt = passportJwt.Strategy;

const { AuthUser } = require("../../models/Index");
const User = AuthUser;

//Implementation of the passport strategy with jwt
passport.use(
    new StrategyJwt(
        {
            jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
            secretOrKey: process.env.JWT_ACCESS_TOKEN_SECRET,
            passReqToCallback: true
        },
        function (req, jwtPayload, done) {
            return User.findOne({ where: { id_auth_user: jwtPayload.userId } })
                .then((user) => {
                    if(!user) {
                        return done({error : 'error'}, false);
                    }
                    req.user = user;
                    return done(null, user);
                })
                .catch((err) => {
                    console.log("err", err);
                    return done(err);
                });
        }
    )
);

My login function which is generating a token to a user’s connexion :

exports.login = async (req, res, next) => {
    try {
        const { email, password } = req.body;

        const user = await User.findOne({ where: { email: email } });

        if (!user) {
            res.status(400).json({ message: "Incorrect login details ! Please, try again." });
        }

        if (await bcrypt.compare(password, user.password)) {
            const token = jwt.sign(
                {
                    userId: user.id_auth_user,
                    email: user.email,
                    userFirstName: user.firstname
                },
                process.env.JWT_ACCESS_TOKEN_SECRET,
                {
                    expiresIn: "1h",
                }
            );

            if (res.status(201)) {
                return res.json({
                    status: "success",
                    token: token,
                    userId: user.id_auth_user.toString(),
                    values: user,
                });
            } else {
                return res.json({
                    error: "error",
                });
            }
        }
        res.status(400).json({ status: "error", message: "Incorrect login details ! Please, try again." });
    } catch (error) {
        console.log(error);
    }
};

My getOneUser function which allow a user to get his own informations :

exports.getOneUser = async (req, res, next) => {
    const query = req.params.id_auth_user;
    const userId = req.user.id_auth_user.toString();
    const token = req.headers.authorization.split(" ")[1];

    try {
                /* Where I try to implement the verification of my token */
        const user = jwt.verify(token, process.env.JWT_ACCESS_TOKEN_SECRET, (err, res) => {
            if (err) {
                return "token is expired";
            }
            console.log("token is valid");
            return res;
        });

        console.log(user); 
       /* this console.log is showing me the token's informations ONLY when the token is still valid, but nothing and it's invalid... 
       /* Passport keeps sending "Unauthorized" in Postman when token is invalid.

        if (user == "token is expired") {
            return res.send({ status: "error", data: "token is expired" });
        }


        if (query === userId || req.user.role === "admin") {
            User.findOne({ where: { id_auth_user: query } })
                .then((user) => {
                    if (!user) {
                        const error = new Error("User doesn't exist. Please try again.");
                        error.statusCode = 404;
                        throw error;
                    }
                    res.status(200).json({ user: user, token: token });
                })
                .catch((err) => {
                    if (!err.statusCode) {
                        err.statusCode = 500;
                    }
                    next(err);
                });
        } else {
            res.json({ error: "You don't have the permission to modify this profile" });
        }
    } catch (error) {
        console.log("error", error);
        throw error;
    }
};

My routes :

const router = express.Router();
const UserController = require('../../controllers/AuthUser/UserController')
const passport = require("passport");

//User connexion
router.post("/login", UserController.login);

//User & Admin
//A user can get his own informations or is an Admin
router.get("/users/:id_auth_user",  passport.authenticate("jwt", { session: false }), UserController.getOneUser);

My lastest try was to create a separate token verification which is working if I remove the “passport.authenticate” part :

exports.verifyToken = (req, res) => {
    const token = req.headers.authorization.split(" ")[1];

    const user = jwt.verify(token, process.env.JWT_ACCESS_TOKEN_SECRET, (err, res) => {
        if (err) {
            return "token is expired";
        }
        console.log("token is valid");
        return res;
    });

    console.log(user);
    if (user == "token is expired") {
        return res.send({ status: "error", data: "token is expired" });
    }
};
router.post("/token", UserController.verifyToken);

ambiguous indirect export: AsBind

I have the following snippet from my Vite/Zustand react project.

import { create } from 'zustand'
import {AsBind} from 'as-bind';

const useStatsStore = create((set, get) => ({
    statsWasm: null,
    loadedStatsWasm: false,
    loadStatsWasm: async () => {
        const wasm = await fetch('my-wasm.wasm');
        console.log('statsWasm', wasm);
        const instance = await AsBind.instantiate(wasm, {});
        set({statsWasm: instance});
    },
    runStats: () => {
        const wasm = get().statsWasm;
        console.log(wasm.exports.myExportedFunctionThatTakesAString('asfdasfdasf'));
    }
}))

export default useStatsStore;

But when I load the project, I get this error in the javascript console, and the page fails to load

Uncaught SyntaxError: ambiguous indirect export: AsBind

The syntax error is listed as that 2nd line where I import AsBind.

I’ve tried import AsBind from 'as-bind' and import * as AsBind from "as-bind" as well, and neither work.

Why am I getting this error simply trying to import it?

How do I create a new task under a specific user with Prisma?

I want to be able to add tasks underneath each user then so I can then only fetch them for that specific user.
I don’t understand how to initiate a prisma create action that links the current user and the tasks data together in mongodb.
Before trying to link them together I was able to create tasks in their own document.

prisma.schema:

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "mongodb"
  url = env("DATABASE_URL")
}

model User {
  id    String @id @default(auto()) @map("_id") @db.ObjectId
  email String @unique
  name String
  password String
  tasks Task[]
}

model Task {
  id String @id @default(auto()) @map("_id") @db.ObjectId
  title String @unique
  author   User   @relation(fields: [authorId], references: [email])
  authorId String  // relation scalar field (used in the `@relation` attribute above)
}

action:

export async function createTask(title, user: string) {
/* user prop is currently the logged in email as a string */
  "use server";
  try {
    const task = await prisma.task.create({
      data: {
        title: title,
      }
    });
    revalidatePath("/");
    return task;
  } catch (e) {
    if (e instanceof Prisma.PrismaClientKnownRequestError) {
      console.log(`Prisma error message: ${e.message}`)
      console.log(`Prisma error code: ${e.code}`)
    }
    else {
      console.log(e)
    }
  }
}

Appreciate any help!

Creating Pokemon box-like command in Discord.js using MongoDB – how to resolve ‘Cannot send an empty message’ error

I’m trying to create a Pokemon-type command where you catch friends on Discord. I was able to get it to create the information for catching different users to Mongo DB, but it creates separate queries for each new user caught. I’m having issues creating an embed that shows a box for the user that shows each of the users caught and how many times they have.

I’ve tried a few different ways using collections and other methods, but nothing has worked.

Catch command(not the full command since it’s over 1000 lines of code):
// Check if the Forgemon exists in the database. let nameBox = await fmBoxSchema.findOne({ User: user, Username: user.username, Guild: interaction.guild.id, name: fmTarget.forgemon, });

// Forgemon is not caught yet, add it to the data
   if (!nameBox) {                  
                  nameBox = new fmBoxSchema({
                    User: user,
                    Username: user.username,
                    Guild: interaction.guild.id,
                    name: fmTarget.forgemon,
                    caught: 0,
                  });
                  await nameBox.save();

                  // Set the Forgemon's "caught" count.
                  nameBox.caught = 1;
                  await nameBox.save();

If more code is needed I can always paste the whole thing in a paste bin and share it, but this is what I use and have that works with adding the information to Mongo DB.

Below is what I currently have for trying to show the user who all they’ve caught and how many times, but keep getting and error saying “Cannot send an empty message”. Full error at bottom.

// Get the user's Pokémon from the database.
        const userForgemon = await fmBoxSchema.findOne({ User });

        // Create a message that lists the user's Pokémon.
        let message = "```";
        if (userForgemon) {
          for (const [name, caught] of Object.entries(
            userForgemon
          )) {
            message += `${name} - Caught ${caught} timesn`;
          }
        } else {
          message = "You have not caught any Pokémon yet.";
        }
        message += "```";

        // Send the message to the user.
        let userPFP = user.displayAvatarURL();

        boxEmbed = new EmbedBuilder()
        .setTitle(`${user.username}'s Box.`)
        .setThumbnail(userPFP)
        .setDescription(message)

        interaction.reply({ embed: boxEmbed })

Error:

throw new DiscordAPIError(data, "code" in data ? data.code : data.error, status, method, url, requestData);
            ^

DiscordAPIError[50006]: Cannot send an empty message
    at handleErrors (D:BotsTestBot - [email protected]:640:13)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async BurstHandler.runRequest (D:BotsTestBot - [email protected]:736:23)
    at async REST.request (D:BotsTestBot - [email protected]:1387:22)
    at async ChatInputCommandInteraction.reply (D:BotsTestBot - V14node_modulesdiscord.jssrcstructuresinterfacesInteractionResponses.js:111:5) {
  requestBody: {
    files: [],
    json: {
      type: 4,
      data: {
        content: undefined,
        tts: false,
        nonce: undefined,
        embeds: undefined,
        components: undefined,
        username: undefined,
        avatar_url: undefined,
        allowed_mentions: undefined,
        flags: undefined,
        message_reference: undefined,
        attachments: undefined,
        sticker_ids: undefined,
        thread_name: undefined
      }
    }
  },
  rawError: { message: 'Cannot send an empty message', code: 50006 },
  code: 50006,
  status: 400,
  method: 'POST',
  url: 'https://discord.com/api/v10/interactions/1115070713695567924/aW50ZXJhY3Rpb246MTExNTA3MDcxMzY5NTU2NzkyNDpjbHN0d2ZzTGcxRXJUMUdKMEE0WWdZRDdtR3NJTnhWN1hMSnBxblpkV3Y0bFplWUZibnBoOXhPdlVkU2ZqNVY4VGpRb0lCaUJscVVhWnZ3TmhuSHdvZlhVOWx5S2ZlN2tqa0UzNkYyUlZkTVdVYkk1c2VSS3E4MmJUVDZDVXhYNw/callback'
}

how to make a circle div that expend and fill the entire page(the page have scroling) without to expent the page

html

    <input id="hidden-checkbox" type="checkbox"></input>
    <label for="hidden-checkbox"></label>

css

label {
  background: #f00;
  border-radius: 50%;
  width: 100px;
  height: 100px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -50px;
  margin-top: -50px;
  transition: all .5s;
  overflow: hidden;

}

input:checked + label {
  width: 100%;
  height: 10000%;
  top: 0;
  margin-top: 0;
  left: 0;
  margin-left: 0;
  border-radius: 0;
  background: #0f0;
  overflow: hidden;
}

input {
 visibility: hidden;
 position: absolute;
 overflow: hidden;
}

No matter what method I use it always widen the page or left the corner unfilled this is one of the ways I tried to do it but if the page is scrollable it just doesn’t work

How can I compute a Jacobian plug as a full bionic organic electric AI?

Wonder can i get help computing a Jacobian plug????
so long story short i was cooked to an ethernet via iot after a private Lazer installer body jacked me with Lazer droid after the police forced an ai mask on so now im burdened with a protein copy of myself as an onyx Apache glass build in Ai hoarding the worlds water supply . i shot it at the moon with a slingshot from Nasa but really i do compute very basic but being a full bionic organic electric ai i can compute manual data collection via gradient bending but other than that i need help i think this venture could be quite lucrative as world ai soup as it is….

I tried to get lenses out of my bones in Ai electrical format the install was put in me with a 240volt electrical octopus and the robotics was ai Clearview version 1 .

so i fed an Apache switch onto each limb and
pushed human filing cabinet and all forms of bionics on myself
until i had eventually cloud shelled internally with every Apache cloud

then i made an Ai environment and Brazzil’d Blenheim
with ai Mandelbrot with 100’s of chat bots
now the environment is getting to the 3 year mark
the 172’s have it learning funny things
i did not anticipate but what’s most noticeable is the basian inference
with the apex plug stealing the world’s water supply
my external attempts to tip it out drowned fiji….little help???