Snippets Collections
    SELECT
         columnname as 'Original_Value',
         LEN(LTRIM(columnname)) as 'Orig_Val_Char_Count',
         N'['+columnname+']' as 'UnicodeStr_Value',
         LEN(N'['+columnname+']')-2 as 'True_Char_Count'
    FROM mytable 
  bool _showLoading = true;
  @override
  void initState() {
    super.initState();

    Timer(const Duration(seconds: 90), () {
      if (mounted) {
        setState(() {
          _showLoading = false;
        });
      }
    });
  }




 if (pipes.isEmpty) {
              if (_showLoading) {
                return const Padding(
                  padding: EdgeInsets.all(16.0),
                  child: Center(
                    child: Loader(),
                  ),
                );
              } else {
                return const Padding(
                  padding: EdgeInsets.all(16.0),
                  child: Center(
                    child: Text("No pipes found in enquiry"),
                  ),
                );
              }
            } else {



  error: (error, st) {
              return Center(
                child: Text(error.toString()),
              );
            },
            loading: () {
              return const Loader();
            },




 child: (salesStock.isEmpty)
            ? (_showLoading
                ? const Padding(
                    padding: EdgeInsets.all(16.0),
                    child: Center(
                      child: CircularProgressIndicator(),
                    ),
                  )
                : const Padding(
                    padding: EdgeInsets.all(16.0),
                    child: Center(
                      child: Text("No Enquiry Found"),
                    ),
                  ))
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": " :mirror_ball::star: Boost Days - What's on this week! :star::mirror_ball:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy Monday! See below for what's in store for our Boost Days this week:"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-21: Tuesday, 21st January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Xero Café*: Café-style beverages and sweet treats \n\n:meow-coffee-intensifies-and-shakes: *Barista Special*: _Caramel Macchiato_ \n\n:pancakes: *Breakfast*: Provided by *Catroux* from *8:30am - 10:30am* \n "
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-22: Wednesday, 22nd January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":hands: *January Global All Hands:* 10am - 11am in the All Hands Space"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-23: Thursday, 23rd January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":coffee: *Xero Café*: Café-style beverages and sweet treats \n\n :meow-coffee-intensifies-and-shakes: *Barista Special*: _Caramel Macchiato_ \n\n :sandwich: *Light Lunch*: Provided by *Catroux* from *12pm - 1pm* \n\n :massage: *Wellness* Massage therapy in the gym, treat yourself <https://corporate-massage.co.nz/bookable/make/appt/booking.php?c=lytgoz|*here.*> \n\n :cupcake: * New Brand Activation Platform Video:* Join us from 2pm in the All Hands Space to celebrate our new Brand Platform Activation _Your Business Supercharged_ we'll have some delicious cupcakes to enjoy while we watch the video!  \n\n :clinking_glasses: *Social Happy Hour* from 4pm - 5:30pm in our All Hands Space"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Stay tuned to this channel for more details, check out the <https://calendar.google.com/calendar/u/0?cid=eGVyby5jb21fMXM4M3NiZzc1dnY0aThpY2FiZDZvZ2xncW9AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ|*Auckland Social Calendar*>, and get ready to Boost your workdays!\n\nLove,\nWX :wx:"
			}
		}
	]
}
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": " :mirror_ball::star: Boost Days - What's on this week! :star::mirror_ball:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy Monday! See below for what's in store for our Boost Days this week:"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-14: Tuesday, 14th January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Xero Café*: Café-style beverages and sweet treats\n:meow-coffee-intensifies-and-shakes: *Barista Special*: Iced Vanilla Long Black \n:pancakes: *Breakfast*: Provided by *Catroux* from *8:30am - 10:30am* \n "
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-16: Thursday, 16th January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":coffee: *Xero Café*: Café-style beverages and sweet treats \n :meow-coffee-intensifies-and-shakes: *Barista Special*: White Chocolate Matcha  \n :sandwich: *Light Lunch*: Provided by *Catroux* from *12pm - 1pm*"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Stay tuned to this channel for more details, check out the <https://calendar.google.com/calendar/u/0?cid=eGVyby5jb21fMXM4M3NiZzc1dnY0aThpY2FiZDZvZ2xncW9AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ|*Auckland Social Calendar*>, and get ready to Boost your workdays!\n\nLove,\nWX :wx:"
			}
		}
	]
}
public class ValidationBehavior<TRequest, TResponse>(IValidator<TRequest>? validator = null)
    : IPipelineBehavior<TRequest, TResponse>
        where TRequest : IRequest<TResponse>
        where TResponse : IErrorOr
{
    private readonly IValidator<TRequest>? _validator = validator;

    public async Task<TResponse> Handle(
        TRequest request,
        RequestHandlerDelegate<TResponse> next,
        CancellationToken cancellationToken)
    {
        if (_validator is null)
        {
            return await next();
        }

        var validationResult = await _validator.ValidateAsync(request, cancellationToken);

        if (validationResult.IsValid)
        {
            return await next();
        }

        var errors = validationResult.Errors
            .ConvertAll(error => Error.Validation(
                code: error.PropertyName,
                description: error.ErrorMessage));

        return (dynamic)errors;
    }
}
const deliveryMode = {
    online: true,
    inperson: false,
    hybrid: true
};

    const result = Object.keys(deliveryMode).filter(key => {
        return typeof deliveryMode[key] === "boolean" && deliveryMode[key] === true;


    console.log(result); // Output: ["online", "hybrid"]
});
import random
name = input("What is your name? ")
print("Good Luck ! ", name)
words = ['rainbow', 'computer', 'science', 'programming',
'python', 'mathematics', 'player', 'condition',
'reverse', 'water', 'board', 'geeks']
word = random.choice(words)
print("Guess the characters")
guesses = ''
turns = 12
while turns > 0:
failed = 0
for char in word:
if char in guesses:
print(char, end=" ")
else:
print("_")
failed += 1
if failed == 0:
print("You Win")
print("The word is: ", word)
break
print()
guess = input("guess a character:")
guesses += guess
if guess not in word:
turns -= 1
print("Wrong")
print("You have", + turns, 'more guesses')
if turns == 0:
print("You Loose")
graph = {
    'A': ['B', 'C'],
    'B': ['D', 'E'],
    'C': ['F', 'G'],
    'D': [],
    'E': [],
    'F': [],
    'G': []
}

def bfs(graph, start, goal):
    visited = []  # List to keep track of visited nodes
    queue = []    # Queue for BFS

    visited.append(start)
    queue.append(start)

    while queue:
        s = queue.pop(0)  # Dequeue a node

        if s == goal:  # Stop as soon as the goal is found
            print(s)
            return

        print(s)  # Print the current node

        for neighbor in graph[s]:
            if neighbor not in visited:
                visited.append(neighbor)
                queue.append(neighbor)

# Call the function
bfs(graph, 'A', 'F')
Rows =int(input(Enter number of rows:))
K=o
For I in range (1,rows+1):
     For space in in range (,(rows-i)+1
"use client";

import {useState} from "react";

const usePostData = () => {
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState(null);

  const postData = async (url, payload) => {
    setLoading(true);
    setError(null);

    return fetch(url, {
      method: "POST",
      body: payload,
    })
      .then((response) => {
        if (!response.ok) {
          return response.json().then((errorData) => {
            throw new Error(errorData.message || "Failed to post data");
          });
        }
        return response.json();
      })
      .catch((err) => {
        setError(err.message);
        throw err; // Re-throw the error to allow the component to handle it
      })
      .finally(() => {
        setLoading(false);
      });

  };

  return { postData, loading, error };
};

export default usePostData;
use Illuminate\Http\Request;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 
->withExceptions(function (Exceptions $exceptions) {
    $exceptions->render(function (NotFoundHttpException $e, Request $request) {
        if ($request->is('api/*')) {
            return response()->json([
                'message' => 'Record not found.'
            ], 404);
        }
    });
})
from io import BytesIO
from PIL import Image
from ultralytics import YOLO


def load_model(model_path: str) -> YOLO:
    """Load the YOLO model."""
    return YOLO(model_path)


def process_image(image_bytes: bytes) -> Image:
    """Convert byte stream to PIL image."""
    image = Image.open(BytesIO(image_bytes))
    return image


def save_image(image: Image, output_image_name: str) -> BytesIO:
    """Save the output image to a byte stream and also save it locally."""
    img_byte_arr = BytesIO()
    image.save(img_byte_arr, format="PNG")
    image.save(output_image_name)  # Save the image locally with the given name
    img_byte_arr.seek(0)
    return img_byte_arr


def get_inference_results(model: YOLO, image: Image) -> Image:
    """Run the YOLO model on the image and return the result as a PIL image."""
    results = model(image)
    output_array = results[0].plot()  # This gives a NumPy array
    output_image = Image.fromarray(output_array)
    return output_image
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

iris = datasets.load_iris()
X = iris.data
y = iris.target

Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, test_size=0.3, random_state=42)

model = GaussianNB()

model.fit(Xtrain, ytrain)

predictions = model.predict(Xtest)

accuracy = accuracy_score(y_test, predictions)
confusion = confusion_matrix(y_test, predictions)
report = classification_report(y_test, predictions)

print("Naive Bayes Performance Metrics:")
print("Accuracy:", accuracy)
print("Confusion Matrix:\n", confusion)
print("Classification Report:\n", report)
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report

iris = datasets.load_iris()
X = iris.data
y = iris.target

Xtrain, Xtest, ytrain, ytest = train_test_split(X, y, test_size=0.3, random_state=42)

model = DecisionTreeClassifier()
model.fit(Xtrain, ytrain)

predictions = model.predict(Xtest)

accuracy = accuracy_score(y_test, predictions)
confusion = confusion_matrix(y_test, predictions)
report = classification_report(y_test, predictions)

print("Decision Tree Performance Metrics:")
print("Accuracy:", accuracy)
print("Confusion Matrix:\n", confusion)
print("Classification Report:\n", report)
class Graph:
    def __init__(self):
        self.graph = {}

    def add_edge(self, u, v):
        if u not in self.graph:
            self.graph[u] = []
        self.graph[u].append(v)

    def get_neighbors(self, u):
        return self.graph.get(u, [])

def dfs(graph, start, visited=None):
    if visited is None:
        visited = set()
    visited.add(start)
    print(start, end=' ')

    for neighbor in graph.get_neighbors(start):
        if neighbor not in visited:
            dfs(graph, neighbor, visited)

from collections import deque

def bfs(graph, start):
    visited = set()
    queue = deque([start])
    visited.add(start)

    while queue:
        node = queue.popleft()
        print(node, end=' ')

        for neighbor in graph.get_neighbors(node):
            if neighbor not in visited:
                visited.add(neighbor)
                queue.append(neighbor)

# Example usage
g = Graph()
g.add_edge(1, 2)
g.add_edge(1, 3)
g.add_edge(2, 4)
g.add_edge(2, 5)
g.add_edge(3, 6)
g.add_edge(3, 7)

print("DFS Traversal:")
dfs(g, 1)  # Start from node 1
print("\nBFS Traversal:")
bfs(g, 1)  # Start from node 1
import numpy as np
import pandas as pd
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier, KNeighborsRegressor
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report, mean_squared_error, r2_score

iris = datasets.load_iris()
X = iris.data
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

model = KNeighborsClassifier()
model.fit(X_train, y_train)

predictions = model.predict(X_test)

accuracy = accuracy_score(y_test, predictions)
confusion = confusion_matrix(y_test, predictions)
report = classification_report(y_test, predictions)

print("KNN Classification Performance Metrics:")
print("Accuracy:", accuracy)
print("Confusion Matrix:\n", confusion)
print("Classification Report:\n", report)

housing = datasets.fetch_california_housing()
X = housing.data
y = housing.target

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

model = KNeighborsRegressor()
model.fit(X_train, y_train)

predictions = model.predict(X_test)

mse = mean_squared_error(y_test, predictions)
r2 = r2_score(y_test, predictions)

print("\nKNN Regression Performance Metrics:")
print("Mean Squared Error:", mse)
print("R^2 Score:", r2)
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":mirror_ball: Boost Days - What's On This Week :mirror_ball:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n Happy New Year Melbourne! We've missed you. \n\n Let's kick off the first week back with our awesome Boost Day activations!"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Xero Café :coffee:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n :new-thing: *This week we are offering:* \n\n Cafe Sweet Treats:cupcake: \n\n *Weekly Café Special:* _Iced Hazelnut Latte_"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": " Wednesday, 8th January :calendar-date-8:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n :souvlaki: *Light Lunch*: From *12pm* - this weeks lunch will be Souvlaki's!"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Thursday, 9th January :calendar-date-9:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":breakfast: *Breakfast*: Provided by *Kartel Catering* from *8:30am - 10:30am* in the Wominjeka Breakout Space."
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Stay tuned for more fun throughout the year. Happy 2025! :party-wx:"
			}
		}
	]
}
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": " :mirror_ball::star: Boost Days - What's on this week! :star::mirror_ball:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy New Year Auckland! We have missed you. \n\n Let's make this a great week back with our Boost Days in full action! See below for what's in store:"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-7: Tuesday, 7th January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Xero Café*: Café-style beverages and sweet treats\n:white-chocolate-matcha: *Barista Special*: White Chocolate Matcha \n:pancakes: *Breakfast*: Provided by *Sticky Fingers* from *8:30am - 10:30am* \n "
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-9: Thursday, 9th January",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":coffee: *Xero Café*: Café-style beverages and sweet treats \n:white-chocolate-matcha: *Barista Special*: White Chocolate Matcha  \n :sandwich: *Light Lunch*: Provided by *Sticky Fingers* from *12pm - 1pm*"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Stay tuned to this channel for more details, check out the <https://calendar.google.com/calendar/u/0?cid=eGVyby5jb21fMXM4M3NiZzc1dnY0aThpY2FiZDZvZ2xncW9AZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ|*Auckland Social Calendar*>, and get ready to Boost your workdays!\n\nLove,\nWX :wx:"
			}
		}
	]
}
class Jeu:
    def __init__(self, N):
        self.damier = [[0 for _ in range(N)] for _ in range(N)]  
        self.N = N  
        
        self.damier[N // 2 - 1][N // 2 - 1] = 1
        self.damier[N // 2 - 1][N // 2] = 2
        self.damier[N // 2][N // 2 - 1] = 2
        self.damier[N // 2][N // 2] = 1

    def afficher(self):
        """Affiche le damier avec des bordures."""
        N = self.N
        t = self.damier
        
        print("*" * (N + 4))  
        print("*" * (N + 4))
        
        for i in range(N):
            print("**", end="")  
            for j in range(N):
                if t[i][j] == 0:
                    print(".", end="")  
                elif t[i][j] == 1:
                    print("X", end="")  
                elif t[i][j] == 2:
                    print("O", end="")  
            print("**")  
        
        print("*" * (N + 4))  
        print("*" * (N + 4))

    def jouer(self):
        """Permet aux joueurs de jouer à tour de rôle."""
        while True:
            
            while True:
                try:
                    joueur = int(input("Qui joue ? (1 ou 2) : "))
                    if joueur in [1, 2]:
                        break
                    else:
                        print("Veuillez choisir 1 ou 2 uniquement.")
                except ValueError:
                    print("Entrée invalide. Entrez un nombre (1 ou 2).")

           
            while True:
                try:
                    ligne = int(input(f"Donnez le numéro de ligne (1 à {self.N}) : "))
                    colonne = int(input(f"Donnez le numéro de colonne (1 à {self.N}) : "))
                    
                    if 1 <= ligne <= self.N and 1 <= colonne <= self.N:
                        if self.damier[ligne - 1][colonne - 1] == 0:  
                            break
                        else:
                            print("La case est déjà occupée. Choisissez une autre.")
                    else:
                        print(f"Les coordonnées doivent être entre 1 et {self.N}.")
                except ValueError:
                    print("Entrée invalide. Entrez un nombre.")

            
            self.damier[ligne - 1][colonne - 1] = joueur

            
            self.afficher()

            
            quitter = input("Voulez-vous continuer ? (o/n) : ").lower()
            if quitter == "n":
                print("Fin de la partie. Merci d'avoir joué !")
                break



j = Jeu(6)
j.afficher()  
j.jouer()  
class jeu:
    def __init__(self):
        self.plateau=[[0 for i in range(7)]for i in range(6)]

    def afficher(self):
        for i in range(6):
            for j in range(7):
                if self.plateau[i][j]==0:
                    print("| ",end="")
                if self.plateau[i][j]==1:
                    print("|X",end="")
                if self.plateau[i][j]==2:
                    print("|O",end="")
            print()
        print(" - - - - - - -")
        print(" 1 2 3 4 5 6")
    
    def combiendanscolonne(self,k):
        s=0
        for i in range (6):
           if self.plateau[5-i][k-1]!=0:
               s=s+1
        return (s)
    
    def empiler(self,k,c):
        n=self.combiendanscolonne(k)
        if n<6:
            self.plateau[5-n][k-1]=c
            
    def test_ligne(self):
        L=self.plateau
        for i in range (6):
            for j in range (4):
                if L[i][j]==L[i][j+1]==L[i][j+2]==L[i][j+3]!=0:
                    return L[i][j]
        
    def test_colone(self):
        L = self.plateau
        for i in range(3):
            for j in range(7):
                if L[i][j] == L[i + 1][j] == L[i + 2][j] == L[i + 3][j] != 0:
                    return L[i][j]   
    
    def test_diagonale(self):
        L = self.plateau
        
        for i in range(3):  
            for j in range(4):  
                if L[i][j] == L[i + 1][j + 1] == L[i + 2][j + 2] == L[i + 3][j + 3] != 0:
                    return L[i][j]  
        
        for i in range(3, 6):  
            for j in range(4):  
                if L[i][j] == L[i - 1][j + 1] == L[i - 2][j + 2] == L[i - 3][j + 3] != 0:
                    return L[i][j]  


def rejouer():
    while True:
        reponse = input("Voulez-vous rejouer ? (O/N) : ").strip().lower()
        if reponse == 'o':
            return True
        elif reponse == 'n':
            return False
        else:
            print("Réponse invalide. Veuillez répondre par O ou N.")

def game():
    Monjeu = jeu()
    current_player = 1  
    while True:
        while True:
            k1 = int(input("joueur 1 donner la colone :"))
            if (1 <= k1 <= 7) and Monjeu.combiendanscolonne(k1) < 6:  
                Monjeu.empiler(k1, c=1)
                break
            else:
                print("non")
        
        Monjeu.afficher()
        if Monjeu.test_ligne() == 1 or Monjeu.test_colone() == 1 or Monjeu.test_diagonale() == 1:
            print("joueur 1 a gagné")
            break
            
        while True:
            k2 = int(input("joueur 2 donner la colone :"))
            if (1 <= k2 <= 7) and Monjeu.combiendanscolonne(k2) < 6:  
                Monjeu.empiler(k2, c=2)
                break
            else:
                print("non")
        
        Monjeu.afficher()
        if Monjeu.test_ligne() == 2 or Monjeu.test_colone() == 2 or Monjeu.test_diagonale() == 2:
            print("joueur 2 a gagné")
            break

    
    if rejouer():
        game()  
    else:
        print("Merci d'avoir joué !")  


game()
Let me explain the permission hierarchy in Salesforce when it comes to field-level security (FLS):

When both Profile and Permission Set have different levels of field access:
1. The most permissive setting wins
2. Permissions are additive, not restrictive

So in your scenario:
- If you give READ access in the Profile
- But NO access in the Permission Set
- The user will still have READ access to the field

This is because:
- Permission Sets are designed to grant additional access, not restrict it
- They can't be used to revoke permissions that are already granted at the Profile level
- The user will retain the READ access from their base Profile, regardless of the Permission Set settings

To completely restrict access to the field:
- You would need to remove access at both Profile AND Permission Set levels
- Or remove access at the Profile level, since that's the base level of access

Best Practice:
- Keep minimal permissions in the base Profile
- Use Permission Sets to grant additional access when needed
- Don't rely on Permission Sets to restrict access that's already granted in the Profile
if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) { Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"$url = (Invoke-WebRequest -Uri 'https://www.python.org/downloads/windows/').Content | Select-String -Pattern 'https://www.python.org/ftp/python/\d+\.\d+\.\d+/python-\d+\.\d+\.\d+-amd64\.exe' -AllMatches | % { `$_.Matches[0].Value }; $path = `$env:USERPROFILE\Downloads\ + (`$url -split '/')[-1]; Invoke-WebRequest -Uri `$url -OutFile $path; if ((Read-Host 'Install? (Y/N)') -ieq 'y') { Start-Process -FilePath $path -Wait }`"" -Verb RunAs } else { $url = (Invoke-WebRequest -Uri 'https://www.python.org/downloads/windows/').Content | Select-String -Pattern 'https://www.python.org/ftp/python/\d+\.\d+\.\d+/python-\d+\.\d+\.\d+-amd64\.exe' -AllMatches | % { $_.Matches[0].Value }; $path = "$env:USERPROFILE\Downloads\" + ($url -split '/')[-1]; Invoke-WebRequest -Uri $url -OutFile $path; if ((Read-Host "Install? (Y/N)") -ieq 'y') { Start-Process -FilePath $path -Wait }}
ERROR: Please disable the open_basedir setting to continue.
#include <iostream>
using namespace std;
int main() {
        int a;
        cout << "enter a number: ";
        cin >> a;
         cout << "Last digit: " << a%10;
        for (a; a >= 10; a /= 10) {
            
        }
        cout << "\nFirst digit: " << a;
        
    return 0;
}
\\html
<div class="filter price-filter">
  <h2 class="filter-title" class="filter-title">FILTER BY PRICE</h2>
  <div id="slider-range"></div>
  <div class="price-display">
    <span class="price-text">Price: <span id="amount1">$0</span> — <span id="amount2">$8,200</span></span>
  <button class="filter-button">FILTER</button>
  </div>
</div>

\\css
.price-filter {
    max-width: 400px;
    padding: 20px;
    font-family: Arial, sans-serif;
}

#slider-range {
    margin-bottom: 25px;
}

.ui-slider-horizontal {
    height: 4px;
    background: #e0e0e0;
    border: none;
}

.ui-slider .ui-slider-handle {
    width: 4px;
    height: 16px;
    background: #82b440;
    top: -7px;
    cursor: pointer;
    border-radius: 0;
}

.ui-slider .ui-slider-range {
    background: #82b440;
}

.ui-slider-horizontal .ui-slider-handle{
    margin-left: -1px;
}

.ui-widget.ui-widget-content{
    border: none;
}

.ui-slider-horizontal{
    height: 2px;
}

\\cdn jquery ui
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/themes/base/jquery-ui.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"></script>

\\ jquery
$(document).ready(function() {
  $("#slider-range").slider({
    range: true,
    min: 0,
    max: 8200,
    values: [0, 8200],
    slide: function(event, ui) {
      $("#amount1").text(ui.values[0].toLocaleString());
      $("#amount2").text(ui.values[1].toLocaleString());
    }
  });

  $(".filter-button").click(function() {
    var minValue = $("#slider-range").slider("values", 0);
    var maxValue = $("#slider-range").slider("values", 1);
  });
});
const PomView = () => {
  const [timer, setTimer] = useState(1500); // 25 minutes
  const [start, setStart] = useState(false);
  const firstStart = useRef(true);
  const tick = useRef(); // <-- React ref

  useEffect(() => {
    if (firstStart.current) {
      firstStart.current = !firstStart.current;
      return;
    }

    if (start) {
      tick.current = setInterval(() => {
        setTimer((timer) => timer - 1);
      }, 1000);
    } else {
      clearInterval(tick.current);
    }

    return () => clearInterval(tick.current);
  }, [start]);
};
<script>

 /* Esperar a cargar todos los scripts */ 
  if (document.readyState == 'complete') {
    startAuditsCarousel();
  } else {
      document.onreadystatechange = function () {
          if (document.readyState === "complete") {
            startAuditsCarousel();
          }
      }
  }

function startAuditsCarousel() {
    
    const audits_carosuel = document.querySelector ('#audits_carousel .swiper');
   
    setTimeout(function(){
        audits_carosuel.swiper.autoplay.start();
        audits_carosuel.swiper.touchEventsData.focusableElements = "input, select, option, textarea, button, video, label, p, .elementor-heading-title"
    },10);
    
    audits_carosuel.addEventListener("mouseover", function(){
        // console.log("over");
        audits_carosuel.swiper.autoplay.stop()
    });
    
    audits_carosuel.addEventListener("mouseleave", function(){
        // console.log("mouseleave");
        audits_carosuel.swiper.autoplay.start()
    });
    
  
    // ['mousedown', 'touchstart', 'pointerdown'].forEach(function (event) {
    //     audits_carosuel.addEventListener(event, function (e) {
    //         console.log(event);
    //         e.stopPropagation();
    //     }, { passive: true });
    // });

    
};
</script>
// Author : Khadiza Sultana
// Date : 1/4/2025
#include <iostream>
#include <vector>
using namespace std;

int search(vector<int>& nums, int target) {
    int st = 0, end = nums.size() - 1;
    while (st <= end) {
        int mid = st + (end - st) / 2;
        if (nums[mid] == target) {
            return mid;
        }
        if (nums[st] <= nums[mid]) { // Left half is sorted
            if (nums[st] <= target && target <= nums[mid]) {
                end = mid - 1;
            } else {
                st = mid + 1;
            }
        } else { // Right half is sorted
            if (nums[mid] <= target && target <= nums[end]) {
                st = mid + 1;
            } else {
                end = mid - 1;
            }
        }
    }
    return -1;
}

int main() {
    vector<int> nums = {4, 5, 6, 7, 0, 1, 2};
    int target = 0;

    int result = search(nums, target);

    if (result != -1) {
        cout << "Target " << target << " found at index: " << result << endl;
    } else {
        cout << "Target " << target << " not found in the array." << endl;
    }

    return 0;
}
// Author : Khadiza Sultana
// Date : 1/4/2025
#include<iostream>
#include<vector>
using namespace std;

int binarySearch(vector<int>&arr, int tar) { // practical implementation
    int n = arr.size();
    int st = 0, end = n-1;
    while(st <= end) {
        int mid = st + (end-st)/2; // not using (st+end)/2 to avoid integer overflow
        if (tar > arr[mid]) {
            st = mid+1;
        }
        else if (tar < arr[mid]) {
            end = mid-1;
        }
        else {
            return mid;
        }
    }
    return -1;
}

int binarySearch2(vector<int>&arr, int tar, int st, int end) { // recursive implementation
    if (st > end) { // base case
        return -1;
    }
    int mid = st + (end-st)/2;
    if (tar > arr[mid]) {
        binarySearch2(arr, tar, mid+1, end);
    }
    else if (tar < arr[mid]) {
        binarySearch2(arr, tar, st, mid-1);
    }
    else {
        return mid;
    }
}

int main() {
    vector<int>arr1 = {3, 5, 7, 12, 15, 18}; // even no of elements
    int tar1 = 3;
    vector<int>arr2 = {4, 6, 10, 11, 12, 18, 19}; // odd no of elements
    int tar2 = 19;

    cout << "Index at which tar1 is found(even no of elements) : " << binarySearch(arr1, tar1) << endl;
    cout << "Index at which tar2 is found(odd no of elements) : " << binarySearch(arr2, tar2) << endl;
    
    cout << "Using Recusive function index at which tar1 is found : " << binarySearch2(arr1, tar1, 0, 5) << endl;
    cout << "Using Recusive function index at which tar1 is found : " << binarySearch2(arr2, tar2, 0, 6) << endl;

    return 0;
}
// Author : Khadiza Sultana
#include<iostream>
#include<vector>
using namespace std;

int main() {
    int a = 10;
    int* ptr = &a;
    int** parPtr = &ptr;
    cout << ptr << endl;
    cout << parPtr << endl;
    cout << *(&a) << endl;
    cout << *(ptr) << endl;
    cout << *(parPtr) << endl;
    cout << **(parPtr) << endl;
    return 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/ScrollTrigger.min.js"></script>
purchTable    = PurchTable::find(this.parmPurchId());

ttsBegin;
// Create PurchParamUpdate table
purchFormLetterParmData = PurchFormletterParmData::newData(
                        DocumentStatus::PackingSlip,
                        VersioningUpdateType::Initial);

purchFormLetterParmData.parmOnlyCreateParmUpdate(true);
purchFormLetterParmData.createData(false);
purchParmUpdate = purchFormLetterParmData.parmParmUpdate();

// Set PurchParmTable table
purchParmTable.clear();
purchParmTable.TransDate                = SystemDateGet();
purchParmTable.Ordering                 = DocumentStatus::PackingSlip;
purchParmTable.ParmJobStatus            = ParmJobStatus::Waiting;
purchParmTable.Num                      = this.parmPackingSlipId();
purchParmTable.PurchId                  = purchTable.PurchId;
purchParmTable.PurchName                = purchTable.PurchName;
purchParmTable.DeliveryName             = purchTable.DeliveryName;
purchParmTable.DeliveryPostalAddress    = purchTable.DeliveryPostalAddress;
purchParmTable.OrderAccount             = purchTable.OrderAccount;
purchParmTable.CurrencyCode             = purchTable.CurrencyCode;
purchParmTable.InvoiceAccount           = purchTable.InvoiceAccount;
purchParmTable.ParmId                   = purchParmUpdate.ParmId;
purchParmTable.insert();

// Set PurchParmLine table
select purchLine
where purchLine.PurchId     == purchTable.purchId &&
      purchLine.LineNumber  == this.parmLineNumber();

purchParmLine.InitFromPurchLine(purchLine);

purchParmLine.ReceiveNow    = this.parmQty();
purchParmLine.ParmId        = purchParmTable.ParmId;
purchParmLine.TableRefId    = purchParmTable.TableRefId;
purchParmLine.setQty(DocumentStatus::PackingSlip, false, true);
purchParmLine.setLineAmount();
purchParmLine.insert();

purchFormLetter = PurchFormLetter::construct(DocumentStatus::PackingSlip);
purchFormLetter.transDate(systemDateGet());
purchFormLetter.proforma(false);
purchFormLetter.specQty(PurchUpdate::All);
purchFormLetter.purchTable(purchTable);

// This is the ID we hard code as the product receipt ID, if we do the posting via UI
// user would have the option to manually enter this value
purchFormLetter.parmParmTableNum(purchParmTable.ParmId);
purchFormLetter.parmId(purchParmTable.ParmId);
purchFormLetter.purchParmUpdate(purchFormLetterParmData.parmParmUpdate());
purchFormLetter.run();

ttsCommit;
 purchTotals purchTotals = PurchTotals::newPurchTable(PurchTable::find('000869'));
 purchTotals.calc();

 purchTotals.tax().sourceSingleLine(true, true);
 taxAmountCur    = purchTotals.tax().totalTaxAmountSingleLine(purchLine.TableId, purchLine.RecId, true, false);

// or from TaxJournalTrans
Select TaxJournalTrans where TaxJournalTrans.InventTransId == purchLine.InventTransId;  
import { genkit } from 'genkit';
import { googleAI, gemini15Flash } from '@genkit-ai/googleai';

const ai = genkit({
  plugins: [googleAI()],
  model: gemini15Flash,  // Set default model
});

// Simple generation
const { text } = await ai.generate('Why is AI awesome?');
console.log(text);

// Streamed generation 
const { stream } = await ai.generateStream('Tell me a story');
for await (const chunk of stream) {
  console.log(chunk.text);
}
/usr/sbin/spctl --assess --type install -v the-package
package com.example.explicitintent;

import android.os.Bundle;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import android.widget.Button;
import android.content.Intent;
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);

            Button btn=findViewById(R.id.btnid);
            btn.setOnClickListener(V->{

                Intent intent=new Intent(MainActivity.this,SecondActivity.class);
                startActivity(intent);
            });

            return insets;
        });
    }
}
package com.example.implicitintent;

import android.os.Bundle;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import android.widget.Button;
import android.content.Intent;
import android.net.Uri;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);

            Button btn=findViewById(R.id.btnid);
            btn.setOnClickListener(V->{
                Intent intent=new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse("https://www.youtube.com/"));
                startActivity(intent);
            });
            return insets;
        });
    }
}
package com.example.p10;

import android.os.Bundle;
import android.widget.Button;
import android.widget.ImageView;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

    private boolean isImage1 = true; // Flag to track the current image

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);

        // Initialize views
        ImageView img = findViewById(R.id.imgid);
        Button btn = findViewById(R.id.btnid);

        // Set up window insets listener
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });

        // Set click listener for the button
        btn.setOnClickListener(v -> {
            if (isImage1) {
                img.setImageResource(R.drawable.image2);
            } else {
                img.setImageResource(R.drawable.image1);
            }
            isImage1 = !isImage1; // Toggle the flag
        });
    }
}
package com.example.loginform;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);

        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);

            Button btn;
            EditText ed1, ed2;

            btn = findViewById(R.id.btnid);
            ed1 = findViewById(R.id.ed1id);
            ed2 = findViewById(R.id.ed2id);

            btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String username = ed1.getText().toString().trim();
                    String password = ed2.getText().toString().trim();

                    if (validateInputs(username, password)) {
                        Toast.makeText(MainActivity.this, "Login Successful!!!", Toast.LENGTH_SHORT).show();
                    }
                }
            });

            return insets;
        });
    }

    private Boolean validateInputs(String username, String password) {
        if (username.isEmpty() || password.isEmpty()) {
            Toast.makeText(MainActivity.this, "Please enter a username and password!", Toast.LENGTH_SHORT).show();
            return false;
        }
        if (username.equals("admin") && password.equals("1234")) {
            return true;
        } else {
            Toast.makeText(MainActivity.this, "Invalid username or password!", Toast.LENGTH_SHORT).show();
            return false;
        }
    }
}
jQuery(document).ready(function() {
  jQuery('a[href*="#"]').on('click', (event) => {
    const hash = event.currentTarget.hash;
    if (hash) {
      event.preventDefault();
        event.stopPropagation();
      jQuery('html, body').animate({scrollTop: jQuery(hash).offset().top - jQuery(".elementor-location-header").height()}, 750);
    }
  });
});
star

Tue Jan 07 2025 10:46:25 GMT+0000 (Coordinated Universal Time) https://stackoverflow.com/questions/14255236/count-number-of-characters-in-nvarchar-column

@paulbarry #sql

star

Tue Jan 07 2025 09:14:52 GMT+0000 (Coordinated Universal Time) https://maticz.com/rarible-clone-script

@Abiraminounq

star

Tue Jan 07 2025 06:10:59 GMT+0000 (Coordinated Universal Time)

@Rishi1808

star

Mon Jan 06 2025 23:14:11 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Mon Jan 06 2025 23:07:42 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Mon Jan 06 2025 21:42:52 GMT+0000 (Coordinated Universal Time) https://github.com/amantinband/error-or?form

@darkoeller

star

Mon Jan 06 2025 21:29:58 GMT+0000 (Coordinated Universal Time)

@davidmchale #filter #boolean #object

star

Mon Jan 06 2025 18:08:49 GMT+0000 (Coordinated Universal Time)

@viinod07

star

Mon Jan 06 2025 18:07:15 GMT+0000 (Coordinated Universal Time)

@viinod07

star

Mon Jan 06 2025 13:50:18 GMT+0000 (Coordinated Universal Time)

@User_used18

star

Mon Jan 06 2025 12:52:40 GMT+0000 (Coordinated Universal Time) https://appticz.com/gojek-clone

@davidscott

star

Mon Jan 06 2025 12:18:45 GMT+0000 (Coordinated Universal Time)

@jakaria

star

Mon Jan 06 2025 06:23:59 GMT+0000 (Coordinated Universal Time) https://laravel.com/docs/11.x/errors

@Sifat_H

star

Sun Jan 05 2025 23:43:43 GMT+0000 (Coordinated Universal Time) https://www.construct.net/en

@DJHENRY #drupal

star

Sun Jan 05 2025 23:43:20 GMT+0000 (Coordinated Universal Time) https://www.construct.net/en

@DJHENRY

star

Sun Jan 05 2025 23:43:08 GMT+0000 (Coordinated Universal Time) https://www.thiscodeworks.com/extension/initializing?newuser

@DJHENRY #webassembly

star

Sun Jan 05 2025 20:03:24 GMT+0000 (Coordinated Universal Time)

@Gautam

star

Sun Jan 05 2025 12:44:45 GMT+0000 (Coordinated Universal Time)

@wayneinvein

star

Sun Jan 05 2025 12:34:26 GMT+0000 (Coordinated Universal Time)

@wayneinvein

star

Sun Jan 05 2025 12:22:17 GMT+0000 (Coordinated Universal Time)

@wayneinvein

star

Sun Jan 05 2025 12:16:37 GMT+0000 (Coordinated Universal Time)

@wayneinvein

star

Sun Jan 05 2025 11:38:44 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Sun Jan 05 2025 11:25:40 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Sat Jan 04 2025 23:27:41 GMT+0000 (Coordinated Universal Time)

@Radhwen_hajri

star

Sat Jan 04 2025 23:27:18 GMT+0000 (Coordinated Universal Time)

@Radhwen_hajri

star

Sat Jan 04 2025 19:39:49 GMT+0000 (Coordinated Universal Time) https://store.lunarclient.com/

@MasteriX1337

star

Sat Jan 04 2025 14:25:04 GMT+0000 (Coordinated Universal Time) https://stackoverflow.com/questions/52578270/install-python-with-cmd-or-powershell

@baamn #powershell #python

star

Sat Jan 04 2025 14:19:45 GMT+0000 (Coordinated Universal Time) https://ai.google.dev/gemini-api/docs/quickstart?lang=python

@baamn #python #google #api

star

Sat Jan 04 2025 07:22:02 GMT+0000 (Coordinated Universal Time) https://globehire.hypertechglobaltechnologies.com/

@Nikhil4081

star

Sat Jan 04 2025 05:32:57 GMT+0000 (Coordinated Universal Time)

@KKOMAL

star

Sat Jan 04 2025 03:39:32 GMT+0000 (Coordinated Universal Time)

@mamba

star

Fri Jan 03 2025 22:31:41 GMT+0000 (Coordinated Universal Time)

@kanatov

star

Fri Jan 03 2025 20:49:05 GMT+0000 (Coordinated Universal Time)

@rstringa

star

Fri Jan 03 2025 18:59:47 GMT+0000 (Coordinated Universal Time)

@khadizasultana #loop #c++ #vector #pointers #binarysearch

star

Fri Jan 03 2025 10:56:21 GMT+0000 (Coordinated Universal Time)

@khadizasultana #loop #c++ #vector #pointers

star

Fri Jan 03 2025 10:05:07 GMT+0000 (Coordinated Universal Time) https://nicolaipalmkvist.com/gsap-blueprint-code/

@arnab #javascript

star

Thu Jan 02 2025 16:09:15 GMT+0000 (Coordinated Universal Time)

@MinaTimo

star

Thu Jan 02 2025 12:37:29 GMT+0000 (Coordinated Universal Time) https://appticz.com/social-media-app-development

@davidscott

star

Thu Jan 02 2025 12:25:21 GMT+0000 (Coordinated Universal Time)

@MinaTimo

star

Thu Jan 02 2025 11:20:45 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com

@Flynnrider ##pancakeswap ##decentralized ##exchange ##justswapclonescript

star

Thu Jan 02 2025 09:29:06 GMT+0000 (Coordinated Universal Time) https://firebase.google.com/docs/genkit

@Liselot3

star

Thu Jan 02 2025 08:36:47 GMT+0000 (Coordinated Universal Time) https://www.mothersruin.com/software/SuspiciousPackage/use.html#check-signature

@Liselot3

star

Thu Jan 02 2025 01:49:22 GMT+0000 (Coordinated Universal Time)

@wayneinvein

star

Thu Jan 02 2025 01:42:16 GMT+0000 (Coordinated Universal Time)

@wayneinvein

star

Thu Jan 02 2025 01:20:35 GMT+0000 (Coordinated Universal Time)

@wayneinvein

star

Thu Jan 02 2025 01:18:49 GMT+0000 (Coordinated Universal Time)

@wayneinvein

star

Wed Jan 01 2025 09:27:33 GMT+0000 (Coordinated Universal Time) https://www.programiz.com/c-programming/online-compiler/

@Narendra

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension