text:
#include <aws/core/utils/Outcome.h>
#include <aws/core/auth/AWSAuthSigner.h>
#include <aws/core/client/CoreErrors.h>
#include <aws/core/client/RetryStrategy.h>
#include <aws/core/http/HttpClient.h>
#include <aws/core/http/HttpResponse.h>
#include <aws/core/http/HttpClientFactory.h>
#include <aws/core/auth/AWSCredentialsProviderChain.h>
#include <aws/core/utils/json/JsonSerializer.h>
#include <aws/core/utils/memory/stl/AWSStringStream.h>
#include <aws/core/utils/threading/Executor.h>
#include <aws/core/utils/DNS.h>
#include <aws/core/utils/logging/LogMacros.h>

#include <aws/mediapackage/MediaPackageClient.h>
#include <aws/mediapackage/MediaPackageEndpoint.h>
#include <aws/mediapackage/MediaPackageErrorMarshaller.h>
#include <aws/mediapackage/model/ConfigureLogsRequest.h>
#include <aws/mediapackage/model/CreateChannelRequest.h>
#include <aws/mediapackage/model/CreateHarvestJobRequest.h>
#include <aws/mediapackage/model/CreateOriginEndpointRequest.h>
#include <aws/mediapackage/model/DeleteChannelRequest.h>
#include <aws/mediapackage/model/DeleteOriginEndpointRequest.h>
#include <aws/mediapackage/model/DescribeChannelRequest.h>
#include <aws/mediapackage/model/DescribeHarvestJobRequest.h>
#include <aws/mediapackage/model/DescribeOriginEndpointRequest.h>
#include <aws/mediapackage/model/ListChannelsRequest.h>
#include <aws/mediapackage/model/ListHarvestJobsRequest.h>
#include <aws/mediapackage/model/ListOriginEndpointsRequest.h>
#include <aws/mediapackage/model/ListTagsForResourceRequest.h>
#include <aws/mediapackage/model/RotateIngestEndpointCredentialsRequest.h>
#include <aws/mediapackage/model/TagResourceRequest.h>
#include <aws/mediapackage/model/UntagResourceRequest.h>
#include <aws/mediapackage/model/UpdateChannelRequest.h>
#include <aws/mediapackage/model/UpdateOriginEndpointRequest.h>

using namespace Aws;
using namespace Aws::Auth;
using namespace Aws::Client;
using namespace Aws::MediaPackage;
using namespace Aws::MediaPackage::Model;
using namespace Aws::Http;
using namespace Aws::Utils::Json;

static const char* SERVICE_NAME = "mediapackage";
static const char* ALLOCATION_TAG = "MediaPackageClient";

MediaPackageClient::MediaPackageClient(const Client::ClientConfiguration& clientConfiguration) :
  BASECLASS(clientConfiguration,
    Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG),
        SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
    Aws::MakeShared<MediaPackageErrorMarshaller>(ALLOCATION_TAG)),
    m_executor(clientConfiguration.executor)
{
  init(clientConfiguration);
}

MediaPackageClient::MediaPackageClient(const AWSCredentials& credentials, const Client::ClientConfiguration& clientConfiguration) :
  BASECLASS(clientConfiguration,
    Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials),
         SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
    Aws::MakeShared<MediaPackageErrorMarshaller>(ALLOCATION_TAG)),
    m_executor(clientConfiguration.executor)
{
  init(clientConfiguration);
}

MediaPackageClient::MediaPackageClient(const std::shared_ptr<AWSCredentialsProvider>& credentialsProvider,
  const Client::ClientConfiguration& clientConfiguration) :
  BASECLASS(clientConfiguration,
    Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, credentialsProvider,
         SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)),
    Aws::MakeShared<MediaPackageErrorMarshaller>(ALLOCATION_TAG)),
    m_executor(clientConfiguration.executor)
{
  init(clientConfiguration);
}

MediaPackageClient::~MediaPackageClient()
{
}

void MediaPackageClient::init(const ClientConfiguration& config)
{
  SetServiceClientName("MediaPackage");
  m_configScheme = SchemeMapper::ToString(config.scheme);
  if (config.endpointOverride.empty())
  {
      m_uri = m_configScheme + "://" + MediaPackageEndpoint::ForRegion(config.region, config.useDualStack);
  }
  else
  {
      OverrideEndpoint(config.endpointOverride);
  }
}

void MediaPackageClient::OverrideEndpoint(const Aws::String& endpoint)
{
  if (endpoint.compare(0, 7, "http://") == 0 || endpoint.compare(0, 8, "https://") == 0)
  {
      m_uri = endpoint;
  }
  else
  {
      m_uri = m_configScheme + "://" + endpoint;
  }
}

ConfigureLogsOutcome MediaPackageClient::ConfigureLogs(const ConfigureLogsRequest& request) const
{
  if (!request.IdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("ConfigureLogs", "Required field: Id, is not set");
    return ConfigureLogsOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/channels/";
  ss << request.GetId();
  ss << "/configure_logs";
  uri.SetPath(uri.GetPath() + ss.str());
  return ConfigureLogsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
}

ConfigureLogsOutcomeCallable MediaPackageClient::ConfigureLogsCallable(const ConfigureLogsRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< ConfigureLogsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ConfigureLogs(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::ConfigureLogsAsync(const ConfigureLogsRequest& request, const ConfigureLogsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->ConfigureLogsAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::ConfigureLogsAsyncHelper(const ConfigureLogsRequest& request, const ConfigureLogsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, ConfigureLogs(request), context);
}

CreateChannelOutcome MediaPackageClient::CreateChannel(const CreateChannelRequest& request) const
{
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/channels";
  uri.SetPath(uri.GetPath() + ss.str());
  return CreateChannelOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
}

CreateChannelOutcomeCallable MediaPackageClient::CreateChannelCallable(const CreateChannelRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< CreateChannelOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateChannel(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::CreateChannelAsync(const CreateChannelRequest& request, const CreateChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->CreateChannelAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::CreateChannelAsyncHelper(const CreateChannelRequest& request, const CreateChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, CreateChannel(request), context);
}

CreateHarvestJobOutcome MediaPackageClient::CreateHarvestJob(const CreateHarvestJobRequest& request) const
{
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/harvest_jobs";
  uri.SetPath(uri.GetPath() + ss.str());
  return CreateHarvestJobOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
}

CreateHarvestJobOutcomeCallable MediaPackageClient::CreateHarvestJobCallable(const CreateHarvestJobRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< CreateHarvestJobOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateHarvestJob(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::CreateHarvestJobAsync(const CreateHarvestJobRequest& request, const CreateHarvestJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->CreateHarvestJobAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::CreateHarvestJobAsyncHelper(const CreateHarvestJobRequest& request, const CreateHarvestJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, CreateHarvestJob(request), context);
}

CreateOriginEndpointOutcome MediaPackageClient::CreateOriginEndpoint(const CreateOriginEndpointRequest& request) const
{
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/origin_endpoints";
  uri.SetPath(uri.GetPath() + ss.str());
  return CreateOriginEndpointOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
}

CreateOriginEndpointOutcomeCallable MediaPackageClient::CreateOriginEndpointCallable(const CreateOriginEndpointRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< CreateOriginEndpointOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->CreateOriginEndpoint(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::CreateOriginEndpointAsync(const CreateOriginEndpointRequest& request, const CreateOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->CreateOriginEndpointAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::CreateOriginEndpointAsyncHelper(const CreateOriginEndpointRequest& request, const CreateOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, CreateOriginEndpoint(request), context);
}

DeleteChannelOutcome MediaPackageClient::DeleteChannel(const DeleteChannelRequest& request) const
{
  if (!request.IdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("DeleteChannel", "Required field: Id, is not set");
    return DeleteChannelOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/channels/";
  ss << request.GetId();
  uri.SetPath(uri.GetPath() + ss.str());
  return DeleteChannelOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
}

DeleteChannelOutcomeCallable MediaPackageClient::DeleteChannelCallable(const DeleteChannelRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< DeleteChannelOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteChannel(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::DeleteChannelAsync(const DeleteChannelRequest& request, const DeleteChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->DeleteChannelAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::DeleteChannelAsyncHelper(const DeleteChannelRequest& request, const DeleteChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, DeleteChannel(request), context);
}

DeleteOriginEndpointOutcome MediaPackageClient::DeleteOriginEndpoint(const DeleteOriginEndpointRequest& request) const
{
  if (!request.IdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("DeleteOriginEndpoint", "Required field: Id, is not set");
    return DeleteOriginEndpointOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/origin_endpoints/";
  ss << request.GetId();
  uri.SetPath(uri.GetPath() + ss.str());
  return DeleteOriginEndpointOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
}

DeleteOriginEndpointOutcomeCallable MediaPackageClient::DeleteOriginEndpointCallable(const DeleteOriginEndpointRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< DeleteOriginEndpointOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DeleteOriginEndpoint(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::DeleteOriginEndpointAsync(const DeleteOriginEndpointRequest& request, const DeleteOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->DeleteOriginEndpointAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::DeleteOriginEndpointAsyncHelper(const DeleteOriginEndpointRequest& request, const DeleteOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, DeleteOriginEndpoint(request), context);
}

DescribeChannelOutcome MediaPackageClient::DescribeChannel(const DescribeChannelRequest& request) const
{
  if (!request.IdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("DescribeChannel", "Required field: Id, is not set");
    return DescribeChannelOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/channels/";
  ss << request.GetId();
  uri.SetPath(uri.GetPath() + ss.str());
  return DescribeChannelOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
}

DescribeChannelOutcomeCallable MediaPackageClient::DescribeChannelCallable(const DescribeChannelRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< DescribeChannelOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeChannel(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::DescribeChannelAsync(const DescribeChannelRequest& request, const DescribeChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->DescribeChannelAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::DescribeChannelAsyncHelper(const DescribeChannelRequest& request, const DescribeChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, DescribeChannel(request), context);
}

DescribeHarvestJobOutcome MediaPackageClient::DescribeHarvestJob(const DescribeHarvestJobRequest& request) const
{
  if (!request.IdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("DescribeHarvestJob", "Required field: Id, is not set");
    return DescribeHarvestJobOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/harvest_jobs/";
  ss << request.GetId();
  uri.SetPath(uri.GetPath() + ss.str());
  return DescribeHarvestJobOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
}

DescribeHarvestJobOutcomeCallable MediaPackageClient::DescribeHarvestJobCallable(const DescribeHarvestJobRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< DescribeHarvestJobOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeHarvestJob(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::DescribeHarvestJobAsync(const DescribeHarvestJobRequest& request, const DescribeHarvestJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->DescribeHarvestJobAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::DescribeHarvestJobAsyncHelper(const DescribeHarvestJobRequest& request, const DescribeHarvestJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, DescribeHarvestJob(request), context);
}

DescribeOriginEndpointOutcome MediaPackageClient::DescribeOriginEndpoint(const DescribeOriginEndpointRequest& request) const
{
  if (!request.IdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("DescribeOriginEndpoint", "Required field: Id, is not set");
    return DescribeOriginEndpointOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/origin_endpoints/";
  ss << request.GetId();
  uri.SetPath(uri.GetPath() + ss.str());
  return DescribeOriginEndpointOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
}

DescribeOriginEndpointOutcomeCallable MediaPackageClient::DescribeOriginEndpointCallable(const DescribeOriginEndpointRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< DescribeOriginEndpointOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->DescribeOriginEndpoint(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::DescribeOriginEndpointAsync(const DescribeOriginEndpointRequest& request, const DescribeOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->DescribeOriginEndpointAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::DescribeOriginEndpointAsyncHelper(const DescribeOriginEndpointRequest& request, const DescribeOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, DescribeOriginEndpoint(request), context);
}

ListChannelsOutcome MediaPackageClient::ListChannels(const ListChannelsRequest& request) const
{
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/channels";
  uri.SetPath(uri.GetPath() + ss.str());
  return ListChannelsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
}

ListChannelsOutcomeCallable MediaPackageClient::ListChannelsCallable(const ListChannelsRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< ListChannelsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListChannels(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::ListChannelsAsync(const ListChannelsRequest& request, const ListChannelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->ListChannelsAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::ListChannelsAsyncHelper(const ListChannelsRequest& request, const ListChannelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, ListChannels(request), context);
}

ListHarvestJobsOutcome MediaPackageClient::ListHarvestJobs(const ListHarvestJobsRequest& request) const
{
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/harvest_jobs";
  uri.SetPath(uri.GetPath() + ss.str());
  return ListHarvestJobsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
}

ListHarvestJobsOutcomeCallable MediaPackageClient::ListHarvestJobsCallable(const ListHarvestJobsRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< ListHarvestJobsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListHarvestJobs(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::ListHarvestJobsAsync(const ListHarvestJobsRequest& request, const ListHarvestJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->ListHarvestJobsAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::ListHarvestJobsAsyncHelper(const ListHarvestJobsRequest& request, const ListHarvestJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, ListHarvestJobs(request), context);
}

ListOriginEndpointsOutcome MediaPackageClient::ListOriginEndpoints(const ListOriginEndpointsRequest& request) const
{
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/origin_endpoints";
  uri.SetPath(uri.GetPath() + ss.str());
  return ListOriginEndpointsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
}

ListOriginEndpointsOutcomeCallable MediaPackageClient::ListOriginEndpointsCallable(const ListOriginEndpointsRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< ListOriginEndpointsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListOriginEndpoints(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::ListOriginEndpointsAsync(const ListOriginEndpointsRequest& request, const ListOriginEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->ListOriginEndpointsAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::ListOriginEndpointsAsyncHelper(const ListOriginEndpointsRequest& request, const ListOriginEndpointsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, ListOriginEndpoints(request), context);
}

ListTagsForResourceOutcome MediaPackageClient::ListTagsForResource(const ListTagsForResourceRequest& request) const
{
  if (!request.ResourceArnHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("ListTagsForResource", "Required field: ResourceArn, is not set");
    return ListTagsForResourceOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/tags/";
  ss << request.GetResourceArn();
  uri.SetPath(uri.GetPath() + ss.str());
  return ListTagsForResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_GET, Aws::Auth::SIGV4_SIGNER));
}

ListTagsForResourceOutcomeCallable MediaPackageClient::ListTagsForResourceCallable(const ListTagsForResourceRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< ListTagsForResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->ListTagsForResource(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::ListTagsForResourceAsync(const ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->ListTagsForResourceAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::ListTagsForResourceAsyncHelper(const ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, ListTagsForResource(request), context);
}

RotateIngestEndpointCredentialsOutcome MediaPackageClient::RotateIngestEndpointCredentials(const RotateIngestEndpointCredentialsRequest& request) const
{
  if (!request.IdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("RotateIngestEndpointCredentials", "Required field: Id, is not set");
    return RotateIngestEndpointCredentialsOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
  }
  if (!request.IngestEndpointIdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("RotateIngestEndpointCredentials", "Required field: IngestEndpointId, is not set");
    return RotateIngestEndpointCredentialsOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [IngestEndpointId]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/channels/";
  ss << request.GetId();
  ss << "/ingest_endpoints/";
  ss << request.GetIngestEndpointId();
  ss << "/credentials";
  uri.SetPath(uri.GetPath() + ss.str());
  return RotateIngestEndpointCredentialsOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
}

RotateIngestEndpointCredentialsOutcomeCallable MediaPackageClient::RotateIngestEndpointCredentialsCallable(const RotateIngestEndpointCredentialsRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< RotateIngestEndpointCredentialsOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->RotateIngestEndpointCredentials(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::RotateIngestEndpointCredentialsAsync(const RotateIngestEndpointCredentialsRequest& request, const RotateIngestEndpointCredentialsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->RotateIngestEndpointCredentialsAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::RotateIngestEndpointCredentialsAsyncHelper(const RotateIngestEndpointCredentialsRequest& request, const RotateIngestEndpointCredentialsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, RotateIngestEndpointCredentials(request), context);
}

TagResourceOutcome MediaPackageClient::TagResource(const TagResourceRequest& request) const
{
  if (!request.ResourceArnHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("TagResource", "Required field: ResourceArn, is not set");
    return TagResourceOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/tags/";
  ss << request.GetResourceArn();
  uri.SetPath(uri.GetPath() + ss.str());
  return TagResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER));
}

TagResourceOutcomeCallable MediaPackageClient::TagResourceCallable(const TagResourceRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< TagResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->TagResource(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::TagResourceAsync(const TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->TagResourceAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::TagResourceAsyncHelper(const TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, TagResource(request), context);
}

UntagResourceOutcome MediaPackageClient::UntagResource(const UntagResourceRequest& request) const
{
  if (!request.ResourceArnHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("UntagResource", "Required field: ResourceArn, is not set");
    return UntagResourceOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [ResourceArn]", false));
  }
  if (!request.TagKeysHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("UntagResource", "Required field: TagKeys, is not set");
    return UntagResourceOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [TagKeys]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/tags/";
  ss << request.GetResourceArn();
  uri.SetPath(uri.GetPath() + ss.str());
  return UntagResourceOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_DELETE, Aws::Auth::SIGV4_SIGNER));
}

UntagResourceOutcomeCallable MediaPackageClient::UntagResourceCallable(const UntagResourceRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< UntagResourceOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UntagResource(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::UntagResourceAsync(const UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->UntagResourceAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::UntagResourceAsyncHelper(const UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, UntagResource(request), context);
}

UpdateChannelOutcome MediaPackageClient::UpdateChannel(const UpdateChannelRequest& request) const
{
  if (!request.IdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("UpdateChannel", "Required field: Id, is not set");
    return UpdateChannelOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/channels/";
  ss << request.GetId();
  uri.SetPath(uri.GetPath() + ss.str());
  return UpdateChannelOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
}

UpdateChannelOutcomeCallable MediaPackageClient::UpdateChannelCallable(const UpdateChannelRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< UpdateChannelOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateChannel(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::UpdateChannelAsync(const UpdateChannelRequest& request, const UpdateChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->UpdateChannelAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::UpdateChannelAsyncHelper(const UpdateChannelRequest& request, const UpdateChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, UpdateChannel(request), context);
}

UpdateOriginEndpointOutcome MediaPackageClient::UpdateOriginEndpoint(const UpdateOriginEndpointRequest& request) const
{
  if (!request.IdHasBeenSet())
  {
    AWS_LOGSTREAM_ERROR("UpdateOriginEndpoint", "Required field: Id, is not set");
    return UpdateOriginEndpointOutcome(Aws::Client::AWSError<MediaPackageErrors>(MediaPackageErrors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field [Id]", false));
  }
  Aws::Http::URI uri = m_uri;
  Aws::StringStream ss;
  ss << "/origin_endpoints/";
  ss << request.GetId();
  uri.SetPath(uri.GetPath() + ss.str());
  return UpdateOriginEndpointOutcome(MakeRequest(uri, request, Aws::Http::HttpMethod::HTTP_PUT, Aws::Auth::SIGV4_SIGNER));
}

UpdateOriginEndpointOutcomeCallable MediaPackageClient::UpdateOriginEndpointCallable(const UpdateOriginEndpointRequest& request) const
{
  auto task = Aws::MakeShared< std::packaged_task< UpdateOriginEndpointOutcome() > >(ALLOCATION_TAG, [this, request](){ return this->UpdateOriginEndpoint(request); } );
  auto packagedFunction = [task]() { (*task)(); };
  m_executor->Submit(packagedFunction);
  return task->get_future();
}

void MediaPackageClient::UpdateOriginEndpointAsync(const UpdateOriginEndpointRequest& request, const UpdateOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  m_executor->Submit( [this, request, handler, context](){ this->UpdateOriginEndpointAsyncHelper( request, handler, context ); } );
}

void MediaPackageClient::UpdateOriginEndpointAsyncHelper(const UpdateOriginEndpointRequest& request, const UpdateOriginEndpointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const
{
  handler(this, request, UpdateOriginEndpoint(request), context);
}


This is the year you've decided that you're going to live your dreams, accomplish those set-aside career aspirations and strengthen your relationships. But if you have a need to please – especially at work – it ain't gonna happen. Know the signs of a People Pleaser at work. If you recognize yourself in the following examples, it's time to stop. It's time to change your reactions. It's time to remember what you really want for yourself.
Wait to be offered a raise instead of asking for one.
Work longer hours than almost everyone else.
Allow fellow employees to interrupt and distract your focus constantly.
Strongly believe that the longer and harder you work, the more they will appreciate you.
Are comfortable functioning on overload.
Have been bypassed for promotions but told they really value you in your current position.
Ask for others opinions and direction on even the smallest tasks.
Tend to rescue or make excuses for incompetent members of your team.
Are getting physically ill from the long hours, stress and worry.
Expect your boss, co-workers, and customers to appreciate you and your extra work.
Have reviews that encourage you to be more aggressive, improve on decision making, and to be more confident.
Are told the company will pay for a personal coach for you.
Your career goals and dreams matter. The only one who can make them happen is you. Being a People Pleaser, and putting the needs and expectations of others first may offer some immediate satisfaction. But it's a fleeting illusion and it doesn't lead to real joy, real peace.
Check out the entire people pleasing section.
For more advice on being too nice, contact Vickie Champion for a discovery coaching and consulting session.


text:
Home » Context of 'October 18, 2007: Future Attorney General Uses Unknown Anecdote to Argue against Terror Prosecutions'
Context of 'October 18, 2007: Future Attorney General Uses Unknown Anecdote to Argue against Terror Prosecutions'
This is a scalable context timeline. It contains events related to the event October 18, 2007: Future Attorney General Uses Unknown Anecdote to Argue against Terror Prosecutions. You can narrow or broaden the context of this timeline by adjusting the zoom level. The lower the scale, the more relevant the items on average will be, while the higher the scale, the less relevant the items, on average, will be.
June 1994: Front Company for Bojinka Plot Formed; Ties Plot to Al-Qaeda Figures
A young Indonesian nicknamed Hambali forms a front company that ties al-Qaeda figures to the Bojinka plot (see January 6, 1995), an early version of the 9/11 plot. Hambali had fought in Afghanistan in the late 1980's, repeatedly met with bin Laden there, and allied himself to bin Laden's cause. In 1994, Hambali, living in a village north of Kuala Lumpur, Malaysia, began frequently receiving visitors. According to his landlord, "Some looked Arab and others white." There has been no explanation who these "white" visitors may have been. Hambali had been very poor prior to this time, but he is suddenly "flush with newfound cash" brought by the visitors. In June 1994, he founds a front company called Konsonjaya with Wali Khan Amin Shah, a key Bojinka plotter, and both their names are listed on the eight-person board of directors. Shah fought with bin Laden in Afghanistan, and bin Laden will even admit knowing him and praise him in an 1998 interview (see May 28, 1998). Philippine police phone taps show that frequent calls are made from the Konsonjaya offices in Malaysia to the Philippines offices of Mohammed Jamal Khalifa, bin Laden's brother-in-law who is also believed to be part of the Bojinka plot (see 1994). [Time, 4/1/2002] A Malaysian official will later say that Hambali spends time in the Philippines with Shah and bomber Ramzi Yousef in 1994 as they plan the Bojinka plot. [Washington Post, 2/3/2002] Mohammed Amin al-Ghafari, another Konsonjaya director, makes frequent trips from Malaysia to the Philippines while planning for the Bojinka plot is under way, and he is later believed to play a key role in financing the plot. In early 1995, after the Bojinka plot is broken up, one of the arrested Bojinka plotters will confess to Konsonjaya's role in the plot (see February-Early May 1995) and a Philippine investigator's flow chart of the Bojinka plotters and their connections will prominently include Konsonjaya (see Spring 1995). However, neither the Philippine nor US government appears interested in capturing Hambali, al-Ghafari, or the others involved in Konsonjaya before 9/11. [Los Angeles Times, 6/24/2002; Contemporary Southeast Asia, 12/1/2002] Hambali will continue to live openly in Malaysia, even throwing a party every year for hundreds of people (see April 1991-Late 2000). He will go on to plan other al-Qaeda attacks and will attend a key planning meeting for the 9/11 plot in 2000 (see January 5-8, 2000). [Time, 4/1/2002] Al-Ghafari will finally be deported in 2002 after years of police protection (see October 8-November 8, 2002).
Entity Tags: Wali Khan Amin Shah, Ramzi Yousef, Mohammed Amin al-Ghafari, Konsonjaya, Hambali, Mohammed Jamal Khalifa, Operation Bojinka
January 6, 1995: Pope Assassination and Bojinka Plot to Bomb Dozen Airplanes Is Foiled
One of Ramzi Yousef's timers seized by Philippines police in January 1995. [Source: Peter Lance]Responding to an apartment fire, Philippine investigators uncover an al-Qaeda plot to assassinate the Pope that is scheduled to take place when he visits the Philippines one week later. While investigating that scheme, they also uncover Operation Bojinka, planned by the same people: 1993 WTC bomber Ramzi Yousef and 9/11 mastermind Khalid Shaikh Mohammed (KSM). [Independent, 6/6/2002; Los Angeles Times, 6/24/2002; Los Angeles Times, 9/1/2002] Many initial reports after 9/11 will claim the fire was accidental and the police discovery of it was a lucky break, but in 2002 the Los Angeles Times will report that the police started the fire on purpose as an excuse to look around the apartment. In the course of investigating the fire, one of the main plotters, Abdul Hakim Murad, is arrested. [Los Angeles Times, 9/1/2002] The plot has two main components. On January 12, Pope John Paul II is scheduled to visit Manila and stay for five days. A series of bombs along his parade route would be detonated by remote control, killing thousands, including the Pope. Yousef's apartment is only 500 feet from the residence where the Pope will be staying. [Reeve, 1999, pp. 78; Lance, 2006, pp. 138] Then, starting January 21, a series of bombs would be placed on airplanes. [Insight, 5/27/2002] Five men, Yousef, Wali Khan Amin Shah, Abdul Hakim Murad, Abd al-Karim Yousef (a.k.a., Adel Anon, Yousef's twin brother), and Khalid Al-Shaikh (thought to be an alias for KSM) would depart to different Asian cities and place a timed bomb on board during the first leg of passenger planes traveling to Los Angeles, San Francisco, Honolulu, and New York. They would then transfer to another flight and place a second bomb on board that flight. In all, 11 to 12 planes would blow up in a two day period over the Pacific. If successful, some 4,000 people would have been killed. [Agence France-Presse, 12/8/2001; Insight, 5/27/2002; Contemporary Southeast Asia, 12/1/2002] According to another account, some of the bombs would be timed to go off weeks or even months later. Presumably worldwide air travel could be interrupted for months. [Lance, 2003, pp. 260-61] A second wave of attacks involving crashing airplanes into buildings in the US would go forward later, once the pilots are trained for it (see February-Early May 1995).
Entity Tags: Abd al-Karim Yousef, Khalid Shaikh Mohammed, Ramzi Yousef, Wali Khan Amin Shah, Operation Bojinka, Al-Qaeda, Abdul Hakim Murad
November 1996-Late August 1998: US Tracks Bin Laden's Satellite Phone Calls
An Inmarsat Compact M satellite phone, the type used by bin Laden. [Source: Inmarsat]During this period, Osama bin Laden uses a satellite phone to direct al-Qaeda's operations. The phone—a Compact M satellite phone, about the size of a laptop computer—was purchased by a student in Virginia named Ziyad Khaleel for $7,500 using the credit card of a British man named Saad al-Fagih. After purchasing the phone, Khaleel sent it to Khalid al-Fawwaz, al-Qaeda's unofficial press secretary in London (see Early 1994-September 23, 1998). Al-Fawwaz then shipped it to bin Laden in Afghanistan. [CNN, 4/16/2001] It appears US intelligence actually tracks the purchase as it occurs (see November 1996-Late December 1999), probably because an older model satellite phone bin Laden has is already being monitored (see Early 1990s). Bin Laden's phone (873682505331) is believed to be used by other top al-Qaeda leaders as well, including Ayman al-Zawahiri and Mohammad Atef. Al-Fawwaz also buys satellite phones for other top al-Qaeda leaders around the same time. Though the calls made on these phones are encrypted, the NSA is able to intercept and decrypt them. As one US official will put it in early 2001, "codes were broken." [United Press International, 2/13/2001; Newsweek, 2/18/2002] The Los Angeles Times will report that the monitoring of these phones "produced tens of thousands of pages of transcripts over two years." [Los Angeles Times, 10/14/2001] Bin Laden's satellite phone replaces an older model he used in Sudan that apparently was also monitored by the NSA (see Early 1990s). Billing records for his new phone are eventually released to the media in early 2002. Newsweek will note, "A country-by-country analysis of the bills provided US authorities with a virtual road map to important al-Qaeda cells around the world." [Sunday Times (London), 3/24/2002] The countries called are:
Britain (238 or 260). Twenty-seven different phone numbers are called in Britain. Accounts differ on the exact number of calls. Khalid al-Fawwaz, who helps publish statements by bin Laden, receives 143 of the calls, including the very first one bin Laden makes with this phone. Apparently most of the remaining calls are made to pay phones near him or to his associates. He also frequently calls Ibrahim Eidarous, who works with al-Fawwaz and lives near him. [CNN, 4/16/2001; Newsweek, 2/18/2002; Sunday Times (London), 3/24/2002; O'Neill and McGrory, 2006, pp. 111]
Yemen (221). Dozens of calls go to an al-Qaeda communications hub in Sana'a, Yemen, which is run by the father-in-law of 9/11 hijacker Khalid Almihdhar (see Late August 1998). [Newsweek, 2/18/2002; Los Angeles Times, 9/1/2002; Bamford, 2008, pp. 8]
Sudan (131). Bin Laden lived in Sudan until 1996 (see May 18, 1996), and some important al-Qaeda operatives remained there after he left (see February 5, 1998). [Sunday Times (London), 3/24/2002]
Iran (106). Newsweek will later report: "US officials had little explanation for the calls to Iran. A Bush administration official said that US intelligence has believed for years that hard-line anti-American factions inside Iran helped bin Laden's organization operate an 'underground railroad' smuggling Islamic militants to al-Qaeda training camps in Afghanistan." [Newsweek, 2/18/2002; Sunday Times (London), 3/24/2002]
Azerbaijan (67). An important al-Qaeda operative appears to be based in Baku, Azerbaijan. [Washington Post, 5/2/2001] This is most likely Ahmad Salama Mabruk, who is very close to al-Qaeda number two Ayman al-Zawahiri and is said to be the head of the al-Qaeda cell there. He kidnapped by the CIA in Baku in late August 1998 (see Late August 1998).
Kenya (at least 56). In the embassy bombings trial, prosecutors introduce evidence showing 16 calls are made on this phone to some of the embassy bombers in Kenya (see 10:35-10:39 a.m., August 7, 1998), apparently all before a raid in August 1997 (see August 21, 1997). The defense introduces evidence showing at least 40 more calls are made after that time (see Late 1996-August 1998). [CNN, 4/16/2001]
Pakistan (59).
Saudi Arabia (57).
A ship in the Indian Ocean (13).
The US (6).
Italy (6).
Malaysia (4).
Senegal (2). [Sunday Times (London), 3/24/2002]
Egypt (unknown). Newsweek reports that calls are made to Egypt but doesn't say how many. [Newsweek, 2/18/2002]
Iraq (0). Press reports note that the records indicate zero calls were made to Iraq. [Newsweek, 2/18/2002; Sunday Times (London), 3/24/2002] 1,100 total calls are made on this phone. Adding up the above numbers means that the destination of over 100 calls is still unaccounted for. [Newsweek, 2/18/2002] The use of this phone stops two months after the August 1998 embassy bombings in Africa. However, it appears bin Laden and other al-Qaeda leaders continue to use other satellite phones occasionally after this time. Shortly after 9/11, James Bamford, an expert authority on the agency, says "About a year or so ago the NSA lost all track of him.… He may still use [satellite phones] occasionally to talk about something mundane, but he discovered that the transmitters can be used for honing." [CNN, 9/21/2001] According to a different account, bin Laden will attempt to use a different phone communication method, but US intelligence will soon discover it and continue monitoring his calls (see Late 1998 and After).
Entity Tags: Ziyad Khaleel, Saad al-Fagih, Osama bin Laden, Ibrahim Eidarous, Khalid al-Fawwaz, Mohammed Atef, Al-Qaeda, Ayman al-Zawahiri, Ahmad Salama Mabruk
1997 or After: Responsibility for KSM Transferred to Renditions Branch at CIA
After a renditions branch is established at the CIA in 1997, responsibility at the agency for dealing with Khalid Shaikh Mohammed (KSM) is transferred there. This is because he is wanted in connection with the Bojinka plot (see January 8, 1998). The 9/11 Commission will say that this both improves the CIA's coverage of KSM—because it gives them a "man-to-man" focus—and also degrades it—as less analysis is performed related to rendition targets. [9/11 Commission, 7/24/2004, pp. 276-7] The CIA's inspector general will say that at this time the agency's Counterterrorist Center considers KSM a "high-priority target for apprehension and rendition," but will fail to recognize the importance of reporting from "credible sources" before 9/11 that shows he is a top al-Qaeda leader and is sending other terrorists to the US to work for Osama bin Laden (see June 12, 2001 and August 28, 2001). The inspector general will recommend that an accountability board review the performance of at least four officers for these failures. [Central Intelligence Agency, 6/2005, pp. xii-xiii ]
Entity Tags: Central Intelligence Agency, Khalid Shaikh Mohammed
January 8, 1998: KSM Revealed as Major Al-Qaeda Operative at Yousef Sentencing
FBI reward notice for Khalid Shaikh Mohammed. [Source: FBI]Islamic militant Ramzi Yousef is sentenced to 240 years for his role in the 1993 WTC bombing. At the same time, prosecutors unseal an indictment against Khalid Shaikh Mohammed (KSM) for participating with Yousef in the 1995 Operation Bojinka plot (see January 6, 1995). In unsealing this, US Attorney Mary Jo White calls KSM a "major player" and says he is believed to be a relative of Yousef. [Washington Post, 1/9/1998] The US announces a $2 million reward for his capture in 1998 and wanted posters with his picture are distributed. [New York Times, 6/5/2002] This contradicts the FBI's claim after 9/11 that they did not realize he was a major terrorist before 9/11. [US Congress, 12/11/2002] For instance, a senior FBI official later says, "He was under everybody's radar. We don't know how he did it. We wish we knew.… He's the guy nobody ever heard of." [Los Angeles Times, 12/22/2002] However, another official says, "We have been after him for years, and to say that we weren't is just wrong. We had identified him as a major al-Qaeda operative before September 11." [New York Times, 9/22/2002] Yet strangely, despite knowing KSM is a major al-Qaeda operations planner and putting out a large reward for his capture at this time, there is no worldwide public manhunt for him as there successfully was for his nephew Ramzi Yousef. KSM's name remains obscure and he isn't even put on the FBI's Most Wanted Terrorists list until one month after 9/11. [Lance, 2003, pp. 327-30]
Entity Tags: Ramzi Yousef, Khalid Shaikh Mohammed, Mary Jo White, Federal Bureau of Investigation
May 28, 1998: Bin Laden Wants to Use Missiles against US Aircraft; Possibly Given Doctored Phone Battery
During his interview with John Miller, bin Laden is positioned in front of East Africa on a map, and US embassies will be bombed in East Africa several months later. Bin Laden has considered it his religious duty to give warning before attacks and thus has left clues like this. [Source: CNN]In an interview with ABC News reporter John Miller, Osama bin Laden indicates he may attack a US military passenger aircraft using antiaircraft missiles. Bin Laden says: "We are sure of our victory. Our battle with the Americans is larger than our battle with the Russians.… We predict a black day for America and the end of the United States as United States, and will be separate states, and will retreat from our land and collect the bodies of its sons back to America." In the subsequent media coverage, Miller will repeatedly refer to bin Laden as "the world's most dangerous terrorist," and "the most dangerous man in the world." [ABC News, 5/28/1998; ABC News, 6/12/1998; Esquire, 2/1999; US Congress, 7/24/2003] The book The Looming Tower by Lawrence Wright will later note, "Looming behind his head was a large map of Africa, an unremarked clue." [Wright, 2006, pp. 264] Bin Laden admits to knowing Wali Khan Amin Shah, one of the Bojinka plotters (see June 1996), but denies having met Bojinka plotter Ramzi Yousef or knowing about the plot itself. [PBS Frontline, 10/3/2002] A Virginia man named Tarik Hamdi (see March 20, 2002) helped set up Miller's interview. He goes with Miller to Afghanistan and gives bin Laden a new battery for his satellite phone (see November 1996-Late August 1998). Vincent Cannistraro, former head of the CIA's Counterterrorist Center, will later claim that this battery was somehow bugged to help the US monitor bin Laden. [Newsweek, 8/10/2005] In 2005, Miller will become the FBI's assistant director of the Office of Public Affairs. [All Headline News, 8/24/2005]
Entity Tags: John Miller, Operation Bojinka, Osama bin Laden, Vincent Cannistraro, Wali Khan Amin Shah, Tarik Hamdi, Ramzi Yousef
10:35-10:39 a.m., August 7, 1998: Al-Qaeda Bombs US Embassies in Kenya and Tanzania, Killing Over 200
Bombings of the Nairobi, Kenya, US embassy (left), and the Dar es Salaam, Tanzania, US embassy (right). [Source: Associated Press]Two US embassies in Africa are bombed within minutes of each other. At 10:35 a.m., local time, a suicide car bomb attack in Nairobi, Kenya, kills 213 people, including 12 US nationals, and injures more than 4,500. Mohamed al-Owhali and someone known only as Azzam are the suicide bombers, but al-Owhali runs away at the last minute and survives. Four minutes later, a suicide car bomb attack in Dar es Salaam, Tanzania, kills 11 and injures 85. Hamden Khalif Allah Awad is the suicide bomber there. The attacks will be blamed on al-Qaeda. [PBS Frontline, 2001; United States of America v. Usama Bin Laden, et al., Day 38, 5/2/2001] The Tanzania death toll is low because, remarkably, the attack takes place on a national holiday so the US embassy there is closed. [Miller, Stone, and Mitchell, 2002, pp. 195] The attack shows al-Qaeda has a capability for simultaneous attacks. The Tanzania bombing appears to have been a late addition, as one of the arrested bombers will allegedly tell US agents that it was added to the plot only about 10 days in advance. [United State of America v. Usama bin Laden, et al., Day 14, 3/7/2001] A third attack against the US embassy in Uganda does not take place due to a last-minute delay (see August 7, 1998). [Associated Press, 9/25/1998] August 7, 1998, is the eighth anniversary of the arrival of US troops in Saudi Arabia and some people will speculate that this is the reason for the date of the bombings. [Gunaratna, 2003, pp. 46] In the 2002 book The Cell, reporters John Miller, Michael Stone, and Chris Mitchell will write: "What has become clear with time is that facets of the East Africa plot had been known beforehand to the FBI, the CIA, the State Department, and to Israeli and Kenyan intelligence services.… [N]o one can seriously argue that the horrors of August 7, 1998, couldn't have been prevented." They will also comment, "Inexplicable as the intelligence failure was, more baffling still was that al-Qaeda correctly presumed that a major attack could be carried out by a cell that US agents had already uncovered." [Miller, Stone, and Mitchell, 2002, pp. 195, 206] After 9/11, it will come to light that three of the alleged hijackers, Khalid Almihdhar, Nawaf Alhazmi, and Salem Alhazmi, had some involvement in the bombings (see October 4, 2001, Late 1999, and 1993-1999) and that the US intelligence community was aware of this involvement by late 1999 (see December 15-31, 1999), if not before.
Entity Tags: Salem Alhazmi, Nawaf Alhazmi, Mohamed al-Owhali, Hamden Khalif Allah Awad, Khalid Almihdhar, Al-Qaeda, Azzam
August 20, 1998: ISI Alerts Bin Laden and Taliban to US Missile Strike
A US surface ship firing a missile. The date and time is unknown. [Source: PBS]Hours before the US missile strike meant to assassinate bin Laden, he is warned that his satellite phone is being used to track his location and he turns it off. A former CIA official later alleges the warning came from supporters working for Pakistani intelligence, the ISI. [Reeve, 1999, pp. 201-202] It has been claimed that a tracking beacon was placed in bin Laden's phone when a replacement battery was brought to him in May 1998 (see May 28, 1998). The US military only gave Pakistan about ten minutes' advance notice that cruise missiles were entering their air space on their way to Afghanistan. This was done to make sure the missiles wouldn't be misidentified and shot down. [New Yorker, 1/24/2000] But Pakistan was apparently aware several hours earlier, as soon as the missiles were launched. Counterterrorism "tsar" Richard Clarke later claims he was promised by the Navy that it would fire their missiles from below the ocean surface. However, in fact, many destroyers fired their missiles from the surface. [Clarke, 2004, pp. 188-89] He adds, "not only did they use surface ships—they brought additional ones in, because every captain wants to be able to say he fired the cruise missile." [New Yorker, 7/28/2003] As a result, the ISI had many hours to alert bin Laden. Furthermore, Clarke later says, "I have reason to believe that a retired head of the ISI was able to pass information along to al-Qaeda that an attack was coming." This is a likely reference to Hamid Gul, director of the ISI in the early 1990's. [New Yorker, 7/28/2003] In 1999 the US will intercept communications suggesting that Gul played a role in forewarning the Taliban about the missile strike which may even had predated the firing of the cruise missiles (see July 1999). Clarke says he believes that "if the [ISI] wanted to capture bin Laden or tell us where he was, they could have done so with little effort. They did not cooperate with us because ISI saw al-Qaeda as helpful in pressuring India, particularly in Kashmir." [Clarke, 2004, pp. 188-89] Furthermore, bin Laden cancels a meeting with other al-Qaeda leaders after finding out that 180 US diplomats were being immediately withdrawn from Pakistan on a chartered plane. Thanks to these warnings, he is hundreds of miles away from his training camps when the missiles hit some hours later (see August 20, 1998). [Reeve, 1999, pp. 202]
Entity Tags: Osama bin Laden, Al-Qaeda, Hamid Gul, Pakistan Directorate for Inter-Services Intelligence, Taliban, Richard A. Clarke
Late August 1998: Bin Laden Stops Using His Satellite Phone, Reason Unclear
Bin Laden's satellite phone is being monitored by US intelligence at the time of the US embassy bombings in early August 1998 (see November 1996-Late August 1998 and 10:35-10:39 a.m., August 7, 1998).
Washington Times Article Falsely Blamed - On August 21, 1998, an article in the Washington Times says of bin Laden, "He keeps in touch with the world via computers and satellite phones…" The Washington Post will later note, "The information in the article does not appear to be based on any government leak and made no reference to government surveillance of bin Laden's phone." Other articles published on the same day make similar claims. However, it will become widely believed that this article causes bin Laden to stop using his satellite phone, which is being secretly monitored by the US (see November 1996-Late August 1998). [Washington Post, 12/20/2005] For instance, the 9/11 Commission will later blame this article and President Bush will repeat the story in late 2005. However, bin Laden's use of a satellite phone was already widely publicized. For instance, in December 1996, Time magazine noted that bin Laden "uses satellite phones to contact fellow Islamic militants in Europe, the Middle East, and Africa." In 1997, bin Laden actually talked in a CNN interview about his use of satellite phones.
First Mention that US Was Monitoring His Calls in September - It is only on September 7, 1998, after bin Laden apparently stopped using his phone, that the Los Angeles Times is the first newspaper to mention that the US is monitoring his calls. The article says that US authorities "used their communications intercept capacity to pick up calls placed by bin Laden on his Inmarsat satellite phone, despite his apparent use of electronic 'scramblers.'" [Washington Post, 12/22/2005]
Bin Laden Tipped Off by Missile Strike? - One possible explanation is that bin Laden stops using his phone after the August 1998 missile strike aimed at him (see August 20, 1998) for fear that the phone was used as a homing device for the missiles. The phone was in fact used as a homing device, and Defense Secretary William Cohen publicly acknowledged this by early 2001. The missile strike took place just one day before the Washington Times article. [United Press International, 2/21/2001] In 1998, a US man named Tarik Hamdi delivered a new battery for bin Laden's phone. A former head of the CIA's Counter Terrorism Center has stated that the battery was somehow bugged to improve US monitoring of bin Laden (see May 28, 1998).
Bin Laden Tipped Off before the Strike? - Another possibility is that bin Laden stopped using his phone just before the missile strike. Sunday Times reporter Simon Reeve claims the Pakistani ISI warned him about the strike hours before it happened, and told him that his phone use was being monitored by the US (see August 20, 1998). [Reeve, 1999, pp. 201-202]
Entity Tags: William S. Cohen, Tarik Hamdi, Osama bin Laden
Late 1998 and After: US Intelligence Still Monitors Bin Laden's Calls after He Stops Using His Satellite Phone
Shortly after an August 1998 US missile strike on Afghanistan (see August 20, 1998), bin Laden stops using his satellite phone, correctly deciding that it was being monitored by US intelligence (see Late August 1998). According to counterterrorism expert Rohan Gunaratna, al-Qaeda quickly "developed a system to deceive those monitoring his calls. [But] Western security and intelligence agencies were soon able to monitor the new system, which was based on transferring international calls within safe houses in Pakistan to make them seem like domestic calls." Other al-Qaeda leaders such as Abu Zubaida will be frequently monitored as they make calls using this new system (see October 1998 and After). Gunaratna later claims to have learned this from a confidential source in a "communications monitoring agency" in Western Europe. [Gunaratna, 2003, pp. 15-16, 3291] It is not known how long it took until al-Qaeda realized this new system was compromised, but there are accounts of bin Laden and Zubaida's calls being monitored days before 9/11 (see Early September 2001, September 9, 2001, and Early September 2001).
Entity Tags: Osama bin Laden, Abu Zubaida
November 17, 2000: US Issues International Arrest Warrant for KSM
The US puts out an international arrest warrant for Khalid Shaikh Mohammed (KSM). The warrant seeks KSM in connection with the 1995 Bojinka plot (see January 6, 1995). [Knight Ridder, 3/13/2003] It is not clear why the US waited so long to issue this warrant, considering that the US connected him to a major terrorist act back in 1993 (see March 20, 1993), learned he was a major figure in the Bojinka plot in 1995 (see After February 7, 1995-January 1996), secretly indicted him in January 1996, and placed a $2 million reward on his head in January 1998 (see January 8, 1998).
Entity Tags: Khalid Shaikh Mohammed
Summer 2001: NSA Intercepts Calls between 9/11 Hijacker Atta and 9/11 Mastermind KSM; Fails to Share This with Other Agencies
Around this time, the NSA intercepts telephone conversations between 9/11 mastermind Khalid Shaikh Mohammed (KSM) and 9/11 hijacker Mohamed Atta, but apparently it does not share the information with any other agencies. The FBI has had a $2 million reward for KSM since 1998 (see January 8, 1998), while Atta is in charge of hijacker operations inside the US. [Knight Ridder, 6/6/2002; Independent, 6/6/2002] The monitored calls between the two of them continue until September 10, one day before the 9/11 attacks (see September 10, 2001). The NSA either fails to translate these messages in a timely fashion or fails to understand the significance of what was translated. [Knight Ridder, 6/6/2002] However, it will later be revealed that an FBI squad built an antenna in the Indian Ocean some time before 9/11 with the specific purpose of listening in on KSM's phone calls, so they may have learned about these calls to Atta on their own (see Before September 11, 2001).
Entity Tags: Mohamed Atta, National Security Agency, Khalid Shaikh Mohammed
Between June 24 and June 30, 2001: Reporter Describes the Signs that Bin Laden Intends to Conduct an Attack in the US
John Miller. [Source: FBI]ABC News reporter John Miller gives a speech in which he discusses the growing indications that al-Qaeda leader Osama bin Laden has plans to carry out an attack in the United States. Miller gives his speech at the annual conference of the International Association of Bomb Technicians and Investigators. [Miller, Stone, and Mitchell, 2002, pp. 286-287] The conference, held in Albuquerque, New Mexico, from June 24 to June 30, is attended by around 700 law enforcement officers from around the world. [Sandia LabNews, 6/15/2001] Miller will later explain some of the thinking behind his claim that bin Laden could be planning an attack in the US. "At that time," he will write, "US authorities were divided over where bin Laden would strike next. Most officials believed that he was aiming at 'soft' US targets overseas, based on his past actions and electronic phone intercepts of al-Qaeda members around the world." Other officials, though, taking into account al-Qaeda operative Ahmed Ressam's failed plot to blow up Los Angeles International Airport on December 31, 1999 (see December 14, 1999), believe his next attack will take place on US soil. Miller will write that a "spike in phone traffic among suspected al-Qaeda members in the early part of the summer, as well as debriefings of Ressam," have convinced investigators that bin Laden is planning "a significant operation" and he is "planning it soon." Furthermore, he will comment, "[N]o one working on the problem seemed to doubt bin Laden's intentions to target Americans." [Miller, Stone, and Mitchell, 2002, pp. 287] Miller has been a correspondent for ABC News, with a primary focus on terrorism, since 1995. Notably, he interviewed bin Laden in Afghanistan in May 1998 (see May 28, 1998). Before joining ABC News, he spent many years as a television crime reporter in New York, and between 1994 and 1995 served as deputy police commissioner of New York City. [ABC News, 5/28/1998; Cincinnati Enquirer, 1/16/2002; Federal Bureau of Investigation, 8/23/2005; Hollywood Reporter, 10/17/2011]
Entity Tags: John Miller, Osama bin Laden
March 20, 2002: SAAR Network Is Raided
US Customs Agents carry out boxes of evidence from SAAR network businesses on March 20, 2002. [Source: Mike Theiler/ Getty Images]Scores of federal agents raid 14 entities in a cluster of more than 100 homes, charities, think tanks, and businesses in Herndon, Virginia, a town just outside of Washington with a large Muslim population. No arrests are made and no organizations are shut down, but over 500 boxes of files and computer files are confiscated, filling seven trucks. This group of interlocking entities is widely known as the SAAR network (it is also sometimes called the Safa Group). SAAR stands for Sulaiman Abdul Aziz al-Rajhi, a Saudi banker and billionaire who largely funded the group beginning in the early 1980s (see July 29, 1983). He is said to be close to the Saudi ruling family and is on the Golden Chain, a list of early al-Qaeda supporters (see 1988-1989). [New York Times, 3/21/2002; Farah, 2004, pp. 152; Wall Street Journal, 6/21/2004] The name and address of Salah al-Rajhi, Suleiman's brother, was discovered in 1998 in the telephone book of Wadih El-Hage (see September 15, 1998). El-Hage was bin Laden's personal secretary and was convicted of a role in the 1998 US embassy bombings. [New York Times, 3/25/2002] The raids are said to be primarily led by David Kane, a Customs agent working with a Customs investigation started just after 9/11 code-named Operation Greenquest. Many of the organizations are located at an office building at 555 Grove Street in Herndon. Kane writes in an affidavit for the raid that many organizations based there are "paper organizations" which "dissolve and are replaced by other organizations under the control of the same group of individuals." [New York Times, 3/21/2002; Wall Street Journal, 6/21/2004] Investigators appear to be primarily interested in the connections between the SAAR network and the Al Taqwa Bank, a Swiss bank closed after 9/11 on suspicions of funding al-Qaeda and other terrorist groups (see November 7, 2001). They are also interested in connections between both SAAR and Al Taqwa and the Muslim Brotherhood (see December 1982). According to author Douglas Farah, "US officials [later say] they had tracked about $20 million from [SAAR] entities flowing through Nada's Bank al Taqwa, but said the total could be much higher. The ties between Nada and [SAAR] leaders were many and long-standing, as were their ties to other [Muslim] Brotherhood leaders.… For a time, Suleiman Abdel Aziz al-Rajhi, the SAAR Foundation founder, worked for Nada" at Al Taqwa's Liechtenstein branch. [New York Times, 3/25/2002; Farah, 2004, pp. 154-155] Organizations and individuals targeted by the raid include:
Yaqub Mirza. He is the director of virtually all of the organizations targeted in the raid. The Wall Street Journal claims, "US officials privately say Mr. Mirza and his associates also have connections to al-Qaeda and to other entities officially listed by the US as sponsors of terrorism." [Wall Street Journal, 4/18/2002; Wall Street Journal, 12/6/2002]
The SAAR Foundation or the Safa Trust, an umbrella group for the SAAR network. The SAAR Foundation had recently disbanded and reformed as the Safa Trust. [New York Times, 3/21/2002; Wall Street Journal, 3/22/2002; Washington Post, 10/7/2002]
Hisham Al-Talib, who served as an officer of the SAAR Foundation and Safa Trust, had previously been an officer of firms run by Youssef Nada. Nada is one of the main owners of the Al Taqwa Bank. [Wall Street Journal, 3/22/2002]
Mar-Jac Poultry Inc., an Islamic chicken processor with operations in rural Georgia. [Wall Street Journal, 6/21/2004]
Jamal Barzinji. An officer of Mar-Jac and other organizations targeted in the raid, he had previously been involved with Nada's companies. [Wall Street Journal, 3/22/2002]
The International Islamic Relief Organization (IIRO). [New York Times, 3/21/2002]
The Muslim World League. It is considered to be a parent organization for the IIRO. [New York Times, 3/21/2002]
International Institute for Islamic Thought (IIRT). The IIRT had been under investigation since at least 1998. [New York Times, 3/21/2002]
Tarik Hamdi, an employee at IIRT. His home is also raided. He carried a battery for a satellite phone to Afghanistan in early 1998, and the battery was used for Osama bin Laden's phone (see May 28, 1998). [New York Times, 3/21/2002]
Abdurahman Alamoudi, a top Muslim lobbyist who formerly worked for one of the SAAR organizations. His nearby home is raided. The search yields a memo on large transactions involving Hamas, operations against the Israelis, and the notation "Met Mousa Abu Marzouk in Jordan." Marzouk is a Hamas leader believed to be involved in fundraising for Hamas in the US for many years (see July 5, 1995-May 1997). Alamoudi is alleged to be a leader of the Muslim Brotherhood. [Wall Street Journal, 6/21/2004]
Samir Salah, an Egyptian-born president of the Piedmont Trading Corporation, which is part of the SAAR network. He is also a former director and treasurer of the Al Taqwa Bank's important Bahamas branch. Additionally, he was a founder of a Bosnian charity reportedly connected to a plot to blow up the US embassy in Bosnia. [New York Times, 3/25/2002]
Ibrahim Hassabella. He is a shareholder of the SAAR Foundation and also a former secretary of the Al Taqwa Bank. [New York Times, 3/25/2002] Investigators will later find that much of SAAR's money seemed to disappear into offshore bank accounts. For instance, in 1998, SAAR claimed to have moved $9 million to a charity based in the tax haven of the Isle of Man, but investigators will find no evidence the charity existed. One US official involved in the probe will say of SAAR, "Looking at their finances is like looking into a black hole." [Washington Post, 10/7/2002] In 2003, it will be reported that US investigators are looking into reports that the director of the SAAR foundation for most of the 1990s stayed in the same hotel as three of the 9/11 hijackers the night before the 9/11 attacks (see September 10, 2001). Some US investigators had looked into the SAAR network in the mid-1990s, but the FBI blocked the investigation's progress (see 1995-1998).
Entity Tags: Operation Greenquest, Muslim World League, Muslim Brotherhood, SAAR Foundation, Samir Salah, Sulaiman Abdul Aziz al-Rajhi, Mousa Abu Marzouk, US Customs Service, Tarik Hamdi, Jamal Barzinji, International Institute for Islamic Thought, International Islamic Relief Organization, Abdurahman Alamoudi, Al Taqwa Bank, Mar-Jac Poultry Inc., David Kane, Hisham Al-Talib, Hamas, Yacub Mirza, Ibrahim Hassabella
June 4, 2002: Khalid Shaikh Mohammed Is Publicly Identified as 9/11 Mastermind
The photo of Mohammed on the right has been flipped to better compare it. [Source: FBI]Khalid Shaikh Mohammed (KSM) is publicly identified as the "mastermind" behind the 9/11 attacks. He is believed to have arranged the logistics while on the run in Germany, Pakistan, and Afghanistan. In 1996, he had been secretly indicted in the US for his role in Operation Bojinka (see January 6, 1995), and the US began offering a $2 million reward for his capture in 1998 (see January 8, 1998), which increased to $25 million in December 2001. An international warrant for his arrest was issued in November 2000 (see November 17, 2000). [Associated Press, 6/4/2002; New York Times, 6/5/2002] According to the New York Times, "In recent months, American counterintelligence officials have identified a small group of other al-Qaeda lieutenants as the crucial figures behind the Sept. 11 attacks" aside from KSM. They include Mohammed Atef (who is already deceased), Abu Zubaida, and Ayman al-Zawahiri. [New York Times, 6/5/2002] There are conflicting accounts of how much US investigators knew about KSM before 9/11. He is Pakistani, although he was born and raised in Kuwait. [CBS News, 6/5/2002] He is an uncle of Ramzi Yousef, the bomber of the World Trade Center in 1993. [New York Times, 6/5/2002] In April 2002, captured al-Qaeda leader Abu Zubaida confessed that KSM was the 9/11 mastermind (see April 2002). It is not known how much US intelligence knew about KSM's link to the 9/11 attacks prior that, although at least some was known (see (December 2001)).
Entity Tags: Pakistan Directorate for Inter-Services Intelligence, Mohammed Atef, Ramzi Yousef, Ayman al-Zawahiri, Abu Zubaida, Khalid Shaikh Mohammed
February 24, 2003: Voice Analyst of Alleged Bin Laden Tapes Discusses Methodology in Interview
Popular Science magazine carries a rare interview with Tom Owen, a voice analyst who has worked on identifying Osama bin Laden in recordings allegedly released by the al-Qaeda leader. Owen worked for US media on the identification of bin Laden's voice in a November 2002 recording (see November 12, 2002), assisted by a captain of the Saudi Interior Ministry's forensics department he had apparently been teaching at the time. Owen, one of only eight forensic voice analysts certified by the American Board of Recorded Evidence, and other US experts identified the voice as bin Laden's, although a Swiss facility disagreed (see November 29, 2002). The interview describes Owen's lab and how he works, pivoting off the November recording. Owen criticizes the Swiss analysis, saying that the advanced biometrics software the Swiss used cannot work with the noise on the tape, as it is "designed to work with perfect samples." Cleaning up the tape would not help, as this would remove the high and low frequencies a biometric system needs to make its identification.
Voice Identification Methodology - To identify voices, Owen uses a spectrograph, which produces spectrograms—"a kind of graphic speech rendering that has changed little since the 1940s"—that are then compared. His favorite tool for analyses is a "piece of vintage equipment—a reel-to-reel Voice Identification 700 spectrograph built in 1973," which "differs little from the analog machines US Army intelligence officers built to identify and track German radio operators during World War II." When analyzing a new recording thought to be from bin Laden, Owen compares the spectrograms it produces with spectrograms from a known bin Laden interview, such as one he granted to ABC in 1998 (see May 28, 1998). According to the magazine, there are "only a half-dozen words in common between the November tape and the ABC interview," although the standards of the American Board of Recorded Evidence demand 20 identical words, preferably spoken in the same order.
Listening for 'Quirky Mannerisms' - However, Owen also listens for "the multitude of quirky mannerisms and pronunciation foibles peculiar to each voice," because a trained ear can detect "the subtle whistle caused by a missing tooth, a person's tendency to swallow in the middle of a sentence, even the way someone sets his or her jaw when speaking." Owen plays the reporter what he calls a short-term memory tape, apparently a crucial tool in aural voice identifications. The spliced tape toggles between 2.5-second segments of bin Laden's ABC interview and the November tape; Owen uses the tape to listen for peculiarities in a voice, especially when vowels are spoken. According to Owen, who says bin Laden's voice is what the magazine calls "plenty peculiar," the tape proves it is the "same guy" on the November tape and in the 1998 interview. However, the reporter comments: "To my untrained ear, it could be Darth Vader behind the static.… This is the sort of gray area that tends to make legal observers worry about the state of forensic science."
Comments on NSA - According to the magazine, Owen's technology is similar to that which the NSA probably uses to analyze voices, although Owen thinks the NSA has samples of bin Laden's voice he does not. However, he does not think it has made biometric breakthroughs in analysis despite its advanced technology, which is "mostly devoted to listening." [Popular Science, 2/24/2003]
Entity Tags: Al-Qaeda, Tom Owen, National Security Agency, Osama bin Laden
October 18, 2007: Future Attorney General Uses Unknown Anecdote to Argue against Terror Prosecutions
Attorney general nominee Michael Mukasey uses an anecdote about a cell phone battery to argue that the current legal system is poorly equipped to fight Islamic terrorism. The anecdote is told during his confirmation hearings, but he previously used it in an op-ed for the Wall Street Journal in August. Mukasey says that during Ramzi Yousef's trial for the 1993 World Trade Center bombing: "[S]omebody testified to somebody having delivered a cell phone battery to someone else. That piece of testimony disclosed to al-Qaeda that a line of communication of theirs had been compromised and, in fact, was one of communication that our government was monitoring and from which it had gotten enormously valuable intelligence. That line of communication shut down within days of that testimony and I don't know what we lost. Nobody knows what we lost. But we probably lost something enormously valuable." Mukasey does not say which of Yousef's two trials the testimony was at. [Wall Street Journal, 8/22/2007; CQ Transcripts Wire, 10/18/2007] This incident is not known and is not confirmed by other sources. It is unclear who the two militants were, and why the militant who received the cell phone battery would be unable to purchase it himself. Osama bin Laden is said to have received a doctored battery for his satellite (not cell) phone in Afghanistan, and this is said to have helped the US track him (see May 28, 1998). However, this apparently happened after Yousef was sentenced in the last of the two cases to come to trial, so it is unclear how this could have been mentioned at the trial (see January 8, 1998). A rumor later circulated that bin Laden had stopped using the satellite phone with the allegedly doctored battery based on a leak of intelligence to the press, but that appears to be an urban myth (see Late August 1998).
Entity Tags: Michael Mukasey

redpajama_set_name: RedPajamaCommonCrawl


A splashing day of fun for all the family! Enjoy the "Kamikaze", "Black Hole", "Giant Slide" and "Adventure River" slides. Water castle and special zone for young children. Relax in the Jacuzzi or on the spacious grass terraces and soak up the sun!
Sunbeds, sunshades & lockers for hire.
Aquacenter ticket + transfer: The pickup starts in the morning around 9:00 according to your touristic area. It is a transfer service from different areas of the island to the water park located in the resort of Los Delfines, situated in the south-west of the island.
Aquacenter ticket only: buy your own ticket available every day (from May to September) and enjoy the water park at your own pace. Children from 0-3 years: free of charge.
Swimsuit, sun protection, towel, adequate clothing for the climate and a camera!


At The Granville there are plenty of opportunities for the girls to take part in extra-curricular music activities. All pupils receive an additional weekly lesson on the recorder in Years 2 and 3 and girls in Years 4, 5 and 6 can continue with their recorder playing in one of our Recorder Ensembles. All girls who learn an orchestral instrument are encouraged to join either our Junior Orchestra for beginners up to Grade 1 standard, or our Senior Orchestra for Grade 2 and above. We have numerous other chamber groups that are coached by our expert visiting Music Teachers including flute quartets and trios, string trios, quartets and quintets and a cello quartet. More able pianists at the senior end of the school are invited to play percussion in Senior Orchestra. All girls in Years 5 and 6 are members of our Senior Choir which rehearses weekly and gives several performances of a high standard throughout the year both at school and at other local festivals. Several Granville girls also take part in choirs and ensembles outside school including the Lydian Training Orchestra, the National Children's Orchestra, Musicale Sevenoaks, and other ensembles which are run by local music services Bromley Youth Music Trust and Kent County Music Service.
Highly qualified and experienced visiting instrumental teachers offer weekly lessons in piano, violin, viola, cello, clarinet, saxophone, flute, fife, French Horn, Tumpet, tenor horn, theory and singing. Individual music lessons are held during the school day and lesson times are rotated in a carousel to ensure that girls do not miss important academic curriculum lessons. The girls are encouraged to perform in school concerts both informal and formal and are prepared for Associated Board exams. Girls who choose to have their music lessons outside school are encouraged to play a full part in the musical life of The Granville and join orchestra and other chamber groups.
We are fortunate to have regular visiting musicians who inspire our girls and teach new skills. Recent visits include Dragonsfire with their vast selection of Tudor instruments and percussionist Jo May who taught all our girls from Reception to Year 6 to play the spoons!


Under construction until mid-March 2018. Located close to 429 and less than 3 miles from Winter Garden Village, this inviting ENERGY STAR Certified home features 5 Bedrooms, 3.5 Baths, LOFT, Covered Lanai and 2 Car Garage on a home site backing to WETLAND CONSERVATION. Two secondary bedrooms downstairs perfect for visiting guests or as an office. Kitchen open to Dining & Great Room and features 42" Designer Cabinets in Painted Linen w/Crown Molding, Viatera Quartz counters in Mont Blue, Stainless Steel Appliances (incl. Double Ovens), Office Nook and Walk-in Pantry. Beautiful Iron Stair Rails leading to second floor. Upstairs MASTER SUITE has Tray Ceiling, Large Dual-Sided Walk-In Closet, Dual Sink Vanity w/ Viatera Quartz Counters, Garden Bath with Soaking Tub & Semi-Frameless Glass Shower and Privacy Lavatory. Crystalline glass insert front door, viatera quartz counters in all secondary baths, brick paver driveway, leadwalk & porch. ENERGY STAR features with R-38 Insulation, 15 SEER HVAC and Hybrid Water Heater provide savings with Low Utility Bills. Orchard Hills offers residents a Dog Park, Playground, Clubhouse with Gym & Rec Room and Community Pool. HOA includes lawncare & exterior pesticide.
From County Road 535, Turn on to Tilden Rd. Turn Left on to Tiny Rd. Orchard Hills community will be ahead 1.5 miles on left.