text:
//===--- CodeCompletionResultType.cpp -------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2021 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//

#include "swift/IDE/CodeCompletionResultType.h"
#include "swift/AST/ASTContext.h"
#include "swift/AST/Decl.h"
#include "swift/AST/Module.h"
#include "swift/AST/ProtocolConformance.h"
#include "swift/AST/USRGeneration.h"
#include "swift/Sema/IDETypeChecking.h"

using namespace swift;
using namespace ide;
using TypeRelation = CodeCompletionResultTypeRelation;

// MARK: - USRBasedTypeContext

USRBasedTypeContext::USRBasedTypeContext(const ExpectedTypeContext *TypeContext,
                                         USRBasedTypeArena &Arena)
    : Arena(Arena) {

  for (auto possibleTy : TypeContext->getPossibleTypes()) {
    ContextualTypes.emplace_back(USRBasedType::fromType(possibleTy, Arena));

    // Add the unwrapped optional types as 'convertible' contextual types.
    auto UnwrappedOptionalType = possibleTy->getOptionalObjectType();
    while (UnwrappedOptionalType) {
      ContextualTypes.emplace_back(
          USRBasedType::fromType(UnwrappedOptionalType, Arena));
      UnwrappedOptionalType = UnwrappedOptionalType->getOptionalObjectType();
    }

    // If the contextual type is an opaque return type, make the protocol a
    // contextual type. E.g. if we have
    //   func foo() -> some View { #^COMPLETE^# }
    // we should show items conforming to `View` as convertible.
    if (auto OpaqueType = possibleTy->getAs<OpaqueTypeArchetypeType>()) {
      llvm::SmallVector<const USRBasedType *, 1> USRTypes;
      if (auto Superclass = OpaqueType->getSuperclass()) {
        USRTypes.push_back(USRBasedType::fromType(Superclass, Arena));
      }
      for (auto Proto : OpaqueType->getConformsTo()) {
        USRTypes.push_back(
            USRBasedType::fromType(Proto->getDeclaredInterfaceType(), Arena));
      }
      // Archetypes are also be used to model generic return types, in which
      // case they don't have any conformsTo entries. We simply ignore those.
      if (!USRTypes.empty()) {
        ContextualTypes.emplace_back(USRTypes);
      }
    }
  }
}

TypeRelation
USRBasedTypeContext::typeRelation(const USRBasedType *ResultType) const {
  const USRBasedType *VoidType = Arena.getVoidType();
  if (ResultType == VoidType) {
    // Void is not convertible to anything and we don't report Void <-> Void
    // identical matches (see USRBasedType::typeRelation). So we don't have to
    // check anything if the result returns Void.
    return TypeRelation::Unknown;
  }

  TypeRelation Res = TypeRelation::Unknown;
  for (auto &ContextualType : ContextualTypes) {
    Res = std::max(Res, ContextualType.typeRelation(ResultType, VoidType));
    if (Res == TypeRelation::MAX_VALUE) {
      return Res; // We can't improve further
    }
  }
  return Res;
}

// MARK: - USRBasedTypeArena

USRBasedTypeArena::USRBasedTypeArena() {
  // '$sytD' is the USR of the Void type.
  VoidType = USRBasedType::fromUSR("$sytD", {}, *this);
}

const USRBasedType *USRBasedTypeArena::getVoidType() const { return VoidType; }

// MARK: - USRBasedType

TypeRelation USRBasedType::typeRelationImpl(
    const USRBasedType *ResultType, const USRBasedType *VoidType,
    SmallPtrSetImpl<const USRBasedType *> &VisitedTypes) const {

  // `this` is the contextual type.
  if (this == VoidType) {
    // We don't report Void <-> Void matches because that would boost
    // methods returning Void in e.g.
    // func foo() { #^COMPLETE^# }
    // because #^COMPLETE^# is implicitly returned. But that's not very
    // helpful.
    return TypeRelation::Unknown;
  }
  if (ResultType == this) {
    return TypeRelation::Convertible;
  }
  for (const USRBasedType *Supertype : ResultType->getSupertypes()) {
    if (!VisitedTypes.insert(Supertype).second) {
      // Already visited this type.
      continue;
    }
    if (this->typeRelation(Supertype, VoidType) >= TypeRelation::Convertible) {
      return TypeRelation::Convertible;
    }
  }
  // TypeRelation computation based on USRs is an under-approximation because we
  // don't take into account generic conversions or retroactive conformance of
  // library types. Hence, we can't know for sure that ResultType is not
  // convertible to `this` type and thus can't return Unrelated or Invalid here.
  return TypeRelation::Unknown;
}

const USRBasedType *USRBasedType::null(USRBasedTypeArena &Arena) {
  return USRBasedType::fromUSR(/*USR=*/"", /*Supertypes=*/{}, Arena);
}

const USRBasedType *
USRBasedType::fromUSR(StringRef USR, ArrayRef<const USRBasedType *> Supertypes,
                      USRBasedTypeArena &Arena) {
  auto ExistingTypeIt = Arena.CanonicalTypes.find(USR);
  if (ExistingTypeIt != Arena.CanonicalTypes.end()) {
    return ExistingTypeIt->second;
  }
  // USR and Supertypes need to be allocated in the arena to be passed into the
  // USRBasedType constructor. The elements of Supertypes are already allocated
  // in the arena.
  USR = USR.copy(Arena.Allocator);
  Supertypes = Supertypes.copy(Arena.Allocator);

  const USRBasedType *Result =
      new (Arena.Allocator) USRBasedType(USR, Supertypes);
  Arena.CanonicalTypes[USR] = Result;
  return Result;
}

const USRBasedType *USRBasedType::fromType(Type Ty, USRBasedTypeArena &Arena) {
  if (!Ty) {
    return USRBasedType::null(Arena);
  }

  // USRBasedTypes are backed by canonical types so that equivalent types have
  // the same USR.
  Ty = Ty->getCanonicalType();

  // For opaque types like 'some View', consider them equivalent to 'View'.
  if (auto OpaqueType = Ty->getAs<OpaqueTypeArchetypeType>()) {
    if (auto Existential = OpaqueType->getExistentialType()) {
      Ty = Existential;
    }
  }
  // We can't represent more complicated archetypes like 'some View & MyProto'
  // in USRBasedType yet. Simply map them to null types for now.
  if (Ty->hasArchetype()) {
    return USRBasedType::null(Arena);
  }

  SmallString<32> USR;
  llvm::raw_svector_ostream OS(USR);
  printTypeUSR(Ty, OS);

  // Check the USRBasedType cache in the arena as quickly as possible to avoid
  // converting the entire supertype hierarchy from AST-based types to
  // USRBasedTypes.
  auto ExistingTypeIt = Arena.CanonicalTypes.find(USR);
  if (ExistingTypeIt != Arena.CanonicalTypes.end()) {
    return ExistingTypeIt->second;
  }

  SmallVector<const USRBasedType *, 2> Supertypes;
  if (auto Nominal = Ty->getAnyNominal()) {
    auto Conformances = Nominal->getAllConformances();
    Supertypes.reserve(Conformances.size());
    for (auto Conformance : Conformances) {
      if (Conformance->getDeclContext()->getParentModule() !=
          Nominal->getModuleContext()) {
        // Only include conformances that are declared within the module of the
        // type to avoid caching retroactive conformances which might not
        // exist when using the code completion cache from a different module.
        continue;
      }
      if (Conformance->getProtocol()->isSpecificProtocol(KnownProtocolKind::Sendable)) {
        // FIXME: Sendable conformances are lazily synthesized as they are
        // needed by the compiler. Depending on whether we checked whether a
        // type conforms to Sendable before constructing the USRBasedType, we
        // get different results for its conformance. For now, always drop the
        // Sendable conformance.
        continue;
      }
      Supertypes.push_back(USRBasedType::fromType(
          Conformance->getProtocol()->getDeclaredInterfaceType(), Arena));
    }
  }
  Type Superclass = Ty->getSuperclass();
  while (Superclass) {
    Supertypes.push_back(USRBasedType::fromType(Superclass, Arena));
    Superclass = Superclass->getSuperclass();
  }

  assert(llvm::all_of(Supertypes, [&USR](const USRBasedType *Ty) {
    return Ty->getUSR() != USR;
  }) && "Circular supertypes?");

  llvm::SmallPtrSet<const USRBasedType *, 2> ImpliedSupertypes;
  for (auto Supertype : Supertypes) {
    ImpliedSupertypes.insert(Supertype->getSupertypes().begin(),
                             Supertype->getSupertypes().end());
  }
  llvm::erase_if(Supertypes, [&ImpliedSupertypes](const USRBasedType *Ty) {
    return ImpliedSupertypes.contains(Ty);
  });

  return USRBasedType::fromUSR(USR, Supertypes, Arena);
}

TypeRelation USRBasedType::typeRelation(const USRBasedType *ResultType,
                                        const USRBasedType *VoidType) const {
  SmallPtrSet<const USRBasedType *, 4> VisitedTypes;
  return this->typeRelationImpl(ResultType, VoidType, VisitedTypes);
}

// MARK: - USRBasedTypeContext

TypeRelation USRBasedTypeContext::ContextualType::typeRelation(
    const USRBasedType *ResultType, const USRBasedType *VoidType) const {
  assert(!Types.empty() && "A contextual type should have at least one type");

  /// Types is a conjunction, not a disjunction (see documentation on Types),
  /// so we need to compute the minimum type relation here.
  TypeRelation Result = TypeRelation::Convertible;
  for (auto ContextType : Types) {
    Result = std::min(Result, ContextType->typeRelation(ResultType, VoidType));
  }
  return Result;
}

// MARK: - CodeCompletionResultType

static TypeRelation calculateTypeRelation(Type Ty, Type ExpectedTy,
                                          const DeclContext &DC) {
  if (Ty.isNull() || ExpectedTy.isNull() || Ty->is<ErrorType>() ||
      ExpectedTy->is<ErrorType>())
    return TypeRelation::Unrelated;

  // Equality/Conversion of GenericTypeParameterType won't account for
  // requirements – ignore them
  if (!Ty->hasTypeParameter() && !ExpectedTy->hasTypeParameter()) {
    if (Ty->isEqual(ExpectedTy))
      return TypeRelation::Convertible;
    bool isAny = false;
    isAny |= ExpectedTy->isAny();
    isAny |= ExpectedTy->is<ArchetypeType>() &&
             !ExpectedTy->castTo<ArchetypeType>()->hasRequirements();

    if (!isAny && isConvertibleTo(Ty, ExpectedTy, /*openArchetypes=*/true,
                                  const_cast<DeclContext &>(DC)))
      return TypeRelation::Convertible;
  }
  if (auto FT = Ty->getAs<AnyFunctionType>()) {
    if (FT->getResult()->isVoid())
      return TypeRelation::Invalid;
  }
  return TypeRelation::Unrelated;
}

static TypeRelation
calculateMaxTypeRelation(Type Ty, const ExpectedTypeContext &typeContext,
                         const DeclContext &DC) {
  if (Ty->isVoid() && typeContext.requiresNonVoid())
    return TypeRelation::Invalid;
  if (typeContext.empty())
    return TypeRelation::Unknown;

  if (auto funcTy = Ty->getAs<AnyFunctionType>())
    Ty = funcTy->removeArgumentLabels(1);

  auto Result = TypeRelation::Unrelated;
  for (auto expectedTy : typeContext.getPossibleTypes()) {
    // Do not use Void type context for a single-expression body, since the
    // implicit return does not constrain the expression.
    //
    //     { ... -> ()  in x } // x can be anything
    //
    // This behaves differently from explicit return, and from non-Void:
    //
    //     { ... -> Int in x }        // x must be Int
    //     { ... -> ()  in return x } // x must be Void
    if (typeContext.isImplicitSingleExpressionReturn() && expectedTy->isVoid())
      continue;

    Result = std::max(Result, calculateTypeRelation(Ty, expectedTy, DC));
  }

  // Map invalid -> unrelated when in a single-expression body, since the
  // input may be incomplete.
  if (typeContext.isImplicitSingleExpressionReturn() &&
      Result == TypeRelation::Invalid)
    Result = TypeRelation::Unrelated;

  return Result;
}

bool CodeCompletionResultType::isBackedByUSRs() const {
  return llvm::all_of(
      getResultTypes(),
      [](const PointerUnion<Type, const USRBasedType *> &ResultType) {
        return ResultType.is<const USRBasedType *>();
      });
}

llvm::SmallVector<const USRBasedType *, 1>
CodeCompletionResultType::getUSRBasedResultTypes(
    USRBasedTypeArena &Arena) const {
  llvm::SmallVector<const USRBasedType *, 1> USRBasedTypes;
  auto ResultTypes = getResultTypes();
  USRBasedTypes.reserve(ResultTypes.size());
  for (auto ResultType : ResultTypes) {
    if (auto USRType = ResultType.dyn_cast<const USRBasedType *>()) {
      USRBasedTypes.push_back(USRType);
    } else {
      USRBasedTypes.push_back(
          USRBasedType::fromType(ResultType.get<Type>(), Arena));
    }
  }
  return USRBasedTypes;
}

CodeCompletionResultType
CodeCompletionResultType::usrBasedType(USRBasedTypeArena &Arena) const {
  return CodeCompletionResultType(this->getUSRBasedResultTypes(Arena));
}

TypeRelation CodeCompletionResultType::calculateTypeRelation(
    const ExpectedTypeContext *TypeContext, const DeclContext *DC,
    const USRBasedTypeContext *USRTypeContext) const {
  if (isNotApplicable()) {
    return TypeRelation::NotApplicable;
  }

  if (!TypeContext || !DC) {
    return TypeRelation::Unknown;
  }

  TypeRelation Res = TypeRelation::Unknown;
  for (auto Ty : getResultTypes()) {
    if (auto USRType = Ty.dyn_cast<const USRBasedType *>()) {
      if (!USRTypeContext) {
        assert(false && "calculateTypeRelation must have a USRBasedTypeContext "
                        "passed if it contains a USR-based result type");
        continue;
      }
      Res = std::max(Res, USRTypeContext->typeRelation(USRType));
    } else {
      Res = std::max(
          Res, calculateMaxTypeRelation(Ty.get<Type>(), *TypeContext, *DC));
    }
  }
  return Res;
}

redpajama_set_name: RedPajamaGithub


R.I.P great bridge player and gentleman.
Agree He is legend, you can not imagine how much I improved since I played with him.
Boye, thank you for the effort , you helped the game a lot. Thank you for your comments on BW for the last month , I enjoyed every comment you post. Thank you for your statement now.
What if NBO has suspicious but reluctant to do the right thing. WBF have to take strong action.
If pd has AJxx ♠ he will duck ,neither he has J♥ , then declarere should have 9 trick if club run , so I have to play A♦ and See what to do next.
Very good video , even non bridge players can understand what is going on.


text:
HEARTHUNDER ART COLLECTIVE
We are a group of creative people in Vermont's Champlain Valley. We like art. We like making stuff. We want a better world for our kids. Put all that together, and you get Hearthunder Art Collective.
The basic idea is to use our creativity and passion to support environmental and social activism groups in their efforts by plugging in our special brand of awesome to their events. We do parades as public outreach and fundraising opportunities (and because it is fun to be a rock star once in a while!)
Everybody wants a better world. Not everybody wants to get out and march on city hall. It feels confrontational. It can be embarrassing. It can be overwhelming and awkward and might even get you arrested. But what if instead of a march with angry chants, it was a rolling dance party? What if there were jugglers and stilt walkers; crazy parade floats and a marching band playing reggae? Sounds like a lot more fun, no?
That is the Hearthunder vision. We can change the world, with love and passion and relentless positivity. With Heart and Thunder.

redpajama_set_name: RedPajamaCommonCrawl


I've always enjoyed reading Kathryn Freeman's books before and this was no exception. We meet Abby first as a thirteen year old at her mother's funeral then later as a young woman going for a job interview at Crumbs biscuit company. In the intervening years she has put on her life on hold to help her dad bring up her four younger sisters. Life is never quiet or dull in the Spencer household but it hasn't given Abby a whole lot of time to follow her own dreams. She arrives at the interview in a bit of a tizz, covered in crumbs from her young nephew George's rusks (very appropriate), trips over her handbag and babbles a whole load of nonsense. Not quite the first impression she might have wanted to give her potential new boss, handsome managing director Doug Faulkner!
One thing I enjoy about Kathryn Freeman's novels is that she writes about really relatable characters, You may not have been in the same situations but there is always something that you will recognise in them. The story of a personal assistant falling for the boss may not be a new story but it's no less enjoyable, especially as Doug has secrets he is keeping from Abby.
I took to Abby from the beginning of the book. She has dedicated herself to her sisters and my goodness they could be a handful at times! I had to feel for her poor father, surrounded by all these young women with only young George to redress the balance – and Pat the dog of course. There was a lot of noise in the Spencer house but there was a lot of love and laughter too. I often found myself chuckling at some of the many times Abby let her mouth run away with itself , saying out loud exactly what she was thinking. It was great to see her grow as a character over the book as she finally was able to show her potential and make the most of opportunities. I wasn't quite sure what to make of Doug at first and was slightly worried he might be a bit of a Christian Grey character! However, despite perhaps sharing some of Mr Grey's talents (!), he was a much more caring character though tormented by a secret he felt compelled to keep and feeling very trapped.
Oh Crumbs was a thoroughly enjoyable read which had me laughing but also moved me on occasion too. It was a really charming romance story which left me feeling very uplifted. It would be good to read more about Abby in the future as I'd love to see how things develop both in her personal and professional life.
Started reading this one last night, and loving it already!
It's such a great read, but then you always know you're in good hands with a ChocLit author.
Well they did have some things in common…. Really enjoyed it Kathryn and pleased to be given the opportunity to read it.


text:
Can Starfish Live With Anemones?
By Robert Boumis
Starfish and sea anemones are two invertebrates that can work in a saltwater aquarium. However, care must be taken that compatible sea stars and anemones are kept together. Even though they seem peaceful and often stationary, both the starfish and the sea anemone are predators.
Starfish are animals that belong to the phylum echinoderms, and the class Asteroidea. Marine biologists are trying to get the term "sea stars" to catch on instead, because starfish are not fish. Most varieties have five arms, but some species have more, sometimes more than 20. Starfish are found in a wide variety of habitats in all oceans, but never in fresh water. They are also known for their regenerative abilities; many species can regrow arms, and a few can even regrow a whole body from a severed limb.
Sea anemones belong to the same phylum as jellyfish and coral, the cnidarians. Almost all members of this phylum sting to one degree or another. However, sea anemones are known for their symbiotic relationship with clown fish, which can hide among the stinging tentacles for safety from predators. Many anemones also have a symbiotic relationship with zooxanthellae, an algae that lives inside their cells and produces nutrients in exchange for carbon dioxide.
Anemone Stings
An anemone's sting is the first thing people worry about when they consider tankmates, and for good reason. You should always wear gloves when handling anemones. Even "safe" species can cause dangerous reactions in susceptible people, and the only way you'll find out is if you're careless with one. However, anemones are generally most dangerous toward animals that can't move, or move very slowly, like corals and other anemones. Generally a starfish's almost shell-like skin and mobility allow them to get away with very minor injuries.
Predatory Starfish
Oddly, starfish can present more danger for anemones than vice versa. Many species of starfish are voracious, if slow-moving, predators. The crown of thorns starfish is a great example. These predators devastate coral reefs by eating coral and anemones. The chocolate chip starfish is more common in aquariums, and just as dangerous to stationary invertebrates like anemones. If you want something safer, you should look for blue sea stars (Linckia laevigata), red sea stars (Fromia elegans), orange sea stars (Fromia monilis) and red-knobbed sea stars (Protoreaster lincki), which tend to be reef-safe.
What Are the Fuzzy Things on a Jellyfish?
How Do Animals in the Ocean Protect Themselves?
What Do Surgeonfish Eat?
Benthos Animals in the Ocean
Dangerous Animals in the US Virgin Islands
The Characteristics of Anemones
Different Species of a Starfish
What Does Cnidaria Eat?
Clown Fish Aquarium Requirements
What Kinds of Animals Eat Sea Anemones?
What Type of Symmetry Do Jellyfish Have?
How Do Starfish Get Away From Their Predators?
How to Set Up for a Pet Octopus
Are Octopuses & Squid Dangerous to People?
What Is the Black Liquid Coming Out From the Octopus?
Predators of the Sea Cucumber
What Are the Suction Cups Used for on the Tentacles of a Squid?
Snail-Eating Fish for an Aquarium
Barracuda Facts


To celebrate Food Day Canada, August 4, 2018, fusion grill is presenting this sensational Tasting Menu featuring ingredients from the Manitoba prairie, fresh water lakes & the Boreal forest.
"Every course was an awesome display of culinary prowess," said one guest.
"The Inspired pairings were brilliant & elevated each dish to a seemingly impossible new level," said another.
Click to make a reservation.


Limble's simple and intuitive PM builder allows you to build simple checklists or powerful conditional logic that guides your technicians to make sure your work is done the right way.
This allows you to build and document your maintenance knowledge so that even new staff members know exactly what to do without additional training — you'll no longer have to rely on tribal knowledge.
Have your technicians check off they completed a task.
Have your technicians record text or numbers — which can automatically update meter readings.
Have your technicians attach pictures or inspection reports.
Have your technicians choose from predefined drop down lists.
Have your technicians start work orders on specific conditions.
Have your technicians answer questions, which will then guide them to the right action.
Provides your technicians with instructional images. For example, grease this exact gear.
Set estimated times to complete.
Set expected parts to use.


text:
Race, Politics, Policing, & Protest: Origins of the #BlackLivesMatter Movement: US Government Statistics
On this page you will find resources specifically geared to provide statistical data and information.
Federal Crime & Criminal Justice Statistics
Bomb Data Center
Databases incorporating information from various sources such as the Bureau of Alcohol, Tobacco, Firearms and Explosives; the Federal Bureau of Investigation; and the United States Fire Administration. Information maintained by the National Repository is available for statistical analysis and investigative research by scholars and the law enforcement community.
Bureau of Alcohol, Tobacco, and Firearms Statistics
Data on firearms traces and manufacturing.
Bureau of Justice Statistics
Aggregated data from a wide variety of published sources, intended for analytic use. Includes a dynamic interface that allows users to construct and download custom tables.
Bureau of Prisons
Quick facts on the inmate population and staff employed by the Federal Bureau of Prisons.
Census of Jails
Presents facility characteristics and characteristics of persons under the jurisdiction of local and Federal jail authorities.
Census of State and Federal Correction Facilities
Selected findings from the Census of State and Federal Correctional Facilities. The report includes data on characteristics of facilities by type, size, security level, rated and design capacities, court orders, and use of private contractors. It provides data on custody populations by type of facility, gender, and facility security level. The report includes data on facility staff by gender, occupational categories, and inmate-to-staff ratios by type of facility.
Correctional Population in the US
The total correctional population includes all persons incarcerated, either in prison or jail, or supervised in the community either on probation or parole. Several different data collections are used to estimate this population, including the National Prisoner Statistics Program, Annual Survey of Jails, and Annual Probation Survey, Annual Parole Survey (listed under data sources).
Crime and Victims
Collects information from victims on nonfatal violent and property crimes, reported and not reported to the police, against persons age 12 or older from a nationally representative sample of U.S. households. It produces national rates and levels of personal and property victimization.
Drug and Crime Facts
Summarizes U.S. statistics about drug-related crimes, law enforcement, courts, and corrections from Bureau of Justice Statistics (BJS) and non-BJS sources.
Drug Enforcement Agency
Drug control and arrest statistics.
FBI Crime Statistics
Statistical crime reports and publications, detailing specific offenses and outlining trends that can help you better understand crime threats both nationally and locally.
Hate Crime Statistics
Presents data regarding incidents, offenses, victims, and offenders in reported crimes that were motivated in whole or in part by a bias against the victim's perceived race, religion, ethnicity, sexual orientation, or disability.
Homicide Trends in the United States
Data on homicide trends.
Internet Crime Complaint Center (IC3)
The Internet Crime Complaint Center (IC3) is a partnership between the Federal Bureau of Investigation (FBI) and the National White Collar Crime Center (NW3C).
Includes estimates of the extent of crimes against females and males and the characteristics of crimes and victims. Crime trends are also presented, along with comparative estimates of crimes against males.
National Criminal Justice Reference System
Federally funded resource offering justice and substance abuse information to support research, policy, and program development worldwide.
National Memorial Institute for the Prevention of Terrorism
Information regarding information collection, terrorism and crime prevention, and other related topics.
Office for Victims of Crimes
OVC administers the Crime Victims Fund (the Fund), which is financed by fines and penalties paid by convicted federal offenders, not from tax dollars.
Office of Juvenile Justice and Delinquency Prevention
Juveniles in crisis—from serious, violent, and chronic offenders to victims of abuse and neglect—pose a challenge to the nation. Charged by Congress to meet this challenge, OJJDP collaborates with professionals from diverse disciplines to improve juvenile justice policies and practices.
Sourcebook of Criminal Justice Statistics
The Sourcebook of Criminal Justice Statistics brings together data from more than 100 published and unpublished sources about many aspects of criminal justice in the United States. Since 1973, the project has been located at the University at Albany, School of Criminal Justice, and compiled and managed by staff at the Hindelang Criminal Justice Research Center in Albany, New York.
Statistics Briefing Reports
From the Office of Juvenile Justice and Delinquency Prevention, data analysis and dissemination tools available through the Statistical Briefing Book give users quick and easy access to detailed statistics on a variety of juvenile justice topics.
Tribal Courts
Passage of the Indian Reorganization Act in 1934 encouraged tribes to enact their own laws and establish their own modern tribal courts. Modern tribal courts are under tribal control, and are directly oriented to the needs of tribal members. Some tribes have developed a hybrid or blended judicial system, incorporating the dispute resolution elements of indigenous or Code of Federal Regulations (CFR) courts and a more modern focus to ensure due process. In 2002, about 60% (188) of all the tribes had some form of a tribal justice system.
Tribal Law Enforcement
Tribally operated law enforcement agencies provide a broad range of public safety services such as responding to calls for service, investigating crimes, enforcing traffic laws, executing arrest warrants, serving process, providing court security, and conducting search and rescue operations. Findings are based on the 2008 Census of State and Local Law Enforcement Agencies.
Uniform Crime Reporting Statistics
Collects statistics for violent crime (murder and non-negligent manslaughter, forcible rape, robbery, and aggravated assault) and property crime (burglary, larceny-theft, and motor vehicle theft).
Wiretap Report
Each Wiretap Report uses tables, text, and charts to report information provided by federal and state officials on orders authorizing or approving interceptions of wire, oral, or electronic communications for the calendar year ending December 31.
BCC librarians are available to help you with your research. We provide guidance in locating information and using resources available through the library and on the internet.
JavaScript disabled or chat unavailable.
If a librarian is online, use the window above to chat live. A librarian is available to chat during normal business hours.
You can also use our off-line form, and a librarian will email you back with answers and suggestions. You will receive a reply within 2 business days.
Arrest Related Death Statistics
Arrest Related Deaths
Created by the Bureau of Justice Statistics, the Arrest-Related Deaths (ARD) program is an annual national census of persons who died either during the process of arrest or while in the custody of state or local law enforcement personnel. The ARD program collects data on civilian deaths caused by any use of force by state or local law enforcement personnel as well as those not directly related to actions of law enforcement, such as deaths attributed to suicide, intoxication, accidental injury, and illness or natural causes.
<< Previous: Policing
Next: Local Resources >>


Emissions Monitoring, System Design - TechnoSoft Inc.
TechnoSoft has developed a highly automated, knowledge-based engineering system for designing complete emissions monitoring equipment racks. Primary inputs to the system are simply which gases to check for. Secondary (optional) inputs include things like which EPA regulations to follow, support contract options for service and spare parts, selection of calibration gases, sensitivities of analyzers, selection of pumps, conditioners, dryers, tubing, valves, cabinet width (NEMA standards), selection of air conditioners or fans, etc. All of these inputs have default selections based on rules that are embedded in the system, but they can be overridden by the user. System outputs include a 3D model of the cabinet and all analyzer components (laid out based on rules), schematics for the entire system, detailed drawings of the assembly and components, bill of materials text report, and a detailed price quote in Microsoft Word document format.


Can we stop terrorism by banning people from talking about terrorism in certain ways?
Some Conservatives seem to think so.
In the wake of this week's shooting at the National War Memorial and on Parliament Hill, the "Conservatives are understood to be considering new legislation that would make it an offence to condone terrorist acts online," the National Post's John Ivison wrote Friday.
Sources suggest the government is likely to bring in new hate speech legislation that would make it illegal to claim terrorist acts are justified online."
But the intent appears to be similar to an amendment to the Anti-Terrorism Act proposed in 2011 that was aimed at outlawing the glorification of terrorism, modeled after a similar law in the United Kingdom.
The latest idea, though, floated by the Conservatives in the wake of the deadly shooting of a soldier in Ottawa, appears to be more vague and wider-reaching.
And back in 2011, the government faced plenty of criticism.
"You can't police people's thoughts," National Post editor Jonathan Kay said back in 2011. "And efforts to do so, such as this, smack of a dictatorial mindset."
Criminalizing glorification... may permit the government to camouflage a dragnet: it will allow the government to prosecute sympathizers on the theory that when you're looking for a needle, maybe it's better to put the whole haystack behind bars. We'll call that a North Korean approach to public safety."
Forcese also noted that laws banning glorification can "alienate communities," causing "intelligence and policing sources [to] dry up" and radical ideas "go underground, with a new martyred status."
In 2012, Public Safety Minister Vic Toews at the time, listed "eco-terrorists" as threats in a new anti-terrorism strategy. "The minister said that, in addition to foreign threats, the government would be vigilant against domestic extremism that is 'based on grievances – real or perceived – revolving around the promotion of various causes such as animal rights, white supremacy, environmentalism and anti-capitalism,'" the Globe and Mail reported at the time.
Also in 2012, Joe Oliver, Natural Resources Minister Joe Oliver at the time, issued an open letter railing against "environmental and other radical groups" who take "funding from foreign special interest groups to undermine Canada's national economic interest" and "threaten to hijack our regulatory system to achieve their radical ideological agenda."
In 2013, documents released to the Vancouver Observer showed the National Energy Board, RCMP and CSIS coordinating to monitor and identify social media users associated with well-known groups such as Idle No More, ForestEthics, Sierra Club, Eco Society, LeadNow, Dogwood Initiative, Council of Canadians and the People's Summit in order to make "security plans" and "deter illegal activities" in advance of pipeline hearings.
CSIS' Integrated Terrorism Assessment Centre prepared a threat assessment of Idle No More in January 2013, but a CSIS spokesperson stressed to Postmedia News that the spy agency did not consider Idle No More a terrorist group.
In an earlier era, some high profile Conservative and former Reform MPs were on the record asserting that Nelson Mandela was a terrorist. (Conservative MP Rob Anders has actually called Mandela a "communist and a terrorist").


text:
@interface DetailViewController : UIViewController

@property (nonatomic) NSURL *venueImageURL;
@property (weak, nonatomic) IBOutlet UIImageView *venueImageLarge;
@property (nonatomic) NSString *venueName;
@property (nonatomic) NSString *tipText;
@property (nonatomic) NSInteger hereNow;
@property (nonatomic) CGFloat rating;
@property (nonatomic) NSInteger checkinsCount;
@property (nonatomic) NSArray *address;

@end


Kanye West has reportedly been using Sunday church services as his latest musical outlet.
The services are attended by the entire West family, which consists of the College Dropout artist and Kardashian, and their children: North, 6, Saint, 3 and Chicago, 1. Kardashian has shared videos of the children dancing at what has reportedly been their home. The KKW Beauty creator even tweeted about the services in January.
The Wests are reportedly not the only famous faces who appear at the music-led service. Members of the Kardashian-Jenner clan have been seen documenting the Sunday performances and posting them online. Essence reports that Rick Rubin, Kid Cudi, David Letterman, and Charlie Wilson have also shown up to the Kardashian-West home for some of these services.
According to TMZ, rapper DMX led West's service on Sunday with a prayer. He reportedly covered topics like "accepting Jesus, blessings, opening doors that were once closed, being highly favored by God, shooting down the devil, etc." DMX's prayer resonated with many members of the morning service's audience.
West also filed a lawsuit against EMI for extending his contract an additional seven years. The rapper claimed that doing so granted the label permission to not give him "one moment of freedom." The case against EMI is still pending, though the label has reportedly denied that West is under a personal service contract. West's deal is also governed by New York exclusively, in which no servitude law exists.