Snippets Collections
function task1() {
    return new Promise((resolve) => {
      setTimeout(() => {
        console.log("Task 1 done");
        resolve();
      }, 1000);
    });
  }
  
  function task2() {
    return new Promise((resolve) => {
      setTimeout(() => {
        console.log("Task 2 done");
        resolve();
      }, 1000);
    });
  }
  
  task1()
    .then(() => task2())
    .then(() => {
      console.log("All tasks completed");
    });
  
function task1() {
    return new Promise((resolve) => {
      setTimeout(() => {
        console.log("Task 1 done");
        resolve();
      }, 1000);
    });
  }
  
  function task2() {
    return new Promise((resolve) => {
      setTimeout(() => {
        console.log("Task 2 done");
        resolve();
      }, 1000);
    });
  }
  
  task1()
    .then(() => task2())
    .then(() => {
      console.log("All tasks completed");
    });
  
<!DOCTYPE html>
<html>
<head>
  <title>XHR Test</title>
</head>
<body>
  <script>
    var xhr = new XMLHttpRequest();
    xhr.open('GET', 'https://jsonplaceholder.typicode.com/posts/1', true);
    xhr.onload = function () {
      if (xhr.status === 200) {
        var data = JSON.parse(xhr.responseText);
        console.log("Response Data:", data); // This should show the post object
        // Optional: shows a popup so you know it worked
        
      } else {
        console.error("Error: " + xhr.status);
      }
    };
    xhr.onerror = function () {
      console.error("Network error");
    };
    xhr.send();
  </script>
</body>
</html>
function mul(num,callback){
    callback(num*2);
}

function sub(num,callback){
   callback(num-3);
}

function add(num,callback){
   callback(num+10);
}

mul(2,(res)=>{
   sub(res,(sres)=>{
       add(sres,(ares)=>{
      console.log(ares) })
   })
})
// Higher-order function: takes a function as an argument
function greet(name, greetingFunction) {
    console.log(greetingFunction(name));
  }
  
  // Function passed as an argument
  function sayHello(name) {
    return `Hello, ${name}!`;
  }
  
  // Calling the higher-order function with a function as an argument
  greet('Alice', sayHello);  // Output: Hello, Alice!

  
  // Higher-order function that returns a function
function multiplier(factor) {
    return function(number) {
      return number * factor;
    };
  }
  
  // Using the higher-order function to create a new function
  const double = multiplier(2);  // A function that doubles the input
  const triple = multiplier(3);  // A function that triples the input
  
  console.log(double(5));  // Output: 10
  console.log(triple(5));  // Output: 15
  
  const numbers1 = [1, 2, 3, 4];

// map() takes a function and applies it to each element in the array
const doubled = numbers1.map(number => number * 2);

console.log(doubled);  // Output: [2, 4, 6, 8]

const numbers = [1, 2, 3, 4, 5];

// filter() takes a function and returns an array of elements that pass the condition
const evenNumbers = numbers.filter(number => number % 2 === 0);

console.log(evenNumbers);  // Output: [2, 4]
// Create a symbol
const uniqueSymbol = Symbol('unique');

// Using a symbol as a key for an object
const obj = {
  [uniqueSymbol]: 'This is a unique value'
};

console.log(obj[uniqueSymbol]);  // Output: This is a unique value

// Symbols are guaranteed to be unique
const anotherSymbol = Symbol('unique');
console.log(uniqueSymbol === anotherSymbol);  // Output: false
// Generator function
function* countUpTo(max) {
    let count = 1;
    while (count <= max) {
      yield count;  // Pause and return the current count
      count++;
    }
  }
  
  // Using the generator
  const counter = countUpTo(3);
  console.log(counter.next().value);  // Output: 1
  console.log(counter.next().value);  // Output: 2
  console.log(counter.next().value);  // Output: 3
  console.log(counter.next().value);  // Output: undefined (no more values)
  
// Importing specific functions from math.js
import { add, subtract, PI } from './math.js';

console.log(add(2, 3));       // Output: 5
console.log(subtract(5, 3));  // Output: 2
console.log(PI);              // Output: 3.14159
const colors = ["red", "green", "blue"];
const [first, second] = colors;

console.log(first);  // Output: red
console.log(second); // Output: green


const person = { name: "Alice", age: 25 };
const { name, age } = person;

console.log(name); // Output: Alice
console.log(age);  // Output: 25

 
// Register Custom Post Type
function custom_ourproducts_post_type() {
    $labels = array(
        'name'                  => _x( 'Our Products', 'Post Type General Name', 'text_domain' ),
        'singular_name'         => _x( 'Our Product', 'Post Type Singular Name', 'text_domain' ),
        'menu_name'             => __( 'Our Products', 'text_domain' ),
        'name_admin_bar'        => __( 'Our Product', 'text_domain' ),
        'archives'              => __( 'Our Product Archives', 'text_domain' ),
        'attributes'            => __( 'Our Product Attributes', 'text_domain' ),
        'parent_item_colon'     => __( 'Parent Product:', 'text_domain' ),
        'all_items'             => __( 'All Products', 'text_domain' ),
        'add_new_item'          => __( 'Add New Product', 'text_domain' ),
        'add_new'               => __( 'Add New', 'text_domain' ),
        'new_item'              => __( 'New Product', 'text_domain' ),
        'edit_item'             => __( 'Edit Product', 'text_domain' ),
        'update_item'           => __( 'Update Product', 'text_domain' ),
        'view_item'             => __( 'View Product', 'text_domain' ),
        'view_items'            => __( 'View Products', 'text_domain' ),
        'search_items'          => __( 'Search Product', 'text_domain' ),
        'not_found'             => __( 'Not found', 'text_domain' ),
        'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ),
        'featured_image'        => __( 'Featured Image', 'text_domain' ),
        'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
        'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
        'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
        'insert_into_item'      => __( 'Insert into product', 'text_domain' ),
        'uploaded_to_this_item' => __( 'Uploaded to this product', 'text_domain' ),
        'items_list'            => __( 'Products list', 'text_domain' ),
        'items_list_navigation' => __( 'Products list navigation', 'text_domain' ),
        'filter_items_list'     => __( 'Filter products list', 'text_domain' ),
    );
    $args = array(
        'label'                 => __( 'Our Product', 'text_domain' ),
        'description'           => __( 'Custom post type for our products', 'text_domain' ),
        'labels'                => $labels,
        'supports'              => array( 'title', 'editor', 'thumbnail' ),
        'taxonomies'            => array( 'product_category' ),
        'hierarchical'          => false,
        'public'                => true,
        'show_ui'               => true,
        'show_in_menu'          => true,
        'menu_position'         => 15,
        'menu_icon'             => 'dashicons-cart',
        'show_in_admin_bar'     => true,
        'show_in_nav_menus'     => true,
        'can_export'            => true,
        'has_archive'           => true,
        'exclude_from_search'   => false,
        'publicly_queryable'    => true,
        'capability_type'       => 'post',
        'rewrite' => array(
            'slug' => '%product_category%',
            'with_front' => false
        ),
    );
    register_post_type( 'ourproducts', $args );
}
add_action( 'init', 'custom_ourproducts_post_type', 0 );

// Register Custom Taxonomy
function custom_product_taxonomy() {
    $labels = array(
        'name'                       => _x( 'Product Categories', 'Taxonomy General Name', 'text_domain' ),
        'singular_name'              => _x( 'Product Category', 'Taxonomy Singular Name', 'text_domain' ),
        'menu_name'                  => __( 'Product Categories', 'text_domain' ),
        'all_items'                  => __( 'All Categories', 'text_domain' ),
        'parent_item'                => __( 'Parent Category', 'text_domain' ),
        'parent_item_colon'          => __( 'Parent Category:', 'text_domain' ),
        'new_item_name'              => __( 'New Category Name', 'text_domain' ),
        'add_new_item'               => __( 'Add New Category', 'text_domain' ),
        'edit_item'                  => __( 'Edit Category', 'text_domain' ),
        'update_item'                => __( 'Update Category', 'text_domain' ),
        'view_item'                  => __( 'View Category', 'text_domain' ),
        'separate_items_with_commas' => __( 'Separate categories with commas', 'text_domain' ),
        'add_or_remove_items'        => __( 'Add or remove categories', 'text_domain' ),
        'choose_from_most_used'      => __( 'Choose from the most used', 'text_domain' ),
        'popular_items'              => __( 'Popular Categories', 'text_domain' ),
        'search_items'               => __( 'Search Categories', 'text_domain' ),
        'not_found'                  => __( 'Not Found', 'text_domain' ),
        'no_terms'                   => __( 'No categories', 'text_domain' ),
        'items_list'                 => __( 'Categories list', 'text_domain' ),
        'items_list_navigation'      => __( 'Categories list navigation', 'text_domain' ),
    );
    $args = array(
        'labels' => $labels,
        'hierarchical' => true,
        'public' => true,
        'show_ui' => true,
        'show_admin_column' => true,
        'show_in_nav_menus' => true,
        'show_tagcloud' => true,
        'rewrite' => array(
            'slug' => 'category',
            'with_front' => false,
            'hierarchical' => true
        )
    );
    register_taxonomy( 'product_category', array( 'ourproducts' ), $args );
}
add_action( 'init', 'custom_product_taxonomy', 0 );

// Filter the permalink to include taxonomy slug
function filter_ourproducts_permalink($post_link, $post) {
    if ( $post->post_type === 'ourproducts' ) {
        $terms = wp_get_post_terms($post->ID, 'product_category');
        if ( ! empty($terms) && ! is_wp_error($terms) ) {
            return str_replace('%product_category%', $terms[0]->slug, $post_link);
        } else {
            return str_replace('%product_category%', 'uncategorized', $post_link);
        }
    }
    return $post_link;
}
add_filter( 'post_type_link', 'filter_ourproducts_permalink', 10, 2 );
//Insights Insallation
bench get-app insights --branch version-3
bench --site site1.local install-app insights


//Print Designer Installation
bench get-app print_designer
bench --site site1.local install-app print_designer

//Studio Installation
bench get-app studio
bench --site site1.local install-app studio

//OR//
//Studio
bench get-app studio
bench new-site studio.localhost --install-app studio
bench browse studio.localhost --user Administrator

//Webshop Installation
bench get-app webshop
bench --site site1.local install-app webshop

//Builder Installation
bench get-app builder
bench --site site1.local install-app builder

//HRM Installation
bench get-app hrms --branch version-15
bench --site site1.local install-app hrms


//Install Payment Module//
bench get-app payments
bench --site site1.local install-app payments


//Chat Installation
bench get-app chat
bench --site site1.local install-app chat
SELECT 
  u.id AS student_id,
  u.firstname AS student_firstname,
  u.lastname AS student_lastname,
  u.phone AS student_phone,
  up.country AS student_country,

  parent_user.id AS parent_id,
  parent_user.firstname AS parent_firstname,
  parent_user.lastname AS parent_lastname,
  parent_user.phone AS parent_phone,
  parent_profile.country AS parent_country,

  p.status AS relationship_status,
  u.created_at AS student_signup_unix
FROM user u
LEFT JOIN user_profile up ON u.id = up.user_id
LEFT JOIN parents p ON p.student_id = u.id
LEFT JOIN user parent_user ON parent_user.id = p.parent_id
LEFT JOIN user_profile parent_profile ON parent_profile.user_id = p.parent_id
WHERE u.type = 'student'
  AND u.created_at BETWEEN 1740783600 AND 1743375600
  AND (
    (
      NOT (
        u.phone LIKE '234%' OR 
        u.phone LIKE '080%' OR 
        u.phone LIKE '081%' OR 
        u.phone LIKE '070%' OR 
        u.phone LIKE '090%' OR 
        u.phone LIKE '091%'
      )
      OR
      NOT (
        parent_user.phone LIKE '234%' OR 
        parent_user.phone LIKE '080%' OR 
        parent_user.phone LIKE '081%' OR 
        parent_user.phone LIKE '070%' OR 
        parent_user.phone LIKE '090%' OR 
        parent_user.phone LIKE '091%'
      )
    )
    AND (
      LOWER(up.country) NOT IN ('nigeria') OR up.country IS NULL
    )
    AND (
      LOWER(parent_profile.country) NOT IN ('nigeria') OR parent_profile.country IS NULL
    )
  );
SELECT COUNT(DISTINCT u.id) AS student_signups
FROM user u
LEFT JOIN user_profile up ON u.id = up.user_id
LEFT JOIN parents p ON p.student_id = u.id
LEFT JOIN user parent_user ON parent_user.id = p.parent_id
LEFT JOIN user_profile parent_profile ON parent_profile.user_id = p.parent_id
WHERE u.type = 'student'
  AND u.created_at BETWEEN 1740783600 AND 1743375600
  AND (
    -- student phone is not Nigerian
    NOT (
      u.phone LIKE '234%' OR 
      u.phone LIKE '080%' OR 
      u.phone LIKE '081%' OR 
      u.phone LIKE '070%' OR 
      u.phone LIKE '090%' OR 
      u.phone LIKE '091%'
    )
    OR
    -- parent phone is not Nigerian
    NOT (
      parent_user.phone LIKE '234%' OR 
      parent_user.phone LIKE '080%' OR 
      parent_user.phone LIKE '081%' OR 
      parent_user.phone LIKE '070%' OR 
      parent_user.phone LIKE '090%' OR 
      parent_user.phone LIKE '091%'
    )
  );
SELECT DISTINCT
  u.id AS student_id,
  u.firstname AS student_firstname,
  u.lastname AS student_lastname,
  u.phone AS student_phone,
  up.country AS student_country,
  parent_user.id AS parent_id,
  parent_user.firstname AS parent_firstname,
  parent_user.lastname AS parent_lastname,
  parent_user.phone AS parent_phone,
  parent_profile.country AS parent_country,
  p.status AS relationship_status,
  u.created_at AS student_signup_unix
FROM user u
LEFT JOIN user_profile up ON u.id = up.user_id
LEFT JOIN parents p ON p.student_id = u.id
LEFT JOIN user parent_user ON parent_user.id = p.parent_id
LEFT JOIN user_profile parent_profile ON parent_profile.user_id = p.parent_id
WHERE u.type = 'student'
  AND u.created_at BETWEEN 1740783600 AND 1743375600
  AND (
    COALESCE(up.country, '') IN ('united-kingdom', 'United Kingdom') OR 
    COALESCE(parent_profile.country, '') IN ('united-kingdom', 'United Kingdom') OR
    u.phone LIKE '44%' OR
    parent_user.phone LIKE '44%'
  );
SELECT COUNT(DISTINCT u.id) AS student_signups
FROM user u
LEFT JOIN user_profile up ON u.id = up.user_id
LEFT JOIN parents p ON p.student_id = u.id
LEFT JOIN user parent_user ON parent_user.id = p.parent_id
LEFT JOIN user_profile parent_profile ON parent_profile.user_id = p.parent_id
WHERE u.type = 'student'
  AND u.created_at BETWEEN 1740783600 AND 1743375600
  AND (
    COALESCE(up.country, '') IN ('united-kingdom', 'United Kingdom') OR 
    COALESCE(parent_profile.country, '') IN ('united-kingdom', 'United Kingdom') OR
    u.phone LIKE '44%' OR
    parent_user.phone LIKE '44%'
  );
SELECT COUNT(DISTINCT u.id) AS student_signups
FROM user u
LEFT JOIN user_profile up ON u.id = up.user_id
LEFT JOIN parents p ON p.student_id = u.id
LEFT JOIN user_profile parent_profile ON parent_profile.user_id = p.parent_id
WHERE u.type = 'student'
  AND u.created_at BETWEEN 1740783600 AND 1743375600
  AND (
        COALESCE(up.country, '') IN ('united-kingdom', 'United Kingdom') OR 
        COALESCE(parent_profile.country, '') IN ('united-kingdom', 'United Kingdom')
      );
0000000000000000000000000cbb3d0cdca75fd140c2dfacaf0658b08658b109000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000107b2273756363657373223a747275657d00000000000000000000000000000000
60a060405234801561000f575f80fd5b5060405161063538038061063583398101604081905261002e91610062565b6001600160a01b0382166080525f61004682826101c9565b505050610284565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215610073575f80fd5b82516001600160a01b0381168114610089575f80fd5b602084810151919350906001600160401b03808211156100a7575f80fd5b818601915086601f8301126100ba575f80fd5b8151818111156100cc576100cc61004e565b604051601f8201601f19908116603f011681019083821181831017156100f4576100f461004e565b81604052828152898684870101111561010b575f80fd5b5f93505b8284101561012c578484018601518185018701529285019261010f565b5f8684830101528096505050505050509250929050565b600181811c9082168061015757607f821691505b60208210810361017557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101c4575f81815260208120601f850160051c810160208610156101a15750805b601f850160051c820191505b818110156101c0578281556001016101ad565b5050505b505050565b81516001600160401b038111156101e2576101e261004e565b6101f6816101f08454610143565b8461017b565b602080601f831160018114610229575f84156102125750858301515b5f19600386901b1c1916600185901b1785556101c0565b5f85815260208120601f198616915b8281101561025757888601518255948401946001909101908401610238565b508582101561027457878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b6080516103946102a15f395f8181605d015260c801526103945ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c8063097b73531461004e5780637dc0d1d0146100585780639bfca6e01461004e578063a4877ddd1461009c575b5f80fd5b6100566100b1565b005b61007f7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100a4610182565b604051610093919061020d565b6040516352367d1560e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906352367d15906100fd905f90600401610290565b602060405180830381865afa158015610118573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061013c9190610338565b6101805760405162461bcd60e51b8152602060048201526011602482015270109858dada5b99c81b9bdd081d985b1a59607a1b604482015260640160405180910390fd5b565b5f805461018e90610258565b80601f01602080910402602001604051908101604052809291908181526020018280546101ba90610258565b80156102055780601f106101dc57610100808354040283529160200191610205565b820191905f5260205f20905b8154815290600101906020018083116101e857829003601f168201915b505050505081565b5f6020808352835180828501525f5b818110156102385785810183015185820160400152820161021c565b505f604082860101526040601f19601f8301168501019250505092915050565b600181811c9082168061026c57607f821691505b60208210810361028a57634e487b7160e01b5f52602260045260245ffd5b50919050565b5f60208083525f845481600182811c9150808316806102b057607f831692505b85831081036102cd57634e487b7160e01b85526022600452602485fd5b8786018381526020018180156102ea576001811461030057610329565b60ff198616825284151560051b82019650610329565b5f8b8152602090205f5b868110156103235781548482015290850190890161030a565b83019750505b50949998505050505050505050565b5f60208284031215610348575f80fd5b81518015158114610357575f80fd5b939250505056fea2646970667358221220aaf7197534a4c7abde5506281b0cfe4811c18140bc1da396e1566d1bb8e4528c64736f6c63430008140033
[{"inputs":[{"internalType":"address","name":"_oracle","type":"address"},{"internalType":"bytes","name":"_json","type":"bytes"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"beforeAddLiquidity","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"beforeRemoveLiquidity","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"oracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rawJson","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"}]
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.0/gsap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.0/ScrollTrigger.min.js"></script>

<script>
const slides = document.querySelectorAll('.slide');
let isMobile = window.innerWidth <= 768; // Assuming mobile width is 768px or less

slides.forEach((slide, i) => {
    let angle = isMobile ? i * 10 : (i * 10) - 10;
    gsap.to(slide, {
        rotation: angle,
        transformOrigin: "0% 2300px",
    });
});

let speed = isMobile ? 30 : 30; // Faster speed on mobile
ScrollTrigger.create({
    trigger: '.scroller',
    start: "top top",
    end: "bottom bottom",
    //markers: true,
    onUpdate: (self) => {
        gsap.to(slides, {
            rotation: (i) => {
                let baseAngle = isMobile ? i * 10 : (i * 10) - 10;
                return baseAngle - self.progress * speed;
            }
        });
    }
});
</script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

<script>

var $ = jQuery

$(document).ready(function(){

$('.reboot-slider').each(function(){

var $this = $(this),
    currentSlide = 0,
    previousSlide = 0,
    slideNumber = $this.find('.reboot-side-slider .swiper-slide:not(.swiper-slide-duplicate)').length,
    barHTML = '',
    forward,
    textContainer = $this.find('.reboot-changing-widget')

for(var i=0; i<slideNumber;i++){

    barHTML += `<span class="dot"><span class="dot-number">${i+1}</span></span>`
}

$this.find('.reboot-bar .dot').remove()
$this.find('.reboot-bar').append(barHTML)
$this.find('.reboot-bar .dot').eq(0).addClass('active')

textContainer.each(function(){
    var texts = $(this).find('.elementor-widget').eq(0)
    texts.addClass('currentUp')
    $(this).css('--h', texts.height()+'px')
})

setTimeout(function(){
    $this.addClass('loaded')
    if($this.find('.reboot-side-slider .swiper-container-initialized, .reboot-side-slider .swiper-initialized').length){
        $this.find('.reboot-side-slider').addClass('loaded')
    }

    var init = setInterval(function(){
        if($this.find('.reboot-side-slider .swiper-container-initialized, .reboot-side-slider .swiper-initialized').length){

            $this.find('.reboot-side-slider').addClass('loaded')
            clearInterval(init)
        }
    },50)
}, 500)

var bgs = JSON.parse($this.attr('data-settings')).background_slideshow_gallery,
    bgHTML = '<div class="reboot-slider-background">'

if(bgs){
    bgs.forEach(function(background){
        bgHTML += `<img decoding="async" src="${background.url}"/>`
    })
}
bgHTML += '</div>'

$this.find('.reboot-slider-background').remove()
$this.prepend(bgHTML)

var backgrounds = $this.find('.reboot-slider-background img')

backgrounds.eq(0).addClass('currentForward')

setInterval(function(){
    currentSlide = $this.find('.reboot-side-slider .swiper-slide-active').attr('data-swiper-slide-index')
    if(previousSlide != currentSlide) {

        if( previousSlide < currentSlide ){
            forward = true
        }
        if( previousSlide > currentSlide ){
            forward = false
        }
        if( previousSlide == slideNumber - 1 && currentSlide == 0 ){
            forward = true
        }
        if( previousSlide == 0 && currentSlide == slideNumber - 1 ){
            forward = false
        }
        textContainer.each(function(){
            var texts = $(this).find('.elementor-widget')

            $(this).css('--h', texts.eq(currentSlide).height()+'px')

            texts.removeClass('prev next currentUp currentDown')
            backgrounds.removeClass('prev currentBackward currentForward')

            backgrounds.eq(previousSlide).addClass('prev')

            if(forward) {
                texts.eq(previousSlide).addClass('prev')
                texts.eq(currentSlide).addClass('currentUp')

                backgrounds.eq(currentSlide).addClass('currentForward')

            }else{
                texts.eq(previousSlide).addClass('next')
                texts.eq(currentSlide).addClass('currentDown')

                backgrounds.eq(currentSlide).addClass('currentBackward')
            }
        })

        $this.find('.reboot-bar .dot').removeClass('active')
        $this.find('.reboot-bar .dot').eq(currentSlide).addClass('active')
    }
    previousSlide = currentSlide
}, 500)

$this.find('.reboot-bar .dot').on('click', function(){

    var index = $(this).index()

    $this.find('.reboot-side-slider .swiper-pagination-bullet').eq(index).trigger('click')
    $this.find('.reboot-side-slider .swiper-container').trigger('mouseleave')

})
$this.find('.reboot-slider-left').on('click', function(){

    $this.find('.reboot-side-slider .elementor-swiper-button-prev').trigger('click')
    $this.find('.reboot-side-slider .elementor-swiper').trigger('mouseleave')
})
$this.find('.reboot-slider-right').on('click', function(){

    $this.find('.reboot-side-slider .elementor-swiper-button-next').trigger('click')
    $this.find('.reboot-side-slider .elementor-swiper').trigger('mouseleave')
})
$this.find('.reboot-slider-left a, .reboot-slider-right a').on('click', function(e){

    e.preventDefault()
})

})
})

$(window).on('resize', function(){


$('.reboot-slider').each(function(){

    var textContainer = $(this).find('.reboot-changing-widget')

    textContainer.each(function(){
        var texts = $(this).find('.elementor-widget.currentUp, .elementor-widget.currentDown')

        $(this).css('--h', texts.height()+'px')
    })
})
})

</script>
selector{
    --radius: 8px;
    --height: 320px;
    --active-height: 410px;
    --overlay: 0.75;
}
selector{
    opacity: 0;
    transform: translateX(100px);
    transition: all 0.8s ease-in-out;
}
selector.loaded{
    opacity: 1;
    transform: translateX(0);
}

selector .swiper-wrapper{
    height: var(--active-height);
    align-items: center;
}
selector:not(.loaded) .swiper-wrapper{
    transition-duration: 0s !important;
}
selector .swiper-slide{
    display: flex;
    align-items: flex-end;
    border-radius: var(--radius);
    height: var(--height);
    box-shadow: 0 0 50px rgba(0,0,0,0.15);
}
selector.loaded .swiper-slide{
    transition: all 0.3s ease-in-out 0.2s;
}
selector .swiper-slide.swiper-slide-active{
    height: var(--active-height);
}
selector .swiper-slide:before{
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background: rgb(0,0,0);
    background: linear-gradient(20deg, rgba(0,0,0,var(--overlay)) 0%, rgba(0,0,0,0) 100%);
    height: 100%;
    width: 100%;
    z-index: 1;
}
selector .elementor-testimonial__footer{
    display: block;
}
selector img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-radius: var(--radius);
}
selector .elementor-testimonial__cite{
    z-index: 2;
    position: relative;
}
selector .elementor-testimonial__name{
    margin-bottom: 5px;
}
selector .swiper-pagination,
selector .elementor-swiper-button{
    display: none;
}
selector .swiper-container{
    overflow: hidden;
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 1024px){
selector{
    --height: 180px;
    --active-height: 250px;
}
}
@media (max-width: 767px){
selector{
    --height: 80px;
    --active-height: 105px;
    width: 100% !important;
    max-width: var(--container-widget-width, 300px) !important;
}
selector .elementor-testimonial__cite{
    opacity: 0;
}
}
selector{
    --speed: 0.5s;
    --gap: 40px;
}
selector{
    transition: all 0.3s ease-in-out;
    height: var(--h);
    --height: calc(var(--h) + var(--gap));
    overflow: hidden !important;
}
selector .elementor-widget{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
selector .elementor-widget .elementor-button{
    transform: translateY(calc(-10 * var(--height)));
    transition: none !important;
}
selector .elementor-widget.prev .elementor-button{
    animation: prev var(--speed) ease-in-out;
    transform: translateY(calc(-1 * var(--height)));
}
selector .elementor-widget.next .elementor-button{
    animation: next var(--speed) ease-in-out;
    transform: translateY(var(--height));
}
selector .elementor-widget.currentUp,
selector .elementor-widget.currentDown{
    z-index: 1;
}
selector .elementor-widget.currentUp .elementor-button{
    animation: currentUp var(--speed) ease-in-out;
    transform: translateY(0);
}
selector .elementor-widget.currentDown .elementor-button{
    animation: currentDown var(--speed) ease-in-out;
    transform: translateY(0);
}

@keyframes prev {
  0%   {transform: translateY(0);}
  100%   {transform: translateY(calc(-1 * var(--height)));}
}

@keyframes next {
  0%   {transform: translateY(0);}
  100%   {transform: translateY(var(--height));}
}

@keyframes currentUp {
  0%   {transform: translateY(var(--height));}
  100%   {transform: translateY(0);}
}

@keyframes currentDown {
  0%   {transform: translateY(calc(-1 * var(--height)));}
  100%   {transform: translateY(0);}
}
selector{
    --speed: 0.5s;
    --gap: 40px;
}
selector{
    transition: all 0.3s ease-in-out;
    height: var(--h);
    --height: calc(var(--h) + var(--gap));
    overflow: hidden !important;
}
selector .elementor-widget{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
selector .elementor-widget p{
    transform: translateY(calc(-10 * var(--height)));
    transition: none !important;
}
selector .elementor-widget.prev p{
    animation: prev var(--speed) ease-in-out;
    transform: translateY(calc(-1 * var(--height)));
}
selector .elementor-widget.next p{
    animation: next var(--speed) ease-in-out;
    transform: translateY(var(--height));
}
selector .elementor-widget.currentUp,
selector .elementor-widget.currentDown{
    z-index: 1;
}
selector .elementor-widget.currentUp p{
    animation: currentUp var(--speed) ease-in-out;
    transform: translateY(0);
}
selector .elementor-widget.currentDown p{
    animation: currentDown var(--speed) ease-in-out;
    transform: translateY(0);
}

@keyframes prev {
  0%   {transform: translateY(0);}
  100%   {transform: translateY(calc(-1 * var(--height)));}
}

@keyframes next {
  0%   {transform: translateY(0);}
  100%   {transform: translateY(var(--height));}
}

@keyframes currentUp {
  0%   {transform: translateY(var(--height));}
  100%   {transform: translateY(0);}
}

@keyframes currentDown {
  0%   {transform: translateY(calc(-1 * var(--height)));}
  100%   {transform: translateY(0);}
}
selector{
    --speed: 0.8s;
    --gap: 40px;
}
selector{
    transition: all 0.3s ease-in-out;
    height: var(--h);
    --height: calc(var(--h) + var(--gap));
    overflow: hidden !important;
}
selector .elementor-widget{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
selector .elementor-widget .elementor-heading-title{
    transform: translateY(calc(-10 * var(--height)));
    transition: none !important;
}
selector .elementor-widget.prev .elementor-heading-title{
    animation: prev var(--speed) ease-in-out;
    transform: translateY(calc(-1 * var(--height)));
}
selector .elementor-widget.next .elementor-heading-title{
    animation: next var(--speed) ease-in-out;
    transform: translateY(var(--height));
}
selector .elementor-widget.currentUp,
selector .elementor-widget.currentDown{
    z-index: 1;
}
selector .elementor-widget.currentUp .elementor-heading-title{
    animation: currentUp var(--speed) ease-in-out;
    transform: translateY(0);
}
selector .elementor-widget.currentDown .elementor-heading-title{
    animation: currentDown var(--speed) ease-in-out;
    transform: translateY(0);
}

@keyframes prev {
  0%   {transform: translateY(0);}
  100%   {transform: translateY(calc(-1 * var(--height)));}
}

@keyframes next {
  0%   {transform: translateY(0);}
  100%   {transform: translateY(var(--height));}
}

@keyframes currentUp {
  0%   {transform: translateY(var(--height));}
  100%   {transform: translateY(0);}
}

@keyframes currentDown {
  0%   {transform: translateY(calc(-1 * var(--height)));}
  100%   {transform: translateY(0);}
}
@media (max-width: 1750px) and (min-width: 1381px){
selector{
    padding-left: 8%;
    padding-right: 12%;
}
}
@media (max-width: 1380px) and (min-width: 768px){
selector{
    padding-left: 0.5%;
    padding-right: 5.5%;
}
}
selector{
    --dot-size: 23px;
    --line-color: #B0B7D04D;
    --dot-color: #B0B7D0;
    --dot-color-active: #B0B7D0;
    color: #fff;
    font-size: 13px;
    font-weight: bold;
}
selector{
    height: 80vh;
    height: var(--min-height);
    max-height: 80vh;
    min-height: 0 !important;
}
selector .dot{
    height: var(--dot-size);
    width: var(--dot-size);
    background: var(--dot-color);
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    transform: scale(0.3);
    transition: all 0.3s ease-in-out;
    cursor: pointer;
}
selector .dot-number{
    opacity: 0;
    transition: all 0.3s ease-in-out;
}
selector .dot.active{
    transform: scale(1);
    background: var(--dot-color-active);
}
selector .dot.active .dot-number{
    opacity: 1;
}
selector:before{
    content: "";
    position: absolute;
    top: 50%;
    height: calc(100% - 20px);
    max-height: 90vh;
    width: 1px;
    background: var(--line-color);
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
}

@media (max-width: 767px){
selector{
    transform: translateX(-50%);
    flex-wrap: nowrap !important;
}
selector:before {
    width: calc(100% - 20px);
    height: 1px;

}
}
selector{
    background: #fff;
    --background-speed: 0.5s;
}
selector .elementor-background-slideshow{
    display: none;
}
selector .reboot-slider-background,
selector .reboot-slider-background img{
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transition: all 1s ease-in-out;
}
selector .reboot-slider-background img{
    object-fit: cover;
    opacity: 0;
    transform: scale(1.1);
}
selector .reboot-slider-background img.prev,
selector .reboot-slider-background img.currentBackward,
selector .reboot-slider-background img.currentForward{
    opacity: 1;
    transform: scale(1.1);
}

selector .reboot-slider-background img.currentBackward,
selector .reboot-slider-background img.currentForward{
    z-index: 1;
    opacity: 1;
    animation: bgNext var(--background-speed) linear;
    transition: all 1s ease-in-out;
    transform: scale(1);
}

selector:before{
    z-index: 2;
}
selector > .elementor-element{
    z-index: 3;
}

selector .reboot-bar,
selector .reboot-slider-left,
selector .reboot-slider-right{
    opacity: 0;
    transition: all 0.8s ease-in-out;
}
selector.loaded .reboot-bar,
selector.loaded .reboot-slider-left,
selector.loaded .reboot-slider-right{
    opacity: 1;
}
/*selector .ds-slider-left a:focus,*/
/*selector .ds-slider-right a:focus{*/
/*    outline: none !important;*/
/*}*/

@keyframes bgNext {
  0%   {opacity: 0; transform: scale(1.1);}
  100%   {opacity: 1; transform: scale(1);}
}

@media (min-width: 768px){
selector .reboot-bar,
selector .reboot-slider-left,
selector .reboot-slider-right{
    position: relative;
}
}

@media (max-width: 1380px) and (min-width: 768px){
selector{
    padding-left: 4%;
    padding-right: 4%;
}
}

@media (max-width: 767px){
selector .reboot-slider-left{
    left: calc(50% - 300px/2) !important;
}
selector .reboot-slider-right{
    right: calc(50% - 300px/2) !important;
}
}
reboot-slider

reboot-bar

reboot-changing-widget

reboot-changing-widget

reboot-changing-widget

reboot-side-slider

reboot-slider-left

reboot-slider-right
import mongoose, { Schema, Document, Model } from "mongoose";
import Joi, { ObjectSchema } from "joi";

interface IBook extends Document {
  id: number;
  title: string;
  author: string;
  year: number;
  genre: string;
}

const bookSchema: Schema<IBook> = new Schema({
  id: { type: Number, required: true, unique: true },
  title: { type: String, required: true },
  author: { type: String, required: true },
  year: { type: Number, required: true, min: 1800, max: 2025 },
  genre: { type: String, required: true, minlength: 2 },
});

const Books: Model<IBook> = mongoose.model<IBook>("MyBooks", bookSchema);

const bookDataValidator: ObjectSchema = Joi.object({
  id: Joi.number().min(1).required(),
  title: Joi.string().required(),
  author: Joi.string().required(),
  year: Joi.number().min(1800).max(2025).required(),
  genre: Joi.string().min(2).required(),
});

async function fetchBooks(): Promise<IBook[] | Error> {
  try {
    return await Books.find({});
  } catch (err) {
    return err as Error;
  }
}

const queryPageSchema: ObjectSchema = Joi.object({
  page: Joi.number().integer().min(1).required(),
});

//pagination fetching
async function fetchBooksByPage(page: {page:number}): Promise<{ status: number; data: IBook[] | string }> {
  try {
    const totalBooks = await Books.estimatedDocumentCount();
    console.log(page);
    if (totalBooks < (page.page - 1) * 2) {
      return { status: 404, data: "Sorry, no page found!" };
    } else if (totalBooks === 0) {
      return { status: 404, data: "Sorry, no book is there!" };
    }
    const booksData = await Books.find({}).skip((page.page - 1) * 2).limit(2);
    return { status: 200, data: booksData };
  } catch (err) {
    return { status: 500, data: (err as Error).message };
  }
}

async function addBook(title: string, author: string, year: number, genre: string): Promise<IBook | string | Error> {
  try {
    const lastDocument = await Books.find().sort({ id: -1 }).limit(1);
    const newBookId = lastDocument[0]?.id + 1 || 1;
    
    const { error, value } = bookDataValidator.validate({
      id: newBookId,
      title,
      author,
      year,
      genre,
    });
    
    if (error) return "Incorrect Data!";
    
    const newBook = new Books(value);
    return await newBook.save();
  } catch (err) {
    return err as Error;
  }
}

async function getBook(id: number): Promise<IBook | string | null | any> {
  try {
    const book = await Books.findOne({ id });
    return book || "No Books by this ID";
  } catch (err: any) {
    return err as Error;
  }
}

async function editBook(id: number, bodyValue: Partial<IBook>): Promise<IBook | string | null | any> {
  try {
    const updatedBook = await Books.findOneAndUpdate({ id }, { $set: bodyValue }, { new: true });
    return updatedBook || "No Books found to update";
  } catch (err: any) {
    return err as Error;
  }
}

async function deleteBook(id: number): Promise<IBook | null | Error> {
  try {
    return await Books.findOneAndDelete({ id });
  } catch (err) {
    return err as Error;
  }
}

const booksCurd = { fetchBooks, fetchBooksByPage, addBook, getBook, editBook, deleteBook, queryPageSchema }
export default booksCurd;
import mongoose from "mongoose";
import { Request, Response, NextFunction } from "express";

const connectDB = async (): Promise<void> => {
    try {
        await mongoose.connect("mongodb://localhost:27017/bookDB", {
            useNewUrlParser: true,
            useUnifiedTopology: true,
        } as mongoose.ConnectOptions);
        console.log("MongoDB connected!");
    } catch (err) {
        console.error("Error connecting to MongoDB:", err);
    }
};

const authenticationMiddleware = (req: Request, res: Response, next: NextFunction): void => {
    const authHeader = req.headers.authorization;
    if (authHeader) {
        const token = 'Bearer yesauth1234';
        if (token === authHeader) {
            next();
        } else {
            res.status(403).send("Invalid token");
        }
    } else {
        res.status(401).send("Authentication required");
    }
};

export { connectDB, authenticationMiddleware };
https://medium.com/the-andela-way/what-exactly-is-cors-and-how-to-handle-it-fc2e52e89a0

import express, { Request, Response, Application } from 'express';
import { connectDB, authenticationMiddleware } from '../mongoDB/bookLib_db';
import booksCurd from '../mongoDB/bookModel';

const app: Application = express();
const port: number = 6933;

app.use(express.json());
app.use(authenticationMiddleware);

// Connect to MongoDB
async function connectMongo(): Promise<void> {
    await connectDB();
}
connectMongo();

//Fetch all books or by page --- two books per page
app.get('/', async (req: Request, res: Response): Promise<any> => {
    try {
        if (req.query?.page) {
            const page = parseInt(req.query.page as string, 10);
            const { error, value } = booksCurd.queryPageSchema.validate({ page });
            
            if (error) {
                return res.status(400).json({ error: error.details.map(detail => detail.message) });
            }
            
            const booksDataResultPerPage = await booksCurd.fetchBooksByPage(value);
            return res.status(booksDataResultPerPage.status).json(booksDataResultPerPage.data);
        }
        
        const booksDataResult = await booksCurd.fetchBooks();
        return res.status(200).json(booksDataResult);
    } catch (error) {
        return res.status(500).json({ message: 'Internal Server Error', error });
    }
});

//Add a new book
app.post('/books', async (req: Request, res: Response): Promise<any> => {
    try {
        const { title, author, year, genre } = req.body;
        const savedBook = await booksCurd.addBook(title, author, year, genre);
        return res.status(201).json(savedBook);
    } catch (error) {
        return res.status(500).json({ message: 'Failed to add book', error });
    }
});

//Get a book by ID
app.get('/books/:id', async (req: any, res: Response): Promise<any> => {
    try {
        const findBook = await booksCurd.getBook(req.params.id);
        return res.json(findBook);
    } catch (error) {
        return res.status(500).json({ message: 'Failed to fetch book', error });
    }
});

//Update a book by ID
app.put('/books/:id', async (req: any, res: Response): Promise<any> => {
    try {
        const updatedBook = await booksCurd.editBook(req.params.id, req.body);
        return res.json(updatedBook);
    } catch (error) {
        return res.status(500).json({ message: 'Failed to update book', error });
    }
});

//Delete a book by ID
app.delete('/books/:id', async (req: any, res: Response): Promise<any> => {
    try {
        const deletedBook = await booksCurd.deleteBook(req.params.id);
        
        if (!deletedBook || Object.keys(deletedBook).length === 0) {
            return res.status(404).json({ message: 'No book found for deletion' });
        }
        
        return res.status(200).json(deletedBook);
    } catch (error) {
        return res.status(500).json({ message: 'Something went wrong, Internal Server Error!', error });
    }
});

app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});
const mongoose = require("mongoose");

mongoose.connect("mongodb://127.0.0.1:27017/feb");
const prodschema = new mongoose.Schema({ name: String, price: Number });

const mongooseSave = async () => {
	const prodmodel = mongoose.model("prodgooses", prodschema);
	let ent = new prodmodel({ name: "vinear wallet 1", price: 8000 });
	let result = await ent.save();
	console.log(result);
};
// mongooseSave();

const mongooseUpdate = async () => {
    const prodmodel = mongoose.model('prodgooses', prodschema);
    let ent = await prodmodel.updateOne({name: "vinear wallet"}, {$set:{price :9500}});
}
// mongooseUpdate();

const mongoosedel = async () => {
    const prodmodel = mongoose.model('prodgooses', prodschema);
    let ent = await prodmodel.deleteOne({name: 'vinear wallet 1'});
}
// mongoosedel();

const mongoosefind = async () => {
    const prodmodel = mongoose.model('prodgooses', prodschema);
    let ent = await prodmodel.find();
    console.log(ent);
}
mongoosefind();
import axios, { AxiosRequestConfig } from 'axios';
import Axios from 'axios';

import { setTokens } from 'screens/SignUp/reducer/signup.reducer';
import { persisterStore, store } from 'services/redux/store';

import { TypeStore } from './redux/store';
import { isTokenExpired } from './utils';
import { CONFIG } from 'constants/config';
// import { useLogout } from 'hooks/useLogout';
// import { NotificationBox } from 'components/notificationBox';

export const injectStore = (_store: TypeStore) => {
  let store: TypeStore;
  store = _store;
};

let isRefreshing = false;
let refreshSubscribers: any[] = [];

const processQueue = (error: null | string, token: string | null = null) => {
  refreshSubscribers.forEach((prom) => {
    if (error) {
      prom.reject(error);
    } else {
      prom.resolve(token);
    }
  });

  refreshSubscribers = [];
};
export interface ICapiumAuthPayload {
  email: string;
  password: string;
}
const capiumBaseURL = 'https://dev-identity.capium.co.uk/api/Auth/AuthenticateUser';
const googleUserInfoURL = 'https://www.googleapis.com/oauth2/v3/userinfo';
const refreshTokensURL = 'auth/refresh-tokens';

const fetchTokens = (refreshToken: string) => {
  return axios.post(
    `${CONFIG.apiUrl}${refreshTokensURL}`,
    {},
    {
      headers: {
        Authorization: `Bearer ${refreshToken}`,
      },
    }
  );
};

const instance = axios.create({
  baseURL: CONFIG.apiUrl,
  timeout: 60000,
});

const logOut = () => {
  // Clear user-related data from localStorage/sessionStorage
  localStorage.removeItem('authToken');
  localStorage.removeItem('refreshToken');
  persisterStore.purge(); // Purge persisted Redux store if needed

  // Optionally dispatch a Redux action to clear user state
  store.dispatch({ type: 'LOGOUT' });

  // Redirect to login page or any other route
  window.location.href = '/login';
};
export const setInterseptors = () => {
  instance.interceptors.request.use(async (config: AxiosRequestConfig<any>) => {
    const token = store.getState().user.token;
    const refreshToken = store.getState().user.refreshToken;

    if (!token) {
      return config;
    }
    if (config.headers!.Authorization) {
      return config;
    }

    if (isTokenExpired(token)) {
      if (isRefreshing) {
        return new Promise(function (resolve, reject) {
          refreshSubscribers.push({ resolve, reject });
          return config;
        })
          .then((token) => {
            config.headers &&
              (config.headers['Authorization'] = `Bearer ${token}`);
            return {
              ...config,
              headers: { Authorization: `Bearer ${token}` },
            };
          })
          .catch((error) => {
            return Promise.reject(error);
          });
      }
      isRefreshing = true;

      try {
        const { data } = await fetchTokens(refreshToken);
        store.dispatch(
          setTokens({
            accessToken: data.access_token,
            refreshToken: data.refresh_token,
          })
        );
        processQueue(null, data.access_token);
        isRefreshing = false;

        return {
          ...config,
          headers: { Authorization: `Bearer ${data.access_token}` },
        };
      } catch (err: any) {
        store.dispatch({ type: 'LOGOUT' });
        processQueue(err, null);
        isRefreshing = false;
        return config;
      }
    } else {
      return {
        ...config,
        headers: {
          Authorization: `Bearer ${token}`,
        },
      };
    }
  });
  return instance;
};


const token = store.getState().user.token;
export const apiServices = {
  postData: async (requestUrl: string, payload: any) => {
    const token = store.getState().user.token;
    console.warn('()()post-post', token, payload);

    // return await instance.post(`${requestUrl}`, payload, {
    //   headers: { Authorization: `Bearer ${token}` },
    // });
    try {
      const response = await instance.post(`${requestUrl}`, payload, {
        headers: { Authorization: `Bearer ${token}` },
      });
        if (response.data.message === 'TOKEN IS EXPIRED') {
          logOut();        
        } //else if (response.status !== 200) {
          // callNotification(response);
          // setNotification({yesShow: true, message: 'Something went wrong. Try after sometimes!', type: 'warning'});
          // dispatch(setNotification({yesShow: true, message: `${response.status} | Something went wrong. Try after sometimes!`, type: 'warning', position:'75'}))
        // } else if (response.status > 499 && response.status < 599) {
          // setNotification({yesShow: true, message: 'Technical Error. Sorry for Inconvience!', type: 'alert'});
          // dispatch(setNotification({yesShow: true, message: `${response.status} | Technical Error. Sorry for Inconvience!`, type: 'alert', position:'75'}))
        // }
      return response; 
    } catch (error: any) {
			// <NotificationBox titleText={notification.message || ''} closePopupFc={notificationRevoked} isShowPopup={notification.yesShow} type={notification.type}/>
      console.error('Error during POST request:', error);
      return error.response; // Return the successful response
      // throw error;
    }
  },
  fetchData: async (requestUrl: string, params?: {}) => {
    const token = store.getState().user.token;
    console.warn('()()fetch-get', token);
    // return instance.get(`${requestUrl}`, { params , headers: { Authorization: `Bearer ${token}` } });
    try {
      // Perform the GET request
      const response = await instance.get(`${requestUrl}`, {
        params,
        headers: { Authorization: `Bearer ${token}` },
      });
      
      if (response.data.message === 'TOKEN IS EXPIRED') {
      logOut(); // Call logOut when the token has expired
    }

    return response; // Return the successful response
  } catch (error: any) {
    console.error('Error during GET request:', error);

    // If error response indicates token expiry, log out
    if (error.response?.data?.message === 'TOKEN IS EXPIRED') {
      logOut(); // Log out if the token is expired
    }

    throw error; // Propagate the error for further handling
  }
  
  },
  changeData: async (requestUrl: string, payload: any) => {
    const token = store.getState().user.token;
    console.warn('()()change-put', token);
    try {
      // Perform the PUT request
      const response = await instance.put(`${requestUrl}`, payload, {
        headers: { Authorization: `Bearer ${token}` },
      });
  
      // Check if the token has expired
      if (response.data.message === 'TOKEN IS EXPIRED') {
        logOut(); // Call logOut when the token has expired
      }
  
      return response; // Return the successful response
    } catch (error: any) {
      console.error('Error during PUT request:', error);
  
      // If error response indicates token expiry, log out
      if (error.response?.data?.message === 'TOKEN IS EXPIRED') {
        logOut(); // Log out if the token is expired
      }
  
      throw error; // Propagate the error for further handling
    }
    // return instance.put(`${requestUrl}`, payload, {
    //   headers: { Authorization: `Bearer ${token}` },
    // });
  },
  deleteData: async (requestUrl: string, params?: {}) => {
    const token = store.getState().user.token;
    console.warn('()()delete-delete', token);
    try {
      // Perform the DELETE request
      const response = await instance.delete(`${requestUrl}`, {
        params,
        headers: { Authorization: `Bearer ${token}` },
      });
  
      // Check if the token has expired
      if (response.data.message === 'TOKEN IS EXPIRED') {
        logOut(); // Call logOut when the token has expired
      }
  
      return response; // Return the successful response
    } catch (error: any) {
      console.error('Error during DELETE request:', error);
  
      // If error response indicates token expiry, log out
      if (error.response?.data?.message === 'TOKEN IS EXPIRED') {
        logOut(); // Log out if the token is expired
      }
  
      throw error; // Propagate the error for further handling
    }
    // return instance.delete(`${requestUrl}`, { params, headers: { Authorization: `Bearer ${token}` } });
  },
  deleteDataPayload: async (requestUrl: string, payload?: any) => {
    const token = store.getState().user.token;
    console.warn('()()delete-delete', token);
    try {
      // Perform the DELETE request
      const response = await Axios.delete(requestUrl, {
          headers: {
            Authorization: `Bearer ${token}`,
          },
          data: payload,
        });
  
      // Check if the token has expired
      if (response.data.message === 'TOKEN IS EXPIRED') {
        logOut(); // Call logOut when the token has expired
      }
  
      return response; // Return the successful response
    } catch (error: any) {
      console.error('Error during DELETE request:', error);
      // If error response indicates token expiry, log out
      if (error.response?.data?.message === 'TOKEN IS EXPIRED') {
        logOut(); // Log out if the token is expired
      }
      throw error; // Propagate the error for further handling
    }
    // return instance.delete(`${requestUrl}`, { params, headers: { Authorization: `Bearer ${token}` } });
  },
  updateData: async (requestUrl: string, payload: any) => {
    const token = store.getState().user.token;
    console.warn('()()update-patch', token);
    try {
      // Perform the PATCH request
      const response = await instance.patch(`${requestUrl}`, payload, {
        headers: { Authorization: `Bearer ${token}` },
      });
      // Check if the token has expired
      if (response.data.message === 'TOKEN IS EXPIRED') {
        logOut(); // Call logOut when the token has expired
      }
  
      return response; // Return the successful response
    } catch (error: any) {
      console.error('Error during PATCH request:', error);
  
      // If error response indicates token expiry, log out
      if (error.response?.data?.message === 'TOKEN IS EXPIRED') {
        logOut(); // Log out if the token is expired
      }
      throw error; // Propagate the error for further handling
    }
    // return instance.patch(`${requestUrl}`, payload, {
    //   headers: { Authorization: `Bearer ${token}` },
    // });
  },
  capiumFetchData: async (payload: ICapiumAuthPayload) => {
    const token = store.getState().user.token;
    console.warn('()()capium-post', token);
    const data = axios.post(capiumBaseURL, payload, {
      headers: { Authorization: `Bearer ${token}` },
    });
    return data;
  },
  getGoogleUserInfo: async (token: string) => {
    console.warn('()()google-get', token);
    const data = await axios.get(googleUserInfoURL, {
      headers: { Authorization: `Bearer ${token}` },
    });
    return data;
  },
};
import { persistStore, persistReducer } from 'redux-persist';
import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit';
import { rootReducer } from './reducer';

import storage from 'redux-persist/lib/storage';
import storageSession from 'redux-persist/lib/storage/session';

const store = configureStore({
  reducer: rootReducer,
  middleware: getDefaultMiddleware({
    serializableCheck: false,
  }),
  // devTools: process.env.NODE_ENV !== 'production',
  devTools: false,
});

const persistConfig = {
  key: 'root',
  storage,
}

const persistedReducer = persistReducer(persistConfig, rootReducer);

const persisterStore = persistStore(store);
export { persisterStore, store };
export type RootState = ReturnType<typeof store.getState>;
export type TypeStore = typeof store;
free brawl stars gift card

free brawl stars gift card

free brawl stars gift card

free brawl stars gift card
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
https://github.com/leaknetworks/Claim-Today-brawl-stars-gift-card-in-2025-EASY-and-Legit
https://medium.com/@extrememiniboats/without-charge-brawl-stars-gift-card-claim-in-2025-updated-6d99f0ec5b12
https://medium.com/@dibratapon/gratis-brawl-stars-free-gems-in-2025-updated-and-easy-claim-efb6ed6770c8
https://github.com/leakedtoolspro/-Gratis-brawl-stars-gift-card-claim-today-in-2025
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
 name: prometheuses.monitoring.coreos.com
 annotations:
   argocd.argoproj.io/sync-options: ServerSideApply=true
import pandas as pd

# Cargar archivo
input_file = 'input.csv'
output_file = 'filtered_output.csv'

# Leer CSV
df = pd.read_csv(input_file)

# Paso 1: Identificar el monto del Tip por orden
# Creamos un nuevo DataFrame que contiene el monto del Tip por cada orden
tip_montos = df[df['item'].str.contains('Tip', case=False, na=False)][['orden', 'monto']]
tip_montos = tip_montos.rename(columns={'monto': 'monto_tip'})

# Paso 2: Unir esa información al DataFrame original (por la columna 'orden')
df = df.merge(tip_montos, on='orden', how='left')

# Paso 3: Aplicar el filtro original (conservar órdenes repetidas que tengan 'Tip')
filtered_df = df.groupby('orden').filter(lambda x: (x['item'].str.contains('Tip', case=False, na=False).any()))

# Paso 4: Eliminar filas sin 'metodo'
filtered_df = filtered_df[filtered_df['metodo'].notna()]

# Paso 5: Eliminar columna 'item'
filtered_df = filtered_df.drop(columns=['item'])

# Guardar resultado
filtered_df.to_csv(output_file, index=False)
print(f'Filtrado completado. Archivo guardado como {output_file}')
from dotenv import load_dotenv
from os import getenv
import vt

load_dotenv()

"""
requirements :
pip install python-dotenv==1.1.0
pip install vt_py==0.20.0

1 - Create account in https://www.virustotal.com/
2 - Copy your API Key and but it into .env file or put it into your script

"""
apikey = getenv('api_key')

url = input('URL:')

stats_meaning = {
    'malicious': 'No engine explicitly marked this URL as malicious (i.e., known for phishing, malware, scams, etc.). ✅',
    'suspicious': 'No engine thought the URL looked suspicious or sketchy based on patterns or heuristics. ✅',
    'harmless': 'engines scanned the URL and found it to be safe. ✅',
    'undetected': 'engines scanned it but didn’t detect anything, which often means they didn’t have an opinion one way or the other — like saying “no result.” 🟡',
    'timeout': 'No engines timed out while analyzing the URL. ✅',
}

with vt.Client(apikey=apikey) as client:
    analysis = client.scan_url(url=url, wait_for_completion=True)
    stats = analysis.stats
    for k in stats:
        print(f"{k} : {str(stats[k])} {stats_meaning[k].capitalize()}")


Windowstaste+R, Eintippen von resmon
Reiter CPU 
"Zugeordnete Handles"
"Handles durchsuchen"
Namen (oder einen Namensteil) des Objekts (Datei oder Ordner) eintippen der blockiert wird
mindestens eine Zeile mit dem Zugehörigen Prozess erscheint
Prozess beenden
<?php
if($_POST['password'] != 'secretpassword'){
    echo "Access Denied.";
    exit;
}
mysqlx_query("UPDATE users SET total=total+".$_POST['payout']." WHERE tracking_id=".$_POST['tracking_id'],$db);
?>
voz.vn##.js-inlineModContainer:has(.message-name,.bbCodeBlock-title,.message-attribution:has-text(tengtengvn))
voz.vn##.js-inlineModContainer:has(.message-name,.bbCodeBlock-title,.message-attribution:has-text(tengtengvn))
voz.vn##.js-inlineModContainer:has(.message-name,.bbCodeBlock-title,.message-attribution:has-text(tengtengvn))
star

Tue Apr 22 2025 18:28:15 GMT+0000 (Coordinated Universal Time)

@fsd

star

Tue Apr 22 2025 18:27:32 GMT+0000 (Coordinated Universal Time)

@fsd

star

Tue Apr 22 2025 18:26:44 GMT+0000 (Coordinated Universal Time)

@fsd

star

Tue Apr 22 2025 18:24:06 GMT+0000 (Coordinated Universal Time)

@fsd

star

Tue Apr 22 2025 18:23:05 GMT+0000 (Coordinated Universal Time)

@fsd

star

Tue Apr 22 2025 18:22:15 GMT+0000 (Coordinated Universal Time)

@fsd

star

Tue Apr 22 2025 18:21:15 GMT+0000 (Coordinated Universal Time)

@fsd

star

Tue Apr 22 2025 18:15:31 GMT+0000 (Coordinated Universal Time)

@fsd

star

Tue Apr 22 2025 12:29:47 GMT+0000 (Coordinated Universal Time) https://appticz.com/ola-clone

@davidscott #appticz #olaclone

star

Tue Apr 22 2025 11:00:31 GMT+0000 (Coordinated Universal Time) https://chatgpt.com/c/68076ce2-eafc-800b-8256-7210bec82b6a

@Bh@e_LoG

star

Tue Apr 22 2025 09:53:08 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com/cryptocurrency-market-making-software/

@CharleenStewar ##marketmakingsoftware ##cryptotradingtools ##cryptoliquidity ##cryptoexchangesoftware

star

Tue Apr 22 2025 05:11:07 GMT+0000 (Coordinated Universal Time)

@Taimoor

star

Tue Apr 22 2025 03:49:04 GMT+0000 (Coordinated Universal Time)

@IfedayoAwe

star

Tue Apr 22 2025 03:42:50 GMT+0000 (Coordinated Universal Time)

@IfedayoAwe

star

Tue Apr 22 2025 03:17:50 GMT+0000 (Coordinated Universal Time)

@IfedayoAwe

star

Tue Apr 22 2025 03:13:44 GMT+0000 (Coordinated Universal Time)

@IfedayoAwe

star

Tue Apr 22 2025 03:09:50 GMT+0000 (Coordinated Universal Time)

@IfedayoAwe

star

Tue Apr 22 2025 02:22:31 GMT+0000 (Coordinated Universal Time) https://etherscan.io/verifyContract-solc?a

@mathewmerlin72

star

Tue Apr 22 2025 02:22:25 GMT+0000 (Coordinated Universal Time) https://etherscan.io/verifyContract-solc?a

@mathewmerlin72

star

Tue Apr 22 2025 02:22:20 GMT+0000 (Coordinated Universal Time) https://etherscan.io/verifyContract-solc?a

@mathewmerlin72

star

Tue Apr 22 2025 02:22:17 GMT+0000 (Coordinated Universal Time) https://etherscan.io/verifyContract-solc?a

@mathewmerlin72

star

Tue Apr 22 2025 01:35:17 GMT+0000 (Coordinated Universal Time) https://lifeonablock.com/spin-code/

@websplach #css

star

Tue Apr 22 2025 01:35:17 GMT+0000 (Coordinated Universal Time) https://lifeonablock.com/spin-code/

@websplach #javascript

star

Mon Apr 21 2025 23:40:01 GMT+0000 (Coordinated Universal Time)

@shahmeeriqbal

star

Mon Apr 21 2025 09:21:57 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com/cryptocurrency-wallet-development-company/

@CharleenStewar #multichain #multichain wallet #cryptowallet #cryptomanagement

star

Mon Apr 21 2025 05:59:48 GMT+0000 (Coordinated Universal Time) https://rebootwebsites.co.za/how-to-create-an-advanced-slider-with-card-carousel-in-elementor-wordpress-tutorial/

@websplach #javascript

star

Mon Apr 21 2025 05:59:39 GMT+0000 (Coordinated Universal Time) https://rebootwebsites.co.za/how-to-create-an-advanced-slider-with-card-carousel-in-elementor-wordpress-tutorial/

@websplach #javascript

star

Mon Apr 21 2025 05:59:35 GMT+0000 (Coordinated Universal Time) https://rebootwebsites.co.za/how-to-create-an-advanced-slider-with-card-carousel-in-elementor-wordpress-tutorial/

@websplach #javascript

star

Mon Apr 21 2025 05:59:31 GMT+0000 (Coordinated Universal Time) https://rebootwebsites.co.za/how-to-create-an-advanced-slider-with-card-carousel-in-elementor-wordpress-tutorial/

@websplach #javascript

star

Mon Apr 21 2025 05:59:28 GMT+0000 (Coordinated Universal Time) https://rebootwebsites.co.za/how-to-create-an-advanced-slider-with-card-carousel-in-elementor-wordpress-tutorial/

@websplach #javascript

star

Mon Apr 21 2025 05:59:24 GMT+0000 (Coordinated Universal Time) https://rebootwebsites.co.za/how-to-create-an-advanced-slider-with-card-carousel-in-elementor-wordpress-tutorial/

@websplach #javascript

star

Mon Apr 21 2025 05:59:22 GMT+0000 (Coordinated Universal Time) https://rebootwebsites.co.za/how-to-create-an-advanced-slider-with-card-carousel-in-elementor-wordpress-tutorial/

@websplach #javascript

star

Mon Apr 21 2025 05:59:18 GMT+0000 (Coordinated Universal Time) https://rebootwebsites.co.za/how-to-create-an-advanced-slider-with-card-carousel-in-elementor-wordpress-tutorial/

@websplach #javascript

star

Mon Apr 21 2025 05:59:10 GMT+0000 (Coordinated Universal Time) https://rebootwebsites.co.za/how-to-create-an-advanced-slider-with-card-carousel-in-elementor-wordpress-tutorial/

@websplach #javascript

star

Mon Apr 21 2025 05:22:43 GMT+0000 (Coordinated Universal Time)

@codejck

star

Mon Apr 21 2025 05:21:48 GMT+0000 (Coordinated Universal Time)

@codejck

star

Mon Apr 21 2025 05:20:51 GMT+0000 (Coordinated Universal Time)

@codejck

star

Mon Apr 21 2025 05:19:41 GMT+0000 (Coordinated Universal Time)

@codejck

star

Mon Apr 21 2025 05:17:36 GMT+0000 (Coordinated Universal Time)

@codejck

star

Mon Apr 21 2025 05:16:41 GMT+0000 (Coordinated Universal Time)

@codejck

star

Sun Apr 20 2025 20:41:51 GMT+0000 (Coordinated Universal Time) https://www.shellscript.sh/

@lililld03 #sh

star

Sat Apr 19 2025 19:30:26 GMT+0000 (Coordinated Universal Time)

@agent302

star

Sat Apr 19 2025 14:56:12 GMT+0000 (Coordinated Universal Time)

@vjg #python

star

Sat Apr 19 2025 09:04:01 GMT+0000 (Coordinated Universal Time) https://www.pctipp.ch/praxis/datenverwaltung/windows-fehler-datei-oder-ordner-in-benutzung-aber-durch-wen-2012564.html

@2late #windows

star

Sat Apr 19 2025 05:26:22 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com/poloniex-clone-script/

@janetbrownjb #poloniexclonescript #cryptoexchangeclone #cryptocurrencyexchangedevelopment #whitelabelcryptoexchange #cryptotradingplatform

star

Sat Apr 19 2025 01:00:36 GMT+0000 (Coordinated Universal Time) https://www.cpagrip.com/admin/dash_tools_gpostback.php

@Mido4477

star

Fri Apr 18 2025 18:29:48 GMT+0000 (Coordinated Universal Time) https://voz.vn/t/them-nut-ignore-đoi-voi-tai-khoan-mod-hoac-chan-tai-khoan-mod-tham-gia-tranh-luan.1091590/

@abcabcabc

Save snippets that work with our extensions

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