text:
The Snake. Sorry, but no Tears for Oklahoman Trumpers as WeatherCaster Cuts Loom
"You knew I was a snake when you picked me up."
I posted the other day on massive new cuts to the National Weather Service. Science, of course we knew, is not a priority for the Trump Administration.
Apparently, Oklahomans hadn't given it much thought.
Raw Story:
Oklahoma voted overwhelmingly for President Donald Trump and now the Republican leader is hitting back against his most loyal supporters, KFOR news reported.
In his budget, Trump has proposed gutting the National Weather Service in an area of the country that depends on forecasters and meteorologists to protect them from extreme weather events.
"For some bizarre reason, the president is proposing to cut 248 forecasters," National Weather Service Legislative Director Richard Hirn told KFOR.
"Should the public be concerned about these potential staff cuts? I think the answer is yes because – even though you see things coming down the pipe for days, sometimes weeks in advance – even those last few minutes or hours can make a huge difference on the outcome as to what type of severe weather in this particular case that we may receive," KFOR meteorologist Mike Morgan explained.
The NWS could lose more than 350 staffers, the vast majority of which would be forecasters.
"The Trump administration has proposed to effectively eliminate 20 percent of the forecasters or front-line operational employees at the 122 forecast offices around the country," Hirn said.
Hirn warned it could mean closing the NWS in Norman during nights and on weekends. Many of the state's worst tornadoes have been late in the afternoon and a powerful storm doesn't check the calendar to see whether it's Monday through Friday.
"That office would be closed in the evening and another office, maybe in Tulsa or in Texas, will be responsible for issuing the warnings," Hirn said.
Weather warnings aren't the only concern, the National Weather Service data is used by airports to determine safety for takeoff and landing of planes.
"It would be fair to say I think, if there was any delay of information regarding weather really when it's inclement weather, that that could have an impact on our operations and our traveling public," Will Rogers Airport Spokesperson Karen Carney said.
Since the first EF5 tornado to hit Moore, Oklahoma May 3, 1999, Oklahoma has had six EF5 tornadoes. Since the 1999 outbreak, Oklahoma has had 1,193 tornadoes and 3,739 since 1950. The National Weather Service might be headquartered in Oklahoma, but it also helps other satellite locations with forecasting in neighboring red states. That includes Kansas, which suffered from a severe EF5 tornado that wiped Greensburg off the map in 2007. Missouri similarly had a major EF5 tornado that hit Joplin in 2011.
In 2013, the NWS got a boost to their budget so that they could improve computing power needed to make quicker forecasts and save more lives.
3 Responses to "The Snake. Sorry, but no Tears for Oklahoman Trumpers as WeatherCaster Cuts Loom"
realthog Says:
You have words missing after "Norman, Oklahoma is the location of one of"
I am finding it increasingly difficult to listen to Trump and watch video clips of his prancing around—–his words and delivery are stomach turning.
It's a shame that the good folks in tornado alley are likely to suffer, but they can thank their neighbors for having "picked up the snake" and voted for the Orange Menace.
PS One of the things that is a turnoff is Trump's narcissistic "TV Star" hairdo. The truth has finally come out now that he has been caught on video in high wind. There is also mention of his hair fraud in "Fire and Fury"—-he has had scalp reduction surgery and now is bald on top and in back with a crown of hair that goes around the sides and FRONT of his head—-it is combed and sprayed to give us what we see. It's a shame that he can't grow up and just wear his hair like any normal 70+ year-old would. Remember Ike?
The headline for the snake poem video should read "Trump reveals fascist intentions."
"History never repeats itself but it does rhyme." Authorship unknown.
Like Hitler, who was appointed to power by the head of the sortademocratic government the Nazis had weakened to the point of near-collapse, (a form of weaponized projective identification* very common to the right now) the less educated and economically stressed small rural red states and rural and suburban people in a few swing states (s)elected the current autocratic cabal using a rigged system, with the presumably-unwitting help of their Democratic "opposition", and will now have to deal with increasing job losses, street violence, and other consequences of increasingly hostile, autocratic, rabidly capitalistic governments at every level.
Just in case we recover from this in time to avoid utter ecological catastrophe, someone needs to sit down right now and write the history of the next 7 years in the US, and Year 8 when the great HOMOTH, His Orange Majesty Of The Hairdo, refuses to step down, and declares that all future elections will be both run and certified by the GRU's North American branch.
"The past is never dead. It's not even past."
William Faulkner, Requiem for a Nun (1951) Act 1, sc. 3;
"The past is the present, isn't it? It's the future, too. We all try to lie out of that but life won't let us."
― Eugene O'Neill, Long Day's Journey Into Night
"Otto Strasser: What is the program of the NSDAP?
Hitler: The program is not the question. The only question is power.
Strasser: Power is only the means of accomplishing the program.
Hitler: These are the opinions of the intellectuals. We need power!"
Toland, John (1976). Adolf Hitler. New York: Doubleday & Company. ISBN 0-385-03724-4.
David Roberts has pointed out a number of times in different ways the increasingly obvious fact that the DON, Der Orange Narziß, has no beliefs as such, only [my interpretation:] the needs to dominate, be adored and stay unconscious. These dictate everything he says and does.
http://grist.org/politics/david-roberts-explains-postmodern-conservatism-in-36-tweets/
https://www.vox.com/2016/9/29/13086236/trump-beliefs-category-error
The fact that those personal, psychological needs not only dictate but ARE the whole Republican agenda reveals what should be increasingly obvious, that the Republican party is driven not by anything that could be called a philosophy or even an ideology, but by entirely inner, personal needs caused by long term childhood tragedies. German psychologist Alice Miller describes a lot of this in her book For Your Own Good, which uses Hitler and a German serial child murderer as case studies that turn out to be about the origins of current right wing rage, the specificity of repetition compulsion**, and other artifacts of childhood.
* Projective identification is projection of unacceptable qualities accompanied by actions which seem to make the projections come true. The US and USSR didn't trust each other; so both took secretive, aggressive actions that seemed to validate that lack of trust. This did then and often can lead to a positive feedback loop. http://www.melanie-klein-trust.org.uk/projective-identification
** Repetition compulsion is the drive to repeat traumatic events, in an unconscious and twisted effort to make them come out better the 2nd, 3rd, 4th… times around. Because the same developmental disability that causes the problem in the first place warps the ability to evaluate and improve outcomes thereafter, without the help of someone caring and well-trained it rarely comes out any better than the first time. There is what at best could be called an eerie exactness to the echoes of the past when it's repeated in this way. It's most often not revealed through literal exactness but symbolic repetitions–like snake poems are not about snakes but metaphor.
« Senator Whitehouse on Trump Budget
EPA's Scott Pruitt Flying First Class because He gets too many "Eff Yous" in Coach. Seriously. »


You can earn a 5% commission by selling Dominate Original Waxx Hair Styling Wax, Strong Hair Hold With A Wet Look, 85g (3 oz) on your website. It's easy to get started - we will give you example code. After you're set-up, your website can earn you money while you work, play or even sleep! You should start right now!


text:
package com.google.android.libraries.pcc.chronicle.codegen.processor;

import static com.google.common.truth.Truth.assertThat;

import androidx.test.ext.junit.runners.AndroidJUnit4;
import com.google.android.libraries.pcc.chronicle.api.DataTypeDescriptor;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaOpaqueType_GeneratedKt;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaType;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaTypeConnectionProvider;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaTypeGeneratedStorageProviderModule;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaTypeReaderWithDataCache;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaTypeReaderWithDataCacheImpl;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaTypeWriterWithDataCache;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaTypeWriterWithDataCacheImpl;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaType_GeneratedKt;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaType_Generated_ConnectionsKt;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleJavaType_Generated_StorageKt;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleNestedJavaType_GeneratedKt;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.annotatedtypes.ExampleSelfReferentialJavaType_GeneratedKt;
import com.google.android.libraries.pcc.chronicle.codegen.processor.testdata.expectedgeneratedtypes.ExpectedJavaGeneratedDtdKt;
import com.google.android.libraries.pcc.chronicle.storage.datacache.DataCacheReader;
import com.google.android.libraries.pcc.chronicle.storage.datacache.DataCacheStorage;
import com.google.android.libraries.pcc.chronicle.storage.datacache.DataCacheWriter;
import com.google.android.libraries.pcc.chronicle.storage.datacache.DefaultManagedDataCacheConnectionProvider;
import com.google.android.libraries.pcc.chronicle.storage.datacache.ManagedDataCache;
import dagger.hilt.android.testing.HiltAndroidRule;
import dagger.hilt.android.testing.HiltAndroidTest;
import java.time.Duration;
import java.util.Set;
import javax.inject.Inject;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;

/**
 * Tests that Java data classes annotated with @ChronicleData and @DataCacheStore generate expected
 * results that are accessible in other Java files.
 */
@HiltAndroidTest
@RunWith(AndroidJUnit4.class)
@Config(application = ChronicleDataAnnotationProcessorJavaTest_Application.class)
public class ChronicleDataAnnotationProcessorJavaTest {
  @Rule public final HiltAndroidRule hiltRule = new HiltAndroidRule(this);

  @Inject DataCacheStorage dataCacheStorage;

  @Inject ManagedDataCache<ExampleJavaType> managedDataCache;

  @Inject Set<DataTypeDescriptor> dataTypeDescriptors;

  @Before
  public void setUp() {
    hiltRule.inject();
  }

  @Test
  public void generatedClass_equalsExpectedDTD() {
    // Compare the generated DTD for ExampleJavaType with the manually written, expected DTD.
    assertThat(ExampleJavaType_GeneratedKt.EXAMPLE_JAVA_TYPE_GENERATED_DTD)
        .isEqualTo(ExpectedJavaGeneratedDtdKt.EXPECTED_EXAMPLE_JAVA_TYPE_GENERATED_DTD);
  }

  @Test
  public void generatedNestedClass_equalsExpectedDTD() {
    // Compare the generated DTD for ExampleNestedJavaType with the manually written, expected DTD.
    assertThat(ExampleNestedJavaType_GeneratedKt.EXAMPLE_NESTED_JAVA_TYPE_GENERATED_DTD)
        .isEqualTo(ExpectedJavaGeneratedDtdKt.EXPECTED_EXAMPLE_NESTED_JAVA_TYPE_GENERATED_DTD);
  }

  @Test
  public void generatedClassWithIBinder_equalsExpectedDTD() {
    // Compare the generated DTD for ExampleJavaIBinderType with the manually written, expected DTD.
    assertThat(ExampleJavaOpaqueType_GeneratedKt.EXAMPLE_JAVA_OPAQUE_TYPE_GENERATED_DTD)
        .isEqualTo(ExpectedJavaGeneratedDtdKt.EXPECTED_EXAMPLE_JAVA_OPAQUE_TYPE_GENERATED_DTD);
  }

  @Test
  public void generatedSelfReferentialClass_equalsExpectedDTD() {
    // Compare the generated DTD for ExampleSelfReferentialJavaType with the manually written,
    // expected DTD.
    assertThat(
            ExampleSelfReferentialJavaType_GeneratedKt
                .EXAMPLE_SELF_REFERENTIAL_JAVA_TYPE_GENERATED_DTD)
        .isEqualTo(
            ExpectedJavaGeneratedDtdKt.EXPECTED_EXAMPLE_SELF_REFERENTIAL_JAVA_TYPE_GENERATED_DTD);
  }

  @Test
  public void generatedDtds_injectedIntoSet() {
    assertThat(dataTypeDescriptors)
        .containsAtLeast(
            ExampleJavaType_GeneratedKt.EXAMPLE_JAVA_TYPE_GENERATED_DTD,
            ExampleNestedJavaType_GeneratedKt.EXAMPLE_NESTED_JAVA_TYPE_GENERATED_DTD,
            ExampleJavaOpaqueType_GeneratedKt.EXAMPLE_JAVA_OPAQUE_TYPE_GENERATED_DTD,
            ExampleSelfReferentialJavaType_GeneratedKt
                .EXAMPLE_SELF_REFERENTIAL_JAVA_TYPE_GENERATED_DTD);
  }

  @Test
  public void generatedSet_equalsExpectedConnections() {
    // Compare the generated connections for ExampleJavaType with the manually written, expeced
    // connections.
    assertThat(ExampleJavaType_Generated_ConnectionsKt.EXAMPLE_JAVA_TYPE_GENERATED_CONNECTIONS)
        .isEqualTo(ExpectedJavaGeneratedDtdKt.EXPECTED_EXAMPLE_JAVA_TYPE_GENERATED_CONNECTIONS);
  }

  @Test
  public void generatedClass_equalsExpectedManagementStrategy() {
    // Compare the generated ManagementStrategy for ExampleJavaType with the manually written,
    // expected ManagementStrategy.
    assertThat(
            ExampleJavaType_Generated_StorageKt
                .EXAMPLE_JAVA_TYPE_GENERATED_DATA_CACHE_STORE_MANAGEMENT_STRATEGY)
        .isEqualTo(
            ExpectedJavaGeneratedDtdKt
                .EXPECTED_EXAMPLE_JAVA_TYPE_GENERATED_DATA_CACHE_STORE_MANAGEMENT_STRATEGY);
  }

  @Test
  public void generatedInt_equalsExpectedMaxItems() {
    // Compare the generated maxItems for ExampleJavaType with the manually written,
    // expected maxItems.
    assertThat(ExampleJavaType_Generated_StorageKt.EXAMPLE_JAVA_TYPE_GENERATED_MAX_ITEMS)
        .isEqualTo(ExpectedJavaGeneratedDtdKt.EXPECTED_EXAMPLE_JAVA_TYPE_GENERATED_MAX_ITEMS);
  }

  @Test
  public void generatedModuleFunctionCall_returnsExpectedStorage() {
    // Compare the storage obtained by calling the provider function in the generated module for
    // ExampleKotlinType with the manually written, expected storage.

    ManagedDataCache<ExampleJavaType> expectedStorage =
        new ManagedDataCache<>(
            ExampleJavaType.class,
            dataCacheStorage,
            1000,
            Duration.ofDays(2),
            ExampleJavaType_GeneratedKt.EXAMPLE_JAVA_TYPE_GENERATED_DTD);

    ManagedDataCache<ExampleJavaType> generatedStorage =
        ExampleJavaTypeGeneratedStorageProviderModule.provideExampleJavaTypeManagedDataCacheStorage(
            dataCacheStorage);

    assertThat(TestUtilsKt.configEquals(generatedStorage, expectedStorage)).isTrue();
  }

  @Test
  public void generatedModule_providesExpectedStorageViaHilt() {
    ManagedDataCache<ExampleJavaType> expectedStorage =
        new ManagedDataCache<>(
            ExampleJavaType.class,
            dataCacheStorage,
            1000,
            Duration.ofDays(2),
            ExampleJavaType_GeneratedKt.EXAMPLE_JAVA_TYPE_GENERATED_DTD);

    assertThat(TestUtilsKt.configEquals(managedDataCache, expectedStorage)).isTrue();
  }

  @Test
  public void generatedReader_isComposedOfReadConnectionAndDataCacheReader() {
    Class<ExampleJavaTypeReaderWithDataCacheImpl> cls =
        ExampleJavaTypeReaderWithDataCacheImpl.class;
    assertThat(cls).isAssignableTo(ExampleJavaTypeReaderWithDataCache.class);
    assertThat(cls).isAssignableTo(DataCacheReader.class);
  }

  @Test
  public void generatedWriter_isComposedOfWriteConnectionAndDataCacheWriter() {
    Class<ExampleJavaTypeWriterWithDataCacheImpl> cls =
        ExampleJavaTypeWriterWithDataCacheImpl.class;
    assertThat(cls).isAssignableTo(ExampleJavaTypeWriterWithDataCache.class);
    assertThat(cls).isAssignableTo(DataCacheWriter.class);
  }

  @Test
  public void generatedConnectionProvider_extendsDefaultManagedDataCacheConnectionProvider() {
    Class<ExampleJavaTypeConnectionProvider> cls = ExampleJavaTypeConnectionProvider.class;
    assertThat(cls).isAssignableTo(DefaultManagedDataCacheConnectionProvider.class);
  }
}

redpajama_set_name: RedPajamaGithub


text:
Home / Comics, Comic Art & Animation Art / Search Results / Find a Title / Action Comics
Action Comics #1 (DC, 1938) CGC FN- 5.5 Cream to off-white pages....
Auction amount: $956,000
Sold: Aug 6, 2016
Introduction to Action Comics
Action Comics is an American comic book that is best known for introducing Superman to the world. It is one of the longest-running comic books ever, spanning 1938 to the present. Action Comics is published by DC Comics (originally known as National Allied Publications, it officially changed its name to DC in 1977). It is one of the few comics to last through every publishing era, spanning The Golden, Silver, Bronze, and Modern ages. The industry's biggest writers, editors, and artists have done some of their most iconic work in the pages of Action Comics. This list includes Jerry Siegel and Joe Shuster (creators of Superman), artists Wayne Boring, Neal Adams, John Byrne, Jim Lee and the man who has drawn more Superman stories than anybody, Curt Swan. Among the popular writers, we have Bill Finger, Edmond Hamilton, Otto Binder, Denny O'Neil, Marv Wolfman, Paul Dini, and most recently Grant Morrison.
Brief History of Action Comics
Action Comics will always be closely associated with Superman, for good reason, Action Comics #1 (on sale April 18th, 1938) features the first appearance of the "Man of Tomorrow". Originally created as an anthology title, the pages of Action Comics debuted adventures for some other famous heroes of The Golden Age. Besides Superman, there were Zatara the Magician, Tex Thompson, and Vigilante.
As comic books shrank in size, the Silver Age saw editor Mort Weisinger forced to move away from the anthology format, instead choosing to focus on the quickly-expanding Superman mythology. The introduction of Brainiac (Action Comics #242) and Supergirl (Action Comics #252) as well as the polarizing Bizarro World (Action Comics #263), were notable additions during this time. However, Mort's greatest contribution may have been the hiring of writer Jim Shooter to write some Superman family stories. Corresponding and working for over a year before finding out, Mort had no idea he had hired a 13-year old. Mort retired in 1970, allowing editor Julius Schwartz to update the mythos by destroying all kryptonite on earth and making Clark Kent a TV reporter for 17 years until DC decided to update the Man of Steel again at the hands of John Byrne.
In more recent years, the comic has served as a testing ground for new ideas. Lex Luthor was the main character for ten issues in the late 2000s. The New 52 relaunch in 2011 saw famed writer Grant Morrison and artist Rags Morales reset the clock on Superman, choosing instead to focus on his early days as a costumed crime-fighter. No matter the incarnation, Action Comics continues to be one of the most popular titles in modern publishing history.
Action Comics may have briefly become Action Weekly in 1988 and started the numbering over with the second run of Action Comics in 2011 which ran until 2016. But the third run picked up the old numbering system and continues with the DC Rebirth-branded relaunch in 2016. Action Comics has now numbered over 1,000 issues! How's that for staying power!
How much are Action Comics worth?
Action Comics can be worth hundreds to thousands of dollars, with Action Comics #1 occasionally fetching millions at auction. While Action Comics #1 is obviously an outlier, even later comics in the run (#2 - #252) can fetch thousands, tens of thousands, and even hundreds of thousands from collectors. Often value can be tied to a favorite character, including the first appearance of Luthor in Action Comics #23, worth up to $65,000 or Lois Lane's first cover appearance on Action Comics #29 which is worth up to $26,000. Other notable first appearances include Action Comics #33 (Tex Thompson becomes Mr. America, origin), Action Comics #40 (1^st^ appearance of Star-Spangled Kid & Stripesy, also created by Jerry Siegel), Action Comics #42 (1^st^ appearance & origin of Vigilante), Action Comics #51 (1st appearance of The Prankster) and Action Comics #64 (1^st^ appearance of Toyman).
Be aware that no matter the comic, the condition of the comic has an overwhelming effect on its value – with mint condition comics being exponentially more valuable than anything else.
Action Comics prices - what is the most expensive Action Comics sold at auction?
The most expensive Action Comics ever sold at an auction is Action Comics #1, which sold for $3.2 million dollars on August 14th, 2014. It was certified as a 9.0 Universal (that means no restoration or conservation was done to the book) on a 10-point scale by the third-party certification service Certified Guaranty Company, and listed as having "white pages". While there was an initial run of 200,000 copies, only around 100 are thought to still exist in the world. Of those, CGC has graded only three other Action Comics #1 8.0 Universal or higher. The combination of scarcity and the amazing condition of the comic itself led to this being the most valuable comic of all time.
What Action Comics are worth money?
Action Comics #1 is worth the most (it's the most valuable comic of all time), but there are a few other notable Action Comics that are also quite valuable. Action Comics #7 is the second most valuable, selling at an auction for $188,000 in February of 2008. Action Comics #10, selling for $258,000 in August 2011, is the 3^rd^ most valuable with Superman on his 3^rd^ cover and Action Comics #13 is also notable, with an auction price coming in at $185,000. All of these comics have one big thing in common: Superman is on the cover, and their unrestored condition was graded as a 7.0 or better by the CGC.
Action Comics #1 Overview
Action Comics #1 Cover Art
The cover art for Action Comics #1 was created by Joe Shuster, a well-known comic book artist, and the co-creator of Superman.
Characters from Action Comics #1
Action Comics #1 is known for featuring the first appearance of Superman and Lois Lane. Since this was an anthology series, there are also stories featuring other Action Comics characters, the most notable being Zatara and Tex Thompson. The rest have entered the dustbin of history.
Plot Summary of Action Comics #1
Containing 11 separate stories, the most notable feature is the first in the book and is untitled. The 13-page story opens with the now-familiar 1-page origin story of Superman. His birth parents send him to safety as their home planet of Krypton is destroyed. The boy grows up as Clark Kent with adoptive parents on Earth and uses his unique powers including the ability to outrun a freight train, jump over buildings and lift incredible weights to thwart evil.
How rare is Action Comics #1?
While it is difficult to determine exactly how many original Action Comics #1 are still around today due to many of these comics being part of private collections, it is estimated that between 50 and 100 remain intact. Not only is Action Comics #1 difficult to find, but it is also nearly impossible to locate one of these comics in Good or better condition according to the Certified Guarantee Company's comic book registry.
How much is Action Comics #1 worth?
The rarity and value of Action Comics #1 are evident in recent auctions of the comic. An original comic in Very Fine condition (8.0) was sold for $1 million in February 2010, and another original in the same condition fetched $1.5 million a month later. A Very Fine/Near Mint (9.0) Action Comics #1 was purchased for $3.2 million in 2014, making it the most expensive comic to date. Can't afford to spend a million dollars on a nice copy? Perhaps nothing expresses the value better than the sale of a low-grade copy. A coverless copy still managed to fetch $82,622 in December of 2018. Good luck finding this book at your local flea-market.
How to tell original Action Comics #1 from a reprint?
Since Superman made this comic so popular in its initial run, it has been and continues to be reprinted. Many confuse the original Action Comics #1 with the version that was reprinted in the "Famous 1st Edition" series published by DC Comics. Like the original, it's 64-page but this edition was oversized, measuring 10" x 13.5" not 7.5" x 10.25". It is also printed with a cardboard cover that is different from the original. This is usually removed exposing the inside so that it looks like the original with a slick cover and pulp pages. Besides the size, it features three staples instead of two. For more information on other ways to tell the difference between an original and the many reprints, check out[ our guide|https://comics.ha.com/information/action-comics-1-and-later-reprints.s].
Action Comics #7 value
Many consider Action Comics #7 to be the second most valuable comic in the series with an Overstreet Comic Price Guide value in 9.2 of $510,000. It features Superman on the cover for the second time ever. The image shows him dangling a man while using his power of flight for the first time (though technically this power would only become canon much later). Action Comics #7 was dated December 1938. Because of its limited availability and sheer popularity (plus it being Superman's second-ever cover), this work is extremely difficult to find.
Heritage Auctions[ sold a copy|https://comics.ha.com/itm/golden-age-1938-1955-/superhero/action-comics-7-dc-1938-cgc-vf-80-off-white-to-white-pages/a/827-41003.s] of Action Comics #7 (certified 8.0 from CGC) for $143,400.
Action Comics #13 value
Action Comics #13 is considered one of the top 25 most valuable comics ever, with a price guide valuation of $180,000 for any copy with a 9.2 grade. It was dated June 1939. It is the first appearance of the Ultra-Humanite, but perhaps even more notably some say it features Superman using his power of flight for the first time. This is debatable among his fans. It is famous for its cover, which features Superman stopping a rushing train from going over a collapsed bridge, as well as a two-page centerfold ad for Superman #1.
Heritage Auctions[ sold a copy|https://comics.ha.com/itm/golden-age-1938-1955-/action-comics-13-dc-1939-cgc-vf-nm-90-cream-to-off-white-pages/a/7192-91046.s?ic4=OtherResults-SampleItem-071515&tab=ArchiveSearchResults-012417] of Action Comics #13 (certified 9.0 from CGC) for $156,000.
Why sell your vintage comics and original comic art with Heritage Auctions?
Our marketing reach and a huge base of members mean more bidders and higher realized prices for your collectible comics.
Reputation can make or break your sale. Heritage Auctions has a 60% market share in comics and comic art — three times the volume of any other comic auctioneer, and our record-breaking comics and comic art auctions speak for themselves:
2019 was a record year with $79 million-plus sold, topping $58 million in Comics and Comic Art sold in 2018; triple all other comic auctioneers combined!
World's Most Valuable Auction of Comic Books, Comic Art, and Related Memorabilia: $15.121 million (May 2019)
World record for comic artist Robert Crumb - Fritz the Cat Cover, $717,000.
The world record for comic artist Frank Frazetta - Egyptian Queen, $5.4M
World record for comic artist Neal Adams – Batman #251 Cover, $600,000
Free Action Comics appraisal
Get a Free Auction Evaluation for Comic Books, Comic Art & Animation Art - Generous Cash Advances Available!
We are always accepting individual comic books and collections for future auctions or even for outright purchase. Request free action evaluation for comics and comic art.
Other Titles by this Publisher
Adventure Comics
All Star Comics
All-American Comics
Comics & Comic Art Animation Art (100) Comic Art (953) Comics (10,506)
Archive: Sold Archive: Not Sold (461) Archive: Additional Auction Sold under $500 (1)
Golden Age (1938-1955) (4,003) Silver Age (1956-1969) (3,493) Bronze Age (1970-1979) (998) Modern Age (1980-Present) (195) Magazines (22) Books (3) Pulps (19) Original Comic Art (1,110) Illustration Art (5) Animation Art (18) Memorabilia (443) Video Games (21)
2020 November 19 - 22 Comics & Comic Art Signature Auction - Dallas 7236 (42) 2021 January 14 - 17 Comics & Comic Art Signature Auction - Dallas 7239 (9) All Signature Auctions (2,160) All Internet and Final Session Auctions (8,295)
Buy Now from Owner (1) Featured (89) Make Offer to Owner (1,832) Video Description (2) Owner Accepting Offers (1,524)
Poor 0.1 to Very Good- 3.5 (1,541) Very Good 4.0 to Very Fine- 7.5 (3,629) Very Fine 8.0 to Near Mint- 9.2 (1,794) Near Mint 9.4 to Gem Mint 10.0 (1,543) Varies or N/A (844)
1940 (428) 1941 (416) 1959 (343) 1945 (296) 1944 (278) 1946 (264) 1942 (259) 1943 (259) 1939 (218) 1952 (212) More...
CGC (4,810) CBCS (152) Uncertified (3,341)
Adventure (116) Alternative/Underground (4) Cartoon Character (24) Crime (44) Funny Animal (1) Horror (5) Humor (4) Non-Fiction (14) Religious (3) Science Fiction (57) Superhero (8,256) War (92) Western (34) Miscellaneous (90)
$1 - $100 (2,888) $101 - $1000 (6,161) $1,001 - $10,000 (1,283) $10,001 - $100,000 (145) $100,001 > (20)
DC (7,842) Various Publishers (442) Marvel (338) Atlas (144) Charlton (58) Timely (54) Other (51) United Artists (50) Ace (45) Whitman (42) More...
The David Toth Collection of DC Silver Age (37) The Toronto Collection (30) The Billy Wright Collection (28) The Down Under Collection (18) The Nicolas Cage Collection (15) The Larry Jacobs Collection (13) The Empire Comics Collection (8) The Davis Crippen 'D' Copy Collection (4) The Bobby Harmon (4) The Ben Novack Jr. Estate Collection (4) More...
Save "Action Comics" to My Wantlist Free Appraisal
How do you know what's valuable?
Our Comic Book Value Guide provides free information about how to value your Action Comics Comics.
View Comic Book Value Guide
View Past Sale Prices Action Comics (10,506)
Get Notified of New Matches Create a Wantlist for Action Comics Comics
Have Action Comics Comics to sell? Ask about cash advances.
Action Comics Comic Books values sold at auction
Sold For: $956,000.00
Action Comics #1 (DC, 1938) CGC VG 4.0 Cream to off-white pages....
Action Comics #1 Billy Wright pedigree (DC, 1938) CGC GD/VG 3.0 Off-white to white pages....
Action Comics #1 (DC, 1938) CGC GD/VG 3.0 Cream to off-white pages....
Fred Guardineer Action Comics #15 Superman Cover Original Art (DC, 1939)....
Action Comics #7 Court Copy (DC, 1938) CGC FN- 5.5 Off-white to white pages....
Action Comics #1 (DC, 1938) CGC Apparent VF 8.0 Moderate/Extensive (A-4) Cream to off-white pages....
Action Comics #7 (DC, 1938) CGC VG/FN 5.0 Off-white to white pages....
Action Comics #13 (DC, 1939) CGC VF/NM 9.0 Cream to off-white pages....
Action Comics #1 (DC, 1938) CGC Apparent VF 8.0 Moderate (P) Cream to off-white pages....
Action Comics #7 (DC, 1938) CGC VG 4.0 Off-white pages....
Action Comics #7 (DC, 1938) CGC VF 8.0 Off-white to white pages....
Auction 827 | Lot: 41003 | Feb 28, 2008
Action Comics #1-24 Bound Volumes (DC, 1938-40).... (Total: 2 Items)
Action Comics #1 Court Copy (DC, 1938) CGC Apparent FN+ 6.5 Moderate (P) Off-white pages....
Auction 7033 | Lot: 91372 | May 5, 2011
Action Comics #1 (DC, 1938) CGC FN- 5.5 Off-white pages. More than a comic book, more than a superhero, this is a true piece...
Auction 806 | Lot: 3001 | Mar 6, 2003
Action Comics #1 (DC, 1938) CGC Apparent VF+ 8.5 Moderate (P) Off-white to white pages....
Auction 828 | Lot: 41001 | May 22, 2008
Fred Ray Action Comics #45 Cover Superman Original Art (DC, 1942)....
Fred Ray Action Comics #46 Superman Cover Original Art (DC, 1942)....
Action Comics #1 (DC, 1938) CGC VG+ 4.5 Off-white to white pages. Featuring the introduction of Superman, this book single-h...
Auction 804 | Lot: 5001 | Oct 10, 2002
Action Comics #13 (DC, 1939) CGC VG 4.0 Off-white to white pages....
Action Comics #23 (DC, 1940) CGC VF+ 8.5 Off-white to white pages....
Auction 7224 | Lot: 91047 | Mar 5, 2020
Jack Burnley (as Joe Shuster) Action Comics #28 Story Page 13 Original Art (DC, 1940)....
Auction 7239 | Lot: 94013 | Jan 15, 2021
Action Comics #1 (DC, 1938) CGC VF- 7.5 Moderate (P) Off-white to white pages. Your eyes do not deceive you -- this is a gor...
Auction 819 | Lot: 2001 | Jan 19, 2006
Auction 824 | Lot: 41013 | May 3, 2007
Action Comics #23 (DC, 1940) CGC VF+ 8.5 Cream to off-white pages....
Action Comics #1 (DC, 1938) CBCS PR 0.3 Off-white to white pages....
Action Comics #1 (DC, 1938) CGC Apparent VF- 7.5 Moderate (P) Cream to off-white pages. In comic collecting, nothing bestows...
Auction 822 | Lot: 41004 | Nov 16, 2006
Fred Ray - Action Comics #45 Superman Cover Original Art (DC, 1942). ...
Auction 823 | Lot: 42420 | Jan 18, 2007
Action Comics #1 (DC, 1938) CGC VG- 3.5 Cream to off-white pages. Featuring the introduction of Superman, this book single-h...
Auction 809 | Lot: 3001 | Feb 7, 2004
Action Comics #1 (DC, 1938) CGC Apparent VG/FN 5.0 Extensive (P) Off-white pages....
Action Comics #2 Billy Wright pedigree (DC, 1938) CGC VG/FN 5.0 White pages....
Fred Ray - Action Comics #51 Cover Original Art (DC, 1942). Armed only with a squirt gun and a "foolproof plot," the Prankst...
Auction 817 | Lot: 6426 | Aug 13, 2005
Fred Ray - Action Comics #45 Cover Original Art (DC, 1942). This rousing scene recalls the dynamism of Superman's first crim...
Action Comics #1 (DC,1938). The number one comic book of all time, Action #1 represents the pinnacle of collecting, a la...
Auction 802 | Lot: 6861 | Mar 16, 2002
Action Comics #7 (DC, 1938) CGC VG/FN 5.0 White pages....
Superman #1 (DC, 1939) CGC VG+ 4.5 Cream to off-white pages. Superman's original title vehicle, Action Comics, couldn't ...
Action Comics #252 (DC, 1959) CGC NM- 9.2 Cream to off-white pages....
Action Comics #25 Mile High pedigree (DC, 1940) CGC NM+ 9.6 White pages....
Action Comics #1 (DC, 1938) CGC GD+ 2.5 Cream to off-white pages. Here's the comic book that started it all. No other book h...
Auction 808 | Lot: 5633 | Nov 22, 2003
Action Comics #63 Mile High pedigree (DC, 1943) CGC NM+ 9.6 Off-white to white pages....
Action Comics #19 (DC, 1939) CGC VF/NM 9.0 Off-white pages....
Curt Swan and George Klein Action Comics #350 Cover Superman Original Art (DC, 1967)....
Action Comics #13 Billy Wright pedigree (DC, 1939) CGC VG/FN 5.0 Off-white to white pages....
Action Comics #1 (DC, 1938) CGC GD+ 2.5 Cream to off-white pages. The comic that officially launched the Golden Age rightful...
Auction 751 | Lot: 3566 | Jul 29, 2004
Action Comics #23 (DC, 1940) CGC FN/VF 7.0 Off-white to white pages....
Note: Amounts include buyer's premium.

redpajama_set_name: RedPajamaCommonCrawl


text:
from stream import app
app.run(debug=True, threaded=True)


Through generous grants from Crader Distributing and Stihldealers.com, as well as DuPont Pioneer, the Missouri 4-H Foundation offers grants of up to $1,000 to match funding for a 4-H Community Service project.
Projects are youth-driven: youth are involved in planning, fundraising and execution.
Projects offer youth opportunities to serve, work and develop life skills.
Projects are geared to the skill level of youth participants.
Projects demonstrate a "Return on Investment" in the community.
Fundraising events that benefit the 4-H program hosting the event.
Successful project examples include: state lake improvements and waterfowl box construction, raised garden constrction at nursing homes, community vegetable gardens, heirloom gardens at historic sites, day camps and events for special needs youth and recycling events.
Be submitted by an organized 4-H entity such as a county 4-H council, 4-H club, county 4-H foundation or county MU Extension council acting on behalf of the 4-H group.
Be signed by a 4-H member or leader and the 4-H youth specialist or YPA responsible for the county from which the proposal is submitted.
Involve 4-H members and adult volunteers, as well as other youth, adults and community members in a meaningful project to serve others, improve the community and make a difference. 4-H members should be actively invovled in "learning by doing" through community service.
Demonstrate recipt of matching funds or in-kind contributions. Grant monies must have at least 100% match funds. For example, a $100 grant request must have $100 in matching funds or in-kind contributions such as labor, materials, supplies, etc. Youth labor is a priority.
Include a public relations plan. Describe how your group will work with the media and other community information sources to recognize 4-H, the Missouri 4-H Foundation, Crader Distributing and Stihldealers.com, or DuPont Pioneer.
Applications must be completed electronically and submitted to the Missouri 4-H Foundation at 4hfoundation@missouri.edu.
We highly encourage you to read How to write a winning Missouri 4-H Foundation Community Service grant application (PDF) before applying for funds.


Home / Brighton Ngoma / Celebrity / Brighton Ngoma On Why He Didn't Speak At His Friend Dumi's Memorial!
Brighton Ngoma On Why He Didn't Speak At His Friend Dumi's Memorial!
Brighton Ngoma On Why He Didn't Speak At His Friend Dumi's Memorial! While Dumi Masilela's industry friends dominated his memorial service, Scandal actor Brighton Ngoma who was also good friends with Dumi took a step back and now he's sharing why.
Ngoma said it became too much for him and "political" so he decided to not speak despite being on the programme.
"I was on the programme but I didn't speak because I couldn't. At the time I didn't understand the impact he had on his community and I didn't appreciate that it was such a huge media thing and that people were going up on stage and speaking, and it became sort of political thing. I didn't want to be a part of that so I decided to just be there and pay my respects in my own way," he told TshisaLIVE.
He admmitted that it took Dumi's death for to realize how much of a great friend he had.


Help Autumn find her grandfather's treasures in this Hidden Object Adventure game. After receiving her inheritance, Autumn finds a mysterious journal page in Gramp's antique store, and follows his clues across the globe to recover priceless antiques. Autumn's Treasures contain ancient secrets, that only you can discover.


text:
Trump says Putin could be invited to G-7
Macron does not want Russia to be reintegrated without conditions
Published: August 25, 2019 12:46 Bloomberg
File picture of US President Donald Trump, right, with Russian President Vladimir Putin in Germany. Trump made the determination that the United States would terminate adherence to the 1987 arms control accord, senior administration officials told reporters. Image Credit: AP
(Bloomberg) - President Donald Trump says it's "certainly possible" he'll invite Vladimir Putin as a guest to next year's Group of Seven summit in the U.S., setting up a flashpoint with fellow nations who ejected the Russian leader over annexation of Crimea.
Trump spoke in Biarritz, France, on Sunday as the day's session of the G-7 was set to get underway. He has previously called to fully readmit Putin into what was once the G-8, while the bloc's fellow nations have balked at readmitting Russia, which was kicked out of the group over its hostilities in Ukraine.
The U.S. will host next year's G-7, and Trump said it's possible he'd invite Putin as a guest but doesn't know.
Putin already has said at a news conference that if an invitation comes, he will be sure to consider it, RIA Novosti reported, citing Kremlin spokesman Dmitry Peskov.
Trump endorsed the idea of readmitting Russia to the G-7 last week. "I think it's much more appropriate to have Russia in," he had said. "So, I could certainly see it being the G-8 again. And if somebody would make that motion, I would certainly be disposed to think about it very favorably."
The G-8 meetings had become the G-7 since 2014, when Russia was excluded from the group in protest of its annexation of Crimea. Countries regularly attend the G-7 as observers, without being full members. Spain, Australia, India and Chile are among the guests in Biarritz, for example.
The U.K., Germany, France and Canada have all dismissed the idea of re-introducing Russia as a full member, unless President Vladimir Putin makes concessions on the continuing hostilities in Ukraine.
"I do not want Russia to be reintegrated without conditions," French President Emmanuel Macron told reporters last week. "No weakness."
Donald Tusk, President of the European Council, took aim at Trump's musings about Russia in a G-7 press conference on Saturday, saying "under no condition can we agree with this logic" and that he'd rather invite Ukraine than Russia.
"When it comes to the speculation around inviting Russia to the table, I would like to say this. First, the reasons why Russia was disinvited in 2014 are still valid. What is more, there are new reasons, such as the Russian provocation on the Azov Sea," Tusk said.
Tusk also said Russia was first invited as a full member because it was seen to be pursuing a path of democracy and rule-of-law. "Is there anyone among us who can say with full conviction, not out of business calculation, that Russia is on that path?" Tusk asked.
Trump has often called for efforts to improve U.S. relations with Putin, questioning the findings of U.S. intelligence agencies and former Special Counsel Robert Mueller that Russia interfered in the 2016 election in an effort to help Trump win.
Sign up for the Business Brief
The most important business and market news each morning
Davos chief welcomes return of Trump, Thunberg
'WeWork is still a good business at its core'
SoftBank will help solve WeWork's problems with corporate governance
US firms could win job of cleaning up China's bad debt
China is embracing foreign capital as it grapples with a tide of soured debt
Etihad Credit Insurance to use Credit Bureau scores
Scores will assess creditworthiness of buyers, sellers
UAE wants its family businesses to go public
Dubai non-oil foreign trade surges 22% in 9 months
More Dubai rent cuts? 49,000 new homes expected
The new JOP law: a well-timed initiative?
Workplaces turn more welcoming for AI


text:
Protection & Wash
Radar & Laser
Q²M Cure Matte
Brand: Gyeon
Quantity * 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
Q²M Cure Matte is a unique, silica-based spray sealant designed for matte finished paints and films. This matte sealant spray is both a stand-alone product, providing durable protection and self-cleaning abilities and a spray detailer for ceramic coatings that belogs in all car detailing kits.
Q²M PPF Maintain
Q²M Iron
Q²M WaterSpot
Q²M Bathe+
Q²M Restart Wash
Q²M Cure
Q²M Foam
Q²M WetCoat
Questions for our staff about inventory, shipping, payment or other related inquiries? Get in touch with Titan Motorworks by phone or email and we'll do our best to help.
We can be reached at 585-484-1420 or through our website's contact page.
C'mon by
2975 Brighton Henrietta Town Line Road
Mon - Fri, 8a - 5:30p
Saturday, by appointment only
© 2023 Titan Motorworks, All Rights Reserved.


Dear Travelers, Please send us a message along with your booking request to let us know a little bit about yourself and your group. We like to connect with our future guests looking forward to welcoming them in our home. We are happy to welcome kids! Please note that there are stairs in the apartment so very young kids needs to be supervised at all times. COPIES OF YOUR PASSPORTS ARE REQUIRED AT TIME OF BOOKINGS. Looking forward to welcoming you... Cheers!
Our assistant will be greeting you in Florence and will be available during your stay should you need any assistance. We will require your flight/train arrival detail, a mobile number you will use while traveling and copies of passports. If you will arrive by car, the nearest public garage is GARAGE ORIUOLO, in Via dell'Oriuolo 14. It's better to call or send an email to reserve a spot. Please let us know should you need any assistance with that or anything else regarding your visit.
Stunning renovation, the pictures don't do it justice! Modern kitchen! Excellent apartment, very spacious and within walking distance to most of Florence. Ample space, very tastefully done. Quiet at night.
We are in the heart of the Historic centre of Florence, steps away from the Cattedrale di Santa Maria del Fiore with the Brunelleschi Dome and from the Campanile di Giotto. Any of the little streets will lead you to one of the many worldwide known Florentine Historic sites: Basilica di Santa Croce, Palazzo della Signoria, the Uffizzi, Ponte Vecchio ... You will not miss the chic Via Tornabuoni area ...Talking about Tuscan Delicacies ... plenty of amazing local trattorias and cafes which will attract your senses with their aromas flowing in the air as you pass by. I will certainly make sure to provide you with a list of my favorite places Hard to say but ... unfortunately the - so called - 'Tourist Traps ' are everywhere !!
All major historic site are at walking distance from our apartment: Florence historic centre is at your door step. You definitely don't need a car in the city.


text:
In the period from August 2017 to February 2018, our sales network has been expanded
Last week, a contract was signed with the JP "Electric Power Industry of Bosnia and Herzegovina" d. d. Sarajevo, BA for the delivery, installation and commissioning of equipment for Condition Monitoring Systems for one unit of the "Jablanica" HPP. The manufacturer of the equipment is the company MC-monitoring SA from Switzerland, while the supplier is the company NORTH Protection Ltd, a member of NORTH Group, MC-monitoring's authorized representative for the Balkans.
Two MC-monitoring S.A. MMS Put Through Trial Run in "Vrla 3" HPP, Serbia
We are proud to announce that of October 27, 2017 two Machinery Monitoring Systems (MMS) by MC-monitoring, CH, type Rhino PMS-300® with Orca CMS-500® software have been put through trial run in "Vrla 3" Hydro Power Plant (HPP), Serbia…
New Project in "Vlasinske HPP" – "Vrla 3″ Hydropower Plant, Serbia
Last week, a contract was signed with "Electric Power Industry of Serbia d.o.o." Belgrade, Serbia for delivery, instalation and commissioning of equipment for Condition Monitoring Systems for two units of "Vlasinske HPP" in "Vrla 3″ Hydropower Plant.
We are proud to inform all concerned that a Reliability Direct Inc. from Houston, TX, USA have in their offer the products of NORTH Group, too.
We are proud to announce that of December 23, 2016 two Machinery Monitoring Systems (MMS) by MC-monitoring, CH, type Rhino PMS-300® with Orca CMS-500® software have been put through trial run in "Lisina" Pumped Storage Plant (PSP), Serbia.
We are proud to announce that at the beginning of December 2016 two Machinery Protection Systems (MPS) by MC-monitoring, CH, type Rhino PMS-300® have been put through trial run in "Jablanica" HPP, Bosnia and Herzegovina.
Last week, a contract was signed with "Electric Power Industry of Serbia d.o.o." Belgrade, Serbia for delivery, instalation and commissioning of equipment for Condition Monitoring Systems for two units of "Vlasinske HPP" in "Lisina" Pump Station.
We are glad to introduce to Serbian, as well as South East European market, products of TWave S.L., one of the leaders in the field of Predictive Maintenance (PdM), protection and condition monitoring of critical machines and plants and also a recognized manufacturer of Machinery Protection Systems (MPS) and Machinery Monitoring Systems (MMS), independent and/or supported by SCADA/DCS.
Last week, a contract was signed with the JP "Electric Power Industry of Bosnia and Herzegovina" d.d. Sarajevo, BA for the delivery, installation and commissioning of equipment for Condition Monitoring Systems for two units of the "Jablanica" HPP. The manufacturer of the equipment is the company MC-monitoring SA from Switzerland, while the supplier is the company NORTH Protection Ltd, a member of NORTH Group, MC-monitoring's authorized representative for the Balkans.


After the creator of a trust dies, it sometimes happens that there is trust property but no living trustee. Or, perhaps, the creator of the trust has died and there is still trust property but the present trustee expects the trust to last longer than he or she can serve and the trust failed to provide for a younger, successor trustee.
In such cases the answer is to petition the Probate Court to appoint a new successor trustee. All potential beneficiaries of the trust must be mailed notice of a hearing to appoint a new trustee. If no one objects, the Court will almost always appoint the proposed new trustee.
Sometimes property is in the name of a trust and there are some successor trustees listed but none can be located. It is not known whether they are alive or dead. (The Social Security Administration will tell anyone who asks if a person is known to be dead by the Social Security Administration, if they are told the person's social security number.) However, usually successor trustees in a trust are not identified with social security numbers.) In this situation it is necessary to hire a private investigator to make a diligent effort to locate the successor trustee(s). If the successor trustee(s) cannot be located after a diligent effort, the answer is to ask the Probate Court to approve a new trustee for the trust, after showing the Probate Court the unsuccessful efforts to locate the successor trustee(s) and giving all potential beneficiaries an opportunity to appear in court and contest the proposed appointment.
Most trusts are revocable trusts. As long as the creator of the revocable trust is still alive, the creator can always write an amendment naming additional successor trustee without having to get a court involved. In fact, many revocable trusts are created by a husband and wife and even after one of them has died, the survivor can write an amendment naming additional successor trustees or removing an existing successor trustee. This page was written to deal with the situation in which no creator of the trust is alive to do an amendment.
Attorney Fee--our fees start at $1,000 and we can limit it to this fee in many case--call for details.


Wholesale wedding kerchief. 3-5cm. Sequins 2 holes. Wholesale mix sequins for crafts. Seasons: Born pretty 39486. 3 mm star shape sequins. 5x13 oval yellow. 3mm flat crystal. 6mm cup round. Snowflake confetti. Pillow. Accessories hairdressing. 12 colors for option. Baby girls. Metallic no.11. 5 red. Ballroom. 6mm heart.
Shoe and bag purple. Shoes,bags,garment. Set sequin. 18inch. Thickness index: Wholesale rainbow bulk. Smiley. Sequin jumpsuit black. Best selling. 20g/lot(approx 4000pcs).
3-8mm. Color 1: A01610. 2.2*1.4cm of the size. Gold sequin bead. 8/10/12/15/20/25/30/40/50mm. Glitter heat resistant. Sexemara. Wholesale decoration fingernails. Moedores sal. Women trenc coat. 9colors. 12*17mm flat butterfly. 50mm rainbow. Nail art,garment,bags. Brilliant crystal.
Wholesale: Pvc .custom bag. Black and white rectangle tooth pattern stripe. Laser golden. 4mm clover. Galaxy s5. Ribbon beads. Flat black womens shoes. Season: 12mm flat rose red color. Craft sequins. B70471. Shell golden. Ornament eye. Embroidered.


The 100 square meters of dialogue between art and architecture at MacRo – the Museum of Contemporary Art in Rome. Greg Jager an Italian visual artist, has produced "Metamuseo" a massive mural in the museum foyer.
The artist, trained in the field of graffiti writing, produced a 100 square meter artwork that harmoniously compares with the architectures designed by the architect Odile Decq.
The project is the outcome of two months of investigation into the museum's spaces and the graphic reinterpretation of the STUDIO ODILE DECQ concept, based on the graphic rethinking of the building. The artwork follows the strict color palette of the museum: black and gray for the lobby spaces and suspended paths, red for the auditorium, white for the exhibition halls, many of which are found in the recovered volumes of the pre-existing factory.
Metamuseo is one of the museum's permanent works and can be visited free during the opening days of the Macro.
Visual artist (born in 1982), constantly relies on abstract graphics with architectural contexts, making the spatial and material graphic sign, with the aim of displacing the viewer by making it immerse in an abstract dimension.
The dialogue between graphic sign and architecture represents a constant theme of research and experimentation for the artist.
The redevelopment of the MacRo, under the direction of Giorgio de Finis and under the control of the Palaexpo Special Company, is based on rethinking the idea of a museum institution with the intention of weaving a new and prolific relationship between art and the city. The experimentation, in this sense, concerns the Museum of Contemporary Art and investigates its civic function as an institution that operates in the present time on the production of knowledge, meaning and knowledge, which through art you can make available to people . The Macro Asilo is the first piece of the Polo of the Contemporary and the Future.


The inspiration of the name "Elder Pens", Box Elder is amongst the most famous and sought-after woods for pen turning.
While most of the box elder used by Elder Pens comes from the gnarly burl caps, one of the rarest parts of the Box Elder wood is the natural reddish-pink "flame" that occurs naturally in the heartwood. This pen features a nice cut of natural flame, without the addition of any extra coloring.


text:
package com.krishagni.catissueplus.core.administrative.repository.impl;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Conjunction;
import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Disjunction;
import org.hibernate.criterion.Junction;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Property;
import org.hibernate.criterion.Restrictions;
import org.hibernate.criterion.Subqueries;
import org.hibernate.sql.JoinType;

import com.krishagni.catissueplus.core.administrative.domain.DistributionOrder;
import com.krishagni.catissueplus.core.administrative.domain.PermissibleValue;
import com.krishagni.catissueplus.core.administrative.domain.PositionAssigner;
import com.krishagni.catissueplus.core.administrative.domain.StorageContainer;
import com.krishagni.catissueplus.core.administrative.domain.StorageContainerPosition;
import com.krishagni.catissueplus.core.administrative.events.StorageContainerSummary;
import com.krishagni.catissueplus.core.administrative.events.StorageLocationSummary;
import com.krishagni.catissueplus.core.administrative.repository.ContainerRestrictionsCriteria;
import com.krishagni.catissueplus.core.administrative.repository.StorageContainerDao;
import com.krishagni.catissueplus.core.administrative.repository.StorageContainerListCriteria;
import com.krishagni.catissueplus.core.biospecimen.domain.CollectionProtocolSite;
import com.krishagni.catissueplus.core.biospecimen.domain.Specimen;
import com.krishagni.catissueplus.core.biospecimen.repository.SpecimenListCriteria;
import com.krishagni.catissueplus.core.biospecimen.repository.impl.BiospecimenDaoHelper;
import com.krishagni.catissueplus.core.common.access.SiteCpPair;
import com.krishagni.catissueplus.core.common.repository.AbstractDao;
import com.krishagni.catissueplus.core.common.util.Status;
import com.krishagni.catissueplus.core.common.util.Utility;

import static org.apache.commons.collections.CollectionUtils.isEmpty;
import static org.apache.commons.collections.CollectionUtils.isNotEmpty;

public class StorageContainerDaoImpl extends AbstractDao<StorageContainer> implements StorageContainerDao {

	@Override
	public Class<?> getType() {
		return StorageContainer.class;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<StorageContainer> getStorageContainers(StorageContainerListCriteria listCrit) {
		return new ListQueryBuilder(listCrit).query()
				.setFirstResult(listCrit.startAt())
				.setMaxResults(listCrit.maxResults())
				.list();
	}

	@Override
	public Long getStorageContainersCount(StorageContainerListCriteria listCrit) {
		return ((Number) new ListQueryBuilder(listCrit, true).query().uniqueResult()).longValue();
	}

	@Override
	@SuppressWarnings("unchecked")
	public StorageContainer getByName(String name) {
		List<StorageContainer> result = sessionFactory.getCurrentSession()
				.createCriteria(StorageContainer.class)
				.add(Restrictions.eq("name", name).ignoreCase())
				.add(Restrictions.eq("activityStatus", Status.ACTIVITY_STATUS_ACTIVE.getStatus()))
				.list();

		return result.isEmpty() ? null : result.iterator().next();
	}

	@SuppressWarnings("unchecked")
	public StorageContainer getByBarcode(String barcode) {
		List<StorageContainer> result = sessionFactory.getCurrentSession()
				.createCriteria(StorageContainer.class)
				.add(Restrictions.eq("barcode", barcode).ignoreCase())
				.add(Restrictions.eq("activityStatus", Status.ACTIVITY_STATUS_ACTIVE.getStatus()))
				.list();

		return result.isEmpty() ? null : result.iterator().next();
	}

	@Override
	public void delete(StorageContainerPosition position) {
		sessionFactory.getCurrentSession().delete(position);
	}

	@Override
	public Map<String, Object> getContainerIds(String key, Object value) {
		return getObjectIds("containerId", key, value);
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<String> getNonCompliantContainers(ContainerRestrictionsCriteria crit) {
		Criteria query = getCurrentSession().createCriteria(StorageContainer.class)
			.createAlias("descendentContainers", "d")
			.add(Restrictions.eq("id", crit.containerId()))
			.setProjection(Projections.distinct(Projections.property("d.name")));

		Disjunction restriction = Restrictions.disjunction();
		if (isNotEmpty(crit.specimenClasses())) {
			query.createAlias("d.compAllowedSpecimenClasses", "spmnClass", JoinType.LEFT_OUTER_JOIN);
			restriction.add(
				Restrictions.conjunction()
					.add(Restrictions.isNotNull("spmnClass.id"))
					.add(Restrictions.not(Restrictions.in("spmnClass.id", getPvIds(crit.specimenClasses()))))
			);
		}

		query.createAlias("d.compAllowedSpecimenTypes", "spmnType", JoinType.LEFT_OUTER_JOIN);
		Junction notInTypes = Restrictions.conjunction();
		if (isNotEmpty(crit.specimenTypes())) {
			notInTypes.add(Restrictions.not(Restrictions.in("spmnType.id", getPvIds(crit.specimenTypes()))));
		}

		if (isNotEmpty(crit.specimenClasses())) {
			DetachedCriteria typesCrit = DetachedCriteria.forClass(PermissibleValue.class, "pv")
				.createAlias("pv.parent", "ppv")
				.add(Restrictions.eq("pv.attribute", "specimen_type"))
				.add(Restrictions.in("ppv.id", getPvIds(crit.specimenClasses())))
				.setProjection(Property.forName("pv.id"));
			notInTypes.add(Subqueries.propertyNotIn("spmnType.id", typesCrit));
		}

		restriction.add(
			Restrictions.conjunction()
				.add(Restrictions.isNotNull("spmnType.id"))
				.add(notInTypes)
		);

		if (isNotEmpty(crit.collectionProtocols())) {
			query.createAlias("d.compAllowedCps", "cp", JoinType.LEFT_OUTER_JOIN);
			restriction.add(
				Restrictions.conjunction()
					.add(Restrictions.isNotNull("cp.id"))
					.add(Restrictions.not(Restrictions.in("cp.id", crit.collectionProtocolIds())))
			);
		} else {
			DetachedCriteria siteCrit = DetachedCriteria.forClass(CollectionProtocolSite.class)
				.createAlias("collectionProtocol", "cp1")
				.createAlias("site", "site1")
				.add(Restrictions.eqProperty("cp1.id", "cp.id"))
				.setProjection(Property.forName("site1.id"));

			query.createAlias("d.compAllowedCps", "cp", JoinType.LEFT_OUTER_JOIN);
			restriction.add(
				Restrictions.conjunction()
					.add(Restrictions.isNotNull("cp.id"))
					.add(Subqueries.notIn(crit.siteId(), siteCrit))
			);
		}

		if (isNotEmpty(crit.distributionProtocols())) {
			query.createAlias("d.compAllowedDps", "dp", JoinType.LEFT_OUTER_JOIN);
			restriction.add(
				Restrictions.conjunction()
					.add(Restrictions.isNotNull("dp.id"))
					.add(Restrictions.not(Restrictions.in("dp.id", crit.distributionProtocolIds())))
			);
		}

		flush();
		return query.add(restriction).list();
	}

	@SuppressWarnings(value = "unchecked")
	@Override
	public List<String> getNonCompliantSpecimens(ContainerRestrictionsCriteria crit) {
		Criteria query = getCurrentSession().createCriteria(StorageContainer.class)
			.createAlias("descendentContainers", "d")
			.createAlias("d.occupiedPositions", "pos")
			.createAlias("pos.occupyingSpecimen", "spmn")
			.createAlias("spmn.visit", "visit")
			.createAlias("visit.registration", "cpr")
			.createAlias("cpr.collectionProtocol", "cp")
			.add(Restrictions.eq("id", crit.containerId()))
			.setProjection(Projections.distinct(Projections.property("spmn.label")));

		Conjunction notInTypes = Restrictions.conjunction();
		if (isNotEmpty(crit.specimenClasses())) {
			query.createAlias("spmn.specimenClass", "spmnClass");
			notInTypes.add(Restrictions.not(Restrictions.in("spmnClass.id", getPvIds(crit.specimenClasses()))));
		}

		if (isNotEmpty(crit.specimenTypes())) {
			query.createAlias("spmn.specimenType", "spmnType");
			notInTypes.add(Restrictions.not(Restrictions.in("spmnType.id", getPvIds(crit.specimenTypes()))));
		}

		Disjunction restriction = Restrictions.disjunction();
		if (isNotEmpty(crit.specimenClasses()) || isNotEmpty(crit.specimenTypes())) {
			restriction.add(notInTypes);
		}

		if (isNotEmpty(crit.collectionProtocols())) {
			restriction.add(Restrictions.not(Restrictions.in("cp.id", crit.collectionProtocolIds())));
		} else {
			DetachedCriteria siteCrit = DetachedCriteria.forClass(CollectionProtocolSite.class)
				.createAlias("collectionProtocol", "cp1")
				.createAlias("site", "site1")
				.add(Restrictions.eqProperty("cp1.id", "cp.id"))
				.setProjection(Property.forName("site1.id"));

			query.createAlias("site", "contSite");
			restriction.add(Subqueries.propertyNotIn("contSite.id", siteCrit));
		}

		return query.add(restriction).list();
	}

	@SuppressWarnings(value = "unchecked")
	@Override
	public List<String> getNonCompliantDistributedSpecimens(ContainerRestrictionsCriteria crit) {
		if (isEmpty(crit.distributionProtocols())) {
			return Collections.emptyList();
		}

		return (List<String>) getCurrentSession().createCriteria(DistributionOrder.class, "order")
			.createAlias("order.distributionProtocol", "dp")
			.createAlias("order.orderItems", "orderItem")
			.createAlias("orderItem.specimen", "spmn")
			.createAlias("spmn.position", "pos")
			.createAlias("pos.container", "container")
			.createAlias("container.ancestorContainers", "ancestor")
			.add(Restrictions.eq("ancestor.id", crit.containerId()))
			.add(Restrictions.not(Restrictions.in("dp.id", crit.distributionProtocolIds())))
			.setProjection(Projections.distinct(Projections.property("spmn.label")))
			.list();
	}

	@Override
	public int getSpecimensCount(Long containerId) {
		Map<Long, Integer> counts = getSpecimensCount(Collections.singletonList(containerId));
		return counts.containsKey(containerId) ? counts.get(containerId) : 0;
	}

	@SuppressWarnings(value = "unchecked")
	@Override
	public Map<Long, Integer> getSpecimensCount(Collection<Long> containerIds) {
		List<Object[]> rows = getCurrentSession().getNamedQuery(GET_SPECIMENS_COUNT)
			.setParameterList("containerIds", containerIds)
			.list();

		return rows.stream().collect(Collectors.toMap(r -> ((Number)r[0]).longValue(), r -> ((Number)r[1]).intValue()));
	}

	@Override
	public List<Specimen> getSpecimens(SpecimenListCriteria crit, boolean orderByLocation) {
		Criteria query = getCurrentSession().createCriteria(Specimen.class, "specimen")
			.createAlias("specimen.position", "pos")
			.add(Subqueries.propertyIn("specimen.id", getContainerSpecimensListQuery(crit)))
			.setFirstResult(crit.startAt())
			.setMaxResults(crit.maxResults());

		if (orderByLocation) {
			query.createAlias("pos.container", "container")
				.addOrder(Order.asc("container.name"))
				.addOrder(Order.asc("pos.posTwoOrdinal"))
				.addOrder(Order.asc("pos.posOneOrdinal"));
		} else {
			query.addOrder(Order.asc("pos.id"));
		}

		return query.list();
	}

	@Override
	public Long getSpecimensCount(SpecimenListCriteria crit) {
		Number count = (Number) getContainerSpecimensListQuery(crit)
			.setProjection(Projections.rowCount())
			.getExecutableCriteria(getCurrentSession())
			.uniqueResult();
		return count.longValue();
	}

	@Override
	@SuppressWarnings(value = "unchecked")
	public Map<Long, Integer> getRootContainerSpecimensCount(Collection<Long> containerIds) {
		List<Object[]> rows = getCurrentSession().getNamedQuery(GET_ROOT_CONT_SPMNS_COUNT)
			.setParameterList("containerIds", containerIds)
			.list();
		return rows.stream().collect(Collectors.toMap(row -> (Long)row[0], row -> (Integer)row[1]));
	}

	@Override
	@SuppressWarnings(value = "unchecked")
	public Map<String, Integer> getSpecimensCountByType(Long containerId) {
		List<Object[]> rows = getCurrentSession().getNamedQuery(GET_SPMNS_CNT_BY_TYPE)
			.setLong("containerId", containerId)
			.list();
		return rows.stream().collect(Collectors.toMap(row -> (String)row[0], row -> (Integer)row[1]));
	}

	@Override
	@SuppressWarnings(value = "unchecked")
	public StorageContainerSummary getAncestorsHierarchy(Long containerId) {
		Set<Long> ancestorIds = new HashSet<>();
		Long rootId = null;

		List<Object[]> rows = getCurrentSession().getNamedQuery(GET_ANCESTORS)
			.setLong("containerId", containerId)
			.list();
		for (Object[] row : rows) {
			ancestorIds.add((Long)row[0]);
			if (row[1] == null) {
				rootId = (Long)row[0];
			}
		}

		rows = getCurrentSession().getNamedQuery(GET_ROOT_AND_CHILD_CONTAINERS)
			.setLong("rootId", rootId)
			.setParameterList("parentIds", ancestorIds)
			.list();

		Map<Long, StorageContainerSummary> containersMap = new HashMap<>();
		for (Object[] row : rows) {
			StorageContainerSummary container = createContainer(row);
			containersMap.put(container.getId(), container);
		}

		linkParentChildContainers(containersMap);
		return sortChildContainers(containersMap.get(rootId));
	}

	@Override
	@SuppressWarnings(value = "unchecked")
	public List<StorageContainerSummary> getChildContainers(StorageContainer container) {
		List<Object[]> rows = getCurrentSession().getNamedQuery(GET_CHILD_CONTAINERS)
			.setLong("parentId", container.getId())
			.list();

		PositionAssigner assigner = container.getPositionAssigner();
		List<StorageContainerSummary> children = new ArrayList<>();
		for (Object[] row : rows) {
			StorageContainerSummary child = createContainer(row);
			StorageLocationSummary location = child.getStorageLocation();
			if (location != null && location.getPosition() != null) {
				int rowNo = (location.getPosition() - 1) / 10000 + 1, colNo = (location.getPosition() - 1) % 10000 + 1;
				location.setPosition(assigner.toPosition(container, rowNo, colNo));
			}

			children.add(child);
		}

		children.sort(this::comparePositions);
		return children;
	}

	@Override
	@SuppressWarnings(value = "unchecked")
	public List<StorageContainer> getDescendantContainers(StorageContainerListCriteria crit) {
		DetachedCriteria detachedCriteria = DetachedCriteria.forClass(StorageContainer.class, "cont")
			.setProjection(Projections.distinct(Projections.property("cont.id")));

		Criteria innerQuery = detachedCriteria.getExecutableCriteria(getCurrentSession())
			.createAlias("cont.ancestorContainers", "ancestors")
			.add(Restrictions.eq("ancestors.id", crit.parentContainerId()));

		if (crit.siteCps() != null && !crit.siteCps().isEmpty()) {
			innerQuery.createAlias("cont.site", "site")
				.createAlias("cont.allowedCps", "cp", JoinType.LEFT_OUTER_JOIN);

			boolean instituteAdded = false;
			Disjunction siteCpsCond = Restrictions.disjunction();
			for (SiteCpPair siteCp : crit.siteCps()) {
				Junction siteCpCond = Restrictions.conjunction();
				if (siteCp.getSiteId() != null) {
					siteCpCond.add(Restrictions.eq("site.id", siteCp.getSiteId()));
				} else {
					if (!instituteAdded) {
						innerQuery.createAlias("site.institute", "institute");
						instituteAdded = true;
					}

					siteCpCond.add(Restrictions.eq("institute.id", siteCp.getInstituteId()));
				}

				if (siteCp.getCpId() != null) {
					siteCpCond.add(Restrictions.or(
						Restrictions.isNull("cp.id"),
						Restrictions.eq("cp.id", siteCp.getCpId())
					));
				}

				siteCpsCond.add(siteCpCond);
			}

			innerQuery.add(siteCpsCond);
		}

		if (StringUtils.isNotBlank(crit.query())) {
			innerQuery.add(Restrictions.ilike("cont.name", crit.query(), crit.matchMode()));
		}

		return getCurrentSession().createCriteria(StorageContainer.class, "cont")
			.add(Subqueries.propertyIn("cont.id", detachedCriteria))
			.addOrder(Order.asc("cont.id"))
			.setFirstResult(crit.startAt())
			.setMaxResults(crit.maxResults())
			.list();
	}

	@Override
	public int deleteReservedPositions(List<String> reservationIds) {
		return getCurrentSession().getNamedQuery(DEL_POS_BY_RSV_ID)
			.setParameterList("reservationIds", reservationIds)
			.executeUpdate();
	}

	@Override
	public int deleteReservedPositionsOlderThan(Date expireTime) {
		return getCurrentSession().getNamedQuery(DEL_EXPIRED_RSV_POS)
			.setTimestamp("expireTime", expireTime)
			.executeUpdate();
	}

	@Override
	@SuppressWarnings("unchecked")
	public List<Long> getLeafContainerIds(Long containerId, int startAt, int maxContainers) {
		return getCurrentSession().getNamedQuery(GET_LEAF_CONTAINERS)
			.setParameter("containerId", containerId)
			.setFirstResult(startAt)
			.setMaxResults(maxContainers)
			.list();
	}

	//
	// [ { containerName : [ specimen labels ] } ]
	//
	@Override
	public Map<String, List<String>> getInaccessibleSpecimens(
		List<Long> containerIds, List<SiteCpPair> siteCps,
		boolean useMrnSites, int firstN) {

		DetachedCriteria validSpmnsQuery = DetachedCriteria.forClass(Specimen.class, "specimen")
			.setProjection(Projections.distinct(Projections.property("specimen.id")));

		Criteria query = validSpmnsQuery.getExecutableCriteria(getCurrentSession())
			.createAlias("specimen.position", "pos")
			.createAlias("pos.container", "container")
			.createAlias("container.ancestorContainers", "aContainer")
			.add(Restrictions.in("aContainer.id", containerIds));

		BiospecimenDaoHelper.getInstance().addSiteCpsCond(query, siteCps, useMrnSites, "visit");
		return getInvalidSpecimens(containerIds, validSpmnsQuery, firstN);
	}

	@Override
	public Map<String, List<String>> getInvalidSpecimensForSite(List<Long> containerIds, Long siteId, int firstN) {
		DetachedCriteria validSpmnsQuery = DetachedCriteria.forClass(Specimen.class, "specimen")
			.setProjection(Projections.distinct(Projections.property("specimen.id")));
		validSpmnsQuery.getExecutableCriteria(getCurrentSession())
			.createAlias("specimen.position", "pos")
			.createAlias("pos.container", "container")
			.createAlias("container.ancestorContainers", "aContainer")
			.createAlias("specimen.collectionProtocol", "cp")
			.createAlias("cp.sites", "cpSite")
			.createAlias("cpSite.site", "site")
			.add(Restrictions.in("aContainer.id", containerIds))
			.add(Restrictions.eq("site.id", siteId));
		return getInvalidSpecimens(containerIds, validSpmnsQuery, firstN);
	}

	@Override
	@SuppressWarnings("unchecked")
	public Map<Long, List<Long>> getDescendantContainerIds(Collection<Long> containerIds) {
		List<Object[]> rows = getCurrentSession().getNamedQuery(GET_DESCENDANT_CONTAINER_IDS)
			.setParameterList("containerIds", containerIds)
			.list();

		Map<Long, List<Long>> result = new HashMap<>();
		for (Object[] row : rows) {
			Long ancestorId = (Long) row[0];
			List<Long> descendantIds = result.get(ancestorId);
			if (descendantIds == null) {
				descendantIds = new ArrayList<>();
				result.put(ancestorId, descendantIds);
			}
			descendantIds.add((Long) row[1]);
		}

		return result;
	}

	@Override
	@SuppressWarnings("unchecked")
	public List<StorageContainer> getShippedContainers(Collection<Long> containerIds) {
		return getCurrentSession().getNamedQuery(GET_SHIPPED_CONTAINERS)
			.setParameterList("containerIds", containerIds)
			.list();
	}

	@Override
	public List<StorageContainerSummary> getUtilisations(Collection<Long> containerIds) {
		List<Object[]> rows = getCurrentSession().getNamedQuery(GET_CONTAINER_UTILISATION)
			.setParameterList("containerIds", containerIds)
			.list();

		return rows.stream().map(
			row -> {
				int idx = -1;

				StorageContainerSummary summary = new StorageContainerSummary();
				summary.setId((Long) row[++idx]);
				summary.setName((String) row[++idx]);
				summary.setNoOfRows((Integer) row[++idx]);
				summary.setNoOfColumns((Integer) row[++idx]);
				summary.setUsedPositions((Integer) row[++idx]);
				return summary;
			}
		).collect(Collectors.toList());
	}

	@SuppressWarnings("unchecked")
	private Map<String, List<String>> getInvalidSpecimens(List<Long> containerIds, DetachedCriteria validSpmnsQuery, int firstN) {
		List<Object[]> rows = getCurrentSession().createCriteria(Specimen.class, "specimen")
			.createAlias("specimen.position", "pos")
			.createAlias("pos.container", "container")
			.createAlias("container.ancestorContainers", "aContainer")
			.setProjection(Projections.projectionList()
				.add(Projections.property("specimen.label"))
				.add(Projections.property("container.name")))
			.add(Subqueries.propertyNotIn("specimen.id", validSpmnsQuery))
			.add(Restrictions.in("aContainer.id", containerIds))
			.addOrder(Order.asc("container.name"))
			.setMaxResults(firstN > 0 ? firstN : 5)
			.list();

		Map<String, List<String>> result = new HashMap<>();
		for (Object[] row : rows) {
			List<String> spmnLabels = result.get((String) row[1]);
			if (spmnLabels == null) {
				spmnLabels = new ArrayList<>();
				result.put((String) row[1], spmnLabels);
			}

			spmnLabels.add((String) row[0]);
		}

		return result;
	}

	private StorageContainerSummary createContainer(Object[] row) {
		int idx = 0;

		StorageContainerSummary container = new StorageContainerSummary();
		container.setId((Long)row[idx++]);
		container.setName((String)row[idx++]);
		container.setDisplayName((String)row[idx++]);
		container.setNoOfRows((Integer)row[idx++]);
		container.setNoOfColumns((Integer)row[idx++]);
		container.setPositionAssignment((String)row[idx++]);

		if (row[idx] != null) {
			StorageLocationSummary location = new StorageLocationSummary();
			location.setId((Long)row[idx++]);

			if (row[idx] != null) {
				//
				// if not stored in dimensionless container
				//
				int rowNo = (Integer)row[idx++];
				int colNo = (Integer)row[idx++];
				location.setPosition((rowNo - 1) * 10000 + colNo);
				location.setPositionY((String)row[idx++]);
				location.setPositionX((String)row[idx++]);
			}

			container.setStorageLocation(location);
		}

		return container;
	}

	private void linkParentChildContainers(Map<Long, StorageContainerSummary> containersMap) {
		Map<Long, StorageContainer> objMap = new HashMap<>();

		for (StorageContainerSummary container : containersMap.values()) {
			StorageLocationSummary location = container.getStorageLocation();
			if (location == null) {
				// root container
				continue;
			}

			StorageContainerSummary parent = containersMap.get(location.getId());
			StorageContainer pcObj = objMap.get(parent.getId());
			if (pcObj == null) {
				pcObj = new StorageContainer();
				pcObj.setNoOfColumns(parent.getNoOfColumns());
				pcObj.setNoOfRows(parent.getNoOfRows());
				pcObj.setPositionAssignment(StorageContainer.PositionAssignment.valueOf(parent.getPositionAssignment()));
				objMap.put(parent.getId(), pcObj);
			}

			//
			// Get back actual position value based on parent container dimension
			//
			if (location.getPosition() != null) {
				int rowNo = (location.getPosition() - 1) / 10000 + 1, colNo = (location.getPosition() - 1) % 10000 + 1;
				location.setPosition(pcObj.getPositionAssigner().toPosition(pcObj, rowNo, colNo));
			}

			if (parent.getChildContainers() == null) {
				parent.setChildContainers(new ArrayList<>());
			}

			parent.getChildContainers().add(container);
		}
	}

	private StorageContainerSummary sortChildContainers(StorageContainerSummary container) {
		if (CollectionUtils.isEmpty(container.getChildContainers())) {
			return container;
		}

		Collections.sort(container.getChildContainers(), this::comparePositions);
		container.getChildContainers().forEach(this::sortChildContainers);
		return container;
	}

	private int comparePositions(StorageContainerSummary s1, StorageContainerSummary s2) {
		return ObjectUtils.compare(s1.getStorageLocation().getPosition(), s2.getStorageLocation().getPosition());
	}

	private DetachedCriteria getContainerSpecimensListQuery(SpecimenListCriteria crit) {
		DetachedCriteria detachedCriteria = DetachedCriteria.forClass(Specimen.class, "specimen")
			.setProjection(Projections.distinct(Projections.property("specimen.id")));
		Criteria query = detachedCriteria.getExecutableCriteria(getCurrentSession());

		query.createAlias("specimen.position", "pos")
			.createAlias("pos.container", "container")
			.createAlias("container.ancestorContainers", "anscestor")
			.add(Restrictions.eq("anscestor.id", crit.ancestorContainerId()));

		if (crit.containerId() != null) {
			query.add(Restrictions.eq("container.id", crit.containerId()));
		} else if (StringUtils.isNotBlank(crit.container())) {
			query.add(Restrictions.eq("container.name", crit.container()));
		}

		if (StringUtils.isNotBlank(crit.type())) {
			query.createAlias("specimen.specimenType", "typePv")
				.add(Restrictions.eq("typePv.value", crit.type()));
		}

		if (StringUtils.isNotBlank(crit.anatomicSite())) {
			query.createAlias("specimen.tissueSite", "anatomicPv")
				.add(Restrictions.eq("anatomicPv.value", crit.anatomicSite()));
		}

		String startAlias = "visit";
		if (StringUtils.isNotBlank(crit.ppid()) || crit.cpId() != null || StringUtils.isNotBlank(crit.cpShortTitle())) {
			query.createAlias("specimen.visit", "visit")
				.createAlias("visit.registration", "cpr");

			startAlias = "cp";

			if (StringUtils.isNotBlank(crit.ppid())) {
				query.add(Restrictions.ilike("cpr.ppid", crit.ppid(), crit.matchMode()));
			}

			if (crit.cpId() != null || StringUtils.isNotBlank(crit.cpShortTitle())) {
				query.createAlias("cpr.collectionProtocol", "cp");

				if (crit.cpId() != null) {
					query.add(Restrictions.eq("cp.id", crit.cpId()));
				} else {
					query.add(Restrictions.eq("cp.shortTitle", crit.cpShortTitle()));
				}

				startAlias = "cpSite";
			}
		}

		BiospecimenDaoHelper.getInstance().addSiteCpsCond(query, crit.siteCps(), crit.useMrnSites(), startAlias);
		return detachedCriteria;
	}

	private List<Long> getPvIds(Collection<PermissibleValue> pvs) {
		return Utility.nullSafeStream(pvs).map(PermissibleValue::getId).collect(Collectors.toList());
	}

	private class ListQueryBuilder {
		private StorageContainerListCriteria crit;

		private StringBuilder select = new StringBuilder();

		private StringBuilder from = new StringBuilder();

		private StringBuilder where = new StringBuilder();

		private Map<String, Object> params = new HashMap<String, Object>();

		public ListQueryBuilder(StorageContainerListCriteria crit) {
			prepareQuery(crit, false);
		}

		public ListQueryBuilder(StorageContainerListCriteria crit, boolean countReq) {
			prepareQuery(crit, countReq);
		}

		public Query query() {
			addIdsRestriction();
			addNotInIdsRestriction();
			addNameRestriction();
			addSiteRestriction();

			addFreeContainersRestriction();
			addSpecimenRestriction();
			addCpRestriction();
			addDpRestriction();
			addStoreSpecimenRestriction();
			addUsageModeRestriction();

			addParentRestriction();
			addCanHoldRestriction();

			// permissions check
			addSiteCpRestriction();

			String hql = new StringBuilder(select)
				.append(" ").append(from)
				.append(" ").append(where)
				.append(" order by c.id asc")
				.toString();

			Query query = getCurrentSession().createQuery(hql);
			for (Map.Entry<String, Object> param : params.entrySet()) {
				if (param.getValue() instanceof Collection<?>) {
					query.setParameterList(param.getKey(), (Collection<?>)param.getValue());
				} else {
					query.setParameter(param.getKey(), param.getValue());
				}
			}

			return query;
		}

		private void prepareQuery(StorageContainerListCriteria crit, boolean countReq) {
			this.crit = crit;

			select = new StringBuilder(countReq ? "select count(distinct c.id)" : "select distinct c");
			if (crit.hierarchical()) {
				from = new StringBuilder("from ").append(getType().getName()).append(" c join c.descendentContainers dc");
				where = new StringBuilder("where dc.activityStatus = :activityStatus");
			} else {
				from = new StringBuilder("from ").append(getType().getName()).append(" c");
				where = new StringBuilder("where c.activityStatus = :activityStatus");
			}

			from.append(countReq ? " left join c.position pos " : " left join fetch c.position pos ");
			params.put("activityStatus", Status.ACTIVITY_STATUS_ACTIVE.getStatus());
		}

		private void addAnd() {
			if (where.length() != 0) {
				where.append(" and ");
			}
		}

		private void addIdsRestriction() {
			if (CollectionUtils.isEmpty(crit.ids())) {
				return;
			}

			addAnd();
			where.append("c.id in :ids");
			params.put("ids", crit.ids());
		}

		private void addNotInIdsRestriction() {
			if (CollectionUtils.isEmpty(crit.notInIds())) {
				return;
			}

			addAnd();
			where.append("c.id not in :notInIds");
			params.put("notInIds", crit.notInIds());
		}

		private void addNameRestriction() {
			if (StringUtils.isNotBlank(crit.query())) {
				addAnd();
				where.append("(upper(c.name) like :name or upper(c.displayName) like :displayName)");
				params.put("name", "%" + crit.query().toUpperCase() + "%");
				params.put("displayName", "%" + crit.query().toUpperCase() + "%");
			}

			if (CollectionUtils.isNotEmpty(crit.names())) {
				addAnd();
				where.append("c.name in (:names)");
				params.put("names", crit.names());
			}
		}

		private void addFreeContainersRestriction() {
			if (!crit.onlyFreeContainers()) {
				return;
			}

			addAnd();
			if (crit.hierarchical()) {
				where.append("((dc.noOfRows is null and dc.noOfColumns is null)")
					.append("or")
					.append("(size(dc.occupiedPositions) - dc.noOfRows * dc.noOfColumns < 0))");
			} else {
				where.append("((c.noOfRows is null and c.noOfColumns is null)")
					.append("or")
					.append("(size(c.occupiedPositions) - c.noOfRows * c.noOfColumns < 0))");
			}
		}

		private void addSiteAlias() {
			from.append(" join c.site site");
		}

		private void addSiteRestriction() {
			if (StringUtils.isBlank(crit.siteName())) {
				return;
			}

			addSiteAlias();

			addAnd();
			where.append("site.name = :siteName");
			params.put("siteName", crit.siteName());
		}

		private void addParentRestriction() {
			if (!crit.topLevelContainers() && crit.parentContainerId() == null) {
				return;
			}

			if (crit.topLevelContainers()) {
				from.append(" left join c.parentContainer pc");
			} else if (crit.parentContainerId() != null) {
				from.append(" join c.parentContainer pc");
			}

			addAnd();
			Long parentId = crit.parentContainerId();
			if (parentId == null) {
				where.append("pc is null");
			} else {
				where.append("pc.id = :parentId");
				params.put("parentId", parentId);
			}
		}

		private void addCanHoldRestriction() {
			if (StringUtils.isBlank(crit.canHold())) {
				return;
			}

			from.append(" left join c.type type");
			from.append(" left join type.canHold canHold");

			addAnd();
			where.append("(type is null or canHold.name = :canHold)");
			params.put("canHold", crit.canHold());
		}

		private void addSpecimenRestriction() {
			String specimenClass = crit.specimenClass(), specimenType = crit.specimenType();
			if (StringUtils.isBlank(specimenClass) && StringUtils.isBlank(specimenType)) {
				return;
			}

			addAnd();
			if (crit.hierarchical()) {
				from.append(" left join dc.compAllowedSpecimenClasses spmnClass")
					.append(" left join dc.compAllowedSpecimenTypes spmnType");
			} else {
				from.append(" left join c.compAllowedSpecimenClasses spmnClass")
					.append(" left join c.compAllowedSpecimenTypes spmnType");
			}

			where.append("(spmnClass.value = :specimenClass or spmnType.value = :specimenType)");
			params.put("specimenClass", specimenClass);
			params.put("specimenType", specimenType);
		}

		private void addCpAlias() {
			if (crit.hierarchical()) {
				from.append(" left join dc.compAllowedCps cp");
			} else {
				from.append(" left join c.compAllowedCps cp");
			}
		}

		private void addCpRestriction() {
			if (isEmpty(crit.cpIds()) && isEmpty(crit.cpShortTitles())) {
				return;
			}

			addCpAlias();

			addAnd();

			if (CollectionUtils.isNotEmpty(crit.cpIds())) {
				where.append("(cp is null or cp.id in (:cpIds))");
				params.put("cpIds", crit.cpIds());
			} else {
				where.append("(cp is null or cp.shortTitle in (:cpShortTitles))");
				params.put("cpShortTitles", crit.cpShortTitles());
			}
		}

		private void addDpRestriction() {
			if (isEmpty(crit.dpShortTitles())) {
				return;
			}

			if (crit.hierarchical()) {
				from.append(" left join dc.compAllowedDps dp");
			} else {
				from.append(" left join c.compAllowedDps dp");
			}

			addAnd();
			where.append("(dp is null or dp.shortTitle in (:dpShortTitles))");
			params.put("dpShortTitles", crit.dpShortTitles());
		}

		private void addStoreSpecimenRestriction() {
			if (crit.storeSpecimensEnabled() == null) {
				return;
			}

			addAnd();
			if (crit.hierarchical()) {
				where.append("dc.storeSpecimenEnabled = :storeSpecimenEnabled");
			} else {
				where.append("c.storeSpecimenEnabled = :storeSpecimenEnabled");
			}

			params.put("storeSpecimenEnabled", crit.storeSpecimensEnabled());
		}

		private void addSiteCpRestriction() {
			if (CollectionUtils.isEmpty(crit.siteCps())) {
				return;
			}

			if (StringUtils.isBlank(crit.siteName())) {
				addSiteAlias();
			}

			if (CollectionUtils.isEmpty(crit.cpIds()) && CollectionUtils.isEmpty(crit.cpShortTitles())) {
				addCpAlias();
			}

			boolean instituteAliasAdded = false;

			List<String> disjunctions = new ArrayList<>();
			for (SiteCpPair siteCp : crit.siteCps()) {
				StringBuilder restriction = new StringBuilder();
				if (siteCp.getSiteId() != null) {
					restriction.append("(site.id = ").append(siteCp.getSiteId());
				} else {
					if (!instituteAliasAdded) {
						from.append(" join site.institute institute");
						instituteAliasAdded = true;
					}

					restriction.append("(institute.id = ").append(siteCp.getInstituteId());
				}

				if (siteCp.getCpId() != null) {
					restriction.append(" and (")
						.append("cp.id is null or ")
						.append("cp.id = ").append(siteCp.getCpId())
						.append(")");
				}

				restriction.append(")");
				disjunctions.add(restriction.toString());
			}

			addAnd();
			where.append("(").append(StringUtils.join(disjunctions, " or ")).append(")");
		}

		private void addUsageModeRestriction() {
			if (crit.usageMode() == null) {
				return;
			}

			addAnd();
			if (crit.hierarchical()) {
				where.append("dc.usedFor = :usedFor");
			} else {
				where.append("c.usedFor = :usedFor");
			}

			params.put("usedFor", crit.usageMode());
		}
	}

	private static final String FQN = StorageContainer.class.getName();

	private static final String GET_SPECIMENS_COUNT = FQN + ".getSpecimensCount";

	private static final String GET_ANCESTORS = FQN + ".getAncestors";

	private static final String GET_ROOT_AND_CHILD_CONTAINERS = FQN + ".getRootAndChildContainers";

	private static final String GET_CHILD_CONTAINERS = FQN + ".getChildContainers";

	private static final String DEL_POS_BY_RSV_ID = FQN + ".deletePositionsByReservationIds";

	private static final String DEL_EXPIRED_RSV_POS = FQN + ".deleteReservationsOlderThanTime";

	private static final String GET_ROOT_CONT_SPMNS_COUNT = FQN + ".getRootContainerSpecimensCount";

	private static final String GET_SPMNS_CNT_BY_TYPE = FQN + ".getSpecimenCountsByType";

	private static final String GET_LEAF_CONTAINERS = FQN + ".getLeafContainerIds";

	private static final String GET_DESCENDANT_CONTAINER_IDS = FQN + ".getDescendantContainerIds";

	private static final String GET_SHIPPED_CONTAINERS = FQN + ".getShippedContainers";

	private static final String GET_CONTAINER_UTILISATION = FQN + ".getContainersUtilisation";
}


text:
Home » Investing » Bank Stocks » The Best-Returning Canadian Bank Stocks in 2022
The Best-Returning Canadian Bank Stocks in 2022
The best Canadian bank stocks are worthy as core holdings in a diversified investment portfolio. Here's the winner of 2022!
Kay Ng
Kay began investing in dividend stocks around 2008 via the concept of value investing. Since then, she has expanded into growth investing, including in small caps. Her passion for investing has only grown over the years! After graduating from UBC with a BSc in Computer Science, she took university courses in financial markets, finance, and financial accounting. She has contributed her works to Motley Fool, Sure Dividend, and Seeking Alpha.
Latest posts by Kay Ng (see all)
After the Spinoff, Brookfield Stock Rose 16% in January - February 2, 2023
3 Stocks I'd Buy — But I'm Waiting for a Dip - January 31, 2023
Is Now the Right Time to Buy Consumer Discretionary Stocks? - January 30, 2023
Published January 6, 11:00 am EST
| More on: BMOBNSCMNARYTD
The results are in! The start of 2023 is a great time to review the best-returning Canadian bank stocks in 2022 and project the best bank stocks to buy today for different reasons.
2022's best-returning Canadian bank stocks
The graph below displays the 2022 total returns of eight Canadian bank stocks, including the Big Six Canadian bank stocks. The sixth-largest Canadian bank stock by market capitalization — National Bank of Canada (TSX:NA) stock — won by a nose versus the largest — Royal Bank of Canada (TSX:RY) stock. Over the course of the year, both stock returns were super resilient versus the industry. Their resiliency largely had to do with their stock price resiliency. Certainly, dividends played a role as well.
Eight Canadian bank stocks' Total Return Level data by YCharts
Toronto-Dominion Bank (TSX:TD) and Bank of Montreal (TSX:BMO) stocks weren't far behind as runner-ups. Singling out the price action of these four names further highlights the boost their dividends provided to their total returns. As well, you can also observe the kind of volatility stock investors experienced in the top bank stocks. Investors in the underperforming bank stocks had to endure worst.
Four Canadian bank stock price data by YCharts
As these banks are value stocks and tend to increase their earnings stably over time, investors should aim to buy them opportunistically when they are undervalued.
The best Canadian bank stocks to buy in 2023
Many economists believe the Canadian and U.S. economies will enter a recession (though a mild one) this year. Besides, investors shouldn't be overly pessimistic, because the central banks would be able to cut interest rates to help stimulate economic growth when the time comes.
Risk-averse investors should stick with the top names of National Bank, RBC, TD, and BMO and potentially add on dips. Presently, their dividend yields range from 4.1% to 4.6%.
Within the group, analysts believe BMO stock offers the best value and growth potential over the next couple of years. The further out the earnings projections, the more inaccurate they'll be. The consensus is that the bank stock is discounted by about 12% based on the 12-month price target and could increase its earnings per share by roughly 11% over the next two years.
At $125.23 per share at writing, BMO stock trades at about 9.5 times earnings and offers a safe dividend yield of just under 4.6%. Its 2023 payout ratio is projected to be sustainable at about 43% of earnings.
Applying the Dogs of the Dow strategy
Canadians who need current income might apply the Dogs of the Dow strategy by buying the highest-yielding bank stocks, which would be Bank of Nova Scotia (TSX:BNS) and Canadian Imperial Bank of Commerce (TSX:CM).
The idea is that they have sold off harder and therefore offer bigger passive income and could potentially outperform the others over the next year. At writing, they offer yields of 6.2% and 6.1%, respectively, with estimated 2023 payout ratios of roughly 50% of earnings.
BNS stock trades at a slightly bigger discount of 15% versus CIBC's discount of 14% from their 12-month analyst consensus price targets. Investors with longer term horizons (say two to three years), can target stock prices north of $90 and $70, respectively, for BNS and CIBC, which represent upside potential of about 40% and 29%.
Fool contributor Kay Ng has positions in Bank of Montreal, Bank of Nova Scotia, and Toronto-Dominion Bank. The Motley Fool recommends Bank Of Nova Scotia. The Motley Fool has a disclosure policy.
More on Bank Stocks
Better Buy: TD Stock or Bank of Nova Scotia?
January 31, 2023 | Andrew Walker
TD Bank and Bank of Nova Scotia still look cheap. Is one a good buy today?
2 Top TSX Bank Stocks to Buy in February 2023
January 31, 2023 | Chris MacDonald
Here's why Toronto-Dominion Bank (TSX:TD) and Bank of Nova Scotia (TSX:BNS) are two top TSX bank stocks to consider right…
TFSA Investors: A Big Bank Stock That Pays Almost 6% in Dividend Income
January 30, 2023 | Christopher Liew, CFA
A Big Bank stock is an ideal core holding in a TFSA, not only for its financial stability but also…
BMO Stock looks Better Than its Peers in January 2023
January 30, 2023 | Vineet Kulkarni
What's next for BMO stock after a downfall in 2022?
As Banks Expand South of the Border, Which Is the Better Bet for Growth?
January 30, 2023 | Demetris Afxentiou
Canada's big banks are expanding into the U.S. market. Here's a look at which of these titans is a better…
Could BMO Stock Be a Big Winner in 2023?
January 27, 2023 | Kay Ng
Long-term investors should take a closer look at BMO stock as a potential core holding, especially on dips.
TFSA Passive Income: How I'm Investing to Make $2,000/Year From Dividends
January 27, 2023 | Andrew Button
I am increasing my dividend income by investing in dividend stocks like the Toronto-Dominion Bank.
Of the Big 6 Bank Stocks: Buy This, Not That
January 26, 2023 | Joey Frenette
CIBC (TSX:CM) is an interesting Big Six bank stock to buy right now.